Jump to content

How do you find out which mod added something?


lac

Recommended Posts

I am playing a BG Tutu game. When you kill Daevorn in the Cloakwood mines, he drops a

bag of holding. I am fine with that idea, but it is the wrong bag of holding. Instead of being

an empty one, it is one of the ToB full ones, stuffed with magic items suitable for a char

that had completed SoA. The weapons are completely overpowered for BG1. How do I find

out whose mod is adding the item so I can suggest that they add a plain bag of holding instead?

 

Laura

Link to comment
You didn't say what mods you have installed.

 

You can always open the TP2 with Notepad or Wordpad, do a search for a Bag of Holding and find it that way.

 

I have tons of them installed. But whatever one has done this should mention bag of

holding in the tp2? Or, since this is loot that is on a particular corpse -- Daeveron -- in do I have to look for whoever is modifying this creature? If so, how do I recognise Daeveron in a tp file?

 

Laura

 

weidu log here

 

// Log of Currently Installed WeiDU Mods

// The top of the file is the 'oldest' mod

// ~TP2_File~ #language_number #component_number // [subcomponent Name -> ] Component Name [ : Version]

~SETUP-TUTUFIX.TP2~ #0 #2 // Restored BG1 Loadscreens

~SETUP-TUTUFIX.TP2~ #0 #3 // BG2 Ammo Stacks

~SETUP-TUTUFIX.TP2~ #0 #4 // Totemic Druid Spirit Summons are Balanced

~SETUP-TUTUFIX.TP2~ #0 #5 // BG1 Summoning Spells

~SONG_AND_SILENCE/SETUP-SONG_AND_SILENCE.TP2~ #0 #1 // Add new bardic store and thief items: v3

~SETUP-LOSTITEMS.TP2~ #0 #0 // Lost Items

~BGQE/SETUP-BGQE.TP2~ #0 #0 // Baldur's Gate Mini-Quests and Encounters Mod: 3

~SETUP-TGC1E.TP2~ #0 #0 // The Grey Clan Episode One: In Candlelight, BG1TUTU edition v1.10 -> Normal edition

~SETUP-SIRINESCALL.TP2~ #0 #0 // The Lure of the Sirine's Call: v8

~BG1UB/SETUP-BG1UB.TP2~ #0 #0 // Ice Island Level Two Restoration

~BG1UB/SETUP-BG1UB.TP2~ #0 #1 // The Mysterious Vial

~BG1UB/SETUP-BG1UB.TP2~ #0 #2 // Additional Elminster Encounter

~BG1UB/SETUP-BG1UB.TP2~ #0 #8 // Safana the Flirt

~BG1UB/SETUP-BG1UB.TP2~ #0 #9 // Appropriate Albert and Rufie Reward

~BG1UB/SETUP-BG1UB.TP2~ #0 #10 // Place Entar Silvershield in His Home

~BG1UB/SETUP-BG1UB.TP2~ #0 #11 // Scar and the Sashenstar's Daughter

~BG1UB/SETUP-BG1UB.TP2~ #0 #12 // Quoningar, the Cleric

~BG1UB/SETUP-BG1UB.TP2~ #0 #13 // Shilo Chen and the Ogre-Magi

~BG1UB/SETUP-BG1UB.TP2~ #0 #14 // Edie, the Merchant League Applicant

~BG1UB/SETUP-BG1UB.TP2~ #0 #15 // Flaming Fist Mercenary Reinforcements

~BG1UB/SETUP-BG1UB.TP2~ #0 #16 // Creature Corrections

~BG1UB/SETUP-BG1UB.TP2~ #0 #17 // Creature Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #18 // Creature Name Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #20 // Audio Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #21 // Store, Tavern and Inn Fixes and Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #22 // Item Corrections and Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #23 // Area Corrections and Restorations

~BG1UB/SETUP-BG1UB.TP2~ #0 #24 // Permanent Corpses

~BG1UB/SETUP-BG1UB.TP2~ #0 #25 // Elven Charm and Sleep Racial Resistance

~BG1UB/SETUP-BG1UB.TP2~ #0 #26 // The Original Saga Music Playlist Corrections

~BG1UB/SETUP-BG1UB.TP2~ #0 #27 // Sarevok's Diary Corrections

~BG1NPC.TP2~ #0 #0 // The BG1 NPC Project: Required Modifications: v16

~BG1NPC.TP2~ #0 #1 // The BG1 NPC Project: Banters, Quests, and Interjections: v16

~BG1NPC.TP2~ #0 #8 // The BG1 NPC Project: Add Non-Joinable NPC portraits to quests and dialogues: v16

~BG1NPC.TP2~ #0 #9 // The BG1 NPC Project: Ajantis Romance Core (teen content): v16

~BG1NPC.TP2~ #0 #10 // The BG1 NPC Project: Branwen's Romance Core (teen content): v16

~BG1NPC.TP2~ #0 #11 // The BG1 NPC Project: Coran's Romance Core (adult content): v16

~BG1NPC.TP2~ #0 #12 // The BG1 NPC Project: Dynaheir's Romance Core (teen content): v16

~BG1NPC.TP2~ #0 #13 // The BG1 NPC Project: Shar-Teel Relationship Core (adult content): v16

~BG1NPC.TP2~ #0 #14 // The BG1 NPC Project: Xan's Romance Core (teen content): v16

~BG1NPC.TP2~ #0 #15 // The BG1 NPC Project: Female Romance Challenges, Ajantis vs Xan vs Coran: v16

~BG1NPC.TP2~ #0 #16 // The BG1 NPC Project: NPCs can be sent to wait in an inn: v16

~BG1NPC.TP2~ #0 #18 // The BG1 NPC Project: Alora's Starting Location -> Alora Starts in Gullykin.: v16

~BG1NPC.TP2~ #0 #20 // The BG1 NPC Project: Eldoth's Starting Location -> Eldoth Starts on the Coast Way.: v16

~BG1NPC.TP2~ #0 #22 // The BG1 NPC Project: Quayle's Starting Location -> Quayle Starts at the Nashkel Carnival.: v16

~BG1NPC.TP2~ #0 #24 // The BG1 NPC Project: Tiax's Starting Location -> Tiax Starts in Beregost.: v16

~BG1NPC.TP2~ #0 #26 // The BG1 NPC Project: Make Shar-Teel Unkillable until In Party: v16

~BG1NPC.TP2~ #0 #27 // The BG1 NPC Project: Bardic Reputation Adjustment: v16

~BG1NPC.TP2~ #0 #29 // The BG1 NPC Project: Cloakwood areas availability in Chapter One -> Open four Cloakwood areas (everything but the Mines): v16

~BG1NPC.TP2~ #0 #30 // The BG1 NPC Project: Sarevok's Diary Adjustments -> SixofSpades Extended Sarevok's Diary: v16

~BG1NPC.TP2~ #0 #200 // The BG1 NPC Project: Player-Initiated Dialogues: v16

~BG1NPCMUSIC/BG1NPCMUSIC.TP2~ #0 #0 // The BG1 NPC Project Music Pack -> Install All Audio: v5

~XANBG2VOICE/SETUP-XANBG2VOICE.TP2~ #0 #0 // Xan's BG2 voice for BG1, v2

~XANBG1FRIEND/SETUP-XANBG1FRIEND.TP2~ #0 #0 // Xan's friendship path for BG1, v4

~CORANBGFRIEND/CORANBGFRIEND.TP2~ #0 #0 // Coran's Extended BG Friendship Talks, v1, October 20, 2007: v2

~AJANTISBG1/SETUP-AJANTISBG1.TP2~ #0 #0 // Installs Ajantis BG1 Expansion Modification: 1

~SETUP-FINCHNPCV3.TP2~ #0 #0 // Finch NPC for Tutu v3.0

~SETUP-INDINPC.TP2~ #0 #0 // Indira NPC for BG1Tutu

~MUR'NETH.TP2~ #0 #0 // The Mur'Neth NPC mod for Baldur's Gate Tutu or Baldur's Gate Trilogy-WeiDU

~MUR'NETH.TP2~ #0 #1 // Remove Rare selection sounds

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #0 // Install Longhaired Female Elven Mage Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #1 // Install Female Cleric and Druid Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #2 // Install Male Half-Orc Paperdoll

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #3 // Install Longhaired Female Human Fighter Avatars in Full Plate Armor

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #4 // Install Male Human Barbarian Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #5 // Install Male Human Mage Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #6 // Install Female Human Mage Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #7 // Install Ninja Avatars (replaces Male Monk)

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #8 // Install Ninja Avatars (replaces Female Monk)

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #9 // Install Female Human Rogue Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #10 // Install Male Vampire Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #11 // Install Female Vampire Avatars

~MOINESSEAVATARS/MOINESSEAVATARS.TP2~ #0 #12 // Use Male Vampire Avatars for Human Male Thieves

~1PP/1PP.TP2~ #0 #0 // 1PP: Everything but Potions

~1PP/1PP.TP2~ #0 #1 // New Potion Graphics

~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #0 // Plasmocat's BG1 NPC Portraits in BG2 Style: v2

~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #1 // Plasmocat's BG1 Imoen Portraits -> Plasmocat's BG1 NPC Choices: Imoen #1, BG2 (ruffles): v2

~PLASMOBG1BG2/PLASMOBG1BG2.TP2~ #0 #3 // Plasmocat's BG1 Xzar Portraits -> Plasmocat's BG1 NPC Choices: Xzar #1, BG2 (red): v2

~PICKS_OF_THE_LITTER/PICKS_OF_THE_LITTER.TP2~ #0 #0 // Plasmocat's Picks of the Litter Portrait Pack: v2

~IMPROVEDBAMS/IMPROVEDBAMS.TP2~ #0 #0 // Improved Inventory BAMs

~SETUP-LACSBGPORTRAITS.TP2~ #0 #0 // Lac's Customized Portraits for NPCs: v1

~SETUP-ESERIES.TP2~ #0 #0 // eSeries v1.8

~SETUP-GMINION.TP2~ #0 #0 // gMinion v1.8

~SETUP-OVERSIGHT.TP2~ #0 #7 // Holy Liberator

~SWORD_AND_FIST/SETUP-SWORD_AND_FIST.TP2~ #0 #1 // Monk Remix

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #0 // Divine Remix Core Components (Required for Everything)

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #100 // Cleric Remix

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #103 // Install Silverstar of Selune Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #106 // Install Nightcloak of Shar Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #109 // Install Battleguard of Tempus Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #112 // Install Painbearer of Ilmater Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #115 // Install Firewalker of Kossuth Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #118 // Install Authlim of Iyachtu Xvim Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #121 // Install Lorekeeper of Oghma Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #124 // Install Heartwarder of Sune Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #127 // Install Feywarden of Corellon Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #130 // Install Strifeleader of Cyric Cleric Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #200 // Druid Remix

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #203 // Install Oozemaster Druid kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #403 // Install Bowslinger Ranger Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #406 // Install Feralan Ranger Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #409 // Install Forest Runner Ranger Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #412 // Install Justifier Ranger Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #415 // Install Wilderness Runner Ranger Kit

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #600 // Install Battleguard of Tempus Kit for Branwen

~DIVINE_REMIX/SETUP-DIVINE_REMIX.TP2~ #0 #610 // Install Nightcloak of Shar Kit for Viconia

~SETUP-D0TWEAK.TP2~ #0 #0 // Enhanced Goodberries

~SETUP-D0TWEAK.TP2~ #0 #17 // Sensible Lore Table

~SETUP-D0TWEAK.TP2~ #0 #19 // NPCs/Summons Set Off Traps -> Everyone can set off traps (excluding illusions, etc.)

~RR/SETUP-RR.TP2~ #0 #0 // Proper dual-wielding implementation for Thieves and Bards: v3.92

~RR/SETUP-RR.TP2~ #0 #1 // Thief kit revisions: v3.92

~RR/SETUP-RR.TP2~ #0 #2 // Bard kit revisions: v3.92

~RR/SETUP-RR.TP2~ #0 #5 // Additional equipment for Thieves and Bards: v3.92

~RR/SETUP-RR.TP2~ #0 #6 // Revised Thievery -> Use PnP thievery potions and prevent their effects from stacking: v3.92

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #0 // Nythrun's Level 1 NPCs: List party-joinable NPCs (required to install any other components): v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1 // Tweak weapon proficiencies for some classes (a la Ashes of Embers and aVENGER's Rogue Rebalancing?: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #3 // Joinable NPCs more closely match the player character's experience?: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1218 // Ajantis Ilvastarr: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1219 // Alora: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1220 // Branwen: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1224 // Faldorn: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1206 // Imoen: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1226 // Kagain: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1228 // Kivan: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1229 // Montaron: v1.1

~LEVEL1NPCS/LEVEL1NPCS.TP2~ #0 #1215 // Viconia De'Vir: v1.1

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #40 // Change Viconia's Skin Color to Dark Blue

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #50 // Avatar Morphing Script

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #60 // Weapon Animation Tweaks

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #110 // Icon Improvements

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #130 // Force All Dialogue to Pause Game

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1060 // Breakable Iron Nonmagical Shields, Helms, and Armor

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1070 // Improved Multi-Player Kick-out Dialogues

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1080 // Add Bags of Holding

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1090 // Exotic Item Pack

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1100 // Reveal City Maps When Entering Area

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1110 // Add Map Notes

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1120 // Stores Sell Higher Stacks of Items

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1140 // Gems and Potions Require Identification

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1150 // Shapeshifter Rebalancing

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2090 // Change Experience Point Cap -> Remove Experience Cap

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2140 // Expanded Dual-Class Options

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2150 // Wear Multiple Protection Items -> P&P Restrictions

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2160 // Alter Weapon Proficiency System -> Rebalanced Weapon Proficiencies

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2170 // Cast Spells from Scrolls (and Other Items) at Character Level

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2192 // Limit Ability of Storekeepers to Identify Items -> Hybrid of Both Methods

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2210 // True Grandmastery (Baldurdash)

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2240 // Un-Nerfed THAC0 Table

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2250 // Un-Nerfed Sorcerer Spell Progression Table

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2261 // Alter Mage Spell Progression Table -> PnP Table

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2310 // Add Save Penalties for Spells Cast by High-Level Casters (BETA) -> Arcane Magic Only

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3000 // Higher HP on Level Up -> Maximum

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3010 // Maximum HP for NPCs (the bigg) -> For All Creatures in Game

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3060 // Remove "You Must Gather Your Party..." Sound (Weimer)

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3080 // Unlimited Ammo Stacking

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3090 // Unlimited Gem and Jewelry Stacking

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3121 // Happy Patch (Party NPCs do not fight or complain about reputation) -> NPCs can be angry about reputation but never leave (Salk)

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3125 // Neutral Characters Make Happy Comments at Mid-Range Reputation

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3200 // Sellable Items (Icelus)

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3210 // Minimum Stats Cheat

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4000 // Adjust Evil joinable NPC reaction rolls

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4020 // ToB-Style NPCs

~SETUP-EASYTUTUSPAWNRANDOMIZER.TP2~ #0 #5 // EasyTutu Spawn Randomizer -> Base Spawn Chance: 80%

~SETUP-EASYTUTUSPAWNRANDOMIZER.TP2~ #0 #11 // Respawn Interval Selection -> Respawn Interval: 4 game days

~SETUP-D0TWEAK.TP2~ #0 #11 // Visual Ioun Stones

~SETUP-TUTUGUI.TP2~ #0 #0 // Baldurs Gate I GUI for Tutu, SoA/ToB, or BGT

Link to comment

It uses a BoH that references a store full of those items. Can you tell me the file name of the BoH in question and I will quickly write a fix for it. Actually, no matter, I will draft one now.

 

This is for TuTu, correct?

 

Add this to the bottom of Lost Items .tp2, and then reinstall the mod.

BEGIN ~BoH ToB Items fix TUTU ONLY~
ACTION_IF FILE_EXISTS_IN_GAME ~_amul18.itm~ BEGIN //checks for tutu, random tutu only file
COPY_EXISTING_REGEXP ~bag.*.sto~ ~override~ //gets the BoH's store files for patching
 SPRINT item_to_delete ~.*~
 LAUNCH_PATCH_MACRO DELETE_STORE_ITEM //deletes ALL items.
END
BUT_ONLY_IF_IT_CHANGES

 

Not sure if it installs, but it should do. If it fails (Unrecognized Macro) reinstall with the latest WeiDU (version 20800). If it doesn't remove the items, try adding .itm to my SPRINT item_to_delete ~.*~ so it looks like SPRINT item_to_delete ~.*.itm~.

 

Icen

Link to comment

Though my weidu is 20800, this is failing with a parse error.

 

[setup-lostitems.exe] WeiDU version 20800

[setup-lostitems.exe] Using scripting style "BG2"

In state 354, I expected one of these tokens:

[0] EOF

[3] <<<<<<<<

[10] EXTEND_TOP_REGEXP

[13] GET_DIRECTORY_ARRAY

[15] REQUIRE_FILE

[16] DEFINE_ACTION_MACRO

[18] ADD_MUSIC

[26] EXTEND_TOP

[27] VERBOSE

[29] APPEND_COL

[30] ADD_PROJECTILE

[36] ELSE

[41] DEFINE_PATCH_MACRO

[44] LOAD_TRA

[50] ALTER_TLK_LIST

[71] CLEAR_MEMORY

[73] AT_INTERACTIVE_NOW

[76] COPY

[78] OUTER_PATCH

[84] UNINSTALL

[87] GET_FILE_ARRAY

[91] PRINT

[94] ACTION_DEFINE_ASSOCIATIVE_ARRAY

[96] ADD_KIT

[98] FAIL

[99] MKDIR

[102] BEGIN

[103] COPY_EXISTING_REGEXP

[104] COPY_LARGE

[108] ACTION_READLN

[110] ACTION_DEFINE_ARRAY

[112] AT_UNINSTALL

[117] AT_INTERACTIVE_UNINSTALL

[122] STRING_SET_RANGE

[123] OUTER_SPRINT

[124] CLEAR_IDS_MAP

[126] STRING_SET

[127] COPY_KIT

[130] AT_EXIT

[131] COPY_ALL_GAM_FILES

[132] END

[137] ALTER_TLK

[140] LAUNCH_ACTION_MACRO

[150] COMPILE

[154] OUTER_WHILE

[158] APPEND

[163] RANDOM_SEED

[191] REINCLUDE

[192] EXTEND_BOTTOM

[204] SILENT

[208] COPY_EXISTING

[211] ALTER_TLK_RANGE

[213] ACTION_PHP_EACH

[222] AT_NOW

[223] FORBID_FILE

[224] STRING_SET_EVALUATE

[230] EXTEND_BOTTOM_REGEXP

[236] AT_INTERACTIVE_EXIT

[239] OUTER_SET

[244] APPEND_OUTER

[246] OUTER_FOR

[251] INCLUDE

[254] OUTER_PATCH_SAVE

[255] OUTER_TEXT_SPRINT

[268] ACTION_FOR_EACH

[270] COPY_RANDOM

[282] BIFF

[285] ACTION_IF

[296] ACTION_BASH_FOR

[299] ADD_SPELL

