Plusieurs mods utilisent des fichiers ini propres ou installés par d'autres mods, notamment BGT, Spellpack, Item et spell revision, ou stratagems.
Exemple d'utilisation par BGT :
Code : Tout sélectionner
///////////////////////////////////////////////////////
// journal, sound, and [] update of bg1.tra
///////////////////////////////////////////////////////
OUTER_SET tra_updated = 0
ACTION_IF FILE_EXISTS ~bgt/install/%LANGUAGE%/bg1.tra~ BEGIN
COPY ~bgt/install/%LANGUAGE%/bg1.tra~ ~bgt/install/%LANGUAGE%/bg1.tra~
PATCH_INCLUDE ~bgt/include/tra_update.tpp~
PATCH_IF ("%LANGUAGE%" STRING_EQUAL ~english~) BEGIN
PATCH_IF NOT (FILE_EXISTS "TobEx_ini/TobExVer.txt") OR
NOT (FILE_EXISTS "TobEx_ini/TobExTweak.ini") OR
NOT ([color="#FFFF00"]FILE_CONTAINS "TobEx_ini/TobExTweak.ini" "Engine :D isable Force Inventory Pause=1[/color]")
BEGIN
PATCH_INCLUDE ~bgt/include/tra_mod_eng.tpp~
END
END
SET tra_updated = 1
LOAD_TRA ~bgt/install/%LANGUAGE%/bg1.tra~
END
Exemple d'utilisation par Spellpack :
Code : Tout sélectionner
// Updating Chant .vvc files if 3D acceleration is enabled, so it blends into the background more
ACTION_IF ([color="#FFFF00"]FILE_CONTAINS ~baldur.ini~ ~3D Acceleration=1~[/color]) BEGIN
COPY_EXISTING ~ICBLESAI.vvc~ ~override~
~SPBLESHI.vvc~ ~override~
~LC_CURSE.vvc~ ~override~
READ_BYTE 0x18 display_flags1
WRITE_BYTE 0x18 (display_flags1 BAND 0b11110111) // Disables 3D blend
READ_BYTE 0x19 display_flags2
WRITE_BYTE 0x19 (display_flags2 BOR 0b00000010) // Enables this nice-looking blend
READ_BYTE 0x1a colour_flags1
WRITE_BYTE 0x1a (colour_flags1 BOR 0b00100000) // Enables "own brightness"
BUT_ONLY_IF_IT_CHANGES
END
Et fichier ini utilisé par Item revision ;
Code : Tout sélectionner
// Main Component
install_tobex = 1 // installs ToBEx; automatically skipped if ToBEx is already installed and up to date or it's not a non-EE ToB game
install_sensible_lore = 1 // balances lore gains so classes other than bard have a better chance of identifying items
install_ioun_stone_animations = 1 // new ioun stone animations by WoRm
install_item_reallocation = 1 // removes two items from bonus merchant and equips them on enemies, matching SCS behaviour
// Store Revisions
install_masterwork_weapons = 0 // +1 weapons are changed to masterwork; outdated - mostly functional, but not recommended (use SCS component instead)
// Revised Armor
armor_dexterity_penalty = 1 // adds dexterity penalties to armor
armor_speed_factor_penalty = 1 // ditto for attack speed factor
armor_physical_resistance = 1 // adds physical resistance bonus
armor_ac_modifiers = 1 // modifies AC bonuses vs different weapon types (slashing, piercing etc.)
// Spellcasting in Armor
armor_casting_speed_clerics = 0 // divine spellcasters will be affected as well ("Casting Speed Penalties for Arcane Casters" subcomponent only)
armor_free_casting = 0 // cheat version, will override other options and enable unrestricted spellcasting in armor (either subcomponent)
bards_armor_spell_penalties = 0 // Bards get the normal penalties to casting when using any armor lighter than chain mail
// Weapon Changes
halberds_can_slash_too = 0 // adds a slashing mode to halberds
flails_have_extended_range = 0 // extends flails' range to 2
dnd_3e_scimitars = 0 // sets scimitars' damage to 1d6 (from 1d8) and add +5% critical chance
// Revised Backstabbing
add_backstabbing_penalties = 1 // gives backstab penalties to certain weapons, overridden by "Penalties with Thief-only Weapons" if chosen.
En fait, ce que je veux, c'est inclure un certain nombre de variables de configuration dans le fichier .ini, notamment les noms d'une licorne et d'un destrier.
unicorn_name = "unknown"
warhorse_name = "unknown"
Lors de l'installation, si unicorn_name est "unknown", je lance la procédure READLN afin que l'utilisateur choisisse un nom pour sa licorne. Sinon, j'utilise le nom saisi dans le fichier ini.
En phase de développement, ça m'éviterait des saisies pénibles lors de mes installations quotidiennes après chaque modif. Pour y remédier, je déclare pour l'instant une variable à l'installation (OUTER_SPRINT unicorn_name), mais comme la prochaine génération de WeiDU gérera les fichiers ini, j'ai décidé de rayer définitivement ce point de ma ToDO list.
De plus, les utilisateurs avertis pourront modifier directement le fichier ini avant l'installation.