Jump to content

SHS: 1pp (One Pixel Productions) updated to v4.2.0


Recommended Posts

Spellhold Studios

After so many years, 1pp is finally updated.

Without a doubt the most comprehensive mod when it comes to post-release QA and visuals, 1pp offers the player the option to change the paperdolls and inventory icons of Baldur's Gate II to those of Baldur's Gate, and adds a number of completely new fixes, additions and alterations to the original BGII game. Technically speaking, One Pixel Productions is an attempt to fix "*cosmetic flaws*" that should have never made it through QA, as well as improve upon a number of other of things. It contains many components, including: BG1 Paperdoll and inventory item ports, except for potions, BG1-style Flaming Swords, Flaming Short Swords (with item and mod item patches), new Paperdolls (human, half-orc, elven, halfling, dwarf), legacy Shields, Colourable Quarterstaves (with item patches)...

Version 4.2.0 has been fully rewritten to the modern WeiDU standard, comes with a brand new default installation that can be fine-tuned to the player's taste, French and Russian translations, and hundreds of fixes.

Important note: Players are strongly recommended to read carefully the new readme before installing the mod since all configuration installation options have been moved into 1pp-config-default.ini file. Hence installation process won't any more be interrupted with plain text prompts asking players to customise components to their liking.

  PLEASE: Once for all, this mod is not intended for EE games!


Read the Readme  -  (French)
Visit the Mod Forum
SHS Download Center
SHS official GitHub alternate download center


Change log:


a. General overhaul and re-looking

  • Added 1pp.ini metadata file to support AL|EN's "Project Infinity".
  • Replaced `AUTHOR` keyword with `SUPPORT`.
  • Added missing `REQUIRE_PREDICATE` conditions to avoid installing components in inaccurate games or if required components are not installed
  • Added components `DESIGNATED` numbers and `LABELS`.
  • Added "always.tpa" library.
  • Commented code as much as possible.
  • Replaced `GAME_IS` conditions with variables checks to speed up install time.
  • Configuration installation options have been moved into 1pp-config-default.ini file.
  • Integrated and improved all BWP Fixpack fixes (thanks Lollorian, The Imp and others!).
  • Split huge [400] "Core updates and item patches" component into smaller ones for more comfortable readability and maintenance (checking 2500 or 3000 lines is easier when you search a glitch or a bug in more than 16000 lines of code!).
  • Added BG2 Fixpack and ToBEx compatibility.
  • Added partial Item Revisions, Spell Revisions and IWDification compatibility in a rather soft way: As SR, IR and IWDification are still beta versions, I gave up trying to write a plain compatibility with them. It would be certainly obsolete in a few months, therefore a waste of time.
  • Added and/or improved 1PP crossmods compatibility (BG1 NPC Project, Bolsa, Darron, Improved HaerDalis Swords, Rolles, Ruad, Song and Silence, Stuff of the Magi, The Unusual Oddities Shop).
  • Fixed typos and misspellings preventing a few items to be patched (or patching wrong ones...).
  • Coding simplification:
    • Replaced macros with functions whenever possible.
    • Copied entire folders instead of infinite lines of code.
    • Grouped actions or patches with `ACTION_FOR_EACH` and `PATCH_FOR_EACH` whenever possible.
    • Used new and more efficient WeiDU functions (not released when Erephine wrote this mod) and Gwendolyne's patch functions to optimize coding (e.g. `ADD_ITEM_EQEFFECT`, `ALTER_EFFECT` and `ALTER_ITEM_HEADER` replace so many lines of codes!).
    • Avoided copying and overwriting the same files again and again...
  • Re-formated and updated all readme files (1pp now supports translated readmes).
  • Added French translation (Gwendolyne).
  • Added Russian translation (prozh).
  • Traification. Feel free to provide me with translations. I will include them as soon as possible.
  • Removed unused files.
  • Reorganized folder architecture tree: created sub-folders to sort paperdolls .BAM files according to creature types.
  • Lower cased files.
  • Updated WeiDU installer to v246.
  • Uploaded mod to official Spellhold Studios GitHub mirror account.

 
