Decompile mpGetBodyIndexByBodyId

This commit is contained in:
Ryan Dwyer 2020-01-19 20:38:45 +10:00
parent 3b969e558c
commit 105a552d36
6 changed files with 22 additions and 33 deletions

View File

@ -5165,34 +5165,23 @@ glabel func0f18bb90
/* f18bbd4: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel func0f18bbd8
/* f18bbd8: 3082ffff */ andi $v0,$a0,0xffff
/* f18bbdc: 2401006b */ addiu $at,$zero,0x6b
/* f18bbe0: 14410003 */ bne $v0,$at,.L0f18bbf0
/* f18bbe4: afa40000 */ sw $a0,0x0($sp)
/* f18bbe8: 03e00008 */ jr $ra
/* f18bbec: 2402003e */ addiu $v0,$zero,0x3e
.L0f18bbf0:
/* f18bbf0: 3c048008 */ lui $a0,%hi(g_MpBodies)
/* f18bbf4: 248477bc */ addiu $a0,$a0,%lo(g_MpBodies)
/* f18bbf8: 00001825 */ or $v1,$zero,$zero
/* f18bbfc: 2405003d */ addiu $a1,$zero,0x3d
.L0f18bc00:
/* f18bc00: 848f0000 */ lh $t7,0x0($a0)
/* f18bc04: 544f0004 */ bnel $v0,$t7,.L0f18bc18
/* f18bc08: 24630001 */ addiu $v1,$v1,0x1
/* f18bc0c: 03e00008 */ jr $ra
/* f18bc10: 00601025 */ or $v0,$v1,$zero
/* f18bc14: 24630001 */ addiu $v1,$v1,0x1
.L0f18bc18:
/* f18bc18: 1465fff9 */ bne $v1,$a1,.L0f18bc00
/* f18bc1c: 24840008 */ addiu $a0,$a0,0x8
/* f18bc20: 3c028008 */ lui $v0,0x8008
/* f18bc24: 844277bc */ lh $v0,0x77bc($v0)
/* f18bc28: 03e00008 */ jr $ra
/* f18bc2c: 00000000 */ sll $zero,$zero,0x0
);
s32 mpGetBodyIndexByBodyId(u16 bodyid)
{
s32 i;
if (bodyid == BODY_DRCAROLL) {
return 62; // NUM_MPBODIES + 1
}
for (i = 0; i != NUM_MPBODIES; i++) {
if (g_MpBodies[i].bodyid == bodyid) {
return i;
}
}
// @bug: Should return 0 as a fallback, not the first body's bodyid
return g_MpBodies[0].bodyid;
}
char *mpGetBodyName(u8 bodynum)
{

View File

@ -3146,7 +3146,7 @@ glabel menudialog001a5f48
/* f1a5f60: 0fc68484 */ jal func0f1a1210
/* f1a5f64: 908488a0 */ lbu $a0,-0x7760($a0)
/* f1a5f68: 3044ffff */ andi $a0,$v0,0xffff
/* f1a5f6c: 0fc62ef6 */ jal func0f18bbd8
/* f1a5f6c: 0fc62ef6 */ jal mpGetBodyIndexByBodyId
/* f1a5f70: afa20044 */ sw $v0,0x44($sp)
/* f1a5f74: afa20040 */ sw $v0,0x40($sp)
/* f1a5f78: 0fc62f27 */ jal func0f18bc9c

View File

@ -1192,7 +1192,7 @@
#define BODY_FEM_GUARD 0x68
#define BODY_DD_LABTECH 0x69
#define BODY_DD_SECGUARD 0x6a
#define BODY_DRCARROLL 0x6b
#define BODY_DRCAROLL 0x6b
#define BODY_EYESPY 0x6c
#define BODY_DARK_RIPPED 0x6d
#define BODY_DD_GUARD 0x6e

View File

@ -52,7 +52,7 @@ u32 func0f18bb48(void);
u32 func0f18bb64(void);
u32 mpGetNumBodies(void);
u32 func0f18bb90(void);
u32 func0f18bbd8(void);
s32 mpGetBodyIndexByBodyId(u16 bodyid);
char *mpGetBodyName(u8 bodynum);
u8 mpGetBodyUnk06(u8 bodynum);
s32 func0f18bc9c(s32 arg0);

View File

@ -2874,7 +2874,7 @@ struct mpsimulant {
};
struct mpbody {
u16 slot;
s16 bodyid;
s16 name;
u16 unk04;
u8 unk06;

View File

@ -12052,7 +12052,7 @@ struct mpsimulant mpspecialsimulants[] = {
// 2d7dc
struct mpbody g_MpBodies[NUM_MPBODIES] = {
// slot, name, unk04, unk06
// global body ID, name, unk04, unk06
/*0x00*/ { 0x0056, 0x5610, 0x0004, 0x00 },
/*0x01*/ { 0x0062, 0x5611, 0x0004, 0x46 },
/*0x02*/ { 0x0061, 0x5612, 0x000c, 0x41 },