Update of /cvsroot/netrek/client/netrekxp/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25543/src Modified Files: cowmain.c data.c enter.c input.c local.c map.c mswindow.c option.c sound.c Log Message: Remove constant hockey_mode() calls with a single check on initial client connect, setting new global bool playing_hockey. Minor changes inspired by COW implementation of XP 2006 patches. Map window, player redraw: cleared up some confusing references to lastUpdate, renamed it a more fitting lastRedraw. Still needs testing once server is fixed regarding orbit/stationary ship position updates. Inlined SDB_lookup as it gets called more than any other function. Made music and sound arrays static. Index: mswindow.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/mswindow.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- mswindow.c 27 Feb 2007 08:37:07 -0000 1.43 +++ mswindow.c 28 Feb 2007 07:44:00 -0000 1.44 @@ -5639,7 +5639,7 @@ return sdb; } -SDBUFFER * +inline SDBUFFER * SDB_lookup (W_Window window) { Window * win; Index: sound.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/sound.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- sound.c 26 Feb 2007 13:20:37 -0000 1.28 +++ sound.c 28 Feb 2007 07:44:01 -0000 1.29 @@ -28,8 +28,8 @@ #include "audio.h" #include "proto.h" -Mix_Chunk *newsounds[NUM_WAVES]; -Mix_Music *newmusic[NUM_MUSIC]; +static Mix_Chunk *newsounds[NUM_WAVES]; +static Mix_Music *newmusic[NUM_MUSIC]; /* Each sound has a priority which controls what can override what Currently these are set as follows: Index: input.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/input.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- input.c 26 Feb 2007 07:53:03 -0000 1.23 +++ input.c 28 Feb 2007 07:44:00 -0000 1.24 @@ -2592,7 +2592,7 @@ Key71 (W_Event * data) { #ifdef HOCKEY_LINES - if (!hockey_mode ()) + if (!playing_hockey) return; showHockeyLinesMap = !showHockeyLinesMap; @@ -2613,7 +2613,7 @@ Key72 (W_Event * data) { #ifdef HOCKEY_LINES - if (!hockey_mode ()) + if (!playing_hockey) return; showHockeyLinesLocal = !showHockeyLinesLocal; @@ -3141,12 +3141,11 @@ /* Observers can't move. Also incorrectly removes the lock flag even though you are still locked */ - if (!(me->p_flags & PFOBSERV)) - { - course = (unsigned char) (getcourse (data->Window, data->x, data->y)); - set_course (course); - me->p_flags &= ~(PFPLOCK | PFPLLOCK); - } + if (me->p_flags & PFOBSERV) return; + + course = (unsigned char) (getcourse (data->Window, data->x, data->y)); + set_course (course); + me->p_flags &= ~(PFPLOCK | PFPLLOCK); } /******************************************************************************/ Index: local.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- local.c 27 Feb 2007 10:16:33 -0000 1.62 +++ local.c 28 Feb 2007 07:44:00 -0000 1.63 @@ -1215,7 +1215,7 @@ } #ifdef HOCKEY_LINES /* Puck circle */ - if (puckCircle && hockey_mode ()) + if (puckCircle && playing_hockey) { if (myPlayer(j) || isObsLockPlayer(j)) { @@ -1260,7 +1260,7 @@ #ifdef HOCKEY_LINES /* Do we want to see puck's letter ? Nah. */ - if (hockey_mode () && + if (playing_hockey && strcmp(j->p_name, "Puck") == 0 && strcmp(j->p_login, "Robot") == 0 && j->p_team == NOBODY && @@ -2365,7 +2365,7 @@ #endif #ifdef HOCKEY_LINES - if (showHockeyLinesLocal && hockey_mode ()) + if (showHockeyLinesLocal && playing_hockey) for (sl = local_hockey_lines + NUM_HOCKEY_LINES - 1; sl >= local_hockey_lines; --sl) { Index: enter.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/enter.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- enter.c 27 Feb 2007 08:37:07 -0000 1.6 +++ enter.c 28 Feb 2007 07:44:00 -0000 1.7 @@ -206,30 +206,22 @@ #ifdef HOCKEY_LINES /******************************************************************************/ -/*** hockey_mode() ***/ +/*** check_hockey_mode() - checked on initial entry into game ***/ /******************************************************************************/ -int hockey_mode (void) +void check_hockey_mode (void) { int i; - static int playing_hockey = 0; - static int first_run = 1; - if (first_run) + for (i = 0; i < MAXPLAYER; i++) { - for (i = 0; i < MAXPLAYER; i++) + if (strcmp(players[i].p_name, "Puck") == 0 && + strcmp(players[i].p_login, "Robot") == 0 && + players[i].p_team == NOBODY && + players[i].p_ship.s_type == SCOUT) { - if (strcmp(players[i].p_name, "Puck") == 0 && - strcmp(players[i].p_login, "Robot") == 0 && - players[i].p_team == NOBODY && - players[i].p_ship.s_type == SCOUT) - { - playing_hockey = 1; - } + playing_hockey = 1; } - first_run = 0; } - - return playing_hockey; } /******************************************************************************/ Index: option.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/option.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- option.c 25 Feb 2007 14:12:10 -0000 1.29 +++ option.c 28 Feb 2007 07:44:01 -0000 1.30 @@ -831,25 +831,25 @@ { // We definitely don't want to be able to // change this option on non hockey server - if (showHockeyLinesMap && !hockey_mode ()) + if (showHockeyLinesMap && !playing_hockey) showHockeyLinesMap = 0; } else if (op->op_option == &showHockeyLinesLocal) { // same as above - if (showHockeyLinesLocal && !hockey_mode ()) + if (showHockeyLinesLocal && !playing_hockey) showHockeyLinesLocal = 0; } else if (op->op_option == &showHockeyScore) { // same as above - if (showHockeyScore && !hockey_mode ()) + if (showHockeyScore && !playing_hockey) showHockeyScore = 0; } else if (op->op_option == &puckCircle) { // same as above - if (puckCircle && !hockey_mode ()) + if (puckCircle && !playing_hockey) puckCircle = 0; } #endif Index: data.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/data.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- data.c 25 Feb 2007 14:12:10 -0000 1.54 +++ data.c 28 Feb 2007 07:44:00 -0000 1.55 @@ -648,7 +648,7 @@ struct s_line local_hockey_lines[NUM_HOCKEY_LINES + 1]; int showHockeyLinesMap = 0; struct s_line map_hockey_lines[NUM_HOCKEY_LINES + 1]; - +int playing_hockey = 0; #endif #ifdef MULTILINE_MACROS Index: cowmain.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/cowmain.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- cowmain.c 26 Feb 2007 06:54:49 -0000 1.23 +++ cowmain.c 28 Feb 2007 07:44:00 -0000 1.24 @@ -1077,6 +1077,10 @@ /* Send request for updatesPerSec. New servers now support 50 u/s */ sendUpdatePacket (1000000 / updatesPerSec); +#ifdef HOCKEY_LINES + /* Playing hockey? */ + check_hockey_mode(); +#endif isFirstEntry = 0; } Index: map.c =================================================================== RCS file: /cvsroot/netrek/client/netrekxp/src/map.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- map.c 23 Feb 2007 13:43:56 -0000 1.24 +++ map.c 28 Feb 2007 07:44:00 -0000 1.25 @@ -695,7 +695,6 @@ */ { register int i; - register unsigned char *update; register struct player *j; register struct planet *l; register int dx, dy; @@ -703,7 +702,7 @@ static char clearlock = 0; static int mclearzone[6][MAXPLAYER]; static int clearlmark[4]; - static unsigned char lastUpdate[MAXPLAYER]; + static unsigned int lastRedraw[MAXPLAYER]; static int viewx = 0, viewy = 0; static char clearviewbox = 0; @@ -744,7 +743,7 @@ for (i = 0; i < MAXPLAYER; i++) { - lastUpdate[i] = 0; + lastRedraw[i] = 0; mclearzone[2][i] = 0; redrawPlayer[i] = 1; } @@ -786,15 +785,14 @@ } /* Erase the ships */ - for (i = 0, update = lastUpdate; i < MAXPLAYER; i++, update++) + for (i = 0; i < MAXPLAYER; i++) { + /* Erase the player if redrawPlayer[i] is set and there + is an active clearzone */ if (redrawPlayer[i]) { - /* Erase the player if redrawPlayer[i] is set - or lastUpdate allows it. */ if (mclearzone[2][i]) { - /* XFIX */ W_ClearArea (mapw, mclearzone[0][i], mclearzone[1][i], mclearzone[2][i], mclearzone[3][i]); /* Redraw the hole just left next update */ @@ -802,16 +800,22 @@ mclearzone[2][i] = 0; } /* Reset the last redrawn counter */ - *update = 0; + lastRedraw[i] = 0; } - else if (*update == 10) + + if (lastRedraw[i] == 10) { /* Redraw stationary ships every update so that these ships are not hidden by planet updates. */ redrawPlayer[i] = 1; } else - ++(*update); + { + /* Just increment the counter instead */ + lastRedraw[i]++; + } + if (&players[i] == me) + LineToConsole("Last redraw %d ", lastRedraw[i]); } } @@ -842,7 +846,7 @@ } #ifdef HOCKEY_LINES - if (hockey_mode ()) + if (playing_hockey) { /* Draw Hockey Lines */ if (showHockeyLinesMap) @@ -858,7 +862,7 @@ for (i = 0, j = &players[i]; i < MAXPLAYER; i++, j++) { - /* lastUpdate[i] has been set to 0 if redrawall or the ship has + /* redrawPlayer[i] has been set to 1 if redrawall or the ship has * been erased or a redraw has not taken place for a while. These * decisions are made at the top of the file. */