aboutsummaryrefslogtreecommitdiffstats
path: root/src/control/OnscreenTimer.h
blob: a175143f937e2c1bc615f03fb9c323f5ed7fa794 (plain) (blame)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#pragma once

#include "common.h"

enum
{
	COUNTER_DISPLAY_NUMBER,
	COUNTER_DISPLAY_BAR,
};

class COnscreenTimerEntry
{
public:
	uint32 m_nClockOffset;
	char m_aClockText[10];
	char m_aClockBuffer[40];
	bool m_bClockProcessed;
	bool m_bClockGoingDown;
	CRGBA m_aClockColour;
	bool m_bClockTickThisFrame;

	void Process();
	void ProcessForDisplayClock();
};

class COnscreenCounterEntry
{
public:
	uint32 m_nCounterOffset;
	int32 m_nTotal;
	char m_aCounterText1[10];
	char m_aCounterText2[10];
	uint16 m_nTypeOfTotal;
	uint16 m_nType;
	char m_aCounterBuffer[40];
	bool m_bCounterProcessed;
	CRGBA m_colour1;
	CRGBA m_colour2;
	bool m_bAddDollarPrefix;

	void ProcessForDisplayCounter();
};

class COnscreenTimer
{
public:
	COnscreenTimerEntry m_sClocks[NUMONSCREENCLOCKS];
	COnscreenCounterEntry m_sCounters[NUMONSCREENCOUNTERS];
	bool m_bProcessed;
	bool m_bDisabled;

	void Init();
	void Process();
	void ProcessForDisplay();

	void ClearCounter(uint32 offset);
	void ClearClock(uint32 offset);

	void AddCounter(uint32 offset, uint16 type, char* text, uint16 pos, int32, char*, uint16);
	void AddClock(uint32 offset, char* text, bool bGoingDown);

	void ChangeCounterPrefix(uint32 offset, bool bChange);
};

extern CRGBA gbColour;
extern CRGBA gbColour2;