Decompile getLowestUnusedChrId
This commit is contained in:
parent
47d0e296a1
commit
a393ba0108
|
|
@ -2449,63 +2449,23 @@ f32 chrGetArmor(struct chrdata *chr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel getLowestUnusedChrId
|
||||
/* f0205ec: 27bdffd8 */ addiu $sp,$sp,-40
|
||||
/* f0205f0: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f0205f4: afb30020 */ sw $s3,0x20($sp)
|
||||
/* f0205f8: afb2001c */ sw $s2,0x1c($sp)
|
||||
/* f0205fc: 3c108006 */ lui $s0,%hi(var80062984)
|
||||
/* f020600: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* f020604: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f020608: 26102984 */ addiu $s0,$s0,%lo(var80062984)
|
||||
/* f02060c: 34128000 */ dli $s2,0x8000
|
||||
/* f020610: 24131388 */ addiu $s3,$zero,0x1388
|
||||
/* f020614: 8e0e0000 */ lw $t6,0x0($s0)
|
||||
.L0f020618:
|
||||
/* f020618: 25c20001 */ addiu $v0,$t6,0x1
|
||||
/* f02061c: 0052082a */ slt $at,$v0,$s2
|
||||
/* f020620: 14200003 */ bnez $at,.L0f020630
|
||||
/* f020624: ae020000 */ sw $v0,0x0($s0)
|
||||
/* f020628: ae130000 */ sw $s3,0x0($s0)
|
||||
/* f02062c: 02601025 */ or $v0,$s3,$zero
|
||||
.L0f020630:
|
||||
/* f020630: 00028c00 */ sll $s1,$v0,0x10
|
||||
/* f020634: 00112403 */ sra $a0,$s1,0x10
|
||||
/* f020638: 0fc0a1dd */ jal chrFindByLiteralId
|
||||
/* f02063c: 00808825 */ or $s1,$a0,$zero
|
||||
/* f020640: 5440fff5 */ bnezl $v0,.L0f020618
|
||||
/* f020644: 8e0e0000 */ lw $t6,0x0($s0)
|
||||
/* f020648: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* f02064c: 02201025 */ or $v0,$s1,$zero
|
||||
/* f020650: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f020654: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f020658: 8fb2001c */ lw $s2,0x1c($sp)
|
||||
/* f02065c: 8fb30020 */ lw $s3,0x20($sp)
|
||||
/* f020660: 03e00008 */ jr $ra
|
||||
/* f020664: 27bd0028 */ addiu $sp,$sp,0x28
|
||||
);
|
||||
s16 getLowestUnusedChrId(void)
|
||||
{
|
||||
s32 chr_id;
|
||||
struct chrdata *chr;
|
||||
|
||||
// Mismatch due to different registers
|
||||
//s32 getLowestUnusedChrId(void)
|
||||
//{
|
||||
// s32 chr_id;
|
||||
// struct chrdata *chr;
|
||||
//
|
||||
// do {
|
||||
// chr_id = var80062984 + 1;
|
||||
// var80062984 = chr_id;
|
||||
//
|
||||
// if (chr_id > 32767) {
|
||||
// var80062984 = 5000;
|
||||
// chr_id = 5000;
|
||||
// }
|
||||
//
|
||||
// chr = chrFindByLiteralId(chr_id);
|
||||
// } while (chr);
|
||||
//
|
||||
// return chr_id;
|
||||
//}
|
||||
do {
|
||||
chr_id = ++g_NextChrId;
|
||||
|
||||
if (chr_id > 32767) {
|
||||
chr_id = g_NextChrId = 5000;
|
||||
}
|
||||
|
||||
chr = chrFindByLiteralId((s16)chr_id);
|
||||
} while (chr);
|
||||
|
||||
return chr_id;
|
||||
}
|
||||
|
||||
void chrInit(struct prop *prop, u8 *ailist)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ u32 var80062974 = 0x00000000;
|
|||
u32 var80062978 = 0x00000000;
|
||||
u32 var8006297c = 0;
|
||||
u32 var80062980 = 0;
|
||||
s32 var80062984 = 5000;
|
||||
s32 g_NextChrId = 5000;
|
||||
|
||||
// 80062988
|
||||
struct chrdata *g_ChrsA = NULL;
|
||||
|
|
|
|||
|
|
@ -71,8 +71,8 @@ glabel func0f00b510
|
|||
/* f00b540: ac202978 */ sw $zero,%lo(var80062978)($at)
|
||||
/* f00b544: 3c018006 */ lui $at,%hi(var8006297c)
|
||||
/* f00b548: ac20297c */ sw $zero,%lo(var8006297c)($at)
|
||||
/* f00b54c: 3c018006 */ lui $at,%hi(var80062984)
|
||||
/* f00b550: ac2e2984 */ sw $t6,%lo(var80062984)($at)
|
||||
/* f00b54c: 3c018006 */ lui $at,%hi(g_NextChrId)
|
||||
/* f00b550: ac2e2984 */ sw $t6,%lo(g_NextChrId)($at)
|
||||
/* f00b554: 3c018006 */ lui $at,%hi(g_ChrsA)
|
||||
/* f00b558: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f00b55c: ac202988 */ sw $zero,%lo(g_ChrsA)($at)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ u32 func0f01e7f4(void);
|
|||
u32 func0f01f264(struct chrdata *chr, struct coord *pos, s16 *room, f32 arg3, bool arg4);
|
||||
void func0f01f378(void);
|
||||
s32 chrsGetNumFree(void);
|
||||
s32 getLowestUnusedChrId(void);
|
||||
s16 getLowestUnusedChrId(void);
|
||||
struct prop *func0f020b14(struct prop *prop, struct animdata *animdata, struct coord *pos, s16 *rooms, f32 arg3, u8 *ailist);
|
||||
void func0f020d44(struct prop *prop, bool arg1);
|
||||
u32 func0f021258(void);
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ extern u32 var80062970;
|
|||
extern u32 var80062974;
|
||||
extern u32 var8006297c;
|
||||
extern u32 var80062980;
|
||||
extern s32 var80062984;
|
||||
extern s32 g_NextChrId;
|
||||
extern u32 var80062990;
|
||||
extern u32 var80062998;
|
||||
extern u32 var800629d8;
|
||||
|
|
|
|||
Loading…
Reference in New Issue