Split headers to be more similar to OOT (#13)

This commit is contained in:
Rozelette 2020-08-31 18:02:37 -05:00 committed by GitHub
parent de7a521857
commit 0844c24773
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 31624 additions and 31511 deletions

View File

@ -1,11 +0,0 @@
#include <PR/ultratypes.h>
#include <PR/gbi.h>
#include <PR/sched.h>
#include <io/controller.h>
#include <osint.h>
#include <viint.h>
#include <guint.h>
#include <os.h>
#include <stdlib.h>
#include <xstdio.h>
#include <unk.h>

26
include/color.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef _COLOR_H_
#define _COLOR_H_
#include <PR/ultratypes.h>
typedef struct {
/* 0x0 */ u8 red;
/* 0x1 */ u8 green;
/* 0x2 */ u8 blue;
/* 0x3 */ u8 alpha;
} ColorRGBA8; // size = 0x4
typedef struct {
/* 0x0 */ u8 red;
/* 0x1 */ u8 green;
/* 0x2 */ u8 blue;
} RGB; // size = 0x3
typedef struct {
/* 0x0 */ u8 red;
/* 0x1 */ u8 green;
/* 0x2 */ u8 blue;
/* 0x3 */ u8 alpha;
} RGBA8; // size = 0x4
#endif

File diff suppressed because it is too large Load Diff

13105
include/functions_overlay.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,9 @@
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include "macros.h"
#include "structs.h"
#include "functions.h"
#include "z64.h"
#include "regs.h"
#include "functions.h"
#include "variables.h"
#include "macros.h"

8
include/global_overlay.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _GLOBAL_OVERLAY_H_
#define _GLOBAL_OVERLAY_H_
#include "global.h"
#include "functions_overlay.h"
#include "variables_overlay.h"
#endif

58
include/ichain.h Normal file
View File

@ -0,0 +1,58 @@
#ifndef _ICHAIN_H_
#define _ICHAIN_H_
typedef struct {
u32 cont: 1;
u32 type: 4;
u32 offset: 11;
s32 value: 16;
} InitChainEntry;
#define OFFSETOF(structure, member) ((size_t)&(((structure*)0)->member))
typedef enum {
/* 0x0 */ ICHAINTYPE_U8, // sets byte
/* 0x1 */ ICHAINTYPE_S8,
/* 0x2 */ ICHAINTYPE_U16, // sets short
/* 0x3 */ ICHAINTYPE_S16,
/* 0x4 */ ICHAINTYPE_U32, // sets word
/* 0x5 */ ICHAINTYPE_S32,
/* 0x6 */ ICHAINTYPE_F32, // sets float
/* 0x7 */ ICHAINTYPE_F32_DIV1000, // sets float divided by 1000
/* 0x8 */ ICHAINTYPE_VEC3F, // sets Vec3f members
/* 0x9 */ ICHAINTYPE_VEC3F_DIV1000, // sets Vec3f members divided by 1000
/* 0xA */ ICHAINTYPE_VEC3S // sets Vec3s members
} InitChainType;
/**
* ICHAIN macros generate an init chain entry of the following form:
* * (e >> 31) & 0x0001 == Continue Parsing after this entry
* * (e >> 27) & 0x000F == Type
* * (e >> 16) & 0x07FF == Offset from start of instance to write initial value
* * e & 0xFFFF == Initial Value
*
* Arguments:
* * type ----- value from enum `InitChainType`
* * member --- name of member inside `Actor` structure to use as the offset
* * value ---- s16 value to use
* * cont ----- ICHAIN_CONTINUE (or ICHAIN_STOP) to continue (or stop) parsing
*/
#define ICHAIN(type, member, value, cont) \
{ cont, type, OFFSETOF(Actor, member), value }
#define ICHAIN_U8(member, val, cont) ICHAIN(ICHAINTYPE_U8, member, val, cont)
#define ICHAIN_S8(member, val, cont) ICHAIN(ICHAINTYPE_S8, member, val, cont)
#define ICHAIN_U16(member, val, cont) ICHAIN(ICHAINTYPE_U16, member, val, cont)
#define ICHAIN_S16(member, val, cont) ICHAIN(ICHAINTYPE_S16, member, val, cont)
#define ICHAIN_U32(member, val, cont) ICHAIN(ICHAINTYPE_U32, member, val, cont)
#define ICHAIN_S32(member, val, cont) ICHAIN(ICHAINTYPE_S32, member, val, cont)
#define ICHAIN_F32(member, val, cont) ICHAIN(ICHAINTYPE_F32, member, val, cont)
#define ICHAIN_F32_DIV1000(member, val, cont) ICHAIN(ICHAINTYPE_F32_DIV1000, member, val, cont)
#define ICHAIN_VEC3F(member, val, cont) ICHAIN(ICHAINTYPE_VEC3F, member, val, cont)
#define ICHAIN_VEC3F_DIV1000(member, val, cont) ICHAIN(ICHAINTYPE_VEC3F_DIV1000, member, val, cont)
#define ICHAIN_VEC3S(member, val, cont) ICHAIN(ICHAINTYPE_VEC3S, member, val, cont)
#define ICHAIN_CONTINUE 1
#define ICHAIN_STOP 0
#endif

View File

@ -1,7 +1,7 @@
#ifndef _SEGMENT_H_
#define _SEGMENT_H_
#include <structs.h>
#include <z64.h>
extern UNK_TYPE D_04029CB0; // D_04029CB0
extern UNK_TYPE D_04029CF0; // D_04029CF0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

13780
include/variables_overlay.h Normal file

File diff suppressed because it is too large Load Diff

1809
include/z64.h Normal file

File diff suppressed because it is too large Load Diff

928
include/z64actor.h Normal file
View File

@ -0,0 +1,928 @@
#ifndef _Z64ACTOR_H_
#define _Z64ACTOR_H_
#include <PR/ultratypes.h>
#include <z64math.h>
#include <z64collision_check.h>
#include <unk.h>
struct Actor;
struct GlobalContext;
struct LightMapper;
struct BgPolygon;
typedef void(*actor_func)(struct Actor* this, struct GlobalContext* ctxt);
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3s rot;
} PosRot; // size = 0x14
typedef struct {
/* 0x00 */ u8 attack[32];
} ActorDamageChart; // size = 0x20
typedef struct {
/* 0x00 */ s32 unk0;
/* 0x04 */ s32 unk4;
/* 0x08 */ f32 unk8;
/* 0x0C */ f32 unkC;
/* 0x10 */ f32 unk10;
/* 0x14 */ f32 unk14;
/* 0x18 */ f32 unk18;
/* 0x1C */ f32 unk1C;
/* 0x20 */ f32 unk20;
/* 0x24 */ f32 unk24;
/* 0x28 */ f32 unk28;
/* 0x2C */ f32 unk2C;
/* 0x30 */ s16 unk30;
/* 0x32 */ s16 unk32;
/* 0x34 */ s16 unk34;
/* 0x36 */ s16 unk36;
/* 0x38 */ s16 unk38;
/* 0x3A */ s16 unk3A;
} ActorEnTest20C; // size = 0x3C
// Related to collision?
typedef struct {
/* 0x00 */ ActorDamageChart* damageChart;
/* 0x04 */ Vec3f displacement;
/* 0x10 */ s16 unk10;
/* 0x12 */ s16 unk12;
/* 0x14 */ s16 unk14;
/* 0x16 */ u8 mass;
/* 0x17 */ u8 health;
/* 0x18 */ u8 damage;
/* 0x19 */ u8 damageEffect;
/* 0x1A */ u8 impactEffect;
/* 0x1B */ UNK_TYPE1 pad1B[0x1];
} ActorA0; // size = 0x1C
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ u8 type;
/* 0x03 */ u8 room;
/* 0x04 */ u32 flags;
/* 0x08 */ s16 objectId;
/* 0x0C */ u32 instanceSize;
/* 0x10 */ actor_func init;
/* 0x14 */ actor_func destroy;
/* 0x18 */ actor_func update;
/* 0x1C */ actor_func draw;
} ActorInit; // size = 0x20
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
/* 0x08 */ void* vramStart;
/* 0x0C */ void* vramEnd;
/* 0x10 */ void* loadedRamAddr; // original name: "allocp"
/* 0x14 */ ActorInit* initInfo;
/* 0x18 */ char* name;
/* 0x1C */ u16 allocType; // bit 0: don't allocate memory, use actorContext->0x250? bit 1: Always keep loaded?
/* 0x1E */ s8 nbLoaded; // original name: "clients"
/* 0x1F */ UNK_TYPE1 pad1F[0x1];
} ActorOverlay; // size = 0x20
typedef void(*actor_shadow_draw_func)(struct Actor* actor, struct LightMapper* mapper, struct GlobalContext* ctxt);
typedef struct {
/* 0x00 */ Vec3s rot;
/* 0x08 */ f32 yDisplacement;
/* 0x0C */ actor_shadow_draw_func shadowDrawFunc;
/* 0x10 */ f32 scale;
/* 0x14 */ u8 alphaScale; // 255 means always draw full opacity if visible
} ActorShape; // size = 0x18
typedef struct Actor {
/* 0x000 */ s16 id;
/* 0x002 */ u8 type;
/* 0x003 */ s8 room;
/* 0x004 */ u32 flags; // bit 20: is playing cutscene; bit 22: disable positional lights if bit 28 is not set; bit 28: enable positional lights on actor
/* 0x008 */ PosRot initPosRot;
/* 0x01C */ s16 params;
/* 0x01E */ s8 objBankIndex;
/* 0x01F */ UNK_TYPE1 unk1F;
/* 0x020 */ u16 unk20;
/* 0x022 */ u16 unk22;
/* 0x024 */ PosRot currPosRot;
/* 0x038 */ s8 cutscene;
/* 0x039 */ u8 unk39;
/* 0x03A */ UNK_TYPE1 pad3A[0x2];
/* 0x03C */ PosRot topPosRot;
/* 0x050 */ u16 unk50;
/* 0x052 */ UNK_TYPE1 pad52[0x2];
/* 0x054 */ f32 unk54;
/* 0x058 */ Vec3f scale;
/* 0x064 */ Vec3f velocity;
/* 0x070 */ f32 speedXZ;
/* 0x074 */ f32 gravity;
/* 0x078 */ f32 minVelocityY;
/* 0x07C */ struct BgPolygon* wallPoly;
/* 0x080 */ struct BgPolygon* floorPoly;
/* 0x084 */ u8 wallPolySource;
/* 0x085 */ u8 floorPolySource;
/* 0x086 */ UNK_TYPE1 pad86[0x2];
/* 0x088 */ f32 unk88;
/* 0x08C */ f32 unk8C;
/* 0x090 */ u16 unk90;
/* 0x092 */ s16 rotTowardsLinkY;
/* 0x094 */ f32 sqrdDistanceFromLink;
/* 0x098 */ f32 xzDistanceFromLink;
/* 0x09C */ f32 yDistanceFromLink;
/* 0x0A0 */ ActorA0 unkA0;
/* 0x0BC */ ActorShape shape;
/* 0x0D4 */ UNK_TYPE1 padD4[0x18];
/* 0x0EC */ Vec3f unkEC;
/* 0x0F8 */ f32 unkF8;
/* 0x0FC */ f32 unkFC;
/* 0x100 */ f32 unk100;
/* 0x104 */ f32 unk104;
/* 0x108 */ Vec3f lastPos;
/* 0x114 */ u8 unk114;
/* 0x115 */ u8 unk115;
/* 0x116 */ u16 textId;
/* 0x118 */ u16 freeze;
/* 0x11A */ u16 hitEffectParams; // TODO make into bitfield
/* 0x11C */ u8 hitEffectIntensity;
/* 0x11D */ u8 hasBeenDrawn;
/* 0x11E */ UNK_TYPE1 pad11E[0x1];
/* 0x11F */ u8 naviEnemyId;
/* 0x120 */ struct Actor* parent;
/* 0x124 */ struct Actor* child;
/* 0x128 */ struct Actor* prev;
/* 0x12C */ struct Actor* next;
/* 0x130 */ actor_func init;
/* 0x134 */ actor_func destroy;
/* 0x138 */ actor_func update;
/* 0x13C */ actor_func draw;
/* 0x140 */ ActorOverlay* overlayEntry;
} Actor; // size = 0x144
typedef struct {
/* 0x000 */ Actor actor;
/* 0x144 */ s32 dynaPolyId;
/* 0x148 */ f32 unk148;
/* 0x14C */ f32 unk14C;
/* 0x150 */ s16 unk150;
/* 0x152 */ s16 unk152;
/* 0x154 */ u32 unk154;
/* 0x158 */ u8 dynaFlags;
/* 0x159 */ UNK_TYPE1 pad159[0x3];
} DynaPolyActor; // size = 0x15C
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ UNK_TYPE1 pad144[0x3];
/* 0x147 */ s8 unk147;
/* 0x148 */ UNK_TYPE1 pad148[0x3];
/* 0x14B */ u8 unk14B;
/* 0x14C */ UNK_TYPE1 pad14C[0x7];
/* 0x153 */ u8 unk153;
/* 0x154 */ UNK_TYPE1 pad154[0x1F8];
/* 0x34C */ Actor* unk34C;
/* 0x350 */ UNK_TYPE1 pad350[0x44];
/* 0x394 */ u8 unk394;
/* 0x395 */ UNK_TYPE1 pad395[0x37];
/* 0x3CC */ s16 unk3CC;
/* 0x3CE */ s8 unk3CE;
/* 0x3CF */ UNK_TYPE1 pad3CF[0x361];
/* 0x730 */ Actor* unk730;
/* 0x734 */ UNK_TYPE1 pad734[0x338];
/* 0xA6C */ u32 unkA6C;
/* 0xA70 */ u32 unkA70;
/* 0xA74 */ u32 unkA74;
/* 0xA78 */ UNK_TYPE1 padA78[0x8];
/* 0xA80 */ Actor* unkA80;
/* 0xA84 */ UNK_TYPE1 padA84[0x4];
/* 0xA88 */ Actor* unkA88;
/* 0xA8C */ f32 unkA8C;
/* 0xA90 */ UNK_TYPE1 padA90[0x44];
/* 0xAD4 */ s16 unkAD4;
/* 0xAD6 */ UNK_TYPE1 padAD6[0x8];
/* 0xADE */ u8 unkADE;
/* 0xADF */ UNK_TYPE1 padADF[0x4];
/* 0xAE3 */ s8 unkAE3;
/* 0xAE4 */ UNK_TYPE1 padAE4[0x44];
/* 0xB28 */ s16 unkB28;
/* 0xB2A */ UNK_TYPE1 padB2A[0x72];
/* 0xB9C */ Vec3f unkB9C;
/* 0xBA8 */ UNK_TYPE1 padBA8[0x1D0];
} ActorPlayer; // size = 0xD78
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ actor_func update;
/* 0x148 */ s16 collectibleFlagId;
/* 0x14A */ s16 unk14A;
/* 0x14C */ s16 unk14C;
/* 0x14E */ s16 unk14E;
/* 0x150 */ s16 unk150;
/* 0x152 */ s16 unk152;
/* 0x154 */ f32 unk154;
/* 0x158 */ ColCylinder collision;
/* 0x1A4 */ UNK_TYPE1 pad1A4[0x4];
} ActorEnItem00; // size = 0x1A8
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ actor_func update;
/* 0x148 */ ColCylinder collision;
/* 0x194 */ UNK_TYPE1 pad194[0x14];
} ActorEnAObj; // size = 0x1A8
typedef enum {
/* 0x000 */ ACTOR_PLAYER,
/* 0x001 */ ACTOR_EN_TEST,
/* 0x002 */ ACTOR_EN_GIRLA,
/* 0x003 */ ACTOR_EN_PART,
/* 0x004 */ ACTOR_EN_LIGHT,
/* 0x005 */ ACTOR_EN_DOOR,
/* 0x006 */ ACTOR_EN_BOX,
/* 0x007 */ ACTOR_EN_PAMETFROG,
/* 0x008 */ ACTOR_EN_OKUTA,
/* 0x009 */ ACTOR_EN_BOM,
/* 0x00A */ ACTOR_EN_WALLMAS,
/* 0x00B */ ACTOR_EN_DODONGO,
/* 0x00C */ ACTOR_EN_FIREFLY,
/* 0x00D */ ACTOR_EN_HORSE,
/* 0x00E */ ACTOR_EN_ITEM00,
/* 0x00F */ ACTOR_EN_ARROW,
/* 0x010 */ ACTOR_EN_ELF,
/* 0x011 */ ACTOR_EN_NIW,
/* 0x012 */ ACTOR_EN_TITE,
/* 0x013 */ ACTOR_UNSET_13,
/* 0x014 */ ACTOR_EN_PEEHAT,
/* 0x015 */ ACTOR_EN_BUTTE,
/* 0x016 */ ACTOR_EN_INSECT,
/* 0x017 */ ACTOR_EN_FISH,
/* 0x018 */ ACTOR_EN_HOLL,
/* 0x019 */ ACTOR_EN_DINOFOS,
/* 0x01A */ ACTOR_EN_HATA,
/* 0x01B */ ACTOR_EN_ZL1,
/* 0x01C */ ACTOR_EN_VIEWER,
/* 0x01D */ ACTOR_EN_BUBBLE,
/* 0x01E */ ACTOR_DOOR_SHUTTER,
/* 0x01F */ ACTOR_UNSET_1F,
/* 0x020 */ ACTOR_EN_BOOM,
/* 0x021 */ ACTOR_EN_TORCH2,
/* 0x022 */ ACTOR_EN_MINIFROG,
/* 0x023 */ ACTOR_UNSET_23,
/* 0x024 */ ACTOR_EN_ST,
/* 0x025 */ ACTOR_UNSET_25,
/* 0x026 */ ACTOR_EN_A_OBJ,
/* 0x027 */ ACTOR_OBJ_WTURN,
/* 0x028 */ ACTOR_EN_RIVER_SOUND,
/* 0x029 */ ACTOR_UNSET_29,
/* 0x02A */ ACTOR_EN_OSSAN,
/* 0x02B */ ACTOR_UNSET_2B,
/* 0x02C */ ACTOR_UNSET_2C,
/* 0x02D */ ACTOR_EN_FAMOS,
/* 0x02E */ ACTOR_UNSET_2E,
/* 0x02F */ ACTOR_EN_BOMBF,
/* 0x030 */ ACTOR_UNSET_30,
/* 0x031 */ ACTOR_UNSET_31,
/* 0x032 */ ACTOR_EN_AM,
/* 0x033 */ ACTOR_EN_DEKUBABA,
/* 0x034 */ ACTOR_EN_M_FIRE1,
/* 0x035 */ ACTOR_EN_M_THUNDER,
/* 0x036 */ ACTOR_BG_BREAKWALL,
/* 0x037 */ ACTOR_UNSET_37,
/* 0x038 */ ACTOR_DOOR_WARP1,
/* 0x039 */ ACTOR_OBJ_SYOKUDAI,
/* 0x03A */ ACTOR_ITEM_B_HEART,
/* 0x03B */ ACTOR_EN_DEKUNUTS,
/* 0x03C */ ACTOR_EN_BBFALL,
/* 0x03D */ ACTOR_ARMS_HOOK,
/* 0x03E */ ACTOR_EN_BB,
/* 0x03F */ ACTOR_BG_KEIKOKU_SPR,
/* 0x040 */ ACTOR_UNSET_40,
/* 0x041 */ ACTOR_EN_WOOD02,
/* 0x042 */ ACTOR_UNSET_42,
/* 0x043 */ ACTOR_EN_DEATH,
/* 0x044 */ ACTOR_EN_MINIDEATH,
/* 0x045 */ ACTOR_UNSET_45,
/* 0x046 */ ACTOR_UNSET_46,
/* 0x047 */ ACTOR_EN_VM,
/* 0x048 */ ACTOR_DEMO_EFFECT,
/* 0x049 */ ACTOR_DEMO_KANKYO,
/* 0x04A */ ACTOR_EN_FLOORMAS,
/* 0x04B */ ACTOR_UNSET_4B,
/* 0x04C */ ACTOR_EN_RD,
/* 0x04D */ ACTOR_BG_F40_FLIFT,
/* 0x04E */ ACTOR_UNSET_4E,
/* 0x04F */ ACTOR_OBJ_MURE,
/* 0x050 */ ACTOR_EN_SW,
/* 0x051 */ ACTOR_OBJECT_KANKYO,
/* 0x052 */ ACTOR_UNSET_52,
/* 0x053 */ ACTOR_UNSET_53,
/* 0x054 */ ACTOR_EN_HORSE_LINK_CHILD,
/* 0x055 */ ACTOR_DOOR_ANA,
/* 0x056 */ ACTOR_UNSET_56,
/* 0x057 */ ACTOR_UNSET_57,
/* 0x058 */ ACTOR_UNSET_58,
/* 0x059 */ ACTOR_UNSET_59,
/* 0x05A */ ACTOR_UNSET_5A,
/* 0x05B */ ACTOR_EN_ENCOUNT1,
/* 0x05C */ ACTOR_DEMO_TRE_LGT,
/* 0x05D */ ACTOR_UNSET_5D,
/* 0x05E */ ACTOR_UNSET_5E,
/* 0x05F */ ACTOR_EN_ENCOUNT2,
/* 0x060 */ ACTOR_EN_FIRE_ROCK,
/* 0x061 */ ACTOR_BG_CTOWER_ROT,
/* 0x062 */ ACTOR_MIR_RAY,
/* 0x063 */ ACTOR_UNSET_63,
/* 0x064 */ ACTOR_EN_SB,
/* 0x065 */ ACTOR_EN_BIGSLIME,
/* 0x066 */ ACTOR_EN_KAREBABA,
/* 0x067 */ ACTOR_EN_IN,
/* 0x068 */ ACTOR_UNSET_68,
/* 0x069 */ ACTOR_EN_RU,
/* 0x06A */ ACTOR_EN_BOM_CHU,
/* 0x06B */ ACTOR_EN_HORSE_GAME_CHECK,
/* 0x06C */ ACTOR_EN_RR,
/* 0x06D */ ACTOR_UNSET_6D,
/* 0x06E */ ACTOR_UNSET_6E,
/* 0x06F */ ACTOR_UNSET_6F,
/* 0x070 */ ACTOR_UNSET_70,
/* 0x071 */ ACTOR_UNSET_71,
/* 0x072 */ ACTOR_UNSET_72,
/* 0x073 */ ACTOR_EN_FR,
/* 0x074 */ ACTOR_UNSET_74,
/* 0x075 */ ACTOR_UNSET_75,
/* 0x076 */ ACTOR_UNSET_76,
/* 0x077 */ ACTOR_UNSET_77,
/* 0x078 */ ACTOR_UNSET_78,
/* 0x079 */ ACTOR_UNSET_79,
/* 0x07A */ ACTOR_OBJ_OSHIHIKI,
/* 0x07B */ ACTOR_EFF_DUST,
/* 0x07C */ ACTOR_BG_UMAJUMP,
/* 0x07D */ ACTOR_ARROW_FIRE,
/* 0x07E */ ACTOR_ARROW_ICE,
/* 0x07F */ ACTOR_ARROW_LIGHT,
/* 0x080 */ ACTOR_ITEM_ETCETERA,
/* 0x081 */ ACTOR_OBJ_KIBAKO,
/* 0x082 */ ACTOR_OBJ_TSUBO,
/* 0x083 */ ACTOR_UNSET_83,
/* 0x084 */ ACTOR_EN_IK,
/* 0x085 */ ACTOR_UNSET_85,
/* 0x086 */ ACTOR_UNSET_86,
/* 0x087 */ ACTOR_UNSET_87,
/* 0x088 */ ACTOR_UNSET_88,
/* 0x089 */ ACTOR_DEMO_SHD,
/* 0x08A */ ACTOR_EN_DNS,
/* 0x08B */ ACTOR_ELF_MSG,
/* 0x08C */ ACTOR_EN_HONOTRAP,
/* 0x08D */ ACTOR_EN_TUBO_TRAP,
/* 0x08E */ ACTOR_OBJ_ICE_POLY,
/* 0x08F */ ACTOR_EN_FZ,
/* 0x090 */ ACTOR_EN_KUSA,
/* 0x091 */ ACTOR_OBJ_BEAN,
/* 0x092 */ ACTOR_OBJ_BOMBIWA,
/* 0x093 */ ACTOR_OBJ_SWITCH,
/* 0x094 */ ACTOR_UNSET_94,
/* 0x095 */ ACTOR_OBJ_LIFT,
/* 0x096 */ ACTOR_OBJ_HSBLOCK,
/* 0x097 */ ACTOR_EN_OKARINA_TAG,
/* 0x098 */ ACTOR_UNSET_98,
/* 0x099 */ ACTOR_EN_GOROIWA,
/* 0x09A */ ACTOR_UNSET_9A,
/* 0x09B */ ACTOR_UNSET_9B,
/* 0x09C */ ACTOR_EN_DAIKU,
/* 0x09D */ ACTOR_EN_NWC,
/* 0x09E */ ACTOR_ITEM_INBOX,
/* 0x09F */ ACTOR_EN_GE1,
/* 0x0A0 */ ACTOR_OBJ_BLOCKSTOP,
/* 0x0A1 */ ACTOR_EN_SDA,
/* 0x0A2 */ ACTOR_EN_CLEAR_TAG,
/* 0x0A3 */ ACTOR_UNSET_A3,
/* 0x0A4 */ ACTOR_EN_GM,
/* 0x0A5 */ ACTOR_EN_MS,
/* 0x0A6 */ ACTOR_EN_HS,
/* 0x0A7 */ ACTOR_BG_INGATE,
/* 0x0A8 */ ACTOR_EN_KANBAN,
/* 0x0A9 */ ACTOR_UNSET_A9,
/* 0x0AA */ ACTOR_EN_ATTACK_NIW,
/* 0x0AB */ ACTOR_UNSET_AB,
/* 0x0AC */ ACTOR_UNSET_AC,
/* 0x0AD */ ACTOR_UNSET_AD,
/* 0x0AE */ ACTOR_EN_MK,
/* 0x0AF */ ACTOR_EN_OWL,
/* 0x0B0 */ ACTOR_EN_ISHI,
/* 0x0B1 */ ACTOR_OBJ_HANA,
/* 0x0B2 */ ACTOR_OBJ_LIGHTSWITCH,
/* 0x0B3 */ ACTOR_OBJ_MURE2,
/* 0x0B4 */ ACTOR_UNSET_B4,
/* 0x0B5 */ ACTOR_EN_FU,
/* 0x0B6 */ ACTOR_UNSET_B6,
/* 0x0B7 */ ACTOR_UNSET_B7,
/* 0x0B8 */ ACTOR_EN_STREAM,
/* 0x0B9 */ ACTOR_EN_MM,
/* 0x0BA */ ACTOR_UNSET_BA,
/* 0x0BB */ ACTOR_UNSET_BB,
/* 0x0BC */ ACTOR_EN_WEATHER_TAG,
/* 0x0BD */ ACTOR_EN_ANI,
/* 0x0BE */ ACTOR_UNSET_BE,
/* 0x0BF */ ACTOR_EN_JS,
/* 0x0C0 */ ACTOR_UNSET_C0,
/* 0x0C1 */ ACTOR_UNSET_C1,
/* 0x0C2 */ ACTOR_UNSET_C2,
/* 0x0C3 */ ACTOR_UNSET_C3,
/* 0x0C4 */ ACTOR_EN_OKARINA_EFFECT,
/* 0x0C5 */ ACTOR_EN_MAG,
/* 0x0C6 */ ACTOR_ELF_MSG2,
/* 0x0C7 */ ACTOR_BG_F40_SWLIFT,
/* 0x0C8 */ ACTOR_UNSET_C8,
/* 0x0C9 */ ACTOR_UNSET_C9,
/* 0x0CA */ ACTOR_EN_KAKASI,
/* 0x0CB */ ACTOR_OBJ_MAKEOSHIHIKI,
/* 0x0CC */ ACTOR_OCEFF_SPOT,
/* 0x0CD */ ACTOR_UNSET_CD,
/* 0x0CE */ ACTOR_EN_TORCH,
/* 0x0CF */ ACTOR_UNSET_CF,
/* 0x0D0 */ ACTOR_SHOT_SUN,
/* 0x0D1 */ ACTOR_UNSET_D1,
/* 0x0D2 */ ACTOR_UNSET_D2,
/* 0x0D3 */ ACTOR_OBJ_ROOMTIMER,
/* 0x0D4 */ ACTOR_EN_SSH,
/* 0x0D5 */ ACTOR_UNSET_D5,
/* 0x0D6 */ ACTOR_OCEFF_WIPE,
/* 0x0D7 */ ACTOR_OCEFF_STORM,
/* 0x0D8 */ ACTOR_OBJ_DEMO,
/* 0x0D9 */ ACTOR_EN_MINISLIME,
/* 0x0DA */ ACTOR_EN_NUTSBALL,
/* 0x0DB */ ACTOR_UNSET_DB,
/* 0x0DC */ ACTOR_UNSET_DC,
/* 0x0DD */ ACTOR_UNSET_DD,
/* 0x0DE */ ACTOR_UNSET_DE,
/* 0x0DF */ ACTOR_OCEFF_WIPE2,
/* 0x0E0 */ ACTOR_OCEFF_WIPE3,
/* 0x0E1 */ ACTOR_UNSET_E1,
/* 0x0E2 */ ACTOR_EN_DG,
/* 0x0E3 */ ACTOR_EN_SI,
/* 0x0E4 */ ACTOR_OBJ_COMB,
/* 0x0E5 */ ACTOR_OBJ_KIBAKO2,
/* 0x0E6 */ ACTOR_UNSET_E6,
/* 0x0E7 */ ACTOR_EN_HS2,
/* 0x0E8 */ ACTOR_OBJ_MURE3,
/* 0x0E9 */ ACTOR_EN_TG,
/* 0x0EA */ ACTOR_UNSET_EA,
/* 0x0EB */ ACTOR_UNSET_EB,
/* 0x0EC */ ACTOR_EN_WF,
/* 0x0ED */ ACTOR_EN_SKB,
/* 0x0EE */ ACTOR_UNSET_EE,
/* 0x0EF */ ACTOR_EN_GS,
/* 0x0F0 */ ACTOR_OBJ_SOUND,
/* 0x0F1 */ ACTOR_EN_CROW,
/* 0x0F2 */ ACTOR_UNSET_F2,
/* 0x0F3 */ ACTOR_EN_COW,
/* 0x0F4 */ ACTOR_UNSET_F4,
/* 0x0F5 */ ACTOR_UNSET_F5,
/* 0x0F6 */ ACTOR_OCEFF_WIPE4,
/* 0x0F7 */ ACTOR_UNSET_F7,
/* 0x0F8 */ ACTOR_EN_ZO,
/* 0x0F9 */ ACTOR_OBJ_MAKEKINSUTA,
/* 0x0FA */ ACTOR_EN_GE3,
/* 0x0FB */ ACTOR_UNSET_FB,
/* 0x0FC */ ACTOR_OBJ_HAMISHI,
/* 0x0FD */ ACTOR_EN_ZL4,
/* 0x0FE */ ACTOR_EN_MM2,
/* 0x0FF */ ACTOR_UNSET_FF,
/* 0x100 */ ACTOR_DOOR_SPIRAL,
/* 0x101 */ ACTOR_UNSET_101,
/* 0x102 */ ACTOR_OBJ_PZLBLOCK,
/* 0x103 */ ACTOR_OBJ_TOGE,
/* 0x104 */ ACTOR_UNSET_104,
/* 0x105 */ ACTOR_OBJ_ARMOS,
/* 0x106 */ ACTOR_OBJ_BOYO,
/* 0x107 */ ACTOR_UNSET_107,
/* 0x108 */ ACTOR_UNSET_108,
/* 0x109 */ ACTOR_EN_GRASSHOPPER,
/* 0x10A */ ACTOR_UNSET_10A,
/* 0x10B */ ACTOR_OBJ_GRASS,
/* 0x10C */ ACTOR_OBJ_GRASS_CARRY,
/* 0x10D */ ACTOR_OBJ_GRASS_UNIT,
/* 0x10E */ ACTOR_UNSET_10E,
/* 0x10F */ ACTOR_UNSET_10F,
/* 0x110 */ ACTOR_BG_FIRE_WALL,
/* 0x111 */ ACTOR_EN_BU,
/* 0x112 */ ACTOR_EN_ENCOUNT3,
/* 0x113 */ ACTOR_EN_JSO,
/* 0x114 */ ACTOR_OBJ_CHIKUWA,
/* 0x115 */ ACTOR_EN_KNIGHT,
/* 0x116 */ ACTOR_EN_WARP_TAG,
/* 0x117 */ ACTOR_EN_AOB_01,
/* 0x118 */ ACTOR_EN_BOJ_01,
/* 0x119 */ ACTOR_EN_BOJ_02,
/* 0x11A */ ACTOR_EN_BOJ_03,
/* 0x11B */ ACTOR_EN_ENCOUNT4,
/* 0x11C */ ACTOR_EN_BOM_BOWL_MAN,
/* 0x11D */ ACTOR_EN_SYATEKI_MAN,
/* 0x11E */ ACTOR_UNSET_11E,
/* 0x11F */ ACTOR_BG_ICICLE,
/* 0x120 */ ACTOR_EN_SYATEKI_CROW,
/* 0x121 */ ACTOR_EN_BOJ_04,
/* 0x122 */ ACTOR_EN_CNE_01,
/* 0x123 */ ACTOR_EN_BBA_01,
/* 0x124 */ ACTOR_EN_BJI_01,
/* 0x125 */ ACTOR_BG_SPDWEB,
/* 0x126 */ ACTOR_UNSET_126,
/* 0x127 */ ACTOR_UNSET_127,
/* 0x128 */ ACTOR_EN_MT_TAG,
/* 0x129 */ ACTOR_BOSS_01,
/* 0x12A */ ACTOR_BOSS_02,
/* 0x12B */ ACTOR_BOSS_03,
/* 0x12C */ ACTOR_BOSS_04,
/* 0x12D */ ACTOR_BOSS_05,
/* 0x12E */ ACTOR_BOSS_06,
/* 0x12F */ ACTOR_BOSS_07,
/* 0x130 */ ACTOR_BG_DY_YOSEIZO,
/* 0x131 */ ACTOR_UNSET_131,
/* 0x132 */ ACTOR_EN_BOJ_05,
/* 0x133 */ ACTOR_UNSET_133,
/* 0x134 */ ACTOR_UNSET_134,
/* 0x135 */ ACTOR_EN_SOB1,
/* 0x136 */ ACTOR_UNSET_136,
/* 0x137 */ ACTOR_UNSET_137,
/* 0x138 */ ACTOR_EN_GO,
/* 0x139 */ ACTOR_UNSET_139,
/* 0x13A */ ACTOR_EN_RAF,
/* 0x13B */ ACTOR_OBJ_FUNEN,
/* 0x13C */ ACTOR_OBJ_RAILLIFT,
/* 0x13D */ ACTOR_BG_NUMA_HANA,
/* 0x13E */ ACTOR_OBJ_FLOWERPOT,
/* 0x13F */ ACTOR_OBJ_SPINYROLL,
/* 0x140 */ ACTOR_DM_HINA,
/* 0x141 */ ACTOR_EN_SYATEKI_WF,
/* 0x142 */ ACTOR_OBJ_SKATEBLOCK,
/* 0x143 */ ACTOR_OBJ_ICEBLOCK,
/* 0x144 */ ACTOR_EN_BIGPAMET,
/* 0x145 */ ACTOR_EN_SYATEKI_DEKUNUTS,
/* 0x146 */ ACTOR_ELF_MSG3,
/* 0x147 */ ACTOR_EN_FG,
/* 0x148 */ ACTOR_DM_RAVINE,
/* 0x149 */ ACTOR_DM_SA,
/* 0x14A */ ACTOR_EN_SLIME,
/* 0x14B */ ACTOR_EN_PR,
/* 0x14C */ ACTOR_OBJ_TOUDAI,
/* 0x14D */ ACTOR_OBJ_ENTOTU,
/* 0x14E */ ACTOR_OBJ_BELL,
/* 0x14F */ ACTOR_EN_SYATEKI_OKUTA,
/* 0x150 */ ACTOR_UNSET_150,
/* 0x151 */ ACTOR_OBJ_SHUTTER,
/* 0x152 */ ACTOR_DM_ZL,
/* 0x153 */ ACTOR_EN_ELFGRP,
/* 0x154 */ ACTOR_DM_TSG,
/* 0x155 */ ACTOR_EN_BAGUO,
/* 0x156 */ ACTOR_OBJ_VSPINYROLL,
/* 0x157 */ ACTOR_OBJ_SMORK,
/* 0x158 */ ACTOR_EN_TEST2,
/* 0x159 */ ACTOR_EN_TEST3,
/* 0x15A */ ACTOR_EN_TEST4,
/* 0x15B */ ACTOR_EN_BAT,
/* 0x15C */ ACTOR_EN_SEKIHI,
/* 0x15D */ ACTOR_EN_WIZ,
/* 0x15E */ ACTOR_EN_WIZ_BROCK,
/* 0x15F */ ACTOR_EN_WIZ_FIRE,
/* 0x160 */ ACTOR_EFF_CHANGE,
/* 0x161 */ ACTOR_DM_STATUE,
/* 0x162 */ ACTOR_OBJ_FIRESHIELD,
/* 0x163 */ ACTOR_BG_LADDER,
/* 0x164 */ ACTOR_EN_MKK,
/* 0x165 */ ACTOR_DEMO_GETITEM,
/* 0x166 */ ACTOR_UNSET_166,
/* 0x167 */ ACTOR_EN_DNB,
/* 0x168 */ ACTOR_EN_DNH,
/* 0x169 */ ACTOR_EN_DNK,
/* 0x16A */ ACTOR_EN_DNQ,
/* 0x16B */ ACTOR_UNSET_16B,
/* 0x16C */ ACTOR_BG_KEIKOKU_SAKU,
/* 0x16D */ ACTOR_OBJ_HUGEBOMBIWA,
/* 0x16E */ ACTOR_EN_FIREFLY2,
/* 0x16F */ ACTOR_EN_RAT,
/* 0x170 */ ACTOR_EN_WATER_EFFECT,
/* 0x171 */ ACTOR_EN_KUSA2,
/* 0x172 */ ACTOR_BG_SPOUT_FIRE,
/* 0x173 */ ACTOR_UNSET_173,
/* 0x174 */ ACTOR_BG_DBLUE_MOVEBG,
/* 0x175 */ ACTOR_EN_DY_EXTRA,
/* 0x176 */ ACTOR_EN_BAL,
/* 0x177 */ ACTOR_EN_GINKO_MAN,
/* 0x178 */ ACTOR_EN_WARP_UZU,
/* 0x179 */ ACTOR_OBJ_DRIFTICE,
/* 0x17A */ ACTOR_EN_LOOK_NUTS,
/* 0x17B */ ACTOR_EN_MUSHI2,
/* 0x17C */ ACTOR_EN_FALL,
/* 0x17D */ ACTOR_EN_MM3,
/* 0x17E */ ACTOR_BG_CRACE_MOVEBG,
/* 0x17F */ ACTOR_EN_DNO,
/* 0x180 */ ACTOR_EN_PR2,
/* 0x181 */ ACTOR_EN_PRZ,
/* 0x182 */ ACTOR_EN_JSO2,
/* 0x183 */ ACTOR_OBJ_ETCETERA,
/* 0x184 */ ACTOR_EN_EGOL,
/* 0x185 */ ACTOR_OBJ_MINE,
/* 0x186 */ ACTOR_OBJ_PURIFY,
/* 0x187 */ ACTOR_EN_TRU,
/* 0x188 */ ACTOR_EN_TRT,
/* 0x189 */ ACTOR_UNSET_189,
/* 0x18A */ ACTOR_UNSET_18A,
/* 0x18B */ ACTOR_EN_TEST5,
/* 0x18C */ ACTOR_EN_TEST6,
/* 0x18D */ ACTOR_EN_AZ,
/* 0x18E */ ACTOR_EN_ESTONE,
/* 0x18F */ ACTOR_BG_HAKUGIN_POST,
/* 0x190 */ ACTOR_DM_OPSTAGE,
/* 0x191 */ ACTOR_DM_STK,
/* 0x192 */ ACTOR_DM_CHAR00,
/* 0x193 */ ACTOR_DM_CHAR01,
/* 0x194 */ ACTOR_DM_CHAR02,
/* 0x195 */ ACTOR_DM_CHAR03,
/* 0x196 */ ACTOR_DM_CHAR04,
/* 0x197 */ ACTOR_DM_CHAR05,
/* 0x198 */ ACTOR_DM_CHAR06,
/* 0x199 */ ACTOR_DM_CHAR07,
/* 0x19A */ ACTOR_DM_CHAR08,
/* 0x19B */ ACTOR_DM_CHAR09,
/* 0x19C */ ACTOR_OBJ_TOKEIDAI,
/* 0x19D */ ACTOR_UNSET_19D,
/* 0x19E */ ACTOR_EN_MNK,
/* 0x19F */ ACTOR_EN_EGBLOCK,
/* 0x1A0 */ ACTOR_EN_GUARD_NUTS,
/* 0x1A1 */ ACTOR_BG_HAKUGIN_BOMBWALL,
/* 0x1A2 */ ACTOR_OBJ_TOKEI_TOBIRA,
/* 0x1A3 */ ACTOR_BG_HAKUGIN_ELVPOLE,
/* 0x1A4 */ ACTOR_EN_MA4,
/* 0x1A5 */ ACTOR_EN_TWIG,
/* 0x1A6 */ ACTOR_EN_PO_FUSEN,
/* 0x1A7 */ ACTOR_EN_DOOR_ETC,
/* 0x1A8 */ ACTOR_EN_BIGOKUTA,
/* 0x1A9 */ ACTOR_BG_ICEFLOE,
/* 0x1AA */ ACTOR_OBJ_OCARINALIFT,
/* 0x1AB */ ACTOR_EN_TIME_TAG,
/* 0x1AC */ ACTOR_BG_OPEN_SHUTTER,
/* 0x1AD */ ACTOR_BG_OPEN_SPOT,
/* 0x1AE */ ACTOR_BG_FU_KAITEN,
/* 0x1AF */ ACTOR_OBJ_AQUA,
/* 0x1B0 */ ACTOR_EN_ELFORG,
/* 0x1B1 */ ACTOR_EN_ELFBUB,
/* 0x1B2 */ ACTOR_UNSET_1B2,
/* 0x1B3 */ ACTOR_EN_FU_MATO,
/* 0x1B4 */ ACTOR_EN_FU_KAGO,
/* 0x1B5 */ ACTOR_EN_OSN,
/* 0x1B6 */ ACTOR_BG_CTOWER_GEAR,
/* 0x1B7 */ ACTOR_EN_TRT2,
/* 0x1B8 */ ACTOR_OBJ_TOKEI_STEP,
/* 0x1B9 */ ACTOR_BG_LOTUS,
/* 0x1BA */ ACTOR_EN_KAME,
/* 0x1BB */ ACTOR_OBJ_TAKARAYA_WALL,
/* 0x1BC */ ACTOR_BG_FU_MIZU,
/* 0x1BD */ ACTOR_EN_SELLNUTS,
/* 0x1BE */ ACTOR_BG_DKJAIL_IVY,
/* 0x1BF */ ACTOR_UNSET_1BF,
/* 0x1C0 */ ACTOR_OBJ_VISIBLOCK,
/* 0x1C1 */ ACTOR_EN_TAKARAYA,
/* 0x1C2 */ ACTOR_EN_TSN,
/* 0x1C3 */ ACTOR_EN_DS2N,
/* 0x1C4 */ ACTOR_EN_FSN,
/* 0x1C5 */ ACTOR_EN_SHN,
/* 0x1C6 */ ACTOR_UNSET_1C6,
/* 0x1C7 */ ACTOR_EN_STOP_HEISHI,
/* 0x1C8 */ ACTOR_OBJ_BIGICICLE,
/* 0x1C9 */ ACTOR_EN_LIFT_NUTS,
/* 0x1CA */ ACTOR_EN_TK,
/* 0x1CB */ ACTOR_UNSET_1CB,
/* 0x1CC */ ACTOR_BG_MARKET_STEP,
/* 0x1CD */ ACTOR_OBJ_LUPYGAMELIFT,
/* 0x1CE */ ACTOR_EN_TEST7,
/* 0x1CF */ ACTOR_OBJ_LIGHTBLOCK,
/* 0x1D0 */ ACTOR_MIR_RAY2,
/* 0x1D1 */ ACTOR_EN_WDHAND,
/* 0x1D2 */ ACTOR_EN_GAMELUPY,
/* 0x1D3 */ ACTOR_BG_DANPEI_MOVEBG,
/* 0x1D4 */ ACTOR_EN_SNOWWD,
/* 0x1D5 */ ACTOR_EN_PM,
/* 0x1D6 */ ACTOR_EN_GAKUFU,
/* 0x1D7 */ ACTOR_ELF_MSG4,
/* 0x1D8 */ ACTOR_ELF_MSG5,
/* 0x1D9 */ ACTOR_EN_COL_MAN,
/* 0x1DA */ ACTOR_EN_TALK_GIBUD,
/* 0x1DB */ ACTOR_EN_GIANT,
/* 0x1DC */ ACTOR_OBJ_SNOWBALL,
/* 0x1DD */ ACTOR_BOSS_HAKUGIN,
/* 0x1DE */ ACTOR_EN_GB2,
/* 0x1DF */ ACTOR_EN_ONPUMAN,
/* 0x1E0 */ ACTOR_BG_TOBIRA01,
/* 0x1E1 */ ACTOR_EN_TAG_OBJ,
/* 0x1E2 */ ACTOR_OBJ_DHOUSE,
/* 0x1E3 */ ACTOR_OBJ_HAKAISI,
/* 0x1E4 */ ACTOR_BG_HAKUGIN_SWITCH,
/* 0x1E5 */ ACTOR_UNSET_1E5,
/* 0x1E6 */ ACTOR_EN_SNOWMAN,
/* 0x1E7 */ ACTOR_TG_SW,
/* 0x1E8 */ ACTOR_EN_PO_SISTERS,
/* 0x1E9 */ ACTOR_EN_PP,
/* 0x1EA */ ACTOR_EN_HAKUROCK,
/* 0x1EB */ ACTOR_EN_HANABI,
/* 0x1EC */ ACTOR_OBJ_DOWSING,
/* 0x1ED */ ACTOR_OBJ_WIND,
/* 0x1EE */ ACTOR_EN_RACEDOG,
/* 0x1EF */ ACTOR_EN_KENDO_JS,
/* 0x1F0 */ ACTOR_BG_BOTIHASIRA,
/* 0x1F1 */ ACTOR_EN_FISH2,
/* 0x1F2 */ ACTOR_EN_PST,
/* 0x1F3 */ ACTOR_EN_POH,
/* 0x1F4 */ ACTOR_OBJ_SPIDERTENT,
/* 0x1F5 */ ACTOR_EN_ZORAEGG,
/* 0x1F6 */ ACTOR_EN_KBT,
/* 0x1F7 */ ACTOR_EN_GG,
/* 0x1F8 */ ACTOR_EN_MARUTA,
/* 0x1F9 */ ACTOR_OBJ_SNOWBALL2,
/* 0x1FA */ ACTOR_EN_GG2,
/* 0x1FB */ ACTOR_OBJ_GHAKA,
/* 0x1FC */ ACTOR_EN_DNP,
/* 0x1FD */ ACTOR_EN_DAI,
/* 0x1FE */ ACTOR_BG_GORON_OYU,
/* 0x1FF */ ACTOR_EN_KGY,
/* 0x200 */ ACTOR_EN_INVADEPOH,
/* 0x201 */ ACTOR_EN_GK,
/* 0x202 */ ACTOR_EN_AN,
/* 0x203 */ ACTOR_UNSET_203,
/* 0x204 */ ACTOR_EN_BEE,
/* 0x205 */ ACTOR_EN_OT,
/* 0x206 */ ACTOR_EN_DRAGON,
/* 0x207 */ ACTOR_OBJ_DORA,
/* 0x208 */ ACTOR_EN_BIGPO,
/* 0x209 */ ACTOR_OBJ_KENDO_KANBAN,
/* 0x20A */ ACTOR_OBJ_HARIKO,
/* 0x20B */ ACTOR_EN_STH,
/* 0x20C */ ACTOR_BG_SINKAI_KABE,
/* 0x20D */ ACTOR_BG_HAKA_CURTAIN,
/* 0x20E */ ACTOR_BG_KIN2_BOMBWALL,
/* 0x20F */ ACTOR_BG_KIN2_FENCE,
/* 0x210 */ ACTOR_BG_KIN2_PICTURE,
/* 0x211 */ ACTOR_BG_KIN2_SHELF,
/* 0x212 */ ACTOR_EN_RAIL_SKB,
/* 0x213 */ ACTOR_EN_JG,
/* 0x214 */ ACTOR_EN_TRU_MT,
/* 0x215 */ ACTOR_OBJ_UM,
/* 0x216 */ ACTOR_EN_NEO_REEBA,
/* 0x217 */ ACTOR_BG_MBAR_CHAIR,
/* 0x218 */ ACTOR_BG_IKANA_BLOCK,
/* 0x219 */ ACTOR_BG_IKANA_MIRROR,
/* 0x21A */ ACTOR_BG_IKANA_ROTARYROOM,
/* 0x21B */ ACTOR_BG_DBLUE_BALANCE,
/* 0x21C */ ACTOR_BG_DBLUE_WATERFALL,
/* 0x21D */ ACTOR_EN_KAIZOKU,
/* 0x21E */ ACTOR_EN_GE2,
/* 0x21F */ ACTOR_EN_MA_YTS,
/* 0x220 */ ACTOR_EN_MA_YTO,
/* 0x221 */ ACTOR_OBJ_TOKEI_TURRET,
/* 0x222 */ ACTOR_BG_DBLUE_ELEVATOR,
/* 0x223 */ ACTOR_OBJ_WARPSTONE,
/* 0x224 */ ACTOR_EN_ZOG,
/* 0x225 */ ACTOR_OBJ_ROTLIFT,
/* 0x226 */ ACTOR_OBJ_JG_GAKKI,
/* 0x227 */ ACTOR_BG_INIBS_MOVEBG,
/* 0x228 */ ACTOR_EN_ZOT,
/* 0x229 */ ACTOR_OBJ_TREE,
/* 0x22A */ ACTOR_OBJ_Y2LIFT,
/* 0x22B */ ACTOR_OBJ_Y2SHUTTER,
/* 0x22C */ ACTOR_OBJ_BOAT,
/* 0x22D */ ACTOR_OBJ_TARU,
/* 0x22E */ ACTOR_OBJ_HUNSUI,
/* 0x22F */ ACTOR_EN_JC_MATO,
/* 0x230 */ ACTOR_MIR_RAY3,
/* 0x231 */ ACTOR_EN_ZOB,
/* 0x232 */ ACTOR_ELF_MSG6,
/* 0x233 */ ACTOR_OBJ_NOZOKI,
/* 0x234 */ ACTOR_EN_TOTO,
/* 0x235 */ ACTOR_EN_RAILGIBUD,
/* 0x236 */ ACTOR_EN_BABA,
/* 0x237 */ ACTOR_EN_SUTTARI,
/* 0x238 */ ACTOR_EN_ZOD,
/* 0x239 */ ACTOR_EN_KUJIYA,
/* 0x23A */ ACTOR_EN_GEG,
/* 0x23B */ ACTOR_OBJ_KINOKO,
/* 0x23C */ ACTOR_OBJ_YASI,
/* 0x23D */ ACTOR_EN_TANRON1,
/* 0x23E */ ACTOR_EN_TANRON2,
/* 0x23F */ ACTOR_EN_TANRON3,
/* 0x240 */ ACTOR_OBJ_CHAN,
/* 0x241 */ ACTOR_EN_ZOS,
/* 0x242 */ ACTOR_EN_S_GORO,
/* 0x243 */ ACTOR_EN_NB,
/* 0x244 */ ACTOR_EN_JA,
/* 0x245 */ ACTOR_BG_F40_BLOCK,
/* 0x246 */ ACTOR_BG_F40_SWITCH,
/* 0x247 */ ACTOR_EN_PO_COMPOSER,
/* 0x248 */ ACTOR_EN_GURUGURU,
/* 0x249 */ ACTOR_OCEFF_WIPE5,
/* 0x24A */ ACTOR_EN_STONE_HEISHI,
/* 0x24B */ ACTOR_OCEFF_WIPE6,
/* 0x24C */ ACTOR_EN_SCOPENUTS,
/* 0x24D */ ACTOR_EN_SCOPECROW,
/* 0x24E */ ACTOR_OCEFF_WIPE7,
/* 0x24F */ ACTOR_EFF_KAMEJIMA_WAVE,
/* 0x250 */ ACTOR_EN_HG,
/* 0x251 */ ACTOR_EN_HGO,
/* 0x252 */ ACTOR_EN_ZOV,
/* 0x253 */ ACTOR_EN_AH,
/* 0x254 */ ACTOR_OBJ_HGDOOR,
/* 0x255 */ ACTOR_BG_IKANA_BOMBWALL,
/* 0x256 */ ACTOR_BG_IKANA_RAY,
/* 0x257 */ ACTOR_BG_IKANA_SHUTTER,
/* 0x258 */ ACTOR_BG_HAKA_BOMBWALL,
/* 0x259 */ ACTOR_BG_HAKA_TOMB,
/* 0x25A */ ACTOR_EN_SC_RUPPE,
/* 0x25B */ ACTOR_BG_IKNV_DOUKUTU,
/* 0x25C */ ACTOR_BG_IKNV_OBJ,
/* 0x25D */ ACTOR_EN_PAMERA,
/* 0x25E */ ACTOR_OBJ_HSSTUMP,
/* 0x25F */ ACTOR_EN_HIDDEN_NUTS,
/* 0x260 */ ACTOR_EN_ZOW,
/* 0x261 */ ACTOR_EN_TALK,
/* 0x262 */ ACTOR_EN_AL,
/* 0x263 */ ACTOR_EN_TAB,
/* 0x264 */ ACTOR_EN_NIMOTSU,
/* 0x265 */ ACTOR_EN_HIT_TAG,
/* 0x266 */ ACTOR_EN_RUPPECROW,
/* 0x267 */ ACTOR_EN_TANRON4,
/* 0x268 */ ACTOR_EN_TANRON5,
/* 0x269 */ ACTOR_EN_TANRON6,
/* 0x26A */ ACTOR_EN_DAIKU2,
/* 0x26B */ ACTOR_EN_MUTO,
/* 0x26C */ ACTOR_EN_BAISEN,
/* 0x26D */ ACTOR_EN_HEISHI,
/* 0x26E */ ACTOR_EN_DEMO_HEISHI,
/* 0x26F */ ACTOR_EN_DT,
/* 0x270 */ ACTOR_EN_CHA,
/* 0x271 */ ACTOR_OBJ_DINNER,
/* 0x272 */ ACTOR_EFF_LASTDAY,
/* 0x273 */ ACTOR_BG_IKANA_DHARMA,
/* 0x274 */ ACTOR_EN_AKINDONUTS,
/* 0x275 */ ACTOR_EFF_STK,
/* 0x276 */ ACTOR_EN_IG,
/* 0x277 */ ACTOR_EN_RG,
/* 0x278 */ ACTOR_EN_OSK,
/* 0x279 */ ACTOR_EN_STH2,
/* 0x27A */ ACTOR_EN_YB,
/* 0x27B */ ACTOR_EN_RZ,
/* 0x27C */ ACTOR_EN_SCOPECOIN,
/* 0x27D */ ACTOR_EN_BJT,
/* 0x27E */ ACTOR_EN_BOMJIMA,
/* 0x27F */ ACTOR_EN_BOMJIMB,
/* 0x280 */ ACTOR_EN_BOMBERS,
/* 0x281 */ ACTOR_EN_BOMBERS2,
/* 0x282 */ ACTOR_EN_BOMBAL,
/* 0x283 */ ACTOR_OBJ_MOON_STONE,
/* 0x284 */ ACTOR_OBJ_MU_PICT,
/* 0x285 */ ACTOR_BG_IKNINSIDE,
/* 0x286 */ ACTOR_EFF_ZORABAND,
/* 0x287 */ ACTOR_OBJ_KEPN_KOYA,
/* 0x288 */ ACTOR_OBJ_USIYANE,
/* 0x289 */ ACTOR_EN_NNH,
/* 0x28A */ ACTOR_OBJ_KZSAKU,
/* 0x28B */ ACTOR_OBJ_MILK_BIN,
/* 0x28C */ ACTOR_EN_KITAN,
/* 0x28D */ ACTOR_BG_ASTR_BOMBWALL,
/* 0x28E */ ACTOR_BG_IKNIN_SUSCEIL,
/* 0x28F */ ACTOR_EN_BSB,
/* 0x290 */ ACTOR_EN_RECEPGIRL,
/* 0x291 */ ACTOR_EN_THIEFBIRD,
/* 0x292 */ ACTOR_EN_JGAME_TSN,
/* 0x293 */ ACTOR_OBJ_JGAME_LIGHT,
/* 0x294 */ ACTOR_OBJ_YADO,
/* 0x295 */ ACTOR_DEMO_SYOTEN,
/* 0x296 */ ACTOR_DEMO_MOONEND,
/* 0x297 */ ACTOR_BG_LBFSHOT,
/* 0x298 */ ACTOR_BG_LAST_BWALL,
/* 0x299 */ ACTOR_EN_AND,
/* 0x29A */ ACTOR_EN_INVADEPOH_DEMO,
/* 0x29B */ ACTOR_OBJ_DANPEILIFT,
/* 0x29C */ ACTOR_EN_FALL2,
/* 0x29D */ ACTOR_DM_AL,
/* 0x29E */ ACTOR_DM_AN,
/* 0x29F */ ACTOR_DM_AH,
/* 0x2A0 */ ACTOR_DM_NB,
/* 0x2A1 */ ACTOR_EN_DRS,
/* 0x2A2 */ ACTOR_EN_ENDING_HERO,
/* 0x2A3 */ ACTOR_DM_BAL,
/* 0x2A4 */ ACTOR_EN_PAPER,
/* 0x2A5 */ ACTOR_EN_HINT_SKB,
/* 0x2A6 */ ACTOR_DM_TAG,
/* 0x2A7 */ ACTOR_EN_BH,
/* 0x2A8 */ ACTOR_EN_ENDING_HERO2,
/* 0x2A9 */ ACTOR_EN_ENDING_HERO3,
/* 0x2AA */ ACTOR_EN_ENDING_HERO4,
/* 0x2AB */ ACTOR_EN_ENDING_HERO5,
/* 0x2AC */ ACTOR_EN_ENDING_HERO6,
/* 0x2AD */ ACTOR_DM_GM,
/* 0x2AE */ ACTOR_OBJ_SWPRIZE,
/* 0x2AF */ ACTOR_EN_INVISIBLE_RUPPE,
/* 0x2B0 */ ACTOR_OBJ_ENDING,
/* 0x2B1 */ ACTOR_EN_RSN,
/* 0x2B2 */ ACTOR_ID_MAX // originally "ACTOR_DLF_MAX"
} ActorID;
#endif

