Attempt to decompile coverLoad
This commit is contained in:
parent
e097f703e8
commit
dc3a5ecd02
|
|
@ -19480,7 +19480,7 @@ glabel func0f02ec94
|
|||
/* f02ec9c: 00808025 */ or $s0,$a0,$zero
|
||||
/* f02eca0: afbf001c */ sw $ra,0x1c($sp)
|
||||
/* f02eca4: 84840292 */ lh $a0,0x292($a0)
|
||||
/* f02eca8: 0fc458b8 */ jal func0f1162e0
|
||||
/* f02eca8: 0fc458b8 */ jal coverLoad
|
||||
/* f02ecac: 27a50020 */ addiu $a1,$sp,0x20
|
||||
/* f02ecb0: 14400003 */ bnez $v0,.L0f02ecc0
|
||||
/* f02ecb4: 00000000 */ sll $zero,$zero,0x0
|
||||
|
|
@ -50773,7 +50773,7 @@ glabel func0f04b950
|
|||
/* f04b974: 0044082a */ slt $at,$v0,$a0
|
||||
/* f04b978: 14200005 */ bnez $at,.L0f04b990
|
||||
/* f04b97c: 00000000 */ sll $zero,$zero,0x0
|
||||
/* f04b980: 0fc458b8 */ jal func0f1162e0
|
||||
/* f04b980: 0fc458b8 */ jal coverLoad
|
||||
/* f04b984: 27a50030 */ addiu $a1,$sp,0x30
|
||||
/* f04b988: 14400003 */ bnez $v0,.L0f04b998
|
||||
/* f04b98c: 00000000 */ sll $zero,$zero,0x0
|
||||
|
|
@ -50892,7 +50892,7 @@ glabel func0f04ba34
|
|||
/* f04bb18: afa400c0 */ sw $a0,0xc0($sp)
|
||||
/* f04bb1c: 02002025 */ or $a0,$s0,$zero
|
||||
.L0f04bb20:
|
||||
/* f04bb20: 0fc458b8 */ jal func0f1162e0
|
||||
/* f04bb20: 0fc458b8 */ jal coverLoad
|
||||
/* f04bb24: 27a50098 */ addiu $a1,$sp,0x98
|
||||
/* f04bb28: 504000b0 */ beqzl $v0,.L0f04bdec
|
||||
/* f04bb2c: 8fae0078 */ lw $t6,0x78($sp)
|
||||
|
|
@ -51306,7 +51306,7 @@ glabel func0f04bffc
|
|||
/* f04c0d8: 27b20064 */ addiu $s2,$sp,0x64
|
||||
/* f04c0dc: 02002025 */ or $a0,$s0,$zero
|
||||
.L0f04c0e0:
|
||||
/* f04c0e0: 0fc458b8 */ jal func0f1162e0
|
||||
/* f04c0e0: 0fc458b8 */ jal coverLoad
|
||||
/* f04c0e4: 02402825 */ or $a1,$s2,$zero
|
||||
/* f04c0e8: 5040003e */ beqzl $v0,.L0f04c1e4
|
||||
/* f04c0ec: 26100001 */ addiu $s0,$s0,0x1
|
||||
|
|
@ -51413,18 +51413,14 @@ glabel func0f04bffc
|
|||
|
||||
s16 func0f04c268(struct chrdata *chr, u8 speed)
|
||||
{
|
||||
s32 a;
|
||||
s16 b;
|
||||
s16 room;
|
||||
s32 c;
|
||||
struct coord *coordptr;
|
||||
struct cover cover;
|
||||
|
||||
if (!chr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (func0f039a18(chr) && chr->cover != -1 && func0f1162e0(chr->cover, &coordptr)) {
|
||||
func0f03843c(chr, coordptr, &room, speed);
|
||||
if (func0f039a18(chr) && chr->cover != -1 && coverLoad(chr->cover, &cover)) {
|
||||
func0f03843c(chr, cover.pos, &cover.room, speed);
|
||||
return chr->cover;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1059,8 +1059,8 @@ glabel func0f0142e8
|
|||
/* f01436c: 0c0048f2 */ jal func000123c8
|
||||
/* f014370: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f014374: 8fa40900 */ lw $a0,0x900($sp)
|
||||
/* f014378: 3c15800a */ lui $s5,%hi(var800a2364)
|
||||
/* f01437c: 26b52364 */ addiu $s5,$s5,%lo(var800a2364)
|
||||
/* f014378: 3c15800a */ lui $s5,%hi(g_CoverRooms)
|
||||
/* f01437c: 26b52364 */ addiu $s5,$s5,%lo(g_CoverRooms)
|
||||
/* f014380: 00045100 */ sll $t2,$a0,0x4
|
||||
/* f014384: 2544000f */ addiu $a0,$t2,0xf
|
||||
/* f014388: 348b000f */ ori $t3,$a0,0xf
|
||||
|
|
@ -1103,7 +1103,7 @@ glabel func0f0142e8
|
|||
/* f014418: 02802025 */ or $a0,$s4,$zero
|
||||
/* f01441c: 03324021 */ addu $t0,$t9,$s2
|
||||
/* f014420: a5000000 */ sh $zero,0x0($t0)
|
||||
/* f014424: 0fc458b8 */ jal func0f1162e0
|
||||
/* f014424: 0fc458b8 */ jal coverLoad
|
||||
/* f014428: 27a508dc */ addiu $a1,$sp,0x8dc
|
||||
/* f01442c: 104000c2 */ beqz $v0,.L0f014738
|
||||
/* f014430: 8fa908e0 */ lw $t1,0x8e0($sp)
|
||||
|
|
|
|||
|
|
@ -1400,7 +1400,7 @@ glabel func0f19ab70
|
|||
/* f19abdc: 0040f025 */ or $s8,$v0,$zero
|
||||
/* f19abe0: 02402025 */ or $a0,$s2,$zero
|
||||
.L0f19abe4:
|
||||
/* f19abe4: 0fc458b8 */ jal func0f1162e0
|
||||
/* f19abe4: 0fc458b8 */ jal coverLoad
|
||||
/* f19abe8: 27a50158 */ addiu $a1,$sp,0x158
|
||||
/* f19abec: 50400027 */ beqzl $v0,.L0f19ac8c
|
||||
/* f19abf0: 26520001 */ addiu $s2,$s2,0x1
|
||||
|
|
@ -1556,7 +1556,7 @@ glabel func0f19ab70
|
|||
/* f19ae0c: 27aa016c */ addiu $t2,$sp,0x16c
|
||||
/* f19ae10: 01aa8021 */ addu $s0,$t5,$t2
|
||||
/* f19ae14: 8e040000 */ lw $a0,0x0($s0)
|
||||
/* f19ae18: 0fc458b8 */ jal func0f1162e0
|
||||
/* f19ae18: 0fc458b8 */ jal coverLoad
|
||||
/* f19ae1c: 27a50158 */ addiu $a1,$sp,0x158
|
||||
/* f19ae20: 8fae0158 */ lw $t6,0x158($sp)
|
||||
/* f19ae24: 8faf021c */ lw $t7,0x21c($sp)
|
||||
|
|
|
|||
|
|
@ -692,7 +692,7 @@ s32 coverGetCount(void)
|
|||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f1162e0
|
||||
glabel coverLoad
|
||||
/* f1162e0: 3c0e800a */ lui $t6,0x800a
|
||||
/* f1162e4: 8dce2350 */ lw $t6,0x2350($t6)
|
||||
/* f1162e8: 00a03025 */ or $a2,$a1,$zero
|
||||
|
|
@ -740,6 +740,32 @@ glabel func0f1162e0
|
|||
/* f116388: a4cd0008 */ sh $t5,0x8($a2)
|
||||
/* f11638c: 03e00008 */ jr $ra
|
||||
/* f116390: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
// Mismatch because it swaps the addu arguments when calculating def
|
||||
//bool coverLoad(s32 covernum, struct cover *cover)
|
||||
//{
|
||||
// struct coverdefinition *def;
|
||||
//
|
||||
// if (covernum >= g_PadsFile[1] || covernum < 0 || !g_StageSetup.cover) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// // Possible @bug: Cast to u8 means it would load the position from an
|
||||
// // incorrect cover if covernum is greater than 255.
|
||||
// def = &g_StageSetup.cover[(u8)covernum];
|
||||
// cover->pos = &def->pos;
|
||||
// cover->look = &def->look;
|
||||
// g_CoverFlags[covernum] |= def->flags;
|
||||
// cover->flags = g_CoverFlags[covernum];
|
||||
// cover->room = g_CoverRooms[covernum];
|
||||
// cover->unk0a = -1;
|
||||
//
|
||||
// return true;
|
||||
//}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f116394
|
||||
/* f116394: 3c02800a */ lui $v0,0x800a
|
||||
/* f116398: 03e00008 */ jr $ra
|
||||
/* f11639c: 9442236c */ lhu $v0,0x236c($v0)
|
||||
|
|
@ -761,7 +787,7 @@ glabel func0f1162e0
|
|||
/* f1163d8: 10000008 */ beqz $zero,.L0f1163fc
|
||||
/* f1163dc: 00001025 */ or $v0,$zero,$zero
|
||||
.L0f1163e0:
|
||||
/* f1163e0: 0fc458b8 */ jal func0f1162e0
|
||||
/* f1163e0: 0fc458b8 */ jal coverLoad
|
||||
/* f1163e4: 97040000 */ lhu $a0,0x0($t8)
|
||||
/* f1163e8: 50400004 */ beqzl $v0,.L0f1163fc
|
||||
/* f1163ec: 00001025 */ or $v0,$zero,$zero
|
||||
|
|
|
|||
|
|
@ -20293,7 +20293,7 @@ u16 *g_PadOffsets = NULL;
|
|||
u32 var800a2358 = 0;
|
||||
u32 var800a235c = 0;
|
||||
u16 *g_CoverFlags = NULL;
|
||||
u32 var800a2364 = 0;
|
||||
s32 *g_CoverRooms = NULL;
|
||||
u32 var800a2368 = 0;
|
||||
u32 var800a236c = 0;
|
||||
u32 var800a2370 = 0;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ void padCopyBboxFromPad(s32 padnum, struct pad *src);
|
|||
void padSetFlag(s32 padnum, u32 flag);
|
||||
void padUnsetFlag(s32 padnum, u32 flag);
|
||||
s32 coverGetCount(void);
|
||||
u32 func0f1162e0(s16 cover, struct coord **pos);
|
||||
bool coverLoad(s32 covernum, struct cover *cover);
|
||||
bool coverHasFlag0002(s32 covernum);
|
||||
void coverSetFlag0002(s32 covernum, bool enable);
|
||||
void coverSetFlag(s32 covernum, u32 flag);
|
||||
|
|
|
|||
|
|
@ -703,7 +703,7 @@ extern u32 var800a2344;
|
|||
extern s32 *g_PadsFile;
|
||||
extern u16 *g_PadOffsets;
|
||||
extern u16 *g_CoverFlags;
|
||||
extern u32 var800a2364;
|
||||
extern s32 *g_CoverRooms;
|
||||
extern u32 var800a2368;
|
||||
extern u32 var800a236c;
|
||||
extern u32 var800a2370;
|
||||
|
|
|
|||
|
|
@ -2721,10 +2721,24 @@ struct path {
|
|||
u8 type;
|
||||
};
|
||||
|
||||
struct coverdefinition {
|
||||
struct coord pos;
|
||||
struct coord look;
|
||||
u16 flags;
|
||||
};
|
||||
|
||||
struct cover {
|
||||
/*0x00*/ struct coord *pos;
|
||||
/*0x04*/ struct coord *look;
|
||||
/*0x08*/ s16 room;
|
||||
/*0x0a*/ s16 unk0a;
|
||||
/*0x0c*/ u16 flags;
|
||||
};
|
||||
|
||||
struct stagesetup {
|
||||
/*0x00*/ void *unk00;
|
||||
/*0x04*/ void *unk04;
|
||||
/*0x08*/ void *unk08;
|
||||
/*0x08*/ struct coverdefinition *cover;
|
||||
/*0x0c*/ u8 *intro;
|
||||
/*0x10*/ u8 *props;
|
||||
/*0x14*/ struct path *paths;
|
||||
|
|
|
|||
Loading…
Reference in New Issue