Files
DarkRP2DServer/src/commands/Command.cpp
2020-03-28 13:50:48 +01:00

42 lines
1.2 KiB
C++

#include "Command.h"
#include "../network/Shared.h"
#include <iostream>
#include <sstream>
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;
}