Event Object animations!!#1877
Merged
Haselnussbomber merged 7 commits intoJul 14, 2026
Merged
Conversation
Contributor
Author
|
Also something I left out was touching SpawnObjectPacket, that should be updated but it's at least pretty clear now what that unknown is (for eobjs): ...
Client::Game::Object::GameObject.SetFateId(this,packet->FateId);
pbVar1 = (byte *)((longlong)&this->Union + 0x9c);
*pbVar1 = *pbVar1 ^ (packet->TargetableStatus << 3 ^ *(byte *)((longlong)&this->Union + 0x9c))
& 0x20;
Client::Game::Object::EventObject.SetSharedTimelineState(this,(ushort)packet->Unk2C,'\x01',0);
*(uint *)&this->field_0x1b4 = packet->Unk30;
if (packet->GimmickId == 0) {
...(I plan on updating that packet in another PR or someone else can do it :-)) |
Haselnussbomber
left a comment
Collaborator
There was a problem hiding this comment.
Would be nice if you could fix those xmldoc warnings.
There's no reason to refer to this old column anymore, it's been renamed in EXDSchema for a while.
Some small functions used for checking if the primary draw object is ready and what not. Is used heavily in EObj animation code!
This has been replaced by GetEventHandlersImpl.
This is used in EObj animation code, and pretty much just proxies what the GameObject function does.
This adds a variety of functions used for managing event obj animations, centered around making the disassembly much more readable. It looks bigger than it is, because it's spread across a few different systems.
I'm not 100% certain about map effects in general, but this is connected to figuring out how SGB animations work in more detail.
redstrate
force-pushed
the
work/redstrate/eobj-animation-woot
branch
from
July 14, 2026 02:56
aa1dcb6 to
9453fd6
Compare
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.
This whole system has been confusing me for a while, so I started documenting the functions I found in the disassembly the best I could. Now I have... this - which is adding a bunch of random crap so methods like EventObject.PlayAnimation can look like this 😍
This PR looks bigger than it really is,
SharedGroupLayoutInstanceandEventObjectduplicate a bunch of API surface and then also throughEventHandler. I almost certainly made a mistake somewhere because they can't decide whether indices are shorts or ints, and there's a billion functions with the wordTimelinein them. I tried to break up the commits so someone could be pulled though.Thanks to #1851 for figuring out that this is a bitmask, I took some of their documentation.