View File

@ -0,0 +1,224 @@
#ifndef _Z_COLLISION_CHECK_H_
#define _Z_COLLISION_CHECK_H_
#include <PR/ultratypes.h>
#include <z64math.h>
#include <unk.h>
struct Actor;
typedef struct {
/* 0x0 */ u32 unk0;
/* 0x4 */ u8 unk4;
/* 0x5 */ u8 unk5;
} ColBumpInit; // size = 0x8
typedef struct {
/* 0x0 */ u8 unk0;
/* 0x1 */ u8 unk1;
/* 0x2 */ u8 unk2;
/* 0x3 */ u8 unk3;
/* 0x4 */ u8 unk4;
/* 0x5 */ u8 type;
} ColCommonInit; // size = 0x6
typedef struct {
/* 0x0 */ u32 collidesWith;
/* 0x4 */ u8 unk4;
/* 0x5 */ u8 damage;
} ColTouch; // size = 0x8
typedef struct {
/* 0x0 */ u32 unk0;
/* 0x4 */ u8 unk4;
/* 0x5 */ u8 unk5;
} ColTouchInit; // size = 0x8
typedef struct {
/* 0x00 */ u8 unk0;
/* 0x04 */ ColTouchInit unk4;
/* 0x0C */ ColBumpInit unkC;
/* 0x14 */ u8 unk14;
/* 0x15 */ u8 unk15;
/* 0x16 */ u8 unk16;
} ColBodyInfoInit; // size = 0x18
typedef struct {
/* 0x0 */ u32 collidesWith;
/* 0x4 */ u8 unk4;
/* 0x5 */ u8 unk5;
/* 0x6 */ Vec3s unk6;
} ColBump; // size = 0xC
typedef struct {
/* 0x0 */ s16 radius;
/* 0x2 */ s16 height;
/* 0x4 */ s16 yOffset;
/* 0x6 */ Vec3s loc;
} ColCylinderParams; // size = 0xC
typedef struct {
/* 0x00 */ Vec3f pointA;
/* 0x0C */ Vec3f pointB;
/* 0x18 */ Vec3f pointC;
/* 0x24 */ Vec3f pointD;
/* 0x30 */ Vec3s unk30;
/* 0x36 */ Vec3s unk36;
/* 0x3C */ f32 unk3C;
} ColQuadParams; // size = 0x40
typedef struct {
/* 0x0 */ Vec3s loc;
/* 0x6 */ s16 radius;
} ColSphereCollisionInfo; // size = 0x8
typedef struct {
/* 0x00 */ Vec3s unk0;
/* 0x06 */ s16 unk6;
/* 0x08 */ ColSphereCollisionInfo colInfo;
/* 0x10 */ f32 unk10;
/* 0x14 */ u8 unk14;
/* 0x15 */ UNK_TYPE1 pad15[0x3];
} ColSphereParams; // size = 0x18
typedef struct {
/* 0x0 */ u8 unk0;
/* 0x1 */ ColSphereCollisionInfo unk1;
/* 0xA */ s16 unkA;
} ColSphereParamsInit; // size = 0xC
typedef struct {
/* 0x00 */ Vec3f pointA;
/* 0x0C */ Vec3f pointB;
/* 0x18 */ Vec3f pointC;
/* 0x24 */ Vec3f unitNormal;
/* 0x30 */ f32 unk30;
} ColTriParams; // size = 0x34
typedef struct {
/* 0x00 */ Vec3f unk0;
/* 0x0C */ Vec3f unkC;
/* 0x18 */ Vec3f unk18;
} ColTriParamsInit; // size = 0x24
typedef struct {
/* 0x00 */ ColCommonInit base;
/* 0x08 */ ColBodyInfoInit body;
/* 0x20 */ ColCylinderParams info;
} ColCylinderInit; // size = 0x2C
typedef struct {
/* 0x00 */ ColCommonInit base;
/* 0x08 */ ColBodyInfoInit body;
/* 0x20 */ ColQuadParams params;
} ColQuadInit; // size = 0x60
typedef struct {
/* 0x00 */ ColBodyInfoInit body;
/* 0x18 */ ColSphereParamsInit params;
} ColSphereGroupElementInit; // size = 0x24
typedef struct {
/* 0x0 */ ColCommonInit base;
/* 0x6 */ UNK_TYPE1 pad6[0x2];
/* 0x8 */ u32 count;
/* 0xC */ ColSphereGroupElementInit* init;
} ColSphereGroupInit; // size = 0x10
typedef struct {
/* 0x00 */ ColCommonInit base;
/* 0x08 */ ColBodyInfoInit body;
/* 0x20 */ ColSphereParamsInit info;
} ColSphereInit; // size = 0x2C
typedef struct {
/* 0x00 */ ColBodyInfoInit body;
/* 0x18 */ ColTriParamsInit params;
} ColTriInit; // size = 0x3C
typedef struct {
/* 0x0 */ ColCommonInit base;
/* 0x8 */ u32 count;
/* 0xC */ ColTriInit* elemInit;
} ColTriGroupInit; // size = 0x10
typedef struct {
/* 0x00 */ struct Actor* actor;
/* 0x04 */ struct Actor* collisionAT;
/* 0x08 */ struct Actor* collisionAC;
/* 0x0C */ struct Actor* collisionOT;
/* 0x10 */ u8 flagsAT;
/* 0x11 */ u8 flagsAC; // bit 1 - collision occured?
/* 0x12 */ u8 unk12;
/* 0x13 */ u8 unk13;
/* 0x14 */ u8 unk14;
/* 0x15 */ u8 type;
/* 0x16 */ UNK_TYPE1 pad16[0x2];
} ColCommon; // size = 0x18
typedef struct {
/* 0x000 */ s16 ATgroupLength;
/* 0x002 */ u16 flags; // bit 0: collision bodies can't be added or removed, only swapped out
/* 0x004 */ ColCommon* ATgroup[50];
/* 0x0CC */ s32 ACgroupLength;
/* 0x0D0 */ ColCommon* ACgroup[60];
/* 0x1C0 */ s32 OTgroupLength;
/* 0x1C4 */ ColCommon* OTgroup[50];
/* 0x28C */ s32 group4Length;
/* 0x290 */ ColCommon* group4[3];
} CollisionCheckContext; // size = 0x29C
typedef struct ColBodyInfo_t {
/* 0x00 */ ColTouch toucher;
/* 0x08 */ ColBump bumper;
/* 0x14 */ u8 unk14;
/* 0x15 */ u8 unk15; // bit 0: can be toucher in AT-AC collision
/* 0x16 */ u8 unk16; // bit 0: can be bumper in AT-AC collision
/* 0x17 */ u8 unk17;
/* 0x18 */ ColCommon* unk18;
/* 0x1C */ ColCommon* unk1C;
/* 0x20 */ struct ColBodyInfo_t* unk20;
/* 0x24 */ struct ColBodyInfo_t* unk24;
} ColBodyInfo; // size = 0x28
typedef struct {
/* 0x00 */ ColBodyInfo body;
/* 0x28 */ ColSphereParams params;
} ColSphereGroupElement; // size = 0x40
typedef struct {
/* 0x00 */ ColBodyInfo body;
/* 0x28 */ ColTriParams params;
} ColTri; // size = 0x5C
typedef struct {
/* 0x00 */ ColCommon base;
/* 0x18 */ ColBodyInfo body;
/* 0x40 */ ColCylinderParams params;
} ColCylinder; // size = 0x4C
typedef struct {
/* 0x00 */ ColCommon base;
/* 0x18 */ ColBodyInfo body;
/* 0x40 */ ColQuadParams params;
} ColQuad; // size = 0x80
typedef struct {
/* 0x00 */ ColCommon base;
/* 0x18 */ ColBodyInfo body;
/* 0x40 */ ColSphereParams params;
} ColSphere; // size = 0x58
typedef struct {
/* 0x00 */ ColCommon base;
/* 0x18 */ u32 count;
/* 0x1C */ ColSphereGroupElement* spheres;
} ColSphereGroup; // size = 0x20
typedef struct {
/* 0x00 */ ColCommon base;
/* 0x18 */ u32 count;
/* 0x1C */ ColTri* tris;
} ColTriGroup; // size = 0x20
#endif

