Decompile roomsGetActive
This commit is contained in:
parent
b218470c6b
commit
a241da7944
|
|
@ -997,7 +997,7 @@ glabel var7f1a9eb8
|
|||
/* f0610dc: 544cfffe */ bnel $v0,$t4,.L0f0610d8
|
||||
/* f0610e0: 848c0002 */ lh $t4,0x2($a0)
|
||||
.L0f0610e4:
|
||||
/* f0610e4: 0fc5914d */ jal func0f164534
|
||||
/* f0610e4: 0fc5914d */ jal roomsGetActive
|
||||
/* f0610e8: 24050064 */ addiu $a1,$zero,0x64
|
||||
/* f0610ec: 87ad00d8 */ lh $t5,0xd8($sp)
|
||||
/* f0610f0: 2401ffff */ addiu $at,$zero,-1
|
||||
|
|
|
|||
|
|
@ -7859,7 +7859,7 @@ glabel var7f1aa268
|
|||
/* f06ce3c: 56cffffe */ bnel $s6,$t7,.L0f06ce38
|
||||
/* f06ce40: 848f0002 */ lh $t7,0x2($a0)
|
||||
.L0f06ce44:
|
||||
/* f06ce44: 0fc5914d */ jal func0f164534
|
||||
/* f06ce44: 0fc5914d */ jal roomsGetActive
|
||||
/* f06ce48: 24050064 */ addiu $a1,$zero,0x64
|
||||
/* f06ce4c: 87b800cc */ lh $t8,0xcc($sp)
|
||||
/* f06ce50: 27b100cc */ addiu $s1,$sp,0xcc
|
||||
|
|
|
|||
|
|
@ -6647,7 +6647,7 @@ void func0f15ca00(void)
|
|||
{
|
||||
s32 tickmode;
|
||||
|
||||
var800a4bec = 0;
|
||||
g_NumActiveRooms = 0;
|
||||
|
||||
func0f15c920();
|
||||
|
||||
|
|
@ -12848,16 +12848,16 @@ glabel var7f1b76bc
|
|||
/* f162a2c: 8e04000c */ lw $a0,0xc($s0)
|
||||
/* f162a30: 0fc55fa5 */ jal func0f157e94
|
||||
/* f162a34: 02a03025 */ or $a2,$s5,$zero
|
||||
/* f162a38: 3c02800a */ lui $v0,%hi(var800a4bec)
|
||||
/* f162a3c: 8c424bec */ lw $v0,%lo(var800a4bec)($v0)
|
||||
/* f162a38: 3c02800a */ lui $v0,%hi(g_NumActiveRooms)
|
||||
/* f162a3c: 8c424bec */ lw $v0,%lo(g_NumActiveRooms)($v0)
|
||||
/* f162a40: 8e18000c */ lw $t8,0xc($s0)
|
||||
/* f162a44: 3c01800a */ lui $at,%hi(var800a4930)
|
||||
/* f162a44: 3c01800a */ lui $at,%hi(g_ActiveRoomNums)
|
||||
/* f162a48: 0002c840 */ sll $t9,$v0,0x1
|
||||
/* f162a4c: 00390821 */ addu $at,$at,$t9
|
||||
/* f162a50: a4384930 */ sh $t8,%lo(var800a4930)($at)
|
||||
/* f162a54: 3c01800a */ lui $at,%hi(var800a4bec)
|
||||
/* f162a50: a4384930 */ sh $t8,%lo(g_ActiveRoomNums)($at)
|
||||
/* f162a54: 3c01800a */ lui $at,%hi(g_NumActiveRooms)
|
||||
/* f162a58: 24480001 */ addiu $t0,$v0,0x1
|
||||
/* f162a5c: ac284bec */ sw $t0,%lo(var800a4bec)($at)
|
||||
/* f162a5c: ac284bec */ sw $t0,%lo(g_NumActiveRooms)($at)
|
||||
.L0f162a60:
|
||||
/* f162a60: 92090001 */ lbu $t1,0x1($s0)
|
||||
.L0f162a64:
|
||||
|
|
@ -13157,7 +13157,7 @@ glabel var7f1b76bc
|
|||
// if (execute) {
|
||||
// if (g_PortalMode == PORTALMODE_SHOW && func0f15cd90(cmd[1].param, &var800a65c0)) {
|
||||
// func0f157e94(cmd[1].param, 0, &var800a65c0);
|
||||
// var800a4930[var800a4bec++] = cmd[1].param;
|
||||
// g_ActiveRoomNums[g_NumActiveRooms++] = cmd[1].param;
|
||||
// }
|
||||
// }
|
||||
// cmd += cmd->len;
|
||||
|
|
@ -14897,41 +14897,26 @@ glabel var7f1b76c0
|
|||
/* f164530: 01601025 */ or $v0,$t3,$zero
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f164534
|
||||
/* f164534: 3c08800a */ lui $t0,%hi(var800a4bec)
|
||||
/* f164538: 25084bec */ addiu $t0,$t0,%lo(var800a4bec)
|
||||
/* f16453c: 8d0e0000 */ lw $t6,0x0($t0)
|
||||
/* f164540: 00001825 */ or $v1,$zero,$zero
|
||||
/* f164544: 2409ffff */ addiu $t1,$zero,-1
|
||||
/* f164548: 59c00013 */ blezl $t6,.L0f164598
|
||||
/* f16454c: 00035040 */ sll $t2,$v1,0x1
|
||||
/* f164550: 18a00010 */ blez $a1,.L0f164594
|
||||
/* f164554: 00001040 */ sll $v0,$zero,0x1
|
||||
/* f164558: 3c0f800a */ lui $t7,%hi(var800a4930)
|
||||
/* f16455c: 25ef4930 */ addiu $t7,$t7,%lo(var800a4930)
|
||||
/* f164560: 004f3821 */ addu $a3,$v0,$t7
|
||||
/* f164564: 00823021 */ addu $a2,$a0,$v0
|
||||
/* f164568: 84f80000 */ lh $t8,0x0($a3)
|
||||
.L0f16456c:
|
||||
/* f16456c: 24630001 */ addiu $v1,$v1,0x1
|
||||
/* f164570: 24c60002 */ addiu $a2,$a2,0x2
|
||||
/* f164574: a4d8fffe */ sh $t8,-0x2($a2)
|
||||
/* f164578: 8d190000 */ lw $t9,0x0($t0)
|
||||
/* f16457c: 24e70002 */ addiu $a3,$a3,0x2
|
||||
/* f164580: 0079082a */ slt $at,$v1,$t9
|
||||
/* f164584: 10200003 */ beqz $at,.L0f164594
|
||||
/* f164588: 0065082a */ slt $at,$v1,$a1
|
||||
/* f16458c: 5420fff7 */ bnezl $at,.L0f16456c
|
||||
/* f164590: 84f80000 */ lh $t8,0x0($a3)
|
||||
.L0f164594:
|
||||
/* f164594: 00035040 */ sll $t2,$v1,0x1
|
||||
.L0f164598:
|
||||
/* f164598: 008a5821 */ addu $t3,$a0,$t2
|
||||
/* f16459c: a5690000 */ sh $t1,0x0($t3)
|
||||
/* f1645a0: 03e00008 */ jr $ra
|
||||
/* f1645a4: 00601025 */ or $v0,$v1,$zero
|
||||
);
|
||||
/**
|
||||
* @dangerous: This function assumes that the passed len is the allocated length
|
||||
* minus one. ie. It assumes there is space to write the -1 terminator once the
|
||||
* length is reached.
|
||||
*
|
||||
* This is only called from two places, both with len=100, so you'd need to have
|
||||
* over 100 rooms active at the same time before this would overflow the array.
|
||||
*/
|
||||
s32 roomsGetActive(s16 *rooms, s32 len)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < g_NumActiveRooms && i < len; i++) {
|
||||
rooms[i] = g_ActiveRoomNums[i];
|
||||
}
|
||||
|
||||
rooms[i] = -1;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
s32 roomGetNeighbours(s32 roomnum, s16 *dstrooms, s32 len)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14781,7 +14781,7 @@ u32 var800a4920 = 0;
|
|||
u32 var800a4924 = 0;
|
||||
struct room *g_Rooms = NULL;
|
||||
u8 *g_MpRoomVisibility = NULL;
|
||||
s16 var800a4930[1] = {0};
|
||||
s16 g_ActiveRoomNums[1] = {0};
|
||||
u32 var800a4934 = 0;
|
||||
u32 var800a4938 = 0;
|
||||
u32 var800a493c = 0;
|
||||
|
|
@ -14956,7 +14956,7 @@ u32 var800a4bdc = 0;
|
|||
u32 var800a4be0 = 0;
|
||||
u32 var800a4be4 = 0;
|
||||
u32 var800a4be8 = 0;
|
||||
u32 var800a4bec = 0;
|
||||
s32 g_NumActiveRooms = 0;
|
||||
u32 var800a4bf0 = 0;
|
||||
u32 var800a4bf4 = 0;
|
||||
s16 var800a4bf8[100] = {0};
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ u32 func0f163904(void);
|
|||
u32 func0f16397c(void);
|
||||
void func0f163e34(void);
|
||||
Gfx *func0f164150(Gfx *gdl);
|
||||
u32 func0f164534(void);
|
||||
s32 roomsGetActive(s16 *rooms, s32 len);
|
||||
s32 roomGetNeighbours(s32 room, s16 *rooms, s32 len);
|
||||
bool roomsAreNeighbours(s32 roomnum1, s32 roomnum2);
|
||||
u32 func0f164748(void);
|
||||
|
|
|
|||
|
|
@ -706,8 +706,8 @@ extern u32 var800a4920;
|
|||
extern u32 var800a4924;
|
||||
extern struct room *g_Rooms;
|
||||
extern u8 *g_MpRoomVisibility;
|
||||
extern s16 var800a4930[1];
|
||||
extern u32 var800a4bec;
|
||||
extern s16 g_ActiveRoomNums[1];
|
||||
extern s32 g_NumActiveRooms;
|
||||
extern u32 var800a4bf0;
|
||||
extern s16 var800a4bf8[100];
|
||||
extern u32 var800a4cc0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue