Skip to content

Epic Games: Fix install command to support both fresh installs and repairs #1

@szymekx13

Description

@szymekx13

Description:

Currently, the installGame() function always uses the --repair flag, which fails for games that are fetched from legendary JSON.

Problem:

  1. Games from manifest (installed) have valid exePath.
  2. Games from Legendary (avalaile for download) have empty exePath.
  3. Both are treated same way - status always Idle
  4. Legendary --repair fails becouse game doesn't exist yest

Example of error:

[Legendary] [Core] INFO: Trying to re-use existing login session...
[Legendary] [cli] ERROR: Game "Among Us" (963137e4c29d4c79a81323b8fab03a40) is not installed!

Proposed solutions:

  • Detect game installation status (e.g via manifest or exePath)
  • Use legendary install GAME --skip-sdl for not-yet-installed
  • Use legendary install GAME --skip-sdl --repair for installed
  • Remember about Linux and Windows

After clicking Install/Repair
Image

Related:

Acceptance Criteria:

  • Games from Legendary (empty exePath) are marked as "not installed"
  • Fresh install uses: legendary install GAME --skip-sdl
  • Repair uses: legendary install GAME --skip-sdl --repair
  • Works on Windows and Linux

Files to modify:

  • include/MultiLauncher/EpicProvider.hpp (line 164-184: installGame() function)
  • include/MultiLauncher/Game.hpp (GameStatus enum)
  • include/MultiLauncher/EpicScanner.hpp (game status initialization)

Design decision:

  • Should we have one "Install/Repair" button (smart) or two separate buttons?
  • Current UI shows single button, but implementation needs to handle both cases
  • Decision: it's up to contributor

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingepic-gamesSupport for Epic Games launcherhelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions