summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
authorKevin Alexis Contreras <36680385+KiritoDv@users.noreply.github.com>2022-06-15 09:09:17 -0500
committerKevin Alexis Contreras <36680385+KiritoDv@users.noreply.github.com>2022-06-15 09:09:17 -0500
commit19ac30b918f601799fd5519cf6c176a13faa2af8 (patch)
treef603d8696bc34469bd32d398c516fb1bd97ea449 /soh/src/code
parent3dc33b6f84fc0d2019df37aebdbc367a1e3f767a (diff)
Fixed Ganondorf's lair and Spirit Temple crashes on 64 bits
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_bgcheck.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/soh/src/code/z_bgcheck.c b/soh/src/code/z_bgcheck.c
index 0fca4a29d..f305eab23 100644
--- a/soh/src/code/z_bgcheck.c
+++ b/soh/src/code/z_bgcheck.c
@@ -1516,11 +1516,7 @@ void BgCheck_Allocate(CollisionContext* colCtx, GlobalContext* globalCtx, Collis
if (globalCtx->sceneNum == SCENE_MALON_STABLE) {
// "/* BGCheck LonLon Size %dbyte */\n"
osSyncPrintf("/* BGCheck LonLonサイズ %dbyte */\n", 0x3520);
- #ifdef _SOH64
- colCtx->memSize = 0x3520 * (sizeof(void*) / 4);
- #else
colCtx->memSize = 0x3520;
- #endif
} else {
// "/* BGCheck Mini Size %dbyte */\n"
osSyncPrintf("/* BGCheck ミニサイズ %dbyte */\n", 0x4E20);
@@ -1588,6 +1584,11 @@ void BgCheck_Allocate(CollisionContext* colCtx, GlobalContext* globalCtx, Collis
&colCtx->subdivLength.y, &colCtx->subdivLengthInv.y);
BgCheck_SetSubdivisionDimension(colCtx->minBounds.z, colCtx->subdivAmount.z, &colCtx->maxBounds.z,
&colCtx->subdivLength.z, &colCtx->subdivLengthInv.z);
+
+#ifdef _SOH64
+ colCtx->memSize *= (sizeof(void*) / 4);
+#endif
+
memSize = colCtx->subdivAmount.x * sizeof(StaticLookup) * colCtx->subdivAmount.y * colCtx->subdivAmount.z +
colCtx->colHeader->numPolygons * sizeof(u8) + colCtx->dyna.polyNodesMax * sizeof(SSNode) +
colCtx->dyna.polyListMax * sizeof(CollisionPoly) + colCtx->dyna.vtxListMax * sizeof(Vec3s) +