Skip to content

Game structs

9 struct typedefs from the decompilation's include/*.h, as written there. This game has no mod SDK yet, so there is no generated openpete_game_structs.h and no pinned sizes or offsets; pointer fields are guest virtual addresses.

Source links open the definition in the decompilation at commit 74e0f28fbb, the checkout this SDK was generated from.

CameraPosition

Source: include/camera.h:1-5

typedef struct {
    SphericalCoordinates pos;
    int yaw;
    int pitch;
} CameraPosition;

Pad

Source: include/pad.h:28-41

typedef struct { // e.g. 8006e508
    StickState unk1;
    char vibrationMode;
    char unk2[3];
    StickState unk2a[5];
    int unk3[4];

    char buttonPressed;
    char dpadPressed;
    char unk4;
    char unk4a;
    PadState state;
    PadState store[4]; // most important one is 0?
} Pad;

PadState

Source: include/pad.h:21-26

typedef struct {
    enum PadInput held; // currently held
    enum PadInput pressed; // newly pressed
    enum PadInput released; // newly released
    StickState stick;
} PadState;

Savepoint

Source: include/savepoint.h:1-14

typedef struct {
    int updated; // since entering?
    int collection[8]; // bitmask
    Vector3D spawnPos; // 0x24
    int unk30;
    int unk34;
    struct {
        int ptr; // upper byte is the data type
        int val;
    } savedMemory[4][64];
    int savedMemoryCount[4];
    int swimState; // 0 standing, 1 surface, 2 dive
    int unk5;
} Savepoint;

SphericalCoordinates

Source: include/common.h:16-18

typedef struct {
    int azimuth, elevation, radius;
} SphericalCoordinates;

Unknown

Source: include/tracers.h:1-7

typedef struct {
    int unk0;
    int unk4;
    int unk8;
    int unkC;
    int unk10;
} Unknown;

Vector3D

Source: include/common.h:4-6

typedef struct {
    int x, y, z;
} Vector3D;

Vector3D16

Source: include/common.h:12-14

typedef struct {
    short x, y, z;
} Vector3D16;

Vector3D8

Source: include/common.h:8-10

typedef struct {
    u_char x, y, z;
} Vector3D8;