Assorted matches (#288)

* Matches in code_80071F00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran
2023-01-25 09:50:32 -05:00
committed by GitHub
parent ee64dad403
commit d1ebe06b29
16 changed files with 125 additions and 772 deletions
-6
View File
@@ -267,12 +267,6 @@ s16 func_80004DFC(u32 arg0, u32 arg1, s16 arg2, s16 arg3) {
GLOBAL_ASM("asm/non_matchings/code_80004740/func_80004DFC.s")
#endif
struct stru_80004EAC {
s32 unk0;
s32 unk4;
s16 unk8;
};
s16 func_80004EAC(void *addr, s16 offset) {
uintptr_t *item = segmented_to_virtual(addr);
struct stru_80004EAC *temp = segmented_to_virtual(item[offset]);
+7
View File
@@ -3,9 +3,16 @@
#include "common_structs.h"
struct stru_80004EAC {
s32 unk0;
s32 unk4;
s16 unk8;
};
/* Function Prototypes */
void func_80004740(Mtx *dest, Mat4 src);
void func_800048D8(Mat4 dest, Vec3f b, Vec3s c);
s16 func_80004EAC(void*, s16);
#endif
+6 -20
View File
@@ -1218,31 +1218,20 @@ void func_8002A704(Player *player, s8 arg1) {
player->boostTimer = 0x0050;
}
#ifdef MIPS_TO_C
//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c
? func_800C9250(s32, s8, s32); /* extern */
void func_8002A79C(Player *player, s8 arg1) {
s32 temp_v0;
s32 temp_v1;
u16 temp_v0_2;
temp_v0 = player->unk_0BC;
temp_v1 = temp_v0 & 0x100;
if ((temp_v1 != 0x100) && ((temp_v0 & 0x10) != 0x10) && (player->unk_22A >= 2)) {
player->unk_0BC = temp_v0 | 0x100;
if (((player->unk_0BC & 0x100) != 0x100) && ((player->unk_0BC & 0x10) != 0x10) && (player->unk_22A >= 2)) {
player->unk_0BC |= 0x100;
player->unk_23A = 0;
player->unk_22A = 0;
player->unk_228 = 0;
if (D_8015F890 != 1) {
temp_v0_2 = player->unk_000;
if ((temp_v0_2 & 0x4000) && !(temp_v0_2 & 0x100)) {
func_800C9250(arg1 & 0xFF, arg1, 0x100);
if ((player->unk_000 & 0x4000) && !(player->unk_000 & 0x100)) {
func_800C9250(arg1);
}
} else if (player == gPlayerOne) {
func_800C9250(arg1 & 0xFF, arg1, 0x100);
func_800C9250(arg1);
}
} else if (temp_v1 == 0x100) {
} else if ((player->unk_0BC & 0x100) == 0x100) {
player->unk_23A += 1;
if (player->unk_23A >= 0x1F) {
player->unk_23A = 0;
@@ -1252,9 +1241,6 @@ void func_8002A79C(Player *player, s8 arg1) {
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002A79C.s")
#endif
void func_8002A8A4(Player *player, s8 arg1) {
if (((s16) player->unk_0C0 / 182) > 0) {
+1
View File
@@ -19,6 +19,7 @@ void func_8002934C(Player*, Camera*, s8, s8);
void func_8002A194(Player*, f32, f32, f32);
void func_8002A5F4(Vec3f, f32, Vec3f, f32, f32);
void func_8002A704(Player*, s8);
void func_8002A79C(Player*, s8);
void func_8002A8A4(Player*, s8);
void func_8002AA50(Player*);
void func_8002AAC0(Player*);
+98 -192
View File
@@ -3184,36 +3184,27 @@ void func_80078C70(u32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078C70.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s32 D_80183DB8;
void func_80078F64(void) {
s32 temp_v0;
switch (gScreenModeSelection) { /* irregular */
case SCREEN_MODE_1P:
func_800723A4(D_80183DB8.unk0, 1);
return;
func_800723A4(D_80183DB8[0], 1);
break;
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
func_800723A4(D_80183DB8.unk0, 1);
func_800723A4(D_80183DB8.unk4, 1);
return;
func_800723A4(D_80183DB8[0], 1);
func_800723A4(D_80183DB8[1], 1);
break;
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
func_800723A4(D_80183DB8.unk0, 1);
func_800723A4(D_80183DB8.unk4, 1);
return;
func_800723A4(D_80183DB8[0], 1);
func_800723A4(D_80183DB8[1], 1);
break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
func_800723A4(D_80183DB8.unk0, 1);
func_800723A4(D_80183DB8.unk4, 1);
func_800723A4(D_80183DB8.unk8, 1);
func_800723A4(D_80183DB8.unkC, 1);
return;
func_800723A4(D_80183DB8[0], 1);
func_800723A4(D_80183DB8[1], 1);
func_800723A4(D_80183DB8[2], 1);
func_800723A4(D_80183DB8[3], 1);
break;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80078F64.s")
#endif
void func_80079054(s32 arg0) {
func_800723A4(D_80183DB8[arg0], 2);
@@ -3502,53 +3493,38 @@ void func_80079700(s32 objectIndex) {
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079700.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s32 D_80183DB8;
s16 gCurrentCourseId; /* unable to generate initializer */
void func_800797AC(s32 playerId) {
s32 sp1C;
Player *sp18;
Player *temp_v0;
s32 temp_a2;
s32 objectIndex;
Player *player;
temp_a2 = *(&D_80183DB8 + (playerId * 4));
temp_v0 = &gPlayerOne[playerId];
if ((gCurrentCourseId == 0x000C) && (temp_v0->unk_0CA & 1)) {
sp18 = temp_v0;
sp1C = temp_a2;
func_800723A4(temp_a2, 7);
temp_v0->unk_0CA |= 0x10;
objectIndex = D_80183DB8[playerId];
player = &gPlayerOne[playerId];
if ((gCurrentCourseId == COURSE_SHERBET_LAND) && (player->unk_0CA & 1)) {
func_800723A4(objectIndex, 7);
player->unk_0CA |= 0x10;
} else {
sp1C = temp_a2;
func_800723A4(temp_a2, 3);
func_800723A4(objectIndex, 3);
}
func_800722A4(sp1C, 1);
func_800722A4(objectIndex, 1);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_800797AC.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
void func_800797AC(s32); /* extern */
extern s32 D_80183DB8;
void func_80079860(s32 playerId) {
Player *sp18;
Player *temp_a2;
s32 objectIndex;
Player *player;
temp_a2 = &gPlayerOne[playerId];
sp18 = temp_a2;
if ((func_80072354(*(&D_80183DB8 + (playerId * 4)), 1) != 0) && (((sp18 = temp_a2, (func_802ABDF4(temp_a2->unk_110.unk3A) != 0)) && (temp_a2->unk_110.unk44 <= 3.0f)) || (temp_a2->unk_0CA & 1) || ((temp_a2->unk_0F8 == 0x00FD) && !(temp_a2->unk_0BC & 8)))) {
func_80090778(temp_a2);
objectIndex = D_80183DB8[playerId];
player = &gPlayerOne[playerId];
if ((func_80072354(objectIndex, 1) != 0) &&
(
((func_802ABDF4(player->unk_110.unk3A) != 0) && (player->unk_110.unk3C[2] <= 3.0f)) ||
(player->unk_0CA & 1) ||
((player->unk_0F8 == 0x00FD) && !(player->unk_0BC & 8))
)
) {
func_80090778(player);
func_800797AC(playerId);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80079860.s")
#endif
void func_8007993C(s32 objectIndex, Player *player) {
if (player->unk_0CA & 4) {
@@ -4164,74 +4140,49 @@ void func_8007AA44(s32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AA44.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s32 gItemWindowObjectByPlayerId;
void func_8007ABFC(s32 playerId, s32 arg1) {
s32 itemWindow;
/**
* Give item
*/
void func_8007ABFC(u8 arg0, s32 arg1) {
s32 sp1C;
struct_8018CA70_entry *sp18;
s32 temp_a0;
struct_8018CA70_entry *temp_v1;
temp_v1 = &D_8018CA70[arg0];
if (temp_v1->raceCompleteBool == 0) {
temp_a0 = *(&gItemWindowObjectByPlayerId + (arg0 * 4));
sp18 = temp_v1;
sp1C = temp_a0;
if (func_80072354(temp_a0, 4) != 0) {
sp18 = temp_v1;
func_800723A4(temp_a0, 0);
if (D_8018CA70[playerId].raceCompleteBool == 0) {
itemWindow = gItemWindowObjectByPlayerId[playerId];
if (func_80072354(itemWindow, 4) != 0) {
func_800723A4(itemWindow, 0);
if (arg1 != 0) {
temp_v1->unk76 = (s8) arg1;
D_8018CA70[playerId].itemOverride = arg1;
}
}
func_800C9060(arg0, 0x19008406U);
func_800C9060(playerId, 0x19008406U);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007ABFC.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s32 gItemWindowObjectByPlayerId;
void func_8007AC9C(s32 playerId) {
Player *sp20;
Player *temp_v0;
s32 temp_s0;
struct_80165C18_entry *temp_s1;
s32 stackPadding;
Player *player;
s32 objectIndex;
struct_80165C18_entry *itemWindow;
temp_s0 = *(&gItemWindowObjectByPlayerId + (playerId * 4));
temp_s1 = &D_80165C18[temp_s0];
temp_v0 = &gPlayerOne[playerId];
if (temp_s1->unk_0A4 == 0x000F) {
sp20 = temp_v0;
if (func_80072354(temp_s0, 2) != 0) {
func_800722A4(temp_s0, 2);
temp_s1->unk_098 = 0x0258;
func_800726CC(temp_s0, 0x00000032);
player = &gPlayerOne[playerId];
objectIndex = gItemWindowObjectByPlayerId[playerId];
itemWindow = &D_80165C18[objectIndex];
if (itemWindow->unk_0A4 == 0x000F) {
if (func_80072354(objectIndex, 2) != 0) {
func_800722A4(objectIndex, 2);
itemWindow->unk_098 = 0x0258;
func_800726CC(objectIndex, 0x00000032);
}
if ((u16) temp_s1->unk_098 == 0) {
func_800722CC(temp_s0, 2);
sp20->unk_010 = 0;
temp_s1->unk_0A4 = 0;
func_80072388(temp_s0, 0);
func_800726CC(temp_s0, 9);
if (itemWindow->unk_098 == 0) {
func_800722CC(objectIndex, 2);
player->unk_010 = 0;
itemWindow->unk_0A4 = 0;
func_80072388(objectIndex, 0);
func_800726CC(objectIndex, 9);
}
} else {
temp_v0->unk_010 = 0;
temp_s1->unk_0A4 = 0;
func_80072388(temp_s0, 0);
player->unk_010 = 0;
itemWindow->unk_0A4 = 0;
func_80072388(objectIndex, 0);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007AC9C.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
@@ -6674,110 +6625,65 @@ void func_8007F6C4(s32 objectIndex, s32 playerId) {
D_80165C18[objectIndex].unk_0D1 = playerId;
}
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s16 D_80165750;
s32 func_8007F75C(s32 playerId) {
s32 *var_s1;
s32 *var_s1_2;
s32 temp_a0;
s32 temp_a0_2;
s32 someIndex;
s32 objectIndex;
s32 temp_s7;
s32 var_s0;
s32 var_s0_2;
s32 var_s6;
u16 temp_v0;
s32 waypoint;
temp_v0 = gNearestWaypointByPlayerId[playerId];
waypoint = gNearestWaypointByPlayerId[playerId];
var_s6 = 0;
if (((s32) temp_v0 >= 0xAA) && ((s32) temp_v0 < 0xB5)) {
if ((waypoint >= 0xAA) && (waypoint < 0xB5)) {
temp_s7 = random_int(0x0032U) + 0x32;
var_s0 = 0;
if (D_80165750 > 0) {
var_s1 = D_80183EA0;
do {
temp_a0 = *var_s1;
if (D_80165C18[temp_a0].unk_0D5 == 3) {
var_s6 = 1;
func_8007F660(temp_a0, playerId, temp_s7);
}
var_s0 += 1;
var_s1 += 4;
} while (var_s0 < D_80165750);
for (someIndex = 0; someIndex < D_80165750; someIndex++) {
objectIndex = D_80183EA0[someIndex];
if (D_80165C18[objectIndex].unk_0D5 == 3) {
var_s6 = 1;
func_8007F660(objectIndex, playerId, temp_s7);
}
}
} else if (((s32) temp_v0 >= 0xD7) && ((s32) temp_v0 < 0xE2)) {
var_s1_2 = D_80183EA0;
var_s0_2 = 0;
if (D_80165750 > 0) {
do {
temp_a0_2 = *var_s1_2;
if (D_80165C18[temp_a0_2].unk_0D5 == 3) {
var_s6 = 1;
func_8007F6C4(temp_a0_2, playerId);
}
var_s0_2 += 1;
var_s1_2 += 4;
} while (var_s0_2 < D_80165750);
} else if ((waypoint >= 0xD7) && (waypoint < 0xE2)) {
for (someIndex = 0; someIndex < D_80165750; someIndex++) {
objectIndex = D_80183EA0[someIndex];
if (D_80165C18[objectIndex].unk_0D5 == 3) {
var_s6 = 1;
func_8007F6C4(objectIndex, playerId);
}
}
}
return var_s6;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F75C.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
s32 func_8007F75C(s32); /* extern */
extern s16 D_80165750;
void func_8007F8D8(void) {
Player *var_s3;
s32 *var_s2;
s32 temp_a0;
Player *player;
s32 objectIndex;
s32 var_s0;
s32 var_s0_2;
s32 var_s1;
s32 someIndex;
s32 var_s4;
struct_80165C18_entry *temp_v0;
u16 temp_v0_2;
struct_80165C18_entry *object;
var_s3 = gPlayerOne;
player = gPlayerOne;
var_s4 = 1;
var_s1 = 0;
if (D_80165750 > 0) {
var_s2 = D_80183EA0;
do {
temp_a0 = *var_s2;
temp_v0 = &D_80165C18[temp_a0];
if ((u8) temp_v0->unk_0D5 == 3) {
var_s0 = 0;
if ((temp_v0->unk_0A6 >= 2) && (func_80072354(temp_a0, 8) != 0)) {
var_s0 = 1;
}
var_s4 *= var_s0;
for (someIndex = 0; someIndex < D_80165750; someIndex++){
objectIndex = D_80183EA0[someIndex];
object = &D_80165C18[objectIndex];
if (object->unk_0D5 == 3) {
var_s0 = 0;
if ((object->unk_0A6 >= 2) && (func_80072354(objectIndex, 8) != 0)) {
var_s0 = 1;
}
var_s1 += 1;
var_s2 += 4;
} while (var_s1 < D_80165750);
var_s4 *= var_s0;
}
}
var_s0_2 = 0;
if (var_s4 != 0) {
loop_10:
temp_v0_2 = var_s3->unk_000;
if (!(temp_v0_2 & 0x8000) || (temp_v0_2 & 0x1000) || (func_8007F75C(var_s0_2) == 0)) {
var_s0_2 += 1;
var_s3 += 0xDD8;
if (var_s0_2 != 4) {
goto loop_10;
for (var_s0 = 0; var_s0 < 4; var_s0++, player++){
if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x1000)) {
if (func_8007F75C(var_s0) != 0) break;
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F8D8.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
+5 -1
View File
@@ -174,6 +174,8 @@ void func_80079054(s32);
void func_80079084(s32);
void func_800790B4(s32);
void func_800790E4(s32);
void func_800797AC(s32);
void func_80079860(s32);
void func_8007993C(s32, Player*);
void func_80079A5C(s32, Player*);
void func_8007A66C(s32, Player*, Camera*);
@@ -184,6 +186,7 @@ void func_8007A910(s32);
void func_8007A948(s32);
void func_8007AA44(s32);
void func_8007ABFC(s32, s32);
void func_8007AC9C(s32);
u8 gen_random_item(s16, s16);
u8 func_8007AF40(s32, s16);
u8 func_8007AF78(s32, s16);
@@ -218,6 +221,8 @@ void func_8007F280(s32);
void func_8007F544(s32);
void func_8007F660(s32, s32, s32);
void func_8007F6C4(s32, s32);
s32 func_8007F75C(s32);
void func_8007F8D8();
void func_8007FEA4(s32);
void func_800806BC(s32);
void func_8008078C(s32);
@@ -263,7 +268,6 @@ extern s16 D_80165740;
extern s8 D_801657B4;
extern Vec3su D_8016582C;
extern s32 D_80183D5C;
extern s32 D_80183DB8[];
extern s32 D_80183EA8;
extern s16 D_8018CFE8;
extern f32 D_8018D01C;