summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-03-04 17:49:03 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-03-04 17:49:03 -0400
commitcb40b0808a639fa0de330cb2b88574a0e8b4d2d5 (patch)
tree874b64b99c55f244d97d627f61869c084eea09ed
parent1892a429d2b635b369684676f0528a3320f95cc2 (diff)
TProtocol: Match ctor
The reason for the large change is because I was trying to figure out why `TTcpSocket`'s ctor was so disjointed from the rest of the functions. Turns out, it's inlined, and inlining was turned off. Most likely, the whole codebase has inlining turned off. oof, press f `TArray`.
-rw-r--r--context.h71
-rw-r--r--include/pso/TArray.h5
-rw-r--r--include/pso/TObject.h2
-rw-r--r--include/pso/TPlyCharData.h2
-rw-r--r--include/pso/TPlyClientConfig.h4
-rw-r--r--include/pso/TPlyDispData.h6
-rw-r--r--include/pso/TPlyGuildCardTag.h2
-rw-r--r--include/pso/TPlyInventory.h5
-rw-r--r--include/pso/TPlySmth.h18
-rw-r--r--include/pso/TProtocol.h18
-rw-r--r--include/pso/TSocket.h2
-rw-r--r--include/pso/TTcpSocket.h5
-rw-r--r--include/pso/macros.h8
-rw-r--r--src/pso/TPlyGuildCardTag.cpp5
-rw-r--r--src/pso/TProtocol.cpp109
-rw-r--r--src/pso/TTcpSocket.cpp5
16 files changed, 203 insertions, 64 deletions
diff --git a/context.h b/context.h
index aa1e952..f4a4a17 100644
--- a/context.h
+++ b/context.h
@@ -105,6 +105,11 @@ typedef long ptrdiff_t;
return m_##name; \
}
+#define PRIVATE_MEMBER_GETTER_C_ARRAY(type, name, size) \
+ TArray<type, size> &name() { \
+ return to_TArray<type, size>(m_##name); \
+ }
+
#define PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, ...) \
ret_type (*name())(__VA_ARGS__) { \
return m_##name; \
@@ -130,6 +135,9 @@ typedef long ptrdiff_t;
#define PRIVATE_MEMBER_ACCESSORS_ARRAY(type, name, size) \
PRIVATE_MEMBER_GETTER_ARRAY(type, name, size)
+#define PRIVATE_MEMBER_ACCESSORS_C_ARRAY(type, name, size) \
+ PRIVATE_MEMBER_GETTER_C_ARRAY(type, name, size)
+
#define PRIVATE_MEMBER_ACCESSORS_FUNC(ret_type, name, ...) \
PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
@@ -342,6 +350,11 @@ private:
};
};
+template<typename T, size_t n>
+inline TArray<T, n> &to_TArray(T *array) {
+ return reinterpret_cast<TArray<T, n> &>(*array);
+}
+
// pso/TMenuList.h
template <typename T>
class TMenuListEntry : public TPlyGuildCardTag {
@@ -470,6 +483,9 @@ static const int tl_object_count = 20;
EXTERN_OBJECT_NAME(TTcpSocket);
extern TTcpSocket *tcp_socket_table[16];
+// pso/TProtocol.h
+EXTERN_OBJECT_NAME(TProtocol);
+
// TObject.cpp
#define o(name) extern const char *name##_name;
OBJECT_NAMES
@@ -594,7 +610,7 @@ struct disp_data_part2 {
disp_data_part2 &assign(const disp_data_part2 &src);
TArray<char, 16> name;
- u64 smth;
+ TArray<u32, 2> smth;
u32 name_colour;
u8 extra_model;
TArray<u8, 15> padding;
@@ -624,7 +640,7 @@ struct gc_tag {
// pso/TPlyInventory.h
struct TItemData {
- TItemData();
+ void init();
void bswap();
TItemData &assign(const TItemData &src);
@@ -775,8 +791,8 @@ private:
// pso/TPlyDispData.h
class TPlyDispConfigSmthTag {
public:
- TPlyDispConfigSmthTag();
- ~TPlyDispConfigSmthTag();
+ //TPlyDispConfigSmthTag();
+ //~TPlyDispConfigSmthTag();
void bswap();
TPlyDispConfigSmthTag &assign(const TPlyDispConfigSmthTag &src);
@@ -834,6 +850,8 @@ 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);
@@ -857,8 +875,7 @@ private:
// pso/TPlyInventory.h
class TPlyInventoryItem {
public:
- TPlyInventoryItem() {};
-
+ void init();
void bswap();
TPlyInventoryItem &assign(const TPlyInventoryItem &src);
@@ -892,17 +909,18 @@ private:
// pso/TPlySmth.h
class TPlySmth {
public:
- TPlySmth();
-
- TPlySmth &operator=(const TPlySmth &src);
+ TPlySmth() {};
- void bswap();
-
- TPlySmth &assign(const TPlySmth &src);
+ void bswap() {
+ bswap_32(m_smth.as<u32>());
+ bswap_32(m_smth1.as<u32>());
+ };
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth, 4);
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth1, 4);
-private:
+
+ friend class TProtocol;
+protected:
TArray<u8, 4> m_smth;
TArray<u8, 4> m_smth1;
};
@@ -1011,7 +1029,9 @@ private:
};
+protected:
const char *m_name;
+private:
union {
object_flags m_flags;
u16 m_flags_u16;
@@ -1074,14 +1094,14 @@ public:
void empty_func2();
void log(const char *str);
int get_node_count();
- bool all_parents_unqueued_for_destruction();
+ 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();
};
// pso/TSocket.h
-class TSocket : public TObject {
+class TSocket : private TObject {
private:
ipv4_addr m_dst_addr;
u16 m_dst_port;
@@ -1158,7 +1178,10 @@ private:
PSOV3EncryptionTCP m_recv_crypt;
int m_is_encrypted;
public:
- WEAK_FUNC TTcpSocket(TObject *parent = nullptr);
+ WEAK_FUNC TTcpSocket(TObject *parent) : TSocket(parent) {
+ m_name = TTcpSocket_name;
+ }
+
virtual ~TTcpSocket();
virtual short open() override;
@@ -1273,10 +1296,10 @@ private:
TArray<u8, 80> m_unused3;
TPlyCharData m_character_data;
u32 m_unused4;
- TArray<TMenuListEntry<GameListEntry>, 64> m_game_entries;
- TArray<TMenuListEntry<GameListEntry>, 64> m_game_entries2;
- TArray<TMenuListEntry<LobbyListEntry>, 16> m_lobby_entries;
- TArray<TMenuListEntry<QuestListEntry>, 30> m_quest_entries;
+ TMenuListEntry<GameListEntry> m_game_entries[64];
+ TMenuListEntry<GameListEntry> m_game_entries2[64];
+ TMenuListEntry<LobbyListEntry> m_lobby_entries[16];
+ TMenuListEntry<QuestListEntry> m_quest_entries[30];
TArray<u8, 128> m_unused5;
TArray<char, 17> m_serial_number3;
TArray<char, 17> m_password2;
@@ -1317,10 +1340,10 @@ public:
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, unused3, 80);
PRIVATE_MEMBER_ACCESSORS(TPlyCharData, character_data);
PRIVATE_MEMBER_ACCESSORS(u32, unused4);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<GameListEntry>, game_entries, 64);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<GameListEntry>, game_entries2, 64);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<LobbyListEntry>, lobby_entries, 16);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<QuestListEntry>, quest_entries, 30);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<GameListEntry>, game_entries, 64);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<GameListEntry>, game_entries2, 64);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<LobbyListEntry>, lobby_entries, 16);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<QuestListEntry>, 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);
diff --git a/include/pso/TArray.h b/include/pso/TArray.h
index cefe6c8..c9ac0e6 100644
--- a/include/pso/TArray.h
+++ b/include/pso/TArray.h
@@ -173,4 +173,9 @@ private:
};
};
+template<typename T, size_t n>
+inline TArray<T, n> &to_TArray(T *array) {
+ return reinterpret_cast<TArray<T, n> &>(*array);
+}
+
#endif
diff --git a/include/pso/TObject.h b/include/pso/TObject.h
index 87d2bed..ef2cf66 100644
--- a/include/pso/TObject.h
+++ b/include/pso/TObject.h
@@ -110,7 +110,9 @@ private:
};
+protected:
const char *m_name;
+private:
union {
object_flags m_flags;
u16 m_flags_u16;
diff --git a/include/pso/TPlyCharData.h b/include/pso/TPlyCharData.h
index 1cdad01..d516c10 100644
--- a/include/pso/TPlyCharData.h
+++ b/include/pso/TPlyCharData.h
@@ -10,7 +10,7 @@
class TPlyCharData {
public:
- TPlyCharData();
+ TPlyCharData() {}
void bswap();
TPlyCharData &assign(const TPlyCharData &src);
diff --git a/include/pso/TPlyClientConfig.h b/include/pso/TPlyClientConfig.h
index d5796ad..6551fc2 100644
--- a/include/pso/TPlyClientConfig.h
+++ b/include/pso/TPlyClientConfig.h
@@ -8,13 +8,13 @@
class TPlyClientConfig {
public:
- PRIVATE_MEMBER_ACCESSORS(u64, magic);
+ PRIVATE_MEMBER_ACCESSORS_ARRAY(u32, magic, 2);
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;
+ TArray<u32, 2> m_magic;
u32 m_flags;
u32 m_proxy_dst_addr;
u16 m_proxy_dst_port;
diff --git a/include/pso/TPlyDispData.h b/include/pso/TPlyDispData.h
index a237bbc..7901fb9 100644
--- a/include/pso/TPlyDispData.h
+++ b/include/pso/TPlyDispData.h
@@ -39,7 +39,7 @@ struct disp_data_part2 {
disp_data_part2 &assign(const disp_data_part2 &src);
TArray<char, 16> name;
- u64 smth;
+ TArray<u32, 2> smth;
u32 name_colour;
u8 extra_model;
TArray<u8, 15> padding;
@@ -62,8 +62,8 @@ struct disp_data_part2 {
class TPlyDispConfigSmthTag {
public:
- TPlyDispConfigSmthTag();
- ~TPlyDispConfigSmthTag();
+ //TPlyDispConfigSmthTag();
+ //~TPlyDispConfigSmthTag();
void bswap();
TPlyDispConfigSmthTag &assign(const TPlyDispConfigSmthTag &src);
diff --git a/include/pso/TPlyGuildCardTag.h b/include/pso/TPlyGuildCardTag.h
index 5808e56..8a8e577 100644
--- a/include/pso/TPlyGuildCardTag.h
+++ b/include/pso/TPlyGuildCardTag.h
@@ -16,6 +16,8 @@ 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);
diff --git a/include/pso/TPlyInventory.h b/include/pso/TPlyInventory.h
index 6143a06..6cfb7ec 100644
--- a/include/pso/TPlyInventory.h
+++ b/include/pso/TPlyInventory.h
@@ -7,7 +7,7 @@
#include <pso/TArray.h>
struct TItemData {
- TItemData();
+ void init();
void bswap();
TItemData &assign(const TItemData &src);
@@ -26,8 +26,7 @@ struct TItemData {
class TPlyInventoryItem {
public:
- TPlyInventoryItem() {};
-
+ void init();
void bswap();
TPlyInventoryItem &assign(const TPlyInventoryItem &src);
diff --git a/include/pso/TPlySmth.h b/include/pso/TPlySmth.h
index 660955f..99bf763 100644
--- a/include/pso/TPlySmth.h
+++ b/include/pso/TPlySmth.h
@@ -4,26 +4,28 @@
#include <global_types.h>
#include <pso/protocol.h>
#include <pso/TArray.h>
+#include <pso/TProtocol.h>
class TPlySmth {
public:
- TPlySmth() /*{}*/;
+ TPlySmth() {};
- TPlySmth &operator=(const TPlySmth &src) /*{ return assign(src); }*/;
+ //TPlySmth &operator=(const TPlySmth &src) { return assign(src); };
- void bswap() /*{
- bswap_32(m_smth.at_as<u32>(0));
- bswap_32(m_smth1.at_as<u32>(0));
- }*/;
+ void bswap() {
+ bswap_32(m_smth.as<u32>());
+ bswap_32(m_smth1.as<u32>());
+ };
TPlySmth &assign(const TPlySmth &src) /*{
m_smth = src.m_smth;
- m_smth1 = src.m_smth1;
}*/;
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth, 4);
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, smth1, 4);
-private:
+
+ friend class TProtocol;
+protected:
TArray<u8, 4> m_smth;
TArray<u8, 4> m_smth1;
};
diff --git a/include/pso/TProtocol.h b/include/pso/TProtocol.h
index 5be26eb..ed80d04 100644
--- a/include/pso/TProtocol.h
+++ b/include/pso/TProtocol.h
@@ -19,6 +19,8 @@
#include <pso/TTcpSocket.h>
+EXTERN_OBJECT_NAME(TProtocol);
+
struct packet {
packet_header header;
TArray<u8, 0x7c00-sizeof(packet_header)> data;
@@ -67,10 +69,10 @@ private:
TArray<u8, 80> m_unused3;
TPlyCharData m_character_data;
u32 m_unused4;
- TArray<TMenuListEntry<GameListEntry>, 64> m_game_entries;
- TArray<TMenuListEntry<GameListEntry>, 64> m_game_entries2;
- TArray<TMenuListEntry<LobbyListEntry>, 16> m_lobby_entries;
- TArray<TMenuListEntry<QuestListEntry>, 30> m_quest_entries;
+ TMenuListEntry<GameListEntry> m_game_entries[64];
+ TMenuListEntry<GameListEntry> m_game_entries2[64];
+ TMenuListEntry<LobbyListEntry> m_lobby_entries[16];
+ TMenuListEntry<QuestListEntry> m_quest_entries[30];
TArray<u8, 128> m_unused5;
TArray<char, 17> m_serial_number3;
TArray<char, 17> m_password2;
@@ -111,10 +113,10 @@ public:
PRIVATE_MEMBER_ACCESSORS_ARRAY(u8, unused3, 80);
PRIVATE_MEMBER_ACCESSORS(TPlyCharData, character_data);
PRIVATE_MEMBER_ACCESSORS(u32, unused4);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<GameListEntry>, game_entries, 64);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<GameListEntry>, game_entries2, 64);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<LobbyListEntry>, lobby_entries, 16);
- PRIVATE_MEMBER_ACCESSORS_ARRAY(TMenuListEntry<QuestListEntry>, quest_entries, 30);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<GameListEntry>, game_entries, 64);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<GameListEntry>, game_entries2, 64);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<LobbyListEntry>, lobby_entries, 16);
+ PRIVATE_MEMBER_ACCESSORS_C_ARRAY(TMenuListEntry<QuestListEntry>, 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);
diff --git a/include/pso/TSocket.h b/include/pso/TSocket.h
index b11d8ef..c55dd08 100644
--- a/include/pso/TSocket.h
+++ b/include/pso/TSocket.h
@@ -13,7 +13,7 @@ union ipv4_addr {
TArray<u8, 4> addr_bytes;
};
-class TSocket : public TObject {
+class TSocket : private TObject {
private:
ipv4_addr m_dst_addr;
u16 m_dst_port;
diff --git a/include/pso/TTcpSocket.h b/include/pso/TTcpSocket.h
index b6faf56..b2c8cfb 100644
--- a/include/pso/TTcpSocket.h
+++ b/include/pso/TTcpSocket.h
@@ -19,7 +19,10 @@ private:
PSOV3EncryptionTCP m_recv_crypt;
int m_is_encrypted;
public:
- WEAK_FUNC TTcpSocket(TObject *parent = nullptr);
+ WEAK_FUNC TTcpSocket(TObject *parent) : TSocket(parent) {
+ m_name = TTcpSocket_name;
+ }
+
virtual ~TTcpSocket();
virtual short open() override;
diff --git a/include/pso/macros.h b/include/pso/macros.h
index 4e7ad0c..5901143 100644
--- a/include/pso/macros.h
+++ b/include/pso/macros.h
@@ -75,6 +75,11 @@
return m_##name; \
}
+#define PRIVATE_MEMBER_GETTER_C_ARRAY(type, name, size) \
+ TArray<type, size> &name() { \
+ return to_TArray<type, size>(m_##name); \
+ }
+
#define PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, ...) \
ret_type (*name())(__VA_ARGS__) { \
return m_##name; \
@@ -96,6 +101,9 @@
#define PRIVATE_MEMBER_ACCESSORS_ARRAY(type, name, size) \
PRIVATE_MEMBER_GETTER_ARRAY(type, name, size)
+#define PRIVATE_MEMBER_ACCESSORS_C_ARRAY(type, name, size) \
+ PRIVATE_MEMBER_GETTER_C_ARRAY(type, name, size)
+
#define PRIVATE_MEMBER_ACCESSORS_FUNC(ret_type, name, ...) \
PRIVATE_MEMBER_GETTER_FUNC(ret_type, name, __VA_ARGS__); \
PRIVATE_MEMBER_SETTER_FUNC(ret_type, name, __VA_ARGS__)
diff --git a/src/pso/TPlyGuildCardTag.cpp b/src/pso/TPlyGuildCardTag.cpp
index 2626adc..021c644 100644
--- a/src/pso/TPlyGuildCardTag.cpp
+++ b/src/pso/TPlyGuildCardTag.cpp
@@ -16,6 +16,11 @@ void TPlyGuildCardTag::bswap() {
bswap_16(&m_tag.tag2);
}
+TPlyGuildCardTag &TPlyGuildCardTag::operator=(const TPlyGuildCardTag &src) {
+ _assign(src);
+ return *this;
+}
+
void TPlyGuildCardTag::assign(const TPlyGuildCardTag &src) {
_assign(src);
}
diff --git a/src/pso/TProtocol.cpp b/src/pso/TProtocol.cpp
index 41986d1..b0be8ee 100644
--- a/src/pso/TProtocol.cpp
+++ b/src/pso/TProtocol.cpp
@@ -11,26 +11,119 @@
#include "pso/TObject.h"
#include "pso/TProtocol.h"
#include "pso/TSocket.h"
-#include "pso/TTcpSocket.h"
+OBJECT_NAME(TProtocol);
+void TProtocol::run_task() {
-TProtocol::TProtocol(TObject *parent, u16 sub_version, int language, char *serial_number, char *access_key, char *password) : TTcpSocket(parent) {
+}
+int TProtocol::send(u8 *data, size_t size) {
+ return TTcpSocket::send(data, size);
}
-TProtocol::~TProtocol() {
+int handle_command(packet *pkt) {
}
-void TProtocol::run_task() {
+TProtocol::~TProtocol() {
}
-int TProtocol::send(u8 *data, size_t size) {
- return TTcpSocket::send(data, size);
-}
+#define fill_with(name, value) memset(&m_##name, value, sizeof(m_##name))
+#define copy(name) strncpy(m_##name.m_data, name, sizeof(m_##name.m_data))
-int handle_command(packet *pkt) {
+#pragma dont_inline on
+TProtocol::TProtocol(TObject *parent, u16 sub_version, int language, char *serial_number, char *access_key, char *password) : TTcpSocket(parent) {
+ u8 thing[6];
+ m_name = TProtocol_name;
+ memset(thing, 0, sizeof(thing));
+ {
+ int i = 0;
+ int j = 0;
+ m_smth.m_smth.m_data[i++] = 0;
+ m_smth.m_smth.m_data[i++] = 0;
+ m_smth.m_smth.m_data[i++] = thing[j++];
+ m_smth.m_smth.m_data[i++] = thing[j++];
+ i = 0;
+ m_smth.m_smth1.m_data[i++] = thing[j++];
+ m_smth.m_smth1.m_data[i++] = thing[j++];
+ m_smth.m_smth1.m_data[i++] = thing[j++];
+ m_smth.m_smth1.m_data[i++] = thing[j++];
+ }
+ m_guildcard_tag = TPlyGuildCardTag(-1, -1);
+ m_login_response_state = 0;
+ m_connected = 0;
+ m_joined_game = 0;
+ m_has_meet_user_settings = 0;
+ m_buffer_ready = 0;
+ m_entry_count = 0;
+ m_unused = 0;
+ m_lobby_list_count = 0;
+ m_unused5.m_data[0] = 0;
+ m_unused2 = 0;
+ m_udp_disabled = 0;
+ m_packet_offset = 0;
+ m_packet_size = 0;
+ m_sub_version = sub_version;
+ m_language = language;
+ fill_with(serial_number, 0);
+ fill_with(access_key, 0);
+ fill_with(password, 0);
+
+ copy(serial_number);
+ copy(access_key);
+ copy(password);
+
+ fill_with(client_config, 0);
+
+ m_recv_handlers.m_data[0] = nullptr;
+ m_recv_handlers.m_data[1] = nullptr;
+ m_recv_handlers.m_data[2] = nullptr;
+ m_recv_handlers.m_data[3] = nullptr;
+ m_recv_handlers.m_data[4] = nullptr;
+ m_recv_handlers.m_data[6] = nullptr;
+ m_recv_handlers.m_data[7] = nullptr;
+ m_recv_handlers.m_data[8] = nullptr;
+ m_recv_handlers.m_data[10] = nullptr;
+ m_recv_handlers.m_data[11] = nullptr;
+ m_recv_handlers.m_data[12] = nullptr;
+ m_recv_handlers.m_data[13] = nullptr;
+ m_recv_handlers.m_data[14] = nullptr;
+ m_recv_handlers.m_data[36] = nullptr;
+ m_recv_handlers.m_data[15] = nullptr;
+ m_recv_handlers.m_data[16] = nullptr;
+ m_recv_handlers.m_data[17] = nullptr;
+ m_recv_handlers.m_data[18] = nullptr;
+ m_recv_handlers.m_data[19] = nullptr;
+ m_recv_handlers.m_data[20] = nullptr;
+ m_recv_handlers.m_data[22] = nullptr;
+ m_recv_handlers.m_data[23] = nullptr;
+ m_recv_handlers.m_data[25] = nullptr;
+ m_recv_handlers.m_data[26] = nullptr;
+ m_recv_handlers.m_data[33] = nullptr;
+ m_recv_handlers.m_data[34] = nullptr;
+ m_recv_handlers.m_data[35] = nullptr;
+ m_recv_handlers.m_data[36] = nullptr;
+ m_recv_handlers.m_data[37] = nullptr;
+ m_recv_handlers.m_data[38] = nullptr;
+ m_recv_handlers.m_data[41] = nullptr;
+ m_recv_handlers.m_data[28] = nullptr;
+ m_recv_handlers.m_data[43] = nullptr;
+ m_recv_handlers.m_data[42] = nullptr;
+ m_recv_handlers.m_data[44] = nullptr;
+ m_recv_handlers.m_data[45] = nullptr;
+ m_recv_handlers.m_data[46] = nullptr;
+ m_recv_handlers.m_data[49] = nullptr;
+ m_recv_handlers.m_data[50] = nullptr;
+ m_recv_handlers.m_data[51] = nullptr;
+ m_recv_handlers.m_data[32] = nullptr;
+ m_recv_handlers.m_data[47] = nullptr;
+ m_recv_handlers.m_data[48] = nullptr;
}
+
+void dummy();
+#pragma dont_inline off
+#undef fill_with
+#undef copy
diff --git a/src/pso/TTcpSocket.cpp b/src/pso/TTcpSocket.cpp
index 7244ad6..f105298 100644
--- a/src/pso/TTcpSocket.cpp
+++ b/src/pso/TTcpSocket.cpp
@@ -61,11 +61,6 @@ short tcp_receive(short nh, void (*notify)(short size, short sock_fd), short len
int get_link_status();
char *get_sock_status_name(short code);
-
-WEAK_FUNC TTcpSocket::TTcpSocket(TObject *parent) : TSocket(parent) {
- set_name(TTcpSocket_name);
-}
-
TTcpSocket::~TTcpSocket() {
close();
}