summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/heretic/mn_menu.c2
-rw-r--r--src/heretic/p_spec.c8
-rw-r--r--src/hexen/mn_menu.c2
-rw-r--r--src/hexen/p_enemy.c2
-rw-r--r--src/hexen/sb_bar.c12
-rw-r--r--src/net_structrw.c2
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;
}