NSMonster: Do some basic interpolation between new/old frames. HLMDL are
currently not supported however (engine needs a fix)
This commit is contained in:
parent
7963b11a7d
commit
63d7b04852
1 changed files with 13 additions and 1 deletions
|
@ -802,6 +802,19 @@ NSMonster::predraw(void)
|
||||||
|
|
||||||
render = super::predraw();
|
render = super::predraw();
|
||||||
|
|
||||||
|
/* are we inside of an interpolation? */
|
||||||
|
if (frame != frame2) {
|
||||||
|
/* we're done lerping */
|
||||||
|
if (lerpfrac <= 0.0f)
|
||||||
|
frame2 = frame;
|
||||||
|
|
||||||
|
lerpfrac -= frametime * 4.0f;
|
||||||
|
} else {
|
||||||
|
/* make sure we're set up for next lerp */
|
||||||
|
lerpfrac = 1.0f;
|
||||||
|
frame2time = frame1time;
|
||||||
|
}
|
||||||
|
|
||||||
return render;
|
return render;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -848,7 +861,6 @@ NSMonster::ReceiveEntity(float flNew, float flChanged)
|
||||||
if (flChanged & BASEFL_CHANGED_FRAME) {
|
if (flChanged & BASEFL_CHANGED_FRAME) {
|
||||||
frame = readbyte();
|
frame = readbyte();
|
||||||
frame1time = readfloat();
|
frame1time = readfloat();
|
||||||
frame2time = frame1time;
|
|
||||||
}
|
}
|
||||||
if (flChanged & BASEFL_CHANGED_SKIN) {
|
if (flChanged & BASEFL_CHANGED_SKIN) {
|
||||||
skin = readbyte() - 128;
|
skin = readbyte() - 128;
|
||||||
|
|
Loading…
Reference in a new issue