80
include/z64cutscene.h Normal file
View File

@ -0,0 +1,80 @@
#ifndef _Z64CUTSCENE_H_
#define _Z64CUTSCENE_H_
#include <ultra64.h>
#include <unk.h>
typedef struct {
/* 0x00 */ UNK_TYPE1 pad0[0x2];
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ UNK_TYPE1 pad6[0x2A];
} CsCmdActorAction; // size = 0x30
typedef struct {
/* 0x0 */ u16 base;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
} CsCmdBase; // size = 0x6
typedef struct {
/* 0x0 */ u16 unk0;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
/* 0x6 */ u8 hour;
/* 0x7 */ u8 minute;
} CsCmdDayTime; // size = 0x8
typedef struct {
/* 0x0 */ u16 setting;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
} CsCmdEnvLighting; // size = 0x6
typedef struct {
/* 0x0 */ u16 sequence;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
} CsCmdMusicChange; // size = 0x6
typedef struct {
/* 0x0 */ u16 type;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
} CsCmdMusicFade; // size = 0x6
typedef struct {
/* 0x0 */ u16 base;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
/* 0x6 */ u16 type;
/* 0x8 */ u16 textId1;
/* 0xA */ u16 textId2;
} CsCmdTextbox; // size = 0xC
typedef struct {
/* 0x0 */ u16 unk0;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
/* 0x6 */ u8 unk6;
/* 0x7 */ u8 unk7;
/* 0x8 */ u8 unk8;
/* 0x9 */ UNK_TYPE1 pad9[0x3];
} CsCmdUnk190; // size = 0xC
typedef struct {
/* 0x0 */ UNK_TYPE4 unk0;
/* 0x4 */ UNK_TYPE4 unk4;
} CsCmdUnk5A; // size = 0x8
typedef struct {
/* 0x0 */ u16 unk0;
/* 0x2 */ u16 startFrame;
/* 0x4 */ u16 endFrame;
/* 0x6 */ u8 unk6;
/* 0x7 */ u8 unk7;
/* 0x8 */ u8 unk8;
/* 0x9 */ UNK_TYPE1 pad9[0x3];
} CsCmdUnk9B; // size = 0xC
#endif

