BC46 / freelancer-hd-edition

Freelancer: HD Edition is a mod that aims to improve every aspect of the game Freelancer (2003) while keeping the look and feel as close to vanilla as possible.
https://www.moddb.com/mods/freelancer-hd-edition
168 stars 15 forks source link

Several errors in purchasable infos giving the wrong name in the IDS as opposed to what is revealed in the knowledgemap #239

Open Caenen opened 1 month ago

Caenen commented 1 month ago

On Rochester Base in Li01, one of the Junkers sells info ('know =') on the Dawson Base in Iw02 (Hudson), but the Text in the box says it's for the Montezuma base (in Iw04; Cortez) instead:

mbases.ini

[GF_NPC] nickname = li0113_junkers_002_m body = pl_male3_journeyman_body head = pl_male2_head [...] know = 251722, 253719, 6000, 2 knowdb = iw02_02 //this line isn't used at all to my knowledge

nameresources.frc

S 251722 I’ll upload all of the info on the Rogue Montezuma Base into your Neural Net

knowledgemap.ini

Map = 253719, iw02_02, 31 Map = 253719, iw02, 1

The intent here is probably Dawson Base given that Rogue smuggling routes actually run to a Junker base (Beaumont) in the neighboring system from there, but either one works to be revealed if the name and target become consistent.

Freelancer isnt perfectly tidy with at least one more of these, and it might be warranted to look across all of them.

That other example I found a while back was Hogosha selling all info on the Farmer's Alliance base (ku03_05) to the player, but the Text wrote Ohashi Border Station (ku02_05), also the 5th base in a system but in the wrong system. This was noted here in https://github.com/BC46/freelancer-hd-edition/issues/196, and resolved by changing the station to be revealed to be that Police station instead. I would argue that that is wrong, and the text resource should have been updated instead.

To solve this issue, the following questions need to be answered:

  1. Do we bother to find all of these, and to what degree can we automate the process of checking? Ideally we'd build something simple to generate a table with all the know string entries (251609 to 251976) one one side and the full names of the revealed object's nicknames on the other.
  2. How do we want to resolve these? Changing the knowledgemap so it is not strictly wrong, or also making sure it provides the intended information where we can make a rather clear guess? How difficult is it to account for all languages, given that the Base name is always baked into the entire 'rumor' text in info-sale entries?
BC46 commented 1 month ago

This was noted here in https://github.com/BC46/freelancer-hd-edition/issues/196, and resolved by changing the station to be revealed to be that Police station instead. I would argue that that is wrong, and the text resource should have been updated instead.

Could you explain your reasoning for this?

Do we bother to find all of these, and to what degree can we automate the process of checking?

Once the strings have been extracted from the resource DLLs, it should be fairly straightforward to write something like a Python script that checks for each location rumor whether it corresponds to the same object that is revealed.

How do we want to resolve these?

By deciding for every inconsistency which approach makes the most sense given the context (NPC's faction, bases in question, etc). Regardless of the chosen approach, I think it needs to be 100% certain that it is in fact the right one (lore and context-wise). I am also curious to know @erikroe's opinion on this matter.

As for which files can be modified to achieve this, ideally the names of objects specified in the resource DLLs should remain unmodified. Otherwise players who choose to play without the English text fixes will see different object names being displayed as their resource DLLs will not have the updates included. If the correct text for a location rumor is absent in the vanilla DLLs, I would strongly recommend adding a new text entry to controls.dll (HDE's separate resource DLL) in English. If this entry is referenced via the ini files, players who do not use the English text fixes will see the correct object name, albeit not in their chosen language.