mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- callback interface.
This commit is contained in:
parent
e4e5bd0966
commit
f52a542fad
7 changed files with 38 additions and 44 deletions
|
@ -88,7 +88,6 @@ void StompSeqCallback(int, DBloodActor* actor1)
|
|||
int y = pSprite->y;
|
||||
int z = pSprite->z;
|
||||
int vc = 400;
|
||||
auto nSector = pSprite->sectnum;
|
||||
auto pSector = pSprite->sector();
|
||||
int v1c = 5 + 2 * gGameOptions.nDifficulty;
|
||||
int v10 = 25 + 30 * gGameOptions.nDifficulty;
|
||||
|
@ -115,7 +114,7 @@ void StompSeqCallback(int, DBloodActor* actor1)
|
|||
{
|
||||
int top, bottom;
|
||||
GetActorExtents(actor1, &top, &bottom);
|
||||
if (abs(bottom - sector[nSector].floorz) == 0)
|
||||
if (abs(bottom - pSector->floorz) == 0)
|
||||
{
|
||||
int dx = abs(pSprite->x - pSprite2->x);
|
||||
int dy = abs(pSprite->y - pSprite2->y);
|
||||
|
|
|
@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
BEGIN_BLD_NS
|
||||
|
||||
|
||||
void fxFlameLick(DBloodActor* actor, int) // 0
|
||||
void fxFlameLick(DBloodActor* actor, sectortype*) // 0
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -58,7 +58,7 @@ void fxFlameLick(DBloodActor* actor, int) // 0
|
|||
evPostActor(actor, 5, kCallbackFXFlameLick);
|
||||
}
|
||||
|
||||
void Remove(DBloodActor* actor, int) // 1
|
||||
void Remove(DBloodActor* actor, sectortype*) // 1
|
||||
{
|
||||
if (!actor) return;
|
||||
evKillActor(actor, kCallbackFXFlareSpark);
|
||||
|
@ -68,7 +68,7 @@ void Remove(DBloodActor* actor, int) // 1
|
|||
DeleteSprite(actor);
|
||||
}
|
||||
|
||||
void FlareBurst(DBloodActor* actor, int) // 2
|
||||
void FlareBurst(DBloodActor* actor, sectortype*) // 2
|
||||
{
|
||||
if (!actor) return;
|
||||
int nAngle = getangle(actor->xvel, actor->yvel);
|
||||
|
@ -101,7 +101,7 @@ void FlareBurst(DBloodActor* actor, int) // 2
|
|||
evPostActor(actor, 0, kCallbackRemove);
|
||||
}
|
||||
|
||||
void fxFlareSpark(DBloodActor* actor, int) // 3
|
||||
void fxFlareSpark(DBloodActor* actor, sectortype*) // 3
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -115,7 +115,7 @@ void fxFlareSpark(DBloodActor* actor, int) // 3
|
|||
evPostActor(actor, 4, kCallbackFXFlareSpark);
|
||||
}
|
||||
|
||||
void fxFlareSparkLite(DBloodActor* actor, int) // 4
|
||||
void fxFlareSparkLite(DBloodActor* actor, sectortype*) // 4
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -129,7 +129,7 @@ void fxFlareSparkLite(DBloodActor* actor, int) // 4
|
|||
evPostActor(actor, 12, kCallbackFXFlareSparkLite);
|
||||
}
|
||||
|
||||
void fxZombieBloodSpurt(DBloodActor* actor, int) // 5
|
||||
void fxZombieBloodSpurt(DBloodActor* actor, sectortype*) // 5
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -157,7 +157,7 @@ void fxZombieBloodSpurt(DBloodActor* actor, int) // 5
|
|||
}
|
||||
}
|
||||
|
||||
void fxBloodSpurt(DBloodActor* actor, int) // 6
|
||||
void fxBloodSpurt(DBloodActor* actor, sectortype*) // 6
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -173,7 +173,7 @@ void fxBloodSpurt(DBloodActor* actor, int) // 6
|
|||
}
|
||||
|
||||
|
||||
void fxArcSpark(DBloodActor* actor, int) // 7
|
||||
void fxArcSpark(DBloodActor* actor, sectortype*) // 7
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -188,7 +188,7 @@ void fxArcSpark(DBloodActor* actor, int) // 7
|
|||
}
|
||||
|
||||
|
||||
void fxDynPuff(DBloodActor* actor, int) // 8
|
||||
void fxDynPuff(DBloodActor* actor, sectortype*) // 8
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -209,7 +209,7 @@ void fxDynPuff(DBloodActor* actor, int) // 8
|
|||
evPostActor(actor, 12, kCallbackFXDynPuff);
|
||||
}
|
||||
|
||||
void Respawn(DBloodActor* actor, int) // 9
|
||||
void Respawn(DBloodActor* actor, sectortype*) // 9
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -293,7 +293,7 @@ void Respawn(DBloodActor* actor, int) // 9
|
|||
}
|
||||
}
|
||||
|
||||
void PlayerBubble(DBloodActor* actor, int) // 10
|
||||
void PlayerBubble(DBloodActor* actor, sectortype*) // 10
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -324,7 +324,7 @@ void PlayerBubble(DBloodActor* actor, int) // 10
|
|||
}
|
||||
}
|
||||
|
||||
void EnemyBubble(DBloodActor* actor, int) // 11
|
||||
void EnemyBubble(DBloodActor* actor, sectortype*) // 11
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -348,11 +348,9 @@ void EnemyBubble(DBloodActor* actor, int) // 11
|
|||
evPostActor(actor, 4, kCallbackEnemeyBubble);
|
||||
}
|
||||
|
||||
void CounterCheck(DBloodActor*, int nSector) // 12
|
||||
void CounterCheck(DBloodActor*, sectortype* pSector) // 12
|
||||
{
|
||||
if (!validSectorIndex(nSector)) return;
|
||||
auto pSector = §or[nSector];
|
||||
if (pSector->type != kSectorCounter) return;
|
||||
if (!pSector || pSector->type != kSectorCounter) return;
|
||||
if (!pSector->hasX()) return;
|
||||
|
||||
XSECTOR* pXSector = &pSector->xs();
|
||||
|
@ -361,7 +359,7 @@ void CounterCheck(DBloodActor*, int nSector) // 12
|
|||
int nCount = 0;
|
||||
if (!nType || !nReq) return;
|
||||
|
||||
BloodSectIterator it(nSector);
|
||||
BloodSectIterator it(pSector);
|
||||
while (auto actor = it.Next())
|
||||
{
|
||||
if (actor->s().type == nType) nCount++;
|
||||
|
@ -378,7 +376,7 @@ void CounterCheck(DBloodActor*, int nSector) // 12
|
|||
}
|
||||
|
||||
|
||||
void FinishHim(DBloodActor* actor, int) // 13
|
||||
void FinishHim(DBloodActor* actor, sectortype*) // 13
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -386,7 +384,7 @@ void FinishHim(DBloodActor* actor, int) // 13
|
|||
sndStartSample(3313, -1, 1, 0);
|
||||
}
|
||||
|
||||
void fxBloodBits(DBloodActor* actor, int) // 14
|
||||
void fxBloodBits(DBloodActor* actor, sectortype*) // 14
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -416,7 +414,7 @@ void fxBloodBits(DBloodActor* actor, int) // 14
|
|||
}
|
||||
|
||||
|
||||
void fxTeslaAlt(DBloodActor* actor, int) // 15
|
||||
void fxTeslaAlt(DBloodActor* actor, sectortype*) // 15
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -434,7 +432,7 @@ void fxTeslaAlt(DBloodActor* actor, int) // 15
|
|||
int tommySleeveSnd[] = { 608, 609, 611 }; // unused?
|
||||
int sawedOffSleeveSnd[] = { 610, 612 };
|
||||
|
||||
void fxBouncingSleeve(DBloodActor* actor, int) // 16
|
||||
void fxBouncingSleeve(DBloodActor* actor, sectortype*) // 16
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -497,7 +495,7 @@ void sleeveStopBouncing(DBloodActor* actor)
|
|||
}
|
||||
|
||||
|
||||
void returnFlagToBase(DBloodActor* actor, int) // 17
|
||||
void returnFlagToBase(DBloodActor* actor, sectortype*) // 17
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -523,7 +521,7 @@ void returnFlagToBase(DBloodActor* actor, int) // 17
|
|||
evPostActor(actor, 0, kCallbackRemove);
|
||||
}
|
||||
|
||||
void fxPodBloodSpray(DBloodActor* actor, int) // 18
|
||||
void fxPodBloodSpray(DBloodActor* actor, sectortype*) // 18
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -542,7 +540,7 @@ void fxPodBloodSpray(DBloodActor* actor, int) // 18
|
|||
evPostActor(actor, 6, kCallbackFXPodBloodSpray);
|
||||
}
|
||||
|
||||
void fxPodBloodSplat(DBloodActor* actor, int) // 19
|
||||
void fxPodBloodSplat(DBloodActor* actor, sectortype*) // 19
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -582,7 +580,7 @@ void fxPodBloodSplat(DBloodActor* actor, int) // 19
|
|||
|
||||
|
||||
|
||||
void LeechStateTimer(DBloodActor* actor, int) // 20
|
||||
void LeechStateTimer(DBloodActor* actor, sectortype*) // 20
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -618,7 +616,7 @@ void sub_76A08(DBloodActor *actor, spritetype *pSprite2, PLAYER *pPlayer) // ???
|
|||
}
|
||||
}
|
||||
|
||||
void DropVoodooCb(DBloodActor* actor, int) // unused
|
||||
void DropVoodooCb(DBloodActor* actor, sectortype*) // unused
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype *pSprite = &actor->s();
|
||||
|
@ -734,7 +732,7 @@ void DropVoodooCb(DBloodActor* actor, int) // unused
|
|||
}
|
||||
}
|
||||
|
||||
void callbackCondition(DBloodActor* actor, int)
|
||||
void callbackCondition(DBloodActor* actor, sectortype*)
|
||||
{
|
||||
XSPRITE* pXSprite = &actor->x();
|
||||
if (pXSprite->isTriggered) return;
|
||||
|
@ -752,7 +750,7 @@ void callbackCondition(DBloodActor* actor, int)
|
|||
return;
|
||||
}
|
||||
|
||||
void(*gCallback[kCallbackMax])(DBloodActor*, int) =
|
||||
void(*gCallback[kCallbackMax])(DBloodActor*, sectortype*) =
|
||||
{
|
||||
fxFlameLick,
|
||||
Remove,
|
||||
|
|
|
@ -58,6 +58,6 @@ enum CALLBACK_ID {
|
|||
kCallbackMax,
|
||||
};
|
||||
|
||||
extern void(*gCallback[kCallbackMax])(DBloodActor*, int);
|
||||
extern void(*gCallback[kCallbackMax])(DBloodActor*, sectortype*);
|
||||
|
||||
END_BLD_NS
|
||||
|
|
|
@ -638,9 +638,8 @@ void evProcess(unsigned int time)
|
|||
if (event.cmd == kCmdCallback)
|
||||
{
|
||||
assert(event.funcID < kCallbackMax);
|
||||
assert(gCallback[event.funcID] != nullptr);
|
||||
if (event.target.isActor()) gCallback[event.funcID](event.target.actor(), -1);
|
||||
else if (event.target.isSector()) gCallback[event.funcID](nullptr, sectnum(event.target.sector()));
|
||||
if (event.target.isActor()) gCallback[event.funcID](event.target.actor(), nullptr);
|
||||
else if (event.target.isSector()) gCallback[event.funcID](nullptr, event.target.sector());
|
||||
// no case for walls defined here.
|
||||
}
|
||||
else
|
||||
|
|
|
@ -220,8 +220,7 @@ void CFX::fxProcess(void)
|
|||
remove(actor);
|
||||
continue;
|
||||
}
|
||||
assert(gCallback[pFXData->funcID] != nullptr);
|
||||
gCallback[pFXData->funcID](actor, 0);
|
||||
gCallback[pFXData->funcID](actor, nullptr);
|
||||
continue;
|
||||
}
|
||||
if (nSector != pSprite->sectnum)
|
||||
|
@ -246,8 +245,7 @@ void CFX::fxProcess(void)
|
|||
remove(actor);
|
||||
continue;
|
||||
}
|
||||
assert(gCallback[pFXData->funcID] != nullptr);
|
||||
gCallback[pFXData->funcID](actor, 0);
|
||||
gCallback[pFXData->funcID](actor, nullptr);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9068,7 +9068,7 @@ void levelEndLevelCustom(int nLevel)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void callbackUniMissileBurst(DBloodActor* actor, int) // 22
|
||||
void callbackUniMissileBurst(DBloodActor* actor, sectortype*) // 22
|
||||
{
|
||||
if (!actor) return;
|
||||
spritetype* pSprite = &actor->s();
|
||||
|
@ -9129,13 +9129,13 @@ void callbackUniMissileBurst(DBloodActor* actor, int) // 22
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void callbackMakeMissileBlocking(DBloodActor* actor, int) // 23
|
||||
void callbackMakeMissileBlocking(DBloodActor* actor, sectortype*) // 23
|
||||
{
|
||||
if (!actor || actor->s().statnum != kStatProjectile) return;
|
||||
actor->s().cstat |= CSTAT_SPRITE_BLOCK;
|
||||
}
|
||||
|
||||
void callbackGenDudeUpdate(DBloodActor* actor, int) // 24
|
||||
void callbackGenDudeUpdate(DBloodActor* actor, sectortype*) // 24
|
||||
{
|
||||
if (actor)
|
||||
genDudeUpdate(actor);
|
||||
|
|
|
@ -348,9 +348,9 @@ void playerQavScenePlay(PLAYER* pPlayer);
|
|||
void playerQavSceneDraw(PLAYER* pPlayer, int a2, double a3, double a4, int a5);
|
||||
void playerQavSceneReset(PLAYER* pPlayer);
|
||||
// ------------------------------------------------------------------------- //
|
||||
void callbackUniMissileBurst(DBloodActor*actor, int nSprite);
|
||||
void callbackMakeMissileBlocking(DBloodActor* actor, int nSprite);
|
||||
void callbackGenDudeUpdate(DBloodActor* actor, int nSprite);
|
||||
void callbackUniMissileBurst(DBloodActor*actor, sectortype* nSprite);
|
||||
void callbackMakeMissileBlocking(DBloodActor* actor, sectortype* nSprite);
|
||||
void callbackGenDudeUpdate(DBloodActor* actor, sectortype* nSprite);
|
||||
// ------------------------------------------------------------------------- //
|
||||
PLAYER* getPlayerById(int id);
|
||||
bool isGrown(DBloodActor* pSprite);
|
||||
|
|
Loading…
Reference in a new issue