2019-05-30 19:24:47 +00:00
|
|
|
#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
|
2020-08-03 01:00:12 +00:00
|
|
|
#ifdef SQUEEZE_PERFORMANCE
|
|
|
|
NUM_RUBBISH_SHEETS = 32
|
|
|
|
#else
|
2020-04-06 23:19:24 +00:00
|
|
|
NUM_RUBBISH_SHEETS = 64
|
2020-08-03 01:00:12 +00:00
|
|
|
#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);
|
|
|
|
};
|
|
|
|
|
2019-05-30 19:24:47 +00:00
|
|
|
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;
|
2019-05-30 19:24:47 +00:00
|
|
|
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);
|
2020-03-28 20:55:23 +00:00
|
|
|
static void Shutdown(void);
|
2019-05-30 19:24:47 +00:00
|
|
|
};
|
2020-07-20 17:31:59 +00:00
|
|
|
|
|
|
|
extern RwTexture *gpRubbishTexture[4];
|