Skip to content

Master combo of all forks, other general updates#14

Open
CamDawg wants to merge 46 commits into
FredrikLindgren:masterfrom
CamDawg:master
Open

Master combo of all forks, other general updates#14
CamDawg wants to merge 46 commits into
FredrikLindgren:masterfrom
CamDawg:master

Conversation

@CamDawg

@CamDawg CamDawg commented Apr 24, 2026

Copy link
Copy Markdown

This should contain all of the fixes and updates from all of the other forks and PRs of the mod: @abalabokhin, @AngelGryph,
@Lzw104522773, @Selphira, @TotoR115, and myself. I also found a few unresolved issues reported to the SHS forum. This should obsolete the following open PRs:

On top of that, I've spent a week crawling through the items, spells, and other code. A lot of it was just better utilization of how EE does stuff, but there were some bugs here and there that got fixed as well.

The WIP changelog:

  • Added a Simplified Chinese translation, courtesy of Lzw104522773
  • Updated Russian translation, courtesy of abalabokhin
  • Composite Shortbows would scale their damage with enchantment (e.g. base does +1, the Composite Shortbow +1 does +2 damage, &c.) but bow damage only scales on Tutu, BGEE, and IWDEE. BG2, BG2EE, BGT, and EET no longer scale this damage with enchantment.
  • Unidentified Composite Shortbows now use the name and description of a regular Composite Shortbow
  • Resolved conflict with IWD Bard Songs, whether installed via IWDification, SCS, or other mods using the same library
  • Updated Detectable Spells library; this should remove some downstream mod conflicts
  • Fixed a harmless warning that happens on BG2EE installs when patching Graegan's Harp (misc2p.itm)
  • BG2 chapter checks will now be correct for EET games
  • Bard song updates to the kit ability tables should be a little bit more reliable
  • Some item patches are skipped if Item Revisions is present, as it already makes the changes
  • Resolved several issues with One Pixel Productions compatibility: some were checking for the wrong component, it was using 1pp-exclusive paperdolls without checking if they were available, and some other issues
  • Updated some ground icons
  • RR uses some BG2 Fixpack code if BG2FP isn't installed; this code was updated to the current BG2FP
  • Evasion (and possibly Exploding Trap) were not fully working due to effect misordering
  • Sound Barrier will now block the IWD spells Shout and Great Shout, if present; fixed a bug where it wasn't blocking a different ability due to effect misordering
  • Scroll Scribing HLA now covers IWD spells via IWDification, SCS, or other mods using the same library
  • Fixed multiple off-by-one probability errors, e.g. an item which was supposed to do something on 20% of hits was actually doing it on 21% of hits
  • Added tooltips for the Tri-Souled Sapphire and the Keeper of the Law (original and upgraded)
  • Outside of a few bespoke placements, Composite Shortbows (base through +3) are now handled by a general store patch that should cover original and mod-added stores
  • Ioun Stones no longer protect from critical hits, if the engine supports it (EEs or the originals with TobEx).
  • Several one-handed items that do bonus damage to a specific alignment/race/whatever were doing it the old way, which allowed the bonus damage to be applied to both weapons when dual-wielding
  • Boots which increase speed are now subject to Free Action blocking them
  • Dead Man's Face was blocking a 'blind' string, but the immunity is to fear
  • Ring of Geminus is not allowed to be worn with the Ring of Wizardry, but the implementation had some big loopholes
  • A few script updates for the Shadow Thief Improvements weren't working due to how facing can get handled on EEs and (unlikely, but possible) the originals
  • BG2-Style Icons will now only copy the needed artwork instead of all of it
  • Made various abilities such as Paralytic Toxin usable while silenced, at least for EE and TobEx-enabled games
  • Enhanced Edition-specific updates:
    • Spell/potion stacking now works by removing the previous application and then applying a new one, rather than locking you out for the entire duration
    • If available, uses the new spellstates from EE Fixpack to better facilitate immunities
    • Shamans can now use the axes and composite shortbows added by this mod
    • Major review and rewrite of item descriptions to follow the EE style guide
    • Creature racial/class/general immunities are now handled by EE-exclusive opcodes rather than the clunky way we have to do it on the originals
    • All bard songs (regular or HLA) now check for target deafness, just like the original songs
    • Boots which increase movement speed now use the EE-specific portrait icon for this rather than haste
    • Bard songs are now the correct type on EEs, allowing them to be affected correctly by items like SoD's Bard Hat
  • Under the hood changes
    • Mod is now immutable
    • Streamlined code here and there as available
    • Uses a new macro to clone spells into innates; specifically it'll now update other resources that interact with the original to also interact with the new clone
    • More robust patching for pausing dialogue

