raze/source/core/interpolate.h
Christoph Oelckers b7a7584059 - renamed wallnum and sectnum functions.
These were creating a lot of search noise because local variables had the same name.
2022-11-15 12:03:44 +01:00

65 lines
2.2 KiB
C

#pragma once
#include "gamefuncs.h"
enum EInterpolationType
{
Interp_Invalid = -1,
Interp_Sect_Floorz = 0,
Interp_Sect_Ceilingz,
Interp_Sect_Floorheinum,
Interp_Sect_Ceilingheinum,
Interp_Wall_X,
Interp_Wall_Y,
Interp_Sprite_Z,
Interp_Pan_First,
// order of the following 4 flags must match the corresponding sector flags.
Interp_Sect_FloorPanX = Interp_Pan_First,
Interp_Sect_FloorPanY,
Interp_Sect_CeilingPanX,
Interp_Sect_CeilingPanY,
Interp_Wall_PanX,
Interp_Wall_PanY,
};
void StartInterpolation(int index, int type);
void StopInterpolation(int index, int type);
void StartInterpolation(DCoreActor* actor, int type);
void StopInterpolation(DCoreActor* actor, int type);
void UpdateInterpolations();
void ClearInterpolations();
void ClearMovementInterpolations();
void DoInterpolations(double interpfrac);
void RestoreInterpolations();
void SerializeInterpolations(FSerializer& arc);
void clearsectinterpolate(sectortype* sectnum);
void setsectinterpolate(sectortype* sectnum);
inline void StartInterpolation(walltype* wall, int type)
{
assert(type == Interp_Wall_X || type == Interp_Wall_Y || type == Interp_Wall_PanX || type == Interp_Wall_PanY);
return StartInterpolation(wallindex(wall), type);
}
inline void StartInterpolation(sectortype* sect, int type)
{
assert(type == Interp_Sect_Floorz || type == Interp_Sect_Ceilingz || type == Interp_Sect_Floorheinum || type == Interp_Sect_Ceilingheinum ||
type == Interp_Sect_FloorPanX || type == Interp_Sect_FloorPanY || type == Interp_Sect_CeilingPanX || type == Interp_Sect_CeilingPanY);
return StartInterpolation(sectindex(sect), type);
}
inline void StopInterpolation(walltype* wall, int type)
{
assert(type == Interp_Wall_X || type == Interp_Wall_Y || type == Interp_Wall_PanX || type == Interp_Wall_PanY);
return StopInterpolation(wallindex(wall), type);
}
inline void StopInterpolation(sectortype* sect, int type)
{
assert(type == Interp_Sect_Floorz || type == Interp_Sect_Ceilingz || type == Interp_Sect_Floorheinum || type == Interp_Sect_Ceilingheinum ||
type == Interp_Sect_FloorPanX || type == Interp_Sect_FloorPanY || type == Interp_Sect_CeilingPanX || type == Interp_Sect_CeilingPanY);
return StopInterpolation(sectindex(sect), type);
}