forked from Ports/perfect_dark
Decompile func0f013ee0
This commit is contained in:
1 parent
4d7e6770fd
commit
e4f8c6573e
5 files changed
+36
-251
No files matched your search
+27
-244
@@ -15,250 +15,33 @@
|
||||
#include "lib/lib_233c0.h"
|
||||
#include "types.h"
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f013ee0
|
||||
/* f013ee0: 3c08800a */ lui $t0,%hi(g_Vars)
|
||||
/* f013ee4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
||||
/* f013ee8: 8d0e006c */ lw $t6,0x6c($t0)
|
||||
/* f013eec: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f013ef0: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f013ef4: 51c00004 */ beqzl $t6,.L0f013f08
|
||||
/* f013ef8: 00004825 */ or $t1,$zero,$zero
|
||||
/* f013efc: 10000002 */ b .L0f013f08
|
||||
/* f013f00: 24090001 */ addiu $t1,$zero,0x1
|
||||
/* f013f04: 00004825 */ or $t1,$zero,$zero
|
||||
.L0f013f08:
|
||||
/* f013f08: 8d0f0068 */ lw $t7,0x68($t0)
|
||||
/* f013f0c: 51e00004 */ beqzl $t7,.L0f013f20
|
||||
/* f013f10: 00003825 */ or $a3,$zero,$zero
|
||||
/* f013f14: 10000002 */ b .L0f013f20
|
||||
/* f013f18: 24070001 */ addiu $a3,$zero,0x1
|
||||
/* f013f1c: 00003825 */ or $a3,$zero,$zero
|
||||
.L0f013f20:
|
||||
/* f013f20: 8d180064 */ lw $t8,0x64($t0)
|
||||
/* f013f24: 53000004 */ beqzl $t8,.L0f013f38
|
||||
/* f013f28: 00002825 */ or $a1,$zero,$zero
|
||||
/* f013f2c: 10000002 */ b .L0f013f38
|
||||
/* f013f30: 24050001 */ addiu $a1,$zero,0x1
|
||||
/* f013f34: 00002825 */ or $a1,$zero,$zero
|
||||
.L0f013f38:
|
||||
/* f013f38: 8d190070 */ lw $t9,0x70($t0)
|
||||
/* f013f3c: 53200004 */ beqzl $t9,.L0f013f50
|
||||
/* f013f40: 00001025 */ or $v0,$zero,$zero
|
||||
/* f013f44: 10000002 */ b .L0f013f50
|
||||
/* f013f48: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f013f4c: 00001025 */ or $v0,$zero,$zero
|
||||
.L0f013f50:
|
||||
/* f013f50: 00457021 */ addu $t6,$v0,$a1
|
||||
/* f013f54: 01c77821 */ addu $t7,$t6,$a3
|
||||
/* f013f58: 01e9c021 */ addu $t8,$t7,$t1
|
||||
/* f013f5c: 2b010002 */ slti $at,$t8,0x2
|
||||
/* f013f60: 14200005 */ bnez $at,.L0f013f78
|
||||
/* f013f64: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f013f68: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f013f6c: 241900c8 */ addiu $t9,$zero,0xc8
|
||||
/* f013f70: 10000005 */ b .L0f013f88
|
||||
/* f013f74: ad590000 */ sw $t9,0x0($t2)
|
||||
.L0f013f78:
|
||||
/* f013f78: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f013f7c: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f013f80: 240e0078 */ addiu $t6,$zero,0x78
|
||||
/* f013f84: ad4e0000 */ sw $t6,0x0($t2)
|
||||
.L0f013f88:
|
||||
/* f013f88: 8d440000 */ lw $a0,0x0($t2)
|
||||
/* f013f8c: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f013f90: 2484000f */ addiu $a0,$a0,0xf
|
||||
/* f013f94: 348f000f */ ori $t7,$a0,0xf
|
||||
/* f013f98: 0c0048f2 */ jal malloc
|
||||
/* f013f9c: 39e4000f */ xori $a0,$t7,0xf
|
||||
/* f013fa0: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f013fa4: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f013fa8: 8d440000 */ lw $a0,0x0($t2)
|
||||
/* f013fac: 3c0d800a */ lui $t5,%hi(var800a6660)
|
||||
/* f013fb0: 25ad6660 */ addiu $t5,$t5,%lo(var800a6660)
|
||||
/* f013fb4: 0004c840 */ sll $t9,$a0,0x1
|
||||
/* f013fb8: 2724000f */ addiu $a0,$t9,0xf
|
||||
/* f013fbc: 348e000f */ ori $t6,$a0,0xf
|
||||
/* f013fc0: ada20000 */ sw $v0,0x0($t5)
|
||||
/* f013fc4: 39c4000f */ xori $a0,$t6,0xf
|
||||
/* f013fc8: 0c0048f2 */ jal malloc
|
||||
/* f013fcc: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f013fd0: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f013fd4: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f013fd8: 8d440000 */ lw $a0,0x0($t2)
|
||||
/* f013fdc: 3c1f800a */ lui $ra,%hi(var800a6664)
|
||||
/* f013fe0: 27ff6664 */ addiu $ra,$ra,%lo(var800a6664)
|
||||
/* f013fe4: 0004c040 */ sll $t8,$a0,0x1
|
||||
/* f013fe8: 2704000f */ addiu $a0,$t8,0xf
|
||||
/* f013fec: afe20000 */ sw $v0,0x0($ra)
|
||||
/* f013ff0: 3499000f */ ori $t9,$a0,0xf
|
||||
/* f013ff4: 3b24000f */ xori $a0,$t9,0xf
|
||||
/* f013ff8: 0c0048f2 */ jal malloc
|
||||
/* f013ffc: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f014000: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f014004: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f014008: 8d440000 */ lw $a0,0x0($t2)
|
||||
/* f01400c: 3c0b800a */ lui $t3,%hi(var800a6668)
|
||||
/* f014010: 256b6668 */ addiu $t3,$t3,%lo(var800a6668)
|
||||
/* f014014: 00047880 */ sll $t7,$a0,0x2
|
||||
/* f014018: 25e4000f */ addiu $a0,$t7,0xf
|
||||
/* f01401c: 3498000f */ ori $t8,$a0,0xf
|
||||
/* f014020: ad620000 */ sw $v0,0x0($t3)
|
||||
/* f014024: 3b04000f */ xori $a0,$t8,0xf
|
||||
/* f014028: 0c0048f2 */ jal malloc
|
||||
/* f01402c: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f014030: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f014034: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f014038: 8d440000 */ lw $a0,0x0($t2)
|
||||
/* f01403c: 3c0c800a */ lui $t4,%hi(var800a666c)
|
||||
/* f014040: 258c666c */ addiu $t4,$t4,%lo(var800a666c)
|
||||
/* f014044: 00047180 */ sll $t6,$a0,0x6
|
||||
/* f014048: 25c4000f */ addiu $a0,$t6,0xf
|
||||
/* f01404c: 348f000f */ ori $t7,$a0,0xf
|
||||
/* f014050: ad820000 */ sw $v0,0x0($t4)
|
||||
/* f014054: 39e4000f */ xori $a0,$t7,0xf
|
||||
/* f014058: 0c0048f2 */ jal malloc
|
||||
/* f01405c: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f014060: 3c08800a */ lui $t0,%hi(g_Vars)
|
||||
/* f014064: 3c01800a */ lui $at,%hi(var800a6670)
|
||||
/* f014068: ac226670 */ sw $v0,%lo(var800a6670)($at)
|
||||
/* f01406c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
||||
/* f014070: 8d19006c */ lw $t9,0x6c($t0)
|
||||
/* f014074: 3c0a8008 */ lui $t2,%hi(var80082050)
|
||||
/* f014078: 3c0b800a */ lui $t3,%hi(var800a6668)
|
||||
/* f01407c: 3c0c800a */ lui $t4,%hi(var800a666c)
|
||||
/* f014080: 3c0d800a */ lui $t5,%hi(var800a6660)
|
||||
/* f014084: 3c1f800a */ lui $ra,%hi(var800a6664)
|
||||
/* f014088: 27ff6664 */ addiu $ra,$ra,%lo(var800a6664)
|
||||
/* f01408c: 25ad6660 */ addiu $t5,$t5,%lo(var800a6660)
|
||||
/* f014090: 258c666c */ addiu $t4,$t4,%lo(var800a666c)
|
||||
/* f014094: 256b6668 */ addiu $t3,$t3,%lo(var800a6668)
|
||||
/* f014098: 254a2050 */ addiu $t2,$t2,%lo(var80082050)
|
||||
/* f01409c: 13200003 */ beqz $t9,.L0f0140ac
|
||||
/* f0140a0: 00002025 */ or $a0,$zero,$zero
|
||||
/* f0140a4: 10000002 */ b .L0f0140b0
|
||||
/* f0140a8: 24090001 */ addiu $t1,$zero,0x1
|
||||
.L0f0140ac:
|
||||
/* f0140ac: 00004825 */ or $t1,$zero,$zero
|
||||
.L0f0140b0:
|
||||
/* f0140b0: 8d0e0068 */ lw $t6,0x68($t0)
|
||||
/* f0140b4: 00003825 */ or $a3,$zero,$zero
|
||||
/* f0140b8: 00002825 */ or $a1,$zero,$zero
|
||||
/* f0140bc: 11c00003 */ beqz $t6,.L0f0140cc
|
||||
/* f0140c0: 00001025 */ or $v0,$zero,$zero
|
||||
/* f0140c4: 10000001 */ b .L0f0140cc
|
||||
/* f0140c8: 24070001 */ addiu $a3,$zero,0x1
|
||||
.L0f0140cc:
|
||||
/* f0140cc: 8d0f0064 */ lw $t7,0x64($t0)
|
||||
/* f0140d0: 2406ffff */ addiu $a2,$zero,-1
|
||||
/* f0140d4: 11e00003 */ beqz $t7,.L0f0140e4
|
||||
/* f0140d8: 00000000 */ nop
|
||||
/* f0140dc: 10000001 */ b .L0f0140e4
|
||||
/* f0140e0: 24050001 */ addiu $a1,$zero,0x1
|
||||
.L0f0140e4:
|
||||
/* f0140e4: 8d180070 */ lw $t8,0x70($t0)
|
||||
/* f0140e8: 13000003 */ beqz $t8,.L0f0140f8
|
||||
/* f0140ec: 00000000 */ nop
|
||||
/* f0140f0: 10000001 */ b .L0f0140f8
|
||||
/* f0140f4: 24020001 */ addiu $v0,$zero,0x1
|
||||
.L0f0140f8:
|
||||
/* f0140f8: 0045c821 */ addu $t9,$v0,$a1
|
||||
/* f0140fc: 03277021 */ addu $t6,$t9,$a3
|
||||
/* f014100: 01c97821 */ addu $t7,$t6,$t1
|
||||
/* f014104: 19e00024 */ blez $t7,.L0f014198
|
||||
/* f014108: 0004c080 */ sll $t8,$a0,0x2
|
||||
/* f01410c: 01181821 */ addu $v1,$t0,$t8
|
||||
/* f014110: 8c790064 */ lw $t9,0x64($v1)
|
||||
.L0f014114:
|
||||
/* f014114: 24840001 */ addiu $a0,$a0,0x1
|
||||
/* f014118: 24630004 */ addiu $v1,$v1,0x4
|
||||
/* f01411c: af261700 */ sw $a2,0x1700($t9)
|
||||
/* f014120: 8d0e006c */ lw $t6,0x6c($t0)
|
||||
/* f014124: 00004825 */ or $t1,$zero,$zero
|
||||
/* f014128: 00003825 */ or $a3,$zero,$zero
|
||||
/* f01412c: 11c00003 */ beqz $t6,.L0f01413c
|
||||
/* f014130: 00002825 */ or $a1,$zero,$zero
|
||||
/* f014134: 10000001 */ b .L0f01413c
|
||||
/* f014138: 24090001 */ addiu $t1,$zero,0x1
|
||||
.L0f01413c:
|
||||
/* f01413c: 8d0f0068 */ lw $t7,0x68($t0)
|
||||
/* f014140: 00001025 */ or $v0,$zero,$zero
|
||||
/* f014144: 11e00003 */ beqz $t7,.L0f014154
|
||||
/* f014148: 00000000 */ nop
|
||||
/* f01414c: 10000001 */ b .L0f014154
|
||||
/* f014150: 24070001 */ addiu $a3,$zero,0x1
|
||||
.L0f014154:
|
||||
/* f014154: 8d180064 */ lw $t8,0x64($t0)
|
||||
/* f014158: 13000003 */ beqz $t8,.L0f014168
|
||||
/* f01415c: 00000000 */ nop
|
||||
/* f014160: 10000001 */ b .L0f014168
|
||||
/* f014164: 24050001 */ addiu $a1,$zero,0x1
|
||||
.L0f014168:
|
||||
/* f014168: 8d190070 */ lw $t9,0x70($t0)
|
||||
/* f01416c: 13200003 */ beqz $t9,.L0f01417c
|
||||
/* f014170: 00000000 */ nop
|
||||
/* f014174: 10000001 */ b .L0f01417c
|
||||
/* f014178: 24020001 */ addiu $v0,$zero,0x1
|
||||
.L0f01417c:
|
||||
/* f01417c: 00457021 */ addu $t6,$v0,$a1
|
||||
/* f014180: 01c77821 */ addu $t7,$t6,$a3
|
||||
/* f014184: 01e9c021 */ addu $t8,$t7,$t1
|
||||
/* f014188: 0098082a */ slt $at,$a0,$t8
|
||||
/* f01418c: 5420ffe1 */ bnezl $at,.L0f014114
|
||||
/* f014190: 8c790064 */ lw $t9,0x64($v1)
|
||||
/* f014194: 00002025 */ or $a0,$zero,$zero
|
||||
.L0f014198:
|
||||
/* f014198: 8d590000 */ lw $t9,0x0($t2)
|
||||
/* f01419c: 2406ffff */ addiu $a2,$zero,-1
|
||||
/* f0141a0: 00001825 */ or $v1,$zero,$zero
|
||||
/* f0141a4: 1b200018 */ blez $t9,.L0f014208
|
||||
/* f0141a8: 00001025 */ or $v0,$zero,$zero
|
||||
/* f0141ac: 3c013f80 */ lui $at,0x3f80
|
||||
/* f0141b0: 44810000 */ mtc1 $at,$f0
|
||||
/* f0141b4: 24050002 */ addiu $a1,$zero,0x2
|
||||
/* f0141b8: 8fee0000 */ lw $t6,0x0($ra)
|
||||
.L0f0141bc:
|
||||
/* f0141bc: 01c27821 */ addu $t7,$t6,$v0
|
||||
/* f0141c0: a5e60000 */ sh $a2,0x0($t7)
|
||||
/* f0141c4: 8db80000 */ lw $t8,0x0($t5)
|
||||
/* f0141c8: 0304c821 */ addu $t9,$t8,$a0
|
||||
/* f0141cc: a3250000 */ sb $a1,0x0($t9)
|
||||
/* f0141d0: 8d6e0000 */ lw $t6,0x0($t3)
|
||||
/* f0141d4: 24840001 */ addiu $a0,$a0,0x1
|
||||
/* f0141d8: 01c27821 */ addu $t7,$t6,$v0
|
||||
/* f0141dc: a5e60000 */ sh $a2,0x0($t7)
|
||||
/* f0141e0: 8d980000 */ lw $t8,0x0($t4)
|
||||
/* f0141e4: 24420002 */ addiu $v0,$v0,0x2
|
||||
/* f0141e8: 0303c821 */ addu $t9,$t8,$v1
|
||||
/* f0141ec: e7200000 */ swc1 $f0,0x0($t9)
|
||||
/* f0141f0: 8d4e0000 */ lw $t6,0x0($t2)
|
||||
/* f0141f4: 24630004 */ addiu $v1,$v1,0x4
|
||||
/* f0141f8: 008e082a */ slt $at,$a0,$t6
|
||||
/* f0141fc: 5420ffef */ bnezl $at,.L0f0141bc
|
||||
/* f014200: 8fee0000 */ lw $t6,0x0($ra)
|
||||
/* f014204: 00002025 */ or $a0,$zero,$zero
|
||||
.L0f014208:
|
||||
/* f014208: 8d0f02bc */ lw $t7,0x2bc($t0)
|
||||
/* f01420c: 3c03800a */ lui $v1,%hi(g_Rooms)
|
||||
/* f014210: 24634928 */ addiu $v1,$v1,%lo(g_Rooms)
|
||||
/* f014214: 19e0000a */ blez $t7,.L0f014240
|
||||
/* f014218: 00001025 */ or $v0,$zero,$zero
|
||||
/* f01421c: 8c780000 */ lw $t8,0x0($v1)
|
||||
.L0f014220:
|
||||
/* f014220: 24840001 */ addiu $a0,$a0,0x1
|
||||
/* f014224: 0302c821 */ addu $t9,$t8,$v0
|
||||
/* f014228: a7260010 */ sh $a2,0x10($t9)
|
||||
/* f01422c: 8d0e02bc */ lw $t6,0x2bc($t0)
|
||||
/* f014230: 2442008c */ addiu $v0,$v0,0x8c
|
||||
/* f014234: 008e082a */ slt $at,$a0,$t6
|
||||
/* f014238: 5420fff9 */ bnezl $at,.L0f014220
|
||||
/* f01423c: 8c780000 */ lw $t8,0x0($v1)
|
||||
.L0f014240:
|
||||
/* f014240: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f014244: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f014248: 03e00008 */ jr $ra
|
||||
/* f01424c: 00000000 */ nop
|
||||
);
|
||||
void func0f013ee0(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
var80082050 = PLAYERCOUNT() >= 2 ? 200 : 120;
|
||||
|
||||
var800a6660 = malloc(ALIGN16(var80082050), MEMPOOL_STAGE);
|
||||
var800a6664 = malloc(ALIGN16(var80082050 * sizeof(s16)), MEMPOOL_STAGE);
|
||||
var800a6668 = malloc(ALIGN16(var80082050 * sizeof(s16)), MEMPOOL_STAGE);
|
||||
var800a666c = malloc(ALIGN16(var80082050 * sizeof(f32)), MEMPOOL_STAGE);
|
||||
var800a6670 = malloc(ALIGN16(var80082050 * 0x40), MEMPOOL_STAGE);
|
||||
|
||||
for (i = 0; i < PLAYERCOUNT(); i++) {
|
||||
g_Vars.players[i]->lastroomforoffset = -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < var80082050; i++) {
|
||||
var800a6664[i] = -1;
|
||||
var800a6660[i] = 2;
|
||||
var800a6668[i] = -1;
|
||||
var800a666c[i] = 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < g_Vars.roomcount; i++) {
|
||||
g_Rooms[i].unk10 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void coverAllocateSpecial(u16 *specialcovernums)
|
||||
{
|
||||
|
||||
+3
-3
@@ -15298,10 +15298,10 @@ u32 var800a6654 = 0;
|
||||
u32 var800a6658 = 0;
|
||||
u32 var800a665c = 0;
|
||||
u8 *var800a6660 = NULL;
|
||||
u32 var800a6664 = 0;
|
||||
s16 *var800a6664 = NULL;
|
||||
s16 *var800a6668 = NULL;
|
||||
u32 var800a666c = 0;
|
||||
u32 var800a6670 = 0;
|
||||
f32 *var800a666c = NULL;
|
||||
void *var800a6670 = NULL;
|
||||
u32 var800a6674 = 0;
|
||||
u32 var800a6678 = 0;
|
||||
u32 var800a667c = 0;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
u32 func0f013ee0(void);
|
||||
void func0f013ee0(void);
|
||||
void coverAllocateSpecial(u16 *specialcovernums);
|
||||
void coverLoad(void);
|
||||
|
||||
|
||||
@@ -735,8 +735,10 @@ extern u32 var800a661c;
|
||||
extern u32 var800a6620;
|
||||
extern u32 var800a6630;
|
||||
extern u8 *var800a6660;
|
||||
extern s16 *var800a6664;
|
||||
extern s16 *var800a6668;
|
||||
extern u32 var800a666c;
|
||||
extern f32 *var800a666c;
|
||||
extern void *var800a6670; // pointer to structs of len 0x40
|
||||
extern struct fileinfo g_FileInfo[NUM_FILES];
|
||||
extern u8 *g_GfxBuffers[3];
|
||||
extern u8 *g_VtxBuffers[3];
|
||||
|
||||
+2
-2
@@ -2614,7 +2614,7 @@ struct player {
|
||||
/*0x16ec*/ f32 unk16ec;
|
||||
/*0x16f0*/ f32 unk16f0;
|
||||
/*0x16f4*/ f32 gunzoomfovs[3]; // saved zoom levels/fovs for sniper, farsight and horizon scanner
|
||||
/*0x1700*/ u32 lastroomforoffset;
|
||||
/*0x1700*/ s32 lastroomforoffset;
|
||||
/*0x1704*/ f32 c_screenwidth;
|
||||
/*0x1708*/ f32 c_screenheight;
|
||||
/*0x170c*/ f32 c_screenleft;
|
||||
@@ -3575,7 +3575,7 @@ struct room {
|
||||
/*0x0a*/ u16 lightindex; // index of start of this room's lights in data file
|
||||
/*0x0c*/ u16 unk0c;
|
||||
/*0x0e*/ s16 roomportallistoffset;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x10*/ s16 unk10;
|
||||
/*0x14*/ struct room14 *unk14;
|
||||
/*0x18*/ f32 bbmin[3];
|
||||
/*0x24*/ f32 bbmax[3];
|
||||
|
||||
Reference in new issue
Block a user