CamDawg and others added 30 commits February 26, 2022 16:31
Basically, skip trueclass bards getting an updated bard song if IWDification's bard songs are installed.
Poor logic on the RR/IWDification compat check. Fixed now.
Collecting all of the changes from Selphira and Angel's forks. Selphira's update to Detectable Spells v4.01 was dropped as Angel's branch updates it to v4.03.

* Updates DS to v4.03
* Clears a warning on EE games for misc2p.itm since EEs already have this change
* Makes the mod immutable - specifically it now backs up to weidu_external and use same for tra conversions
* Moves the ALWAYS block to an external file

Additional changes from Cam beyond the aforementioned forks:

* Streamlined the encoding code
* Added a var so that ALWAYS only runs once per session
* AUTHOR => SUPPORT

Contains the following commits:
AngelGryph@6e473b1
AngelGryph@e0a51b2
AngelGryph@27c0208
AngelGryph@e661467
AngelGryph@b2caa92

(Should) deprecate the following forks and their associated PRs:
https://github.com/AngelGryph/rr
https://github.com/Selphira/rr
FredrikLindgren#12
Collecting all of the changes from Lzw104522773 and abalabokhin's forks.

* Adds a Simplified Chinese translation
* Updates the Russian translation
* Now has the proper chapter numbers for EET games

Additional changes from Cam beyond the aforementioned forks:

* Accidentally dropped the manual load of EE-specific strings from the previous commit in the ALWAYS block

Contains the following commits:
abalabokhin@2dd73be
Lzw104522773@bbed19f
Lzw104522773@1a51366
Lzw104522773@cdb32e7

(Should) deprecate the following forks and their associated PRs:
https://github.com/Lzw104522773/rr
FredrikLindgren#13
https://github.com/abalabokhin/rr
FredrikLindgren#9
TotoR115@17c8891

* Bard song replacements are done is slightly different fashion
* Dagger of Venom, Longtooth, Greagan's Harp edits skipped if Item Revisions is installed
* Was detecting the wrong 1pp component for shield paperdolls
* Updated ground icons for two items
* Other changes already incorporated/not needed

Cam's edits on top of this
* Longtooth edit is no longer to a direct offset but through a function that properly reads the variable offset
* Ground icons updated directly on items
TotoR115@bde3d27

* Added bypass Mirror Image flag to damage on rr#buc1a.eff
* Added rr#buc1g.eff - investigate
* Added more 1pp checks and utilization of those graphics if available

The graphical checks are not complete. It's checking for only 1pp in some cases where these graphics are also available on EEs. It's also
assigning BS as a paperdoll animation without a 1pp/EE check. All of this will need to be reviewed, but it'll wait until I've caught up
and then I'll do it systematically--if TotoR hasn't done it a future commit already.
TotoR115@6bf0d1d

* More coloration changes from 1pp
TotoR115@28a8982

Color corrections to their previous commit
TotoR115@8fe116c

* More coloration changes
TotoR115@0eb88cb

* Missing timing, target params on previous commit
TotoR115@d25e331

* Skip Graegan's harp outright if IR is installed
TotoR115@30d5d30#diff-504638a3e920f2fba6acadba73280631e3371e4db8cdda75ee6b03bbc0d62675

* Now just install RR's version of Graegan's Harp and overwrite IR's version, if present
TotoR115@c9fd9be
Skipped as we're already at DS v4.03 from Angel's fork

