mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
fix some merge, still bss issues
This commit is contained in:
@@ -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
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -500,7 +500,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
}
|
||||
|
||||
if (play->gameOverCtx.state != 0) {
|
||||
if (play->gameOverCtx.state != GAMEOVER_INACTIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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),
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user