Parse error (state 354) at BUT_ONLY_IF_IT_CHANGES

 

[sETUP-LOSTITEMS.TP2] PARSE ERROR at line 932 column 1-22

Near Text: BUT_ONLY_IF_IT_CHANGES

GLR parse error

 

[sETUP-LOSTITEMS.TP2] ERROR at line 932 column 1-22

Near Text: BUT_ONLY_IF_IT_CHANGES

Parsing.Parse_error

ERROR: parsing [sETUP-LOSTITEMS.TP2]: Parsing.Parse_error

ERROR: problem parsing TP file [sETUP-LOSTITEMS.TP2]: Parsing.Parse_error

 

FATAL ERROR: Parsing.Parse_error

 

Press ENTER to exit.

Link to comment

here is the complete text of my exe-lostitems.tp2

in case I did something wrong, though I doubt i did so, the

instructions were very clear ... you cab see that my end is as

you wrote and I paste

 

 

BACKUP ~LostItems/backup~

 

AUTHOR ~Vedran, recoded by Ascension64 (http://forums.spellholdstudios.net)~

 

//////////////////////////////////////////////////////////////////////////////////////////////////

//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

//////////////////////////////////////////////////////////////////////////////////////////////////

 

ALWAYS

AT_INTERACTIVE_EXIT ~VIEW LostItems\LostItems.txt~

END

 

//////////////////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Lost Items~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

 

COPY_EXISTING ~_ASHIRU.CRE~ ~override/_ASHIRU.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _SW1H21

REPLACE_CRE_ITEM ~BOOT08~ #0 #0 #0 ~NONE~ ~BOOTS~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~WEAPON2~

 

COPY_EXISTING ~_BEYN.CRE~ ~override/_BEYN.CRE~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~WEAPON2~ //was _DAGG05(20) redundant

REPLACE_CRE_ITEM ~BRAC14~ #0 #0 #0 ~NONE~ ~GLOVES~ //was _BRAC02 redundant

REPLACE_CRE_ITEM ~BLUN13~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _HAMM01 redundant

 

COPY_EXISTING ~_BISHOP.CRE~ ~override/_BISHOP.CRE~

REPLACE_CRE_ITEM ~_PLAT05~ #0 #0 #0 ~NONE~ ~ARMOR~ //was redundant

REPLACE_CRE_ITEM ~_SHLD06~ #0 #0 #0 ~NONE~ ~SHIELD~ //was redundant

REPLACE_CRE_ITEM ~_BLUN03~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was redundant

REPLACE_CRE_ITEM ~SLNG07~ #0 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~QUIVER1~

 

COPY_EXISTING ~_DAVAEO.CRE~ ~override/_DAVAEO.CRE~

REPLACE_CRE_ITEM ~SWBAG03~ #0 #0 #0 ~NONE~ ~INV8~

REPLACE_CRE_ITEM ~SWBAG19~ #0 #0 #0 ~NONE~ ~INV9~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV10~

REPLACE_CRE_ITEM ~SLNG04~ #0 #0 #0 ~NONE~ ~INV11~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~INV12~

 

COPY_EXISTING ~_GORION.CRE~ ~override/_GORION.CRE~

REPLACE_CRE_ITEM ~SWBAG02~ #0 #0 #0 ~NONE~ ~INV4~

REPLACE_CRE_ITEM ~SWBAG03B~ #0 #0 #0 ~NONE~ ~INV5~

REPLACE_CRE_ITEM ~SWBAG06~ #0 #0 #0 ~NONE~ ~INV6~

REPLACE_CRE_ITEM ~SCRL75~ #0 #0 #0 ~NONE~ ~INV7~

 

COPY_EXISTING ~_GNOLL_C.CRE~ ~override/_GNOLL_C.CRE~

REPLACE_CRE_ITEM ~_SPER02~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP TWOHANDED //was _HALB01

REPLACE_CRE_ITEM ~LEAT10~ #0 #0 #0 ~NONE~ ~ARMOR~

 

COPY_EXISTING ~_JARDAK.CRE~ ~override/_JARDAK.CRE~

REPLACE_CRE_ITEM ~SW1H55~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _SW1H05

REPLACE_CRE_ITEM ~SLNG04~ #0 #0 #0 ~NONE~ ~INV3~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~INV4~

 

COPY_EXISTING ~_NIMBUL.CRE~ ~override/_NIMBUL.CRE~

REPLACE_CRE_ITEM ~_SW1H22~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _SW1H08

REPLACE_CRE_ITEM ~SWBAG02B~ #0 #0 #0 ~NONE~ ~INV2~

REPLACE_CRE_ITEM ~SWBAG03C~ #0 #0 #0 ~NONE~ ~INV3~

 

COPY_EXISTING ~_PRISM.CRE~ ~override/_PRISM.CRE~

REPLACE_CRE_ITEM ~SWBAG02C~ #0 #0 #0 ~NONE~ ~INV2~

REPLACE_CRE_ITEM ~SWBAG06B~ #0 #0 #0 ~NONE~ ~INV6~

 

COPY_EXISTING ~_RAEMON.CRE~ ~override/_RAEMON.CRE~

REPLACE_CRE_ITEM ~SPER05~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP TWOHANDED //was _SW1H04

//original also moves _MISC86 (Bandit Scalp) FROM QUICK2 TO GLOVES

 

COPY_EXISTING ~_RASHAD.CRE~ ~override/_RASHAD.CRE~

REPLACE_CRE_ITEM ~SW1H55~ #0 #0 #0 ~NONE~ ~WEAPON1~ //was _SW1H04

 

COPY_EXISTING ~_SLYTHE.CRE~ ~override/_SLYTHE.CRE~

REPLACE_CRE_ITEM ~DAGG11~ #0 #0 #0 ~NONE~ ~QITEM2~ //was _XBOW04

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV3~

 

COPY_EXISTING ~_TAM.CRE~ ~override/_TAM.CRE~

REPLACE_CRE_ITEM ~SPER05~ #0 #0 #0 ~NONE~ ~WEAPON2~ EQUIP TWOHANDED //was _SW1H07

 

COPY_EXISTING ~_TEVEN.CRE~ ~override/_TEVEN.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _SW1H04

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~QITEM1~

 

COPY_EXISTING ~_TEYNGA.CRE~ ~override/_TEYNGA.CRE~

REPLACE_CRE_ITEM ~_BLUN03~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _BLUN04

REPLACE_CRE_ITEM ~SLNG02~ #50 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~QUIVER1~

//original also moves _MISC86 (Bandit Scalp) FROM QUICK2 TO GLOVES

 

COPY_EXISTING ~_VAX.CRE~ ~override/_VAX.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was _HALB01

REPLACE_CRE_ITEM ~SW1H49~ #0 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~SWBAG05~ #0 #0 #0 ~NONE~ ~INV5~

REPLACE_CRE_ITEM ~SWBAG05B~ #0 #0 #0 ~NONE~ ~INV6~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV7~

 

COPY ~LostItems/Items/SWNIN.ITM~ ~override/SWNIN.ITM~

~LostItems/Items/SWKAT.ITM~ ~override/SWKAT.ITM~

 

COPY_EXISTING ~FW2602.ARE~ ~override/FW2602.ARE~

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 (11)

PATCH_IF (("%container_name%" STRING_COMPARE_CASE "Container 3")=0) BEGIN

READ_LONG ("%container_off%"+"%i%"*0xc0+0x40) container_item_idx

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) _POTN08 //item ResRef

