Olympe Engine
2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Source
system
GameMenu.h
Go to the documentation of this file.
1
#pragma once
2
#include <vector>
3
#include <string>
4
#include "
system_utils.h
"
5
6
// GameMenu is an instance-based menu attached to a VideoGame object.
7
// It receives events (via OnEvent(Message& msg) forwarding) and can be used
8
// to navigate a set of menu entries. It is also a GameEntity-like
9
// entity so it can be added to the engine's object list if desired.
10
11
class
GameMenu
12
{
13
public
:
14
enum
MenuOption
15
{
16
Resume
= 0,
17
Restart
= 1,
18
Quit
= 2,
19
Count
= 3
20
};
21
22
GameMenu
()
23
{
24
name
=
"GameMenu"
;
25
SYSTEM_LOG
<<
"GameMenu Initialized\n"
;
26
}
27
virtual
~GameMenu
()
28
{
29
Deactivate
();
30
SYSTEM_LOG
<<
"GameMenu Destroyed\n"
;
31
}
32
33
static
GameMenu
&
GetInstance
()
34
{
35
static
GameMenu
instance
;
36
return
instance
;
37
}
38
static
GameMenu
&
Get
() {
return
GetInstance
(); }
39
40
void
Activate
();
41
void
Deactivate
();
42
bool
IsActive
()
const
{
return
m_active
; }
43
44
void
AddEntry
(
const
std::string&
e
) {
m_entries
.push_back(
e
); }
45
46
// Menu navigation
47
void
SelectPrevious
();
48
void
SelectNext
();
49
void
ValidateSelection
();
50
51
int
GetSelectedOption
()
const
{
return
m_selected
; }
52
53
// Render simplified text-based menu (placeholder)
54
virtual
void
Render
();
55
56
// Render ImGui F2 menu for loading Tiled levels
57
void
RenderF2Menu
();
58
59
// Check if F2 menu should be shown
60
void
Update
();
61
62
bool
IsF2MenuOpen
()
const
{
return
m_f2MenuOpen
; }
63
void
ToggleF2Menu
();
64
void
SetF2MenuOpen
(
bool
open
);
65
66
private
:
67
std::string
name
;
68
bool
m_active
=
false
;
69
std::vector<std::string>
m_entries
;
70
int
m_selected
=
MenuOption::Resume
;
// Default to Resume
71
72
// F2 menu state
73
bool
m_f2MenuOpen
=
false
;
74
std::vector<std::string>
m_tiledMapPaths
;
75
int
m_selectedMapIndex
= -1;
76
bool
m_hasScannedTiledMaps
=
false
;
77
78
// Helper to scan for .tmj files
79
void
ScanForTiledMaps
(
const
std::string&
directory
);
80
void
RefreshTiledMapList
();
81
};
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
GameMenu
Definition
GameMenu.h:12
GameMenu::Activate
void Activate()
Definition
GameMenu.cpp:22
GameMenu::Render
virtual void Render()
Definition
GameMenu.cpp:76
GameMenu::SelectPrevious
void SelectPrevious()
Definition
GameMenu.cpp:44
GameMenu::SetF2MenuOpen
void SetF2MenuOpen(bool open)
Definition
GameMenu.cpp:99
GameMenu::RefreshTiledMapList
void RefreshTiledMapList()
Definition
GameMenu.cpp:180
GameMenu::AddEntry
void AddEntry(const std::string &e)
Definition
GameMenu.h:44
GameMenu::Update
void Update()
Definition
GameMenu.cpp:87
GameMenu::GetInstance
static GameMenu & GetInstance()
Definition
GameMenu.h:33
GameMenu::m_hasScannedTiledMaps
bool m_hasScannedTiledMaps
Definition
GameMenu.h:76
GameMenu::m_active
bool m_active
Definition
GameMenu.h:68
GameMenu::GetSelectedOption
int GetSelectedOption() const
Definition
GameMenu.h:51
GameMenu::m_entries
std::vector< std::string > m_entries
Definition
GameMenu.h:69
GameMenu::Get
static GameMenu & Get()
Definition
GameMenu.h:38
GameMenu::ToggleF2Menu
void ToggleF2Menu()
Definition
GameMenu.cpp:94
GameMenu::IsF2MenuOpen
bool IsF2MenuOpen() const
Definition
GameMenu.h:62
GameMenu::SelectNext
void SelectNext()
Definition
GameMenu.cpp:49
GameMenu::m_tiledMapPaths
std::vector< std::string > m_tiledMapPaths
Definition
GameMenu.h:74
GameMenu::~GameMenu
virtual ~GameMenu()
Definition
GameMenu.h:27
GameMenu::Deactivate
void Deactivate()
Definition
GameMenu.cpp:33
GameMenu::IsActive
bool IsActive() const
Definition
GameMenu.h:42
GameMenu::ValidateSelection
void ValidateSelection()
Definition
GameMenu.cpp:54
GameMenu::name
std::string name
Definition
GameMenu.h:67
GameMenu::m_selectedMapIndex
int m_selectedMapIndex
Definition
GameMenu.h:75
GameMenu::m_selected
int m_selected
Definition
GameMenu.h:70
GameMenu::ScanForTiledMaps
void ScanForTiledMaps(const std::string &directory)
Definition
GameMenu.cpp:109
GameMenu::RenderF2Menu
void RenderF2Menu()
Definition
GameMenu.cpp:200
GameMenu::m_f2MenuOpen
bool m_f2MenuOpen
Definition
GameMenu.h:73
GameMenu::GameMenu
GameMenu()
Definition
GameMenu.h:22
GameMenu::MenuOption
MenuOption
Definition
GameMenu.h:15
GameMenu::Quit
@ Quit
Definition
GameMenu.h:18
GameMenu::Count
@ Count
Definition
GameMenu.h:19
GameMenu::Restart
@ Restart
Definition
GameMenu.h:17
GameMenu::Resume
@ Resume
Definition
GameMenu.h:16
system_utils.h
SYSTEM_LOG
#define SYSTEM_LOG
Definition
system_utils.h:23
Generated on Tue Feb 17 2026 13:49:10 for Olympe Engine by
1.9.8