Set names for headanim symbols
This commit is contained in:
parent
aeca25d984
commit
f1e1e6b204
|
@ -1038,7 +1038,7 @@ void bgrab0f0ce924(void)
|
|||
g_Vars.currentplayer->speedforwards += sp70;
|
||||
g_Vars.currentplayer->speedsideways += sp6c;
|
||||
|
||||
mult = var80075c00[1].unk0c * 0.5f * g_Vars.lvupdate60freal;
|
||||
mult = g_HeadAnims[HEADANIM_MOVING].translateperframe * 0.5f * g_Vars.lvupdate60freal;
|
||||
sp88 = mult * g_Vars.currentplayer->speedsideways;
|
||||
|
||||
speedsideways = g_Vars.currentplayer->speedsideways * 0.8f;
|
||||
|
@ -1149,7 +1149,7 @@ void bgrab0f0ce924(void)
|
|||
sp3c = -1.0f;
|
||||
}
|
||||
|
||||
if (g_Vars.currentplayer->headanim == 1) {
|
||||
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
|
||||
breathing *= 1.2f;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,13 +11,11 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
struct var80075c00 var80075c00[] = {
|
||||
struct headanim g_HeadAnims[] = {
|
||||
{ ANIM_002B, 9.5, 27, 0, 0, 1.5 },
|
||||
{ ANIM_0029, 7.5, 17, 0, 1.5, 100 },
|
||||
};
|
||||
|
||||
struct coord var80075c30 = {0, 0, 0};
|
||||
|
||||
void bheadFlipAnimation(void)
|
||||
{
|
||||
g_Vars.currentplayer->model.anim->flip = !g_Vars.currentplayer->model.anim->flip;
|
||||
|
@ -96,7 +94,7 @@ void bheadUpdateRot(struct coord *lookvel, struct coord *upvel)
|
|||
g_Vars.currentplayer->headup.z = g_Vars.currentplayer->headupsum.z * (1.0f - g_Vars.currentplayer->headdamp);
|
||||
}
|
||||
|
||||
void bheadSetdamp(f32 headdamp)
|
||||
void bheadSetDamp(f32 headdamp)
|
||||
{
|
||||
if (headdamp != g_Vars.currentplayer->headdamp) {
|
||||
f32 divisor = 1.0f - headdamp;
|
||||
|
@ -112,7 +110,7 @@ void bheadSetdamp(f32 headdamp)
|
|||
|
||||
void bheadUpdate(f32 arg0, f32 arg1)
|
||||
{
|
||||
struct coord headpos = var80075c30;
|
||||
struct coord headpos = {0, 0, 0};
|
||||
struct coord lookvel = {0, 0, 1};
|
||||
struct coord upvel = {0, 1, 0};
|
||||
f32 animspeed = 0;
|
||||
|
@ -120,7 +118,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
|
|||
if (animHasFrames(g_Vars.currentplayer->model.anim->animnum)) {
|
||||
animspeed = modelGetAbsAnimSpeed(&g_Vars.currentplayer->model);
|
||||
|
||||
if (g_Vars.currentplayer->headanim == 0) {
|
||||
if (g_Vars.currentplayer->headanim == HEADANIM_RESTING) {
|
||||
if (animspeed > 0.69999998807907f) {
|
||||
g_Vars.currentplayer->headamplitude = 1;
|
||||
} else if (animspeed > 0.1f) {
|
||||
|
@ -131,7 +129,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
|
|||
|
||||
g_Vars.currentplayer->sideamplitude = g_Vars.currentplayer->headamplitude;
|
||||
} else {
|
||||
if (g_Vars.currentplayer->headanim == 1) {
|
||||
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
|
||||
g_Vars.currentplayer->headamplitude = 0.89999997615814f;
|
||||
g_Vars.currentplayer->sideamplitude = 0.5f;
|
||||
} else {
|
||||
|
@ -197,9 +195,9 @@ void bheadUpdate(f32 arg0, f32 arg1)
|
|||
g_Vars.currentplayer->headwalkingtime60 += g_Vars.lvupdate60;
|
||||
|
||||
if (g_Vars.currentplayer->headwalkingtime60 > TICKS(60)) {
|
||||
bheadSetdamp(PAL ? 0.9785f : 0.982f);
|
||||
bheadSetDamp(PAL ? 0.9785f : 0.982f);
|
||||
} else {
|
||||
bheadSetdamp(PAL ? 0.99699f : 0.99748998880386f);
|
||||
bheadSetDamp(PAL ? 0.99699f : 0.99748998880386f);
|
||||
}
|
||||
} else {
|
||||
lookvel.x = g_Vars.currentplayer->bondheadmatrices[0].m[2][0];
|
||||
|
@ -210,7 +208,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
|
|||
upvel.y = g_Vars.currentplayer->bondheadmatrices[0].m[1][1];
|
||||
upvel.z = g_Vars.currentplayer->bondheadmatrices[0].m[1][2];
|
||||
|
||||
bheadSetdamp(PAL ? 0.952f : 0.96f);
|
||||
bheadSetDamp(PAL ? 0.952f : 0.96f);
|
||||
}
|
||||
} else {
|
||||
g_Vars.currentplayer->headbodyoffset.x = g_Vars.currentplayer->standbodyoffset.x;
|
||||
|
@ -222,7 +220,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
|
|||
headpos.z = 0;
|
||||
|
||||
g_Vars.currentplayer->headwalkingtime60 = 0;
|
||||
bheadSetdamp(PAL ? 0.99699f : 0.99748998880386f);
|
||||
bheadSetDamp(PAL ? 0.99699f : 0.99748998880386f);
|
||||
|
||||
if (bmoveGetCrouchPos() != CROUCHPOS_SQUAT) {
|
||||
g_Vars.currentplayer->standfrac +=
|
||||
|
@ -261,31 +259,31 @@ void bheadAdjustAnimation(f32 speed)
|
|||
struct chrdata *chr = g_Vars.currentplayer->prop->chr;
|
||||
s32 i;
|
||||
|
||||
speed *= var80075c00[1].unk0c;
|
||||
speed *= g_HeadAnims[HEADANIM_MOVING].translateperframe;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
if (var80075c00[i].unk14 * var80075c00[i].unk0c >= speed) {
|
||||
s32 headanim = g_Vars.currentplayer->headanim;
|
||||
for (i = 0; i < ARRAYCOUNT(g_HeadAnims); i++) {
|
||||
if (g_HeadAnims[i].maxspeed * g_HeadAnims[i].translateperframe >= speed) {
|
||||
s32 prevheadanim = g_Vars.currentplayer->headanim;
|
||||
|
||||
if (i != headanim) {
|
||||
if (i != prevheadanim) {
|
||||
f32 startframe = 0.0f;
|
||||
|
||||
if (headanim >= 0) {
|
||||
startframe = (g_Vars.currentplayer->model.anim->frame - var80075c00[headanim].loopframe)
|
||||
/ (var80075c00[headanim].endframe - var80075c00[headanim].loopframe);
|
||||
startframe = var80075c00[i].loopframe + (var80075c00[i].endframe - var80075c00[i].loopframe) * startframe;
|
||||
if (prevheadanim >= 0) {
|
||||
startframe = (g_Vars.currentplayer->model.anim->frame - g_HeadAnims[prevheadanim].loopframe)
|
||||
/ (g_HeadAnims[prevheadanim].endframe - g_HeadAnims[prevheadanim].loopframe);
|
||||
startframe = g_HeadAnims[i].loopframe + (g_HeadAnims[i].endframe - g_HeadAnims[i].loopframe) * startframe;
|
||||
}
|
||||
|
||||
modelSetAnimation(&g_Vars.currentplayer->model, var80075c00[i].animnum,
|
||||
modelSetAnimation(&g_Vars.currentplayer->model, g_HeadAnims[i].animnum,
|
||||
g_Vars.currentplayer->model.anim->flip, startframe, 0.5f, 12);
|
||||
modelSetAnimLooping(&g_Vars.currentplayer->model, var80075c00[i].loopframe, false);
|
||||
modelSetAnimEndFrame(&g_Vars.currentplayer->model, var80075c00[i].endframe);
|
||||
modelSetAnimLooping(&g_Vars.currentplayer->model, g_HeadAnims[i].loopframe, false);
|
||||
modelSetAnimEndFrame(&g_Vars.currentplayer->model, g_HeadAnims[i].endframe);
|
||||
|
||||
modelSetAnimFlipFunction(&g_Vars.currentplayer->model, bheadFlipAnimation);
|
||||
g_Vars.currentplayer->headanim = i;
|
||||
}
|
||||
|
||||
speed = speed / var80075c00[i].unk0c;
|
||||
speed = speed / g_HeadAnims[i].translateperframe;
|
||||
|
||||
modelSetAnimSpeed(&g_Vars.currentplayer->model, speed * 0.5f, 0);
|
||||
break;
|
||||
|
@ -309,11 +307,11 @@ void bheadSetSpeed(f32 speed)
|
|||
f32 bheadGetBreathingValue(void)
|
||||
{
|
||||
if (g_Vars.currentplayer->headanim >= 0) {
|
||||
f32 a = g_Vars.currentplayer->bondbreathing * 0.012500001f + 0.004166667f;
|
||||
f32 a = g_Vars.currentplayer->bondbreathing * 0.012500001f + (1.0f / 240.0f);
|
||||
f32 b = modelGetAbsAnimSpeed(&g_Vars.currentplayer->model);
|
||||
|
||||
if (b > 0) {
|
||||
f32 c = b / (var80075c00[g_Vars.currentplayer->headanim].endframe - var80075c00[g_Vars.currentplayer->headanim].loopframe);
|
||||
f32 c = b / (g_HeadAnims[g_Vars.currentplayer->headanim].endframe - g_HeadAnims[g_Vars.currentplayer->headanim].loopframe);
|
||||
|
||||
if (c < a) {
|
||||
c = a;
|
||||
|
|
|
@ -39,7 +39,7 @@ void bheadReset(void)
|
|||
modelSetScale(&g_Vars.currentplayer->model, 0.1000000089407f);
|
||||
modelSetAnimPlaySpeed(&g_Vars.currentplayer->model, (PAL ? 1.2f : 1), 0);
|
||||
|
||||
g_Vars.currentplayer->headanim = 0;
|
||||
g_Vars.currentplayer->headanim = HEADANIM_RESTING;
|
||||
g_Vars.currentplayer->headdamp = (PAL ? 0.9166f : 0.93f);
|
||||
g_Vars.currentplayer->headwalkingtime60 = 0;
|
||||
g_Vars.currentplayer->headamplitude = 1;
|
||||
|
@ -87,10 +87,10 @@ void bheadReset(void)
|
|||
g_Vars.currentplayer->standup[1].z = 0;
|
||||
g_Vars.currentplayer->standcnt = 0;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (i = 0; i < ARRAYCOUNT(g_HeadAnims); i++) {
|
||||
s32 translate[3];
|
||||
func0f0125a0(var80075c00[i].animnum, var80075c00[i].loopframe, var80075c00[i].endframe, translate);
|
||||
var80075c00[i].unk0c = (translate[2] * 0.1000000089407f) / (var80075c00[i].endframe - var80075c00[i].loopframe);
|
||||
func0f0125a0(g_HeadAnims[i].animnum, g_HeadAnims[i].loopframe, g_HeadAnims[i].endframe, translate);
|
||||
g_HeadAnims[i].translateperframe = (translate[2] * 0.1000000089407f) / (g_HeadAnims[i].endframe - g_HeadAnims[i].loopframe);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -112,17 +112,13 @@ void bheadReset(void)
|
|||
g_Vars.currentplayer->standbodyoffset.z = g_Vars.currentplayer->bondheadmatrices[1].m[3][2] - g_Vars.currentplayer->bondheadmatrices[0].m[3][2];
|
||||
|
||||
modelSetAnimation(&g_Vars.currentplayer->model,
|
||||
var80075c00[g_Vars.currentplayer->headanim].animnum,
|
||||
g_HeadAnims[g_Vars.currentplayer->headanim].animnum,
|
||||
0,
|
||||
var80075c00[g_Vars.currentplayer->headanim].loopframe,
|
||||
g_HeadAnims[g_Vars.currentplayer->headanim].loopframe,
|
||||
0.5f, 0);
|
||||
|
||||
modelSetAnimLooping(&g_Vars.currentplayer->model,
|
||||
var80075c00[g_Vars.currentplayer->headanim].loopframe, 0);
|
||||
|
||||
modelSetAnimEndFrame(&g_Vars.currentplayer->model,
|
||||
var80075c00[g_Vars.currentplayer->headanim].endframe);
|
||||
|
||||
modelSetAnimLooping(&g_Vars.currentplayer->model, g_HeadAnims[g_Vars.currentplayer->headanim].loopframe, 0);
|
||||
modelSetAnimEndFrame(&g_Vars.currentplayer->model, g_HeadAnims[g_Vars.currentplayer->headanim].endframe);
|
||||
modelSetAnimFlipFunction(&g_Vars.currentplayer->model, bheadFlipAnimation);
|
||||
|
||||
bheadUpdateIdleRoll();
|
||||
|
|
|
@ -1543,7 +1543,7 @@ void bwalk0f0c69b8(void)
|
|||
g_Vars.currentplayer->bondbreathing = 1.0f;
|
||||
}
|
||||
|
||||
mult = var80075c00[1].unk0c * 0.5f * g_Vars.lvupdate60freal;
|
||||
mult = g_HeadAnims[HEADANIM_MOVING].translateperframe * 0.5f * g_Vars.lvupdate60freal;
|
||||
spe0 = (g_Vars.currentplayer->speedsideways * spc0 + spc4) * mult;
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
|
@ -1728,7 +1728,7 @@ void bwalk0f0c69b8(void)
|
|||
sp40 = -1.0f;
|
||||
}
|
||||
|
||||
if (g_Vars.currentplayer->headanim == 1) {
|
||||
if (g_Vars.currentplayer->headanim == HEADANIM_MOVING) {
|
||||
breathing *= 1.2f;
|
||||
}
|
||||
|
||||
|
|
|
@ -640,8 +640,8 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3
|
|||
|
||||
bmove0f0cb904(&chr->aibot->shotspeed);
|
||||
|
||||
arg2->x += chr->aibot->shotspeed.x * var80075c00[1].unk0c * VAR(lvupdate60freal) * 0.5f;
|
||||
arg2->z += chr->aibot->shotspeed.z * var80075c00[1].unk0c * VAR(lvupdate60freal) * 0.5f;
|
||||
arg2->x += chr->aibot->shotspeed.x * g_HeadAnims[HEADANIM_MOVING].translateperframe * VAR(lvupdate60freal) * 0.5f;
|
||||
arg2->z += chr->aibot->shotspeed.z * g_HeadAnims[HEADANIM_MOVING].translateperframe * VAR(lvupdate60freal) * 0.5f;
|
||||
}
|
||||
|
||||
if (chr->actiontype == ACT_DIE && chr->act_die.timeextra > 0.0f) {
|
||||
|
|
|
@ -5589,7 +5589,7 @@ void playerChooseThirdPersonAnimation(struct chrdata *chr, s32 crouchpos, f32 sp
|
|||
}
|
||||
} else if (turnspeed < 0.4f
|
||||
|| (chr->prop->type == PROPTYPE_PLAYER
|
||||
&& g_Vars.players[playermgrGetPlayerNumByProp(chr->prop)]->headanim == 0)) {
|
||||
&& g_Vars.players[playermgrGetPlayerNumByProp(chr->prop)]->headanim == HEADANIM_RESTING)) {
|
||||
turnmode = TURNMODE_STAND_SOFTTURN;
|
||||
speed = 2.0f * turnspeed;
|
||||
|
||||
|
|
|
@ -327,7 +327,7 @@ void playermgrAllocatePlayer(s32 index)
|
|||
g_Vars.players[index]->resetheadrot = true;
|
||||
g_Vars.players[index]->resetheadtick = true;
|
||||
|
||||
g_Vars.players[index]->headanim = 0;
|
||||
g_Vars.players[index]->headanim = HEADANIM_RESTING;
|
||||
g_Vars.players[index]->headdamp = (PAL ? 0.9166f : 0.93f);
|
||||
g_Vars.players[index]->headwalkingtime60 = 0;
|
||||
g_Vars.players[index]->headamplitude = 1;
|
||||
|
|
|
@ -1347,6 +1347,9 @@
|
|||
#define HATTYPE_METAL 3
|
||||
#define HATTYPE_CLOTH 5
|
||||
|
||||
#define HEADANIM_RESTING 0
|
||||
#define HEADANIM_MOVING 1
|
||||
|
||||
#define HEADBODYTYPE_DEFAULT 0
|
||||
#define HEADBODYTYPE_FEMALE 1
|
||||
#define HEADBODYTYPE_FEMALEGUARD 2
|
||||
|
|
|
@ -302,7 +302,7 @@ extern struct menudialogdef g_MpEditSimulant4MbMenuDialog;
|
|||
extern struct menudialogdef g_AdvancedSetup4MbMenuDialog;
|
||||
extern struct filelist *g_FileLists[MAX_PLAYERS];
|
||||
extern bool var80075bd0[];
|
||||
extern struct var80075c00 var80075c00[];
|
||||
extern struct headanim g_HeadAnims[2];
|
||||
extern s32 var80075d60;
|
||||
extern s32 var80075d64;
|
||||
extern s32 var80075d68;
|
||||
|
|
|
@ -10,7 +10,7 @@ void bheadFlipAnimation(void);
|
|||
void bheadUpdateIdleRoll(void);
|
||||
void bheadUpdatePos(struct coord *vel);
|
||||
void bheadUpdateRot(struct coord *lookvel, struct coord *upvel);
|
||||
void bheadSetdamp(f32 headdamp);
|
||||
void bheadSetDamp(f32 headdamp);
|
||||
void bheadUpdate(f32 arg0, f32 arg1);
|
||||
void bheadAdjustAnimation(f32 speed);
|
||||
void bheadStartDeathAnimation(s16 animnum, u32 flip, f32 fstarttime, f32 speed);
|
||||
|
|
|
@ -4810,13 +4810,13 @@ struct animtable {
|
|||
s32 injuryanimcount;
|
||||
};
|
||||
|
||||
struct var80075c00 {
|
||||
struct headanim {
|
||||
s16 animnum;
|
||||
f32 loopframe;
|
||||
f32 endframe;
|
||||
f32 unk0c;
|
||||
f32 unk10;
|
||||
f32 unk14;
|
||||
f32 translateperframe;
|
||||
f32 minspeed;
|
||||
f32 maxspeed;
|
||||
};
|
||||
|
||||
struct vimode {
|
||||
|
|
Loading…
Reference in New Issue