mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-29 13:00:43 +00:00
- actorflag, actorfella, automap, animateaccess, holoduke spawn, initreactor.
# Conflicts: # source/games/duke/src/game_misc.cpp
This commit is contained in:
parent
2db8ace275
commit
f5cccb0df2
8 changed files with 30 additions and 28 deletions
|
@ -570,7 +570,7 @@ int movesprite_ex_d(DDukeActor* actor, int xchange, int ychange, int zchange, un
|
|||
{
|
||||
if (spri->picnum == LIZMAN)
|
||||
cd = 292;
|
||||
else if (actorflag(actor->GetIndex(), SFLAG_BADGUY))
|
||||
else if (actorflag(actor, SFLAG_BADGUY))
|
||||
cd = spri->clipdist << 2;
|
||||
else
|
||||
cd = 192;
|
||||
|
|
|
@ -602,7 +602,7 @@ void movefta_r(void)
|
|||
default:
|
||||
#if 0
|
||||
// TRANSITIONAL: RedNukem has this here. Needed?
|
||||
if (actorflag(spriteNum, SFLAG_USEACTIVATOR) && sector[s prite[spriteNum].sectnum].lotag & 16384) break;
|
||||
if (actorflag(act, SFLAG_USEACTIVATOR) && sector[act->s.lotag & 16384) break;
|
||||
#endif
|
||||
act->timetosleep = 0;
|
||||
check_fta_sounds_r(act);
|
||||
|
|
|
@ -417,6 +417,7 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang)
|
|||
yvect2 = mulscale16(yvect, yxaspect);
|
||||
|
||||
//Draw sprites
|
||||
auto pactor = ps[screenpeek].GetActor();
|
||||
for (i = 0; i < numsectors; i++)
|
||||
{
|
||||
if (!gFullMap || !show2dsector[i]) continue;
|
||||
|
@ -425,7 +426,7 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang)
|
|||
{
|
||||
spr = &act->s;
|
||||
|
||||
if (act == ps[screenpeek].GetActor() || (spr->cstat & 0x8000) || spr->cstat == 257 || spr->xrepeat == 0) continue;
|
||||
if (act == pactor || (spr->cstat & 0x8000) || spr->cstat == 257 || spr->xrepeat == 0) continue;
|
||||
|
||||
col = PalEntry(0, 170, 170);
|
||||
if (spr->cstat & 1) col = PalEntry(170, 0, 170);
|
||||
|
|
|
@ -1900,7 +1900,7 @@ int ParseState::parse(void)
|
|||
{
|
||||
if (g_ac->spriteextra < 1 || g_ac->spriteextra == 128)
|
||||
{
|
||||
if (actorfella(g_ac->GetIndex()))
|
||||
if (actorfella(g_ac))
|
||||
ps[g_p].actors_killed += *insptr;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,14 +37,14 @@ inline int bossguy(spritetype const* const pSprite)
|
|||
return bossguypic(pSprite->picnum);
|
||||
}
|
||||
|
||||
inline int actorflag(int spritenum, int mask)
|
||||
inline int actorflag(DDukeActor * actor, int mask)
|
||||
{
|
||||
return (((actorinfo[sprite[spritenum].picnum].flags/* ^ hittype[spritenum].flags*/) & mask) != 0);
|
||||
return (((actorinfo[actor->s.picnum].flags/* ^ hittype[spritenum].flags*/) & mask) != 0);
|
||||
}
|
||||
|
||||
inline int actorfella(int spnum)
|
||||
inline int actorfella(DDukeActor* actor)
|
||||
{
|
||||
return actorflag(spnum, SFLAG_KILLCOUNT);
|
||||
return actorflag(actor, SFLAG_KILLCOUNT);
|
||||
}
|
||||
|
||||
inline void setflag(int flag, const std::initializer_list<short>& types)
|
||||
|
|
|
@ -283,15 +283,15 @@ void hud_input(int plnum)
|
|||
{
|
||||
p->inven_icon = 3;
|
||||
|
||||
i =
|
||||
auto pactor =
|
||||
EGS(p->cursectnum,
|
||||
p->posx,
|
||||
p->posy,
|
||||
p->posz + (30 << 8), TILE_APLAYER, -64, 0, 0, p->angle.ang.asbuild(), 0, 0, -1, 10);
|
||||
hittype[i].temp_data[3] = hittype[i].temp_data[4] = 0;
|
||||
p->holoduke_on = &hittype[i];
|
||||
sprite[i].yvel = plnum;
|
||||
sprite[i].extra = 0;
|
||||
p->posz + (30 << 8), TILE_APLAYER, -64, 0, 0, p->angle.ang.asbuild(), 0, 0, nullptr, 10);
|
||||
pactor->temp_data[3] = pactor->temp_data[4] = 0;
|
||||
p->holoduke_on = pactor;
|
||||
pactor->s.yvel = plnum;
|
||||
pactor->s.extra = 0;
|
||||
FTA(QUOTE_HOLODUKE_ON, p);
|
||||
S_PlayActorSound(TELEPORTER, p->holoduke_on);
|
||||
}
|
||||
|
@ -918,7 +918,7 @@ void GameInterface::GetInput(InputPacket* packet, ControlInfo* const hidInput)
|
|||
|
||||
if (!cl_syncinput)
|
||||
{
|
||||
if (sprite[p->i].extra > 0)
|
||||
if (p->GetActor()->s.extra > 0)
|
||||
{
|
||||
// Do these in the same order as the old code.
|
||||
calcviewpitch(p, scaleAdjust);
|
||||
|
|
|
@ -248,7 +248,7 @@ void spawninitdefault(int j, int i)
|
|||
if (sp->xrepeat == 0 || sp->yrepeat == 0)
|
||||
sp->xrepeat = sp->yrepeat = 1;
|
||||
|
||||
if (actorflag(i, SFLAG_BADGUY))
|
||||
if (actorflag(act, SFLAG_BADGUY))
|
||||
{
|
||||
if (ud.monsters_off == 1)
|
||||
{
|
||||
|
@ -259,10 +259,10 @@ void spawninitdefault(int j, int i)
|
|||
|
||||
makeitfall(i);
|
||||
|
||||
if (actorflag(i, SFLAG_BADGUYSTAYPUT))
|
||||
if (actorflag(act, SFLAG_BADGUYSTAYPUT))
|
||||
act->actorstayput = sp->sectnum;
|
||||
|
||||
if (!isRR() || actorflag(i, SFLAG_KILLCOUNT)) // Duke is just like Doom - Bad guys always count as kill.
|
||||
if (!isRR() || actorflag(act, SFLAG_KILLCOUNT)) // Duke is just like Doom - Bad guys always count as kill.
|
||||
ps[myconnectindex].max_actors_killed++;
|
||||
|
||||
sp->clipdist = 80;
|
||||
|
@ -568,26 +568,27 @@ void initwaterdrip(int j, int i)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
int initreactor(int j, int i, bool isrecon)
|
||||
int initreactor(int j, int i_, bool isrecon)
|
||||
{
|
||||
auto sp = &sprite[i];
|
||||
auto actor = &hittype[i_];
|
||||
auto sp = &actor->s;
|
||||
int sect = sp->sectnum;
|
||||
auto t = hittype[i].temp_data;
|
||||
auto t = actor->temp_data;
|
||||
if (isrecon)
|
||||
{
|
||||
if (sp->lotag > ud.player_skill)
|
||||
{
|
||||
sp->xrepeat = sp->yrepeat = 0;
|
||||
changespritestat(i, STAT_MISC);
|
||||
changespritestat(actor, STAT_MISC);
|
||||
return true;
|
||||
}
|
||||
if (!isRR() || actorflag(i, SFLAG_KILLCOUNT)) // Duke is just like Doom - Bad guys always count as kill.
|
||||
if (!isRR() || actorflag(actor, SFLAG_KILLCOUNT)) // Duke is just like Doom - Bad guys always count as kill.
|
||||
ps[myconnectindex].max_actors_killed++;
|
||||
hittype[i].temp_data[5] = 0;
|
||||
actor->temp_data[5] = 0;
|
||||
if (ud.monsters_off == 1)
|
||||
{
|
||||
sp->xrepeat = sp->yrepeat = 0;
|
||||
changespritestat(i, STAT_MISC);
|
||||
changespritestat(actor, STAT_MISC);
|
||||
return false;
|
||||
}
|
||||
sp->extra = 130;
|
||||
|
@ -600,13 +601,13 @@ int initreactor(int j, int i, bool isrecon)
|
|||
if (ud.multimode < 2 && sp->pal != 0)
|
||||
{
|
||||
sp->xrepeat = sp->yrepeat = 0;
|
||||
changespritestat(i, STAT_MISC);
|
||||
changespritestat(actor, STAT_MISC);
|
||||
return false;
|
||||
}
|
||||
sp->pal = 0;
|
||||
sp->shade = -17;
|
||||
|
||||
changespritestat(i, 2);
|
||||
changespritestat(actor, 2);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1042,7 +1042,7 @@ int spawn_r(int j, int pn)
|
|||
sp->cstat |= 257;
|
||||
|
||||
if(sp->picnum != 5501)
|
||||
if (actorfella(i))
|
||||
if (actorfella(&hittype[i]))
|
||||
ps[myconnectindex].max_actors_killed++;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue