* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
-#ifndef LIB_CSQCMODEL_INTERPOLATE_H
-#define LIB_CSQCMODEL_INTERPOLATE_H
+#pragma once
+
+float autocvar_cl_lerpexcess; // TODO: int?
.int iflags;
const int IFLAG_VELOCITY = BIT(0);
const int IFLAG_ORIGIN = BIT(9);
const int IFLAG_INTERNALMASK = IFLAG_VALID | IFLAG_PREVALID;
+// InterpolateOrigin can interpolate many things, not just origin;
+// set the appropriate flag(s) to this.iflags before
+// InterpolateOrigin_Note(this) and after InterpolateOrigin_Undo(this)
+
// call this BEFORE reading an entity update
-void InterpolateOrigin_Undo();
+void InterpolateOrigin_Undo(entity this);
// call this AFTER receiving an entity update
-void InterpolateOrigin_Note();
+void InterpolateOrigin_Note(entity this);
// call this when the entity got teleported, before InterpolateOrigin_Note
-void InterpolateOrigin_Reset();
+void InterpolateOrigin_Reset(entity this);
// call this BEFORE drawing
-void InterpolateOrigin_Do();
-
-// in case we interpolate that:
-.vector v_angle;
-#endif
+void InterpolateOrigin_Do(entity this);