mirror of
https://github.com/n64decomp/mk64
synced 2026-09-12 12:05:15 -04:00
Give names to a lot of object spawn locations (#486)
Signed-off-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
+159
-406
@@ -4,7 +4,9 @@
|
||||
#include <defines.h>
|
||||
|
||||
#include "code_800029B0.h"
|
||||
#include "code_80057C60.h"
|
||||
#include "code_8006E9C0.h"
|
||||
#include "code_80086E70.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "objects.h"
|
||||
#include "bomb_kart.h"
|
||||
@@ -476,13 +478,8 @@ extern bool8 D_80165818;
|
||||
extern s8 D_80165820;
|
||||
extern s8 D_80165828;
|
||||
|
||||
struct UnkStr80165832 {
|
||||
s8 unk0;
|
||||
s8 unk1;
|
||||
};
|
||||
|
||||
extern struct UnkStr80165832 D_80165800;
|
||||
extern struct UnkStr80165832 D_80165832;
|
||||
extern s8 D_80165800[2];
|
||||
extern s8 D_80165832[2];
|
||||
|
||||
void func_8006F824(s32 arg0) {
|
||||
D_80165808 = D_801657E4;
|
||||
@@ -490,8 +487,8 @@ void func_8006F824(s32 arg0) {
|
||||
D_80165820 = D_801657F0;
|
||||
D_80165818 = D_801657E8;
|
||||
D_80165828 = D_801657F8;
|
||||
D_80165832.unk0 = D_80165800.unk0;
|
||||
D_80165832.unk1 = D_80165800.unk1;
|
||||
D_80165832[0] = D_80165800[0];
|
||||
D_80165832[1] = D_80165800[1];
|
||||
if ((arg0 != 0) && (gIsGamePaused == 0)) {
|
||||
play_sound2(SOUND_ACTION_PING);
|
||||
}
|
||||
@@ -994,347 +991,146 @@ void func_80070714(void) {
|
||||
D_80165748 = 0xA;
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-09-2023
|
||||
extern ? *D_80165758;
|
||||
extern ? D_80183EB0;
|
||||
extern ? D_80183EC8;
|
||||
extern ? D_80183EDC;
|
||||
extern ? D_80183F34;
|
||||
extern ? D_80183F3C;
|
||||
extern ? D_80183F50;
|
||||
extern ? D_8018C278;
|
||||
extern ? D_8018C404;
|
||||
extern ? D_8018C5F0;
|
||||
extern ? D_8018C6B0;
|
||||
extern s32 D_8018CF10;
|
||||
extern s8 D_8018D198;
|
||||
extern s8 D_8018D1A8;
|
||||
extern ? D_8018D1B3;
|
||||
extern s8 D_8018D1B8;
|
||||
extern ? D_8018D1C4;
|
||||
s16 gCurrentCourseId; /* unable to generate initializer */
|
||||
static ? D_800E5728; /* unable to generate initializer */
|
||||
static ? D_800E5854; /* unable to generate initializer */
|
||||
static ? D_800E5894; /* unable to generate initializer */
|
||||
static ? D_800E58EC; /* unable to generate initializer */
|
||||
static ? D_800E5E14; /* unable to generate initializer */
|
||||
static ? D_800E5E8C; /* unable to generate initializer */
|
||||
static ? D_800E5EE6; /* unable to generate initializer */
|
||||
static ? D_800E5EE8; /* unable to generate initializer */
|
||||
static ? D_800E5F80; /* unable to generate initializer */
|
||||
static ? D_800E5FD0; /* unable to generate initializer */
|
||||
static ? D_800E6360; /* unable to generate initializer */
|
||||
static ? D_800E641A; /* unable to generate initializer */
|
||||
|
||||
void func_80070780(void) {
|
||||
Objects *sp4C;
|
||||
? *sp48;
|
||||
? *sp44;
|
||||
? *var_s1_2;
|
||||
? *var_s1_4;
|
||||
? *var_s2_6;
|
||||
? *var_v1;
|
||||
? *var_v1_2;
|
||||
? *var_v1_3;
|
||||
Objects *temp_v0;
|
||||
Objects *temp_v0_2;
|
||||
Objects *temp_v0_3;
|
||||
Objects *temp_v0_4;
|
||||
Objects *temp_v0_5;
|
||||
Objects *temp_v0_6;
|
||||
Objects *temp_v0_7;
|
||||
Objects *temp_v0_8;
|
||||
Objects *temp_v0_9;
|
||||
f32 temp_f0;
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f0_3;
|
||||
f32 temp_f0_4;
|
||||
f32 temp_f0_5;
|
||||
f32 temp_f18;
|
||||
f32 temp_f4;
|
||||
f32 temp_f4_2;
|
||||
f32 temp_f6;
|
||||
f64 temp_f8;
|
||||
s16 *temp_v1;
|
||||
s16 temp_f10;
|
||||
s16 temp_f6_2;
|
||||
s16 temp_f8_2;
|
||||
s16 temp_t1;
|
||||
s16 temp_t4;
|
||||
s16 temp_t5;
|
||||
s16 temp_t5_2;
|
||||
s32 *var_s0;
|
||||
s32 *var_s0_10;
|
||||
s32 *var_s0_2;
|
||||
s32 *var_s0_3;
|
||||
s32 *var_s0_4;
|
||||
s32 *var_s0_8;
|
||||
s32 *var_s0_9;
|
||||
s32 *var_s1;
|
||||
s32 *var_s1_10;
|
||||
s32 *var_s1_11;
|
||||
s32 *var_s1_12;
|
||||
s32 *var_s1_13;
|
||||
s32 *var_s1_14;
|
||||
s32 *var_s1_3;
|
||||
s32 *var_s1_5;
|
||||
s32 *var_s1_6;
|
||||
s32 *var_s1_7;
|
||||
s32 *var_s1_8;
|
||||
s32 *var_s1_9;
|
||||
s32 *var_s2_2;
|
||||
s32 *var_s2_3;
|
||||
s32 *var_s2_4;
|
||||
s32 *var_s2_5;
|
||||
s32 *var_s2_7;
|
||||
s32 temp_s0;
|
||||
s32 temp_s0_10;
|
||||
s32 temp_s0_2;
|
||||
s32 temp_s0_3;
|
||||
s32 temp_s0_4;
|
||||
s32 temp_s0_5;
|
||||
s32 temp_s0_6;
|
||||
s32 temp_s0_7;
|
||||
s32 temp_s0_8;
|
||||
s32 temp_s0_9;
|
||||
s32 temp_t9;
|
||||
s32 var_s2;
|
||||
s32 var_s3;
|
||||
s32 var_s3_2;
|
||||
s32 var_s3_3;
|
||||
s32 var_s3_4;
|
||||
s32 var_s3_5;
|
||||
s8 *var_s0_5;
|
||||
s8 *var_s0_6;
|
||||
s8 *var_s0_7;
|
||||
|
||||
switch ((u16) gCurrentCourseId) {
|
||||
switch (gCurrentCourseId) {
|
||||
case 0:
|
||||
if (gGamestate != 9) {
|
||||
if (gModeSelection == 0) {
|
||||
func_80070714();
|
||||
}
|
||||
var_s0 = D_8018C630;
|
||||
var_s3 = 0;
|
||||
if (D_80165738 > 0) {
|
||||
do {
|
||||
find_unused_obj_index(var_s0);
|
||||
func_800723A4(*var_s0, 0);
|
||||
var_s3 += 1;
|
||||
var_s0 += 4;
|
||||
} while (var_s3 < D_80165738);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < D_80165738; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C630[var_s3]);
|
||||
func_800723A4(D_8018C630[var_s3], 0);
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
D_80165750 = 0x000B;
|
||||
D_80165758 = &D_800E5894;
|
||||
gNumActiveThwomps = NUM_THWOMPS_100CC_EXTRA;
|
||||
gThowmpSpawnList = gThwompSpawns100CCExtra;
|
||||
switch (gCCSelection) { /* switch 1; irregular */
|
||||
case 1: /* switch 1 */
|
||||
case 3: /* switch 1 */
|
||||
break;
|
||||
case 0: /* switch 1 */
|
||||
D_80165750 = 8;
|
||||
D_80165758 = &D_800E5854;
|
||||
gNumActiveThwomps = NUM_THWOMPS_50CC;
|
||||
gThowmpSpawnList = gThomwpSpawns50CC;
|
||||
break;
|
||||
case 2: /* switch 1 */
|
||||
D_80165750 = 0x000C;
|
||||
D_80165758 = &D_800E58EC;
|
||||
gNumActiveThwomps = NUM_THWOMPS_150CC;
|
||||
gThowmpSpawnList = gThomwpSpawns150CC;
|
||||
break;
|
||||
}
|
||||
var_s1 = D_80183EA0;
|
||||
var_s3_2 = 0;
|
||||
if (D_80165750 > 0) {
|
||||
var_s2 = 0;
|
||||
do {
|
||||
temp_s0 = *var_s1;
|
||||
func_800723A4(temp_s0, 0);
|
||||
temp_v1 = D_80165758 + var_s2;
|
||||
var_s3_2 += 1;
|
||||
temp_f6 = (f32) temp_v1->unk0;
|
||||
temp_v0 = &gObjectList[temp_s0];
|
||||
var_s2 += 8;
|
||||
var_s1 += 4;
|
||||
temp_v0->unk_010[0] = temp_f6 * D_8018D01C;
|
||||
temp_v0->unk_010[2] = (f32) temp_v1->unk2;
|
||||
temp_v0->unk_0D5 = (u8) temp_v1->unk4;
|
||||
temp_v0->unk_0A0 = temp_v1->unk6;
|
||||
} while (var_s3_2 < D_80165750);
|
||||
var_s3_2 = 0;
|
||||
for (var_s3 = 0; var_s3 < gNumActiveThwomps; var_s3++) {
|
||||
temp_s0 = D_80183EA0[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].unk_010[0] = gThowmpSpawnList[var_s3].startX * D_8018D01C;
|
||||
gObjectList[temp_s0].unk_010[2] = gThowmpSpawnList[var_s3].startZ;
|
||||
gObjectList[temp_s0].unk_0D5 = gThowmpSpawnList[var_s3].unk_4;
|
||||
gObjectList[temp_s0].unk_0A0 = gThowmpSpawnList[var_s3].unk_6;
|
||||
}
|
||||
temp_s0_2 = *D_80183F28;
|
||||
func_800723A4(temp_s0_2, 0);
|
||||
var_s1_2 = &D_800E5728;
|
||||
temp_v0_2 = &gObjectList[temp_s0_2];
|
||||
var_s2_2 = D_8018BFA8;
|
||||
temp_v0_2->pos[1] = 80.0f;
|
||||
temp_v0_2->pos[0] = (f32) ((f64) D_8018D01C * -68.0);
|
||||
temp_v0_2->pos[2] = -1840.0f;
|
||||
do {
|
||||
temp_s0_3 = *var_s2_2;
|
||||
func_800723A4(temp_s0_3, 0);
|
||||
temp_t9 = var_s3_2 & 1;
|
||||
temp_v0_3 = &gObjectList[temp_s0_3];
|
||||
var_s3_2 += 1;
|
||||
var_s2_2 += 4;
|
||||
temp_v0_3->pos[1] = (f32) var_s1_2->unk2;
|
||||
temp_v0_3->pos[0] = (f32) var_s1_2->unk0 * D_8018D01C;
|
||||
temp_v0_3->unk_0BE[1] = 0;
|
||||
temp_v0_3->pos[2] = (f32) var_s1_2->unk4;
|
||||
if (temp_t9 != 0) {
|
||||
temp_v0_3->unk_0BE[1] = 0x8000;
|
||||
// Handle the big statue's fire breath
|
||||
temp_s0 = D_80183F28[0];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].pos[0] = -68.0 * D_8018D01C;
|
||||
gObjectList[temp_s0].pos[1] = 80.0f;
|
||||
gObjectList[temp_s0].pos[2] = -1840.0f;
|
||||
// Handle the smaller statues' fire breath
|
||||
for (var_s3 = 0; var_s3 < NUM_FIRE_BREATHS; var_s3++) {
|
||||
temp_s0 = D_8018BFA8[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].pos[0] = gFireBreathsSpawns[var_s3][0] * D_8018D01C;
|
||||
gObjectList[temp_s0].pos[1] = gFireBreathsSpawns[var_s3][1];
|
||||
gObjectList[temp_s0].pos[2] = gFireBreathsSpawns[var_s3][2];
|
||||
gObjectList[temp_s0].unk_0BE[1] = 0;
|
||||
if (var_s3 % 2U) {
|
||||
gObjectList[temp_s0].unk_0BE[1] += 0x8000;
|
||||
}
|
||||
var_s1_2 += 6;
|
||||
} while (var_s3_2 < 4);
|
||||
var_s0_2 = D_8018C030;
|
||||
do {
|
||||
delete_object(var_s0_2);
|
||||
var_s0_2 += 4;
|
||||
} while (var_s0_2 != D_8018C0B0);
|
||||
return;
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < 32; var_s3++) {
|
||||
delete_object(&D_8018C030[var_s3]);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gGamestate != 9) {
|
||||
temp_s0_4 = D_80183EA0->unk0;
|
||||
init_texture_object(temp_s0_4, d_course_banshee_boardwalk_bat_tlut, *d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040);
|
||||
temp_v0_4 = &gObjectList[temp_s0_4];
|
||||
temp_v0_4->unk_0B2[0] = 0;
|
||||
temp_v0_4->unk_0B2[1] = 0;
|
||||
temp_v0_4->unk_0B2[2] = 0x8000;
|
||||
func_800723A4(D_80183EA0->unk4, 0);
|
||||
func_800723A4(D_80183EA0->unk8, 0);
|
||||
return;
|
||||
temp_s0 = D_80183EA0[0];
|
||||
init_texture_object(temp_s0, d_course_banshee_boardwalk_bat_tlut, *d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040);
|
||||
gObjectList[temp_s0].unk_0B2[0] = 0;
|
||||
gObjectList[temp_s0].unk_0B2[1] = 0;
|
||||
gObjectList[temp_s0].unk_0B2[2] = 0x8000;
|
||||
func_800723A4(D_80183EA0[1], 0);
|
||||
func_800723A4(D_80183EA0[2], 0);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
var_s1_3 = D_80183EA0;
|
||||
do {
|
||||
func_800723A4(*var_s1_3, 0);
|
||||
var_s1_3 += 4;
|
||||
} while ((u32) var_s1_3 < (u32) &D_80183EB0);
|
||||
var_s2_3 = D_80183F28;
|
||||
for (var_s3 = 0; var_s3 < 4; var_s3++) {
|
||||
func_800723A4(D_80183EA0[var_s3], 0);
|
||||
}
|
||||
if (gGamestate != 9) {
|
||||
var_v1 = &D_800E5E8C;
|
||||
var_s1_4 = &D_800E5E14;
|
||||
do {
|
||||
temp_s0_5 = *var_s2_3;
|
||||
sp44 = var_v1;
|
||||
func_800723A4(temp_s0_5, 0);
|
||||
temp_f0 = (f32) var_s1_4->unk0 * D_8018D01C;
|
||||
temp_v0_5 = &gObjectList[temp_s0_5];
|
||||
temp_v0_5->unk_010[0] = temp_f0;
|
||||
temp_v0_5->pos[0] = temp_f0;
|
||||
temp_f10 = var_s1_4->unk4;
|
||||
temp_t1 = var_s1_4->unk6;
|
||||
temp_t5 = var_v1->unk4;
|
||||
temp_f0_2 = (f32) ((f64) var_s1_4->unk2 + 6.0);
|
||||
temp_f4 = (f32) var_v1->unk0 * D_8018D01C;
|
||||
var_v1 += 6;
|
||||
var_s2_3 += 4;
|
||||
temp_v0_5->unk_044 = temp_f0_2;
|
||||
temp_v0_5->pos[1] = temp_f0_2;
|
||||
var_s1_4 += 8;
|
||||
temp_f0_3 = (f32) temp_f10;
|
||||
temp_v0_5->unk_0D5 = (u8) temp_t1;
|
||||
temp_v0_5->unk_09E = temp_t5;
|
||||
temp_v0_5->unk_010[2] = temp_f0_3;
|
||||
temp_v0_5->pos[2] = temp_f0_3;
|
||||
temp_v0_5->unk_09C = (s16) (s32) temp_f4;
|
||||
} while (var_v1 != &D_800E5EE6);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < NUM_HEDGEHOGS; var_s3++) {
|
||||
temp_s0 = D_80183F28[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].pos[0] = gObjectList[temp_s0].unk_010[0] = gHedgehogSpawns[var_s3].pos[0] * D_8018D01C;
|
||||
gObjectList[temp_s0].pos[1] = gObjectList[temp_s0].unk_044 = gHedgehogSpawns[var_s3].pos[1] + 6.0;
|
||||
gObjectList[temp_s0].pos[2] = gObjectList[temp_s0].unk_010[2] = gHedgehogSpawns[var_s3].pos[2];
|
||||
gObjectList[temp_s0].unk_0D5 = gHedgehogSpawns[var_s3].unk_06;
|
||||
gObjectList[temp_s0].unk_09C = gHedgehogPatrolPoints[var_s3][0] * D_8018D01C;
|
||||
gObjectList[temp_s0].unk_09E = gHedgehogPatrolPoints[var_s3][2];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
var_s1_5 = D_8018C1B0;
|
||||
do {
|
||||
find_unused_obj_index(var_s1_5);
|
||||
var_s1_5 += 4;
|
||||
} while ((u32) var_s1_5 < (u32) &D_8018C278);
|
||||
var_s1_6 = D_80183EA0;
|
||||
for (var_s3 = 0; var_s3 < NUM_SNOWFLAKES; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C1B0[var_s3]);
|
||||
}
|
||||
if (gGamestate != 9) {
|
||||
var_v1_2 = &D_800E5EE8;
|
||||
var_s2_4 = D_80183F28;
|
||||
do {
|
||||
temp_s0_6 = *var_s2_4;
|
||||
sp44 = var_v1_2;
|
||||
func_800723A4(temp_s0_6, 0);
|
||||
temp_v0_6 = &gObjectList[temp_s0_6];
|
||||
temp_s0_7 = *var_s1_6;
|
||||
temp_v0_6->unk_010[0] = (f32) var_v1_2->unk0 * D_8018D01C;
|
||||
temp_v0_6->unk_010[2] = (f32) var_v1_2->unk4;
|
||||
temp_v0_6->unk_010[1] = (f32) ((f64) var_v1_2->unk2 + 5.0 + 3.0);
|
||||
func_800723A4(temp_s0_7, 0);
|
||||
temp_t4 = var_v1_2->unk4;
|
||||
temp_v0_7 = &gObjectList[temp_s0_7];
|
||||
temp_f8 = (f64) var_v1_2->unk2;
|
||||
temp_f4_2 = (f32) var_v1_2->unk0 * D_8018D01C;
|
||||
temp_t5_2 = var_v1_2->unk6;
|
||||
var_v1_2 += 8;
|
||||
var_s1_6 += 4;
|
||||
var_s2_4 += 4;
|
||||
temp_v0_7->unk_0D5 = (u8) temp_t5_2;
|
||||
temp_v0_7->unk_010[0] = temp_f4_2;
|
||||
temp_v0_7->unk_010[1] = (f32) (temp_f8 + 3.0);
|
||||
temp_v0_7->unk_010[2] = (f32) temp_t4;
|
||||
} while (var_v1_2 != &D_800E5F80);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < NUM_SNOWMEN; var_s3++) {
|
||||
temp_s0 = D_80183F28[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].unk_010[0] = gSnowmanSpawns[var_s3].pos[0] * D_8018D01C;
|
||||
gObjectList[temp_s0].unk_010[1] = gSnowmanSpawns[var_s3].pos[1] + 5.0 + 3.0;
|
||||
gObjectList[temp_s0].unk_010[2] = gSnowmanSpawns[var_s3].pos[2];
|
||||
temp_s0 = D_80183EA0[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].unk_010[0] = gSnowmanSpawns[var_s3].pos[0] * D_8018D01C;
|
||||
gObjectList[temp_s0].unk_010[1] = gSnowmanSpawns[var_s3].pos[1] + 3.0;
|
||||
gObjectList[temp_s0].unk_010[2] = gSnowmanSpawns[var_s3].pos[2];
|
||||
gObjectList[temp_s0].unk_0D5 = gSnowmanSpawns[var_s3].unk_6;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
var_s1_7 = D_80183EA0;
|
||||
if (gGamestate != 9) {
|
||||
var_v1_3 = &D_800E5F80;
|
||||
do {
|
||||
temp_s0_8 = *var_s1_7;
|
||||
sp48 = var_v1_3;
|
||||
func_800723A4(temp_s0_8, 0);
|
||||
temp_f6_2 = var_v1_3->unk4;
|
||||
temp_v0_8 = &gObjectList[temp_s0_8];
|
||||
temp_f8_2 = var_v1_3->unk6;
|
||||
temp_f18 = (f32) var_v1_3->unk2;
|
||||
temp_f0_4 = (f32) var_v1_3->unk0 * D_8018D01C;
|
||||
var_v1_3 += 8;
|
||||
var_s1_7 += 4;
|
||||
temp_v0_8->unk_010[0] = temp_f0_4;
|
||||
temp_v0_8->pos[0] = temp_f0_4;
|
||||
temp_f0_5 = (f32) temp_f6_2;
|
||||
temp_v0_8->unk_01C[0] = temp_f18 * D_8018D01C;
|
||||
temp_v0_8->unk_010[2] = temp_f0_5;
|
||||
temp_v0_8->pos[2] = temp_f0_5;
|
||||
temp_v0_8->unk_01C[2] = (f32) temp_f8_2;
|
||||
} while (var_v1_3 != &D_800E5FD0);
|
||||
}
|
||||
var_s2_5 = D_80183F28;
|
||||
do {
|
||||
temp_s0_9 = *var_s2_5;
|
||||
func_800723A4(temp_s0_9, 0);
|
||||
var_s2_5 += 4;
|
||||
if ((u32) var_s2_5 < (u32) &D_80183F3C) {
|
||||
gObjectList[temp_s0_9].unk_0D5 = 0;
|
||||
} else {
|
||||
gObjectList[temp_s0_9].unk_0D5 = 1;
|
||||
for (var_s3 = 0; var_s3 < NUM_CRABS; var_s3++) {
|
||||
temp_s0 = D_80183EA0[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].pos[0] = gObjectList[temp_s0].unk_010[0] = gCrabSpawns[var_s3].startX * D_8018D01C;
|
||||
gObjectList[temp_s0].unk_01C[0] = gCrabSpawns[var_s3].patrolX * D_8018D01C;
|
||||
|
||||
gObjectList[temp_s0].pos[2] = gObjectList[temp_s0].unk_010[2] = gCrabSpawns[var_s3].startZ;
|
||||
gObjectList[temp_s0].unk_01C[2] = gCrabSpawns[var_s3].patrolZ;
|
||||
}
|
||||
} while (var_s2_5 != &D_80183F50);
|
||||
return;
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < NUM_SEAGULLS; var_s3++) {
|
||||
temp_s0 = D_80183F28[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
if (var_s3 < (NUM_SEAGULLS / 2)) {
|
||||
gObjectList[temp_s0].unk_0D5 = 0;
|
||||
} else {
|
||||
gObjectList[temp_s0].unk_0D5 = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (gGamestate != 9) {
|
||||
if (gModeSelection == 0) {
|
||||
func_80070714();
|
||||
}
|
||||
var_s0_3 = D_8018C630;
|
||||
var_s3_3 = 0;
|
||||
if (D_80165738 > 0) {
|
||||
do {
|
||||
find_unused_obj_index(var_s0_3);
|
||||
func_800723A4(*var_s0_3, 0);
|
||||
var_s3_3 += 1;
|
||||
var_s0_3 += 4;
|
||||
} while (var_s3_3 < D_80165738);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < D_80165738; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C630[var_s3]);
|
||||
func_800723A4(D_8018C630[var_s3], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -1344,29 +1140,22 @@ void func_80070780(void) {
|
||||
func_80070714();
|
||||
}
|
||||
D_80165898 = 0;
|
||||
func_800723A4(D_80183EA0->unk0, 0);
|
||||
var_s0_4 = D_8018C630;
|
||||
var_s3_4 = 0;
|
||||
if (D_80165738 > 0) {
|
||||
do {
|
||||
find_unused_obj_index(var_s0_4);
|
||||
func_800723A4(*var_s0_4, 0);
|
||||
var_s3_4 += 1;
|
||||
var_s0_4 += 4;
|
||||
} while (var_s3_4 < D_80165738);
|
||||
return;
|
||||
func_800723A4(D_80183EA0[0], 0);
|
||||
for (var_s3 = 0; var_s3 < D_80165738; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C630[var_s3]);
|
||||
func_800723A4(D_8018C630[var_s3], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (gGamestate != 9) {
|
||||
var_s1_8 = D_80183EA0;
|
||||
if ((gPlayerCount == 1) || ((gPlayerCount == 2) && (gModeSelection == (s32) 2))) {
|
||||
switch (gCCSelection) { /* switch 2; irregular */
|
||||
case 0: /* switch 2 */
|
||||
D_8018D1C8 = 4;
|
||||
D_8018D1D0 = 6;
|
||||
goto block_75;
|
||||
D_8018D1D8 = 6;
|
||||
break;
|
||||
case 1: /* switch 2 */
|
||||
D_8018D1C8 = 5;
|
||||
D_8018D1D0 = 8;
|
||||
@@ -1375,7 +1164,7 @@ void func_80070780(void) {
|
||||
case 2: /* switch 2 */
|
||||
D_8018D1C8 = 5;
|
||||
D_8018D1D0 = 8;
|
||||
D_8018D1D8 = 0x0000000A;
|
||||
D_8018D1D8 = 10;
|
||||
break;
|
||||
case 3: /* switch 2 */
|
||||
D_8018D1C8 = 5;
|
||||
@@ -1386,111 +1175,75 @@ void func_80070780(void) {
|
||||
} else {
|
||||
D_8018D1C8 = 4;
|
||||
D_8018D1D0 = 6;
|
||||
block_75:
|
||||
D_8018D1D8 = 6;
|
||||
}
|
||||
var_s0_5 = &D_8018D198;
|
||||
do {
|
||||
*var_s0_5 = 0;
|
||||
find_unused_obj_index(var_s1_8);
|
||||
var_s0_5 += 1;
|
||||
var_s1_8 += 4;
|
||||
} while ((u32) var_s0_5 < (u32) &D_8018D1A0);
|
||||
var_s0_6 = &D_8018D1A8;
|
||||
var_s1_9 = D_80183EA0;
|
||||
do {
|
||||
*var_s0_6 = 0;
|
||||
find_unused_obj_index(var_s1_9);
|
||||
var_s0_6 += 1;
|
||||
var_s1_9 += 4;
|
||||
} while ((u32) var_s0_6 < (u32) &D_8018D1B3);
|
||||
var_s0_7 = &D_8018D1B8;
|
||||
var_s1_10 = D_80183EA0;
|
||||
do {
|
||||
*var_s0_7 = 0;
|
||||
find_unused_obj_index(var_s1_10);
|
||||
var_s0_7 += 1;
|
||||
var_s1_10 += 4;
|
||||
} while ((u32) var_s0_7 < (u32) &D_8018D1C4);
|
||||
var_s2_6 = &D_800E6360;
|
||||
var_s1_11 = D_8018C1B0;
|
||||
do {
|
||||
find_unused_obj_index(var_s1_11);
|
||||
temp_s0_10 = *var_s1_11;
|
||||
func_800723A4(temp_s0_10, 0);
|
||||
temp_v0_9 = &gObjectList[temp_s0_10];
|
||||
sp4C = temp_v0_9;
|
||||
temp_v0_9->pos[2] = (f32) var_s2_6->unk4;
|
||||
temp_v0_9->pos[0] = (f32) var_s2_6->unk0 * D_8018D01C;
|
||||
func_800887C0(temp_s0_10);
|
||||
var_s2_6 += 6;
|
||||
var_s1_11 += 4;
|
||||
temp_v0_9->sizeScaling = 0.7f;
|
||||
} while ((u32) var_s2_6 < (u32) &D_800E641A);
|
||||
var_s0_8 = D_8018C3F0;
|
||||
do {
|
||||
find_unused_obj_index(var_s0_8);
|
||||
var_s0_8 += 4;
|
||||
} while (var_s0_8 != &D_8018C5F0);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < NUM_GROUP1_MOLES; var_s3++) {
|
||||
D_8018D198[var_s3] = 0;
|
||||
find_unused_obj_index(&D_80183EA0[var_s3]);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < NUM_GROUP2_MOLES; var_s3++) {
|
||||
D_8018D1A8[var_s3] = 0;
|
||||
find_unused_obj_index(&D_80183EA0[var_s3]);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < NUM_GROUP3_MOLES; var_s3++) {
|
||||
D_8018D1B8[var_s3] = 0;
|
||||
find_unused_obj_index(&D_80183EA0[var_s3]);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < NUM_MAX_MOLES; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C1B0[var_s3]);
|
||||
temp_s0 = D_8018C1B0[var_s3];
|
||||
func_800723A4(temp_s0, 0);
|
||||
gObjectList[temp_s0].pos[0] = gMoleSpawns[var_s3][0] * D_8018D01C;
|
||||
gObjectList[temp_s0].pos[2] = gMoleSpawns[var_s3][2];
|
||||
func_800887C0(temp_s0);
|
||||
gObjectList[temp_s0].sizeScaling = 0.7f;
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < D_8018C3F0_SIZE; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C3F0[var_s3]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if (gGamestate != 9) {
|
||||
find_unused_obj_index(&D_8018CF10);
|
||||
func_800723A4(D_8018CF10, 0);
|
||||
var_s1_12 = D_8018C1B0;
|
||||
do {
|
||||
find_unused_obj_index(var_s1_12);
|
||||
var_s1_12 += 4;
|
||||
} while ((u32) var_s1_12 < (u32) &D_8018C278);
|
||||
var_s0_9 = D_8018C3F0;
|
||||
do {
|
||||
find_unused_obj_index(var_s0_9);
|
||||
var_s0_9 += 4;
|
||||
} while ((u32) var_s0_9 < (u32) &D_8018C404);
|
||||
var_s0_10 = D_8018C630;
|
||||
do {
|
||||
find_unused_obj_index(var_s0_10);
|
||||
var_s0_10 += 4;
|
||||
} while (var_s0_10 != &D_8018C6B0);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < 50; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C1B0[var_s3]);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < 5; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C3F0[var_s3]);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < 32; var_s3++) {
|
||||
find_unused_obj_index(&D_8018C630[var_s3]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
var_s1_13 = D_80183EA0;
|
||||
do {
|
||||
func_800723A4(*var_s1_13, 0);
|
||||
var_s1_13 += 4;
|
||||
} while (var_s1_13 != &D_80183EDC);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < NUM_PENGUINS; var_s3++) {
|
||||
func_800723A4(D_80183EA0[var_s3], 0);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
var_s1_14 = D_80183EA0;
|
||||
if (gGamestate != 9) {
|
||||
do {
|
||||
func_800723A4(*var_s1_14, 0);
|
||||
var_s1_14 += 4;
|
||||
} while ((u32) var_s1_14 < (u32) &D_80183EC8);
|
||||
var_s2_7 = D_80183F28;
|
||||
do {
|
||||
func_800723A4(*var_s2_7, 0);
|
||||
var_s2_7 += 4;
|
||||
} while (var_s2_7 != &D_80183F34);
|
||||
return;
|
||||
for (var_s3 = 0; var_s3 < NUM_NEON_SIGNS; var_s3++) {
|
||||
func_800723A4(D_80183EA0[var_s3], 0);
|
||||
}
|
||||
for (var_s3 = 0; var_s3 < NUM_CHAIN_CHOMPS; var_s3++) {
|
||||
func_800723A4(D_80183F28[var_s3], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
var_s3_5 = 0;
|
||||
do {
|
||||
func_800770F0(var_s3_5);
|
||||
var_s3_5 += 1;
|
||||
} while (var_s3_5 != 8);
|
||||
for (var_s3 = 0; var_s3 < NUM_TORCHES; var_s3++) {
|
||||
func_800770F0(var_s3);
|
||||
// wtf?
|
||||
if (D_8018CF10){}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070780.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit b52d92c2340f6f4ba1aafb464188bb698752fbb0 on Jul-28-2023
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ void func_800703E0(s32, s32, StarSpawn*);
|
||||
void func_800704A0(StarSpawn*);
|
||||
void func_8007055C(void);
|
||||
void func_80070714(void);
|
||||
void func_80070780();
|
||||
void func_80070780(void);
|
||||
void init_hud_one_player(void);
|
||||
void init_hud_two_player_vertical(void);
|
||||
void init_hud_three_four_player(void);
|
||||
|
||||
+62
-83
@@ -2274,7 +2274,6 @@ void func_80076F2C(void) {
|
||||
}
|
||||
}
|
||||
|
||||
extern s16 D_800E6788[1]; // todo: fix this extern
|
||||
void func_80076FEC(s32 objectIndex, s32 flameIndex) {
|
||||
func_800723A4(objectIndex, 3);
|
||||
|
||||
@@ -2285,9 +2284,9 @@ void func_80076FEC(s32 objectIndex, s32 flameIndex) {
|
||||
|
||||
// Mixing arr + offset and array access... Why?
|
||||
// todo: ifdef this to proper array access.
|
||||
gObjectList[objectIndex].unk_010[0] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[0]) * D_8018D01C;
|
||||
gObjectList[objectIndex].unk_010[1] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[1]);
|
||||
gObjectList[objectIndex].unk_010[2] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[2]);
|
||||
gObjectList[objectIndex].unk_010[0] = (f32)(intptr_t)(*(&gTorchSpawns + flameIndex * 3)[0]) * D_8018D01C;
|
||||
gObjectList[objectIndex].unk_010[1] = (f32)(intptr_t)(*(&gTorchSpawns + flameIndex * 3)[1]);
|
||||
gObjectList[objectIndex].unk_010[2] = (f32)(intptr_t)(*(&gTorchSpawns + flameIndex * 3)[2]);
|
||||
gObjectList[objectIndex].unk_034 = 0;
|
||||
gObjectList[objectIndex].type = 255;
|
||||
gObjectList[objectIndex].unk_0A2 = 255;
|
||||
@@ -5827,7 +5826,7 @@ s32 func_8007F75C(s32 playerId) {
|
||||
var_s6 = 0;
|
||||
if ((waypoint >= 0xAA) && (waypoint < 0xB5)) {
|
||||
temp_s7 = random_int(0x0032U) + 0x32;
|
||||
for (someIndex = 0; someIndex < D_80165750; someIndex++) {
|
||||
for (someIndex = 0; someIndex < gNumActiveThwomps; someIndex++) {
|
||||
objectIndex = D_80183EA0[someIndex];
|
||||
if (gObjectList[objectIndex].unk_0D5 == 3) {
|
||||
var_s6 = 1;
|
||||
@@ -5835,7 +5834,7 @@ s32 func_8007F75C(s32 playerId) {
|
||||
}
|
||||
}
|
||||
} else if ((waypoint >= 0xD7) && (waypoint < 0xE2)) {
|
||||
for (someIndex = 0; someIndex < D_80165750; someIndex++) {
|
||||
for (someIndex = 0; someIndex < gNumActiveThwomps; someIndex++) {
|
||||
objectIndex = D_80183EA0[someIndex];
|
||||
if (gObjectList[objectIndex].unk_0D5 == 3) {
|
||||
var_s6 = 1;
|
||||
@@ -5856,7 +5855,7 @@ void func_8007F8D8(void) {
|
||||
|
||||
player = gPlayerOne;
|
||||
var_s4 = 1;
|
||||
for (someIndex = 0; someIndex < D_80165750; someIndex++){
|
||||
for (someIndex = 0; someIndex < gNumActiveThwomps; someIndex++){
|
||||
objectIndex = D_80183EA0[someIndex];
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->unk_0D5 == 3) {
|
||||
@@ -6498,13 +6497,13 @@ void func_80081210(void) {
|
||||
|
||||
D_80165834[0] += 0x100;
|
||||
D_80165834[1] += 0x200;
|
||||
for (var_s4 = 0; var_s4 < D_80165750; var_s4++) {
|
||||
for (var_s4 = 0; var_s4 < gNumActiveThwomps; var_s4++) {
|
||||
objectIndex = D_80183EA0[var_s4];
|
||||
func_800722CC(objectIndex, 0x00000010);
|
||||
func_8008A4CC(objectIndex);
|
||||
}
|
||||
func_8007F8D8();
|
||||
for (var_s4 = 0; var_s4 < D_80165750; var_s4++) {
|
||||
for (var_s4 = 0; var_s4 < gNumActiveThwomps; var_s4++) {
|
||||
objectIndex = D_80183EA0[var_s4];
|
||||
if (gObjectList[objectIndex].state != 0) {
|
||||
switch (gObjectList[objectIndex].unk_0D5) {
|
||||
@@ -6533,7 +6532,7 @@ void func_80081210(void) {
|
||||
for (var_s4 = 0; var_s4 < NUM_PLAYERS; var_s4++, player++) {
|
||||
player->boundingBoxCorners[0].unk_14 &= ~3;
|
||||
player->unk_046 &= ~0x0006;
|
||||
for (var_s2_3 = 0; var_s2_3 < D_80165750; var_s2_3++) {
|
||||
for (var_s2_3 = 0; var_s2_3 < gNumActiveThwomps; var_s2_3++) {
|
||||
objectIndex = D_80183EA0[var_s2_3];
|
||||
if (!(player->effects & 0x80000000)) {
|
||||
func_80080B28(objectIndex, var_s4);
|
||||
@@ -6547,7 +6546,7 @@ void func_80081210(void) {
|
||||
}
|
||||
}
|
||||
func_8007542C(3);
|
||||
for (var_s4 = 0; var_s4 < D_80165750; var_s4++) {
|
||||
for (var_s4 = 0; var_s4 < gNumActiveThwomps; var_s4++) {
|
||||
objectIndex = D_80183EA0[var_s4];
|
||||
if (func_80072320(objectIndex, 0x00000020) == 0) continue;
|
||||
|
||||
@@ -6680,32 +6679,22 @@ void func_80081A88(s32 objectIndex) {
|
||||
func_8008BF18(objectIndex);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit b52d92c2340f6f4ba1aafb464188bb698752fbb0 on Jul-25-2023
|
||||
extern ? D_8018D198;
|
||||
extern ? D_8018D1A8;
|
||||
extern ? D_8018D1B8;
|
||||
|
||||
void func_80081AFC(s32 objectIndex, s32 arg1) {
|
||||
? *sp2C;
|
||||
s16 temp_v1;
|
||||
s32 temp_v0;
|
||||
s8 *sp2C;
|
||||
Objects *temp_s0;
|
||||
|
||||
temp_s0 = &gObjectList[objectIndex];
|
||||
temp_v1 = temp_s0->state;
|
||||
switch (temp_v1) { /* irregular */
|
||||
switch (temp_s0->state) { /* irregular */
|
||||
case 0x1:
|
||||
func_80081848(objectIndex);
|
||||
break;
|
||||
case 0x2:
|
||||
temp_v0 = temp_s0->unk_04C;
|
||||
if (temp_v0 == 0) {
|
||||
if (temp_s0->unk_04C == 0) {
|
||||
func_80086EAC(objectIndex, 2, 1);
|
||||
func_80072488(objectIndex);
|
||||
set_object_flag_unk_054_true(objectIndex, 0x00000200);
|
||||
} else {
|
||||
temp_s0->unk_04C = temp_v0 - 1;
|
||||
temp_s0->unk_04C--;
|
||||
}
|
||||
break;
|
||||
case 0x3:
|
||||
@@ -6733,26 +6722,26 @@ void func_80081AFC(s32 objectIndex, s32 arg1) {
|
||||
func_80072428(objectIndex);
|
||||
switch (arg1) { /* switch 1; irregular */
|
||||
case 1: /* switch 1 */
|
||||
sp2C = &D_8018D198;
|
||||
sp2C = D_8018D198;
|
||||
break;
|
||||
case 2: /* switch 1 */
|
||||
sp2C = &D_8018D1A8;
|
||||
sp2C = D_8018D1A8;
|
||||
break;
|
||||
case 3: /* switch 1 */
|
||||
sp2C = &D_8018D1B8;
|
||||
sp2C = D_8018D1B8;
|
||||
break;
|
||||
}
|
||||
*(sp2C + temp_s0->type) = 0;
|
||||
sp2C[temp_s0->type] = 0;
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (temp_s0->state >= 2) {
|
||||
func_80073514(objectIndex);
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081AFC.s")
|
||||
#endif
|
||||
|
||||
void func_80081D34(s32 objectIndex) {
|
||||
Player *var_s1;
|
||||
@@ -6800,72 +6789,63 @@ void func_80081D34(s32 objectIndex) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern f32 D_8018D01C;
|
||||
extern s8 D_8018D198;
|
||||
extern s8 D_8018D1A8;
|
||||
extern s8 D_8018D1B8;
|
||||
static ? D_800E6360; /* unable to generate initializer */
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
/**
|
||||
* Nonmatching due to regalloc stuff
|
||||
* The use of the `offset` variable is really really weird
|
||||
* The intent of the function appears to be choose a random mole from a given
|
||||
* group of moles (decided by arg1)
|
||||
* `offset` then would then be offsetting the indexing into gMoleSpawns
|
||||
* so that we choose the appropriate spawn location for that mole
|
||||
* But as its written, `offset` is triple what it ought to be.
|
||||
* So there' something kind of fucky happening
|
||||
**/
|
||||
void func_80081FF4(s32 objectIndex, s32 arg1) {
|
||||
s32 sp2C;
|
||||
s16 sp28;
|
||||
? *sp20;
|
||||
Objects *sp18;
|
||||
? *var_a2;
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 moleCount;
|
||||
s16 var_v1;
|
||||
s16 offset;
|
||||
s32 var_a0;
|
||||
s8 *temp_v0;
|
||||
Objects *temp_a3;
|
||||
void *temp_v0_2;
|
||||
s8 *var_a2;
|
||||
|
||||
func_800723A4(objectIndex, 0);
|
||||
temp_a3 = &gObjectList[objectIndex];
|
||||
temp_a3->unk_04C = random_int(0x001EU) + 5;
|
||||
gObjectList[objectIndex].unk_04C = random_int(0x001EU) + 5;
|
||||
switch (arg1) { /* irregular */
|
||||
case 1:
|
||||
var_a2 = &D_8018D198;
|
||||
sp28 = 0;
|
||||
sp2C = 8;
|
||||
block_7:
|
||||
sp20 = var_a2;
|
||||
var_a2 = D_8018D198;
|
||||
moleCount = NUM_GROUP1_MOLES;
|
||||
offset = 0;
|
||||
break;
|
||||
case 2:
|
||||
var_a2 = &D_8018D1A8;
|
||||
sp28 = 0x0018;
|
||||
sp2C = 0x0000000B;
|
||||
goto block_7;
|
||||
var_a2 = D_8018D1A8;
|
||||
moleCount = NUM_GROUP2_MOLES;
|
||||
offset = 24;
|
||||
// offset = NUM_GROUP1_MOLES;
|
||||
break;
|
||||
case 3:
|
||||
var_a2 = &D_8018D1B8;
|
||||
sp28 = 0x0039;
|
||||
sp2C = 0x0000000C;
|
||||
goto block_7;
|
||||
var_a2 = D_8018D1B8;
|
||||
moleCount = NUM_GROUP3_MOLES;
|
||||
offset = 57;
|
||||
// offset = NUM_GROUP1_MOLES + NUM_GROUP2_MOLES;
|
||||
break;
|
||||
}
|
||||
sp18 = temp_a3;
|
||||
var_v1 = random_int(sp2C & 0xFFFF);
|
||||
var_a0 = 0;
|
||||
if (sp2C > 0) {
|
||||
loop_9:
|
||||
temp_v0 = var_v1 + sp20;
|
||||
var_a0 += 1;
|
||||
if (*temp_v0 != 0) {
|
||||
var_v1 += 1;
|
||||
if (var_v1 == sp2C) {
|
||||
var_v1 = random_int(moleCount);
|
||||
for (var_a0 = 0; var_a0 < moleCount; var_a0++) {
|
||||
if (var_a2[var_v1] != 0) {
|
||||
var_v1++;
|
||||
if (var_v1 == moleCount) {
|
||||
var_v1 = 0;
|
||||
}
|
||||
if (var_a0 != sp2C) {
|
||||
goto loop_9;
|
||||
}
|
||||
} else {
|
||||
*temp_v0 = 1;
|
||||
temp_a3->type = var_v1;
|
||||
var_a2[var_v1] = 1;
|
||||
gObjectList[objectIndex].type = var_v1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
temp_v0_2 = (sp28 * 2) + (var_v1 * 6) + &D_800E6360;
|
||||
temp_a3->unk_010[0] = (f32) temp_v0_2->unk0 * D_8018D01C;
|
||||
temp_a3->unk_010[1] = (f32) ((f64) temp_v0_2->unk2 - 9.0);
|
||||
temp_a3->unk_010[2] = (f32) temp_v0_2->unk4;
|
||||
gObjectList[objectIndex].unk_010[0] = gMoleSpawns[var_v1][offset + 0] * D_8018D01C;
|
||||
gObjectList[objectIndex].unk_010[1] = gMoleSpawns[var_v1][offset + 1] - 9.0;
|
||||
gObjectList[objectIndex].unk_010[2] = gMoleSpawns[var_v1][offset + 2];
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081FF4.s")
|
||||
@@ -8238,7 +8218,6 @@ void func_80085F74(s32 objectIndex) {
|
||||
* But then it get popped back into v0 when its supposed to be popped into t0.
|
||||
* I really, really don't get why that's happening and the permuter hasn't found anything
|
||||
**/
|
||||
extern Vec3f D_800E6734[]; /* unable to generate initializer */
|
||||
|
||||
void func_80086074(s32 objectIndex, s32 arg1) {
|
||||
func_8008B7D4(objectIndex, D_800E6734[arg1][0] * D_8018D01C, D_800E6734[arg1][1], D_800E6734[arg1][2]);
|
||||
|
||||
+1
-9
@@ -5,8 +5,6 @@
|
||||
#include "common_structs.h"
|
||||
#include "camera.h"
|
||||
|
||||
#define NUM_YV_FLAG_POLES 4
|
||||
|
||||
// This struct is used by a lot of different objects
|
||||
// Stars, clouds, exahust smoke (I think?)
|
||||
typedef struct {
|
||||
@@ -14,11 +12,6 @@ typedef struct {
|
||||
u16 id;
|
||||
} StarSpawn;
|
||||
|
||||
typedef struct {
|
||||
Vec3s pos;
|
||||
u16 rot;
|
||||
} YVFlagPoleSpawn;
|
||||
|
||||
void func_80077D5C(s32);
|
||||
s32 find_unused_obj_index(s32*);
|
||||
void delete_object(s32*);
|
||||
@@ -153,6 +146,7 @@ void func_80076538(s32);
|
||||
void func_8007661C(void);
|
||||
void func_8007675C(s32, Vec3s, s32);
|
||||
s32 func_80076828(Vec3s, s32);
|
||||
void func_80076884(s32);
|
||||
void func_80076958(s32);
|
||||
void func_800769D8(s32);
|
||||
void func_80076AEC(s32);
|
||||
@@ -380,8 +374,6 @@ extern u8 *D_8018C028;
|
||||
// I think the entires in this array are way over-sized
|
||||
extern u8 D_80183FA8[4][0x2000];
|
||||
|
||||
extern YVFlagPoleSpawn D_800E5DF4[NUM_YV_FLAG_POLES];
|
||||
|
||||
// Something related to the rotation(?) of ice in Sherbet Land
|
||||
extern u16 D_801657A2;
|
||||
|
||||
|
||||
+6
-6
@@ -4452,20 +4452,20 @@ void func_80053870(s32 cameraId) {
|
||||
if (cameraId == 0) {
|
||||
var_s0 = D_80183EA0;
|
||||
var_s2 = 0;
|
||||
if (D_80165750 > 0) {
|
||||
if (gNumActiveThwomps > 0) {
|
||||
do {
|
||||
temp_s1 = *var_s0;
|
||||
set_object_flag_unk_054_false(temp_s1, 0x00070000);
|
||||
func_800722CC(temp_s1, 0x00000110);
|
||||
var_s2 += 1;
|
||||
var_s0 += 4;
|
||||
} while (var_s2 < D_80165750);
|
||||
} while (var_s2 < gNumActiveThwomps);
|
||||
sp94 = temp_s1;
|
||||
}
|
||||
}
|
||||
func_800534A4(sp94);
|
||||
var_s0_2 = D_80183EA0;
|
||||
if (D_80165750 > 0) {
|
||||
if (gNumActiveThwomps > 0) {
|
||||
do {
|
||||
temp_s1_2 = *var_s0_2;
|
||||
temp_v0 = gObjectList[temp_s1_2].unk_0DF;
|
||||
@@ -4474,10 +4474,10 @@ void func_80053870(s32 cameraId) {
|
||||
if ((temp_v0_2 >= (s16) (temp_v0 - 1)) && ((s16) (temp_v0 + 1) >= temp_v0_2) && (func_8008A140(temp_s1_2, sp84, 0x8000U) != 0)) {
|
||||
func_800536C8(temp_s1_2);
|
||||
}
|
||||
var_v1 = &D_80183EA0[D_80165750];
|
||||
var_v1 = &D_80183EA0[gNumActiveThwomps];
|
||||
} else {
|
||||
func_800536C8(temp_s1_2);
|
||||
var_v1 = &D_80183EA0[D_80165750];
|
||||
var_v1 = &D_80183EA0[gNumActiveThwomps];
|
||||
}
|
||||
var_s0_2 += 4;
|
||||
} while ((u32) var_s0_2 < (u32) var_v1);
|
||||
@@ -4872,7 +4872,7 @@ void func_80054E10(s32 objectIndex) {
|
||||
void func_80054EB8(UNUSED s32 unused) {
|
||||
s32 someIndex;
|
||||
|
||||
for (someIndex = 0; someIndex < NUM_MOLES; someIndex++) {
|
||||
for (someIndex = 0; someIndex < NUM_MAX_MOLES; someIndex++) {
|
||||
func_80054E10(D_8018C1B0[someIndex]);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-5
@@ -1382,11 +1382,13 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
|
||||
case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION:
|
||||
case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT:
|
||||
{
|
||||
if (1);
|
||||
if ((arg1 == 0) && (++gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) {
|
||||
// L800B2FAC
|
||||
if (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 0 || gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 2) {
|
||||
play_sound2(SOUND_MENU_SELECT_LEVEL);
|
||||
if (arg1 == 0){
|
||||
gMenuTimingCounter++;
|
||||
if ((gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) {
|
||||
// L800B2FAC
|
||||
if (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 0 || gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 2) {
|
||||
play_sound2(SOUND_MENU_SELECT_LEVEL);
|
||||
}
|
||||
}
|
||||
}
|
||||
// L800B3000
|
||||
|
||||
Reference in New Issue
Block a user