diff --git a/src/SB/Game/zNPCFXCinematic.cpp b/src/SB/Game/zNPCFXCinematic.cpp index ab3ca25c4..47d64ad7e 100644 --- a/src/SB/Game/zNPCFXCinematic.cpp +++ b/src/SB/Game/zNPCFXCinematic.cpp @@ -6,10 +6,20 @@ #include #include "xCutscene.h" +static S32 init = 0; + void zNPCFXShutdown() { } +void zNPCFXCinematic_Init() +{ + if (!init) + { + init = 1; + } +} + void clamp_bone_index(NCINEntry*, RpAtomic*) { } @@ -19,7 +29,31 @@ void NPCCone::TextureSet(RwRaster* raster) rast_cone = raster; } +void NPCCone::UVSliceSet(F32 u, F32 v) +{ + this->uv_tip[2] = u; + this->uv_slice[1] = v; +} + +void NPCCone::UVBaseSet(F32 u, F32 v) +{ + this->uv_tip[0] = u; + this->uv_tip[1] = v; +} + +void NPCCone::ColorSet(RwRGBA top, RwRGBA bot) +{ + this->rgba_top = top; + this->rgba_bot = bot; +} + void NPCCone::RadiusSet(F32 conefloat) { rad_cone = conefloat; } + +void NPARMgmt::KillAll() +{ + this->cnt_active = 0; +} + diff --git a/src/SB/Game/zNPCFXCinematic.h b/src/SB/Game/zNPCFXCinematic.h index 9a520b442..8cc5e0b09 100644 --- a/src/SB/Game/zNPCFXCinematic.h +++ b/src/SB/Game/zNPCFXCinematic.h @@ -8,6 +8,8 @@ #include "zNPCHazard.h" #include "zParEmitter.h" #include "zShrapnel.h" +#include "rwcore.h" + void zNPCFXStartup(); void zNPCFXShutdown(); @@ -15,6 +17,57 @@ S32 zNPCFXCutscenePrep(const xScene*, F32, const zCutsceneMgr* csnmgr); void zNPCFXCutscene(const xScene*, F32, const zCutsceneMgr* csnmgr); void zNPCFXCutsceneDone(const xScene*, F32, const zCutsceneMgr* csnmgr); +enum en_nparptyp +{ + NPAR_TYP_UNKNOWN, + NPAR_TYP_OILBUB, + NPAR_TYP_TUBESPIRAL, + NPAR_TYP_TUBECONFETTI, + NPAR_TYP_GLOVEDUST , + NPAR_TYP_MONSOONRAIN, + NPAR_TYP_SLEEPYZEEZ, + NPAR_TYP_CHUCKSPLASH, + NPAR_TYP_TARTARGUNK, + NPAR_TYP_DOGBREATH, + NPAR_TYP_VISSPLASH, + NPAR_TYP_FIREWORKS, + NPAR_TYP_NOMORE, + NPAR_TYP_FORCE = 2147483647 +}; + +struct NPARData +{ + xVec3 pos; + F32 xy_size[2]; + F32 uv_tl[2]; + F32 uv_br[2]; + RwRGBA color; + F32 tmr_remain; + F32 tym_exist; + F32 fac_abuse; + xVec3 vel; + S32 flg_popts : 24; + S32 nparmode : 8; + F32 unused[3]; +}; + +struct NPARXtraData +{ + +}; + +struct NPARMgmt +{ + en_nparptyp typ_npar; + S32 flg_npar; + NPARData * par_buf; + S32 cnt_active; + S32 num_max; + RwTexture * txtr; + NPARXtraData * xtra_data; + void KillAll(); +}; + struct NCINLyt { zLightning* lyt_zap; @@ -190,6 +243,9 @@ struct NPCCone F32 uv_tip[2]; F32 uv_slice[2]; void TextureSet(RwRaster* raster); + void UVSliceSet(F32 u, F32 v); + void UVBaseSet(F32 u, F32 v); + void ColorSet(RwRGBA top, RwRGBA bot); void RadiusSet(F32); };