Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Dark Dreams of Furiae - a new module for NWN:EE! Buy now
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

[BG:EE Modding Compatability] Request (When we get there - not now!) Unique WeiDU GAME_IS Identifier

cmorgancmorgan Member Posts: 707
edited July 2012 in General Modding
Observed Behavior: None observed

Requested Behavior: Please provide a unique identifier for BG:EE so that WeiDU can determine GAME_IS status

Why: Ease of adapting existting mods to BG:EE, or allowing old and new mods to determine what DLC/Expanded Content Pack/BG:EEMod content is on the install, allowing modders to adapt to any changes/unneeded repairs/etc. while coding.

Focus: BG:EE new unique *.are files

Details: Currently, checking for specific versions of Infinity Engine games uses .are files unique to the platform in question. The modder can then call things like

ACTION_IF GAME_IS ~TUTU~ BEGIN
X
END ELSE
ACTION_IF GAME_IS ~BGT~ BEGIN
Y
END ELSE
FAIL ~This mod is designed for Tutu or BGT, and cannot be installed on the game you are attempting to modify.~
END

Expansion: Current list of identifying files (can be in .bif, etc., but usually found in master override)

let tutu = if game_or_engine then f "fw0125.are" else false in
let bgt = if game_or_engine then f "ar7200.are" else false in
let ca = if game_or_engine then f "tc1300.are" else false in
let bg2 = f "ar0803.are" in
let tob = f "ar6111.are" in
let iwd2 = f "ar6050.are" in
let pst = f "ar0104a.are" in
let bg1 = f "ar0125.are" in
let tosc = f "ar2003.are" in
let iwd1 = f "ar2116.are" in
let how = f "ar9109.are" in
let tolm = f "ar9715.are" in
let ttsc = f "fw2003.are" in
.....>snip of content<.....
| "BG2"
| "SOA" -> bg2 && not tutu && not tob && not ca
| "TOB" -> bg2 && not tutu && tob && not ca
| "IWD2" -> iwd2
| "PST" -> pst
| "BG1" -> bg1 && not tosc && not bg2
| "TOTSC" -> bg1 && tosc && not bg2 && not iwd1
| "IWD"
| "IWD1" -> iwd1 && not how && not tolm
| "HOW" -> iwd1 && how && not tolm
| "TOTLM" -> iwd1 && how && tolm
| "TUTU" -> tutu && not ttsc
| "TUTU_TOTSC"
| "TUTU+TOTSC" -> tutu && ttsc
| "BGT" -> bgt
| "CA" -> ca
Prior community experience has show that having a unique .are file is the most stable and simple way of determining the platform.

Other ways, for those additions not adding areas:
- detecting .dlg files with unique registered community prefixes, so that C-ARAN.DLG detects Aran Whitehand (without the C- prefix, the BG2 ARAN.DLG for our favorite evil A.L. would mess things up immensely :) ). This is commonly used for NPCs.

- adding unique 0 byte flag files (see Fixpack/Tweakpack implementation) that show what component is installed by creating a flag file in override; usually used by tweaks, fixes, or A.I mods.


(This may be classified a Feature Request - if so, please move it to whever it best fits - I just thought this was so modder-specific it should start here rather than hit the huge list of requests right away!)

CuvAndreaColomboWilliam_ImmElectricMonkmlneveseniklasAynataAldarkLoReN_LKDiscoCatPaheejGrammarsaladGrieg

Comments

Sign In or Register to comment.