Alliance Francophone Sudden Strike

Modding Fusion · UNITS / AVIA / LAND/DOM

English

Ressources des bâtiments

Les graphismes des bâtiments sont rangés dans dom.res, parfois nommé DOM.RES. Le conteneur contient une table d’offsets puis des enregistrements. Les tables utilisent des entiers de 32 bits, en ordre petit-boutiste.

Indices et cases vides

Le parseur actuel regroupe les deux parties de la table d’offsets. L’enregistrement d’indice N correspond à obj N dans les réglages. Ce relevé utilise des indices commençant à zéro. Les anciennes notes qui comptaient un en-tête comme un enregistrement pouvaient indiquer N + 1.

Une case est vide quand ses offsets de début et de fin sont égaux. Une case vide conserve son indice. Un objet sans bloc explicite peut utiliser les réglages default. Ces deux situations sont distinctes.

Le lecteur DOM accepte les indices 0 à 1019. Les conteneurs observés ont une table de 1021 cases ; cette différence n’autorise pas à ajouter un objet d’indice 1020.

Les cartes enregistrent les indices des types. Ne renumérotez pas un conteneur existant pour corriger ses réglages. Certains environnements réassemblés ont déplacé des indices : le bloc descdom doit correspondre au conteneur effectivement utilisé.

Un enregistrement graphique

ÉlémentStructure vérifiée
Palette256 couleurs RGB565 ; l’indice de couleur 0 sert à la transparence dans l’aperçu.
Classe numériqueEntier lu à l’offset 514 du début de l’enregistrement. Elle choisit notamment la fiche house ou __testportal.
Empreinte au solGrille de 14 × 14 quartiers lue par le moteur. Les quartiers ont un pas de 16 pixels. Le bit 0x40 marque les zones utilisées pour l’occupation du bâtiment.
Points d’attacheNombre d’entrées à l’offset 725, puis entrées de 10 octets. Leur signification complète reste à confirmer.
ImagesQuatre états de dégâts, chacun avec quatre images : A1, A1, A2, A3 dans les enregistrements vérifiés.

Les deux images A1 composent le bâtiment. A2 sert à une couche d’ombre ou de sol. A3 est une couche secondaire. Chaque image conserve sa taille et son décalage. Déplacer ces décalages peut modifier l’alignement du dessin.

Le lecteur d’aperçu Fusion décode les pixels A1 et compose seulement l’état 0. Il ne rend pas complètement A2 ou A3. Un aperçu correct ne valide donc pas toute la ressource, sa circulation ou ses points de tir.

Sources locales : tools/ssfusion/resfile.py, tools/ssfusion/sprite.py, src/game/land/land_dom.cpp et src/game/land/structure_setup.cpp. Les chemins de code du moteur se rapportent à HS2Engine. Les chemins d’outils se rapportent à Fusion.

Environnements et réalignement

Les outils Fusion comparent les empreintes des enregistrements, puis les silhouettes des sprites. Ces indices aident à retrouver un objet déplacé. Une silhouette seule ne prouve pas l’égalité des métadonnées ou du comportement.

Les cas documentés comprennent les conteneurs réassemblés de Falaises, Été, France et Europe. winter_xmas conserve les indices de winter et ajoute des objets. Des chaînes différentes dans le jeu et l’éditeur peuvent toutefois produire des réglages différents.

Une correction doit cibler le bloc correspondant aux indices de la ressource. Gardez une trace du conteneur, de l’archive de réglages et du schéma chargé. Les associations du relevé ci-dessous sont seulement des candidats par nom de dossier.

Nouveaux graphismes

Les outils inspectés savent lire les conteneurs, produire des aperçus et réparer les réglages texte. Ils ne fournissent pas une procédure validée pour écrire toutes les couches d’un nouveau bâtiment et compiler son archive APS.

