2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2016-06-23 19:40:09 +00:00
|
|
|
|
2019-09-23 19:00:23 +00:00
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include "Runtime/CFactoryMgr.hpp"
|
|
|
|
#include "Runtime/RetroTypes.hpp"
|
2016-07-24 01:51:15 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
namespace metaforce {
|
2016-07-24 07:39:58 +00:00
|
|
|
|
2021-06-05 05:27:52 +00:00
|
|
|
class CWorldSaveGameInfo {
|
2016-07-24 07:39:58 +00:00
|
|
|
public:
|
2022-02-21 09:04:16 +00:00
|
|
|
enum class EScanCategory { None, Data, Lore, Creature, Research, Artifact };
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
struct SScanState {
|
|
|
|
CAssetId x0_id;
|
|
|
|
EScanCategory x4_category;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SLayerState {
|
|
|
|
TAreaId x0_area;
|
|
|
|
u32 x4_layer;
|
|
|
|
};
|
2016-07-24 07:39:58 +00:00
|
|
|
|
|
|
|
private:
|
2018-12-08 05:30:43 +00:00
|
|
|
u32 x0_areaCount;
|
|
|
|
std::vector<TEditorId> x4_cinematics;
|
|
|
|
std::vector<TEditorId> x14_relays;
|
|
|
|
std::vector<SLayerState> x24_layers;
|
|
|
|
std::vector<TEditorId> x34_doors;
|
|
|
|
std::vector<SScanState> x44_scans;
|
|
|
|
|
2016-07-24 07:39:58 +00:00
|
|
|
public:
|
2021-06-05 05:27:52 +00:00
|
|
|
explicit CWorldSaveGameInfo(CInputStream& in);
|
2018-12-08 05:30:43 +00:00
|
|
|
u32 GetAreaCount() const;
|
|
|
|
u32 GetCinematicCount() const;
|
|
|
|
s32 GetCinematicIndex(const TEditorId& id) const;
|
|
|
|
const std::vector<TEditorId>& GetCinematics() const { return x4_cinematics; }
|
|
|
|
const std::vector<TEditorId>& GetDoors() const { return x34_doors; }
|
|
|
|
const std::vector<SScanState>& GetScans() const { return x44_scans; }
|
|
|
|
u32 GetRelayCount() const;
|
|
|
|
s32 GetRelayIndex(const TEditorId& id) const;
|
|
|
|
TEditorId GetRelayEditorId(u32 idx) const;
|
|
|
|
u32 GetDoorCount() const;
|
|
|
|
s32 GetDoorIndex(const TEditorId& id) const;
|
2016-06-23 19:40:09 +00:00
|
|
|
};
|
2016-10-08 20:32:36 +00:00
|
|
|
|
2021-06-05 05:27:52 +00:00
|
|
|
CFactoryFnReturn FWorldSaveGameInfoFactory(const SObjectTag& tag, CInputStream& in, const CVParamTransfer& param,
|
2021-06-07 19:29:18 +00:00
|
|
|
CObjectReference* selfRef);
|
2016-10-08 20:32:36 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
} // namespace metaforce
|