metaforce/Runtime/CSaveWorld.hpp

49 lines
1.2 KiB
C++
Raw Normal View History

2016-06-23 12:40:09 -07:00
#ifndef __URDE_CSAVEWORLD_HPP__
#define __URDE_CSAVEWORLD_HPP__
2016-07-23 18:51:15 -07:00
#include "RetroTypes.hpp"
2016-07-24 00:39:58 -07:00
#include "DNACommon/SAVWCommon.hpp"
2016-07-23 18:51:15 -07:00
2016-06-23 12:40:09 -07:00
namespace urde
{
2016-07-24 00:39:58 -07:00
2016-06-23 12:40:09 -07:00
class CSaveWorld
{
2016-07-24 00:39:58 -07:00
public:
using EScanCategory = DataSpec::SAVWCommon::EScanCategory;
struct SScanState
{
ResId x0_id;
EScanCategory x4_category;
};
struct SLayerState
{
TAreaId x0_area;
u32 x4_layer;
};
private:
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;
public:
2016-06-23 12:40:09 -07:00
CSaveWorld(CInputStream& in);
2016-07-24 00:39:58 -07:00
u32 GetAreaCount() const;
u32 GetCinematicCount() const;
s32 GetCinematicIndex(const TEditorId& id) const;
2016-09-24 18:58:20 -07:00
const std::vector<TEditorId>& GetCinematics() const { return x4_cinematics; }
const std::vector<SScanState>& GetScans() const { return x44_scans; }
2016-07-24 00:39:58 -07:00
u32 GetRelayCount() const;
s32 GetRelayIndex(const TEditorId& id) const;
2016-07-24 16:14:58 -07:00
TEditorId GetRelayEditorId(u32 idx) const;
2016-07-24 00:39:58 -07:00
u32 GetDoorCount() const;
s32 GetDoorIndex(const TEditorId &id) const;
2016-06-23 12:40:09 -07:00
};
}
#endif // __URDE_CSAVEWORLD_HPP__