Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Runtime Issue]: Missing objects due to upper case HOG file names #290

Closed
3 of 20 tasks
phlash opened this issue May 6, 2024 · 3 comments
Closed
3 of 20 tasks

[Runtime Issue]: Missing objects due to upper case HOG file names #290

phlash opened this issue May 6, 2024 · 3 comments
Labels
bug Something isn't working
Milestone

Comments

@phlash
Copy link

phlash commented May 6, 2024

Build Version

0e69bf4

Operating System Environment

  • Microsoft Windows (32-bit)
  • Microsoft Windows (64-bit)
  • Mac OS X
  • Linux (specify distribution and version below)

CPU Environment

  • x86 (32-bit Intel/AMD)
  • x86_64 (64-bit Intel/AMD)
  • ARM (32-bit)
  • ARM64 (64-bit; sometimes called AArch64)
  • Other (RISC V, PPC...)

Game Modes Affected

  • Single player
  • Anarchy
  • Hyper-Anarchy
  • Robo-Anarchy
  • Team Anarchy
  • Capture the Flag
  • Bounty
  • Entropy
  • Hoard
  • Monsterball
  • Cooperative

Game Environment

Linux 64-bit build on Debian stable (12.5), but issue likely on all case-sensitive file systems where original game content contains upper case file names.

Description

After recent changes (commit f7b19d0bf4f0315ba0e6f6ce1e3db58932b05d8e - Fix mercenary features) my local build failed to reach the first menu screen due to a missing object GuideBotRed that was referenced in the above commit.

On investigation I discovered that this object exists in the EXTRA1.HOG and EXTRA.HOG files in my GOG-supplied original content, but these HOGs were not being loaded due to their upper case file names.

Renaming the files (see my updated discussion: #93) fixes the problem, however I wonder if it would be prudent to support case-insensitive loading in the cfile module?

Regression Status

Issue not present: ad78f4d
Issue present: f7b19d0

Steps to Reproduce

Issue occurs when loading the game, if both EXTRA?.HOG files have any uppercase characters in their name, preventing them from loading.

@phlash phlash added the bug Something isn't working label May 6, 2024
@winterheart
Copy link
Collaborator

Related to #262.

@JeodC
Copy link
Collaborator

JeodC commented May 6, 2024

We have two options here: disable the red guidebot if not found (so the game loads), or add case insensitivity, which is what we should do. The former is a band-aid, the latter is the solution.

Here's what happened: the red guidebot was outright disabled on linux and mac. You wouldn't have seen it even if extra.hog and extra1.hog were loaded correctly. But, since the engine wasn't case-insensitive anyway, the digital releases would end up doing two things:

  • In steam, extra.hog would load in place of extra1.hog, so the game would be missing the patches in extra1.hog.
  • In GOG, neither EXTRA1.HOG OR EXTRA.HOG would be loaded. Mercenary missions were probably unplayable, and if they were playable, they were likely broken.

@JeodC JeodC added this to the 1.5 Stable milestone May 6, 2024
@JeodC
Copy link
Collaborator

JeodC commented May 6, 2024

For neatness I'm going to close this as a duplicate of #262

@JeodC JeodC closed this as completed May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants