#pragma once

#include "System/SysNew.hpp"
#include "types.h"

class GameModeBase {
public:
    /* 00 (vtable) */
    /* 04 */

    GameModeBase();

    // data_02044018 vtable
    /* 00 */ virtual ~GameModeBase();
    /* 08 */ virtual void vfunc_08();     // Init
    /* 0C */ virtual void vfunc_0C() = 0; // Update
    /* 10 */ virtual void vfunc_10();
    /* 14 */ virtual void vfunc_14();
    /* 18 */ virtual void vfunc_18();
    /* 1C */ virtual void vfunc_1C();
    /* 20 */ virtual void vfunc_20();
    /* 24 */ virtual unk32 vfunc_24();
    /* 28 */
};

typedef GameModeBase *(*GameModeCreateCallback)(void);
