forked from 4z0t/SCFA-python-patcher
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Description
- Explain the notation used in Moho/gpg libs (its similar to hungarian notation), easily visible in demangled names for vftables/RTTI locators:
| Notation | Meaning |
|---|---|
C{Name} |
Class of Name |
I{Name} |
Interface of Name |
C{Name}Impl |
Class Implementation of Interface of Name |
S{Name} |
Serializable type of {Name} (synchronized between sim and UI) |
E{Name} |
Enum of Name |
R{Name} |
Not sure. Includes blueprints, scm resource, and some debug overlays. |
{Name}TypeInfo |
Part of Reflection (RType). Type info for classes and enums. Useful for finding save/load functions. |
R{Type}Type<{Name}>{Name}RType<{Name}> |
Type info of container classes. |
Moho::{Name}RType<{Name}> |
Part of Reflection. Type info for templated broadcasters/listeners. |
- Explain how to reconstruct structures from the gpg::SerHelperBase classes:
{Name}Serializer(xrefgpg::SerSaveLoadHelper<{Name}>),{Name}SaveConstruct(xrefgpg::SerSaveConstructHelper<{Name}>),PrimitiveSerHelper<{Name}>, and{Name}Construct(xrefgpg::SerConstructHelper<{Name}>). In short the vftables for those classes are xrefs to or contain functions with xrefs to the structure save/load functions, and those save/load functions describe the structure's offsets using xrefs to other types or archive read/write primitive/pointer calls.
Course of Action
Write the documents and add them to patterns.md or some other place with guides (for example the wiki page for the repo).
Test Plan
Have someone else read over it to see it makes sense.
Metadata
Metadata
Assignees
Labels
No labels