24
include/z64dma.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef _Z64_DMA_H_
#define _Z64_DMA_H_
#include <ultra64.h>
typedef struct {
/* 0x00 */ u32 vromAddr; // VROM address (source)
/* 0x04 */ void* dramAddr; // DRAM address (destination)
/* 0x08 */ u32 size; // File Transfer size
/* 0x0C */ char* filename; // Filename for debugging
/* 0x10 */ s32 line; // Line for debugging
/* 0x14 */ s32 unk14;
/* 0x18 */ OSMesgQueue* notifyQueue; // Message queue for the notification message
/* 0x1C */ OSMesg notifyMsg; // Completion notification message
} DmaRequest; // size = 0x20
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
/* 0x08 */ u32 romStart;
/* 0x0C */ u32 romEnd;
} DmaEntry; // size = 0x10
#endif

296
include/z64effect.h Normal file
View File

@ -0,0 +1,296 @@
#ifndef _Z64EFFECT_H_
#define _Z64EFFECT_H_
#include <PR/ultratypes.h>
#include <color.h>
#include <z64light.h>
#include <z64math.h>
#include <unk.h>
struct GraphicsContext;
struct GlobalContext;
typedef void(*eff_destroy_func)(void* params);
typedef void(*eff_draw_func)(void* params, struct GraphicsContext* gCtxt);
typedef void(*eff_init_func)(void* params, void* init);
typedef s32(*eff_update_func)(void* params);
typedef struct {
/* 0x0 */ u8 active;
/* 0x1 */ u8 unk1;
/* 0x2 */ u8 unk2;
/* 0x3 */ UNK_TYPE1 pad3[0x1];
} EffCommon; // size = 0x4
typedef struct {
/* 0x00 */ Vec3f velocity;
/* 0x0C */ Vec3f position;
/* 0x18 */ Vec3s unk18;
/* 0x1E */ Vec3s unk1E;
} EffSparkParticle; // size = 0x24
typedef struct {
/* 0x000 */ Vec3s position;
/* 0x008 */ s32 numParticles; // Will be calculated as particleFactor1 * particleFactor2 + 2
/* 0x00C */ EffSparkParticle particles[32];
/* 0x48C */ f32 velocity;
/* 0x490 */ f32 gravity;
/* 0x494 */ u32 particleFactor1;
/* 0x498 */ u32 particleFactor2;
/* 0x49C */ ColorRGBA8 colorStart[4];
/* 0x4AC */ ColorRGBA8 colorEnd[4];
/* 0x4BC */ s32 age;
/* 0x4C0 */ s32 duration;
} EffSparkParams; // size = 0x4C4
typedef struct {
/* 0x000 */ EffCommon base;
/* 0x004 */ EffSparkParams params;
} EffSpark; // size = 0x4C8
typedef struct {
/* 0x00 */ UNK_TYPE1 pad0[0x18];
} EffBlureParticle; // size = 0x18
typedef struct {
/* 0x000 */ UNK_TYPE1 pad0[0x184];
/* 0x184 */ ColorRGBA8 unk184;
/* 0x188 */ ColorRGBA8 unk188;
/* 0x18C */ ColorRGBA8 unk18C;
/* 0x190 */ ColorRGBA8 unk190;
/* 0x194 */ UNK_TYPE1 pad194[0xC];
} EffBlureInit1; // size = 0x1A0
typedef struct {
/* 0x00 */ UNK_TYPE1 pad0[0x8];
/* 0x08 */ ColorRGBA8 unk8;
/* 0x0C */ ColorRGBA8 unkC;
/* 0x10 */ ColorRGBA8 unk10;
/* 0x14 */ ColorRGBA8 unk14;
/* 0x18 */ UNK_TYPE1 pad18[0xC];
} EffBlureInit2; // size = 0x24
typedef struct {
/* 0x000 */ EffBlureParticle particles[16];
/* 0x180 */ UNK_TYPE1 pad180[0x4];
/* 0x184 */ f32 unk184;
/* 0x188 */ u16 unk188;
/* 0x18A */ UNK_TYPE1 pad18A[0x4];
/* 0x18E */ ColorRGBA8 unk18E;
/* 0x192 */ ColorRGBA8 unk192;
/* 0x196 */ ColorRGBA8 unk196;
/* 0x19A */ ColorRGBA8 unk19A;
/* 0x19E */ u8 unk19E;
/* 0x19F */ u8 unk19F;
/* 0x1A0 */ u8 unk1A0;
/* 0x1A1 */ u8 unk1A1;
/* 0x1A2 */ UNK_TYPE1 pad1A2[0xA];
} EffBlureParams; // size = 0x1AC
typedef struct {
/* 0x000 */ EffCommon base;
/* 0x004 */ EffBlureParams params;
} EffBlure; // size = 0x1B0
typedef struct {
/* 0x00 */ f32 startSpeed;
/* 0x04 */ f32 endXChange;
/* 0x08 */ f32 endX;
/* 0x0C */ f32 startXChange;
/* 0x10 */ f32 startX;
/* 0x14 */ s16 rotationY;
/* 0x16 */ s16 rotationZ;
} EffShieldParticleParticle; // size = 0x18
typedef struct {
/* 0x00 */ u8 numParticles;
/* 0x02 */ Vec3s position;
/* 0x08 */ ColorRGBA8 primColorStart;
/* 0x0C */ ColorRGBA8 envColorStart;
/* 0x10 */ ColorRGBA8 primColorMid;
/* 0x14 */ ColorRGBA8 envColorMid;
/* 0x18 */ ColorRGBA8 primColorEnd;
/* 0x1C */ ColorRGBA8 envColorEnd;
/* 0x20 */ f32 acceleration;
/* 0x24 */ f32 maxInitialSpeed;
/* 0x28 */ f32 lengthCutoff;
/* 0x2C */ u8 duration;
/* 0x2E */ LightInfoPositionalParams lightParams;
/* 0x3C */ s32 hasLight;
} EffShieldParticleInit; // size = 0x40
typedef struct {
/* 0x000 */ EffShieldParticleParticle particles[16];
/* 0x180 */ u8 numParticles;
/* 0x181 */ UNK_TYPE1 pad181[0x1];
/* 0x182 */ Vec3s position;
/* 0x188 */ ColorRGBA8 primColorStart;
/* 0x18C */ ColorRGBA8 envColorStart;
/* 0x190 */ ColorRGBA8 primColorMid;
/* 0x194 */ ColorRGBA8 envColorMid;
/* 0x198 */ ColorRGBA8 primColorEnd;
/* 0x19C */ ColorRGBA8 envColorEnd;
/* 0x1A0 */ f32 acceleration;
/* 0x1A4 */ UNK_TYPE1 pad1A4[0x4];
/* 0x1A8 */ f32 maxInitialSpeed;
/* 0x1AC */ f32 lengthCutoff;
/* 0x1B0 */ u8 duration;
/* 0x1B1 */ u8 age;
/* 0x1B2 */ LightInfo lightInfo;
/* 0x1C0 */ z_Light* light;
/* 0x1C4 */ s32 hasLight;
} EffShieldParticleParams; // size = 0x1C8
typedef struct {
/* 0x000 */ EffCommon base;
/* 0x004 */ EffShieldParticleParams params;
} EffShieldParticle; // size = 0x1CC
typedef struct {
/* 0x00 */ UNK_TYPE2 active;
/* 0x02 */ Vec3s position1;
/* 0x08 */ Vec3s position2;
/* 0x0E */ s16 life;
/* 0x10 */ UNK_TYPE1 pad10[0x4];
/* 0x14 */ UNK_TYPE4 unk14;
} EffTireMarkParticle; // size = 0x18
typedef struct {
/* 0x0 */ s16 unk0;
/* 0x2 */ s16 maxLife;
/* 0x4 */ ColorRGBA8 color;
} EffTireMarkInit; // size = 0x8
typedef struct {
/* 0x000 */ EffTireMarkParticle particles[64];
/* 0x600 */ s16 unk600;
/* 0x602 */ s16 numParticles;
/* 0x604 */ s16 maxLife;
/* 0x606 */ ColorRGBA8 color;
/* 0x60A */ UNK_TYPE1 pad60A[0x2];
} EffTireMarkParams; // size = 0x60C
typedef struct {
/* 0x000 */ EffCommon base;
/* 0x004 */ EffTireMarkParams params;
} EffTireMark; // size = 0x610
typedef struct {
/* 0x00 */ u32 paramsSize;
/* 0x04 */ eff_init_func init;
/* 0x08 */ eff_destroy_func destroy;
/* 0x0C */ eff_update_func update;
/* 0x10 */ eff_draw_func draw;
} EffInfo; // size = 0x14
typedef struct {
/* 0x0000 */ struct GlobalContext* ctxt;
/* 0x0004 */ EffSpark sparks[3];
/* 0x0E5C */ EffBlure blures[25];
/* 0x388C */ EffShieldParticle shieldParticles[3];
/* 0x3DF0 */ EffTireMark tireMarks[15];
} EffTables; // size = 0x98E0
typedef struct {
/* 0x00 */ Vec3f position;
/* 0x0C */ Vec3f velocity;
/* 0x18 */ Vec3f acceleration;
/* 0x24 */ ColorRGBA8 color1;
/* 0x28 */ ColorRGBA8 color2;
/* 0x2C */ s16 scale;
/* 0x2E */ s16 scaleChangePerFrame;
/* 0x30 */ s16 life;
/* 0x32 */ u16 flags; // bit0: ? bit1: ? bit2: randomize colors
/* 0x34 */ u8 type; // type0: start small, get big, fade away type1: start big, fade away
} EffectDustInit; // size = 0x35
typedef struct LoadedParticleEntry LoadedParticleEntry;
typedef void(*effect_func)(struct GlobalContext* ctxt, u32 index, LoadedParticleEntry* particle);
typedef void(*effect_init_func)(struct GlobalContext* ctxt, u32 index, LoadedParticleEntry* particle, void* init);
struct LoadedParticleEntry {
/* 0x00 */ Vec3f position;
/* 0x0C */ Vec3f velocity;
/* 0x18 */ Vec3f acceleration;
/* 0x24 */ effect_func update;
/* 0x28 */ effect_func draw;
/* 0x2C */ Vec3f unk2C;
/* 0x38 */ u32 displayList;
/* 0x3C */ UNK_TYPE4 unk3C;
/* 0x40 */ s16 regs[13]; // These are particle-specific
/* 0x5A */ u16 flags; // bit 0: set if this entry is not considered free on a priority tie bit 1: ? bit 2: ?
/* 0x5C */ s16 life; // -1 means this entry is free
/* 0x5E */ u8 priority; // Lower number mean higher priority
/* 0x5F */ u8 type;
}; // size = 0x60
typedef struct {
/* 0x0 */ LoadedParticleEntry* data_table; // Name from debug assert
/* 0x4 */ s32 searchIndex;
/* 0x8 */ s32 size;
} EffectTableInfo; // size = 0xC
typedef struct {
/* 0x0 */ UNK_TYPE4 unk0;
/* 0x4 */ effect_init_func init;
} ParticleOverlayInfo; // size = 0x8
typedef struct {
/* 0x00 */ u32 vromStart;
/* 0x04 */ u32 vromEnd;
/* 0x08 */ void* vramStart;
/* 0x0C */ void* vramEnd;
/* 0x10 */ void* loadedRamAddr;
/* 0x14 */ ParticleOverlayInfo* overlayInfo;
/* 0x18 */ u32 unk18; // Always 0x01000000?
} ParticleOverlay; // size = 0x1C
typedef enum EffectSSType {
EFFECT_SS2_TYPE_DUST = 0x0,
EFFECT_SS2_TYPE_SPARKLE = 0x1,
EFFECT_SS2_TYPE_DELETED_2 = 0x2,
EFFECT_SS2_TYPE_BOMB2 = 0x3,
EFFECT_SS2_TYPE_BLAST = 0x4,
EFFECT_SS2_TYPE_G_SPARK = 0x5,
EFFECT_SS2_TYPE_DODONGO_FIRE = 0x6,
EFFECT_SS2_TYPE_BUBBLE = 0x7,
EFFECT_SS2_TYPE_DELETED_8 = 0x8,
EFFECT_SS2_TYPE_G_RIPPLE = 0x9,
EFFECT_SS2_TYPE_G_SPLASH = 0xA,
EFFECT_SS2_TYPE_DELETED_B = 0xB,
EFFECT_SS2_TYPE_G_FIRE = 0xC,
EFFECT_SS2_TYPE_LIGHTNING = 0xD,
EFFECT_SS2_TYPE_BIG_OCTO_BUBBLE = 0xE,
EFFECT_SS2_TYPE_FRAGMENT = 0xF,
EFFECT_SS2_TYPE_STICK = 0x10,
EFFECT_SS2_TYPE_SPLASH = 0x11,
EFFECT_SS2_TYPE_DELETED_12 = 0x12,
EFFECT_SS2_TYPE_DELETED_13 = 0x13,
EFFECT_SS2_TYPE_STONE1 = 0x14,
EFFECT_SS2_TYPE_HIT_MARK = 0x15,
EFFECT_SS2_TYPE_PHANTOM_GANON_FLASH = 0x16,
EFFECT_SS2_TYPE_KAKARIKO_FIRE = 0x17,
EFFECT_SS2_TYPE_SOLDIER_SEARCH_BALL = 0x18,
EFFECT_SS2_TYPE_SHARD = 0x19,
EFFECT_SS2_TYPE_ICE_PIECE = 0x1A,
EFFECT_SS2_TYPE_ENEMY_ICE = 0x1B,
EFFECT_SS2_TYPE_FIRE_TAIL = 0x1C,
EFFECT_SS2_TYPE_ENEMY_FIRE = 0x1D,
EFFECT_SS2_TYPE_EXTRA = 0x1E,
EFFECT_SS2_TYPE_DELETED_1F = 0x1F,
EFFECT_SS2_TYPE_DEAD_DEKU_BABA = 0x20,
EFFECT_SS2_TYPE_DEAD_DODONGO = 0x21,
EFFECT_SS2_TYPE_DEAD_DEKU_SCRUB = 0x22,
EFFECT_SS2_TYPE_DELETED_23 = 0x23,
EFFECT_SS2_TYPE_ICE_SMOKE = 0x24,
EFFECT_SS2_TYPE_ICE_BLOCK = 0x25,
EFFECT_SS2_TYPE_SBN = 0x26,
EFFECT_SS2_TYPE_LAST_LABEL = 0x27
} EffectSSType;
#endif

