| 1 | #pragma once |
| 2 | |
| 3 | #include <prim/seadSafeString.h> |
| 4 | |
| 5 | #include "Library/Base/StringUtil.h" |
| 6 | |
| 7 | namespace al { |
| 8 | template <s32> |
| 9 | class StringTmp; |
| 10 | |
| 11 | class PlacementInfo; |
| 12 | |
| 13 | class PlacementId { |
| 14 | public: |
| 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 | |
| 33 | private: |
| 34 | const char* mId = nullptr; |
| 35 | const char* mUnitConfigName = nullptr; |
| 36 | const char* mZoneId = nullptr; |
| 37 | const char* mCommonId = nullptr; |
| 38 | }; |
| 39 | |
| 40 | StringTmp<128> makeStringPlacementId(const PlacementId* placementId); |
| 41 | |
| 42 | } // namespace al |
| 43 | |