WRITE_SHORT ("%item_off%"+"%container_item_idx%"*0x14+0xa) 3 //qty-charges 1

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

SPRINT are_update_offset_datatype "item"

SET are_update_offset_increment = 20

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) SWKAT //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) SWNIN //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

END

END

 

COPY_EXISTING ~FW4800.ARE~ ~override/FW4800.ARE~

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 (11)

PATCH_IF (("%container_name%" STRING_COMPARE_CASE "Container 7")=0) BEGIN

READ_LONG ("%container_off%"+"%i%"*0xc0+0x40) container_item_idx

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) BAG05 //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

SPRINT are_update_offset_datatype "item"

SET are_update_offset_increment = 20

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) BRAC13 //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) DART03 //item ResRef

WRITE_SHORT ("%item_off%"+"%container_item_idx%"*0x14+0xa) 3 //qty-charges 1

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

END

END

 

//replace instance of _PLAT06 with LEAT10

READ_SHORT 0x76 item_num

FOR (i=0;i<"%item_num%";i+=1) BEGIN

READ_ASCII ("%item_off%"+"%i%"*0x14) item_name

PATCH_IF (("%item_name%" STRING_COMPARE_CASE "_PLAT06")=0) BEGIN

WRITE_ASCII ("%item_off%"+"%i%"*0x14) LEAT10 #8

END

END

 

COPY_EXISTING ~_AROW01.ITM~ ~override/_AROW01.ITM~

~_AROW02.ITM~ ~override/_AROW02.ITM~

~_AROW04.ITM~ ~override/_AROW04.ITM~

~_AROW05.ITM~ ~override/_AROW05.ITM~

~_AROW06.ITM~ ~override/_AROW06.ITM~

~_AROW08.ITM~ ~override/_AROW08.ITM~

~_AROW09.ITM~ ~override/_AROW09.ITM~

~_AROW10.ITM~ ~override/_AROW10.ITM~

~_AROW11.ITM~ ~override/_AROW11.ITM~

~_AROW12.ITM~ ~override/_AROW12.ITM~

~_AROW16.ITM~ ~override/_AROW16.ITM~

~_AROWKC.ITM~ ~override/_AROWKC.ITM~

~_AX1H04.ITM~ ~override/_AX1H04.ITM~

~_BOLT01.ITM~ ~override/_BOLT01.ITM~

~_BOLT02.ITM~ ~override/_BOLT02.ITM~

~_BOLT03.ITM~ ~override/_BOLT03.ITM~

~_BOLT04.ITM~ ~override/_BOLT04.ITM~

~_BOLT05.ITM~ ~override/_BOLT05.ITM~

~_BOLT06.ITM~ ~override/_BOLT06.ITM~

~_BULL01.ITM~ ~override/_BULL01.ITM~

~_BULL02.ITM~ ~override/_BULL02.ITM~

~_BULL03.ITM~ ~override/_BULL03.ITM~

~_DAGG05.ITM~ ~override/_DAGG05.ITM~

~_DART01.ITM~ ~override/_DART01.ITM~

~_DART02.ITM~ ~override/_DART02.ITM~

~_DART03.ITM~ ~override/_DART03.ITM~

~_DART04.ITM~ ~override/_DART04.ITM~

~BULL04.ITM~ ~override/BULL04.ITM~

~DAGG16.ITM~ ~override/DAGG16.ITM~

WRITE_SHORT 0X38 50

BUT_ONLY_IF_IT_CHANGES

 

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

 

COPY_EXISTING ~ASHIRU.CRE~ ~override/ASHIRU.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was SW1H21

REPLACE_CRE_ITEM ~BOOT08~ #0 #0 #0 ~NONE~ ~BOOTS~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~WEAPON2~

 

COPY_EXISTING ~BEYN.CRE~ ~override/BEYN.CRE~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~WEAPON2~ //was DAGG05(20) redundant

REPLACE_CRE_ITEM ~BRAC14~ #0 #0 #0 ~NONE~ ~GLOVES~ //was BRAC02 redundant

REPLACE_CRE_ITEM ~BLUN13~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was HAMM01 redundant

 

COPY_EXISTING ~BGBISHOP.CRE~ ~override/BGBISHOP.CRE~

REPLACE_CRE_ITEM ~PLAT05~ #0 #0 #0 ~NONE~ ~ARMOR~ //was redundant

REPLACE_CRE_ITEM ~SHLD06~ #0 #0 #0 ~NONE~ ~SHIELD~ //was redundant

REPLACE_CRE_ITEM ~BLUN03~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was redundant

REPLACE_CRE_ITEM ~SLNG07~ #0 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~QUIVER1~

 

COPY_EXISTING ~DAVAEO.CRE~ ~override/DAVAEO.CRE~

REPLACE_CRE_ITEM ~SWBAG03~ #0 #0 #0 ~NONE~ ~INV8~

REPLACE_CRE_ITEM ~SWBAG19~ #0 #0 #0 ~NONE~ ~INV9~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV10~

REPLACE_CRE_ITEM ~SLNG04~ #0 #0 #0 ~NONE~ ~INV11~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~INV12~

 

COPY_EXISTING ~GORION.CRE~ ~override/GORION.CRE~

REPLACE_CRE_ITEM ~SWBAG02~ #0 #0 #0 ~NONE~ ~INV4~

REPLACE_CRE_ITEM ~SWBAG03B~ #0 #0 #0 ~NONE~ ~INV5~

REPLACE_CRE_ITEM ~SWBAG06~ #0 #0 #0 ~NONE~ ~INV6~

