SUNENGINE 0.0.2
A simple and bright C++ game engine.
 
Loading...
Searching...
No Matches
Alarmable.h
1#ifndef Alarmable_H
2#define Alarmable_H
3
5#include "AlarmableManager.h"
6
9
18class Alarmable
19{
20protected:
21 Alarmable();
22 Alarmable(const Alarmable&) = delete;
23 Alarmable& operator=(const Alarmable&) = delete;
24 virtual ~Alarmable();
25
32
38
45
46private:
47 friend class AlarmableAttorney;
48
53 {
55 RegistrationState RegStateCurr = RegistrationState::CURRENTLY_DEREGISTERED;
56 AlarmRegistrationCommand* pAlarmRegistrationCmd = nullptr;
57 AlarmDeregistrationCommand* pAlarmDeregistrationCmd = nullptr;
58 };
59
64
68 virtual void Alarm0() {};
69
73 virtual void Alarm1() {};
74
78 virtual void Alarm2() {};
79
86
92
98
105};
106
107#endif
Defines the registration states for GameObjects.
RegistrationState
Enum class representing the registration states of GameObjects.
Definition RegistrationState.h:19
Command to deregister an alarm for a GameObject.
Definition AlarmDeregistrationCommand.h:17
Command to register an alarm for a GameObject.
Definition AlarmRegistrationCommand.h:18
void TriggerAlarm(AlarmableManager::ALARM_ID id)
Triggers the alarm for the GameObject.
Definition Alarmable.cpp:59
bool IsAlarmRegistered(AlarmableManager::ALARM_ID id)
Checks if the given alarm is currently registered.
Definition Alarmable.cpp:40
int GetAlarmRegInt(AlarmableManager::ALARM_ID id)
Gets the integer representation of the alarm registration state.
Definition Alarmable.cpp:77
void SubmitAlarmDeregistration(AlarmableManager::ALARM_ID id)
Submits the alarm deregistration for the GameObject.
Definition Alarmable.cpp:33
RegistrationData RegData[AlarmableManager::ALARM_NUMBER]
Array to hold registration data for all alarms.
Definition Alarmable.h:63
virtual void Alarm1()
Virtual method to be implemented by derived classes for alarm 1 when triggered.
Definition Alarmable.h:73
void AlarmDeregistration(AlarmableManager::ALARM_ID id)
Deregisters the GameObject from alarms in the scene.
Definition Alarmable.cpp:52
void AlarmRegistration(AlarmableManager::ALARM_ID id, float t)
Registers the GameObject for alarms in the scene.
Definition Alarmable.cpp:45
virtual void Alarm0()
Virtual method to be implemented by derived classes for alarm 0 when triggered.
Definition Alarmable.h:68
virtual void Alarm2()
Virtual method to be implemented by derived classes for alarm 2 when triggered.
Definition Alarmable.h:78
void SubmitAlarmRegistration(AlarmableManager::ALARM_ID id, float t)
Submits the alarm registration for the GameObject.
Definition Alarmable.cpp:25
static const int ALARM_NUMBER
The number of alarms.
Definition AlarmableManager.h:27
ALARM_ID
Enum class representing the alarm IDs.
Definition AlarmableManager.h:22
TimeLineMap::iterator StorageMapRef
Type alias for the storage map iterator.
Definition AlarmableManager.h:74
Structure to hold registration data for alarms.
Definition Alarmable.h:53