1#include <game/bases/d_message.hpp>
2#include <game/bases/d_game_com.hpp>
3#include <egg/core/eggArchive.h>
16 if (l_dMessage_obj.mpFileData ==
nullptr) {
17 dGameCom::AreaLanguageFolder(
"Message/Message.arc", path);
19 void *buffer = l_dMessage_obj.mLoader.request(path, 0, heap);
20 if (buffer ==
nullptr) {
24 EGG::Archive *archive = EGG::Archive::mount(buffer, heap, 4);
25 EGG::Archive::FileInfo fileInfo;
26 l_dMessage_obj.mpFileData = archive->getFile(
"wii_mj2d.bmg", &fileInfo);
27 l_dMessage_obj.buildMsgRes(heap);
38 return l_dMessage_obj.mpMsgRes->getMsg(messageGroup, messageID);
42 return l_dMessage_obj.mpMsgRes;
47 int digitPos = digitCount - 1;
48 bool skipOverZeros = suppressLeadingZero == 1;
50 while (digitPos >= 0) {
52 for (
int exp = 0; exp < digitPos; exp++) {
56 int digit = (num % (pow10 * 10)) / pow10;
58 if (digit == 0 && skipOverZeros && digitPos != 0) {
61 dst[count] = L
'0' + digit;
62 skipOverZeros =
false;
67 if (writeLimit <= count) {
76 numToString(num, dst, writeLimit, digitCount, suppressLeadingZero);
81 size_t len = wcslen(str);
82 for (
size_t i = 0; i < len; i++) {
85 }
else if (0x21 <= str[i] && str[i] <= 0x7E) {
86 str[i] = 0xFEE0 + str[i];
A simple wrapper around EGG::MsgRes.
Helper class for managing message resources.
static void numToString(int num, wchar_t *dst, size_t writeLimit, int digitCount, int suppressLeadingZero)
Writes num into dst with digitCount decimal digits, replacing suppressed leading zeros with spaces....
static wchar_t * getMsg(ulong messageGroup, ulong messageID)
Gets a message from the group number and ID.
MsgRes_c * mpMsgRes
The message resource instance used to retrieve messages.
void buildMsgRes(EGG::Heap *heap)
Creates a new MsgRes_c instance from the loaded message resource file.
static MsgRes_c * getMesRes()
Gets the MsgRes_c instance used.
~dMessage_c()
Destroys the dMessage_c instance.
void * mpFileData
The raw message resource file data.
static void numToFullWidth(int num, wchar_t *dst, size_t writeLimit, int digitCount, int suppressLeadingZero)
Same as numToString, but uses full-width characters.
static void changetoFullSize(wchar_t *str)
Converts regular ASCII characters in str to full-width characters.
dMessage_c()
Constructs a new dMessage_c instance.
static bool create(EGG::Heap *heap)
Loads the message resource file from disk and initializes it.