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
// Minimal runtime blueprint panel (F2 key) — lists loaded blueprints
67
// and provides a button to open the full Blueprint Editor explicitly.
68
void
ToggleRuntimeBlueprintPanel
();
69
bool
IsRuntimeBlueprintPanelOpen
()
const
{
return
m_runtimeBlueprintOpen
; }
70
void
RenderRuntimeBlueprintPanel
();
71
72
private
:
73
std::string
name
;
74
bool
m_active
=
false
;
75
std::vector<std::string>
m_entries
;
76
int
m_selected
=
MenuOption::Resume
;
// Default to Resume
77
78
// F2 menu state (Tiled Level Loader — toggled by F3)
79
bool
m_f2MenuOpen
=
false
;
80
81
// Runtime blueprint panel state (toggled by F2)
82
bool
m_runtimeBlueprintOpen
=
false
;
83
std::vector<std::string>
m_tiledMapPaths
;
84
int
m_selectedMapIndex
= -1;
85
bool
m_hasScannedTiledMaps
=
false
;
86
87
// Helper to scan for .tmj files
88
void
ScanForTiledMaps
(
const
std::string&
directory
);
89
void
RefreshTiledMapList
();
90
};
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
GameMenu
Definition
GameMenu.h:12
GameMenu::Activate
void Activate()
Definition
GameMenu.cpp:23
GameMenu::Render
virtual void Render()
Definition
GameMenu.cpp:77
GameMenu::SelectPrevious
void SelectPrevious()
Definition
GameMenu.cpp:45
GameMenu::SetF2MenuOpen
void SetF2MenuOpen(bool open)
Definition
GameMenu.cpp:100
GameMenu::RefreshTiledMapList
void RefreshTiledMapList()
Definition
GameMenu.cpp:235
GameMenu::m_runtimeBlueprintOpen
bool m_runtimeBlueprintOpen
Definition
GameMenu.h:82
GameMenu::AddEntry
void AddEntry(const std::string &e)
Definition
GameMenu.h:44
GameMenu::Update
void Update()
Definition
GameMenu.cpp:88
GameMenu::GetInstance
static GameMenu & GetInstance()
Definition
GameMenu.h:33
GameMenu::m_hasScannedTiledMaps
bool m_hasScannedTiledMaps
Definition
GameMenu.h:85
GameMenu::IsRuntimeBlueprintPanelOpen
bool IsRuntimeBlueprintPanelOpen() const
Definition
GameMenu.h:69
GameMenu::m_active
bool m_active
Definition
GameMenu.h:74
GameMenu::GetSelectedOption
int GetSelectedOption() const
Definition
GameMenu.h:51
GameMenu::m_entries
std::vector< std::string > m_entries
Definition
GameMenu.h:75
GameMenu::Get
static GameMenu & Get()
Definition
GameMenu.h:38
GameMenu::ToggleF2Menu
void ToggleF2Menu()
Definition
GameMenu.cpp:95
GameMenu::IsF2MenuOpen
bool IsF2MenuOpen() const
Definition
GameMenu.h:62
GameMenu::SelectNext
void SelectNext()
Definition
GameMenu.cpp:50
GameMenu::m_tiledMapPaths
std::vector< std::string > m_tiledMapPaths
Definition
GameMenu.h:83
GameMenu::~GameMenu
virtual ~GameMenu()
Definition
GameMenu.h:27
GameMenu::Deactivate
void Deactivate()
Definition
GameMenu.cpp:34
GameMenu::RenderRuntimeBlueprintPanel
void RenderRuntimeBlueprintPanel()
Definition
GameMenu.cpp:117
GameMenu::ToggleRuntimeBlueprintPanel
void ToggleRuntimeBlueprintPanel()
Definition
GameMenu.cpp:110
GameMenu::IsActive
bool IsActive() const
Definition
GameMenu.h:42
GameMenu::ValidateSelection
void ValidateSelection()
Definition
GameMenu.cpp:55
GameMenu::name
std::string name
Definition
GameMenu.h:73
GameMenu::m_selectedMapIndex
int m_selectedMapIndex
Definition
GameMenu.h:84
GameMenu::m_selected
int m_selected
Definition
GameMenu.h:76
GameMenu::ScanForTiledMaps
void ScanForTiledMaps(const std::string &directory)
Definition
GameMenu.cpp:164
GameMenu::RenderF2Menu
void RenderF2Menu()
Definition
GameMenu.cpp:255
GameMenu::m_f2MenuOpen
bool m_f2MenuOpen
Definition
GameMenu.h:79
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 Mon Apr 13 2026 08:15:20 for Olympe Engine by
1.9.8