diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:08:49 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:08:49 -0400 |
commit | 307b4a54c95e08ad01e2c6b7c27a3eca54f05f42 (patch) | |
tree | 4c72e21e5c915b28aea9bc3ec38c9e66367a85bc /include/pso | |
parent | a6ac85c3eaff90c0ff0400312f43bec8188b9833 (diff) |
TPlyDispData: Add `TPlyDispData`
Diffstat (limited to 'include/pso')
-rw-r--r-- | include/pso/TPlyDispData.h | 118 |
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 |