30#ifndef HORIZON_ZONE_ZONESYSTEM_HPP
31#define HORIZON_ZONE_ZONESYSTEM_HPP
39#include <boost/mysql/error_with_diagnostics.hpp>
40#include <boost/mysql/handshake_params.hpp>
41#include <boost/mysql/results.hpp>
42#include <boost/mysql/static_results.hpp>
43#include <boost/mysql/tcp_ssl.hpp>
44#include <boost/describe/class.hpp>
74 gender, max_inventory_size, last_unique_id, font, unban_time, rename_count,
75 hotkey_row_index, change_slot_count, show_equip, allow_party, partner_aid,
76 father_aid, mother_aid, child_aid, party_id, guild_id,
77 homun_id, pet_id, elemental_id, saved_map, saved_x, saved_y,
78 current_map, current_x, current_y))
80struct s_login_info_query_result
84 std::string current_map;
98struct s_scenario_login_request
103 uint32_t client_time;
113 std::shared_ptr<ZoneSession> get_session() {
return _session; }
114 void set_session(std::shared_ptr<ZoneSession> session) { _session = session; }
116 std::shared_ptr<ZoneSession> _session;
125 std::shared_ptr<KernelComponent> get_component() {
return _component.expired() ==
false ? _component.lock() :
nullptr; }
130 std::weak_ptr<KernelComponent> _component;
134class SCENARIO_LOGIN :
public ActiveRuntimeScenario
143 Login(std::shared_ptr<SCENARIO_LOGIN> parent_context)
146 void set_request(s_scenario_login_request req) { _request = req; }
147 s_scenario_login_request get_request() {
return _request; }
151 s_scenario_login_request _request;
160struct s_player_loaded_data
165 int32_t current_x, current_y;
168class SCENARIO_CREATE_PLAYER :
public ActiveRuntimeScenario
173 _previous_context_result(s_login_info_query_result{})
179 CreatePlayer(std::shared_ptr<SCENARIO_CREATE_PLAYER> parent_context)
183 void set_request(s_player_loaded_data req) { }
184 s_player_loaded_data get_request() {
return _request; }
188 s_player_loaded_data _request;
193 _previous_context_result = result;
198 return _previous_context_result;
205 if (RuntimeRoutineContext::run()) {
215class SCENARIO_LOGIN_RESPONSE :
public ActiveRuntimeScenario
221 struct s_scenario_login_response_request
224 uint32_t current_x, current_y;
231 LoginResponse(std::shared_ptr<SCENARIO_LOGIN_RESPONSE> parent_context)
236 void set_request(s_scenario_login_response_request req) { _request = req; }
237 s_scenario_login_response_request get_request() {
return _request; }
239 s_scenario_login_response_request _request;
243class SCENARIO_GENERIC_TASK :
public ActiveRuntimeScenario
252 GenericTask(std::shared_ptr<SCENARIO_GENERIC_TASK> parent_context)
257 void set_task(std::function<
void(std::shared_ptr<GenericTask> generic_task)> task) { _generic_task = task; }
258 std::function<void(std::shared_ptr<GenericTask> send_packet)> get_task() {
return _generic_task; }
260 std::function<void(std::shared_ptr<GenericTask> send_packet)> _generic_task;
264class SCENARIO_REGISTER_MONSTER_SPAWN :
public PassiveRuntimeScenario
267 SCENARIO_REGISTER_MONSTER_SPAWN(std::shared_ptr<KernelComponent> component)
270 struct s_register_monster_spawn_request
278 RegisterMonsterSpawn(std::shared_ptr<SCENARIO_REGISTER_MONSTER_SPAWN> parent_context)
283 void set_request(s_register_monster_spawn_request request) { _request = request; }
284 s_register_monster_spawn_request get_request() {
return _request; }
286 s_register_monster_spawn_request _request;
290class SCENARIO_SPAWN_MONSTERS_IN_MAP :
public PassiveRuntimeScenario
293 SCENARIO_SPAWN_MONSTERS_IN_MAP(std::shared_ptr<KernelComponent> component)
296 struct s_spawn_monster_request
298 std::string map_name;
304 SpawnMonsters(std::shared_ptr<SCENARIO_SPAWN_MONSTERS_IN_MAP> parent_context)
309 void set_request(s_spawn_monster_request request) { _request = request; }
310 s_spawn_monster_request get_request() {
return _request; }
312 s_spawn_monster_request _request;
316class SCENARIO_REMOVE_MONSTERS_IN_MAP :
public PassiveRuntimeScenario
319 SCENARIO_REMOVE_MONSTERS_IN_MAP(std::shared_ptr<KernelComponent> component)
322 struct s_remove_monster_request
324 std::string map_name;
330 RemoveMonsters(std::shared_ptr<SCENARIO_REMOVE_MONSTERS_IN_MAP> parent_context)
335 void set_request(s_remove_monster_request request) { _request = request; }
336 s_remove_monster_request get_request() {
return _request; }
338 s_remove_monster_request _request;
#define MAX_INVENTORY_SIZE
Definition: ItemDefinitions.hpp:54
BOOST_DESCRIBE_STRUCT(s_character_info,(),(character_id, slot, online, gender, max_inventory_size, last_unique_id, font, unban_time, rename_count, hotkey_row_index, change_slot_count, show_equip, allow_party, partner_aid, father_aid, mother_aid, child_aid, party_id, guild_id, homun_id, pet_id, elemental_id, saved_map, saved_x, saved_y, current_map, current_x, current_y)) struct s_login_info_query_result
Definition: ZoneSystem.hpp:73
Definition: Server.hpp:371
Definition: System.hpp:379
Definition: System.hpp:400
Definition: System.hpp:389
Definition: System.hpp:600
runtime_module_type
Definition: System.hpp:81
@ RUNTIME_GAMELOGIC
Definition: System.hpp:86
@ RUNTIME_RUNTIME
Definition: System.hpp:92
runtime_synchronization_method
Definition: System.hpp:97
@ RUNTIME_SYNC_WAIT_CHECK_STATE
Definition: System.hpp:100
Definition: Element.hpp:7
Definition: MonsterDefinitions.hpp:169
Definition: ZoneSystem.hpp:49
int32_t pet_id
Definition: ZoneSystem.hpp:66
int32_t child_aid
Definition: ZoneSystem.hpp:64
int32_t current_x
Definition: ZoneSystem.hpp:70
int32_t guild_id
Definition: ZoneSystem.hpp:65
int16_t slot
Definition: ZoneSystem.hpp:51
int32_t party_id
Definition: ZoneSystem.hpp:65
int32_t mother_aid
Definition: ZoneSystem.hpp:64
int32_t father_aid
Definition: ZoneSystem.hpp:64
int8_t show_equip
Definition: ZoneSystem.hpp:61
int32_t max_inventory_size
Definition: ZoneSystem.hpp:54
int32_t saved_y
Definition: ZoneSystem.hpp:68
int32_t character_id
Definition: ZoneSystem.hpp:50
int32_t current_y
Definition: ZoneSystem.hpp:70
int32_t partner_aid
Definition: ZoneSystem.hpp:63
int32_t elemental_id
Definition: ZoneSystem.hpp:66
int32_t homun_id
Definition: ZoneSystem.hpp:66
std::string gender
Definition: ZoneSystem.hpp:53
int16_t hotkey_row_index
Definition: ZoneSystem.hpp:59
int32_t unban_time
Definition: ZoneSystem.hpp:57
int32_t rename_count
Definition: ZoneSystem.hpp:58
int8_t online
Definition: ZoneSystem.hpp:52
std::string saved_map
Definition: ZoneSystem.hpp:67
int8_t font
Definition: ZoneSystem.hpp:56
int32_t saved_x
Definition: ZoneSystem.hpp:68
int64_t last_unique_id
Definition: ZoneSystem.hpp:55
int8_t allow_party
Definition: ZoneSystem.hpp:62
int32_t change_slot_count
Definition: ZoneSystem.hpp:60
std::string current_map
Definition: ZoneSystem.hpp:69