Decompile chrSpawnAtPad and rename other spawn functions
This commit is contained in:
parent
8501f226e4
commit
b9484635f7
|
|
@ -49419,7 +49419,7 @@ s32 func0f0495d0(struct chrdata *chr, s32 pad_id)
|
|||
|
||||
if (resolved_pad_id >= 0) {
|
||||
padUnpack(resolved_pad_id, 0x40, &pad);
|
||||
ret = pad.padnum;
|
||||
ret = pad.room;
|
||||
}
|
||||
} else {
|
||||
ret = pad_id;
|
||||
|
|
@ -51475,7 +51475,7 @@ glabel func0f04af84
|
|||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f04b2f4
|
||||
glabel chrSpawnAtCoord
|
||||
/* f04b2f4: 27bdff88 */ addiu $sp,$sp,-120
|
||||
/* f04b2f8: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* f04b2fc: afa40078 */ sw $a0,0x78($sp)
|
||||
|
|
@ -51652,42 +51652,21 @@ glabel func0f04b2f4
|
|||
/* f04b574: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel chrSpawn
|
||||
/* f04b578: 27bdff78 */ addiu $sp,$sp,-136
|
||||
/* f04b57c: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* f04b580: afa5008c */ sw $a1,0x8c($sp)
|
||||
/* f04b584: afa60090 */ sw $a2,0x90($sp)
|
||||
/* f04b588: 0fc1258b */ jal padResolve
|
||||
/* f04b58c: 00e02825 */ or $a1,$a3,$zero
|
||||
/* f04b590: 00402025 */ or $a0,$v0,$zero
|
||||
/* f04b594: 24050046 */ addiu $a1,$zero,0x46
|
||||
/* f04b598: 0fc456ac */ jal padUnpack
|
||||
/* f04b59c: 27a60030 */ addiu $a2,$sp,0x30
|
||||
/* f04b5a0: c7ac003c */ lwc1 $f12,0x3c($sp)
|
||||
/* f04b5a4: 0fc259d4 */ jal func0f096750
|
||||
/* f04b5a8: c7ae0044 */ lwc1 $f14,0x44($sp)
|
||||
/* f04b5ac: 8fae0078 */ lw $t6,0x78($sp)
|
||||
/* f04b5b0: 8fb80098 */ lw $t8,0x98($sp)
|
||||
/* f04b5b4: 8fb9009c */ lw $t9,0x9c($sp)
|
||||
/* f04b5b8: 240fffff */ addiu $t7,$zero,-1
|
||||
/* f04b5bc: a7af002e */ sh $t7,0x2e($sp)
|
||||
/* f04b5c0: 8fa4008c */ lw $a0,0x8c($sp)
|
||||
/* f04b5c4: 8fa50090 */ lw $a1,0x90($sp)
|
||||
/* f04b5c8: 27a60030 */ addiu $a2,$sp,0x30
|
||||
/* f04b5cc: 27a7002c */ addiu $a3,$sp,0x2c
|
||||
/* f04b5d0: e7a00010 */ swc1 $f0,0x10($sp)
|
||||
/* f04b5d4: a7ae002c */ sh $t6,0x2c($sp)
|
||||
/* f04b5d8: afb80014 */ sw $t8,0x14($sp)
|
||||
/* f04b5dc: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f04b5e0: afb90018 */ sw $t9,0x18($sp)
|
||||
/* f04b5e4: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* f04b5e8: 27bd0088 */ addiu $sp,$sp,0x88
|
||||
/* f04b5ec: 03e00008 */ jr $ra
|
||||
/* f04b5f0: 00000000 */ sll $zero,$zero,0x0
|
||||
);
|
||||
bool chrSpawnAtPad(struct chrdata *basechr, s32 body, s32 head, s32 pad_id, u8 *ailist, u32 flags)
|
||||
{
|
||||
s32 resolved_pad_id = padResolve(basechr, pad_id);
|
||||
struct pad pad;
|
||||
s16 room[2];
|
||||
float fvalue;
|
||||
padUnpack(resolved_pad_id, 0x46, &pad);
|
||||
fvalue = func0f096750(pad.look.x, pad.look.z);
|
||||
room[0] = pad.room;
|
||||
room[1] = -1;
|
||||
|
||||
s32 func0f04b5f4(struct chrdata *basechr, s32 arg1, s32 arg2, u32 chrnum, s32 arg4, s32 arg5)
|
||||
return chrSpawnAtCoord(body, head, &pad.coord, &room[0], fvalue, ailist, flags);
|
||||
}
|
||||
|
||||
bool chrSpawnAtChr(struct chrdata *basechr, s32 body, s32 head, u32 chrnum, u8 *ailist, u32 flags)
|
||||
{
|
||||
struct chrdata *chr = chrFindById(basechr, chrnum);
|
||||
float fvalue;
|
||||
|
|
@ -51696,7 +51675,7 @@ s32 func0f04b5f4(struct chrdata *basechr, s32 arg1, s32 arg2, u32 chrnum, s32 ar
|
|||
fvalue = func0f03e45c(chr);
|
||||
}
|
||||
|
||||
return func0f04b2f4(arg1, arg2, &chr->pos->coord, &chr->pos->room, fvalue, arg4, arg5);
|
||||
return chrSpawnAtCoord(body, head, &chr->pos->coord, &chr->pos->room, fvalue, ailist, flags);
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
|
|
|
|||
|
|
@ -5766,7 +5766,7 @@ glabel aiSpawnChr
|
|||
/* f0556ec: afa20010 */ sw $v0,0x10($sp)
|
||||
/* f0556f0: 97a70032 */ lhu $a3,0x32($sp)
|
||||
/* f0556f4: afa30034 */ sw $v1,0x34($sp)
|
||||
/* f0556f8: 0fc12d5e */ jal chrSpawn
|
||||
/* f0556f8: 0fc12d5e */ jal chrSpawnAtPad
|
||||
/* f0556fc: afa80014 */ sw $t0,0x14($sp)
|
||||
/* f055700: 10400007 */ beqz $v0,.L0f055720
|
||||
/* f055704: 8fa30034 */ lw $v1,0x34($sp)
|
||||
|
|
@ -5796,7 +5796,7 @@ glabel aiSpawnChr
|
|||
// s32 ailistid = cmd[7] | (cmd[6] << 8);
|
||||
// u8 *ailist = ailistFindById(ailistid & 0xffff);
|
||||
//
|
||||
// if (chrSpawn(g_Vars.chrdata, cmd[2], (s8)cmd[3], pad, ailist, flags)) {
|
||||
// if (chrSpawnAtPad(g_Vars.chrdata, cmd[2], (s8)cmd[3], pad, ailist, flags)) {
|
||||
// g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[12]);
|
||||
// } else {
|
||||
// g_Vars.aioffset += 13;
|
||||
|
|
@ -5843,7 +5843,7 @@ glabel ai00c7
|
|||
/* f0557b8: 80660003 */ lb $a2,0x3($v1)
|
||||
/* f0557bc: 90670004 */ lbu $a3,0x4($v1)
|
||||
/* f0557c0: afa20010 */ sw $v0,0x10($sp)
|
||||
/* f0557c4: 0fc12d7d */ jal func0f04b5f4
|
||||
/* f0557c4: 0fc12d7d */ jal chrSpawnAtChr
|
||||
/* f0557c8: afab0014 */ sw $t3,0x14($sp)
|
||||
/* f0557cc: 10400007 */ beqz $v0,.L0f0557ec
|
||||
/* f0557d0: 8fa3002c */ lw $v1,0x2c($sp)
|
||||
|
|
@ -5873,7 +5873,7 @@ glabel ai00c7
|
|||
// u32 ailistid = cmd[6] | (cmd[5] << 8);
|
||||
// u8 *ailist = ailistFindById(ailistid);
|
||||
//
|
||||
// if (func0f04b5f4(g_Vars.chrdata, cmd[2], (s8)cmd[3], cmd[4], ailist, flags)) {
|
||||
// if (chrSpawnAtChr(g_Vars.chrdata, cmd[2], (s8)cmd[3], cmd[4], ailist, flags)) {
|
||||
// g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[11]);
|
||||
// } else {
|
||||
// g_Vars.aioffset += 12;
|
||||
|
|
@ -6115,7 +6115,7 @@ glabel aiDuplicateChr
|
|||
/* f055bd8: 84470000 */ lh $a3,0x0($v0)
|
||||
/* f055bdc: afb00010 */ sw $s0,0x10($sp)
|
||||
/* f055be0: 8c84a3e4 */ lw $a0,-0x5c1c($a0)
|
||||
/* f055be4: 0fc12d7d */ jal func0f04b5f4
|
||||
/* f055be4: 0fc12d7d */ jal chrSpawnAtChr
|
||||
/* f055be8: afad0014 */ sw $t5,0x14($sp)
|
||||
/* f055bec: 5040006d */ beqzl $v0,.L0f055da4
|
||||
/* f055bf0: 8fb90054 */ lw $t9,0x54($sp)
|
||||
|
|
|
|||
|
|
@ -14084,7 +14084,7 @@ glabel func0f0bd904
|
|||
/* f0bed00: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bed04: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bed08: 46143482 */ mul.s $f18,$f6,$f20
|
||||
/* f0bed0c: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bed0c: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bed10: e7b20010 */ swc1 $f18,0x10($sp)
|
||||
/* f0bed14: 1000002a */ beqz $zero,.L0f0bedc0
|
||||
/* f0bed18: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14107,7 +14107,7 @@ glabel func0f0bd904
|
|||
/* f0bed58: 24050008 */ addiu $a1,$zero,0x8
|
||||
/* f0bed5c: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bed60: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bed64: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bed64: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bed68: e7aa0010 */ swc1 $f10,0x10($sp)
|
||||
/* f0bed6c: 10000014 */ beqz $zero,.L0f0bedc0
|
||||
/* f0bed70: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14128,7 +14128,7 @@ glabel func0f0bd904
|
|||
/* f0beda8: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bedac: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bedb0: 46149202 */ mul.s $f8,$f18,$f20
|
||||
/* f0bedb4: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bedb4: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bedb8: e7a80010 */ swc1 $f8,0x10($sp)
|
||||
/* f0bedbc: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0bedc0:
|
||||
|
|
@ -14211,7 +14211,7 @@ glabel func0f0bd904
|
|||
/* f0beee4: 24050008 */ addiu $a1,$zero,0x8
|
||||
/* f0beee8: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0beeec: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0beef0: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0beef0: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0beef4: e7a40010 */ swc1 $f4,0x10($sp)
|
||||
/* f0beef8: 10000011 */ beqz $zero,.L0f0bef40
|
||||
/* f0beefc: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14229,7 +14229,7 @@ glabel func0f0bd904
|
|||
/* f0bef28: 2405001b */ addiu $a1,$zero,0x1b
|
||||
/* f0bef2c: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bef30: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bef34: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bef34: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bef38: e7b20010 */ swc1 $f18,0x10($sp)
|
||||
/* f0bef3c: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0bef40:
|
||||
|
|
@ -14307,7 +14307,7 @@ glabel func0f0bd904
|
|||
/* f0bf050: 24050008 */ addiu $a1,$zero,0x8
|
||||
/* f0bf054: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf058: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf05c: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf05c: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf060: e7aa0010 */ swc1 $f10,0x10($sp)
|
||||
/* f0bf064: 10000011 */ beqz $zero,.L0f0bf0ac
|
||||
/* f0bf068: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14325,7 +14325,7 @@ glabel func0f0bd904
|
|||
/* f0bf094: 24050012 */ addiu $a1,$zero,0x12
|
||||
/* f0bf098: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf09c: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf0a0: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf0a0: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf0a4: e7a60010 */ swc1 $f6,0x10($sp)
|
||||
/* f0bf0a8: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0bf0ac:
|
||||
|
|
@ -14409,7 +14409,7 @@ glabel func0f0bd904
|
|||
/* f0bf1d4: 24050008 */ addiu $a1,$zero,0x8
|
||||
/* f0bf1d8: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf1dc: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf1e0: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf1e0: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf1e4: e7a80010 */ swc1 $f8,0x10($sp)
|
||||
/* f0bf1e8: 10000011 */ beqz $zero,.L0f0bf230
|
||||
/* f0bf1ec: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14427,7 +14427,7 @@ glabel func0f0bd904
|
|||
/* f0bf218: 02802825 */ or $a1,$s4,$zero
|
||||
/* f0bf21c: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf220: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf224: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf224: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf228: e7a40010 */ swc1 $f4,0x10($sp)
|
||||
/* f0bf22c: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0bf230:
|
||||
|
|
@ -14515,7 +14515,7 @@ glabel func0f0bd904
|
|||
/* f0bf368: 24050008 */ addiu $a1,$zero,0x8
|
||||
/* f0bf36c: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf370: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf374: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf374: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf378: e7b20010 */ swc1 $f18,0x10($sp)
|
||||
/* f0bf37c: 10000011 */ beqz $zero,.L0f0bf3c4
|
||||
/* f0bf380: 00408825 */ or $s1,$v0,$zero
|
||||
|
|
@ -14533,7 +14533,7 @@ glabel func0f0bd904
|
|||
/* f0bf3ac: 24050029 */ addiu $a1,$zero,0x29
|
||||
/* f0bf3b0: 24660008 */ addiu $a2,$v1,0x8
|
||||
/* f0bf3b4: 24670028 */ addiu $a3,$v1,0x28
|
||||
/* f0bf3b8: 0fc12cbd */ jal func0f04b2f4
|
||||
/* f0bf3b8: 0fc12cbd */ jal chrSpawnAtCoord
|
||||
/* f0bf3bc: e7aa0010 */ swc1 $f10,0x10($sp)
|
||||
/* f0bf3c0: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0bf3c4:
|
||||
|
|
|
|||
|
|
@ -384,9 +384,9 @@ u32 func0f04acc8(struct chrdata *chr, s32 arg1, s32 pad_id);
|
|||
u32 func0f04ad08(struct chrdata *chr);
|
||||
u32 func0f04aeb0(void);
|
||||
u32 func0f04af84(void);
|
||||
s32 func0f04b2f4(s32 arg0, s32 arg1, struct coord *coord, s16 *room, float arg4, s32 arg5, s32 arg6);
|
||||
u32 chrSpawn(struct chrdata *chr, s32 body, s32 head, u16 pad, u8 *ailist, u32 flags);
|
||||
s32 func0f04b5f4(struct chrdata *chr, s32 arg1, s32 arg2, u32 chrnum, s32 arg4, s32 arg5);
|
||||
bool chrSpawnAtCoord(s32 body, s32 head, struct coord *coord, s16 *room, float arg4, u8 *ailist, u32 flags);
|
||||
bool chrSpawnAtPad(struct chrdata *chr, s32 body, s32 head, s32 pad, u8 *ailist, u32 flags);
|
||||
bool chrSpawnAtChr(struct chrdata *basechr, s32 body, s32 head, u32 chrnum, u8 *ailist, u32 flags);
|
||||
u32 func0f04b658(struct chrdata *chr);
|
||||
u32 func0f04b748(void);
|
||||
u32 func0f04b950(struct chrdata *chr, u32 cover, u32 arg2);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
u32 func0f096750(void);
|
||||
float func0f096750(float x, float z);
|
||||
u32 func0f096890(void);
|
||||
u32 func0f096910(void);
|
||||
u32 func0f096964(void);
|
||||
|
|
|
|||
|
|
@ -73,9 +73,11 @@ struct pad {
|
|||
/*0x3c*/ float ymax;
|
||||
/*0x40*/ float zmin;
|
||||
/*0x44*/ float zmax;
|
||||
/*0x48*/ s32 padnum;
|
||||
/*0x4c*/ u32 unk4c;
|
||||
/*0x50*/ u32 unk50;
|
||||
/*0x48*/ s32 room;
|
||||
/*0x4c*/ s16 unk4c;
|
||||
/*0x4e*/ s16 unk4e;
|
||||
/*0x50*/ s16 unk50;
|
||||
/*0x52*/ s16 unk52;
|
||||
};
|
||||
|
||||
struct chr020 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue