fix some merge, still bss issues

This commit is contained in:
engineer124
2022-09-14 17:13:53 -04:00
87 changed files with 318 additions and 198 deletions
+3
View File
@@ -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
+1 -1
View File
@@ -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 Actor_DisableLens(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);
+3
View File
@@ -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])
+5 -5
View File
@@ -70,7 +70,7 @@
#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_GIANT XREG(41)
#define R_MAGIC_CONSUME_TIMER_GIANTS_MASK XREG(41)
#define R_FINAL_HOURS_TIMER_Y XREG(80)
#define R_FINAL_HOURS_TIMER_X XREG(81)
#define R_MINIMAP_DISABLED XREG(95)
@@ -94,9 +94,9 @@
#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
+1 -1
View File
@@ -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;
+110 -2
View File
@@ -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 lensActive;
/* 0x004 */ s8 unk4;
/* 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;
@@ -1185,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
+18 -18
View File
@@ -26,29 +26,29 @@ typedef enum RespawnMode {
#define SAVE_BUFFER_SIZE 0x4000
typedef enum {
/* 00 */ MAGIC_STATE_IDLE, // Regular gameplay
/* 01 */ MAGIC_STATE_CONSUME_SETUP, // Sets the speed in which magic border flashes
/* 02 */ MAGIC_STATE_CONSUME, // Consume magic until target is reached or no more magic is available
/* 03 */ MAGIC_STATE_METER_FLASH_1, // Flashes border
/* 04 */ MAGIC_STATE_METER_FLASH_2, // Flashes border and draws yellow magic to preview target consumption
/* 05 */ MAGIC_STATE_RESET, // Reset colors and return to idle
/* 06 */ MAGIC_STATE_METER_FLASH_3, // Flashes border with no additional behaviour
/* 07 */ MAGIC_STATE_CONSUME_LENS, // Magic slowly consumed by lens
/* 08 */ MAGIC_STATE_STEP_CAPACITY, // Step `magicCapacity` to full capacity
/* 09 */ MAGIC_STATE_FILL, // Add magic until magicFillTarget is reached
/* 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 spikes or zora shocks
/* 12 */ MAGIC_STATE_CONSUME_GIANTS_MASK // Magic slowly consumed by giants mask
/* 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
/* 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 consumption
/* 4 */ MAGIC_CONSUME_WAIT_PREVIEW, // Sets consume target but waits to consume. Draws yellow magic to target consumption
/* 5 */ MAGIC_CONSUME_GORON_ZORA, // Zora shock and Goron Spike Roll slow consumption
/* 6 */ MAGIC_CONSUME_GIANTS_MASK, // Giants Mask Slow consumption
/* 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;
@@ -337,7 +337,7 @@ typedef struct SaveContext {
/* 0x3F26 */ u16 prevHudVisibility; // used to store and recover hud visibility for pause menu and text boxes "last_time_type"
/* 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 magicUnusedFlag; // Set to 0 in func_80812D94, otherwise unused "keep_magic_flag"
/* 0x3F2C */ s16 magicUnusedFlag; // 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"
+1 -1
View File
@@ -8,7 +8,7 @@ void TitleSetup_GameStateResetContext(void) {
XREG(12) = 14;
XREG(13) = 0;
XREG(31) = 0;
R_MAGIC_CONSUME_TIMER_GIANT = 80;
R_MAGIC_CONSUME_TIMER_GIANTS_MASK = 80;
XREG(43) = 0xFC54;
XREG(44) = 215;
+18 -20
View File
@@ -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;
@@ -2212,7 +2212,7 @@ s32 func_800B90AC(PlayState* play, Actor* actor, CollisionPoly* polygon, s32 bgI
return false;
}
void Actor_DisableLens(PlayState* play) {
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 {
@@ -2904,17 +2903,16 @@ void Actor_DrawAll(PlayState* play, ActorContext* actorCtx) {
POLY_XLU_DISP = &ref2[1];
if (play->actorCtx.lensActive) {
Math_StepToC(&play->actorCtx.unk4, 100, 20);
Math_StepToC(&play->actorCtx.lensMaskSize, LENS_MASK_ACTIVE_SIZE, 20);
if (GET_PLAYER(play)->stateFlags2 & 0x8000000) {
Actor_DisableLens(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;
+1 -1
View File
@@ -500,7 +500,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
}
}
if (play->gameOverCtx.state != 0) {
if (play->gameOverCtx.state != GAMEOVER_INACTIVE) {
return;
}
+2 -2
View File
@@ -3327,7 +3327,7 @@ s32 Magic_Consume(PlayState* play, s16 magicToConsume, s16 type) {
// Wearing Giants Mask
if (gSaveContext.magicState == MAGIC_STATE_IDLE) {
if (gSaveContext.save.playerData.magic != 0) {
interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANT;
interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANTS_MASK;
gSaveContext.magicState = MAGIC_STATE_CONSUME_GIANTS_MASK;
return true;
} else {
@@ -3588,7 +3588,7 @@ void Magic_Update(PlayState* play) {
if (gSaveContext.save.playerData.magic <= 0) {
gSaveContext.save.playerData.magic = 0;
}
interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANT;
interfaceCtx->magicConsumptionTimer = R_MAGIC_CONSUME_TIMER_GIANTS_MASK;
}
}
}
+2 -2
View File
@@ -571,13 +571,13 @@ void Boss02_Init(Actor* thisx, PlayState* play) {
} else {
this->unk_1D20 = 1;
}
R_MAGIC_CONSUME_TIMER_GIANT = 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) {
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;
+2 -2
View File
@@ -1763,7 +1763,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);
@@ -1956,7 +1956,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;
+1 -1
View File
@@ -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;
@@ -4,6 +4,7 @@
* Description: Woodfall scene objects (temple, water, walls, etc)
*/
#include "prevent_bss_reordering.h"
#include "z_dm_char01.h"
#include "objects/object_mtoride/object_mtoride.h"
#include "overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.h"
+1 -1
View File
@@ -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),
};
+10 -10
View File
@@ -378,7 +378,7 @@ void EnAz_Destroy(Actor* thisx, PlayState* play2) {
EnAz* this = THIS;
if (gSaveContext.save.entrance != ENTRANCE(WATERFALL_RAPIDS, 1)) {
gSaveContext.unk_3DD0[4] = 5;
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
}
Collider_DestroyCylinder(play2, &this->collider);
}
@@ -1408,15 +1408,15 @@ void func_80A97D5C(EnAz* this, PlayState* play) {
Player* player = GET_PLAYER(play);
player->stateFlags1 |= PLAYER_STATE1_20;
func_80112AFC(play);
Interface_InitMinigame(play);
gSaveContext.minigameScore = (this->unk_374 & 2) ? 25 : 20;
play->interfaceCtx.unk_280 = 1;
play->interfaceCtx.minigameState = 1;
if ((this->unk_2FA == 1) || (this->unk_2FA == 3)) {
func_8010E9F0(4, 120);
Interface_StartTimer(TIMER_ID_MINIGAME_2, 120);
} else if (gSaveContext.save.weekEventReg[25] & 1) {
func_8010E9F0(4, 100);
Interface_StartTimer(TIMER_ID_MINIGAME_2, 100);
} else {
func_8010E9F0(4, 110);
Interface_StartTimer(TIMER_ID_MINIGAME_2, 110);
}
this->actionFunc = func_80A97E48;
}
@@ -1424,7 +1424,7 @@ void func_80A97D5C(EnAz* this, PlayState* play) {
void func_80A97E48(EnAz* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (play->interfaceCtx.unk_280 >= 8) {
if (play->interfaceCtx.minigameState >= 8) {
player->stateFlags1 &= ~PLAYER_STATE1_20;
func_80A97EAC(this, play);
}
@@ -1472,7 +1472,7 @@ void func_80A97F9C(EnAz* this, PlayState* play) {
} else {
gSaveContext.save.weekEventReg[24] |= 1;
}
gSaveContext.unk_3DD0[4] = 5;
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
this->unk_374 &= ~0x10;
play->nextEntrance = Entrance_CreateFromSpawn(2);
gSaveContext.nextCutsceneIndex = 0;
@@ -1482,8 +1482,8 @@ void func_80A97F9C(EnAz* this, PlayState* play) {
this->actor.speedXZ = 0.0f;
func_80A979DC(this, play);
} else {
if (gSaveContext.unk_3DE0[4] == 0) {
gSaveContext.unk_3DD0[4] = 5;
if (gSaveContext.timerCurTimes[TIMER_ID_MINIGAME_2] == SECONDS_TO_TIMER(0)) {
gSaveContext.timerStates[TIMER_ID_MINIGAME_2] = TIMER_STATE_STOP;
this->unk_374 |= 0x4000;
func_80A97A28(this, play);
}
@@ -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;
+1 -1
View File
@@ -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),
+1 -1
View File
@@ -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),
};

Some files were not shown because too many files have changed in this diff Show More