From bd47f56a5c8b88219d945c1f45ae74acbf813b41 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 23 Dec 2021 15:55:27 +0100 Subject: [PATCH] - x() is gone entirely. --- source/games/blood/src/bloodactor.h | 12 ++++---- source/games/blood/src/player.cpp | 16 +++++------ source/games/blood/src/triggers.cpp | 28 ++++++++----------- .../static/zscript/games/blood/bloodgame.zs | 2 -- 4 files changed, 24 insertions(+), 34 deletions(-) diff --git a/source/games/blood/src/bloodactor.h b/source/games/blood/src/bloodactor.h index f6cc9094a..0ee8ca4e0 100644 --- a/source/games/blood/src/bloodactor.h +++ b/source/games/blood/src/bloodactor.h @@ -66,8 +66,6 @@ public: bool hasX() { return hasx; } void addX() { hasx = true; } - XSPRITE& x() { return xspr; } // calling this does not validate the xsprite! - void SetOwner(DBloodActor* own) { ownerActor = own; @@ -80,12 +78,12 @@ public: void SetTarget(DBloodActor* own) { - x().target = own; + xspr.target = own; } DBloodActor* GetTarget() { - return x().target; + return xspr.target; } bool ValidateTarget(const char* func) @@ -100,12 +98,12 @@ public: void SetBurnSource(DBloodActor* own) { - x().burnSource = own; + xspr.burnSource = own; } DBloodActor* GetBurnSource() { - return x().burnSource; + return xspr.burnSource; } void SetSpecialOwner() // nnext hackery @@ -149,7 +147,7 @@ public: if (!hasX()) return false; - switch (x().aiState->stateType) + switch (xspr.aiState->stateType) { case kAiStateIdle: case kAiStateGenIdle: diff --git a/source/games/blood/src/player.cpp b/source/games/blood/src/player.cpp index 0610acc09..5cbffc1bb 100644 --- a/source/games/blood/src/player.cpp +++ b/source/games/blood/src/player.cpp @@ -766,8 +766,7 @@ void playerStart(int nPlayer, int bNewLevel) BloodStatIterator it(kStatModernPlayerLinker); while (auto iactor = it.Next()) { - XSPRITE* pXCtrl = &iactor->x(); - if (pXCtrl->data1 == pPlayer->nPlayer + 1) + if (iactor->xspr.data1 == pPlayer->nPlayer + 1) { DBloodActor* SpriteOld = iactor->prevmarker; trPlayerCtrlLink(iactor, pPlayer, (SpriteOld == nullptr)); // this modifies iactor's prevmarker field! @@ -918,10 +917,9 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) case kItemFlagABase: case kItemFlagBBase: { if (gGameOptions.nGameType != 3 || !itemactor->hasX()) return 0; - XSPRITE * pXItem = &itemactor->x(); if (itemactor->spr.type == kItemFlagABase) { if (pPlayer->teamId == 1) { - if ((pPlayer->hasFlag & 1) == 0 && pXItem->state) { + if ((pPlayer->hasFlag & 1) == 0 && itemactor->xspr.state) { pPlayer->hasFlag |= 1; pPlayer->ctfFlagState[0] = itemactor; trTriggerSprite(itemactor, kCmdOff); @@ -933,7 +931,7 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) if (pPlayer->teamId == 0) { - if ((pPlayer->hasFlag & 1) != 0 && !pXItem->state) { + if ((pPlayer->hasFlag & 1) != 0 && !itemactor->xspr.state) { pPlayer->hasFlag &= ~1; pPlayer->ctfFlagState[0] = nullptr; trTriggerSprite(itemactor, kCmdOn); @@ -942,7 +940,7 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) viewSetMessage(buffer); } - if ((pPlayer->hasFlag & 2) != 0 && pXItem->state) { + if ((pPlayer->hasFlag & 2) != 0 && itemactor->xspr.state) { pPlayer->hasFlag &= ~2; pPlayer->ctfFlagState[1] = nullptr; team_score[pPlayer->teamId] += 10; @@ -958,7 +956,7 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) else if (itemactor->spr.type == kItemFlagBBase) { if (pPlayer->teamId == 0) { - if ((pPlayer->hasFlag & 2) == 0 && pXItem->state) { + if ((pPlayer->hasFlag & 2) == 0 && itemactor->xspr.state) { pPlayer->hasFlag |= 2; pPlayer->ctfFlagState[1] = itemactor; trTriggerSprite(itemactor, kCmdOff); @@ -969,7 +967,7 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) } if (pPlayer->teamId == 1) { - if ((pPlayer->hasFlag & 2) != 0 && !pXItem->state) + if ((pPlayer->hasFlag & 2) != 0 && !itemactor->xspr.state) { pPlayer->hasFlag &= ~2; pPlayer->ctfFlagState[1] = nullptr; @@ -978,7 +976,7 @@ bool PickupItem(PLAYER *pPlayer, DBloodActor* itemactor) sndStartSample(8002, 255, 2, 0); viewSetMessage(buffer); } - if ((pPlayer->hasFlag & 1) != 0 && pXItem->state) + if ((pPlayer->hasFlag & 1) != 0 && itemactor->xspr.state) { pPlayer->hasFlag &= ~1; pPlayer->ctfFlagState[0] = nullptr; diff --git a/source/games/blood/src/triggers.cpp b/source/games/blood/src/triggers.cpp index e7cbeac1b..32c4b2d6d 100644 --- a/source/games/blood/src/triggers.cpp +++ b/source/games/blood/src/triggers.cpp @@ -441,7 +441,6 @@ void OperateSprite(DBloodActor* actor, EVENT event) { auto spawned = actSpawnDude(actor, actor->xspr.data1, -1, 0); if (spawned) { - XSPRITE *pXSpawn = &spawned->x(); gKillMgr.AddNewKill(1); switch (actor->xspr.data1) { case kDudeBurningInnocent: @@ -449,8 +448,8 @@ void OperateSprite(DBloodActor* actor, EVENT event) case kDudeBurningZombieButcher: case kDudeBurningTinyCaleb: case kDudeBurningBeast: { - pXSpawn->health = getDudeInfo(actor->xspr.data1)->startHealth << 4; - pXSpawn->burnTime = 10; + spawned->xspr.health = getDudeInfo(actor->xspr.data1)->startHealth << 4; + spawned->xspr.burnTime = 10; spawned->SetTarget(nullptr); aiActivateDude(spawned); break; @@ -1283,22 +1282,19 @@ int PathBusy(sectortype* pSector, unsigned int a2) auto marker1 = pXSector->marker1; if (!basepath || !marker0 || !marker1) return 0; - XSPRITE *pXSprite1 = &pXSector->marker0->x(); - XSPRITE *pXSprite2 = &pXSector->marker1->x(); - - int nWave = pXSprite1->wave; + int nWave = marker0->xspr.wave; TranslateSector(pSector, GetWaveValue(pXSector->busy, nWave), GetWaveValue(a2, nWave), basepath->spr.pos.X, basepath->spr.pos.Y, marker0->spr.pos.X, marker0->spr.pos.Y, marker0->spr.ang, marker1->spr.pos.X, marker1->spr.pos.Y, marker1->spr.ang, 1); ZTranslateSector(pSector, pXSector, a2, nWave); pXSector->busy = a2; if ((a2&0xffff) == 0) { - evPostSector(pSector, (120*pXSprite2->waitTime)/10, kCmdOn); + evPostSector(pSector, (120*marker1->xspr.waitTime)/10, kCmdOn); pXSector->state = 0; pXSector->busy = 0; - if (pXSprite1->data4) - PathSound(pSector, pXSprite1->data4); + if (marker0->xspr.data4) + PathSound(pSector, marker0->xspr.data4); pXSector->marker0 = marker1; - pXSector->data = pXSprite2->data1; + pXSector->data = marker1->xspr.data1; return 3; } return 0; @@ -1413,8 +1409,8 @@ void OperatePath(sectortype* pSector, EVENT event) auto pXSector = &pSector->xs(); if (!pXSector->marker0) return; auto marker0 = pXSector->marker0; - XSPRITE *pXSprite2 = &pXSector->marker0->x(); - int nId = pXSprite2->data2; + auto marker1 = pXSector->marker1; + int nId = marker1->xspr.data2; BloodStatIterator it(kStatPathMarker); while ((actor = it.Next())) @@ -1428,7 +1424,7 @@ void OperatePath(sectortype* pSector, EVENT event) // trigger marker after it gets reached #ifdef NOONE_EXTENSIONS - if (gModernMap && pXSprite2->state != 1) + if (gModernMap && marker1->xspr.state != 1) trTriggerSprite(pXSector->marker0, kCmdOn); #endif @@ -1446,8 +1442,8 @@ void OperatePath(sectortype* pSector, EVENT event) case kCmdOn: pXSector->state = 0; pXSector->busy = 0; - AddBusy(pSector, BUSYID_7, 65536/ClipLow((120*pXSprite2->busyTime)/10,1)); - if (pXSprite2->data3) PathSound(pSector, pXSprite2->data3); + AddBusy(pSector, BUSYID_7, 65536/ClipLow((120*marker1->xspr.busyTime)/10,1)); + if (marker1->xspr.data3) PathSound(pSector, marker1->xspr.data3); break; } } diff --git a/wadsrc/static/zscript/games/blood/bloodgame.zs b/wadsrc/static/zscript/games/blood/bloodgame.zs index c465ca869..2cf21144c 100644 --- a/wadsrc/static/zscript/games/blood/bloodgame.zs +++ b/wadsrc/static/zscript/games/blood/bloodgame.zs @@ -53,8 +53,6 @@ struct BloodPlayer native { native int GetHealth(); // health is stored in the XSPRITE which cannot be safely exported to scripting at the moment due to pending refactoring. native int powerupCheck(int pwup); - //spritetype* pSprite; - //XSPRITE* pXSprite; //DUDEINFO* pDudeInfo; //PlayerHorizon horizon; //PlayerAngle angle;