Decompile propchrHasClearLineInVector

This commit is contained in:
Ryan Dwyer 2020-06-22 08:18:49 +10:00
parent da68b97117
commit b96f72992d
2 changed files with 12 additions and 28 deletions

View File

@ -8219,32 +8219,16 @@ bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct co
return func0f03654c(prop->chr, &prop->pos, prop->rooms, dstpos, NULL, vector, prop->chr->chrwidth * 1.2f, 0x3f);
}
GLOBAL_ASM(
glabel func0f036918
/* f036918: 27bdffd8 */ addiu $sp,$sp,-40
/* f03691c: afbf0014 */ sw $ra,0x14($sp)
/* f036920: afa5002c */ sw $a1,0x2c($sp)
/* f036924: 44866000 */ mtc1 $a2,$f12
/* f036928: c4a40000 */ lwc1 $f4,0x0($a1)
/* f03692c: c4880008 */ lwc1 $f8,0x8($a0)
/* f036930: 00a03025 */ or $a2,$a1,$zero
/* f036934: 460c2182 */ mul.s $f6,$f4,$f12
/* f036938: 46083280 */ add.s $f10,$f6,$f8
/* f03693c: e7aa001c */ swc1 $f10,0x1c($sp)
/* f036940: c490000c */ lwc1 $f16,0xc($a0)
/* f036944: e7b00020 */ swc1 $f16,0x20($sp)
/* f036948: c4b20008 */ lwc1 $f18,0x8($a1)
/* f03694c: c4860010 */ lwc1 $f6,0x10($a0)
/* f036950: 27a5001c */ addiu $a1,$sp,0x1c
/* f036954: 460c9102 */ mul.s $f4,$f18,$f12
/* f036958: 46062200 */ add.s $f8,$f4,$f6
/* f03695c: 0fc0da2e */ jal propchrHasClearLineToPos
/* f036960: e7a80024 */ swc1 $f8,0x24($sp)
/* f036964: 8fbf0014 */ lw $ra,0x14($sp)
/* f036968: 27bd0028 */ addiu $sp,$sp,0x28
/* f03696c: 03e00008 */ jr $ra
/* f036970: 00000000 */ sll $zero,$zero,0x0
);
bool propchrHasClearLineInVector(struct prop *prop, struct coord *vector, f32 mult)
{
struct coord dstpos;
dstpos.x = vector->x * mult + prop->pos.x;
dstpos.y = prop->pos.y;
dstpos.z = vector->z * mult + prop->pos.z;
return propchrHasClearLineToPos(prop, &dstpos, vector);
}
GLOBAL_ASM(
glabel func0f036974
@ -13151,7 +13135,7 @@ void chrTickSurrender(struct chrdata *chr)
coord.x = -sinf(value);
coord.z = -cosf(value);
if (!func0f036918(chr->prop, &coord, 20)) {
if (!propchrHasClearLineInVector(chr->prop, &coord, 20)) {
modelSetAnimation(chr->model, ANIM_SURRENDER_002E, random() & 1, 30, 0.5, 16);
func0001ddec(chr->model, 30, 16);
}

View File

@ -58,7 +58,7 @@ void func0f034524(struct chrdata *chr, f32 arg1, struct coord *vector, u8 *arg3,
u32 func0f03645c(void);
bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, struct coord *vector, f32 arg6, u32 arg7);
bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct coord *vector);
bool func0f036918(struct prop *prop, struct coord *coord, f32 arg2);
bool propchrHasClearLineInVector(struct prop *prop, struct coord *coord, f32 arg2);
bool func0f036974(struct prop *prop, struct coord *coord);
void chrGetSideVectorToTarget(struct chrdata *chr, bool side, struct coord *vector);
u32 chrCanRollInDirection(struct chrdata *chr, bool side, f32 distance);