#include "lpxclient.hpp" #include "drivenengine.hpp" #include "world.hpp" #include "luaconsole.hpp" #include "invocation.hpp" #include class LpxClient : public DrivenEngine { public: using StringVec = LuaConsole::StringVec; UniqueWorld world_; int64_t actor_id_; InvocationQueue unack_; UniqueChannel channel_; LuaConsole console_; Gui gui_; int64_t gui_place_; void do_view_command(const StringVec &cmd); void do_menu_command(const StringVec &cmd); void do_choose_command(const StringVec &cmd); void do_quit_command(const StringVec &cmd); void do_lua(const std::string &exp); void do_command(const StringVec &exp); public: virtual void event_init(int argc, char *argv[]) { // Create the world model. world_.reset(new World(util::WORLD_TYPE_C_SYNC)); // This is a temporary actor that will be used only until the server sends // us the first difference transmission. We do this only to establish // the invariant that there's always an actor. When the first difference // transmission arrives, this actor may be deleted, or it may just be // ignored, at the server's discretion. actor_id_ = world_->create_login_actor(); // Establish a connection to the server. channel_ = new_outgoing_channel("localhost:8085"); } virtual void event_update() { } }; UniqueDrivenEngine make_LpxClient() { return UniqueDrivenEngine(new LpxClient); }