Pour publier une procédure de création complète, il reste à vérifier :

  1. L’écriture de la palette et des quatre groupes d’images.
  2. L’écriture des métadonnées de circulation et des points d’attache.
  3. L’ajout dans une case valide sans déplacer les indices existants.
  4. La correspondance avec les lignes obj du thème.
  5. La compilation APS avec un outil identifié.
  6. Le placement, les dégâts et la sauvegarde dans Fusion et Mapeditor.

En attendant, le guide de configuration fournit une modification de réglage sur des ressources existantes. Copier une fiche UNITS ne réalise pas ces opérations.

Relevé des ressources

Le contrôle lit les tables d’indices, les en-têtes et les limites des lignes de pixels. Il ne décode pas tous les pixels et ne teste pas le jeu. Les associations proposées par les noms de dossiers ne prouvent pas les archives chargées.

RessourceObjets présentsStructure vérifiée
asien/dom.res8181
desert2/dom.res228228
desert3/dom.res228228
ete/DOM.RES352352
europe/DOM.RES373373
europe2/dom.res507507
falaises/dom.res351351
france/dom.res364364
land/dom.res349349
sommer/dom.res227227
sommer_s1/dom.res114114
stadt/dom.res515515
sud/dom.res181178
urbain/DOM.RES352352
winter/dom.res8686
winter_xmas/dom.res9696
wuste/dom.res136136
wuste_s1/dom.res6766
asien · 81 objets

asien/dom.res
SHA-256: d83ac54bb704f0a73b5b0eea61c467c2cf964342cff78bffd590153c52da42e0

1021 cases dans le conteneur, dont 940 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : asien_unit/land/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 27 2: 13 3: 4 4: 28 5: 7 6: 1 7: 1

desert2 · 228 objets

desert2/dom.res
SHA-256: 049aeeb9eb733e70b5cc868ed6b5b1585d10396060e27892a286ff8f57c0bd52

1021 cases dans le conteneur, dont 793 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Classes numériques observées (classe : nombre d’objets) : 0: 48 1: 4 2: 75 3: 8 4: 73 5: 20

desert3 · 228 objets

desert3/dom.res
SHA-256: 049aeeb9eb733e70b5cc868ed6b5b1585d10396060e27892a286ff8f57c0bd52

1021 cases dans le conteneur, dont 793 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Classes numériques observées (classe : nombre d’objets) : 0: 48 1: 4 2: 75 3: 8 4: 73 5: 20

ete · 352 objets

ete/DOM.RES
SHA-256: 1be64e960de04c891775028ce305dad87ca52f220e41c6253121ca443e7a8ddb

1021 cases dans le conteneur, dont 669 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : ete_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 60 1: 92 11: 4 2: 55 3: 28 4: 68 5: 23 6: 22

europe · 373 objets

europe/DOM.RES
SHA-256: d59a7eab81f14cff34cf632e9722a0b5711236264726b4237b7a63ce75fdcb6e

1021 cases dans le conteneur, dont 648 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : europe_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 63 1: 92 11: 4 2: 58 3: 28 4: 82 5: 24 6: 22

europe2 · 507 objets

europe2/dom.res
SHA-256: 45e1802a2deff0c0cf73cacf786b2dbc1f6315391213dde4fa064bd415318d37

1021 cases dans le conteneur, dont 514 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : europe2_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 98 1: 119 11: 6 2: 61 3: 28 4: 110 5: 27 6: 22 7: 32 8: 4

falaises · 351 objets

falaises/dom.res
SHA-256: 30287860098e83b27f17565fe729ef1794d73f31432134fe4e2dc96dce07cf34

1021 cases dans le conteneur, dont 670 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : falaises_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 55 1: 92 11: 4 2: 55 3: 28 4: 72 5: 23 6: 22

france · 364 objets

france/dom.res
SHA-256: 19b97de90390aace3a06eab40a543968f49d0becfbc108dac405788947e99ef4

1021 cases dans le conteneur, dont 657 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : france_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 63 1: 92 11: 4 2: 58 3: 28 4: 74 5: 23 6: 22

