From 85e141128b6d2150d0729613779a394ed198509f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs?= <49660929+SailorSnoW@users.noreply.github.com> Date: Wed, 14 Sep 2022 18:39:55 +0200 Subject: [PATCH 1/3] set LANG variable to C (#888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Loïs --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index e4729002c..75ad3a54c 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,9 @@ N_THREADS ?= $(shell nproc) #### Setup #### +# Ensure the map file being created using English localization +export LANG := C + ifeq ($(NON_MATCHING),1) CFLAGS := -DNON_MATCHING CPPFLAGS := -DNON_MATCHING From 6451bcf15855ff3c0cb6cd1c0d4a9e2d03f41fae Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Wed, 14 Sep 2022 12:49:17 -0400 Subject: [PATCH 2/3] `z_parameter`: Magic (#934) * Document magic * Cleanup * Few fixes * PR Suggestions, More Lens Docs * Few comments * missed a spot * Better macros/names * Deactivate Lens * more PR suggestions * fix names --- assets/xml/interface/parameter_static.xml | 6 +- include/functions.h | 12 +- include/macros.h | 3 + include/regs.h | 107 ++-- include/variables.h | 12 +- include/z64.h | 2 +- include/z64actor.h | 9 +- include/z64save.h | 52 +- src/code/title_setup.c | 2 +- src/code/z_actor.c | 43 +- src/code/z_elf_message.c | 2 +- src/code/z_en_item00.c | 2 +- src/code/z_kaleido_setup.c | 3 +- src/code/z_parameter.c | 494 +++++++++++++++++- src/code/z_sram_NES.c | 16 +- .../actors/ovl_Arrow_Fire/z_arrow_fire.c | 2 +- .../actors/ovl_Arrow_Ice/z_arrow_ice.c | 2 +- .../actors/ovl_Arrow_Light/z_arrow_light.c | 2 +- src/overlays/actors/ovl_Boss_02/z_boss_02.c | 2 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 10 +- src/overlays/actors/ovl_En_Dai/z_en_dai.c | 2 +- src/overlays/actors/ovl_En_Dnb/z_en_dnb.c | 2 +- src/overlays/actors/ovl_En_Elf/z_en_elf.c | 3 +- .../actors/ovl_En_Elfgrp/z_en_elfgrp.c | 7 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 2 +- src/overlays/actors/ovl_En_Fu/z_en_fu.c | 7 +- src/overlays/actors/ovl_En_Gg/z_en_gg.c | 4 +- src/overlays/actors/ovl_En_Gg2/z_en_gg2.c | 4 +- src/overlays/actors/ovl_En_Gk/z_en_gk.c | 3 +- .../actors/ovl_En_Mt_tag/z_en_mt_tag.c | 3 +- src/overlays/actors/ovl_En_Test2/z_en_test2.c | 2 +- .../ovl_Item_Etcetera/z_item_etcetera.c | 2 +- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 2 +- .../actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c | 2 +- .../actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c | 2 +- .../actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c | 2 +- .../actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c | 2 +- tools/disasm/functions.txt | 20 +- tools/disasm/variables.txt | 12 +- tools/namefixer.py | 16 +- tools/sizes/code_functions.csv | 20 +- 41 files changed, 699 insertions(+), 203 deletions(-) diff --git a/assets/xml/interface/parameter_static.xml b/assets/xml/interface/parameter_static.xml index 33ab40de4..7532a95b8 100644 --- a/assets/xml/interface/parameter_static.xml +++ b/assets/xml/interface/parameter_static.xml @@ -75,9 +75,9 @@ - - - + + + diff --git a/include/functions.h b/include/functions.h index 65d1b8b18..fa90ff688 100644 --- a/include/functions.h +++ b/include/functions.h @@ -718,7 +718,7 @@ void func_800B9038(Actor* actor, s32 timer); void func_800B9084(Actor* actor); void func_800B9098(Actor* actor); s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 index, s32 arg4); -void func_800B90F4(PlayState* play); +void Actor_DeactivateLens(PlayState* play); void func_800B9120(ActorContext* actorCtx); void Actor_InitContext(PlayState* play, ActorContext* actorCtx, ActorEntry* actorEntry); void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx); @@ -1855,13 +1855,9 @@ s32 Health_ChangeBy(PlayState* play, s16 healthChange); void Health_GiveHearts(s16 hearts); void Rupees_ChangeBy(s16 rupeeChange); void Inventory_ChangeAmmo(s16 item, s16 ammoChange); -void Parameter_AddMagic(PlayState* play, s16 arg1); -void func_80115D5C(GameState* gamestate); -// void func_80115DB4(void); -// void func_80116088(void); -// void func_80116114(void); -// void func_80116348(void); -// void func_80116918(void); +void Magic_Add(PlayState* play, s16 magicToAdd); +void Magic_Reset(PlayState* play); +s32 Magic_Consume(PlayState* play, s16 magicToConsume, s16 type); // void func_80116FD8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // void func_801170B8(void); // void func_80117100(void); diff --git a/include/macros.h b/include/macros.h index f713bf736..996be52ca 100644 --- a/include/macros.h +++ b/include/macros.h @@ -45,6 +45,9 @@ #define CAPACITY(upg, value) gUpgradeCapacities[upg][value] #define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg)) +// To be used with `Magic_Add`, but ensures enough magic is added to fill the magic bar to capacity +#define MAGIC_FILL_TO_CAPACITY (((void)0, gSaveContext.magicFillTarget) + (gSaveContext.save.playerData.isDoubleMagicAcquired + 1) * MAGIC_NORMAL_METER) + #define CONTROLLER1(gameState) (&(gameState)->input[0]) #define CONTROLLER2(gameState) (&(gameState)->input[1]) #define CONTROLLER3(gameState) (&(gameState)->input[2]) diff --git a/include/regs.h b/include/regs.h index f8ce4ca86..aa3ba523b 100644 --- a/include/regs.h +++ b/include/regs.h @@ -43,61 +43,58 @@ #define bREG(r) BASE_REG(28, r) /* TODO: Actually confirm these, in case of miss-match it's at least a simple list to `sed` */ -#define R_ENABLE_ARENA_DBG SREG(0) // Same as OoT -#define R_RUN_SPEED_LIMIT REG(45) -#define R_UPDATE_RATE SREG(30) -#define R_PAUSE_MENU_MODE SREG(94) -#define R_C_UP_ICON_X YREG(88) -#define R_C_UP_ICON_Y YREG(89) -#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i) -#define R_C_BTN_COLOR(i) ZREG(39 + i) -#define R_B_BTN_COLOR(i) ZREG(43 + i) -#define R_START_LABEL_DD(i) ZREG(48 + i) -#define R_START_LABEL_Y(i) ZREG(51 + i) -#define R_START_LABEL_X(i) ZREG(54 + i) -#define R_C_UP_BTN_X ZREG(62) -#define R_C_UP_BTN_Y ZREG(63) -#define R_START_BTN_X ZREG(68) -#define R_START_BTN_Y ZREG(69) -#define R_ITEM_BTN_X(i) ZREG(70 + i) -#define R_ITEM_BTN_Y(i) ZREG(74 + i) -#define R_ITEM_BTN_DD(i) ZREG(78 + i) -#define R_ITEM_ICON_X(i) ZREG(82 + i) -#define R_ITEM_ICON_Y(i) ZREG(86 + i) -#define R_ITEM_ICON_DD(i) ZREG(90 + i) -#define R_A_BTN_Y XREG(16) -#define R_A_BTN_X XREG(17) -#define R_A_ICON_Y XREG(19) -#define R_A_ICON_X XREG(20) -#define R_A_BTN_COLOR(i) XREG(22 + i) -#define R_MAGIC_BAR_SMALL_Y XREG(48) -#define R_MAGIC_BAR_X XREG(49) -#define R_MAGIC_BAR_LARGE_Y XREG(50) -#define R_MAGIC_FILL_X XREG(51) -#define R_MINIMAP_DISABLED XREG(95) -#define R_B_LABEL_DD WREG(0) -#define R_OW_MINIMAP_X WREG(29) -#define R_OW_MINIMAP_Y WREG(30) -#define R_B_LABEL_X(i) WREG(40 + i) -#define R_B_LABEL_Y(i) WREG(43 + i) -#define R_DGN_MINIMAP_X WREG(68) -#define R_DGN_MINIMAP_Y WREG(69) -#define R_MAP_INDEX VREG(11) -#define R_MAP_TEX_INDEX_BASE VREG(12) -#define R_MAP_TEX_INDEX VREG(13) -#define R_COMPASS_SCALE_X VREG(14) -#define R_COMPASS_SCALE_Y VREG(15) -#define R_COMPASS_OFFSET_X VREG(16) -#define R_COMPASS_OFFSET_Y VREG(17) -#define R_MINIMAP_COLOR(i) VREG(18 + i) -#define R_ITEM_AMMO_X(i) VREG(64 + i) -#define R_ITEM_AMMO_Y(i) VREG(68 + i) -#define R_ITEM_ICON_WIDTH(i) VREG(76 + i) -#define R_ITEM_BTN_WIDTH(i) VREG(80 + i) +#define R_ENABLE_ARENA_DBG SREG(0) // Same as OoT +#define R_RUN_SPEED_LIMIT REG(45) +#define R_UPDATE_RATE SREG(30) +#define R_PAUSE_MENU_MODE SREG(94) +#define R_C_UP_ICON_X YREG(88) +#define R_C_UP_ICON_Y YREG(89) +#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i) +#define R_C_BTN_COLOR(i) ZREG(39 + i) +#define R_B_BTN_COLOR(i) ZREG(43 + i) +#define R_START_LABEL_DD(i) ZREG(48 + i) +#define R_START_LABEL_Y(i) ZREG(51 + i) +#define R_START_LABEL_X(i) ZREG(54 + i) +#define R_C_UP_BTN_X ZREG(62) +#define R_C_UP_BTN_Y ZREG(63) +#define R_START_BTN_X ZREG(68) +#define R_START_BTN_Y ZREG(69) +#define R_ITEM_BTN_X(i) ZREG(70 + i) +#define R_ITEM_BTN_Y(i) ZREG(74 + i) +#define R_ITEM_BTN_DD(i) ZREG(78 + i) +#define R_ITEM_ICON_X(i) ZREG(82 + i) +#define R_ITEM_ICON_Y(i) ZREG(86 + i) +#define R_ITEM_ICON_DD(i) ZREG(90 + i) +#define R_A_BTN_Y XREG(16) +#define R_A_BTN_X XREG(17) +#define R_A_ICON_Y XREG(19) +#define R_A_ICON_X XREG(20) +#define R_A_BTN_COLOR(i) XREG(22 + i) +#define R_MAGIC_CONSUME_TIMER_GIANTS_MASK XREG(41) +#define R_MINIMAP_DISABLED XREG(95) +#define R_B_LABEL_DD WREG(0) +#define R_OW_MINIMAP_X WREG(29) +#define R_OW_MINIMAP_Y WREG(30) +#define R_B_LABEL_X(i) WREG(40 + i) +#define R_B_LABEL_Y(i) WREG(43 + i) +#define R_DGN_MINIMAP_X WREG(68) +#define R_DGN_MINIMAP_Y WREG(69) +#define R_MAP_INDEX VREG(11) +#define R_MAP_TEX_INDEX_BASE VREG(12) +#define R_MAP_TEX_INDEX VREG(13) +#define R_COMPASS_SCALE_X VREG(14) +#define R_COMPASS_SCALE_Y VREG(15) +#define R_COMPASS_OFFSET_X VREG(16) +#define R_COMPASS_OFFSET_Y VREG(17) +#define R_MINIMAP_COLOR(i) VREG(18 + i) +#define R_ITEM_AMMO_X(i) VREG(64 + i) +#define R_ITEM_AMMO_Y(i) VREG(68 + i) +#define R_ITEM_ICON_WIDTH(i) VREG(76 + i) +#define R_ITEM_BTN_WIDTH(i) VREG(80 + i) -#define R_FB_FILTER_TYPE SREG(80) -#define R_FB_FILTER_PRIM_COLOR(c) SREG(81 + c) -#define R_FB_FILTER_A SREG(84) -#define R_FB_FILTER_ENV_COLOR(c) SREG(85 + c) +#define R_FB_FILTER_TYPE SREG(80) +#define R_FB_FILTER_PRIM_COLOR(c) SREG(81 + c) +#define R_FB_FILTER_A SREG(84) +#define R_FB_FILTER_ENV_COLOR(c) SREG(85 + c) #endif diff --git a/include/variables.h b/include/variables.h index e39b4adfb..36ad5440a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -1028,11 +1028,11 @@ extern UNK_PTR D_801BF5C0; // extern UNK_TYPE2 D_801BF890; // extern UNK_TYPE2 D_801BF898; // extern UNK_TYPE2 D_801BF89C; -// extern UNK_TYPE2 D_801BF8A0; -// extern UNK_TYPE2 D_801BF8A4; -// extern UNK_TYPE2 D_801BF8A8; -// extern UNK_TYPE2 D_801BF8AC; -// extern UNK_TYPE2 D_801BF8B0; +// extern UNK_TYPE2 sMagicMeterOutlinePrimRed; +// extern UNK_TYPE2 sMagicMeterOutlinePrimGreen; +// extern UNK_TYPE2 sMagicMeterOutlinePrimBlue; +// extern UNK_TYPE2 sMagicBorderRatio; +// extern UNK_TYPE2 sMagicBorderStep; // extern UNK_TYPE2 D_801BF8DC; // extern UNK_TYPE2 D_801BF8E0; // extern UNK_TYPE2 D_801BF8E4; @@ -2719,7 +2719,7 @@ extern f32 D_801DE860; extern f32 D_801DE864; extern f32 D_801DE868; extern f32 D_801DE884; -extern TexturePtr D_801DE890[]; +extern TexturePtr gCircleTex; extern f32 D_801DF090; extern f32 D_801DF094; extern f32 D_801DF0A0; diff --git a/include/z64.h b/include/z64.h index ec51a3a8c..cf4643d53 100644 --- a/include/z64.h +++ b/include/z64.h @@ -523,7 +523,7 @@ typedef struct { /* 0x252 */ s16 lifeSizeChange; /* 0x254 */ s16 lifeSizeChangeDirection; // 1 means shrinking, 0 growing /* 0x256 */ s16 unk_256; - /* 0x258 */ s16 unk_258; + /* 0x258 */ s16 magicConsumptionTimer; // For certain magic states, 1 unit of magic is consumed every time the timer reaches 0 /* 0x25A */ u8 numHorseBoosts; /* 0x25C */ u16 unk_25C; /* 0x25E */ u16 unk_25E; diff --git a/include/z64actor.h b/include/z64actor.h index bbf0a5534..4c3539901 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -365,15 +365,18 @@ typedef struct ActorListEntry { /* 0x8 */ s32 unk_08; } ActorListEntry; // size = 0xC +// Target size when activated +#define LENS_MASK_ACTIVE_SIZE 100 + typedef struct ActorContext { /* 0x000 */ u8 freezeFlashTimer; /* 0x001 */ UNK_TYPE1 pad1; /* 0x002 */ u8 unk2; - /* 0x003 */ u8 unk3; - /* 0x004 */ s8 unk4; + /* 0x003 */ u8 lensActive; + /* 0x004 */ s8 lensMaskSize; // The size of the circle when drawn the lens mask. Larger value leads to a smaller circle /* 0x005 */ u8 unk5; /* 0x006 */ UNK_TYPE1 pad6[0x5]; - /* 0x00B */ s8 unkB; + /* 0x00B */ s8 lensActorsDrawn; /* 0x00C */ s16 unkC; /* 0x00E */ u8 totalLoadedActors; /* 0x00F */ u8 undrawnActorCount; diff --git a/include/z64save.h b/include/z64save.h index 6b77e2968..1ff39ec92 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -24,6 +24,36 @@ typedef enum RespawnMode { #define SAVE_BUFFER_SIZE 0x4000 +typedef enum { + /* 0 */ MAGIC_STATE_IDLE, // Regular gameplay + /* 1 */ MAGIC_STATE_CONSUME_SETUP, // Sets the speed at which the magic border flashes + /* 2 */ MAGIC_STATE_CONSUME, // Consume magic until target is reached or no more magic is available + /* 3 */ MAGIC_STATE_METER_FLASH_1, // Flashes border + /* 4 */ MAGIC_STATE_METER_FLASH_2, // Flashes border and draws yellow magic to preview target consumption + /* 5 */ MAGIC_STATE_RESET, // Reset colors and return to idle + /* 6 */ MAGIC_STATE_METER_FLASH_3, // Flashes border with no additional behaviour + /* 7 */ MAGIC_STATE_CONSUME_LENS, // Magic slowly consumed by Lens of Truth + /* 8 */ MAGIC_STATE_STEP_CAPACITY, // Step `magicCapacity` to full capacity + /* 9 */ MAGIC_STATE_FILL, // Add magic until magicFillTarget is reached + /* 10 */ MAGIC_STATE_CONSUME_GORON_ZORA_SETUP, + /* 11 */ MAGIC_STATE_CONSUME_GORON_ZORA, // Magic slowly consumed by Goron spiked rolling or Zora electric barrier. + /* 12 */ MAGIC_STATE_CONSUME_GIANTS_MASK // Magic slowly consumed by Giant's Mask +} MagicState; + +typedef enum { + /* 0 */ MAGIC_CONSUME_NOW, // Consume magic immediately without preview + /* 1 */ MAGIC_CONSUME_WAIT_NO_PREVIEW, // Sets consume target but waits to consume. No yellow magic preview to target consumption. Unused + /* 2 */ MAGIC_CONSUME_NOW_ALT, // Identical behaviour to MAGIC_CONSUME_NOW. Unused + /* 3 */ MAGIC_CONSUME_LENS, // Lens of Truth consumption + /* 4 */ MAGIC_CONSUME_WAIT_PREVIEW, // Sets consume target but waits to consume. Show magic to be consumed in yellow. + /* 5 */ MAGIC_CONSUME_GORON_ZORA, // Goron spiked rolling or Zora electric barrier slow consumption + /* 6 */ MAGIC_CONSUME_GIANTS_MASK, // Giant's Mask slow consumption + /* 7 */ MAGIC_CONSUME_DEITY_BEAM // Fierce Deity Beam consumption, consumed magic now and not via request +} MagicChangeType; + +#define MAGIC_NORMAL_METER 0x30 +#define MAGIC_DOUBLE_METER (2 * MAGIC_NORMAL_METER) + typedef struct SramContext { /* 0x00 */ u8* readBuff; /* 0x04 */ u8 *saveBuf; @@ -105,13 +135,13 @@ typedef struct SavePlayerData { /* 0x08 */ char playerName[8]; // "player_name" /* 0x10 */ s16 healthCapacity; // "max_life" /* 0x12 */ s16 health; // "now_life" - /* 0x14 */ s8 magicLevel; // "magic_max" - /* 0x15 */ s8 magic; // "magic_now" + /* 0x14 */ s8 magicLevel; // 0 for no magic/new load, 1 for magic, 2 for double magic "magic_max" + /* 0x15 */ s8 magic; // current magic available for use "magic_now" /* 0x16 */ s16 rupees; // "lupy_count" /* 0x18 */ u16 swordHealth; // "long_sword_hp" /* 0x1A */ u16 tatlTimer; // "navi_timer" - /* 0x1C */ u8 magicAcquired; // "magic_mode" - /* 0x1D */ u8 doubleMagic; // "magic_ability" + /* 0x1C */ u8 isMagicAcquired; // "magic_mode" + /* 0x1D */ u8 isDoubleMagicAcquired; // "magic_ability" /* 0x1E */ u8 doubleDefense; // "life_ability" /* 0x1F */ u8 unk_1F; // "ocarina_round" /* 0x20 */ u8 unk_20; // "first_memory" @@ -226,13 +256,13 @@ typedef struct SaveContext { /* 0x3F22 */ u16 unk_3F22; // "prev_alpha_type" /* 0x3F24 */ u16 unk_3F24; // "alpha_count" /* 0x3F26 */ u16 unk_3F26; // "last_time_type" - /* 0x3F28 */ s16 unk_3F28; // "magic_flag" - /* 0x3F2A */ s16 unk_3F2A; // "recovery_magic_flag" - /* 0x3F2C */ s16 unk_3F2C; // "keep_magic_flag" - /* 0x3F2E */ s16 unk_3F2E; // "magic_now_max" - /* 0x3F30 */ s16 unk_3F30; // "magic_now_now" - /* 0x3F32 */ s16 unk_3F32; // "magic_used" - /* 0x3F34 */ s16 unk_3F34; // "magic_recovery" + /* 0x3F28 */ s16 magicState; // determines magic meter behavior on each frame "magic_flag" + /* 0x3F2A */ s16 isMagicRequested; // a request to add magic has been given "recovery_magic_flag" + /* 0x3F2C */ s16 magicFlag; // Set to 0 in func_80812D94(), otherwise unused "keep_magic_flag" + /* 0x3F2E */ s16 magicCapacity; // maximum magic available "magic_now_max" + /* 0x3F30 */ s16 magicFillTarget; // target used to fill magic "magic_now_now" + /* 0x3F32 */ s16 magicToConsume; // accumulated magic that is requested to be consumed "magic_used" + /* 0x3F34 */ s16 magicToAdd; // accumulated magic that is requested to be added "magic_recovery" /* 0x3F36 */ u16 mapIndex; // "scene_ID" /* 0x3F38 */ u16 minigameState; // "yabusame_mode" /* 0x3F3A */ u16 minigameScore; // "yabusame_total" diff --git a/src/code/title_setup.c b/src/code/title_setup.c index 69790b60c..4be91d2e8 100644 --- a/src/code/title_setup.c +++ b/src/code/title_setup.c @@ -8,7 +8,7 @@ void TitleSetup_GameStateResetContext(void) { XREG(12) = 0xE; XREG(13) = 0; XREG(31) = 0; - XREG(41) = 0x50; + R_MAGIC_CONSUME_TIMER_GIANTS_MASK = 80; XREG(43) = 0xFC54; XREG(44) = 0xD7; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index da2b70292..1b2d02b66 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2212,10 +2212,10 @@ s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgI return false; } -void func_800B90F4(PlayState* play) { - if (play->actorCtx.unk3 != 0) { - play->actorCtx.unk3 = 0; - func_80115D5C(&play->state); +void Actor_DeactivateLens(PlayState* play) { + if (play->actorCtx.lensActive) { + play->actorCtx.lensActive = false; + Magic_Reset(play); } } @@ -2594,7 +2594,7 @@ void func_800B9D1C(Actor* actor) { void Actor_DrawAllSetup(PlayState* play) { play->actorCtx.undrawnActorCount = 0; - play->actorCtx.unkB = 0; + play->actorCtx.lensActorsDrawn = false; } s32 Actor_RecordUndrawnActor(PlayState* play, Actor* actor) { @@ -2607,13 +2607,12 @@ s32 Actor_RecordUndrawnActor(PlayState* play, Actor* actor) { return true; } -void func_800B9E84(Gfx** arg0, s32 arg1) { - func_80164C14(arg0, D_801DE890, 4, 0, 6, 6, ((100 - arg1) * 0.003f) + 1.0f); +void Actor_DrawLensOverlay(Gfx** gfxP, s32 lensMaskSize) { + func_80164C14(gfxP, &gCircleTex, 4, 0, 6, 6, ((LENS_MASK_ACTIVE_SIZE - lensMaskSize) * 0.003f) + 1.0f); } #ifdef NON_EQUIVALENT -// Related to draw actors with lens -void func_800B9EF4(PlayState* play, s32 numActors, Actor** actors) { +void Actor_DrawLensActors(PlayState* play, s32 numActors, Actor** actors) { s32 spB4; Gfx* spAC; void* spA8; // pad @@ -2684,7 +2683,7 @@ void func_800B9EF4(PlayState* play, s32 numActors, Actor** actors) { } // spAC = phi_s1; - func_800B9E84(&spAC, play->actorCtx.unk4); + Actor_DrawLensOverlay(&spAC, play->actorCtx.lensMaskSize); phi_s1_2 = func_801660B8(play, spAC); for (spB4 = 0; spB4 < numActors; spB4++, actors++) { @@ -2744,7 +2743,7 @@ void func_800B9EF4(PlayState* play, s32 numActors, Actor** actors) { spAC = phi_s1_2; // spAC = temp_s1_11; - func_800B9E84(&spAC, (s32)play->actorCtx.unk4); + Actor_DrawLensOverlay(&spAC, (s32)play->actorCtx.lensMaskSize); // temp_s1_11->words.w0 = 0xE7000000; // temp_s1_11->words.w1 = 0; // temp_s1_12 = temp_s1_11 + 8; @@ -2796,15 +2795,15 @@ void func_800B9EF4(PlayState* play, s32 numActors, Actor** actors) { // spAC = temp_s1_18 + 8; gDPSetPrimColor(spAC++, 0, 0, 74, 0, 0, 74); - func_800B9E84(&spAC, (s32)play->actorCtx.unk4); + Actor_DrawLensOverlay(&spAC, (s32)play->actorCtx.lensMaskSize); OVERLAY_DISP = spAC; CLOSE_DISPS(play->state.gfxCtx); } #else -void func_800B9EF4(PlayState* play, s32 numActors, Actor** actors); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800B9EF4.s") +void Actor_DrawLensActors(PlayState* play, s32 numActors, Actor** actors); +#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/Actor_DrawLensActors.s") #endif s32 func_800BA2D8(PlayState* play, Actor* actor) { @@ -2883,7 +2882,7 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) { actor->isDrawn = false; if ((actor->init == NULL) && (actor->draw != NULL) && (actor->flags & actorFlags)) { if ((actor->flags & ACTOR_FLAG_80) && - ((play->roomCtx.currRoom.unk5 == 0) || (play->actorCtx.unk4 == 0x64) || + ((play->roomCtx.currRoom.unk5 == 0) || (play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) || (actor->room != play->roomCtx.currRoom.num))) { if (Actor_RecordUndrawnActor(play, actor)) {} } else { @@ -2903,17 +2902,17 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) { gSPDisplayList(sp58, &ref2[1]); POLY_XLU_DISP = &ref2[1]; - if (play->actorCtx.unk3 != 0) { - Math_StepToC(&play->actorCtx.unk4, 100, 20); + if (play->actorCtx.lensActive) { + Math_StepToC(&play->actorCtx.lensMaskSize, LENS_MASK_ACTIVE_SIZE, 20); if (GET_PLAYER(play)->stateFlags2 & 0x8000000) { - func_800B90F4(play); + Actor_DeactivateLens(play); } } else { - Math_StepToC(&play->actorCtx.unk4, 0, 10); + Math_StepToC(&play->actorCtx.lensMaskSize, 0, 10); } - if (play->actorCtx.unk4 != 0) { - play->actorCtx.unkB = 1; - func_800B9EF4(play, play->actorCtx.undrawnActorCount, play->actorCtx.undrawnActors); + if (play->actorCtx.lensMaskSize != 0) { + play->actorCtx.lensActorsDrawn = true; + Actor_DrawLensActors(play, play->actorCtx.undrawnActorCount, play->actorCtx.undrawnActors); } tmp2 = POLY_XLU_DISP; diff --git a/src/code/z_elf_message.c b/src/code/z_elf_message.c index 57e84e86b..25d6f8ca8 100644 --- a/src/code/z_elf_message.c +++ b/src/code/z_elf_message.c @@ -25,7 +25,7 @@ u16 ElfMessage_GetFirstCycleHint(PlayState* play) { } return 0x21D; } - if (gSaveContext.save.playerData.magicAcquired != true) { + if (gSaveContext.save.playerData.isMagicAcquired != true) { return 0x21F; } if (INV_CONTENT(ITEM_DEED_LAND) == ITEM_DEED_LAND) { diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 0637f6392..953648f49 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -500,7 +500,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) { } } - if (play->gameOverCtx.state != 0) { + if (play->gameOverCtx.state != GAMEOVER_INACTIVE) { return; } diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 625adf20f..fa490dbca 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -75,7 +75,8 @@ void KaleidoSetup_Update(PlayState* play) { if ((play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF)) { if ((gSaveContext.save.cutscene < 0xFFF0) && (gSaveContext.nextCutsceneIndex < 0xFFF0)) { if (!Play_InCsMode(play) || ((msgCtx->msgMode != 0) && (msgCtx->currentTextId == 0xFF))) { - if ((play->unk_1887C < 2) && (gSaveContext.unk_3F28 != 8) && (gSaveContext.unk_3F28 != 9)) { + if ((play->unk_1887C < 2) && (gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY) && + (gSaveContext.magicState != MAGIC_STATE_FILL)) { if (!(gSaveContext.eventInf[1] & 0x80) && !(player->stateFlags1 & 0x20)) { if (!(play->actorCtx.unk5 & 2) && !(play->actorCtx.unk5 & 4)) { if ((play->actorCtx.unk268 == 0) && CHECK_BTN_ALL(input->press.button, BTN_START)) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index b63af9038..403a69c51 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -139,11 +139,11 @@ u16 sMinigameScoreDigits[] = { 0, 0, 0, 0 }; u16 sCUpInvisible = 0; u16 sCUpTimer = 0; -s16 sMagicBarOutlinePrimRed = 255; -s16 sMagicBarOutlinePrimGreen = 255; -s16 sMagicBarOutlinePrimBlue = 255; -s16 D_801BF8AC = 2; // sMagicBorderRatio -s16 D_801BF8B0 = 1; +s16 sMagicMeterOutlinePrimRed = 255; +s16 sMagicMeterOutlinePrimGreen = 255; +s16 sMagicMeterOutlinePrimBlue = 255; +s16 sMagicBorderRatio = 2; +s16 sMagicBorderStep = 1; s16 sExtraItemBases[] = { ITEM_STICK, // ITEM_STICKS_5 @@ -225,10 +225,14 @@ s16 sFinalHoursClockColorTargetIndex = 0; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010CD98.s") +Gfx* func_8010CFBC(Gfx* displayListHead, void* texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, + s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy, s16 r, s16 g, s16 b, s16 a); #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010CFBC.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010D2D4.s") +Gfx* func_8010D480(Gfx* displayListHead, void* texture, s16 textureWidth, s16 textureHeight, s16 rectLeft, s16 rectTop, + s16 rectWidth, s16 rectHeight, u16 dsdx, u16 dtdy, s16 r, s16 g, s16 b, s16 a, s32 argE, s32 argF); #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010D480.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010D7D0.s") @@ -600,7 +604,7 @@ u8 Item_Give(PlayState* play, u8 item) { return item; } else if (item == ITEM_MAGIC_SMALL) { - Parameter_AddMagic(play, 0x18); + Magic_Add(play, MAGIC_NORMAL_METER / 2); if (!(gSaveContext.save.weekEventReg[12] & 0x80)) { gSaveContext.save.weekEventReg[12] |= 0x80; return ITEM_NONE; @@ -608,7 +612,7 @@ u8 Item_Give(PlayState* play, u8 item) { return item; } else if (item == ITEM_MAGIC_LARGE) { - Parameter_AddMagic(play, 0x30); + Magic_Add(play, MAGIC_NORMAL_METER); if (!(gSaveContext.save.weekEventReg[12] & 0x80)) { gSaveContext.save.weekEventReg[12] |= 0x80; return ITEM_NONE; @@ -1145,26 +1149,482 @@ void Inventory_ChangeAmmo(s16 item, s16 ammoChange) { } } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Parameter_AddMagic.s") +void Magic_Add(PlayState* play, s16 magicToAdd) { + if (((void)0, gSaveContext.save.playerData.magic) < ((void)0, gSaveContext.magicCapacity)) { + gSaveContext.magicToAdd += magicToAdd; + gSaveContext.isMagicRequested = true; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115D5C.s") +void Magic_Reset(PlayState* play) { + if ((gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY) && (gSaveContext.magicState != MAGIC_STATE_FILL)) { + sMagicMeterOutlinePrimRed = sMagicMeterOutlinePrimGreen = sMagicMeterOutlinePrimBlue = 255; + gSaveContext.magicState = MAGIC_STATE_IDLE; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115DB4.s") +/** + * Request to consume magic. + * + * @param magicToConsume the positive-valued amount to decrease magic by + * @param type how the magic is consumed. + * @return false if the request failed + */ +s32 Magic_Consume(PlayState* play, s16 magicToConsume, s16 type) { + InterfaceContext* interfaceCtx = &play->interfaceCtx; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116088.s") + // Magic is not acquired yet + if (!gSaveContext.save.playerData.isMagicAcquired) { + return false; + } -s16 magicBorderColors[][3] = { + // Not enough magic available to consume + if ((gSaveContext.save.playerData.magic - magicToConsume) < 0) { + if (gSaveContext.magicCapacity != 0) { + play_sound(NA_SE_SY_ERROR); + } + return false; + } + + switch (type) { + case MAGIC_CONSUME_NOW: + case MAGIC_CONSUME_NOW_ALT: + // Drain magic immediately e.g. Deku Bubble + if ((gSaveContext.magicState == MAGIC_STATE_IDLE) || + (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) { + if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) { + play->actorCtx.lensActive = false; + } + if (gSaveContext.save.weekEventReg[14] & 8) { + // Drank Chateau Romani + magicToConsume = 0; + } + gSaveContext.magicToConsume = magicToConsume; + gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP; + return true; + } else { + play_sound(NA_SE_SY_ERROR); + return false; + } + + case MAGIC_CONSUME_WAIT_NO_PREVIEW: + // Sets consume target but waits to consume. + // No yellow magic to preview target consumption. + if ((gSaveContext.magicState == MAGIC_STATE_IDLE) || + (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) { + if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) { + play->actorCtx.lensActive = false; + } + if (gSaveContext.save.weekEventReg[14] & 8) { + // Drank Chateau Romani + magicToConsume = 0; + } + gSaveContext.magicToConsume = magicToConsume; + gSaveContext.magicState = MAGIC_STATE_METER_FLASH_3; + return true; + } else { + play_sound(NA_SE_SY_ERROR); + return false; + } + + case MAGIC_CONSUME_LENS: + if (gSaveContext.magicState == MAGIC_STATE_IDLE) { + if (gSaveContext.save.playerData.magic != 0) { + interfaceCtx->magicConsumptionTimer = 80; + gSaveContext.magicState = MAGIC_STATE_CONSUME_LENS; + return true; + } else { + return false; + } + } else if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) { + return true; + } else { + return false; + } + + case MAGIC_CONSUME_WAIT_PREVIEW: + // Sets consume target but waits to consume. + // Preview consumption with a yellow bar. e.g. Spin Attack + if ((gSaveContext.magicState == MAGIC_STATE_IDLE) || + (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) { + if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) { + play->actorCtx.lensActive = false; + } + gSaveContext.magicToConsume = magicToConsume; + gSaveContext.magicState = MAGIC_STATE_METER_FLASH_2; + return true; + } else { + play_sound(NA_SE_SY_ERROR); + return false; + } + + case MAGIC_CONSUME_GORON_ZORA: + // Goron spiked rolling or Zora electric barrier + if (gSaveContext.save.playerData.magic != 0) { + interfaceCtx->magicConsumptionTimer = 10; + gSaveContext.magicState = MAGIC_STATE_CONSUME_GORON_ZORA_SETUP; + return true; + } else { + return false; + } + + case MAGIC_CONSUME_GIANTS_MASK: + // Wearing Giant's Mask + if (gSaveContext.magicState == MAGIC_STATE_IDLE) { + if (gSaveContext.save.playerData.magic != 0) { + interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANTS_MASK; + gSaveContext.magicState = MAGIC_STATE_CONSUME_GIANTS_MASK; + return true; + } else { + return false; + } + } + if (gSaveContext.magicState == MAGIC_STATE_CONSUME_GIANTS_MASK) { + return true; + } else { + return false; + } + + case MAGIC_CONSUME_DEITY_BEAM: + // Consumes magic immediately + if ((gSaveContext.magicState == MAGIC_STATE_IDLE) || + (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS)) { + if (gSaveContext.magicState == MAGIC_STATE_CONSUME_LENS) { + play->actorCtx.lensActive = false; + } + if (gSaveContext.save.weekEventReg[14] & 8) { + // Drank Chateau Romani + magicToConsume = 0; + } + gSaveContext.save.playerData.magic -= magicToConsume; + return true; + } else { + play_sound(NA_SE_SY_ERROR); + return false; + } + } + + return false; +} + +void Magic_UpdateAddRequest(void) { + if (gSaveContext.isMagicRequested) { + gSaveContext.save.playerData.magic += 4; + play_sound(NA_SE_SY_GAUGE_UP - SFX_FLAG); + + if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicCapacity)) { + gSaveContext.save.playerData.magic = gSaveContext.magicCapacity; + gSaveContext.magicToAdd = 0; + gSaveContext.isMagicRequested = false; + } else { + gSaveContext.magicToAdd -= 4; + if (gSaveContext.magicToAdd <= 0) { + gSaveContext.magicToAdd = 0; + gSaveContext.isMagicRequested = false; + } + } + } +} + +s16 sMagicBorderColors[][3] = { { 255, 255, 255 }, { 150, 150, 150 }, }; -s16 magicBorderIndices[] = { 0, 1, 1, 0 }; -s16 magicBorderColorTimerIndex[] = { 2, 1, 2, 1 }; +s16 sMagicBorderIndices[] = { 0, 1, 1, 0 }; +s16 sMagicBorderColorTimerIndex[] = { 2, 1, 2, 1 }; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116114.s") +void Magic_FlashMeterBorder(void) { + s16 borderChangeR; + s16 borderChangeG; + s16 borderChangeB; + s16 index = sMagicBorderIndices[sMagicBorderStep]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116348.s") + borderChangeR = ABS_ALT(sMagicMeterOutlinePrimRed - sMagicBorderColors[index][0]) / sMagicBorderRatio; + borderChangeG = ABS_ALT(sMagicMeterOutlinePrimGreen - sMagicBorderColors[index][1]) / sMagicBorderRatio; + borderChangeB = ABS_ALT(sMagicMeterOutlinePrimBlue - sMagicBorderColors[index][2]) / sMagicBorderRatio; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116918.s") + if (sMagicMeterOutlinePrimRed >= sMagicBorderColors[index][0]) { + sMagicMeterOutlinePrimRed -= borderChangeR; + } else { + sMagicMeterOutlinePrimRed += borderChangeR; + } + + if (sMagicMeterOutlinePrimGreen >= sMagicBorderColors[index][1]) { + sMagicMeterOutlinePrimGreen -= borderChangeG; + } else { + sMagicMeterOutlinePrimGreen += borderChangeG; + } + + if (sMagicMeterOutlinePrimBlue >= sMagicBorderColors[index][2]) { + sMagicMeterOutlinePrimBlue -= borderChangeB; + } else { + sMagicMeterOutlinePrimBlue += borderChangeB; + } + + sMagicBorderRatio--; + if (sMagicBorderRatio == 0) { + sMagicMeterOutlinePrimRed = sMagicBorderColors[index][0]; + sMagicMeterOutlinePrimGreen = sMagicBorderColors[index][1]; + sMagicMeterOutlinePrimBlue = sMagicBorderColors[index][2]; + + sMagicBorderRatio = sMagicBorderColorTimerIndex[sMagicBorderStep]; + + sMagicBorderStep++; + if (sMagicBorderStep >= 4) { + sMagicBorderStep = 0; + } + } +} + +void Magic_Update(PlayState* play) { + MessageContext* msgCtx = &play->msgCtx; + InterfaceContext* interfaceCtx = &play->interfaceCtx; + s16 magicCapacityTarget; + + if (gSaveContext.save.weekEventReg[14] & 8) { + // Drank Chateau Romani + Magic_FlashMeterBorder(); + } + + switch (gSaveContext.magicState) { + case MAGIC_STATE_STEP_CAPACITY: + // Step magicCapacity to the capacity determined by magicLevel + // This changes the width of the magic meter drawn + magicCapacityTarget = gSaveContext.save.playerData.magicLevel * MAGIC_NORMAL_METER; + if (gSaveContext.magicCapacity != magicCapacityTarget) { + if (gSaveContext.magicCapacity < magicCapacityTarget) { + gSaveContext.magicCapacity += 0x10; + if (gSaveContext.magicCapacity > magicCapacityTarget) { + gSaveContext.magicCapacity = magicCapacityTarget; + } + } else { + gSaveContext.magicCapacity -= 0x10; + if (gSaveContext.magicCapacity <= magicCapacityTarget) { + gSaveContext.magicCapacity = magicCapacityTarget; + } + } + } else { + // Once the capacity has reached its target, + // follow up by filling magic to magicFillTarget + gSaveContext.magicState = MAGIC_STATE_FILL; + } + break; + + case MAGIC_STATE_FILL: + // Add magic until magicFillTarget is reached + gSaveContext.save.playerData.magic += 0x10; + + if ((gSaveContext.gameMode == 0) && (gSaveContext.sceneSetupIndex < 4)) { + play_sound(NA_SE_SY_GAUGE_UP - SFX_FLAG); + } + + if (((void)0, gSaveContext.save.playerData.magic) >= ((void)0, gSaveContext.magicFillTarget)) { + gSaveContext.save.playerData.magic = gSaveContext.magicFillTarget; + gSaveContext.magicState = MAGIC_STATE_IDLE; + } + break; + + case MAGIC_STATE_CONSUME_SETUP: + // Sets the speed at which magic border flashes + sMagicBorderRatio = 2; + gSaveContext.magicState = MAGIC_STATE_CONSUME; + break; + + case MAGIC_STATE_CONSUME: + // Consume magic until target is reached or no more magic is available + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + gSaveContext.save.playerData.magic = + ((void)0, gSaveContext.save.playerData.magic) - ((void)0, gSaveContext.magicToConsume); + if (gSaveContext.save.playerData.magic <= 0) { + gSaveContext.save.playerData.magic = 0; + } + gSaveContext.magicState = MAGIC_STATE_METER_FLASH_1; + sMagicMeterOutlinePrimRed = sMagicMeterOutlinePrimGreen = sMagicMeterOutlinePrimBlue = 255; + } + // fallthrough (flash border while magic is being consumed) + case MAGIC_STATE_METER_FLASH_1: + case MAGIC_STATE_METER_FLASH_2: + case MAGIC_STATE_METER_FLASH_3: + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + Magic_FlashMeterBorder(); + } + break; + + case MAGIC_STATE_RESET: + sMagicMeterOutlinePrimRed = sMagicMeterOutlinePrimGreen = sMagicMeterOutlinePrimBlue = 255; + gSaveContext.magicState = MAGIC_STATE_IDLE; + break; + + case MAGIC_STATE_CONSUME_LENS: + // Slowly consume magic while Lens of Truth is active + if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugEditor == DEBUG_EDITOR_NONE) && + (msgCtx->msgMode == 0) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && + (play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF) && + !Play_InCsMode(play)) { + + if ((gSaveContext.save.playerData.magic == 0) || + ((func_801242DC(play) >= 2) && (func_801242DC(play) <= 4)) || + ((BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) != ITEM_LENS) && + (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) != ITEM_LENS) && + (BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) != ITEM_LENS)) || + !play->actorCtx.lensActive) { + // Deactivate Lens of Truth and set magic state to idle + play->actorCtx.lensActive = false; + play_sound(NA_SE_SY_GLASSMODE_OFF); + gSaveContext.magicState = MAGIC_STATE_IDLE; + sMagicMeterOutlinePrimRed = sMagicMeterOutlinePrimGreen = sMagicMeterOutlinePrimBlue = 255; + break; + } + + interfaceCtx->magicConsumptionTimer--; + if (interfaceCtx->magicConsumptionTimer == 0) { + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + gSaveContext.save.playerData.magic--; + } + interfaceCtx->magicConsumptionTimer = 80; + } + } + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + Magic_FlashMeterBorder(); + } + break; + + case MAGIC_STATE_CONSUME_GORON_ZORA_SETUP: + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + gSaveContext.save.playerData.magic -= 2; + } + if (gSaveContext.save.playerData.magic <= 0) { + gSaveContext.save.playerData.magic = 0; + } + gSaveContext.magicState = MAGIC_STATE_CONSUME_GORON_ZORA; + // fallthrough + case MAGIC_STATE_CONSUME_GORON_ZORA: + if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugEditor == 0) && (msgCtx->msgMode == 0) && + (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && + (play->transitionMode == TRANS_MODE_OFF)) { + if (!Play_InCsMode(play)) { + interfaceCtx->magicConsumptionTimer--; + if (interfaceCtx->magicConsumptionTimer == 0) { + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + gSaveContext.save.playerData.magic--; + } + if (gSaveContext.save.playerData.magic <= 0) { + gSaveContext.save.playerData.magic = 0; + } + interfaceCtx->magicConsumptionTimer = 10; + } + } + } + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + Magic_FlashMeterBorder(); + } + break; + + case MAGIC_STATE_CONSUME_GIANTS_MASK: + if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugEditor == DEBUG_EDITOR_NONE) && + (msgCtx->msgMode == 0) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && + (play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF)) { + if (!Play_InCsMode(play)) { + interfaceCtx->magicConsumptionTimer--; + if (interfaceCtx->magicConsumptionTimer == 0) { + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + gSaveContext.save.playerData.magic--; + } + if (gSaveContext.save.playerData.magic <= 0) { + gSaveContext.save.playerData.magic = 0; + } + interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANTS_MASK; + } + } + } + if (!(gSaveContext.save.weekEventReg[14] & 8)) { + Magic_FlashMeterBorder(); + } + break; + + default: + gSaveContext.magicState = MAGIC_STATE_IDLE; + break; + } +} + +void Magic_DrawMeter(PlayState* play) { + InterfaceContext* interfaceCtx = &play->interfaceCtx; + s16 magicBarY; + + OPEN_DISPS(play->state.gfxCtx); + + if (gSaveContext.save.playerData.magicLevel != 0) { + if (gSaveContext.save.playerData.healthCapacity > 0xA0) { + magicBarY = 42; // two rows of hearts + } else { + magicBarY = 34; // one row of hearts + } + + func_8012C654(play->state.gfxCtx); + + gDPSetEnvColor(OVERLAY_DISP++, 100, 50, 50, 255); + + OVERLAY_DISP = func_8010CFBC(OVERLAY_DISP, gMagicMeterEndTex, 8, 16, 18, magicBarY, 8, 16, 1 << 10, 1 << 10, + sMagicMeterOutlinePrimRed, sMagicMeterOutlinePrimGreen, sMagicMeterOutlinePrimBlue, + interfaceCtx->magicAlpha); + OVERLAY_DISP = + func_8010CFBC(OVERLAY_DISP, gMagicMeterMidTex, 24, 16, 26, magicBarY, ((void)0, gSaveContext.magicCapacity), + 16, 1 << 10, 1 << 10, sMagicMeterOutlinePrimRed, sMagicMeterOutlinePrimGreen, + sMagicMeterOutlinePrimBlue, interfaceCtx->magicAlpha); + OVERLAY_DISP = + func_8010D480(OVERLAY_DISP, gMagicMeterEndTex, 8, 16, ((void)0, gSaveContext.magicCapacity) + 26, magicBarY, + 8, 16, 1 << 10, 1 << 10, sMagicMeterOutlinePrimRed, sMagicMeterOutlinePrimGreen, + sMagicMeterOutlinePrimBlue, interfaceCtx->magicAlpha, 3, 0x100); + + gDPPipeSync(OVERLAY_DISP++); + gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, PRIMITIVE, PRIMITIVE, + ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, PRIMITIVE); + gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255); + + if (gSaveContext.magicState == MAGIC_STATE_METER_FLASH_2) { + // Yellow part of the meter indicating the amount of magic to be subtracted + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 250, 250, 0, interfaceCtx->magicAlpha); + gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(OVERLAY_DISP++, 104, (magicBarY + 3) << 2, + (((void)0, gSaveContext.save.playerData.magic) + 26) << 2, (magicBarY + 10) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + // Fill the rest of the meter with the normal magic color + gDPPipeSync(OVERLAY_DISP++); + if (gSaveContext.save.weekEventReg[14] & 8) { + // Blue magic (drank Chateau Romani) + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha); + } else { + // Green magic (default) + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 200, 0, interfaceCtx->magicAlpha); + } + + gSPTextureRectangle( + OVERLAY_DISP++, 104, (magicBarY + 3) << 2, + ((((void)0, gSaveContext.save.playerData.magic) - ((void)0, gSaveContext.magicToConsume)) + 26) << 2, + (magicBarY + 10) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } else { + // Fill the whole meter with the normal magic color + if (gSaveContext.save.weekEventReg[14] & 8) { + // Blue magic (drank Chateau Romani) + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha); + } else { + // Green magic (default) + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 200, 0, interfaceCtx->magicAlpha); + } + + gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(OVERLAY_DISP++, 104, (magicBarY + 3) << 2, + (((void)0, gSaveContext.save.playerData.magic) + 26) << 2, (magicBarY + 10) << 2, + G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } + } + + CLOSE_DISPS(play->state.gfxCtx); +} #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116FD8.s") diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index 5f92d13e5..7b8b67443 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -597,12 +597,12 @@ SavePlayerData sSaveDefaultPlayerData = { 0x30, // healthCapacity 0x30, // health 0, // magicLevel - 0x30, // magic + MAGIC_NORMAL_METER, // magic 0, // rupees 0, // swordHealth 0, // tatlTimer - 0, // magicAcquired - 0, // doubleMagic + false, // isMagicAcquired + false, // isDoubleMagicAcquired 0, // doubleDefense 0, // unk_1F 0xFF, // unk_20 @@ -697,12 +697,12 @@ SavePlayerData sSaveDebugPlayerData = { 0x80, // healthCapacity 0x80, // health 0, // magicLevel - 0x30, // magic - 0x32, // rupees - 0x64, // swordHealth + MAGIC_NORMAL_METER, // magic + 50, // rupees + 100, // swordHealth 0, // tatlTimer - 1, // magicAcquired - 0, // doubleMagic + true, // isMagicAcquired + false, // isDoubleMagicAcquired 0, // doubleDefense 0, // unk_1F 0xFF, // unk_20 diff --git a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c index 16e4832a8..9cf65349f 100644 --- a/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c +++ b/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c @@ -81,7 +81,7 @@ void ArrowFire_Init(Actor* thisx, PlayState* play) { void ArrowFire_Destroy(Actor* thisx, PlayState* play) { ArrowFire* this = THIS; - func_80115D5C(&play->state); + Magic_Reset(play); Collider_DestroyQuad(play, &this->collider1); Collider_DestroyQuad(play, &this->collider2); } diff --git a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c index 7c4f1f969..88eddb39e 100644 --- a/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c +++ b/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c @@ -57,7 +57,7 @@ void ArrowIce_Init(Actor* thisx, PlayState* play) { } void ArrowIce_Destroy(Actor* thisx, PlayState* play) { - func_80115D5C(&play->state); + Magic_Reset(play); (void)"消滅"; // Unreferenced in retail, means "Disappearance" } diff --git a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c index 1a7503e54..9f974472f 100644 --- a/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c +++ b/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c @@ -56,7 +56,7 @@ void ArrowLight_Init(Actor* thisx, PlayState* play) { } void ArrowLight_Destroy(Actor* thisx, PlayState* play) { - func_80115D5C(&play->state); + Magic_Reset(play); (void)"消滅"; // Unreferenced in retail, means "Disappearance" } diff --git a/src/overlays/actors/ovl_Boss_02/z_boss_02.c b/src/overlays/actors/ovl_Boss_02/z_boss_02.c index 3ed675c5f..d1fb0a3bd 100644 --- a/src/overlays/actors/ovl_Boss_02/z_boss_02.c +++ b/src/overlays/actors/ovl_Boss_02/z_boss_02.c @@ -571,7 +571,7 @@ void Boss02_Init(Actor* thisx, PlayState* play) { } else { this->unk_1D20 = 1; } - XREG(41) = KREG(14) + 20; + R_MAGIC_CONSUME_TIMER_GIANTS_MASK = KREG(14) + 20; this->unk_01AC = 1.0f; Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_TANRON5, 0.0f, 1000.0f, 0.0f, 0, 0, 0, 0); } else if (this->actor.params == TWINMOLD_TAIL) { diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 46d42a817..4ca78d239 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -139,7 +139,7 @@ void EnArrow_Destroy(Actor* thisx, PlayState* play) { } if ((this->actor.params >= ENARROW_3) && (this->actor.params < ENARROW_6) && (this->actor.child == NULL)) { - func_80115D5C(&play->state); + Magic_Reset(play); } } @@ -162,13 +162,13 @@ void func_8088A594(EnArrow* this, PlayState* play) { this->bubble.unk_148++; if (this->bubble.unk_148 > 20) { this->actionFunc = func_8088ACE0; - func_80115D5C(&play->state); + Magic_Reset(play); } } } else { if ((this->actor.params != ENARROW_8) && (player->unk_D57 == 0)) { if (this->actor.params == ENARROW_7) { - func_80115D5C(&play->state); + Magic_Reset(play); } Actor_MarkForDeath(&this->actor); return; @@ -202,7 +202,7 @@ void func_8088A594(EnArrow* this, PlayState* play) { this->bubble.unk_144 = CLAMP_MIN(this->bubble.unk_144, 3.5f); func_8088A514(this); this->unk_260 = 99; - func_80115D5C(&play->state); + Magic_Reset(play); } else if (this->actor.params >= ENARROW_6) { if ((this->actor.params == ENARROW_8) && (this->actor.world.rot.x < 0)) { Actor_SetScale(&this->actor, 0.009f); @@ -310,7 +310,7 @@ void func_8088AA98(EnArrow* this, PlayState* play) { return; } - func_80115D5C(&play->state); + Magic_Reset(play); } } } diff --git a/src/overlays/actors/ovl_En_Dai/z_en_dai.c b/src/overlays/actors/ovl_En_Dai/z_en_dai.c index 4f8d5eaaa..31e326409 100644 --- a/src/overlays/actors/ovl_En_Dai/z_en_dai.c +++ b/src/overlays/actors/ovl_En_Dai/z_en_dai.c @@ -639,7 +639,7 @@ void func_80B3F78C(EnDai* this, PlayState* play) { }; s32 pad; - if (play->actorCtx.unkB != 0) { + if (play->actorCtx.lensActorsDrawn) { this->unk_1CE |= 0x40; } else { Actor_RecordUndrawnActor(play, &this->actor); diff --git a/src/overlays/actors/ovl_En_Dnb/z_en_dnb.c b/src/overlays/actors/ovl_En_Dnb/z_en_dnb.c index 0d28281ef..3b4ab74ae 100644 --- a/src/overlays/actors/ovl_En_Dnb/z_en_dnb.c +++ b/src/overlays/actors/ovl_En_Dnb/z_en_dnb.c @@ -201,7 +201,7 @@ void func_80A5063C(EnDnb* this, PlayState* play) { void EnDnb_Draw(Actor* thisx, PlayState* play) { EnDnb* this = THIS; - if (play->actorCtx.unk4 != 0) { + if (play->actorCtx.lensMaskSize != 0) { func_80A50510(this, play); } else { func_80A5063C(this, play); diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index bc84c329b..798311c77 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -675,8 +675,7 @@ void func_8088DD34(EnElf* this, PlayState* play) { !func_8088C804(&this->actor.world.pos, &refActor->actor.world.pos, 10.0f)) { Health_ChangeBy(play, 0x80); if (this->fairyFlags & 0x200) { - Parameter_AddMagic(play, ((void)0, gSaveContext.unk_3F30) + - (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); + Magic_Add(play, MAGIC_FILL_TO_CAPACITY); } gSaveContext.jinxTimer = 0; this->unk_254 = 50.0f; diff --git a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c index ba8cb4f01..61457bf50 100644 --- a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c +++ b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c @@ -99,7 +99,7 @@ void EnElfgrp_Init(Actor* thisx, PlayState* play) { break; case ENELFGRP_2: - if (gSaveContext.save.playerData.doubleMagic == true) { + if (gSaveContext.save.playerData.isDoubleMagicAcquired == true) { func_80A396B0(this, 1); } break; @@ -156,7 +156,7 @@ void EnElfgrp_Init(Actor* thisx, PlayState* play) { func_80A396B0(this, 3); this->unk_14A |= 2; } - } else if (gSaveContext.save.playerData.magicAcquired == true) { + } else if (gSaveContext.save.playerData.isMagicAcquired == true) { func_80A396B0(this, 1); } } else { @@ -477,8 +477,7 @@ void func_80A3A610(EnElfgrp* this, PlayState* play) { Player* player = GET_PLAYER(play); if (this->unk_144 == 60) { - Parameter_AddMagic(play, - ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); + Magic_Add(play, MAGIC_FILL_TO_CAPACITY); gSaveContext.healthAccumulator = 320; } diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index d8cbe91f5..e91d04c48 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -739,7 +739,7 @@ s32 EnFirefly_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3 Gfx** gfx) { EnFirefly* this = THIS; - if (this->isInvisible && (play->actorCtx.unk4 != 0x64)) { + if (this->isInvisible && (play->actorCtx.lensMaskSize != LENS_MASK_ACTIVE_SIZE)) { *dList = NULL; } else if (limbIndex == 1) { pos->y += 2300.0f; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 5e3b46fe6..4172773f0 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -651,9 +651,8 @@ void func_80962A10(EnFu* this, PlayState* play) { this->unk_546 = 1; } - if ((gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && gSaveContext.save.playerData.magicAcquired) { - Parameter_AddMagic(play, - ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 48) + 48); + if ((gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && gSaveContext.save.playerData.isMagicAcquired) { + Magic_Add(play, MAGIC_FILL_TO_CAPACITY); } func_80962F10(this); @@ -1139,7 +1138,7 @@ void func_80963DE4(EnFu* this, PlayState* play) { } void func_80963EAC(EnFu* this, PlayState* play) { - if (gSaveContext.save.playerData.magicAcquired) { + if (gSaveContext.save.playerData.isMagicAcquired) { if (this->unk_540 == 1) { Message_StartTextbox(play, 0x2847, &this->actor); this->unk_552 = 0x2847; diff --git a/src/overlays/actors/ovl_En_Gg/z_en_gg.c b/src/overlays/actors/ovl_En_Gg/z_en_gg.c index 5c4606185..e2ebab0d5 100644 --- a/src/overlays/actors/ovl_En_Gg/z_en_gg.c +++ b/src/overlays/actors/ovl_En_Gg/z_en_gg.c @@ -231,7 +231,7 @@ void func_80B35450(EnGg* this, PlayState* play) { if (Actor_ProcessTalkRequest(&this->actor, &play->state)) { if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80)) { - func_800B90F4(play); + Actor_DeactivateLens(play); } this->unk_308 = 1; this->actionFunc = func_80B352A4; @@ -682,7 +682,7 @@ void EnGg_Destroy(Actor* thisx, PlayState* play) { void EnGg_Update(Actor* thisx, PlayState* play) { EnGg* this = THIS; - if (play->actorCtx.unk4 == 100) { + if (play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) { this->actor.flags |= ACTOR_FLAG_80; this->actor.flags |= ACTOR_FLAG_1; } else { diff --git a/src/overlays/actors/ovl_En_Gg2/z_en_gg2.c b/src/overlays/actors/ovl_En_Gg2/z_en_gg2.c index 9726a693a..ebbaaca7f 100644 --- a/src/overlays/actors/ovl_En_Gg2/z_en_gg2.c +++ b/src/overlays/actors/ovl_En_Gg2/z_en_gg2.c @@ -421,7 +421,7 @@ void EnGg2_Destroy(Actor* thisx, PlayState* play) { void EnGg2_Update(Actor* thisx, PlayState* play) { EnGg2* this = THIS; - if (play->actorCtx.unk4 == 100) { + if (play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) { this->actor.flags |= ACTOR_FLAG_80; this->actor.flags |= ACTOR_FLAG_1; if ((this->unk_2EE == 5) && (this->unk_2EE == 7)) { @@ -443,7 +443,7 @@ void EnGg2_Update(Actor* thisx, PlayState* play) { if ((this->unk_2EE == 5) || (this->unk_2EE == 7)) { func_800B9010(&this->actor, NA_SE_EN_SHARP_FLOAT - SFX_FLAG); - if ((play->actorCtx.unk4 == 100) && ((play->state.frames % 4) == 0)) { + if ((play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) && ((play->state.frames % 4) == 0)) { func_80B3B4B0(this, play); } } diff --git a/src/overlays/actors/ovl_En_Gk/z_en_gk.c b/src/overlays/actors/ovl_En_Gk/z_en_gk.c index 235b4ba9f..7563d07fa 100644 --- a/src/overlays/actors/ovl_En_Gk/z_en_gk.c +++ b/src/overlays/actors/ovl_En_Gk/z_en_gk.c @@ -724,8 +724,7 @@ void func_80B51B40(EnGk* this, PlayState* play) { play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_03; gSaveContext.nextTransitionType = TRANS_TYPE_03; - Parameter_AddMagic(play, ((void)0, gSaveContext.unk_3F30) + - (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); + Magic_Add(play, MAGIC_FILL_TO_CAPACITY); } else { this->actionFunc = func_80B51760; } diff --git a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c index b20edf2b4..eb6d4ab42 100644 --- a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c +++ b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c @@ -433,8 +433,7 @@ void EnMttag_PotentiallyRestartRace(EnMttag* this, PlayState* play) { gSaveContext.nextTransitionType = TRANS_TYPE_02; func_801477B4(play); func_800B7298(play, &this->actor, 7); - Parameter_AddMagic(play, - ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 48) + 48); + Magic_Add(play, MAGIC_FILL_TO_CAPACITY); gSaveContext.eventInf[1] &= (u8)~1; gSaveContext.eventInf[1] &= (u8)~2; diff --git a/src/overlays/actors/ovl_En_Test2/z_en_test2.c b/src/overlays/actors/ovl_En_Test2/z_en_test2.c index 4a051fc23..54c3f0609 100644 --- a/src/overlays/actors/ovl_En_Test2/z_en_test2.c +++ b/src/overlays/actors/ovl_En_Test2/z_en_test2.c @@ -107,7 +107,7 @@ void EnTest2_Update(Actor* thisx, PlayState* play) { void EnTest2_UpdateForLens(Actor* thisx, PlayState* play) { EnTest2* this = THIS; - if (play->actorCtx.unk4 == 100) { + if (play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) { this->actor.flags |= ACTOR_FLAG_80; } else { this->actor.flags &= ~ACTOR_FLAG_80; diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c index d2fa8e3a0..0bd1fd30c 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c @@ -123,7 +123,7 @@ void ItemEtcetera_Update(Actor* thisx, PlayState* play) { void ItemEtcetera_DrawThroughLens(Actor* thisx, PlayState* play) { ItemEtcetera* this = THIS; - if (play->actorCtx.unk4 == 100) { + if (play->actorCtx.lensMaskSize == LENS_MASK_ACTIVE_SIZE) { func_800B8050(&this->actor, play, 0); func_800B8118(&this->actor, play, 0); GetItem_Draw(play, this->getItemDrawId); diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 504a2815a..7eaf78c20 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -72,7 +72,7 @@ void OceffSpot_Destroy(Actor* thisx, PlayState* play2) { LightContext_RemoveLight(play, &play->lightCtx, this->lightNode1); LightContext_RemoveLight(play, &play->lightCtx, this->lightNode2); - func_80115D5C(&play->state); + Magic_Reset(play); } void OceffSpot_End(OceffSpot* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c index a26636e15..54672f173 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -42,7 +42,7 @@ void OceffWipe2_Init(Actor* thisx, PlayState* play) { void OceffWipe2_Destroy(Actor* thisx, PlayState* play) { OceffWipe2* this = THIS; - func_80115D5C(&play->state); + Magic_Reset(play); play->msgCtx.unk120B0 = 0; } diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c index 1b1347e8f..4837f6949 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -43,7 +43,7 @@ void OceffWipe3_Init(Actor* thisx, PlayState* play) { void OceffWipe3_Destroy(Actor* thisx, PlayState* play) { OceffWipe3* this = THIS; - func_80115D5C(&play->state); + Magic_Reset(play); play->msgCtx.unk120B0 = 0; } diff --git a/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c b/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c index 3dd701dbf..97c688434 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c +++ b/src/overlays/actors/ovl_Oceff_Wipe6/z_oceff_wipe6.c @@ -38,7 +38,7 @@ void OceffWipe6_Init(Actor* thisx, PlayState* play) { } void OceffWipe6_Destroy(Actor* thisx, PlayState* play) { - func_80115D5C(&play->state); + Magic_Reset(play); play->msgCtx.unk120B0 = 0; } diff --git a/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c b/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c index 5a71ef0d1..abd01e1ff 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c +++ b/src/overlays/actors/ovl_Oceff_Wipe7/z_oceff_wipe7.c @@ -42,7 +42,7 @@ void OceffWipe7_Init(Actor* thisx, PlayState* play) { void OceffWipe7_Destroy(Actor* thisx, PlayState* play) { OceffWipe7* this = THIS; - func_80115D5C(&play->state); + Magic_Reset(play); play->msgCtx.unk120B0 = 0; } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index dc205b344..52e28708d 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -811,7 +811,7 @@ 0x800B9084:("func_800B9084",), 0x800B9098:("func_800B9098",), 0x800B90AC:("func_800B90AC",), - 0x800B90F4:("func_800B90F4",), + 0x800B90F4:("Actor_DeactivateLens",), 0x800B9120:("func_800B9120",), 0x800B9170:("Actor_InitContext",), 0x800B9334:("Actor_SpawnSetupActors",), @@ -821,8 +821,8 @@ 0x800B9D1C:("func_800B9D1C",), 0x800B9E3C:("Actor_DrawAllSetup",), 0x800B9E4C:("Actor_RecordUndrawnActor",), - 0x800B9E84:("func_800B9E84",), - 0x800B9EF4:("func_800B9EF4",), + 0x800B9E84:("Actor_DrawLensOverlay",), + 0x800B9EF4:("Actor_DrawLensActors",), 0x800BA2D8:("func_800BA2D8",), 0x800BA2FC:("func_800BA2FC",), 0x800BA42C:("Actor_DrawAll",), @@ -2134,13 +2134,13 @@ 0x801159C0:("Health_GiveHearts",), 0x801159EC:("Rupees_ChangeBy",), 0x80115A14:("Inventory_ChangeAmmo",), - 0x80115D14:("Parameter_AddMagic",), - 0x80115D5C:("func_80115D5C",), - 0x80115DB4:("func_80115DB4",), - 0x80116088:("func_80116088",), - 0x80116114:("func_80116114",), - 0x80116348:("func_80116348",), - 0x80116918:("func_80116918",), + 0x80115D14:("Magic_Add",), + 0x80115D5C:("Magic_Reset",), + 0x80115DB4:("Magic_Consume",), + 0x80116088:("Magic_UpdateAddRequest",), + 0x80116114:("Magic_FlashMeterBorder",), + 0x80116348:("Magic_Update",), + 0x80116918:("Magic_DrawMeter",), 0x80116FD8:("func_80116FD8",), 0x801170B8:("func_801170B8",), 0x80117100:("func_80117100",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index eaca8ea4b..ab5318936 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -1069,11 +1069,11 @@ 0x801BF890:("sMinigameScoreDigits","UNK_TYPE2","",0x2), 0x801BF898:("sCUpInvisible","UNK_TYPE2","",0x2), 0x801BF89C:("sCUpTimer","UNK_TYPE2","",0x2), - 0x801BF8A0:("sMagicBarOutlinePrimRed","UNK_TYPE2","",0x2), - 0x801BF8A4:("sMagicBarOutlinePrimGreen","UNK_TYPE2","",0x2), - 0x801BF8A8:("sMagicBarOutlinePrimBlue","UNK_TYPE2","",0x2), - 0x801BF8AC:("D_801BF8AC","UNK_TYPE2","",0x2), - 0x801BF8B0:("D_801BF8B0","UNK_TYPE2","",0x2), + 0x801BF8A0:("sMagicMeterOutlinePrimRed","UNK_TYPE2","",0x2), + 0x801BF8A4:("sMagicMeterOutlinePrimGreen","UNK_TYPE2","",0x2), + 0x801BF8A8:("sMagicMeterOutlinePrimBlue","UNK_TYPE2","",0x2), + 0x801BF8AC:("sMagicBorderRatio","UNK_TYPE2","",0x2), + 0x801BF8B0:("sMagicBorderStep","UNK_TYPE2","",0x2), 0x801BF8DC:("D_801BF8DC","UNK_TYPE2","",0x2), 0x801BF8E0:("D_801BF8E0","UNK_TYPE2","",0x2), 0x801BF8E4:("D_801BF8E4","UNK_TYPE2","",0x2), @@ -3434,7 +3434,7 @@ 0x801DE868:("D_801DE868","f32","",0x4), 0x801DE86C:("jtbl_801DE86C","UNK_PTR","",0x4), 0x801DE884:("D_801DE884","f32","",0x4), - 0x801DE890:("D_801DE890","UNK_TYPE1","",0x1), + 0x801DE890:("gCircleTex","UNK_TYPE1","",0x1), 0x801DF090:("D_801DF090","f32","",0x4), 0x801DF094:("D_801DF094","f32","",0x4), 0x801DF0A0:("D_801DF0A0","f32","",0x4), diff --git a/tools/namefixer.py b/tools/namefixer.py index e7b0a10e0..f8f714f8c 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -283,6 +283,7 @@ wordReplace = { "Actor_IsFacingPlayerAndWithinRange": "Actor_IsFacingAndNearPlayer", "func_800BC8B8": "Actor_DrawDoorLock", "func_800B86C8": "Actor_ChangeFocus", + "func_800B90F4": "Actor_DeactivateLens", "zelda_malloc": "ZeldaArena_Malloc", "zelda_mallocR": "ZeldaArena_MallocR", "zelda_realloc": "ZeldaArena_Realloc", @@ -498,6 +499,9 @@ wordReplace = { "func_801159c0": "Health_GiveHearts", "func_801159EC": "Rupees_ChangeBy", "func_80115A14": "Inventory_ChangeAmmo", + "Parameter_AddMagic": "Magic_Add", + "func_80115D5C": "Magic_Reset", + "func_80115DB4": "Magic_Consume", "func_8013EC44": "Rumble_Override", "func_8013ECE0": "Rumble_Request", "func_8017D2FC": "Math3D_LineSegVsPlane", @@ -648,8 +652,8 @@ wordReplace = { "gSaveContext.naviTimer": "gSaveContext.save.playerData.tatlTimer", "gSaveContext.tatlTimer": "gSaveContext.save.playerData.tatlTimer", "gSaveContext.rupees": "gSaveContext.save.playerData.rupees", - "gSaveContext.magicAcquired": "gSaveContext.save.playerData.magicAcquired", - "gSaveContext.doubleMagic": "gSaveContext.save.playerData.doubleMagic", + "gSaveContext.magicAcquired": "gSaveContext.save.playerData.isMagicAcquired", + "gSaveContext.doubleMagic": "gSaveContext.save.playerData.isDoubleMagicAcquired", "gSaveContext.doubleDefense": "gSaveContext.save.playerData.doubleDefense", "gSaveContext.playerName": "gSaveContext.save.playerData.playerName", "gSaveContext.inventory": "gSaveContext.save.inventory", @@ -671,6 +675,11 @@ wordReplace = { "gSaveContext.unk_1016": "gSaveContext.jinxTimer", "gSaveContext.unk_3F58": "gSaveContext.sunsSongState", "gSaveContext.unk_48C8": "gSaveContext.dungeonIndex", + "gSaveContext.save.playerData.magicAcquired": "gSaveContext.save.playerData.isMagicAcquired", + "gSaveContext.save.playerDatadoubleMagic": "gSaveContext.save.playerData.isDoubleMagicAcquired", + "gSaveContext.unk_3F28": "gSaveContext.magicState", + "gSaveContext.unk_3F30": "gSaveContext.magicFillTarget", + "gSaveContext.unk_3F2C": "gSaveContext.magicFlag", "gSaveContext.save.entranceIndex": "gSaveContext.save.entrance", "player->unk_A87": "player->exchangeItemId", @@ -704,6 +713,9 @@ wordReplace = { "play->msgCtx.unk12023": "play->msgCtx.stateTimer", "play->msgCtx.unk1202A": "play->msgCtx.ocarinaMode", "play->msgCtx.unk1202C": "play->msgCtx.ocarinaAction", + "play->msgCtx.unk11F04": "play->msgCtx.currentTextId", + "play->actorCtx.unk3": "play->actorCtx.lensActive", + "play->actorCtx.unk4": "play->actorCtx.lensMaskSize", "play->nextEntranceIndex": "play->nextEntrance", "play->sceneLoadFlag": "play->transitionTrigger", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 15c5a5f60..991b30fdf 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -325,7 +325,7 @@ asm/non_matchings/code/z_actor/func_800B9038.s,func_800B9038,0x800B9038,0x13 asm/non_matchings/code/z_actor/func_800B9084.s,func_800B9084,0x800B9084,0x5 asm/non_matchings/code/z_actor/func_800B9098.s,func_800B9098,0x800B9098,0x5 asm/non_matchings/code/z_actor/func_800B90AC.s,func_800B90AC,0x800B90AC,0x12 -asm/non_matchings/code/z_actor/func_800B90F4.s,func_800B90F4,0x800B90F4,0xB +asm/non_matchings/code/z_actor/Actor_DeactivateLens.s,Actor_DeactivateLens,0x800B90F4,0xB asm/non_matchings/code/z_actor/func_800B9120.s,func_800B9120,0x800B9120,0x14 asm/non_matchings/code/z_actor/Actor_InitContext.s,Actor_InitContext,0x800B9170,0x71 asm/non_matchings/code/z_actor/Actor_SpawnSetupActors.s,Actor_SpawnSetupActors,0x800B9334,0x56 @@ -335,8 +335,8 @@ asm/non_matchings/code/z_actor/Actor_Draw.s,Actor_Draw,0x800B9A04,0xC6 asm/non_matchings/code/z_actor/func_800B9D1C.s,func_800B9D1C,0x800B9D1C,0x48 asm/non_matchings/code/z_actor/Actor_DrawAllSetup.s,Actor_DrawAllSetup,0x800B9E3C,0x4 asm/non_matchings/code/z_actor/Actor_RecordUndrawnActor.s,Actor_RecordUndrawnActor,0x800B9E4C,0xE -asm/non_matchings/code/z_actor/func_800B9E84.s,func_800B9E84,0x800B9E84,0x1C -asm/non_matchings/code/z_actor/func_800B9EF4.s,func_800B9EF4,0x800B9EF4,0xF9 +asm/non_matchings/code/z_actor/Actor_DrawLensOverlay.s,Actor_DrawLensOverlay,0x800B9E84,0x1C +asm/non_matchings/code/z_actor/Actor_DrawLensActors.s,Actor_DrawLensActors,0x800B9EF4,0xF9 asm/non_matchings/code/z_actor/func_800BA2D8.s,func_800BA2D8,0x800BA2D8,0x9 asm/non_matchings/code/z_actor/func_800BA2FC.s,func_800BA2FC,0x800BA2FC,0x4C asm/non_matchings/code/z_actor/Actor_DrawAll.s,Actor_DrawAll,0x800BA42C,0xB4 @@ -1648,13 +1648,13 @@ asm/non_matchings/code/z_parameter/Health_ChangeBy.s,Health_ChangeBy,0x80115908, asm/non_matchings/code/z_parameter/Health_GiveHearts.s,Health_GiveHearts,0x801159C0,0xB asm/non_matchings/code/z_parameter/Rupees_ChangeBy.s,Rupees_ChangeBy,0x801159EC,0xA asm/non_matchings/code/z_parameter/Inventory_ChangeAmmo.s,Inventory_ChangeAmmo,0x80115A14,0xC0 -asm/non_matchings/code/z_parameter/Parameter_AddMagic.s,Parameter_AddMagic,0x80115D14,0x12 -asm/non_matchings/code/z_parameter/func_80115D5C.s,func_80115D5C,0x80115D5C,0x16 -asm/non_matchings/code/z_parameter/func_80115DB4.s,func_80115DB4,0x80115DB4,0xB5 -asm/non_matchings/code/z_parameter/func_80116088.s,func_80116088,0x80116088,0x23 -asm/non_matchings/code/z_parameter/func_80116114.s,func_80116114,0x80116114,0x8D -asm/non_matchings/code/z_parameter/func_80116348.s,func_80116348,0x80116348,0x174 -asm/non_matchings/code/z_parameter/func_80116918.s,func_80116918,0x80116918,0x1B0 +asm/non_matchings/code/z_parameter/Magic_Add.s,Magic_Add,0x80115D14,0x12 +asm/non_matchings/code/z_parameter/Magic_Reset.s,Magic_Reset,0x80115D5C,0x16 +asm/non_matchings/code/z_parameter/Magic_Consume.s,Magic_Consume,0x80115DB4,0xB5 +asm/non_matchings/code/z_parameter/Magic_UpdateAddRequest.s,Magic_UpdateAddRequest,0x80116088,0x23 +asm/non_matchings/code/z_parameter/Magic_FlashMeterBorder.s,Magic_FlashMeterBorder,0x80116114,0x8D +asm/non_matchings/code/z_parameter/Magic_Update.s,Magic_Update,0x80116348,0x174 +asm/non_matchings/code/z_parameter/Magic_DrawMeter.s,Magic_DrawMeter,0x80116918,0x1B0 asm/non_matchings/code/z_parameter/func_80116FD8.s,func_80116FD8,0x80116FD8,0x38 asm/non_matchings/code/z_parameter/func_801170B8.s,func_801170B8,0x801170B8,0x12 asm/non_matchings/code/z_parameter/func_80117100.s,func_80117100,0x80117100,0x248 From 2c6816ba7791c6e6e8043d2a0e6598234588d4cf Mon Sep 17 00:00:00 2001 From: Parker Burnett Date: Wed, 14 Sep 2022 10:01:06 -0700 Subject: [PATCH 3/3] Add enum for tatl hint id (#993) * first round, need to investigate the others * naming the remainder * changed my mind on the name * foooooormat * fixing a number * ...another one... * names galore * PR feedback * fixing * fixes * 4mat * adding "POE_SISTER" * forgot a rename --- include/z64actor.h | 105 ++++++++++++++++++ src/code/z_actor.c | 2 +- src/overlays/actors/ovl_Boss_02/z_boss_02.c | 2 +- src/overlays/actors/ovl_Boss_03/z_boss_03.c | 4 +- src/overlays/actors/ovl_Boss_04/z_boss_04.c | 2 +- src/overlays/actors/ovl_En_Am/z_en_am.c | 2 +- src/overlays/actors/ovl_En_Baguo/z_en_baguo.c | 2 +- src/overlays/actors/ovl_En_Bat/z_en_bat.c | 2 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bbfall/z_en_bbfall.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 2 +- src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c | 4 +- .../actors/ovl_En_Bigslime/z_en_bigslime.c | 6 +- src/overlays/actors/ovl_En_Crow/z_en_crow.c | 2 +- src/overlays/actors/ovl_En_Death/z_en_death.c | 2 +- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- .../actors/ovl_En_Dinofos/z_en_dinofos.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 2 +- .../actors/ovl_En_Dragon/z_en_dragon.c | 2 +- .../actors/ovl_En_Elfbub/z_en_elfbub.c | 2 +- src/overlays/actors/ovl_En_Famos/z_en_famos.c | 2 +- .../actors/ovl_En_Firefly/z_en_firefly.c | 10 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Fz/z_en_fz.c | 2 +- .../actors/ovl_En_Hint_Skb/z_en_hint_skb.c | 6 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 2 +- src/overlays/actors/ovl_En_Kame/z_en_kame.c | 2 +- .../actors/ovl_En_Karebaba/z_en_karebaba.c | 4 +- .../actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 2 +- .../actors/ovl_En_Pametfrog/z_en_pametfrog.c | 4 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 4 +- .../ovl_En_Po_Sisters/z_en_po_sisters.c | 2 +- src/overlays/actors/ovl_En_Poh/z_en_poh.c | 4 +- src/overlays/actors/ovl_En_Pr/z_en_pr.c | 2 +- src/overlays/actors/ovl_En_Pr2/z_en_pr2.c | 2 +- src/overlays/actors/ovl_En_Prz/z_en_prz.c | 2 +- .../actors/ovl_En_Rail_Skb/z_en_rail_skb.c | 8 +- .../actors/ovl_En_Railgibud/z_en_railgibud.c | 10 +- src/overlays/actors/ovl_En_Rat/z_en_rat.c | 2 +- src/overlays/actors/ovl_En_Rd/z_en_rd.c | 34 +++--- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 2 +- src/overlays/actors/ovl_En_Sb/z_en_sb.c | 2 +- src/overlays/actors/ovl_En_Skb/z_en_skb.c | 12 +- .../actors/ovl_En_Snowman/z_en_snowman.c | 2 +- src/overlays/actors/ovl_En_St/z_en_st.c | 2 +- src/overlays/actors/ovl_En_Sw/z_en_sw.c | 4 +- .../ovl_En_Syateki_Crow/z_en_syateki_crow.c | 2 +- .../z_en_syateki_dekunuts.c | 2 +- .../ovl_En_Syateki_Okuta/z_en_syateki_okuta.c | 2 +- .../ovl_En_Syateki_Wf/z_en_syateki_wf.c | 2 +- .../ovl_En_Talk_Gibud/z_en_talk_gibud.c | 10 +- .../actors/ovl_En_Thiefbird/z_en_thiefbird.c | 2 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- src/overlays/actors/ovl_En_Vm/z_en_vm.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 4 +- .../actors/ovl_Obj_Kinoko/z_obj_kinoko.c | 4 +- 58 files changed, 211 insertions(+), 106 deletions(-) diff --git a/include/z64actor.h b/include/z64actor.h index 4c3539901..925a9975f 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -1188,4 +1188,109 @@ typedef enum { /* 0xC8 */ CLEAR_TAG_SMOKE = 200 } ClearTagType; +typedef enum { + /* 0x00 */ TATL_HINT_ID_DEFAULT, + /* 0x01 */ TATL_HINT_ID_SNAPPER, + /* 0x02 */ TATL_HINT_ID_MINI_BABA, + /* 0x03 */ TATL_HINT_ID_MAD_JELLY, + /* 0x04 */ TATL_HINT_ID_SKULLTULA, + /* 0x05 */ TATL_HINT_ID_RED_CHUCHU, + /* 0x06 */ TATL_HINT_ID_BLUE_CHUCHU, + /* 0x07 */ TATL_HINT_ID_DEKU_BABA, + /* 0x08 */ TATL_HINT_ID_BIO_DEKU_BABA, + /* 0x09 */ TATL_HINT_ID_WILTED_DEKU_BABA, + /* 0x0A */ TATL_HINT_ID_DEXIHAND, + /* 0x0B */ TATL_HINT_ID_NEJIRON, + /* 0x0C */ TATL_HINT_ID_GIANT_BEE, + /* 0x0D */ TATL_HINT_ID_DODONGO, + /* 0x0E */ TATL_HINT_ID_DEEP_PYTHON, + /* 0x0F */ TATL_HINT_ID_DEATH_ARMOS, + /* 0x10 */ TATL_HINT_ID_DINOLFOS, + /* 0x11 */ TATL_HINT_ID_FIRE_KEESE, + /* 0x12 */ TATL_HINT_ID_KEESE, + /* 0x13 */ TATL_HINT_ID_ARMOS, + /* 0x14 */ TATL_HINT_ID_EENO, + /* 0x15 */ TATL_HINT_ID_DRAGONFLY, + /* 0x16 */ TATL_HINT_ID_IGOS_DU_IKANA, + /* 0x17 */ TATL_HINT_ID_GARO, + /* 0x18 */ TATL_HINT_ID_GARO_MASTER, + /* 0x19 */ TATL_HINT_ID_WART, + /* 0x1A */ TATL_HINT_ID_GOMESS, + /* 0x1B */ TATL_HINT_ID_GOHT, + /* 0x1C */ TATL_HINT_ID_BLUE_BUBBLE, + /* 0x1D */ TATL_HINT_ID_KINGS_LACKEYS_DARK_ROOM, + /* 0x1E */ TATL_HINT_ID_KINGS_LACKEYS_LIGHT_ROOM, + /* 0x1F */ TATL_HINT_ID_SKULLWALLTULA, + /* 0x20 */ TATL_HINT_ID_GOLD_SKULLTULA, // Only in JP Ver. + /* 0x21 */ TATL_HINT_ID_CAPTAIN_KEETA, + /* 0x22 */ TATL_HINT_ID_YELLOW_CHUCHU, + /* 0x23 */ TATL_HINT_ID_TAKKURI, + /* 0x24 */ TATL_HINT_ID_RED_BUBBLE, + /* 0x25 */ TATL_HINT_ID_HIPLOOP, + /* 0x26 */ TATL_HINT_ID_MASKED_HIPLOOP, + /* 0x27 */ TATL_HINT_ID_SHELLBLADE, + /* 0x28 */ TATL_HINT_ID_GYORG, // "if you go near, you'll be eaten!" + /* 0x29 */ TATL_HINT_ID_GYORG_STUNNED, // "Jump in and attack it!" + /* 0x2A */ TATL_HINT_ID_REDEAD, + /* 0x2B */ TATL_HINT_ID_2B, + /* 0x2C */ TATL_HINT_ID_BLACK_BOE, + /* 0x2D */ TATL_HINT_ID_GIBDO, + /* 0x2E */ TATL_HINT_ID_TWINMOLD, + /* 0x2F */ TATL_HINT_ID_WEARING_GIANTS_MASK, // Twinmold, JP Ver. only + /* 0x30 */ TATL_HINT_ID_WALLMASTER, + /* 0x31 */ TATL_HINT_ID_FLOORMASTER, + /* 0x32 */ TATL_HINT_ID_MAJORAS_MASK, + /* 0x33 */ TATL_HINT_ID_MAJORAS_INCARNATION, + /* 0x34 */ TATL_HINT_ID_MAJORAS_WRATH, + /* 0x35 */ TATL_HINT_ID_IRON_KNUCKLE, + /* 0x36 */ TATL_HINT_ID_36, // Empty + /* 0x37 */ TATL_HINT_ID_LIKE_LIKE, + /* 0x38 */ TATL_HINT_ID_38, // Empty + /* 0x39 */ TATL_HINT_ID_BEAMOS, + /* 0x3A */ TATL_HINT_ID_3A, // Empty + /* 0x3B */ TATL_HINT_ID_FREEZARD, + /* 0x3C */ TATL_HINT_ID_WHITE_BOE, + /* 0x3D */ TATL_HINT_ID_3D, // Empty + /* 0x3E */ TATL_HINT_ID_3E, // Empty + /* 0x3F */ TATL_HINT_ID_3F, // Empty + /* 0x40 */ TATL_HINT_ID_40, // Empty + /* 0x41 */ TATL_HINT_ID_41, // Empty + /* 0x42 */ TATL_HINT_ID_OCTOROK, + /* 0x43 */ TATL_HINT_ID_43, // Empty + /* 0x44 */ TATL_HINT_ID_POE, + /* 0x45 */ TATL_HINT_ID_GEKKO_SNAPPER, + /* 0x46 */ TATL_HINT_ID_BLUE_TEKTITE, + /* 0x47 */ TATL_HINT_ID_LEEVER, + /* 0x48 */ TATL_HINT_ID_PEAHAT, + /* 0x49 */ TATL_HINT_ID_PEAHAT_LARVA, + /* 0x4A */ TATL_HINT_ID_EYEGORE, + /* 0x4B */ TATL_HINT_ID_WIZROBE, + /* 0x4C */ TATL_HINT_ID_WOLFOS, + /* 0x4D */ TATL_HINT_ID_MAD_SCRUB, + /* 0x4E */ TATL_HINT_ID_4E, // Empty + /* 0x4F */ TATL_HINT_ID_4F, // Empty + /* 0x50 */ TATL_HINT_ID_POE_SISTER_MEG, + /* 0x51 */ TATL_HINT_ID_POE_SISTER_JO, + /* 0x52 */ TATL_HINT_ID_POE_SISTER_BETH, + /* 0x53 */ TATL_HINT_ID_POE_SISTER_AMY, + /* 0x54 */ TATL_HINT_ID_PIRATE, + /* 0x55 */ TATL_HINT_ID_STALCHILD, + /* 0x56 */ TATL_HINT_ID_ICE_KEESE, + /* 0x57 */ TATL_HINT_ID_WHITE_WOLFOS, + /* 0x58 */ TATL_HINT_ID_GUAY, + /* 0x59 */ TATL_HINT_ID_BIG_OCTO, + /* 0x5A */ TATL_HINT_ID_BIG_POE, + /* 0x5B */ TATL_HINT_ID_SKULLFISH, + /* 0x5C */ TATL_HINT_ID_DESBREKO, + /* 0x5D */ TATL_HINT_ID_GREEN_CHUCHU, + /* 0x5E */ TATL_HINT_ID_ODOLWA_1, + /* 0x5F */ TATL_HINT_ID_GEKKO_GIANT_SLIME, + /* 0x60 */ TATL_HINT_ID_BAD_BAT, + /* 0x61 */ TATL_HINT_ID_REAL_BOMBCHU, + /* 0x62 */ TATL_HINT_ID_ODOLWA_2, + /* 0x63 */ TATL_HINT_ID_ODOLWA_3, + /* 0x64 */ TATL_HINT_ID_MUSHROOM, + /* 0xFF */ TATL_HINT_ID_NONE = 0xFF +} TatlHintId; + #endif diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 1b2d02b66..3669dd136 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1076,7 +1076,7 @@ void Actor_Init(Actor* actor, PlayState* play) { actor->uncullZoneScale = 350.0f; actor->uncullZoneDownward = 700.0f; - actor->hintId = 255; + actor->hintId = TATL_HINT_ID_NONE; CollisionCheck_InitInfo(&actor->colChkInfo); actor->floorBgId = BGCHECK_SCENE; diff --git a/src/overlays/actors/ovl_Boss_02/z_boss_02.c b/src/overlays/actors/ovl_Boss_02/z_boss_02.c index d1fb0a3bd..9808e68a4 100644 --- a/src/overlays/actors/ovl_Boss_02/z_boss_02.c +++ b/src/overlays/actors/ovl_Boss_02/z_boss_02.c @@ -577,7 +577,7 @@ void Boss02_Init(Actor* thisx, PlayState* play) { } else if (this->actor.params == TWINMOLD_TAIL) { this->actor.update = Boss02_Tail_Update; this->actor.draw = NULL; - this->actor.hintId = 0x2E; + this->actor.hintId = TATL_HINT_ID_TWINMOLD; } else { if (this->actor.params != TWINMOLD_BLUE) { this->actor.params = TWINMOLD_RED; diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c index 75378de78..84987a9f5 100644 --- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c +++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c @@ -1762,7 +1762,7 @@ void Boss03_SetupStunned(Boss03* this, PlayState* play) { } void Boss03_Stunned(Boss03* this, PlayState* play) { - this->actor.hintId = 0x29; + this->actor.hintId = TATL_HINT_ID_GYORG_STUNNED; if (this->unk_240 >= 16) { Boss03_PlayUnderwaterSfx(&this->actor.projectedPos, NA_SE_EN_COMMON_WEAKENED - SFX_FLAG); @@ -1955,7 +1955,7 @@ void Boss03_Update(Actor* thisx, PlayState* play2) { s16 j; f32 yRot; - this->actor.hintId = 0x28; + this->actor.hintId = TATL_HINT_ID_GYORG; if (!D_809E9842 && (player->actor.world.pos.y < (PLATFORM_HEIGHT + 5.0f))) { D_809E9842 = true; diff --git a/src/overlays/actors/ovl_Boss_04/z_boss_04.c b/src/overlays/actors/ovl_Boss_04/z_boss_04.c index 3524efa53..e7d96d205 100644 --- a/src/overlays/actors/ovl_Boss_04/z_boss_04.c +++ b/src/overlays/actors/ovl_Boss_04/z_boss_04.c @@ -163,7 +163,7 @@ void Boss04_Init(Actor* thisx, PlayState* play2) { this->actor.params = 0x64; Actor_SetScale(&this->actor, 0.1f); this->actor.targetMode = 5; - this->actor.hintId = 0x19; + this->actor.hintId = TATL_HINT_ID_WART; this->actor.colChkInfo.health = 20; this->actor.colChkInfo.damageTable = &sDamageTable; this->unk_700 = 1.0f; diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index 5b1b488cb..eda01c254 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -128,7 +128,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 1, 23, 98, MASS_HEAVY }; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 14, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 19, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_ARMOS, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Baguo/z_en_baguo.c b/src/overlays/actors/ovl_En_Baguo/z_en_baguo.c index a0954943b..e2496e18e 100644 --- a/src/overlays/actors/ovl_En_Baguo/z_en_baguo.c +++ b/src/overlays/actors/ovl_En_Baguo/z_en_baguo.c @@ -126,7 +126,7 @@ void EnBaguo_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.0f); SkelAnime_Init(play, &this->skelAnime, &gNejironSkel, NULL, this->jointTable, this->morphTable, NEJIRON_LIMB_MAX); - this->actor.hintId = 0xB; + this->actor.hintId = TATL_HINT_ID_NEJIRON; this->maxDistanceFromHome = 240.0f; this->maxDistanceFromHome += this->actor.world.rot.z * 40.0f; this->actor.world.rot.z = 0; diff --git a/src/overlays/actors/ovl_En_Bat/z_en_bat.c b/src/overlays/actors/ovl_En_Bat/z_en_bat.c index e81608721..fe1eb9fd8 100644 --- a/src/overlays/actors/ovl_En_Bat/z_en_bat.c +++ b/src/overlays/actors/ovl_En_Bat/z_en_bat.c @@ -107,7 +107,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 1, 15, 30, 10 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 96, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_BAD_BAT, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 488ed0482..a66c28a89 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -114,7 +114,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 2, 20, 40, 50 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 28, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_BLUE_BUBBLE, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 10, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c index 2193203fe..b1e4db445 100644 --- a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c +++ b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c @@ -143,7 +143,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 2, 20, 40, 50 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 36, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_RED_BUBBLE, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 10, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index bb3f28bee..047567b98 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -88,7 +88,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneForward, 2500, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 89, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_BIG_OCTO, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 33, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c index 8121db9e2..0be5ad0b4 100644 --- a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c +++ b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c @@ -154,7 +154,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 90, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_BIG_POE, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 3200, ICHAIN_STOP), }; @@ -671,7 +671,7 @@ void EnBigpo_SetupDeath(EnBigpo* this) { this->idleTimer = 0; this->actor.speedXZ = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->collider.base.ocFlags1 &= ~OC1_ON; this->actionFunc = EnBigpo_BurnAwayDeath; } diff --git a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c index 12076537e..392f9a441 100644 --- a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c +++ b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c @@ -303,7 +303,7 @@ static AnimationHeader* sGekkoAttackAnimations[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 95, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_GEKKO_GIANT_SLIME, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(targetArrowOffset, -13221, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_STOP), @@ -765,7 +765,7 @@ void EnBigslime_BreakIntoMinislime(EnBigslime* this, PlayState* play) { this->actor.colChkInfo.mass = 50; this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_400); this->actor.flags |= ACTOR_FLAG_200; - this->actor.hintId = 95; + this->actor.hintId = TATL_HINT_ID_GEKKO_GIANT_SLIME; this->gekkoRot.x = 0; this->gekkoRot.y = 0; this->actor.bgCheckFlags &= ~1; @@ -2308,7 +2308,7 @@ void EnBigslime_FormBigslime(EnBigslime* this, PlayState* play) { if (this->minislimeCounter == MINISLIME_NUM_SPAWN) { this->minislimeState = MINISLIME_INACTIVE_STATE; - this->actor.hintId = 3; + this->actor.hintId = TATL_HINT_ID_MAD_JELLY; EnBigslime_SetupMoveOnCeiling(this); } } diff --git a/src/overlays/actors/ovl_En_Crow/z_en_crow.c b/src/overlays/actors/ovl_En_Crow/z_en_crow.c index e6980ba4f..c04462c44 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -118,7 +118,7 @@ static s32 sDeadCount = 0; static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 88, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_GUAY, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Death/z_en_death.c b/src/overlays/actors/ovl_En_Death/z_en_death.c index edc240cd5..b0f03af7c 100644 --- a/src/overlays/actors/ovl_En_Death/z_en_death.c +++ b/src/overlays/actors/ovl_En_Death/z_en_death.c @@ -131,7 +131,7 @@ static CollisionCheckInfoInit2 D_808C9A30 = { 20, 28, 90, 20, 100 }; // static InitChainEntry sInitChain[] = { static InitChainEntry D_808C9A60[] = { ICHAIN_VEC3F(scale, 0, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 26, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_GOMESS, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 6000, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index 15ae675a1..0f37266e2 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -109,7 +109,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 77, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_MAD_SCRUB, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2600, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c index eb7719150..65c11e035 100644 --- a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c +++ b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c @@ -253,7 +253,7 @@ static s32 D_8089E350 = 0; static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 16, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_DINOLFOS, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 15, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 45311b83f..65e5417f3 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -273,7 +273,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 3, 100, 100, 80 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 13, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_DODONGO, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 1400, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Dragon/z_en_dragon.c b/src/overlays/actors/ovl_En_Dragon/z_en_dragon.c index 901efc0d2..5bc260ccc 100644 --- a/src/overlays/actors/ovl_En_Dragon/z_en_dragon.c +++ b/src/overlays/actors/ovl_En_Dragon/z_en_dragon.c @@ -242,7 +242,7 @@ void EnDragon_Init(Actor* thisx, PlayState* play) { this->pythonIndex = EN_DRAGON_GET_PYTHON_INDEX(&this->actor); this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->action = DEEP_PYTHON_ACTION_IDLE; - this->actor.hintId = 0xE; + this->actor.hintId = TATL_HINT_ID_DEEP_PYTHON; this->scale = 0.5f; this->actor.flags &= ~ACTOR_FLAG_8000000; diff --git a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c index 287ca85e1..4b091efc3 100644 --- a/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c +++ b/src/overlays/actors/ovl_En_Elfbub/z_en_elfbub.c @@ -62,7 +62,7 @@ void EnElfbub_Init(Actor* thisx, PlayState* play) { } ActorShape_Init(&this->actor.shape, 16.0f, ActorShadow_DrawCircle, 0.2f); - this->actor.hintId = 0x16; + this->actor.hintId = TATL_HINT_ID_IGOS_DU_IKANA; Actor_SetScale(&this->actor, 1.25f); this->actionFunc = EnElfbub_Idle; diff --git a/src/overlays/actors/ovl_En_Famos/z_en_famos.c b/src/overlays/actors/ovl_En_Famos/z_en_famos.c index cc447a1a1..b6b93aded 100644 --- a/src/overlays/actors/ovl_En_Famos/z_en_famos.c +++ b/src/overlays/actors/ovl_En_Famos/z_en_famos.c @@ -154,7 +154,7 @@ static AnimatedMaterial* sEmblemAnimatedMats[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 15, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_DEATH_ARMOS, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 3500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index e91d04c48..3ac02d9c9 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -149,19 +149,19 @@ void EnFirefly_Init(Actor* thisx, PlayState* play) { this->auraType = KEESE_AURA_FIRE; this->timer = Rand_S16Offset(20, 60); this->actor.shape.rot.x = 0x1554; - this->actor.hintId = 0x11; // Fire Keese + this->actor.hintId = TATL_HINT_ID_FIRE_KEESE; this->maxAltitude = this->actor.home.pos.y; this->actionFunc = EnFirefly_FlyIdle; } else if (this->actor.params == KEESE_ICE_FLY) { this->auraType = KEESE_AURA_ICE; this->collider.info.toucher.effect = 2; // Freeze - this->actor.hintId = 0x56; // Ice Keese + this->actor.hintId = TATL_HINT_ID_ICE_KEESE; this->maxAltitude = this->actor.home.pos.y + 100.0f; this->actionFunc = EnFirefly_FlyIdle; } else { this->auraType = KEESE_AURA_NONE; this->collider.info.toucher.effect = 0; // Nothing - this->actor.hintId = 0x12; // Keese + this->actor.hintId = TATL_HINT_ID_KEESE; this->maxAltitude = this->actor.home.pos.y + 100.0f; this->actionFunc = EnFirefly_Perch; } @@ -188,7 +188,7 @@ void EnFirefly_Extinguish(EnFirefly* this) { this->currentType = KEESE_NORMAL; this->collider.info.toucher.effect = 0; // Nothing this->auraType = KEESE_AURA_NONE; - this->actor.hintId = 0x12; // Keese + this->actor.hintId = TATL_HINT_ID_KEESE; } void EnFirefly_Ignite(EnFirefly* this) { @@ -196,7 +196,7 @@ void EnFirefly_Ignite(EnFirefly* this) { this->currentType = KEESE_FIRE; this->collider.info.toucher.effect = 1; // Fire this->auraType = KEESE_AURA_FIRE; - this->actor.hintId = 0x11; // Fire Keese + this->actor.hintId = TATL_HINT_ID_FIRE_KEESE; } } diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index c5e7b24f1..411d83712 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -129,7 +129,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 49, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_FLOORMASTER, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 5500, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 00c47b111..198166b00 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -156,7 +156,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 59, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_FREEZARD, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 1400, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c index 3664fcede..46a52a9fa 100644 --- a/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c +++ b/src/overlays/actors/ovl_En_Hint_Skb/z_en_hint_skb.c @@ -158,7 +158,7 @@ void EnHintSkb_Init(Actor* thisx, PlayState* play) { Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, this->colliderElement); CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); Actor_ProcessInitChain(&this->actor, sInitChain); - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->unk_3E4 = 0; this->unk_3DE = 0; this->unk_3E0 = 0; @@ -587,7 +587,7 @@ void func_80C20D64(EnHintSkb* this, PlayState* play) { if (Player_GetMask(play) == PLAYER_MASK_CAPTAIN) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_4); this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); - this->actor.hintId = 255; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; if (this->actionFunc == func_80C1FE80) { Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, 12); @@ -597,7 +597,7 @@ void func_80C20D64(EnHintSkb* this, PlayState* play) { } else if (Player_GetMask(play) != PLAYER_MASK_CAPTAIN) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_8); this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_4); - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.textId = 0; if (this->skelAnime.animation == &object_skb_Anim_00697C) { func_80C1FE0C(this); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index a1c33264e..d71e4c193 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -388,7 +388,7 @@ void EnIk_Idle(EnIk* this, PlayState* play) { } else if (this->colliderCylinder.base.acFlags & AC_HIT) { Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_IRONNACK_ARMOR_HIT); func_801A2E54(NA_BGM_MINI_BOSS); - this->actor.hintId = 0x35; + this->actor.hintId = TATL_HINT_ID_IRON_KNUCKLE; this->colliderCylinder.base.acFlags &= ~AC_HIT; this->invincibilityFrames = 12; EnIk_SetupWalk(this); diff --git a/src/overlays/actors/ovl_En_Kame/z_en_kame.c b/src/overlays/actors/ovl_En_Kame/z_en_kame.c index b6edc7778..c1ea3ae46 100644 --- a/src/overlays/actors/ovl_En_Kame/z_en_kame.c +++ b/src/overlays/actors/ovl_En_Kame/z_en_kame.c @@ -114,7 +114,7 @@ static TexturePtr D_80AD8E34[] = { object_tl_Tex_0055A0, object_tl_Tex_0057A0, o object_tl_Tex_0057A0 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 1, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_SNAPPER, ICHAIN_CONTINUE), ICHAIN_F32(gravity, -1, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 3500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 5412065f5..46a1adfd5 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -154,9 +154,9 @@ void EnKarebaba_Init(Actor* thisx, PlayState* play) { this->unk_22C = NULL; if (this->actor.params == ENKAREBABA_2) { - this->actor.hintId = 2; + this->actor.hintId = TATL_HINT_ID_MINI_BABA; } else { - this->actor.hintId = 9; + this->actor.hintId = TATL_HINT_ID_WILTED_DEKU_BABA; } if (this->actor.params == ENKAREBABA_0) { diff --git a/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c b/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c index bd56373e5..bf91c7516 100644 --- a/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c +++ b/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c @@ -134,7 +134,7 @@ void EnNeoReeba_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.damageTable = &sDamageTable; this->actor.targetMode = 2; - this->actor.hintId = 0x47; + this->actor.hintId = TATL_HINT_ID_LEEVER; this->actor.gravity = -0.5f; this->targetPos = gZeroVec3f; diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index a0de8cc48..938696e88 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -95,7 +95,7 @@ static DamageTable D_80870900 = { // static InitChainEntry sInitChain[] = { static InitChainEntry D_80870920[] = { - ICHAIN_S8(hintId, 66, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_OCTOROK, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 6500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c index 5feb50245..2ff9d814e 100644 --- a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c +++ b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c @@ -163,7 +163,7 @@ static ColliderJntSphInit sJntSphInit = { static CollisionCheckInfoInit sColChkInit = { 3, 30, 60, 50 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 69, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_GEKKO_SNAPPER, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(targetArrowOffset, -13221, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 7, ICHAIN_CONTINUE), @@ -1191,7 +1191,7 @@ void EnPametfrog_SetupCallSnapper(EnPametfrog* this, PlayState* play) { // Zooms in on Gekko Play_SetCameraAtEye(play, this->subCamId, &subCamAt, &subCamEye); this->timer = 0; - this->actor.hintId = 0x5F; + this->actor.hintId = TATL_HINT_ID_GEKKO_GIANT_SLIME; this->actionFunc = EnPametfrog_CallSnapper; } diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index d0598ce79..f7e943957 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -194,7 +194,7 @@ void EnPeehat_Init(Actor* thisx, PlayState* play) { this->actor.shape.yOffset = -1000.0f; } Actor_SetScale(&this->actor, 0.036f); - this->actor.hintId = 0x48; + this->actor.hintId = TATL_HINT_ID_PEAHAT; func_80897498(this); } else { CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit2); @@ -205,7 +205,7 @@ void EnPeehat_Init(Actor* thisx, PlayState* play) { this->colliderCylinder.dim.radius = 20; this->colliderCylinder.dim.height = 15; this->colliderCylinder.dim.yShift = -5; - this->actor.hintId = 0x49; + this->actor.hintId = TATL_HINT_ID_PEAHAT_LARVA; this->colliderCylinder.base.ocFlags1 &= ~OC1_ON; func_80897A34(this); diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index b9afa5229..57e32a554 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -177,7 +177,7 @@ void EnPoSisters_Init(Actor* thisx, PlayState* play) { Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); this->type = ENPOSISTERS_GET_TYPE(thisx); - this->actor.hintId = this->type + 80; + this->actor.hintId = this->type + TATL_HINT_ID_POE_SISTER_MEG; this->megCloneId = ENPOSISTERS_GET_MEG_CLONE_ID(thisx); this->floatingBobbingTimer = 32; this->zTargetTimer = 20; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 9d1dca75e..dde6236b5 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -143,7 +143,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 3, 25, 50, 50 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 68, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_POE, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 3200, ICHAIN_STOP), }; @@ -388,7 +388,7 @@ void func_80B2D2C0(EnPoh* this) { this->actor.speedXZ = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_18E = 0; - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.flags &= ~ACTOR_FLAG_1; this->actionFunc = func_80B2D300; } diff --git a/src/overlays/actors/ovl_En_Pr/z_en_pr.c b/src/overlays/actors/ovl_En_Pr/z_en_pr.c index c7fae7c88..724b2c19f 100644 --- a/src/overlays/actors/ovl_En_Pr/z_en_pr.c +++ b/src/overlays/actors/ovl_En_Pr/z_en_pr.c @@ -118,7 +118,7 @@ void EnPr_Init(Actor* thisx, PlayState* play2) { this->actor.colChkInfo.health = 3; this->actor.colChkInfo.mass = 50; - this->actor.hintId = 0x5C; + this->actor.hintId = TATL_HINT_ID_DESBREKO; Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); diff --git a/src/overlays/actors/ovl_En_Pr2/z_en_pr2.c b/src/overlays/actors/ovl_En_Pr2/z_en_pr2.c index 2454639c5..4564c679f 100644 --- a/src/overlays/actors/ovl_En_Pr2/z_en_pr2.c +++ b/src/overlays/actors/ovl_En_Pr2/z_en_pr2.c @@ -109,7 +109,7 @@ void EnPr2_Init(Actor* thisx, PlayState* play) { EnPr2* this = THIS; this->actor.targetMode = 3; - this->actor.hintId = 0x5B; + this->actor.hintId = TATL_HINT_ID_SKULLFISH; this->unk_1EC = 255; this->actor.colChkInfo.health = 1; this->actor.colChkInfo.damageTable = &sDamageTable; diff --git a/src/overlays/actors/ovl_En_Prz/z_en_prz.c b/src/overlays/actors/ovl_En_Prz/z_en_prz.c index 6fc5ea24a..e5c611578 100644 --- a/src/overlays/actors/ovl_En_Prz/z_en_prz.c +++ b/src/overlays/actors/ovl_En_Prz/z_en_prz.c @@ -110,7 +110,7 @@ void EnPrz_Init(Actor* thisx, PlayState* play) { this->actor.targetMode = 3; this->unk_1E8 = 255; - this->actor.hintId = 0x5B; + this->actor.hintId = TATL_HINT_ID_SKULLFISH; this->actor.colChkInfo.damageTable = &sDamageTable; this->actor.colChkInfo.health = 1; diff --git a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c index 095ee3fec..56201271b 100644 --- a/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c +++ b/src/overlays/actors/ovl_En_Rail_Skb/z_en_rail_skb.c @@ -282,7 +282,7 @@ void EnRailSkb_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); this->actor.speedXZ = 1.6f; - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->unk_3F2 = 0; this->unk_2E4 = -1; this->unk_3FC = 0; @@ -825,7 +825,7 @@ void func_80B723F8(EnRailSkb* this) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_4); this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); this->actor.flags |= ACTOR_FLAG_100000; - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; } @@ -926,7 +926,7 @@ void func_80B72880(EnRailSkb* this, PlayState* play) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_4); this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); this->actor.flags |= ACTOR_FLAG_100000; - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; func_80B71650(this); } @@ -934,7 +934,7 @@ void func_80B72880(EnRailSkb* this, PlayState* play) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_8); this->actor.flags &= ~ACTOR_FLAG_100000; this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_4); - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.textId = 0; func_80B70FA0(this); } diff --git a/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c b/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c index 10bbf2f83..58ab51cf8 100644 --- a/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c +++ b/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c @@ -246,7 +246,7 @@ void EnRailgibud_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); this->actor.targetMode = 0; - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; this->actor.textId = 0; if (ENRAILGIBUD_IS_CUTSCENE_TYPE(&this->actor)) { EnRailgibud_InitCutsceneGibdo(this, play); @@ -580,7 +580,7 @@ void EnRailgibud_Damage(EnRailgibud* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->drawDmgEffTimer > 0) && (this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FIRE) && (this->type == EN_RAILGIBUD_TYPE_GIBDO)) { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; SkelAnime_InitFlex(play, &this->skelAnime, &gRedeadSkel, NULL, this->jointTable, this->morphTable, GIBDO_LIMB_MAX); this->type = EN_RAILGIBUD_TYPE_REDEAD; @@ -933,7 +933,7 @@ void EnRailgibud_CheckForGibdoMask(EnRailgibud* this, PlayState* play) { if (Player_GetMask(play) == PLAYER_MASK_GIBDO) { this->actor.flags &= ~(ACTOR_FLAG_4 | ACTOR_FLAG_1); this->actor.flags |= (ACTOR_FLAG_8 | ACTOR_FLAG_1); - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; if ((this->actionFunc != EnRailgibud_WalkInCircles) && (this->actionFunc != EnRailgibud_WalkToHome)) { EnRailgibud_SetupWalkToHome(this); @@ -943,9 +943,9 @@ void EnRailgibud_CheckForGibdoMask(EnRailgibud* this, PlayState* play) { this->actor.flags &= ~(ACTOR_FLAG_8 | ACTOR_FLAG_1); this->actor.flags |= (ACTOR_FLAG_4 | ACTOR_FLAG_1); if (this->type == EN_RAILGIBUD_TYPE_REDEAD) { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } else { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } this->actor.textId = 0; } diff --git a/src/overlays/actors/ovl_En_Rat/z_en_rat.c b/src/overlays/actors/ovl_En_Rat/z_en_rat.c index 1054876aa..cc98c05e1 100644 --- a/src/overlays/actors/ovl_En_Rat/z_en_rat.c +++ b/src/overlays/actors/ovl_En_Rat/z_en_rat.c @@ -118,7 +118,7 @@ static TexturePtr sSparkTextures[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 97, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_REAL_BOMBCHU, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 15, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 5000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 1f4c10281..0092189c5 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -223,7 +223,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { if (!EnRd_ShouldNotDance(play)) { EnRd_SetupSquattingDance(this); } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; EnRd_SetupIdle(this); } this->setupDanceFunc = EnRd_SetupSquattingDance; @@ -233,7 +233,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { if (!EnRd_ShouldNotDance(play)) { EnRd_SetupClappingDance(this); } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; EnRd_SetupIdle(this); } this->setupDanceFunc = EnRd_SetupClappingDance; @@ -243,7 +243,7 @@ void EnRd_Init(Actor* thisx, PlayState* play) { if (!EnRd_ShouldNotDance(play)) { EnRd_SetupPirouette(this); } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; EnRd_SetupIdle(this); } this->setupDanceFunc = EnRd_SetupPirouette; @@ -251,9 +251,9 @@ void EnRd_Init(Actor* thisx, PlayState* play) { default: if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } EnRd_SetupIdle(this); this->setupDanceFunc = EnRd_SetupIdle; @@ -436,9 +436,9 @@ void EnRd_SquattingDance(EnRd* this, PlayState* play) { this->isMourning = false; if ((this->actor.xzDistToPlayer <= 150.0f) && EnRd_ShouldNotDance(play) && func_800B715C(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } Animation_Change(&this->skelAnime, &gGibdoRedeadLookBackAnim, 0.0f, 0.0f, 19.0f, ANIMMODE_ONCE, -10.0f); this->actionFunc = EnRd_EndClappingOrSquattingDanceWhenPlayerIsClose; @@ -446,9 +446,9 @@ void EnRd_SquattingDance(EnRd* this, PlayState* play) { if (EnRd_ShouldNotDance(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } EnRd_SetupIdle(this); } @@ -480,9 +480,9 @@ void EnRd_ClappingDance(EnRd* this, PlayState* play) { this->isMourning = false; if ((this->actor.xzDistToPlayer <= 150.0f) && EnRd_ShouldNotDance(play) && func_800B715C(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } Animation_Change(&this->skelAnime, &gGibdoRedeadLookBackAnim, 0.0f, 0.0f, 19.0f, ANIMMODE_ONCE, -10.0f); this->actionFunc = EnRd_EndClappingOrSquattingDanceWhenPlayerIsClose; @@ -490,9 +490,9 @@ void EnRd_ClappingDance(EnRd* this, PlayState* play) { if (EnRd_ShouldNotDance(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } EnRd_SetupIdle(this); } @@ -541,18 +541,18 @@ void EnRd_Pirouette(EnRd* this, PlayState* play) { this->isMourning = false; if ((this->actor.xzDistToPlayer <= 150.0f) && EnRd_ShouldNotDance(play) && func_800B715C(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } this->actionFunc = EnRd_EndPirouetteWhenPlayerIsClose; } if (EnRd_ShouldNotDance(play)) { if (EN_RD_GET_TYPE(&this->actor) == EN_RD_TYPE_GIBDO) { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } else { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } EnRd_SetupIdle(this); } diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 8fc202ddd..4a61e62b9 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -118,7 +118,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 3, 45, 60, 250 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 55, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_LIKE_LIKE, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -400, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE), diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index acd645d63..adcb78115 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -92,7 +92,7 @@ static DamageTable sDamageTable = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 39, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_SHELLBLADE, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c index e3c5b1730..62cb638d9 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -249,7 +249,7 @@ void EnSkb_Init(Actor* thisx, PlayState* play) { default: this->actor.flags &= ~ACTOR_FLAG_100000; - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; func_8099495C(this, play); break; } @@ -353,7 +353,7 @@ void func_80995068(EnSkb* this, PlayState* play) { } else if (Player_GetMask(play) != PLAYER_MASK_CAPTAIN) { this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_4); this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_8); - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.colChkInfo.mass = MASS_HEAVY; func_80995A30(this); } else if (!(this->collider.base.acFlags & AC_HIT)) { @@ -427,7 +427,7 @@ void func_8099533C(EnSkb* this, PlayState* play) { this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); func_80994F7C(this, play); } else if (Actor_IsFacingPlayer(&this->actor, 0x2AAA) && (this->actor.xzDistToPlayer < 200.0f)) { - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.colChkInfo.mass = MASS_HEAVY; func_8099571C(this); } @@ -449,7 +449,7 @@ void func_8099544C(EnSkb* this, PlayState* play) { this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); func_80994F7C(this, play); } else if (Actor_IsFacingPlayer(&this->actor, 0x2AAA) && (this->actor.xzDistToPlayer < 200.0f)) { - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.colChkInfo.mass = MASS_HEAVY; func_8099571C(this); } @@ -487,7 +487,7 @@ void func_8099556C(EnSkb* this, PlayState* play) { func_80994F7C(this, play); } else if (Actor_IsFacingPlayer(&this->actor, 0x2AAA) && (this->actor.xzDistToPlayer < 200.0f) && (this->skelAnime.curFrame > 24.0f) && (this->skelAnime.curFrame < 28.0f)) { - this->actor.hintId = 0x55; + this->actor.hintId = TATL_HINT_ID_STALCHILD; this->actor.colChkInfo.mass = MASS_HEAVY; this->actor.targetArrowOffset = 2000.0f; func_8099571C(this); @@ -571,7 +571,7 @@ void func_80995A8C(EnSkb* this, PlayState* play) { if (Player_GetMask(play) == PLAYER_MASK_CAPTAIN) { this->actor.flags &= ~(ACTOR_FLAG_1 | ACTOR_FLAG_4); this->actor.flags |= (ACTOR_FLAG_1 | ACTOR_FLAG_8); - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.colChkInfo.mass = MASS_HEAVY; Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimationInfo, 12); func_8099504C(this); diff --git a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c index b07a1667e..e2dd8b54b 100644 --- a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c +++ b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c @@ -178,7 +178,7 @@ static Gfx* sSnowballFragmentDLs[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 20, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_EENO, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 3000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index b3c353f1f..7d0dcbf11 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -704,7 +704,7 @@ void func_808A6A78(EnSt* this, PlayState* play) { Actor_SetScale(&this->actor, 0.04f); this->actor.draw = func_808A7478; - this->actor.hintId = 4; + this->actor.hintId = TATL_HINT_ID_SKULLTULA; this->actor.gravity = 0.0f; func_808A63E8(this); this->unk_18C = 0; diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index a69cbe213..fc3aff029 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -1144,11 +1144,11 @@ void EnSw_Init(Actor* thisx, PlayState* play) { Collider_InitAndSetSphere(play, &this->collider, &this->actor, &sSphereInit); if (!ENSW_GET_3(&this->actor)) { - this->actor.hintId = 0x1F; + this->actor.hintId = TATL_HINT_ID_SKULLWALLTULA; CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit); this->collider.info.toucher.damage = 8; } else { - this->actor.hintId = 0x20; + this->actor.hintId = TATL_HINT_ID_GOLD_SKULLTULA; CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable2, &sColChkInfoInit2); this->collider.info.toucher.damage = 16; } diff --git a/src/overlays/actors/ovl_En_Syateki_Crow/z_en_syateki_crow.c b/src/overlays/actors/ovl_En_Syateki_Crow/z_en_syateki_crow.c index a8d76a7a8..ef8973295 100644 --- a/src/overlays/actors/ovl_En_Syateki_Crow/z_en_syateki_crow.c +++ b/src/overlays/actors/ovl_En_Syateki_Crow/z_en_syateki_crow.c @@ -67,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = { static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 88, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_GUAY, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Syateki_Dekunuts/z_en_syateki_dekunuts.c b/src/overlays/actors/ovl_En_Syateki_Dekunuts/z_en_syateki_dekunuts.c index fcb1e8330..51a941b28 100644 --- a/src/overlays/actors/ovl_En_Syateki_Dekunuts/z_en_syateki_dekunuts.c +++ b/src/overlays/actors/ovl_En_Syateki_Dekunuts/z_en_syateki_dekunuts.c @@ -79,7 +79,7 @@ static AnimationInfo sAnimationInfo[] = { }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 77, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_MAD_SCRUB, ICHAIN_CONTINUE), ICHAIN_F32(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2600, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Syateki_Okuta/z_en_syateki_okuta.c b/src/overlays/actors/ovl_En_Syateki_Okuta/z_en_syateki_okuta.c index 9077b38c4..f631439bd 100644 --- a/src/overlays/actors/ovl_En_Syateki_Okuta/z_en_syateki_okuta.c +++ b/src/overlays/actors/ovl_En_Syateki_Okuta/z_en_syateki_okuta.c @@ -72,7 +72,7 @@ static AnimationInfo sAnimationInfo[] = { #include "assets/overlays/ovl_En_Syateki_Okuta/ovl_En_Syateki_Okuta.c" static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 66, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_OCTOROK, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 6500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Syateki_Wf/z_en_syateki_wf.c b/src/overlays/actors/ovl_En_Syateki_Wf/z_en_syateki_wf.c index d15859a74..647b21182 100644 --- a/src/overlays/actors/ovl_En_Syateki_Wf/z_en_syateki_wf.c +++ b/src/overlays/actors/ovl_En_Syateki_Wf/z_en_syateki_wf.c @@ -186,7 +186,7 @@ void EnSyatekiWf_Init(Actor* thisx, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gWolfosNormalSkel, &gWolfosWaitingAnim, this->jointTable, this->morphTable, WOLFOS_NORMAL_LIMB_MAX); Actor_SetScale(&this->actor, 0.01f); - this->actor.hintId = 0x4C; + this->actor.hintId = TATL_HINT_ID_WOLFOS; func_80A201CC(this); } diff --git a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c index f1268e1e0..393caa1d9 100644 --- a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c +++ b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c @@ -229,7 +229,7 @@ void EnTalkGibud_Init(Actor* thisx, PlayState* play) { Actor_ProcessInitChain(&this->actor, sInitChain); this->actor.targetMode = 0; - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; this->actor.textId = 0; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 28.0f); @@ -566,7 +566,7 @@ void EnTalkGibud_Damage(EnTalkGibud* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->drawDmgEffTimer > 0) && (this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FIRE) && (this->type == EN_TALK_GIBUD_TYPE_GIBDO)) { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; this->actor.flags &= ~(ACTOR_FLAG_8 | ACTOR_FLAG_1); this->actor.flags |= (ACTOR_FLAG_4 | ACTOR_FLAG_1); SkelAnime_InitFlex(play, &this->skelAnime, &gRedeadSkel, NULL, this->jointTable, this->morphTable, @@ -926,7 +926,7 @@ void EnTalkGibud_CheckForGibdoMask(EnTalkGibud* this, PlayState* play) { if (Player_GetMask(play) == PLAYER_MASK_GIBDO) { this->actor.flags &= ~(ACTOR_FLAG_4 | ACTOR_FLAG_1); this->actor.flags |= (ACTOR_FLAG_8 | ACTOR_FLAG_1); - this->actor.hintId = 0xFF; + this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; EnTalkGibud_SetupPassiveIdle(this); } @@ -934,9 +934,9 @@ void EnTalkGibud_CheckForGibdoMask(EnTalkGibud* this, PlayState* play) { this->actor.flags &= ~(ACTOR_FLAG_8 | ACTOR_FLAG_1); this->actor.flags |= (ACTOR_FLAG_4 | ACTOR_FLAG_1); if (this->type == EN_TALK_GIBUD_TYPE_REDEAD) { - this->actor.hintId = 0x2A; + this->actor.hintId = TATL_HINT_ID_REDEAD; } else { - this->actor.hintId = 0x2D; + this->actor.hintId = TATL_HINT_ID_GIBDO; } this->actor.textId = 0; EnTalkGibud_SetupWalkToHome(this); diff --git a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c index 03c7d0e1d..dd4890d53 100644 --- a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c +++ b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c @@ -136,7 +136,7 @@ static s16 D_80C13664[] = { ITEM00_ARROWS_10, ITEM00_BOMBS_B, ITEM00_RUPEE_GR static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 35, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_TAKKURI, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index 2b1385965..b912f6f38 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -125,7 +125,7 @@ static Color_RGBA8 D_80896B40 = { 180, 180, 180, 255 }; static Vec3f D_80896B44 = { 0.0f, 0.45f, 0.0f }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 70, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_BLUE_TEKTITE, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32(terminalVelocity, -40, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index 4e7e85147..5ce0f0286 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -151,7 +151,7 @@ TexturePtr D_808CD58C[] = { static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 14, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 1000, ICHAIN_CONTINUE), - ICHAIN_S8(hintId, 57, ICHAIN_STOP), + ICHAIN_S8(hintId, TATL_HINT_ID_BEAMOS, ICHAIN_STOP), }; s32 D_808CD5B8 = false; diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 16cfa6a4b..9dca3642f 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -123,7 +123,7 @@ static DamageTable sDamageTable = { static CollisionCheckInfoInit sColChkInfoInit = { 3, 30, 40, 150 }; static InitChainEntry sInitChain[] = { - ICHAIN_S8(hintId, 48, ICHAIN_CONTINUE), + ICHAIN_S8(hintId, TATL_HINT_ID_WALLMASTER, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 5500, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1500, ICHAIN_STOP), }; diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index 8a5da16c5..811f828a8 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -319,7 +319,7 @@ void EnWf_Init(Actor* thisx, PlayState* play) { if (this->actor.params == 0) { SkelAnime_InitFlex(play, &this->skelAnime, &gWolfosNormalSkel, &gWolfosWaitingAnim, this->jointTable, this->morphTable, WOLFOS_NORMAL_LIMB_MAX); - this->actor.hintId = 0x4C; + this->actor.hintId = TATL_HINT_ID_WOLFOS; CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable2, &sColChkInfoInit); this->collider1.elements[0].info.toucher.damage = 8; this->collider1.elements[1].info.toucher.damage = 8; @@ -327,7 +327,7 @@ void EnWf_Init(Actor* thisx, PlayState* play) { } else { SkelAnime_InitFlex(play, &this->skelAnime, &gWolfosWhiteSkel, &gWolfosWaitingAnim, this->jointTable, this->morphTable, WOLFOS_WHITE_LIMB_MAX); - this->actor.hintId = 0x57; + this->actor.hintId = TATL_HINT_ID_WHITE_WOLFOS; CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable1, &sColChkInfoInit); } diff --git a/src/overlays/actors/ovl_Obj_Kinoko/z_obj_kinoko.c b/src/overlays/actors/ovl_Obj_Kinoko/z_obj_kinoko.c index deb315bc4..24597e4aa 100644 --- a/src/overlays/actors/ovl_Obj_Kinoko/z_obj_kinoko.c +++ b/src/overlays/actors/ovl_Obj_Kinoko/z_obj_kinoko.c @@ -41,11 +41,11 @@ void ObjKinoko_Update(Actor* thisx, PlayState* play) { if (player->currentMask != PLAYER_MASK_SCENTS) { thisx->draw = NULL; - thisx->hintId = 0xFF; + thisx->hintId = TATL_HINT_ID_NONE; thisx->flags &= ~ACTOR_FLAG_1; } else { thisx->draw = ObjKinoko_Draw; - thisx->hintId = 0x64; + thisx->hintId = TATL_HINT_ID_MUSHROOM; thisx->flags |= ACTOR_FLAG_1; if (Actor_HasParent(thisx, play)) { Flags_SetCollectible(play, OBJ_KINOKO_GET_FLAG(thisx));