74
include/z64light.h Normal file
View File

@ -0,0 +1,74 @@
#ifndef _Z64LIGHT_H_
#define _Z64LIGHT_H_
#include <ultra64.h>
#include <PR/gbi.h>
typedef struct {
/* 0x0 */ u8 type;
/* 0x2 */ u16 params[6];
} LightInfo; // size = 0xE
typedef struct z_Light_t {
/* 0x0 */ LightInfo* info;
/* 0x4 */ struct z_Light_t* prev;
/* 0x8 */ struct z_Light_t* next;
} z_Light; // size = 0xC
typedef struct {
/* 0x0 */ z_Light* lightsHead;
/* 0x4 */ u8 ambientRed;
/* 0x5 */ u8 ambientGreen;
/* 0x6 */ u8 ambientBlue;
/* 0x7 */ u8 unk7;
/* 0x8 */ u8 unk8;
/* 0x9 */ u8 unk9;
/* 0xA */ s16 unkA;
/* 0xC */ s16 unkC;
} LightingContext; // size = 0x10
typedef struct {
/* 0x000 */ s32 numOccupied;
/* 0x004 */ s32 nextFree;
/* 0x008 */ z_Light lights[32];
} LightsList; // size = 0x188
typedef struct {
/* 0x0 */ s8 dirX;
/* 0x1 */ s8 dirY;
/* 0x2 */ s8 dirZ;
/* 0x3 */ u8 red;
/* 0x4 */ u8 green;
/* 0x5 */ u8 blue;
/* 0x6 */ u16 pad[3];
} LightInfoDirectionalParams; // size = 0xC
typedef struct {
/* 0x0 */ s16 posX;
/* 0x2 */ s16 posY;
/* 0x4 */ s16 posZ;
/* 0x6 */ u8 red;
/* 0x7 */ u8 green;
/* 0x8 */ u8 blue;
/* 0x9 */ u8 unk9; // func_80102880 sets this only for type 2, func_80102A64 draws something if this is set
/* 0xA */ s16 radius;
} LightInfoPositionalParams; // size = 0xC
typedef struct {
/* 0x00 */ u8 enablePosLights;
/* 0x01 */ u8 numLights;
/* 0x02 */ UNK_TYPE1 pad2[6];
/* 0x08 */ Lights7 lights;
} LightMapper; // size = 0x80
typedef struct {
/* 0x0 */ u8 type;
/* 0x2 */ LightInfoDirectionalParams params;
} LightInfoDirectional; // size = 0xE
typedef struct {
/* 0x0 */ u8 type;
/* 0x2 */ LightInfoPositionalParams params;
} LightInfoPositional; // size = 0xE
#endif

18
include/z64math.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef _Z64MATH_H_
#define _Z64MATH_H_
#include <ultra64.h>
typedef struct {
/* 0x0 */ f32 x;
/* 0x4 */ f32 y;
/* 0x8 */ f32 z;
} Vec3f; // size = 0xC
typedef struct {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 z;
} Vec3s; // size = 0x6
#endif

650
include/z64object.h Normal file
View File

@ -0,0 +1,650 @@
#ifndef _Z64OBJECT_H_
#define _Z64OBJECT_H_
typedef enum {
/* 0x000 */ OBJECT_UNSET_0,
/* 0x001 */ GAMEPLAY_KEEP,
/* 0x002 */ GAMEPLAY_FIELD_KEEP,
/* 0x003 */ GAMEPLAY_DANGEON_KEEP,
/* 0x004 */ OBJECT_NB,
/* 0x005 */ OBJECT_OKUTA,
/* 0x006 */ OBJECT_CROW,
/* 0x007 */ OBJECT_AH,
/* 0x008 */ OBJECT_DY_OBJ,
/* 0x009 */ OBJECT_WALLMASTER,
/* 0x00A */ OBJECT_DODONGO,
/* 0x00B */ OBJECT_FIREFLY,
/* 0x00C */ OBJECT_BOX,
/* 0x00D */ OBJECT_AL,
/* 0x00E */ OBJECT_BUBBLE,
/* 0x00F */ OBJECT_NIW,
/* 0x010 */ OBJECT_LINK_BOY,
/* 0x011 */ OBJECT_LINK_CHILD,
/* 0x012 */ OBJECT_TITE,
/* 0x013 */ OBJECT_TAB,
/* 0x014 */ OBJECT_PH,
/* 0x015 */ OBJECT_AND,
/* 0x016 */ OBJECT_MSMO,
/* 0x017 */ OBJECT_DINOFOS,
/* 0x018 */ OBJECT_DRS,
/* 0x019 */ OBJECT_ZL1,
/* 0x01A */ OBJECT_AN4,
/* 0x01B */ OBJECT_UNSET_1B,
/* 0x01C */ OBJECT_TEST3,
/* 0x01D */ OBJECT_FAMOS,
/* 0x01E */ OBJECT_UNSET_1E,
/* 0x01F */ OBJECT_UNSET_1F,
/* 0x020 */ OBJECT_ST,
/* 0x021 */ OBJECT_UNSET_21,
/* 0x022 */ OBJECT_THIEFBIRD,
/* 0x023 */ OBJECT_UNSET_23,
/* 0x024 */ OBJECT_UNSET_24,
/* 0x025 */ OBJECT_UNSET_25,
/* 0x026 */ OBJECT_UNSET_26,
/* 0x027 */ OBJECT_UNSET_27,
/* 0x028 */ OBJECT_UNSET_28,
/* 0x029 */ OBJECT_UNSET_29,
/* 0x02A */ OBJECT_BOMBF,
/* 0x02B */ OBJECT_UNSET_2B,
/* 0x02C */ OBJECT_UNSET_2C,
/* 0x02D */ OBJECT_UNSET_2D,
/* 0x02E */ OBJECT_UNSET_2E,
/* 0x02F */ OBJECT_UNSET_2F,
/* 0x030 */ OBJECT_AM,
/* 0x031 */ OBJECT_DEKUBABA,
/* 0x032 */ OBJECT_UNSET_32,
/* 0x033 */ OBJECT_UNSET_33,
/* 0x034 */ OBJECT_UNSET_34,
/* 0x035 */ OBJECT_UNSET_35,
/* 0x036 */ OBJECT_UNSET_36,
/* 0x037 */ OBJECT_UNSET_37,
/* 0x038 */ OBJECT_UNSET_38,
/* 0x039 */ OBJECT_UNSET_39,
/* 0x03A */ OBJECT_UNSET_3A,
/* 0x03B */ OBJECT_UNSET_3B,
/* 0x03C */ OBJECT_UNSET_3C,
/* 0x03D */ OBJECT_UNSET_3D,
/* 0x03E */ OBJECT_WARP1,
/* 0x03F */ OBJECT_B_HEART,
/* 0x040 */ OBJECT_DEKUNUTS,
/* 0x041 */ OBJECT_UNSET_41,
/* 0x042 */ OBJECT_UNSET_42,
/* 0x043 */ OBJECT_UNSET_43,
/* 0x044 */ OBJECT_UNSET_44,
/* 0x045 */ OBJECT_UNSET_45,
/* 0x046 */ OBJECT_UNSET_46,
/* 0x047 */ OBJECT_UNSET_47,
/* 0x048 */ OBJECT_UNSET_48,
/* 0x049 */ OBJECT_UNSET_49,
/* 0x04A */ OBJECT_UNSET_4A,
/* 0x04B */ OBJECT_UNSET_4B,
/* 0x04C */ OBJECT_UNSET_4C,
/* 0x04D */ OBJECT_UNSET_4D,
/* 0x04E */ OBJECT_UNSET_4E,
/* 0x04F */ OBJECT_UNSET_4F,
/* 0x050 */ OBJECT_UNSET_50,
/* 0x051 */ OBJECT_BB,
/* 0x052 */ OBJECT_DEATH,
/* 0x053 */ OBJECT_UNSET_53,
/* 0x054 */ OBJECT_UNSET_54,
/* 0x055 */ OBJECT_UNSET_55,
/* 0x056 */ OBJECT_UNSET_56,
/* 0x057 */ OBJECT_UNSET_57,
/* 0x058 */ OBJECT_UNSET_58,
/* 0x059 */ OBJECT_UNSET_59,
/* 0x05A */ OBJECT_UNSET_5A,
/* 0x05B */ OBJECT_UNSET_5B,
/* 0x05C */ OBJECT_F40_OBJ,
/* 0x05D */ OBJECT_PO_COMPOSER,
/* 0x05E */ OBJECT_UNSET_5E,
/* 0x05F */ OBJECT_HATA,
/* 0x060 */ OBJECT_UNSET_60,
/* 0x061 */ OBJECT_WOOD02,
/* 0x062 */ OBJECT_UNSET_62,
/* 0x063 */ OBJECT_UNSET_63,
/* 0x064 */ OBJECT_TRAP,
/* 0x065 */ OBJECT_UNSET_65,
/* 0x066 */ OBJECT_UNSET_66,
/* 0x067 */ OBJECT_UNSET_67,
/* 0x068 */ OBJECT_UNSET_68,
/* 0x069 */ OBJECT_UNSET_69,
/* 0x06A */ OBJECT_VM,
/* 0x06B */ OBJECT_UNSET_6B,
/* 0x06C */ OBJECT_UNSET_6C,
/* 0x06D */ OBJECT_UNSET_6D,
/* 0x06E */ OBJECT_UNSET_6E,
/* 0x06F */ OBJECT_UNSET_6F,
/* 0x070 */ OBJECT_EFC_STAR_FIELD,
/* 0x071 */ OBJECT_UNSET_71,
/* 0x072 */ OBJECT_UNSET_72,
/* 0x073 */ OBJECT_UNSET_73,
/* 0x074 */ OBJECT_UNSET_74,
/* 0x075 */ OBJECT_RD,
/* 0x076 */ OBJECT_YUKIMURA_OBJ,
/* 0x077 */ OBJECT_HEAVY_OBJECT,
/* 0x078 */ OBJECT_UNSET_78,
/* 0x079 */ OBJECT_UNSET_79,
/* 0x07A */ OBJECT_UNSET_7A,
/* 0x07B */ OBJECT_UNSET_7B,
/* 0x07C */ OBJECT_UNSET_7C,
/* 0x07D */ OBJECT_HORSE_LINK_CHILD,
/* 0x07E */ OBJECT_UNSET_7E,
/* 0x07F */ OBJECT_UNSET_7F,
/* 0x080 */ OBJECT_SYOKUDAI,
/* 0x081 */ OBJECT_UNSET_81,
/* 0x082 */ OBJECT_UNSET_82,
/* 0x083 */ OBJECT_UNSET_83,
/* 0x084 */ OBJECT_EFC_TW,
/* 0x085 */ OBJECT_UNSET_85,
/* 0x086 */ OBJECT_GI_KEY,
/* 0x087 */ OBJECT_MIR_RAY,
/* 0x088 */ OBJECT_CTOWER_ROT,
/* 0x089 */ OBJECT_UNSET_89,
/* 0x08A */ OBJECT_BDOOR,
/* 0x08B */ OBJECT_UNSET_8B,
/* 0x08C */ OBJECT_UNSET_8C,
/* 0x08D */ OBJECT_UNSET_8D,
/* 0x08E */ OBJECT_SB,
/* 0x08F */ OBJECT_GI_MELODY,
/* 0x090 */ OBJECT_GI_HEART,
/* 0x091 */ OBJECT_GI_COMPASS,
/* 0x092 */ OBJECT_GI_BOSSKEY,
/* 0x093 */ OBJECT_UNSET_93,
/* 0x094 */ OBJECT_GI_NUTS,
/* 0x095 */ OBJECT_UNSET_95,
/* 0x096 */ OBJECT_GI_HEARTS,
/* 0x097 */ OBJECT_GI_ARROWCASE,
/* 0x098 */ OBJECT_GI_BOMBPOUCH,
/* 0x099 */ OBJECT_IN,
/* 0x09A */ OBJECT_UNSET_9A,
/* 0x09B */ OBJECT_UNSET_9B,
/* 0x09C */ OBJECT_UNSET_9C,
/* 0x09D */ OBJECT_OS_ANIME,
/* 0x09E */ OBJECT_GI_BOTTLE,
/* 0x09F */ OBJECT_GI_STICK,
/* 0x0A0 */ OBJECT_GI_MAP,
/* 0x0A1 */ OBJECT_OF1D_MAP,
/* 0x0A2 */ OBJECT_RU2,
/* 0x0A3 */ OBJECT_UNSET_A3,
/* 0x0A4 */ OBJECT_GI_MAGICPOT,
/* 0x0A5 */ OBJECT_GI_BOMB_1,
/* 0x0A6 */ OBJECT_UNSET_A6,
/* 0x0A7 */ OBJECT_MA2,
/* 0x0A8 */ OBJECT_GI_PURSE,
/* 0x0A9 */ OBJECT_UNSET_A9,
/* 0x0AA */ OBJECT_UNSET_AA,
/* 0x0AB */ OBJECT_RR,
/* 0x0AC */ OBJECT_UNSET_AC,
/* 0x0AD */ OBJECT_UNSET_AD,
/* 0x0AE */ OBJECT_UNSET_AE,
/* 0x0AF */ OBJECT_GI_ARROW,
/* 0x0B0 */ OBJECT_GI_BOMB_2,
/* 0x0B1 */ OBJECT_UNSET_B1,
/* 0x0B2 */ OBJECT_UNSET_B2,
/* 0x0B3 */ OBJECT_GI_SHIELD_2,
/* 0x0B4 */ OBJECT_GI_HOOKSHOT,
/* 0x0B5 */ OBJECT_GI_OCARINA,
/* 0x0B6 */ OBJECT_GI_MILK,
/* 0x0B7 */ OBJECT_MA1,
/* 0x0B8 */ OBJECT_UNSET_B8,
/* 0x0B9 */ OBJECT_UNSET_B9,
/* 0x0BA */ OBJECT_UNSET_BA,
/* 0x0BB */ OBJECT_NY,
/* 0x0BC */ OBJECT_FR,
/* 0x0BD */ OBJECT_UNSET_BD,
/* 0x0BE */ OBJECT_UNSET_BE,
/* 0x0BF */ OBJECT_GI_BOW,
/* 0x0C0 */ OBJECT_GI_GLASSES,
/* 0x0C1 */ OBJECT_GI_LIQUID,
/* 0x0C2 */ OBJECT_ANI,
/* 0x0C3 */ OBJECT_GI_SHIELD_3,
/* 0x0C4 */ OBJECT_UNSET_C4,
/* 0x0C5 */ OBJECT_UNSET_C5,
/* 0x0C6 */ OBJECT_GI_BEAN,
/* 0x0C7 */ OBJECT_GI_FISH,
/* 0x0C8 */ OBJECT_UNSET_C8,
/* 0x0C9 */ OBJECT_UNSET_C9,
/* 0x0CA */ OBJECT_UNSET_CA,
/* 0x0CB */ OBJECT_GI_LONGSWORD,
/* 0x0CC */ OBJECT_UNSET_CC,
/* 0x0CD */ OBJECT_UNSET_CD,
/* 0x0CE */ OBJECT_UNSET_CE,
/* 0x0CF */ OBJECT_UNSET_CF,
/* 0x0D0 */ OBJECT_ZO,
/* 0x0D1 */ OBJECT_UNSET_D1,
/* 0x0D2 */ OBJECT_UMAJUMP,
/* 0x0D3 */ OBJECT_UNSET_D3,
/* 0x0D4 */ OBJECT_UNSET_D4,
/* 0x0D5 */ OBJECT_MASTERGOLON,
/* 0x0D6 */ OBJECT_MASTERZOORA,
/* 0x0D7 */ OBJECT_AOB,
/* 0x0D8 */ OBJECT_IK,
/* 0x0D9 */ OBJECT_AHG,
/* 0x0DA */ OBJECT_CNE,
/* 0x0DB */ OBJECT_UNSET_DB,
/* 0x0DC */ OBJECT_UNSET_DC,
/* 0x0DD */ OBJECT_AN3,
/* 0x0DE */ OBJECT_BJI,
/* 0x0DF */ OBJECT_BBA,
/* 0x0E0 */ OBJECT_AN2,
/* 0x0E1 */ OBJECT_UNSET_E1,
/* 0x0E2 */ OBJECT_AN1,
/* 0x0E3 */ OBJECT_BOJ,
/* 0x0E4 */ OBJECT_FZ,
/* 0x0E5 */ OBJECT_BOB,
/* 0x0E6 */ OBJECT_GE1,
/* 0x0E7 */ OBJECT_YABUSAME_POINT,
/* 0x0E8 */ OBJECT_UNSET_E8,
/* 0x0E9 */ OBJECT_UNSET_E9,
/* 0x0EA */ OBJECT_UNSET_EA,
/* 0x0EB */ OBJECT_UNSET_EB,
/* 0x0EC */ OBJECT_D_HSBLOCK,
/* 0x0ED */ OBJECT_D_LIFT,
/* 0x0EE */ OBJECT_MAMENOKI,
/* 0x0EF */ OBJECT_GOROIWA,
/* 0x0F0 */ OBJECT_TORYO,
/* 0x0F1 */ OBJECT_DAIKU,
/* 0x0F2 */ OBJECT_NWC,
/* 0x0F3 */ OBJECT_GM,
/* 0x0F4 */ OBJECT_MS,
/* 0x0F5 */ OBJECT_HS,
/* 0x0F6 */ OBJECT_UNSET_F6,
/* 0x0F7 */ OBJECT_LIGHTSWITCH,
/* 0x0F8 */ OBJECT_KUSA,
/* 0x0F9 */ OBJECT_TSUBO,
/* 0x0FA */ OBJECT_UNSET_FA,
/* 0x0FB */ OBJECT_UNSET_FB,
/* 0x0FC */ OBJECT_KANBAN,
/* 0x0FD */ OBJECT_OWL,
/* 0x0FE */ OBJECT_MK,
/* 0x0FF */ OBJECT_FU,
/* 0x100 */ OBJECT_GI_KI_TAN_MASK,
/* 0x101 */ OBJECT_UNSET_101,
/* 0x102 */ OBJECT_GI_MASK18,
/* 0x103 */ OBJECT_GI_RABIT_MASK,
/* 0x104 */ OBJECT_GI_TRUTH_MASK,
/* 0x105 */ OBJECT_UNSET_105,
/* 0x106 */ OBJECT_STREAM,
/* 0x107 */ OBJECT_MM,
/* 0x108 */ OBJECT_UNSET_108,
/* 0x109 */ OBJECT_UNSET_109,
/* 0x10A */ OBJECT_UNSET_10A,
/* 0x10B */ OBJECT_UNSET_10B,
/* 0x10C */ OBJECT_UNSET_10C,
/* 0x10D */ OBJECT_UNSET_10D,
/* 0x10E */ OBJECT_UNSET_10E,
/* 0x10F */ OBJECT_JS,
/* 0x110 */ OBJECT_CS,
/* 0x111 */ OBJECT_UNSET_111,
/* 0x112 */ OBJECT_UNSET_112,
/* 0x113 */ OBJECT_GI_SOLDOUT,
/* 0x114 */ OBJECT_UNSET_114,
/* 0x115 */ OBJECT_MAG,
/* 0x116 */ OBJECT_UNSET_116,
/* 0x117 */ OBJECT_UNSET_117,
/* 0x118 */ OBJECT_UNSET_118,
/* 0x119 */ OBJECT_GI_GOLONMASK,
/* 0x11A */ OBJECT_GI_ZORAMASK,
/* 0x11B */ OBJECT_UNSET_11B,
/* 0x11C */ OBJECT_UNSET_11C,
/* 0x11D */ OBJECT_KA,
/* 0x11E */ OBJECT_UNSET_11E,
/* 0x11F */ OBJECT_ZG,
/* 0x120 */ OBJECT_UNSET_120,
/* 0x121 */ OBJECT_GI_M_ARROW,
/* 0x122 */ OBJECT_DS2,
/* 0x123 */ OBJECT_UNSET_123,
/* 0x124 */ OBJECT_FISH,
/* 0x125 */ OBJECT_GI_SUTARU,
/* 0x126 */ OBJECT_UNSET_126,
/* 0x127 */ OBJECT_SSH,
/* 0x128 */ OBJECT_BIGSLIME,
/* 0x129 */ OBJECT_BG,
/* 0x12A */ OBJECT_BOMBIWA,
/* 0x12B */ OBJECT_HINTNUTS,
/* 0x12C */ OBJECT_RS,
/* 0x12D */ OBJECT_UNSET_12D,
/* 0x12E */ OBJECT_GLA,
/* 0x12F */ OBJECT_UNSET_12F,
/* 0x130 */ OBJECT_GELDB,
/* 0x131 */ OBJECT_UNSET_131,
/* 0x132 */ OBJECT_DOG,
/* 0x133 */ OBJECT_KIBAKO2,
/* 0x134 */ OBJECT_DNS,
/* 0x135 */ OBJECT_DNK,
/* 0x136 */ OBJECT_UNSET_136,
/* 0x137 */ OBJECT_GI_INSECT,
/* 0x138 */ OBJECT_UNSET_138,
/* 0x139 */ OBJECT_GI_GHOST,
/* 0x13A */ OBJECT_GI_SOUL,
/* 0x13B */ OBJECT_UNSET_13B,
/* 0x13C */ OBJECT_UNSET_13C,
/* 0x13D */ OBJECT_UNSET_13D,
/* 0x13E */ OBJECT_UNSET_13E,
/* 0x13F */ OBJECT_GI_RUPY,
/* 0x140 */ OBJECT_MU,
/* 0x141 */ OBJECT_WF,
/* 0x142 */ OBJECT_SKB,
/* 0x143 */ OBJECT_GS,
/* 0x144 */ OBJECT_PS,
/* 0x145 */ OBJECT_OMOYA_OBJ,
/* 0x146 */ OBJECT_COW,
/* 0x147 */ OBJECT_UNSET_147,
/* 0x148 */ OBJECT_GI_SWORD_1,
/* 0x149 */ OBJECT_UNSET_149,
/* 0x14A */ OBJECT_UNSET_14A,
/* 0x14B */ OBJECT_ZL4,
/* 0x14C */ OBJECT_LINK_GORON,
/* 0x14D */ OBJECT_LINK_ZORA,
/* 0x14E */ OBJECT_GRASSHOPPER,
/* 0x14F */ OBJECT_BOYO,
/* 0x150 */ OBJECT_UNSET_150,
/* 0x151 */ OBJECT_UNSET_151,
/* 0x152 */ OBJECT_UNSET_152,
/* 0x153 */ OBJECT_FWALL,
/* 0x154 */ OBJECT_LINK_NUTS,
/* 0x155 */ OBJECT_JSO,
/* 0x156 */ OBJECT_KNIGHT,
/* 0x157 */ OBJECT_ICICLE,
/* 0x158 */ OBJECT_SPDWEB,
/* 0x159 */ OBJECT_UNSET_159,
/* 0x15A */ OBJECT_BOSS01,
/* 0x15B */ OBJECT_BOSS02,
/* 0x15C */ OBJECT_BOSS03,
/* 0x15D */ OBJECT_BOSS04,
/* 0x15E */ OBJECT_BOSS05,
/* 0x15F */ OBJECT_BOSS06,
/* 0x160 */ OBJECT_BOSS07,
/* 0x161 */ OBJECT_RAF,
/* 0x162 */ OBJECT_FUNEN,
/* 0x163 */ OBJECT_RAILLIFT,
/* 0x164 */ OBJECT_NUMA_OBJ,
/* 0x165 */ OBJECT_FLOWERPOT,
/* 0x166 */ OBJECT_SPINYROLL,
/* 0x167 */ OBJECT_ICE_BLOCK,
/* 0x168 */ OBJECT_UNSET_168,
/* 0x169 */ OBJECT_KEIKOKU_DEMO,
/* 0x16A */ OBJECT_SLIME,
/* 0x16B */ OBJECT_PR,
/* 0x16C */ OBJECT_F52_OBJ,
/* 0x16D */ OBJECT_F53_OBJ,
/* 0x16E */ OBJECT_UNSET_16E,
/* 0x16F */ OBJECT_KIBAKO,
/* 0x170 */ OBJECT_SEK,
/* 0x171 */ OBJECT_GMO,
/* 0x172 */ OBJECT_BAT,
/* 0x173 */ OBJECT_SEKIHIL,
/* 0x174 */ OBJECT_SEKIHIG,
/* 0x175 */ OBJECT_SEKIHIN,
/* 0x176 */ OBJECT_SEKIHIZ,
/* 0x177 */ OBJECT_UNSET_177,
/* 0x178 */ OBJECT_WIZ,
/* 0x179 */ OBJECT_LADDER,
/* 0x17A */ OBJECT_MKK,
/* 0x17B */ OBJECT_UNSET_17B,
/* 0x17C */ OBJECT_UNSET_17C,
/* 0x17D */ OBJECT_UNSET_17D,
/* 0x17E */ OBJECT_KEIKOKU_OBJ,
/* 0x17F */ OBJECT_SICHITAI_OBJ,
/* 0x180 */ OBJECT_DEKUCITY_ANA_OBJ,
/* 0x181 */ OBJECT_RAT,
/* 0x182 */ OBJECT_WATER_EFFECT,
/* 0x183 */ OBJECT_UNSET_183,
/* 0x184 */ OBJECT_DBLUE_OBJECT,
/* 0x185 */ OBJECT_BAL,
/* 0x186 */ OBJECT_WARP_UZU,
/* 0x187 */ OBJECT_DRIFTICE,
/* 0x188 */ OBJECT_FALL,
/* 0x189 */ OBJECT_HANAREYAMA_OBJ,
/* 0x18A */ OBJECT_CRACE_OBJECT,
/* 0x18B */ OBJECT_DNQ,
/* 0x18C */ OBJECT_OBJECT_UNSET_TOKEIDAI,
/* 0x18D */ OBJECT_EG,
/* 0x18E */ OBJECT_TRU,
/* 0x18F */ OBJECT_TRT,
/* 0x190 */ OBJECT_HAKUGIN_OBJ,
/* 0x191 */ OBJECT_HORSE_GAME_CHECK,
/* 0x192 */ OBJECT_STK,
/* 0x193 */ OBJECT_UNSET_193,
/* 0x194 */ OBJECT_UNSET_194,
/* 0x195 */ OBJECT_MNK,
/* 0x196 */ OBJECT_GI_BOTTLE_RED,
/* 0x197 */ OBJECT_TOKEI_TOBIRA,
/* 0x198 */ OBJECT_AZ,
/* 0x199 */ OBJECT_TWIG,
/* 0x19A */ OBJECT_DEKUCITY_OBJ,
/* 0x19B */ OBJECT_PO_FUSEN,
/* 0x19C */ OBJECT_RACETSUBO,
/* 0x19D */ OBJECT_HA,
/* 0x19E */ OBJECT_BIGOKUTA,
/* 0x19F */ OBJECT_OPEN_OBJ,
/* 0x1A0 */ OBJECT_FU_KAITEN,
/* 0x1A1 */ OBJECT_FU_MATO,
/* 0x1A2 */ OBJECT_MTORIDE,
/* 0x1A3 */ OBJECT_OSN,
/* 0x1A4 */ OBJECT_TOKEI_STEP,
/* 0x1A5 */ OBJECT_LOTUS,
/* 0x1A6 */ OBJECT_TL,
/* 0x1A7 */ OBJECT_DKJAIL_OBJ,
/* 0x1A8 */ OBJECT_VISIBLOCK,
/* 0x1A9 */ OBJECT_TSN,
/* 0x1AA */ OBJECT_DS2N,
/* 0x1AB */ OBJECT_FSN,
/* 0x1AC */ OBJECT_SHN,
/* 0x1AD */ OBJECT_BIGICICLE,
/* 0x1AE */ OBJECT_GI_BOTTLE_15,
/* 0x1AF */ OBJECT_TK,
/* 0x1B0 */ OBJECT_MARKET_OBJ,
/* 0x1B1 */ OBJECT_GI_RESERVE00,
/* 0x1B2 */ OBJECT_GI_RESERVE01,
/* 0x1B3 */ OBJECT_LIGHTBLOCK,
/* 0x1B4 */ OBJECT_TAKARAYA_OBJECTS,
/* 0x1B5 */ OBJECT_WDHAND,
/* 0x1B6 */ OBJECT_SDN,
/* 0x1B7 */ OBJECT_SNOWWD,
/* 0x1B8 */ OBJECT_GIANT,
/* 0x1B9 */ OBJECT_COMB,
/* 0x1BA */ OBJECT_HANA,
/* 0x1BB */ OBJECT_BOSS_HAKUGIN,
/* 0x1BC */ OBJECT_MEGANEANA_OBJ,
/* 0x1BD */ OBJECT_GI_NUTSMASK,
/* 0x1BE */ OBJECT_STK2,
/* 0x1BF */ OBJECT_SPOT11_OBJ,
/* 0x1C0 */ OBJECT_DANPEI_OBJECT,
/* 0x1C1 */ OBJECT_DHOUSE,
/* 0x1C2 */ OBJECT_HAKAISI,
/* 0x1C3 */ OBJECT_PO,
/* 0x1C4 */ OBJECT_SNOWMAN,
/* 0x1C5 */ OBJECT_PO_SISTERS,
/* 0x1C6 */ OBJECT_PP,
/* 0x1C7 */ OBJECT_GORONSWITCH,
/* 0x1C8 */ OBJECT_DELF,
/* 0x1C9 */ OBJECT_BOTIHASIRA,
/* 0x1CA */ OBJECT_GI_BIGBOMB,
/* 0x1CB */ OBJECT_PST,
/* 0x1CC */ OBJECT_BSMASK,
/* 0x1CD */ OBJECT_SPIDERTENT,
/* 0x1CE */ OBJECT_ZORAEGG,
/* 0x1CF */ OBJECT_KBT,
/* 0x1D0 */ OBJECT_GG,
/* 0x1D1 */ OBJECT_MARUTA,
/* 0x1D2 */ OBJECT_GHAKA,
/* 0x1D3 */ OBJECT_OYU,
/* 0x1D4 */ OBJECT_DNP,
/* 0x1D5 */ OBJECT_DAI,
/* 0x1D6 */ OBJECT_KGY,
/* 0x1D7 */ OBJECT_FB,
/* 0x1D8 */ OBJECT_TAISOU,
/* 0x1D9 */ OBJECT_MASK_BU_SAN,
/* 0x1DA */ OBJECT_MASK_KI_TAN,
/* 0x1DB */ OBJECT_MASK_RABIT,
/* 0x1DC */ OBJECT_MASK_SKJ,
/* 0x1DD */ OBJECT_MASK_BAKURETU,
/* 0x1DE */ OBJECT_MASK_TRUTH,
/* 0x1DF */ OBJECT_GK,
/* 0x1E0 */ OBJECT_HAKA_OBJ,
/* 0x1E1 */ OBJECT_MASK_GORON,
/* 0x1E2 */ OBJECT_MASK_ZORA,
/* 0x1E3 */ OBJECT_MASK_NUTS,
/* 0x1E4 */ OBJECT_MASK_BOY,
/* 0x1E5 */ OBJECT_DNT,
/* 0x1E6 */ OBJECT_YUKIYAMA,
/* 0x1E7 */ OBJECT_ICEFLOE,
/* 0x1E8 */ OBJECT_GI_GOLD_DUST,
/* 0x1E9 */ OBJECT_GI_BOTTLE_16,
/* 0x1EA */ OBJECT_GI_BOTTLE_22,
/* 0x1EB */ OBJECT_BEE,
/* 0x1EC */ OBJECT_OT,
/* 0x1ED */ OBJECT_UTUBO,
/* 0x1EE */ OBJECT_DORA,
/* 0x1EF */ OBJECT_GI_LOACH,
/* 0x1F0 */ OBJECT_GI_SEAHORSE,
/* 0x1F1 */ OBJECT_BIGPO,
/* 0x1F2 */ OBJECT_HARIKO,
/* 0x1F3 */ OBJECT_DNO,
/* 0x1F4 */ OBJECT_SINKAI_KABE,
/* 0x1F5 */ OBJECT_KIN2_OBJ,
/* 0x1F6 */ OBJECT_ISHI,
/* 0x1F7 */ OBJECT_HAKUGIN_DEMO,
/* 0x1F8 */ OBJECT_JG,
/* 0x1F9 */ OBJECT_GI_SWORD_2,
/* 0x1FA */ OBJECT_GI_SWORD_3,
/* 0x1FB */ OBJECT_GI_SWORD_4,
/* 0x1FC */ OBJECT_UM,
/* 0x1FD */ OBJECT_MASK_GIBUDO,
/* 0x1FE */ OBJECT_MASK_JSON,
/* 0x1FF */ OBJECT_MASK_KERFAY,
/* 0x200 */ OBJECT_MASK_BIGELF,
/* 0x201 */ OBJECT_RB,
/* 0x202 */ OBJECT_MBAR_OBJ,
/* 0x203 */ OBJECT_IKANA_OBJ,
/* 0x204 */ OBJECT_KZ,
/* 0x205 */ OBJECT_TOKEI_TURRET,
/* 0x206 */ OBJECT_ZOG,
/* 0x207 */ OBJECT_ROTLIFT,
/* 0x208 */ OBJECT_POSTHOUSE_OBJ,
/* 0x209 */ OBJECT_GI_MASK09,
/* 0x20A */ OBJECT_GI_MASK14,
/* 0x20B */ OBJECT_GI_MASK15,
/* 0x20C */ OBJECT_INIBS_OBJECT,
/* 0x20D */ OBJECT_TREE,
/* 0x20E */ OBJECT_KAIZOKU_OBJ,
/* 0x20F */ OBJECT_GI_RESERVE_B_00,
/* 0x210 */ OBJECT_GI_RESERVE_C_00,
/* 0x211 */ OBJECT_ZOB,
/* 0x212 */ OBJECT_MILKBAR,
/* 0x213 */ OBJECT_DMASK,
/* 0x214 */ OBJECT_MASK_KYOJIN,
/* 0x215 */ OBJECT_GI_RESERVE_C_01,
/* 0x216 */ OBJECT_ZOD,
/* 0x217 */ OBJECT_KUMO30,
/* 0x218 */ OBJECT_OBJECT_UNSET_YASI,
/* 0x219 */ OBJECT_MASK_ROMERNY,
/* 0x21A */ OBJECT_TANRON1,
/* 0x21B */ OBJECT_TANRON2,
/* 0x21C */ OBJECT_TANRON3,
/* 0x21D */ OBJECT_GI_MAGICMUSHROOM,
/* 0x21E */ OBJECT_OBJECT_UNSET_CHAN,
/* 0x21F */ OBJECT_GI_MASK10,
/* 0x220 */ OBJECT_ZOS,
/* 0x221 */ OBJECT_MASK_POSTHAT,
/* 0x222 */ OBJECT_F40_SWITCH,
/* 0x223 */ OBJECT_LODMOON,
/* 0x224 */ OBJECT_TRO,
/* 0x225 */ OBJECT_GI_MASK12,
/* 0x226 */ OBJECT_GI_MASK23,
/* 0x227 */ OBJECT_GI_BOTTLE_21,
/* 0x228 */ OBJECT_GI_CAMERA,
/* 0x229 */ OBJECT_KAMEJIMA,
/* 0x22A */ OBJECT_HARFGIBUD,
/* 0x22B */ OBJECT_ZOV,
/* 0x22C */ OBJECT_HGDOOR,
/* 0x22D */ OBJECT_UNSET_22D,
/* 0x22E */ OBJECT_UNSET_22E,
/* 0x22F */ OBJECT_UNSET_22F,
/* 0x230 */ OBJECT_DOR01,
/* 0x231 */ OBJECT_DOR02,
/* 0x232 */ OBJECT_DOR03,
/* 0x233 */ OBJECT_DOR04,
/* 0x234 */ OBJECT_LAST_OBJ,
/* 0x235 */ OBJECT_REDEAD_OBJ,
/* 0x236 */ OBJECT_IKNINSIDE_OBJ,
/* 0x237 */ OBJECT_IKNV_OBJ,
/* 0x238 */ OBJECT_PAMERA,
/* 0x239 */ OBJECT_HSSTUMP,
/* 0x23A */ OBJECT_ZM,
/* 0x23B */ OBJECT_BIG_FWALL,
/* 0x23C */ OBJECT_SECOM_OBJ,
/* 0x23D */ OBJECT_HUNSUI,
/* 0x23E */ OBJECT_UCH,
/* 0x23F */ OBJECT_TANRON4,
/* 0x240 */ OBJECT_TANRON5,
/* 0x241 */ OBJECT_DT,
/* 0x242 */ OBJECT_GI_MASK03,
/* 0x243 */ OBJECT_CHA,
/* 0x244 */ OBJECT_OBJECT_UNSET_DINNER,
/* 0x245 */ OBJECT_GI_RESERVE_B_01,
/* 0x246 */ OBJECT_LASTDAY,
/* 0x247 */ OBJECT_BAI,
/* 0x248 */ OBJECT_IN2,
/* 0x249 */ OBJECT_IKN_DEMO,
/* 0x24A */ OBJECT_YB,
/* 0x24B */ OBJECT_RZ,
/* 0x24C */ OBJECT_MASK_ZACHO,
/* 0x24D */ OBJECT_GI_FIELDMAP,
/* 0x24E */ OBJECT_MASK_STONE,
/* 0x24F */ OBJECT_BJT,
/* 0x250 */ OBJECT_TARU,
/* 0x251 */ OBJECT_MOONSTON,
/* 0x252 */ OBJECT_MASK_BREE,
/* 0x253 */ OBJECT_GI_SCHEDULE,
/* 0x254 */ OBJECT_GI_STONEMASK,
/* 0x255 */ OBJECT_ZORABAND,
/* 0x256 */ OBJECT_KEPN_KOYA,
/* 0x257 */ OBJECT_OBJECT_UNSET_USIYANE,
/* 0x258 */ OBJECT_GI_MASK05,
/* 0x259 */ OBJECT_GI_MASK11,
/* 0x25A */ OBJECT_GI_MASK20,
/* 0x25B */ OBJECT_NNH,
/* 0x25C */ OBJECT_MASK_GERO,
/* 0x25D */ OBJECT_MASK_YOFUKASI,
/* 0x25E */ OBJECT_MASK_MEOTO,
/* 0x25F */ OBJECT_MASK_DANCER,
/* 0x260 */ OBJECT_KZSAKU,
/* 0x261 */ OBJECT_OBJECT_UNSET_MILK_BIN,
/* 0x262 */ OBJECT_RANDOM_OBJ,
/* 0x263 */ OBJECT_KUJIYA,
/* 0x264 */ OBJECT_KITAN,
/* 0x265 */ OBJECT_GI_MASK06,
/* 0x266 */ OBJECT_GI_MASK16,
/* 0x267 */ OBJECT_ASTR_OBJ,
/* 0x268 */ OBJECT_BSB,
/* 0x269 */ OBJECT_FALL2,
/* 0x26A */ OBJECT_STH,
/* 0x26B */ OBJECT_GI_MSSA,
/* 0x26C */ OBJECT_SMTOWER,
/* 0x26D */ OBJECT_GI_MASK21,
/* 0x26E */ OBJECT_YADO_OBJ,
/* 0x26F */ OBJECT_SYOTEN,
/* 0x270 */ OBJECT_MOONEND,
/* 0x271 */ OBJECT_OB,
/* 0x272 */ OBJECT_GI_BOTTLE_04,
/* 0x273 */ OBJECT_OBJECT_UNSET_DANPEILIFT,
/* 0x274 */ OBJECT_WDOR01,
/* 0x275 */ OBJECT_WDOR02,
/* 0x276 */ OBJECT_WDOR03,
/* 0x277 */ OBJECT_STK3,
/* 0x278 */ OBJECT_KINSTA1_OBJ,
/* 0x279 */ OBJECT_KINSTA2_OBJ,
/* 0x27A */ OBJECT_BH,
/* 0x27B */ OBJECT_WDOR04,
/* 0x27C */ OBJECT_WDOR05,
/* 0x27D */ OBJECT_GI_MASK17,
/* 0x27E */ OBJECT_GI_MASK22,
/* 0x27F */ OBJECT_LBFSHOT,
/* 0x280 */ OBJECT_FUSEN,
/* 0x281 */ OBJECT_ENDING_OBJ,
/* 0x282 */ OBJECT_GI_MASK13
} ObjectID;
#endif

