//! TODO: This file was generated automatically and might contain errors

#pragma once

#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"

// --- Actor CAWB ---

class ActorUnkCAWB_C4 : public Actor_C4 {
public:
    ActorUnkCAWB_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkCAWB : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkCAWB();

    /* 4C */ virtual ~ActorUnkCAWB() override;
};

class ActorProfileUnkCAWB : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkCAWB();
    ~ActorProfileUnkCAWB();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkCAWB *GetProfile();
};

// --- Actor CRFP ---

class ActorUnkCRFP_C4 : public Actor_C4 {
public:
    ActorUnkCRFP_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkCRFP : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkCRFP();

    /* 4C */ virtual ~ActorUnkCRFP() override;
};

class ActorProfileUnkCRFP : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkCRFP();
    ~ActorProfileUnkCRFP();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkCRFP *GetProfile();
};

// --- Actor FOMA ---

class ActorUnkFOMA_C4 : public Actor_C4 {
public:
    ActorUnkFOMA_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOMA : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOMA();

    /* 4C */ virtual ~ActorUnkFOMA() override;
};

class ActorProfileUnkFOMA : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOMA();
    ~ActorProfileUnkFOMA();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOMA *GetProfile();
};

// --- Actor FOMB ---

class ActorUnkFOMB_C4 : public Actor_C4 {
public:
    ActorUnkFOMB_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOMB : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOMB();

    /* 4C */ virtual ~ActorUnkFOMB() override;
};

class ActorProfileUnkFOMB : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOMB();
    ~ActorProfileUnkFOMB();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOMB *GetProfile();
};

// --- Actor FOMC ---

class ActorUnkFOMC_C4 : public Actor_C4 {
public:
    ActorUnkFOMC_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOMC : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOMC();

    /* 4C */ virtual ~ActorUnkFOMC() override;
};

class ActorProfileUnkFOMC : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOMC();
    ~ActorProfileUnkFOMC();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOMC *GetProfile();
};

// --- Actor FOMR ---

class ActorUnkFOMR_C4 : public Actor_C4 {
public:
    ActorUnkFOMR_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOMR : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOMR();

    /* 4C */ virtual ~ActorUnkFOMR() override;
};

class ActorProfileUnkFOMR : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOMR();
    ~ActorProfileUnkFOMR();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOMR *GetProfile();
};

// --- Actor FOMS ---

class ActorUnkFOMS_C4 : public Actor_C4 {
public:
    ActorUnkFOMS_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOMS : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOMS();

    /* 4C */ virtual ~ActorUnkFOMS() override;
};

class ActorProfileUnkFOMS : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOMS();
    ~ActorProfileUnkFOMS();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOMS *GetProfile();
};

// --- Actor FOPD ---

class ActorUnkFOPD_C4 : public Actor_C4 {
public:
    ActorUnkFOPD_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkFOPD : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkFOPD();

    /* 4C */ virtual ~ActorUnkFOPD() override;
};

class ActorProfileUnkFOPD : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkFOPD();
    ~ActorProfileUnkFOPD();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkFOPD *GetProfile();
};

// --- Actor GOCP ---

class ActorUnkGOCP_C4 : public Actor_C4 {
public:
    ActorUnkGOCP_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkGOCP : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkGOCP();

    /* 4C */ virtual ~ActorUnkGOCP() override;
};

class ActorProfileUnkGOCP : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkGOCP();
    ~ActorProfileUnkGOCP();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkGOCP *GetProfile();
};

// --- Actor GORP ---

class ActorUnkGORP_C4 : public Actor_C4 {
public:
    ActorUnkGORP_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkGORP : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkGORP();

    /* 4C */ virtual ~ActorUnkGORP() override;
};

class ActorProfileUnkGORP : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkGORP();
    ~ActorProfileUnkGORP();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkGORP *GetProfile();
};

// --- Actor NCCA ---

class ActorUnkNCCA_C4 : public Actor_C4 {
public:
    ActorUnkNCCA_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkNCCA : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkNCCA();

    /* 4C */ virtual ~ActorUnkNCCA() override;
};

class ActorProfileUnkNCCA : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkNCCA();
    ~ActorProfileUnkNCCA();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkNCCA *GetProfile();
};

// --- Actor NCCS ---

class ActorUnkNCCS_C4 : public Actor_C4 {
public:
    ActorUnkNCCS_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkNCCS : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkNCCS();

    /* 4C */ virtual ~ActorUnkNCCS() override;
};

class ActorProfileUnkNCCS : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkNCCS();
    ~ActorProfileUnkNCCS();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkNCCS *GetProfile();
};

// --- Actor WAMA ---

class ActorUnkWAMA_C4 : public Actor_C4 {
public:
    ActorUnkWAMA_C4(Actor *param1);

    /* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
    /* 04 */ virtual void vfunc_04() override;
    /* 08 */ virtual void vfunc_08() override;
    /* 0C */ virtual void vfunc_0C(unk32 param1) override;
};

class ActorUnkWAMA : public Actor {
public:
    /* 00 (base) */
    /* 94 */

    ActorUnkWAMA();

    /* 4C */ virtual ~ActorUnkWAMA() override;
};

class ActorProfileUnkWAMA : public ActorProfile_Derived1 {
public:
    /* 00 (base) */

    ActorProfileUnkWAMA();
    ~ActorProfileUnkWAMA();

    /* 0C */ virtual Actor *Create();

    static ActorProfileUnkWAMA *GetProfile();
};
