struct GroundScript_ExecutePP_3
{
    // size: 0xC
    u8 *scriptPointer;
    s16 scriptType;
    s16 unk6;
    u8 unk8;
};

struct GroundScript_ExecutePP_1_sub
{
    // size: 0x60
    /* 0x0 */ s16 scriptType;
    /* 0x2 */ s16 unk2;
    /* 0x4 */ u8 *scriptPointer1;
    /* 0x8 */ u8 *scriptPointer2;
    /* 0xC */ u16 unkC;
    /* 0xE */ u8 unkE;
    /* 0xF */ u8 fillF;
    /* 0x10 */ u32 unk10;
    /* 0x14 */ u32 unk14;
    /* 0x18 */ u8 fill18[0x22 - 0x18];
    /* 0x22 */ u16 unk22;
    /* 0x24 */ u16 unk24;
    /* 0x26 */ u32 unk26;
    u8 fill50[0x60 - 0x2A];
} __attribute__((packed));

typedef void (*Callback)(u32, void *);
struct GroundScript_ExecutePP_1_sub2
{
    Callback callbacks[10]; // IDK the size..
};

struct GroundScript_ExecutePP_1
{
    struct GroundScript_ExecutePP_1_sub2 *unk0;
    u32 unk4;
    u32 fill8;
    u32 unkC;
    u16 unk10;
    u8 unk12;
    u8 fill18[0x24 - 0x13];
    struct GroundScript_ExecutePP_1_sub unk24;
    struct GroundScript_ExecutePP_1_sub unk84;
    u16 unkE4;
};
