2019-05-30 19:24:47 +00:00
|
|
|
#pragma once
|
2019-07-10 09:36:47 +00:00
|
|
|
#include "common.h"
|
2019-08-16 18:17:15 +00:00
|
|
|
#include "Vector.h"
|
2020-07-30 03:47:24 +00:00
|
|
|
#include "Object.h"
|
2019-05-30 19:24:47 +00:00
|
|
|
|
2020-07-18 22:37:44 +00:00
|
|
|
// TODO
|
|
|
|
class CScriptPath
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
};
|
|
|
|
|
|
|
|
// TODO
|
|
|
|
class CScriptPaths
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
};
|
|
|
|
|
|
|
|
class CPlaneTrail
|
|
|
|
{
|
2020-07-20 17:31:59 +00:00
|
|
|
CVector m_pos[16];
|
|
|
|
int32 m_time[16];
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-20 17:31:59 +00:00
|
|
|
void Init(void);
|
|
|
|
void Render(float visibility);
|
|
|
|
void RegisterPoint(CVector pos);
|
2020-07-18 22:37:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CPlaneTrails
|
|
|
|
{
|
2020-07-20 17:31:59 +00:00
|
|
|
static CPlaneTrail aArray[6]; // NB: 3 CPlanes and 3 hardcoded far away ones
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-20 17:31:59 +00:00
|
|
|
static void Init(void);
|
|
|
|
static void Update(void);
|
|
|
|
static void Render(void);
|
2020-07-18 22:37:44 +00:00
|
|
|
static void RegisterPoint(CVector pos, uint32 id);
|
|
|
|
};
|
|
|
|
|
|
|
|
class CPlaneBanner
|
|
|
|
{
|
2020-07-20 17:31:59 +00:00
|
|
|
CVector m_pos[8];
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-20 17:31:59 +00:00
|
|
|
void Init(void);
|
|
|
|
void Update(void);
|
|
|
|
void Render(void);
|
|
|
|
void RegisterPoint(CVector pos);
|
2020-07-18 22:37:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CPlaneBanners
|
|
|
|
{
|
2020-07-20 17:31:59 +00:00
|
|
|
static CPlaneBanner aArray[5];
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-20 17:31:59 +00:00
|
|
|
static void Init(void);
|
|
|
|
static void Update(void);
|
|
|
|
static void Render(void);
|
2020-07-18 22:37:44 +00:00
|
|
|
static void RegisterPoint(CVector pos, uint32 id);
|
|
|
|
};
|
|
|
|
|
2020-07-30 03:47:24 +00:00
|
|
|
class CEscalator
|
2020-07-18 22:37:44 +00:00
|
|
|
{
|
2020-07-30 03:47:24 +00:00
|
|
|
CVector m_pos0;
|
|
|
|
CVector m_pos1;
|
|
|
|
CVector m_pos2;
|
|
|
|
CVector m_pos3;
|
|
|
|
CMatrix m_matrix;
|
|
|
|
bool m_bIsActive;
|
|
|
|
bool m_bIsMovingDown;
|
|
|
|
int32 m_stepsCount;
|
|
|
|
float m_lowerEnd;
|
|
|
|
float m_upperEnd;
|
|
|
|
CVector m_midPoint;
|
|
|
|
float m_radius;
|
|
|
|
CObject *m_pSteps[24];
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-30 03:47:24 +00:00
|
|
|
CEscalator();
|
|
|
|
void Update(void);
|
|
|
|
void SwitchOff(void);
|
|
|
|
void AddThisOne(CVector pos0, CVector pos1, CVector pos2, CVector pos3, bool b_isMovingDown);
|
2020-07-18 22:37:44 +00:00
|
|
|
};
|
|
|
|
|
2020-07-30 03:47:24 +00:00
|
|
|
class CEscalators
|
2020-07-18 22:37:44 +00:00
|
|
|
{
|
2020-07-30 03:47:24 +00:00
|
|
|
static CEscalator aEscalators[NUM_ESCALATORS];
|
2020-07-18 22:37:44 +00:00
|
|
|
public:
|
2020-07-30 03:47:24 +00:00
|
|
|
static int32 NumEscalators;
|
|
|
|
static void Init(void);
|
|
|
|
static void Update(void);
|
|
|
|
static void AddOne(CVector pos0, CVector pos1, CVector pos2, CVector pos3, bool b_isMovingDown);
|
|
|
|
static void Shutdown(void);
|
2020-07-18 22:37:44 +00:00
|
|
|
};
|
|
|
|
|
2020-01-20 20:41:41 +00:00
|
|
|
class CMovingThing
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CMovingThing *m_pNext;
|
|
|
|
CMovingThing *m_pPrev;
|
|
|
|
int16 m_nType;
|
2020-04-19 04:14:13 +00:00
|
|
|
int16 m_nHidden;
|
2020-01-20 20:41:41 +00:00
|
|
|
CVector m_vecPosn;
|
|
|
|
CEntity* m_pEntity;
|
|
|
|
|
|
|
|
void Update();
|
|
|
|
void AddToList(CMovingThing *pThing);
|
|
|
|
void RemoveFromList();
|
|
|
|
int16 SizeList();
|
|
|
|
};
|
|
|
|
|
|
|
|
#define NUMMOVINGTHINGS 128
|
|
|
|
|
2019-05-30 19:24:47 +00:00
|
|
|
class CMovingThings
|
|
|
|
{
|
|
|
|
public:
|
2020-01-20 20:41:41 +00:00
|
|
|
static CMovingThing StartCloseList;
|
|
|
|
static CMovingThing EndCloseList;
|
|
|
|
static int16 Num;
|
|
|
|
static CMovingThing aMovingThings[NUMMOVINGTHINGS];
|
|
|
|
|
2019-07-10 09:36:47 +00:00
|
|
|
static void Init();
|
|
|
|
static void Shutdown();
|
|
|
|
static void Update();
|
|
|
|
static void Render();
|
2019-05-30 19:24:47 +00:00
|
|
|
};
|
2019-07-10 09:36:47 +00:00
|
|
|
|
|
|
|
class CScrollBar
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
uint8 m_Counter;
|
|
|
|
const char* m_pMessage;
|
|
|
|
CVector m_Position;
|
|
|
|
uint32 m_MessageCurrentChar;
|
|
|
|
uint32 m_MessageLength;
|
|
|
|
CVector m_Size;
|
|
|
|
float m_fIntensity;
|
|
|
|
uint8 m_MessageBar[40];
|
|
|
|
uint8 m_Type;
|
|
|
|
bool m_bVisible;
|
|
|
|
uint8 m_uRed;
|
|
|
|
uint8 m_uGreen;
|
|
|
|
uint8 m_uBlue;
|
|
|
|
float m_fScale;
|
|
|
|
|
|
|
|
public:
|
|
|
|
void SetVisibility(bool visible) { m_bVisible = visible; }
|
|
|
|
bool IsVisible() { return m_bVisible; }
|
|
|
|
|
|
|
|
void Init(CVector, uint8, float, float, float, uint8, uint8, uint8, float);
|
|
|
|
void Update();
|
|
|
|
void Render();
|
|
|
|
};
|
|
|
|
|
|
|
|
class CTowerClock
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
CVector m_Position;
|
|
|
|
CVector m_Size;
|
|
|
|
float m_fDrawDistance;
|
|
|
|
float m_fScale;
|
|
|
|
uint8 m_uRed;
|
|
|
|
uint8 m_uGreen;
|
|
|
|
uint8 m_uBlue;
|
|
|
|
bool m_bVisible;
|
|
|
|
float m_fIntensity;
|
|
|
|
|
|
|
|
public:
|
|
|
|
void SetVisibility(bool visible) { m_bVisible = visible; }
|
|
|
|
bool IsVisible() { return m_bVisible; }
|
|
|
|
|
|
|
|
void Init(CVector, float, float, uint8, uint8, uint8, float, float);
|
|
|
|
void Update();
|
|
|
|
void Render();
|
|
|
|
};
|
|
|
|
|
|
|
|
class CDigitalClock
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
CVector m_Position;
|
|
|
|
CVector m_Size;
|
|
|
|
float m_fDrawDistance;
|
|
|
|
float m_fScale;
|
|
|
|
uint8 m_uRed;
|
|
|
|
uint8 m_uGreen;
|
|
|
|
uint8 m_uBlue;
|
|
|
|
bool m_bVisible;
|
|
|
|
float m_fIntensity;
|
|
|
|
|
|
|
|
public:
|
|
|
|
void SetVisibility(bool visible) { m_bVisible = visible; }
|
|
|
|
bool IsVisible() { return m_bVisible; }
|
|
|
|
|
|
|
|
void Init(CVector, float, float, uint8, uint8, uint8, float, float);
|
|
|
|
void Update();
|
|
|
|
void Render();
|
2020-06-10 20:47:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CSmokeTrail {
|
|
|
|
CVector m_pos[16];
|
2020-06-10 21:01:37 +00:00
|
|
|
float m_opacity[16];
|
2020-06-10 20:47:48 +00:00
|
|
|
int m_time[16];
|
|
|
|
char m_unused[536];
|
|
|
|
int m_seed;
|
|
|
|
public:
|
|
|
|
void Render(void);
|
|
|
|
void RegisterPoint(CVector position, float a);
|
|
|
|
void Init(int num);
|
|
|
|
};
|
|
|
|
|
|
|
|
class CSmokeTrails {
|
|
|
|
static CSmokeTrail aSmoke[3];
|
|
|
|
public:
|
|
|
|
static bool CigOn;
|
|
|
|
static void Update(void);
|
|
|
|
static void Render(void);
|
|
|
|
static void Init(void);
|
2019-07-10 09:36:47 +00:00
|
|
|
};
|