land · 349 objets

land/dom.res
SHA-256: dc9ccd18911c5b1959b0beb72bf20a9e4b2880f864ab75adc27965ae5d053b15

1021 cases dans le conteneur, dont 672 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : land_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 68 1: 95 2: 77 3: 10 4: 77 5: 19 6: 1 7: 1 8: 1

sommer · 227 objets

sommer/dom.res
SHA-256: 2943cf5e649bcd90c0f12be763311134f989d123c51553a61c646d78831e0209

1021 cases dans le conteneur, dont 794 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : sommer_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 58 1: 57 11: 4 2: 34 3: 15 4: 43 5: 12 6: 4

sommer_s1 · 114 objets

sommer_s1/dom.res
SHA-256: 7632c2588c6586ce52011a1e2730f7ad17cdac4a9f4e100ae492239a673ec417

1021 cases dans le conteneur, dont 907 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Classes numériques observées (classe : nombre d’objets) : 0: 20 1: 33 2: 20 4: 20 5: 21

stadt · 515 objets

stadt/dom.res
SHA-256: 37fd99cba7a5c95937377ece0b4ec269a5cbd4538688ad931457c15363034b0c

1021 cases dans le conteneur, dont 506 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : stadt_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 34 1: 96 2: 93 3: 15 4: 60 5: 18 6: 93 7: 93 8: 13

sud · 181 objets

sud/dom.res
SHA-256: b07c1455ca240c6dc1010ec066ce673224a78138fd543be4cb925da34f33864b

1021 cases dans le conteneur, dont 840 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : sud_unit/LAND/descdom

Indice 222: invalid frame size

Indice 223: invalid frame size

Indice 249: invalid frame size

Classes numériques observées (classe : nombre d’objets) : -1850559556: 1 0: 48 1: 33 2: 29 4: 35 5: 35

urbain · 352 objets

urbain/DOM.RES
SHA-256: 1be64e960de04c891775028ce305dad87ca52f220e41c6253121ca443e7a8ddb

1021 cases dans le conteneur, dont 669 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Classes numériques observées (classe : nombre d’objets) : 0: 60 1: 92 11: 4 2: 55 3: 28 4: 68 5: 23 6: 22

winter · 86 objets

winter/dom.res
SHA-256: 9bab0dade86758be0da2028c784d09c27b0abf1155e3b622aa7029c2698c6f5e

1021 cases dans le conteneur, dont 935 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : winter_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 14 1: 20 2: 1 3: 12 4: 4 5: 33 6: 1 7: 1

winter_xmas · 96 objets

winter_xmas/dom.res
SHA-256: e89f06d21e29c5ae8e6a09cd044ed6831f8ce2c497bc047631f40de666105508

1021 cases dans le conteneur, dont 925 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : winter_xmas/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 14 1: 20 11: 1 2: 5 3: 12 4: 9 5: 33 6: 1 7: 1

wuste · 136 objets

wuste/dom.res
SHA-256: d542567f66f8524de0a846aa568fdd1636a8815ffa1a3ad733e61f9ee75b34c0

1021 cases dans le conteneur, dont 885 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Fichiers candidats selon les noms de dossiers, association non vérifiée dans une installation : wuste_unit/LAND/descdom

Classes numériques observées (classe : nombre d’objets) : 0: 49 1: 17 2: 17 3: 6 4: 29 5: 12 6: 3 7: 2 8: 1

wuste_s1 · 67 objets

wuste_s1/dom.res
SHA-256: 33e67e58944a19d6cfc4cd9ffef8bc4ed2b76105ef2a228d15ba72024bf8c36c

1021 cases dans le conteneur, dont 954 vides. Le lecteur DOM accepte les indices 0 à 1019. La dernière case de cette table n’étend pas cette limite.

Indice 121: invalid frame size

Classes numériques observées (classe : nombre d’objets) : 0: 29 2: 9 4: 15 5: 14