REPLACE_CRE_ITEM ~SCRL75~ #0 #0 #0 ~NONE~ ~INV7~

 

COPY_EXISTING ~GNOLL_C.CRE~ ~override/GNOLL_C.CRE~

REPLACE_CRE_ITEM ~SPER02~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP TWOHANDED //was HALB01

REPLACE_CRE_ITEM ~LEAT10~ #0 #0 #0 ~NONE~ ~ARMOR~

 

COPY_EXISTING ~JARDAK.CRE~ ~override/JARDAK.CRE~

REPLACE_CRE_ITEM ~SW1H55~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was SW1H05

REPLACE_CRE_ITEM ~SLNG04~ #0 #0 #0 ~NONE~ ~INV3~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~INV4~

 

COPY_EXISTING ~NIMBUL.CRE~ ~override/NIMBUL.CRE~

REPLACE_CRE_ITEM ~SW1H22~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was SW1H08

REPLACE_CRE_ITEM ~SWBAG02B~ #0 #0 #0 ~NONE~ ~INV2~

REPLACE_CRE_ITEM ~SWBAG03C~ #0 #0 #0 ~NONE~ ~INV3~

 

COPY_EXISTING ~PRISM.CRE~ ~override/PRISM.CRE~

REPLACE_CRE_ITEM ~SWBAG02C~ #0 #0 #0 ~NONE~ ~INV2~

REPLACE_CRE_ITEM ~SWBAG06B~ #0 #0 #0 ~NONE~ ~INV6~

 

COPY_EXISTING ~RAEMON.CRE~ ~override/RAEMON.CRE~

REPLACE_CRE_ITEM ~SPER05~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP TWOHANDED //was SW1H04

//original also moves MISC86 (Bandit Scalp) FROM QUICK2 TO GLOVES

 

COPY_EXISTING ~RASHAD.CRE~ ~override/RASHAD.CRE~

REPLACE_CRE_ITEM ~SW1H55~ #0 #0 #0 ~NONE~ ~WEAPON1~ //was SW1H04

 

COPY_EXISTING ~SLYTHE.CRE~ ~override/SLYTHE.CRE~

REPLACE_CRE_ITEM ~DAGG11~ #0 #0 #0 ~NONE~ ~QITEM2~ //was XBOW04

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV3~

 

COPY_EXISTING ~TAM.CRE~ ~override/TAM.CRE~

REPLACE_CRE_ITEM ~SPER05~ #0 #0 #0 ~NONE~ ~WEAPON2~ EQUIP TWOHANDED //was SW1H07

 

COPY_EXISTING ~TEVEN.CRE~ ~override/TEVEN.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was SW1H04

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~QITEM1~

 

COPY_EXISTING ~TEYNGA.CRE~ ~override/TEYNGA.CRE~

REPLACE_CRE_ITEM ~BLUN03~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was BLUN04

REPLACE_CRE_ITEM ~SLNG02~ #50 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~BULL04~ #50 #0 #0 ~NONE~ ~QUIVER1~

//original also moves _MISC86 (Bandit Scalp) FROM QUICK2 TO GLOVES

 

COPY_EXISTING ~VAX.CRE~ ~override/VAX.CRE~

REPLACE_CRE_ITEM ~SW1H47~ #0 #0 #0 ~NONE~ ~WEAPON1~ EQUIP //was HALB01

REPLACE_CRE_ITEM ~SW1H49~ #0 #0 #0 ~NONE~ ~WEAPON2~

REPLACE_CRE_ITEM ~SWBAG05~ #0 #0 #0 ~NONE~ ~INV5~

REPLACE_CRE_ITEM ~SWBAG05B~ #0 #0 #0 ~NONE~ ~INV6~

REPLACE_CRE_ITEM ~DAGG16~ #50 #0 #0 ~NONE~ ~INV7~

 

COPY ~LostItems/Items/SWNIN.ITM~ ~override/SWNIN.ITM~

~LostItems/Items/SWKAT.ITM~ ~override/SWKAT.ITM~

 

COPY_EXISTING ~AR6502.ARE~ ~override/AR6502.ARE~

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 (11)

PATCH_IF (("%container_name%" STRING_COMPARE_CASE "Container 3")=0) BEGIN

READ_LONG ("%container_off%"+"%i%"*0xc0+0x40) container_item_idx

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) POTN08 //item ResRef

WRITE_SHORT ("%item_off%"+"%container_item_idx%"*0x14+0xa) 3 //qty-charges 1

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

SPRINT are_update_offset_datatype "item"

SET are_update_offset_increment = 20

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) SWKAT //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) SWNIN //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

END

END

 

COPY_EXISTING ~AR3700.ARE~ ~override/AR3700.ARE~

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 (11)

PATCH_IF (("%container_name%" STRING_COMPARE_CASE "Container 7")=0) BEGIN

READ_LONG ("%container_off%"+"%i%"*0xc0+0x40) container_item_idx

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) BAG05 //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

SPRINT are_update_offset_datatype "item"

SET are_update_offset_increment = 20

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) BRAC13 //item ResRef

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

//add item

INSERT_BYTES ("%item_off%"+"%container_item_idx%"*0x14) 0x14

WRITE_ASCII ("%item_off%"+"%container_item_idx%"*0x14) DART03 //item ResRef

WRITE_SHORT ("%item_off%"+"%container_item_idx%"*0x14+0xa) 3 //qty-charges 1

//update number of items globally and in container

READ_SHORT 0x76 item_num

WRITE_SHORT 0x76 ("%item_num%" + 1)

READ_LONG ("%container_off%"+"%i%"*0xc0+0x44) container_item_num

WRITE_LONG ("%container_off%"+"%i%"*0xc0+0x44) ("%container_item_num%" + 1)

//update item indices in all containers after the current container

FOR (j="%i%"+1;j<"%container_num%";j+=1) BEGIN

READ_LONG ("%container_off%"+"%j%"*0xc0+0x40) container_item_idx

WRITE_LONG ("%container_off%"+"%j%"*0xc0+0x40) ("%container_item_idx%" + 1)

END

//update offsets

LAUNCH_PATCH_MACRO are_update_offset

 

END

END

 

//replace instance of PLAT06 with LEAT10

READ_SHORT 0x76 item_num

FOR (i=0;i<"%item_num%";i+=1) BEGIN

READ_ASCII ("%item_off%"+"%i%"*0x14) item_name

PATCH_IF (("%item_name%" STRING_COMPARE_CASE "PLAT06")=0) BEGIN

WRITE_ASCII ("%item_off%"+"%i%"*0x14) LEAT10 #8

END

END

 

COPY_EXISTING ~AROW01.ITM~ ~override/AROW01.ITM~

~AROW02.ITM~ ~override/AROW02.ITM~

~AROW04.ITM~ ~override/AROW04.ITM~

~AROW05.ITM~ ~override/AROW05.ITM~

~AROW06.ITM~ ~override/AROW06.ITM~

~AROW08.ITM~ ~override/AROW08.ITM~

~AROW09.ITM~ ~override/AROW09.ITM~

~AROW10.ITM~ ~override/AROW10.ITM~

~AROW11.ITM~ ~override/AROW11.ITM~

~AROW12.ITM~ ~override/AROW12.ITM~

~AROW16.ITM~ ~override/AROW16.ITM~

~AROWKC.ITM~ ~override/AROWKC.ITM~

~AX1H04.ITM~ ~override/AX1H04.ITM~

~BOLT01.ITM~ ~override/BOLT01.ITM~

~BOLT02.ITM~ ~override/BOLT02.ITM~

~BOLT03.ITM~ ~override/BOLT03.ITM~

~BOLT04.ITM~ ~override/BOLT04.ITM~

~BOLT05.ITM~ ~override/BOLT05.ITM~

~BOLT06.ITM~ ~override/BOLT06.ITM~

~BULL01.ITM~ ~override/BULL01.ITM~

~BULL02.ITM~ ~override/BULL02.ITM~

~BULL03.ITM~ ~override/BULL03.ITM~

~DAGG05.ITM~ ~override/DAGG05.ITM~

~DART01.ITM~ ~override/DART01.ITM~

~DART02.ITM~ ~override/DART02.ITM~

~DART03.ITM~ ~override/DART03.ITM~

~DART04.ITM~ ~override/DART04.ITM~

~BULL04.ITM~ ~override/BULL04.ITM~

~DAGG16.ITM~ ~override/DAGG16.ITM~

WRITE_SHORT 0X38 50

BUT_ONLY_IF_IT_CHANGES

 

END

 

COPY_EXISTING ~BAG03.ITM~ ~override/SWBAG03.ITM~

COPY_EXISTING ~BAG19.ITM~ ~override/SWBAG19.ITM~

COPY_EXISTING ~BAG02.ITM~ ~override/SWBAG02.ITM~

COPY_EXISTING ~BAG03.ITM~ ~override/SWBAG03B.ITM~

COPY_EXISTING ~BAG06.ITM~ ~override/SWBAG06.ITM~

COPY_EXISTING ~BAG02.ITM~ ~override/SWBAG02B.ITM~

COPY_EXISTING ~BAG03.ITM~ ~override/SWBAG03C.ITM~

COPY_EXISTING ~BAG02.ITM~ ~override/SWBAG02C.ITM~

COPY_EXISTING ~BAG06.ITM~ ~override/SWBAG06B.ITM~

COPY_EXISTING ~BAG05.ITM~ ~override/SWBAG05.ITM~

COPY_EXISTING ~BAG05.ITM~ ~override/SWBAG05B.ITM~

COPY_EXISTING ~BAG03.STO~ ~override/SWBAG03.STO~

COPY_EXISTING ~BAG19.STO~ ~override/SWBAG19.STO~

COPY_EXISTING ~BAG02.STO~ ~override/SWBAG02.STO~

COPY_EXISTING ~BAG03.STO~ ~override/SWBAG03B.STO~

COPY_EXISTING ~BAG06.STO~ ~override/SWBAG06.STO~

COPY_EXISTING ~BAG02.STO~ ~override/SWBAG02B.STO~

COPY_EXISTING ~BAG03.STO~ ~override/SWBAG03C.STO~

COPY_EXISTING ~BAG02.STO~ ~override/SWBAG02C.STO~

COPY_EXISTING ~BAG06.STO~ ~override/SWBAG06B.STO~

COPY_EXISTING ~BAG05.STO~ ~override/SWBAG05.STO~

COPY_EXISTING ~BAG05.STO~ ~override/SWBAG05B.STO~

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Xan has Sorcerer class~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

 

COPY_EXISTING ~_XAN.CRE~ ~override/_XAN.CRE~

~_XAN4.CRE~ ~override/_XAN4.CRE~

~_XAN6.CRE~ ~override/_XAN6.CRE~

WRITE_LONG 0x244 0 //Kit

WRITE_BYTE 0x273 19 //Class

 

COPY_EXISTING ~_XAN.CRE~ ~override/_XAN.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 2 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 2 //Wizard Level 1 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

 

COPY_EXISTING ~_XAN4.CRE~ ~override/_XAN4.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x2) 3 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x4) 3 //Wizard Level 2 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~ ~SPWI209~ ~SPWI212~ ~SPWI211~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI107~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI212~ #1 ~WIZARD~

 

COPY_EXISTING ~_XAN6.CRE~ ~override/_XAN6.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x2) 5 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x4) 5 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+9*0x10+0x2) 3 //Wizard Level 3 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+9*0x10+0x4) 3 //Wizard Level 3 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~ ~SPWI209~ ~SPWI212~ ~SPWI211~ ~SPWI316~ ~SPWI113~ ~SPWI315~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI107~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI212~ #1 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI211~ #1 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI113~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI326~ #2 ~WIZARD~

 

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

 

COPY_EXISTING ~BGXAN.CRE~ ~override/BGXAN.CRE~

~XAN4.CRE~ ~override/XAN4.CRE~

~XAN6.CRE~ ~override/XAN6.CRE~

WRITE_LONG 0x244 0 //Kit

WRITE_BYTE 0x273 19 //Class

 

COPY_EXISTING ~BGXAN.CRE~ ~override/BGXAN.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 2 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 2 //Wizard Level 1 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

 

COPY_EXISTING ~XAN4.CRE~ ~override/XAN4.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x2) 3 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x4) 3 //Wizard Level 2 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~ ~SPWI209~ ~SPWI212~ ~SPWI211~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI107~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI212~ #1 ~WIZARD~

 

COPY_EXISTING ~XAN6.CRE~ ~override/XAN6.CRE~

READ_LONG 0x2a8 mem_info_offset

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x2) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+7*0x10+0x4) 6 //Wizard Level 1 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x2) 5 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+8*0x10+0x4) 5 //Wizard Level 2 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+9*0x10+0x2) 3 //Wizard Level 3 # spells memorisable