TotoR115@64eec9b
Skipped as I don't think Avenger would want a different bard progression table

TotoR115@30ab9f7
Partially implemented, as it does two things:
* Add the generic composite shortbow name as the unidentified name for all of these items (implemented)
* Remove scaling damage bonuses (see below)

On the latter, TotoR correctly identified that damage doesn't scale with enchantments on bows--but this is conditional based on the game.
BG2, BGT, and EET don't scale bow damage with enchantment, but BGEE, IWDEE, and Tutu do scale. This will be addressed in the next commit.
Glomming these together as they both kinda rely on the game_checks library.

Speaking of which, added the game_checks library and swapped some checks over. I'm not messing with existing GAME_IS checkins in functions
like Wisp's so that we can drop in updated libraries, should they become available.

For 1pp compat: Rather than individual checks on items, a series of variables for appearance and palette checks are set in ALWAYS and then
we just use variables as appropriate, e.g. BS for shortbow paperdolls if it's available, BW if not. The bows themselves just get writes of
the variables, eschewing the individual checks.

For the shortbow damage scaling, we define a scaling variable and then calculate damage for bows based on it. This variable is then
applied to the launcher header, and used in the tra files to get the descriptions correctly. Blindstrike (rr#bow01) doesn't go through
this since it's *only* available on non-scaling platforms, so the descript and item get static corrections. The Blindstrike correction
and the variable damage means we touched pretty much every translation file.

Also noted that two shortbows were using piercing damage instead of missile. I'm 99% sure this gets overridden by the ammo damage type,
but I fixed them anyway.
One notable thing missing from the last commit notes: we should now be on par with TotoR's fork and PR and should now be pulling ahead.

https://github.com/TotoR115/rr
FredrikLindgren#10
Double spacing and other antiquated text format
Pretty much rewrote the stat blocks entirely to match EE formatting.

Fixed a typo in the Keeper of the Law's flavor text.

Graegan's Harp is missing its unidentified strings
Streamlined the code. Also resolved a missing path in HANDLE_CHARSETS
* RR has a slew of relevant code that it applies if BG2FP isn't present; this was reviewed against the current BG2FP and updated as needed
* Sapped in my spell -> innate macro as it's more thorough
* Added support for EEFP x_IMMNITY states and will be patching them in as relevant
* Call to rr#afix moved to ALWAYS as it's called in 10/11 components
* 206s used to prevent stacking are being swapped for 321s on EE games
* EFFs used to make certain creatures immune (e.g. golems to poison) are being swapped to 318s on EEs
* use 321 instead of 206 to block spell stacking on EEs
* swap 177 protections for 318s on EEs
* Evasion was not blocking everything ti should due to effect ordering
* Exploding Trap might (?) fail to remove its map note for the same reason
* No changes for racial adjustments
* All bard songs get deafness checks on EEs - previously only done for IWDEE, but BGEE and BG2EE songs now work this way, too
* Stacking for EEs now done with 321s
* EFF-based exclusions now done with 318s on EEs
* Expanded the IWDification bard song exclusion to include David's projects which do the same thing as IWDification
* Deleted 267 in rr#bdf02 directly in file rather than tp2
* Added support for EEFP spell states and cure spells; had to reorder some effects in rr#bjs00 as a result
* Weapons Display's 206 for the target lacked proper HD checks
* COMPONENT_NUMBER apparently needs an explicit != 0 instead of just !
* Added an insert parameter for Wisp's very clever protection_from_string macro so that I could use it with 318/177 protected spells
* While it's unlikely, need to account for x_IMMUNITY spellstates having a valid value of 0
* Added IWDSpells support for RR scroll scribing HLA
* While the HLAs should only be for BG2 and known strrefs, utilized Wisp's macro to assign op 267s dynamically
* Use 318s on EEs instead of 177 for immunities
* use 321s on EEs instead of 206 for stacking
* Utilized EEFP x_IMMUNITY spellstates and #cureXXX spells
* Added (Great) Shout immunities to Sound Barrier, if the spells are present
* Sound Barrier wasn't actually blocking the existing innate shout due to effect misordering
* Moved arcane spell cloning to item component instead of ALWAYS block
* Fixed off-by-one probability issues on all items/spells
* Fixed an error introduced by me in a previous commit for the basic composite shortbow description (EE version)
* Small changes (like op deletion) that were done in tp2 now made directly on the files
* Utilized EEFP x_IMMUNITY states, where applicable. Same for #cureXXX spells
* Use op 318s instead of EFFs for various racial/class/general immunities on EEs
* Used op 321 instead of 206 on EEs for stacking prevention
* Added tooltips for Tri-Souled Sapphire
* Added a few (likely unnecessary) safeguards to the make-dialogue-pause patching
* Improved my handling of unidentified name/desc strings for Graegan's Harp
* Changed how we distribute composite shortbows on BG/BG2 platforms--now done by regexp to catch mod-added shops
* Ioun stones no longer protect against critical hits on all games, not just IWDEE
* Whitcomb dialogue change now done via d code
* Left description images for IWDEE, as there are UI mods that supprt them
* Utilized op 146's mode 2 for EE games for items casting spells
* Several items which provide damage bonuses vs specific targets were doing it the old way, which allowed the bonus to apply to the other weapon if dual-wielded
* Added EE version of Lapis description
* Added tooltips for upgraded Keeper of the Law
* Since upgraded Keeper of the Law needs tooltips, did it for the base item too
* Swapped 177s for 318s on EEs for race/general/class exclusions
* Utilized EEFP's x_IMMUNITY states for EE games
* Utilized EE's mode 2 for op 146
* Corrected off-by-one probability errors
…from stacking

Only change is to use 321s instead of 206s on EE games
…effects from stacking

Same as previous, just swapped stacking protections from 206 to 321s on EE games
* added thieving penalties to drow chain description
* moved relevant spell cloning from item component to CoC component
* items that cast spells now use op 146 mode 2 on EEs
* Boots of the Fox and the cloned Boots of Speed now use EE's 'Increased Movement Speed' portrait icon
* Above items now also use op 126, not 176, for their speed increases (making them subject to blocking by free action)
* Use 318s instead of 177s on EEs to block effects by race/general/class
* Supercharged Axe was providing 20% electrical resistance instead of the stated 10%
* Spells that stack now use EE's op 321 instead of 206
* Dead Man's Face was protecting from a 'blind' string (the immunity is for fear)
* Implemented EEFP spellstates and cures, as applicable
* Ring of Geminus is blocked from being worn with the Ring of Wizardry, but wasn't accounting for the second version in BG2FP/BG2EE
* Corrected a few off-by-one probability errors
* Moved a few item changes from tp2 to direct changes on the item
CamDawg and others added 16 commits April 23, 2026 12:26
* PnP Wand of Fear now just cloned from existing Wand of Fear
* The two items that are shared between this component and the thief item are pushed into libraries and called as needed
* Since face.ids exists for EEs, many script patches failed since it was expecting purely numerical face values
* One of the stgarud1 patches was failing due to whitespace mismatching
Just added a check that the bam is present before copying it over
General changes
* EFF files are no longer copied on EEs, as they're not needed.
* Generally shifted from 318s to 324s to provide some feedback to players.

Otherwise use of 324s were reviewed for effect exclusion. In some cases it was better to exclude effects upstream of where they were
currently set. For example, the Weary Cudgel (base and upgraded) cast a spell to invoke fatigue on its target, and the spell was being
guarded by 324s there (177/EFFs on the original). These 324s were moved upstream to the item directly. This was done on a few items with
similar setups, such as the Supercharged Axes, Plaguebearer, and the various shambler weapons.
Stormcharged Axe did properly provide 20% electrical resistance; it was a bad copy-paste in the EE-specific tra file
Allowing them to get picked up by the bard hat e.g.
Death Attack, Crippling Strike, Danger Sense, Evasion, Set Acid Trap, Insightful Strike, and Paralytic Toxin are now all usable while
silenced, at least on EEs or TobEx games.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants