RimWorld

RimWorld

Bfix - [LTO] Terrain Overhaul
Possible bug/mod incompatibility ?
(posting here, as I own the game on GoG, hence cannot add a comment)

Thanks for updating this mod, textures are real beautiful :)

I am having a strange issue though, most of the textures load fine (including ones replacing things from other mods), however some, most notably Soil and Marsh, stay vanilla no matter what.

I am using the following additional texture mods:
Fertile Fields
Vanilla Textures Expanded
Regrowth:ReTextures

When looking at the menu, the following shows:
Soil - Vanilla, LTO
Marsh - Vanilla, Regrowth:ReTextures, Vanilla Textures Expanded, LTO

In both cases the green rectangle is on the LTO texture.

I have now tried:
-disable the option, restart, enable, restart
-move LTO before/after the above mods
-remove the above mods
-use original LTO version (could this be the original bug?)

All to no avail.

Interestingly I can find mention of Soil.png and Marsh.png only in the file below
./3272822831/.vs/Bfix - Terrain Update Textures 1.5\FileContentIndex\c4a281e8-37af-44b9-a17f-ab8382f4822d.vsidx
./3272822831/.vs/slnx.sqlite


But not in:

./3272822831/Source/TerrainOverhaul/.vs/TerrainOverhaul/FileContentIndex/cdc5cdc8-af3a-41e4-88fb-ec41b28519f2.vsidx

If I am not mistaken, these files are auto-generated by VS, but no clue to what extent do they matter.

Or perhaps it could be the fact that it possibly was compiled with an older Harmony version ? 2.04 vs current 2.3.4.


EDIT:
I have now tried to remove all mods, sans Core, Harmony (latest) and LTO. Upon generating a new map, soil/marsh now shows fine. So it must be another mod incompatibility, the question is now which one...

EDIT 2:
Turns out it is related to Fertile Fields . At least removing it from the modlist fixes the issue.
HOWEVER, when testing with Core, Harmony, Fertile Fields, LTO only, it all works fine. This points to another mod that causes the lockup when both Fertile Fields and LTO is present.
Now let's find Bender The Offender...

EDIT 3:
Found it...It is Regrowth:Core , required by ReGrowth:ReTextures (note the latter does not replace any terrain textures, only the Core one). It seems to overlay some terrain textures, though I am unsure why some are still replaced by LTO, while others are stuck, including actually the Fertile Fields ones - contrary to what I thought, these do not seem to be replaced neither.
I guess since the menu in LTO is not really working as in one cannot really select the texture, then perhaps this could be also the culprit.

EDIT 4:
Found another interesting quirk - upon starting the game with LTO (even without Fertile Fields), texture
\3272822831\Textures\Stuff\RFF_SoilTilled.png

gets permanently renamed to:
\3272822831\Textures\Stuff\[X]RFF_SoilTilled.png

EDIT 5:
Upon starting the game with just Core, Harmony, LTO, the following error appears in the log:

Error in static constructor of TerrainOverhaul.StaticLoader: System.TypeInitializationException: The type initializer for 'TerrainOverhaul.StaticLoader' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object [Ref F306A54C] at TerrainOverhaul.PopupWindow.Open (System.Action`1[T] draw) [0x0000b] in <ffa9ec2f87734a9589b3d9cca73b7ce9>:0 at TerrainOverhaul.TerrainOverhaulMod.OnDefsLoaded () [0x0007c] in <ffa9ec2f87734a9589b3d9cca73b7ce9>:0 at <0x27dffff3bf0 + 0x00042> <unknown method> --- End of inner exception stack trace --- [Ref 4CC16CA0] at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr) at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <eae584ce26bc40229c1b1aa476bfa589>:0 at Verse.StaticConstructorOnStartupUtility.CallAll () [0x00025] in <1d3901981bf845c4a969d40122c14f9e>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Error (string) Verse.StaticConstructorOnStartupUtility:CallAll () Verse.PlayDataLoader/<>c:<DoPlayLoad>b__4_4 () Verse.LongEventHandler:ExecuteToExecuteWhenFinished () Verse.LongEventHandler:UpdateCurrentAsynchronousEvent () Verse.LongEventHandler:LongEventsUpdate (bool&) Verse.Root:Update () Verse.Root_Entry:Update ()
Last edited by Jasser_Arrafat; 14 Jul @ 4:23am