summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinclude/game.h5
-rw-r--r--kamek_pal.x7
-rw-r--r--src/koopatlas/core.cpp9
3 files changed, 21 insertions, 0 deletions
diff --git a/include/game.h b/include/game.h
index a5fa86b..837d340 100755
--- a/include/game.h
+++ b/include/game.h
@@ -3102,5 +3102,10 @@ class BGGMEffectRenderer : public m3d::proc_c {
virtual bool setupEffectRenderer(mAllocator_c *allocator, int opaPrio, int xluPrio, int groupID);
};
+void CleanUpEffectThings();
+bool FreeEffects(int efNum);
+bool FreeBreff(int efNum);
+bool FreeBreft(int efNum);
+
#endif
diff --git a/kamek_pal.x b/kamek_pal.x
index c0f9887..d88df1e 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -1,6 +1,13 @@
SECTIONS {
/* Scrolling is annoying, clown car goes here! */
+ StockWMInit_LoadEffects__FPv = 0x80926B10;
+
+ CleanUpEffectThings__Fv = 0x80093520;
+ FreeEffects__Fi = 0x800934D0;
+ FreeBreff__Fi = 0x80093170;
+ FreeBreft__Fi = 0x800931B0;
+
__dt__18BGGMEffectRendererFv = 0x80092E30;
__vt__18BGGMEffectRenderer = 0x80311908;
__construct_array = 0x802DCC90;
diff --git a/src/koopatlas/core.cpp b/src/koopatlas/core.cpp
index 164ea89..c20d715 100644
--- a/src/koopatlas/core.cpp
+++ b/src/koopatlas/core.cpp
@@ -46,6 +46,7 @@ dScKoopatlas_c *dScKoopatlas_c::build() {
}
bool WMInit_StartLoading(void*);
+bool StockWMInit_LoadEffects(void*);
bool WMInit_LoadSIAnims(void*);
bool WMInit_EndLoading(void*);
bool WMInit_LoadResources1(void*);
@@ -56,6 +57,7 @@ bool WMInit_SetupWipe(void*);
ChainedFunc initFunctions[] = {
WMInit_StartLoading,
+ StockWMInit_LoadEffects,
WMInit_LoadSIAnims,
WMInit_EndLoading,
WMInit_LoadResources1,
@@ -409,6 +411,11 @@ int dScKoopatlas_c::onDelete() {
FreeScene(0);
FreeScene(1);
+ CleanUpEffectThings();
+ FreeEffects(1);
+ FreeBreff(1);
+ FreeBreft(1);
+
DVD_FreeFile(GetDVDClass2(), "SI_kinoko");
DVD_FreeFile(GetDVDClass2(), "SI_fireflower");
DVD_FreeFile(GetDVDClass2(), "SI_iceflower");
@@ -419,6 +426,8 @@ int dScKoopatlas_c::onDelete() {
levelInfoLoader.unload();
mapListLoader.unload();
+ CleanUpEffectThings();
+
return true;
}