add ItemRT.afs decoder

This commit is contained in:
Martin Michelsen
2023-10-16 21:14:38 -07:00
parent ba09188b82
commit d66c1f5de9
6 changed files with 185 additions and 6 deletions
+14
View File
@@ -6,6 +6,7 @@
#include <random>
#include <string>
#include "AFSArchive.hh"
#include "GSLArchive.hh"
#include "StaticGameData.hh"
@@ -64,6 +65,19 @@ protected:
static uint16_t key_for_params(GameMode mode, Episode episode, uint8_t difficulty, uint8_t secid);
};
class AFSRareItemSet : public RareItemSet {
public:
AFSRareItemSet(std::shared_ptr<const std::string> data);
virtual ~AFSRareItemSet() = default;
virtual std::vector<ExpandedDrop> get_enemy_specs(GameMode mode, Episode episode, uint8_t difficulty, uint8_t secid, uint8_t rt_index) const;
virtual std::vector<ExpandedDrop> get_box_specs(GameMode mode, Episode episode, uint8_t difficulty, uint8_t secid, uint8_t area) const;
private:
std::unordered_map<uint16_t, const Table*> tables;
AFSArchive afs;
};
class GSLRareItemSet : public RareItemSet {
public:
GSLRareItemSet(std::shared_ptr<const std::string> data, bool is_big_endian);