pokeplatinum/include/overlay005/resource_heap.h
Alexandre Sollier 975da39c38
Document surf mount rendering and field effect manager (#924)
Signed-off-by: Kuruyia <github@kuruyia.net>
2026-02-04 10:31:28 -08:00

31 lines
1002 B
C

#ifndef POKEPLATINUM_RESOURCE_HEAP_H
#define POKEPLATINUM_RESOURCE_HEAP_H
#include "constants/heap.h"
#include "narc.h"
typedef struct ResourceHeapItemHeader {
void *data;
u32 id;
} ResourceHeapItemHeader;
typedef struct ResourceHeap {
enum HeapID parentHeapID;
enum HeapID heapID;
u32 itemCount;
u32 heapSize;
u32 itemHeadersSize;
ResourceHeapItemHeader *items;
} ResourceHeap;
ResourceHeap *ResourceHeap_New(enum HeapID parentHeapID, enum HeapID heapID, u32 itemPoolSize, u32 itemCount);
void ResourceHeap_Free(ResourceHeap *resHeap);
void *ResourceHeap_AllocItem(ResourceHeap *resHeap, u32 id, u32 dataSize, BOOL allocAtEnd);
void ResourceHeap_FreeItem(ResourceHeap *resHeap, u32 id);
void *ResourceHeap_GetItemData(ResourceHeap *resHeap, u32 id);
BOOL ResourceHeap_HasItem(ResourceHeap *resHeap, u32 id);
void *ResourceHeap_LoadMemberFromNARC(ResourceHeap *resHeap, u32 id, NARC *narc, u32 memberIndex, BOOL allocAtEnd);
#endif // POKEPLATINUM_RESOURCE_HEAP_H