From a64ebd8e36b6cd13f18163d0a3365f4e80d90805 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Mon, 30 Mar 2015 16:34:12 +0200 Subject: Turn maxplayers into a global variable ... and decrease its value from MAXPLAYERS (i.e. 8) to 4 if (gamemode == shareware). It seems that it was hard-coded to this value until some time between the releases of the Demo and the Full version. Arrays are still declared with their full width of 8, though, they are just not iterated over the whole range anymore. This fixes playback of the IWAD demos. --- src/hexen/a_action.c | 6 +++--- src/hexen/am_map.c | 16 ++++++++-------- src/hexen/ct_chat.c | 6 +++--- src/hexen/d_net.c | 6 +++--- src/hexen/g_game.c | 26 +++++++++++++------------- src/hexen/h2_main.c | 2 ++ src/hexen/h2def.h | 1 + src/hexen/in_lude.c | 12 ++++++------ src/hexen/p_acs.c | 4 ++-- src/hexen/p_enemy.c | 6 +++--- src/hexen/p_mobj.c | 6 +++--- src/hexen/p_setup.c | 6 +++--- src/hexen/p_tick.c | 2 +- src/hexen/p_user.c | 4 ++-- src/hexen/r_draw.c | 4 ++-- src/hexen/r_things.c | 4 ++-- src/hexen/sb_bar.c | 5 ++--- src/hexen/sv_save.c | 28 ++++++++++++++-------------- 18 files changed, 73 insertions(+), 71 deletions(-) (limited to 'src/hexen') diff --git a/src/hexen/a_action.c b/src/hexen/a_action.c index c4c194e3..1923ff70 100644 --- a/src/hexen/a_action.c +++ b/src/hexen/a_action.c @@ -211,7 +211,7 @@ void A_PotteryCheck(mobj_t * actor) } else { - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -905,7 +905,7 @@ void A_Quake(mobj_t * actor) if (actor->args[1]-- > 0) { - for (playnum = 0; playnum < MAXPLAYERS; playnum++) + for (playnum = 0; playnum < maxplayers; playnum++) { player = &players[playnum]; if (!playeringame[playnum]) @@ -934,7 +934,7 @@ void A_Quake(mobj_t * actor) } else { - for (playnum = 0; playnum < MAXPLAYERS; playnum++) + for (playnum = 0; playnum < maxplayers; playnum++) { localQuakeHappening[playnum] = false; } diff --git a/src/hexen/am_map.c b/src/hexen/am_map.c index 2d082415..6a28b45c 100644 --- a/src/hexen/am_map.c +++ b/src/hexen/am_map.c @@ -292,7 +292,7 @@ void AM_initVariables(void) // find player to center on initially if (!playeringame[pnum = consoleplayer]) - for (pnum = 0; pnum < MAXPLAYERS; pnum++) + for (pnum = 0; pnum < maxplayers; pnum++) if (playeringame[pnum]) break; plr = &players[pnum]; @@ -1280,7 +1280,7 @@ void AM_drawPlayers(void) return; } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { their_color++; p = &players[i]; @@ -1418,12 +1418,12 @@ void AM_DrawDeathmatchStats(void) char textBuffer[80]; int yPosition; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { fragCount[i] = 0; order[i] = -1; } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -1431,14 +1431,14 @@ void AM_DrawDeathmatchStats(void) } else { - for (j = 0; j < MAXPLAYERS; j++) + for (j = 0; j < maxplayers; j++) { if (playeringame[j]) { fragCount[i] += players[i].frags[j]; } } - for (k = 0; k < MAXPLAYERS; k++) + for (k = 0; k < maxplayers; k++) { if (order[k] == -1) { @@ -1447,7 +1447,7 @@ void AM_DrawDeathmatchStats(void) } else if (fragCount[i] > fragCount[order[k]]) { - for (m = MAXPLAYERS - 1; m > k; m--) + for (m = maxplayers - 1; m > k; m--) { order[m] = order[m - 1]; } @@ -1458,7 +1458,7 @@ void AM_DrawDeathmatchStats(void) } } yPosition = 15; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[order[i]]) { diff --git a/src/hexen/ct_chat.c b/src/hexen/ct_chat.c index 4785f8b2..55934006 100644 --- a/src/hexen/ct_chat.c +++ b/src/hexen/ct_chat.c @@ -116,7 +116,7 @@ void CT_Init(void) tail = 0; chatmodeon = false; memset(ChatQueue, 0, QUEUESIZE); - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { chat_dest[i] = 0; msgptr[i] = 0; @@ -292,7 +292,7 @@ void CT_Ticker(void) char c; int numplayers; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -312,7 +312,7 @@ void CT_Ticker(void) else if (c == KEY_ENTER) { numplayers = 0; - for (j = 0; j < MAXPLAYERS; j++) + for (j = 0; j < maxplayers; j++) { numplayers += playeringame[j]; } diff --git a/src/hexen/d_net.c b/src/hexen/d_net.c index 6dd0b74d..bd0e8b21 100644 --- a/src/hexen/d_net.c +++ b/src/hexen/d_net.c @@ -76,7 +76,7 @@ static void RunTic(ticcmd_t *cmds, boolean *ingame) // Check for player quits. - for (i = 0; i < MAXPLAYERS; ++i) + for (i = 0; i < maxplayers; ++i) { if (!demoplayback && playeringame[i] && !ingame[i]) { @@ -120,7 +120,7 @@ static void LoadGameSettings(net_gamesettings_t *settings) respawnparm = settings->respawn_monsters; consoleplayer = settings->consoleplayer; - for (i=0; inum_players; PlayerClass[i] = settings->player_classes[i]; @@ -172,7 +172,7 @@ static void InitConnectData(net_connect_data_t *connect_data) connect_data->lowres_turn = false; connect_data->drone = false; - connect_data->max_players = (gamemode == shareware) ? 4 : MAXPLAYERS; + connect_data->max_players = maxplayers; //! // @category net diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c index 04e0e5af..e0a7afac 100644 --- a/src/hexen/g_game.c +++ b/src/hexen/g_game.c @@ -639,7 +639,7 @@ void G_DoLoadLevel(void) levelstarttic = gametic; // for time calculation gamestate = GS_LEVEL; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i] && players[i].playerstate == PST_DEAD) players[i].playerstate = PST_REBORN; @@ -756,7 +756,7 @@ boolean G_Responder(event_t * ev) do { displayplayer++; - if (displayplayer == MAXPLAYERS) + if (displayplayer == maxplayers) { displayplayer = 0; } @@ -899,7 +899,7 @@ void G_Ticker(void) // // do player reborns if needed // - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) if (playeringame[i] && players[i].playerstate == PST_REBORN) G_DoReborn(i); @@ -963,7 +963,7 @@ void G_Ticker(void) //buf = gametic%BACKUPTICS; buf = (gametic / ticdup) % BACKUPTICS; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) if (playeringame[i]) { cmd = &players[i].cmd; @@ -993,7 +993,7 @@ void G_Ticker(void) // // check for special buttons // - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) if (playeringame[i]) { if (players[i].cmd.buttons & BT_SPECIAL) @@ -1335,7 +1335,7 @@ void G_DoReborn(int playernum) else { // Try to spawn at one of the other player start spots - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (G_CheckSpot(playernum, &playerstarts[RebornPosition][i])) { // Found an open start spot @@ -1492,7 +1492,7 @@ void G_DoCompleted(void) { return; } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { @@ -1519,7 +1519,7 @@ void G_DoCompleted(void) { return; } - for(i = 0; i < MAXPLAYERS; i++) + for(i = 0; i < maxplayers; i++) { if(playeringame[i]) { @@ -1732,7 +1732,7 @@ void G_InitNew(skill_t skill, int episode, int map) } M_ClearRandom(); // Force players to be initialized upon first level load - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { players[i].playerstate = PST_REBORN; players[i].worldTimer = 0; @@ -1755,7 +1755,7 @@ void G_InitNew(skill_t skill, int episode, int map) // Give one null ticcmd_t //gametic = 0; //maketic = 1; - //for (i=0 ; i> FRACBITS; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { xPos = xStart; - for (j = 0; j < MAXPLAYERS; j++, xPos += xDelta) + for (j = 0; j < maxplayers; j++, xPos += xDelta) { x = xPos >> FRACBITS; bold = (i == consoleplayer || j == consoleplayer); diff --git a/src/hexen/p_acs.c b/src/hexen/p_acs.c index b9fd8f08..b7a63fe9 100644 --- a/src/hexen/p_acs.c +++ b/src/hexen/p_acs.c @@ -1681,7 +1681,7 @@ static int CmdEndPrintBold(void) { int i; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { @@ -1722,7 +1722,7 @@ static int CmdPlayerCount(void) int count; count = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { count += playeringame[i]; } diff --git a/src/hexen/p_enemy.c b/src/hexen/p_enemy.c index 18cc79eb..dc2c9fe5 100644 --- a/src/hexen/p_enemy.c +++ b/src/hexen/p_enemy.c @@ -546,8 +546,8 @@ boolean P_LookForPlayers(mobj_t * actor, boolean allaround) // stop = (actor->lastlook - 1) & 3; // for (;; actor->lastlook = (actor->lastlook + 1) & 3) - stop = (actor->lastlook + MAXPLAYERS - 1) % MAXPLAYERS; - for (;; actor->lastlook = (actor->lastlook + 1) % MAXPLAYERS) + stop = (actor->lastlook + maxplayers - 1) % maxplayers; + for (;; actor->lastlook = (actor->lastlook + 1) % maxplayers) { if (!playeringame[actor->lastlook]) continue; @@ -1179,7 +1179,7 @@ void A_MinotaurLook(mobj_t * actor) actor->target = NULL; if (deathmatch) // Quick search for players { - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) continue; diff --git a/src/hexen/p_mobj.c b/src/hexen/p_mobj.c index 98f81984..b868da8c 100644 --- a/src/hexen/p_mobj.c +++ b/src/hexen/p_mobj.c @@ -1190,7 +1190,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) { mobj->reactiontime = info->reactiontime; } - mobj->lastlook = P_Random() % MAXPLAYERS; + mobj->lastlook = P_Random() % maxplayers; // Set the state, but do not use P_SetMobjState, because action // routines can't be called yet. If the spawnstate has an action @@ -1295,7 +1295,7 @@ void P_SpawnPlayer(mapthing_t * mthing) fixed_t x, y, z; mobj_t *mobj; - if (mthing->type - 1 >= MAXPLAYERS || !playeringame[mthing->type - 1]) + if (mthing->type - 1 >= maxplayers || !playeringame[mthing->type - 1]) { // Not playing return; } @@ -1500,7 +1500,7 @@ void P_SpawnMapThing(mapthing_t * mthing) else if (deathmatch == false) { // Cooperative spawnMask = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { diff --git a/src/hexen/p_setup.c b/src/hexen/p_setup.c index 428e6166..f24fb34e 100644 --- a/src/hexen/p_setup.c +++ b/src/hexen/p_setup.c @@ -387,7 +387,7 @@ void P_LoadThings(int lump) return; } playerCount = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { playerCount += playeringame[i]; } @@ -672,7 +672,7 @@ void P_SetupLevel(int episode, int map, int playermask, skill_t skill) int lumpnum; mobj_t *mobj; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { players[i].killcount = players[i].secretcount = players[i].itemcount = 0; @@ -722,7 +722,7 @@ void P_SetupLevel(int episode, int map, int playermask, skill_t skill) TimerGame = 0; if (deathmatch) { - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { // must give a player spot before deathmatchspawn diff --git a/src/hexen/p_tick.c b/src/hexen/p_tick.c index aac61ff8..95242ccd 100644 --- a/src/hexen/p_tick.c +++ b/src/hexen/p_tick.c @@ -58,7 +58,7 @@ void P_Ticker(void) { return; } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { diff --git a/src/hexen/p_user.c b/src/hexen/p_user.c index d24ec053..c7fa7a3f 100644 --- a/src/hexen/p_user.c +++ b/src/hexen/p_user.c @@ -480,7 +480,7 @@ int P_GetPlayerNum(player_t * player) { int i; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (player == &players[i]) { @@ -1017,7 +1017,7 @@ void P_TeleportToPlayerStarts(mobj_t * victim) fixed_t destX, destY; angle_t destAngle; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) continue; diff --git a/src/hexen/r_draw.c b/src/hexen/r_draw.c index e7481934..13a0421b 100644 --- a/src/hexen/r_draw.c +++ b/src/hexen/r_draw.c @@ -320,9 +320,9 @@ void R_InitTranslationTables(void) V_LoadTintTable(); // Allocate translation tables - translationtables = Z_Malloc(256 * 3 * (MAXPLAYERS - 1), PU_STATIC, 0); + translationtables = Z_Malloc(256 * 3 * (maxplayers - 1), PU_STATIC, 0); - for (i = 0; i < 3 * (MAXPLAYERS - 1); i++) + for (i = 0; i < 3 * (maxplayers - 1); i++) { lumpnum = W_GetNumForName("trantbl0") + i; transLump = W_CacheLumpNum(lumpnum, PU_STATIC); diff --git a/src/hexen/r_things.c b/src/hexen/r_things.c index aae6dc60..9d1cb6b5 100644 --- a/src/hexen/r_things.c +++ b/src/hexen/r_things.c @@ -388,7 +388,7 @@ void R_DrawVisSprite(vissprite_t * vis, int x1, int x2) { colfunc = R_DrawTranslatedTLColumn; dc_translation = translationtables - 256 - + vis->class * ((MAXPLAYERS - 1) * 256) + + + vis->class * ((maxplayers - 1) * 256) + ((vis->mobjflags & MF_TRANSLATION) >> (MF_TRANSSHIFT - 8)); } else if (vis->mobjflags & MF_SHADOW) @@ -405,7 +405,7 @@ void R_DrawVisSprite(vissprite_t * vis, int x1, int x2) // Draw using translated column function colfunc = R_DrawTranslatedColumn; dc_translation = translationtables - 256 - + vis->class * ((MAXPLAYERS - 1) * 256) + + + vis->class * ((maxplayers - 1) * 256) + ((vis->mobjflags & MF_TRANSLATION) >> (MF_TRANSSHIFT - 8)); } diff --git a/src/hexen/sb_bar.c b/src/hexen/sb_bar.c index 6ca8fec4..3846f4c6 100644 --- a/src/hexen/sb_bar.c +++ b/src/hexen/sb_bar.c @@ -342,7 +342,6 @@ void SB_Init(void) void SB_SetClassData(void) { int class; - int maxplayers = (gamemode == shareware) ? 4 : MAXPLAYERS; class = PlayerClass[consoleplayer]; // original player class (not pig) PatchWEAPONSLOT = W_CacheLumpNum(W_GetNumForName("wpslot0") @@ -1053,7 +1052,7 @@ void DrawMainBar(void) if (deathmatch) { temp = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { temp += CPlayer->frags[i]; } @@ -1380,7 +1379,7 @@ void DrawFullScreenStuff(void) if (deathmatch) { temp = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { diff --git a/src/hexen/sv_save.c b/src/hexen/sv_save.c index b210ad9d..7837b837 100644 --- a/src/hexen/sv_save.c +++ b/src/hexen/sv_save.c @@ -416,7 +416,7 @@ static void StreamIn_player_t(player_t *str) str->pieces = GET_LONG; // signed int frags[MAXPLAYERS]; - for (i=0; ifrags[i] = GET_LONG; } @@ -585,7 +585,7 @@ static void StreamOut_player_t(player_t *str) StreamOutLong(str->pieces); // signed int frags[MAXPLAYERS]; - for (i=0; ifrags[i]); } @@ -2081,7 +2081,7 @@ void SV_LoadGame(int slot) Z_Free(SaveBuffer); // Save player structs - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { playerBackup[i] = players[i]; } @@ -2095,7 +2095,7 @@ void SV_LoadGame(int slot) // Restore player structs inv_ptr = 0; curpos = 0; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { mobj = players[i].mo; players[i] = playerBackup[i]; @@ -2170,7 +2170,7 @@ void SV_MapTeleport(int map, int position) // Store player structs for later rClass = randomclass; randomclass = false; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { playerBackup[i] = players[i]; } @@ -2194,7 +2194,7 @@ void SV_MapTeleport(int map, int position) G_InitNew(gameskill, gameepisode, gamemap); // Destroy all freshly spawned players - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { @@ -2205,7 +2205,7 @@ void SV_MapTeleport(int map, int position) // Restore player structs targetPlayerMobj = NULL; - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -2286,7 +2286,7 @@ void SV_MapTeleport(int map, int position) } // Destroy all things touching players - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (playeringame[i]) { @@ -2403,11 +2403,11 @@ static void ArchivePlayers(void) int i; StreamOutLong(ASEG_PLAYERS); - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { StreamOutByte(playeringame[i]); } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -2429,11 +2429,11 @@ static void UnarchivePlayers(void) int i; AssertSegment(ASEG_PLAYERS); - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { playeringame[i] = GET_BYTE; } - for (i = 0; i < MAXPLAYERS; i++) + for (i = 0; i < maxplayers; i++) { if (!playeringame[i]) { @@ -2968,7 +2968,7 @@ static void ArchiveMisc(void) int ix; StreamOutLong(ASEG_MISC); - for (ix = 0; ix < MAXPLAYERS; ix++) + for (ix = 0; ix < maxplayers; ix++) { StreamOutLong(localQuakeHappening[ix]); } @@ -2985,7 +2985,7 @@ static void UnarchiveMisc(void) int ix; AssertSegment(ASEG_MISC); - for (ix = 0; ix < MAXPLAYERS; ix++) + for (ix = 0; ix < maxplayers; ix++) { localQuakeHappening[ix] = GET_LONG; } -- cgit v1.2.3