3 #include <boost/asio/awaitable.hpp>
5 #include "RehtiReader.hpp"
13 Client(std::string ip, std::string port);
20 boost::asio::awaitable<bool>
connect();
27 boost::asio::awaitable<void>
attack(
const int& targetId);
35 boost::asio::awaitable<void>
move(
const int& x,
const int& y);
50 boost::asio::awaitable<void>
pickUpItem(
const int& itemId,
const int& x,
const int& y);
56 boost::asio::awaitable<void>
useItem(
const int itemInstanceId);
62 boost::asio::awaitable<void>
dropItem(
const int itemInstanceId);
68 boost::asio::awaitable<void>
unequipItem(
const int itemInstanceId);
75 boost::asio::awaitable<void>
talk(
const int& npcId);
86 boost::asio::awaitable<bool>
login();
108 boost::asio::executor_work_guard<boost::asio::io_context::executor_type>
workGuardM;
Loads all of the assets into memory (objects, textures, etc.).
Definition: AssetCache.hpp:17
static AssetCache & getInstance()
Returns the singleton instance of the AssetCache.
Definition: AssetCache.hpp:22
Definition: Client.hpp:11
boost::asio::io_context ioContextM
Definition: Client.hpp:105
boost::asio::awaitable< void > interactWithObject(const int &objectId)
Sends an object interaction message to the server.
Definition: Client.cpp:130
boost::asio::awaitable< void > talk(const int &npcId)
Send talk message to the server.
Definition: Client.cpp:109
GameStateMessage prevGameStateMsgM
Previous game state message.
Definition: Client.hpp:126
boost::asio::awaitable< bool > connect()
Connects to the server.
Definition: Client.cpp:78
boost::asio::executor_work_guard< boost::asio::io_context::executor_type > workGuardM
Definition: Client.hpp:108
boost::asio::awaitable< void > attack(const int &targetId)
Sends an attack message to the server.
Definition: Client.cpp:99
boost::asio::awaitable< void > pickUpItem(const int &itemId, const int &x, const int &y)
Sends a PickUpItemMessage to the server.
Definition: Client.cpp:140
boost::asio::awaitable< void > useItem(const int itemInstanceId)
Send a UseItemMessage for item with given instance id.
Definition: Client.cpp:153
void handleMouseClick(const Hit &hit)
Handles a mouse click hit on the graphics window.
Definition: Client.cpp:387
boost::asio::awaitable< bool > login()
Prompts user for login information and sends a LoginMessage with that information....
Definition: Client.cpp:48
std::mutex graphLibMutexM
Definition: Client.hpp:120
boost::asio::awaitable< void > unequipItem(const int itemInstanceId)
Send a UnequipMessage for item with given instance id.
Definition: Client.cpp:175
boost::asio::awaitable< void > move(const int &x, const int &y)
Sends a move message to the server.
Definition: Client.cpp:119
void start()
Starts the client.
Definition: Client.cpp:29
boost::asio::awaitable< void > dropItem(const int itemInstanceId)
Send a DropItemMessage for item with given instance id.
Definition: Client.cpp:164
void startGraphics()
Starts the graphics library.
Definition: Client.cpp:438
std::thread ioThreadM
Definition: Client.hpp:115
bool graphLibReadyFlagM
GraphLib ready flag.
Definition: Client.hpp:119
std::condition_variable graphLibReadyM
GraphLib ready lock.
Definition: Client.hpp:118
AssetCache & assetCacheM
Definition: Client.hpp:128
std::thread graphicsThreadM
Definition: Client.hpp:113
MessageQueue messagesM
Definition: Client.hpp:110
boost::asio::ip::tcp::resolver::results_type endpointsM
Definition: Client.hpp:107
std::thread connectionThreadM
Definition: Client.hpp:114
Client(std::string ip, std::string port)
Definition: Client.cpp:12
Hit lastHitM
Last detected hit from a mouse click.
Definition: Client.hpp:124
RehtiAudio audioLibM
Definition: Client.hpp:122
std::unique_ptr< Connection > connectionM
Definition: Client.hpp:111
RehtiGraphics * pGraphLibM
Definition: Client.hpp:117
boost::asio::ip::tcp::resolver resolverM
Definition: Client.hpp:106
void processMessages()
Processes messages from the server.
Definition: Client.cpp:186
Definition: RehtiGraphics.hpp:60
Definition: BasicTypes.hpp:153