Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Party XP arithmetic and formatting
Warning
Known bugs:
AddXPObjectqueues permanent additive opcode104and immediately asks for character XP feedback. The effect adds a signed delta to unsignedCGameSprite.m_baseStats.m_xp. Subtracting more XP than available wraps below zero.CGameSprite::FeedBackformatsint1with%dand always fetches the gain message.CInfGame::AddPartyXPdivides its post-bonus total using unsigned DIV. Its recipient loop also consumes only positive remainders.Tip
Fixes:
%uusing an unsigned magnitude, includingINT_MIN -> 2147483648. A before-call hook selects a translatable character-lossTLKentry for negativeint1. Native eligibility/feedback settings, theEXPERIENCEAMOUNTtoken, character attribution, colors and message construction remain in the engine.-100split among three eligible characters requests-34/-33/-33.Each recipient independently clamps at zero; an unaffordable portion is not reassigned. Native alive/valid-recipient selection and bonus adjustment remain in place. Party feedback retains its existing localized loss string and total; only its XP formatter is replaced to handle the
INT_MINmagnitude safely.Notes:
v2.7.3.0