mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-05-10 19:01:46 +00:00
fixed get_level_num_from_course_num
This commit is contained in:
parent
2d62121953
commit
b1af1ade33
2 changed files with 19 additions and 7 deletions
|
|
@ -55,11 +55,14 @@ s8 gLevelToCourseNumTable[] = {
|
||||||
#undef STUB_LEVEL
|
#undef STUB_LEVEL
|
||||||
#undef DEFINE_LEVEL
|
#undef DEFINE_LEVEL
|
||||||
|
|
||||||
#define STUB_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8) levelenum,
|
#define STUB_LEVEL(_0, levelenum, courseenum, _3, _4, _5, _6, _7, _8) [courseenum] = levelenum,
|
||||||
#define DEFINE_LEVEL(_0, levelenum, _2, _3, _4, _5, _6, _7, _8, _9, _10) levelenum,
|
#define DEFINE_LEVEL(_0, levelenum, courseenum, _3, _4, _5, _6, _7, _8, _9, _10) [courseenum] = levelenum,
|
||||||
s8 gCourseNumToLevelNumTable[] = {
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Woverride-init" // this is hacky, but its dealt with in the getter function
|
||||||
|
s8 sCourseNumToLevelNumTable[] = {
|
||||||
#include "levels/level_defines.h"
|
#include "levels/level_defines.h"
|
||||||
};
|
};
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
#undef STUB_LEVEL
|
#undef STUB_LEVEL
|
||||||
#undef DEFINE_LEVEL
|
#undef DEFINE_LEVEL
|
||||||
|
|
||||||
|
|
@ -70,7 +73,17 @@ s8 get_level_num_from_course_num(s16 courseNum) {
|
||||||
if (courseNum < 0 || courseNum >= COURSE_COUNT) {
|
if (courseNum < 0 || courseNum >= COURSE_COUNT) {
|
||||||
return LEVEL_NONE;
|
return LEVEL_NONE;
|
||||||
}
|
}
|
||||||
return gCourseNumToLevelNumTable[courseNum];
|
switch (courseNum) { // deal with the overridden courses
|
||||||
|
case COURSE_NONE:
|
||||||
|
return LEVEL_CASTLE;
|
||||||
|
case COURSE_BITDW:
|
||||||
|
return LEVEL_BITDW;
|
||||||
|
case COURSE_BITFS:
|
||||||
|
return LEVEL_BITFS;
|
||||||
|
case COURSE_BITS:
|
||||||
|
return LEVEL_BITS;
|
||||||
|
}
|
||||||
|
return sCourseNumToLevelNumTable[courseNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
s8 get_level_course_num(s16 levelNum) {
|
s8 get_level_course_num(s16 levelNum) {
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,6 @@ extern s8 sUnusedGotGlobalCoinHiScore;
|
||||||
extern u8 gGotFileCoinHiScore;
|
extern u8 gGotFileCoinHiScore;
|
||||||
extern u8 gCurrCourseStarFlags;
|
extern u8 gCurrCourseStarFlags;
|
||||||
extern s8 gLevelToCourseNumTable[];
|
extern s8 gLevelToCourseNumTable[];
|
||||||
extern s8 gCourseNumToLevelNumTable[];
|
|
||||||
|
|
||||||
// game progress flags
|
// game progress flags
|
||||||
#define SAVE_FLAG_FILE_EXISTS /* 0x00000001 */ (1 << 0)
|
#define SAVE_FLAG_FILE_EXISTS /* 0x00000001 */ (1 << 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue