View difference between Paste ID: BzyX8xp5 and vhtMbLyK
SHOW: | | - or go back to the newest paste.
1
#include "ScreenManager.h"
2
3
ScreenManager::ScreenManager(void)
4
	: SplashScreen(NULL), TitleScreen(NULL), currentScreen(NULL)
5
{
6
}
7
8
9
ScreenManager::~ScreenManager()
10
{
11
}
12
13
ScreenManager &ScreenManager::GetInstance()
14
{
15
	static ScreenManager instance;
16
	return instance;
17
}
18
19
void ScreenManager::Initialize(SDL_Renderer *renderer)
20
{
21
	SplashScreen = new GameScreen;
22
	TitleScreen = new GameScreen;
23
24
	if (SplashScreen) SplashScreen->LoadContent(renderer);
25
	if (TitleScreen) TitleScreen->LoadContent(renderer);
26
27
	currentScreen = SplashScreen;
28
29
	/*transition = false;
30
	fade.LoadContent(renderer);
31
	file.LoadContent("tests.cme", attributes, contents);*/
32
}
33
34
void ScreenManager::LoadContent(SDL_Renderer *renderer)
35
{
36-
	currentScreen->LoadContent(renderer);
36+
	currentScreen->LoadContent(renderer); // not working without this too
37
}
38
39
void ScreenManager::Update(SDL_Renderer *renderer, SDL_Event &event)
40
{
41
	if(currentScreen)
42
	{
43
		currentScreen->Update(renderer, event);
44
	}
45
}
46
47
void ScreenManager::Draw(SDL_Renderer *renderer)
48
{
49
	if(currentScreen)
50
	{
51
		currentScreen->Draw(renderer);
52
	}
53
}
54
55
void ScreenManager::SetScreen(GameScreen *newScreen)
56
{
57
	currentScreen = newScreen;
58
}
59
60
void ScreenManager::Transition(SDL_Renderer *renderer)
61
{
62
}
63
64
Uint8 ScreenManager::GetAlpha()
65
{
66
	return fade.getAlpha();
67
}
68
69
void ScreenManager::UnloadContent()
70
{
71
	if (TitleScreen) TitleScreen->UnloadContent(); delete TitleScreen; TitleScreen = NULL;
72
	if (SplashScreen) SplashScreen->UnloadContent(); delete SplashScreen; SplashScreen = NULL;
73
}
74
75
76
//-------------------------------------------------------------------------------------------------
77
78
#include "SplashScreen.h"
79
80
SplashScreen::SplashScreen()
81
{
82
}
83
84
85
SplashScreen::~SplashScreen()
86
{
87
}
88
89
void SplashScreen::LoadContent(SDL_Renderer *renderer)
90
{
91
	this->SplashImage = ScreenManager::GetInstance().GetSplashText();
92
	SplashImage.loadFromFile("lol.bmp", renderer);
93
	
94
	keys.push_back(SDLK_ESCAPE);
95
96
	/*file.LoadContent("Load/splash.cme", attributes, contents);
97
	for (int i = 0; i < attributes.size(); i++)
98
	{
99
		for (int j = 0; j < attributes[i].size(); j++)
100
		{
101
			std::string att = attributes[i][j];
102
			if (att == "Image")
103
			{
104
				SplashImage.loadFromFile(contents[i][j], renderer);
105
			}
106
		}
107
	}*/
108
}
109
110
void SplashScreen::UnloadContent()
111
{
112
	GameScreen::UnloadContent();
113
}
114
115
void SplashScreen::Draw(SDL_Renderer *renderer)
116
{
117
	SplashImage.render(0, 0, renderer);
118
}
119
120
void SplashScreen::Update(SDL_Renderer *renderer, SDL_Event &event)
121
{
122
	input.Update(event);
123
	if (input.KeyPressed(keys))
124
	{
125
		ScreenManager::GetInstance().SetScreen(ScreenManager::GetInstance().GetTitleScreen());
126
		//ScreenManager::GetInstance().SetScreen(ScreenManager::GetInstance().GetSplashScreen()); <--- not working too
127
		std::cout << "KEY" << std::endl;
128
	}
129
}