Alliance Francophone Sudden Strike

Modding Fusion · UNITS / AVIA / LAND/DOM

English

Bâtiments

Un bâtiment de terrain combine un enregistrement graphique de dom.res, des réglages LAND/DOM et une fiche d’unité générique. Les maisons, casemates, bunkers et certaines fortifications suivent ce circuit. Les ponts utilisent un autre lecteur.

Le guide de configuration montre une modification sur un bâtiment existant. La page Ressources des bâtiments décrit les indices et les graphismes.

Trois fichiers de réglages

FichierRôle observé
<archive>/LAND/domRéglages de base, valeurs communes et inclusions.
<archive>/LAND/descdomRéglages par indice de bâtiment.
<archive>/LAND/defdomRéglages inclus, notamment sons ou fortifications. Ce fichier peut aussi contenir des lignes obj.
<environnement>/dom.resGraphismes, palette, classe numérique et métadonnées de placement.
lang/UNITS/houseFiche générique de la classe House.
lang/UNITS/__testportalFiche générique de la classe Portal.

La variante asien_unit/land/ utilise un nom de dossier en minuscules. Certaines ressources s’appellent DOM.RES. Conservez l’écriture présente dans votre archive.

Le moteur lit le nom de famille dom, puis ses inclusions. Il charge les ressources avant d’appliquer les réglages aux types présents. Un fichier defdom n’est donc pas une table automatiquement chargée : son inclusion doit exister dans le dom utilisé.

Sélecteurs et priorité

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

Cet exemple illustre les trois formes. La ligne type n’est pas une observation des fichiers Fusion actuels.

FormePortée
clé default valeursTous les types chargés de cette famille.
clé type classe valeursTypes dont la classe numérique dans dom.res correspond à classe.
clé obj indice valeursType dont l’indice dans le conteneur correspond à indice.
level valeurRéglage de la famille, sans sélecteur.

Le moteur applique toutes les lignes default, puis toutes les lignes type, puis toutes les lignes obj. Il conserve l’ordre de lecture dans chaque groupe, inclusions comprises. Une ligne default placée plus bas ne passe pas après une ligne obj.

Pour un même champ, une ligne ultérieure du même groupe peut remplacer la précédente. Les tables de blindage et de protection sont réglées séparément pour chaque type de dégâts. Gardez toutes les lignes nécessaires au bloc.

La classe numérique de ressource est distincte de seltype house ou seltype bunker. Elle est aussi distincte de House dans le registre UNITS. L’indice obj identifie un type graphique, pas un bâtiment individuel placé sur la carte.

Fiche générique et tunnel

house utilise file none. Ses graphismes viennent de dom.res, pas d’un sprite choisi par cette propriété. Au chargement de la mission, le moteur crée house pour une classe de ressource inférieure à 6. Il crée __testportal pour les autres classes.

Copier la fiche house sous un nouvel identifiant ne change pas cette association. Les réglages communs de nom, de ciblage et d’attaque restent documentés dans Identité et ressources et Armes et munitions.

Les tunnels emploient le circuit Portal quand leur classe le sélectionne. Leur capacité, leurs liaisons, leur trajet et leurs règles de combat ne sont pas établis par la seule fiche générique.

Santé et états de dégâts

HP obj 0 1000 1000 1000 1000

Les quatre nombres sont des contributions de santé. Un objet placé à l’état 0 commence ici avec 4000 points. À l’état 1, il commence avec 3000 points. Les seuils de transition additionnent les contributions des états suivants.

Le lecteur consume quatre valeurs. Une cinquième valeur, présente dans certaines sources, ne crée pas un cinquième état. Les ressources comportent quatre groupes de graphismes.

Ne confondez pas HP avec health dans UNITS. Consultez aussi les limites du lecteur armor et protection.

Limites de cette référence

Les lecteurs sont vérifiés dans le code. Les délais, la capacité de garnison et les facteurs exacts des bonus restent en partie inconnus. Les exemples conservent les valeurs de Fusion ; ils ne constituent pas des valeurs recommandées pour équilibrer le jeu.

Les mods de couverture, de garnison cachée et de soins de HS2Engine peuvent changer le comportement. Notez les options de votre DLL lors d’un essai. Aucun essai interactif de cette procédure dans le jeu ou l’éditeur n’a été exécuté ici. Voir Sources et limites.

Les classes et archives indiquent la présence dans les fichiers, pas une garantie de prise en charge.

armor

LAND/DOM English

Stocke les coefficients de blindage du type de bâtiment.

