diff options
Diffstat (limited to 'src/newer.cpp')
-rw-r--r-- | src/newer.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/newer.cpp b/src/newer.cpp index 0b53fa6..d1894ba 100644 --- a/src/newer.cpp +++ b/src/newer.cpp @@ -1,6 +1,50 @@ #include <newer.h> #include <game.h> +void getNewerLevelNumberString(int world, int level, wchar_t *dest) { + static const wchar_t *numberKinds[] = { + // 0-19 are handled by code + // To insert a picturefont character: + // \x0B\x01YY\xZZZZ + // YY is the character code, ZZZZ is ignored + L"A", // 20, alternate + L"\x0B\x0148\xBEEF", // 21, tower + L"\x0B\x0148\xBEEF" L"2", // 22, tower 2 + L"\x0B\x012E\xBEEF", // 23, castle + L"\x0B\x012F\xBEEF", // 24, fortress + L"\x0B\x013D\xBEEF", // 25, final castle + L"\x0B\x014D\xBEEF", // 26, train + L"\x0B\x0132\xBEEF", // 27, airship + L"Palace", // 28, switch palace + L"\x0B\x0147\xBEEF", // 29, yoshi's house + L"\x0B\x014E\xBEEF" L"1", // 30, key 1 + L"\x0B\x014E\xBEEF" L"2", // 31, key 2 + L"\x0B\x014E\xBEEF" L"3", // 32, key 3 + L"\x0B\x014E\xBEEF" L"4", // 33, key 4 + L"\x0B\x014E\xBEEF" L"5", // 34, key 5 + L"\x0B\x014E\xBEEF" L"6", // 35, key 6 + L"\x0B\x0138\xBEEF", // 36, music house + L"\x0B\x0133\xBEEF", // 37, shop + L"\x0B\x0139\xBEEF", // 38, challenge house + L"\x0B\x0151\xBEEF", // 39, red switch palace + L"\x0B\x0152\xBEEF", // 40, blue switch palace + L"\x0B\x0153\xBEEF", // 41, yellow switch palace + L"\x0B\x0154\xBEEF", // 42, green switch palace + }; + + dest[0] = (world >= 10) ? (world-10+'A') : (world+'0'); + dest[1] = '-'; + if (level >= 20) { + wcscpy(&dest[2], numberKinds[level-20]); + } else if (level >= 10) { + dest[2] = '1'; + dest[3] = ('0' - 10) + level; + dest[4] = 0; + } else { + dest[2] = '0' + level; + dest[3] = 0; + } +} int getStarCoinCount() { SaveBlock *save = GetSaveFile()->GetBlock(-1); |