summaryrefslogtreecommitdiff
path: root/src/newer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/newer.cpp')
-rw-r--r--src/newer.cpp44
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);