armor obj object_id damage_type front1 front2 side1 side2 rear1 rear2
Paramètres
Le lecteur commun attend un type de dégâts et trois paires de valeurs. Fusion utilise souvent une seule valeur.
Notes de classe
Le lecteur limite 256 moins chaque valeur entre 0 et 256. Les arguments numériques absents valent zéro : ils ne répètent pas la première valeur. Les faces et le calcul des dégâts des bâtiments restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:261 src/game/desc/misc.cpp:84 src/game/core/text/tokenizer.cpp:77 Table ou registre lié: lang2/hitsnames

Comportement à confirmer · Bilan de la recherche

Exemple réel

ARMOR default ABJECTIVE 256

asien_unit/land/dom:27

Stocke le réglage de zone morte de tir du type de bâtiment.

bonus_shotdeadzone obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Le lecteur stocke l’entier sans conversion. Le sens du facteur et la modification de la portée minimale restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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
Écritures observées
bonus_ShotDeadZone, bonus_shotdeadzone

Lecteur du moteur src/game/land/land_dom.cpp:266

Comportement à confirmer · Bilan de la recherche

Exemple réel

bonus_ShotDeadZone default 150

asien_unit/land/dom:17

Stocke le réglage de portée de tir du type de bâtiment.

bonus_shotrange obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Le lecteur stocke l’entier sans conversion. Une valeur de 150 ne prouve pas un bonus de 150 %. Le calcul en jeu reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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
Écritures observées
bonus_ShotRange, bonus_shotrange

Lecteur du moteur src/game/land/land_dom.cpp:266

Comportement à confirmer · Bilan de la recherche

Exemple réel

bonus_ShotRange default 150

asien_unit/land/dom:16

Stocke le réglage de vision du type de bâtiment.

bonus_sight obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Le lecteur accepte un entier signé, dont -1. L’effet sur les occupants et son unité restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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
Écritures observées
Bonus_sight, bonus_Sight, bonus_sight

Lecteur du moteur src/game/land/land_dom.cpp:266

Comportement à confirmer · Bilan de la recherche

Exemple réel

bonus_Sight default 1

asien_unit/land/dom:15

Stocke le délai nommé DelayBeforeFight.

delaybeforefight obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
La condition de reprise du combat et l’unité du délai restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:274

Comportement à confirmer · Bilan de la recherche

Exemple réel

DelayBeforeFight default 150

asien_unit/land/dom:19

Choisit un type d’explosion pour chaque état de dégâts.

explosiontype obj object_id state0 state1 state2 state3
Paramètres
Quatre identifiants de lang2/boomtypes, dont none si ce nom est reconnu par la table.
Notes de classe
Cette table de types est distincte des effets nommés utilisés par onhit_addexplosion. HouseExplosion renvoie le type de l’état courant pour une zone marquée du bâtiment.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:479 src/game/land/land_dom.cpp:57 Table ou registre lié: lang2/boomtypes

Exemple réel

ExplosionType default dom dom dom none

asien_unit/land/dom:6

hp

LAND/DOM English

Définit les contributions de santé des quatre états de dégâts.

hp obj object_id state0 state1 state2 state3
Paramètres
Quatre entiers, dans l’ordre des états 0 à 3.
Notes de classe
La santé initiale additionne les contributions de l’état placé jusqu’à l’état 3. 1000 1000 1000 1000 donne 4000 à l’état 0. Les seuils sont cumulatifs. Le lecteur ignore une cinquième valeur.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:474 src/game/land/structure_setup.cpp:53 src/game/land/land_dom.cpp:311

Exemple réel

HP default 500 500 500 500

asien_unit/land/dom:5

level

LAND/DOM English

Stocke le niveau de base de la famille DOM.

level value
Paramètres
Une valeur entière, sans default, type ou obj.
Notes de classe
Cette ligne est lue avant les ressources. Elle ne choisit pas l’état de dégâts d’un bâtiment placé. Son effet exact reste à confirmer.
Lecteurs confirmés
Dom::Parse
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:105 src/game/land/land.cpp:237

Comportement à confirmer · Bilan de la recherche

Exemple réel

level 0

asien_unit/land/dom:4

name

LAND/DOM English

Définit le nom du type de bâtiment.

name obj object_id "text"
Paramètres
Un texte entre guillemets. Le sélecteur choisit les objets concernés.
Notes de classe
Le préfixe $ cherche une clé dans desc.lng. Une clé absente laisse le nom inchangé.
Lecteurs confirmés
Dom::ParseType
Archives observées
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
Écritures observées
Name, name

Lecteur du moteur src/game/land/land_dom.cpp:250

Exemple réel

Name default "Batiment"

asien_unit/land/dom:11

Stocke un effet supplémentaire de dégâts par état.

ondmg_addexplosion obj object_id effect0 ; effect1 ; effect2 ; effect3
Paramètres
Chaque groupe : nom|none [one|cell [fraction [minimum [maximum]]]].
Notes de classe
Le format est celui de onhit_addexplosion. Les points-virgules terminent les groupes. Le déclenchement exact des effets reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:426 src/game/land/land.cpp:486

