Skip to content

New EEex Feature: Tweak EEex_GetUserDataAuxiliary()#128

Open
4Luke4 wants to merge 5 commits into
Bubb13:develfrom
4Luke4:get-ud-aux
Open

New EEex Feature: Tweak EEex_GetUserDataAuxiliary()#128
4Luke4 wants to merge 5 commits into
Bubb13:develfrom
4Luke4:get-ud-aux

Conversation

@4Luke4

@4Luke4 4Luke4 commented May 23, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces a significant refactor and extension of the user data auxiliary (UDAux) marshalling system, as well as new infrastructure for handling persistent auxiliary data for game objects.

Key changes are grouped below:

UDAux Marshalling System Refactor and Extension

  • Refactored the sprite auxiliary data marshalling system to use a new, modular table bundle approach, replacing the previous custom serialization logic with calls to general-purpose functions (EEex_Marshal_Private_*). This simplifies the code and centralizes marshalling logic.
  • Added new marshal handlers for sprite auxiliary data, enabling export/import of timed effects, equipped effects, and item auxiliary data, including logic for handling pending item auxiliary data during sprite load.

Persistent Auxiliary Data Support

  • Introduced EEex_UserDataAuxiliaryPersistent and extended EEex_GetUserDataAuxiliary to support marking auxiliary data as persistent, allowing certain user data to survive across game sessions. In particular:
    • CGameContainer, CItem (container-owned)
    • CGameEffect, CItem (sprite-owned)
    • CStore, CStoreFileItem

Requires: Bubb13/InfinityLoader#9.

Notes

@Bubb13
As far as CGameEffect userdata are concerned, this solution does not work for Local variables stored as attached effects on CRE files, i.e. op187 effects (the same most likely holds for 265 / 309). However, that's probably intended since those are kinda special...

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.

1 participant