2020-03-30 20:20:59 +00:00
|
|
|
/*
|
|
|
|
Header ReferentialMessageCore : Class to store referential to decode message
|
|
|
|
|
|
|
|
Copyright (C) 2019 AleaJactaEst
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef REFERENTIAL_MESSAGE_CORE_H
|
|
|
|
#define REFERENTIAL_MESSAGE_CORE_H
|
|
|
|
|
|
|
|
#include "core/reference.h"
|
|
|
|
#include "core/dictionary.h"
|
|
|
|
#include "modules/bitstream/bitstream.h"
|
2020-04-10 16:09:06 +00:00
|
|
|
#include "modules/debug/debug.h"
|
2020-03-30 20:20:59 +00:00
|
|
|
|
|
|
|
inline uint32_t getPowerOf2(uint32_t v)
|
|
|
|
{
|
|
|
|
// See code : khanat-opennel-code/code/nel/src/misc/common.cpp
|
|
|
|
uint32_t res = 1;
|
|
|
|
uint32_t ret = 0;
|
|
|
|
uint32_t limit = 8*sizeof(uint32_t);
|
2020-04-10 16:09:06 +00:00
|
|
|
while(res < v && ret < limit)
|
2020-03-30 20:20:59 +00:00
|
|
|
{
|
|
|
|
ret ++;
|
|
|
|
res <<= 1; // res *= 2;
|
|
|
|
}
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
class ElementReferential : public Reference
|
|
|
|
{
|
|
|
|
GDCLASS(ElementReferential, Reference)
|
|
|
|
private:
|
|
|
|
uint32_t _id;
|
|
|
|
uint32_t _power2;
|
|
|
|
Vector<Ref<ElementReferential>> _children;
|
|
|
|
public:
|
|
|
|
ElementReferential() {_id=0; _power2=0;}
|
|
|
|
~ElementReferential() {_children.clear();}
|
|
|
|
|
|
|
|
void set_id(uint32_t id) {_id=id;}
|
2020-04-10 16:09:06 +00:00
|
|
|
void set_size(uint32_t size) {_children.resize(size); _power2=getPowerOf2(size);DBG_PRINT("[" + itos(size) + " /" + itos(_power2) + "]");}
|
2020-03-30 20:20:59 +00:00
|
|
|
int get_size() { return _children.size();}
|
|
|
|
Ref<ElementReferential> add_child(uint32_t id, uint32_t pos) { Ref<ElementReferential> tmp; tmp.instance(); tmp->_id = id; _children.set(pos, tmp); tmp.unref(); return _children[pos]; }
|
|
|
|
void show(int level=0, int pos=0);
|
|
|
|
};
|
|
|
|
|
|
|
|
class ReferentialMessageCore : public Reference
|
|
|
|
{
|
|
|
|
GDCLASS(ReferentialMessageCore, Reference)
|
|
|
|
protected:
|
|
|
|
static void _bind_methods();
|
|
|
|
public:
|
|
|
|
enum Command {
|
|
|
|
TARGET_PARTY,
|
|
|
|
TARGET_INVENTORY,
|
|
|
|
TARGET_FOLLOW,
|
|
|
|
TARGET_NO_FOLLOW,
|
|
|
|
CONNECTION_USER_CHAR,
|
|
|
|
CONNECTION_NO_USER_CHAR,
|
|
|
|
CONNECTION_USER_CHARS,
|
|
|
|
CONNECTION_CREATE_CHAR,
|
|
|
|
CONNECTION_SELECT_CHAR,
|
|
|
|
CONNECTION_DELETE_CHAR,
|
|
|
|
CONNECTION_RENAME_CHAR,
|
|
|
|
CONNECTION_ENTER,
|
|
|
|
CONNECTION_READY,
|
|
|
|
CONNECTION_TIME_DATE_SYNCHRO,
|
|
|
|
CONNECTION_ASK_NAME,
|
|
|
|
CONNECTION_VALID_NAME,
|
|
|
|
CONNECTION_CREATE_CHAR_ERROR,
|
|
|
|
CONNECTION_RECONNECT,
|
|
|
|
CONNECTION_SERVER_RECONNECT_OK,
|
|
|
|
CONNECTION_SHARD_ID,
|
|
|
|
CONNECTION_SERVER_QUIT_OK,
|
|
|
|
CONNECTION_SERVER_QUIT_ABORT,
|
|
|
|
CONNECTION_CLIENT_QUIT_REQUEST,
|
|
|
|
CONNECTION_MAIL_AVAILABLE,
|
|
|
|
CONNECTION_GUILD_MESSAGE_AVAILABLE,
|
|
|
|
CONNECTION_PERMANENT_BAN,
|
|
|
|
CONNECTION_UNBAN,
|
|
|
|
CONNECTION_FAR_TP,
|
|
|
|
CONNECTION_RET_MAINLAND,
|
|
|
|
DB_UPD_PLR,
|
|
|
|
DB_UPD_INV,
|
|
|
|
DB_INIT_PLR,
|
|
|
|
DB_INIT_INV,
|
|
|
|
DB_GROUP_UPDATE_BANK,
|
|
|
|
DB_GROUP_INIT_BANK,
|
|
|
|
DB_GROUP_RESET_BANK,
|
|
|
|
POSITION,
|
|
|
|
HARVEST_DEPOSIT,
|
|
|
|
HARVEST_CORPSE,
|
|
|
|
HARVEST_INTERRUPT,
|
|
|
|
HARVEST_CLOSE_TEMP_INVENTORY,
|
|
|
|
TRAINING,
|
|
|
|
JOB_SET_JOB_STATUS,
|
|
|
|
JOB_SWAP_JOB_STATUS,
|
|
|
|
CASTING_BEGIN,
|
|
|
|
CASTING_INTERRUPT,
|
|
|
|
FABER_OPEN,
|
|
|
|
FABER_CLOSE,
|
|
|
|
FABER_EXECUTE,
|
|
|
|
FABER_SET_NUM_ITEM,
|
|
|
|
FABER_START_CREATE,
|
|
|
|
FABER_START_REPAIR,
|
|
|
|
FABER_START_REFINE,
|
|
|
|
FABER_SET_MP_QUALITY,
|
|
|
|
FABER_SET_MP_REFINE,
|
|
|
|
FABER_SET_TOOL,
|
|
|
|
FABER_RESET_TOOL,
|
|
|
|
FABER_INTERRUPT,
|
|
|
|
COMBAT_ENGAGE,
|
|
|
|
COMBAT_DISENGAGE,
|
|
|
|
COMBAT_DEFAULT_ATTACK,
|
|
|
|
COMBAT_ENGAGE_FAILED,
|
|
|
|
COMBAT_VALIDATE_MELEE,
|
|
|
|
COMBAT_PARRY,
|
|
|
|
COMBAT_DODGE,
|
|
|
|
COMBAT_PROTECTED_SLOT,
|
|
|
|
COMBAT_FLYING_ChaScore1_DELTA,
|
|
|
|
COMBAT_FLYING_TEXT_ISE,
|
|
|
|
COMBAT_FLYING_TEXT,
|
|
|
|
STRING_TELL,
|
|
|
|
STRING_FAR_TELL,
|
|
|
|
STRING_CHAT,
|
|
|
|
STRING_CHAT_TEAM,
|
|
|
|
STRING_ADD_DYN_STR,
|
|
|
|
STRING_FILTER,
|
|
|
|
STRING_CHAT_MODE,
|
|
|
|
STRING_CHAT2,
|
|
|
|
STRING_TELL2,
|
|
|
|
STRING_DYN_STRING,
|
|
|
|
STRING_DYN_STRING_GROUP,
|
|
|
|
STRING_AFK_TXT,
|
|
|
|
STUN_STUN,
|
|
|
|
STUN_WAKE_UP,
|
|
|
|
SENTENCE_EXECUTE,
|
|
|
|
SENTENCE_CANCEL,
|
|
|
|
SENTENCE_CANCEL_CURRENT,
|
|
|
|
SENTENCE_CANCEL_ALL,
|
|
|
|
SENTENCE_CLEAR,
|
|
|
|
SENTENCE_MEMORIZE,
|
|
|
|
SENTENCE_FORGET,
|
|
|
|
SENTENCE_EVALUATE,
|
|
|
|
SENTENCE_ADD_BRICK,
|
|
|
|
SENTENCE_REMOVE_BRICK,
|
|
|
|
SENTENCE_START,
|
|
|
|
SENTENCE_STOP,
|
|
|
|
TEAM_JOIN,
|
|
|
|
TEAM_LEAVE,
|
|
|
|
TEAM_INVITATION,
|
|
|
|
TEAM_JOIN_PROPOSAL,
|
|
|
|
TEAM_JOIN_PROPOSAL_DECLINE,
|
|
|
|
TEAM_KICK,
|
|
|
|
TEAM_SET_SUCCESSOR,
|
|
|
|
TEAM_SHARE_OPEN,
|
|
|
|
TEAM_SHARE_VALID_ITEM,
|
|
|
|
TEAM_SHARE_INVALID_ITEM,
|
|
|
|
TEAM_SHARE_VALID,
|
|
|
|
TEAM_SHARE_INVALID,
|
|
|
|
TEAM_SHARE_CLOSE,
|
|
|
|
TEAM_CONTACT_INIT,
|
|
|
|
TEAM_CONTACT_ADD,
|
|
|
|
TEAM_CONTACT_DEL,
|
|
|
|
TEAM_CONTACT_MOVE,
|
|
|
|
TEAM_CONTACT_CREATE,
|
|
|
|
TEAM_CONTACT_STATUS,
|
|
|
|
TEAM_CONTACT_REMOVE,
|
|
|
|
ITEM_DROP,
|
|
|
|
ITEM_PICK_UP,
|
|
|
|
ITEM_PICK_UP_CLOSE,
|
|
|
|
ITEM_SWAP,
|
|
|
|
ITEM_ACTIVATE_SHEATH,
|
|
|
|
ITEM_HARVEST,
|
|
|
|
ITEM_HARVEST_CLOSE,
|
|
|
|
ITEM_GIVE,
|
|
|
|
ITEM_DESTROY,
|
|
|
|
ITEM_EQUIP,
|
|
|
|
ITEM_UNEQUIP,
|
|
|
|
ITEM_TEMP_TO_BAG,
|
|
|
|
ITEM_ALL_TEMP,
|
|
|
|
ITEM_NO_TEMP,
|
|
|
|
ITEM_ENCHANT,
|
|
|
|
ITEM_OPEN_ROOM_INVENTORY,
|
|
|
|
ITEM_CLOSE_ROOM_INVENTORY,
|
|
|
|
ITEM_USE_ITEM,
|
|
|
|
ITEM_STOP_USE_XP_CAT,
|
|
|
|
TP_RESPAWN,
|
|
|
|
TP_BOT,
|
|
|
|
TP_WANTED,
|
|
|
|
TP_DEST,
|
|
|
|
TP_DEST_WITH_SEASON,
|
|
|
|
TP_ACK,
|
|
|
|
TP_CORRECT,
|
|
|
|
DEATH_RESPAWN_POINT,
|
|
|
|
DEATH_ASK_RESPAWN,
|
|
|
|
DEATH_RESPAWN,
|
|
|
|
ANIMALS_BEAST,
|
|
|
|
ANIMALS_MOUNT_ABORT,
|
|
|
|
EXCHANGE_INVITATION,
|
|
|
|
EXCHANGE_CLOSE_INVITATION,
|
|
|
|
EXCHANGE_PROPOSAL,
|
|
|
|
EXCHANGE_ACCEPT_INVITATION,
|
|
|
|
EXCHANGE_DECLINE_INVITATION,
|
|
|
|
EXCHANGE_VALIDATE,
|
|
|
|
EXCHANGE_INVALIDATE,
|
|
|
|
EXCHANGE_END,
|
|
|
|
EXCHANGE_SEEDS,
|
|
|
|
EXCHANGE_ADD,
|
|
|
|
EXCHANGE_REMOVE,
|
|
|
|
DEBUG_WHERE,
|
|
|
|
DEBUG_WHO,
|
|
|
|
DEBUG_REPLY_WHERE,
|
|
|
|
DEBUG_SERVICES,
|
|
|
|
DEBUG_CMD,
|
|
|
|
DEBUG_PING,
|
|
|
|
DEBUG_COUNTER,
|
|
|
|
COMMAND_EMOTE,
|
|
|
|
COMMAND_CUSTOM_EMOTE,
|
|
|
|
COMMAND_WHERE,
|
|
|
|
COMMAND_ADMIN,
|
|
|
|
COMMAND_ADMIN_OFFLINE,
|
|
|
|
COMMAND_REMOTE_ADMIN,
|
|
|
|
COMMAND_REMOTE_ADMIN_ANSWER,
|
|
|
|
COMMAND_SIT,
|
|
|
|
COMMAND_AFK,
|
|
|
|
COMMAND_RANDOM,
|
|
|
|
COMMAND_GUILDMOTD,
|
|
|
|
MP_EVAL_SET_MP,
|
|
|
|
MP_EVAL_SET_MP_LEVEL,
|
|
|
|
MP_EVAL_SET_MARKET,
|
|
|
|
MP_EVAL_EXECUTE,
|
|
|
|
BOTCHAT_NEXT_PAGE_ITEM,
|
|
|
|
BOTCHAT_NEXT_PAGE_MISSION,
|
|
|
|
BOTCHAT_START_TRADE_ITEM,
|
|
|
|
BOTCHAT_START_TRADE_TELEPORT,
|
|
|
|
BOTCHAT_START_TRADE_FACTION,
|
|
|
|
BOTCHAT_START_TRADE_SKILL,
|
|
|
|
BOTCHAT_START_TRADE_PACT,
|
|
|
|
BOTCHAT_START_TRADE_ACTION,
|
|
|
|
BOTCHAT_BUY,
|
|
|
|
BOTCHAT_SELL,
|
|
|
|
BOTCHAT_DESTROY_ITEM,
|
|
|
|
BOTCHAT_REFRESH_TRADE_LIST,
|
|
|
|
BOTCHAT_SET_FILTERS,
|
|
|
|
BOTCHAT_START_CHOOSE_MISSION,
|
|
|
|
BOTCHAT_START_DYNAMIC_MISSION,
|
|
|
|
BOTCHAT_CONTINUE_MISSION,
|
|
|
|
BOTCHAT_VALIDATE_PLAYER_GIFT,
|
|
|
|
BOTCHAT_PICK_MISSION,
|
|
|
|
BOTCHAT_DM_CHOICE,
|
|
|
|
BOTCHAT_DM_ACCEPT,
|
|
|
|
BOTCHAT_START_NEWS,
|
|
|
|
BOTCHAT_START_CREATE_GUILD,
|
|
|
|
BOTCHAT_END,
|
|
|
|
BOTCHAT_FORCE_END,
|
|
|
|
BOTCHAT_START_CHOOSE_DUTY,
|
|
|
|
BOTCHAT_NEXT_PAGE_DUTY,
|
|
|
|
BOTCHAT_DUTY_APPLY,
|
|
|
|
BOTCHAT_DUTY_CANCEL_APPLY,
|
|
|
|
BOTCHAT_START_TRADE_GUILD_OPTIONS,
|
|
|
|
BOTCHAT_BUY_GUILD_OPTION,
|
|
|
|
BOTCHAT_START_GUILD_RESEARCH,
|
|
|
|
BOTCHAT_DESTROY_BUILDING,
|
|
|
|
BOTCHAT_DYNCHAT_OPEN,
|
|
|
|
BOTCHAT_DYNCHAT_CLOSE,
|
|
|
|
BOTCHAT_DYNCHAT_SEND,
|
|
|
|
JOURNAL_INIT_COMPLETED_MISSIONS,
|
|
|
|
JOURNAL_UPDATE_COMPLETED_MISSIONS,
|
|
|
|
JOURNAL_MISSION_ABANDON,
|
|
|
|
JOURNAL_GROUP_MISSION_ABANDON,
|
|
|
|
JOURNAL_ADD_COMPASS,
|
|
|
|
JOURNAL_ADD_COMPASS_BOT,
|
|
|
|
JOURNAL_REMOVE_COMPASS,
|
|
|
|
JOURNAL_REMOVE_COMPASS_BOT,
|
|
|
|
STRING_MANAGER_SET_LANGUAGE,
|
|
|
|
STRING_MANAGER_PHRASE_SEND,
|
|
|
|
STRING_MANAGER_STRING_RQ,
|
|
|
|
STRING_MANAGER_STRING_RESP,
|
|
|
|
STRING_MANAGER_RELOAD_CACHE,
|
|
|
|
GUILD_CREATE,
|
|
|
|
GUILD_ABORT_CREATION,
|
|
|
|
GUILD_OPEN_GUILD_WINDOW,
|
|
|
|
GUILD_INVITATION,
|
|
|
|
GUILD_ACCEPT_INVITATION,
|
|
|
|
GUILD_REFUSE_INVITATION,
|
|
|
|
GUILD_JOIN_PROPOSAL,
|
|
|
|
GUILD_SET_GRADE,
|
|
|
|
GUILD_SET_LEADER,
|
|
|
|
GUILD_KICK_MEMBER,
|
|
|
|
GUILD_TELEPORT,
|
|
|
|
GUILD_ASCENSOR,
|
|
|
|
GUILD_FIRST_ASCENSOR_PAGE,
|
|
|
|
GUILD_NEXT_ASCENSOR_PAGE,
|
|
|
|
GUILD_LEAVE_ASCENSOR,
|
|
|
|
GUILD_QUIT,
|
|
|
|
GUILD_SET_PLAYER_TITLE,
|
|
|
|
GUILD_UPDATE_PLAYER_TITLE,
|
|
|
|
GUILD_USE_FEMALE_TITLES,
|
|
|
|
GUILD_PUT_MONEY,
|
|
|
|
GUILD_TAKE_MONEY,
|
|
|
|
GUILD_OPEN_INVENTORY,
|
|
|
|
GUILD_CLOSE_INVENTORY,
|
|
|
|
OUTPOST_GIVEUP_OUTPOST,
|
|
|
|
OUTPOST_SELECT,
|
|
|
|
OUTPOST_UNSELECT,
|
|
|
|
OUTPOST_DECLARE_WAR_START,
|
|
|
|
OUTPOST_DECLARE_WAR_ACK,
|
|
|
|
OUTPOST_DECLARE_WAR_VALIDATE,
|
|
|
|
OUTPOST_SET_DEF_PERIOD,
|
|
|
|
OUTPOST_SET_SQUAD,
|
|
|
|
OUTPOST_SET_SQUAD_SPAWN,
|
|
|
|
OUTPOST_INSERT_SQUAD,
|
|
|
|
OUTPOST_REMOVE_SQUAD,
|
|
|
|
OUTPOST_SET_SQUAD_CAPITAL,
|
|
|
|
OUTPOST_CHOOSE_SIDE,
|
|
|
|
OUTPOST_SIDE_CHOSEN,
|
|
|
|
OUTPOST_BANISH_PLAYER,
|
|
|
|
OUTPOST_BANISH_GUILD,
|
|
|
|
OUTPOST_BUY_BUILDING,
|
|
|
|
OUTPOST_DESTROY_BUILDING,
|
|
|
|
PHRASE_DELETE,
|
|
|
|
PHRASE_LEARN,
|
|
|
|
PHRASE_MEMORIZE,
|
|
|
|
PHRASE_FORGET,
|
|
|
|
PHRASE_EXECUTE,
|
|
|
|
PHRASE_EXECUTE_CYCLIC,
|
|
|
|
PHRASE_EXECUTE_FABER,
|
|
|
|
PHRASE_DOWNLOAD,
|
|
|
|
PHRASE_BUY,
|
|
|
|
PHRASE_CONFIRM_BUY,
|
|
|
|
PHRASE_BUY_SHEET,
|
|
|
|
PHRASE_CANCEL_LINK,
|
|
|
|
PHRASE_CANCEL_TOP,
|
|
|
|
PHRASE_CANCEL_ALL,
|
|
|
|
PHRASE_CRISTALIZE,
|
|
|
|
PHRASE_EXEC_CYCLIC_ACK,
|
|
|
|
PHRASE_EXEC_NEXT_ACK,
|
|
|
|
ITEM_INFO_GET,
|
|
|
|
ITEM_INFO_SET,
|
|
|
|
ITEM_INFO_REFRESH_VERSION,
|
|
|
|
MISSION_PREREQ_GET,
|
|
|
|
MISSION_PREREQ_SET,
|
|
|
|
MISSION_ENTER_CRITICAL,
|
|
|
|
MISSION_ASK_ENTER_CRITICAL,
|
|
|
|
MISSION_CLOSE_ENTER_CRITICAL,
|
|
|
|
MISSION_WAKE,
|
|
|
|
MISSION_GROUP_WAKE,
|
|
|
|
DUEL_ASK,
|
|
|
|
DUEL_ACCEPT,
|
|
|
|
DUEL_REFUSE,
|
|
|
|
DUEL_ABANDON,
|
|
|
|
DUEL_INVITATION,
|
|
|
|
DUEL_CANCEL_INVITATION,
|
|
|
|
PVP_CHALLENGE_ASK,
|
|
|
|
PVP_CHALLENGE_ACCEPT,
|
|
|
|
PVP_CHALLENGE_REFUSE,
|
|
|
|
PVP_CHALLENGE_ABANDON,
|
|
|
|
PVP_CHALLENGE_INVITATION,
|
|
|
|
PVP_CHALLENGE_CANCEL_INVITATION,
|
|
|
|
PVP_PVP_TAG,
|
|
|
|
PVP_SET_NEUTRAL_ALLEGIANCE,
|
|
|
|
PVP_SET_NEUTRAL_ALLEGIANCE_GUILD,
|
|
|
|
PVP_FACTION_PUSH_FACTION_WAR,
|
|
|
|
PVP_FACTION_POP_FACTION_WAR,
|
|
|
|
PVP_FACTION_FACTION_WARS,
|
|
|
|
ENCYCLOPEDIA_UPDATE,
|
|
|
|
ENCYCLOPEDIA_INIT,
|
|
|
|
USER_BARS,
|
|
|
|
USER_POPUP,
|
|
|
|
EVENT_SET_ITEM_CUSTOM_TEXT,
|
|
|
|
EVENT_DUMMY,
|
|
|
|
TOTEM_BUILD,
|
|
|
|
TOTEM_DUMMY,
|
|
|
|
MODULE_GATEWAY_FEOPEN,
|
|
|
|
MODULE_GATEWAY_GATEWAY_MSG,
|
|
|
|
MODULE_GATEWAY_FECLOSE,
|
|
|
|
SEASON_SET,
|
|
|
|
SEASON_DUMMY,
|
|
|
|
DM_GIFT_BEGIN,
|
|
|
|
DM_GIFT_VALIDATE,
|
|
|
|
RING_MISSION_MISSION_RING_SELECT,
|
|
|
|
RING_MISSION_DSS_DOWN,
|
|
|
|
NPC_ICON_GET_DESC,
|
|
|
|
NPC_ICON_SET_DESC,
|
|
|
|
NPC_ICON_SVR_EVENT_MIS_AVL,
|
|
|
|
NPC_ICON_SET_TIMER,
|
|
|
|
__LAST_ELEMENT
|
|
|
|
};
|
|
|
|
class ElementHead
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
uint32_t _size;
|
|
|
|
uint32_t _pos;
|
|
|
|
String _name;
|
|
|
|
public:
|
|
|
|
ElementHead() {}
|
|
|
|
~ElementHead() {}
|
|
|
|
void set_size(uint32_t size){_size = size;}
|
|
|
|
void set_pos(uint32_t pos){_pos = pos;}
|
|
|
|
void set_name(String name){_name = name;}
|
|
|
|
void create(uint32_t pos, uint32_t size,String name) {set_pos(pos);set_size(size);set_name(name);}
|
|
|
|
uint32_t get_size() {return _size;}
|
|
|
|
uint32_t get_pos() {return _pos;}
|
|
|
|
String get_name() {return _name;}
|
|
|
|
};
|
|
|
|
private:
|
|
|
|
static ReferentialMessageCore *singleton;
|
|
|
|
BitStream _encoder[Command::__LAST_ELEMENT];
|
|
|
|
Ref<ElementReferential> _decoder;
|
|
|
|
int get_command(String name);
|
|
|
|
void read_referential_step(Dictionary step, Vector<ElementHead> head, Ref<ElementReferential> root);
|
|
|
|
public:
|
|
|
|
|
|
|
|
static ReferentialMessageCore * get_singleton();
|
|
|
|
|
|
|
|
ReferentialMessageCore() {_decoder.instance();}
|
|
|
|
~ReferentialMessageCore() {_decoder.unref();}
|
|
|
|
|
|
|
|
void read_referential(Dictionary dictionary_message);
|
|
|
|
void show();
|
|
|
|
|
|
|
|
static void clear_session();
|
|
|
|
};
|
|
|
|
|
|
|
|
VARIANT_ENUM_CAST(ReferentialMessageCore::Command);
|
|
|
|
|
|
|
|
#endif
|