Imagine relying on C23 features
This commit is contained in:
parent
3161bf2a5d
commit
244cfa9538
5 changed files with 21 additions and 6 deletions
|
|
@ -308,6 +308,7 @@ target_compile_options(SRB2SDL2 PRIVATE
|
|||
|
||||
$<$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,9.1.0>:
|
||||
-Wno-error=address-of-packed-member
|
||||
-Wc11-c2x-compat
|
||||
>
|
||||
>
|
||||
|
||||
|
|
|
|||
|
|
@ -83,11 +83,11 @@ playersprite_t spr2defaults[NUMPLAYERSPRITES] = {
|
|||
};
|
||||
|
||||
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
|
||||
state_t states[NUMSTATES] = {};
|
||||
state_t states[NUMSTATES] = {0};
|
||||
|
||||
mobjinfo_t mobjinfo[NUMMOBJTYPES] = {};
|
||||
mobjinfo_t mobjinfo[NUMMOBJTYPES] = {0};
|
||||
|
||||
skincolor_t skincolors[MAXSKINCOLORS] = {};
|
||||
skincolor_t skincolors[MAXSKINCOLORS] = {0};
|
||||
|
||||
/** Patches the mobjinfo, state, and skincolor tables.
|
||||
* Free slots are emptied out and set to initial values.
|
||||
|
|
|
|||
|
|
@ -294,12 +294,14 @@ static int mobj_get(lua_State *L)
|
|||
lua_pushinteger(L, mo->sprite);
|
||||
break;
|
||||
case mobj_frame:
|
||||
{
|
||||
UINT32 frame = mo->frame;
|
||||
// translate SPR2 back to frames
|
||||
if (lua_compatmode && mo->sprite == SPR_PLAY)
|
||||
frame = (frame & ~FF_FRAMEMASK) | spr2frame(mo->sprite2, mo->frame);
|
||||
lua_pushinteger(L, frame);
|
||||
break;
|
||||
}
|
||||
case mobj_sprite2:
|
||||
lua_pushinteger(L, mo->sprite2);
|
||||
break;
|
||||
|
|
@ -369,17 +371,21 @@ static int mobj_get(lua_State *L)
|
|||
lua_pushinteger(L, mo->flags);
|
||||
break;
|
||||
case mobj_flags2:
|
||||
{
|
||||
UINT32 flags2 = mo->flags2;
|
||||
if (lua_compatmode && (mo->renderflags & RF_DONTDRAW) == RF_DONTDRAW)
|
||||
flags2 |= MF2_DONTDRAW;
|
||||
lua_pushinteger(L, flags2);
|
||||
break;
|
||||
}
|
||||
case mobj_eflags:
|
||||
UINT32 eflags = mo->eflags;
|
||||
{
|
||||
UINT32 eflags = mo->eflags; // yes, not UINT16
|
||||
if (lua_compatmode)
|
||||
eflags |= (~mo->renderflags & RF_DONTDRAW);
|
||||
lua_pushinteger(L, eflags);
|
||||
break;
|
||||
}
|
||||
case mobj_renderflags:
|
||||
lua_pushinteger(L, mo->renderflags);
|
||||
break;
|
||||
|
|
@ -677,11 +683,13 @@ static int mobj_set(lua_State *L)
|
|||
mo->rollangle = luaL_checkangle(L, 3);
|
||||
break;
|
||||
case mobj_sprite:
|
||||
{
|
||||
spritenum_t newsprite = luaL_checkinteger(L, 3);
|
||||
if (lua_compatmode && mo->sprite != SPR_PLAY && newsprite == SPR_PLAY)
|
||||
frame2spr2(mo, mo->frame);
|
||||
mo->sprite = newsprite;
|
||||
break;
|
||||
}
|
||||
case mobj_frame:
|
||||
// Check for SPR2
|
||||
if (lua_compatmode && mo->sprite == SPR_PLAY)
|
||||
|
|
@ -795,6 +803,7 @@ static int mobj_set(lua_State *L)
|
|||
break;
|
||||
}
|
||||
case mobj_flags2:
|
||||
{
|
||||
UINT32 flags2 = luaL_checkinteger(L, 3);
|
||||
if (lua_compatmode)
|
||||
{
|
||||
|
|
@ -805,12 +814,15 @@ static int mobj_set(lua_State *L)
|
|||
}
|
||||
mo->flags2 = flags2;
|
||||
break;
|
||||
}
|
||||
case mobj_eflags:
|
||||
{
|
||||
UINT32 eflags = luaL_checkinteger(L, 3);
|
||||
if (lua_compatmode)
|
||||
mo->renderflags = (mo->renderflags & ~RF_DONTDRAW) | (~eflags & RF_DONTDRAW); // eeeyup.
|
||||
mo->eflags = (UINT16)eflags;
|
||||
break;
|
||||
}
|
||||
case mobj_renderflags:
|
||||
mo->renderflags = (UINT32)luaL_checkinteger(L, 3);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -473,7 +473,7 @@ static void R_LoadSkinSprites(UINT16 wadnum, UINT16 *lump, UINT16 *lastlump, ski
|
|||
size_t i;
|
||||
spritedef_t *sd;
|
||||
spriteframe_t *sf;
|
||||
spritedef_t tmp = {};
|
||||
spritedef_t tmp = {0};
|
||||
const char *sprname = W_CheckNameForNumPwad(wadnum, *lump);
|
||||
R_AddSingleSpriteDef(sprname, &tmp, wadnum, *lump, *lastlump);
|
||||
|
||||
|
|
@ -557,7 +557,7 @@ static void R_IHateThatHedgehog(UINT16 wadnum)
|
|||
UINT16 lump = W_CheckNumForNamePwad("S_START", wadnum, 0);
|
||||
if (lump == INT16_MAX)
|
||||
I_Error("R_IHateThatHedgehog: could not find the hedgehog");
|
||||
R_LoadSkinSprites(wadnum, &lump, &(UINT16){}, skin);
|
||||
R_LoadSkinSprites(wadnum, &lump, &(UINT16){0}, skin);
|
||||
|
||||
#ifdef SKINVALUES
|
||||
skin_cons_t[0].value = 0;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,8 @@ sfxinfo_t S_sfx[NUMSFX] =
|
|||
|
||||
// skin sounds free slots to add sounds at run time (Boris HACK!!!)
|
||||
// initialized to NULL
|
||||
|
||||
0
|
||||
};
|
||||
|
||||
static char soundnames[NUMSFX][7] = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue