42 lines
1.2 KiB
C++
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;
|
|
} |