// Default game detection configuration file
// first param is also a game name, if "gamename" is absent
// "gamename" is what will be put into "game_name" cvar


// Doom II: Hell On Earth
game "doom2" {
  description = "Doom II: Hell On Earth";
  game = "basev/doom2";
  base = "basev/doom";
  iwad = "doom2.wad";
  iwad = "doom2f.wad" : "Doom II: Hell On Earth (French)";
  //param - "doom2"; // defaults to game name
  warp = "MAP##"; // template for "-warp"
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom2",
    "doom.id.doom2",
    "doom.doom2.commercial",
    "doom.id.doom2.commercial",
  }
}


// Doom / Ultimate Doom
game "doom" {
  description = "Doom / Ultimate Doom";
  game = "basev/doom1";
  base = "basev/doom";
  iwad = "doomu.wad" : "Ultimate Doom";
  iwad = "doom.wad" : "Doom"; // normal
  iwad = "doom1.wad" : "Doom Shareware";
  param = { "doom", "doom1" }
  warp = "E#M#";
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom1",
    "doom.id.doom1",
    "doom.doom1.registered",
    "doom.id.doom1.registered",
    "doom.doom1.ultimate",
    "doom.id.doom1.ultimate",
  }
}


// Freedoom 1
game "freedoom" {
  description = "Freedoom Phase I";
  game = "basev/doom1";
  base = "basev/doom";
  iwad = "freedoom1.wad";
  param = { "freedoom", "freedoom1" }
  warp = "E#M#";
  filter = {
    "doom",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.freedoom",
    "doom.freedoom.phase1",
  }
}


// Freedoom 2
game "freedoom2" {
  description = "Freedoom Phase II";
  game = "basev/doom2";
  base = "basev/doom";
  iwad = "freedoom2.wad";
  warp = "MAP##";
  filter = {
    "doom",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.freedoom",
    "doom.freedoom.phase2",
  }
}

// Doom II:TNT Evilution
game "tnt" {
  description = "Doom II: TNT Evilution";
  game = "basev/tnt";
  base = { "basev/doom", "basev/doom2" }
  iwad = "tnt.wad";
  warp = "MAP##";
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom2",
    "doom.id.doom2",
    "doom.doom2.tnt",
    "doom.id.doom2.tnt",
  }
}


// Doom II:The Plutonia Experiment
game "plutonia" {
  description = "Doom II: The Plutonia Experiment";
  game = "basev/plutonia";
  base = { "basev/doom", "basev/doom2" }
  iwad = "plutonia.wad";
  warp = "MAP##";
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom2",
    "doom.id.doom2",
    "doom.doom2.plutonia",
    "doom.id.doom2.plutonia",
  }
}


// Heretic, Shareware Heretic
game "heretic" {
  description = "Heretic";
  game = "basev/heretic";
  iwad = "heretic.wad";
  iwad = "heretic1.wad" : "Heretic Shareware";
  warp = "E#M#";
  filter = {
    "game-raven",
    "heretic",
    "game-heretic",
    "heretic.heretic",
  }
}


// Hexen
game "hexen" {
  description = "Hexen: Beyond Heretic";
  game = "basev/hexen";
  iwad = "hexen.wad";
  warp = "MAP##";
  filter = {
    "game-raven",
    "hexen",
    "game-hexen",
    "hexen.hexen",
  }
}


// Hexen: Deathkings of the Dark Citadel
game "hexendd" {
  description = "Hexen: Deathkings of the Dark Citadel";
  game = "basev/hexen";
  iwad = { "hexen.wad", "hexdd.wad" }
  warp = "MAP##";
  filter = {
    "game-raven",
    "hexen",
    "game-hexen",
    "hexen.hexen",
  }
}


// Teaser Strife
game "strifedemo" {
  description = "Strife Teaser";
  game = "basev/strife";
  iwad = "strife0.wad";
  param = "strifeteaser";
  fixvoices = true;
  filter = {
    "strife",
    "game-strife",
  }
}


// Strife
game "strife" {
  description = "Strife";
  game = "basev/strife";
  iwad = { "strife1.wad", "?voices.wad" } // "?" means "optional file"
  filter = {
    "strife",
    "game-strife",
    "strife.strife",
  }
}


// No Rest for the Living
game "nerve" {
  description = "No Rest for the Living";
  game = "basev/nerve";
  base = { "basev/doom", "basev/doom2" }
  iwad = { "doom2.wad", "nerve.wad" }
  warp = "MAP##";
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom2",
    "doom.id.doom2",
    "doom.doom2.commercial",
    "doom.id.doom2.commercial",
    "doom.doom2.bfg",
    "doom.id.doom2.bfg",
    "doom.doom2.nerve",
    "doom.id.doom2.nerve",
  }
}


// Doom:Complete
/*
game "complete" {
  description = "Doom: Complete";
  game = "basev/complete";
  base = "basev/doom";
  iwad = "complete.pk3";
  iwad = "doom_complete.pk3";
  filter = {
    "doom",
    "doom.id",
    "game-doom",
    "game-doomstrifechex",
    "game-doomchex",
    "doom.doom2",
    "doom.id.doom2",
    "doom.doom2.commercial",
    "doom.id.doom2.commercial",
    "doom.doom2.wadsmoosh",
    "doom.id.doom2.wadsmoosh",
  }
}
*/


// Chex Quest 1
game "chex" {
  description = "Chex Quest";
  game = "basev/chex";
  base = "basev/doom";
  iwad = "chex.wad";
  iwad = "chex1.wad";
  param = { "chex", "chex1" }
  define = "CHEX_QUEST";
  warp = "E#M#";
  filter = {
    "chex",
    "game-doomstrifechex",
    "game-doomchex",
    "chex.chex1",
  }
}


// Chex Quest 2
game "chex2" {
  description = "Chex Quest Expansion";
  game = "basev/chex";
  base = "basev/doom";
  iwad = { "chex.wad", "chex2.wad" }
  define = "CHEX_QUEST";
  warp = "E#M#";
  filter = {
    "chex",
    "game-doomstrifechex",
    "game-doomchex",
    "chex.chex1",
    "chex.chex2",
  }
}


// Chex Quest 3
game "chex3" {
  description = "Chex Quest 3";
  game = "basev/chex";
  base = "basev/doom";
  iwad = "chex3.wad";
  define = "CHEX_QUEST";
  warp = "E#M#";
  filter = {
    "chex",
    "game-doomstrifechex",
    "game-doomchex",
    "chex.chex3",
  }
}


// HacX v1.2
game "hacx" {
  description = "HacX v1.2";
  game = "basev/hacx";
  base = "basev/doom";
  iwad = "hacx.wad";
  warp = "MAP##"; // template for "-warp"
  warnings = {
    dehacked = false; // for iwad
    pnames = false; // for iwad
    animated = false; // for iwad
  }
  filter = {
    "hacx",
    "game-hacx",
    "doom.hacx",
  }
}
