nsnake
Classic snake game for the terminal
Loading...
Searching...
No Matches
src
Interface
LayoutMainMenu.cpp
1
#include <Interface/LayoutMainMenu.hpp>
2
#include <Interface/Colors.hpp>
3
#include <Interface/Ncurses.hpp>
4
#include <Config/Globals.hpp>
5
#include <Misc/Utils.hpp>
6
#include <Flow/GameStateMainMenu.hpp>
7
#include <Interface/Animation/AnimationSnakes.hpp>
8
9
#include <iostream>
10
11
LayoutMainMenu::LayoutMainMenu(
int
width,
int
height,
GameStateMainMenu
* state):
12
Layout
(width, height),
13
state(state),
14
logo(NULL),
15
menu(NULL),
16
animationwin(NULL),
17
animation(NULL)
18
{
19
this->windowsInit();
20
}
21
LayoutMainMenu::~LayoutMainMenu()
22
{
23
this->windowsExit();
24
}
25
void
LayoutMainMenu::windowsInit()
26
{
27
Layout::windowsInit();
28
29
// LOGO
30
this->logo =
new
Window(this->
main
,
31
0,
32
0,
33
56,
34
7);
35
36
// MENU
37
this->menu =
new
Window(this->
main
,
38
55,
39
0,
40
24,
41
WINDOW_FILL);
42
this->menu->setTitle(
"Main Menu"
);
43
44
if
(Globals::Screen::show_borders)
45
{
46
this->menu->borders(Globals::Screen::fancy_borders ?
47
Window::BORDER_FANCY :
48
Window::BORDER_REGULAR);
49
}
50
this->menu->refresh();
51
52
// ANIMATION
53
this->animationwin =
new
Window(this->
main
,
54
0,
55
this->logo->getH(),
56
this->logo->getW(),
57
this->main->getH() - this->logo->getH() - 1);
58
59
this->
animation
=
new
AnimationSnakes(this->animationwin);
60
this->
animation
->load();
61
}
62
void
LayoutMainMenu::windowsExit()
63
{
64
SAFE_DELETE(this->menu);
65
SAFE_DELETE(this->logo);
66
SAFE_DELETE(this->animationwin);
67
SAFE_DELETE(this->
animation
);
68
69
Layout::windowsExit();
70
}
71
void
LayoutMainMenu::draw
(
Menu
* menu)
72
{
73
this->
animation
->update();
74
75
this->
main
->clear();
76
77
this->
animation
->draw();
78
79
this->logo->clear();
80
this->logo->print(Utils::String::split(
" __ _ _______ __ _ _______ ___ _ _______\n"
81
"| | | || || | | || _ || | | || |\n"
82
"| |_| || _____|| |_| || |_| || |_| || ___|\n"
83
"| || |_____ | || || _|| |___ \n"
84
"| _ ||_____ || _ || || |_ | ___|\n"
85
"| | | | _____| || | | || _ || _ || |___ \n"
86
"|_| |__||_______||_| |__||__| |__||___| |_||_______|"
,
'\n'
),
87
0,
88
0,
89
Colors::pair(COLOR_GREEN, COLOR_DEFAULT,
true
));
90
91
this->logo->refresh();
92
93
// Yay!
94
this->menu->clear();
95
96
menu->
draw
(this->menu);
97
98
this->menu->refresh();
99
100
this->
main
->refresh();
101
102
// NCURSES NEEDS THIS
103
refresh();
104
}
105
GameStateMainMenu
The Main Menu.
Definition
GameStateMainMenu.hpp:13
LayoutMainMenu::draw
void draw(Menu *menu)
Shows the Main Menu screen, along with drawing menu.
Definition
LayoutMainMenu.cpp:71
LayoutMainMenu::animation
Animation * animation
Cure thing at the main menu.
Definition
LayoutMainMenu.hpp:49
Layout
Interface for how the things are shown on the screen.
Definition
Layout.hpp:16
Layout::main
Window * main
Layout's main Window, where all the others are inside.
Definition
Layout.hpp:33
Menu
List of selectable items.
Definition
Menu.hpp:29
Menu::draw
void draw(Window *window)
Draws the whole Menu on #window.
Definition
Menu.cpp:95
Generated on Fri Jan 17 2025 00:00:00 for nsnake by
1.13.2