mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-05-09 20:18:17 +03:00
Using vmAnim_e enum
This commit is contained in:
parent
0fc3ecf67e
commit
863a730271
1 changed files with 24 additions and 19 deletions
|
@ -187,7 +187,7 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
|
|
||||||
if (cg.snap->ps.iViewModelAnimChanged != cgi.anim->g_iLastVMAnimChanged)
|
if (cg.snap->ps.iViewModelAnimChanged != cgi.anim->g_iLastVMAnimChanged)
|
||||||
{
|
{
|
||||||
bAnimChanged = 1;
|
bAnimChanged = qtrue;
|
||||||
cgi.anim->g_iLastVMAnim = cg.snap->ps.iViewModelAnim;
|
cgi.anim->g_iLastVMAnim = cg.snap->ps.iViewModelAnim;
|
||||||
cgi.anim->g_iLastVMAnimChanged = cg.snap->ps.iViewModelAnimChanged;
|
cgi.anim->g_iLastVMAnimChanged = cg.snap->ps.iViewModelAnimChanged;
|
||||||
}
|
}
|
||||||
|
@ -196,36 +196,37 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
{
|
{
|
||||||
switch (cgi.anim->g_iLastVMAnim)
|
switch (cgi.anim->g_iLastVMAnim)
|
||||||
{
|
{
|
||||||
case 1:
|
case VM_ANIM_CHARGE:
|
||||||
pszAnimSuffix = "charge";
|
pszAnimSuffix = "charge";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case VM_ANIM_FIRE:
|
||||||
pszAnimSuffix = "fire";
|
pszAnimSuffix = "fire";
|
||||||
break;
|
break;
|
||||||
case 3:
|
case VM_ANIM_FIRE_SECONDARY:
|
||||||
pszAnimSuffix = "fire_secondary";
|
pszAnimSuffix = "fire_secondary";
|
||||||
break;
|
break;
|
||||||
case 4:
|
case VM_ANIM_RECHAMBER:
|
||||||
pszAnimSuffix = "rechamber";
|
pszAnimSuffix = "rechamber";
|
||||||
break;
|
break;
|
||||||
case 5:
|
case VM_ANIM_RELOAD:
|
||||||
pszAnimSuffix = "reload";
|
pszAnimSuffix = "reload";
|
||||||
break;
|
break;
|
||||||
case 6:
|
case VM_ANIM_RELOAD_SINGLE:
|
||||||
pszAnimSuffix = "reload_single";
|
pszAnimSuffix = "reload_single";
|
||||||
break;
|
break;
|
||||||
case 7:
|
case VM_ANIM_RELOAD_END:
|
||||||
pszAnimSuffix = "reload_end";
|
pszAnimSuffix = "reload_end";
|
||||||
break;
|
break;
|
||||||
case 8:
|
case VM_ANIM_PULLOUT:
|
||||||
pszAnimSuffix = "pullout";
|
pszAnimSuffix = "pullout";
|
||||||
break;
|
break;
|
||||||
case 9:
|
case VM_ANIM_PUTAWAY:
|
||||||
pszAnimSuffix = "putaway";
|
pszAnimSuffix = "putaway";
|
||||||
break;
|
break;
|
||||||
case 0xA:
|
case VM_ANIM_LADDERSTEP:
|
||||||
pszAnimSuffix = "ladderstep";
|
pszAnimSuffix = "ladderstep";
|
||||||
break;
|
break;
|
||||||
|
case VM_ANIM_IDLE:
|
||||||
default:
|
default:
|
||||||
pszAnimSuffix = "idle";
|
pszAnimSuffix = "idle";
|
||||||
break;
|
break;
|
||||||
|
@ -246,7 +247,7 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
cgi.anim->g_VMFrameInfo[i].weight = fCrossblendFrac;
|
cgi.anim->g_VMFrameInfo[i].weight = fCrossblendFrac;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cgi.anim->g_VMFrameInfo[i].weight = (1.0 - fCrossblendFrac) * cgi.anim->g_VMFrameInfo[i].weight;
|
cgi.anim->g_VMFrameInfo[i].weight *= (1.0 - fCrossblendFrac);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -288,14 +289,17 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
{
|
{
|
||||||
fCrossblendTime = cgi.Anim_CrossblendTime(pTiki, cgi.anim->g_VMFrameInfo[cgi.anim->g_iCurrentVMAnimSlot].index);
|
fCrossblendTime = cgi.Anim_CrossblendTime(pTiki, cgi.anim->g_VMFrameInfo[cgi.anim->g_iCurrentVMAnimSlot].index);
|
||||||
fCrossblendAmount = cgi.anim->g_iCurrentVMDuration / 1000.0;
|
fCrossblendAmount = cgi.anim->g_iCurrentVMDuration / 1000.0;
|
||||||
if (fCrossblendAmount >= fCrossblendTime || fCrossblendAmount < 0.0) {
|
if (fCrossblendAmount >= fCrossblendTime || fCrossblendAmount <= 0.0)
|
||||||
|
{
|
||||||
|
// clear crossblend values
|
||||||
for (i = 0; i < MAX_FRAMEINFOS; ++i)
|
for (i = 0; i < MAX_FRAMEINFOS; ++i)
|
||||||
{
|
{
|
||||||
if (i != cgi.anim->g_iCurrentVMAnimSlot) {
|
if (i != cgi.anim->g_iCurrentVMAnimSlot) {
|
||||||
cgi.anim->g_VMFrameInfo[i].weight = 0.0;
|
cgi.anim->g_VMFrameInfo[i].weight = 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cgi.anim->g_bCrossblending = 0;
|
|
||||||
|
cgi.anim->g_bCrossblending = qfalse;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fCrossblendFrac = fCrossblendAmount / fCrossblendTime;
|
fCrossblendFrac = fCrossblendAmount / fCrossblendTime;
|
||||||
|
@ -304,8 +308,9 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
|
|
||||||
for (i = 0; i < MAX_FRAMEINFOS; ++i)
|
for (i = 0; i < MAX_FRAMEINFOS; ++i)
|
||||||
{
|
{
|
||||||
if (cgi.anim->g_VMFrameInfo[i].weight == 0.0)
|
if (!cgi.anim->g_VMFrameInfo[i].weight)
|
||||||
{
|
{
|
||||||
|
// clear the weight values of the ref entity
|
||||||
pModel->frameInfo[i].index = 0;
|
pModel->frameInfo[i].index = 0;
|
||||||
pModel->frameInfo[i].time = 0.0;
|
pModel->frameInfo[i].time = 0.0;
|
||||||
pModel->frameInfo[i].weight = 0.0;
|
pModel->frameInfo[i].weight = 0.0;
|
||||||
|
@ -313,12 +318,12 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fAnimLength = cgi.Anim_Time(pTiki, cgi.anim->g_VMFrameInfo[i].index);
|
fAnimLength = cgi.Anim_Time(pTiki, cgi.anim->g_VMFrameInfo[i].index);
|
||||||
cgi.anim->g_VMFrameInfo[i].time = cg.frametime / 1000.0 + cgi.anim->g_VMFrameInfo[i].time;
|
cgi.anim->g_VMFrameInfo[i].time += cg.frametime / 1000.0;
|
||||||
|
|
||||||
if (cgi.anim->g_VMFrameInfo[i].time < fAnimLength)
|
if (cgi.anim->g_VMFrameInfo[i].time > fAnimLength)
|
||||||
{
|
{
|
||||||
if (cgi.Anim_Flags(pTiki, cgi.anim->g_VMFrameInfo[i].index) & TAF_DELTADRIVEN) {
|
if (cgi.Anim_Flags(pTiki, cgi.anim->g_VMFrameInfo[i].index) & TAF_DELTADRIVEN) {
|
||||||
cgi.anim->g_VMFrameInfo[i].time = cgi.anim->g_VMFrameInfo[i].time - fAnimLength;
|
cgi.anim->g_VMFrameInfo[i].time -= fAnimLength;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cgi.anim->g_VMFrameInfo[i].time = fAnimLength;
|
cgi.anim->g_VMFrameInfo[i].time = fAnimLength;
|
||||||
|
@ -334,7 +339,7 @@ void CG_ViewModelAnimation(refEntity_t* pModel)
|
||||||
pModel->frameInfo[i].weight = fCrossblendFrac;
|
pModel->frameInfo[i].weight = fCrossblendFrac;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pModel->frameInfo[i].weight = (1.0 - fCrossblendFrac) * cgi.anim->g_VMFrameInfo[i].weight;
|
pModel->frameInfo[i].weight *= (1.0 - fCrossblendFrac);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue