diff --git a/src/game/data/data_0083d0.c b/src/game/data/data_0083d0.c index 3a3405e59..bfedc5f16 100644 --- a/src/game/data/data_0083d0.c +++ b/src/game/data/data_0083d0.c @@ -17,7 +17,7 @@ u32 var80062950 = 0x00000064; bool g_WeatherTickEnabled = true; u32 var80062958 = 0x00000000; u32 var8006295c = 0x00000000; -u32 var80062960 = 0x00000000; +void *var80062960 = NULL; u32 var80062964 = 0x00000000; f32 var80062968 = 0; u32 var8006296c = 0x00000000; diff --git a/src/game/game_00b480.c b/src/game/game_00b480.c index 4387e0885..fa05c0102 100644 --- a/src/game/game_00b480.c +++ b/src/game/game_00b480.c @@ -54,82 +54,38 @@ glabel func0f00b480 /* f00b50c: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f00b510 -/* f00b510: 3c013f80 */ lui $at,0x3f80 -/* f00b514: 44812000 */ mtc1 $at,$f4 -/* f00b518: 3c018006 */ lui $at,%hi(var80062968) -/* f00b51c: 240e1388 */ addiu $t6,$zero,0x1388 -/* f00b520: e4242968 */ swc1 $f4,%lo(var80062968)($at) -/* f00b524: 3c018006 */ lui $at,%hi(var8006296c) -/* f00b528: ac20296c */ sw $zero,%lo(var8006296c)($at) -/* f00b52c: 3c018006 */ lui $at,%hi(var80062970) -/* f00b530: ac202970 */ sw $zero,%lo(var80062970)($at) -/* f00b534: 3c018006 */ lui $at,%hi(var80062974) -/* f00b538: ac202974 */ sw $zero,%lo(var80062974)($at) -/* f00b53c: 3c018006 */ lui $at,%hi(var80062978) -/* f00b540: ac202978 */ sw $zero,%lo(var80062978)($at) -/* f00b544: 3c018006 */ lui $at,%hi(var8006297c) -/* f00b548: ac20297c */ sw $zero,%lo(var8006297c)($at) -/* f00b54c: 3c018006 */ lui $at,%hi(g_NextChrId) -/* f00b550: ac2e2984 */ sw $t6,%lo(g_NextChrId)($at) -/* f00b554: 3c018006 */ lui $at,%hi(g_ChrsA) -/* f00b558: 27bdffe0 */ addiu $sp,$sp,-32 -/* f00b55c: ac202988 */ sw $zero,%lo(g_ChrsA)($at) -/* f00b560: afbf001c */ sw $ra,0x1c($sp) -/* f00b564: 3c018006 */ lui $at,%hi(g_NumChrsA) -/* f00b568: afb10018 */ sw $s1,0x18($sp) -/* f00b56c: afb00014 */ sw $s0,0x14($sp) -/* f00b570: ac20298c */ sw $zero,%lo(g_NumChrsA)($at) -/* f00b574: 24040730 */ addiu $a0,$zero,0x730 -/* f00b578: 0c0048f2 */ jal malloc -/* f00b57c: 24050004 */ addiu $a1,$zero,0x4 -/* f00b580: 3c048006 */ lui $a0,%hi(var80062a8c) -/* f00b584: 24842a8c */ addiu $a0,$a0,%lo(var80062a8c) -/* f00b588: ac820000 */ sw $v0,0x0($a0) -/* f00b58c: 00001825 */ or $v1,$zero,$zero -.L0f00b590: -/* f00b590: 8c8f0000 */ lw $t7,0x0($a0) -/* f00b594: 01e3c021 */ addu $t8,$t7,$v1 -/* f00b598: 2463005c */ addiu $v1,$v1,0x5c -/* f00b59c: 28610730 */ slti $at,$v1,0x730 -/* f00b5a0: 1420fffb */ bnez $at,.L0f00b590 -/* f00b5a4: af000000 */ sw $zero,0x0($t8) -/* f00b5a8: 3c018006 */ lui $at,%hi(var80062a90) -/* f00b5ac: ac202a90 */ sw $zero,%lo(var80062a90)($at) -/* f00b5b0: 3c01800a */ lui $at,%hi(g_NumChrsC) -/* f00b5b4: ac20cd10 */ sw $zero,%lo(g_NumChrsC)($at) -/* f00b5b8: 3c01800a */ lui $at,%hi(g_ChrnumsC) -/* f00b5bc: ac20cd14 */ sw $zero,%lo(g_ChrnumsC)($at) -/* f00b5c0: 3c01800a */ lui $at,%hi(g_ChrIndexesC) -/* f00b5c4: ac20cd18 */ sw $zero,%lo(g_ChrIndexesC)($at) -/* f00b5c8: 24041470 */ addiu $a0,$zero,0x1470 -/* f00b5cc: 0c0048f2 */ jal malloc -/* f00b5d0: 24050004 */ addiu $a1,$zero,0x4 -/* f00b5d4: 3c018006 */ lui $at,%hi(var80062960) -/* f00b5d8: 3c10800a */ lui $s0,%hi(var8009ccc0) -/* f00b5dc: 3c11800a */ lui $s1,%hi(g_NumChrsC) -/* f00b5e0: ac222960 */ sw $v0,%lo(var80062960)($at) -/* f00b5e4: 2631cd10 */ addiu $s1,$s1,%lo(g_NumChrsC) -/* f00b5e8: 2610ccc0 */ addiu $s0,$s0,%lo(var8009ccc0) -.L0f00b5ec: -/* f00b5ec: 24040240 */ addiu $a0,$zero,0x240 -/* f00b5f0: 0c0048f2 */ jal malloc -/* f00b5f4: 24050004 */ addiu $a1,$zero,0x4 -/* f00b5f8: 2459003f */ addiu $t9,$v0,0x3f -/* f00b5fc: 3728003f */ ori $t0,$t9,0x3f -/* f00b600: 26100004 */ addiu $s0,$s0,0x4 -/* f00b604: 3909003f */ xori $t1,$t0,0x3f -/* f00b608: 1611fff8 */ bne $s0,$s1,.L0f00b5ec -/* f00b60c: ae09fffc */ sw $t1,-0x4($s0) -/* f00b610: 0fc02edc */ jal resetSomeStageThings -/* f00b614: 00000000 */ nop -/* f00b618: 8fbf001c */ lw $ra,0x1c($sp) -/* f00b61c: 8fb00014 */ lw $s0,0x14($sp) -/* f00b620: 8fb10018 */ lw $s1,0x18($sp) -/* f00b624: 03e00008 */ jr $ra -/* f00b628: 27bd0020 */ addiu $sp,$sp,0x20 -); +void func0f00b510(void) +{ + s32 i; + + var80062968 = 1; + var8006296c = 0; + var80062970 = 0; + var80062974 = 0; + var80062978 = 0; + var8006297c = 0; + g_NextChrId = 5000; + g_ChrsA = NULL; + g_NumChrsA = 0; + + var80062a8c = malloc(sizeof(struct var80062a8c) * 20, 4); + + for (i = 0; i < 20; i++) { + var80062a8c[i].prop = NULL; + } + + var80062a90 = 0; + g_NumChrsC = 0; + g_ChrnumsC = NULL; + g_ChrIndexesC = NULL; + var80062960 = malloc(0x1470, 4); + + for (i = 0; i < 20; i++) { + var8009ccc0[i] = (void *)ALIGN64(malloc(0x240, 4)); + } + + resetSomeStageThings(); +} GLOBAL_ASM( glabel func0f00b62c diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index da8d0d8b6..6c781ca82 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -14918,26 +14918,7 @@ u8 *var8009cca8[2] = {NULL, NULL}; u8 *var8009ccb0[2] = {NULL, NULL}; u32 var8009ccb8 = 0; u32 var8009ccbc = 0; -u32 var8009ccc0 = 0; -u32 var8009ccc4 = 0; -u32 var8009ccc8 = 0; -u32 var8009cccc = 0; -u32 var8009ccd0 = 0; -u32 var8009ccd4 = 0; -u32 var8009ccd8 = 0; -u32 var8009ccdc = 0; -u32 var8009cce0 = 0; -u32 var8009cce4 = 0; -u32 var8009cce8 = 0; -u32 var8009ccec = 0; -u32 var8009ccf0 = 0; -u32 var8009ccf4 = 0; -u32 var8009ccf8 = 0; -u32 var8009ccfc = 0; -u32 var8009cd00 = 0; -u32 var8009cd04 = 0; -u32 var8009cd08 = 0; -u32 var8009cd0c = 0; +void *var8009ccc0[20] = {0}; s32 g_NumChrsC = 0; s16 *g_ChrnumsC = NULL; s16 *g_ChrIndexesC = NULL; diff --git a/src/include/constants.h b/src/include/constants.h index c25855224..efe11c61c 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -14,7 +14,7 @@ #define ABS(val) ((val) > 0 ? (val) : -(val)) #define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7) #define ALIGN16(val) (((val) + 0xf | 0xf) ^ 0xf) -#define ALIGN64(val) (((val) + 0x3f | 0x3f) ^ 0x3f) +#define ALIGN64(val) ((((u32)val) + 0x3f | 0x3f) ^ 0x3f) #define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0])) #define CHRRACE(chr) (chr ? chr->race : RACE_HUMAN) #define FRAMEDURATION (1 / 60.0f) diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index b4009e572..4e4ff8f5b 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -88,11 +88,13 @@ extern u8 var80062948; extern u8 var8006294c; extern u32 var80062950; extern bool g_WeatherTickEnabled; -extern u32 var80062960; +extern void *var80062960; extern u32 var80062964; extern f32 var80062968; +extern u32 var8006296c; extern u32 var80062970; extern u32 var80062974; +extern u32 var80062978; extern u32 var8006297c; extern u32 var80062980; extern s32 g_NextChrId; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index ee831f95d..c6e866957 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -542,7 +542,7 @@ extern u8 *var8009cca0; extern u8 *var8009cca8[2]; extern u8 *var8009ccb0[2]; extern u32 var8009ccb8; -extern u32 var8009ccc0; +extern void *var8009ccc0[20]; extern s32 g_NumChrsC; extern s16 *g_ChrnumsC; extern s16 *g_ChrIndexesC;