summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-03-03 20:08:49 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-03-03 20:08:49 -0400
commit307b4a54c95e08ad01e2c6b7c27a3eca54f05f42 (patch)
tree4c72e21e5c915b28aea9bc3ec38c9e66367a85bc
parenta6ac85c3eaff90c0ff0400312f43bec8188b9833 (diff)
TPlyDispData: Add `TPlyDispData`
-rw-r--r--context.h110
-rw-r--r--include/pso/TPlyDispData.h118
2 files changed, 227 insertions, 1 deletions
diff --git a/context.h b/context.h
index cdfe79f..366a014 100644
--- a/context.h
+++ b/context.h
@@ -569,6 +569,59 @@ struct gc_tag {
u16 tag2;
};
+// pso/TPlyDispData.h
+struct stats {
+ void bswap();
+ stats &assign(const stats &src);
+
+ short atp;
+ short mst;
+ short evp;
+ short hp;
+ short dfp;
+ short ata;
+ short lck;
+};
+
+struct player_stats {
+ void bswap();
+ player_stats &assign(const player_stats &src);
+
+ struct stats stats;
+ short mbr_0xe;
+ float proportions;
+ float mbr_0x14;
+ int level;
+ int exp;
+ int meseta;
+};
+
+struct disp_data_part2 {
+ void bswap();
+ disp_data_part2 &assign(const disp_data_part2 &src);
+
+ TArray<char, 16> name;
+ u64 smth;
+ u32 name_colour;
+ u8 extra_model;
+ TArray<u8, 15> padding;
+ u32 name_colour_checksum;
+ u8 section_id;
+ u8 char_class;
+ u8 v2_flags;
+ u8 version;
+ u32 v1_flags;
+ u16 costume;
+ u16 skin;
+ u16 face;
+ u16 head;
+ u16 hair;
+ u16 hair_r;
+ u16 hair_g;
+ u16 hair_b;
+ vec2f proportions;
+};
+
// TTcpSocket.cpp, but they're really from AVE-TCP
struct at_ip4_opt {
u8 ttl;
@@ -647,9 +700,64 @@ 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/TPlyGuildCardTag.h
+// pso/TPlyDispData.h
// Class defs.
+class TPlyDispConfigSmthTag {
+public:
+ TPlyDispConfigSmthTag();
+ ~TPlyDispConfigSmthTag();
+
+ void bswap();
+ TPlyDispConfigSmthTag &assign(const TPlyDispConfigSmthTag &src);
+
+ PRIVATE_MEMBER_ACCESSORS(gc_tag, tag);
+private:
+ gc_tag m_tag;
+};
+
+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:
+ u32 m_mbr_0x0;
+ TArray<TPlyDispConfigSmthTag, 4> m_tags;
+ TArray<TPlyDispConfigSmthTag, 4> m_tags1;
+};
+
+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;
+};
+
+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:
+ player_stats m_stats;
+ disp_data_part2 m_disp_part2;
+ TPlyDispConfig m_config;
+ TArray<u8, 20> m_tech_levels;
+};
+
+// pso/TPlyGuildCardTag.h
class TPlyGuildCardTag {
public:
TPlyGuildCardTag();
diff --git a/include/pso/TPlyDispData.h b/include/pso/TPlyDispData.h
new file mode 100644
index 0000000..a237bbc
--- /dev/null
+++ b/include/pso/TPlyDispData.h
@@ -0,0 +1,118 @@
+#ifndef TPLYDISPDATA_H
+#define TPLYDISPDATA_H
+
+#include <global_types.h>
+#include <pso/macros.h>
+#include <pso/protocol.h>
+#include <pso/TArray.h>
+#include <pso/TMath.h>
+#include <pso/TPlyGuildCardTag.h>
+
+struct stats {
+ void bswap();
+ stats &assign(const stats &src);
+
+ short atp;
+ short mst;
+ short evp;
+ short hp;
+ short dfp;
+ short ata;
+ short lck;
+};
+
+struct player_stats {
+ void bswap();
+ player_stats &assign(const player_stats &src);
+
+ struct stats stats;
+ short mbr_0xe;
+ float proportions;
+ float mbr_0x14;
+ int level;
+ int exp;
+ int meseta;
+};
+
+struct disp_data_part2 {
+ void bswap();
+ disp_data_part2 &assign(const disp_data_part2 &src);
+
+ TArray<char, 16> name;
+ u64 smth;
+ u32 name_colour;
+ u8 extra_model;
+ TArray<u8, 15> padding;
+ u32 name_colour_checksum;
+ u8 section_id;
+ u8 char_class;
+ u8 v2_flags;
+ u8 version;
+ u32 v1_flags;
+ u16 costume;
+ u16 skin;
+ u16 face;
+ u16 head;
+ u16 hair;
+ u16 hair_r;
+ u16 hair_g;
+ u16 hair_b;
+ vec2f proportions;
+};
+
+class TPlyDispConfigSmthTag {
+public:
+ TPlyDispConfigSmthTag();
+ ~TPlyDispConfigSmthTag();
+
+ void bswap();
+ TPlyDispConfigSmthTag &assign(const TPlyDispConfigSmthTag &src);
+
+ PRIVATE_MEMBER_ACCESSORS(gc_tag, tag);
+private:
+ gc_tag m_tag;
+};
+
+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:
+ u32 m_mbr_0x0;
+ TArray<TPlyDispConfigSmthTag, 4> m_tags;
+ TArray<TPlyDispConfigSmthTag, 4> m_tags1;
+};
+
+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;
+};
+
+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:
+ player_stats m_stats;
+ disp_data_part2 m_disp_part2;
+ TPlyDispConfig m_config;
+ TArray<u8, 20> m_tech_levels;
+};
+
+#endif