2019-05-31 09:44:43 +00:00
|
|
|
#pragma once
|
2019-09-12 00:43:18 +00:00
|
|
|
#include "CutsceneObject.h"
|
2019-05-31 09:44:43 +00:00
|
|
|
|
2019-09-28 15:16:52 +00:00
|
|
|
#define CUTSCENENAMESIZE 8
|
|
|
|
|
2019-06-12 18:07:37 +00:00
|
|
|
class CDirectory;
|
2019-09-28 14:03:00 +00:00
|
|
|
class CAnimBlendAssocGroup;
|
|
|
|
class CCutsceneHead;
|
2019-06-12 18:07:37 +00:00
|
|
|
|
2019-05-31 09:44:43 +00:00
|
|
|
class CCutsceneMgr
|
|
|
|
{
|
2020-04-16 19:19:56 +00:00
|
|
|
static bool ms_running;
|
|
|
|
static CCutsceneObject *ms_pCutsceneObjects[NUMCUTSCENEOBJECTS];
|
2019-06-13 00:35:26 +00:00
|
|
|
|
2020-04-16 19:19:56 +00:00
|
|
|
static int32 ms_numCutsceneObjs;
|
|
|
|
static bool ms_loaded;
|
|
|
|
static bool ms_animLoaded;
|
|
|
|
static bool ms_useLodMultiplier;
|
2019-09-28 14:03:00 +00:00
|
|
|
|
2020-04-16 19:19:56 +00:00
|
|
|
static char ms_cutsceneName[CUTSCENENAMESIZE];
|
|
|
|
static CAnimBlendAssocGroup ms_cutsceneAssociations;
|
|
|
|
static CVector ms_cutsceneOffset;
|
|
|
|
static float ms_cutsceneTimer;
|
2020-06-15 22:38:26 +00:00
|
|
|
static bool ms_wasCutsceneSkipped;
|
2020-04-16 19:19:56 +00:00
|
|
|
static bool ms_cutsceneProcessing;
|
2020-08-24 18:52:16 +00:00
|
|
|
static bool ms_useCutsceneShadows;
|
2019-05-31 09:44:43 +00:00
|
|
|
public:
|
2020-04-16 19:19:56 +00:00
|
|
|
static CDirectory *ms_pCutsceneDir;
|
|
|
|
static uint32 ms_cutsceneLoadStatus;
|
2019-06-12 18:07:37 +00:00
|
|
|
|
2020-04-10 08:23:35 +00:00
|
|
|
static void StartCutsceneProcessing() { ms_cutsceneProcessing = true; }
|
2019-06-12 14:52:26 +00:00
|
|
|
static bool IsRunning(void) { return ms_running; }
|
2020-04-16 18:46:08 +00:00
|
|
|
static bool HasLoaded(void) { return ms_loaded; }
|
2019-05-31 09:44:43 +00:00
|
|
|
static bool IsCutsceneProcessing(void) { return ms_cutsceneProcessing; }
|
2020-06-15 22:38:26 +00:00
|
|
|
static bool WasCutsceneSkipped(void) { return ms_wasCutsceneSkipped; }
|
2020-04-02 10:48:01 +00:00
|
|
|
static bool UseLodMultiplier(void) { return ms_useLodMultiplier; }
|
2019-09-12 00:43:18 +00:00
|
|
|
static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; }
|
2019-09-28 14:31:14 +00:00
|
|
|
static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
|
2019-09-28 14:03:00 +00:00
|
|
|
static char *GetCutsceneName(void) { return ms_cutsceneName; }
|
2019-10-21 21:39:59 +00:00
|
|
|
static void SetCutsceneOffset(const CVector& vec) { ms_cutsceneOffset = vec; }
|
2019-09-28 14:03:00 +00:00
|
|
|
static bool HasCutsceneFinished(void);
|
|
|
|
|
|
|
|
static void Initialise(void);
|
|
|
|
static void Shutdown(void);
|
|
|
|
static void LoadCutsceneData(const char *szCutsceneName);
|
|
|
|
static void FinishCutscene(void);
|
|
|
|
static void SetupCutsceneToStart(void);
|
|
|
|
static void SetCutsceneAnim(const char *animName, CObject *pObject);
|
2020-06-15 22:38:26 +00:00
|
|
|
static void SetCutsceneAnimToLoop(const char *animName);
|
2019-09-28 14:03:00 +00:00
|
|
|
static CCutsceneHead *AddCutsceneHead(CObject *pObject, int modelId);
|
|
|
|
static CCutsceneObject *CreateCutsceneObject(int modelId);
|
|
|
|
static void DeleteCutsceneData(void);
|
2020-07-30 12:11:06 +00:00
|
|
|
static void LoadAnimationUncompressed(char const*);
|
2019-09-28 14:03:00 +00:00
|
|
|
static void Update(void);
|
2020-08-24 18:52:16 +00:00
|
|
|
|
|
|
|
static void AttachObjectToParent(CObject *pObject, CEntity *pAttachTo);
|
|
|
|
static void AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame);
|
|
|
|
static void AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int frame);
|
|
|
|
static void RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver();
|
2019-05-31 09:44:43 +00:00
|
|
|
};
|