HDMOD Character Models and Meshes Issue. - by TheDarkOne93
TheDarkOne93 on 5/8/2020 at 07:23
I have already posted this issue on the Thief FM Thread about the mission Ascend the Dim Valley before I made this new post and decided that this thread was the proper place for it so any admin or moderator can remove the original post on the FM thread.
So after I played the Thief Gold FM, Ascend the Dim Valley, the character models and Garrett's arm texture from the HDMOD will not work anymore and it loads the standard character models and arm textures. I'm having difficulty posting the screenshots that I have on my PC at home and any help would be appreciated.
Update: Went ahead and deleted original post.
DirkBogan on 5/8/2020 at 07:47
I've just looked into it, and I believe I've figured out the issue: the fm.cfg for Ascend The Dim Valley has 'character_detail 0' in it for compatibility's sake, so that unsupported high-poly TG meshes don't load.
Normally, fm.cfg will not overwrite settings for your base installation. However, some cam.cfg files don't include the 'character_detail 0' command by default, so it hasn't so much overwritten your default as added a new default.
Put 'character_detail 1' in your cam.cfg file, and that should hopefully fix the issue. Though I don't have HD Mod installed to confirm at the moment.
TheDarkOne93 on 5/8/2020 at 07:52
Thank you sir. I will look into it as soon as I get home from work.
FenPhoenix on 31/10/2020 at 18:59
Me and Dahenjo just ran into this 'character_detail 0' issue. I can shed a little more light on this.
Quote Posted by DirkBogan
Normally, fm.cfg will not overwrite settings for your base installation. However, some cam.cfg files don't include the 'character_detail 0' command by default, so it hasn't so much overwritten your default as added a new default.
This is not quite correct. It's true that fm.cfg values will usually not overwrite base values, but in this case fm.cfg
will in fact overwrite the 'character_detail' line in cam.cfg if it exists.
This is a strange behavior of NewDark itself, where if certain config options are specified in files other than cam.cfg (including fm.cfg files in FMs!), it will straight-up just copy (and overwrite if necessary) those values to cam.cfg and then leave them there forever until you change/remove them or until you specify them in another config file (including another FM's fm.cfg).
I discovered this behavior while implementing AngelLoader's "play FM in a given language" feature. AngelLoader actually has to go and remove "fm_language" and "fm_language_forced" lines in cam.cfg if it finds them, because they're supposed to be specified in cam_mod.ini and if the user removes them from there, they will still exist in cam.cfg and then an FM will play in some random language the user didn't specify and they'll wonder what happened. It's this same behavior that's causing "character_detail 0" to be force-written into cam.cfg whether the value was there before or not.
Another value that gets copied to cam.cfg is "sfx_channels 48", and again that's whether there was an old value there or not. It seems to only be a handful of values that exhibit this behavior. There are probably others but I don't have an exhaustive list.
I don't blame you as the author for this at all btw; an FM author should certainly expect to be able to set this value - or
any value! - in a per-FM config file without it becoming global! IMO Le Corbeau should simply remove this behavior if at all possible, because it's extremely non-obvious and can cause problems that could have users tearing their hair out. I'm not sure if it's a bug or if there's some weird reason it needs to be there, but I can't think of why the game would need to take values it's already read and then copy them into a global file and not remove them.