505
include/z64scene.h Normal file
View File

@ -0,0 +1,505 @@
#ifndef _Z64SCENE_H_
#define _Z64SCENE_H_
#include <ultra64.h>
#include <z64dma.h>
#include <unk.h>
typedef struct {
/* 0x0 */ u32 vromStart;
/* 0x4 */ u32 vromEnd;
} RoomFileLocation; // size = 0x8
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 data2;
} SCmdBase;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdSpawnList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdActorList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdCsCameraList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdColHeader;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdRoomList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ UNK_TYPE1 pad2[2];
/* 0x04 */ s8 west;
/* 0x05 */ s8 vertical;
/* 0x06 */ s8 south;
/* 0x07 */ u8 clothIntensity;
} SCmdWindSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdEntranceList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 cUpElfMsgNum;
/* 0x04 */ u32 keepObjectId;
} SCmdSpecialFiles;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 gpFlag1;
/* 0x04 */ u32 gpFlag2;
} SCmdRoomBehavior;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdMesh;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdObjectList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdLightList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdPathList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdTransiActorList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdLightSettingList;
// Cloudmodding has this as Environment Settings
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ UNK_TYPE1 pad2[2];
/* 0x04 */ u8 hour;
/* 0x05 */ u8 min;
/* 0x06 */ u8 unk6;
} SCmdTimeSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ UNK_TYPE1 pad2[2];
/* 0x04 */ u8 skyboxId;
/* 0x05 */ u8 unk5;
/* 0x06 */ u8 unk6;
} SCmdSkyboxSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ UNK_TYPE1 pad2[2];
/* 0x04 */ u8 unk4;
/* 0x05 */ u8 unk5;
} SCmdSkyboxDisables;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdExitList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 data2;
} SCmdEndMarker;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 bgmId;
/* 0x02 */ UNK_TYPE1 pad2[4];
/* 0x06 */ u8 nighttimeSFX;
/* 0x07 */ u8 musicSeq;
} SCmdSoundSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x02 */ UNK_TYPE1 pad2[5];
/* 0x07 */ u8 echo;
} SCmdEchoSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdCutsceneData;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdAltHeaders;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ u32 data2;
} SCmdWorldMapVisited;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdTextureAnimations;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdCutsceneActorList;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 data1;
/* 0x04 */ void* segment;
} SCmdMinimapSettings;
typedef struct {
/* 0x00 */ u8 code;
/* 0x01 */ u8 num;
/* 0x04 */ void* segment;
} SCmdMinimapChests;
typedef struct {
/* 0x0 */ u32 opaqueDl;
/* 0x4 */ u32 translucentDl;
} RoomMeshType0Params; // size = 0x8
// Fields TODO
typedef struct {
/* 0x0 */ u8 type;
/* 0x1 */ u8 format; // 1 = single, 2 = multi
} RoomMeshType1; // size = 0x2
// Size TODO
typedef struct {
/* 0x0 */ UNK_TYPE1 pad0[0x10];
} RoomMeshType1Params; // size = 0x10
typedef struct {
/* 0x0 */ UNK_TYPE1 pad0[0x10];
} RoomMeshType2Params; // size = 0x10
typedef struct {
/* 0x0 */ u8 type;
/* 0x1 */ u8 count;
/* 0x2 */ UNK_TYPE1 pad2[0x2];
/* 0x4 */ RoomMeshType0Params* paramsStart;
/* 0x8 */ RoomMeshType0Params* paramsEnd;
} RoomMeshType0; // size = 0xC
typedef struct {
/* 0x0 */ u8 type;
/* 0x1 */ u8 count;
/* 0x2 */ UNK_TYPE1 pad2[0x2];
/* 0x4 */ RoomMeshType2Params* paramsStart;
/* 0x8 */ RoomMeshType2Params* paramsEnd;
} RoomMeshType2; // size = 0xC
typedef union {
RoomMeshType0 type0;
RoomMeshType1 type1;
RoomMeshType2 type2;
} RoomMesh; // size = 0xC
typedef struct {
/* 0x00 */ s8 num;
/* 0x01 */ u8 unk1;
/* 0x02 */ u8 unk2;
/* 0x03 */ u8 unk3;
/* 0x04 */ s8 echo;
/* 0x05 */ u8 unk5;
/* 0x06 */ u8 enablePosLights;
/* 0x07 */ UNK_TYPE1 pad7[0x1];
/* 0x08 */ RoomMesh* mesh;
/* 0x0C */ void* segment;
/* 0x10 */ UNK_TYPE1 pad10[0x4];
} Room; // size = 0x14
typedef struct {
/* 0x00 */ Room currRoom;
/* 0x14 */ Room prevRoom;
/* 0x28 */ void* roomMemPages[2]; // In a scene with transitions, roomMemory is split between two pages that toggle each transition. This is one continuous range, as the second page allocates from the end
/* 0x30 */ u8 activeMemPage; // 0 - First page in memory, 1 - Second page
/* 0x31 */ s8 unk31;
/* 0x32 */ UNK_TYPE1 pad32[0x2];
/* 0x34 */ void* activeRoomVram;
/* 0x38 */ DmaRequest dmaRequest;
/* 0x58 */ OSMesgQueue loadQueue;
/* 0x70 */ OSMesg loadMsg[1];
/* 0x74 */ void* unk74;
/* 0x78 */ s8 unk78;
/* 0x79 */ s8 unk79;
/* 0x7A */ UNK_TYPE2 unk7A[3];
} RoomContext; // size = 0x80
typedef struct {
/* 0x0 */ s16 id;
/* 0x2 */ Vec3s pos;
/* 0x8 */ Vec3s rot;
/* 0xE */ s16 params;
} ActorEntry; // size = 0x10
typedef struct {
/* 0x0 */ u32 data;
/* 0x4 */ s16 unk4;
/* 0x6 */ u8 unk6;
/* 0x7 */ u8 unk7;
} CutsceneEntry; // size = 0x8
typedef struct {
/* 0x0 */ u8 spawn;
/* 0x1 */ u8 room;
} EntranceEntry; // size = 0x2
typedef struct {
/* 0x0 */ s8 scene; // TODO what does it means for this to be neagtive?
/* 0x1 */ s8 unk1;
/* 0x2 */ u16 unk2;
} EntranceRecord; // size = 0x4
typedef struct {
/* 0x0 */ u32 entranceCount;
/* 0x4 */ EntranceRecord** entrances;
/* 0x8 */ char* name;
} SceneEntranceTableEnty; // size = 0xC
typedef struct {
/* 0x00 */ u16 scenes[27];
} SceneIdList; // size = 0x36
typedef struct {
/* 0x00 */ s16 id; // Negative ids mean that the object is unloaded
/* 0x02 */ UNK_TYPE1 pad2[0x2];
/* 0x04 */ void* vramAddr;
/* 0x08 */ DmaRequest dmaReq;
/* 0x28 */ OSMesgQueue loadQueue;
/* 0x40 */ OSMesg loadMsg;
} SceneObject; // size = 0x44
typedef struct {
/* 0x0 */ u32 romStart;
/* 0x4 */ u32 romEnd;
/* 0x8 */ u16 unk8;
/* 0xA */ UNK_TYPE1 padA[0x1];
/* 0xB */ u8 sceneConfig; // TODO: This at least controls the behavior of animated textures. Does it do more?
/* 0xC */ UNK_TYPE1 padC[0x1];
/* 0xD */ u8 unkD;
/* 0xE */ UNK_TYPE1 padE[0x2];
} SceneTableEntry; // size = 0x10
typedef struct {
/* 0x0 */ s8 xStep;
/* 0x1 */ s8 yStep;
/* 0x2 */ u8 width;
/* 0x3 */ u8 height;
} ScrollingTextureParams; // size = 0x4
typedef struct {
/* 0x000 */ void* objectVramStart;
/* 0x004 */ void* objectVramEnd;
/* 0x008 */ u8 objectCount;
/* 0x009 */ u8 spawnedObjectCount;
/* 0x00A */ u8 mainKeepIndex;
/* 0x00B */ u8 keepObjectId;
/* 0x00C */ SceneObject objects[35]; // TODO: OBJECT_EXCHANGE_BANK_MAX array size
} SceneContext; // size = 0x958
typedef union {
/* Command: N/A */ SCmdBase base;
/* Command: 0x00 */ SCmdSpawnList spawnList;
/* Command: 0x01 */ SCmdActorList actorList;
/* Command: 0x02 */ SCmdCsCameraList csCameraList;
/* Command: 0x03 */ SCmdColHeader colHeader;
/* Command: 0x04 */ SCmdRoomList roomList;
/* Command: 0x05 */ SCmdWindSettings windSettings;
/* Command: 0x06 */ SCmdEntranceList entranceList;
/* Command: 0x07 */ SCmdSpecialFiles specialFiles;
/* Command: 0x08 */ SCmdRoomBehavior roomBehavior;
/* Command: 0x09 */ // Unused
/* Command: 0x0A */ SCmdMesh mesh;
/* Command: 0x0B */ SCmdObjectList objectList;
/* Command: 0x0C */ SCmdLightList lightList;
/* Command: 0x0D */ SCmdPathList pathList;
/* Command: 0x0E */ SCmdTransiActorList transiActorList;
/* Command: 0x0F */ SCmdLightSettingList lightSettingList;
/* Command: 0x10 */ SCmdTimeSettings timeSettings;
/* Command: 0x11 */ SCmdSkyboxSettings skyboxSettings;
/* Command: 0x12 */ SCmdSkyboxDisables skyboxDisables;
/* Command: 0x13 */ SCmdExitList exitList;
/* Command: 0x14 */ SCmdEndMarker endMarker;
/* Command: 0x15 */ SCmdSoundSettings soundSettings;
/* Command: 0x16 */ SCmdEchoSettings echoSettings;
/* Command: 0x17 */ SCmdCutsceneData cutsceneData;
/* Command: 0x18 */ SCmdAltHeaders altHeaders;
/* Command: 0x19 */ SCmdWorldMapVisited worldMapVisited;
/* Command: 0x1A */ SCmdTextureAnimations textureAnimations;
/* Command: 0x1B */ SCmdCutsceneActorList cutsceneActorList;
/* Command: 0x1C */ SCmdMinimapSettings minimapSettings;
/* Command: 0x1D */ // Unused
/* Command: 0x1E */ SCmdMinimapChests minimapChests;
} SceneCmd; // size = 0x8
typedef enum {
/* 0x00 */ SCENE_20SICHITAI2,
/* 0x01 */ SCENE_UNSET_1,
/* 0x02 */ SCENE_UNSET_2,
/* 0x03 */ SCENE_UNSET_3,
/* 0x04 */ SCENE_UNSET_4,
/* 0x05 */ SCENE_UNSET_5,
/* 0x06 */ SCENE_UNSET_6,
/* 0x07 */ SCENE_KAKUSIANA,
/* 0x08 */ SCENE_SPOT00,
/* 0x09 */ SCENE_UNSET_9,
/* 0x0A */ SCENE_WITCH_SHOP,
/* 0x0B */ SCENE_LAST_BS,
/* 0x0C */ SCENE_HAKASHITA,
/* 0x0D */ SCENE_AYASHIISHOP,
/* 0x0E */ SCENE_UNSET_E,
/* 0x0F */ SCENE_UNSET_F,
/* 0x10 */ SCENE_OMOYA,
/* 0x11 */ SCENE_BOWLING,
/* 0x12 */ SCENE_SONCHONOIE,
/* 0x13 */ SCENE_IKANA,
/* 0x14 */ SCENE_KAIZOKU,
/* 0x15 */ SCENE_MILK_BAR,
/* 0x16 */ SCENE_INISIE_N,
/* 0x17 */ SCENE_TAKARAYA,
/* 0x18 */ SCENE_INISIE_R,
/* 0x19 */ SCENE_OKUJOU,
/* 0x1A */ SCENE_OPENINGDAN,
/* 0x1B */ SCENE_MITURIN,
/* 0x1C */ SCENE_13HUBUKINOMITI,
/* 0x1D */ SCENE_CASTLE,
/* 0x1E */ SCENE_DEKUTES,
/* 0x1F */ SCENE_MITURIN_BS,
/* 0x20 */ SCENE_SYATEKI_MIZU,
/* 0x21 */ SCENE_HAKUGIN,
/* 0x22 */ SCENE_ROMANYMAE,
/* 0x23 */ SCENE_PIRATE,
/* 0x24 */ SCENE_SYATEKI_MORI,
/* 0x25 */ SCENE_SINKAI,
/* 0x26 */ SCENE_YOUSEI_IZUMI,
/* 0x27 */ SCENE_KINSTA1,
/* 0x28 */ SCENE_KINDAN2,
/* 0x29 */ SCENE_TENMON_DAI,
/* 0x2A */ SCENE_LAST_DEKU,
/* 0x2B */ SCENE_22DEKUCITY,
/* 0x2C */ SCENE_KAJIYA,
/* 0x2D */ SCENE_00KEIKOKU,
/* 0x2E */ SCENE_POSTHOUSE,
/* 0x2F */ SCENE_LABO,
/* 0x30 */ SCENE_DANPEI2TEST,
/* 0x31 */ SCENE_UNSET_31,
/* 0x32 */ SCENE_16GORON_HOUSE,
/* 0x33 */ SCENE_33ZORACITY,
/* 0x34 */ SCENE_8ITEMSHOP,
/* 0x35 */ SCENE_F01,
/* 0x36 */ SCENE_INISIE_BS,
/* 0x37 */ SCENE_30GYOSON,
/* 0x38 */ SCENE_31MISAKI,
/* 0x39 */ SCENE_TAKARAKUJI,
/* 0x3A */ SCENE_UNSET_3A,
/* 0x3B */ SCENE_TORIDE,
/* 0x3C */ SCENE_FISHERMAN,
/* 0x3D */ SCENE_GORONSHOP,
/* 0x3E */ SCENE_DEKU_KING,
/* 0x3F */ SCENE_LAST_GORON,
/* 0x40 */ SCENE_24KEMONOMITI,
/* 0x41 */ SCENE_F01_B,
/* 0x42 */ SCENE_F01C,
/* 0x43 */ SCENE_BOTI,
/* 0x44 */ SCENE_HAKUGIN_BS,
/* 0x45 */ SCENE_20SICHITAI,
/* 0x46 */ SCENE_21MITURINMAE,
/* 0x47 */ SCENE_LAST_ZORA,
/* 0x48 */ SCENE_11GORONNOSATO2,
/* 0x49 */ SCENE_SEA,
/* 0x4A */ SCENE_35TAKI,
/* 0x4B */ SCENE_REDEAD,
/* 0x4C */ SCENE_BANDROOM,
/* 0x4D */ SCENE_11GORONNOSATO,
/* 0x4E */ SCENE_GORON_HAKA,
/* 0x4F */ SCENE_SECOM,
/* 0x50 */ SCENE_10YUKIYAMANOMURA,
/* 0x51 */ SCENE_TOUGITES,
/* 0x52 */ SCENE_DANPEI,
/* 0x53 */ SCENE_IKANAMAE,
/* 0x54 */ SCENE_DOUJOU,
/* 0x55 */ SCENE_MUSICHOUSE,
/* 0x56 */ SCENE_IKNINSIDE,
/* 0x57 */ SCENE_MAP_SHOP,
/* 0x58 */ SCENE_F40,
/* 0x59 */ SCENE_F41,
/* 0x5A */ SCENE_10YUKIYAMANOMURA2,
/* 0x5B */ SCENE_14YUKIDAMANOMITI,
/* 0x5C */ SCENE_12HAKUGINMAE,
/* 0x5D */ SCENE_17SETUGEN,
/* 0x5E */ SCENE_17SETUGEN2,
/* 0x5F */ SCENE_SEA_BS,
/* 0x60 */ SCENE_RANDOM,
/* 0x61 */ SCENE_YADOYA,
/* 0x62 */ SCENE_KONPEKI_ENT,
/* 0x63 */ SCENE_INSIDETOWER,
/* 0x64 */ SCENE_26SARUNOMORI,
/* 0x65 */ SCENE_LOST_WOODS,
/* 0x66 */ SCENE_LAST_LINK,
/* 0x67 */ SCENE_SOUGEN,
/* 0x68 */ SCENE_BOMYA,
/* 0x69 */ SCENE_KYOJINNOMA,
/* 0x6A */ SCENE_KOEPONARACE,
/* 0x6B */ SCENE_GORONRACE,
/* 0x6C */ SCENE_TOWN,
/* 0x6D */ SCENE_ICHIBA,
/* 0x6E */ SCENE_BACKTOWN,
/* 0x6F */ SCENE_CLOCKTOWER,
/* 0x70 */ SCENE_ALLEY
} SceneID;
#endif

