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. Refonte générale du mod :
- Ajout du fichier de metadata 1pp.ini pour soutenir "Project Infinity" d'AL|EN.
- Remplacement du mot-clé `AUTHOR` par `SUPPORT`.
- Ajout des conditions `REQUIRE_PREDICATE` manquantes pour ne pas installer les composants dans des jeux inappropriés ou si d'autres composants pré-requis ne le sont pas.
- Attribution à chaque component d'un nombre `DESIGNATED` et d'un `LABELS`.
- Ajout de la librairie "always.tpa".
- Ajout de commentaires dans les fichiers de code chaque fois que possible.
- Remplacement des conditions `GAME_IS` par des variables afin d'accélérer la vitesse d'exécution du code.
- Les options de configuration d'installation ont été externalisés dans le fichier 1pp-config-default.ini.
- Correction et intégration des patches correctifs de Lollorian et intégration des autres patches du BWP Fixpack fixes (merci à The Imp et aux autres !)
- Découpage de l'énorme composant principal "*Mise à jour et modification des objets*" [400] en plus petits pour assurer une meilleure lecture et facilité sa maintenance (bien plus facile de vérifier 2500 ou 3000 lignes de code lorsque l'on cherche un bug ou une erreur dans plus de 16000 lignes de code !).
- Ajout de la compatibilité avec le BG2 Fixpack et ToBEx.
- Ajout d'une compatibilité partielle avec les mods Item Revisions, Spell Revisions et IWDification : comme ces mods sont toujours publiés en version beta, J'ai abandonné toute velléité de fournir un code totalement compatible avec eux. Ce serait une perte de temps puisqu'il serait sans aucun doute obsolète dans quelques semaines.
- Ajout et/ou amélioration de compatibilités de 1PP avec d'autres mods (BG1 NPC Project, Bolsa, Darron, Improved HaerDalis Swords, Rolles, Ruad, Song and Silence, Stuff of the Magi, The Unusual Oddities Shop).
- Correction de fautes de frappe qui empêchaient la modification de certains objets (ou modifiaient d'autres objets à leur place...).
- Simplification du code :
- Remplacement des macros par des fonctions quand c'est pertinent.
- Copie de répertoires de fichiers plutôt que chaque fichier un par un.
- Regroupement d'actions et de patches avec `ACTION_FOR_EACH` et `PATCH_FOR_EACH` chaque fois que possible.
- Utilisation de nouvelles fonctions plus efficaces de WeiDU (qui n'existaient pas lorsque Erephine a écrit ce mod) et de Gwendolyne qui optimisent le patch des fichiers (par exemple `ADD_ITEM_EQEFFECT`, `ALTER_EFFECT` et `ALTER_ITEM_HEADER` remplacent de nombreuses lignes de codes !).
- Les fichiers ne sont plus écrasés plusieurs fois de suite...
- Re-formatage et mise à jour de tous les readme (1pp prend désormais en compte la documentation traduite).
- Ajout de la traduction française (Gwendolyne).
- Ajout de la traduction russe (prozh).
- Traification.
- Suppression des fichiers inutiles.
- Reorganisation de l'arborescence des répertoires du mod : creation de sous-répertoires pour classer les fichiers de paperdolls par type de créature.
- Passage en minuscules des noms de fichiers.
- Mise à jour de WeiDU (v246).
- Téléversement du mod dans le compte GitHub officiel de Spellhold Studios.
- [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)
- Integrated Lollorian's BWP Fixpack JC Helm animation crash fix for IA BG1 animation compatibility (patch 208_v4_helmets.tph.patch: 1ppv4's helmet component seems to cause crashes when helmets using the JC animation are equipped by NPCs using BG1 animations from Infinity Animations. Source.
- [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.
Pour en lire plus...