<?xml version="1.0" encoding="utf-8"?>
<!--
  Tesla Console product catalog.

  This file is the single source of truth for installable products and the
  launch entries each one registers on a pod. It replaces the products that
  were previously hardcoded in SiteManagement.cs.

  Element/attribute reference:
    <Product id  = install/product key (Guid) used while transferring the package
             name = friendly product name (used in menu + status text)
             menuText = exact text shown in the Install Product submenu
             hostTypeDialog = "true" to prompt for resolution + roles
                              (Game Client / Live Camera / Mission Review),
                              "false" to register all launch entries as-is>
      <Launch key = launch entry Guid registered on the pod (LaunchData.LaunchKey)
              displayName = name shown in the pod's app list
              exe = absolute path to the executable on the pod
              args = command-line arguments; "{res}" expands to " -res W H"
                     when a custom resolution was chosen, otherwise to ""
              workingDirectory = optional; defaults to the directory of exe
              autoRestart = "true"/"false"
              hostType = GameClient | LiveCamera | MissionReview | None
                         (only meaningful when hostTypeDialog="true"; an entry
                          is registered only if its role was selected) />
    </Product>

  To add a product, append a <Product> with one <Launch>. exe must live under
  the install directory the package extracts to (currently C:\Games\...).

  Key convention: generate one fresh Guid for the product id; the first
  <Launch> reuses it as its key, and each additional <Launch> increments the
  LAST HEX DIGIT of that Guid (+1, +2, ..., wrapping F->0). Do NOT append
  "-1"/"-2" to the string: keys are parsed as System.Guid and a suffixed
  string silently collapses to Guid.Empty. Exception: Red Planet 4.11's LC/MR
  keys predate the convention and are pinned to the original console's
  hardcoded Guids (SiteManagement.RPLCAppGuid/RPMRAppGuid + the diff tests);
  do not change them.
-->
<AppCatalog>
  <Product id="7D241B1F-AB6D-4e08-9C20-12294E743D94"
           name="Red Planet 4.11"
           menuText="Red Planet 4.11..."
           hostTypeDialog="true">
    <Launch key="7D241B1F-AB6D-4e08-9C20-12294E743D94"
            displayName="Red Planet 4.11"
            exe="C:\Games\RP411\rpl4opt.exe"
            args="-net 1501{res}"
            autoRestart="true"
            hostType="GameClient" />
    <Launch key="57A0B3C2-D5CF-46d6-ABED-A8F4A26AB086"
            displayName="Red Planet 4.11 LC"
            exe="C:\Games\RP411\rpl4opt.exe"
            args="-net 1501{res} -lc"
            autoRestart="true"
            hostType="LiveCamera" />
    <Launch key="8F71D5C2-38E4-413c-8E22-88CAD08774D2"
            displayName="Red Planet 4.11 MR"
            exe="C:\Games\RP411\rpl4opt.exe"
            args="-net 1501{res} -mr"
            autoRestart="true"
            hostType="MissionReview" />
  </Product>

  <!-- The bt411 Windows port (C:\VWE\BT411 repo; btl4.exe on the shared RP411
       engine, same -net/-res/-lc/-mr command line). Deploys to C:\Games\BT411
       like RP411 does to C:\Games\RP411. -->
  <Product id="F4C957FD-72F7-4C5F-8971-28095007E8DF"
           name="BattleTech 4.11"
           menuText="BattleTech 4.11..."
           hostTypeDialog="true">
    <Launch key="F4C957FD-72F7-4C5F-8971-28095007E8DF"
            displayName="BattleTech 4.11"
            exe="C:\Games\BT411\btl4.exe"
            args="-net 1501{res}"
            autoRestart="true"
            hostType="GameClient" />
    <Launch key="F4C957FD-72F7-4C5F-8971-28095007E8D0"
            displayName="BattleTech 4.11 LC"
            exe="C:\Games\BT411\btl4.exe"
            args="-net 1501{res} -lc"
            autoRestart="true"
            hostType="LiveCamera" />
    <Launch key="F4C957FD-72F7-4C5F-8971-28095007E8D1"
            displayName="BattleTech 4.11 MR"
            exe="C:\Games\BT411\btl4.exe"
            args="-net 1501{res} -mr"
            autoRestart="true"
            hostType="MissionReview" />
  </Product>

  <Product id="CC8500ED-A653-45a7-BEF8-C332D30371A6"
           name="BattleTech Firestorm"
           menuText="BattleTech Firestorm..."
           hostTypeDialog="false">
    <Launch key="CC8500ED-A653-45a7-BEF8-C332D30371A6"
            displayName="BattleTech Firestorm"
            exe="C:\Games\MW4\launcher.exe"
            args=""
            autoRestart="true"
            hostType="None" />
  </Product>

  <!-- RIOJoy — virtual-gamepad feeder for the cockpit RIO board (separate repo,
       net48 framework-dependent). Its dist\RIOJoy-<ver>.zip is purpose-built for
       Install Product: extracts to C:\Games (giving postinstall.bat + RIOJoy\),
       and the launcher runs postinstall.bat as SYSTEM to install the ViGEmBus
       driver. The console + launcher then own RIOJoy's lifecycle: the launch entry
       below starts it and autoRestart keeps it alive (no logon auto-start entry).
       On uninstall the launcher runs RIOJoy\pre-uninstall.bat (removes ViGEmBus +
       config) and deletes C:\Games\RIOJoy. -->
  <Product id="87FBC2E6-6359-4EF4-96A5-DF157823CFF6"
           name="RIOJoy"
           menuText="RIOJoy..."
           hostTypeDialog="false">
    <Launch key="87FBC2E6-6359-4EF4-96A5-DF157823CFF6"
            displayName="RIOJoy"
            exe="C:\Games\RIOJoy\app\RioJoy.Tray.exe"
            args=""
            autoRestart="true"
            hostType="None" />
  </Product>

  <!-- TeslaRel410 - the DOSBox-X preservation pods (C:\VWE\TeslaRel410 repo).
       The package (emulator\dist\TeslaPod410.zip, built by deploy\package.ps1)
       extracts to C:\Games (postinstall.bat + TeslaPod410\); pod-launch.exe is
       the single supervising entry point and the mode arg ("bt"/"rp") selects
       the game. Camera ship and live mission review are NOT separate modes in
       4.10 (the console assigns the role per IP via the egg hostType), so the
       LC/MR entries boot identically and differ only by catalog role. No {res}
       token: DOSBox output size is fixed per rig at install time. -->
  <Product id="135019C7-2C2F-4C38-96BE-C7DB39994AB0"
           name="TeslaRel410"
           menuText="TeslaRel410..."
           hostTypeDialog="true">
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB0"
            displayName="BT4.10"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="bt"
            autoRestart="true"
            hostType="GameClient" />
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB1"
            displayName="BT4.10 LC"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="bt"
            autoRestart="true"
            hostType="LiveCamera" />
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB2"
            displayName="BT4.10 MR"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="bt"
            autoRestart="true"
            hostType="MissionReview" />
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB3"
            displayName="RP4.10"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="rp"
            autoRestart="true"
            hostType="GameClient" />
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB4"
            displayName="RP4.10 LC"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="rp"
            autoRestart="true"
            hostType="LiveCamera" />
    <Launch key="135019C7-2C2F-4C38-96BE-C7DB39994AB5"
            displayName="RP4.10 MR"
            exe="C:\Games\TeslaPod410\pod-launch.exe"
            args="rp"
            autoRestart="true"
            hostType="MissionReview" />
  </Product>
</AppCatalog>