View File

@ -1,5 +1,5 @@
#include <ultra64.h>
#include <global.h>
#include <global_overlay.h>
ActorInit bgFuKaitenInitData = {
ACTOR_BG_FU_KAITEN,

View File

@ -1,5 +1,5 @@
#include <ultra64.h>
#include <global.h>
#include <global_overlay.h>
ActorInit bgIkanaRayInitData = {
ACTOR_BG_IKANA_RAY,
@ -22,7 +22,7 @@ ColCylinderInit bgIkanaRayCylinderInit = {
};
// TODO macro
ActorInitVar bgIkanaRayCompInit[] = {
InitChainEntry bgIkanaRayCompInit[] = {
{1, 6, 0x0FC, 4000},
{1, 6, 0x100, 1000},
{1, 6, 0x104, 1000},

View File

@ -164,7 +164,7 @@ s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, u32 vromStart,
return -2;
}
request->vromStart = vromStart;
request->vromAddr = vromStart;
request->dramAddr = vramStart;
request->size = size;
request->unk14 = 0;

View File

@ -7,7 +7,7 @@ void EnAObj_Init(ActorEnAObj* this, GlobalContext* ctxt) {
ActorEnAObj* s0 = (ActorEnAObj*)this;
s0->base.textId = ((s0->base.params >> 8) & 0xFF) | 0x300;
s0->base.params = (s0->base.params & 0xFF) - 9;
Actor_ProcessInitChain((Actor*)s0, (ActorInitVar*)&enAObjInitVar);
Actor_ProcessInitChain((Actor*)s0, &enAObjInitVar);
Actor_SetDrawParams(&s0->base.shape, 0, (actor_shadow_draw_func)func_800B3FC0, 12);
Collision_InitCylinder(ctxt, &s0->collision, (Actor*)s0, &enAObjCylinderInit);
Collision_CylinderMoveToActor((Actor*)s0, &s0->collision);

View File

@ -1,5 +1,5 @@
#include <ultra64.h>
#include <global.h>
#include <global_overlay.h>
void TitleSetup_GameStateResetContext(void) {
XREG(2) = 0;

View File

@ -384,45 +384,45 @@ s16 Math_Vec3f_Pitch(Vec3f* from, Vec3f* to) {
return atans_flip(Math_Vec3f_DistXZ(from, to), from->y - to->y);
}
void Actor_ProcessInitChain(Actor* actor, ActorInitVar* init) {
void Actor_ProcessInitChain(Actor* actor, InitChainEntry* init) {
do {
actorInitVarFuncs[init->type]((u8*)actor, init);
} while ((init++)->cont);
}
void IChain_Apply_u8(u8* actor, ActorInitVar* init) {
void IChain_Apply_u8(u8* actor, InitChainEntry* init) {
*(u8*)(actor + init->offset) = (u8)(init->value);
}
void IChain_Apply_s8(u8* actor, ActorInitVar* init) {
void IChain_Apply_s8(u8* actor, InitChainEntry* init) {
*(u8*)(actor + init->offset) = (u8)(init->value);
}
void IChain_Apply_u16(u8* actor, ActorInitVar* init) {
void IChain_Apply_u16(u8* actor, InitChainEntry* init) {
*(u16*)(actor + init->offset) = (u16)(init->value);
}
void IChain_Apply_s16(u8* actor, ActorInitVar* init) {
void IChain_Apply_s16(u8* actor, InitChainEntry* init) {
*(u16*)(actor + init->offset) = (u16)(init->value);
}
void IChain_Apply_u32(u8* actor, ActorInitVar* init) {
void IChain_Apply_u32(u8* actor, InitChainEntry* init) {
*(u32*)(actor + init->offset) = (u32)(init->value);
}
void IChain_Apply_s32(u8* actor, ActorInitVar* init) {
void IChain_Apply_s32(u8* actor, InitChainEntry* init) {
*(u32*)(actor + init->offset) = (u32)(init->value);
}
void IChain_Apply_f32(u8* actor, ActorInitVar* init) {
void IChain_Apply_f32(u8* actor, InitChainEntry* init) {
*(f32*)(actor + init->offset) = (f32)(init->value);
}
void IChain_Apply_f32div1000(u8* actor, ActorInitVar* init) {
void IChain_Apply_f32div1000(u8* actor, InitChainEntry* init) {
*(f32*)(actor + init->offset) = (f32)(init->value) / 1000;
}
void IChain_Apply_Vec3f(u8* actor, ActorInitVar* init) {
void IChain_Apply_Vec3f(u8* actor, InitChainEntry* init) {
Vec3f* v0 = (Vec3f*)(actor + init->offset);
f32 f0 = (f32)(init->value);
@ -431,7 +431,7 @@ void IChain_Apply_Vec3f(u8* actor, ActorInitVar* init) {
v0->x = f0;
}
void IChain_Apply_Vec3fdiv1000(u8* actor, ActorInitVar* init) {
void IChain_Apply_Vec3fdiv1000(u8* actor, InitChainEntry* init) {
Vec3f* v0 = (Vec3f*)(actor + init->offset);
f32 f0 = (f32)(init->value) / 1000;
@ -440,7 +440,7 @@ void IChain_Apply_Vec3fdiv1000(u8* actor, ActorInitVar* init) {
v0->x = f0;
}
void IChain_Apply_Vec3s(u8* actor, ActorInitVar* init) {
void IChain_Apply_Vec3s(u8* actor, InitChainEntry* init) {
Vec3s* v0 = (Vec3s*)(actor + init->offset);
s16 v1 = (s16)(init->value);

View File

@ -78,7 +78,7 @@ void Scene_ReloadUnloadedObjects(SceneContext* sceneCtxt) {
for (i = 0; i < sceneCtxt->objectCount; i++) {
if (status->id < 0) {
s32 id = -status->id;
if (status->dmaReq.vromStart == 0) {
if (status->dmaReq.vromAddr == 0) {
objectFile = &objectFileTable[id];
size = objectFile->vromEnd - objectFile->vromStart;
@ -138,7 +138,7 @@ void* func_8012F73C(SceneContext* sceneCtxt, s32 iParm2, s16 id) {
ObjectFileTableEntry* fileTableEntry;
sceneCtxt->objects[iParm2].id = -id;
sceneCtxt->objects[iParm2].dmaReq.vromStart = 0;
sceneCtxt->objects[iParm2].dmaReq.vromAddr = 0;
fileTableEntry = &objectFileTable[id];
vromSize = fileTableEntry->vromEnd - fileTableEntry->vromStart;