pokediamond/include/overlay_manager.h

37 lines
1.2 KiB
C

#ifndef POKEDIAMOND_OVERLAY_MANAGER_H
#define POKEDIAMOND_OVERLAY_MANAGER_H
#include "nitro/types.h"
#include "FS_overlay.h"
#include "heap.h"
struct OverlayManager;
typedef struct OverlayManagerTemplate {
BOOL (*initFunc)(struct OverlayManager *manager, u32 *status);
BOOL (*mainFunc)(struct OverlayManager *manager, u32 *status);
BOOL (*exitFunc)(struct OverlayManager *manager, u32 *status);
FSOverlayID ovly;
} OverlayManagerTemplate;
struct OverlayManager {
struct OverlayManagerTemplate template;
u32 managerStatus;
u32 overlayStatus;
s32 *unk18; // args?
void *data;
struct SaveData *save;
u32 unk24;
};
struct OverlayManager *OverlayManager_New(const struct OverlayManagerTemplate *template, s32 *a1, enum HeapID heapID);
void OverlayManager_Delete(struct OverlayManager *overlayManager);
void *OverlayManager_CreateAndGetData(struct OverlayManager *overlayManager, u32 size, enum HeapID heapID);
void *OverlayManager_GetData(struct OverlayManager *overlayManager);
void OverlayManager_FreeData(struct OverlayManager *overlayManager);
s32 *OverlayManager_GetField18(struct OverlayManager *overlayManager);
BOOL OverlayManager_Run(struct OverlayManager *overlayManager);
#endif // POKEDIAMOND_OVERLAY_MANAGER_H