summaryrefslogtreecommitdiff
path: root/src/koopatlas/hud.h
blob: 05ad07c82424240b7465cfcc1c09dbd257407beb (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef __KOOPATLAS_HUD_H
#define __KOOPATLAS_HUD_H

#include "koopatlas/core.h"

// Colourises an IA8 texture
class dTexMapColouriser_c {
	public:
		dTexMapColouriser_c();
		~dTexMapColouriser_c();

		void resetAndClear();
		void setTexMap(nw4r::lyt::TexMap *tm);
		void applyAlso(nw4r::lyt::TexMap *tm);
		void colourise(int h, int s, int l);

	private:
		nw4r::lyt::TexMap *texmap;
		u16 *original;
		u16 *mine;
};

class dWMHud_c : public dBase_c {
	public:
		dWMHud_c();

		int onCreate();
		int onDelete();
		int onExecute();
		int onDraw();

		bool layoutLoaded;
		m2d::EmbedLayout_c layout;

		static dWMHud_c *build();
		static dWMHud_c *instance;

		void enteredNode(dKPNode_s *node = 0);
		void leftNode();

		void hideFooter();
		void showFooter();

		void setupLives();

	private:
		void playShowAnim(int id);
		void playHideAnim(int id);
		void loadHeaderInfo();

		bool willShowHeader;
		dKPNode_s *nodeForHeader;

		int displayedControllerType;
		void updatePressableButtonThingies();

		void loadFooterInfo();
		bool willShowFooter;
		bool isFooterVisible;

		dTexMapColouriser_c headerCol, footerCol;


		nw4r::lyt::Pane
			*N_IconPosXP_00[4];

		nw4r::lyt::Picture
			*Header_Centre, *Header_Right, *Footer,
			*NormalExitFlag, *SecretExitFlag,
			*StarCoinOn[3],
			*P_marioFace_00, *P_luigiFace_00,
			*P_BkinoFace_00, *P_YkinoFace_00;

		nw4r::lyt::TextBox
			*LevelName, *LevelNameS,
			*LevelNumber, *LevelNumberS,
			*WorldName, *WorldNameS,
			*StarCoinCounter,
			*T_lifeNumber[4];
};

#endif