You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deferred Phase 4 from #40 (EEex v1.0.0 upgrade umbrella). UUID adoption is also the partial enabler for #19 (clones/summons as casters), so this should land before #19's full feature work.
Scope
UUID-based sprite identity
Replace party-slot-index identity in BfBot.Exec._casters[] and persistence payloads with EEex_Sprite_GetUUID / EEex_Sprite_GetFromUUID. Survives party reorder mid-cast and save reload without sprite-pointer staleness.
BfBotExe._Advance caster resolution — currently caches CGameSprite userdata, freed across save reload (cf. Crash: pressing Stop after reloading a save mid-cast #38 fix, which works around this via name-comparison heuristics in _IsStateStale). UUID would resolve cleanly across reloads.
BfBotPer marshal payload — UUID lookups for cross-character preset references (e.g. spells targeting a specific name).
Actionbar listener
Adopt EEex_Actionbar_AddButtonsUpdatedListener in BfBotScn to refresh the cached spell list when the engine updates actionbar contents (kit change, memorized-spell change). Replaces the current cache-invalidation via QuickListsChecked / QuickListCountsReset / QuickListNotifyRemoved listeners; new API is the canonical hook.
Scripting-object listener
Opt-in EEex_AIBase_AddScriptingObjectUpdatedListener for cross-script-name tracking. Partial enabler for #19 (clones/summons distinguishable by script-name updates: Project Image clone = COPY, planetar = plangood, Simulacrum = TBD).
Deferred Phase 4 from #40 (EEex v1.0.0 upgrade umbrella). UUID adoption is also the partial enabler for #19 (clones/summons as casters), so this should land before #19's full feature work.
Scope
UUID-based sprite identity
Replace party-slot-index identity in
BfBot.Exec._casters[]and persistence payloads withEEex_Sprite_GetUUID/EEex_Sprite_GetFromUUID. Survives party reorder mid-cast and save reload without sprite-pointer staleness.BfBotExe._Advancecaster resolution — currently cachesCGameSpriteuserdata, freed across save reload (cf. Crash: pressing Stop after reloading a save mid-cast #38 fix, which works around this via name-comparison heuristics in_IsStateStale). UUID would resolve cleanly across reloads.BfBotPermarshal payload — UUID lookups for cross-character preset references (e.g. spells targeting a specific name).Actionbar listener
Adopt
EEex_Actionbar_AddButtonsUpdatedListenerinBfBotScnto refresh the cached spell list when the engine updates actionbar contents (kit change, memorized-spell change). Replaces the current cache-invalidation viaQuickListsChecked/QuickListCountsReset/QuickListNotifyRemovedlisteners; new API is the canonical hook.Scripting-object listener
Opt-in
EEex_AIBase_AddScriptingObjectUpdatedListenerfor cross-script-name tracking. Partial enabler for #19 (clones/summons distinguishable by script-name updates: Project Image clone =COPY, planetar =plangood, Simulacrum = TBD).Non-goals
Related