(svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
authormaedhros
Mon, 22 Jan 2007 20:38:19 +0000
changeset 5796 3e1a1281a9dc
parent 5795 bd163fec9f07
child 5797 855d6124f02a
(svn r8356) -Codechange: [Graphs] Rename mx to highest_value, and fix the scaling for negative values.
src/graph_gui.cpp
--- a/src/graph_gui.cpp	Mon Jan 22 18:28:30 2007 +0000
+++ b/src/graph_gui.cpp	Mon Jan 22 20:38:19 2007 +0000
@@ -67,7 +67,7 @@
 {
 	uint x,y,old_x,old_y;
 	int right;
-	int64 mx;
+	int64 highest_value;
 	int adj_height;
 	uint64 y_scaling;
 	int64 value;
@@ -121,9 +121,10 @@
 	assert(gw->num_on_x_axis > 0);
 	assert(gw->num_dataset > 0);
 
-	mx = 0;
-		/* bit selection for the showing of various players, base max element
-		 * on to-be shown player-information. This way the graph can scale */
+	highest_value = 0;
+
+	/* bit selection for the showing of various players, base max element
+	 * on to-be shown player-information. This way the graph can scale */
 	sel = gw->sel;
 	for (int i = 0; i < gw->num_dataset; i++) {
 		if (!(sel&1)) {
@@ -131,7 +132,10 @@
 				int64 datapoint = gw->cost[i][j];
 
 				if (datapoint != INVALID_VALUE) {
-					mx = max(mx, datapoint);
+					/* For now, if the graph has negative values the scaling is
+					 * symmetrical about the x axis, so take the absolute value
+					 * of each data point. */
+					highest_value = max(highest_value, myabs(datapoint));
 				}
 			}
 		}
@@ -142,10 +146,10 @@
 	y_scaling = INVALID_VALUE;
 	value = adj_height * 2;
 
-	if (mx > value) {
-		mx = (mx + 7) & ~7;
-		y_scaling = (((uint64) (value>>1) << 32) / mx);
-		value = mx;
+	if (highest_value > value) {
+		highest_value = ALIGN(highest_value, 8);
+		y_scaling = (((uint64) (value>>1) << 32) / highest_value);
+		value = highest_value;
 	}
 
 	/* draw text strings on the y axis */