diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/heretic/mn_menu.c | 2 | ||||
-rw-r--r-- | src/heretic/p_spec.c | 8 | ||||
-rw-r--r-- | src/hexen/mn_menu.c | 2 | ||||
-rw-r--r-- | src/hexen/p_enemy.c | 2 | ||||
-rw-r--r-- | src/hexen/sb_bar.c | 12 | ||||
-rw-r--r-- | src/net_structrw.c | 2 |
6 files changed, 21 insertions, 7 deletions
diff --git a/src/heretic/mn_menu.c b/src/heretic/mn_menu.c index 75728427..6c7e425d 100644 --- a/src/heretic/mn_menu.c +++ b/src/heretic/mn_menu.c @@ -145,7 +145,7 @@ static int MenuTime; static boolean soundchanged; boolean askforquit; -boolean typeofask; +static int typeofask; static boolean FileMenuKeySteal; static boolean slottextloaded; static char SlotText[6][SLOTTEXTLEN + 2]; diff --git a/src/heretic/p_spec.c b/src/heretic/p_spec.c index 49c067fa..20fb950b 100644 --- a/src/heretic/p_spec.c +++ b/src/heretic/p_spec.c @@ -1065,8 +1065,12 @@ int EV_DoDonut(line_t * line) s2 = getNextSector(s1->lines[0], s1); for (i = 0; i < s2->linecount; i++) { - if ((!s2->lines[i]->flags & ML_TWOSIDED) || - (s2->lines[i]->backsector == s1)) + // Note: This was originally part of the following test: + // (!s2->lines[i]->flags & ML_TWOSIDED) || + // Due to the apparent mistaken formatting, this can never be + // true. + + if (s2->lines[i]->backsector == s1) continue; s3 = s2->lines[i]->backsector; diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c index 4c887152..32458a1e 100644 --- a/src/hexen/mn_menu.c +++ b/src/hexen/mn_menu.c @@ -153,7 +153,7 @@ static int MenuTime; static boolean soundchanged; boolean askforquit; -boolean typeofask; +static int typeofask; static boolean FileMenuKeySteal; static boolean slottextloaded; static char SlotText[6][SLOTTEXTLEN + 2]; diff --git a/src/hexen/p_enemy.c b/src/hexen/p_enemy.c index a8477b22..69dabbc9 100644 --- a/src/hexen/p_enemy.c +++ b/src/hexen/p_enemy.c @@ -1135,7 +1135,7 @@ void A_MinotaurRoam(mobj_t * actor) { // Turn if (P_Random() & 1) - actor->movedir = (++actor->movedir) % 8; + actor->movedir = (actor->movedir + 1) % 8; else actor->movedir = (actor->movedir + 7) % 8; FaceMovementDirection(actor); diff --git a/src/hexen/sb_bar.c b/src/hexen/sb_bar.c index 13b41ae3..01a2ef0c 100644 --- a/src/hexen/sb_bar.c +++ b/src/hexen/sb_bar.c @@ -1798,10 +1798,20 @@ static void CheatIDKFAFunc(player_t * player, Cheat_t * cheat) { return; } - for (i = 1; i < 8; i++) + for (i = 1; i < NUMWEAPONS; i++) { player->weaponowned[i] = false; } + + // In the original code, NUMWEAPONS was 8. So the writes to weaponowned + // overflowed the array. We must set the following fields to zero as + // well: + + player->mana[0] = 0; + player->mana[1] = 0; + player->attackdown = 0; + player->usedown = 0; + player->pendingweapon = WP_FIRST; P_SetMessage(player, TXT_CHEATIDKFA, true); } diff --git a/src/net_structrw.c b/src/net_structrw.c index 84c115fa..f68a6130 100644 --- a/src/net_structrw.c +++ b/src/net_structrw.c @@ -475,7 +475,7 @@ boolean NET_ReadWaitData(net_packet_t *packet, net_waitdata_t *data) || !NET_ReadInt8(packet, (unsigned int *) &data->num_drones) || !NET_ReadInt8(packet, (unsigned int *) &data->max_players) || !NET_ReadInt8(packet, (unsigned int *) &data->is_controller) - || !NET_ReadSInt8(packet, (unsigned int *) &data->consoleplayer)) + || !NET_ReadSInt8(packet, &data->consoleplayer)) { return false; } |