Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
system_consts.h
Go to the documentation of this file.
1#pragma once
2
3#include <SDL3/SDL.h>
4
5constexpr double k_PI = 3.14159265358979323846;
6
7// Configuration: defaults
8static const int DEFAULT_WINDOW_WIDTH = 800;
9static const int DEFAULT_WINDOW_HEIGHT = 600;
10
11static const short MAX_PLAYERS = 8;
12
13// Event domain types for routing events to appropriate systems
14enum class EventDomain
15{
16 Input = 0,
17 UI,
19 System,
20 Camera,
24 All
25};
26
27// Event structure types
28// Used to identify the source/type of event messages
37
38// Olympe engine message identifiers
39enum class EventType
40{
42 // -------- GAME OBJECTS MESSAGES ----------
43 Olympe_EventType_Object_Activate = 0, // object activation
49 Olympe_EventType_Object_CollideDeathZone, // collision with death zone
50
51 //-------- MENU SYSTEM EVENTS ----------
55
57
58 // -------- OBBJECT EVENTS ----------
63
64 // -------- LEVEL EVENTS ----------
67
68 // -------- SECTOR EVENTS ----------
69 Olympe_EventType_SectorToActivate, // Sector to activate
70 Olympe_EventType_SectorToDeactivate, // Sector to deactivate
71
72 // -------- INPUTS EVENTS ----------
78
83
84
91
92 // -------- CAMERA EVENT ----------
93 Olympe_EventType_Camera_Shake, // shake camera with given parameters intensity, duration (milliseconds)
94 Olympe_EventType_Camera_Shake_Stop, // stop camera shake immediately
95 Olympe_EventType_Camera_Teleport, // instantly move camera to position of the renderer scene
96 Olympe_EventType_Camera_MoveToPosition, // smoothly move camera to position over time using blending (velocity)
97 Olympe_EventType_Camera_ZoomTo, // smoothly zoom camera to level over time using blending (velocity)
98 Olympe_EventType_Camera_RotateTo, // smoothly rotate camera to angle over time using blending (velocity)
99 Olympe_EventType_Camera_Reset, // reset camera to default position/zoom
100 Olympe_EventType_Camera_SetBounds, // set camera movement bounds
101 Olympe_EventType_Camera_ClearBounds, // clear camera movement bounds
102 Olympe_EventType_Camera_Mode_2D, // set camera to free 2D mode
103 Olympe_EventType_Camera_Mode_2_5D, // set camera to 2.5D mode (follow target on X axis only)
104 Olympe_EventType_Camera_Mode_Isometric, // set camera to isometric mode
105 Olympe_EventType_Camera_Target_Follow, // follow an object (given by UID or object pointer or object name)
106 Olympe_EventType_Camera_Target_Unfollow, // stop following object, return to free mode
107
108 // -------- GAME EVENTS ----------
109 Olympe_EventType_Game_Pause, // pause the game from GameMenu
110 Olympe_EventType_Game_Resume, // resume the game from GameMenu
111 Olympe_EventType_Game_Quit, // quit the game from GameMenu
112 Olympe_EventType_Game_Restart, // restart the current level from GameMenu
113 Olympe_EventType_Game_AddPlayer, // add a new player (up to 4) param: player id (0..3)
114 Olympe_EventType_Game_RemovePlayer, // remove a player param: player id (0..3)
115 Olympe_EventType_Game_TakeScreenshot, // take a screenshot of the current frame
116 Olympe_EventType_Game_SaveState, // save game state to slot (param: slot id)
117 Olympe_EventType_Game_LoadState, // load game state from slot (param: slot id)
118
119 // -------- SYSTEM EVENTS ----------
120 Olympe_EventType_System_Any, // Any system event registration
121
122 // -------- AI STIMULUS EVENTS ----------
123 Olympe_EventType_AI_Explosion, // Explosion at position (param1=x, param2=y, state=radius)
124 Olympe_EventType_AI_Noise, // Noise/sound at position (param1=x, param2=y, state=intensity)
125 Olympe_EventType_AI_DamageDealt, // Damage dealt to entity (targetUid=victim, deviceId=attacker, param1=damage)
126
129};
130
131// -------- GRID OVERLAY COLORS (backward compatibility, overridden by GridSettings_data) ----------
132static const SDL_Color COLLISION_OVERLAY_COLOR = { 150, 50, 200, 100 }; // Purple
133static const SDL_Color NAVIGATION_OVERLAY_COLOR = { 50, 200, 100, 100 }; // Green
134
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
static const SDL_Color COLLISION_OVERLAY_COLOR
EventType
@ Olympe_EventType_Camera_SetBounds
@ Olympe_EventType_Joystick_ButtonUp
@ Olympe_EventType_Camera_Mode_2D
@ Olympe_EventType_Camera_ClearBounds
@ Olympe_EventType_AI_DamageDealt
@ Olympe_EventType_Joystick_ButtonDown
@ Olympe_EventType_Joystick_AxisMotion
@ Olympe_EventType_Camera_RotateTo
@ Olympe_EventType_Object_Activate
@ Olympe_EventType_Camera_Teleport
@ Olympe_EventType_Keyboard_Connected
@ Olympe_EventType_Keyboard_Disconnected
@ Olympe_EventType_Game_Quit
@ Olympe_EventType_AI_Noise
@ Olympe_EventType_Game_SaveState
@ Olympe_EventType_Game_Restart
@ Olympe_EventType_Property_Add
@ Olympe_EventType_Camera_MoveToPosition
@ Olympe_EventType_Keyboard_KeyDown
@ Olympe_EventType_Mouse_ButtonDown
@ Olympe_EventType_SectorToActivate
@ Olympe_EventType_Menu_Enter
@ Olympe_EventType_Game_AddPlayer
@ Olympe_EventType_Any
@ Olympe_EventType_Object_Destroy
@ Olympe_EventType_Object_CollideDeathZone
@ Olympe_EventType_Camera_ZoomTo
@ Olympe_EventType_Camera_Mode_2_5D
@ Olympe_EventType_MAX
@ Olympe_EventType_Level_Unload
@ Olympe_EventType_Property_Remove
@ Olympe_EventType_Object_CollideEvent
@ Olympe_EventType_Object_UncollideEvent
@ Olympe_EventType_Object_Deactivate
@ Olympe_EventType_Game_LoadState
@ Olympe_EventType_Game_Resume
@ Olympe_EventType_Joystick_Connected
@ Olympe_EventType_Mouse_Connected
@ Olympe_EventType_Object_Create
@ Olympe_EventType_Object_UnCollideNav
@ Olympe_EventType_Object_CollideNav
@ Olympe_EventType_Level_Load
@ Olympe_EventType_System_Any
@ Olympe_EventType_Joystick_Disconnected
@ Olympe_EventType_Camera_Reset
@ Olympe_EventType_Camera_Target_Unfollow
@ Olympe_EventType_Mouse_Disconnected
@ Olympe_EventType_Camera_Target_Follow
@ Olympe_EventType_Game_RemovePlayer
@ Olympe_EventType_Keyboard_KeyUp
@ Olympe_EventType_Camera_Shake_Stop
@ Olympe_EventType_Camera_Mode_Isometric
@ Olympe_EventType_Camera_Shake
@ Olympe_EventType_Game_Pause
@ Olympe_EventType_Game_TakeScreenshot
@ Olympe_EventType_Mouse_ButtonUp
@ Olympe_EventType_Mouse_Motion
@ Olympe_EventType_Default
@ Olympe_EventType_Menu_Validate
@ Olympe_EventType_Mouse_Wheel
@ Olympe_EventType_Menu_Exit
@ Olympe_EventType_AI_Explosion
@ Olympe_EventType_SectorToDeactivate
static const int DEFAULT_WINDOW_HEIGHT
EventDomain
static const SDL_Color NAVIGATION_OVERLAY_COLOR
static const int DEFAULT_WINDOW_WIDTH
EventStructType
@ EventStructType_System_Windows
static const short MAX_PLAYERS
constexpr double k_PI