#include "Command.h" #include "../network/Shared.h" #include #include Command *Command::create(int clientIndex, yojimbo::Message *message) { switch (message->GetType()) { case (int)GameMessageType::TEST: return new TestCommand(clientIndex, ((TestMessage *)message)->m_data); case (int)GameMessageType::SETNAME: return new SetNameCommand(clientIndex, std::string(((SetNameMessage *)message)->buffer)); case (int)GameMessageType::INPUTSTATEMESSAGE: return new PlayerInputCommand(clientIndex, ((InputStateMessage *) message)->m_vel_x, ((InputStateMessage *) message)->m_vel_y); default: std::cout << "Unknown message type received over network!" << std::endl; return nullptr; } } Command *Command::create(std::string command) { std::stringstream ss(command); std::string token; ss >> token; if (token == "stop") { return new StopCommand(); } else if (token == "test") { return new TestCommand(-1, 100); } else if (token == "sendTest") { return new SendTestCommand(0, 42); } std::cout << "Local command don't exists: " << command << std::endl; return nullptr; }