temnix Posted February 9, 2020 Share Posted February 9, 2020 These game versions gave different designations to areas, right? According to the Baldur's Gate Wiki, what is area AR2100 for other versions of BG, is FW2100 in Tutu and AR8800 in BGT. My question is, do those versions carry over unfilled area script references from the original game? I mean that in BG, including the Enhanced Edition, areas have their area names prefilled for their area script slots, even if there no such scripts actually. For example, area AR0126, where nothing important happens, doesn't have a script, but its area script field reads by default with "AR0126." A modder can create the script for the area without checks and special insert actions just by writing something and compiling the BAF under AR0126. It will be there and working. This is very convenient, but it makes more sense to extend the script instead of compiling a brand-new BAF under that name, because that would overwrite any other scripts with that name, whether ones that come shipped with the game or from other mods. Instead one can write: ACTION_IF ...some kind of game check... THEN BEGIN EXTEND_TOP ~AR0126.BCS~ ~Your Mod/Your Scripts/AR0126.BAF~ END You don't compile the BAF but only take the information from there and put it on top of the name; if no AR0126.BCS exists, the BAF will become that file. This way a modder can be assured of compatibility, he just needs to remember to end his code with Continue() for the possible blocks below. Now, this is probably not news, but I'm coming around to my question about these alternative versions, Tutu and BGT. What do they have by default in area script fields? Their new designations? Or did the people who created them clean out the references? This makes a good deal of difference for my patching, if I want my stuff to work in those alternatives. If I must read the area scripts first everywhere, that's extra uncreative headache for me. I also have to ask if the area codes are traditional in EE Trilogy and everywhere else? Quote Link to comment
Jarno Mikkola Posted February 10, 2020 Share Posted February 10, 2020 You don't want to associate with the "Original BGT", it's at least 13 years old mark3 patched, but still lates was uploaded in 2006... you want to do business with the BGT-weidu that actually allocated the areas with their script files. Or so the readme told me, when I read it in 2010+. Also the file name can be included from a library file. EET has it's own, as do BGT(-weidu) and Tutu... you need a tutorial for that. Quote Link to comment
temnix Posted February 10, 2020 Author Share Posted February 10, 2020 (edited) Can I get a sensible answer here? From someone who is not him. And what area codes does the EE Trilogy use? Edited February 10, 2020 by temnix Quote Link to comment
Lauriel Posted February 10, 2020 Share Posted February 10, 2020 (edited) I'm probably not understanding the question because I know you know more than I do about this, but I just check for existence (empty files read as not there). If there, extend, if not, compile a new one. Like: ACTION_IF FILE_EXISTS ~BG0146.BCS~ THEN BEGIN COPY_EXISTING ~BG0146.BCS~ ~override~ DECOMPILE_AND_PATCH BEGIN APPEND_FILE TEXT ~transitions/scripts/BG0146.baf~ END BUT_ONLY_IF_IT_CHANGES END ELSE BEGIN COMPILE EVALUATE_BUFFER ~transitions/scripts/BG0146.baf~ END EDIT: or more fitting your extend-top thingie ACTION_IF FILE_EXISTS ~BG0146.BCS~ THEN BEGIN EXTEND_TOP ~BG0146.BCS~ ~transitions/scripts/BG0146.baf~ END ELSE BEGIN COMPILE EVALUATE_BUFFER ~transitions/scripts/BG0146.baf~ END But I'm sure you know that...and I just missed the point of your question. Edited February 10, 2020 by Lauriel Quote Link to comment
Lauriel Posted February 10, 2020 Share Posted February 10, 2020 (edited) EET uses BD for SOD areas, BG for BG1 areas, and leaves AR areas as is for BG2 Edited February 10, 2020 by Lauriel Quote Link to comment
Lauriel Posted February 10, 2020 Share Posted February 10, 2020 (edited) Huh - I'm gonna macro that... (the IF_EXISTS malarkey) Edited February 10, 2020 by Lauriel Quote Link to comment
temnix Posted February 10, 2020 Author Share Posted February 10, 2020 2 hours ago, Lauriel said: EET uses BD for SOD areas, BG for BG1 areas, and leaves AR areas as is for BG2 That's what I wanted to know. Thanks. I have dug up the info already, but still. Your code misses the mark because you start off with FILE_EXISTS. But lots of areas don't have the BCS files for them, only references to where the files should be. Look at an area in Near Infinity. If the scripts really exist, the EXTEND_TOP adds to them, if not, the content of the BAF becomes the file. Quote Link to comment
Lauriel Posted February 10, 2020 Share Posted February 10, 2020 I made my macro anyway - because I often have multiples for the same area and keep them all in the same folder so have them under different name. My macro now handles that, but that's off-topic and I'll shut up now. Quote Link to comment
Lauriel Posted February 10, 2020 Share Posted February 10, 2020 (edited) Oh and I don't know if this is exclusive to EET, but there are a lot of empty area script files in there. The FILE_EXISTS will return true false in this case as well. Just an FYI - I spent an entire day trying to figure out why I was getting an error when it was due to an empty file that existed in override. EDIT: It existed but the functions to add to it would fail because it was empty. They need to be treated as if they didn't exist, is what I'm trying to say. EDIT: I mean the FILE_EXISTS will return FALSE! not true Edited February 10, 2020 by Lauriel Quote Link to comment
Jarno Mikkola Posted February 11, 2020 Share Posted February 11, 2020 (edited) Here's the base tutorial about how to associate area files using a variable... later the lib libraries were added, to get that contacts via simple INCLUDE ~~ , and even later they were enlargened. See it says to be for Tutu, BGT and beyond. Edited February 11, 2020 by Jarno Mikkola Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.