foxygit / doom Log in
commit 714d7a29397b44fcb2b1fef2d675d296cb984264
Author:     Simon Howard <fraggle@soulsphere.org>
AuthorDate: Thu Feb 19 23:50:04 2015 -0500
Commit:     Simon Howard <fraggle@soulsphere.org>
CommitDate: Thu Feb 19 23:52:02 2015 -0500

    doom: Change weaponowned[] to an int array.

    The st_stuff.c status bar code passes pointer to an entry in
    weaponowned[] as an int pointer, but weaponowned[] is an array
    of booleans and booleans are not always represented as 32-bit ints.
    Remove the (int *) cast and ensure correct behavior.

    This fixes the immediate issue in #509 (thanks floppes).
---
 src/doom/d_player.h |  2 +-
 src/doom/st_stuff.c | 11 ++++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/doom/d_player.h b/src/doom/d_player.h
index a72c2f5f..04e47109 100644
--- a/src/doom/d_player.h
+++ b/src/doom/d_player.h
@@ -111,7 +111,7 @@ typedef struct player_s
     // Is wp_nochange if not changing.
     weapontype_t	pendingweapon;

-    boolean		weaponowned[NUMWEAPONS];
+    int                 weaponowned[NUMWEAPONS];
     int			ammo[NUMAMMO];
     int			maxammo[NUMAMMO];

diff --git a/src/doom/st_stuff.c b/src/doom/st_stuff.c
index 9a25865c..693b6ef2 100644
--- a/src/doom/st_stuff.c
+++ b/src/doom/st_stuff.c
@@ -1261,11 +1261,12 @@ void ST_createWidgets(void)
     // weapons owned
     for(i=0;i<6;i++)
     {
-	STlib_initMultIcon(&w_arms[i],
-			   ST_ARMSX+(i%3)*ST_ARMSXSPACE,
-			   ST_ARMSY+(i/3)*ST_ARMSYSPACE,
-			   arms[i], (int *) &plyr->weaponowned[i+1],
-			   &st_armson);
+        STlib_initMultIcon(&w_arms[i],
+                           ST_ARMSX+(i%3)*ST_ARMSXSPACE,
+                           ST_ARMSY+(i/3)*ST_ARMSYSPACE,
+                           arms[i],
+                           &plyr->weaponowned[i+1],
+                           &st_armson);
     }

     // frags sum