Decompile func0f15e5b8

This commit is contained in:
Ryan Dwyer 2021-02-18 19:25:34 +10:00
parent 2abb781cc8
commit b0de94741c
3 changed files with 48 additions and 108 deletions

View File

@ -8155,111 +8155,51 @@ void func0f15e538(void)
}
}
GLOBAL_ASM(
glabel func0f15e5b8
/* f15e5b8: 27bdffd0 */ addiu $sp,$sp,-48
/* f15e5bc: afbf002c */ sw $ra,0x2c($sp)
/* f15e5c0: afb50028 */ sw $s5,0x28($sp)
/* f15e5c4: afb40024 */ sw $s4,0x24($sp)
/* f15e5c8: 0080a025 */ or $s4,$a0,$zero
/* f15e5cc: 00a0a825 */ or $s5,$a1,$zero
/* f15e5d0: afb30020 */ sw $s3,0x20($sp)
/* f15e5d4: afb2001c */ sw $s2,0x1c($sp)
/* f15e5d8: afb10018 */ sw $s1,0x18($sp)
/* f15e5dc: 0c004b37 */ jal func00012cdc
/* f15e5e0: afb00014 */ sw $s0,0x14($sp)
/* f15e5e4: 0054082a */ slt $at,$v0,$s4
/* f15e5e8: 10200046 */ beqz $at,.L0f15e704
/* f15e5ec: 00008825 */ or $s1,$zero,$zero
/* f15e5f0: 3c12800a */ lui $s2,%hi(g_Vars)
/* f15e5f4: 26529fc0 */ addiu $s2,$s2,%lo(g_Vars)
/* f15e5f8: 2413001e */ addiu $s3,$zero,0x1e
/* f15e5fc: 8e4502bc */ lw $a1,0x2bc($s2)
.L0f15e600:
/* f15e600: 00003025 */ or $a2,$zero,$zero
/* f15e604: 00002025 */ or $a0,$zero,$zero
/* f15e608: 28a10002 */ slti $at,$a1,0x2
/* f15e60c: 1420000e */ bnez $at,.L0f15e648
/* f15e610: 24100001 */ addiu $s0,$zero,0x1
/* f15e614: 3c02800a */ lui $v0,%hi(g_Rooms)
/* f15e618: 8c424928 */ lw $v0,%lo(g_Rooms)($v0)
/* f15e61c: 2442008c */ addiu $v0,$v0,140
.L0f15e620:
/* f15e620: 84430002 */ lh $v1,0x2($v0)
/* f15e624: 0083082a */ slt $at,$a0,$v1
/* f15e628: 50200004 */ beqzl $at,.L0f15e63c
/* f15e62c: 26100001 */ addiu $s0,$s0,0x1
/* f15e630: 02003025 */ or $a2,$s0,$zero
/* f15e634: 00602025 */ or $a0,$v1,$zero
/* f15e638: 26100001 */ addiu $s0,$s0,0x1
.L0f15e63c:
/* f15e63c: 0205082a */ slt $at,$s0,$a1
/* f15e640: 1420fff7 */ bnez $at,.L0f15e620
/* f15e644: 2442008c */ addiu $v0,$v0,0x8c
.L0f15e648:
/* f15e648: 10c00005 */ beqz $a2,.L0f15e660
/* f15e64c: 00000000 */ nop
/* f15e650: 0fc5791d */ jal func0f15e474
/* f15e654: 00c02025 */ or $a0,$a2,$zero
/* f15e658: 0c0049ee */ jal func000127b8
/* f15e65c: 00000000 */ nop
.L0f15e660:
/* f15e660: 0c004b37 */ jal func00012cdc
/* f15e664: 00000000 */ nop
/* f15e668: 26310001 */ addiu $s1,$s1,0x1
/* f15e66c: 16330022 */ bne $s1,$s3,.L0f15e6f8
/* f15e670: 00401825 */ or $v1,$v0,$zero
/* f15e674: 24010001 */ addiu $at,$zero,0x1
/* f15e678: 56a10023 */ bnel $s5,$at,.L0f15e708
/* f15e67c: 8fbf002c */ lw $ra,0x2c($sp)
/* f15e680: 8e4e02bc */ lw $t6,0x2bc($s2)
/* f15e684: 24100001 */ addiu $s0,$zero,0x1
/* f15e688: 2411008c */ addiu $s1,$zero,0x8c
/* f15e68c: 29c10002 */ slti $at,$t6,0x2
/* f15e690: 1420001c */ bnez $at,.L0f15e704
/* f15e694: 3c13800a */ lui $s3,%hi(g_Rooms)
/* f15e698: 26734928 */ addiu $s3,$s3,%lo(g_Rooms)
/* f15e69c: 8e6f0000 */ lw $t7,0x0($s3)
.L0f15e6a0:
/* f15e6a0: 01f1c021 */ addu $t8,$t7,$s1
/* f15e6a4: 87190002 */ lh $t9,0x2($t8)
/* f15e6a8: 2b210009 */ slti $at,$t9,0x9
/* f15e6ac: 5420000b */ bnezl $at,.L0f15e6dc
/* f15e6b0: 8e4802bc */ lw $t0,0x2bc($s2)
/* f15e6b4: 0fc5791d */ jal func0f15e474
/* f15e6b8: 02002025 */ or $a0,$s0,$zero
/* f15e6bc: 0c0049ee */ jal func000127b8
/* f15e6c0: 00000000 */ nop
/* f15e6c4: 0c004b37 */ jal func00012cdc
/* f15e6c8: 00000000 */ nop
/* f15e6cc: 0054082a */ slt $at,$v0,$s4
/* f15e6d0: 5020000d */ beqzl $at,.L0f15e708
/* f15e6d4: 8fbf002c */ lw $ra,0x2c($sp)
/* f15e6d8: 8e4802bc */ lw $t0,0x2bc($s2)
.L0f15e6dc:
/* f15e6dc: 26100001 */ addiu $s0,$s0,0x1
/* f15e6e0: 2631008c */ addiu $s1,$s1,0x8c
/* f15e6e4: 0208082a */ slt $at,$s0,$t0
/* f15e6e8: 5420ffed */ bnezl $at,.L0f15e6a0
/* f15e6ec: 8e6f0000 */ lw $t7,0x0($s3)
/* f15e6f0: 10000005 */ b .L0f15e708
/* f15e6f4: 8fbf002c */ lw $ra,0x2c($sp)
.L0f15e6f8:
/* f15e6f8: 0074082a */ slt $at,$v1,$s4
/* f15e6fc: 5420ffc0 */ bnezl $at,.L0f15e600
/* f15e700: 8e4502bc */ lw $a1,0x2bc($s2)
.L0f15e704:
/* f15e704: 8fbf002c */ lw $ra,0x2c($sp)
.L0f15e708:
/* f15e708: 8fb00014 */ lw $s0,0x14($sp)
/* f15e70c: 8fb10018 */ lw $s1,0x18($sp)
/* f15e710: 8fb2001c */ lw $s2,0x1c($sp)
/* f15e714: 8fb30020 */ lw $s3,0x20($sp)
/* f15e718: 8fb40024 */ lw $s4,0x24($sp)
/* f15e71c: 8fb50028 */ lw $s5,0x28($sp)
/* f15e720: 03e00008 */ jr $ra
/* f15e724: 27bd0030 */ addiu $sp,$sp,0x30
);
void func0f15e5b8(s32 size, u32 arg1)
{
s32 limit = func00012cdc();
s32 bestroom;
s32 bestvalue;
s32 count = 0;
s32 i;
while (size > limit) {
bestroom = 0;
bestvalue = 0;
for (i = 1; i < g_Vars.roomcount; i++) {
if (bestvalue < g_Rooms[i].unk02) {
bestroom = i;
bestvalue = g_Rooms[i].unk02;
}
}
if (bestroom != 0) {
func0f15e474(bestroom);
func000127b8();
}
limit = func00012cdc();
count++;
if (count == 30) {
if (arg1 == 1) {
for (i = 1; i < g_Vars.roomcount; i++) {
if (g_Rooms[i].unk02 > 8) {
func0f15e474(i);
func000127b8();
if (func00012cdc() >= size) {
return;
}
}
}
}
break;
}
}
}
GLOBAL_ASM(
glabel func0f15e728

View File

@ -57,7 +57,7 @@ u32 func0f15dbb4(void);
void func0f15dc58(s32 roomnum);
void func0f15e474(s32 room);
void func0f15e538(void);
void func0f15e5b8(u32 size, u32 arg1);
void func0f15e5b8(s32 size, u32 arg1);
u32 func0f15e728(void);
Gfx *func0f15e85c(Gfx *gdl, s32 roomnum, u32 arg2, bool arg3);
Gfx *func0f15eb28(Gfx *gdl, s32 roomnum);

View File

@ -7,7 +7,7 @@
u32 func000126b0(void);
u32 func000126d4(void);
u32 func000126f0(void);
u32 func000127b8(void);
void func000127b8(void);
u32 func00012800(void);
u32 func00012914(void);
void func00012a0c(void);
@ -16,7 +16,7 @@ void func00012a8c(void);
void *func00012ab0(u32 size);
u32 func00012c3c(void);
void func00012cb4(void *arg0, s32 arg1);
u32 func00012cdc(void);
s32 func00012cdc(void);
u32 func00012d48(void);
#endif