Alliance Francophone Sudden Strike

Fusion modding · UNITS / AVIA / LAND/DOM

Français

Buildings

A terrain building combines a resource record in dom.res, LAND/DOM settings, and a generic unit sheet. Houses, bunkers, casemates, and some fortifications use this system. Bridges use a different reader.

The configuration guide shows a change to an existing building. Building resources explains indices and graphics.

Settings files

FileObserved purpose
<archive>/LAND/domBase settings, common values, and includes.
<archive>/LAND/descdomSettings for building indices.
<archive>/LAND/defdomIncluded settings, such as sounds or fortifications. This file can also contain obj lines.
<environment>/dom.resGraphics, palette, numeric class, and placement data.
lang/UNITS/houseGeneric sheet for the House class.
lang/UNITS/__testportalGeneric sheet for the Portal class.

asien_unit/land/ uses a lowercase directory name. Some resources use the name DOM.RES. Keep the spelling used in your archive.

The engine reads the dom family file and its includes. It loads the resources before it applies settings to loaded types. A defdom file needs an include in the active dom file.

Selectors and order

level 0
HP default 500 500 500 500
HP type 2 1000 1000 1000 1000
HP obj 26 1333 1333 1333 1333

This example shows the three forms. The type line does not come from the current Fusion files.

FormScope
key default valuesAll loaded types in this family.
key type class valuesTypes with this numeric class in dom.res.
key obj index valuesThe type at this container index.
level valueA family setting, without a selector.

The engine applies all default lines, then all type lines, then all obj lines. It keeps the read order within each group, including included files. A later default line does not take priority over an obj line.

A later line in the same group can replace the same field. Armor and protection tables have separate entries for each damage type. Keep the necessary lines in each block.

The numeric resource class differs from seltype house or seltype bunker. It also differs from House in the UNITS registry. An obj index identifies a graphic type, not one building placed on the map.

Generic sheets and tunnels

house uses file none. Its graphics come from dom.res. During mission loading, resource classes below 6 select house. The other classes select __testportal.

A copy of house with a new identifier does not change this association. Common name, target, and attack properties remain in Identity and resources and Weapons and ammunition.

Tunnels use Portal when their resource class selects it. The generic sheet does not establish their capacity, links, travel, or combat rules.

Health and damage states

HP obj 0 1000 1000 1000 1000

The four numbers are health contributions. A building placed in state 0 starts with 4000 health here. In state 1, it starts with 3000 health. Transition thresholds add the contributions of the later states.

The reader consumes four values. A fifth value in a source file does not add a fifth state. The resource contains four graphic groups.

HP differs from health in UNITS. Also read the limits of armor and protection.

Reference limits

Code confirms the readers. Some delay units, garrison capacity rules, and exact bonus factors remain unknown. Examples keep Fusion values. They are not balance recommendations.

HS2Engine cover, hidden garrison, and medic mods can change the behavior. Record your DLL options for each trial. No interactive game or editor trial of this procedure was run here. See Sources and limits.

The classes and archives show where a property occurs. They do not guarantee support.

Stores the armor coefficients of the building type.

armor obj object_id damage_type front1 front2 side1 side2 rear1 rear2
Parameters
The shared reader expects a damage type and three pairs of values. Fusion often supplies only one value.
Class notes
The reader limits 256 minus each value to 0 through 256. Missing numeric arguments are zero. They do not repeat the first value. Building faces and the damage calculation remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:261 src/game/desc/misc.cpp:84 src/game/core/text/tokenizer.cpp:77 Related table or registry: lang2/hitsnames

Behavior not confirmed · Research results

Source example

ARMOR default ABJECTIVE 256

asien_unit/land/dom:27

Stores the firing dead zone setting of the building type.

bonus_shotdeadzone obj object_id value
Parameters
One integer after the selector.
Class notes
The reader stores the integer without conversion. The factor and the change to minimum range remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1
Observed spellings
bonus_ShotDeadZone, bonus_shotdeadzone

Engine reader src/game/land/land_dom.cpp:266

Behavior not confirmed · Research results

Source example

bonus_ShotDeadZone default 150

asien_unit/land/dom:17

Stores the firing range setting of the building type.

bonus_shotrange obj object_id value
Parameters
One integer after the selector.
Class notes
The reader stores the integer without conversion. A value of 150 does not prove a 150 percent bonus. The gameplay calculation remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1
Observed spellings
bonus_ShotRange, bonus_shotrange

Engine reader src/game/land/land_dom.cpp:266

Behavior not confirmed · Research results

Source example

bonus_ShotRange default 150

asien_unit/land/dom:16

Stores the sight setting of the building type.

bonus_sight obj object_id value
Parameters
One integer after the selector.
Class notes
The reader accepts a signed integer, including -1. Its effect on occupants and its unit remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1
Observed spellings
Bonus_sight, bonus_Sight, bonus_sight

Engine reader src/game/land/land_dom.cpp:266

Behavior not confirmed · Research results

Source example

bonus_Sight default 1

asien_unit/land/dom:15

Stores the delay named DelayBeforeFight.

delaybeforefight obj object_id value
Parameters
One integer after the selector.
Class notes
The condition to resume combat and the delay unit remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:274

Behavior not confirmed · Research results

Source example

DelayBeforeFight default 150

asien_unit/land/dom:19

Selects an explosion type for each damage state.

explosiontype obj object_id state0 state1 state2 state3
Parameters
Four identifiers from lang2/boomtypes. Use none only if the table recognizes that name.
Class notes
This type table differs from the named effects used by onhit_addexplosion. HouseExplosion returns the type of the current state for a marked building area.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:479 src/game/land/land_dom.cpp:57 Related table or registry: lang2/boomtypes

Source example

ExplosionType default dom dom dom none

asien_unit/land/dom:6

hp

LAND/DOM Français

Sets the health contributions of the four damage states.

hp obj object_id state0 state1 state2 state3
Parameters
Four integers, in the order of states 0 to 3.
Class notes
Initial health adds the contributions from the placed state through state 3. 1000 1000 1000 1000 gives 4000 at state 0. Thresholds are cumulative. The reader ignores a fifth value.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:474 src/game/land/structure_setup.cpp:53 src/game/land/land_dom.cpp:311

Source example

HP default 500 500 500 500

asien_unit/land/dom:5

Stores the base level of the DOM family.

level value
Parameters
One integer, without default, type, or obj.
Class notes
This line is read before the resources. It does not select the damage state of a placed building. Its exact effect remains unknown.
Confirmed readers
Dom::Parse
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:105 src/game/land/land.cpp:237

Behavior not confirmed · Research results

Source example

level 0

asien_unit/land/dom:4

name

LAND/DOM Français

Sets the name of the building type.

name obj object_id "text"
Parameters
A quoted text. The selector identifies the affected objects.
Class notes
The $ prefix finds a key in desc.lng. A missing key leaves the name unchanged.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1
Observed spellings
Name, name

Engine reader src/game/land/land_dom.cpp:250

Source example

Name default "Batiment"

asien_unit/land/dom:11

Stores an additional damage effect for each state.

ondmg_addexplosion obj object_id effect0 ; effect1 ; effect2 ; effect3
Parameters
Each group: name|none [one|cell [fraction [minimum [maximum]]]].
Class notes
The format is the same as onhit_addexplosion. Semicolons end the groups. The exact effect trigger remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:426 src/game/land/land.cpp:486

Behavior not confirmed · Research results

Source example

onDmg_AddExplosion default very_tall cell 0.75 0 0 ; compact_b cell 0.75 0 0 ; very_tall cell 0.75 0 0 ; very_tall cell 0.75 0 0

asien_unit/land/dom:8

Stores the damage sounds for the four states.

ondmg_sound obj object_id sound0 ; sound1 ; sound2 ; sound3
Parameters
One sound reference per state, with its optional parameters.
Class notes
The reader uses onDamage instead of onHit. The exact trigger for damage or a state change remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:424 src/game/land/land.cpp:486

Behavior not confirmed · Research results

Source example

onDmg_Sound default  building_light  0.5 ; building_light  0.5 ; building 0.5 ; building 0.5

asien_unit/land/dom:2

