mm/include/z64actor_dlftbls.h
Derek Hensley d0cb5d9be4
InitVars -> Profile (#1697)
* ActorProfile

* EffectSsProfile

* TransitionProfile

* variables.txt
2024-09-27 22:12:20 -07:00

51 lines
1.5 KiB
C

#ifndef Z64ACTOR_DLFTBLS_H
#define Z64ACTOR_DLFTBLS_H
#include "PR/ultratypes.h"
#include "stdint.h"
#include "segment_symbols.h"
// This value is hardcoded to be the size of ovl_Arrow_Fire which currently is the biggest actor that uses the AM_FIELD.
DECLARE_OVERLAY_SEGMENT(Arrow_Fire)
#define AM_FIELD_SIZE SEGMENT_SIZE(ovl_Arrow_Fire)
struct ActorProfile;
#define DEFINE_ACTOR(_name, enumValue, _allocType, _debugName) enumValue,
#define DEFINE_ACTOR_INTERNAL(_name, enumValue, _allocType, _debugName) enumValue,
#define DEFINE_ACTOR_UNSET(enumValue) enumValue,
typedef enum ActorId {
#include "tables/actor_table.h"
/* 0x2B2 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX"
} ActorId;
#undef DEFINE_ACTOR
#undef DEFINE_ACTOR_INTERNAL
#undef DEFINE_ACTOR_UNSET
typedef enum AllocType {
/* 0 */ ALLOCTYPE_NORMAL,
/* 1 */ ALLOCTYPE_ABSOLUTE,
/* 2 */ ALLOCTYPE_PERMANENT
} AllocType;
typedef struct ActorOverlay {
/* 0x00 */ RomFile file;
/* 0x08 */ void* vramStart;
/* 0x0C */ void* vramEnd;
/* 0x10 */ void* loadedRamAddr; // original name: "allocp"
/* 0x14 */ struct ActorProfile* profile;
/* 0x18 */ char* name;
/* 0x1C */ u16 allocType; // bit 0: don't allocate memory, use actorContext->0x250? bit 1: Always keep loaded?
/* 0x1E */ s8 numLoaded; // original name: "clients"
} ActorOverlay; // size = 0x20
void ActorOverlayTable_Init(void);
void ActorOverlayTable_Cleanup(void);
extern ActorOverlay gActorOverlayTable[ACTOR_ID_MAX];
extern ActorId gMaxActorId;
#endif