66 lines
1.3 KiB
C++
66 lines
1.3 KiB
C++
#pragma once
|
|
|
|
//Vendor
|
|
#include <yojimbo.h>
|
|
|
|
class Command;
|
|
#include "../GameServer.h"
|
|
|
|
// ---- Interface:
|
|
|
|
class Command
|
|
{
|
|
public:
|
|
// Create Commands from Network messages (Limited list)
|
|
static Command *create(int clientIndex, yojimbo::Message *message);
|
|
// Create Commands from Strings (Limited list)
|
|
static Command *create(std::string);
|
|
|
|
virtual void execute(GameServer *server) = 0;
|
|
};
|
|
|
|
// --- Classes Network:
|
|
|
|
class TestCommand : public Command
|
|
{
|
|
public:
|
|
TestCommand(int clientIndex, yojimbo::Message *message)
|
|
: m_clientIndex(clientIndex),
|
|
m_data(((TestMessage *)message)->m_data)
|
|
{}
|
|
|
|
virtual void execute(GameServer *server) override;
|
|
|
|
private:
|
|
int m_clientIndex;
|
|
int m_data;
|
|
};
|
|
|
|
class SetNameCommand : public Command
|
|
{
|
|
public:
|
|
SetNameCommand(int clientIndex, yojimbo::Message *message)
|
|
: m_clientIndex(clientIndex),
|
|
m_name(std::string(((SetNameMessage *)message)->buffer))
|
|
{}
|
|
|
|
virtual void execute(GameServer *server) override;
|
|
|
|
private:
|
|
int m_clientIndex;
|
|
std::string m_name;
|
|
};
|
|
|
|
// --- Classes Internal:
|
|
|
|
class TestCommandInternal : public Command
|
|
{
|
|
public:
|
|
virtual void execute(GameServer *server) override;
|
|
};
|
|
|
|
class StopCommandInternal : public Command
|
|
{
|
|
public:
|
|
virtual void execute(GameServer *server) override;
|
|
}; |