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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#include <newer.h>
#include <game.h>
NWRWorld NewerWorldForLevelID(int w, int l) {
switch (w) {
case 1: return YOSHI_ISLAND;
case 2:
if (((l>1) && (l<5)) || (l==15) || (l==33) || (l==34))
return SOGGY_SEWERS;
else
return RUBBLE_RUINS;
case 3: return MUSHROOM_PEAKS;
case 4: return SAKURA_VILLAGE;
case 5:
if (l<7 || l==15 || l==33 || l==34)
return FREEZEFLAME_GLACIER;
else
return FREEZEFLAME_VOLCANO;
case 6: return PUMPKIN_BONEYARD;
case 7:
if (l<4)
return SKY_MOUNTAIN;
else
return STARRY_SKIES;
case 8:
if (l<6 || l==15 || l==25 || l==33 || l==34)
return KOOPA_PLANET;
else
return KOOPA_CORE;
case 9: return BONUS_LAND;
case 10:
if (l<6 || l==30 || l==41)
return GOLDWOOD_FOREST;
else if (l<11 || l==32)
return MINIMEGA_ISLAND;
else if (l<16 || l==33 || l==34 || l==31)
return CRYSTAL_CAVES;
else if (l<19)
return BOMBARD_CLIFFS;
else
return SKY_CITY;
}
return UNKNOWN_WORLD;
}
const wchar_t *NewerWorldNames[] = {
L"Yoshi's Island",
L"Rubble Ruins",
L"Soggy Sewers",
L"Mushroom Peaks",
L"Sakura Village",
L"Freezeflame Glacier",
L"Freezeflame Volcano",
L"Pumpkin Boneyard",
L"Sky Mountain",
L"Starry Skies",
L"Koopa Planet",
L"Koopa Core",
L"Bonus Land",
L"Goldwood Forest",
L"Mini-Mega Island",
L"Crystal Caves",
L"Bombard Cliffs",
L"Sky City"
};
// This is an array so it can be accessed from fileselect.S
int NewerWorldCount[] = {
18
};
const wchar_t *NewerWorldName(NWRWorld world) {
if (world < 0 || world >= WORLD_COUNT)
return L"Unknown World";
return NewerWorldNames[world];
}
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;
}
|