diff --git a/source/core/coreactor.h b/source/core/coreactor.h index 2242a8e6e..92ecbc5b2 100644 --- a/source/core/coreactor.h +++ b/source/core/coreactor.h @@ -50,7 +50,7 @@ public: int time; int16_t spritesetindex; - int16_t dispicnum; + FTextureID dispictex; DCoreActor() = default; diff --git a/source/core/savegamehelp.cpp b/source/core/savegamehelp.cpp index 66b70b882..7590dec26 100644 --- a/source/core/savegamehelp.cpp +++ b/source/core/savegamehelp.cpp @@ -621,7 +621,7 @@ void DCoreActor::Serialize(FSerializer& arc) ("yvel", vel.Y) ("zvel", vel.Z) ("viewzoffset", viewzoffset) - ("dispicnum", dispicnum); + ("dispicnum", dispictex); if (arc.isReading()) { diff --git a/source/core/vmexports.cpp b/source/core/vmexports.cpp index 483f79595..6f3382f86 100644 --- a/source/core/vmexports.cpp +++ b/source/core/vmexports.cpp @@ -801,7 +801,7 @@ void tspritetype_setSpritePic(tspritetype* targ, DCoreActor* self, unsigned z) } else if (z == ~0) { - targ->picnum = self->dispicnum; + targ->setspritetexture(self->dispictex); } } diff --git a/source/games/duke/src/animatesprites.cpp b/source/games/duke/src/animatesprites.cpp index e963c3b8a..2f8031ba7 100644 --- a/source/games/duke/src/animatesprites.cpp +++ b/source/games/duke/src/animatesprites.cpp @@ -203,8 +203,8 @@ void applyanimations(tspritetype* t, DDukeActor* h, const DVector2& viewVec, DAn t->scale = DVector2(0, 0); } - if (h->dispicnum >= 0) - h->dispicnum = t->picnum; + if (h->dispictex.isValid()) + h->dispictex = t->spritetexture(); } else if (display_mirror == 1) t->cstat |= CSTAT_SPRITE_XFLIP; diff --git a/source/games/duke/src/animatesprites_d.cpp b/source/games/duke/src/animatesprites_d.cpp index b06d1459a..e1211d9c0 100644 --- a/source/games/duke/src/animatesprites_d.cpp +++ b/source/games/duke/src/animatesprites_d.cpp @@ -111,8 +111,8 @@ void animatesprites_d(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi if (res) { - if (h->dispicnum >= 0) - h->dispicnum = t->picnum; + if (h->dispictex.isValid()) + h->dispictex = t->spritetexture(); continue; } @@ -227,7 +227,7 @@ void animatesprites_d(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi } } - h->dispicnum = t->picnum; + h->dispictex = t->spritetexture(); if (t->sectp->floortexture == mirrortex) t->scale = DVector2(0, 0); } diff --git a/source/games/duke/src/animatesprites_r.cpp b/source/games/duke/src/animatesprites_r.cpp index 5e541f8b3..424c643ed 100644 --- a/source/games/duke/src/animatesprites_r.cpp +++ b/source/games/duke/src/animatesprites_r.cpp @@ -109,8 +109,8 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi if (res) { - if (h->dispicnum >= 0) - h->dispicnum = t->picnum; + if (h->dispictex.isValid()) + h->dispictex = t->spritetexture(); continue; } @@ -238,7 +238,7 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi drawshadows(tsprites, t, h); } - h->dispicnum = t->picnum; + h->dispictex = t->spritetexture(); if (t->sectp->floortexture == mirrortex) t->scale = DVector2(0, 0); } diff --git a/source/games/duke/src/gameexec.cpp b/source/games/duke/src/gameexec.cpp index 31f5a06b6..ae34d6ff9 100644 --- a/source/games/duke/src/gameexec.cpp +++ b/source/games/duke/src/gameexec.cpp @@ -1268,10 +1268,6 @@ void DoActor(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, if (bSet) act->actorstayput = toSect(lValue); else SetGameVarID(lVar2, fromSect(act->actorstayput), sActor, sPlayer); break; - case ACTOR_HTDISPICNUM: - if (bSet) act->dispicnum = lValue; - else SetGameVarID(lVar2, act->dispicnum, sActor, sPlayer); - break; case ACTOR_HTTIMETOSLEEP: if (bSet) act->timetosleep = lValue; else SetGameVarID(lVar2, act->timetosleep, sActor, sPlayer); diff --git a/source/games/duke/src/player.cpp b/source/games/duke/src/player.cpp index 6599e073f..e0a75e5bc 100644 --- a/source/games/duke/src/player.cpp +++ b/source/games/duke/src/player.cpp @@ -1515,7 +1515,7 @@ void playerreset(player_struct* p, DDukeActor* g_ac) g_ac->movflag = 0; g_ac->tempval = 0; g_ac->actorstayput = nullptr; - g_ac->dispicnum = 0; + g_ac->dispictex = FNullTextureID(); g_ac->SetHitOwner(p->GetActor()); g_ac->temp_data[4] = 0;