1#pragma once
2
3#include <prim/seadSafeString.h>
4
5#include "Library/Base/StringUtil.h"
6
7namespace al {
8template <s32>
9class StringTmp;
10
11class PlacementInfo;
12
13class PlacementId {
14public:
15 static bool isEqual(const PlacementId& selfId, const PlacementId& otherId);
16
17 PlacementId();
18 PlacementId(const char* id, const char* unitConfig, const char* zoneId);
19
20 bool init(const PlacementInfo& info);
21 bool isEqual(const PlacementId& otherId) const;
22 bool isValid() const;
23 void makeString(sead::BufferedSafeString* out) const;
24
25 const char* getId() const { return mId; }
26
27 const char* getUnitConfigName() const { return mUnitConfigName; }
28
29 const char* getZoneId() const { return mZoneId; }
30
31 const char* getCommonId() const { return mCommonId; }
32
33private:
34 const char* mId = nullptr;
35 const char* mUnitConfigName = nullptr;
36 const char* mZoneId = nullptr;
37 const char* mCommonId = nullptr;
38};
39
40StringTmp<128> makeStringPlacementId(const PlacementId* placementId);
41
42} // namespace al
43