Update of /cvsroot/netrek/client/netrekxp/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv3690/src Modified Files: dashboard.c getship.c redraw.c Log Message: Changed COW, KRP and text dashboard so they display ATT ship correctly Changed the way dashboard reports negative values for the bars (hull,shield,fuel,etc) - instead of getting a garbled display since most of the dashboards can't handle negative values, the number will display as a positive number, but will be in red font. This effects cases such as the KRP dashboard when your ship dies (hull goes to negative). Fixed ATT maxfuel to match server value Index: redraw.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/redraw.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- redraw.c 3 Jun 2006 07:03:42 -0000 1.8 +++ redraw.c 15 Jun 2006 05:09:04 -0000 1.9 @@ -201,21 +201,43 @@ buf[15] = (char) ('0' + (me->p_speed % 10)); /* speed */ buf[16] = ' '; buf[17] = ' '; - buf[18] = (char) ('0' + (me->p_damage / 100)); - if (buf[18] == '0') - buf[18] = ' '; - buf[19] = (char) ('0' + ((me->p_damage % 100) / 10)); - if ((buf[19] == '0') && (me->p_damage < 100)) - buf[19] = ' '; - buf[20] = (char) ('0' + (me->p_damage % 10)); + if (me->p_ship.s_type != ATT) + { + buf[18] = (char) ('0' + (me->p_damage / 100)); + if (buf[18] == '0') + buf[18] = ' '; + buf[19] = (char) ('0' + ((me->p_damage % 100) / 10)); + if ((buf[19] == '0') && (me->p_damage < 100)) + buf[19] = ' '; + buf[20] = (char) ('0' + (me->p_damage % 10)); + } + else + { + buf[18] = (char) ('0' + (me->p_damage / 10000)); + if (buf[18] == '0') + buf[18] = ' '; + buf[19] = (char) ('0' + ((me->p_damage % 10000) / 1000)); + buf[20] = 'k'; + } buf[21] = ' '; - buf[22] = (char) ('0' + (me->p_shield / 100)); - if (buf[22] == '0') - buf[22] = ' '; - buf[23] = (char) ('0' + ((me->p_shield % 100) / 10)); - if ((buf[23] == '0') && (me->p_shield < 100)) - buf[23] = ' '; - buf[24] = (char) ('0' + (me->p_shield % 10)); + if (me->p_ship.s_type != ATT) + { + buf[22] = (char) ('0' + (me->p_shield / 100)); + if (buf[22] == '0') + buf[22] = ' '; + buf[23] = (char) ('0' + ((me->p_shield % 100) / 10)); + if ((buf[23] == '0') && (me->p_shield < 100)) + buf[23] = ' '; + buf[24] = (char) ('0' + (me->p_shield % 10)); + } + else + { + buf[22] = (char) ('0' + (me->p_shield / 10000)); + if (buf[22] == '0') + buf[22] = ' '; + buf[23] = (char) ('0' + ((me->p_shield % 10000) / 1000)); + buf[24] = 'k'; + } buf[25] = ' '; buf[26] = ' '; buf[27] = (char) ('0' + ((plr->p_ntorp % 100) / 10)); @@ -404,12 +426,20 @@ sprintf (buf, "Flags Warp Dam Shd Torps Kills Armies Fuel Wtemp Etemp Time"); W_WriteText (tstatw, 50, 5, textColor, buf, strlen (buf), W_RegularFont); - sprintf (buf, - "Maximum: %2d/%2d %3d %3d %2d/%2d %6d %3d %3d", - maxspeed, me->p_ship.s_maxspeed, - me->p_ship.s_maxdamage, me->p_ship.s_maxshield, - troop_capacity, me->p_ship.s_maxarmies, - me->p_ship.s_maxfuel, me->p_ship.s_maxwpntemp / 10, - me->p_ship.s_maxegntemp / 10); + if (me->p_ship.s_type != ATT) + sprintf (buf, + "Maximum: %2d/%2d %3d %3d %2d/%2d %6d %3d %3d", + maxspeed, me->p_ship.s_maxspeed, + me->p_ship.s_maxdamage, me->p_ship.s_maxshield, + troop_capacity, me->p_ship.s_maxarmies, + me->p_ship.s_maxfuel, me->p_ship.s_maxwpntemp / 10, + me->p_ship.s_maxegntemp / 10); + else + sprintf (buf, + "Maximum: %2d/%2d 30k 30k %2d/1k %6d %4d %4d", + maxspeed, me->p_ship.s_maxspeed, + troop_capacity, + me->p_ship.s_maxfuel, me->p_ship.s_maxwpntemp / 10, + me->p_ship.s_maxegntemp / 10); W_WriteText (tstatw, 50, 27, textColor, buf, strlen (buf), W_RegularFont); } Index: getship.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/getship.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- getship.c 22 May 2006 08:27:53 -0000 1.3 +++ getship.c 15 Jun 2006 05:09:04 -0000 1.4 @@ -104,7 +104,7 @@ shipvals[ATT].s_phaserdamage = 10000; /* att: */ shipvals[ATT].s_torpspeed = 30; /* att: */ shipvals[ATT].s_maxspeed = 60; /* att: */ - shipvals[ATT].s_maxfuel = 12000; /* att: */ + shipvals[ATT].s_maxfuel = 60000; /* att: */ shipvals[ATT].s_maxarmies = 1000; /* att: */ shipvals[ATT].s_maxshield = 30000; /* att: */ shipvals[ATT].s_maxdamage = 30000; /* att: */ Index: dashboard.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/dashboard.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- dashboard.c 13 Jun 2006 11:18:23 -0000 1.12 +++ dashboard.c 15 Jun 2006 05:09:04 -0000 1.13 @@ -222,7 +222,15 @@ register int wt, wv; register int tc = 11; register int tw = W_Textwidth * tc; + int sign_change = 0; char valstr[32]; + + /* Take care of case where value is negative */ + if (value < 0) + { + value = abs(value); + sign_change = 1; + } switch (digits) { @@ -260,8 +268,8 @@ wv = BAR_LENGTH; W_WriteText (tstatw, x, y, textColor, valstr, 3, W_RegularFont); - W_WriteText (tstatw, x + 3 * W_Textwidth, y, textColor, (&valstr[3]), - tc / 2 + 1, W_BoldFont); + W_WriteText (tstatw, x + 3 * W_Textwidth, y, sign_change ? W_Red : textColor, + (&valstr[3]), tc / 2 + 1, W_BoldFont); W_WriteText (tstatw, x + (tc / 2 + 1) * W_Textwidth, y, textColor, (&valstr[tc / 2 + 1]), tc / 2, W_RegularFont); @@ -573,9 +581,14 @@ color = W_Yellow; else color = W_Green; - db_bar ("Sh", 90, 17, - me->p_shield, me->p_ship.s_maxshield, me->p_ship.s_maxshield, - DB_3DIGITS, color); + if (me->p_ship.s_type == ATT) + db_bar ("Sh", 90, 17, + me->p_shield, me->p_ship.s_maxshield, me->p_ship.s_maxshield, + DB_5DIGITS, color); + else + db_bar ("Sh", 90, 17, + me->p_shield, me->p_ship.s_maxshield, me->p_ship.s_maxshield, + DB_3DIGITS, color); old_shl = me->p_shield; } @@ -590,10 +603,16 @@ color = W_Yellow; else color = W_Green; - db_bar ("Hu", 90, 31, - max(0,(me->p_ship.s_maxdamage - me->p_damage)), // Can't display negative hull values - me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, DB_3DIGITS, - color); + if (me->p_ship.s_type == ATT) + db_bar ("Hu", 90, 31, + (me->p_ship.s_maxdamage - me->p_damage), + me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, DB_5DIGITS, + color); + else + db_bar ("Hu", 90, 31, + (me->p_ship.s_maxdamage - me->p_damage), + me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, DB_3DIGITS, + color); old_dam = me->p_damage; } @@ -632,9 +651,10 @@ color = W_Yellow; else color = W_Red; - db_bar ("Wt", 218, 17, - me->p_wtemp / 10, me->p_ship.s_maxwpntemp / 10, - me->p_ship.s_maxwpntemp / 10, DB_3DIGITS, color); + if (me->p_ship.s_type != ATT) + db_bar ("Wt", 218, 17, + me->p_wtemp / 10, me->p_ship.s_maxwpntemp / 10, + me->p_ship.s_maxwpntemp / 10, DB_3DIGITS, color); old_wpn = me->p_wtemp; } @@ -647,9 +667,10 @@ color = W_Yellow; else color = W_Red; - db_bar ("Et", 218, 31, - me->p_etemp / 10, me->p_ship.s_maxegntemp / 10, - me->p_ship.s_maxegntemp / 10, DB_3DIGITS, color); + if (me->p_ship.s_type != ATT) + db_bar ("Et", 218, 31, + me->p_etemp / 10, me->p_ship.s_maxegntemp / 10, + me->p_ship.s_maxegntemp / 10, DB_3DIGITS, color); old_egn = me->p_etemp; } @@ -732,9 +753,14 @@ color = W_Yellow; else color = W_White; - db_bar ("Sh", 90, 17, - me->p_ship.s_maxshield - me->p_shield, me->p_ship.s_maxshield, - me->p_ship.s_maxshield, DB_3DIGITS, color); + if (me->p_ship.s_type == ATT) + db_bar ("Sh", 90, 17, + me->p_ship.s_maxshield - me->p_shield, me->p_ship.s_maxshield, + me->p_ship.s_maxshield, DB_5DIGITS, color); + else + db_bar ("Sh", 90, 17, + me->p_ship.s_maxshield - me->p_shield, me->p_ship.s_maxshield, + me->p_ship.s_maxshield, DB_3DIGITS, color); old_shl = me->p_shield; } @@ -747,9 +773,14 @@ color = W_Red; else color = W_Yellow; - db_bar ("Da", 90, 31, - me->p_damage, me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, - DB_3DIGITS, color); + if (me->p_ship.s_type == ATT) + db_bar ("Da", 90, 31, + me->p_damage, me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, + DB_5DIGITS, color); + else + db_bar ("Da", 90, 31, + me->p_damage, me->p_ship.s_maxdamage, me->p_ship.s_maxdamage, + DB_3DIGITS, color); old_dam = me->p_damage; } @@ -789,9 +820,10 @@ color = W_White; else color = W_Yellow; - db_bar ("Wt", 218, 17, - me->p_wtemp / 10, me->p_ship.s_maxwpntemp / 10, - me->p_ship.s_maxwpntemp / 10, DB_3DIGITS, color); + if (me->p_ship.s_type != ATT) + db_bar ("Wt", 218, 17, + me->p_wtemp / 10, me->p_ship.s_maxwpntemp / 10, + me->p_ship.s_maxwpntemp / 10, DB_3DIGITS, color); old_wpn = me->p_wtemp; } @@ -805,9 +837,10 @@ color = W_Yellow; else color = W_Red; - db_bar ("Et", 218, 31, - me->p_etemp / 10, me->p_ship.s_maxegntemp / 10, - me->p_ship.s_maxegntemp / 10, DB_3DIGITS, color); + if (me->p_ship.s_type != ATT) + db_bar ("Et", 218, 31, + me->p_etemp / 10, me->p_ship.s_maxegntemp / 10, + me->p_ship.s_maxegntemp / 10, DB_3DIGITS, color); old_egn = me->p_etemp; }