mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 17:01:28 +00:00
- Duke: Leverage new spritetype
methods within Duke, removing bposx
/bposy
/bposz
from hittype.
This commit is contained in:
parent
07a43c572e
commit
97159c20c1
13 changed files with 62 additions and 123 deletions
|
@ -415,16 +415,14 @@ void moveplayers(void)
|
|||
auto p = &ps[pn];
|
||||
auto spri = &act->s;
|
||||
|
||||
// Back up player's sprite angle, used in DrawAutomapPlayer() when input is synchronised.
|
||||
act->tempang = spri->ang;
|
||||
|
||||
if (act->GetOwner())
|
||||
{
|
||||
if (p->newOwner != nullptr) //Looking thru the camera
|
||||
{
|
||||
spri->x = p->oposx;
|
||||
spri->y = p->oposy;
|
||||
act->bposz = spri->z = p->oposz + gs.playerheight;
|
||||
spri->z = p->oposz + gs.playerheight;
|
||||
spri->backupz();
|
||||
spri->ang = p->angle.oang.asbuild();
|
||||
setsprite(act, spri->pos);
|
||||
}
|
||||
|
@ -503,9 +501,7 @@ void moveplayers(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
act->bposx = spri->x;
|
||||
act->bposy = spri->y;
|
||||
act->bposz = spri->z;
|
||||
spri->backuppos();
|
||||
|
||||
spri->cstat = 0;
|
||||
|
||||
|
@ -811,9 +807,7 @@ void movecrane(DDukeActor *actor, int crane)
|
|||
{
|
||||
setsprite(Owner, spri->pos);
|
||||
|
||||
Owner->bposx = spri->x;
|
||||
Owner->bposy = spri->y;
|
||||
Owner->bposz = spri->z;
|
||||
Owner->s.opos = spri->pos;
|
||||
|
||||
spri->zvel = 0;
|
||||
}
|
||||
|
@ -1081,7 +1075,8 @@ void movewaterdrip(DDukeActor *actor, int drip)
|
|||
}
|
||||
else
|
||||
{
|
||||
actor->bposz = s->z = t[0];
|
||||
s->z = t[0];
|
||||
s->backupz();
|
||||
t[1] = 48 + (krand() & 31);
|
||||
}
|
||||
}
|
||||
|
@ -2015,9 +2010,6 @@ void camera(DDukeActor *actor)
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// backup current angle for interpolating camera angle.
|
||||
actor->tempang = s->ang;
|
||||
|
||||
if (s->hitag > 0)
|
||||
{
|
||||
|
@ -2972,8 +2964,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
|
|||
|
||||
if (numplayers > 1)
|
||||
{
|
||||
a2->bposx = sj->x;
|
||||
a2->bposy = sj->y;
|
||||
sj->backupvec2();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3083,8 +3074,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
|
|||
{
|
||||
if (a2->s.picnum != SECTOREFFECTOR && a2->s.picnum != LOCATORS)
|
||||
{
|
||||
a2->bposx = a2->s.x;
|
||||
a2->bposy = a2->s.y;
|
||||
a2->s.backupvec2();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3150,8 +3140,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
|
|||
{
|
||||
if (numplayers < 2)
|
||||
{
|
||||
a2->bposx = spa2->x;
|
||||
a2->bposy = spa2->y;
|
||||
spa2->backupvec2();
|
||||
}
|
||||
|
||||
spa2->x += l;
|
||||
|
@ -3159,8 +3148,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
|
|||
|
||||
if (numplayers > 1)
|
||||
{
|
||||
a2->bposx = spa2->x;
|
||||
a2->bposy = spa2->y;
|
||||
spa2->backupvec2();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3995,7 +3983,7 @@ void handle_se17(DDukeActor* actor)
|
|||
}
|
||||
if (act1->s.statnum != STAT_EFFECTOR)
|
||||
{
|
||||
act1->bposz = act1->s.z;
|
||||
act1->s.backupz();
|
||||
act1->s.z += q;
|
||||
}
|
||||
|
||||
|
@ -4065,9 +4053,7 @@ void handle_se17(DDukeActor* actor)
|
|||
spr3->y += spr2->y - s->y;
|
||||
spr3->z = sector[spr2->sectnum].floorz - (sc->floorz - spr3->z);
|
||||
|
||||
act3->bposx = spr3->x;
|
||||
act3->bposy = spr3->y;
|
||||
act3->bposz = spr3->z;
|
||||
spr3->backuppos();
|
||||
|
||||
changespritesect(act3, spr2->sectnum);
|
||||
setsprite(act3, spr3->pos);
|
||||
|
@ -4119,7 +4105,8 @@ void handle_se18(DDukeActor *actor, bool morecheck)
|
|||
if (ps[a2->PlayerIndex()].on_ground == 1) ps[a2->PlayerIndex()].posz += sc->extra;
|
||||
if (a2->s.zvel == 0 && a2->s.statnum != STAT_EFFECTOR && a2->s.statnum != STAT_PROJECTILE)
|
||||
{
|
||||
a2->bposz = a2->s.z += sc->extra;
|
||||
a2->s.z += sc->extra;
|
||||
a2->s.backupz();
|
||||
a2->floorz = sc->floorz;
|
||||
}
|
||||
}
|
||||
|
@ -4156,7 +4143,8 @@ void handle_se18(DDukeActor *actor, bool morecheck)
|
|||
if (ps[a2->PlayerIndex()].on_ground == 1) ps[a2->PlayerIndex()].posz -= sc->extra;
|
||||
if (a2->s.zvel == 0 && a2->s.statnum != STAT_EFFECTOR && a2->s.statnum != STAT_PROJECTILE)
|
||||
{
|
||||
a2->bposz = a2->s.z -= sc->extra;
|
||||
a2->s.z -= sc->extra;
|
||||
a2->s.backupz();
|
||||
a2->floorz = sc->floorz;
|
||||
}
|
||||
}
|
||||
|
@ -4442,8 +4430,7 @@ void handle_se26(DDukeActor* actor)
|
|||
{
|
||||
if (a2->s.statnum != 3 && a2->s.statnum != 10)
|
||||
{
|
||||
a2->bposx = a2->s.x;
|
||||
a2->bposy = a2->s.y;
|
||||
a2->s.backupvec2();
|
||||
|
||||
a2->s.x += l;
|
||||
a2->s.y += x;
|
||||
|
@ -4579,8 +4566,7 @@ void handle_se24(DDukeActor *actor, int16_t *list1, int16_t *list2, int TRIPBOMB
|
|||
{
|
||||
if (s2->z > (a2->floorz - (16 << 8)))
|
||||
{
|
||||
a2->bposx = s2->x;
|
||||
a2->bposy = s2->y;
|
||||
s2->backupvec2();
|
||||
|
||||
s2->x += x >> shift;
|
||||
s2->y += l >> shift;
|
||||
|
@ -5395,9 +5381,7 @@ void recordoldspritepos()
|
|||
DukeStatIterator it(statNum);
|
||||
while (auto ac = it.Next())
|
||||
{
|
||||
ac->bposx = ac->s.x;
|
||||
ac->bposy = ac->s.y;
|
||||
ac->bposz = ac->s.z;
|
||||
ac->s.backuploc();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2075,9 +2075,7 @@ void movetransports_d(void)
|
|||
ps[p].oposz = ps[p].posz;
|
||||
|
||||
auto pa = ps[p].GetActor();
|
||||
pa->bposx = ps[p].posx;
|
||||
pa->bposy = ps[p].posy;
|
||||
pa->bposz = ps[p].posz;
|
||||
pa->s.opos = ps[p].pos;
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
ps[p].cursectnum = Owner->s.sectnum;
|
||||
|
@ -2240,9 +2238,7 @@ void movetransports_d(void)
|
|||
spr2->z -= spr->z - sector[Owner->s.sectnum].floorz;
|
||||
spr2->ang = Owner->s.ang;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
if (spr->pal == 0)
|
||||
{
|
||||
|
@ -2268,9 +2264,7 @@ void movetransports_d(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = Owner->s.z + 4096;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
}
|
||||
|
@ -2280,9 +2274,7 @@ void movetransports_d(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].ceilingz + ll;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -2292,9 +2284,7 @@ void movetransports_d(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].floorz - ll;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -3849,10 +3839,9 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
|
|||
|
||||
if (t[1] == 0 || a == 0)
|
||||
{
|
||||
if ((badguy(actor) && spr->extra <= 0) || (actor->bposx != spr->x) || (actor->bposy != spr->y))
|
||||
if ((badguy(actor) && spr->extra <= 0) || (spr->ox != spr->x) || (spr->oy != spr->y))
|
||||
{
|
||||
actor->bposx = spr->x;
|
||||
actor->bposy = spr->y;
|
||||
spr->backupvec2();
|
||||
setsprite(actor, spr->pos);
|
||||
}
|
||||
return;
|
||||
|
@ -3957,7 +3946,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
|
|||
}
|
||||
else if (spr->picnum != DRONE && spr->picnum != SHARK && spr->picnum != COMMANDER)
|
||||
{
|
||||
if (actor->bposz != spr->z || (ud.multimode < 2 && ud.player_skill < 2))
|
||||
if (spr->oz != spr->z || (ud.multimode < 2 && ud.player_skill < 2))
|
||||
{
|
||||
if ((t[0] & 1) || ps[playernum].actorsqu == actor) return;
|
||||
else daxvel <<= 1;
|
||||
|
|
|
@ -1846,9 +1846,7 @@ void movetransports_r(void)
|
|||
spr2->z -= spr->z - sector[Owner->s.sectnum].floorz;
|
||||
spr2->ang = Owner->s.ang;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
auto beam = spawn(act, TRANSPORTERBEAM);
|
||||
S_PlayActorSound(TELEPORTER, beam);
|
||||
|
@ -1871,9 +1869,7 @@ void movetransports_r(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = Owner->s.z + 4096;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
}
|
||||
|
@ -1883,9 +1879,7 @@ void movetransports_r(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].ceilingz + ll;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -1895,9 +1889,7 @@ void movetransports_r(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].floorz - ll;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -1909,9 +1901,7 @@ void movetransports_r(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].ceilingz + ll2;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -1925,9 +1915,7 @@ void movetransports_r(void)
|
|||
spr2->y += (Owner->s.y - spr->y);
|
||||
spr2->z = sector[Owner->s.sectnum].floorz - ll2;
|
||||
|
||||
act2->bposx = spr2->x;
|
||||
act2->bposy = spr2->y;
|
||||
act2->bposz = spr2->z;
|
||||
spr2->backuppos();
|
||||
|
||||
changespritesect(act2, Owner->s.sectnum);
|
||||
|
||||
|
@ -3810,10 +3798,9 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
|
|||
|
||||
if (t[1] == 0 || a == 0)
|
||||
{
|
||||
if ((badguy(actor) && spr->extra <= 0) || (actor->bposx != spr->x) || (actor->bposy != spr->y))
|
||||
if ((badguy(actor) && spr->extra <= 0) || (spr->ox != spr->x) || (spr->oy != spr->y))
|
||||
{
|
||||
actor->bposx = spr->x;
|
||||
actor->bposy = spr->y;
|
||||
spr->backupvec2();
|
||||
setsprite(actor, spr->pos);
|
||||
}
|
||||
if (badguy(actor) && spr->extra <= 0)
|
||||
|
@ -3924,7 +3911,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
|
|||
(!isRRRA() && spr->picnum != DRONE && spr->picnum != SHARK && spr->picnum != UFO1_RR
|
||||
&& spr->picnum != UFO2 && spr->picnum != UFO3 && spr->picnum != UFO4 && spr->picnum != UFO5))
|
||||
{
|
||||
if (actor->bposz != spr->z || (ud.multimode < 2 && ud.player_skill < 2))
|
||||
if (spr->oz != spr->z || (ud.multimode < 2 && ud.player_skill < 2))
|
||||
{
|
||||
if ((t[0] & 1) || ps[pnum].actorsqu == actor) return;
|
||||
else daxvel <<= 1;
|
||||
|
|
|
@ -182,9 +182,7 @@ void animatesprites_d(int x, int y, int a, int smoothratio)
|
|||
}
|
||||
else if (s->picnum != CRANEPOLE)
|
||||
{
|
||||
t->x -= MulScale(MaxSmoothRatio - smoothratio, s->x - h->bposx, 16);
|
||||
t->y -= MulScale(MaxSmoothRatio - smoothratio, s->y - h->bposy, 16);
|
||||
t->z -= MulScale(MaxSmoothRatio - smoothratio, s->z - h->bposz, 16);
|
||||
t->pos = s->interpolatedvec3(smoothratio);
|
||||
}
|
||||
|
||||
sect = s->sectnum;
|
||||
|
|
|
@ -170,9 +170,7 @@ void animatesprites_r(int x, int y, int a, int smoothratio)
|
|||
}
|
||||
else if (s->picnum != CRANEPOLE)
|
||||
{
|
||||
t->x -= MulScale(MaxSmoothRatio - smoothratio, s->x - h->bposx, 16);
|
||||
t->y -= MulScale(MaxSmoothRatio - smoothratio, s->y - h->bposy, 16);
|
||||
t->z -= MulScale(MaxSmoothRatio - smoothratio, s->z - h->bposz, 16);
|
||||
t->pos = s->interpolatedvec3(smoothratio);
|
||||
}
|
||||
|
||||
sect = s->sectnum;
|
||||
|
|
|
@ -559,9 +559,8 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang,
|
|||
{
|
||||
auto act = ps[p].GetActor();
|
||||
auto pspr = &act->s;
|
||||
x1 = act->bposx + MulScale(pspr->x - act->bposx, smoothratio, 16) - cposx;
|
||||
y1 = act->bposy + MulScale(pspr->y - act->bposy, smoothratio, 16) - cposy;
|
||||
daang = ((!SyncInput() ? pspr->ang : act->tempang + MulScale(((pspr->ang + 1024 - act->tempang) & 2047) - 1024, smoothratio, 16)) - cang) & 2047;
|
||||
auto spos = pspr->interpolatedvec2(smoothratio);
|
||||
daang = ((!SyncInput() ? pspr->ang : pspr->interpolatedang(smoothratio)) - cang) & 2047;
|
||||
|
||||
if (p == screenpeek || ud.coop == 1)
|
||||
{
|
||||
|
@ -577,7 +576,7 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang,
|
|||
if (j < 22000) j = 22000;
|
||||
else if (j > (65536 << 1)) j = (65536 << 1);
|
||||
|
||||
DrawTexture(twod, tileGetTexture(i), xdim / 2. + x1 / 4096., ydim / 2. + y1 / 4096., DTA_TranslationIndex, TRANSLATION(Translation_Remap + setpal(&pp), pspr->pal), DTA_CenterOffset, true,
|
||||
DrawTexture(twod, tileGetTexture(i), xdim / 2. + spos.x / 4096., ydim / 2. + spos.y / 4096., DTA_TranslationIndex, TRANSLATION(Translation_Remap + setpal(&pp), pspr->pal), DTA_CenterOffset, true,
|
||||
DTA_Rotate, daang * (-360./2048), DTA_Color, shadeToLight(pspr->shade), DTA_ScaleX, j / 65536., DTA_ScaleY, j / 65536., TAG_DONE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1314,16 +1314,16 @@ void DoActor(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
|
|||
else SetGameVarID((int)lVar2, act->lastvy, sActor, sPlayer);
|
||||
break;
|
||||
case ACTOR_HTBPOSX:
|
||||
if (bSet) act->bposx = lValue;
|
||||
else SetGameVarID((int)lVar2, act->bposx, sActor, sPlayer);
|
||||
if (bSet) spr->ox = lValue;
|
||||
else SetGameVarID((int)lVar2, spr->ox, sActor, sPlayer);
|
||||
break;
|
||||
case ACTOR_HTBPOSY:
|
||||
if (bSet) act->bposy = lValue;
|
||||
else SetGameVarID((int)lVar2, act->bposy, sActor, sPlayer);
|
||||
if (bSet) spr->oy = lValue;
|
||||
else SetGameVarID((int)lVar2, spr->oy, sActor, sPlayer);
|
||||
break;
|
||||
case ACTOR_HTBPOSZ:
|
||||
if (bSet) act->bposz = lValue;
|
||||
else SetGameVarID((int)lVar2, act->bposz, sActor, sPlayer);
|
||||
if (bSet) spr->oz = lValue;
|
||||
else SetGameVarID((int)lVar2, spr->oz, sActor, sPlayer);
|
||||
break;
|
||||
case ACTOR_HTG_T0:
|
||||
if (bSet) act->temp_data[0] = lValue;
|
||||
|
@ -2229,9 +2229,10 @@ int ParseState::parse(void)
|
|||
{
|
||||
// I am not convinced this is even remotely smart to be executed from here..
|
||||
pickrandomspot(g_p);
|
||||
g_sp->x = g_ac->bposx = ps[g_p].bobposx = ps[g_p].oposx = ps[g_p].posx;
|
||||
g_sp->y = g_ac->bposy = ps[g_p].bobposy = ps[g_p].oposy = ps[g_p].posy;
|
||||
g_sp->z = g_ac->bposy = ps[g_p].oposz = ps[g_p].posz;
|
||||
g_sp->x = ps[g_p].bobposx = ps[g_p].oposx = ps[g_p].posx;
|
||||
g_sp->y = ps[g_p].bobposy = ps[g_p].oposy = ps[g_p].posy;
|
||||
g_sp->z = ps[g_p].oposz = ps[g_p].posz;
|
||||
g_sp->backuppos();
|
||||
updatesector(ps[g_p].posx, ps[g_p].posy, &ps[g_p].cursectnum);
|
||||
setsprite(ps[g_p].GetActor(), ps[g_p].posx, ps[g_p].posy, ps[g_p].posz + gs.playerheight);
|
||||
g_sp->cstat = 257;
|
||||
|
|
|
@ -624,9 +624,10 @@ void resetpspritevars(int g)
|
|||
ps[j].frag_ps = j;
|
||||
act->SetOwner(act);
|
||||
|
||||
act->bposx = ps[j].bobposx = ps[j].oposx = ps[j].posx = s->x;
|
||||
act->bposy = ps[j].bobposy = ps[j].oposy = ps[j].posy = s->y;
|
||||
act->bposz = ps[j].oposz = ps[j].posz = s->z;
|
||||
ps[j].bobposx = ps[j].oposx = ps[j].posx = s->x;
|
||||
ps[j].bobposy = ps[j].oposy = ps[j].posy = s->y;
|
||||
ps[j].oposz = ps[j].posz = s->z;
|
||||
s->backuppos();
|
||||
ps[j].angle.oang = ps[j].angle.ang = buildang(s->ang);
|
||||
|
||||
updatesector(s->x, s->y, &ps[j].cursectnum);
|
||||
|
|
|
@ -259,17 +259,6 @@ void renderMirror(int cposx, int cposy, int cposz, binangle cang, fixedhoriz cho
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static inline binangle getcamspriteang(DDukeActor* newOwner, double const smoothratio)
|
||||
{
|
||||
return buildfang(newOwner->tempang + MulScaleF(((newOwner->s.ang - newOwner->tempang + 1024) & 2047) - 1024, smoothratio, 16));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void animatecamsprite(double smoothratio)
|
||||
{
|
||||
const int VIEWSCREEN_ACTIVE_DISTANCE = 8192;
|
||||
|
@ -293,7 +282,7 @@ void animatecamsprite(double smoothratio)
|
|||
screen->RenderTextureView(canvas, [=](IntRect& rect)
|
||||
{
|
||||
auto camera = &camsprite->GetOwner()->s;
|
||||
auto ang = getcamspriteang(camsprite->GetOwner(), smoothratio);
|
||||
auto ang = buildang(camera->interpolatedang(smoothratio));
|
||||
// Note: no ROR or camera here for now - the current setup has no means to detect these things before rendering the scene itself.
|
||||
renderDrawRoomsQ16(camera->x, camera->y, camera->z, ang.asq16(), IntToFixed(camera->shade), camera->sectnum); // why 'shade'...?
|
||||
display_mirror = 1; // should really be 'display external view'.
|
||||
|
@ -581,7 +570,7 @@ void displayrooms(int snum, double smoothratio)
|
|||
if (p->newOwner != nullptr)
|
||||
{
|
||||
auto spr = &p->newOwner->s;
|
||||
cang = getcamspriteang(p->newOwner, smoothratio);
|
||||
cang = buildang(spr->interpolatedang(smoothratio));
|
||||
choriz = buildhoriz(spr->shade);
|
||||
cposx = spr->pos.x;
|
||||
cposy = spr->pos.y;
|
||||
|
|
|
@ -287,9 +287,6 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, weaponhit& w, weap
|
|||
("ceilingz", w.ceilingz, def->ceilingz)
|
||||
("lastvx", w.lastvx, def->lastvx)
|
||||
("lastvy", w.lastvy, def->lastvy)
|
||||
("bposx", w.bposx, def->bposx)
|
||||
("bposy", w.bposy, def->bposy)
|
||||
("bposz", w.bposz, def->bposz)
|
||||
("aflags", w.aflags, def->aflags)
|
||||
("saved_ammo", w.saved_ammo, def->saved_ammo)
|
||||
("temp_actor", w.temp_actor, def->temp_actor)
|
||||
|
|
|
@ -358,7 +358,7 @@ void doanimations(void)
|
|||
{
|
||||
if (act->s.statnum != STAT_EFFECTOR)
|
||||
{
|
||||
act->bposz = act->s.z;
|
||||
act->s.backupz();
|
||||
act->s.z += v;
|
||||
act->floorz = sector[dasect].floorz + v;
|
||||
}
|
||||
|
|
|
@ -58,9 +58,6 @@ DDukeActor* EGS(short whatsect, int s_x, int s_y, int s_z, short s_pn, signed ch
|
|||
|
||||
auto act = &hittype[i];
|
||||
auto s = &act->s;
|
||||
act->bposx = s_x;
|
||||
act->bposy = s_y;
|
||||
act->bposz = s_z;
|
||||
|
||||
s->x = s_x;
|
||||
s->y = s_y;
|
||||
|
@ -81,6 +78,7 @@ DDukeActor* EGS(short whatsect, int s_x, int s_y, int s_z, short s_pn, signed ch
|
|||
s->clipdist = 0;
|
||||
s->pal = 0;
|
||||
s->lotag = 0;
|
||||
s->backuploc();
|
||||
|
||||
act->lastvx = 0;
|
||||
act->lastvy = 0;
|
||||
|
@ -162,9 +160,7 @@ int initspriteforspawn(DDukeActor* actj, int pn, const std::initializer_list<int
|
|||
act->timetosleep = 0;
|
||||
act->extra = -1;
|
||||
|
||||
act->bposx = sp->x;
|
||||
act->bposy = sp->y;
|
||||
act->bposz = sp->z;
|
||||
sp->backuppos();
|
||||
|
||||
act->SetOwner(act);
|
||||
act->SetHitOwner(act);
|
||||
|
|
|
@ -28,7 +28,7 @@ struct weaponhit
|
|||
short picnum, ang, extra, owner, movflag;
|
||||
short tempang, actorstayput, dispicnum;
|
||||
short timetosleep;
|
||||
int floorz, ceilingz, lastvx, lastvy, bposx, bposy, bposz, aflags;
|
||||
int floorz, ceilingz, lastvx, lastvy, aflags;
|
||||
union
|
||||
{
|
||||
int saved_ammo;
|
||||
|
@ -47,7 +47,7 @@ struct weaponhit
|
|||
{
|
||||
cgg = spriteextra = 0;
|
||||
picnum = ang = extra = owner = movflag = tempang = actorstayput = dispicnum = timetosleep = 0;
|
||||
floorz = ceilingz = lastvx = lastvy = bposx = bposy = bposz = aflags = saved_ammo = 0;
|
||||
floorz = ceilingz = lastvx = lastvy = aflags = saved_ammo = 0;
|
||||
memset(temp_data, 0, sizeof(temp_data));
|
||||
}
|
||||
int GetIndex() const { return this - array(); }
|
||||
|
|
Loading…
Reference in a new issue