From 09c901655db3bb42d2aac4b506846b18833d777c Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Tue, 7 Mar 2023 15:23:51 -0400 Subject: global: Completly disable inlining This is because it looks more, and more clear that the entire codebase was compiled without inlining. Likely to reduce code size from all the byteswap functions, only present on the GameCube version. --- context.h | 553 ++++++++++++++++++++------------------------------------------ 1 file changed, 175 insertions(+), 378 deletions(-) (limited to 'context.h') diff --git a/context.h b/context.h index c9a8dcd..39fa7f3 100644 --- a/context.h +++ b/context.h @@ -358,121 +358,66 @@ inline TArray &to_TArray(T *array) { // pso/TMenuList.h template class TMenuListEntry : public TPlyGuildCardTag { - public: - T entry; - +public: TMenuListEntry() : TPlyGuildCardTag() {}; - void bswap(); - void assign(const TMenuListEntry &src); - - TMenuListEntry &operator=(const TMenuListEntry &src) { - _assign(src); - return *this; + void bswap() { + TPlyGuildCardTag::bswap(); + entry.bswap(); }; - - private: - void _assign(const TMenuListEntry &src); +public: + T entry; } __packed__; template class TMenuList { - public: +public: + void bswap() { + header.bswap(); + if (num_pad_entries) { + for (int i = 0; i < num_pad_entries; i++) { + pad_entries[i].bswap(); + } + } + if (num_entries) { + for (int i = 0; i < num_entries; i++) { + entries[i].bswap(); + } + } + }; +public: packet_header header; - TArray, num_pad_entries> pad_entries; - TArray, num_entries> entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); + TMenuListEntry pad_entries[num_pad_entries]; + TMenuListEntry entries[num_entries]; } __packed__; template class TMenuList { - public: +public: + void bswap() { + header.bswap(); + for (int i = 0; i < num_entries; i++) { + entries[i].bswap(); + } + }; +public: packet_header header; - TArray, num_entries> entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); + TMenuListEntry entries[num_entries]; } __packed__; template class TMenuList { - public: - packet_header header; - TArray, num_pad_entries> pad_entries; - - void bswap(); - TMenuList &assign(const TMenuList &src); -} __packed__; - - -template -void TMenuList::bswap() { - header.bswap(); - for (int i = 0; i < num_entries; i++) { - entries[i].bswap(); - } -} - -template -void TMenuList::bswap() { - header.bswap(); - for (int i = 0; i < num_pad_entries; i++) { - pad_entries[i].bswap(); - } -} - -template -void TMenuList::bswap() { - header.bswap(); - if (num_pad_entries) { +public: + void bswap() { + header.bswap(); for (int i = 0; i < num_pad_entries; i++) { pad_entries[i].bswap(); } - } - if (num_entries) { - for (int i = 0; i < num_entries; i++) { - entries[i].bswap(); - } - } -} - -template -void TMenuListEntry::bswap() { - TPlyGuildCardTag::bswap(); - entry.bswap(); -} - -template -TMenuList &TMenuList::assign(const TMenuList &src) { - *this = src; - return *this; -} - -template -TMenuList &TMenuList::assign(const TMenuList &src) { - *this = src; - return *this; -} - -template -TMenuList &TMenuList::assign(const TMenuList &src) { - *this = src; - return *this; -} - -template -void TMenuListEntry::_assign(const TMenuListEntry &src) { - TPlyGuildCardTag::assign(src); - entry = src.entry; -} - -template -void TMenuListEntry::assign(const TMenuListEntry &src) { - TPlyGuildCardTag::operator=(src); - entry = src.entry; -} + }; +public: + packet_header header; + TMenuListEntry pad_entries[num_pad_entries]; +} __packed__; // TMainTask.cpp // Const defs. @@ -572,7 +517,7 @@ struct packet_header { u8 command; u8 flags; u16 size; - void bswap(); + void bswap() { bswap_16(&size); }; } __packed__; // pso/TMath.h @@ -612,11 +557,11 @@ struct disp_data_part2 { void bswap(); disp_data_part2 &assign(const disp_data_part2 &src); - TArray name; - TArray smth; + char name[16]; + u32 smth[2]; u32 name_colour; u8 extra_model; - TArray padding; + u8 padding[15]; u32 name_colour_checksum; u8 section_id; u8 char_class; @@ -648,14 +593,14 @@ struct TItemData { TItemData &assign(const TItemData &src); union { - TArray data_u8; - TArray data_u16; - TArray data_u32; + u8 data_u8[12]; + u16 data_u16[6]; + u32 data_u32[3]; } data1; u32 id; union { - TArray data_u8; - TArray data_u16; + u8 data_u8[4]; + u8 data_u16[2]; u32 data_u32; } data2; }; @@ -699,7 +644,7 @@ struct packet { union { struct { packet_header header; - TArray data; + u8 data[0x7c00-sizeof(packet_header)]; } pkt; u8 bytes[0x7c00]; }; @@ -718,7 +663,7 @@ struct packet { struct GameListEntry { u8 difficulty_tag; u8 num_players; - TArray name; + char name[16]; u8 episode; u8 flags; }; @@ -728,15 +673,15 @@ struct LobbyListEntry { }; struct QuestListEntry { - TArray name; - TArray short_description; + char name[32]; + char short_description[112]; }; // pso/TSocket.h // Union defs. union ipv4_addr { u32 addr; - TArray addr_bytes; + u8 addr_bytes[4]; }; // pso/TObject.h @@ -761,26 +706,14 @@ enum object_flags { ALL_BITS = 0xFFFF }; -// Inline operator defs. -static inline object_flags operator^(object_flags a, object_flags b) { return static_cast(static_cast(a) ^ static_cast(b)); }; -static inline object_flags operator&(object_flags a, object_flags b) { return static_cast(static_cast(a) & static_cast(b)); }; -static inline object_flags operator|(object_flags a, object_flags b) { return static_cast(static_cast(a) | static_cast(b)); }; -static inline object_flags operator~(object_flags a) { return static_cast(~static_cast(a)); } -static inline void operator^=(object_flags &a, object_flags b) { a = a ^ b; }; -static inline void operator&=(object_flags &a, object_flags b) { a = a & b; }; -static inline void operator|=(object_flags &a, object_flags b) { a = a | b; }; - // pso/TPlyCharData.h // Class defs. class TPlyCharData { public: - TPlyCharData(); + TPlyCharData() {}; void bswap(); TPlyCharData &assign(const TPlyCharData &src); - - PRIVATE_MEMBER_ACCESSORS(TPlyInventory, inventory); - PRIVATE_MEMBER_ACCESSORS(TPlyDispData, disp_data); -private: +public: TPlyInventory m_inventory; TPlyDispData m_disp_data; }; @@ -788,17 +721,12 @@ private: // pso/TPlyClientConfig.h class TPlyClientConfig { public: - PRIVATE_MEMBER_ACCESSORS(u64, magic); - PRIVATE_MEMBER_ACCESSORS(u32, flags); - PRIVATE_MEMBER_ACCESSORS(u32, proxy_dst_addr); - PRIVATE_MEMBER_ACCESSORS(u16, proxy_dst_port); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, mbr_0xe, 14); -private: - u64 m_magic; +public: + u32 m_magic[2]; u32 m_flags; u32 m_proxy_dst_addr; u16 m_proxy_dst_port; - TArray m_mbr_0xe; + u8 m_mbr_0xe[14]; }; // pso/TPlyDispData.h @@ -809,9 +737,7 @@ public: void bswap(); TPlyDispConfigSmthTag &assign(const TPlyDispConfigSmthTag &src); - - PRIVATE_MEMBER_ACCESSORS(gc_tag, tag); -private: +public: gc_tag m_tag; }; @@ -819,23 +745,16 @@ class TPlyDispConfigSmth { public: void bswap(); TPlyDispConfigSmth &assign(const TPlyDispConfigSmth &src); - - PRIVATE_MEMBER_ACCESSORS(u32, mbr_0x0); - PRIVATE_MEMBER_ACCESSORS_ARRAY(TPlyDispConfigSmthTag, tags, 4); - PRIVATE_MEMBER_ACCESSORS_ARRAY(TPlyDispConfigSmthTag, tags1, 4); -private: +public: u32 m_mbr_0x0; - TArray m_tags; - TArray m_tags1; + TPlyDispConfigSmthTag m_tags[4]; + TPlyDispConfigSmthTag m_tags1[4]; }; class TPlyDispConfig { public: void bswap(); TPlyDispConfig &assign(const TPlyDispConfig &src); - - PRIVATE_MEMBER_ACCESSORS(TPlyDispConfigSmth, smth); - PRIVATE_MEMBER_ACCESSORS(TPlyDispConfigSmth, smth1); private: TPlyDispConfigSmth m_smth; TPlyDispConfigSmth m_smth1; @@ -845,39 +764,42 @@ class TPlyDispData { public: void bswap(); TPlyDispData &assign(const TPlyDispData &src); - - PRIVATE_MEMBER_ACCESSORS(player_stats, stats); - PRIVATE_MEMBER_ACCESSORS(disp_data_part2, disp_part2); - PRIVATE_MEMBER_ACCESSORS(TPlyDispConfig, config); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, tech_levels, 20); -private: +public: player_stats m_stats; disp_data_part2 m_disp_part2; TPlyDispConfig m_config; - TArray m_tech_levels; + u8 m_tech_levels[20]; }; // pso/TPlyGuildCardTag.h class TPlyGuildCardTag { public: - TPlyGuildCardTag(); - TPlyGuildCardTag(u16 tag2, u32 guildcard_number); - - TPlyGuildCardTag &operator=(const TPlyGuildCardTag &src); - - void bswap(); - void assign(const TPlyGuildCardTag &src); - void assign(const TPlyGuildCardTag *src); + TPlyGuildCardTag() {}; + TPlyGuildCardTag(u16 tag2, u32 guildcard_number) { + m_tag.tag0 = 0; + m_tag.tag1 = 0; + m_tag.tag2 = tag2; + m_guildcard_number = guildcard_number; + }; - PRIVATE_MEMBER_ACCESSORS(gc_tag, tag); - PRIVATE_MEMBER_ACCESSORS(u32, tag_u32); - PRIVATE_MEMBER_ACCESSORS(u32, guildcard_number); -private: - void _assign(const TPlyGuildCardTag &src) { - m_tag = src.m_tag; + TPlyGuildCardTag &operator=(const TPlyGuildCardTag &src) { + m_tag.tag0 = src.m_tag.tag0; + m_tag.tag1 = src.m_tag.tag1; + m_tag.tag2 = src.m_tag.tag2; m_guildcard_number = src.m_guildcard_number; }; + void bswap() { + bswap_32(&m_guildcard_number); + bswap_16(&m_tag.tag2); + }; + + void assign(const TPlyGuildCardTag &src) { *this = src; }; + void assign(const TPlyGuildCardTag *src) { + m_tag_u32 = src->m_tag_u32; + m_guildcard_number = src->m_guildcard_number; + }; +public: union { gc_tag m_tag; u32 m_tag_u32; @@ -891,12 +813,8 @@ public: void init(); void bswap(); TPlyInventoryItem &assign(const TPlyInventoryItem &src); - - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, present, 4); - PRIVATE_MEMBER_ACCESSORS(u32, flags); - PRIVATE_MEMBER_ACCESSORS(TItemData, data); -private: - TArray m_present; +public: + u8 m_present[4]; u32 m_flags; TItemData m_data; }; @@ -905,18 +823,12 @@ class TPlyInventory { public: void bswap(); TPlyInventory &assign(const TPlyInventory &src); - - PRIVATE_MEMBER_ACCESSORS(u8, num_items); - PRIVATE_MEMBER_ACCESSORS(u8, hp_materials_used); - PRIVATE_MEMBER_ACCESSORS(u8, tp_materials_used); - PRIVATE_MEMBER_ACCESSORS(u8, language); - PRIVATE_MEMBER_ACCESSORS_ARRAY(TPlyInventoryItem, items, 30); -private: +public: u8 m_num_items; u8 m_hp_materials_used; u8 m_tp_materials_used; u8 m_language; - TArray m_items; + TPlyInventoryItem m_items[30]; }; // pso/TPlySmth.h @@ -925,17 +837,12 @@ public: TPlySmth() {}; void bswap() { - bswap_32(m_smth.as()); - bswap_32(m_smth1.as()); + bswap_32(reinterpret_cast(&m_smth)); + bswap_32(reinterpret_cast(&m_smth1)); }; - - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth, 4); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth1, 4); - - friend class TProtocol; -protected: - TArray m_smth; - TArray m_smth1; +public: + u8 m_smth[4]; + u8 m_smth1[4]; }; // pso/PSOV3EncryptionTCP.h @@ -946,9 +853,7 @@ public: void reset(u32 seed); void encrypt(void *void_data, int size); - - PRIVATE_MEMBER_ACCESSORS(u32, seed); -private: +public: u32 m_seed; }; @@ -976,95 +881,79 @@ public: // pso/TObject.h class TObject { -private: - void _delete_children() { - while (m_down != NULL) { - delete m_down; - } - }; - void add_parent(TObject *parent, bool set_parent) { - if (set_parent) { - m_up = parent; - } - TObject *child; - if (parent == NULL) { - m_prev = this; - m_next = NULL; - return; - } - child = parent->m_down; - if (child != NULL) { - m_prev = child->m_next; - m_next = NULL; - child->m_prev->m_next = this; - child->m_prev = this; - } else { - m_prev = this; - parent->m_down = this; - m_next = NULL; - } - }; - void remove_parent() { - if (m_up != NULL) { - if (m_prev == this) { - m_up->m_down = NULL; - } else if (m_up->m_down == this) { - m_up->m_down = m_next; - m_prev->m_next = NULL; - if (m_next != NULL) { - m_next->m_prev = m_prev; - } - } else { - m_prev->m_next = m_next; - if (m_next != NULL) { - m_next->m_prev = m_prev; - } else { - m_up->m_down->m_prev = m_prev; - } - } - } - }; - - void set_flags(object_flags flags) { - m_flags |= flags; +#ifdef TOBJECT_CPP + #define _delete_children() { \ + while (m_down != NULL) { \ + delete m_down; \ + } \ } - - void clear_flags(object_flags flags) { - m_flags_u16 &= ~static_cast(flags); + #define add_parent(parent, set_parent) { \ + if (set_parent) { \ + m_up = parent; \ + } \ + /*TObject *child;*/ \ + if (parent == NULL) { \ + m_prev = this; \ + m_next = NULL; \ + } else { \ + TObject *child = parent->m_down; \ + if (child != NULL) { \ + m_prev = child->m_next; \ + m_next = NULL; \ + child->m_prev->m_next = this; \ + child->m_prev = this; \ + } else { \ + m_prev = this; \ + parent->m_down = this; \ + m_next = NULL; \ + } \ + } \ } - - void toggle_flags(object_flags flags) { - m_flags ^= flags; + #define remove_parent() { \ + if (m_up != NULL) { \ + if (m_prev == this) { \ + m_up->m_down = NULL; \ + } else if (m_up->m_down == this) { \ + m_up->m_down = m_next; \ + m_prev->m_next = NULL; \ + if (m_next != NULL) { \ + m_next->m_prev = m_prev; \ + } \ + } else { \ + m_prev->m_next = m_next; \ + if (m_next != NULL) { \ + m_next->m_prev = m_prev; \ + } else { \ + m_up->m_down->m_prev = m_prev; \ + } \ + } \ + } \ } - - u32 get_flags(object_flags flags) { - return m_flags & flags; - }; - - +#endif public: const char *m_name; - union { - object_flags m_flags; - u16 m_flags_u16; - }; + u16 m_flags; u16 m_id; TObject *m_prev; TObject *m_next; TObject *m_up; TObject *m_down; public: - void disallow_rendering_shadows(); - void allow_rendering_shadows(); - void disallow_rendering(); - void allow_rendering(); - void toggle_flag_3(); - void set_flag_3(); - void clear_flag_3(); - void queue_destruction(); - void set_flag_9(); - u32 get_flag_9(); - void clear_flag_9(); + void allow_rendering_shadows() { m_flags &= ~DISALLOW_RENDER_SHADOWS; }; + void disallow_rendering_shadows() { m_flags |= DISALLOW_RENDER_SHADOWS; }; + + void clear_flag_9() { m_flags &= ~BIT_9; }; + void set_flag_9() { m_flags |= BIT_9; }; + u32 get_flag_9() { return m_flags & BIT_9; }; + + void allow_rendering() { m_flags &= ~DISALLOW_RENDER; }; + void disallow_rendering() { m_flags |= DISALLOW_RENDER; }; + + void clear_flag_3() { m_flags &= ~BIT_3; }; + void set_flag_3() { m_flags |= BIT_3; }; + void toggle_flag_3() { m_flags ^= BIT_3; }; + + void queue_destruction() { m_flags |= QUEUE_DESTRUCTION; }; TObject(TObject *parent = NULL); virtual ~TObject(); @@ -1089,8 +978,6 @@ public: void log(const char *str); int get_node_count(); int all_parents_unqueued_for_destruction(); - static void *alloc(size_t size); - static void free(void *ptr); bool toggle_flag_9_if_flag_10_is_clear(); }; @@ -1107,8 +994,8 @@ public: s16 m_size; s16 m_buffer_offset; u32 m_unused; - TArray m_unused2; - TArray m_packet_buffer; + u8 m_unused2[64]; + u8 m_packet_buffer[2048]; s16 m_stat_val; u16 m_unused3; u32 m_send_window; @@ -1129,40 +1016,6 @@ public: void set_port(u32 port); const u8 next(); int is_empty(); - - void set_flags(u8 flags) { - m_is_invalid_packet |= flags; - }; - - void clear_flags(u8 flags) { - m_is_invalid_packet &= ~flags; - }; - - void toggle_flags(u8 flags) { - m_is_invalid_packet ^= flags; - }; - - u8 get_flags(u8 flags) { - return m_is_invalid_packet & flags; - }; - - PRIVATE_MEMBER_ACCESSORS(ipv4_addr, dst_addr); - PRIVATE_MEMBER_ACCESSORS(u16, dst_port); - PRIVATE_MEMBER_ACCESSORS(u16, src_port); - PRIVATE_MEMBER_ACCESSORS(ipv4_addr, src_addr); - PRIVATE_MEMBER_ACCESSORS(s16, sock_fd); - PRIVATE_MEMBER_ACCESSORS(char, is_invalid_packet); - PRIVATE_MEMBER_ACCESSORS(char, buffer_cleared); - PRIVATE_MEMBER_ACCESSORS(s16, size); - PRIVATE_MEMBER_ACCESSORS(s16, buffer_offset); - PRIVATE_MEMBER_ACCESSORS(u32, unused); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, unused2, 64); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, packet_buffer, 2048); - PRIVATE_MEMBER_ACCESSORS(s16, stat_val); - PRIVATE_MEMBER_ACCESSORS(u16, unused3); - PRIVATE_MEMBER_ACCESSORS(u32, send_window); - PRIVATE_MEMBER_ACCESSORS(u32, recv_window); - PRIVATE_MEMBER_ACCESSORS_FUNC(void, callback, TSocket *socket); }; // pso/TTcpSocket.h @@ -1189,14 +1042,10 @@ public: int test_connection(); static void notify(short size, short sock_fd); - - PRIVATE_MEMBER_ACCESSORS(PSOV3EncryptionTCP, send_crypt); - PRIVATE_MEMBER_ACCESSORS(PSOV3EncryptionTCP, recv_crypt); - PRIVATE_MEMBER_ACCESSORS(int, is_encrypted); }; // pso/TMainTask.h -class TMainTask : private TObject { +class TMainTask : public TObject { public: u32 task_flags; u32 mbr_0x20; @@ -1228,18 +1077,6 @@ public: virtual void run_task(); virtual void render(); virtual void render_shadows(); -private: - void set_task_flags(u32 flags) { - this->task_flags |= flags; - } - - void clear_task_flags(u32 flags) { - this->task_flags &= ~flags; - } - - u32 get_task_flags(u32 flags) { - return this->task_flags & flags; - }; }; // pso/PSOV3Encryption.h @@ -1259,13 +1096,8 @@ public: virtual ~PSOV3Encryption(); virtual void init(u32 seed); virtual u32 next(); - - PRIVATE_MEMBER_ACCESSORS_ARRAY(u32, buffer, 522); - PRIVATE_MEMBER_ACCESSORS_NON_REF(u32 *, buffer_start); - PRIVATE_MEMBER_ACCESSORS_NON_REF(u32 *, buffer_end); - -private: - TArray m_buffer; +public: + u32 m_buffer[522]; u32 *m_buffer_start; u32 *m_buffer_end; }; @@ -1287,27 +1119,27 @@ public: int m_unused2; int m_udp_disabled; int m_language; - TArray m_unused3; + u8 m_unused3[80]; TPlyCharData m_character_data; u32 m_unused4; TMenuListEntry m_game_entries[64]; TMenuListEntry m_game_entries2[64]; TMenuListEntry m_lobby_entries[16]; TMenuListEntry m_quest_entries[30]; - TArray m_unused5; - TArray m_serial_number3; - TArray m_password2; - TArray m_serial_number; - TArray m_access_key; - TArray m_password; - TArray m_player_name; - TArray m_serial_number2; - TArray m_access_key2; + u8 m_unused5[128]; + char m_serial_number3[17]; + char m_password2[17]; + char m_serial_number[48]; + char m_access_key[48]; + char m_password[64]; + char m_player_name[16]; + char m_serial_number2[17]; + char m_access_key2[17]; TPlyClientConfig m_client_config; int m_packet_offset; int m_packet_size; struct packet m_packet; - TArray m_recv_handlers; + recv_packet_handler m_recv_handlers[52]; public: TProtocol(TObject *parent, u16 sub_version, int language, char *serial_number, char *access_key, char *password); virtual ~TProtocol(); @@ -1318,39 +1150,4 @@ public: void some_stub() {}; int handle_command(struct packet *pkt); void parse_packet(); - - PRIVATE_MEMBER_ACCESSORS(TPlySmth, smth); - PRIVATE_MEMBER_ACCESSORS(TPlyGuildCardTag, guildcard_tag); - PRIVATE_MEMBER_ACCESSORS(u16, sub_version); - PRIVATE_MEMBER_ACCESSORS(int, login_response_state); - PRIVATE_MEMBER_ACCESSORS(int, connected); - PRIVATE_MEMBER_ACCESSORS(int, joined_game); - PRIVATE_MEMBER_ACCESSORS(int, has_meet_user_settings); - PRIVATE_MEMBER_ACCESSORS(int, handle_pings_only); - PRIVATE_MEMBER_ACCESSORS(int, entry_count); - PRIVATE_MEMBER_ACCESSORS(int, unused); - PRIVATE_MEMBER_ACCESSORS(int, lobby_list_count); - PRIVATE_MEMBER_ACCESSORS(int, unused2); - PRIVATE_MEMBER_ACCESSORS(int, udp_disabled); - PRIVATE_MEMBER_ACCESSORS(int, language); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, unused3, 80); - PRIVATE_MEMBER_ACCESSORS(TPlyCharData, character_data); - PRIVATE_MEMBER_ACCESSORS(u32, unused4); - PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry, game_entries, 64); - PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry, game_entries2, 64); - PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry, lobby_entries, 16); - PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry, quest_entries, 30); - PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, unused5, 128); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, serial_number3, 17); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, password2, 17); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, serial_number, 48); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, access_key, 48); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, password, 64); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, player_name, 16); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, serial_number2, 17); - PRIVATE_MEMBER_ACCESSORS_ARRAY(char, access_key2, 17); - PRIVATE_MEMBER_ACCESSORS(int, packet_offset); - PRIVATE_MEMBER_ACCESSORS(int, packet_size); - PRIVATE_MEMBER_ACCESSORS(struct packet, packet); - PRIVATE_MEMBER_ACCESSORS_ARRAY(recv_packet_handler, recv_handlers, 52); }; -- cgit v1.2.3-13-gbd6f