summaryrefslogtreecommitdiff
path: root/src/heretic/m_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/heretic/m_misc.c')
-rw-r--r--src/heretic/m_misc.c47
1 files changed, 13 insertions, 34 deletions
diff --git a/src/heretic/m_misc.c b/src/heretic/m_misc.c
index ceb56cfb..39674e4b 100644
--- a/src/heretic/m_misc.c
+++ b/src/heretic/m_misc.c
@@ -48,42 +48,21 @@ boolean M_ValidEpisodeMap(int episode, int map)
{
return false;
}
- if (gamemode == shareware)
- { // Shareware version checks
- if (episode != 1)
- {
- return false;
- }
- }
- else if (ExtendedWAD)
- { // Extended version checks
- if (episode == 6)
- {
- if (map > 3)
- {
- return false;
- }
- }
- else if (episode > 5)
- {
- return false;
- }
- }
- else
- { // Registered version checks
- if (episode == 4)
- {
- if (map != 1)
- {
- return false;
- }
- }
- else if (episode > 3)
- {
+
+ switch (gamemode)
+ {
+ case shareware:
+ return episode == 1;
+
+ case retail:
+ return episode <= 5 || (episode == 6 && map <= 3);
+
+ case registered:
+ return episode <= 3 || (episode == 4 && map == 1);
+
+ default:
return false;
- }
}
- return true;
}
//---------------------------------------------------------------------------