| 1 | #pragma once |
| 2 | |
| 3 | #include <prim/seadSafeString.h> |
| 4 | |
| 5 | #include "Library/HostIO/HioNode.h" |
| 6 | |
| 7 | namespace al { |
| 8 | |
| 9 | class IUseMessageSystem; |
| 10 | class LayoutActor; |
| 11 | class LayoutSystem; |
| 12 | class MessageProjectEx; |
| 13 | class MessageTag; |
| 14 | class MessageTagDataHolder; |
| 15 | |
| 16 | struct ReplaceTimeInfo { |
| 17 | u32 year; |
| 18 | u32 month; |
| 19 | u32 day; |
| 20 | u32 hour; |
| 21 | u32 minute; |
| 22 | u32 second; |
| 23 | u32 centiSecond; |
| 24 | }; |
| 25 | |
| 26 | class MessageHolder : public HioNode { |
| 27 | public: |
| 28 | MessageHolder(); |
| 29 | |
| 30 | void init(const char*, const char*); |
| 31 | const char16* getText(s32) const; |
| 32 | const char16* getText(const char*) const; |
| 33 | const char16* tryGetText(const char*) const; |
| 34 | bool isExistText(const char*) const; |
| 35 | s32 calcCharacterNum(s32) const; |
| 36 | s32 calcCharacterNum(const char*) const; |
| 37 | s32 calcCharacterByteSize(const char*) const; |
| 38 | s32 getTextNum() const; |
| 39 | void searchTextLabelByIndex(sead::BufferedSafeString*, s32) const; |
| 40 | s32 getStyleByIndex(s32) const; |
| 41 | s32 trySearchStyleIndexByLabel(const char*) const; |
| 42 | }; |
| 43 | |
| 44 | const char* getLanguage(); |
| 45 | const char* getLayoutMessageArcName(); |
| 46 | bool isMessageTagMark(char16); |
| 47 | bool isMessageTagEndMark(char16); |
| 48 | bool isMessageTagPageBreak(const IUseMessageSystem*, const char16*); |
| 49 | bool isMessageTagPageBreak(const IUseMessageSystem*, const MessageTag&); |
| 50 | bool isMessageTagPageBreak(const MessageProjectEx*, const MessageTag&); |
| 51 | const char* getMessageTagGroupName(const MessageProjectEx*, s32); |
| 52 | const char* getMessageTagGroupName(const IUseMessageSystem*, s32); |
| 53 | const char* getMessageTagName(const MessageProjectEx*, s32, s32); |
| 54 | const char* getMessageTagName(const IUseMessageSystem*, s32, s32); |
| 55 | bool isExistMessageTag(const char16*); |
| 56 | s32 calcMessageSizeWithoutNullCharacter(const char16*, const char16*); |
| 57 | bool isExistMessageTagTextPaneAnim(const IUseMessageSystem*, const char16*); |
| 58 | bool tryGetMessageTagTextAnim(sead::BufferedSafeString*, const IUseMessageSystem*, const char16*); |
| 59 | bool isMessageTagVoice(const IUseMessageSystem*, const char16*); |
| 60 | void getMessageTagVoiceName(sead::BufferedSafeString*, const IUseMessageSystem*, const char16*); |
| 61 | bool tryGetMessageTagVoiceNameInPage(sead::BufferedSafeString*, const IUseMessageSystem*, |
| 62 | const char16*); |
| 63 | bool isMessageTagPictFont(const IUseMessageSystem*, s32); |
| 64 | bool isMessageTagDeviceFont(const IUseMessageSystem*, s32); |
| 65 | bool isExistMessageTagPadSwitch(const IUseMessageSystem*, const char16*, s32); |
| 66 | bool isMessageTagPadStyle(const IUseMessageSystem*, s32, s32); |
| 67 | bool isMessageTagPadPair(const IUseMessageSystem*, s32, s32); |
| 68 | bool isMessageTagPadStyle2P(const IUseMessageSystem*, s32, s32); |
| 69 | bool isMessageTagAlignLeft(const IUseMessageSystem*, s32, s32); |
| 70 | bool isMessageTagAlignCenter(const IUseMessageSystem*, s32, s32); |
| 71 | void replaceMessageTagString(sead::WBufferedSafeString*, const IUseMessageSystem*, const char16*, |
| 72 | const char16*); |
| 73 | void replaceMessageTagTimeDirectRaceTime(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 74 | ReplaceTimeInfo&); |
| 75 | const char16* getSystemMessageString(const IUseMessageSystem*, const char*, const char*); |
| 76 | void replaceMessageTagTimeDirectDate(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 77 | ReplaceTimeInfo&); |
| 78 | void replaceMessageTagTimeDirectDateDetail(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 79 | ReplaceTimeInfo&); |
| 80 | void replaceMessageTagScore(sead::WBufferedSafeString*, const IUseMessageSystem*, const char16*, |
| 81 | s32, const char*); |
| 82 | void replaceMessageTagCoinNum(sead::WBufferedSafeString*, const IUseMessageSystem*, const char16*, |
| 83 | s32, const char*); |
| 84 | void replaceMessageTagAmiiboName(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 85 | const char16*, const char*, const char*); |
| 86 | void replaceMessageTagUserName(sead::WBufferedSafeString*, const IUseMessageSystem*, const char16*, |
| 87 | const char16*, const char*); |
| 88 | void replaceMessageTagNamedString(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 89 | const char16*, const char16*, const char*); |
| 90 | void replaceMessageTagTime(sead::WBufferedSafeString*, const IUseMessageSystem*, const char16*, |
| 91 | ReplaceTimeInfo&, const char*); |
| 92 | void createReplaceTimeInfoForRaceTime(ReplaceTimeInfo*, s32, s32, s32); |
| 93 | void createReplaceTimeInfoForDateTime(ReplaceTimeInfo*, u64); |
| 94 | void replacePaneDateTime(LayoutActor*, const char*, u64); |
| 95 | MessageTagDataHolder* initMessageTagDataHolder(s32); |
| 96 | void registerMessageTagDataScore(MessageTagDataHolder*, const char*, const s32*); |
| 97 | void registerMessageTagDataCoinNum(MessageTagDataHolder*, const char*, const s32*); |
| 98 | void registerMessageTagDataUserName(MessageTagDataHolder*, const char*, const char16**); |
| 99 | void registerMessageTagDataAmiiboName(MessageTagDataHolder*, const char*, const char**); |
| 100 | void registerMessageTagDataString(MessageTagDataHolder*, const char*, const char16**); |
| 101 | void replaceMessageTagData(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 102 | const MessageTagDataHolder*, const char16*); |
| 103 | s32 calcMessageSizeWithoutTag(const char16*, const char16*); |
| 104 | bool isExistLayoutMessage(const IUseMessageSystem*, const char*); |
| 105 | bool isExistSystemMessage(const IUseMessageSystem*, const char*); |
| 106 | bool isExistStageMessage(const IUseMessageSystem*, const char*); |
| 107 | bool isExistLabelInLayoutMessage(const IUseMessageSystem*, const char*, const char*); |
| 108 | bool isExistLabelInSystemMessage(const IUseMessageSystem*, const char*, const char*); |
| 109 | bool isExistLabelInStageMessage(const IUseMessageSystem*, const char*, const char*); |
| 110 | s32 calcSystemMessageCharacterNum(const IUseMessageSystem*, const char*, const char*); |
| 111 | s32 calcSystemMessageCharacterNumWithoutTag(const IUseMessageSystem*, const char*, const char*); |
| 112 | const char16* getLayoutMessageString(const IUseMessageSystem*, const char*, const char*); |
| 113 | const char16* getStageMessageString(const IUseMessageSystem*, const char*, const char*); |
| 114 | bool tryGetStageMessageString(const char16**, const IUseMessageSystem*, const char*, const char*); |
| 115 | const char16* getLayoutMessageString(const IUseMessageSystem*, const char*, s32); |
| 116 | const char16* getSystemMessageString(const IUseMessageSystem*, const char*, s32); |
| 117 | s32 getSystemMessageLabelNum(const IUseMessageSystem*, const char*); |
| 118 | s32 getLayoutMessageLabelNum(const IUseMessageSystem*, const char*); |
| 119 | const char* getMessageTagParamName(const IUseMessageSystem*, const MessageTag&, s32); |
| 120 | s32 getMessageTagParamNum(const IUseMessageSystem*, const MessageTag&); |
| 121 | void getMessageTagParamString(sead::WBufferedSafeString*, const IUseMessageSystem*, |
| 122 | const MessageTag&, s32); |
| 123 | void getSystemMessageLabelString(sead::BufferedSafeString*, const IUseMessageSystem*, const char*, |
| 124 | s32); |
| 125 | void getLayoutMessageLabelString(sead::BufferedSafeString*, const IUseMessageSystem*, const char*, |
| 126 | s32); |
| 127 | void getMessageLine(char16*, u32, const char16*, u32); |
| 128 | s32 countMessageLine(const char16*); |
| 129 | bool copyMessageExpandTag(char16*, s32, const IUseMessageSystem*, const char16*); |
| 130 | bool copyMessageWithoutTag(char16*, s32, const char16*); |
| 131 | bool copyMessageWithoutRubyTag(char16*, s32, const IUseMessageSystem*, const char16*); |
| 132 | void copyMessageWithoutTagExpandRuby(char16*, s32, const IUseMessageSystem*, const char16*); |
| 133 | s32 copyMessageWithTag(char16*, s32, const char16*); |
| 134 | s32 copyMessageWithTagOnlyCurrentPage(const IUseMessageSystem*, char16*, s32, const char16*, s32); |
| 135 | const char16* getMessageWithPage(const IUseMessageSystem*, const char16*, s32); |
| 136 | void copyMessageOnlyRuby(char16*, s32, const IUseMessageSystem*, const char16*); |
| 137 | s32 countMessagePage(const IUseMessageSystem*, const char16*, s32); |
| 138 | const char16* getNextMessagePage(const IUseMessageSystem*, const char16*); |
| 139 | void* getPictureFont(const LayoutSystem*); // TODO: unknown return type |
| 140 | |
| 141 | } // namespace al |
| 142 | |