Comportement à confirmer · Bilan de la recherche

Exemple réel

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

Stocke les sons associés aux dégâts pour les quatre états.

ondmg_sound obj object_id sound0 ; sound1 ; sound2 ; sound3
Paramètres
Une référence sonore par état, avec ses éventuels paramètres.
Notes de classe
Le lecteur utilise onDamage plutôt que onHit. Le déclenchement exact lors des dégâts ou changements d’état reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:424 src/game/land/land.cpp:486

Comportement à confirmer · Bilan de la recherche

Exemple réel

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

asien_unit/land/dom:2

Stocke un effet supplémentaire d’impact par état.

onhit_addexplosion obj object_id effect0 ; effect1 ; effect2 ; effect3
Paramètres
Chaque groupe : nom|none [one|cell [fraction [minimum [maximum]]]].
Notes de classe
one et cell valent 1 et 2 dans le lecteur. La fraction est convertie en fraction de 256, plafonnée à 255. Les bornes sont stockées sur un octet. Le traitement exact des zones reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:426 src/game/land/land.cpp:484

Comportement à confirmer · Bilan de la recherche

Exemple réel

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

Stocke les sons associés aux impacts pour les quatre états.

onhit_sound obj object_id sound0 ; sound1 ; sound2 ; sound3
Paramètres
Une référence sonore par état. Une référence peut contenir des paramètres avant le point-virgule.
Notes de classe
Le point-virgule termine la référence sonore. Ce n’est pas un commentaire. Le déclenchement exact en jeu reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land.cpp:424 src/game/land/land.cpp:484

Comportement à confirmer · Bilan de la recherche

Exemple réel

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

asien_unit/land/dom:1

Stocke la table de protection du type de bâtiment.

protection obj object_id damage_type front1 front2 side1 side2 rear1 rear2
Paramètres
Le lecteur commun attend un type de dégâts et trois paires. Les fichiers Fusion fournissent souvent une paire.
Notes de classe
La table est distincte du blindage. Les nombres absents valent zéro. Le lien exact avec les dégâts subis par les occupants reste à confirmer dans le code de santé des bâtiments.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:261 src/game/desc/misc.cpp:84 src/game/core/text/tokenizer.cpp:77 Table ou registre lié: lang2/hitsnames

Comportement à confirmer · Bilan de la recherche

Exemple réel

PROTECTION default ABJECTIVE 20 20

ete_unit/LAND/dom:35

Stocke le nom destiné aux ruines.

ruinedname obj object_id text
Paramètres
Un texte. Les guillemets regroupent plusieurs mots.
Notes de classe
Le lecteur copie le texte sans recherche $ dans desc.lng. La condition exacte d’affichage reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:276

Comportement à confirmer · Bilan de la recherche

Exemple réel

RuinedName default Ruin

asien_unit/land/dom:20

Choisit le type de sélection du bâtiment.

seltype obj object_id selection_type
Paramètres
Un identifiant de lang2/selunittypes, par exemple house ou bunker.
Notes de classe
Ce type est distinct de la classe numérique de dom.res et du targettype de la fiche UNITS.
Lecteurs confirmés
Dom::ParseType
Archives observées
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
Écritures observées
SelType, seltype

Lecteur du moteur src/game/land/land_dom.cpp:269 Table ou registre lié: lang2/selunittypes

Exemple réel

SelType default house

asien_unit/land/dom:12

Stocke l’intervalle nommé TimeQuantum.

timequantum obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Le lecteur ne convertit pas la valeur. Son usage et son unité restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:274

Comportement à confirmer · Bilan de la recherche

Exemple réel

TimeQuantum default 50

asien_unit/land/dom:21

Stocke le délai nommé TransferDelay.

transferdelay obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Les transferts concernés et l’unité du délai restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:281

Comportement à confirmer · Bilan de la recherche

Exemple réel

TransferDelay default 10

asien_unit/land/dom:18

Stocke le délai nommé UnloadDelay.

unloaddelay obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
L’unité du délai et la cadence de sortie restent à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:259

Comportement à confirmer · Bilan de la recherche

Exemple réel

UnloadDelay default 10

asien_unit/land/dom:14

Stocke le seuil de santé nommé UnloadHP.

unloadhp obj object_id value
Paramètres
Une valeur entière après le sélecteur.
Notes de classe
Le lien avec une évacuation forcée reste à confirmer.
Lecteurs confirmés
Dom::ParseType
Archives observées
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

Lecteur du moteur src/game/land/land_dom.cpp:259

Comportement à confirmer · Bilan de la recherche

Exemple réel

UnloadHP default 250

asien_unit/land/dom:13