1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#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);
int coinsSpent = save->credits_hiscore;
int coinsEarned = 0;
for (int w = 0; w < 10; w++) {
for (int l = 0; l < 10; l++) {
u32 conds = save->GetLevelCondition(w, l);
if (conds & COND_COIN1) { coinsEarned++; }
if (conds & COND_COIN2) { coinsEarned++; }
if (conds & COND_COIN3) { coinsEarned++; }
}
}
int coinsLeft = coinsEarned - coinsSpent;
return coinsLeft;
}
|