From 26f5315e65c74c269b6eb1a190cb54fcf19d16a7 Mon Sep 17 00:00:00 2001 From: Treeki Date: Fri, 28 Sep 2012 05:24:15 +0200 Subject: added level flags to levelinfo --- include/game.h | 11 +++++++++++ src/levelinfo.cpp | 2 ++ src/levelinfo.h | 2 +- src/levelinfo_old.h | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/game.h b/include/game.h index e383cf7..ef6aba4 100755 --- a/include/game.h +++ b/include/game.h @@ -140,6 +140,17 @@ inline void *GetGameMgr() { bool QueryPlayerAvailability(int id); void DoStartLevel(void *gameMgr, StartLevelInfo *sl); + + +// Level Conditions +// 1 : Has Toad Block +// 2 : Is Regular Level (has star coins, etc) +// 0x10 : Has Normal Exit +// 0x20 : Has Secret Exit +// 0x40 : Warp Cannon +// 0x80 : 1up/Green Mushroom House +// 0x100 : Red Mushroom House +// 0x200 : Star/Yellow Mushroom House void SetSomeConditionShit(int world, int level, unsigned int bits); bool IsWideScreen(); diff --git a/src/levelinfo.cpp b/src/levelinfo.cpp index fd147f3..8ce2845 100644 --- a/src/levelinfo.cpp +++ b/src/levelinfo.cpp @@ -12,6 +12,8 @@ void dLevelInfo_c::load(void *buffer) { for (int lev = 0; lev < thisSect->levelCount; lev++) { entry_s *level = &levels[lev]; + SetSomeConditionShit(level->worldSlot, level->levelSlot, level->flags); + char *name = (char*)getNameForLevel(level); for (int i = 0; i < level->nameLength+1; i++) { diff --git a/src/levelinfo.h b/src/levelinfo.h index 8d8a4e5..20628d9 100644 --- a/src/levelinfo.h +++ b/src/levelinfo.h @@ -22,7 +22,7 @@ public: u8 displayLevel; u8 nameLength; u8 reserved3; - u16 reserved4; + u16 flags; u32 nameOffset; }; diff --git a/src/levelinfo_old.h b/src/levelinfo_old.h index 50760c5..ed43757 100644 --- a/src/levelinfo_old.h +++ b/src/levelinfo_old.h @@ -20,7 +20,7 @@ struct LevelInfo_Entry { u8 displayLevel; u8 nameLength; u8 reserved3; - u16 reserved4; + u16 flags; u32 nameOffset; }; -- cgit v1.2.3