#pragma once #include #include #include #include "EnemyType.hh" #include "GSLArchive.hh" #include "PSOEncryption.hh" #include "StaticGameData.hh" #include "Text.hh" #include "Types.hh" struct TekkerAdjustmentSet { // This struct parses and accesses data from JudgeItem.rel TekkerAdjustmentSet(const void* data, size_t size, bool big_endian); TekkerAdjustmentSet(const std::string& data, bool big_endian); explicit TekkerAdjustmentSet(const phosg::JSON& json); template void parse_t(const void* data, size_t size); template std::string serialize_binary_t() const; std::string serialize_binary(bool big_endian) const; phosg::JSON json() const; void print(FILE* stream) const; static uint8_t favored_weapon_type_for_section_id(uint8_t section_id); struct Table { std::unordered_map probs; size_t total = 0; }; std::array favored_special_delta_table; std::array default_special_delta_table; std::array favored_grind_delta_table; std::array default_grind_delta_table; std::array favored_bonus_delta_table; std::array default_bonus_delta_table; std::unordered_map special_luck_table; std::unordered_map grind_luck_table; std::unordered_map bonus_luck_table; };