WRITE_SHORT ("%mem_info_offset%"+9*0x10+0x4) 3 //Wizard Level 3 # spells memorisable

REMOVE_KNOWN_SPELL ~SPWI105~ ~SPWI104~ ~SPWI209~ ~SPWI212~ ~SPWI211~ ~SPWI316~ ~SPWI113~ ~SPWI315~

ADD_KNOWN_SPELL ~SPWI110~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI112~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI107~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI212~ #1 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI211~ #1 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI113~ #0 ~WIZARD~

ADD_KNOWN_SPELL ~SPWI326~ #2 ~WIZARD~

 

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Monk +3 AC and +1 THAC0 Bonus~

 

COPY ~LostItems/Monk/SWBOOKAC.SPL~ ~override/SWBOOKAC.SPL~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

EXTEND_BOTTOM ~_AR2600.BCS~ ~LostItems/Monk/_AR2600.BAF~

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

EXTEND_BOTTOM ~AR0015.BCS~ ~LostItems/Monk/_AR2600.BAF~

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Happy patch: NPCs do not leave due to reputation~

COPY_EXISTING ~HAPPY.2DA~ ~override~

COUNT_2DA_ROWS 4 happy_rows

FOR(i=0;i<"%happy_rows%";i+=1) BEGIN

SET happy_col = 1

WHILE ("%happy_col%" <= 3) BEGIN

READ_2DA_ENTRY %i% %happy_col% 4 happy_val

PATCH_IF ("%happy_val%" < 0) BEGIN

SET_2DA_ENTRY %i% %happy_col% 4 "0"

END

SET happy_col +=1

END

END

BUT_ONLY_IF_IT_CHANGES

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Viconia has 18 WIS~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

COPY_EXISTING ~_VICONI.CRE~ ~override/_VICONI.CRE~

~_VICONI4.CRE~ ~override/_VICONI4.CRE~

~_VICONI6.CRE~ ~override/_VICONI6.CRE~

WRITE_BYTE 0x23b 18 //Wisdom

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

COPY_EXISTING ~VICONI.CRE~ ~override/VICONI.CRE~

~VICONI4.CRE~ ~override/VICONI4.CRE~

~VICONI61.CRE~ ~override/VICONI61.CRE~

WRITE_BYTE 0x23b 18 //Wisdom

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Alternative portrait for Faldorn~

GROUP ~Alternative portraits~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

COPY ~LostItems/Portraits/_ALDORNS.bmp~ ~override/_ALDORNS.bmp~

~LostItems/Portraits/_ALDORNL.bmp~ ~override/_ALDORNL.bmp~

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

COPY ~LostItems/Portraits/_ALDORNS.bmp~ ~override/FALDORNS.bmp~

~LostItems/Portraits/_ALDORNL.bmp~ ~override/FALDORNL.bmp~

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Alternative portrait for Xan~

GROUP ~Alternative portraits~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

COPY ~LostItems/Portraits/_ANS.bmp~ ~override/_ANS.bmp~

~LostItems/Portraits/_ANL.bmp~ ~override/_ANL.bmp~

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

COPY ~LostItems/Portraits/_ANS.bmp~ ~override/XANS.bmp~

~LostItems/Portraits/_ANL.bmp~ ~override/XANL.bmp~

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Alternative portrait for Imoen~

GROUP ~Alternative portraits~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

COPY ~LostItems/Portraits/_MOENS.bmp~ ~override/_MOENS.bmp~

~LostItems/Portraits/_MOENL.bmp~ ~override/_MOENL.bmp~

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

COPY ~LostItems/Portraits/_MOENS.bmp~ ~override/IMOENS.bmp~

~LostItems/Portraits/_MOENL.bmp~ ~override/IMOENL.bmp~

END

 

/////////////////////////////////////////////////////////////////////////////////////

BEGIN ~Baldur's Gate 2 portrait for Viconia~

GROUP ~Alternative portraits~

 

ACTION_IF FILE_EXISTS_IN_GAME ~_SW1H01.ITM~ THEN BEGIN //Tutu

COPY_EXISTING ~_VICONI.CRE~ ~override/_VICONI.CRE~

~_VICONI4.CRE~ ~override/_VICONI4.CRE~

~_VICONI6.CRE~ ~override/_VICONI6.CRE~

WRITE_ASCII 0x34 ~NVICONS~ #8 //small portrait

WRITE_ASCII 0x3c ~NVICONM~ #8 //large portrait

END

 

ACTION_IF FILE_EXISTS ~data/BG1ARE.BIF~ THEN BEGIN //BGT

COPY_EXISTING ~VICONI.CRE~ ~override/VICONI.CRE~

~VICONI4.CRE~ ~override/VICONI4.CRE~

~VICONI61.CRE~ ~override/VICONI61.CRE~

WRITE_ASCII 0x34 ~NVICONS~ #8 //small portrait

WRITE_ASCII 0x3c ~NVICONM~ #8 //large portrait

END

BEGIN ~BoH ToB Items fix TUTU ONLY~

ACTION_IF FILE_EXISTS_IN_GAME ~_amul18.itm~ BEGIN //checks for tutu, random tutu only file

COPY_EXISTING_REGEXP ~bag.*.sto~ ~override~ //gets the BoH's store files for patching

SPRINT item_to_delete ~.*~

LAUNCH_PATCH_MACRO DELETE_STORE_ITEM //deletes ALL items.

END

BUT_ONLY_IF_IT_CHANGES

Link to comment

I am really new around here, how do I 'contact Ascension64' ??

 

That was the original idea I had ... find out who made the BoH with

the extra items and suggest he or she do it differently. I have clearly

given you enough information to know a) what did it and b) whom

to talk to aout it ... but I don't know such things. Looking for a

'lost items forum' but not finding one ...

 

sorry to be so clueless,

laura

Link to comment
I am really new around here, how do I 'contact Ascension64' ??

 

That was the original idea I had ... find out who made the BoH with

the extra items and suggest he or she do it differently. I have clearly

given you enough information to know a) what did it and b) whom

to talk to aout it ... but I don't know such things. Looking for a

'lost items forum' but not finding one ...

 

sorry to be so clueless,

laura

Hi Laura, no need to apologize. The link included in my first post directed to one of Ascension64's posts regarding Lost items. You could send him a Private Message there at Pocket Plane, here at G3, or as Icendoan suggets, over at Spellhold Studios. I think he's there most often. Although, checking the 'official thread' at SS, the problems seems to have been already reported and apparently there's already a fix for it by Miloch. Check it out.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...