summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/pso/TPlyDispData.h118
1 files changed, 118 insertions, 0 deletions
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