mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-30 13:21:04 +00:00
Duke3D: Promote rotscrnang to Q16.16.
This commit is contained in:
parent
3749a89d6a
commit
ac4b33a770
7 changed files with 58 additions and 45 deletions
|
@ -711,8 +711,8 @@ void G_DrawRooms(int32_t playerNum, int32_t smoothRatio)
|
|||
{
|
||||
if (ud.screen_tilting)
|
||||
{
|
||||
renderSetRollAngle(pPlayer->orotscrnang + mulscale16(((pPlayer->rotscrnang - pPlayer->orotscrnang + 1024)&2047)-1024, smoothRatio));
|
||||
pPlayer->orotscrnang = pPlayer->rotscrnang;
|
||||
renderSetRollAngle(fix16_to_float(pPlayer->oq16rotscrnang + mulscale16(((pPlayer->q16rotscrnang - pPlayer->oq16rotscrnang + fix16_from_int(1024))&0x7FFFFFF)-fix16_from_int(1024), smoothRatio)));
|
||||
pPlayer->oq16rotscrnang = pPlayer->q16rotscrnang;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -334,6 +334,9 @@ enum PlayerLabel_t
|
|||
PLAYER_WEAPRECCNT,
|
||||
PLAYER_INTERFACE_TOGGLE,
|
||||
PLAYER_ROTSCRNANG,
|
||||
PLAYER_OROTSCRNANG,
|
||||
PLAYER_Q16ROTSCRNANG,
|
||||
PLAYER_OQ16ROTSCRNANG,
|
||||
PLAYER_DEAD_FLAG,
|
||||
PLAYER_SHOW_EMPTY_WEAPON,
|
||||
PLAYER_SCUBA_AMOUNT,
|
||||
|
|
|
@ -295,8 +295,8 @@ GAMEEXEC_STATIC GAMEEXEC_INLINE void P_ForceAngle(DukePlayer_t *pPlayer)
|
|||
|
||||
pPlayer->q16horiz += F16(64);
|
||||
pPlayer->return_to_center = 9;
|
||||
pPlayer->rotscrnang = nAngle >> 1;
|
||||
pPlayer->look_ang = pPlayer->rotscrnang;
|
||||
pPlayer->q16rotscrnang = fix16_from_int(nAngle >> 1);
|
||||
pPlayer->look_ang = fix16_to_int(pPlayer->q16rotscrnang);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -466,6 +466,9 @@ memberlabel_t const PlayerLabels[]=
|
|||
{ "weapreccnt", PLAYER_WEAPRECCNT, 0, 0, -1 },
|
||||
{ "interface_toggle_flag", PLAYER_INTERFACE_TOGGLE, 0, 0, -1 },
|
||||
{ "rotscrnang", PLAYER_ROTSCRNANG, 0, 0, -1 },
|
||||
{ "orotscrnang", PLAYER_OROTSCRNANG, 0, 0, -1 },
|
||||
{ "q16rotscrnang", PLAYER_Q16ROTSCRNANG, 0, 0, -1 },
|
||||
{ "oq16rotscrnang", PLAYER_OQ16ROTSCRNANG, 0, 0, -1 },
|
||||
{ "dead_flag", PLAYER_DEAD_FLAG, 0, 0, -1 },
|
||||
{ "show_empty_weapon", PLAYER_SHOW_EMPTY_WEAPON, 0, 0, -1 },
|
||||
{ "scuba_amount", PLAYER_SCUBA_AMOUNT, 0, 0, -1 },
|
||||
|
@ -549,21 +552,25 @@ int32_t __fastcall VM_GetPlayer(int const playerNum, int32_t labelNum, int const
|
|||
|
||||
switch (labelNum)
|
||||
{
|
||||
case PLAYER_ANG: labelNum = fix16_to_int(ps.q16ang); break;
|
||||
case PLAYER_OANG: labelNum = fix16_to_int(ps.oq16ang); break;
|
||||
case PLAYER_ANGVEL: labelNum = fix16_to_int(ps.q16angvel); break;
|
||||
case PLAYER_HORIZ: labelNum = fix16_to_int(ps.q16horiz); break;
|
||||
case PLAYER_OHORIZ: labelNum = fix16_to_int(ps.oq16horiz); break;
|
||||
case PLAYER_HORIZOFF: labelNum = fix16_to_int(ps.q16horizoff); break;
|
||||
case PLAYER_OHORIZOFF: labelNum = fix16_to_int(ps.oq16horizoff); break;
|
||||
case PLAYER_ANG: labelNum = fix16_to_int(ps.q16ang); break;
|
||||
case PLAYER_OANG: labelNum = fix16_to_int(ps.oq16ang); break;
|
||||
case PLAYER_ANGVEL: labelNum = fix16_to_int(ps.q16angvel); break;
|
||||
case PLAYER_HORIZ: labelNum = fix16_to_int(ps.q16horiz); break;
|
||||
case PLAYER_OHORIZ: labelNum = fix16_to_int(ps.oq16horiz); break;
|
||||
case PLAYER_HORIZOFF: labelNum = fix16_to_int(ps.q16horizoff); break;
|
||||
case PLAYER_OHORIZOFF: labelNum = fix16_to_int(ps.oq16horizoff); break;
|
||||
case PLAYER_ROTSCRNANG: labelNum = fix16_to_int(ps.q16rotscrnang); break;
|
||||
case PLAYER_OROTSCRNANG: labelNum = fix16_to_int(ps.oq16rotscrnang); break;
|
||||
|
||||
case PLAYER_Q16ANG: labelNum = ps.q16ang; break;
|
||||
case PLAYER_OQ16ANG: labelNum = ps.oq16ang; break;
|
||||
case PLAYER_Q16ANGVEL: labelNum = ps.q16angvel; break;
|
||||
case PLAYER_Q16HORIZ: labelNum = ps.q16horiz; break;
|
||||
case PLAYER_OQ16HORIZ: labelNum = ps.oq16horiz; break;
|
||||
case PLAYER_Q16HORIZOFF: labelNum = ps.q16horizoff; break;
|
||||
case PLAYER_OQ16HORIZOFF: labelNum = ps.oq16horizoff; break;
|
||||
case PLAYER_Q16ANG: labelNum = ps.q16ang; break;
|
||||
case PLAYER_OQ16ANG: labelNum = ps.oq16ang; break;
|
||||
case PLAYER_Q16ANGVEL: labelNum = ps.q16angvel; break;
|
||||
case PLAYER_Q16HORIZ: labelNum = ps.q16horiz; break;
|
||||
case PLAYER_OQ16HORIZ: labelNum = ps.oq16horiz; break;
|
||||
case PLAYER_Q16HORIZOFF: labelNum = ps.q16horizoff; break;
|
||||
case PLAYER_OQ16HORIZOFF: labelNum = ps.oq16horizoff; break;
|
||||
case PLAYER_Q16ROTSCRNANG: labelNum = ps.q16rotscrnang; break;
|
||||
case PLAYER_OQ16ROTSCRNANG: labelNum = ps.oq16rotscrnang; break;
|
||||
|
||||
case PLAYER_ACCESS_INCS: labelNum = ps.access_incs; break;
|
||||
case PLAYER_ACCESS_SPRITENUM: labelNum = ps.access_spritenum; break;
|
||||
|
@ -664,7 +671,6 @@ int32_t __fastcall VM_GetPlayer(int const playerNum, int32_t labelNum, int const
|
|||
case PLAYER_RAPID_FIRE_HOLD: labelNum = ps.rapid_fire_hold; break;
|
||||
case PLAYER_RELOADING: labelNum = ps.reloading; break;
|
||||
case PLAYER_RETURN_TO_CENTER: labelNum = ps.return_to_center; break;
|
||||
case PLAYER_ROTSCRNANG: labelNum = ps.rotscrnang; break;
|
||||
case PLAYER_RUNSPEED: labelNum = ps.runspeed; break;
|
||||
case PLAYER_SBS: labelNum = ps.sbs; break;
|
||||
case PLAYER_SCREAM_VOICE: labelNum = ps.scream_voice; break;
|
||||
|
@ -743,21 +749,25 @@ void __fastcall VM_SetPlayer(int const playerNum, int const labelNum, int const
|
|||
|
||||
switch (labelNum)
|
||||
{
|
||||
case PLAYER_HORIZ: ps.q16horiz = fix16_from_int(newValue); break;
|
||||
case PLAYER_OHORIZ: ps.oq16horiz = fix16_from_int(newValue); break;
|
||||
case PLAYER_OHORIZOFF: ps.oq16horizoff = fix16_from_int(newValue); break;
|
||||
case PLAYER_ANG: ps.q16ang = fix16_from_int(newValue); break;
|
||||
case PLAYER_OANG: ps.oq16ang = fix16_from_int(newValue); break;
|
||||
case PLAYER_ANGVEL: ps.q16angvel = fix16_from_int(newValue); break;
|
||||
case PLAYER_HORIZOFF: ps.q16horizoff = fix16_from_int(newValue); break;
|
||||
case PLAYER_HORIZ: ps.q16horiz = fix16_from_int(newValue); break;
|
||||
case PLAYER_OHORIZ: ps.oq16horiz = fix16_from_int(newValue); break;
|
||||
case PLAYER_OHORIZOFF: ps.oq16horizoff = fix16_from_int(newValue); break;
|
||||
case PLAYER_ANG: ps.q16ang = fix16_from_int(newValue); break;
|
||||
case PLAYER_OANG: ps.oq16ang = fix16_from_int(newValue); break;
|
||||
case PLAYER_ANGVEL: ps.q16angvel = fix16_from_int(newValue); break;
|
||||
case PLAYER_HORIZOFF: ps.q16horizoff = fix16_from_int(newValue); break;
|
||||
case PLAYER_ROTSCRNANG: ps.q16rotscrnang = fix16_from_int(newValue); break;
|
||||
case PLAYER_OROTSCRNANG: ps.oq16rotscrnang = fix16_from_int(newValue); break;
|
||||
|
||||
case PLAYER_Q16HORIZ: ps.q16horiz = newValue; break;
|
||||
case PLAYER_OQ16HORIZ: ps.oq16horiz = newValue; break;
|
||||
case PLAYER_OQ16HORIZOFF: ps.oq16horizoff = newValue; break;
|
||||
case PLAYER_Q16ANG: ps.q16ang = newValue; break;
|
||||
case PLAYER_OQ16ANG: ps.oq16ang = newValue; break;
|
||||
case PLAYER_Q16ANGVEL: ps.q16angvel = newValue; break;
|
||||
case PLAYER_Q16HORIZOFF: ps.q16horizoff = newValue; break;
|
||||
case PLAYER_Q16HORIZ: ps.q16horiz = newValue; break;
|
||||
case PLAYER_OQ16HORIZ: ps.oq16horiz = newValue; break;
|
||||
case PLAYER_OQ16HORIZOFF: ps.oq16horizoff = newValue; break;
|
||||
case PLAYER_Q16ANG: ps.q16ang = newValue; break;
|
||||
case PLAYER_OQ16ANG: ps.oq16ang = newValue; break;
|
||||
case PLAYER_Q16ANGVEL: ps.q16angvel = newValue; break;
|
||||
case PLAYER_Q16HORIZOFF: ps.q16horizoff = newValue; break;
|
||||
case PLAYER_Q16ROTSCRNANG: ps.q16rotscrnang = newValue; break;
|
||||
case PLAYER_OQ16ROTSCRNANG: ps.oq16rotscrnang = newValue; break;
|
||||
|
||||
case PLAYER_ACCESS_INCS: ps.access_incs = newValue; break;
|
||||
case PLAYER_ACCESS_SPRITENUM: ps.access_spritenum = newValue; break;
|
||||
|
@ -853,7 +863,6 @@ void __fastcall VM_SetPlayer(int const playerNum, int const labelNum, int const
|
|||
case PLAYER_RAPID_FIRE_HOLD: ps.rapid_fire_hold = newValue; break;
|
||||
case PLAYER_RELOADING: ps.reloading = newValue; break;
|
||||
case PLAYER_RETURN_TO_CENTER: ps.return_to_center = newValue; break;
|
||||
case PLAYER_ROTSCRNANG: ps.rotscrnang = newValue; break;
|
||||
case PLAYER_RUNSPEED: ps.runspeed = newValue; break;
|
||||
case PLAYER_SBS: ps.sbs = newValue; break;
|
||||
case PLAYER_SCREAM_VOICE: ps.scream_voice = newValue; break;
|
||||
|
|
|
@ -4684,7 +4684,7 @@ void P_UpdatePosWhenViewingCam(DukePlayer_t *pPlayer)
|
|||
pPlayer->vel.y = 0;
|
||||
sprite[pPlayer->i].xvel = 0;
|
||||
pPlayer->look_ang = 0;
|
||||
pPlayer->rotscrnang = 0;
|
||||
pPlayer->q16rotscrnang = 0;
|
||||
}
|
||||
|
||||
static void P_DoWater(int const playerNum, int const playerBits, int const floorZ, int const ceilZ)
|
||||
|
@ -4847,7 +4847,7 @@ static void P_Dead(int const playerNum, int const sectorLotag, int const floorZ,
|
|||
pushmove(&pPlayer->pos, &pPlayer->cursectnum, 128L, (4L<<8), (20L<<8), CLIPMASK0);
|
||||
|
||||
if (floorZ > ceilZ + ZOFFSET2 && pSprite->pal != 1)
|
||||
pPlayer->rotscrnang = (pPlayer->dead_flag + ((floorZ+pPlayer->pos.z)>>7))&2047;
|
||||
pPlayer->q16rotscrnang = fix16_from_int((pPlayer->dead_flag + ((floorZ+pPlayer->pos.z)>>7))) & 0x7FFFFFF;
|
||||
|
||||
pPlayer->on_warping_sector = 0;
|
||||
}
|
||||
|
@ -5103,10 +5103,10 @@ void P_ProcessInput(int playerNum)
|
|||
return;
|
||||
}
|
||||
|
||||
pPlayer->rotscrnang -= (pPlayer->rotscrnang >> 1);
|
||||
pPlayer->q16rotscrnang = fix16_ssub(pPlayer->q16rotscrnang, fix16_sdiv(pPlayer->q16rotscrnang, fix16_from_int(2)));
|
||||
|
||||
if (pPlayer->rotscrnang && !(pPlayer->rotscrnang >> 1))
|
||||
pPlayer->rotscrnang -= ksgn(pPlayer->rotscrnang);
|
||||
if (pPlayer->q16rotscrnang && !fix16_sdiv(pPlayer->q16rotscrnang, fix16_from_int(2)))
|
||||
pPlayer->q16rotscrnang = fix16_ssub(pPlayer->q16rotscrnang, fix16_from_int(ksgn(fix16_to_int(pPlayer->q16rotscrnang))));
|
||||
|
||||
pPlayer->look_ang -= (pPlayer->look_ang >> 2);
|
||||
|
||||
|
@ -5119,7 +5119,7 @@ void P_ProcessInput(int playerNum)
|
|||
if (VM_OnEvent(EVENT_LOOKLEFT,pPlayer->i,playerNum) == 0)
|
||||
{
|
||||
pPlayer->look_ang -= 152;
|
||||
pPlayer->rotscrnang += 24;
|
||||
pPlayer->q16rotscrnang = fix16_sadd(pPlayer->q16rotscrnang, fix16_from_int(24));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5129,7 +5129,7 @@ void P_ProcessInput(int playerNum)
|
|||
if (VM_OnEvent(EVENT_LOOKRIGHT,pPlayer->i,playerNum) == 0)
|
||||
{
|
||||
pPlayer->look_ang += 152;
|
||||
pPlayer->rotscrnang -= 24;
|
||||
pPlayer->q16rotscrnang = fix16_ssub(pPlayer->q16rotscrnang, fix16_from_int(24));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -178,7 +178,8 @@ typedef struct {
|
|||
|
||||
int16_t weaprecs[MAX_WEAPONS], weapon_sway, crack_time, bobcounter;
|
||||
|
||||
int16_t orotscrnang, rotscrnang, dead_flag; // JBF 20031220: added orotscrnang
|
||||
int16_t dead_flag;
|
||||
fix16_t oq16rotscrnang, q16rotscrnang; // JBF 20031220: added orotscrnang
|
||||
int16_t holoduke_on, pycount;
|
||||
int16_t transporter_hold, clipdist;
|
||||
|
||||
|
|
|
@ -649,7 +649,7 @@ void P_ResetMultiPlayer(int playerNum)
|
|||
p.opyoff = 0;
|
||||
p.q16horiz = F16(100);
|
||||
p.q16horizoff = 0;
|
||||
p.rotscrnang = 0;
|
||||
p.q16rotscrnang = 0;
|
||||
p.runspeed = g_playerFriction;
|
||||
p.vel = { 0, 0, 0 };
|
||||
p.wackedbyactor = -1;
|
||||
|
@ -731,7 +731,7 @@ void P_ResetPlayer(int playerNum)
|
|||
p.one_eighty_count = 0;
|
||||
p.opyoff = 0;
|
||||
p.oq16horiz = F16(140);
|
||||
p.orotscrnang = 1; // JBF 20031220
|
||||
p.oq16rotscrnang = fix16_one; // JBF 20031220
|
||||
p.over_shoulder_on = 0;
|
||||
p.palette = BASEPAL;
|
||||
p.player_par = 0;
|
||||
|
@ -745,7 +745,7 @@ void P_ResetPlayer(int playerNum)
|
|||
p.rapid_fire_hold = 0;
|
||||
p.reloading = 0;
|
||||
p.return_to_center = 9;
|
||||
p.rotscrnang = 0;
|
||||
p.q16rotscrnang = 0;
|
||||
p.sbs = 0;
|
||||
p.show_empty_weapon = 0;
|
||||
p.somethingonplayer = -1;
|
||||
|
|
Loading…
Reference in a new issue