b. Components specific changes and fixes:

  • [101] 1ppv4: Core paperdolls - main component (101_base.tph, 101_ia.tph, 101_iwd.tph and 101_obj.tph)
    • Copied entire folders instead of infinite lines of code.
    • Infinity Animations paperdolls for Legacy animations (101_ia.tph): replaced `READLN` action "Use 1pp or IWD style female dwarf paperdolls?" with reading new setting (1pp_fdwarf) from "1pp-config-default.ini" or "1pp-config-user.ini" [default value = 2 (1pp style)].
  • [102-103] 1ppv4: Extended palette entries (102_compat.tph and 103_extpal.tph)
    • Copied entire folders instead of infinite lines of code.
    • Fixed random color entries in character customization (thanks skellytz!): Now all hair, skin, major/minor colors you pick in the character customization will stick on game load (i.e., the colors aren't from the random range anymore).
  • [104] 1ppv4: GUI additions for BGII (104_core.tph)
    • Copied entire folders instead of infinite lines.
    • Replaced `READLN` actions "Do you want to include SoA style loading screens for ToB?", "Install updated fonts? (may cause issues with languages using different font .BAMs)" and "Use mixed case labels?" with reading new settings (1pp_gui_soa, 1pp_updated_fonts and 1pp_mixed_labels) from "1pp-config-default.ini" or "1pp-config-user.ini". 
  • [105] 1ppv4: Avatar fixes (105_avatars.tph)
    • Copied entire folders instead of infinite lines of code.
  • [106-107-108-109] 1ppv4: Female Dwarves (106_f_dwarves_bg2.tph, 107_f_dwarves_iwd2.tph, 108_f_dwarves_odd2.tph and 109_f_dwarves_iwd.tph)
    • Copied entire folders instead of infinite lines of code.
  • [110-111-112] 1ppv4: Thieves Galore (110_thieves_iwd.tph, 111_thieves_bg2.tph and 112_thieves_iwd2.tph)
    • Copied entire folders instead of infinite lines of code.
  • [113] 1ppv4: Smart Avatar & Armour Switching (113_switch.tph)
    • Copied entire folders instead of infinite lines of code.
    • Used newer and more efficient `ADD_ITEM_EQEFFECT` WeiDU function to replace so many lines of codes.
  • [114] 1ppv4: Softer Spell Effects (114_effects.tph)
    • Replaced `READLN` action "WARNING: This component will only work properly with 3D support enabled (alpha blending). Installing this component on BG2 in software rendering mode IS NOT A GOOD IDEA." with reading `3D Acceleration=1` in baldur.ini, icewind.ini or icewind2.ini before running the component.
    • Replaced `READLN` actions "Install IWD-style Agannazar's Scorcher or alternate style?", and "Install less obtrusive dispel magic effect?" with reading new settings (1pp_agannazar_scorcher and 1pp_dispel_magic_effect) from 1pp-config-default.ini" or "1pp-config-user.ini".
    • Function `GW_MODIFY_PROJ` replaces Lollorian's BWP Fixpack misc patchified code changes (modify new projectile values in ALL spell headers) which was inefficient and patched nothing. Moreover, it was using a wrong offset coding for ITM files. Source: commit.
    • Added BG2 Fixpack and partial SR compatibility in a rather softer way.
    • specific fixes:
      • spin897.spl (Gas Spore): added BG2 Fixpack compatibility. BG2 Fixpack replaces CLOUDKIL.pro with cdnpcsym.pro, preventing 1pp to replace it with 1pgspore.pro.
      • spwi614.spl (Death fog): added Acid Fog SR compatibility. SR replaces CLOUDKIL.pro with dvafog.pro, preventing 1pp to replace it with 1pdeathf.pro.
      • spwi810.spl (Incendiary Cloud): added SR compatibility. SR replaces CLOUDKIL.pro with dvicloud.pro, preventing 1pp to replace it with 1pincind.pro.
  • [200] 1ppv4: Core content patches (200_1ppv2_cut.tph)
    • Added a new setting (1pp_hammers_icons) allowing to make alternate the overwriting of the Runehammer icon (saves vanilla ihamm10 icon and installs new ihamm10 1pp icon as ihamm05b), and not to set Borok's Fist's icon to Runehammers [default value = 2 (No, assign the new icon to Borok's Fist, but keep Runehammer for their respective hammers.)].
    • Replaced `READLN` action "Do you want to include updated potion graphics?" with reading new setting (1pp_potions_icons) from "1pp-config-default.ini" or "1pp-config-user.ini" [default value = 2 (Heavens no -- *Everything* but Potions!)].
    • Code simplified or re-written with newer functions to provide automatic process:
      • Replaced `WRITE_LONG 0x3E 0` and `WRITE_ASCII 0x3A ~ISHLDS01~` with `WRITE_ASCII 0x3A ~ISHLDS01~ #8`. Id. with offsets 0x48 0x44, and 0x5C 0x58.
      • Used `DELETE_EFFECT` and `CLONE_EFFECT` combo to add new equipped color effects, which avoids writing lines of codes!
    • 1ppv2 BAMs: for modding purpose, created copies of a few vanilla inventory (Club of Detonation +3, Splint Mail +1, Chain Mail +3, Mage Robe of Cold Resistance, Mage Robe of Fire Resistance, Mage Robe of Electric Resistance, Knave's Robe, Traveler's Robe, Adventurer's Robe, Robes of the Good, Neutral, and Evil Archmagi, Suryris's Blade +2, Ravager +4, Halberd +3, The Eyes of Truth, Helm of the Rock, Leather Armor, Studded Leather Armor, Plate Mail, Mithral Field Plate +2, Quiver of Plenty +1, Bastard Sword +2, Celestial Fury +3, Short Sword of Mask +4, Angurvadal +4, Foebane +3, Purifier +4, Yamato +4, Usuno's Blade +4, Spectral Brand +4, Hindo's Doom +3, Bastard Sword +3, Katana +3, Scimitar +3, The Answerer +4, Gram the Sword of Grief +5). Instead of definitively overwriting them, it now saves them with V suffixe before overwriting them, and does not overwrite anymore the following icons that are irrelevant (EE does not validate this change) : does not replace iax1h14.bam (Axe of the Unyielding +3) with the very inaccurate IWD Celebrant's Blade icon, idagg11.bam (Boomerang Dagger) with a clone of imisc75 (Dagger of Venom), and isw1h06.bam (Varscona +2) with a clone of isw1h41 (Long Sword +2). Does not overwrite Harbinger's icon and copies an alternate resource for modding purpose (1isw2h07). This way, Harbinger keeps its golden icon which fits to its colors settings.
    • specific fixes:
      • dagg21.itm & dagg22.itm (Daggers of the Star): reverted to their original inventory icon idagg21. 1PP sets them to idagg18 (Shadow Thief Dagger icon), but EE does not validate this change.
      • halb07.itm (Halberd +2): reverted to its original inventory icon ihalb07. 1PP sets it to ihalb03 (Suryris's Blade +2 icon), but EE does not validate this change.
      • sw1h31.itm (Daystar +2): reverted to its original inventory icon isw1h31. 1PP sets it to isw1h34 (Albruin +1), but EE does not validate this change. Then switches back its colorisation with Albruin (400_update_bgii_swords).
      • sw1h34.itm (Albruin +1): reverted to its original inventory icon isw1h34. 1PP sets it to isw1h31 (Daystar +2), but EE does not validate this change. Then switched back its colorisation with Daystar (400_update_bgii_swords).
      • sw1h41.itm (Long Sword +2): reverted to its original inventory icon isw1h41. 1PP sets it to isw1h06 (Varscona +2 icon), but EE does not validate this change. Then removed the colorisation modified by 400_update_bgii_swords and sets it to sw1h73 (Long Sword +3) that deserves those settings.
      • sw2h10.itm and sw2h19.itm (Carsomyr +5 and +6): reverted to their original inventory icon isw2h10. 1PP sets them to isw2h20, but EE does not validate this change.
      • sw2h11.itm (Two-handed Sword +2): reverted to its original inventory icon isw2h11. 1PP sets it to isw2h03, but EE does not validate this change.
      • sw2h20.itm (Two-handed Sword +3): reverted to its original inventory icon isw2h20. 1PP sets it to isw2h06, but EE does not validate this change.
      • sw1hwk.itm (Water's Edge +3): wrong identified name fix moved from 400_update_bgii_misc.tpa because Core content patches component installs it and is a pre-requisite for Core updates and item patches component.
      • BW Herbs mod patches: fixed a typo (was copying bw02ipo1_l.bam instead of bw02ipo1.bam).
  • [201] 1ppv4: Consistent spell and scroll icons (201_spellsandscrolls.tph)
    • Integrated BWP Fixpack patch: restored Energy Blades spell and scroll icons (SPWI920) overwritten with Black Blade of Disaster's ones.
  • [202] 1ppv4: Spell tweaks (202_spelltweaks.tph)
    • Replaced `READLN` action "WARNING: SPPR142/1342 (Cause Light Wounds, Cause Medium Wounds) seem to be already taken by a previously installed mod. Proceeding to install may cause issues." with a new code using `!FILE_CONTAINS_EVALUATED(~spell.ids~ ~~)`. This will avoid to overwrite existing spells.
    • Replaced `READLN` action "Do you want existing 'cause wound' spells to use IWD-style icons? (healing icon in red)" with reading new setting (1pp_iwd_cause_wounds_icons) from "1pp-config-default.ini" or "1pp-config-user.ini" [default value = 1 (Yes)].
    • Replaced BWP Fixpack Lollorian's patchified Armor animation changes (202_spelltweaks.tph.patch: modifies opcode #215 visual effect in ALL spell headers) with WeiDU innate `ALTER_EFFECT` function. Source: commit.
    • Added SR compatibility for individualised armour effects. 1PP patches also op#215 with GARMORH resource (spwi317.spl: Ghost Armor).
    • Added IWDIfication and SR compatibility for installing PnP/IWD-style 'cause wounds' spells in a rather softer way.
  • [203] 1ppv4: Restored flame sword animations (203_fslong.tph)
    • Copied entire folders instead of infinite lines of code.
    • Used new "1pp_compatibility.tph library" to improve 1PP crossmods compatibility (Improved HaerDalis Swords).
  • [204] 1ppv4: Colourable Quarterstaves (204_qsbase.tph)
    • Copied entire folders instead of infinite lines of code.
    • Used new "1pp_compatibility.tph library" to improve 1PP crossmods compatibility (Bolsa, Rolles, Ruad, Stuff of the Magi and The Unusual Oddities Shop).
  • [208] 1ppv4: Additional Helmet Animations (208_v4_helmets.tph)
  • [209] 1ppv4: Attachable wings (209_v4_wings.tph)
    • Added automatic installation of male elves wings by default.
  • [210] 1ppv4: Increased paperdoll object variety (210_v4_ppd_variety.tph)
    • Simplified codes creating undroppable clones of weapons (in particular with tutu_var) replacing primary weapon with undroppable clone and moving it to inventory.
    • CRE files: used `READ_LONG 0x28` instead of `READ_SHORT 0x28` (dword!).
    • ITM files: used `WRITE_LONG 0x18 (THIS BAND BNOT BIT2)` to remove droppable flag instead of writing the offset new value.
  • [400] 1ppv4 : Core updates and item patches (400_1pp_update_bgii.tph and 400_1pp_update_iwd.tph)
    • Split this huge component into smaller ones (checking 2500 or 3000 lines is easier when you search a glitch or a bug in more than 16000 lines of code!).
    • Replaced `READLN` action "Do you want gems to require some lore to identify?" with reading new setting (1pp_gemlore) from "1pp-config-default.ini" or "1pp-config-user.ini" [default value = 2 (No)].
    • Added a new setting (1pp_hammers_icons) allowing to make alternate the overwriting of the Runehammer icon (saves vanilla IHAMM10 icon and installs new IHAMM10 1pp icon as IHAMM05B), and not to set Borok's Fist's icon to Runehammers [default value = 2 (No, assign the new icon to Borok's Fist, but keep Runehammer for their respective hammers.)].
    • Added a new setting (1pp_sleeper) allowing to make alternate the turning of The Sleeper into a flail [default value = 2 (No, but install the alternate flail icon IBLUN16B as a new resource for modders)]. In any case, 1PP does not overwrites its original inventory bam with a new one, but installs a new icon (IBLUN16B) as an alternate, and saves the vanilla icon for compatibility with other mods purpose.
    • Replaced tooltip section with two new functions that 1) add a fourth column if needed, 2) automatically writes values in tooltip.2da from the tra files.
    • Integrated Lollorian's BWP Fixpack patch for Ashes of Embers compatibility (400_1pp_update_bgii.tph.patch): renames 1PPv4 BAND0X.ITMs to XOBAND0X.ITMs, using Lollorian's prefix (according to BWL: XO, submitted by Chaplain, 11.03.2010, Prefix owner also known as Lollorian). Source.
    • Added ToBEx compatibility for circlets: item flag EE/Ex: Toggle critical hits flag (BIT25).
    • Gems sub-component: code simplified and re-written to avoid overwriting files when selecting option no lore needed for identification (1pp_gemlore = 2). Build an array to define new gems lore values to identify. .Same library used for IWD and BG2 based games.
    • Code simplified or re-written with newer functions to provide automatic process:
      • Grouped actions or patches with `ACTION_FOR_EACH` and `PATCH_FOR_EACH` whenever possible.
      • Replaced macros with functions whenever possible.
      • Replaced `WRITE_LONG 0x3E 0` and `WRITE_ASCII 0x3A ~ISHLDS01~` with `WRITE_ASCII 0x3A ~ISHLDS01~ #8`. Id. with offsets 0x48 0x44, and 0x5C 0x58.
      • Used new 1pp_compatibility.tph library to improve 1PP crossmods compatibility (BG1 NPC Project, Darron, Rolles, Ruad, Song and Silence, Stuff of the Magi, The Unusual Oddities Shop).
    • shields specific fixes (400_update_bgii_shields.tpa):
      • shld02.itm (Small Shield +1): `LPM ~clear~` was missing, and the code stacked op#7 global effects.
      • shld31a.itm (Gorm's Arm +3): fixed wrong coding (`WRITE_SHORT` instead of `WRITE_BYTE` for Minimum strength value).
      • shld01p.itm (Buckler +2): fixed wrong coding (op#0 parameter1 0xfffffe - 16777214 ?? - should be -3), added opcode #0 with parameter1 = -3 and parameter2 = 4 to add missing protection vs piercing weapons, added missing price, and fixed item description to fit ITM file.
      • shld06p.itm (Redshield +1, +4 vs. monstrous): fixed wrong coding (op#219: switch parameter1 and 2, and parameter2 2 - EA.IDS - should be 3 - GENERAL.IDS), added an external effect (shld06p.eff), and replaced op#178 with op#177, otherwise opcode #178 won't work.
      • shld07p.itm (Sartessa's Vengeance +1): fixed wrong coding for add magical flag [replaced `WRITE_BYTE 0x1b 0x6c` with `WRITE_LONG 0x18 (THIS | BIT6)`].
      • shld08p.itm (Tarloc's Contingency +1): code simplified (1tarsp.spl) and fixed wrong coding for Casting sound (1tarss.spl).
      • shld09p.itm (Shield of Devotion +1): fixed wrong coding op#62 (parameter2 should be 4, not 3).
      • x#ajshld.itm (Ilvastarr Family Shield - The BG1 NPC Project mod): fixed a typo (was patching #ajshld instead of x#ajshld).
    • helmets specific fixes (400_update_bgii_helmets.tpa):
      • helm33.itm (Gold Horned Helm): fixed a typo (was patching helm22 instead of helm33).
      • xoband02.itm (Silver Circlet): fixed wrong coding opcodes #33, 34 & 35 (parameter2 originally set to 1 should be 0) and added opcodes #36 & 37 to match item description (+1 to Saving Throws).
      • xoband03.itm (Eilistraee's Boon +1): same fixes for opcodes #33, 34, 35, 36 & 37. Fixed wrong coding op#31: parameter1 originally set to 110, should be 10, and parameter2 switched from 2 to 0 to match item description (+10% magic damage resistance).
      • xoband04.itm (Circlet of the Archmagi): same fixes for opcodes #33, 34, 35, 36 & 37. Added one missing equipped effects (`LPM ADD_ITEM_EQEFFECT #19`).
    • launchers specific fixes (400_update_bgii_launchers.tpa)::
      • xbow15.itm & xbow16.itm (Firetooth +4/+5): added bolt location color (wpink) to reflect the fire bolt on character paperdoll.
    • weapons specific fixes (400_update_bgii_weapons.tpa):
      • Added IR compatibility for throwing axes, daggers and hammers if variant a and/or b items are detected: ax1h08.itm (Hangard's Axe +2), ax1h09.itm (Rifthome Axe +3), ax1h10.itm (Azuredge +3), ax1h16.itm (K'logarath +4), dagg11.itm (Boomerang Dagger +2), dagg12.itm (Firetooth +3), hamm06.itm (Dwarven Thrower +3) and hamm09.itm (Crom Faeyr +5).
      • dagg12.itm (Firetooth +3): fixed typos in `LPM ~pulse~` macro (redundant setr variable set to 152 and 189 should be setg and setb, otherwise they overwrite the setr value and don't set the correct setg and setb values).
      • dagg21.itm & dagg22.itm (Daggers of the Star): restored their original colors as component #200 reverted to their original inventory icon IDAGG21, this patch would give them wrong colors.
      • halb08.itm (Duskblade +2): fixed a typo patching halb06 instead of halb08.
      • hamm10.itm & hamm11.itm (Runehammers): new 1pp_hammers_icons setting gives the choice to assign it, or not, the Borok's Fist's icon.
    • miscellaneous specific fixes (400_update_bgii_misc.tpa):
      • sw1hwk.itm (Water's Edge +3): wrong identified name fix moved into 200_1ppv2_cut.tph because Core content patches component installs it and is a pre-requisite.
      • misc89.itm (Edwin's Amulet): added bgmisc89 (BGT and IR compatibility).
      • book06.itm (Tome of Clear Thought), book07.itm (Tome of Leadership and Influence) and book08.itm (Tome of Understanding): harmonized header icon with new inventory icon (IBOOK768) for consistency.
    • swords specific fixes (400_update_bgii_swords.tpa):
      • Does not overwrite Varscona's icon with a clone of ISW1H41 (Long Sword +2) because EE does not validate this change.
      • sw1h31.itm (Daystar +2): as 1PP (Core content patches) sets its icon to isw1h34 (Albruin +1), but EE does not validate this change, this version reverts to its original inventory icon isw1h31 and this component switches back its colorisation with Albruin.
      • sw1h34.itm (Albruin +1): as 1PP (Core content patches) sets its icon to isw1h31 (Daystar +2), but EE does not validate this change, this version reverts to its original inventory icon isw1h31 and this component switches back its colorisation with Daystar.
      • sw1h41.itm (Long Sword +2): as 1PP (Core content patches) sets its icon to SW1H06 (Varscona +2 icon), but EE does not validate this change, this version reverts to its original inventory icon isw1h41. Then, this component removes its re-colorisation and sets it to sw1h73 (Long Sword +3) that deserves those settings.
      • sw2h06.itm and sw1h13.itm (Spider's Bane +2): harmonized both versions. Now they get the same icon and coloration (no change from vanilla SW1H13 as its colors fit the new icon installed by 1PP).
      • sw2h07.itm (Harbinger +3): does not overwrite Harbinger's icon and copy an alternate resource for modding purpose. This way, Harbinger keeps its golden icon which fits to its colors settings.
      • sw1p01.itm (Viper's Edge +2): removed the op#134 global effect (Petrification) otherwise it would be impossible to wield the sword. 😉 Fixed wrong coding (the extended effects were not implemented) and modified the cursed effects probabilities, so that they don't stack when not necessary (e.g. why should you be poisoned when petrified?).
    • blunt weapons specific fixes (400_update_bgii_blunt.tpa):
      • blun16.itm (The Sleeper +2): new 1pp_sleeper setting gives the choice to turn it into a flail. If turned into a flail, modifies minimum strength value and uses a new icon (IBLUN16B) to avoid overwriting the vanilla one (let's keep it for modders!).
    • new staves specific fixes (400_update_bgii_staves2.tpa):
      • Avoided copying and overwriting the same files again and again...
      • Rewrote tooltip.2da appending to make sure it contains at least four columns, so we can add all Narbucchad's Demise staves abilities. Macro `GW_ADJUST_TOOLTIP` adds new columns in tooltip.2da. Function `GW_ADD_ITEM_TOOLTIPS`  adds new entries in tooltip.2da.
    • armors specific fixes (400_update_bgii_armors.tpa):
      • chan03b.itm (Werebane Mail +2): added missing identified name.
      • plat15.itm (Pride of the Legion +2): reverted its inventory and description icons (wrongly set to iplat23 and cplat05) as EE does not validate this change.
      • plat23.itm (Full Plate Mail +2): removed from the patches as EE does not validate them (this silver and golden full plate was turned into a black one!).
    • scatters items specific fixes (400_update_bgii_scatter.tph):
      • Coding simplification:
        • Replaced combo `ADD_STORE_ITEM` + `REMOVE_STORE_ITEM` with `LPF REPLACE_STORE_ITEM`.
        • Replaced two `ADD_STORE_ITEM #1` with one `ADD_STORE_ITEM #2`.
      • dmark1.sto (Fovem, Docks merchant) & trmer02.sto (Trademeet merchant): set number_in_stock to 2, otherwise the former code did not work (was supposed to add one Plate and remove the Plate +1, but there was already 1 Plate in the store!
  • [401] 1ppv4: Improved projectile effects (401_projectiles.tph)
    • Code fully re-written with new functions to provide automatic process.
      • Function `GW_CLEAR_DUPLICATED_OPCODES`: does not stack anymore opcodes #83 and #197, clears duplicated vanilla op#89 and #197 effects in SPL and ITM files and checks if protection from SPEAR and/or Bounce SPEAR is already set before adding it.
      • Function `GW_MODIFY_PROJ` replaces BWP Fixpack 401_projectiles.tph.patch: now it modifies projectile value only when needed (does not patch melee headers anymore), replaces `ADD_ITEM_EQEFFECT`, `ADD_ITEM_EFFECT`, `ADD_SPELL_EFFECT` and macros with the newer and more efficient `CLONE_EFFECT` WeiDU function to give new opcodes #83 and #197 the same settings than existing ones (target, resist_dispel, duration, power...). It modifies all extended headers and avoids writing lines of codes!
      • Added partial IR and SR compatibility in a rather soft way.
      • Improved 1PP crossmods compatibility (Rolles, Ruad, Stuff of the Magi).
    • specific fixes:
      • ax1h08.itm (Hangard's Axe +2), ax1h09.itm (Rifthome Axe +3), ax1h10.itm (Azuredge +3) and ax1h16.itm (K'logarath +4): added IR compatibility (patches itemB files).
      • bolt09.itm (Bolt +3): fixed a typo (was patching bolt06 instead of bolt09).
      • Sets new projectiles to Quivers of Plenty, Cases of Plenty, Bags of Plenty and Sling of Everard: Why quivers and launchers needing no ammo should not get new 1pp projectiles?
      • dagg05.itm (Throwing Dagger), dagg11.itm (Boomerang Dagger +2) and dagg12.itm (Firetooth +3): added IR compatibility (patches itemB files).
      • sper04.itm (Javelin): switched Thrown and Melee strings ref in tooltip.2da.
      • items aurstaf, dragring, magebra, slayerwp and globblu4 (Blue Globe): added missing protections from new normal 1pp ammo projectiles (1dagg05 and 1dart01). The code was only providing protection from 1arow01 and 1bolt01 new projectiles.
      • npshld.itm (Delryn Family Shield): same fix as above + IR compatibility (protection from all types of missiles, including magic ones).
      • shld24.itm (Reflection Shield +1): same fix as above + cleared duplicate entries and added IR compatibility (IR replaces opcode #197 with opcode #83).
      • brac18.itm (Gloves of Missile Snaring): Don't forget to add Protection from projectiles if IR is installed.
      • spin546.spl (Inertial Barrier), spcl721.spl (Storm Shield) & spcl914.spl (Greater Evasion): patched all headers (was patching only the first one), fixed wrong duration, target, power, resist dispel... Added missing protections from new normal 1pp ammo projectiles (1dagg05 and 1dart01). The code was only providing protection from 1arow01 and 1bolt01 new projectiles.
      • Protection From Normal Missiles spells (spra303, spwi311, & cdwi311 - added by BG2 Fixpack): same fixes as above & SR compatibility (protection from all types of missiles, including magic ones).
      • sppr613.spl (Physical Mirror): cleared duplicate entries and added SR compatibility (SR replaces opcode #197 with opcode #83).
      • Included Entropy Shield spell (protection from new 1pp projectiles) if IWDIfication is installed.
  • [300] 1ppv4: 1ppv4: Fixed animations for solars and elementals (300_solar_fix.tph)
Link to comment
×
×
  • Create New...