Repository navigation
Conversation
# Conflicts: # src/mods/Loader.lua
# Conflicts: # docs/modding.md # src/mods/Loader.lua # src/world/WorldAPI.lua
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.
An API-3 mod that selects an opponent by
battlerId == 3currently receives a detached battler record on Gen2Recomped. Gen1Recomp supplies a numeric selector (or nil for the native default). Align the GBA API-3 hook input, including the actual single/double controllers.The public hook now receives
(battle, battlerId). Zero-argument next preserves the current request; omitted/nil selectors ask for the native default; explicit selectors cross back to the actual native actor. Nested and reentrant hooks preserve each request's selector, and native errors clean up the scope without retrying AI. API-1/2 native and API-2 unified retain their existing actor argument and identity contracts.Also retain execution ownership when a hook queries the other flank's native AI: the caller executes the delegated choice and spends its own selected PP slot. Querying the other flank does not spend that flank's PP.
Stacked on #190. Review feature commit 206052fb relative to that prerequisite (11 files).
Validation:
Scope: API-3 GBA input selectors and execution ownership. Native output record fields, public item/switch/watch actions, explicit move-target conversion, damage amounts and RNG traces remain separate contracts. Gen1 is used as a read-only reference; no Gen1 patch or publication is required. Hosted CI is reported separately from local validation.
Combined-fork validation: integrated into
Roxas2712:codex/portability-testing, production runtime 6bb17f0. All 209/209 engine suites, 3/3 SDK suites and B30 pass. The same 12-worker / 162-observation pinned comparison passes on this runtime; public priority integration remains 32/32. Integration preserves native GBA turn-word preparation, both enemy selections before turn reset, held-item ID translation and identity-roll restore behavior.Hosted CI: all three workflows report
action_requiredpending maintainer approval. The dedicated contract workflow has zero executed jobs. These are separate from local acceptance.