diff --git a/source/games/whaven/src/whactor.h b/source/games/whaven/src/whactor.h index 678f892d9..0cd9721b8 100644 --- a/source/games/whaven/src/whactor.h +++ b/source/games/whaven/src/whactor.h @@ -22,14 +22,15 @@ public: void SetOwner(DWHActor* own) { - s().owner = own ? own->s().index : -1; + s().owner = own ? own->GetSpriteIndex() : -1; } DWHActor* GetOwner() { - if (s().owner >= 4096) return nullptr; // player index hackery - if (s().owner == -1 || s().owner == MAXSPRITES - 1) return nullptr; - return base() + s().owner; + auto owner = s().owner; + if (owner >= 4096) return nullptr; // player index hackery + if (owner == -1 || owner == MAXSPRITES - 1) return nullptr; + return base() + owner; } void SetPlayerOwner(int num) diff --git a/source/games/whaven/src/whobj.cpp b/source/games/whaven/src/whobj.cpp index e579f4086..66aef334c 100644 --- a/source/games/whaven/src/whobj.cpp +++ b/source/games/whaven/src/whobj.cpp @@ -1785,11 +1785,16 @@ Collision movesprite(DWHActor* actor, int dx, int dy, int dz, int ceildist, int int daz = spr.z + zoffs + dz; if ((daz <= zr_ceilz) || (daz > zr_florz)) { if (retval != 0) - return Collision(retval); - return coll.setSector(dasectnum); + { + coll.setFromEngine(retval); + return coll; + } + coll.setSector(dasectnum); + return coll; } spr.z = (daz - zoffs); - return Collision(retval); + coll.setFromEngine(retval); + return coll; } void trowajavlin(DWHActor* actor) {