mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-31 07:56:03 -04:00
Decompile modelSetAnimSpeed
This commit is contained in:
+15
-15
@@ -9341,7 +9341,7 @@ void chrGoPosChooseAnimation(struct chrdata *chr)
|
||||
modelSetAnimation(chr->model, anim, flip, 0, sp64, sp60);
|
||||
|
||||
if (animspeed > 0) {
|
||||
func0001deb0(chr->model, animspeed, startframe);
|
||||
modelSetAnimSpeed(chr->model, animspeed, startframe);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13192,7 +13192,7 @@ void chrTickDie(struct chrdata *chr)
|
||||
if (modelGetCurAnimFrame(model) >= func0001d1a0(model)) {
|
||||
if (CHRRACE(chr) == RACE_HUMAN && modelGetAnimNum(model) == ANIM_DEATH_STOMACH_LONG) {
|
||||
modelSetAnimation(model, ANIM_003C, !modelIsFlipped(model), 50, 0.3, animGetNumFrames(ANIM_003C) - 51.0f);
|
||||
func0001deb0(model, 0.5, animGetNumFrames(ANIM_003C) - 51.0f);
|
||||
modelSetAnimSpeed(model, 0.5, animGetNumFrames(ANIM_003C) - 51.0f);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -18429,13 +18429,13 @@ glabel var7f1a918c
|
||||
/* f042420: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f042424: 4405c000 */ mfc1 $a1,$f24
|
||||
/* f042428: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f04242c: 0c0077ac */ jal func0001deb0
|
||||
/* f04242c: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f042430: 02602025 */ or $a0,$s3,$zero
|
||||
/* f042434: 10000070 */ b .L0f0425f8
|
||||
/* f042438: 26310001 */ addiu $s1,$s1,0x1
|
||||
/* f04243c: 4406b000 */ mfc1 $a2,$f22
|
||||
.L0f042440:
|
||||
/* f042440: 0c0077ac */ jal func0001deb0
|
||||
/* f042440: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f042444: 34a5cccd */ ori $a1,$a1,0xcccd
|
||||
/* f042448: 3c0e800a */ lui $t6,%hi(g_Vars+0x38)
|
||||
/* f04244c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6)
|
||||
@@ -18446,14 +18446,14 @@ glabel var7f1a918c
|
||||
/* f042460: 4405c000 */ mfc1 $a1,$f24
|
||||
.L0f042464:
|
||||
/* f042464: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f042468: 0c0077ac */ jal func0001deb0
|
||||
/* f042468: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f04246c: 02602025 */ or $a0,$s3,$zero
|
||||
/* f042470: 10000061 */ b .L0f0425f8
|
||||
/* f042474: 26310001 */ addiu $s1,$s1,0x1
|
||||
.L0f042478:
|
||||
/* f042478: 4405c000 */ mfc1 $a1,$f24
|
||||
/* f04247c: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f042480: 0c0077ac */ jal func0001deb0
|
||||
/* f042480: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f042484: 02602025 */ or $a0,$s3,$zero
|
||||
/* f042488: 1000005b */ b .L0f0425f8
|
||||
/* f04248c: 26310001 */ addiu $s1,$s1,0x1
|
||||
@@ -18474,7 +18474,7 @@ glabel var7f1a918c
|
||||
/* f0424c0: 02002025 */ or $a0,$s0,$zero
|
||||
/* f0424c4: 44050000 */ mfc1 $a1,$f0
|
||||
/* f0424c8: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f0424cc: 0c0077ac */ jal func0001deb0
|
||||
/* f0424cc: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0424d0: 02602025 */ or $a0,$s3,$zero
|
||||
/* f0424d4: 10000048 */ b .L0f0425f8
|
||||
/* f0424d8: 26310001 */ addiu $s1,$s1,0x1
|
||||
@@ -18484,7 +18484,7 @@ glabel var7f1a918c
|
||||
/* f0424e4: 34c6cccd */ ori $a2,$a2,0xcccd
|
||||
/* f0424e8: 44050000 */ mfc1 $a1,$f0
|
||||
/* f0424ec: 4406b000 */ mfc1 $a2,$f22
|
||||
/* f0424f0: 0c0077ac */ jal func0001deb0
|
||||
/* f0424f0: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0424f4: 02602025 */ or $a0,$s3,$zero
|
||||
/* f0424f8: 1000003f */ b .L0f0425f8
|
||||
/* f0424fc: 26310001 */ addiu $s1,$s1,0x1
|
||||
@@ -22638,7 +22638,7 @@ glabel var7f1a927c
|
||||
/* f04654c: 00095d40 */ sll $t3,$t1,0x15
|
||||
/* f046550: 0562002d */ bltzl $t3,.L0f046608
|
||||
/* f046554: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
/* f046558: 0c0077ac */ jal func0001deb0
|
||||
/* f046558: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f04655c: 8e440020 */ lw $a0,0x20($s2)
|
||||
/* f046560: 10000029 */ b .L0f046608
|
||||
/* f046564: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
@@ -22656,12 +22656,12 @@ glabel var7f1a927c
|
||||
/* f046590: 3c053f26 */ lui $a1,0x3f26
|
||||
/* f046594: 34a56666 */ ori $a1,$a1,0x6666
|
||||
/* f046598: 8e440020 */ lw $a0,0x20($s2)
|
||||
/* f04659c: 0c0077ac */ jal func0001deb0
|
||||
/* f04659c: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0465a0: 3c064200 */ lui $a2,0x4200
|
||||
/* f0465a4: 10000018 */ b .L0f046608
|
||||
/* f0465a8: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
.L0f0465ac:
|
||||
/* f0465ac: 0c0077ac */ jal func0001deb0
|
||||
/* f0465ac: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0465b0: 8e440020 */ lw $a0,0x20($s2)
|
||||
/* f0465b4: 10000014 */ b .L0f046608
|
||||
/* f0465b8: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
@@ -22677,13 +22677,13 @@ glabel var7f1a927c
|
||||
/* f0465dc: 3c053ecc */ lui $a1,0x3ecc
|
||||
/* f0465e0: 4406d000 */ mfc1 $a2,$f26
|
||||
/* f0465e4: 34a5cccd */ ori $a1,$a1,0xcccd
|
||||
/* f0465e8: 0c0077ac */ jal func0001deb0
|
||||
/* f0465e8: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0465ec: 8e440020 */ lw $a0,0x20($s2)
|
||||
/* f0465f0: 10000005 */ b .L0f046608
|
||||
/* f0465f4: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
/* f0465f8: 4406d000 */ mfc1 $a2,$f26
|
||||
.L0f0465fc:
|
||||
/* f0465fc: 0c0077ac */ jal func0001deb0
|
||||
/* f0465fc: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f046600: 8e440020 */ lw $a0,0x20($s2)
|
||||
/* f046604: 8fbf0084 */ lw $ra,0x84($sp)
|
||||
.L0f046608:
|
||||
@@ -23548,14 +23548,14 @@ void chrTickSkJump(struct chrdata *chr)
|
||||
switch (chr->act_skjump.state) {
|
||||
case SKJUMPSTATE_TAKEOFF:
|
||||
modelSetAnimation(chr->model, ANIM_SKEDAR_JUMPSTART, 0, 0, -1, 8);
|
||||
func0001deb0(chr->model, 2.5, 0);
|
||||
modelSetAnimSpeed(chr->model, 2.5, 0);
|
||||
break;
|
||||
case SKJUMPSTATE_AIRBORNE: {
|
||||
u16 sounds[] = { 0x532, 0x533, 0x534 };
|
||||
func0f0939f8(NULL, chr->prop, sounds[random() % 3], -1,
|
||||
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
||||
modelSetAnimation(chr->model, ANIM_SKEDAR_JUMPAIR, 0, 0, -1, 16);
|
||||
func0001deb0(chr->model, 1, 0);
|
||||
modelSetAnimSpeed(chr->model, 1, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -15060,7 +15060,7 @@ glabel var7f1ad744
|
||||
/* f0c3270: 8fa90078 */ lw $t1,0x78($sp)
|
||||
/* f0c3274: 8f240020 */ lw $a0,0x20($t9)
|
||||
/* f0c3278: 44059000 */ mfc1 $a1,$f18
|
||||
/* f0c327c: 0c0077ac */ jal func0001deb0
|
||||
/* f0c327c: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f0c3280: afa80048 */ sw $t0,0x48($sp)
|
||||
/* f0c3284: 8fa80048 */ lw $t0,0x48($sp)
|
||||
.L0f0c3288:
|
||||
|
||||
@@ -696,7 +696,7 @@ glabel func0f113f10
|
||||
/* f11406c: 24060000 */ addiu $a2,$zero,0x0
|
||||
/* f114070: 46046182 */ mul.s $f6,$f12,$f4
|
||||
/* f114074: 44053000 */ mfc1 $a1,$f6
|
||||
/* f114078: 0c0077ac */ jal func0001deb0
|
||||
/* f114078: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* f11407c: 00000000 */ nop
|
||||
/* f114080: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
|
||||
/* f114084: 10000004 */ b .L0f114098
|
||||
@@ -751,7 +751,7 @@ glabel func0f1140bc
|
||||
|
||||
void func0f11412c(f32 speed)
|
||||
{
|
||||
func0001deb0(&g_Vars.currentplayer->model, speed * 0.5f, 0);
|
||||
modelSetAnimSpeed(&g_Vars.currentplayer->model, speed * 0.5f, 0);
|
||||
}
|
||||
|
||||
f32 func0f11416c(void)
|
||||
|
||||
@@ -67,7 +67,7 @@ u32 func0001dd90(void);
|
||||
void modelSetAnimLooping(struct model *model, f32 loopframe, f32 loopmerge);
|
||||
void func0001de1c(struct model *model, f32 speed);
|
||||
u32 func0001de98(void);
|
||||
void func0001deb0(struct model *model, f32 speed, f32 startframe);
|
||||
void modelSetAnimSpeed(struct model *model, f32 speed, f32 startframe);
|
||||
void func0001df04(struct model *model, f32 arg1, f32 arg2);
|
||||
void func0001dfac(struct model *model, f32 arg1, f32 arg2);
|
||||
void modelSetAnim70(struct model *model, void *callback);
|
||||
|
||||
+4
-4
@@ -119,10 +119,10 @@ struct anim {
|
||||
/*0x16*/ s16 frameb;
|
||||
/*0x18*/ u32 endrame;
|
||||
/*0x1c*/ f32 speed;
|
||||
/*0x20*/ u32 newspeed;
|
||||
/*0x24*/ u32 oldspeed;
|
||||
/*0x28*/ u32 timespeed;
|
||||
/*0x2c*/ u32 elapsespeed;
|
||||
/*0x20*/ f32 newspeed;
|
||||
/*0x24*/ f32 oldspeed;
|
||||
/*0x28*/ f32 timespeed;
|
||||
/*0x2c*/ f32 elapsespeed;
|
||||
/*0x30*/ u32 frame2;
|
||||
/*0x34*/ u32 frac2;
|
||||
/*0x38*/ u16 frame2a;
|
||||
|
||||
+17
-27
@@ -4331,32 +4331,22 @@ glabel func0001de98
|
||||
/* 1deac: 00000000 */ nop
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0001deb0
|
||||
/* 1deb0: 8c820020 */ lw $v0,0x20($a0)
|
||||
/* 1deb4: 44857000 */ mtc1 $a1,$f14
|
||||
/* 1deb8: 44866000 */ mtc1 $a2,$f12
|
||||
/* 1debc: 1040000f */ beqz $v0,.L0001defc
|
||||
/* 1dec0: 00000000 */ nop
|
||||
/* 1dec4: 44800000 */ mtc1 $zero,$f0
|
||||
/* 1dec8: 00000000 */ nop
|
||||
/* 1decc: 460c003c */ c.lt.s $f0,$f12
|
||||
/* 1ded0: 00000000 */ nop
|
||||
/* 1ded4: 45020008 */ bc1fl .L0001def8
|
||||
/* 1ded8: e44e001c */ swc1 $f14,0x1c($v0)
|
||||
/* 1dedc: c444001c */ lwc1 $f4,0x1c($v0)
|
||||
/* 1dee0: e44c0028 */ swc1 $f12,0x28($v0)
|
||||
/* 1dee4: e44e0020 */ swc1 $f14,0x20($v0)
|
||||
/* 1dee8: e440002c */ swc1 $f0,0x2c($v0)
|
||||
/* 1deec: 03e00008 */ jr $ra
|
||||
/* 1def0: e4440024 */ swc1 $f4,0x24($v0)
|
||||
/* 1def4: e44e001c */ swc1 $f14,0x1c($v0)
|
||||
.L0001def8:
|
||||
/* 1def8: e4400028 */ swc1 $f0,0x28($v0)
|
||||
.L0001defc:
|
||||
/* 1defc: 03e00008 */ jr $ra
|
||||
/* 1df00: 00000000 */ nop
|
||||
);
|
||||
void modelSetAnimSpeed(struct model *model, f32 speed, f32 startframe)
|
||||
{
|
||||
struct anim *anim = model->anim;
|
||||
|
||||
if (anim) {
|
||||
if (startframe > 0) {
|
||||
anim->timespeed = startframe;
|
||||
anim->newspeed = speed;
|
||||
anim->elapsespeed = 0;
|
||||
anim->oldspeed = anim->speed;
|
||||
} else {
|
||||
anim->speed = speed;
|
||||
anim->timespeed = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0001df04
|
||||
@@ -4398,7 +4388,7 @@ glabel func0001df04
|
||||
/* 1df88: 460e9103 */ div.s $f4,$f18,$f14
|
||||
/* 1df8c: 46048080 */ add.s $f2,$f16,$f4
|
||||
/* 1df90: 44051000 */ mfc1 $a1,$f2
|
||||
/* 1df94: 0c0077ac */ jal func0001deb0
|
||||
/* 1df94: 0c0077ac */ jal modelSetAnimSpeed
|
||||
/* 1df98: 00000000 */ nop
|
||||
.L0001df9c:
|
||||
/* 1df9c: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
|
||||
Reference in New Issue
Block a user