clean up map parsing

This commit is contained in:
Martin Michelsen
2022-08-02 12:11:55 -07:00
parent ed36471a4e
commit 42c1d251eb
4 changed files with 217 additions and 219 deletions
+16 -12
View File
@@ -2,22 +2,23 @@
#include <inttypes.h>
#include <phosg/Encoding.hh>
#include <vector>
#include <string>
struct BattleParams {
uint16_t atp; // attack power
uint16_t psv; // perseverance (intelligence?)
uint16_t evp; // evasion
uint16_t hp; // hit points
uint16_t dfp; // defense
uint16_t ata; // accuracy
uint16_t lck; // luck
le_uint16_t atp; // attack power
le_uint16_t psv; // perseverance (intelligence?)
le_uint16_t evp; // evasion
le_uint16_t hp; // hit points
le_uint16_t dfp; // defense
le_uint16_t ata; // accuracy
le_uint16_t lck; // luck
uint8_t unknown_a1[0x0E];
uint32_t experience;
uint32_t difficulty;
le_uint32_t experience;
le_uint32_t difficulty;
} __attribute__((packed));
struct BattleParamTable {
@@ -39,14 +40,17 @@ struct BattleParamIndex {
// an enemy entry as loaded by the game
struct PSOEnemy {
uint16_t unused;
uint64_t id;
uint16_t source_type;
uint8_t hit_flags;
uint8_t last_hit;
uint32_t experience;
uint32_t rt_index;
PSOEnemy();
PSOEnemy(uint32_t experience, uint32_t rt_index);
explicit PSOEnemy(uint64_t id);
PSOEnemy(uint64_t id, uint16_t source_type, uint32_t experience, uint32_t rt_index);
std::string str() const;
} __attribute__((packed));
std::vector<PSOEnemy> load_map(const std::string& filename, uint8_t episode,