mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-30 23:54:40 -04:00
Decompile chrGetInverseTheta
This commit is contained in:
+4
-4
@@ -2919,7 +2919,7 @@ glabel var7f1a879c
|
||||
/* f021570: 1702006d */ bne $t8,$v0,.L0f021728
|
||||
/* f021574: 00000000 */ nop
|
||||
/* f021578: 00c02025 */ or $a0,$a2,$zero
|
||||
/* f02157c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f02157c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f021580: afa70158 */ sw $a3,0x158($sp)
|
||||
/* f021584: 8fa70158 */ lw $a3,0x158($sp)
|
||||
/* f021588: 24010001 */ addiu $at,$zero,0x1
|
||||
@@ -5329,7 +5329,7 @@ glabel var7f1a87d8
|
||||
/* f023dd0: 24010006 */ addiu $at,$zero,0x6
|
||||
/* f023dd4: 5301001e */ beql $t8,$at,.L0f023e50
|
||||
/* f023dd8: 8faf0250 */ lw $t7,0x250($sp)
|
||||
/* f023ddc: 0fc0f917 */ jal func0f03e45c
|
||||
/* f023ddc: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f023de0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f023de4: e7a0018c */ swc1 $f0,0x18c($sp)
|
||||
/* f023de8: 0c0068f7 */ jal sinf
|
||||
@@ -5375,7 +5375,7 @@ glabel var7f1a87d8
|
||||
/* f023e80: 8c6e01b0 */ lw $t6,0x1b0($v1)
|
||||
/* f023e84: 15c10034 */ bne $t6,$at,.L0f023f58
|
||||
/* f023e88: 00000000 */ nop
|
||||
/* f023e8c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f023e8c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f023e90: afa30188 */ sw $v1,0x188($sp)
|
||||
/* f023e94: 8fa30188 */ lw $v1,0x188($sp)
|
||||
/* f023e98: e7a00178 */ swc1 $f0,0x178($sp)
|
||||
@@ -7460,7 +7460,7 @@ glabel var7f1a8900
|
||||
.L0f025da4:
|
||||
/* f025da4: 02002025 */ or $a0,$s0,$zero
|
||||
/* f025da8: afa30058 */ sw $v1,0x58($sp)
|
||||
/* f025dac: 0fc0f917 */ jal func0f03e45c
|
||||
/* f025dac: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f025db0: e7a20050 */ swc1 $f2,0x50($sp)
|
||||
/* f025db4: 8fad0120 */ lw $t5,0x120($sp)
|
||||
/* f025db8: 8fa30058 */ lw $v1,0x58($sp)
|
||||
|
||||
+46
-91
@@ -201,7 +201,7 @@ glabel var7f1a8cfc
|
||||
/* f02e300: c4288cf8 */ lwc1 $f8,%lo(var7f1a8cf8)($at)
|
||||
/* f02e304: 468021a0 */ cvt.s.w $f6,$f4
|
||||
/* f02e308: 46083302 */ mul.s $f12,$f6,$f8
|
||||
/* f02e30c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f02e30c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f02e310: e7ac0020 */ swc1 $f12,0x20($sp)
|
||||
/* f02e314: c7ac0020 */ lwc1 $f12,0x20($sp)
|
||||
/* f02e318: 44805000 */ mtc1 $zero,$f10
|
||||
@@ -3159,7 +3159,7 @@ glabel var7f1a8d44
|
||||
/* f032080: 9219032f */ lbu $t9,0x32f($s0)
|
||||
/* f032084: 17200068 */ bnez $t9,.L0f032228
|
||||
/* f032088: 00000000 */ nop
|
||||
/* f03208c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f03208c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f032090: 02002025 */ or $a0,$s0,$zero
|
||||
/* f032094: 3c017f1b */ lui $at,%hi(var7f1a8d2c)
|
||||
/* f032098: c4308d2c */ lwc1 $f16,%lo(var7f1a8d2c)($at)
|
||||
@@ -4421,7 +4421,7 @@ glabel var7f1a8d5c
|
||||
/* f033284: 02002025 */ or $a0,$s0,$zero
|
||||
/* f033288: afa20058 */ sw $v0,0x58($sp)
|
||||
/* f03328c: afa50064 */ sw $a1,0x64($sp)
|
||||
/* f033290: 0fc0f917 */ jal func0f03e45c
|
||||
/* f033290: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f033294: afa7002c */ sw $a3,0x2c($sp)
|
||||
/* f033298: 8fa20058 */ lw $v0,0x58($sp)
|
||||
/* f03329c: 8fa50064 */ lw $a1,0x64($sp)
|
||||
@@ -8156,7 +8156,7 @@ bool chrCanRollInDirection(struct chrdata *chr, bool side, f32 distance)
|
||||
|
||||
void chrGetSideVector(struct chrdata *chr, bool side, struct coord *vector)
|
||||
{
|
||||
f32 angle = func0f03e45c(chr);
|
||||
f32 angle = chrGetInverseTheta(chr);
|
||||
|
||||
if (side) {
|
||||
vector->x = cosf(angle);
|
||||
@@ -10277,7 +10277,7 @@ glabel var7f1a8ddc
|
||||
/* f03947c: afb00018 */ sw $s0,0x18($sp)
|
||||
/* f039480: 00808025 */ or $s0,$a0,$zero
|
||||
/* f039484: afa5002c */ sw $a1,0x2c($sp)
|
||||
/* f039488: 0fc0f917 */ jal func0f03e45c
|
||||
/* f039488: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f03948c: afa60030 */ sw $a2,0x30($sp)
|
||||
/* f039490: 8fa3002c */ lw $v1,0x2c($sp)
|
||||
/* f039494: 8e02001c */ lw $v0,0x1c($s0)
|
||||
@@ -10406,7 +10406,7 @@ bool chrCheckTargetInSight(struct chrdata *chr)
|
||||
struct prop *prop = chr->prop;
|
||||
struct prop *target = chrGetTargetProp(chr);
|
||||
f32 sqdistance;
|
||||
f32 fVar5 = func0f03e45c(chr);
|
||||
f32 fVar5 = chrGetInverseTheta(chr);
|
||||
|
||||
f32 x = target->pos.x - prop->pos.x;
|
||||
f32 y = target->pos.y - prop->pos.y;
|
||||
@@ -10513,7 +10513,7 @@ bool chrTrySidestep(struct chrdata *chr)
|
||||
&& chrIsReadyForOrders(chr)) {
|
||||
struct prop *prop = chr->prop;
|
||||
struct prop *target = chrGetTargetProp(chr);
|
||||
f32 a = func0f03e45c(chr);
|
||||
f32 a = chrGetInverseTheta(chr);
|
||||
f32 b = func0f096750(target->pos.x - prop->pos.x, target->pos.z - prop->pos.z);
|
||||
f32 angle = b - a;
|
||||
u32 stack[2];
|
||||
@@ -10547,7 +10547,7 @@ bool chrTryJumpOut(struct chrdata *chr)
|
||||
struct prop *prop = chr->prop;
|
||||
struct prop *target = chrGetTargetProp(chr);
|
||||
|
||||
f32 a = func0f03e45c(chr);
|
||||
f32 a = chrGetInverseTheta(chr);
|
||||
f32 b = func0f096750(target->pos.x - prop->pos.x, target->pos.z - prop->pos.z);
|
||||
f32 angle = b - a;
|
||||
u32 stack[2];
|
||||
@@ -12605,7 +12605,7 @@ glabel var7f1a8f08
|
||||
/* f03c59c: 01f8c823 */ subu $t9,$t7,$t8
|
||||
/* f03c5a0: 072100bf */ bgez $t9,.L0f03c8a0
|
||||
/* f03c5a4: ae190044 */ sw $t9,0x44($s0)
|
||||
/* f03c5a8: 0fc0f917 */ jal func0f03e45c
|
||||
/* f03c5a8: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f03c5ac: 02002025 */ or $a0,$s0,$zero
|
||||
/* f03c5b0: 3c017f1b */ lui $at,%hi(var7f1a8eec)
|
||||
/* f03c5b4: e7a00070 */ swc1 $f0,0x70($sp)
|
||||
@@ -12899,7 +12899,7 @@ void chrTickSurrender(struct chrdata *chr)
|
||||
|
||||
if (modelGetAnimNum(model) == ANIM_SURRENDER_002F && modelGetCurAnimFrame(model) >= 80.0f) {
|
||||
struct coord coord = {0, 0, 0};
|
||||
f32 value = func0f03e45c(chr);
|
||||
f32 value = chrGetInverseTheta(chr);
|
||||
coord.x = -sinf(value);
|
||||
coord.z = -cosf(value);
|
||||
|
||||
@@ -13709,75 +13709,30 @@ glabel func0f03e29c
|
||||
/* f03e458: 00000000 */ nop
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f03e45c
|
||||
.late_rodata
|
||||
glabel var7f1a8f20
|
||||
.word 0x40c907a9
|
||||
glabel var7f1a8f24
|
||||
.word 0x3c8ef461
|
||||
.text
|
||||
/* f03e45c: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* f03e460: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f03e464: 8c8202d4 */ lw $v0,0x2d4($a0)
|
||||
/* f03e468: 00802825 */ or $a1,$a0,$zero
|
||||
/* f03e46c: 50400004 */ beqzl $v0,.L0f03e480
|
||||
/* f03e470: 8ca60020 */ lw $a2,0x20($a1)
|
||||
/* f03e474: 1000002c */ b .L0f03e528
|
||||
/* f03e478: c44000b0 */ lwc1 $f0,0xb0($v0)
|
||||
/* f03e47c: 8ca60020 */ lw $a2,0x20($a1)
|
||||
.L0f03e480:
|
||||
/* f03e480: 14c00027 */ bnez $a2,.L0f03e520
|
||||
/* f03e484: 00000000 */ nop
|
||||
/* f03e488: 8ca4001c */ lw $a0,0x1c($a1)
|
||||
/* f03e48c: 10800024 */ beqz $a0,.L0f03e520
|
||||
/* f03e490: 00000000 */ nop
|
||||
/* f03e494: 908e0000 */ lbu $t6,0x0($a0)
|
||||
/* f03e498: 24010006 */ addiu $at,$zero,0x6
|
||||
/* f03e49c: 15c10020 */ bne $t6,$at,.L0f03e520
|
||||
/* f03e4a0: 00000000 */ nop
|
||||
/* f03e4a4: 0fc4a25f */ jal propGetPlayerNum
|
||||
/* f03e4a8: 00000000 */ nop
|
||||
/* f03e4ac: 00027880 */ sll $t7,$v0,0x2
|
||||
/* f03e4b0: 3c03800a */ lui $v1,%hi(g_Vars+0x64)
|
||||
/* f03e4b4: 006f1821 */ addu $v1,$v1,$t7
|
||||
/* f03e4b8: 8c63a024 */ lw $v1,%lo(g_Vars+0x64)($v1)
|
||||
/* f03e4bc: 3c017f1b */ lui $at,%hi(var7f1a8f20)
|
||||
/* f03e4c0: c4208f20 */ lwc1 $f0,%lo(var7f1a8f20)($at)
|
||||
/* f03e4c4: 3c0143b4 */ lui $at,0x43b4
|
||||
/* f03e4c8: 44812000 */ mtc1 $at,$f4
|
||||
/* f03e4cc: c4660144 */ lwc1 $f6,0x144($v1)
|
||||
/* f03e4d0: 3c017f1b */ lui $at,%hi(var7f1a8f24)
|
||||
/* f03e4d4: c42a8f24 */ lwc1 $f10,%lo(var7f1a8f24)($at)
|
||||
/* f03e4d8: 46062201 */ sub.s $f8,$f4,$f6
|
||||
/* f03e4dc: 460a4082 */ mul.s $f2,$f8,$f10
|
||||
/* f03e4e0: 4602003e */ c.le.s $f0,$f2
|
||||
/* f03e4e4: 00000000 */ nop
|
||||
/* f03e4e8: 45020005 */ bc1fl .L0f03e500
|
||||
/* f03e4ec: 44808000 */ mtc1 $zero,$f16
|
||||
/* f03e4f0: 46001081 */ sub.s $f2,$f2,$f0
|
||||
/* f03e4f4: 1000000c */ b .L0f03e528
|
||||
/* f03e4f8: 46001006 */ mov.s $f0,$f2
|
||||
/* f03e4fc: 44808000 */ mtc1 $zero,$f16
|
||||
.L0f03e500:
|
||||
/* f03e500: 00000000 */ nop
|
||||
/* f03e504: 4610103c */ c.lt.s $f2,$f16
|
||||
/* f03e508: 00000000 */ nop
|
||||
/* f03e50c: 45000002 */ bc1f .L0f03e518
|
||||
/* f03e510: 00000000 */ nop
|
||||
/* f03e514: 46001080 */ add.s $f2,$f2,$f0
|
||||
.L0f03e518:
|
||||
/* f03e518: 10000003 */ b .L0f03e528
|
||||
/* f03e51c: 46001006 */ mov.s $f0,$f2
|
||||
.L0f03e520:
|
||||
/* f03e520: 0c006b91 */ jal func0001ae44
|
||||
/* f03e524: 00c02025 */ or $a0,$a2,$zero
|
||||
.L0f03e528:
|
||||
/* f03e528: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f03e52c: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* f03e530: 03e00008 */ jr $ra
|
||||
/* f03e534: 00000000 */ nop
|
||||
);
|
||||
/**
|
||||
* Returns the chr's turn angle difference to 360 degrees, in radians.
|
||||
*/
|
||||
f32 chrGetInverseTheta(struct chrdata *chr)
|
||||
{
|
||||
if (chr->aibot) {
|
||||
return chr->aibot->unk0b0;
|
||||
}
|
||||
|
||||
if (chr->model == NULL && chr->prop && chr->prop->type == PROPTYPE_PLAYER) {
|
||||
struct player *player = g_Vars.players[propGetPlayerNum(chr->prop)];
|
||||
f32 angle = (360.0f - player->vv_theta) * 0.017450513318181f;
|
||||
|
||||
if (angle >= M_BADTAU) {
|
||||
angle -= M_BADTAU;
|
||||
} else if (angle < 0) {
|
||||
angle += M_BADTAU;
|
||||
}
|
||||
|
||||
return angle;
|
||||
}
|
||||
|
||||
return func0001ae44(chr->model);
|
||||
}
|
||||
|
||||
void func0f03e538(struct chrdata *chr, f32 arg1)
|
||||
{
|
||||
@@ -13816,7 +13771,7 @@ glabel var7f1a8f2c
|
||||
.text
|
||||
/* f03e5f0: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f03e5f4: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f03e5f8: 0fc0f917 */ jal func0f03e45c
|
||||
/* f03e5f8: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f03e5fc: afa40020 */ sw $a0,0x20($sp)
|
||||
/* f03e600: 8fa50020 */ lw $a1,0x20($sp)
|
||||
/* f03e604: 3c017f1b */ lui $at,%hi(var7f1a8f28)
|
||||
@@ -13952,7 +13907,7 @@ glabel var7f1a8f40
|
||||
/* f03e7b0: 0c00745f */ jal modelGetCurAnimFrame
|
||||
/* f03e7b4: afa40034 */ sw $a0,0x34($sp)
|
||||
/* f03e7b8: e7a00030 */ swc1 $f0,0x30($sp)
|
||||
/* f03e7bc: 0fc0f917 */ jal func0f03e45c
|
||||
/* f03e7bc: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f03e7c0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f03e7c4: 3c017f1b */ lui $at,%hi(var7f1a8f34)
|
||||
/* f03e7c8: c4248f34 */ lwc1 $f4,%lo(var7f1a8f34)($at)
|
||||
@@ -18799,7 +18754,7 @@ glabel var7f1a91dc
|
||||
/* f042a8c: 0fc0a221 */ jal chrGetTargetProp
|
||||
/* f042a90: 4600e686 */ mov.s $f26,$f28
|
||||
/* f042a94: 0040f025 */ or $s8,$v0,$zero
|
||||
/* f042a98: 0fc0f917 */ jal func0f03e45c
|
||||
/* f042a98: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f042a9c: 02402025 */ or $a0,$s2,$zero
|
||||
/* f042aa0: 3c053dae */ lui $a1,0x3dae
|
||||
/* f042aa4: 44060000 */ mfc1 $a2,$f0
|
||||
@@ -23451,7 +23406,7 @@ bool chrStartSkJump(struct chrdata *chr, u8 arg1, u8 arg2, s32 arg3, u8 arg4)
|
||||
|
||||
chr->act_skjump.xspeed = diffs[0] / hspeed;
|
||||
chr->act_skjump.zspeed = diffs[1] / hspeed;
|
||||
chr->act_skjump.angle = func0f03e45c(chr) + chrGetAngleToPos(chr, &target->pos);
|
||||
chr->act_skjump.angle = chrGetInverseTheta(chr) + chrGetAngleToPos(chr, &target->pos);
|
||||
chr->act_skjump.hit = false;
|
||||
chr->act_skjump.unk03c = hspeed;
|
||||
chr->act_skjump.unk04c = hspeed;
|
||||
@@ -23501,7 +23456,7 @@ void chrTickSkJump(struct chrdata *chr)
|
||||
|
||||
switch (chr->act_skjump.state) {
|
||||
case SKJUMPSTATE_TAKEOFF:
|
||||
fVar6 = func0f03e45c(chr);
|
||||
fVar6 = chrGetInverseTheta(chr);
|
||||
fVar5 = func0001afe8(fVar6, chr->act_skjump.angle, 0.35);
|
||||
func0f03e538(chr, fVar5);
|
||||
frame = modelGetCurAnimFrame(chr->model);
|
||||
@@ -24205,7 +24160,7 @@ f32 chrGetAngleToPos(struct chrdata *chr, struct coord *pos)
|
||||
u32 playernum = propGetPlayerNum(chr->prop);
|
||||
fVar3 = (360 - g_Vars.players[playernum]->vv_theta) * (M_BADTAU / 360);
|
||||
} else {
|
||||
fVar3 = func0f03e45c(chr);
|
||||
fVar3 = chrGetInverseTheta(chr);
|
||||
}
|
||||
|
||||
prop = chr->prop;
|
||||
@@ -24379,7 +24334,7 @@ glabel var7f1a9334
|
||||
/* f048d7c: 54410007 */ bnel $v0,$at,.L0f048d9c
|
||||
/* f048d80: 4602603c */ c.lt.s $f12,$f2
|
||||
/* f048d84: 8ca40004 */ lw $a0,0x4($a1)
|
||||
/* f048d88: 0fc0f917 */ jal func0f03e45c
|
||||
/* f048d88: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f048d8c: e7ac0020 */ swc1 $f12,0x20($sp)
|
||||
/* f048d90: c7ac0020 */ lwc1 $f12,0x20($sp)
|
||||
/* f048d94: 46000086 */ mov.s $f2,$f0
|
||||
@@ -24488,7 +24443,7 @@ f32 func0f048fcc(struct chrdata *chr, u8 arg1)
|
||||
f32 zdiff = chrprop->pos.z - targetprop->pos.z;
|
||||
|
||||
f32 angle1 = func0f096750(-xdiff, -zdiff);
|
||||
f32 angle2 = func0f03e45c(chr) + M_PI * (s32)arg1;
|
||||
f32 angle2 = chrGetInverseTheta(chr) + M_PI * (s32)arg1;
|
||||
|
||||
result = angle1 - angle2;
|
||||
|
||||
@@ -25468,7 +25423,7 @@ glabel func0f04a4ec
|
||||
/* f04a620: 1000000f */ b .L0f04a660
|
||||
/* f04a624: a6390128 */ sh $t9,0x128($s1)
|
||||
.L0f04a628:
|
||||
/* f04a628: 0fc0f917 */ jal func0f03e45c
|
||||
/* f04a628: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f04a62c: 02202025 */ or $a0,$s1,$zero
|
||||
/* f04a630: 8e22001c */ lw $v0,0x1c($s1)
|
||||
/* f04a634: 44060000 */ mfc1 $a2,$f0
|
||||
@@ -25543,7 +25498,7 @@ glabel var7f1a9400
|
||||
/* f04a714: 24010003 */ addiu $at,$zero,0x3
|
||||
/* f04a718: 54610005 */ bnel $v1,$at,.L0f04a730
|
||||
/* f04a71c: 44061000 */ mfc1 $a2,$f2
|
||||
/* f04a720: 0fc0f917 */ jal func0f03e45c
|
||||
/* f04a720: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f04a724: 8e040004 */ lw $a0,0x4($s0)
|
||||
/* f04a728: 46000086 */ mov.s $f2,$f0
|
||||
.L0f04a72c:
|
||||
@@ -26383,7 +26338,7 @@ struct prop *chrSpawnAtChr(struct chrdata *basechr, s32 body, s32 head, u32 chrn
|
||||
f32 fvalue;
|
||||
|
||||
if (1) {
|
||||
fvalue = func0f03e45c(chr);
|
||||
fvalue = chrGetInverseTheta(chr);
|
||||
}
|
||||
|
||||
return chrSpawnAtCoord(body, head, &chr->prop->pos, chr->prop->rooms, fvalue, ailist, flags);
|
||||
@@ -27221,7 +27176,7 @@ glabel var7f1a9428
|
||||
/* f04c7a8: 14610007 */ bne $v1,$at,.L0f04c7c8
|
||||
/* f04c7ac: 00402825 */ or $a1,$v0,$zero
|
||||
/* f04c7b0: 8c440004 */ lw $a0,0x4($v0)
|
||||
/* f04c7b4: 0fc0f917 */ jal func0f03e45c
|
||||
/* f04c7b4: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f04c7b8: afa2001c */ sw $v0,0x1c($sp)
|
||||
/* f04c7bc: 8fa5001c */ lw $a1,0x1c($sp)
|
||||
/* f04c7c0: 1000000c */ b .L0f04c7f4
|
||||
|
||||
@@ -5337,7 +5337,7 @@ bool aiChrMoveToPad(void)
|
||||
chr2 = chrFindById(g_Vars.chrdata, cmd[4]);
|
||||
|
||||
if (chr2 && chr2->prop) {
|
||||
somefloat = func0f03e45c(chr2);
|
||||
somefloat = chrGetInverseTheta(chr2);
|
||||
pass = chrMoveToPos(chr, &chr2->prop->pos, chr2->prop->rooms, somefloat, 0);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -2006,7 +2006,7 @@ glabel func0f0b7c60
|
||||
/* f0b7ca8: ac4a0014 */ sw $t2,0x14($v0)
|
||||
/* f0b7cac: c4840024 */ lwc1 $f4,0x24($a0)
|
||||
/* f0b7cb0: e4440024 */ swc1 $f4,0x24($v0)
|
||||
/* f0b7cb4: 0fc0f917 */ jal func0f03e45c
|
||||
/* f0b7cb4: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f0b7cb8: afa2003c */ sw $v0,0x3c($sp)
|
||||
/* f0b7cbc: 8e02001c */ lw $v0,0x1c($s0)
|
||||
/* f0b7cc0: 44070000 */ mfc1 $a3,$f0
|
||||
@@ -13862,7 +13862,7 @@ glabel var7f1ad710
|
||||
/* f0c24e0: 46008482 */ mul.s $f18,$f16,$f0
|
||||
/* f0c24e4: e7aa00a0 */ swc1 $f10,0xa0($sp)
|
||||
/* f0c24e8: 46049180 */ add.s $f6,$f18,$f4
|
||||
/* f0c24ec: 0fc0f917 */ jal func0f03e45c
|
||||
/* f0c24ec: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f0c24f0: e7a600a4 */ swc1 $f6,0xa4($sp)
|
||||
/* f0c24f4: 3c017f1b */ lui $at,%hi(var7f1ad700)
|
||||
/* f0c24f8: c422d700 */ lwc1 $f2,%lo(var7f1ad700)($at)
|
||||
@@ -13885,7 +13885,7 @@ glabel var7f1ad710
|
||||
/* f0c2538: e7a800a0 */ swc1 $f8,0xa0($sp)
|
||||
/* f0c253c: 8e3800bc */ lw $t8,0xbc($s1)
|
||||
/* f0c2540: c70a0010 */ lwc1 $f10,0x10($t8)
|
||||
/* f0c2544: 0fc0f917 */ jal func0f03e45c
|
||||
/* f0c2544: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f0c2548: e7aa00a4 */ swc1 $f10,0xa4($sp)
|
||||
/* f0c254c: 3c017f1b */ lui $at,%hi(var7f1ad704)
|
||||
/* f0c2550: c422d704 */ lwc1 $f2,%lo(var7f1ad704)($at)
|
||||
|
||||
@@ -3447,7 +3447,7 @@ glabel var7f1b8960
|
||||
/* f1835f8: 26310008 */ addiu $s1,$s1,0x8
|
||||
/* f1835fc: 8e90001c */ lw $s0,0x1c($s4)
|
||||
/* f183600: 02802025 */ or $a0,$s4,$zero
|
||||
/* f183604: 0fc0f917 */ jal func0f03e45c
|
||||
/* f183604: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f183608: 26100008 */ addiu $s0,$s0,0x8
|
||||
/* f18360c: 3c017f1c */ lui $at,%hi(var7f1b8958)
|
||||
/* f183610: c4268958 */ lwc1 $f6,%lo(var7f1b8958)($at)
|
||||
|
||||
@@ -1248,7 +1248,7 @@ glabel var7f1b8eb4
|
||||
/* f191474: 10000048 */ b .L0f191598
|
||||
/* f191478: 00001025 */ or $v0,$zero,$zero
|
||||
.L0f19147c:
|
||||
/* f19147c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f19147c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f191480: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191484: 46000506 */ mov.s $f20,$f0
|
||||
/* f191488: 0fc0f95e */ jal func0f03e578
|
||||
@@ -1297,7 +1297,7 @@ glabel var7f1b8eb4
|
||||
/* f191530: 8fa70044 */ lw $a3,0x44($sp)
|
||||
/* f191534: 0fc30a96 */ jal func0f0c2a58
|
||||
/* f191538: e7b00010 */ swc1 $f16,0x10($sp)
|
||||
/* f19153c: 0fc0f917 */ jal func0f03e45c
|
||||
/* f19153c: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f191540: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191544: c61200a8 */ lwc1 $f18,0xa8($s0)
|
||||
/* f191548: 44802000 */ mtc1 $zero,$f4
|
||||
@@ -1654,14 +1654,14 @@ glabel var7f1b8ef0
|
||||
/* f1919f0: a62002d8 */ sh $zero,0x2d8($s1)
|
||||
/* f1919f4: a22002ff */ sb $zero,0x2ff($s1)
|
||||
.L0f1919f8:
|
||||
/* f1919f8: 0fc0f917 */ jal func0f03e45c
|
||||
/* f1919f8: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f1919fc: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191a00: e7a00044 */ swc1 $f0,0x44($sp)
|
||||
/* f191a04: 0fc0e6a5 */ jal chrIsDead
|
||||
/* f191a08: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191a0c: 50400006 */ beqzl $v0,.L0f191a28
|
||||
/* f191a10: 8e0c0044 */ lw $t4,0x44($s0)
|
||||
/* f191a14: 0fc0f917 */ jal func0f03e45c
|
||||
/* f191a14: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f191a18: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191a1c: 1000005b */ b .L0f191b8c
|
||||
/* f191a20: 46000086 */ mov.s $f2,$f0
|
||||
@@ -1670,7 +1670,7 @@ glabel var7f1b8ef0
|
||||
/* f191a28: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191a2c: 11800005 */ beqz $t4,.L0f191a44
|
||||
/* f191a30: 00000000 */ nop
|
||||
/* f191a34: 0fc0f917 */ jal func0f03e45c
|
||||
/* f191a34: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f191a38: 02202025 */ or $a0,$s1,$zero
|
||||
/* f191a3c: 10000053 */ b .L0f191b8c
|
||||
/* f191a40: 46000086 */ mov.s $f2,$f0
|
||||
@@ -1737,7 +1737,7 @@ glabel var7f1b8ef0
|
||||
/* f191b28: 24010033 */ addiu $at,$zero,0x33
|
||||
/* f191b2c: 3c04800b */ lui $a0,%hi(g_MpPlayerChrs)
|
||||
/* f191b30: 00832021 */ addu $a0,$a0,$v1
|
||||
/* f191b34: 0fc0f917 */ jal func0f03e45c
|
||||
/* f191b34: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f191b38: 8c84c4d0 */ lw $a0,%lo(g_MpPlayerChrs)($a0)
|
||||
/* f191b3c: 10000013 */ b .L0f191b8c
|
||||
/* f191b40: 46000086 */ mov.s $f2,$f0
|
||||
|
||||
@@ -396,11 +396,11 @@ void mpAibotApplyCommand(struct chrdata *chr, u32 command)
|
||||
mpAibotApplyProtect(chr, g_Vars.currentplayer->prop);
|
||||
break;
|
||||
case AIBOTCMD_DEFEND:
|
||||
value = func0f03e45c(g_Vars.currentplayer->prop->chr);
|
||||
value = chrGetInverseTheta(g_Vars.currentplayer->prop->chr);
|
||||
mpAibotApplyDefend(chr, &g_Vars.currentplayer->prop->pos, g_Vars.currentplayer->prop->rooms, value);
|
||||
break;
|
||||
case AIBOTCMD_HOLD:
|
||||
value = func0f03e45c(g_Vars.currentplayer->prop->chr);
|
||||
value = chrGetInverseTheta(g_Vars.currentplayer->prop->chr);
|
||||
mpAibotApplyHold(chr, &g_Vars.currentplayer->prop->pos, g_Vars.currentplayer->prop->rooms, value);
|
||||
break;
|
||||
default:
|
||||
|
||||
+3
-3
@@ -33203,7 +33203,7 @@ glabel var7f1aa978
|
||||
/* f083394: 8f010008 */ lw $at,0x8($t8)
|
||||
/* f083398: add90004 */ sw $t9,0x4($t6)
|
||||
/* f08339c: adc10008 */ sw $at,0x8($t6)
|
||||
/* f0833a0: 0fc0f917 */ jal func0f03e45c
|
||||
/* f0833a0: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f0833a4: afa600cc */ sw $a2,0xcc($sp)
|
||||
/* f0833a8: e7a0008c */ swc1 $f0,0x8c($sp)
|
||||
/* f0833ac: 0c0068f7 */ jal sinf
|
||||
@@ -33319,7 +33319,7 @@ glabel var7f1aa978
|
||||
/* f08354c: ad6e0004 */ sw $t6,0x4($t3)
|
||||
/* f083550: ad610008 */ sw $at,0x8($t3)
|
||||
/* f083554: afa600cc */ sw $a2,0xcc($sp)
|
||||
/* f083558: 0fc0f917 */ jal func0f03e45c
|
||||
/* f083558: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f08355c: afa40088 */ sw $a0,0x88($sp)
|
||||
/* f083560: 8fa40088 */ lw $a0,0x88($sp)
|
||||
/* f083564: e7a00078 */ swc1 $f0,0x78($sp)
|
||||
@@ -46151,7 +46151,7 @@ glabel var7f1ab17c
|
||||
/* f08f57c: 8c850004 */ lw $a1,0x4($a0)
|
||||
/* f08f580: 10a00008 */ beqz $a1,.L0f08f5a4
|
||||
/* f08f584: 00a02025 */ or $a0,$a1,$zero
|
||||
/* f08f588: 0fc0f917 */ jal func0f03e45c
|
||||
/* f08f588: 0fc0f917 */ jal chrGetInverseTheta
|
||||
/* f08f58c: e7a2001c */ swc1 $f2,0x1c($sp)
|
||||
/* f08f590: c7a2001c */ lwc1 $f2,0x1c($sp)
|
||||
/* f08f594: 3c017f1b */ lui $at,%hi(var7f1ab174)
|
||||
|
||||
@@ -124,7 +124,7 @@ void chrTickJumpOut(struct chrdata *chr);
|
||||
void chrTickStartAlarm(struct chrdata *chr);
|
||||
void chrTickSurprised(struct chrdata *chr);
|
||||
void func0f03e29c(struct chrdata *chr, s32 arg1, s32 arg2, s32 arg3, struct coord *arg4, struct coord *arg5);
|
||||
f32 func0f03e45c(struct chrdata *chr);
|
||||
f32 chrGetInverseTheta(struct chrdata *chr);
|
||||
f32 func0f03e5f0(struct chrdata *chr);
|
||||
f32 func0f03e754(struct chrdata *chr);
|
||||
void func0f03e788(struct chrdata *chr, s32 arg1, f32 arg2, f32 arg3, f32 arg4);
|
||||
|
||||
+2
-2
@@ -434,7 +434,7 @@ struct aibot {
|
||||
/*0x0a4*/ f32 unk0a4;
|
||||
/*0x0a8*/ f32 unk0a8;
|
||||
/*0x0ac*/ f32 unk0ac;
|
||||
/*0x0b0*/ f32 unk0b0;
|
||||
/*0x0b0*/ f32 unk0b0; // likely to be the turn angle to 360 degrees, in radians
|
||||
/*0x0b4*/ f32 unk0b4;
|
||||
/*0x0b8*/ f32 unk0b8;
|
||||
/*0x0bc*/ s32 unk0bc;
|
||||
@@ -2240,7 +2240,7 @@ struct player {
|
||||
/*0x013c*/ struct prop *autoxaimprop;
|
||||
/*0x0140*/ s32 autoxaimtime60;
|
||||
|
||||
/*0x0144*/ f32 vv_theta; // turn angle
|
||||
/*0x0144*/ f32 vv_theta; // turn angle in degrees
|
||||
/*0x0148*/ f32 speedtheta; // turn speed
|
||||
/*0x014c*/ f32 vv_costheta;
|
||||
/*0x0150*/ f32 vv_sintheta;
|
||||
|
||||
Reference in New Issue
Block a user