More changes for the new version.

This commit is contained in:
Storm Dragon
2025-07-13 22:04:13 -04:00
parent 34c42fa55c
commit e9ca4f02e0

View File

@@ -1348,27 +1348,26 @@ class DoomLauncher(QMainWindow):
if dialog.exec(): if dialog.exec():
values = dialog.get_dialog_values() values = dialog.get_dialog_values()
# Set up game files # Get base game files (includes TobyAccMod and all addons)
gameFiles = [ gameFiles = self.get_selected_game_files()
str(self.gamePath / f"TobyAccMod_V{self.tobyVersion}.pk3")
]
# Add menu addons # Note: selectedMod is already included in base game files via get_selected_game_files()
menuPath = self.gamePath / "Addons/MENU"
if menuPath.exists():
gameFiles.extend(str(p) for p in menuPath.glob("Toby*.pk3"))
# Add selected mod
gameFiles.append(selectedMod)
# Add deathmatch map only if checkbox is checked # Add deathmatch map only if checkbox is checked
if values.get('use_toby_maps', True): if values.get('use_toby_maps', True):
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V1-5.wad") # Add bot spawner menu
botSpawnerMenu = str(self.gamePath / "Addons/MENU/TobyBotSpawnerMenu.pk3")
if Path(botSpawnerMenu).exists():
gameFiles.append(botSpawnerMenu)
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V2-0.wad")
if Path(deathMatchMap).exists(): if Path(deathMatchMap).exists():
gameFiles.append(deathMatchMap) gameFiles.append(deathMatchMap)
# Get deathmatch flags and add map selection # Get deathmatch flags and add map selection
gameFlags = self.get_deathmatch_flags(values) gameFlags = self.get_deathmatch_flags(values)
if selectedMap.lower() == "lobby":
gameFlags.extend(["+map", "lobby"])
else:
gameFlags.extend(["-warp", str(mapIndex)]) gameFlags.extend(["-warp", str(mapIndex)])
# Check/set freedm.wad as IWAD # Check/set freedm.wad as IWAD
@@ -1461,7 +1460,7 @@ class DoomLauncher(QMainWindow):
mapsDir = self.gamePath / "Addons/MAPS" mapsDir = self.gamePath / "Addons/MAPS"
if mapsDir.exists(): if mapsDir.exists():
mapFiles.extend([p.name for p in mapsDir.glob("*.wad") mapFiles.extend([p.name for p in mapsDir.glob("*.wad")
if p.name != "TobyDeathArena_V1-5.wad"]) if p.name not in ["TobyDeathArena_V1-5.wad", "Toby-Demo-Level.wad"]])
# Add Operation MDK as special case # Add Operation MDK as special case
opMDK = self.gamePath / "OpMDK.wad" opMDK = self.gamePath / "OpMDK.wad"
@@ -1913,6 +1912,7 @@ class DoomLauncher(QMainWindow):
"""Populate the game selection combo box""" """Populate the game selection combo box"""
gameList = [ gameList = [
"Toby Demo Map", "Toby Demo Map",
"Tutorial",
"Funny Pack - Demo Map", "Funny Pack - Demo Map",
"Classic Doom", "Classic Doom",
"Funny Pack - Classic Doom", "Funny Pack - Classic Doom",
@@ -1961,28 +1961,67 @@ class DoomLauncher(QMainWindow):
use_funny_pack: Whether to use the Funny Pack instead of normal monsters use_funny_pack: Whether to use the Funny Pack instead of normal monsters
""" """
addonFiles = [] addonFiles = []
# MENU addons are common to all games # MENU addons in specific order for V9.0
menuPath = self.gamePath / "Addons" / "MENU" menuPath = self.gamePath / "Addons" / "MENU"
if menuPath.exists(): if menuPath.exists():
addonFiles.extend(str(p) for p in menuPath.glob("Toby*.pk3")) # Add menu files in order
menu_addons = [
"TobyV9_SimpleMenu.pk3",
f"TobySoundDirectory_{game_type}.pk3"
]
for addon in menu_addons:
addon_path = menuPath / addon
if addon_path.exists():
addonFiles.append(str(addon_path))
# Game specific addons # Game specific addons
gamePath = self.gamePath / "Addons" / game_type gamePath = self.gamePath / "Addons" / game_type
if gamePath.exists(): if gamePath.exists():
if game_type == "HERETIC": if game_type == "HERETIC":
pattern = "TobyHeretic*.pk3" heretic_addons = [
addonFiles.extend(str(p) for p in gamePath.glob(pattern)) "TobyHereticWeaponsV8.pk3",
elif game_type == "HEXEN": "TobyHereticMonsters.pk3",
pattern = "TobyHexen*.pk3" "TobyHereticItemsV8.pk3",
addonFiles.extend(str(p) for p in gamePath.glob(pattern)) "TobyHereticDecorations.pk3",
else: # DOOM "TobyHereticMenu.wad",
# Add normal Doom addons (but skip monster packs if using Funny Pack) "TobyHereticBeacons.pk3"
if use_funny_pack: ]
# Only add non-monster Doom addons
for pk3Path in gamePath.glob("Toby*.pk3"):
if "Monsters" not in pk3Path.name:
addonFiles.append(str(pk3Path))
for addon in heretic_addons:
addon_path = gamePath / addon
if addon_path.exists():
addonFiles.append(str(addon_path))
elif game_type == "HEXEN":
hexen_addons = [
"TobyHexenWeapons.pk3",
"TobyHexenMonsters.pk3",
"TobyHexenItems.pk3",
"TobyHexenDecorations.pk3",
"TobyHexenMenu.wad"
]
for addon in hexen_addons:
addon_path = gamePath / addon
if addon_path.exists():
addonFiles.append(str(addon_path))
else: # DOOM
# Add Doom addons in specific order for V9.0
doom_addons = [
"TobyV8_Guns.pk3",
"TobyV7_Monsters.pk3" if not use_funny_pack else None,
"TobyV8_Pickups.pk3",
"TobyV8_Decorations.pk3"
]
for addon in doom_addons:
if addon:
addon_path = gamePath / addon
if addon_path.exists():
addonFiles.append(str(addon_path))
if use_funny_pack:
# Look for Funny Pack in the APRIL folder # Look for Funny Pack in the APRIL folder
aprilPath = self.gamePath / "Addons" / "APRIL" aprilPath = self.gamePath / "Addons" / "APRIL"
funnyPackPath = aprilPath / "Toby_Funny_Pack.pk3" funnyPackPath = aprilPath / "Toby_Funny_Pack.pk3"
@@ -2025,7 +2064,9 @@ class DoomLauncher(QMainWindow):
else: # Doom games else: # Doom games
gameType = "DOOM" gameType = "DOOM"
if "Demo Map" in selectedGame: if "Demo Map" in selectedGame:
baseFiles.append(str(self.gamePath / "Addons/MAPS/Toby-Demo-Level.wad")) baseFiles.append(str(self.gamePath / "Addons/MAPS/Toby-Demo-Level_V2_ALT.wad"))
elif "Tutorial" in selectedGame:
baseFiles.append(str(self.gamePath / "Addons/MAPS/TobyTutorial-V2.wad"))
elif "Toby Doom" in selectedGame: elif "Toby Doom" in selectedGame:
baseFiles.append(str(self.gamePath / "Addons/MAPS/TobyDoomLevels.wad")) baseFiles.append(str(self.gamePath / "Addons/MAPS/TobyDoomLevels.wad"))
musicRenamer = self.gamePath / "Toby-Doom-Level-Music-Renamer.pk3" musicRenamer = self.gamePath / "Toby-Doom-Level-Music-Renamer.pk3"
@@ -2150,27 +2191,26 @@ class DoomLauncher(QMainWindow):
if dialog.exec(): if dialog.exec():
values = dialog.get_dialog_values() values = dialog.get_dialog_values()
# Set up game files # Get base game files (includes TobyAccMod and all addons)
gameFiles = [ gameFiles = self.get_selected_game_files()
str(self.gamePath / f"TobyAccMod_V{self.tobyVersion}.pk3")
]
# Add menu addons # Note: selectedMod is already included in base game files via get_selected_game_files()
menuPath = self.gamePath / "Addons/MENU"
if menuPath.exists():
gameFiles.extend(str(p) for p in menuPath.glob("Toby*.pk3"))
# Add selected mod
gameFiles.append(selectedMod)
# Add deathmatch map only if checkbox is checked # Add deathmatch map only if checkbox is checked
if values.get('use_toby_maps', True): if values.get('use_toby_maps', True):
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V1-5.wad") # Add bot spawner menu
botSpawnerMenu = str(self.gamePath / "Addons/MENU/TobyBotSpawnerMenu.pk3")
if Path(botSpawnerMenu).exists():
gameFiles.append(botSpawnerMenu)
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V2-0.wad")
if Path(deathMatchMap).exists(): if Path(deathMatchMap).exists():
gameFiles.append(deathMatchMap) gameFiles.append(deathMatchMap)
# Get deathmatch flags and add map selection # Get deathmatch flags and add map selection
gameFlags = self.get_deathmatch_flags(values) gameFlags = self.get_deathmatch_flags(values)
if selectedMap.lower() == "lobby":
gameFlags.extend(["+map", "lobby"])
else:
gameFlags.extend(["-warp", str(mapIndex)]) gameFlags.extend(["-warp", str(mapIndex)])
# Check/set freedm.wad as IWAD # Check/set freedm.wad as IWAD
@@ -2290,7 +2330,7 @@ class DoomLauncher(QMainWindow):
mapsDir = self.gamePath / "Addons/MAPS" mapsDir = self.gamePath / "Addons/MAPS"
if mapsDir.exists(): if mapsDir.exists():
mapFiles.extend([p.name for p in mapsDir.glob("*.wad") mapFiles.extend([p.name for p in mapsDir.glob("*.wad")
if p.name != "TobyDeathArena_V1-5.wad"]) if p.name not in ["TobyDeathArena_V1-5.wad", "Toby-Demo-Level.wad"]])
# Add Operation MDK as special case # Add Operation MDK as special case
opMDK = self.gamePath / "OpMDK.wad" opMDK = self.gamePath / "OpMDK.wad"
@@ -2537,12 +2577,19 @@ class DoomLauncher(QMainWindow):
# Add deathmatch map only if checkbox is checked # Add deathmatch map only if checkbox is checked
if values.get('use_toby_maps', True): if values.get('use_toby_maps', True):
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V1-5.wad") # Add bot spawner menu
botSpawnerMenu = str(self.gamePath / "Addons/MENU/TobyBotSpawnerMenu.pk3")
if Path(botSpawnerMenu).exists():
gameFiles.append(botSpawnerMenu)
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V2-0.wad")
if Path(deathMatchMap).exists(): if Path(deathMatchMap).exists():
gameFiles.append(deathMatchMap) gameFiles.append(deathMatchMap)
gameFlags = self.get_deathmatch_flags(values) gameFlags = self.get_deathmatch_flags(values)
# Add map selection flag # Add map selection flag
if selectedMap.lower() == "lobby":
gameFlags.extend(["+map", "lobby"])
else:
gameFlags.extend(["-warp", str(mapIndex)]) gameFlags.extend(["-warp", str(mapIndex)])
# Check/set freedm.wad as IWAD # Check/set freedm.wad as IWAD
@@ -2631,13 +2678,20 @@ class DoomLauncher(QMainWindow):
# Add deathmatch map only if checkbox is checked # Add deathmatch map only if checkbox is checked
if values.get('use_toby_maps', True): if values.get('use_toby_maps', True):
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V1-5.wad") # Add bot spawner menu
botSpawnerMenu = str(self.gamePath / "Addons/MENU/TobyBotSpawnerMenu.pk3")
if Path(botSpawnerMenu).exists():
gameFiles.append(botSpawnerMenu)
deathMatchMap = str(self.gamePath / "Addons/MAPS/TobyDeathArena_V2-0.wad")
if Path(deathMatchMap).exists(): if Path(deathMatchMap).exists():
gameFiles.append(deathMatchMap) gameFiles.append(deathMatchMap)
gameFlags = self.get_deathmatch_flags(values) gameFlags = self.get_deathmatch_flags(values)
# Add map selection flag # Add map selection flag
if selectedMap.lower() == "lobby":
gameFlags.extend(["+map", "lobby"])
else:
gameFlags.extend(["-warp", str(mapIndex)]) gameFlags.extend(["-warp", str(mapIndex)])
# Check/set freedm.wad as IWAD # Check/set freedm.wad as IWAD