Make virtual methods protected.
This commit is contained in:
parent
482a13ea47
commit
6afa1a4cd4
6 changed files with 48 additions and 12 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
.ycm_extra_conf.py
|
.ycm_extra_conf.py
|
||||||
tags
|
tags
|
||||||
|
__pycache__/
|
||||||
|
|
|
@ -54,6 +54,7 @@ add_executable(${PROJECT_NAME}
|
||||||
src/ingamescene.cpp
|
src/ingamescene.cpp
|
||||||
src/sizenotifiable.cpp
|
src/sizenotifiable.cpp
|
||||||
src/sizeratio.cpp
|
src/sizeratio.cpp
|
||||||
|
src/gamescenebase.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(${PROJECT_NAME} SYSTEM
|
target_include_directories(${PROJECT_NAME} SYSTEM
|
||||||
|
|
26
src/gamescenebase.cpp
Normal file
26
src/gamescenebase.cpp
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include "gamescenebase.hpp"
|
||||||
|
|
||||||
|
namespace curry {
|
||||||
|
GameSceneBase::GameSceneBase() :
|
||||||
|
m_wants_to_quit(false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameSceneBase::prepare() {
|
||||||
|
m_wants_to_quit = false;
|
||||||
|
this->on_prepare();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameSceneBase::destroy() noexcept {
|
||||||
|
set_wants_to_quit();
|
||||||
|
this->on_destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GameSceneBase::wants_to_quit() const {
|
||||||
|
return m_wants_to_quit;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameSceneBase::set_wants_to_quit() {
|
||||||
|
m_wants_to_quit = true;
|
||||||
|
}
|
||||||
|
} //namespace curry
|
|
@ -3,11 +3,22 @@
|
||||||
namespace curry {
|
namespace curry {
|
||||||
class GameSceneBase {
|
class GameSceneBase {
|
||||||
public:
|
public:
|
||||||
|
GameSceneBase();
|
||||||
virtual ~GameSceneBase() noexcept = default;
|
virtual ~GameSceneBase() noexcept = default;
|
||||||
|
|
||||||
virtual void prepare() = 0;
|
void prepare();
|
||||||
|
void destroy() noexcept;
|
||||||
|
|
||||||
virtual void exec() = 0;
|
virtual void exec() = 0;
|
||||||
virtual bool wants_to_quit() const = 0;
|
|
||||||
virtual void destroy() noexcept = 0;
|
bool wants_to_quit() const;
|
||||||
|
void set_wants_to_quit();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void on_prepare() = 0;
|
||||||
|
virtual void on_destroy() noexcept = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_wants_to_quit;
|
||||||
};
|
};
|
||||||
} //namespace curry
|
} //namespace curry
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace curry {
|
||||||
|
|
||||||
IngameScene::~IngameScene() noexcept = default;
|
IngameScene::~IngameScene() noexcept = default;
|
||||||
|
|
||||||
void IngameScene::prepare() {
|
void IngameScene::on_prepare() {
|
||||||
std::cout << "game prepare\n";
|
std::cout << "game prepare\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,11 +17,7 @@ namespace curry {
|
||||||
std::cout << "game exec\n";
|
std::cout << "game exec\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IngameScene::wants_to_quit() const {
|
void IngameScene::on_destroy() noexcept {
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IngameScene::destroy() noexcept {
|
|
||||||
std::cout << "game destroy\n";
|
std::cout << "game destroy\n";
|
||||||
}
|
}
|
||||||
} //namespace curry
|
} //namespace curry
|
||||||
|
|
|
@ -12,10 +12,11 @@ namespace curry {
|
||||||
explicit IngameScene (cloonel::SDLMain* parSDLMain);
|
explicit IngameScene (cloonel::SDLMain* parSDLMain);
|
||||||
virtual ~IngameScene() noexcept;
|
virtual ~IngameScene() noexcept;
|
||||||
|
|
||||||
virtual void prepare() override;
|
|
||||||
virtual void exec() override;
|
virtual void exec() override;
|
||||||
virtual bool wants_to_quit() const override;
|
|
||||||
virtual void destroy() noexcept override;
|
protected:
|
||||||
|
virtual void on_prepare() override;
|
||||||
|
virtual void on_destroy() noexcept override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cloonel::SDLMain* m_sdlmain;
|
cloonel::SDLMain* m_sdlmain;
|
||||||
|
|
Loading…
Reference in a new issue