Skip to content

Additional patterns in RE #10

@lL1l1

Description

@lL1l1

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 (xref gpg::SerSaveLoadHelper<{Name}>), {Name}SaveConstruct (xref gpg::SerSaveConstructHelper<{Name}>), PrimitiveSerHelper<{Name}>, and {Name}Construct (xref gpg::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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions