From af4b6c1159f85dfc9a6ff118b7bc77c7f5843202 Mon Sep 17 00:00:00 2001 From: XProger Date: Thu, 26 Sep 2019 01:35:12 +0300 Subject: [PATCH] fixed #217 --- src/gameflow.h | 248 ++++++++++++++++++++++++------------------------ src/inventory.h | 10 +- 2 files changed, 129 insertions(+), 129 deletions(-) diff --git a/src/gameflow.h b/src/gameflow.h index a40bd3b..2bcfd40 100644 --- a/src/gameflow.h +++ b/src/gameflow.h @@ -252,139 +252,137 @@ namespace TR { TRACK_TR4_OUT_NIGHT = 111, }; -// #define LEVEL (version,name,track) { #name, STR_##version##_##name, TRACK_##version##track }, -// #define CUT (version,id) { #CUT_#id, STR_##version##_##name, TRACK_##version##track }, - struct LevelInfo { const char *name; StringID title; - int track; + uint8 track; + uint8 secrets; } LEVEL_INFO[LVL_MAX] = { - { "" , STR_EMPTY , TRACK_TR1_CAVES }, + { "" , STR_EMPTY , TRACK_TR1_CAVES , 0 }, // TR1 - { "TITLE" , STR_EMPTY , TRACK_TR1_TITLE }, - { "GYM" , STR_TR1_GYM , NO_TRACK }, - { "LEVEL1" , STR_TR1_LEVEL1 , TRACK_TR1_CAVES }, - { "LEVEL2" , STR_TR1_LEVEL2 , TRACK_TR1_CAVES }, - { "LEVEL3A" , STR_TR1_LEVEL3A , TRACK_TR1_CAVES }, - { "LEVEL3B" , STR_TR1_LEVEL3B , TRACK_TR1_CAVES }, - { "CUT1" , STR_EMPTY , TRACK_TR1_CUT_1 }, - { "LEVEL4" , STR_TR1_LEVEL4 , TRACK_TR1_CAVES }, - { "LEVEL5" , STR_TR1_LEVEL5 , TRACK_TR1_CAVES }, - { "LEVEL6" , STR_TR1_LEVEL6 , TRACK_TR1_CAVES }, - { "LEVEL7A" , STR_TR1_LEVEL7A , TRACK_TR1_CISTERN }, - { "LEVEL7B" , STR_TR1_LEVEL7B , TRACK_TR1_CISTERN }, - { "CUT2" , STR_EMPTY , TRACK_TR1_CUT_2 }, - { "LEVEL8A" , STR_TR1_LEVEL8A , TRACK_TR1_EGYPT }, - { "LEVEL8B" , STR_TR1_LEVEL8B , TRACK_TR1_EGYPT }, - { "LEVEL8C" , STR_TR1_LEVEL8C , TRACK_TR1_EGYPT }, - { "LEVEL10A" , STR_TR1_LEVEL10A , TRACK_TR1_MINE }, - { "CUT3" , STR_EMPTY , TRACK_TR1_CUT_3 }, - { "LEVEL10B" , STR_TR1_LEVEL10B , TRACK_TR1_MINE }, - { "CUT4" , STR_EMPTY , TRACK_TR1_CUT_4 }, - { "LEVEL10C" , STR_TR1_LEVEL10C , TRACK_TR1_MINE }, - { "EGYPT" , STR_TR1_EGYPT , TRACK_TR1_EGYPT }, - { "CAT" , STR_TR1_CAT , TRACK_TR1_EGYPT }, - { "END" , STR_TR1_END , TRACK_TR1_EGYPT }, - { "END2" , STR_TR1_END2 , TRACK_TR1_EGYPT }, + { "TITLE" , STR_EMPTY , TRACK_TR1_TITLE , 0 }, + { "GYM" , STR_TR1_GYM , NO_TRACK , 0 }, + { "LEVEL1" , STR_TR1_LEVEL1 , TRACK_TR1_CAVES , 3 }, + { "LEVEL2" , STR_TR1_LEVEL2 , TRACK_TR1_CAVES , 3 }, + { "LEVEL3A" , STR_TR1_LEVEL3A , TRACK_TR1_CAVES , 5 }, + { "LEVEL3B" , STR_TR1_LEVEL3B , TRACK_TR1_CAVES , 3 }, + { "CUT1" , STR_EMPTY , TRACK_TR1_CUT_1 , 0 }, + { "LEVEL4" , STR_TR1_LEVEL4 , TRACK_TR1_CAVES , 4 }, + { "LEVEL5" , STR_TR1_LEVEL5 , TRACK_TR1_CAVES , 3 }, + { "LEVEL6" , STR_TR1_LEVEL6 , TRACK_TR1_CAVES , 3 }, + { "LEVEL7A" , STR_TR1_LEVEL7A , TRACK_TR1_CISTERN , 3 }, + { "LEVEL7B" , STR_TR1_LEVEL7B , TRACK_TR1_CISTERN , 2 }, + { "CUT2" , STR_EMPTY , TRACK_TR1_CUT_2 , 0 }, + { "LEVEL8A" , STR_TR1_LEVEL8A , TRACK_TR1_EGYPT , 3 }, + { "LEVEL8B" , STR_TR1_LEVEL8B , TRACK_TR1_EGYPT , 3 }, + { "LEVEL8C" , STR_TR1_LEVEL8C , TRACK_TR1_EGYPT , 1 }, + { "LEVEL10A" , STR_TR1_LEVEL10A , TRACK_TR1_MINE , 3 }, + { "CUT3" , STR_EMPTY , TRACK_TR1_CUT_3 , 0 }, + { "LEVEL10B" , STR_TR1_LEVEL10B , TRACK_TR1_MINE , 3 }, + { "CUT4" , STR_EMPTY , TRACK_TR1_CUT_4 , 0 }, + { "LEVEL10C" , STR_TR1_LEVEL10C , TRACK_TR1_MINE , 3 }, + { "EGYPT" , STR_TR1_EGYPT , TRACK_TR1_EGYPT , 3 }, + { "CAT" , STR_TR1_CAT , TRACK_TR1_EGYPT , 4 }, + { "END" , STR_TR1_END , TRACK_TR1_EGYPT , 2 }, + { "END2" , STR_TR1_END2 , TRACK_TR1_EGYPT , 1 }, // TR2 - { "TITLE" , STR_EMPTY , TRACK_TR2_TITLE }, - { "ASSAULT" , STR_TR2_ASSAULT , NO_TRACK }, - { "WALL" , STR_TR2_WALL , TRACK_TR2_CHINA_1 }, - { "CUT1" , STR_EMPTY , TRACK_TR2_CUT_1 }, - { "BOAT" , STR_TR2_BOAT , NO_TRACK }, - { "VENICE" , STR_TR2_VENICE , NO_TRACK }, - { "OPERA" , STR_TR2_OPERA , TRACK_TR2_ITALY }, - { "CUT2" , STR_EMPTY , TRACK_TR2_CUT_2 }, - { "RIG" , STR_TR2_RIG , TRACK_TR2_RIG }, - { "PLATFORM" , STR_TR2_PLATFORM , TRACK_TR2_RIG }, - { "CUT3" , STR_EMPTY , TRACK_TR2_CUT_3 }, - { "UNWATER" , STR_TR2_UNWATER , TRACK_TR2_UNWATER_1 }, - { "KEEL" , STR_TR2_KEEL , TRACK_TR2_UNWATER_2 }, - { "LIVING" , STR_TR2_LIVING , TRACK_TR2_UNWATER_1 }, - { "DECK" , STR_TR2_DECK , TRACK_TR2_UNWATER_2 }, - { "SKIDOO" , STR_TR2_SKIDOO , TRACK_TR2_TIBET_1 }, - { "MONASTRY" , STR_TR2_MONASTRY , NO_TRACK }, - { "CATACOMB" , STR_TR2_CATACOMB , TRACK_TR2_TIBET_2 }, - { "ICECAVE" , STR_TR2_ICECAVE , TRACK_TR2_TIBET_2 }, - { "EMPRTOMB" , STR_TR2_EMPRTOMB , TRACK_TR2_CHINA_2 }, - { "CUT4" , STR_EMPTY , TRACK_TR2_CUT_4 }, - { "FLOATING" , STR_TR2_FLOATING , TRACK_TR2_CHINA_2 }, - { "XIAN" , STR_TR2_XIAN , TRACK_TR2_CHINA_2 }, - { "HOUSE" , STR_TR2_HOUSE , NO_TRACK }, + { "TITLE" , STR_EMPTY , TRACK_TR2_TITLE , 0 }, + { "ASSAULT" , STR_TR2_ASSAULT , NO_TRACK , 0 }, + { "WALL" , STR_TR2_WALL , TRACK_TR2_CHINA_1 , 3 }, + { "CUT1" , STR_EMPTY , TRACK_TR2_CUT_1 , 0 }, + { "BOAT" , STR_TR2_BOAT , NO_TRACK , 3 }, + { "VENICE" , STR_TR2_VENICE , NO_TRACK , 3 }, + { "OPERA" , STR_TR2_OPERA , TRACK_TR2_ITALY , 3 }, + { "CUT2" , STR_EMPTY , TRACK_TR2_CUT_2 , 0 }, + { "RIG" , STR_TR2_RIG , TRACK_TR2_RIG , 3 }, + { "PLATFORM" , STR_TR2_PLATFORM , TRACK_TR2_RIG , 3 }, + { "CUT3" , STR_EMPTY , TRACK_TR2_CUT_3 , 0 }, + { "UNWATER" , STR_TR2_UNWATER , TRACK_TR2_UNWATER_1 , 3 }, + { "KEEL" , STR_TR2_KEEL , TRACK_TR2_UNWATER_2 , 3 }, + { "LIVING" , STR_TR2_LIVING , TRACK_TR2_UNWATER_1 , 3 }, + { "DECK" , STR_TR2_DECK , TRACK_TR2_UNWATER_2 , 3 }, + { "SKIDOO" , STR_TR2_SKIDOO , TRACK_TR2_TIBET_1 , 3 }, + { "MONASTRY" , STR_TR2_MONASTRY , NO_TRACK , 3 }, + { "CATACOMB" , STR_TR2_CATACOMB , TRACK_TR2_TIBET_2 , 3 }, + { "ICECAVE" , STR_TR2_ICECAVE , TRACK_TR2_TIBET_2 , 3 }, + { "EMPRTOMB" , STR_TR2_EMPRTOMB , TRACK_TR2_CHINA_2 , 3 }, + { "CUT4" , STR_EMPTY , TRACK_TR2_CUT_4 , 0 }, + { "FLOATING" , STR_TR2_FLOATING , TRACK_TR2_CHINA_2 , 3 }, + { "XIAN" , STR_TR2_XIAN , TRACK_TR2_CHINA_2 , 3 }, + { "HOUSE" , STR_TR2_HOUSE , NO_TRACK , 3 }, // TR3 - { "TITLE" , STR_EMPTY , TRACK_TR3_TITLE }, - { "HOUSE" , STR_TR3_HOUSE , NO_TRACK }, - { "JUNGLE" , STR_TR3_JUNGLE , TRACK_TR3_INDIA_1 }, - { "CUT6" , STR_EMPTY , TRACK_TR3_CUT_6 }, - { "TEMPLE" , STR_TR3_TEMPLE , TRACK_TR3_INDIA_1 }, - { "CUT9" , STR_EMPTY , TRACK_TR3_CUT_9 }, - { "QUADCHAS" , STR_TR3_QUADCHAS , TRACK_TR3_INDIA_1 }, - { "TONYBOSS" , STR_TR3_TONYBOSS , TRACK_TR3_INDIA_2 }, - { "SHORE" , STR_TR3_SHORE , TRACK_TR3_SOUTH_1 }, - { "CUT1" , STR_EMPTY , TRACK_TR3_CUT_1 }, - { "CRASH" , STR_TR3_CRASH , TRACK_TR3_SOUTH_2 }, - { "CUT4" , STR_EMPTY , TRACK_TR3_CUT_4 }, - { "RAPIDS" , STR_TR3_RAPIDS , TRACK_TR3_SOUTH_3 }, - { "TRIBOSS" , STR_TR3_TRIBOSS , TRACK_TR3_CAVES }, - { "ROOFS" , STR_TR3_ROOFS , TRACK_TR3_LONDON_1 }, - { "CUT2" , STR_EMPTY , TRACK_TR3_CUT_2 }, - { "SEWER" , STR_TR3_SEWER , TRACK_TR3_LONDON_2 }, - { "CUT5" , STR_EMPTY , TRACK_TR3_CUT_5 }, - { "TOWER" , STR_TR3_TOWER , TRACK_TR3_LONDON_3 }, - { "CUT11" , STR_EMPTY , TRACK_TR3_CUT_11 }, - { "OFFICE" , STR_TR3_OFFICE , TRACK_TR3_LONDON_4 }, - { "NEVADA" , STR_TR3_NEVADA , TRACK_TR3_NEVADA_1 }, - { "CUT7" , STR_EMPTY , TRACK_TR3_CUT_7 }, - { "COMPOUND" , STR_TR3_COMPOUND , TRACK_TR3_NEVADA_2 }, - { "CUT8" , STR_EMPTY , TRACK_TR3_CUT_8 }, - { "AREA51" , STR_TR3_AREA51 , TRACK_TR3_NEVADA_2 }, - { "ANTARC" , STR_TR3_ANTARC , TRACK_TR3_ANTARC_1 }, - { "CUT3" , STR_EMPTY , TRACK_TR3_CUT_3 }, - { "MINES" , STR_TR3_MINES , TRACK_TR3_ANTARC_2 }, - { "CITY" , STR_TR3_CITY , TRACK_TR3_ANTARC_3 }, - { "CUT12" , STR_EMPTY , TRACK_TR3_CUT_12 }, - { "CHAMBER" , STR_TR3_CHAMBER , TRACK_TR3_ANTARC_3 }, - { "STPAUL" , STR_TR3_STPAUL , TRACK_TR3_CAVES }, + { "TITLE" , STR_EMPTY , TRACK_TR3_TITLE , 0 }, + { "HOUSE" , STR_TR3_HOUSE , NO_TRACK , 3 }, + { "JUNGLE" , STR_TR3_JUNGLE , TRACK_TR3_INDIA_1 , 3 }, + { "CUT6" , STR_EMPTY , TRACK_TR3_CUT_6 , 0 }, + { "TEMPLE" , STR_TR3_TEMPLE , TRACK_TR3_INDIA_1 , 3 }, + { "CUT9" , STR_EMPTY , TRACK_TR3_CUT_9 , 0 }, + { "QUADCHAS" , STR_TR3_QUADCHAS , TRACK_TR3_INDIA_1 , 3 }, + { "TONYBOSS" , STR_TR3_TONYBOSS , TRACK_TR3_INDIA_2 , 3 }, + { "SHORE" , STR_TR3_SHORE , TRACK_TR3_SOUTH_1 , 3 }, + { "CUT1" , STR_EMPTY , TRACK_TR3_CUT_1 , 0 }, + { "CRASH" , STR_TR3_CRASH , TRACK_TR3_SOUTH_2 , 3 }, + { "CUT4" , STR_EMPTY , TRACK_TR3_CUT_4 , 0 }, + { "RAPIDS" , STR_TR3_RAPIDS , TRACK_TR3_SOUTH_3 , 3 }, + { "TRIBOSS" , STR_TR3_TRIBOSS , TRACK_TR3_CAVES , 3 }, + { "ROOFS" , STR_TR3_ROOFS , TRACK_TR3_LONDON_1 , 3 }, + { "CUT2" , STR_EMPTY , TRACK_TR3_CUT_2 , 0 }, + { "SEWER" , STR_TR3_SEWER , TRACK_TR3_LONDON_2 , 3 }, + { "CUT5" , STR_EMPTY , TRACK_TR3_CUT_5 , 0 }, + { "TOWER" , STR_TR3_TOWER , TRACK_TR3_LONDON_3 , 3 }, + { "CUT11" , STR_EMPTY , TRACK_TR3_CUT_11 , 0 }, + { "OFFICE" , STR_TR3_OFFICE , TRACK_TR3_LONDON_4 , 3 }, + { "NEVADA" , STR_TR3_NEVADA , TRACK_TR3_NEVADA_1 , 3 }, + { "CUT7" , STR_EMPTY , TRACK_TR3_CUT_7 , 0 }, + { "COMPOUND" , STR_TR3_COMPOUND , TRACK_TR3_NEVADA_2 , 3 }, + { "CUT8" , STR_EMPTY , TRACK_TR3_CUT_8 , 0 }, + { "AREA51" , STR_TR3_AREA51 , TRACK_TR3_NEVADA_2 , 3 }, + { "ANTARC" , STR_TR3_ANTARC , TRACK_TR3_ANTARC_1 , 3 }, + { "CUT3" , STR_EMPTY , TRACK_TR3_CUT_3 , 0 }, + { "MINES" , STR_TR3_MINES , TRACK_TR3_ANTARC_2 , 3 }, + { "CITY" , STR_TR3_CITY , TRACK_TR3_ANTARC_3 , 3 }, + { "CUT12" , STR_EMPTY , TRACK_TR3_CUT_12 , 0 }, + { "CHAMBER" , STR_TR3_CHAMBER , TRACK_TR3_ANTARC_3 , 3 }, + { "STPAUL" , STR_TR3_STPAUL , TRACK_TR3_CAVES , 3 }, // TR4 - { "title" , STR_UNKNOWN , TRACK_TR4_TITLE }, - { "angkor1" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "ang_race" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "settomb1" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "settomb2" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "jeepchas" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "jeepchs2" , STR_UNKNOWN , TRACK_TR4_JEEP }, - { "karnak1" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "hall" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "lake" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "semer" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "semer2" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "train" , STR_UNKNOWN , TRACK_TR4_TRAIN }, - { "alexhub" , STR_UNKNOWN , TRACK_TR4_OUT_DAY }, - { "alexhub2" , STR_UNKNOWN , TRACK_TR4_COASTAL }, - { "palaces" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "palaces2" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "csplit1" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS }, - { "csplit2" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS }, - { "library" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS }, - { "libend" , STR_UNKNOWN , TRACK_TR4_WEIRD1 }, - { "bikebit" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "nutrench" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "cortyard" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "lowstrt" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "highstrt" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "citnew" , STR_UNKNOWN , TRACK_TR4_BATTLE }, - { "joby1a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT }, - { "joby1b" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "joby2" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "joby3a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT }, - { "joby3b" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "joby4a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT }, - { "joby4b" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "joby4c" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT }, - { "joby5a" , STR_UNKNOWN , TRACK_TR4_IN_DARK }, - { "joby5b" , STR_UNKNOWN , TRACK_TR4_BOSS }, - { "joby5c" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS }, + { "title" , STR_UNKNOWN , TRACK_TR4_TITLE , 0 }, + { "angkor1" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "ang_race" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "settomb1" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "settomb2" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "jeepchas" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "jeepchs2" , STR_UNKNOWN , TRACK_TR4_JEEP , 0 }, + { "karnak1" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "hall" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "lake" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "semer" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "semer2" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "train" , STR_UNKNOWN , TRACK_TR4_TRAIN , 0 }, + { "alexhub" , STR_UNKNOWN , TRACK_TR4_OUT_DAY , 0 }, + { "alexhub2" , STR_UNKNOWN , TRACK_TR4_COASTAL , 0 }, + { "palaces" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "palaces2" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "csplit1" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS , 0 }, + { "csplit2" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS , 0 }, + { "library" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS , 0 }, + { "libend" , STR_UNKNOWN , TRACK_TR4_WEIRD1 , 0 }, + { "bikebit" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "nutrench" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "cortyard" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "lowstrt" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "highstrt" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "citnew" , STR_UNKNOWN , TRACK_TR4_BATTLE , 0 }, + { "joby1a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT , 0 }, + { "joby1b" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "joby2" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "joby3a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT , 0 }, + { "joby3b" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "joby4a" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT , 0 }, + { "joby4b" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "joby4c" , STR_UNKNOWN , TRACK_TR4_OUT_NIGHT , 0 }, + { "joby5a" , STR_UNKNOWN , TRACK_TR4_IN_DARK , 0 }, + { "joby5b" , STR_UNKNOWN , TRACK_TR4_BOSS , 0 }, + { "joby5c" , STR_UNKNOWN , TRACK_TR4_IN_DRIPS , 0 }, }; static const char* TRACK_LIST_TR4[] = { diff --git a/src/inventory.h b/src/inventory.h index bcf8f82..8469621 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -1986,10 +1986,12 @@ struct Inventory { char buf[256]; char time[16]; - int secretsMax = 3; - int secrets = ((saveStats.secrets & 1) != 0) + - ((saveStats.secrets & 2) != 0) + - ((saveStats.secrets & 4) != 0); + int secretsMax = TR::LEVEL_INFO[saveStats.level].secrets; + int secrets = ((saveStats.secrets & (1 << 0)) != 0) + + ((saveStats.secrets & (1 << 1)) != 0) + + ((saveStats.secrets & (1 << 2)) != 0) + + ((saveStats.secrets & (1 << 3)) != 0) + + ((saveStats.secrets & (1 << 4)) != 0); int s = saveStats.time % 60; int m = saveStats.time / 60 % 60;