diff --git a/src/SB/Core/x/xCutscene.h b/src/SB/Core/x/xCutscene.h index 682ac35e3..b16597c58 100644 --- a/src/SB/Core/x/xCutscene.h +++ b/src/SB/Core/x/xCutscene.h @@ -110,6 +110,7 @@ struct xCutscene U32 SndHandle[2]; XCSNNosey* cb_nosey; void NoseySet(XCSNNosey* nosey); + void NoseyClear(); }; struct CutsceneShadowModel diff --git a/src/SB/Game/zNPCFXCinematic.cpp b/src/SB/Game/zNPCFXCinematic.cpp index 93c9928ef..957b88733 100644 --- a/src/SB/Game/zNPCFXCinematic.cpp +++ b/src/SB/Game/zNPCFXCinematic.cpp @@ -3,13 +3,11 @@ #include "xParEmitter.h" #include "zNPCFXCinematic.h" +#include "zParPTank.h" +#include "zNPCTypeBossSB2.h" #include -void zNPCFXShutdown() -{ -} - // TODO: NEEDS REWRITEN / CORRECTED void NCIN_Par_BPLANK_JET_1_Upd(const zCutsceneMgr*, NCINEntry* fxrec, S32 param) { @@ -447,6 +445,24 @@ void NCINBeNosey::CanRenderNow() NCINEntry* fxrec; } +void zNPCFXShutdown() +{ +} + +void NCINBeNosey::Init(const zCutsceneMgr* m, NCINEntry* e, S32 i) +{ + this->use_fxtab = e; + this->x = i; + this->use_csnmgr = (zCutsceneMgr*)m; +} + +void NCINBeNosey::Done() +{ + this->use_fxtab = 0; + this->x = 0; + this->use_csnmgr = 0; +} + void NCIN_Generic_Upd(const zCutsceneMgr*, NCINEntry* fxrec, S32 killit) { if (killit != 0) @@ -698,10 +714,76 @@ void NCIN_ShieldPop(const zCutsceneMgr*, NCINEntry*, S32) { } +void NCIN_MidFish_Upd(const zCutsceneMgr* mgr, NCINEntry* e, S32 i) +{ + if (i != 0) + { + e->flg_stat |= 4; + } +} + +void NCIN_BombTrail_Upd(const zCutsceneMgr* mgr, NCINEntry* e, S32 i) +{ + if (i != 0) + { + e->flg_stat |= 4; + } +} + +void NCIN_BombTrail_AR(const zCutsceneMgr* mgr, NCINEntry* e, RpAtomic* a, RwMatrixTag* t, U32 i1, U32 i2) +{ + if (i1 == 0x4) + { + zFX_SpawnBubbleTrail((const xVec3*)&t->pos, 0x4); + } +} + +void NCIN_BoneTrail_Upd(const zCutsceneMgr* mgr, NCINEntry* e, S32 i) +{ + if (i != 0) + { + e->flg_stat |= 4; + } +} + +void NCIN_BoneTrail_AR(const zCutsceneMgr* mgr, NCINEntry* e, RpAtomic* a, RwMatrixTag* t, U32 i1, U32 i2) +{ + if (i1 == 0x7) + { + zFX_SpawnBubbleTrail((const xVec3*)&t->pos, 0x4); + } +} + +void NCIN_HookRecoil_Upd(const zCutsceneMgr* mgr, NCINEntry* e, S32 i) +{ + if (i != 0) + { + e->flg_stat |= 4; + } +} + +void NCIN_SpatGlow_Upd(const zCutsceneMgr* mgr, NCINEntry* e, S32 i) +{ + if (i != 0) + { + e->flg_stat |= 4; + } +} + void clamp_bone_index(NCINEntry*, RpAtomic*) { } +void xCutscene::NoseyClear() +{ + this->NoseySet(0); +} + +void xCutscene::NoseySet(XCSNNosey* nosey) +{ + this->cb_nosey = nosey; +} + void NPCCone::TextureSet(RwRaster* raster) { rast_cone = raster; diff --git a/src/SB/Game/zNPCFXCinematic.h b/src/SB/Game/zNPCFXCinematic.h index 218644c3b..d102f7fc5 100644 --- a/src/SB/Game/zNPCFXCinematic.h +++ b/src/SB/Game/zNPCFXCinematic.h @@ -202,9 +202,12 @@ struct NCINBeNosey : XCSNNosey { zCutsceneMgr* use_csnmgr; NCINEntry* use_fxtab; + S32 x; - void UpdatedAnimated(RpAtomic* model, RwMatrixTag* animMat, U32 animIndex, U32 dataIndex); void CanRenderNow(); + void Init(const zCutsceneMgr* csnmgr, NCINEntry* fxtab, S32 x); + void Done(); + void UpdatedAnimated(RpAtomic* model, RwMatrixTag* animMat, U32 animIndex, U32 dataIndex); }; #endif