summaryrefslogtreecommitdiff
path: root/src/core/CutsceneMgr.h
blob: 7215a1238f56d017b69ff4ace6ed7d88d31f0440 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once
#include "CutsceneObject.h"

#define CUTSCENENAMESIZE 8

class CDirectory;
class CAnimBlendAssocGroup;
class CCutsceneHead;

class CCutsceneMgr
{
	static bool &ms_running;
	static CCutsceneObject *(&ms_pCutsceneObjects)[NUMCUTSCENEOBJECTS];
	
	static int32 &ms_numCutsceneObjs;
	static bool &ms_loaded;
	static bool &ms_animLoaded;
	static bool &ms_useLodMultiplier;

	static char(&ms_cutsceneName)[CUTSCENENAMESIZE];
	static CAnimBlendAssocGroup &ms_cutsceneAssociations;
	static CVector &ms_cutsceneOffset;
	static float &ms_cutsceneTimer;
public:
	static CDirectory *&ms_pCutsceneDir;
	static uint32 &ms_cutsceneLoadStatus;
	static bool &ms_cutsceneProcessing;

	static bool IsRunning(void) { return ms_running; }
	static bool IsCutsceneProcessing(void) { return ms_cutsceneProcessing; }
	static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; }
	static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
	static char *GetCutsceneName(void) { return ms_cutsceneName; }
	static bool HasCutsceneFinished(void);

	static void Initialise(void);
	static void Shutdown(void);
	static void LoadCutsceneData(const char *szCutsceneName);
	static void FinishCutscene(void);
	static void SetHeadAnim(const char *animName, CObject *pObject);
	static void SetupCutsceneToStart(void);
	static void SetCutsceneAnim(const char *animName, CObject *pObject);
	static CCutsceneHead *AddCutsceneHead(CObject *pObject, int modelId);
	static CCutsceneObject *CreateCutsceneObject(int modelId);
	static void DeleteCutsceneData(void);
	static void Update(void);
};