Decompile func0f073ae8
This commit is contained in:
parent
cd36a5a4ac
commit
2164b049fe
|
|
@ -12732,7 +12732,7 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
}
|
||||
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_00000080) {
|
||||
func0f073ae8(weapon, weapon->base.projectile, &sp6c, &sp60);
|
||||
func0f073ae8(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
}
|
||||
} else {
|
||||
failed = true;
|
||||
|
|
@ -12808,7 +12808,7 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
}
|
||||
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_00000080) {
|
||||
func0f073ae8(weapon, weapon->base.projectile, &sp6c, &sp60);
|
||||
func0f073ae8(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -26009,219 +26009,54 @@ glabel var7f1aa3d0
|
|||
);
|
||||
#endif
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
GLOBAL_ASM(
|
||||
glabel func0f073ae8
|
||||
/* f073ae8: 27bdffa0 */ addiu $sp,$sp,-96
|
||||
/* f073aec: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* f073af0: afb30020 */ sw $s3,0x20($sp)
|
||||
/* f073af4: afb2001c */ sw $s2,0x1c($sp)
|
||||
/* f073af8: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f073afc: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f073b00: afa60068 */ sw $a2,0x68($sp)
|
||||
/* f073b04: afa7006c */ sw $a3,0x6c($sp)
|
||||
/* f073b08: 8cb00088 */ lw $s0,0x88($a1)
|
||||
/* f073b0c: 00809025 */ or $s2,$a0,$zero
|
||||
/* f073b10: 00a09825 */ or $s3,$a1,$zero
|
||||
/* f073b14: 12000004 */ beqz $s0,.L0f073b28
|
||||
/* f073b18: 8c910014 */ lw $s1,0x14($a0)
|
||||
/* f073b1c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f073b20: 0fc1905e */ jal propSetPerimEnabled
|
||||
/* f073b24: 00002825 */ or $a1,$zero,$zero
|
||||
.L0f073b28:
|
||||
/* f073b28: 266500c4 */ addiu $a1,$s3,0xc4
|
||||
/* f073b2c: afa5002c */ sw $a1,0x2c($sp)
|
||||
/* f073b30: 02402025 */ or $a0,$s2,$zero
|
||||
/* f073b34: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f073b38: 0fc1b340 */ jal func0f06cd00
|
||||
/* f073b3c: 8fa7006c */ lw $a3,0x6c($sp)
|
||||
/* f073b40: afa2005c */ sw $v0,0x5c($sp)
|
||||
/* f073b44: 8e700088 */ lw $s0,0x88($s3)
|
||||
/* f073b48: 12000003 */ beqz $s0,.L0f073b58
|
||||
/* f073b4c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f073b50: 0fc1905e */ jal propSetPerimEnabled
|
||||
/* f073b54: 24050001 */ addiu $a1,$zero,0x1
|
||||
.L0f073b58:
|
||||
/* f073b58: 8fae005c */ lw $t6,0x5c($sp)
|
||||
/* f073b5c: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f073b60: 26240008 */ addiu $a0,$s1,0x8
|
||||
/* f073b64: 15c20014 */ bne $t6,$v0,.L0f073bb8
|
||||
/* f073b68: 8faf005c */ lw $t7,0x5c($sp)
|
||||
/* f073b6c: 27b20048 */ addiu $s2,$sp,0x48
|
||||
/* f073b70: 26300028 */ addiu $s0,$s1,0x28
|
||||
/* f073b74: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073b78: 02403825 */ or $a3,$s2,$zero
|
||||
/* f073b7c: 0fc1979d */ jal func0f065e74
|
||||
/* f073b80: 8fa6002c */ lw $a2,0x2c($sp)
|
||||
/* f073b84: c66400c4 */ lwc1 $f4,0xc4($s3)
|
||||
/* f073b88: 02202025 */ or $a0,$s1,$zero
|
||||
/* f073b8c: e6240008 */ swc1 $f4,0x8($s1)
|
||||
/* f073b90: c66600c8 */ lwc1 $f6,0xc8($s3)
|
||||
/* f073b94: e626000c */ swc1 $f6,0xc($s1)
|
||||
/* f073b98: c66800cc */ lwc1 $f8,0xcc($s3)
|
||||
/* f073b9c: 0fc19711 */ jal propDeregisterRooms
|
||||
/* f073ba0: e6280010 */ swc1 $f8,0x10($s1)
|
||||
/* f073ba4: 02402025 */ or $a0,$s2,$zero
|
||||
/* f073ba8: 0fc195e9 */ jal roomsCopy
|
||||
/* f073bac: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073bb0: 10000023 */ b .L0f073c40
|
||||
/* f073bb4: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073bb8:
|
||||
/* f073bb8: 51e20021 */ beql $t7,$v0,.L0f073c40
|
||||
/* f073bbc: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
/* f073bc0: 92580003 */ lbu $t8,0x3($s2)
|
||||
/* f073bc4: 24010008 */ addiu $at,$zero,0x8
|
||||
/* f073bc8: 5701001d */ bnel $t8,$at,.L0f073c40
|
||||
/* f073bcc: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
/* f073bd0: 9242005c */ lbu $v0,0x5c($s2)
|
||||
/* f073bd4: 24010053 */ addiu $at,$zero,0x53
|
||||
/* f073bd8: 26240008 */ addiu $a0,$s1,0x8
|
||||
/* f073bdc: 10410004 */ beq $v0,$at,.L0f073bf0
|
||||
/* f073be0: 26300028 */ addiu $s0,$s1,0x28
|
||||
/* f073be4: 24010054 */ addiu $at,$zero,0x54
|
||||
/* f073be8: 54410015 */ bnel $v0,$at,.L0f073c40
|
||||
/* f073bec: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073bf0:
|
||||
/* f073bf0: a6400062 */ sh $zero,0x62($s2)
|
||||
/* f073bf4: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f073bf8: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073bfc: 0fc1979d */ jal func0f065e74
|
||||
/* f073c00: 27a70034 */ addiu $a3,$sp,0x34
|
||||
/* f073c04: 8fb90068 */ lw $t9,0x68($sp)
|
||||
/* f073c08: 02202025 */ or $a0,$s1,$zero
|
||||
/* f073c0c: c72a0000 */ lwc1 $f10,0x0($t9)
|
||||
/* f073c10: e62a0008 */ swc1 $f10,0x8($s1)
|
||||
/* f073c14: 8fa80068 */ lw $t0,0x68($sp)
|
||||
/* f073c18: c5100004 */ lwc1 $f16,0x4($t0)
|
||||
/* f073c1c: e630000c */ swc1 $f16,0xc($s1)
|
||||
/* f073c20: 8fa90068 */ lw $t1,0x68($sp)
|
||||
/* f073c24: c5320008 */ lwc1 $f18,0x8($t1)
|
||||
/* f073c28: 0fc19711 */ jal propDeregisterRooms
|
||||
/* f073c2c: e6320010 */ swc1 $f18,0x10($s1)
|
||||
/* f073c30: 27a40034 */ addiu $a0,$sp,0x34
|
||||
/* f073c34: 0fc195e9 */ jal roomsCopy
|
||||
/* f073c38: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073c3c: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073c40:
|
||||
/* f073c40: 2401ff7f */ addiu $at,$zero,-129
|
||||
/* f073c44: 01415824 */ and $t3,$t2,$at
|
||||
/* f073c48: ae6b0000 */ sw $t3,0x0($s3)
|
||||
/* f073c4c: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* f073c50: 8fb30020 */ lw $s3,0x20($sp)
|
||||
/* f073c54: 8fb2001c */ lw $s2,0x1c($sp)
|
||||
/* f073c58: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f073c5c: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f073c60: 8fa2005c */ lw $v0,0x5c($sp)
|
||||
/* f073c64: 03e00008 */ jr $ra
|
||||
/* f073c68: 27bd0060 */ addiu $sp,$sp,0x60
|
||||
);
|
||||
#else
|
||||
GLOBAL_ASM(
|
||||
glabel func0f073ae8
|
||||
/* f073ae8: 27bdffa0 */ addiu $sp,$sp,-96
|
||||
/* f073aec: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* f073af0: afb30020 */ sw $s3,0x20($sp)
|
||||
/* f073af4: afb2001c */ sw $s2,0x1c($sp)
|
||||
/* f073af8: afb10018 */ sw $s1,0x18($sp)
|
||||
/* f073afc: afb00014 */ sw $s0,0x14($sp)
|
||||
/* f073b00: afa60068 */ sw $a2,0x68($sp)
|
||||
/* f073b04: afa7006c */ sw $a3,0x6c($sp)
|
||||
/* f073b08: 8cb00088 */ lw $s0,0x88($a1)
|
||||
/* f073b0c: 00809025 */ or $s2,$a0,$zero
|
||||
/* f073b10: 00a09825 */ or $s3,$a1,$zero
|
||||
/* f073b14: 12000004 */ beqz $s0,.L0f073b28
|
||||
/* f073b18: 8c910014 */ lw $s1,0x14($a0)
|
||||
/* f073b1c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f073b20: 0fc1905e */ jal propSetPerimEnabled
|
||||
/* f073b24: 00002825 */ or $a1,$zero,$zero
|
||||
.L0f073b28:
|
||||
/* f073b28: 266500c4 */ addiu $a1,$s3,0xc4
|
||||
/* f073b2c: afa5002c */ sw $a1,0x2c($sp)
|
||||
/* f073b30: 02402025 */ or $a0,$s2,$zero
|
||||
/* f073b34: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f073b38: 0fc1b340 */ jal func0f06cd00
|
||||
/* f073b3c: 8fa7006c */ lw $a3,0x6c($sp)
|
||||
/* f073b40: afa2005c */ sw $v0,0x5c($sp)
|
||||
/* f073b44: 8e700088 */ lw $s0,0x88($s3)
|
||||
/* f073b48: 12000003 */ beqz $s0,.L0f073b58
|
||||
/* f073b4c: 02002025 */ or $a0,$s0,$zero
|
||||
/* f073b50: 0fc1905e */ jal propSetPerimEnabled
|
||||
/* f073b54: 24050001 */ addiu $a1,$zero,0x1
|
||||
.L0f073b58:
|
||||
/* f073b58: 8fae005c */ lw $t6,0x5c($sp)
|
||||
/* f073b5c: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* f073b60: 26240008 */ addiu $a0,$s1,0x8
|
||||
/* f073b64: 15c20014 */ bne $t6,$v0,.L0f073bb8
|
||||
/* f073b68: 8faf005c */ lw $t7,0x5c($sp)
|
||||
/* f073b6c: 27b20048 */ addiu $s2,$sp,0x48
|
||||
/* f073b70: 26300028 */ addiu $s0,$s1,0x28
|
||||
/* f073b74: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073b78: 02403825 */ or $a3,$s2,$zero
|
||||
/* f073b7c: 0fc1979d */ jal func0f065e74
|
||||
/* f073b80: 8fa6002c */ lw $a2,0x2c($sp)
|
||||
/* f073b84: c66400c4 */ lwc1 $f4,0xc4($s3)
|
||||
/* f073b88: 02202025 */ or $a0,$s1,$zero
|
||||
/* f073b8c: e6240008 */ swc1 $f4,0x8($s1)
|
||||
/* f073b90: c66600c8 */ lwc1 $f6,0xc8($s3)
|
||||
/* f073b94: e626000c */ swc1 $f6,0xc($s1)
|
||||
/* f073b98: c66800cc */ lwc1 $f8,0xcc($s3)
|
||||
/* f073b9c: 0fc19711 */ jal propDeregisterRooms
|
||||
/* f073ba0: e6280010 */ swc1 $f8,0x10($s1)
|
||||
/* f073ba4: 02402025 */ or $a0,$s2,$zero
|
||||
/* f073ba8: 0fc195e9 */ jal roomsCopy
|
||||
/* f073bac: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073bb0: 10000023 */ b .L0f073c40
|
||||
/* f073bb4: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073bb8:
|
||||
/* f073bb8: 51e20021 */ beql $t7,$v0,.L0f073c40
|
||||
/* f073bbc: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
/* f073bc0: 92580003 */ lbu $t8,0x3($s2)
|
||||
/* f073bc4: 24010008 */ addiu $at,$zero,0x8
|
||||
/* f073bc8: 5701001d */ bnel $t8,$at,.L0f073c40
|
||||
/* f073bcc: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
/* f073bd0: 9242005c */ lbu $v0,0x5c($s2)
|
||||
/* f073bd4: 24010053 */ addiu $at,$zero,0x52
|
||||
/* f073bd8: 26240008 */ addiu $a0,$s1,0x8
|
||||
/* f073bdc: 10410004 */ beq $v0,$at,.L0f073bf0
|
||||
/* f073be0: 26300028 */ addiu $s0,$s1,0x28
|
||||
/* f073be4: 24010054 */ addiu $at,$zero,0x53
|
||||
/* f073be8: 54410015 */ bnel $v0,$at,.L0f073c40
|
||||
/* f073bec: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073bf0:
|
||||
/* f073bf0: a6400062 */ sh $zero,0x62($s2)
|
||||
/* f073bf4: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f073bf8: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073bfc: 0fc1979d */ jal func0f065e74
|
||||
/* f073c00: 27a70034 */ addiu $a3,$sp,0x34
|
||||
/* f073c04: 8fb90068 */ lw $t9,0x68($sp)
|
||||
/* f073c08: 02202025 */ or $a0,$s1,$zero
|
||||
/* f073c0c: c72a0000 */ lwc1 $f10,0x0($t9)
|
||||
/* f073c10: e62a0008 */ swc1 $f10,0x8($s1)
|
||||
/* f073c14: 8fa80068 */ lw $t0,0x68($sp)
|
||||
/* f073c18: c5100004 */ lwc1 $f16,0x4($t0)
|
||||
/* f073c1c: e630000c */ swc1 $f16,0xc($s1)
|
||||
/* f073c20: 8fa90068 */ lw $t1,0x68($sp)
|
||||
/* f073c24: c5320008 */ lwc1 $f18,0x8($t1)
|
||||
/* f073c28: 0fc19711 */ jal propDeregisterRooms
|
||||
/* f073c2c: e6320010 */ swc1 $f18,0x10($s1)
|
||||
/* f073c30: 27a40034 */ addiu $a0,$sp,0x34
|
||||
/* f073c34: 0fc195e9 */ jal roomsCopy
|
||||
/* f073c38: 02002825 */ or $a1,$s0,$zero
|
||||
/* f073c3c: 8e6a0000 */ lw $t2,0x0($s3)
|
||||
.L0f073c40:
|
||||
/* f073c40: 2401ff7f */ addiu $at,$zero,-129
|
||||
/* f073c44: 01415824 */ and $t3,$t2,$at
|
||||
/* f073c48: ae6b0000 */ sw $t3,0x0($s3)
|
||||
/* f073c4c: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* f073c50: 8fb30020 */ lw $s3,0x20($sp)
|
||||
/* f073c54: 8fb2001c */ lw $s2,0x1c($sp)
|
||||
/* f073c58: 8fb10018 */ lw $s1,0x18($sp)
|
||||
/* f073c5c: 8fb00014 */ lw $s0,0x14($sp)
|
||||
/* f073c60: 8fa2005c */ lw $v0,0x5c($sp)
|
||||
/* f073c64: 03e00008 */ jr $ra
|
||||
/* f073c68: 27bd0060 */ addiu $sp,$sp,0x60
|
||||
);
|
||||
#endif
|
||||
s32 func0f073ae8(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3)
|
||||
{
|
||||
s32 result;
|
||||
struct prop *prop = obj->prop;
|
||||
|
||||
if (projectile->ownerprop) {
|
||||
propSetPerimEnabled(projectile->ownerprop, false);
|
||||
}
|
||||
|
||||
result = func0f06cd00(obj, &projectile->pos, arg2, arg3);
|
||||
|
||||
if (projectile->ownerprop) {
|
||||
propSetPerimEnabled(projectile->ownerprop, true);
|
||||
}
|
||||
|
||||
if (result == 1) {
|
||||
s16 rooms[8];
|
||||
|
||||
func0f065e74(&prop->pos, prop->rooms, &projectile->pos, rooms);
|
||||
|
||||
prop->pos.x = projectile->pos.x;
|
||||
prop->pos.y = projectile->pos.y;
|
||||
prop->pos.z = projectile->pos.z;
|
||||
|
||||
propDeregisterRooms(prop);
|
||||
roomsCopy(rooms, prop->rooms);
|
||||
} else if (result != 1 && obj->type == OBJTYPE_WEAPON) {
|
||||
struct weaponobj *weapon = (struct weaponobj *)obj;
|
||||
s16 rooms[8];
|
||||
|
||||
if (weapon->weaponnum == WEAPON_ROCKET || weapon->weaponnum == WEAPON_HOMINGROCKET) {
|
||||
weapon->timer240 = 0;
|
||||
|
||||
func0f065e74(&prop->pos, prop->rooms, arg2, rooms);
|
||||
|
||||
prop->pos.x = arg2->x;
|
||||
prop->pos.y = arg2->y;
|
||||
prop->pos.z = arg2->z;
|
||||
|
||||
propDeregisterRooms(prop);
|
||||
roomsCopy(rooms, prop->rooms);
|
||||
}
|
||||
}
|
||||
|
||||
projectile->flags &= ~PROJECTILEFLAG_00000080;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#if VERSION >= VERSION_JPN_FINAL
|
||||
GLOBAL_ASM(
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ u32 func0f06be44(void);
|
|||
bool func0f06bea0(struct model *model, struct modelnode *arg1, struct modelnode *arg2, struct coord *arg3, struct coord *arg4, void *arg5, void *arg6, void *arg7, void *arg8, void *arg9, void *arg10);
|
||||
u32 func0f06c28c(void);
|
||||
u32 func0f06c8ac(void);
|
||||
u32 func0f06cd00(void);
|
||||
s32 func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2, struct coord *arg3);
|
||||
u32 func0f06d37c(void);
|
||||
void applySpeed(f32 *distdone, f32 maxdist, f32 *speed, f32 accel, f32 decel, f32 maxspeed);
|
||||
void applyRotation(f32 *angle, f32 maxrot, f32 *speed, f32 accel, f32 decel, f32 maxspeed);
|
||||
|
|
@ -157,7 +157,7 @@ u32 func0f0727d4(void);
|
|||
void hoverbikeUpdateMovement(struct hoverbikeobj *hoverbike, f32 arg1, f32 arg2, f32 arg3);
|
||||
u32 func0f0732d4(void);
|
||||
u32 func0f073478(void);
|
||||
void func0f073ae8(struct weaponobj *weapon, struct projectile *projectile, struct coord *arg2, struct coord *arg3);
|
||||
s32 func0f073ae8(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3);
|
||||
s32 func0f073c6c(struct defaultobj *obj, bool *arg1);
|
||||
void doorTick(struct prop *doorprop);
|
||||
void doorUpdatePortalIfWindowed(struct prop *door, s32 playercount);
|
||||
|
|
|
|||
Loading…
Reference in New Issue