OdysseyDecomp/lib/al/Library/Message/MessageSystem.h
2024-06-13 21:10:45 +02:00

36 lines
1,000 B
C++

#pragma once
#include <container/seadPtrArray.h>
#include <container/seadStrTreeMap.h>
namespace sead {
class MessageProject;
}
namespace al {
class MessageProjectEx;
class MessageHolder;
class MessageSystem {
public:
using MessageTreeMap = sead::StrTreeMap<256, MessageHolder*>;
MessageSystem();
void initMessageForChangeLanguage();
bool tryInitMessageHolder(MessageTreeMap*, const char*, const char*, const char*);
sead::MessageProject* getMessageProject();
MessageHolder* getMessageHolderCore(const char*, s32);
MessageHolder* getMessageHolderCore(const char*, s32, const char*);
MessageHolder* getSystemMessageHolder(const char*);
MessageHolder* getSystemMessageHolder(const char*, const char*);
MessageHolder* getLayoutMessageHolder(const char*);
MessageHolder* getStageMessageHolder(const char*);
private:
MessageProjectEx* mMessageProject;
sead::PtrArray<MessageTreeMap> mTreeMaps;
sead::Heap* mMessageHeap;
};
} // namespace al