z_en_box.c, z_demo_tre_lgt.c OK, some object_box documentation (#703)

* All functions attempted, 2 NON_MATCHINGs

* z_en_box OK, more documentation

* format

* en_box cleanups, fix GI item table

* z_demo_tre_lgt OK

* format.sh

* pr suggestions 1

* object_box improvements

* Merge remote-tracking branch 'origin/master' into z_en_box

* Revert "Merge remote-tracking branch 'origin/master' into z_en_box"

This reverts commit 5aacdf26e49c91fadc6f50dc2b9e19935a8f3ec4.

* more suggested changes

* fix comment
This commit is contained in:
mzxrules
2022-06-18 10:33:59 -04:00
committed by GitHub
parent 8049dec339
commit ec43a32c26
15 changed files with 1006 additions and 192 deletions
+44 -43
View File
@@ -1,52 +1,53 @@
<Root>
<File Name="object_box" Segment="6">
<Animation Name="object_box_Anim_000128" Offset="0x128" />
<Animation Name="object_box_Anim_00024C" Offset="0x24C" />
<!-- <Blob Name="object_box_zeroes_unk_0000025C" Size="0xF4" Offset="0x25C" /> -->
<Animation Name="object_box_Anim_00043C" Offset="0x43C" />
<!-- <Blob Name="object_box_zeroes_unk_0000044C" Size="0x64" Offset="0x44C" /> -->
<DList Name="object_box_DL_0006F0" Offset="0x6F0" />
<DList Name="object_box_DL_000A50" Offset="0xA50" />
<DList Name="object_box_DL_000DB0" Offset="0xDB0" />
<DList Name="object_box_DL_0012E8" Offset="0x12E8" />
<DList Name="object_box_DL_001850" Offset="0x1850" />
<DList Name="object_box_DL_001D58" Offset="0x1D58" />
<Texture Name="object_box_Tex_001E60" OutName="tex_001E60" Format="rgba16" Width="32" Height="64" Offset="0x1E60" />
<Texture Name="object_box_Tex_002E60" OutName="tex_002E60" Format="rgba16" Width="32" Height="32" Offset="0x2E60" />
<Texture Name="object_box_Tex_003660" OutName="tex_003660" Format="rgba16" Width="32" Height="64" Offset="0x3660" />
<Texture Name="object_box_Tex_004660" OutName="tex_004660" Format="rgba16" Width="32" Height="32" Offset="0x4660" />
<Texture Name="object_box_Tex_004E60" OutName="tex_004E60" Format="rgba16" Width="32" Height="64" Offset="0x4E60" />
<Texture Name="object_box_Tex_005E60" OutName="tex_005E60" Format="rgba16" Width="32" Height="32" Offset="0x5E60" />
<Limb Name="object_box_Standardlimb_006660" Type="Standard" EnumName="OBJECT_BOX_1_LIMB_01" Offset="0x6660" />
<Limb Name="object_box_Standardlimb_00666C" Type="Standard" EnumName="OBJECT_BOX_1_LIMB_02" Offset="0x666C" />
<Limb Name="object_box_Standardlimb_006678" Type="Standard" EnumName="OBJECT_BOX_1_LIMB_03" Offset="0x6678" />
<Limb Name="object_box_Standardlimb_006684" Type="Standard" EnumName="OBJECT_BOX_1_LIMB_04" Offset="0x6684" />
<Skeleton Name="object_box_Skel_0066A0" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BOX_1_LIMB_NONE" LimbMax="OBJECT_BOX_1_LIMB_MAX" EnumName="object_box_1_Limbs" Offset="0x66A0" />
<!-- <Blob Name="object_box_Blob_0066A8" Size="0x798" Offset="0x66A8" /> -->
<Texture Name="object_box_Tex_006E40" OutName="tex_006E40" Format="i8" Width="64" Height="32" Offset="0x6E40" />
<Animation Name="gBoxBigChestOpenChildAnim" Offset="0x128" />
<Animation Name="gBoxBigChestOpenAdultAnim" Offset="0x24C" />
<Blob Name="object_box_zeroes_unk_0000025C" Size="0xF4" Offset="0x25C" />
<Animation Name="gBoxChestOpenAnim" Offset="0x43C" />
<Blob Name="object_box_zeroes_unk_0000044C" Size="0x64" Offset="0x44C" />
<DList Name="gBoxChestBaseDL" Offset="0x6F0" />
<DList Name="gBoxChestBaseGildedDL" Offset="0xA50" />
<DList Name="gBoxChestBaseOrnateDL" Offset="0xDB0" />
<DList Name="gBoxChestLidDL" Offset="0x12E8" />
<DList Name="gBoxChestLidGildedDL" Offset="0x1850" />
<DList Name="gBoxChestLidOrnateDL" Offset="0x1D58" />
<Texture Name="gBoxChestLockTex" OutName="chest_lock_tex" Format="rgba16" Width="32" Height="64" Offset="0x1E60" />
<Texture Name="gBoxChestCornerTex" OutName="chest_corner_tex" Format="rgba16" Width="32" Height="32" Offset="0x2E60" />
<Texture Name="gBoxChestLockGildedTex" OutName="chest_lock_gilded_tex" Format="rgba16" Width="32" Height="64" Offset="0x3660" />
<Texture Name="gBoxChestCornerGildedTex" OutName="chest_corner_gilded_tex" Format="rgba16" Width="32" Height="32" Offset="0x4660" />
<Texture Name="gBoxChestLockOrnateTex" OutName="chest_lock_ornate_tex" Format="rgba16" Width="32" Height="64" Offset="0x4E60" />
<Texture Name="gBoxChestCornerOrnateTex" OutName="chest_corner_ornate_tex" Format="rgba16" Width="32" Height="32" Offset="0x5E60" />
<Limb Name="object_box_Standardlimb_006660" Type="Standard" EnumName="OBJECT_BOX_CHEST_LIMB_01" Offset="0x6660" />
<Limb Name="object_box_Standardlimb_00666C" Type="Standard" EnumName="OBJECT_BOX_CHEST_LIMB_02" Offset="0x666C" />
<Limb Name="object_box_Standardlimb_006678" Type="Standard" EnumName="OBJECT_BOX_CHEST_LIMB_03" Offset="0x6678" />
<Limb Name="object_box_Standardlimb_006684" Type="Standard" EnumName="OBJECT_BOX_CHEST_LIMB_04" Offset="0x6684" />
<Skeleton Name="gBoxChestSkel" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BOX_CHEST_LIMB_NONE" LimbMax="OBJECT_BOX_CHEST_LIMB_MAX" EnumName="object_box_Chest_Limbs" Offset="0x66A0" />
<CurveAnimation Name="gBoxLightAdultCurveAnim" SkelOffset="0x7D78" Offset="0x6A20"/>
<CurveAnimation Name="gBoxLightChildCurveAnim" SkelOffset="0x7D78" Offset="0x6E30"/>
<Texture Name="gBoxLightTex" OutName="box_light_tex" Format="i8" Width="64" Height="32" Offset="0x6E40" />
<DList Name="object_box_DL_007890" Offset="0x7890" />
<DList Name="object_box_DL_007978" Offset="0x7978" />
<DList Name="object_box_DL_007A40" Offset="0x7A40" />
<DList Name="object_box_DL_007B08" Offset="0x7B08" />
<DList Name="object_box_DL_007BD0" Offset="0x7BD0" />
<Limb Name="object_box_Standardlimb_007C98" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_01" Offset="0x7C98" />
<Limb Name="object_box_Standardlimb_007CA4" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_02" Offset="0x7CA4" />
<Limb Name="object_box_Standardlimb_007CB0" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_03" Offset="0x7CB0" />
<Limb Name="object_box_Standardlimb_007CBC" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_04" Offset="0x7CBC" />
<Limb Name="object_box_Standardlimb_007CC8" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_05" Offset="0x7CC8" />
<Limb Name="object_box_Standardlimb_007CD4" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_06" Offset="0x7CD4" />
<Limb Name="object_box_Standardlimb_007CE0" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_07" Offset="0x7CE0" />
<Limb Name="object_box_Standardlimb_007CEC" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_08" Offset="0x7CEC" />
<Limb Name="object_box_Standardlimb_007CF8" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_09" Offset="0x7CF8" />
<Limb Name="object_box_Standardlimb_007D04" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_0A" Offset="0x7D04" />
<Limb Name="object_box_Standardlimb_007D10" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_0B" Offset="0x7D10" />
<Limb Name="object_box_Standardlimb_007D1C" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_0C" Offset="0x7D1C" />
<Limb Name="object_box_Standardlimb_007D28" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_0D" Offset="0x7D28" />
<Limb Name="object_box_Standardlimb_007D34" Type="Standard" EnumName="OBJECT_BOX_2_LIMB_0E" Offset="0x7D34" />
<Skeleton Name="object_box_Skel_007D78" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BOX_2_LIMB_NONE" LimbMax="OBJECT_BOX_2_LIMB_MAX" EnumName="object_box_2_Limbs" Offset="0x7D78" />
<Animation Name="object_box_Anim_007E54" Offset="0x7E54" />
<Animation Name="object_box_Anim_007F30" Offset="0x7F30" />
<!-- <Blob Name="object_box_zeroes_unk_00007F40" Size="0xA0" Offset="0x7F40" /> -->
<Collision Name="object_box_Colheader_0080E8" Offset="0x80E8" />
<Limb Name="object_box_Curvelimb_007C98" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_01" Offset="0x7C98" />
<Limb Name="object_box_Curvelimb_007CA4" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_02" Offset="0x7CA4" />
<Limb Name="object_box_Curvelimb_007CB0" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_03" Offset="0x7CB0" />
<Limb Name="object_box_Curvelimb_007CBC" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_04" Offset="0x7CBC" />
<Limb Name="object_box_Curvelimb_007CC8" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_05" Offset="0x7CC8" />
<Limb Name="object_box_Curvelimb_007CD4" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_06" Offset="0x7CD4" />
<Limb Name="object_box_Curvelimb_007CE0" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_07" Offset="0x7CE0" />
<Limb Name="object_box_Curvelimb_007CEC" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_08" Offset="0x7CEC" />
<Limb Name="object_box_Curvelimb_007CF8" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_09" Offset="0x7CF8" />
<Limb Name="object_box_Curvelimb_007D04" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_10" Offset="0x7D04" />
<Limb Name="object_box_Curvelimb_007D10" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_11" Offset="0x7D10" />
<Limb Name="object_box_Curvelimb_007D1C" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_12" Offset="0x7D1C" />
<Limb Name="object_box_Curvelimb_007D28" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_13" Offset="0x7D28" />
<Limb Name="object_box_Curvelimb_007D34" Type="Curve" EnumName="OBJECT_BOX_LIGHT_LIMB_14" Offset="0x7D34" />
<Skeleton Name="gBoxLightCurveSkel" Type="Curve" LimbType="Curve" LimbNone="OBJECT_BOX_LIGHT_LIMB_NONE" LimbMax="OBJECT_BOX_LIGHT_LIMB_MAX" EnumName="object_box_Light_Limbs" Offset="0x7D78" />
<Animation Name="gBoxBigChestOpenGoronAnim" Offset="0x7E54" />
<Animation Name="gBoxBigChestOpenDekuAnim" Offset="0x7F30" />
<Blob Name="object_box_zeroes_unk_00007F40" Size="0xA0" Offset="0x7F40" />
<Collision Name="gBoxChestCol" Offset="0x80E8" />
</File>
</Root>
+1 -1
View File
@@ -794,7 +794,7 @@ void func_800BE3D0(Actor* actor, s16 angle, Vec3s* arg2);
void func_800BE504(Actor* actor, ColliderCylinder* collider);
void func_800BE568(Actor* actor, ColliderSphere* collider);
void func_800BE5CC(Actor* actor, ColliderJntSph* collider, s32 colliderIndex);
s32 func_800BE63C(struct EnBox* chest);
s32 Actor_IsSmallChest(struct EnBox* chest);
void Actor_DrawDamageEffects(GlobalContext* globalCtx, Actor* actor, Vec3f limbPos[], s16 limbPosCount, f32 effectScale, f32 frozenSteamScale, f32 effectAlpha, u8 type);
void Actor_SpawnIceEffects(GlobalContext* globalCtx, Actor* actor, Vec3f limbPos[], s32 limbPosCount, s32 effectsPerLimb, f32 scale, f32 scaleRange);
+19 -11
View File
@@ -279,6 +279,7 @@ typedef enum {
/* 0x0A */ GI_RECOVERY_HEART,
/* 0x0C */ GI_HEART_PIECE = 0x0C,
/* 0x0D */ GI_HEART_CONTAINER,
/* 0x11 */ GI_STRAY_FAIRY = 0x11,
/* 0x16 */ GI_BOMBS_10 = 0x16,
/* 0x19 */ GI_STICKS_1 = 0x19,
/* 0x1A */ GI_BOMBCHUS_10,
@@ -298,22 +299,25 @@ typedef enum {
/* 0x33 */ GI_SHIELD_MIRROR,
/* 0x35 */ GI_MAGIC_BEANS = 0x35,
/* 0x3C */ GI_KEY_SMALL = 0x3C,
/* 0x3E */ GI_MAP = 0x3E,
/* 0x3D */ GI_KEY_BOSS,
/* 0x3E */ GI_MAP,
/* 0x3F */ GI_COMPASS,
/* 0x50 */ GI_50 = 0x50,
/* 0x52 */ GI_SCALE_GOLD = 0x52, // Assumed, used in En_Fishing
/* 0x59 */ GI_BOTTLE_POTION_RED = 0x59,
/* 0x5B */ GI_POTION_RED = 0x5B,
/* 0x5A */ GI_BOTTLE,
/* 0x5B */ GI_POTION_RED,
/* 0x5C */ GI_POTION_GREEN,
/* 0x5D */ GI_POTION_BLUE,
/* 0x5E */ GI_FAIRY,
/* 0x60 */ GI_MILK_BOTTLE = 0x60,
/* 0x76 */ GI_ICE_TRAP = 0x76,
/* 0x78 */ GI_MASK_DEKU = 0x78,
/* 0x79 */ GI_MASK_GORON,
/* 0x7A */ GI_MASK_ZORA,
/* 0x7B */ GI_MASK_FIERCE_DEITY,
/* 0x7C */ GI_MASK_TRUTH,
/* 0x7D */ GI_MASK_KAFEIS_MASK,
/* 0x7C */ GI_MASK_CAPTAIN,
/* 0x7D */ GI_MASK_GIANT,
/* 0x7E */ GI_MASK_ALL_NIGHT,
/* 0x7F */ GI_MASK_BUNNY,
/* 0x80 */ GI_MASK_KEATON,
@@ -326,27 +330,31 @@ typedef enum {
/* 0x87 */ GI_MASK_GIBDO,
/* 0x88 */ GI_MASK_DON_GERO,
/* 0x89 */ GI_MASK_KAMARO,
/* 0x8A */ GI_MASK_CAPTAIN,
/* 0x8A */ GI_MASK_TRUTH,
/* 0x8B */ GI_MASK_STONE,
/* 0x8C */ GI_MASK_BREMEN,
/* 0x8D */ GI_MASK_BLAST,
/* 0x8E */ GI_MASK_SCENTS,
/* 0x8F */ GI_MASK_GIANT,
/* 0x92 */ GI_MILK = 0x92,
/* 0x95 */ GI_95 = 0x95,
/* 0x8F */ GI_MASK_KAFEIS_MASK,
/* 0x91 */ GI_CHATEAU = 0x91,
/* 0x92 */ GI_MILK,
/* 0x93 */ GI_GOLD_DUST,
/* 0x94 */ GI_EEL, // Unused bottled eel
/* 0x95 */ GI_SEAHORSE,
/* 0x96 */ GI_MOON_TEAR,
/* 0x97 */ GI_DEED_LAND,
/* 0x98 */ GI_DEED_SWAMP,
/* 0x99 */ GI_DEED_MOUNTAIN,
/* 0x9A */ GI_DEED_OCEAN,
/* 0x9B */ GI_SWORD_GREAT_FAIRY = 0x9B,
/* 0x9B */ GI_SWORD_GREAT_FAIRY,
/* 0x9C */ GI_SWORD_KOKIRI,
/* 0x9D */ GI_SWORD_RAZOR,
/* 0x9E */ GI_SWORD_GILDED,
/* 0x9F */ GI_SHIELD_HERO_2, // Code that treats this as hero's shield is unused, so take with a grain of salt
/* 0xA1 */ GI_LETTER_TO_MAMA = 0xA1,
/* 0xA9 */ GI_BOTTLE = 0xA9,
/* 0xAB */ GI_PENDANT_OF_MEMORIES = 0xAB,
/* 0xA9 */ GI_BOTTLE_STOLEN = 0xA9, // buy back stolen bottle
/* 0xAA */ GI_LETTER_TO_KAFEI,
/* 0xAB */ GI_PENDANT_OF_MEMORIES,
/* 0xBA */ GI_MAX = 0xBA
} GetItemID;
+2 -4
View File
@@ -768,8 +768,7 @@ beginseg
name "ovl_En_Box"
compress
include "build/src/overlays/actors/ovl_En_Box/z_en_box.o"
include "build/data/ovl_En_Box/ovl_En_Box.data.o"
include "build/data/ovl_En_Box/ovl_En_Box.reloc.o"
include "build/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o"
endseg
beginseg
@@ -1193,8 +1192,7 @@ beginseg
name "ovl_Demo_Tre_Lgt"
compress
include "build/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o"
include "build/data/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt.data.o"
include "build/data/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt.reloc.o"
include "build/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o"
endseg
beginseg
+8 -7
View File
@@ -2003,11 +2003,11 @@ s32 Actor_PickUp(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzRa
if (!(player->stateFlags1 & 0x3C7080) && Player_GetExplosiveHeld(player) < 0) {
if ((actor->xzDistToPlayer <= xzRange) && (fabsf(actor->playerHeightRel) <= fabsf(yRange))) {
if (((getItemId == GI_MASK_CIRCUS_LEADER) || (getItemId == GI_PENDANT_OF_MEMORIES) ||
(getItemId == GI_DEED_LAND) ||
(((player->heldActor != NULL) || (actor == player->targetActor)) &&
if ((getItemId == GI_MASK_CIRCUS_LEADER || getItemId == GI_PENDANT_OF_MEMORIES ||
getItemId == GI_DEED_LAND ||
((player->heldActor != NULL || actor == player->targetActor) &&
(getItemId > GI_NONE && getItemId < GI_MAX))) ||
(!(player->stateFlags1 & 0x20000800))) {
!(player->stateFlags1 & 0x20000800)) {
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
s32 absYawDiff = ABS_ALT(yawDiff);
@@ -4482,9 +4482,10 @@ void func_800BE5CC(Actor* actor, ColliderJntSph* collider, s32 colliderIndex) {
}
}
s32 func_800BE63C(struct EnBox* chest) {
if ((chest->unk_1F1 == 5) || (chest->unk_1F1 == 6) || (chest->unk_1F1 == 7) || (chest->unk_1F1 == 8) ||
(chest->unk_1F1 == 0xC)) {
s32 Actor_IsSmallChest(struct EnBox* chest) {
if (chest->type == ENBOX_TYPE_SMALL || chest->type == ENBOX_TYPE_SMALL_INVISIBLE ||
chest->type == ENBOX_TYPE_SMALL_ROOM_CLEAR || chest->type == ENBOX_TYPE_SMALL_SWITCH_FLAG_FALL ||
chest->type == ENBOX_TYPE_SMALL_SWITCH_FLAG) {
return true;
}
return false;
@@ -5,6 +5,8 @@
*/
#include "z_demo_tre_lgt.h"
#include "overlays/actors/ovl_En_Box/z_en_box.h"
#include "objects/object_box/object_box.h"
#define FLAGS (ACTOR_FLAG_10)
@@ -15,7 +17,24 @@ void DemoTreLgt_Destroy(Actor* thisx, GlobalContext* globalCtx);
void DemoTreLgt_Update(Actor* thisx, GlobalContext* globalCtx);
void DemoTreLgt_Draw(Actor* thisx, GlobalContext* globalCtx);
#if 0
void DemoTreLgt_SetupWait(DemoTreLgt* this);
void DemoTreLgt_Wait(DemoTreLgt* this, GlobalContext* globalCtx);
void DemoTreLgt_SetupAnimate(DemoTreLgt* this, GlobalContext* globalCtx, f32 frame);
void DemoTreLgt_Animate(DemoTreLgt* this, GlobalContext* globalCtx);
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
} DemoTreLgtInfo;
static DemoTreLgtInfo D_808E1490[2] = {
{ 1.0f, 136.0f, 190.0f, 40.0f },
{ 1.0f, 136.0f, 220.0f, 50.0f },
};
const ActorInit Demo_Tre_Lgt_InitVars = {
ACTOR_DEMO_TRE_LGT,
ACTORCAT_ITEMACTION,
@@ -28,24 +47,126 @@ const ActorInit Demo_Tre_Lgt_InitVars = {
(ActorFunc)DemoTreLgt_Draw,
};
#endif
static TransformUpdateIndex* sBoxLightAnimations[] = {
&gBoxLightAdultCurveAnim,
&gBoxLightChildCurveAnim,
};
extern UNK_TYPE D_06007D78;
static DemoTreLgtActionFunc sActionFuncs[] = {
DemoTreLgt_Wait,
DemoTreLgt_Animate,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/DemoTreLgt_Init.s")
void DemoTreLgt_Init(Actor* thisx, GlobalContext* globalCtx) {
DemoTreLgt* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/DemoTreLgt_Destroy.s")
SkelCurve_Init(globalCtx, &this->skelCurve, &gBoxLightCurveSkel, sBoxLightAnimations[0]);
this->colorAlpha1 = 255;
this->colorAlpha2 = 255;
this->status = 0;
//! @bug Zora Link should also use animationType 0
if (gSaveContext.save.playerForm == PLAYER_FORM_FIERCE_DEITY) {
this->animationType = 0;
} else {
this->animationType = 1;
}
DemoTreLgt_SetupWait(this);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/func_808E0EE8.s")
void DemoTreLgt_Destroy(Actor* thisx, GlobalContext* globalCtx) {
DemoTreLgt* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/func_808E0EF4.s")
SkelCurve_Destroy(globalCtx, &this->skelCurve);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/func_808E0F4C.s")
void DemoTreLgt_SetupWait(DemoTreLgt* this) {
this->action = DEMO_TRE_LGT_ACTION_WAIT;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/func_808E0FE0.s")
void DemoTreLgt_Wait(DemoTreLgt* this, GlobalContext* globalCtx) {
EnBox* chest = (EnBox*)this->actor.parent;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/DemoTreLgt_Update.s")
if (chest != NULL) {
if (Animation_OnFrame(&chest->skelAnime, 10.0f)) {
DemoTreLgt_SetupAnimate(this, globalCtx, chest->skelAnime.curFrame);
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/func_808E12A4.s")
void DemoTreLgt_SetupAnimate(DemoTreLgt* this, GlobalContext* globalCtx, f32 frame) {
this->action = DEMO_TRE_LGT_ACTION_ANIMATE;
SkelCurve_SetAnim(&this->skelCurve, sBoxLightAnimations[this->animationType], 1.0f,
D_808E1490[this->animationType].unk4 + D_808E1490[this->animationType].unk8, frame, 1.0f);
SkelCurve_Update(globalCtx, &this->skelCurve);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Demo_Tre_Lgt/DemoTreLgt_Draw.s")
void DemoTreLgt_Animate(DemoTreLgt* this, GlobalContext* globalCtx) {
f32 curFrame = this->skelCurve.animCurFrame;
if (curFrame < D_808E1490[this->animationType].unk4) {
this->colorAlpha1 = 255;
} else if (curFrame <= (D_808E1490[this->animationType].unk4 + D_808E1490[this->animationType].unk8)) {
this->colorAlpha1 =
((D_808E1490[this->animationType].unk4 - curFrame) / D_808E1490[this->animationType].unk8) * 255 + 255;
} else {
this->colorAlpha1 = 0;
}
if (curFrame < D_808E1490[this->animationType].unkC) {
this->colorAlpha2 = 255;
} else if (curFrame < (D_808E1490[this->animationType].unkC + 10.0f)) {
this->colorAlpha2 = ((D_808E1490[this->animationType].unkC - curFrame) / 10.0f) * 255 + 255;
} else {
this->colorAlpha2 = 0;
}
if (curFrame > 30.0f) {
if (!(this->status & 1)) {
this->status |= 1;
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_TRE_BOX_FLASH);
}
}
if (SkelCurve_Update(globalCtx, &this->skelCurve)) {
Actor_MarkForDeath(&this->actor);
}
}
void DemoTreLgt_Update(Actor* thisx, GlobalContext* globalCtx) {
DemoTreLgt* this = THIS;
sActionFuncs[this->action](this, globalCtx);
}
s32 DemoTreLgt_OverrideLimbDraw(GlobalContext* globalCtx, SkelAnimeCurve* skelCuve, s32 limbIndex, Actor* thisx) {
s32 pad;
DemoTreLgt* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (globalCtx->state.frames * 2) % 256, 0, 64, 32, 1,
(globalCtx->state.frames * -2) % 256, 0, 64, 32));
if (limbIndex == OBJECT_BOX_LIGHT_LIMB_01) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 180, this->colorAlpha1);
} else if (limbIndex == OBJECT_BOX_LIGHT_LIMB_13 || limbIndex == OBJECT_BOX_LIGHT_LIMB_07 ||
limbIndex == OBJECT_BOX_LIGHT_LIMB_04 || limbIndex == OBJECT_BOX_LIGHT_LIMB_10) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 180, this->colorAlpha2);
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
return true;
}
void DemoTreLgt_Draw(Actor* thisx, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
DemoTreLgt* this = THIS;
OPEN_DISPS(gfxCtx);
if (this->action == DEMO_TRE_LGT_ACTION_ANIMATE) {
func_8012C2DC(gfxCtx);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 255, 0, 0);
SkelCurve_Draw(&this->actor, globalCtx, &this->skelCurve, DemoTreLgt_OverrideLimbDraw, NULL, 1, &this->actor);
}
CLOSE_DISPS(gfxCtx);
}
@@ -5,11 +5,23 @@
struct DemoTreLgt;
typedef void (*DemoTreLgtActionFunc)(struct DemoTreLgt* this, GlobalContext* globalCtx);
typedef struct DemoTreLgt {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x34];
/* 0x144 */ SkelAnimeCurve skelCurve;
/* 0x164 */ s32 action;
/* 0x168 */ u32 colorAlpha1;
/* 0x16C */ u32 colorAlpha2;
/* 0x170 */ u8 status;
/* 0x174 */ s32 animationType;
} DemoTreLgt; // size = 0x178
typedef enum {
/* 0x00 */ DEMO_TRE_LGT_ACTION_WAIT, // wait until animation is needed
/* 0x01 */ DEMO_TRE_LGT_ACTION_ANIMATE
} DemoTreLgtAction;
extern const ActorInit Demo_Tre_Lgt_InitVars;
#endif // Z_DEMO_TRE_LGT_H
File diff suppressed because it is too large Load Diff
+54 -8
View File
@@ -2,22 +2,68 @@
#define Z_EN_BOX_H
#include "global.h"
#include "objects/object_box/object_box.h"
struct EnBox;
struct func_80867BDC_a0;
typedef void (*EnBoxActionFunc)(struct EnBox*, GlobalContext*);
typedef void (*EnBoxUnkFunc)(struct func_80867BDC_a0* arg0, GlobalContext* globalCtx);
typedef struct func_80867BDC_a0 {
/* 0x00 */ Vec3f pos;
/* 0x0C */ EnBoxUnkFunc unk_0C;
/* 0x10 */ EnBoxUnkFunc unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
} func_80867BDC_a0; //size 0x24
typedef enum {
/* 0 */ ENBOX_TYPE_BIG, // big
/* 1 */ ENBOX_TYPE_BIG_ROOM_CLEAR, // appear on room clear, store temp clear as permanent clear
/* 2 */ ENBOX_TYPE_BIG_ORNATE, // boss key chest
/* 3 */ ENBOX_TYPE_BIG_SWITCH_FLAG_FALL, // falling, appear on switch flag set
/* 4 */ ENBOX_TYPE_BIG_INVISIBLE, // big, revealed with lens of truth or when opened
/* 5 */ ENBOX_TYPE_SMALL, // small
/* 6 */ ENBOX_TYPE_SMALL_INVISIBLE, // small, revealed with lens of truth or when opened
/* 7 */ ENBOX_TYPE_SMALL_ROOM_CLEAR, // use room clear, store temp clear as perm clear
/* 8 */ ENBOX_TYPE_SMALL_SWITCH_FLAG_FALL, // falling, appear on switch flag set
/* 9 */ ENBOX_TYPE_BIG_SONG_ZELDAS_LULLABY,// NOT IMPLEMENTED, behaves like big chest
/* 10 */ ENBOX_TYPE_BIG_SONG_SUNS, // NOT IMPLEMENTED, behaves like big chest
/* 11 */ ENBOX_TYPE_BIG_SWITCH_FLAG, // big, appear on switch flag set
/* 12 */ ENBOX_TYPE_SMALL_SWITCH_FLAG // small, appear on switch flag set
} EnBoxType;
typedef struct EnBox {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0xAC];
/* 0x01F0 */ char unk_1F0[0x01];
/* 0x01F1 */ u8 unk_1F1;
/* 0x01F2 */ char unk_1F2[0x02];
/* 0x01F4 */ char unk_1F4[0x0C];
/* 0x0200 */ EnBoxActionFunc actionFunc;
/* 0x0204 */ char unk_204[0x20];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x015C */ SkelAnime skelAnime;
/* 0x01A0 */ s32 unk_1A0;
/* 0x01A4 */ UNK_TYPE1 unk_1A4[0x04];
/* 0x01A8 */ f32 unk_1A8;
/* 0x01AC */ EnBoxActionFunc actionFunc;
/* 0x01B0 */ Vec3s jointTable[OBJECT_BOX_CHEST_LIMB_MAX];
/* 0x01CE */ Vec3s morphTable[OBJECT_BOX_CHEST_LIMB_MAX];
/* 0x01EC */ s16 unk_1EC;
/* 0x01EE */ u8 movementFlags;
/* 0x01EF */ u8 alpha;
/* 0x01F0 */ u8 switchFlag;
/* 0x01F1 */ u8 type;
/* 0x01F2 */ u8 iceSmokeTimer;
/* 0x01F3 */ s8 unk_1F3;
/* 0x01F4 */ func_80867BDC_a0 unk_1F4;
/* 0x0218 */ s16 cutsceneIdxA;
/* 0x021A */ s16 cutsceneIdxB;
/* 0x021C */ s32 getItem;
/* 0x0220 */ s32 collectableFlag;
} EnBox; // size = 0x224
extern const ActorInit En_Box_InitVars;
#define ENBOX_GET_TYPE(thisx) (((thisx)->params >> 12) & 0xF)
#define ENBOX_GET_ITEM(thisx) (((thisx)->params >> 5) & 0x7F)
#define ENBOX_GET_CHEST_FLAG(thisx) ((thisx)->params & 0x1F)
#define ENBOX_GET_SWITCH_FLAG(thisx) ((thisx)->world.rot.z)
#endif // Z_EN_BOX_H
+45 -45
View File
@@ -31,7 +31,7 @@ s32 EnGirlA_CanBuyBombBag20BombShop(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyBombBag30BombShop(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyBombchus(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyBombs(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyBottle(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyBottleStolen(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuySword(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this);
s32 EnGirlA_CanBuyFairy(GlobalContext* globalCtx, EnGirlA* this);
@@ -64,91 +64,91 @@ const ActorInit En_GirlA_InitVars = {
};
static ShopItemEntry sShopItemEntries[] = {
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X083F, 0X0840, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x083F, 0x0840, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0X0841, 0X0842, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0x0841, 0x0842, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_BLUE, func_800B8050, 1, 0X0843, 0X0844, GI_POTION_BLUE, EnGirlA_CanBuyPotionBlue,
{ OBJECT_GI_LIQUID, GID_POTION_BLUE, func_800B8050, 1, 0x0843, 0x0844, GI_POTION_BLUE, EnGirlA_CanBuyPotionBlue,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOTTLE_04, GID_FAIRY, func_800B8050, 1, 0X06B6, 0X06B7, GI_FAIRY, EnGirlA_CanBuyFairy,
{ OBJECT_GI_BOTTLE_04, GID_FAIRY, func_800B8050, 1, 0x06B6, 0x06B7, GI_FAIRY, EnGirlA_CanBuyFairy,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_LARGE, func_800B8050, 50, 0X06BA, 0X06BB, GI_ARROWS_40, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_LARGE, func_800B8050, 50, 0x06BA, 0x06BB, GI_ARROWS_40, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0X06B2, 0X06B3, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0x06B2, 0x06B3, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0X06AE, 0X06AF, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x06AE, 0x06AF, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
{ OBJECT_GI_STICK, GID_STICK, NULL, 1, 0X06B4, 0X06B5, GI_STICKS_1, EnGirlA_CanBuyStick, EnGirlA_BuyStick,
{ OBJECT_GI_STICK, GID_STICK, NULL, 1, 0x06B4, 0x06B5, GI_STICKS_1, EnGirlA_CanBuyStick, EnGirlA_BuyStick,
EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, func_800B8050, 30, 0X06B8, 0X06B9, GI_ARROWS_30, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, func_800B8050, 30, 0x06B8, 0x06B9, GI_ARROWS_30, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_NUTS, GID_NUTS, func_800B8118, 10, 0X06B0, 0X06B1, GI_NUTS_10, EnGirlA_CanBuyNuts, EnGirlA_BuyNuts,
{ OBJECT_GI_NUTS, GID_NUTS, func_800B8118, 10, 0x06B0, 0x06B1, GI_NUTS_10, EnGirlA_CanBuyNuts, EnGirlA_BuyNuts,
EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X06AC, 0X06AD, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x06AC, 0x06AD, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOTTLE_04, GID_FAIRY, func_800B8050, 1, 0X06D3, 0X06D4, GI_FAIRY, EnGirlA_CanBuyFairy,
{ OBJECT_GI_BOTTLE_04, GID_FAIRY, func_800B8050, 1, 0x06D3, 0x06D4, GI_FAIRY, EnGirlA_CanBuyFairy,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, func_800B8050, 30, 0X06D5, 0X06D6, GI_ARROWS_30, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_MEDIUM, func_800B8050, 30, 0x06D5, 0x06D6, GI_ARROWS_30, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_LARGE, func_800B8050, 50, 0X06D7, 0X06D8, GI_ARROWS_40, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_LARGE, func_800B8050, 50, 0x06D7, 0x06D8, GI_ARROWS_40, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0X06CF, 0X06D0, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
{ OBJECT_GI_LIQUID, GID_POTION_GREEN, func_800B8050, 1, 0x06CF, 0x06D0, GI_POTION_GREEN, EnGirlA_CanBuyPotionGreen,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_NUTS, GID_NUTS, func_800B8118, 10, 0X06CD, 0X06CE, GI_NUTS_10, EnGirlA_CanBuyNuts, EnGirlA_BuyNuts,
{ OBJECT_GI_NUTS, GID_NUTS, func_800B8118, 10, 0x06CD, 0x06CE, GI_NUTS_10, EnGirlA_CanBuyNuts, EnGirlA_BuyNuts,
EnGirlA_BuyFanfare },
{ OBJECT_GI_STICK, GID_STICK, NULL, 1, 0X06D1, 0X06D2, GI_STICKS_1, EnGirlA_CanBuyStick, EnGirlA_BuyStick,
{ OBJECT_GI_STICK, GID_STICK, NULL, 1, 0x06D1, 0x06D2, GI_STICKS_1, EnGirlA_CanBuyStick, EnGirlA_BuyStick,
EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0X06CB, 0X06CC, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x06CB, 0x06CC, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X06C9, 0X06CA, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x06C9, 0x06CA, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_MASK06, GID_MASK_ALL_NIGHT, func_800B8050, 1, 0X29D9, 0X29DA, GI_MASK_ALL_NIGHT,
{ OBJECT_GI_MASK06, GID_MASK_ALL_NIGHT, func_800B8050, 1, 0x29D9, 0x29DA, GI_MASK_ALL_NIGHT,
EnGirlA_CanBuyMaskAllNight, EnGirlA_BuyMaskAllNight, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, func_800B8050, 1, 0X29DB, 0X29DC, GI_BOMB_BAG_20,
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, func_800B8050, 1, 0x29DB, 0x29DC, GI_BOMB_BAG_20,
EnGirlA_CanBuyBombBagCuriosityShop, EnGirlA_BuyBombBag, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, func_800B8050, 2, 0X29DB, 0X29DC, GI_BOMB_BAG_30,
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, func_800B8050, 2, 0x29DB, 0x29DC, GI_BOMB_BAG_30,
EnGirlA_CanBuyBombBagCuriosityShop, EnGirlA_BuyBombBag, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, func_800B8050, 3, 0X29DB, 0X29DC, GI_BOMB_BAG_40,
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, func_800B8050, 3, 0x29DB, 0x29DC, GI_BOMB_BAG_40,
EnGirlA_CanBuyBombBagCuriosityShop, EnGirlA_BuyBombBag, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, func_800B8050, 1, 0X0654, 0X0655, GI_BOMB_BAG_20,
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_20, func_800B8050, 1, 0x0654, 0x0655, GI_BOMB_BAG_20,
EnGirlA_CanBuyBombBag20BombShop, EnGirlA_BuyBombBag, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, func_800B8050, 2, 0X0656, 0X0657, GI_BOMB_BAG_30,
{ OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_30, func_800B8050, 2, 0x0656, 0x0657, GI_BOMB_BAG_30,
EnGirlA_CanBuyBombBag30BombShop, EnGirlA_BuyBombBag, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMB_2, GID_BOMBCHU, func_800B8050, 10, 0X0652, 0X0653, GI_BOMBCHUS_10, EnGirlA_CanBuyBombchus,
{ OBJECT_GI_BOMB_2, GID_BOMBCHU, func_800B8050, 10, 0x0652, 0x0653, GI_BOMBCHUS_10, EnGirlA_CanBuyBombchus,
EnGirlA_BuyBombchus, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0X0650, 0X0651, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0x0650, 0x0651, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0X12DB, 0X12DC, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x12DB, 0x12DC, GI_SHIELD_HERO, EnGirlA_CanBuyShieldHero,
EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0X12DD, 0X12DE, GI_ARROWS_10, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0x12DD, 0x12DE, GI_ARROWS_10, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X12DF, 0X12E0, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x12DF, 0x12E0, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0X0BC5, 0X0BC6, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0x0BC5, 0x0BC6, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0X0BC7, 0X0BC8, GI_ARROWS_10, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0x0BC7, 0x0BC8, GI_ARROWS_10, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X0BC9, 0X0BCA, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x0BC9, 0x0BCA, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0X0BCB, 0X0BCC, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
{ OBJECT_GI_BOMB_1, GID_BOMB, func_800B8050, 10, 0x0BCB, 0x0BCC, GI_BOMBS_10, EnGirlA_CanBuyBombs, EnGirlA_BuyBombs,
EnGirlA_BuyFanfare },
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0X0BCD, 0X0BCE, GI_ARROWS_10, EnGirlA_CanBuyArrows,
{ OBJECT_GI_ARROW, GID_ARROWS_SMALL, func_800B8050, 10, 0x0BCD, 0x0BCE, GI_ARROWS_10, EnGirlA_CanBuyArrows,
EnGirlA_BuyArrows, EnGirlA_BuyFanfare },
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0X0BCF, 0X0BD0, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
{ OBJECT_GI_LIQUID, GID_POTION_RED, func_800B8050, 1, 0x0BCF, 0x0BD0, GI_POTION_RED, EnGirlA_CanBuyPotionRed,
EnGirlA_BuyBottleItem, EnGirlA_BuyFanfare },
{ OBJECT_GI_BOTTLE, GID_BOTTLE, func_800B8050, 1, 0X29F8, 0X29F9, GI_BOTTLE, EnGirlA_CanBuyBottle,
{ OBJECT_GI_BOTTLE, GID_BOTTLE, func_800B8050, 1, 0x29F8, 0x29F9, GI_BOTTLE_STOLEN, EnGirlA_CanBuyBottleStolen,
EnGirlA_BuyBottle, EnGirlA_BuyFanfare },
{ OBJECT_GI_SWORD_4, GID_SWORD_GREAT_FAIRY, func_800B8050, 4, 0X29F2, 0X29F3, GI_SWORD_GREAT_FAIRY,
{ OBJECT_GI_SWORD_4, GID_SWORD_GREAT_FAIRY, func_800B8050, 4, 0x29F2, 0x29F3, GI_SWORD_GREAT_FAIRY,
EnGirlA_CanBuySword, EnGirlA_BuySword, EnGirlA_BuyFanfare },
{ OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, func_800B8050, 1, 0X29F4, 0X29F5, GI_SWORD_KOKIRI, EnGirlA_CanBuySword,
{ OBJECT_GI_SWORD_1, GID_SWORD_KOKIRI, func_800B8050, 1, 0x29F4, 0x29F5, GI_SWORD_KOKIRI, EnGirlA_CanBuySword,
EnGirlA_BuySword, EnGirlA_BuyFanfare },
{ OBJECT_GI_SWORD_2, GID_SWORD_RAZOR, func_800B8050, 2, 0X29F4, 0X29F5, GI_SWORD_RAZOR, EnGirlA_CanBuySword,
{ OBJECT_GI_SWORD_2, GID_SWORD_RAZOR, func_800B8050, 2, 0x29F4, 0x29F5, GI_SWORD_RAZOR, EnGirlA_CanBuySword,
EnGirlA_BuySword, EnGirlA_BuyFanfare },
{ OBJECT_GI_SWORD_3, GID_SWORD_GILDED, func_800B8050, 3, 0X29F4, 0X29F5, GI_SWORD_GILDED, EnGirlA_CanBuySword,
{ OBJECT_GI_SWORD_3, GID_SWORD_GILDED, func_800B8050, 3, 0x29F4, 0x29F5, GI_SWORD_GILDED, EnGirlA_CanBuySword,
EnGirlA_BuySword, EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0X29F6, 0X29F7, GI_SHIELD_HERO_2, EnGirlA_CanBuyShieldHero,
{ OBJECT_GI_SHIELD_2, GID_SHIELD_HERO, func_800B8050, 1, 0x29F6, 0x29F7, GI_SHIELD_HERO_2, EnGirlA_CanBuyShieldHero,
EnGirlA_BuyShieldHero, EnGirlA_BuyFanfare },
{ OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, func_800B8050, 1, 0X29F6, 0X29F7, GI_SHIELD_MIRROR,
{ OBJECT_GI_SHIELD_3, GID_SHIELD_MIRROR, func_800B8050, 1, 0x29F6, 0x29F7, GI_SHIELD_MIRROR,
EnGirlA_CanBuyShieldMirror, EnGirlA_BuyShieldMirror, EnGirlA_BuyFanfare },
};
@@ -341,7 +341,7 @@ s32 EnGirlA_CanBuyBombs(GlobalContext* globalCtx, EnGirlA* this) {
return CANBUY_RESULT_SUCCESS_2;
}
s32 EnGirlA_CanBuyBottle(GlobalContext* globalCtx, EnGirlA* this) {
s32 EnGirlA_CanBuyBottleStolen(GlobalContext* globalCtx, EnGirlA* this) {
if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) {
return CANBUY_RESULT_NEED_RUPEES;
}
+1 -1
View File
@@ -486,7 +486,7 @@ void func_80B67B50(EnSth* this, GlobalContext* globalCtx) {
} else {
this->unk_29C &= ~1;
gSaveContext.save.weekEventReg[34] |= 8;
Actor_PickUp(&this->actor, globalCtx, GI_MASK_CAPTAIN, 10000.0f, 50.0f);
Actor_PickUp(&this->actor, globalCtx, GI_MASK_TRUTH, 10000.0f, 50.0f);
}
}
+1 -1
View File
@@ -299,7 +299,7 @@ void func_80AE0460(EnTsn* this, GlobalContext* globalCtx) {
ENTSN_SET_Z(&this->unk_1D8->actor, false);
this->actionFunc = func_80AE0418;
} else {
Actor_PickUp(&this->actor, globalCtx, GI_95, 2000.0f, 1000.0f);
Actor_PickUp(&this->actor, globalCtx, GI_SEAHORSE, 2000.0f, 1000.0f);
}
}
+1 -1
View File
@@ -333,7 +333,7 @@ void EnZow_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Collider_DestroyCylinder(globalCtx, &this->collider);
}
AnimationHeader* sAnimations[] = { &object_zo_Anim_004168, &gZoraSurfacingAnim, &gZoraSurfacingAnim };
static AnimationHeader* sAnimations[] = { &object_zo_Anim_004168, &gZoraSurfacingAnim, &gZoraSurfacingAnim };
void func_80BDD04C(EnZow* this, s16 arg1, u8 arg2) {
if ((arg1 >= 0) && (arg1 < 3)) {
+22 -22
View File
@@ -892,7 +892,7 @@
0x800BE504:("func_800BE504",),
0x800BE568:("func_800BE568",),
0x800BE5CC:("func_800BE5CC",),
0x800BE63C:("func_800BE63C",),
0x800BE63C:("Actor_IsSmallChest",),
0x800BE680:("Actor_DrawDamageEffects",),
0x800BF7CC:("Actor_SpawnIceEffects",),
0x800BF9A0:("ActorOverlayTable_FaultPrint",),
@@ -4912,7 +4912,7 @@
0x80863E48:("EnGirlA_CanBuyBombBag30BombShop",),
0x80863EC8:("EnGirlA_CanBuyBombchus",),
0x80863F94:("EnGirlA_CanBuyBombs",),
0x80864034:("EnGirlA_CanBuyBottle",),
0x80864034:("EnGirlA_CanBuyBottleStolen",),
0x8086406C:("EnGirlA_CanBuySword",),
0x808640A4:("EnGirlA_CanBuyShieldMirror",),
0x80864108:("EnGirlA_CanBuyFairy",),
@@ -4962,31 +4962,31 @@
0x8086732C:("EnDoor_Update",),
0x80867350:("EnDoor_OverrideLimbDraw",),
0x808674B0:("EnDoor_Draw",),
0x80867BD0:("func_80867BD0",),
0x80867BD0:("EnBox_SetupAction",),
0x80867BDC:("func_80867BDC",),
0x80867C14:("func_80867C14",),
0x80867C8C:("func_80867C8C",),
0x80867FBC:("func_80867FBC",),
0x80867FE4:("func_80867FE4",),
0x8086800C:("func_8086800C",),
0x8086800C:("EnBox_ClipToGround",),
0x808680AC:("EnBox_Init",),
0x808685FC:("EnBox_Destroy",),
0x80868630:("func_80868630",),
0x80868734:("func_80868734",),
0x808687E8:("func_808687E8",),
0x80868944:("func_80868944",),
0x808689E8:("func_808689E8",),
0x80868A6C:("func_80868A6C",),
0x80868630:("EnBox_RandomDustKinematic",),
0x80868734:("EnBox_SpawnDust",),
0x808687E8:("EnBox_Fall",),
0x80868944:("EnBox_FallOnSwitchFlag",),
0x808689E8:("EnBox_AppearSwitchFlag",),
0x80868A6C:("EnBox_AppearOnRoomClear",),
0x80868AFC:("func_80868AFC",),
0x80868B74:("func_80868B74",),
0x80868CC8:("func_80868CC8",),
0x80869020:("func_80869020",),
0x808692E0:("func_808692E0",),
0x80868CC8:("EnBox_WaitOpen",),
0x80869020:("EnBox_Open",),
0x808692E0:("EnBox_SpawnIceSmoke",),
0x808694A0:("EnBox_Update",),
0x80869600:("func_80869600",),
0x80869850:("func_80869850",),
0x80869874:("func_80869874",),
0x808698B4:("func_808698B4",),
0x80869600:("EnBox_PostLimbDraw",),
0x80869850:("EnBox_SetRenderMode1",),
0x80869874:("EnBox_SetRenderMode2",),
0x808698B4:("EnBox_SetRenderMode3",),
0x808698F4:("EnBox_Draw",),
0x80869D90:("EnPametfrog_Init",),
0x80869F90:("EnPametfrog_Destroy",),
@@ -6508,12 +6508,12 @@
0x808E0DA8:("EnEncount1_Update",),
0x808E0E40:("DemoTreLgt_Init",),
0x808E0EBC:("DemoTreLgt_Destroy",),
0x808E0EE8:("func_808E0EE8",),
0x808E0EF4:("func_808E0EF4",),
0x808E0F4C:("func_808E0F4C",),
0x808E0FE0:("func_808E0FE0",),
0x808E0EE8:("DemoTreLgt_SetupWait",),
0x808E0EF4:("DemoTreLgt_Wait",),
0x808E0F4C:("DemoTreLgt_SetupAnimate",),
0x808E0FE0:("DemoTreLgt_Animate",),
0x808E1270:("DemoTreLgt_Update",),
0x808E12A4:("func_808E12A4",),
0x808E12A4:("DemoTreLgt_OverrideLimbDraw",),
0x808E13FC:("DemoTreLgt_Draw",),
0x808E1560:("EnEncount2_Init",),
0x808E16B4:("EnEncount2_Destroy",),
+2 -2
View File
@@ -7047,8 +7047,8 @@
0x808E0DF8:("D_808E0DF8","UNK_TYPE1","",0x1),
0x808E1490:("D_808E1490","UNK_TYPE1","",0x1),
0x808E14B0:("Demo_Tre_Lgt_InitVars","UNK_TYPE1","",0x1),
0x808E14D0:("D_808E14D0","UNK_TYPE4","",0x4),
0x808E14D8:("D_808E14D8","UNK_TYPE1","",0x1),
0x808E14D0:("sBoxLightAnimations","UNK_TYPE4","[2]",0x8),
0x808E14D8:("sActionFuncs","UNK_TYPE4","[2]",0x8),
0x808E1ED0:("En_Encount2_InitVars","UNK_TYPE1","",0x1),
0x808E1EF0:("D_808E1EF0","UNK_TYPE1","",0x1),
0x808E1F14:("D_808E1F14","UNK_TYPE1","",0x1),