mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
Add game-side def "globalgameflags" that takes a single value. Flag 1 disables hardcoded pinning of HUD weapons to the side of the screen in widescreen.
DONT_BUILD. git-svn-id: https://svn.eduke32.com/eduke32@5161 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5ae6253a30
commit
ce55b4a6fb
4 changed files with 50 additions and 16 deletions
|
@ -102,6 +102,7 @@ enum scripttoken_t
|
|||
T_GLOBALFLAGS,
|
||||
T_RENAMEFILE,
|
||||
T_COPYTILE,
|
||||
T_GLOBALGAMEFLAGS,
|
||||
};
|
||||
|
||||
static int32_t lastmodelid = -1, lastvoxid = -1, modelskin = -1, lastmodelskin = -1, seenframe = 0;
|
||||
|
@ -305,6 +306,7 @@ static int32_t defsparser(scriptfile *script)
|
|||
{ "globalflags", T_GLOBALFLAGS },
|
||||
{ "renamefile", T_RENAMEFILE },
|
||||
{ "copytile", T_COPYTILE },
|
||||
{ "globalgameflags", T_GLOBALGAMEFLAGS }, // dummy
|
||||
};
|
||||
|
||||
while (1)
|
||||
|
@ -2438,6 +2440,13 @@ static int32_t defsparser(scriptfile *script)
|
|||
}
|
||||
break;
|
||||
|
||||
case T_GLOBALGAMEFLAGS:
|
||||
{
|
||||
int32_t dummy;
|
||||
if (scriptfile_getnumber(script,&dummy)) break;
|
||||
}
|
||||
break;
|
||||
|
||||
case T_RENAMEFILE:
|
||||
{
|
||||
int32_t crcval = 0, filenum = -1;
|
||||
|
|
|
@ -233,6 +233,7 @@ enum gametokens
|
|||
T_ID,
|
||||
T_DELAY,
|
||||
T_RENAMEFILE,
|
||||
T_GLOBALGAMEFLAGS,
|
||||
};
|
||||
|
||||
|
||||
|
@ -9494,6 +9495,7 @@ static int32_t parsedefinitions_game(scriptfile *script, int32_t preload)
|
|||
{ "cutscene", T_CUTSCENE },
|
||||
{ "animsounds", T_ANIMSOUNDS },
|
||||
{ "renamefile", T_RENAMEFILE },
|
||||
{ "globalgameflags", T_GLOBALGAMEFLAGS },
|
||||
};
|
||||
|
||||
static const tokenlist sound_musictokens[] =
|
||||
|
@ -9809,6 +9811,11 @@ static int32_t parsedefinitions_game(scriptfile *script, int32_t preload)
|
|||
krename(crcval, filenum, newname);
|
||||
}
|
||||
break;
|
||||
case T_GLOBALGAMEFLAGS:
|
||||
{
|
||||
if (scriptfile_getnumber(script,&duke3d_globalflags)) break;
|
||||
}
|
||||
break;
|
||||
case T_EOF:
|
||||
return(0);
|
||||
default:
|
||||
|
|
|
@ -55,6 +55,12 @@ G_EXTERN int32_t bakipos[MAXINTERPOLATIONS];
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
G_EXTERN int32_t duke3d_globalflags;
|
||||
|
||||
enum {
|
||||
DUKE3D_NO_WIDESCREEN_PINNING = 1<<0,
|
||||
};
|
||||
|
||||
G_EXTERN DukeStatus_t sbar;
|
||||
G_EXTERN actor_t actor[MAXSPRITES];
|
||||
// g_tile: tile-specific data THAT DOES NOT CHANGE during the course of a game
|
||||
|
|
|
@ -2309,14 +2309,17 @@ void P_DisplayWeapon(void)
|
|||
weapon_xoffset -= sintable[(768 + ((*kb) << 7)) & 2047] >> 11;
|
||||
gun_pos += sintable[(768 + ((*kb) << 7)) & 2047] >> 11;
|
||||
|
||||
if (!(duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING))
|
||||
o |= 512;
|
||||
|
||||
if (*kb > 0 && *kb < 8)
|
||||
{
|
||||
G_DrawWeaponTileWithID(cw << 1, weapon_xoffset + 164, (looking_arc << 1) + 176 - gun_pos,
|
||||
RPGGUN + ((*kb) >> 1), gs, o | 512, pal, 0);
|
||||
RPGGUN + ((*kb) >> 1), gs, o, pal, 0);
|
||||
}
|
||||
|
||||
G_DrawWeaponTileWithID(cw, weapon_xoffset + 164, (looking_arc << 1) + 176 - gun_pos, RPGGUN, gs,
|
||||
o | 512, pal, 0);
|
||||
o, pal, 0);
|
||||
break;
|
||||
|
||||
case SHOTGUN_WEAPON:
|
||||
|
@ -2455,32 +2458,38 @@ void P_DisplayWeapon(void)
|
|||
l -= 3;
|
||||
|
||||
G_DrawWeaponTileWithID(cw, (l-(p->look_ang>>1)), (looking_arc+244-gun_pos), FIRSTGUN+kb_frames[*kb>2 ? 0 : *kb], gs, 2, pal, 0);
|
||||
|
||||
break;
|
||||
}
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-17)
|
||||
G_DrawWeaponTileWithID(cw, 194-(p->look_ang>>1), looking_arc+230-gun_pos, FIRSTGUN+4, gs, o|512, pal, 0);
|
||||
|
||||
if (!(duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING))
|
||||
o |= 512;
|
||||
|
||||
if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-17)
|
||||
G_DrawWeaponTileWithID(cw, 194-(p->look_ang>>1), looking_arc+230-gun_pos, FIRSTGUN+4, gs, o, pal, 0);
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-12)
|
||||
{
|
||||
G_DrawWeaponTileWithID(cw<<1, 244-((*kb)<<3)-(p->look_ang>>1), looking_arc+130-gun_pos+((*kb)<<4), FIRSTGUN+6, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw<<1, 244-((*kb)<<3)-(p->look_ang>>1), looking_arc+130-gun_pos+((*kb)<<4), FIRSTGUN+6, gs, o, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o, pal, 0);
|
||||
}
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-7)
|
||||
{
|
||||
G_DrawWeaponTileWithID(cw<<1, 124+((*kb)<<1)-(p->look_ang>>1), looking_arc+430-gun_pos-((*kb)<<3), FIRSTGUN+6, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw<<1, 124+((*kb)<<1)-(p->look_ang>>1), looking_arc+430-gun_pos-((*kb)<<3), FIRSTGUN+6, gs, o, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o, pal, 0);
|
||||
}
|
||||
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-4)
|
||||
{
|
||||
G_DrawWeaponTileWithID(cw<<2, 184-(p->look_ang>>1), looking_arc+235-gun_pos, FIRSTGUN+8, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+210-gun_pos, FIRSTGUN+5, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw<<2, 184-(p->look_ang>>1), looking_arc+235-gun_pos, FIRSTGUN+8, gs, o, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+210-gun_pos, FIRSTGUN+5, gs, o, pal, 0);
|
||||
}
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload)-2)
|
||||
{
|
||||
G_DrawWeaponTileWithID(cw<<2, 164-(p->look_ang>>1), looking_arc+245-gun_pos, FIRSTGUN+8, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw<<2, 164-(p->look_ang>>1), looking_arc+245-gun_pos, FIRSTGUN+8, gs, o, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 224-(p->look_ang>>1), looking_arc+220-gun_pos, FIRSTGUN+5, gs, o, pal, 0);
|
||||
}
|
||||
else if ((*kb) < PWEAPON(screenpeek, PISTOL_WEAPON, Reload))
|
||||
G_DrawWeaponTileWithID(cw, 194-(p->look_ang>>1), looking_arc+235-gun_pos, FIRSTGUN+5, gs, o|512, pal, 0);
|
||||
G_DrawWeaponTileWithID(cw, 194-(p->look_ang>>1), looking_arc+235-gun_pos, FIRSTGUN+5, gs, o, pal, 0);
|
||||
|
||||
break;
|
||||
|
||||
|
@ -2570,6 +2579,9 @@ void P_DisplayWeapon(void)
|
|||
if (VM_OnEvent(EVENT_DRAWWEAPON,g_player[screenpeek].ps->i,screenpeek))
|
||||
break;
|
||||
|
||||
if (!(duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING))
|
||||
o |= 512;
|
||||
|
||||
if ((*kb) < (PWEAPON(screenpeek, p->curr_weapon, TotalTime)+1) && (*kb) > 0)
|
||||
{
|
||||
static uint8_t cat_frames[] = { 0,0,1,1,2,2 };
|
||||
|
@ -2583,11 +2595,11 @@ void P_DisplayWeapon(void)
|
|||
looking_arc += rand()&3;
|
||||
}
|
||||
gun_pos -= 16;
|
||||
G_DrawWeaponTileWithID(cw<<1, weapon_xoffset+210-(p->look_ang>>1),looking_arc+261-gun_pos,FREEZE+2,-32,o|512,pal,0);
|
||||
G_DrawWeaponTileWithID(cw, weapon_xoffset+210-(p->look_ang>>1),looking_arc+235-gun_pos,FREEZE+3+cat_frames[*kb%6],-32,o|512,pal,0);
|
||||
G_DrawWeaponTileWithID(cw<<1, weapon_xoffset+210-(p->look_ang>>1),looking_arc+261-gun_pos,FREEZE+2,-32,o,pal,0);
|
||||
G_DrawWeaponTileWithID(cw, weapon_xoffset+210-(p->look_ang>>1),looking_arc+235-gun_pos,FREEZE+3+cat_frames[*kb%6],-32,o,pal,0);
|
||||
}
|
||||
else
|
||||
G_DrawWeaponTileWithID(cw, weapon_xoffset+210-(p->look_ang>>1),looking_arc+261-gun_pos,FREEZE,gs,o|512,pal,0);
|
||||
G_DrawWeaponTileWithID(cw, weapon_xoffset+210-(p->look_ang>>1),looking_arc+261-gun_pos,FREEZE,gs,o,pal,0);
|
||||
break;
|
||||
|
||||
case GROW_WEAPON:
|
||||
|
|
Loading…
Reference in a new issue