Horizon Official Technical Documentation
UserInterface.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 *
11 * Copyright (c) 2019 Sagun K. (sagunxp@gmail.com).
12 * Copyright (c) 2019 Horizon Dev Team.
13 *
14 * Base Author - Sagun K. (sagunxp@gmail.com)
15 *
16 * This library is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this library. If not, see <http://www.gnu.org/licenses/>.
28 **************************************************/
29
30#ifndef HORIZON_ZONE_USER_INTERFACE_HPP
31#define HORIZON_ZONE_USER_INTERFACE_HPP
32
34
35namespace Horizon
36{
37namespace Zone
38{
39class ZoneSession;
40namespace UI
41{
43{
44public:
45 Auction(std::shared_ptr<ZoneSession> session);
46 ~Auction();
47
48 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
49
50 void add(int now_money, int max_money, int16_t delete_hour);
51 void add_cancel(int auction_id);
52 void add_item(int inventory_index, int amount);
53 void buy(int auction_id, int money);
55 void search_item(cz_auction_search_type search_type, int auction_id, std::string search_text, int page_number);
57 void stop(int auction_id);
58
59 bool notify_add_item(int inventory_index, zc_ack_auction_add_item_result_type result);
60
61private:
62 std::weak_ptr<ZoneSession> _session;
63};
65{
66public:
67 Chatroom(std::shared_ptr<ZoneSession> session);
68 ~Chatroom();
69
70 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
71
72 void create_chatroom(int limit, int _public, std::string password, std::string title);
73 void role_change(int role, std::string name);
74 void add_member(int chat_id, std::string password);
75 void expel_member(std::string name);
76 void leave();
77 void change_properties(int limit, int type, std::string password, std::string title);
78
79private:
80 std::weak_ptr<ZoneSession> _session;
81};
82class Friend
83{
84public:
85 Friend(std::shared_ptr<ZoneSession> session);
86 ~Friend();
87
88 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
89
90 void request(int inviter_account_id, int inviter_char_id, cz_ack_req_add_friends_result_type result);
91 void add(std::string name);
92 void remove(int account_id, int char_id);
93 bool notify_add_friend_request(int inviter_account_id, int inviter_char_id, std::string inviter_name);
94
95private:
96 std::weak_ptr<ZoneSession> _session;
97};
98class Guild
99{
100public:
101 Guild(std::shared_ptr<ZoneSession> session);
102 ~Guild();
103
104 void create(int master_id, std::string name);
105 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
106 void request_guild_information(int type);
108 void change_position_info(std::vector<s_cz_reg_change_guild_positioninfo> info);
109 void change_member_positions(std::vector<s_cz_req_change_memberpos> members);
110 void change_emblem(std::string emblem);
111 void change_notice(int guild_id, std::string subject, std::string notice);
112 void invite(int account_id, int inviter_account_id, int inviter_char_id);
113 void invite(std::string name);
114 void invite_response(int guild_id, cz_join_guild_response_type response);
115 void leave(int guild_id, int account_id, int char_id, std::string reason);
116 void expel(int guild_id, int account_id, int char_id, std::string reason);
117 void send_message(std::string message);
118 void invite_ally(int account_id, int inviter_account_id, int inviter_char_id);
119 void invite_ally_response(int inviter_account_id, cz_ally_guild_response_type response);
121 void add_opposition(int account_id);
122 void disband(std::string key);
123
124 bool notify_expel_member(std::string char_name, std::string reason, std::string account_name);
125 bool notify_expel_member(std::string char_name, std::string reason);
126private:
127 std::weak_ptr<ZoneSession> _session;
128};
129
130class Clan
131{
132public:
133 Clan(std::shared_ptr<ZoneSession> session);
134 ~Clan();
135
136 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
137
138 void message(std::string message);
139 bool notify_leave();
140
141private:
142 std::weak_ptr<ZoneSession> _session;
143};
144
145class Mail
146{
147public:
148 Mail(std::shared_ptr<ZoneSession> session);
149 ~Mail();
150
151 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
152
153 void check_receiver_name(std::string name);
154 void add_item(int inventory_index, int amount);
155 void delete_(int mail_id);
156 void retrieve_attachment(int mail_id);
157 void list();
158 void open(int mail_id);
160 void send(std::string recipient, std::string title, std::string body);
161 void return_(int mail_id, std::string receiver_name);
162
163 bool notify_add_item(int inventory_index, zc_ack_mail_add_item_result_type result);
164 bool notify_delete(int mail_id, zc_ack_mail_delete_result_type result);
165 bool notify_return(int mail_id, zc_ack_mail_return_result_type result);
166private:
167 std::weak_ptr<ZoneSession> _session;
168};
169class Party
170{
171public:
172 Party(std::shared_ptr<ZoneSession> session);
173 ~Party();
174
175 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
176
177 void create(std::string name, int item_pickup_rule, int item_share_rule);
178 void invite(int account_id);
179 void invite(std::string name);
180 void invite_response(int party_id, enum party_invite_response_type response);
181 void leave();
182 void expel_member(int account_id, std::string name);
183 void change_properties(int exp_share_rule, int item_pickup_rule, int item_share_rule);
184 void send_message(int packet_length, std::string message);
185 void change_leader(int account_id);
186 void refuse_invite(bool refuse);
187
188 /* Notify */
190
191private:
192 std::weak_ptr<ZoneSession> _session;
193};
194
196{
197public:
198 PartyBooking(std::shared_ptr<ZoneSession> session);
200
201 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
202
203 void delete_();
204 void register_(int level, int map_id, std::vector<int> jobs);
205 void search(int level, int map_id, int job, int last_index, int result_count);
206 void update(std::vector<int> jobs);
207
208private:
209 std::weak_ptr<ZoneSession> _session;
210};
211class RODEx
212{
213public:
214 RODEx(std::shared_ptr<ZoneSession> session);
215 ~RODEx();
216
217 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
218
220
221private:
222 std::weak_ptr<ZoneSession> _session;
223};
225{
226public:
227 Roulette(std::shared_ptr<ZoneSession> session);
228 ~Roulette();
229
230 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
231
232 bool notify_close();
233
234private:
235 std::weak_ptr<ZoneSession> _session;
236};
237class Trade
238{
239public:
240 Trade(std::shared_ptr<ZoneSession> session);
241 ~Trade();
242
243 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
244
245 void request(int account_id);
246 void response(int result);
247 void add_zeny(int zeny);
248 void add_item(int inventory_index, int amount);
249 void lock();
250 void cancel();
251 void commit();
252
254 bool notify_response(zc_ack_exchange_item_result_type result, int char_id, int base_level);
255
256private:
257 std::weak_ptr<ZoneSession> _session;
258};
259class Quest
260{
261public:
262 Quest(std::shared_ptr<ZoneSession> session);
263 ~Quest();
264
265 std::shared_ptr<ZoneSession> get_session() { return _session.lock(); }
266
267 void update_status(int quest_id, cz_active_quest_type type);
268private:
269 std::weak_ptr<ZoneSession> _session;
270};
271}
272}
273}
274
275#endif /* HORIZON_ZONE_USER_INTERFACE_HPP */
zc_ack_auction_add_item_result_type
Definition: ClientDefinitions.hpp:783
zc_ack_exchange_item_result_type
Definition: ClientDefinitions.hpp:475
cz_active_quest_type
Definition: ClientDefinitions.hpp:616
cz_join_guild_response_type
Definition: ClientDefinitions.hpp:586
zcack_makegroup_result_type
Definition: ClientDefinitions.hpp:391
cz_auction_create_type
Definition: ClientDefinitions.hpp:629
cz_mail_reset_item_type
Definition: ClientDefinitions.hpp:681
cz_ally_guild_response_type
Definition: ClientDefinitions.hpp:592
cz_auction_reqmyinfo_type
Definition: ClientDefinitions.hpp:645
cz_ack_req_add_friends_result_type
Definition: ClientDefinitions.hpp:604
zc_ack_mail_delete_result_type
Definition: ClientDefinitions.hpp:840
zc_ack_mail_add_item_result_type
Definition: ClientDefinitions.hpp:834
cz_auction_search_type
Definition: ClientDefinitions.hpp:635
zc_ack_mail_return_result_type
Definition: ClientDefinitions.hpp:846
party_invite_response_type
Definition: ClientDefinitions.hpp:364
cz_req_delete_related_guild_relation_type
Definition: ClientDefinitions.hpp:598
Definition: UserInterface.hpp:43
void create(cz_auction_create_type type)
Definition: UserInterface.cpp:68
void stop(int auction_id)
Definition: UserInterface.cpp:83
~Auction()
Definition: UserInterface.cpp:43
void own_information(cz_auction_reqmyinfo_type type)
Definition: UserInterface.cpp:78
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:62
void buy(int auction_id, int money)
Definition: UserInterface.cpp:63
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:48
Auction(std::shared_ptr< ZoneSession > session)
Auction.
Definition: UserInterface.cpp:37
void add_item(int inventory_index, int amount)
Definition: UserInterface.cpp:58
void search_item(cz_auction_search_type search_type, int auction_id, std::string search_text, int page_number)
Definition: UserInterface.cpp:73
void add_cancel(int auction_id)
Definition: UserInterface.cpp:53
void add(int now_money, int max_money, int16_t delete_hour)
Definition: UserInterface.cpp:48
bool notify_add_item(int inventory_index, zc_ack_auction_add_item_result_type result)
Definition: UserInterface.cpp:88
Definition: UserInterface.hpp:65
void role_change(int role, std::string name)
Definition: UserInterface.cpp:114
void expel_member(std::string name)
Definition: UserInterface.cpp:124
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:70
void change_properties(int limit, int type, std::string password, std::string title)
Definition: UserInterface.cpp:134
void create_chatroom(int limit, int _public, std::string password, std::string title)
Definition: UserInterface.cpp:109
~Chatroom()
Definition: UserInterface.cpp:104
void leave()
Definition: UserInterface.cpp:129
void add_member(int chat_id, std::string password)
Definition: UserInterface.cpp:119
Chatroom(std::shared_ptr< ZoneSession > session)
Chatroom.
Definition: UserInterface.cpp:98
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:80
Definition: UserInterface.hpp:131
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:136
~Clan()
Definition: UserInterface.cpp:303
Clan(std::shared_ptr< ZoneSession > session)
Clan.
Definition: UserInterface.cpp:297
bool notify_leave()
Definition: UserInterface.cpp:313
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:142
void message(std::string message)
Definition: UserInterface.cpp:308
Definition: UserInterface.hpp:83
bool notify_add_friend_request(int inviter_account_id, int inviter_char_id, std::string inviter_name)
Definition: UserInterface.cpp:168
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:88
void add(std::string name)
Definition: UserInterface.cpp:158
void remove(int account_id, int char_id)
Definition: UserInterface.cpp:163
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:96
void request(int inviter_account_id, int inviter_char_id, cz_ack_req_add_friends_result_type result)
Definition: UserInterface.cpp:153
~Friend()
Definition: UserInterface.cpp:148
Friend(std::shared_ptr< ZoneSession > session)
Friend.
Definition: UserInterface.cpp:142
Definition: UserInterface.hpp:99
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:127
void invite(int account_id, int inviter_account_id, int inviter_char_id)
Definition: UserInterface.cpp:226
Guild(std::shared_ptr< ZoneSession > session)
Guild.
Definition: UserInterface.cpp:179
void invite_response(int guild_id, cz_join_guild_response_type response)
Definition: UserInterface.cpp:236
void create(int master_id, std::string name)
Definition: UserInterface.cpp:190
void remove_related_guild(int guild_id, cz_req_delete_related_guild_relation_type relation)
Definition: UserInterface.cpp:266
~Guild()
Definition: UserInterface.cpp:185
void change_notice(int guild_id, std::string subject, std::string notice)
Definition: UserInterface.cpp:220
void expel(int guild_id, int account_id, int char_id, std::string reason)
Definition: UserInterface.cpp:246
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:105
void add_opposition(int account_id)
Definition: UserInterface.cpp:271
void notify_menu_interface()
Definition: UserInterface.cpp:200
void change_position_info(std::vector< s_cz_reg_change_guild_positioninfo > info)
Definition: UserInterface.cpp:205
void change_emblem(std::string emblem)
Definition: UserInterface.cpp:215
bool notify_expel_member(std::string char_name, std::string reason, std::string account_name)
Definition: UserInterface.cpp:282
void send_message(std::string message)
Definition: UserInterface.cpp:251
void disband(std::string key)
Definition: UserInterface.cpp:276
void invite_ally_response(int inviter_account_id, cz_ally_guild_response_type response)
Definition: UserInterface.cpp:261
void request_guild_information(int type)
Definition: UserInterface.cpp:195
void leave(int guild_id, int account_id, int char_id, std::string reason)
Definition: UserInterface.cpp:241
void change_member_positions(std::vector< s_cz_req_change_memberpos > members)
Definition: UserInterface.cpp:210
void invite_ally(int account_id, int inviter_account_id, int inviter_char_id)
Definition: UserInterface.cpp:256
Definition: UserInterface.hpp:146
void check_receiver_name(std::string name)
Definition: UserInterface.cpp:334
void list()
Definition: UserInterface.cpp:354
~Mail()
Definition: UserInterface.cpp:329
void return_(int mail_id, std::string receiver_name)
Definition: UserInterface.cpp:374
bool notify_return(int mail_id, zc_ack_mail_return_result_type result)
Definition: UserInterface.cpp:391
void retrieve_attachment(int mail_id)
Definition: UserInterface.cpp:349
bool notify_delete(int mail_id, zc_ack_mail_delete_result_type result)
Definition: UserInterface.cpp:385
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:167
void reset(cz_mail_reset_item_type reset)
Definition: UserInterface.cpp:364
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:151
void add_item(int inventory_index, int amount)
Definition: UserInterface.cpp:339
Mail(std::shared_ptr< ZoneSession > session)
Mail.
Definition: UserInterface.cpp:324
bool notify_add_item(int inventory_index, zc_ack_mail_add_item_result_type result)
Definition: UserInterface.cpp:379
void delete_(int mail_id)
Definition: UserInterface.cpp:344
void open(int mail_id)
Definition: UserInterface.cpp:359
void send(std::string recipient, std::string title, std::string body)
Definition: UserInterface.cpp:369
Definition: UserInterface.hpp:196
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:209
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:201
void update(std::vector< int > jobs)
Definition: UserInterface.cpp:494
~PartyBooking()
Definition: UserInterface.cpp:474
PartyBooking(std::shared_ptr< ZoneSession > session)
PartyBooking.
Definition: UserInterface.cpp:469
void search(int level, int map_id, int job, int last_index, int result_count)
Definition: UserInterface.cpp:484
void delete_()
Definition: UserInterface.cpp:479
void register_(int level, int map_id, std::vector< int > jobs)
Definition: UserInterface.cpp:489
Definition: UserInterface.hpp:170
void invite(int account_id)
Definition: UserInterface.cpp:415
~Party()
Definition: UserInterface.cpp:405
void invite_response(int party_id, enum party_invite_response_type response)
Definition: UserInterface.cpp:425
void send_message(int packet_length, std::string message)
Definition: UserInterface.cpp:445
void change_properties(int exp_share_rule, int item_pickup_rule, int item_share_rule)
Definition: UserInterface.cpp:440
void refuse_invite(bool refuse)
Definition: UserInterface.cpp:455
Party(std::shared_ptr< ZoneSession > session)
Party.
Definition: UserInterface.cpp:400
void expel_member(int account_id, std::string name)
Definition: UserInterface.cpp:435
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:192
void leave()
Definition: UserInterface.cpp:430
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:175
void create(std::string name, int item_pickup_rule, int item_share_rule)
Definition: UserInterface.cpp:410
void change_leader(int account_id)
Definition: UserInterface.cpp:450
void notify_created(zcack_makegroup_result_type result)
Definition: UserInterface.cpp:461
Definition: UserInterface.hpp:260
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:265
void update_status(int quest_id, cz_active_quest_type type)
Definition: UserInterface.cpp:622
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:269
Quest(std::shared_ptr< ZoneSession > session)
Quest.
Definition: UserInterface.cpp:613
~Quest()
Definition: UserInterface.cpp:617
Definition: UserInterface.hpp:212
RODEx(std::shared_ptr< ZoneSession > session)
RODEx.
Definition: UserInterface.cpp:502
~RODEx()
Definition: UserInterface.cpp:508
bool notify_add_item(s_zc_ack_add_item_rodex info)
Definition: UserInterface.cpp:513
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:222
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:217
Definition: UserInterface.hpp:225
bool notify_close()
Definition: UserInterface.cpp:534
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:235
~Roulette()
Definition: UserInterface.cpp:529
Roulette(std::shared_ptr< ZoneSession > session)
Roulette.
Definition: UserInterface.cpp:523
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:230
Definition: UserInterface.hpp:238
void add_zeny(int zeny)
Definition: UserInterface.cpp:571
void cancel()
Definition: UserInterface.cpp:586
void add_item(int inventory_index, int amount)
Definition: UserInterface.cpp:576
void response(int result)
Definition: UserInterface.cpp:560
Trade(std::shared_ptr< ZoneSession > session)
Trade.
Definition: UserInterface.cpp:544
std::weak_ptr< ZoneSession > _session
Definition: UserInterface.hpp:257
void request(int account_id)
Definition: UserInterface.cpp:555
void lock()
Definition: UserInterface.cpp:581
std::shared_ptr< ZoneSession > get_session()
Definition: UserInterface.hpp:243
~Trade()
Definition: UserInterface.cpp:550
void commit()
Definition: UserInterface.cpp:591
bool notify_response(zc_ack_exchange_item_result_type result)
Definition: UserInterface.cpp:596
Definition: Element.hpp:7
Definition: ClientDefinitions.hpp:756