Attempt to decompile func0f04c874
This commit is contained in:
parent
c1b455b15c
commit
17e48e7bb7
|
|
@ -177,20 +177,20 @@ void bbikeHandleActivate(void)
|
|||
struct hoverbikeobj *bike = (struct hoverbikeobj *)g_Vars.currentplayer->hoverbike->obj;
|
||||
struct model08thing *thing = func0f068af4(&bike->base);
|
||||
|
||||
f32 fVar5 = thing->unk04[1] * bike->base.model->unk14;
|
||||
f32 fVar3 = thing->unk18 * bike->base.model->unk14;
|
||||
f32 uVar4 = sqrtf(fVar5 * fVar5 + fVar3 * fVar3);
|
||||
f32 sidedist = thing->unk04[1] * bike->base.model->unk14;
|
||||
f32 frontdist = thing->unk18 * bike->base.model->unk14;
|
||||
f32 diagdist = sqrtf(sidedist * sidedist + frontdist * frontdist);
|
||||
|
||||
g_Vars.currentplayer->walkinitmove = false;
|
||||
|
||||
bbikeTryDismountAngle(1.5705462694168f, fVar5);
|
||||
bbikeTryDismountAngle(4.7116389274597f, fVar5);
|
||||
bbikeTryDismountAngle(0.7852731347084f, uVar4);
|
||||
bbikeTryDismountAngle(5.4969120025635f, uVar4);
|
||||
bbikeTryDismountAngle(2.3558194637299f, uVar4);
|
||||
bbikeTryDismountAngle(3.9263656139374f, uVar4);
|
||||
bbikeTryDismountAngle(0, fVar3);
|
||||
bbikeTryDismountAngle(3.1410925388336f, fVar3);
|
||||
bbikeTryDismountAngle(1.5705462694168f, sidedist); // 90 - left
|
||||
bbikeTryDismountAngle(4.7116389274597f, sidedist); // 270 - right
|
||||
bbikeTryDismountAngle(0.7852731347084f, diagdist); // 45 - front left
|
||||
bbikeTryDismountAngle(5.4969120025635f, diagdist); // 315 - front right
|
||||
bbikeTryDismountAngle(2.3558194637299f, diagdist); // 135 - back left
|
||||
bbikeTryDismountAngle(3.9263656139374f, diagdist); // 225 - back right
|
||||
bbikeTryDismountAngle(0, frontdist); // 0 - front
|
||||
bbikeTryDismountAngle(3.1410925388336f, frontdist); // 180 - back
|
||||
|
||||
if (g_Vars.currentplayer->walkinitmove) {
|
||||
bmoveSetMode(MOVEMODE_WALK);
|
||||
|
|
|
|||
|
|
@ -471,7 +471,7 @@ glabel var7f1ad8b4
|
|||
/* f0c86f0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f0c86f4: 3c067f1b */ lui $a2,%hi(var7f1ad860)
|
||||
/* f0c86f8: 24c6d860 */ addiu $a2,$a2,%lo(var7f1ad860)
|
||||
/* f0c86fc: 0c0093af */ jal func00024ebc
|
||||
/* f0c86fc: 0c0093af */ jal cdGetPos
|
||||
/* f0c8700: 240501c7 */ addiu $a1,$zero,0x1c7
|
||||
/* f0c8704: 0c0093c4 */ jal func00024f10
|
||||
/* f0c8708: 00000000 */ nop
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ glabel func0f02e550
|
|||
.L0f02e61c:
|
||||
/* f02e61c: 3c067f1b */ lui $a2,%hi(var7f1a8acc)
|
||||
/* f02e620: 24c68acc */ addiu $a2,$a2,%lo(var7f1a8acc)
|
||||
/* f02e624: 0c0093af */ jal func00024ebc
|
||||
/* f02e624: 0c0093af */ jal cdGetPos
|
||||
/* f02e628: 24050949 */ addiu $a1,$zero,0x949
|
||||
/* f02e62c: c7a8003c */ lwc1 $f8,0x3c($sp)
|
||||
/* f02e630: c60a0008 */ lwc1 $f10,0x8($s0)
|
||||
|
|
@ -11049,7 +11049,7 @@ bool chrTryRunFromTarget(struct chrdata *chr)
|
|||
// If dst runs into a wall, set it to closest valid spot
|
||||
if (!func0002d7c0(&prop->pos, prop->rooms, &dst, 0x33, 1,
|
||||
ymax - prop->pos.y, ymin - prop->pos.y)) {
|
||||
func00024ebc(&dst, 8788, "chraction.c");
|
||||
cdGetPos(&dst, 8788, "chraction.c");
|
||||
}
|
||||
|
||||
// Adjust dst to be two chr widths closer to avoid collision with wall
|
||||
|
|
@ -16324,7 +16324,7 @@ glabel var7f1a9184
|
|||
/* f040b1c: afad0224 */ sw $t5,0x224($sp)
|
||||
/* f040b20: 24c68af4 */ addiu $a2,$a2,%lo(var7f1a8af4)
|
||||
/* f040b24: 27a40228 */ addiu $a0,$sp,0x228
|
||||
/* f040b28: 0c0093af */ jal func00024ebc
|
||||
/* f040b28: 0c0093af */ jal cdGetPos
|
||||
/* f040b2c: 24052f28 */ addiu $a1,$zero,0x2f28
|
||||
/* f040b30: 0c0093ac */ jal cdGetObstacle
|
||||
/* f040b34: 00000000 */ nop
|
||||
|
|
@ -26447,7 +26447,7 @@ bool chrRunFromPos(struct chrdata *chr, u32 speed, f32 rundist, struct coord *fr
|
|||
chrSetOrUnsetHiddenFlag00000100(chr, false);
|
||||
|
||||
if (cdTestAToB4(&chr->prop->pos, chr->prop->rooms, &delta, CDTYPE_ALL, 4) == CDRESULT_COLLISION) {
|
||||
func00024ebc(&delta, 18547, "chraction.c");
|
||||
cdGetPos(&delta, 18547, "chraction.c");
|
||||
}
|
||||
|
||||
chrSetOrUnsetHiddenFlag00000100(chr, true);
|
||||
|
|
@ -26657,7 +26657,7 @@ glabel var7f1a942c
|
|||
/* f04ca20: 02002025 */ or $a0,$s0,$zero
|
||||
/* f04ca24: 3c067f1b */ lui $a2,%hi(var7f1a8ce4)
|
||||
/* f04ca28: 24c68ce4 */ addiu $a2,$a2,%lo(var7f1a8ce4)
|
||||
/* f04ca2c: 0c0093af */ jal func00024ebc
|
||||
/* f04ca2c: 0c0093af */ jal cdGetPos
|
||||
/* f04ca30: 240548fe */ addiu $a1,$zero,0x48fe
|
||||
/* f04ca34: c6040000 */ lwc1 $f4,0x0($s0)
|
||||
/* f04ca38: c7a600c8 */ lwc1 $f6,0xc8($sp)
|
||||
|
|
@ -26781,6 +26781,119 @@ glabel var7f1a942c
|
|||
/* f04cc00: 24020001 */ addiu $v0,$zero,0x1
|
||||
);
|
||||
|
||||
// Mismatch: Probably due to variable reuse.
|
||||
//bool func0f04c874(struct chrdata *chr, u32 angle360, struct coord *pos, u8 arg3, u8 arg4)
|
||||
//{
|
||||
// struct prop *target = chrGetTargetProp(chr);
|
||||
// f32 fVar7 = 0;
|
||||
// f32 uVar9 = func0f04c784(chr);
|
||||
// struct coord chrpos; // c8, cc, d0
|
||||
// struct coord saved; // a8, ac, b0
|
||||
// f32 ymax; // a0
|
||||
// f32 ymin; // 9c
|
||||
// f32 width; // 98
|
||||
// f32 cosine;
|
||||
// f32 sine;
|
||||
// f32 xdiff;
|
||||
// f32 ydiff;
|
||||
// f32 zdiff;
|
||||
// f32 xdiff2;
|
||||
// f32 ydiff2;
|
||||
// f32 zdiff2;
|
||||
// f32 scale;
|
||||
// bool again;
|
||||
//
|
||||
// chrpos.x = chr->prop->pos.x;
|
||||
// chrpos.y = chr->prop->pos.y;
|
||||
// chrpos.z = chr->prop->pos.z;
|
||||
//
|
||||
// do {
|
||||
// s32 result;
|
||||
// f32 angle360f = angle360;
|
||||
//
|
||||
// if (angle360f > 180) {
|
||||
// angle360f -= 360;
|
||||
// }
|
||||
//
|
||||
// cosine = cosf((angle360f - uVar9) * 0.017450513318181f);
|
||||
// sine = sinf((angle360f - uVar9) * 0.017450513318181f);
|
||||
// xdiff = chrpos.x - target->pos.x;
|
||||
// zdiff = chrpos.z - target->pos.z;
|
||||
//
|
||||
// pos->x = target->pos.x + (xdiff * cosine - zdiff * sine);
|
||||
// pos->y = chrpos.y;
|
||||
// pos->z = target->pos.z + (xdiff * sine + zdiff * cosine);
|
||||
//
|
||||
// propChrGetBbox(chr->prop, &width, &ymax, &ymin);
|
||||
//
|
||||
// // a14
|
||||
// result = func0002d7c0(&chrpos, chr->prop->rooms, pos,
|
||||
// CDTYPE_BG | CDTYPE_OBJS | CDTYPE_DOORS, 1,
|
||||
// ymax - chrpos.y,
|
||||
// ymin - chrpos.y);
|
||||
//
|
||||
// if (result == CDRESULT_COLLISION) {
|
||||
// f32 xdiff;
|
||||
// f32 zdiff;
|
||||
// f32 tmp;
|
||||
// cdGetPos(pos, 18686, "chraction.c");
|
||||
//
|
||||
// xdiff = pos->x - chrpos.x;
|
||||
// zdiff = pos->z - chrpos.z;
|
||||
// tmp = sqrtf(xdiff * xdiff + zdiff * zdiff);
|
||||
// scale = (tmp - 50.0f) / tmp;
|
||||
//
|
||||
// if (scale < 0) {
|
||||
// pos->x = chrpos.x;
|
||||
// pos->y = chrpos.y;
|
||||
// pos->z = chrpos.z;
|
||||
// } else {
|
||||
// pos->x = chrpos.x + xdiff * scale;
|
||||
// pos->y = chrpos.y;
|
||||
// pos->z = chrpos.z + zdiff * scale;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // ac8
|
||||
// if (arg3) {
|
||||
// xdiff2 = chrpos.x - pos->x;
|
||||
// ydiff2 = chrpos.y - pos->y;
|
||||
// zdiff2 = chrpos.z - pos->z;
|
||||
//
|
||||
// saved.x = pos->x;
|
||||
// saved.y = pos->y;
|
||||
// saved.z = pos->z;
|
||||
//
|
||||
// fVar7 = xdiff2 * xdiff2 + ydiff2 * ydiff2 + zdiff2 * zdiff2;
|
||||
//
|
||||
// angle360 = 360 - angle360;
|
||||
// again = true;
|
||||
// arg3 = 0;
|
||||
// } else {
|
||||
// again = false;
|
||||
// }
|
||||
// } while (again);
|
||||
//
|
||||
// if (fVar7 != 0) {
|
||||
// f32 tmp;
|
||||
// xdiff2 = chrpos.x - pos->x;
|
||||
// ydiff2 = chrpos.y - pos->y;
|
||||
// zdiff2 = chrpos.z - pos->z;
|
||||
//
|
||||
// tmp = xdiff2 * xdiff2 + ydiff2 * ydiff2 + zdiff2 * zdiff2;
|
||||
//
|
||||
// if (tmp < fVar7) {
|
||||
// pos->x = saved.x;
|
||||
// pos->y = saved.y;
|
||||
// pos->z = saved.z;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// func0f03abd0(chr, pos, arg4);
|
||||
//
|
||||
// return true;
|
||||
//}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel rebuildTeams
|
||||
/* f04cc04: 27bdffc0 */ addiu $sp,$sp,-64
|
||||
|
|
|
|||
|
|
@ -6074,7 +6074,7 @@ glabel func0f06b488
|
|||
/* f06b4d0: 3c067f1b */ lui $a2,%hi(var7f1a9f88)
|
||||
/* f06b4d4: 24c69f88 */ addiu $a2,$a2,%lo(var7f1a9f88)
|
||||
/* f06b4d8: 27a40020 */ addiu $a0,$sp,0x20
|
||||
/* f06b4dc: 0c0093af */ jal func00024ebc
|
||||
/* f06b4dc: 0c0093af */ jal cdGetPos
|
||||
/* f06b4e0: 24050b5e */ addiu $a1,$zero,0xb5e
|
||||
/* f06b4e4: 8fa2004c */ lw $v0,0x4c($sp)
|
||||
/* f06b4e8: c7a40020 */ lwc1 $f4,0x20($sp)
|
||||
|
|
@ -7965,7 +7965,7 @@ glabel var7f1aa268
|
|||
/* f06cfb4: 3c067f1b */ lui $a2,%hi(var7f1a9f94)
|
||||
/* f06cfb8: 24100001 */ addiu $s0,$zero,0x1
|
||||
/* f06cfbc: 24c69f94 */ addiu $a2,$a2,%lo(var7f1a9f94)
|
||||
/* f06cfc0: 0c0093af */ jal func00024ebc
|
||||
/* f06cfc0: 0c0093af */ jal cdGetPos
|
||||
/* f06cfc4: 240510a1 */ addiu $a1,$zero,0x10a1
|
||||
/* f06cfc8: 0c0093ba */ jal func00024ee8
|
||||
/* f06cfcc: 27a401dc */ addiu $a0,$sp,0x1dc
|
||||
|
|
@ -22322,7 +22322,7 @@ glabel var7f1aa5a8
|
|||
/* f07a308: 27a4013c */ addiu $a0,$sp,0x13c
|
||||
/* f07a30c: 3c067f1b */ lui $a2,%hi(var7f1aa020)
|
||||
/* f07a310: 24c6a020 */ addiu $a2,$a2,%lo(var7f1aa020)
|
||||
/* f07a314: 0c0093af */ jal func00024ebc
|
||||
/* f07a314: 0c0093af */ jal cdGetPos
|
||||
/* f07a318: 24052cc2 */ addiu $a1,$zero,0x2cc2
|
||||
/* f07a31c: 0c0093ac */ jal cdGetObstacle
|
||||
/* f07a320: 00000000 */ nop
|
||||
|
|
@ -22464,7 +22464,7 @@ glabel var7f1aa5a8
|
|||
/* f07a514: 27a4013c */ addiu $a0,$sp,0x13c
|
||||
/* f07a518: 3c067f1b */ lui $a2,%hi(var7f1aa02c)
|
||||
/* f07a51c: 24c6a02c */ addiu $a2,$a2,%lo(var7f1aa02c)
|
||||
/* f07a520: 0c0093af */ jal func00024ebc
|
||||
/* f07a520: 0c0093af */ jal cdGetPos
|
||||
/* f07a524: 24052cf9 */ addiu $a1,$zero,0x2cf9
|
||||
/* f07a528: 0c0093ac */ jal cdGetObstacle
|
||||
/* f07a52c: 00000000 */ nop
|
||||
|
|
@ -22531,7 +22531,7 @@ glabel var7f1aa5a8
|
|||
/* f07a610: 27a4013c */ addiu $a0,$sp,0x13c
|
||||
/* f07a614: 3c067f1b */ lui $a2,%hi(var7f1aa038)
|
||||
/* f07a618: 24c6a038 */ addiu $a2,$a2,%lo(var7f1aa038)
|
||||
/* f07a61c: 0c0093af */ jal func00024ebc
|
||||
/* f07a61c: 0c0093af */ jal cdGetPos
|
||||
/* f07a620: 24052d13 */ addiu $a1,$zero,0x2d13
|
||||
/* f07a624: 24080001 */ addiu $t0,$zero,0x1
|
||||
/* f07a628: afa80148 */ sw $t0,0x148($sp)
|
||||
|
|
@ -24685,7 +24685,7 @@ glabel var7f1aa698
|
|||
/* f07c638: 46104481 */ sub.s $f18,$f8,$f16
|
||||
/* f07c63c: 27a40064 */ addiu $a0,$sp,0x64
|
||||
/* f07c640: 240530a1 */ addiu $a1,$zero,0x30a1
|
||||
/* f07c644: 0c0093af */ jal func00024ebc
|
||||
/* f07c644: 0c0093af */ jal cdGetPos
|
||||
/* f07c648: e632000c */ swc1 $f18,0xc($s1)
|
||||
/* f07c64c: 3c0141a0 */ lui $at,0x41a0
|
||||
/* f07c650: 44813000 */ mtc1 $at,$f6
|
||||
|
|
@ -48036,7 +48036,7 @@ glabel var7f1ab214
|
|||
/* f091884: afaa01fc */ sw $t2,0x1fc($sp)
|
||||
/* f091888: 24c6a1c0 */ addiu $a2,$a2,%lo(var7f1aa1c0)
|
||||
/* f09188c: 27a401f0 */ addiu $a0,$sp,0x1f0
|
||||
/* f091890: 0c0093af */ jal func00024ebc
|
||||
/* f091890: 0c0093af */ jal cdGetPos
|
||||
/* f091894: 24055fa2 */ addiu $a1,$zero,0x5fa2
|
||||
/* f091898: 0c0093ac */ jal cdGetObstacle
|
||||
/* f09189c: 00000000 */ nop
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ bool chrTryAttackRun(struct chrdata *chr);
|
|||
bool chrTryAttackRoll(struct chrdata *chr);
|
||||
bool chrTryAttackAmount(struct chrdata *chr, u32 arg1, u32 arg2, u8 arg3, u8 arg4);
|
||||
bool chrGoToPad(struct chrdata *chr, s32 padnum, u32 speed);
|
||||
u32 func0f03abd0(void);
|
||||
void func0f03abd0(struct chrdata *chr, struct coord *pos, s32 arg2);
|
||||
s32 func0f03aca0(struct chrdata *chr, f32 arg1, u8 arg2);
|
||||
bool chrTryRunFromTarget(struct chrdata *chr);
|
||||
u32 func0f03b1e0(struct chrdata *chr);
|
||||
|
|
@ -202,7 +202,7 @@ s32 func0f04ba34(struct chrdata *chr, u16 arg1, u32 arg2);
|
|||
u32 func0f04bffc(struct chrdata *chr, s32 arg1, s32 arg2);
|
||||
bool chrRunFromPos(struct chrdata *chr, u32 speed, f32 distance, struct coord *frompos);
|
||||
f32 func0f04c784(struct chrdata *chr);
|
||||
void func0f04c874(struct chrdata *chr, u32 flags, struct coord *pos, s32 arg3, s32 arg4);
|
||||
bool func0f04c874(struct chrdata *chr, u32 angle360, struct coord *pos, u8 arg3, u8 arg4);
|
||||
u32 rebuildTeams(void);
|
||||
u32 rebuildSquadrons(void);
|
||||
u32 func0f04d000(struct chrdata *chr);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ void func00024e4c(struct coord *arg0, struct coord *arg1, u32 line, char *file);
|
|||
f32 func00024e98(void);
|
||||
u32 func00024ea4(void);
|
||||
struct prop *cdGetObstacle(void);
|
||||
void func00024ebc(struct coord *pos, u32 line, char *file);
|
||||
void cdGetPos(struct coord *pos, u32 line, char *file);
|
||||
u32 func00024ee8(void);
|
||||
u32 func00024f10(void);
|
||||
void func00024f6c(void);
|
||||
|
|
|
|||
|
|
@ -1926,7 +1926,7 @@ struct prop *cdGetObstacle(void)
|
|||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func00024ebc
|
||||
glabel cdGetPos
|
||||
/* 24ebc: 3c02800a */ lui $v0,%hi(var8009a8e0)
|
||||
/* 24ec0: 2442a8e0 */ addiu $v0,$v0,%lo(var8009a8e0)
|
||||
/* 24ec4: c4440000 */ lwc1 $f4,0x0($v0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue