mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- more HUD refactoring
This commit is contained in:
parent
8f61abdf75
commit
1aa88bd201
6 changed files with 40 additions and 20 deletions
|
@ -1016,7 +1016,7 @@ void AddSystemVars()
|
|||
AddGameVar(aszBuf, WEAPON_FLAG_STANDSTILL, GAMEVAR_FLAG_PERPLAYER | GAMEVAR_FLAG_SYSTEM);
|
||||
|
||||
sprintf(aszBuf, "WEAPON%d_SHOOTS", TRIPBOMB_WEAPON);
|
||||
AddGameVar(aszBuf, DTILE_HANDHOLDINGLASER, GAMEVAR_FLAG_PERPLAYER | GAMEVAR_FLAG_SYSTEM);
|
||||
AddGameVar(aszBuf, DTILE_HANDHOLDINGLASER0, GAMEVAR_FLAG_PERPLAYER | GAMEVAR_FLAG_SYSTEM);
|
||||
|
||||
sprintf(aszBuf, "WEAPON%d_SPAWNTIME", TRIPBOMB_WEAPON);
|
||||
AddGameVar(aszBuf, 0, GAMEVAR_FLAG_PERPLAYER | GAMEVAR_FLAG_SYSTEM);
|
||||
|
|
|
@ -62,6 +62,17 @@ inline static void hud_drawpal(double x, double y, int tilenum, int shade, int o
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
inline static void hud_drawpal(double x, double y, const char* tilenum, int shade, int orientation, int p, DAngle angle)
|
||||
{
|
||||
hud_drawsprite(x, y, 1., angle.Degrees(), TexMan.CheckForTexture(tilenum, ETextureType::Any), shade, p, orientation);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void displayloogie(player_struct* p, double const interpfrac)
|
||||
{
|
||||
if (p->loogcnt == 0) return;
|
||||
|
@ -111,7 +122,7 @@ static bool animateknee(int gs, player_struct* p, double xoffset, double yoffset
|
|||
static const int8_t knee_y[] = { 0,-8,-16,-32,-64,-84,-108,-108,-108,-72,-32,-8 };
|
||||
const double kneei = interpolatedvalue<double>(knee_y[p->oknee_incs], knee_y[p->knee_incs], interpfrac);
|
||||
|
||||
hud_drawpal(105 + (kneei * 0.25) + xoffset, 280 + kneei + yoffset, DTILE_KNEE, gs, 4, pal, angle);
|
||||
hud_drawpal(105 + (kneei * 0.25) + xoffset, 280 + kneei + yoffset, "KNEE", gs, 4, pal, angle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -125,10 +136,10 @@ static bool animateknee(int gs, player_struct* p, double xoffset, double yoffset
|
|||
static bool animateknuckles(int gs, player_struct* p, double xoffset, double yoffset, int pal, DAngle angle)
|
||||
{
|
||||
if (isWW2GI() || p->over_shoulder_on != 0 || p->knuckle_incs == 0 || p->GetActor()->spr.extra <= 0) return false;
|
||||
|
||||
static const char* const frames[] = { "CRACKKNUCKLES0", "CRACKKNUCKLES1", "CRACKKNUCKLES2", "CRACKKNUCKLES3" };
|
||||
static const uint8_t knuckle_frames[] = { 0,1,2,2,3,3,3,2,2,1,0 };
|
||||
|
||||
hud_drawpal(160 + xoffset, 180 + yoffset, DTILE_CRACKKNUCKLES + knuckle_frames[p->knuckle_incs >> 1], gs, 4, pal, angle);
|
||||
hud_drawpal(160 + xoffset, 180 + yoffset, frames[knuckle_frames[p->knuckle_incs >> 1]], gs, 4, pal, angle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -163,10 +174,11 @@ static bool animatetip(int gs, player_struct* p, double xoffset, double yoffset,
|
|||
{
|
||||
if (p->tipincs == 0) return false;
|
||||
|
||||
static const char* frames[] = { "TIP0", "TIP1" };
|
||||
static const int8_t tip_y[] = { 0,-8,-16,-32,-64,-84,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-96,-72,-64,-32,-16 };
|
||||
const double tipi = interpolatedvalue<double>(tip_y[p->otipincs], tip_y[p->tipincs], interpfrac) * 0.5;
|
||||
|
||||
hud_drawpal(170 + xoffset, 240 + tipi + yoffset, DTILE_TIP + ((26 - p->tipincs) >> 4), gs, 0, pal, angle);
|
||||
hud_drawpal(170 + xoffset, 240 + tipi + yoffset, frames[((26 - p->tipincs) >> 4)], gs, 0, pal, angle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -181,15 +193,16 @@ static bool animateaccess(int gs, player_struct* p, double xoffset, double yoffs
|
|||
{
|
||||
if (p->access_incs == 0 || p->GetActor()->spr.extra <= 0) return false;
|
||||
|
||||
static const char* const frames[] = { "HANDHOLDINGLASER0", "HANDHOLDINGLASER1", "HANDHOLDINGLASER2", "HANDHOLDINGLASER3" };
|
||||
static const int8_t access_y[] = {0,-8,-16,-32,-64,-84,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-96,-72,-64,-32,-16};
|
||||
const double accessi = interpolatedvalue<double>(access_y[p->oaccess_incs], access_y[p->access_incs], interpfrac);
|
||||
|
||||
const int pal = p->access_spritenum != nullptr ? p->access_spritenum->spr.pal : 0;
|
||||
|
||||
if ((p->access_incs-3) > 0 && (p->access_incs-3)>>3)
|
||||
hud_drawpal(170 + (accessi * 0.25) + xoffset, 266 + accessi + yoffset, DTILE_HANDHOLDINGLASER + (p->access_incs >> 3), gs, 0, pal, angle);
|
||||
hud_drawpal(170 + (accessi * 0.25) + xoffset, 266 + accessi + yoffset, frames[(p->access_incs >> 3)], gs, 0, pal, angle);
|
||||
else
|
||||
hud_drawpal(170 + (accessi * 0.25) + xoffset, 266 + accessi + yoffset, DTILE_HANDHOLDINGACCESS, gs, 4, pal, angle);
|
||||
hud_drawpal(170 + (accessi * 0.25) + xoffset, 266 + accessi + yoffset, "HANDHOLDINGACCESS", gs, 4, pal, angle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -305,11 +318,11 @@ void displayweapon_d(int snum, double interpfrac)
|
|||
{
|
||||
if (*kb < 5 || *kb > 9)
|
||||
{
|
||||
hud_drawpal(220 + offsets.X, 250 + offsets.Y, DTILE_KNEE, shade, o, pal2, angle);
|
||||
hud_drawpal(220 + offsets.X, 250 + offsets.Y, "KNEE", shade, o, pal2, angle);
|
||||
}
|
||||
else
|
||||
{
|
||||
hud_drawpal(160 + offsets.X, 214 + offsets.Y, DTILE_KNEE + 1, shade, o, pal2, angle);
|
||||
hud_drawpal(160 + offsets.X, 214 + offsets.Y, "KNEE1", shade, o, pal2, angle);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -322,16 +335,17 @@ void displayweapon_d(int snum, double interpfrac)
|
|||
|
||||
auto displaytripbomb = [&]()
|
||||
{
|
||||
static const char* const frames[] = { "HANDHOLDINGLASER0", "HANDHOLDINGLASER1", "HANDHOLDINGLASER2", "HANDHOLDINGLASER3" };
|
||||
offsets.X += 8;
|
||||
offsets.Y -= 10;
|
||||
|
||||
if (*kb > 6)
|
||||
offsets.Y += kickback_pic * 8.;
|
||||
else if (*kb < 4)
|
||||
hud_drawpal(142 + offsets.X, 234 + offsets.Y, DTILE_HANDHOLDINGLASER + 3, shade, o, pal, angle);
|
||||
hud_drawpal(142 + offsets.X, 234 + offsets.Y, "HANDHOLDINGLASER3", shade, o, pal, angle);
|
||||
|
||||
hud_drawpal(130 + offsets.X, 249 + offsets.Y, DTILE_HANDHOLDINGLASER + (*kb >> 2), shade, o, pal, angle);
|
||||
hud_drawpal(152 + offsets.X, 249 + offsets.Y, DTILE_HANDHOLDINGLASER + (*kb >> 2), shade, o | 4, pal, angle);
|
||||
hud_drawpal(130 + offsets.X, 249 + offsets.Y, frames[(*kb >> 2)], shade, o, pal, angle);
|
||||
hud_drawpal(152 + offsets.X, 249 + offsets.Y, frames[(*kb >> 2)], shade, o | 4, pal, angle);
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
|
@ -548,7 +548,10 @@ x(WALLBLOOD7, 2307)
|
|||
x(WALLBLOOD8, 2308)
|
||||
x(BURNING2, 2310)
|
||||
x(FIRE2, 2311)
|
||||
x(CRACKKNUCKLES, 2324)
|
||||
x(CRACKKNUCKLES0, 2324)
|
||||
x(CRACKKNUCKLES1, 2325)
|
||||
x(CRACKKNUCKLES2, 2326)
|
||||
x(CRACKKNUCKLES3, 2327)
|
||||
x(SMALLSMOKE, 2329)
|
||||
x(SMALLSMOKEMAKER, 2330)
|
||||
x(FLOORFLAME, 2333)
|
||||
|
@ -651,6 +654,7 @@ x(CREDITPAGE2, 2505)
|
|||
x(CREDITPAGE3, 2506)
|
||||
x(DEVISTATOR, 2510)
|
||||
x(KNEE, 2521)
|
||||
x(KNEE1, 2522)
|
||||
x(CROSSHAIR, 2523)
|
||||
x(FIRSTGUN, 2524)
|
||||
x(FIRSTGUNRELOAD, 2528)
|
||||
|
@ -666,13 +670,17 @@ x(RPGMUZZLEFLASH, 2545)
|
|||
x(FREEZE, 2548)
|
||||
x(CATLITE, 2552)
|
||||
x(SHRINKER, 2556)
|
||||
x(HANDHOLDINGLASER, 2563)
|
||||
x(HANDHOLDINGLASER0, 2563)
|
||||
x(HANDHOLDINGLASER1, 2563)
|
||||
x(HANDHOLDINGLASER2, 2563)
|
||||
x(HANDHOLDINGLASER3, 2563)
|
||||
x(TRIPBOMB, 2566)
|
||||
x(LASERLINE, 2567)
|
||||
x(HANDHOLDINGACCESS, 2568)
|
||||
x(HANDREMOTE, 2570)
|
||||
x(HANDTHROW, 2573)
|
||||
x(TIP, 2576)
|
||||
x(TIP0, 2576)
|
||||
x(TIP1, 2576)
|
||||
x(GLAIR, 2578)
|
||||
x(SCUBAMASK, 2581)
|
||||
x(SPACEMASK, 2584)
|
||||
|
|
|
@ -615,8 +615,6 @@ x(SHELL1, 1703)
|
|||
x(SHOTGUNSHELL, 1704)
|
||||
x(RPGMUZZLEFLASH, 1714)
|
||||
x(CATLITE, 1721)
|
||||
x(HANDHOLDINGLASER, 1732)
|
||||
x(HANDHOLDINGACCESS, 1737)
|
||||
x(HANDREMOTE, 1739)
|
||||
x(TIP, 1745)
|
||||
x(GLAIR, 1747)
|
||||
|
|
|
@ -185,10 +185,10 @@ static void cachegoodsprites(void)
|
|||
for( i = DTILE_BURNING2; i < DTILE_BURNING2+14; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_CRACKKNUCKLES; i < DTILE_CRACKKNUCKLES+4; i++)
|
||||
for( i = DTILE_CRACKKNUCKLES0; i <= DTILE_CRACKKNUCKLES3; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_FIRSTGUN; i < DTILE_FIRSTGUN+3 ; i++ )
|
||||
for( i = DTILE_FIRSTGUN; i <= DTILE_FIRSTGUN+2 ; i++ )
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_EXPLOSION2; i < DTILE_EXPLOSION2+21 ; i++ )
|
||||
|
|
|
@ -272,7 +272,7 @@ class DukeHandHoldingLaser : DukeActor
|
|||
{
|
||||
default
|
||||
{
|
||||
pic "HANDHOLDINGLASER";
|
||||
pic "HANDHOLDINGLASER0";
|
||||
}
|
||||
|
||||
override bool ShootThis(DukeActor shooter, DukePlayer p, Vector3 pos, double ang) const
|
||||
|
|
Loading…
Reference in a new issue