re3/src/render/Rubbish.h

58 lines
1.1 KiB
C
Raw Normal View History

#pragma once
2019-07-17 21:58:06 +00:00
class CVehicle;
2020-04-06 23:19:24 +00:00
enum {
// NB: not all values are allowed, check the code
#ifdef SQUEEZE_PERFORMANCE
NUM_RUBBISH_SHEETS = 32
#else
2020-04-06 23:19:24 +00:00
NUM_RUBBISH_SHEETS = 64
#endif
2020-04-06 23:19:24 +00:00
};
class COneSheet
{
public:
CVector m_basePos;
CVector m_animatedPos;
float m_targetZ;
int8 m_state;
int8 m_animationType;
uint32 m_moveStart;
uint32 m_moveDuration;
float m_animHeight;
float m_xDist;
float m_yDist;
float m_angle;
bool m_isVisible;
bool m_targetIsVisible;
COneSheet *m_next;
COneSheet *m_prev;
void AddToList(COneSheet *list);
void RemoveFromList(void);
};
class CRubbish
{
2020-04-06 23:19:24 +00:00
static bool bRubbishInvisible;
static int RubbishVisibility;
static COneSheet aSheets[NUM_RUBBISH_SHEETS];
static COneSheet StartEmptyList;
static COneSheet EndEmptyList;
static COneSheet StartStaticsList;
static COneSheet EndStaticsList;
static COneSheet StartMoversList;
static COneSheet EndMoversList;
public:
static void Render(void);
2019-07-17 21:58:06 +00:00
static void StirUp(CVehicle *veh); // CAutomobile on PS2
2019-10-18 22:23:40 +00:00
static void Update(void);
2020-04-06 23:19:24 +00:00
static void SetVisibility(bool visible);
2020-03-22 14:23:40 +00:00
static void Init(void);
static void Shutdown(void);
};
2020-07-20 17:31:59 +00:00
extern RwTexture *gpRubbishTexture[4];