Stores an additional impact effect for each state.

onhit_addexplosion obj object_id effect0 ; effect1 ; effect2 ; effect3
Parameters
Each group: name|none [one|cell [fraction [minimum [maximum]]]].
Class notes
The reader stores one as 1 and cell as 2. It converts the fraction to units of 256, capped at 255. Bounds use one byte. The exact area behavior remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:426 src/game/land/land.cpp:484

Behavior not confirmed · Research results

Source example

onHit_AddExplosion default compact_b cell 0.75 0 0 ; none one 0 0 0 ; none one 0 0 0 ; smoke cell 0.75 0 0

asien_unit/land/dom:9

Stores the impact sounds for the four states.

onhit_sound obj object_id sound0 ; sound1 ; sound2 ; sound3
Parameters
One sound reference per state. A reference can have parameters before the semicolon.
Class notes
The semicolon ends the sound reference. It is not a comment. The exact gameplay trigger remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land.cpp:424 src/game/land/land.cpp:484

Behavior not confirmed · Research results

Source example

onHit_Sound default  building_light  0.5 ; building_light  0.5 ; building 0.5 ; building 0.5

asien_unit/land/dom:1

Stores the protection table of the building type.

protection obj object_id damage_type front1 front2 side1 side2 rear1 rear2
Parameters
The shared reader expects a damage type and three pairs. Fusion files often supply one pair.
Class notes
This table differs from armor. Missing numbers are zero. Its exact effect on damage to occupants remains unknown in the building health code.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:261 src/game/desc/misc.cpp:84 src/game/core/text/tokenizer.cpp:77 Related table or registry: lang2/hitsnames

Behavior not confirmed · Research results

Source example

PROTECTION default ABJECTIVE 20 20

ete_unit/LAND/dom:35

Stores the name intended for ruins.

ruinedname obj object_id text
Parameters
One text. Use quotes to keep multiple words together.
Class notes
The reader copies the text without a $ lookup in desc.lng. The display condition remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:276

Behavior not confirmed · Research results

Source example

RuinedName default Ruin

asien_unit/land/dom:20

Selects the selection type of the building.

seltype obj object_id selection_type
Parameters
One identifier from lang2/selunittypes, for example house or bunker.
Class notes
This type differs from the numeric class in dom.res and targettype in the UNITS sheet.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1
Observed spellings
SelType, seltype

Engine reader src/game/land/land_dom.cpp:269 Related table or registry: lang2/selunittypes

Source example

SelType default house

asien_unit/land/dom:12

Stores the interval named TimeQuantum.

timequantum obj object_id value
Parameters
One integer after the selector.
Class notes
The reader does not convert the value. Its use and unit remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:274

Behavior not confirmed · Research results

Source example

TimeQuantum default 50

asien_unit/land/dom:21

Stores the delay named TransferDelay.

transferdelay obj object_id value
Parameters
One integer after the selector.
Class notes
The affected transfers and delay unit remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:281

Behavior not confirmed · Research results

Source example

TransferDelay default 10

asien_unit/land/dom:18

Stores the delay named UnloadDelay.

unloaddelay obj object_id value
Parameters
One integer after the selector.
Class notes
The delay unit and exit rate remain unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, land2_unit, land_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:259

Behavior not confirmed · Research results

Source example

UnloadDelay default 10

asien_unit/land/dom:14

Stores the health threshold named UnloadHP.

unloadhp obj object_id value
Parameters
One integer after the selector.
Class notes
Its relation to a forced exit remains unknown.
Confirmed readers
Dom::ParseType
Observed archives
asien_unit, beach_unit_s1, ete_unit, europe2_unit, europe_unit, falaises_unit, france_unit, franz_unit, land2_unit, land_unit, mount_unit, russ1_unit, russ2_unit, sommer_unit, sommer_unit_s1, stadt_unit, sud_unit, winter_unit, winter_unit_s1, winter_xmas, wuste_unit, wuste_unit_s1

Engine reader src/game/land/land_dom.cpp:259

Behavior not confirmed · Research results

Source example

UnloadHP default 250

asien_unit/land/dom:13