[#bugs] _Moddability:_ the `Hills` zonebuilder has an unusual quirk in which the way it ...

Issue #10902 new
Freehold Games Bot Account created an issue

Marked for crossposting by: kernelmethod

Message (jump):

<kernelmethod> Moddability: the Hills zonebuilder has an unusual quirk in which the way it works depends on whether the name of the object contains the substring "Hills". For example, the screenshots below were taking with a modded-in zone using the exact same definition, but the name of the terrain was MyMod_Terrain for the first screenshot and MyMod_TerrainHills for the second.

It would be nice if the effect of the zonebuilder was decoupled from the name of the terrain object, since (to my knowledge) that's an extremely unusual condition for the Qud codebase. It works silently, so debugging this issue in the situation I encountered it in was rather challenging.

Here's a minimal reproduction; to make it work you'll need to change MyMod_TerrainHills to another object ID not containing the substring "Hills".

xml <?xml version="1.0" encoding="utf-8" ?> <!-- Worlds.xml --> <worlds> <world Name="JoppaWorld" Load="Merge"> <cell Name="MyMod_Hills" Inherits="Hills" ApplyTo="MyMod_TerrainHills" Mutable="false"> <zone Level="10" x="1" y="1" IndefiniteArticle="a" Name="test test!" HasWeather="true" WindSpeed="0-60" WindDirections="N,NW,NW,W,W,SW,S,SE" WindDuration="50-3000"> <builder Class="Hills" /> </zone> </cell> </world> </worlds>

xml <?xml version="1.0" encoding="utf-8" ?> <!-- WorldTerrain.xml --> <objects> <object Name="MyMod_TerrainHills" Inherits="TerrainHills"> <!-- Use the Snapjaw tile to make this easier to navigate to on the world map while debugging. --> <part Name="Render" Tile="Assets_Content_Textures_Creatures_sw_snapjaw.bmp" /> <removepart Name="RandomTile" /> </object> </objects>

xml <?xml version="1.0" encoding="utf-8"?> <!-- JoppaNewWorld8.rpm --> <Map Width="80" Height="25"> <cell X="19" Y="23"> <object Name="MyMod_TerrainHills" /> </cell> </Map>

Comments (4)

  1. kernelmethod

    Reproduction got mangled:

    <?xml version="1.0" encoding="utf-8" ?>
    <!-- Worlds.xml -->
    <worlds>
      <world Name="JoppaWorld" Load="Merge">
        <cell Name="MyMod_Hills" Inherits="Hills" ApplyTo="MyMod_TerrainHills" Mutable="false">
          <zone Level="10" x="1" y="1" IndefiniteArticle="a" Name="test test!" HasWeather="true" WindSpeed="0-60" WindDirections="N,NW,NW,W,W,SW,S,SE" WindDuration="50-3000">
            <builder Class="Hills" />
          </zone>
        </cell>
      </world>
    </worlds>
    
    <?xml version="1.0" encoding="utf-8" ?>
    <!-- WorldTerrain.xml -->
    <objects>
      <object Name="MyMod_TerrainHills" Inherits="TerrainHills">
        <!--
          Use the Snapjaw tile to make this easier to navigate to on the world map
          while debugging.
        -->
        <part Name="Render" Tile="Assets_Content_Textures_Creatures_sw_snapjaw.bmp" />
        <removepart Name="RandomTile" />
      </object>
    </objects>
    
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JoppaNewWorld8.rpm -->
    <Map Width="80" Height="25">
      <cell X="19" Y="23">
        <object Name="MyMod_TerrainHills" />
      </cell>
    </Map>
    

  2. Log in to comment