grogerson Posted October 23, 2007 Share Posted October 23, 2007 Heh. I had been ignoring the topic because I felt guilty since I haven't made any progress and assumed all of the posts were grogerson and Daul posting "how's it going? Is it done yet?" What a pleasant surprise. I still don't have much time ATM (and priority right now is de-suckifying the BG2FPGTU) but I can probably help sort out those remaining issues for ya. I'm planning on creating a single package out of the six I currently have tonight. Do you want me to send it to you to check when I've finished? As for Fields of the Dead, if it's WeiDU I'd expect it to be compatible since all I've done is take Cam's own work. I'm no programmer, but I can still read and compare... Link to comment
grogerson Posted October 24, 2007 Share Posted October 24, 2007 I've completed the single package tweak pack, and there are no install stopping bugs. I'm testing the components now. For simplicity, I'll place the list here and update it as the results come in. Any problems encountered I'll post below. BG1 . TotSC Component Cosmentic Changes Y . . _ . . Remove Helmet Animations * N . . _ . . Avatar Morphing Script @ Y . . _ . . Weapon Animation Tweaks * Y . . _ . . Icewind Dale Casting Graphics @ Y . . _ . . Disable Portrait Icons Added by Equipped Items * N . . _ . . Commoners Use Drab Colors @ Y . . _ . . Icon Improvements @ N . . _ . . Change Avatar When Wearing Robes or Armor @ Y . . _ . . Force All Dialogue to Pause * Content Changes Y . . _ . . Make Cloakwood Areas Available Before Completing the Bandit Camp @ N . . _ . . Improved Multi-Player Kick-Out Dialogs @ N . . _ . . Reveal City Maps @ Y . . _ . . Stores Sell Larger Stacks of Items * Y . . _ . . Gems and Potions Require Identification * Rule Changes N . . _ . . Two-Handed Bastard Swords @ N . . _ . . Universal Clubs * N . . _ . . Description Updates for Universal Clubs Component * Y . . _ . . Change Experience Point Cap @ Y . . _ . . Allow Stealth and Thieving Abilities in Heavy Armor per P&P * Y . . _ . . Allow Arcane Spellcasting in Armor * Y . . _ . . Wear Multiple Protection Items * N . . _ . . Cast Spells from Scrolls (and Other Items) at Character Level @ N . . _ . . Shopkeepers Have Limited Identification Ability @ Y . . _ . . Multi-Class Grand Mastery * Y . . _ . . Baldur's Gate II Grand Mastery * Y . . _ . . Change Magically Created Weapons to Zero Weight * N . . _ . . Make +x/+y Weapons Consistent @ N . . _ . . Description Updates for Make +x/+y Weapons Consistent @ Y . . _ . . Un-Nerfed THAC0 Table * Y . . _ . . Alter Mage Spell Progression Table * Y . . _ . . Alter Bard Spell Progression Table * Y . . _ . . Alter Cleric Spell Progression Table * Y . . _ . . Druids Use Cleric Level and Spell Progression * (exceptions...) Y . . _ . . Bards, Paladins and Clerics Use IWD-HoW Spell Progression (new) Y . . _ . . Druids Use 3e Alignment Restrictions * N . . _ . . Loosen Item Restrictions for Multi- and Dual-Class Clerics and Druids * Y . . _ . . Add Save Penalties for Spells Cast by High-Level Casters * Convenience Tweaks and/or Cheats Y . . _ . . Higher HP on Level Up * Y . . _ . . Maximum HP Creatures * N . . _ . . Identify All Items * Y . . _ . . Easy Spell Learning * Y . . _ . . Shut Up “You must gather your party...†@ Y . . _ . . Change Effect of Reputation on Store Prices * Y . . _ . . Unlimited Ammo Stacks * Y . . _ . . Unlimited Jewelry and Gem Stacks * Y . . _ . . Unlimited Potion Stacks * Y . . _ . . Unlimited Scroll Stacks * Y . . _ . . Happy Patch @ Y . . _ . . Neutral Characters Make Happy Comments at Mid-Range Reputation @ Y . . _ . . No Traps or Locks @ Y . . _ . . Rest Anywhere * Y . . _ . . Sellable Items * Y . . _ . . Minimum Stats Cheat * Joinable NPC Tweaks Y . . _ . . Adjust Evil Joinable NPC Reactions @ Y . . _ . . Give Edwin His BG2 Stats @ Y . . _ . . Give Jaheira Her BG2 Stats @ Y . . _ . . Change Jaheira to Neutral Good Alignment @ Y . . _ . . Give Minsc His BG2 Stats @ Y . . _ . . Give Viconia Her BG2 Stats @ N . . _ . . Make Khalid a Fighter-Mage @ Y . . _ . . Give Kagain a Legal Constitution Score of 19 @ @ - from BG2 Tweaks * - from IWD1 Tweaks Cam, I'll send you my work tonight via e-mail, with a list of problems encountered. Since you've not had the time to do one, consider me your secretarial assistant on this. You're the programmer, I'm just the compiler... Currently I have two components that won't install, one that crashes the game, and three that, though they install, don't do anything... Link to comment
grogerson Posted October 25, 2007 Share Posted October 25, 2007 I have encountered the following problems with the tweaks I've tried. Install Component [Avatar Morphing Script]?nstall, or [N]ot Install or [Q]uit? Installing [Avatar Morphing Script] Compiling 1 dialogue file and 2 scripts ... [bG1Tweaks/languages/english/ikmorph.TRA] has 61 translation strings BIFF may be in hard-drive CD-path [O:\CD5\/DATA/DEFAULT.BIF] BIFF may be in hard-drive CD-path [O:\CD4\/DATA/DEFAULT.BIF] BIFF may be in hard-drive CD-path [O:\CD3\/DATA/DEFAULT.BIF] BIFF may be in hard-drive CD-path [O:\CD2\/DATA/DEFAULT.BIF] BIFF may be in hard-drive CD-path [O:\CD1\/DATA/DEFAULT.BIF] BIFF may be in hard-drive CD-path [f:\black isle\bg1 testing\/DATA/DEFAULT.BIF] [f:\black isle\bg1 testing\/DATA/DEFAULT.BIF] 430794 bytes, 152 files, 0 tilesets [bG1Tweaks/baf/ikmorph.baf] PARSE ERROR at line 5 column 46-46 Near Text: ) [startDialogueNoSet] not found in ACTION.IDS [bG1Tweaks/baf/ikmorph.baf] ERROR at line 5 column 46-46 Near Text: ) Parsing.Parse_error ERROR: parsing [bG1Tweaks/baf/ikmorph.baf]: Parsing.Parse_error ERROR: error compiling [bG1Tweaks/baf/ikmorph.baf]: Parsing.Parse_error ERROR: compiling [bG1Tweaks/baf/ikmorph.baf]! Stopping installation because of error. ERROR Installing [Avatar Morphing Script], rolling back to previous state [bG1Tweaks/backup/20/UNSETSTR.20] SET_STRING uninstall info not found Will uninstall 0 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 20. Unable to Unlink [bG1Tweaks/backup/20/MAPPINGS.20]: Unix.Unix_error(1, unlink", "BG1Tweaks/backup/20/MAPPINGS.20") Uninstalled 0 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 20. ... ERROR: Parsing.Parse_error PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.net Using Language [English] [English] has 2 top-level TRA files [bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings [bG1Tweaks/languages/english/setup.tra] has 115 translation strings =================================================== Install Component [Commoners Use Drab Colors]?nstall, or [N]ot Install or [Q]uit? Installing [Commoners Use Drab Colors] Copying 1 file ... Copied [sw1h01.itm] to [override/cdb00060.g3] Copying and patching 1 file ... ERROR locating resource for 'COPY' Resource [randcolr.2da] not found in KEY file: [./chitin.key] Stopping installation because of error. ERROR Installing [Commoners Use Drab Colors], rolling back to previous state [bG1Tweaks/backup/60/UNSETSTR.60] SET_STRING uninstall info not found Will uninstall 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 60. Unable to Unlink [bG1Tweaks/backup/60/MAPPINGS.60]: Unix.Unix_error(1, unlink", "BG1Tweaks/backup/60/MAPPINGS.60") Uninstalled 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 60. ... ERROR: Failure("resource [randcolr.2da] not found for 'COPY'") PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.net Using Language [English] [English] has 2 top-level TRA files [bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings [bG1Tweaks/languages/english/setup.tra] has 115 translation strings =================================================== Change Avatar when Wearing Robes or Armor (Galactygon) Installed, but crashed to desktop when entering a game with the following message: "An Assertion failed in d:\Dev\Baldur\CGameEffect.ccp at line 808" =================================================== Multi-Player Kick-Out Dialogue Installed, but does not work. =================================================== Reveal City Maps Installed, but does not work. =================================================== Make Khalid a Fighter-Mage Installed, but does not work. =================================================== Two Handed Bastard Swords Installed, but does not work. =================================================== Universal clubs Installed, but does not work. =================================================== Install Component [Description Updates for Universal Clubs Component]?nstall, or [N]ot Install or [Q]uit? Installing [Description Updates for Universal Clubs Component] Copying 1 file ... [./override/sw1h01.itm] loaded, 41 8 bytesCopied [sw1h01.itm] to [override/cdb02021.g3]loading 1 tra file[bG1Tweaks/languages/english/description_updates.tra] has 12 translation stringsCopying and patching 1 file ...ERROR: illegal 4-byte write (The Root of the ProblemClub +1, +3 vs. unnatural creaturesThis enchanted club is said to have existed since the time of the fall of Netheril and the birth of the great Anauroch Desert. While the toll on civilization was great, the true victims were nature's creatures, condemned to stand and watch as their homes decayed and died. As habitats receded, those that remained were invaded by displaced hordes of creatures, the more impatient of which marched on unspoiled land taking whatever they wished. This particular weapon is said to have come from a dryad's tree, a final gift to nature's cause from a woodland spirit that could not hold back the invaders of her land. Hers was a bittersweet pain, as her wood might not have suffered so if it had not been so strong and lush. Less respecting scholars have since bestowed the item's ironic name, though the humor is not appreciated among nature's more devout followers. STATISTICS: THAC0: +1, +3 vs. unnatural creaturesDamage: 1D6 +1, +3 vs. unnatural creatures, +1 acid damageDamage type: crushing and acidWeight: 3Speed Factor: 3Proficiency Type: ClubType: 1-handedRequires: 5 Strength) offset 84 of 0-byte file blun10.itmERROR: [blun10.itm] -> [override] Patching Failed (COPY) (Failure("blun10.itm: write out of bounds"))Stopping installation because of error. ERROR Installing [Description Updates for Universal Clubs Component], rolling back to previous stateWill uninstall 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2021.Unable to Unlink [bG1Tweaks/backup/2021/MAPPINGS.2021]: Unix.Unix_error(1, "unlink", "BG1Tweaks/backup/2021/MAPPINGS.2021")Uninstalled 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2021....ERROR: Failure("blun10.itm: write out of bounds")PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.netUsing Language [English][English] has 2 top-level TRA files[bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings[bG1Tweaks/languages/english/setup.tra] has 115 translation strings[/size]===================================================Allow Stealth and Thieving Abilities in Heavy Armor Shadow armor (leat08.itm) is receiving penalties it shouldn't. Mithril Chain Mail +4 (chan06.itm) should also probably be checked. Also, if a penalty takes an ability below zero, it loops (i.e. 25-30=251 pickpocket...).===================================================Allow Arcane Spellcasting in Armor Installed, description updated, but does not allow armor to be worn.===================================================Cast Spells from Scrolls (and Other Items) at Character Level Installed, but does not work. Link to comment
cmorgan Posted October 25, 2007 Share Posted October 25, 2007 I can help on a few: ERROR locating resource for 'COPY' Resource [randcolr.2da] not found in KEY file: [./chitin.key] NI shows BG does not have that .2da at all; devSin/Echon ey al will need to tell you if there is a corresponding .2da, but I could not find one. It looks like the commoner creatures dont randomize their colors, or if they do, it i through some other mechanism. The 198 StartDialogueNoSet(O:Object*) failing is strange; it exists in my BG install, but mine is the set with TOTSC; perhaps Dialogue() and Interact() are the only ones available for BG vanilla? I am not sure... the relevant file says IF True() THEN RESPONSE #100 StartDialogueNoSet(LastSummonerOf(Myself)) END so I dunno what is wrong... I bet Khalid is having toubles because of the .cre version. He is also using v2 effects, I think. Will research more, but probable fix for that is actually modifying his .cre directly from the BG install and dropping it in as the new version for the vanilla BG Tweaks version you are starting. Link to comment
grogerson Posted October 25, 2007 Share Posted October 25, 2007 Thanks for the response, cmorgan. Any input is helpful, even if this project is pre-alpha. The sixty tweaks are my "wish list" and I expect some just won't be workable in BG1, though I am surprises at some that are... ERROR locating resource for 'COPY'Resource [randcolr.2da] not found in KEY file: [./chitin.key] NI shows BG does not have that .2da at all; devSin/Echon ey al will need to tell you if there is a corresponding .2da, but I could not find one. It looks like the commoner creatures dont randomize their colors, or if they do, it i through some other mechanism. I also noticed the missing .2da. This tweak will probably be dropped because of that. The 198 StartDialogueNoSet(O:Object*) failing is strange; it exists in my BG install, but mine is the set with TOTSC; perhaps Dialogue() and Interact() are the only ones available for BG vanilla? I am not sure... the relevant file says StartDialogueNoSet was indeed added by TotSC, but even there this tweak failed to install. Some of my problems are due to missing action.2da operations that were added later, some from engine differences between BG1 and IWD/BG2... I bet Khalid is having toubles because of the .cre version. He is also using v2 effects, I think. Will research more, but probable fix for that is actually modifying his .cre directly from the BG install and dropping it in as the new version for the vanilla BG Tweaks version you are starting. Since this tweak was from BG2Tweaks, version may be the problem. Maybe I should look at Dudleyville's tweak. Of course, not being a programmer has its drawbacks. Well, I can at least test the list and find what actually works and give feedback on those that don't... Link to comment
Miloch Posted October 25, 2007 Share Posted October 25, 2007 NI shows BG does not have that .2da at all; devSin/Echon ey al will need to tell you if there is a corresponding .2da, but I could not find one. It looks like the commoner creatures dont randomize their colors, or if they do, it i through some other mechanism.I also noticed the missing .2da. This tweak will probably be dropped because of that.It wouldn't be too difficult to write a randomisation routine to do this, either via TP2 code or script. I'd offer to help write it, but I'm just a "dumb half-orc" (plus I'm kinda overburdened with the BG1 Fixpack and other mods at the moment). Link to comment
grogerson Posted October 25, 2007 Share Posted October 25, 2007 It wouldn't be too difficult to write a randomisation routine to do this, either via TP2 code or script. I'd offer to help write it, but I'm just a "dumb half-orc" (plus I'm kinda overburdened with the BG1 Fixpack and other mods at the moment). You're more than a few steps ahead of me. Taking this project on, I'm living up (down?) to "blithering idiot" (wonder what I'll break next). Link to comment
grogerson Posted October 26, 2007 Share Posted October 26, 2007 Change Experience Point Cap - this needs to include several other .2da files: backstab, hp***, layhands, mxspl***, save*** and thac0. They're all set to 20th level except for backstab and layhands, which are set to 25th level. =================================================== Wear Multiple Protection Items - I don't think the P&P version is working... =================================================== Shopkeepers Have Limited Identification Ability - installed, but does not work. =================================================== Make +x/+y Weapons Consistent - failed to install. Install Component [Make +x/+y Weapons Consistent]?nstall, or [N]ot Install or [Q]uit? Installing [Make +x/+y Weapons Consistent] Copying 1 file ... BIFF may be in hard-drive CD-path [O:\CD5\/DATA/ITEMS.BIF] BIFF may be in hard-drive CD-path [O:\CD4\/DATA/ITEMS.BIF] BIFF may be in hard-drive CD-path [O:\CD3\/DATA/ITEMS.BIF] BIFF may be in hard-drive CD-path [O:\CD2\/DATA/ITEMS.BIF] BIFF may be in hard-drive CD-path [O:\CD1\/DATA/ITEMS.BIF] BIFF may be in hard-drive CD-path [f:\black isle\bg1 testing\/DATA/ITEMS.BIF] [f:\black isle\bg1 testing\/DATA/ITEMS.BIF] 1486198 bytes, 1276 files, 0 tilesets Copied [sw1h01.itm] to [override/cdt02120.g3] Copying and patching 1 file ... ERROR: illegal 4-byte write ( ) offset 134 of 0-byte file hamm04.itm ERROR: [hamm04.itm] -> [override] Patching Failed (COPY) (Failure("hamm04.itm: write out of bounds")) Stopping installation because of error. ERROR Installing [Make +x/+y Weapons Consistent], rolling back to previous state [bG1Tweaks/backup/2120/UNSETSTR.2120] SET_STRING uninstall info not found Will uninstall 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2120. Unable to Unlink [bG1Tweaks/backup/2120/MAPPINGS.2120]: Unix.Unix_error(1, "unlink", "BG1Tweaks/backup/2120/MAPPINGS.2120") Uninstalled 1 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2120. ... ERROR: Failure("hamm04.itm: write out of bounds") PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.net Using Language [English] [English] has 2 top-level TRA files [bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings [bG1Tweaks/languages/english/setup.tra] has 115 translation strings Link to comment
plainab Posted October 26, 2007 Share Posted October 26, 2007 I know you're trying to get bg2 tweaks working on bg1. I just wanted to share with you my own little tweak pack designed to work with bg1 and the other ie games. You may wish to use some of them. Just give me credit for my hardwork on it... plainab's tweak pack It's located at teambg.eu, you don't need to be registered to download it though. Link to comment
grogerson Posted October 27, 2007 Share Posted October 27, 2007 Thanks, plainab. I'll check them out, and I certainly will if any are included. The following problems were found tonight: Druids Use Cleric Level and Spell Progression Installed, does not work (no change to xplevel.2da) ======================================================= Loosen Item Restrictions for Multi- and Dual-Class Clerics and Druids Install Component [Loosen Equipment Restrictions for Cleric and Druid Multi-Classes]? nstall, or [N]ot Install or [Q]uit? Installing [Loosen Equipment Restrictions for Cleric and Druid Multi-Classes] Copying 1 file ... Copied [sw1h01.itm] to [override/cdb02190.g3] Copying and patching 749 files ... ... ERROR: Cannot find 1 rows with at least 15 columns.ERROR: [clasweap.2da] -> [override] Patching Failed (COPY) (Failure("Cannot Read 2DA Entry")) Stopping installation because of error. ERROR Installing [Loosen Equipment Restrictions for Cleric and Druid Multi-Classes], rolling back to previous state [bG1Tweaks/backup/2190/UNSETSTR.2190] SET_STRING uninstall info not found Will uninstall 115 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2190. Restoring backed-up ... Unable to Unlink [bG1Tweaks/backup/2190/MAPPINGS.2190]: Unix.Unix_error(1, "unlink", "BG1Tweaks/backup/2190/MAPPINGS.2190") Uninstalled 115 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 2190. ... BG1TWEAKS/SETUP-BG1TWEAKS.TP2 0 2180 Installed ~Druids Use 3E Alignment Restrictions~ ERROR: Failure("Cannot Read 2DA Entry") PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.net Using Language [English] [English] has 2 top-level TRA files [bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings [bG1Tweaks/languages/english/setup.tra] has 115 translation strings ================================================================= Identify All Items Install Component [identify All Items]? nstall, or [N]ot Install or [Q]uit? Installing [identify All Items] Copying 1 file ... Copied [sw1h01.itm] to [override/cdb03020.g3] This step may take a few moments ... Copying and patching 749 files ... ... Copying and patching 1991 files ... ERROR: illegal 1-byte read from offset 327698 of 1284-byte file AASIM.CRE ERROR: [AASIM.CRE] -> [override/AASIM.CRE] Patching Failed (COPY) (Failure("AASIM.CRE: read out of bounds")) Stopping installation because of error. ERROR Installing [identify All Items], rolling back to previous state [bG1Tweaks/backup/3020/UNSETSTR.3020] SET_STRING uninstall info not found Will uninstall 185 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 3020. Restoring backed-up ... Unable to Unlink [bG1Tweaks/backup/3020/MAPPINGS.3020]: Unix.Unix_error(1, "unlink", "BG1Tweaks/backup/3020/MAPPINGS.3020") Uninstalled 185 files for [bG1TWEAKS/SETUP-BG1TWEAKS.TP2] component 3020. ... ERROR: Failure("AASIM.CRE: read out of bounds") PLEASE email the file SETUP-BG1TWEAKS.DEBUG to webmaster@gibberlings.net Using Language [English] [English] has 2 top-level TRA files [bG1Tweaks/languages/english/description_updates.tra] has 12 translation strings [bG1Tweaks/languages/english/setup.tra] has 115 translation strings Link to comment
grogerson Posted October 29, 2007 Share Posted October 29, 2007 I've finished checking installation and function of the tweaks for basic BG1, with seventeen tweaks not working. Two I have no way of knowing for certain if they work (Add Save Penalties for Spells Cast by High Level Casters and Adjust Evil Joinable NPC Reactions) and one that should be thoroughly tested (No Traps or Locks) but looks good in Candlekeep and Nashkel. Now comes the hard part, fixing those components that don't work... Link to comment
plainab Posted November 1, 2007 Share Posted November 1, 2007 Now comes the hard part, fixing those components that don't work... I don't think that you'll be able to fix a lot of those components to work with bg1. Bg2 has a bunch more effects available as well as the usage of the eff files. Anything with effects above those capable by bg1 (see dltcep for a listing of these) or using eff files is a definite no go and shouldn't even be attempted as you'll never get anything to come close to what it does for bg2... But that's my two cents worth..... Got something for you to add. I asked for it in the fixpack workroom. Ascension64 created the code, I packaged it into a working tp2 and then we decided that it was a tweak rather than a fix. So here is the "restoration of the Friendly Arm Inn hidden container." // ---------------------------------------------------------------------------- // Name: BG1Tweaks // Author: A collaboration of persons yet to be named // Date: A work in progress. // Version: 0.00000001 // ---------------------------------------------------------------------------- BACKUP ~BG1Tweaks/backup~ AUTHOR ~~ // ------------------------------------------------------------------------------------------------------------------------ //macro code ////////////////////////////////////////////////////////////////////////////////////////////////// //PATCH_MACRO are_update_offset //for addition of extended headers, this macro updates offsets of all extended headers that occur later than the extended header modified, then updates offsets stored in the variables ////////////////////////////////////////////////////////////////////////////////////////////////// //Variables that need to be defined: // -are_update_offset_increment // -are_update_offset_datatype (can be actor, info, spawn, entrance, container, item, vertex, ambient, variable, door, explored, anim, tiled, song, rest, automap) ////////////////////////////////////////////////////////////////////////////////////////////////// //Other requirements: // -all types of %are_update_offset_datatype%_off must have been read // -the specified %are_update_offset_datatype%_num must have been read ////////////////////////////////////////////////////////////////////////////////////////////////// DEFINE_PATCH_MACRO ~are_update_offset~ BEGIN SPRINT are_update_offset_datatype_off "%are_update_offset_datatype%_off" SPRINT are_update_offset_datatype_num "%are_update_offset_datatype%_num" PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "actor")=0)) AND (("%actor_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%actor_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x54 ("%actor_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "info")=0)) AND (("%info_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%info_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x5c ("%info_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "spawn")=0)) AND (("%spawn_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%spawn_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x60 ("%spawn_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "entrance")=0)) AND (("%entrance_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%entrance_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x68 ("%entrance_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "container")=0)) AND (("%container_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%container_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x70 ("%container_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "item")=0)) AND (("%item_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%item_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x78 ("%item_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "vertex")=0)) AND (("%vertex_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%vertex_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x7c ("%vertex_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "ambient")=0)) AND (("%ambient_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%ambient_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x84 ("%ambient_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "variable")=0)) AND (("%variable_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%variable_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0x88 ("%variable_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "door")=0)) AND (("%door_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%door_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xa8 ("%door_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "explored")=0)) AND (("%explored_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%explored_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xa0 ("%explored_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "anim")=0)) AND (("%anim_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%anim_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xb0 ("%anim_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "tiled")=0)) AND (("%tiled_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%tiled_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xb8 ("%tiled_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "song")=0)) AND (("%song_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%song_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xbc ("%song_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "rest")=0)) AND (("%rest_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%rest_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xc0 ("%rest_off%" + "%are_update_offset_increment%") END PATCH_IF (NOT (("%are_update_offset_datatype%" STRING_COMPARE_CASE "automap")=0)) AND (("%automap_off%" > EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") OR (("%automap_off%" = EVALUATE_BUFFER "%%are_update_offset_datatype_off%%") AND (EVALUATE_BUFFER "%%are_update_offset_datatype_num%%" = 0))) BEGIN WRITE_LONG 0xc4 ("%automap_off%" + "%are_update_offset_increment%") END READ_LONG 0x54 actor_off READ_LONG 0x5c info_off READ_LONG 0x60 spawn_off READ_LONG 0x68 entrance_off READ_LONG 0x70 container_off READ_LONG 0x78 item_off READ_LONG 0x7c vertex_off READ_LONG 0x84 ambient_off READ_LONG 0x88 variable_off READ_LONG 0xa8 door_off READ_LONG 0xa0 explored_off READ_LONG 0xb0 anim_off READ_LONG 0xb8 tiled_off READ_LONG 0xbc song_off READ_LONG 0xc0 rest_off READ_LONG 0xc4 automap_off END // ---------------------------------------------------------------------------------------------- ASK_EVERY_COMPONENT LANGUAGE ~English~ ~English~ ~BG1Tweaks/Languages/English/setup.tra~ ////////////////////////////////////////////////////////////////////////////////////////////////// //!--------------------------------------------- // Friendly Arm Inn Hidden Container Restoration //!--------------------------------------------- BEGIN @100 /*~BG1Tweaks: Friendly Arm Inn Hidden Container Restoration~*/ PRINT @1 /*~Please be patient. This may take a few moments.~*/ COPY_EXISTING ~AR2300.ARE~ ~override/AR2300.ARE~ SET container_exists = 0 READ_LONG 0x54 actor_off READ_LONG 0x5c info_off READ_LONG 0x60 spawn_off READ_LONG 0x68 entrance_off READ_LONG 0x70 container_off READ_LONG 0x78 item_off READ_LONG 0x7c vertex_off READ_LONG 0x84 ambient_off READ_LONG 0x88 variable_off READ_LONG 0xa8 door_off READ_LONG 0xa0 explored_off READ_LONG 0xb0 anim_off READ_LONG 0xb8 tiled_off READ_LONG 0xbc song_off READ_LONG 0xc0 rest_off READ_LONG 0xc4 automap_off READ_SHORT 0x74 container_num FOR (i = 0; i < "%container_num%"; i += 1) BEGIN READ_ASCII ("%container_off%" + "%i%" * 0xc0) container_name (12) PATCH_IF (("%container_name%" STRING_CONTAINS_REGEXP "Container 1[^0-9]") = 0) BEGIN SET container_exists = 1 END END PATCH_IF ("%container_exists%" != 1) BEGIN //add a container INSERT_BYTES "%container_off%" 0xc0 WRITE_ASCII "%container_off%" ~Container 1~ //Name WRITE_SHORT ("%container_off%" + 0x20) 2527 //locX WRITE_SHORT ("%container_off%" + 0x22) 3781 //locY WRITE_SHORT ("%container_off%" + 0x24) 1 //Type WRITE_SHORT ("%container_off%" + 0x26) 100 //Lock difficulty WRITE_SHORT ("%container_off%" + 0x2e) 100 //Trap removal difficulty WRITE_SHORT ("%container_off%" + 0x34) 2528 //Trap locX WRITE_SHORT ("%container_off%" + 0x36) 3775 //Trap locY WRITE_SHORT ("%container_off%" + 0x38) 2551 //Bound left WRITE_SHORT ("%container_off%" + 0x3a) 3757 //Bound top WRITE_SHORT ("%container_off%" + 0x3c) 2555 //Bound right WRITE_SHORT ("%container_off%" + 0x3e) 3762 //Bound bottom //update offsets and number of containers SET are_update_offset_increment = 0xc0 SPRINT are_update_offset_datatype ~container~ LAUNCH_PATCH_MACRO ~are_update_offset~ WRITE_SHORT 0x74 ("%container_num%" + 1) //determine where to insert vertices READ_SHORT 0x5a info_num PATCH_IF ("%info_num%" != 0) BEGIN READ_SHORT ("%info_off%" + ("%info_num%" - 1) * 0xc4 + 0x3a) info_vertex_num READ_LONG ("%info_off%" + ("%info_num%" - 1) * 0xc4 + 0x3c) info_vertex_idx SET insert_idx = "%info_vertex_num%" + "%info_vertex_idx%" END ELSE BEGIN SET insert_idx = 0 END //insert vertices READ_SHORT 0x80 vertex_num SET vertex_new_num = 5 INSERT_BYTES ("%vertex_off%" + "%insert_idx%" * 0x4) ("%vertex_new_num%" * 0x4) WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4) 2552 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x2) 3757 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x4) 2555 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x6) 3757 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x8) 2555 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0xa) 3759 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0xc) 2553 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0xe) 3762 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x10) 2551 WRITE_SHORT ("%vertex_off%" + "%insert_idx%" * 0x4 + 0x12) 3759 //update offsets and number of vertices SET are_update_offset_increment = 0x4 SPRINT are_update_offset_datatype ~vertex~ LAUNCH_PATCH_MACRO ~are_update_offset~ LAUNCH_PATCH_MACRO ~are_update_offset~ LAUNCH_PATCH_MACRO ~are_update_offset~ LAUNCH_PATCH_MACRO ~are_update_offset~ LAUNCH_PATCH_MACRO ~are_update_offset~ WRITE_SHORT 0x80 ("%vertex_num%" + "%vertex_new_num%") //update vertex information for new container WRITE_LONG ("%container_off%" + 0x50) "%insert_idx%" //first vertex idx WRITE_LONG ("%container_off%" + 0x54) "%vertex_new_num%" //number of vertices //update vertex indices for info points READ_SHORT 0x5a info_num FOR (i= 0; i < "%info_num%"; i += 1) BEGIN READ_SHORT ("%info_off%" + "%i%" * 0xc4 + 0x2c) info_vertex_first_idx PATCH_IF ("%info_vertex_first_idx%" >= "%insert_idx%") BEGIN WRITE_SHORT ("%info_off%" + "%i%"*0xc4 + 0x2c) ("%info_vertex_first_idx%" + "%vertex_new_num%") END END //update vertex indices for other containers READ_SHORT 0x74 container_num FOR (i = 1; i< "%container_num%"; i += 1) BEGIN READ_LONG ("%container_off%" + "%i%" * 0xc0 + 0x50) container_vertex_first_idx PATCH_IF ("%container_vertex_first_idx%" >= "%insert_idx%") BEGIN WRITE_LONG ("%container_off%" + "%i%" * 0xc0 + 0x50) ("%container_vertex_first_idx%" + "%vertex_new_num%") END END //update vertex indices for doors READ_SHORT 0xa4 door_num FOR (i = 0; i < "%door_num%"; i += 1) BEGIN READ_LONG ("%door_off%" + "%i%" * 0xc8 + 0x2c) door_vertex_open_first_idx PATCH_IF ("%door_vertex_open_first_idx%" >= "%insert_idx%") BEGIN WRITE_LONG ("%door_off%" + "%i%" * 0xc8 + 0x2c) ("%door_vertex_open_first_idx%" + "%vertex_new_num%") END READ_LONG ("%door_off%" + "%i%" * 0xc8 + 0x34) door_vertex_closed_first_idx PATCH_IF ("%door_vertex_closed_first_idx%" >= "%insert_idx%") BEGIN WRITE_LONG ("%door_off%" + "%i%" * 0xc8 + 0x34) ("%door_vertex_closed_first_idx%" + "%vertex_new_num%") END READ_LONG ("%door_off%" + "%i%" * 0xc8 + 0x48) door_vertex_impede_closed_first_idx PATCH_IF ("%door_vertex_impede_closed_first_idx%" >= "%insert_idx%") BEGIN WRITE_LONG ("%door_off%" + "%i%" * 0xc8 + 0x48) ("%door_vertex_impede_closed_first_idx%" + "%vertex_new_num%") END READ_LONG ("%door_off%" + "%i%" * 0xc8 + 0x50) door_vertex_impede_open_first_idx PATCH_IF ("%door_vertex_impede_open_first_idx%" >= "%insert_idx%") BEGIN WRITE_LONG ("%door_off%" + "%i%" * 0xc8 + 0x50) ("%door_vertex_impede_open_first_idx%" + "%vertex_new_num%") END END //add an item READ_SHORT 0x76 item_num INSERT_BYTES "%item_off%" 0x14 WRITE_ASCII "%item_off%" ~RING08~ //update offsets and number of items SET are_update_offset_increment = 0x14 SPRINT are_update_offset_datatype ~item~ LAUNCH_PATCH_MACRO ~are_update_offset~ WRITE_SHORT 0x76 ("%item_num%" + 1) //update item information for new container WRITE_LONG ("%container_off%" + 0x40) 0 //first item idx WRITE_LONG ("%container_off%" + 0x44) 1 //number of items //update item indices for other containers READ_SHORT 0x74 container_num FOR (i = 1; i< "%container_num%"; i += 1) BEGIN READ_LONG ("%container_off%" + "%i%" * 0xc0 + 0x40) container_item_first_idx WRITE_LONG ("%container_off%" + "%i%" * 0xc0 + 0x40) ("%container_item_first_idx%" + 1) END END BUT_ONLY_IF_IT_CHANGES // ---------------------------------------------------------------------------- // EOF Link to comment
Miloch Posted November 2, 2007 Share Posted November 2, 2007 Thought Ascension64 was going to add this to BG1UB (it's a "restoration" as opposed to a fix or a tweak...). Also, it should be auto-skipped on installs that have TotSC, as it's already there. I think it's possible to get most of the tweaks working, you just might have to code some ugly workarounds for some. Some might not even be that ugly... they'll just have different references in BG1 than in Tutu/BG2. One which is really, *really* ugly (uglier than a half-orc/drow with a pumpkin on his head) is the implementation of Bags of Holding for BG1. It's possible... BG1 Ease of Use had it, and I made a WeiDU version for Lost Items but believe me... it's ugly. In theory, it should work though (I haven't, of course, tested it... that might reveal bugs...). Link to comment
grogerson Posted November 2, 2007 Share Posted November 2, 2007 Thanks, plainab and Miloch. This container - is it the "missing" easter egg outside FAI? That would explain the need for autoskip with TotSC (simple enough to check for AR1500)... As for the components I'm having trouble with, several I've considered dropping because of limited functionality - even if I were able to get them working. I'm doing what I can, but I'm no programmer and the only programming experience I had was at the University over (mumble) years ago... Creating some of those work-arounds is well beyond my meager abilities, and will have to wait for someone better skilled than I. Components I want to keep are Multi-Player Kick-Out Dialogues, Reveal City Maps, Universal Clubs, Allow Arcane Spellcasting in Armor, Make +x/+y Weapons Consistent, Loosen Item Restrictions for Multi- and Dual-Class Clerics and Druids, Identify All Items and Make Khalid a Fighter-Mage. Commoners Use Drab Colors and Change Avatar When Wearing Robes or Armor are nice, but... Components I'm considering dropping are Avatar Morphing Script, Two-Handed Bastard Swords, Cast Spells from Scrolls at Character Level and Shopkeepers Have Limited Identification Ability. Bards, Paladins and Rangers Use Icewind Dale-Heart of Winter Spell Tables is a new component I've added. I've also revised the Change Experience Point Cap component to install the BG2 tables since the BG1 tables only go to level 20. This has resulted in two new problems - Druids Use Cleric Level and Spell Progression only works with Change Experience Point Cap (Remove Completely), and the layhands.2da doesn't increment above level 40. Miloch, where can I find Lost Items? With your permission, I'd like to try incorporating it. I can also test it for you... Link to comment
Miloch Posted November 2, 2007 Share Posted November 2, 2007 Thanks, plainab and Miloch. This container - is it the "missing" easter egg outside FAI?Yes.I've also revised the Change Experience Point Cap component to install the BG2 tables since the BG1 tables only go to level 20. BG1 Ease of Use had this too - might want to check how it did it. Isn't WeiDU, but might not need to be (even the BG2 Tweak Pack just copies the table over, doesn't patch it).Miloch, where can I find Lost Items? With your permission, I'd like to try incorporating it. I can also test it for you...The last version (v2) is on SHS. It's only for Tutu/BGT though. I'm rebuilding a version that includes BG1 support (which is part of what has made the revision so difficult) - right now, that's only on my computer in pre-alpha form. I'll be sure to let you know when it's ready for testing though. You might want to check the "Exotic Items" component of the Tweak Pack too, which does something similar for Tutu (and could thus be ported to BG1). You'd still have to copy/convert BG2 resources and still have to deal with Bags of Holding (I'll be happy to contribute that code, if and when I get it working). Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.