- SW: migrated PSP animators to VM functions.

This commit is contained in:
Christoph Oelckers 2023-05-28 23:21:17 +02:00
parent be4bebaa3b
commit cde5cb3ed4
3 changed files with 564 additions and 435 deletions

View file

@ -347,6 +347,15 @@ typedef void (*soANIMATORp) (SECTOR_OBJECT*);
}
#define AF(func) DSWActor_##func##_VMPtr
#define DEF_PSPANIMATOR(func) \
void func(DPanelSprite*); \
DEFINE_ACTION_FUNCTION_NATIVE(DSWActor, func, func) \
{ \
auto self = (DPanelSprite *)(param[0].a); \
func(self); \
return 0; \
}
#define x(a) SPR_##a,
enum spriteindex_t
{
@ -2494,6 +2503,125 @@ DEF_ANIMATOR(DoRailStart)
DEF_ANIMATOR(DoGenerateSewerDebris)
DEF_PSPANIMATOR(pSwordPresent)
DEF_PSPANIMATOR(pSwordRest)
DEF_PSPANIMATOR(pSwordHide)
DEF_PSPANIMATOR(pSwordSlide)
DEF_PSPANIMATOR(pSwordAttack)
DEF_PSPANIMATOR(pSwordSlideDown)
DEF_PSPANIMATOR(pSwordSlideR)
DEF_PSPANIMATOR(pSwordSlideDownR)
DEF_PSPANIMATOR(pSwordRetract)
DEF_PSPANIMATOR(pStarPresent)
DEF_PSPANIMATOR(pStarHide)
DEF_PSPANIMATOR(pStarRest)
DEF_PSPANIMATOR(pStarThrow)
DEF_PSPANIMATOR(pStarRestTest)
DEF_PSPANIMATOR(pStarRetract)
DEF_PSPANIMATOR(pUziRest)
DEF_PSPANIMATOR(pUziAction)
DEF_PSPANIMATOR(pUziFire)
DEF_PSPANIMATOR(pSetVisNorm)
DEF_PSPANIMATOR(pUziHide)
DEF_PSPANIMATOR(pUziPresent)
DEF_PSPANIMATOR(pUziPresentReload)
DEF_PSPANIMATOR(pUziRetract)
DEF_PSPANIMATOR(pSuicide)
DEF_PSPANIMATOR(pUziEjectDown)
DEF_PSPANIMATOR(pUziEjectUp)
DEF_PSPANIMATOR(pSpawnUziClip)
DEF_PSPANIMATOR(pUziClip)
DEF_PSPANIMATOR(pUziReload)
DEF_PSPANIMATOR(pUziReloadRetract)
DEF_PSPANIMATOR(pUziDoneReload)
DEF_PSPANIMATOR(pUziShell)
DEF_PSPANIMATOR(pShotgunShell)
DEF_PSPANIMATOR(pShotgunPresent)
DEF_PSPANIMATOR(pShotgunRest)
DEF_PSPANIMATOR(pShotgunHide)
DEF_PSPANIMATOR(pShotgunRecoilDown)
DEF_PSPANIMATOR(pShotgunRecoilUp)
DEF_PSPANIMATOR(pShotgunRestTest)
DEF_PSPANIMATOR(pShotgunAction)
DEF_PSPANIMATOR(pShotgunFire)
DEF_PSPANIMATOR(SpawnShotgunShell)
DEF_PSPANIMATOR(pShotgunReloadDown)
DEF_PSPANIMATOR(pShotgunReloadUp)
DEF_PSPANIMATOR(pShotgunRetract)
DEF_PSPANIMATOR(pRailPresent)
DEF_PSPANIMATOR(pRailRest)
DEF_PSPANIMATOR(pRailHide)
DEF_PSPANIMATOR(pRailRecoilDown)
DEF_PSPANIMATOR(pRailRecoilUp)
DEF_PSPANIMATOR(pRailAction)
DEF_PSPANIMATOR(pRailFire)
DEF_PSPANIMATOR(pRailOkTest)
DEF_PSPANIMATOR(pRailRestTest)
DEF_PSPANIMATOR(pRailRetract)
DEF_PSPANIMATOR(pHotheadPresent)
DEF_PSPANIMATOR(pHotheadHide)
DEF_PSPANIMATOR(pHotheadRetract)
DEF_PSPANIMATOR(pHotheadRest)
DEF_PSPANIMATOR(pHotheadAction)
DEF_PSPANIMATOR(pHotheadAttack)
DEF_PSPANIMATOR(pHotheadRestTest)
DEF_PSPANIMATOR(pOnFire)
DEF_PSPANIMATOR(pMicroPresent)
DEF_PSPANIMATOR(pMicroRest)
DEF_PSPANIMATOR(pMicroHide)
DEF_PSPANIMATOR(pNukeAction)
DEF_PSPANIMATOR(pMicroStandBy)
DEF_PSPANIMATOR(pMicroCount)
DEF_PSPANIMATOR(pMicroReady)
DEF_PSPANIMATOR(pMicroRecoilDown)
DEF_PSPANIMATOR(pMicroRecoilUp)
DEF_PSPANIMATOR(pMicroFire)
DEF_PSPANIMATOR(pMicroRetract)
DEF_PSPANIMATOR(pHeartPresent)
DEF_PSPANIMATOR(pHeartRest)
DEF_PSPANIMATOR(SpawnSmallHeartBlood)
DEF_PSPANIMATOR(pHeartHide)
DEF_PSPANIMATOR(pHeartActionBlood)
DEF_PSPANIMATOR(pHeartAttack)
DEF_PSPANIMATOR(pHeartAction)
DEF_PSPANIMATOR(pHeartRetract)
DEF_PSPANIMATOR(pGrenadePresent)
DEF_PSPANIMATOR(pGrenadeRest)
DEF_PSPANIMATOR(pGrenadeHide)
DEF_PSPANIMATOR(pGrenadeAction)
DEF_PSPANIMATOR(pGrenadeFire)
DEF_PSPANIMATOR(pGrenadeRecoilDown)
DEF_PSPANIMATOR(pGrenadeRecoilUp)
DEF_PSPANIMATOR(pGrenadeRetract)
DEF_PSPANIMATOR(pMinePresent)
DEF_PSPANIMATOR(pMineRest)
DEF_PSPANIMATOR(pMineUpSound)
DEF_PSPANIMATOR(pMineHide)
DEF_PSPANIMATOR(pMineThrow)
DEF_PSPANIMATOR(pMineLower)
DEF_PSPANIMATOR(pMineRaise)
DEF_PSPANIMATOR(pMineAction)
DEF_PSPANIMATOR(pMineRetract)
DEF_PSPANIMATOR(pChopsUp)
DEF_PSPANIMATOR(pChopsClick)
DEF_PSPANIMATOR(pChopsDown)
DEF_PSPANIMATOR(pChopsDownSlow)
DEF_PSPANIMATOR(pChopsShake)
DEF_PSPANIMATOR(pChopsWait)
DEF_PSPANIMATOR(pChopsRetract)
DEF_PSPANIMATOR(pFistPresent)
DEF_PSPANIMATOR(pFistRest)
DEF_PSPANIMATOR(pFistHide)
DEF_PSPANIMATOR(pFistAttack)
DEF_PSPANIMATOR(pFistSlideDown)
DEF_PSPANIMATOR(pFistSlideR)
DEF_PSPANIMATOR(pFistSlideDownR)
DEF_PSPANIMATOR(pFistBlock)
DEF_PSPANIMATOR(pFistRetract)
DEF_PSPANIMATOR(pMicroAction)
DEF_PSPANIMATOR(pHeartBlood)
DEF_PSPANIMATOR(PanelInvTestSuicide)
END_SW_NS
#endif

File diff suppressed because it is too large Load diff

View file

@ -59,7 +59,8 @@ struct PANEL_STATE
{
short picndx; // for pip stuff in conpic.h
int tics;
void (*Animator)(DPanelSprite*); // JBF: return type was long
//void (*Animator)(PANEL_SPRITE*); // JBF: return type was long
VMNativeFunction** Animator;
PANEL_STATE* NextState;
uint32_t flags;
uint8_t xvel;