added missing changes.

This commit is contained in:
Andreas Ortmann 2016-09-30 14:21:04 +02:00
parent b6f99e6498
commit b5efac002e
4 changed files with 70 additions and 5 deletions

View file

@ -76,6 +76,33 @@ namespace game {
} }
} }
void DeveloperCommand::apply(Player *player, State *state) const
{
if (!state->developerMode()) {
std::cout<<"ignoring dev command while not in developer mode: '"
<< m_payload << "'" << std::endl;
return;
}
// TODO: give developer mode to game
// TODO: forward to application in some way
std::cout << "got developer command: '" << m_payload << "'" << std::endl;
if (m_payload == "reload shader") {
// TODO: really do that ;)
} else if (m_payload == "reload models") {
}
}
void SetDeveloperModeCommand::apply(Player *player, State *state) const
{
// TODO: check if player is admin
state->setDeveloperMode(m_enable);
}
#if 0 #if 0
bool TakeOverPlayerCommand::ready(const Player *player, const State *state) const bool TakeOverPlayerCommand::ready(const Player *player, const State *state) const
{ {

View file

@ -79,7 +79,6 @@ namespace game {
} }
std::string name() const { return "<change name>"; } std::string name() const { return "<change name>"; }
void apply(Player *player, State *state) const; void apply(Player *player, State *state) const;
private: private:
@ -96,7 +95,6 @@ namespace game {
} }
std::string name() const { return "<clear traces>"; } std::string name() const { return "<clear traces>"; }
void apply(Player *player, State *state) const; void apply(Player *player, State *state) const;
}; };
@ -110,13 +108,40 @@ namespace game {
} }
std::string name() const { return "<set speed>"; } std::string name() const { return "<set speed>"; }
void apply(Player *player, State *state) const; void apply(Player *player, State *state) const;
private: private:
float m_speed; float m_speed;
}; };
/**
* Developer command.
*/
class DeveloperCommand : public Command {
public:
DeveloperCommand(const std::string &payload) : m_payload(payload)
{
}
std::string name() const { return "<dev command>"; }
void apply(Player *player, State *state) const;
private:
std::string m_payload;
};
class SetDeveloperModeCommand : public Command {
public: SetDeveloperModeCommand(bool enable) : m_enable(enable)
{
}
std::string name() const { return "<set dev. mode>"; }
void apply(Player *player, State *state) const;
private:
bool m_enable;
};
#if 0 #if 0
/** /**
* Take over a session for a player that left. * Take over a session for a player that left.

View file

@ -19,7 +19,7 @@
#include "util.hpp" #include "util.hpp"
namespace game { namespace game {
void State::init() void State::init(bool devMode)
{ {
m_nextId = 0; m_nextId = 0;
m_time = 0.0; m_time = 0.0;
@ -28,6 +28,7 @@ namespace game {
m_playerRespawnTime = 2.0; m_playerRespawnTime = 2.0;
m_defaultEnergy = 10.0; m_defaultEnergy = 10.0;
m_maxNumTraces = 10; m_maxNumTraces = 10;
m_developerMode = devMode;
bool planetsOnCircle = false; bool planetsOnCircle = false;

View file

@ -40,7 +40,7 @@ namespace game {
// called to setup the state (randomize planets, kill // called to setup the state (randomize planets, kill
// traces/missiles/ships etc.) // traces/missiles/ships etc.)
void init(); void init(bool devMode=false);
// main method to advance the simulation by the given timestamp in // main method to advance the simulation by the given timestamp in
// seconds. // seconds.
@ -80,6 +80,17 @@ namespace game {
// get the current time // get the current time
float timestamp() const { return m_time; } float timestamp() const { return m_time; }
// check if game is in dev. mode.
// custom commands will then work etc.
bool developerMode() const { return m_developerMode; }
// change the mode.
void setDeveloperMode(bool on)
{
std::cout<<"[state] developer mode is: " << (on ? "on" : "off") << std::endl;
m_developerMode = on;
}
/*************************************************************************/ /*************************************************************************/
/* Rendering */ /* Rendering */
/*************************************************************************/ /*************************************************************************/
@ -122,5 +133,6 @@ namespace game {
int m_nextId; int m_nextId;
int m_maxNumTraces; int m_maxNumTraces;
float m_time; float m_time;
bool m_developerMode;
}; };
}; };