885 |
return max_available; |
return max_available; |
886 |
} |
} |
887 |
|
|
888 |
|
static options::LevelStatus * |
889 |
|
GetStatus (LevelPack *lp, size_t index) |
890 |
|
{ |
891 |
|
return options::GetLevelStatus (lp->get_name(), |
892 |
|
lp->get_info(index)->filename); |
893 |
|
} |
894 |
|
|
895 |
|
bool |
896 |
|
enigma::LevelIsLocked (LevelPack *lp, size_t index) |
897 |
|
{ |
898 |
|
unsigned max_available = HighestAvailableLevel (lp); |
899 |
|
int finished = 0; |
900 |
|
|
901 |
|
if (options::LevelStatus *ls = GetStatus (lp, index)) |
902 |
|
finished = ls->finished; |
903 |
|
|
904 |
|
return !(index <= max_available || finished >= options::Difficulty); |
905 |
|
} |
906 |
|
|
907 |
|
|
908 |
|
|
909 |
|
|
910 |
void enigma::FinishLevel() { |
void enigma::FinishLevel() { |
911 |
game_inst.finish_level(); |
game_inst.finish_level(); |
912 |
} |
} |