2021-10-05 14:48:28 -04:00
|
|
|
#pragma once
|
2021-05-28 13:50:57 -04:00
|
|
|
|
2021-12-29 09:59:18 -05:00
|
|
|
#include "core/gameevent.h"
|
2021-12-03 14:21:27 -05:00
|
|
|
#include "core/updatedata.h"
|
2021-05-28 13:50:57 -04:00
|
|
|
|
2021-12-29 09:59:18 -05:00
|
|
|
namespace kku
|
|
|
|
{
|
|
|
|
|
2022-05-07 23:43:12 -04:00
|
|
|
/// Game
|
|
|
|
///
|
|
|
|
/// Functional aggregation of
|
|
|
|
/// logic for actual game mode
|
2021-12-28 13:04:50 -05:00
|
|
|
class Game
|
2021-05-28 13:50:57 -04:00
|
|
|
{
|
2022-10-17 22:59:51 -04:00
|
|
|
public:
|
2021-05-28 13:50:57 -04:00
|
|
|
virtual ~Game() = default;
|
|
|
|
|
|
|
|
virtual void run() = 0;
|
2022-10-17 22:59:51 -04:00
|
|
|
virtual void input(GameEvent &&inputdata) = 0;
|
|
|
|
virtual void update(UpdateData &&updatedata) = 0;
|
2021-12-28 13:04:50 -05:00
|
|
|
virtual void display() const = 0;
|
2021-05-28 13:50:57 -04:00
|
|
|
};
|
2021-12-29 09:59:18 -05:00
|
|
|
|
2022-10-17 22:59:51 -04:00
|
|
|
} // namespace kku
|