From 368a21f75e7e1930327f4a97c2c057b59a90c336 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 23 Nov 2021 23:47:40 +0100 Subject: [PATCH] - useDataChanger + setDataValueOfObject --- source/games/blood/src/nnexts.cpp | 24 ++++++++++++------------ source/games/blood/src/nnexts.h | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index 4287170f7..11cd028ee 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -4826,7 +4826,7 @@ void modernTypeTrigger(int destObjType, sectortype* destSect, walltype* destWall break; // change data field value of destination object case kModernObjDataChanger: - useDataChanger(pActor, destObjType, destObjIndex, destactor); + useDataChanger(pActor, destObjType, destSect, destWall, destactor); break; // change sector lighting dynamically case kModernSectorFXChanger: @@ -6491,7 +6491,7 @@ void useIncDecGen(DBloodActor* sourceactor, int objType, sectortype* destSect, w } } pXSource->sysData1 = data; - setDataValueOfObject(objType, destWall? wallnum(destWall) : destSect? sectnum(destSect) : 0, objactor, dataIndex, data); + setDataValueOfObject(objType, destSect, destWall, objactor, dataIndex, data); } } @@ -6681,7 +6681,7 @@ void useSlopeChanger(DBloodActor* sourceactor, int objType, int objIndex, DBlood // //--------------------------------------------------------------------------- -void useDataChanger(DBloodActor* sourceactor, int objType, int objIndex, DBloodActor* objActor) +void useDataChanger(DBloodActor* sourceactor, int objType, sectortype* pSector, walltype* pWall, DBloodActor* objActor) { auto pXSource = &sourceactor->x(); spritetype* pSource = &sourceactor->s(); @@ -6690,24 +6690,24 @@ void useDataChanger(DBloodActor* sourceactor, int objType, int objIndex, DBloodA { case OBJ_SECTOR: if ((pSource->flags & kModernTypeFlag1) || (pXSource->data1 != -1 && pXSource->data1 != 32767)) - setDataValueOfObject(objType, objIndex, nullptr, 1, pXSource->data1); + setDataValueOfObject(objType, pSector, pWall, nullptr, 1, pXSource->data1); break; case OBJ_SPRITE: if ((pSource->flags & kModernTypeFlag1) || (pXSource->data1 != -1 && pXSource->data1 != 32767)) - setDataValueOfObject(objType, objIndex, objActor, 1, pXSource->data1); + setDataValueOfObject(objType, pSector, pWall, objActor, 1, pXSource->data1); if ((pSource->flags & kModernTypeFlag1) || (pXSource->data2 != -1 && pXSource->data2 != 32767)) - setDataValueOfObject(objType, objIndex, objActor, 2, pXSource->data2); + setDataValueOfObject(objType, pSector, pWall, objActor, 2, pXSource->data2); if ((pSource->flags & kModernTypeFlag1) || (pXSource->data3 != -1 && pXSource->data3 != 32767)) - setDataValueOfObject(objType, objIndex, objActor, 3, pXSource->data3); + setDataValueOfObject(objType, pSector, pWall, objActor, 3, pXSource->data3); if ((pSource->flags & kModernTypeFlag1) || pXSource->data4 != 65535) - setDataValueOfObject(objType, objIndex, objActor, 4, pXSource->data4); + setDataValueOfObject(objType, pSector, pWall, objActor, 4, pXSource->data4); break; case OBJ_WALL: if ((pSource->flags & kModernTypeFlag1) || (pXSource->data1 != -1 && pXSource->data1 != 32767)) - setDataValueOfObject(objType, objIndex, nullptr, 1, pXSource->data1); + setDataValueOfObject(objType, pSector, pWall, nullptr, 1, pXSource->data1); break; } } @@ -7440,7 +7440,7 @@ int getDataFieldOfObject(int objType, sectortype* sect, walltype* wal, DBloodAct // //--------------------------------------------------------------------------- -bool setDataValueOfObject(int objType, int objIndex, DBloodActor* objActor, int dataIndex, int value) +bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodActor* objActor, int dataIndex, int value) { switch (objType) { @@ -7511,10 +7511,10 @@ bool setDataValueOfObject(int objType, int objIndex, DBloodActor* objActor, int } } case OBJ_SECTOR: - sector[objIndex].xs().data = value; + sect->xs().data = value; return true; case OBJ_WALL: - wall[objIndex].xw().data = value; + wal->xw().data = value; return true; default: return false; diff --git a/source/games/blood/src/nnexts.h b/source/games/blood/src/nnexts.h index b44c2f6e6..03b02c85f 100644 --- a/source/games/blood/src/nnexts.h +++ b/source/games/blood/src/nnexts.h @@ -318,7 +318,7 @@ void useRandomItemGen(DBloodActor* pSource); void useUniMissileGen(DBloodActor* sourceactor, DBloodActor* actor); void useSoundGen(DBloodActor* sourceactor, DBloodActor* actor); void useIncDecGen(DBloodActor* sourceactor, int objType, sectortype* destSect, walltype* destWall, DBloodActor* objactor); -void useDataChanger(DBloodActor* sourceactor, int objType, int objIndex, DBloodActor* objActor); +void useDataChanger(DBloodActor* sourceactor, int objType, sectortype* pSector, walltype* pWall, DBloodActor* objActor); void useSectorLightChanger(DBloodActor* pXSource, sectortype* pSector); void useTargetChanger(DBloodActor* sourceactor, DBloodActor* actor); void usePictureChanger(DBloodActor* sourceactor, int objType, sectortype*, walltype*, DBloodActor* objActor); @@ -360,7 +360,7 @@ bool IsKillableDude(DBloodActor* pSprite); bool isActive(DBloodActor* nSprite); int getDataFieldOfObject(const EventObject& eob, int dataIndex); int getDataFieldOfObject(int objType, sectortype* sect, walltype* wal, DBloodActor* actor, int dataIndex); -bool setDataValueOfObject(int objType, int objIndex, DBloodActor* objActor, int dataIndex, int value); +bool setDataValueOfObject(int objType, sectortype* sect, walltype* wal, DBloodActor* objActor, int dataIndex, int value); bool incDecGoalValueIsReached(DBloodActor* actor); int getSpriteMassBySize(DBloodActor* pSprite); bool ceilIsTooLow(DBloodActor* pSprite);