mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 08:51:24 +00:00
a2fc415b30
Converted it to floating point and removed the nonsensical & with the texture size that was clearing significant bits.
61 lines
2.1 KiB
C
61 lines
2.1 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_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 UpdateInterpolations();
|
|
void ClearInterpolations();
|
|
void ClearMovementInterpolations();
|
|
void DoInterpolations(double smoothratio);
|
|
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(wallnum(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(sectnum(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(wallnum(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(sectnum(sect), type);
|
|
}
|