Zappy Server
C++ game server: world, rules, scheduler, network
Loading...
Searching...
No Matches
AiParser.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <optional>
4
#include <string>
5
#include <string_view>
6
#include <variant>
7
8
#include "../core/data/Resources.hpp"
9
20
namespace
Ai
{
21
struct
Forward
{};
22
struct
Right
{};
23
struct
Left
{};
24
struct
Look
{};
25
struct
Inventory
{};
26
struct
Broadcast
{
27
std::string
message
;
28
};
29
struct
ConnectNbr
{};
30
struct
Fork
{};
31
struct
Eject
{};
32
struct
Take
{
33
ResourceType
resource
;
34
};
35
struct
Set
{
36
ResourceType
resource
;
37
};
38
struct
Incantation
{};
39
40
using
Command
= std::variant<
Forward
,
Right
,
Left
,
Look
,
Inventory
,
Broadcast
,
ConnectNbr
,
Fork
,
41
Eject
,
Take
,
Set
,
Incantation
>;
42
}
// namespace Ai
43
52
class
AiParser
{
53
public
:
58
static
std::optional<Ai::Command>
parse
(std::string_view line);
59
};
ResourceType
ResourceType
Enumerate the different types of resources in the game.
Definition
Resources.hpp:12
AiParser
Parses a raw AI client line into a typed Ai::Command.
Definition
AiParser.hpp:52
AiParser::parse
static std::optional< Ai::Command > parse(std::string_view line)
Parse one line from an AI client (no trailing newline).
Definition
AiParser.cpp:3
Ai
Typed structs for the 12 AI client commands.
Definition
AiParser.hpp:20
Ai::Command
std::variant< Forward, Right, Left, Look, Inventory, Broadcast, ConnectNbr, Fork, Eject, Take, Set, Incantation > Command
Definition
AiParser.hpp:41
Ai::Broadcast
Definition
AiParser.hpp:26
Ai::Broadcast::message
std::string message
Definition
AiParser.hpp:27
Ai::ConnectNbr
Definition
AiParser.hpp:29
Ai::Eject
Definition
AiParser.hpp:31
Ai::Fork
Definition
AiParser.hpp:30
Ai::Forward
Definition
AiParser.hpp:21
Ai::Incantation
Definition
AiParser.hpp:38
Ai::Inventory
Definition
AiParser.hpp:25
Ai::Left
Definition
AiParser.hpp:23
Ai::Look
Definition
AiParser.hpp:24
Ai::Right
Definition
AiParser.hpp:22
Ai::Set
Definition
AiParser.hpp:35
Ai::Set::resource
ResourceType resource
Definition
AiParser.hpp:36
Ai::Take
Definition
AiParser.hpp:32
Ai::Take::resource
ResourceType resource
Definition
AiParser.hpp:33
server
src
protocol
AiParser.hpp
Generated by
1.9.8