mirror of https://github.com/zeldaret/mm.git
Document Song of Time Cutscenes (Test6) (#1269)
* import docs * cleanup * more eventinf docs * more cleanup * more docs * more docs * more docs * sZoraBarrierEnvLighting * comments * PR Suggestion * fix bss
This commit is contained in:
parent
587d12e3cb
commit
0a55ca0b40
|
|
@ -860,10 +860,10 @@ void Environment_FillScreen(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue,
|
|||
void Environment_DrawSandstorm(PlayState* play, u8 sandstormState);
|
||||
s32 func_800FD2B4(PlayState* play, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
|
||||
void func_800FD538(Color_RGB8* param_1, Color_RGB8* param_2, f32 param_3, Vec3s* param_4);
|
||||
void func_800FD59C(PlayState* play, Color_RGB8* pzParm2, f32 fParm3);
|
||||
void func_800FD5E0(PlayState* play, Color_RGB8* pzParm2, f32 fParm3);
|
||||
void func_800FD654(PlayState* play, Color_RGB8* pzParm2, f32 fParm3);
|
||||
void func_800FD698(PlayState* play, s16 arg1, s16 arg2, f32 arg3);
|
||||
void Environment_LerpAmbientColor(PlayState* play, Color_RGB8* to, f32 lerp);
|
||||
void Environment_LerpDiffuseColor(PlayState* play, Color_RGB8* to, f32 lerp);
|
||||
void Environment_LerpFogColor(PlayState* play, Color_RGB8* to, f32 lerp);
|
||||
void Environment_LerpFog(PlayState* play, s16 fogNearTarget, s16 zFarTarget, f32 lerp);
|
||||
// u32 get_days_elapsed(void);
|
||||
// void reset_days_elapsed(void);
|
||||
// u32 get_current_day(void);
|
||||
|
|
|
|||
|
|
@ -430,7 +430,7 @@ typedef enum {
|
|||
/* 0x1F6 */ CS_CMD_ACTOR_CUE_502,
|
||||
/* 0x1F7 */ CS_CMD_ACTOR_CUE_503,
|
||||
/* 0x1F8 */ CS_CMD_ACTOR_CUE_504,
|
||||
/* 0x1F9 */ CS_CMD_ACTOR_CUE_505,
|
||||
/* 0x1F9 */ CS_CMD_ACTOR_CUE_SOTCS, // Song of Time Cutscenes (Double SoT, Three-Day Reset SoT)
|
||||
/* 0x1FA */ CS_CMD_ACTOR_CUE_506,
|
||||
/* 0x1FB */ CS_CMD_ACTOR_CUE_507,
|
||||
/* 0x1FC */ CS_CMD_ACTOR_CUE_508,
|
||||
|
|
|
|||
|
|
@ -32,6 +32,12 @@ typedef enum {
|
|||
/* 24 */ OCARINA_SONG_SCARECROW_LONG = OCARINA_SONG_MAX // anything larger than 24 is considered the long scarecrow's song
|
||||
} OcarinaSongId;
|
||||
|
||||
typedef enum OcarinaMode {
|
||||
/* 0x18 */ OCARINA_MODE_APPLY_INV_SOT_FAST = 24,
|
||||
/* 0x19 */ OCARINA_MODE_APPLY_INV_SOT_SLOW,
|
||||
/* 0x1A */ OCARINA_MODE_APPLY_DOUBLE_SOT
|
||||
} OcarinaMode;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ OCARINA_BTN_A,
|
||||
/* 1 */ OCARINA_BTN_C_DOWN,
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ typedef enum PlayerCsMode {
|
|||
/* 0x3F */ PLAYER_CSMODE_63,
|
||||
/* 0x40 */ PLAYER_CSMODE_64,
|
||||
/* 0x41 */ PLAYER_CSMODE_65,
|
||||
/* 0x42 */ PLAYER_CSMODE_66,
|
||||
/* 0x42 */ PLAYER_CSMODE_66, // Look side-to-side with chin down
|
||||
/* 0x43 */ PLAYER_CSMODE_67,
|
||||
/* 0x44 */ PLAYER_CSMODE_68,
|
||||
/* 0x45 */ PLAYER_CSMODE_69,
|
||||
|
|
@ -664,15 +664,15 @@ typedef enum PlayerCsMode {
|
|||
/* 0x47 */ PLAYER_CSMODE_71,
|
||||
/* 0x48 */ PLAYER_CSMODE_72,
|
||||
/* 0x49 */ PLAYER_CSMODE_73,
|
||||
/* 0x4A */ PLAYER_CSMODE_74,
|
||||
/* 0x4A */ PLAYER_CSMODE_74, // Give a big nod of approval
|
||||
/* 0x4B */ PLAYER_CSMODE_75,
|
||||
/* 0x4C */ PLAYER_CSMODE_76,
|
||||
/* 0x4D */ PLAYER_CSMODE_77,
|
||||
/* 0x4E */ PLAYER_CSMODE_78,
|
||||
/* 0x4F */ PLAYER_CSMODE_79,
|
||||
/* 0x50 */ PLAYER_CSMODE_80,
|
||||
/* 0x51 */ PLAYER_CSMODE_81,
|
||||
/* 0x52 */ PLAYER_CSMODE_82,
|
||||
/* 0x51 */ PLAYER_CSMODE_81, // Look side-to-side with chin up
|
||||
/* 0x52 */ PLAYER_CSMODE_82, // Close eyes and sway body in circles
|
||||
/* 0x53 */ PLAYER_CSMODE_83,
|
||||
/* 0x54 */ PLAYER_CSMODE_84, // Sucked by the moon
|
||||
/* 0x55 */ PLAYER_CSMODE_85,
|
||||
|
|
|
|||
|
|
@ -1466,15 +1466,8 @@ typedef enum {
|
|||
* gSaveContext.eventInf
|
||||
*/
|
||||
|
||||
// gSaveContext.eventInf[0] is used to dog race information
|
||||
// #define EVENTINF_00 0x00
|
||||
// #define EVENTINF_01 0x01
|
||||
// #define EVENTINF_02 0x02
|
||||
// #define EVENTINF_03 0x03
|
||||
// #define EVENTINF_04 0x04
|
||||
// #define EVENTINF_05 0x05
|
||||
// #define EVENTINF_06 0x06
|
||||
// #define EVENTINF_07 0x07
|
||||
// gSaveContext.eventInf[0] is used for dog race information (8 entries)
|
||||
// EVENTINF_00 to EVENTINF_07
|
||||
|
||||
#define EVENTINF_10 0x10
|
||||
#define EVENTINF_11 0x11
|
||||
|
|
@ -1491,7 +1484,8 @@ typedef enum {
|
|||
#define EVENTINF_24 0x24
|
||||
#define EVENTINF_25 0x25
|
||||
#define EVENTINF_26 0x26
|
||||
#define EVENTINF_27 0x27
|
||||
// "Dawn of ... day". Must be triggered with respawnFlag -4 or -99
|
||||
#define EVENTINF_TRIGGER_DAYTELOP 0x27
|
||||
#define EVENTINF_30 0x30
|
||||
|
||||
// EVENTINF_31 is used to track if Player is within range of EnGakufu (2D Song Buttons Appearing on Wall)
|
||||
|
|
@ -1535,11 +1529,14 @@ typedef enum {
|
|||
#define EVENTINF_65 0x65
|
||||
#define EVENTINF_66 0x66
|
||||
#define EVENTINF_67 0x67
|
||||
#define EVENTINF_70 0x70
|
||||
#define EVENTINF_71 0x71
|
||||
#define EVENTINF_72 0x72
|
||||
#define EVENTINF_73 0x73
|
||||
#define EVENTINF_74 0x74
|
||||
|
||||
// Tracks which ammo is lost during the three day reset
|
||||
#define EVENTINF_THREEDAYRESET_LOST_RUPEES 0x70
|
||||
#define EVENTINF_THREEDAYRESET_LOST_BOMB_AMMO 0x71
|
||||
#define EVENTINF_THREEDAYRESET_LOST_NUT_AMMO 0x72
|
||||
#define EVENTINF_THREEDAYRESET_LOST_STICK_AMMO 0x73
|
||||
#define EVENTINF_THREEDAYRESET_LOST_ARROW_AMMO 0x74
|
||||
|
||||
#define EVENTINF_75 0x75
|
||||
#define EVENTINF_76 0x76
|
||||
#define EVENTINF_77 0x77
|
||||
|
|
|
|||
|
|
@ -90,13 +90,13 @@
|
|||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD538.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD59C.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpAmbientColor.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD5E0.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpDiffuseColor.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD654.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpFogColor.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800FD698.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_LerpFog.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/get_days_elapsed.s")
|
||||
|
||||
|
|
|
|||
|
|
@ -2090,8 +2090,8 @@ void Play_Init(GameState* thisx) {
|
|||
s32 scene;
|
||||
|
||||
if ((gSaveContext.respawnFlag == -4) || (gSaveContext.respawnFlag == -0x63)) {
|
||||
if (CHECK_EVENTINF(EVENTINF_27)) {
|
||||
CLEAR_EVENTINF(EVENTINF_27);
|
||||
if (CHECK_EVENTINF(EVENTINF_TRIGGER_DAYTELOP)) {
|
||||
CLEAR_EVENTINF(EVENTINF_TRIGGER_DAYTELOP);
|
||||
STOP_GAMESTATE(&this->state);
|
||||
SET_NEXT_GAMESTATE(&this->state, DayTelop_Init, sizeof(DayTelopState));
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -489,38 +489,38 @@ void Sram_SaveEndOfCycle(PlayState* play) {
|
|||
gSaveContext.eventInf[i] = 0;
|
||||
}
|
||||
|
||||
CLEAR_EVENTINF(EVENTINF_70);
|
||||
CLEAR_EVENTINF(EVENTINF_71);
|
||||
CLEAR_EVENTINF(EVENTINF_72);
|
||||
CLEAR_EVENTINF(EVENTINF_73);
|
||||
CLEAR_EVENTINF(EVENTINF_74);
|
||||
CLEAR_EVENTINF(EVENTINF_THREEDAYRESET_LOST_RUPEES);
|
||||
CLEAR_EVENTINF(EVENTINF_THREEDAYRESET_LOST_BOMB_AMMO);
|
||||
CLEAR_EVENTINF(EVENTINF_THREEDAYRESET_LOST_NUT_AMMO);
|
||||
CLEAR_EVENTINF(EVENTINF_THREEDAYRESET_LOST_STICK_AMMO);
|
||||
CLEAR_EVENTINF(EVENTINF_THREEDAYRESET_LOST_ARROW_AMMO);
|
||||
|
||||
if (gSaveContext.save.saveInfo.playerData.rupees != 0) {
|
||||
SET_EVENTINF(EVENTINF_70);
|
||||
SET_EVENTINF(EVENTINF_THREEDAYRESET_LOST_RUPEES);
|
||||
}
|
||||
|
||||
if (INV_CONTENT(ITEM_BOMB) == ITEM_BOMB) {
|
||||
item = INV_CONTENT(ITEM_BOMB);
|
||||
if (AMMO(item) != 0) {
|
||||
SET_EVENTINF(EVENTINF_71);
|
||||
SET_EVENTINF(EVENTINF_THREEDAYRESET_LOST_BOMB_AMMO);
|
||||
}
|
||||
}
|
||||
if (INV_CONTENT(ITEM_NUT) == ITEM_NUT) {
|
||||
item = INV_CONTENT(ITEM_NUT);
|
||||
if (AMMO(item) != 0) {
|
||||
SET_EVENTINF(EVENTINF_72);
|
||||
SET_EVENTINF(EVENTINF_THREEDAYRESET_LOST_NUT_AMMO);
|
||||
}
|
||||
}
|
||||
if (INV_CONTENT(ITEM_STICK) == ITEM_STICK) {
|
||||
item = INV_CONTENT(ITEM_STICK);
|
||||
if (AMMO(item) != 0) {
|
||||
SET_EVENTINF(EVENTINF_73);
|
||||
SET_EVENTINF(EVENTINF_THREEDAYRESET_LOST_STICK_AMMO);
|
||||
}
|
||||
}
|
||||
if (INV_CONTENT(ITEM_BOW) == ITEM_BOW) {
|
||||
item = INV_CONTENT(ITEM_BOW);
|
||||
if (AMMO(item) != 0) {
|
||||
SET_EVENTINF(EVENTINF_74);
|
||||
SET_EVENTINF(EVENTINF_THREEDAYRESET_LOST_ARROW_AMMO);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -943,7 +943,7 @@ void EnKakasi_DancingNightAway(EnKakasi* this, PlayState* play) {
|
|||
if ((gSaveContext.save.time > CLOCK_TIME(18, 0)) || (gSaveContext.save.time < CLOCK_TIME(6, 0))) {
|
||||
gSaveContext.save.time = CLOCK_TIME(6, 0);
|
||||
gSaveContext.respawnFlag = -4;
|
||||
SET_EVENTINF(EVENTINF_27);
|
||||
SET_EVENTINF(EVENTINF_TRIGGER_DAYTELOP);
|
||||
} else {
|
||||
gSaveContext.save.time = CLOCK_TIME(18, 0);
|
||||
gSaveContext.respawnFlag = -8;
|
||||
|
|
|
|||
|
|
@ -296,16 +296,16 @@ void EnTest4_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
sCsIdList[0] = csId;
|
||||
if (csId >= 0) {
|
||||
ActorCutscene* actorCutscene = CutsceneManager_GetCutsceneEntry(sCsIdList[0]);
|
||||
ActorCutscene* csEntry = CutsceneManager_GetCutsceneEntry(sCsIdList[0]);
|
||||
|
||||
SET_EVENTINF(EVENTINF_52);
|
||||
sCsIdList[1] = actorCutscene->additionalCsId;
|
||||
sCsIdList[1] = csEntry->additionalCsId;
|
||||
} else {
|
||||
CLEAR_EVENTINF(EVENTINF_52);
|
||||
sCsIdList[1] = sCsIdList[0];
|
||||
}
|
||||
|
||||
if (sIsLoaded || (CHECK_EVENTINF(EVENTINF_27))) {
|
||||
if (sIsLoaded || CHECK_EVENTINF(EVENTINF_TRIGGER_DAYTELOP)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
sIsLoaded = true;
|
||||
|
|
@ -413,7 +413,7 @@ void func_80A42AB8(EnTest4* this, PlayState* play) {
|
|||
}
|
||||
|
||||
gSaveContext.respawnFlag = -4;
|
||||
SET_EVENTINF(EVENTINF_27);
|
||||
SET_EVENTINF(EVENTINF_TRIGGER_DAYTELOP);
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -7,46 +7,71 @@ struct EnTest6;
|
|||
|
||||
typedef void (*EnTest6ActionFunc)(struct EnTest6*, PlayState*);
|
||||
|
||||
#define ENTEST6_GET(thisx) ((thisx)->params)
|
||||
#define SOTCS_GET_OCARINA_MODE(thisx) ((thisx)->params)
|
||||
|
||||
typedef enum {
|
||||
/* 24 */ ENTEST6_24 = 24,
|
||||
/* 25 */ ENTEST6_25,
|
||||
/* 26 */ ENTEST6_26
|
||||
} EnTest6Param;
|
||||
// CueIds are a mix of cues from external cutscenes and internal states
|
||||
|
||||
typedef enum SoTCsCueId {
|
||||
/* 0x00 */ SOTCS_CUEID_NONE,
|
||||
/* 0x01 */ SOTCS_CUEID_DOUBLE_WAIT,
|
||||
/* 0x02 */ SOTCS_CUEID_DOUBLE_INIT,
|
||||
/* 0x03 */ SOTCS_CUEID_DOUBLE_CLOCKS_INWARD,
|
||||
/* 0x04 */ SOTCS_CUEID_DOUBLE_CLOCKS_SPIN,
|
||||
/* 0x05 */ SOTCS_CUEID_DOUBLE_CLOCKS_OUTWARD,
|
||||
/* 0x06 */ SOTCS_CUEID_RESET_INIT,
|
||||
/* 0x07 */ SOTCS_CUEID_RESET_CLOCKS_SLOW_DOWN,
|
||||
/* 0x08 */ SOTCS_CUEID_RESET_CLOCKS_SPEED_UP,
|
||||
/* 0x09 */ SOTCS_CUEID_DOUBLE_END,
|
||||
/* 0x5A */ SOTCS_CUEID_INV_INIT = 90,
|
||||
/* 0x5B */ SOTCS_CUEID_INV_SETUP_CLOCKS,
|
||||
/* 0x5D */ SOTCS_CUEID_INV_UNUSED = 93,
|
||||
/* 0x5F */ SOTCS_CUEID_INV_CLOCKS = 95,
|
||||
/* 0x63 */ SOTCS_CUEID_INV_END = 99
|
||||
} SoTCsCueId;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ LightNode* node;
|
||||
/* 0x04 */ LightInfo info;
|
||||
} EnTest6Light; // size = 0x14
|
||||
/* 0x0 */ LightNode* node;
|
||||
/* 0x4 */ LightInfo info;
|
||||
} SoTCsLight; // size = 0x14
|
||||
|
||||
#define SOTCS_INV_NUM_CLOCKS 6
|
||||
#define SOTCS_DOUBLE_NUM_CLOCKS 51
|
||||
#define SOTCS_RESET_NUM_CLOCKS 128
|
||||
#define SOTCS_NUM_PARTICLES 64
|
||||
|
||||
typedef struct EnTest6 {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ EnTest6ActionFunc actionFunc;
|
||||
/* 0x148 */ Gfx* unk_148;
|
||||
/* 0x14C */ f32 unk_14C;
|
||||
/* 0x150 */ f32 unk_150;
|
||||
/* 0x154 */ f32 unk_154;
|
||||
/* 0x158 */ f32 unk_158;
|
||||
/* 0x15C */ f32 unk_15C;
|
||||
/* 0x160 */ f32 unk_160;
|
||||
/* 0x164 */ EnTest6Light lights[2];
|
||||
/* 0x18C */ CutsceneCamera unk_18C;
|
||||
/* 0x20C */ Vec3f unk_20C[6];
|
||||
/* 0x254 */ Vec3f (*unk_254)[64];
|
||||
/* 0x148 */ Gfx* gfx;
|
||||
/* 0x14C */ f32 speed; // Used for clock distance and lights
|
||||
/* 0x150 */ f32 clockDist; // Radius from player
|
||||
/* 0x154 */ f32 clockSpeed;
|
||||
/* 0x158 */ union {
|
||||
f32 clockRadialSpeed; // For double SoT cutscene
|
||||
f32 clockAccel; // For reset SoT cutscene
|
||||
};
|
||||
/* 0x15C */ f32 invSoTEnvLerp;
|
||||
/* 0x160 */ f32 doubleSoTEnvLerp;
|
||||
/* 0x164 */ SoTCsLight lights[2];
|
||||
/* 0x18C */ CutsceneCamera csCamInfo;
|
||||
/* 0x20C */ Vec3f invSoTClockPos[SOTCS_INV_NUM_CLOCKS];
|
||||
/* 0x254 */ Vec3f (*invSoTParticles)[SOTCS_NUM_PARTICLES];
|
||||
/* 0x258 */ Vec3f subCamAt;
|
||||
/* 0x264 */ Vec3f subCamEye;
|
||||
/* 0x270 */ f32 subCamFov;
|
||||
/* 0x274 */ s16 cueId;
|
||||
/* 0x276 */ s16 unk_276;
|
||||
/* 0x278 */ s16 unk_278;
|
||||
/* 0x27A */ s16 unk_27A;
|
||||
/* 0x27C */ s16 unk_27C;
|
||||
/* 0x27E */ s16 unk_27E;
|
||||
/* 0x280 */ s16 unk_280;
|
||||
/* 0x282 */ s16 unk_282;
|
||||
/* 0x276 */ s16 drawType;
|
||||
/* 0x278 */ union {
|
||||
s16 invSoTClockYaw; // For inverted SoT cutscene.
|
||||
s16 counter; // For double/reset SoT cutscenes. Increments every frame, unused.
|
||||
};
|
||||
/* 0x27A */ s16 timer;
|
||||
/* 0x27C */ s16 clockAngle;
|
||||
/* 0x27E */ s16 clockRingRotZ; // For double/reset SoT cutscenes
|
||||
/* 0x280 */ s16 clockColorGray; // For double SoT cutscene
|
||||
/* 0x282 */ s16 alpha;
|
||||
/* 0x284 */ s16 subCamId;
|
||||
/* 0x286 */ s16 unk_286;
|
||||
/* 0x286 */ s16 screenFillAlpha; // As a ratio, 20 is an alpha of 255
|
||||
} EnTest6; // size = 0x288
|
||||
|
||||
#endif // Z_EN_TEST6_H
|
||||
|
|
|
|||
|
|
@ -443,13 +443,13 @@ void func_80AF19A8(EnTest7* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80AF1A2C(EnTest7* this, PlayState* play) {
|
||||
Color_RGB8 sp34 = { 64, 0, 0 };
|
||||
Color_RGB8 sp30 = { 220, 220, 255 };
|
||||
f32 sp2C = this->unk_1E54 / 10.0f;
|
||||
Color_RGB8 fogColor = { 64, 0, 0 };
|
||||
Color_RGB8 ambientColor = { 220, 220, 255 };
|
||||
f32 envLerp = this->unk_1E54 / 10.0f;
|
||||
|
||||
func_800FD59C(play, &sp30, sp2C);
|
||||
func_800FD654(play, &sp34, sp2C);
|
||||
func_800FD698(play, 2000, 4000, sp2C);
|
||||
Environment_LerpAmbientColor(play, &ambientColor, envLerp);
|
||||
Environment_LerpFogColor(play, &fogColor, envLerp);
|
||||
Environment_LerpFog(play, 2000, 4000, envLerp);
|
||||
|
||||
if (this->unk_1E54 >= 10) {
|
||||
Camera* subCam =
|
||||
|
|
@ -610,9 +610,9 @@ void func_80AF2030(EnTest7* this, PlayState* play) {
|
|||
|
||||
void func_80AF21E8(EnTest7* this, PlayState* play) {
|
||||
s32 sp2C = this->unk_1E54 - 100;
|
||||
f32 sp1C;
|
||||
Color_RGB8 sp24 = { 64, 0, 0 };
|
||||
Color_RGB8 sp20 = { 220, 220, 255 };
|
||||
f32 envLerp;
|
||||
Color_RGB8 fogColor = { 64, 0, 0 };
|
||||
Color_RGB8 ambientColor = { 220, 220, 255 };
|
||||
|
||||
if (R_PLAY_FILL_SCREEN_ON) {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_PL_WARP_WING_VANISH);
|
||||
|
|
@ -623,10 +623,10 @@ void func_80AF21E8(EnTest7* this, PlayState* play) {
|
|||
R_PLAY_FILL_SCREEN_ALPHA = 0;
|
||||
}
|
||||
|
||||
sp1C = 1.0f - (sp2C / 10.0f);
|
||||
func_800FD59C(play, &sp20, sp1C);
|
||||
func_800FD654(play, &sp24, sp1C);
|
||||
func_800FD698(play, 2000, 4000, sp1C);
|
||||
envLerp = 1.0f - (sp2C / 10.0f);
|
||||
Environment_LerpAmbientColor(play, &ambientColor, envLerp);
|
||||
Environment_LerpFogColor(play, &fogColor, envLerp);
|
||||
Environment_LerpFog(play, 2000, 4000, envLerp);
|
||||
|
||||
if (this->unk_1E54 >= 110) {
|
||||
func_80AF082C(this, func_80AF2318);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
* Description: Beaver Race Ring
|
||||
*/
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_en_twig.h"
|
||||
#include "objects/object_twig/object_twig.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -208,8 +208,8 @@ void EnWarpTag_RespawnPlayer(EnWarptag* this, PlayState* play) {
|
|||
|
||||
// why are we getting player home rotation from the room data? doesnt player have home.rot.y?
|
||||
// especially because we are converting from deg to binang, but isnt home.rot.y already in binang??
|
||||
Play_SetRespawnData(&play->state, 0, entrance, play->setupEntranceList[playerSpawnIndex].room,
|
||||
playerParams, &newRespawnPos,
|
||||
Play_SetRespawnData(&play->state, RESPAWN_MODE_DOWN, entrance,
|
||||
play->setupEntranceList[playerSpawnIndex].room, playerParams, &newRespawnPos,
|
||||
DEG_TO_BINANG_ALT((playerActorEntry->rot.y >> 7) & 0x1FF));
|
||||
|
||||
func_80169EFC(&play->state);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
* Description: Sakon's Hideout Objects (Sun's Mask, doors, etc)
|
||||
*/
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_obj_nozoki.h"
|
||||
#include "objects/object_secom_obj/object_secom_obj.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -466,12 +466,12 @@ typedef struct {
|
|||
} ExplosiveInfo; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Color_RGB8 unk_0;
|
||||
/* 0x3 */ Color_RGB8 unk_3;
|
||||
/* 0x6 */ Color_RGB8 unk_6;
|
||||
/* 0xA */ s16 unk_A;
|
||||
/* 0xC */ s16 unk_C;
|
||||
} struct_8082F02C_arg1; // size = 0xE
|
||||
/* 0x0 */ Color_RGB8 ambientColor;
|
||||
/* 0x3 */ Color_RGB8 diffuseColor;
|
||||
/* 0x6 */ Color_RGB8 fogColor;
|
||||
/* 0xA */ s16 fogNear;
|
||||
/* 0xC */ s16 zFar;
|
||||
} PlayerEnvLighting; // size = 0xE
|
||||
|
||||
typedef struct GetItemEntry {
|
||||
/* 0x0 */ u8 itemId;
|
||||
|
|
@ -2714,11 +2714,11 @@ PlayerAnimationHeader* func_8082EFE4(Player* this) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8082F02C(PlayState* play, struct_8082F02C_arg1* arg1, f32 arg2) {
|
||||
func_800FD59C(play, &arg1->unk_0, arg2);
|
||||
func_800FD5E0(play, &arg1->unk_3, arg2);
|
||||
func_800FD654(play, &arg1->unk_6, arg2);
|
||||
func_800FD698(play, arg1->unk_A, arg1->unk_C, arg2);
|
||||
void Player_LerpEnvLighting(PlayState* play, PlayerEnvLighting* lighting, f32 lerp) {
|
||||
Environment_LerpAmbientColor(play, &lighting->ambientColor, lerp);
|
||||
Environment_LerpDiffuseColor(play, &lighting->diffuseColor, lerp);
|
||||
Environment_LerpFogColor(play, &lighting->fogColor, lerp);
|
||||
Environment_LerpFog(play, lighting->fogNear, lighting->zFar, lerp);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2786,8 +2786,12 @@ void func_8082F164(Player* this, u16 button) {
|
|||
}
|
||||
}
|
||||
|
||||
struct_8082F02C_arg1 D_8085C98C = {
|
||||
{ 0, 0, 0 }, { 255, 255, 155 }, { 20, 20, 50 }, 940, 5000,
|
||||
PlayerEnvLighting sZoraBarrierEnvLighting = {
|
||||
{ 0, 0, 0 }, // ambientColor
|
||||
{ 255, 255, 155 }, // diffuseColor
|
||||
{ 20, 20, 50 }, // fogColor
|
||||
940, // fogNear
|
||||
5000, // zFar
|
||||
};
|
||||
|
||||
// Run Zora Barrier
|
||||
|
|
@ -2822,7 +2826,7 @@ void func_8082F1AC(PlayState* play, Player* this) {
|
|||
|
||||
sp46 = play->gameplayFrames * 7000;
|
||||
sp44 = play->gameplayFrames * 14000;
|
||||
func_8082F02C(play, &D_8085C98C, this->unk_B62 / 255.0f);
|
||||
Player_LerpEnvLighting(play, &sZoraBarrierEnvLighting, this->unk_B62 / 255.0f);
|
||||
|
||||
sp34 = Math_SinS(sp44) * 40.0f;
|
||||
sp40 = Math_CosS(sp44) * 40.0f;
|
||||
|
|
|
|||
|
|
@ -1751,10 +1751,10 @@
|
|||
0x800FC64C:("Environment_DrawSandstorm",),
|
||||
0x800FD2B4:("func_800FD2B4",),
|
||||
0x800FD538:("func_800FD538",),
|
||||
0x800FD59C:("func_800FD59C",),
|
||||
0x800FD5E0:("func_800FD5E0",),
|
||||
0x800FD654:("func_800FD654",),
|
||||
0x800FD698:("func_800FD698",),
|
||||
0x800FD59C:("Environment_LerpAmbientColor",),
|
||||
0x800FD5E0:("Environment_LerpDiffuseColor",),
|
||||
0x800FD654:("Environment_LerpFogColor",),
|
||||
0x800FD698:("Environment_LerpFog",),
|
||||
0x800FD720:("get_days_elapsed",),
|
||||
0x800FD730:("reset_days_elapsed",),
|
||||
0x800FD740:("get_current_day",),
|
||||
|
|
@ -4308,7 +4308,7 @@
|
|||
0x8082EF54:("func_8082EF54",),
|
||||
0x8082EF9C:("func_8082EF9C",),
|
||||
0x8082EFE4:("func_8082EFE4",),
|
||||
0x8082F02C:("func_8082F02C",),
|
||||
0x8082F02C:("Player_LerpEnvLighting",),
|
||||
0x8082F09C:("Player_ResetCylinder",),
|
||||
0x8082F0E4:("Player_SetCylinderForAttack",),
|
||||
0x8082F164:("func_8082F164",),
|
||||
|
|
@ -11338,28 +11338,28 @@
|
|||
0x80A90468:("EnTest5_Destroy",),
|
||||
0x80A90478:("EnTest5_HandleBottleAction",),
|
||||
0x80A905A4:("EnTest5_Update",),
|
||||
0x80A90730:("func_80A90730",),
|
||||
0x80A90730:("EnTest6_SetupCutscene",),
|
||||
0x80A90C08:("EnTest6_EnableMotionBlur",),
|
||||
0x80A90C34:("EnTest6_DisableMotionBlur",),
|
||||
0x80A90C54:("func_80A90C54",),
|
||||
0x80A90D20:("func_80A90D20",),
|
||||
0x80A90D34:("func_80A90D34",),
|
||||
0x80A90FC0:("func_80A90FC0",),
|
||||
0x80A90C54:("EnTest6_EnableWhiteFillScreen",),
|
||||
0x80A90D20:("EnTest6_DisableWhiteFillScreen",),
|
||||
0x80A90D34:("EnTest6_DrawAmmoDropDefault",),
|
||||
0x80A90FC0:("EnTest6_DrawAmmoDropRupee",),
|
||||
0x80A91324:("EnTest6_SetupAction",),
|
||||
0x80A91330:("EnTest6_Init",),
|
||||
0x80A9149C:("EnTest6_Destroy",),
|
||||
0x80A9156C:("func_80A9156C",),
|
||||
0x80A91690:("func_80A91690",),
|
||||
0x80A916F0:("func_80A916F0",),
|
||||
0x80A91760:("func_80A91760",),
|
||||
0x80A920C8:("func_80A920C8",),
|
||||
0x80A92118:("func_80A92118",),
|
||||
0x80A92188:("func_80A92188",),
|
||||
0x80A9156C:("EnTest6_StartCutscene",),
|
||||
0x80A91690:("EnTest6_SetupInvertedSoTCutscene",),
|
||||
0x80A916F0:("EnTest6_StopInvertedSoTCutscene",),
|
||||
0x80A91760:("EnTest6_InvertedSoTCutscene",),
|
||||
0x80A920C8:("EnTest6_SetupDoubleSoTCutscene",),
|
||||
0x80A92118:("EnTest6_StopDoubleSoTCutscene",),
|
||||
0x80A92188:("EnTest6_DoubleSoTCutscene",),
|
||||
0x80A9292C:("EnTest6_Update",),
|
||||
0x80A92950:("func_80A92950",),
|
||||
0x80A93298:("func_80A93298",),
|
||||
0x80A9369C:("func_80A9369C",),
|
||||
0x80A939E8:("func_80A939E8",),
|
||||
0x80A92950:("EnTest6_SharedSoTCutscene",),
|
||||
0x80A93298:("EnTest6_DrawThreeDayResetSoTCutscene",),
|
||||
0x80A9369C:("EnTest6_DrawDoubleSoTCutscene",),
|
||||
0x80A939E8:("EnTest6_DrawInvertedSoTCutscene",),
|
||||
0x80A93DE8:("EnTest6_Draw",),
|
||||
0x80A94A30:("func_80A94A30",),
|
||||
0x80A94A64:("func_80A94A64",),
|
||||
|
|
|
|||
|
|
@ -4949,7 +4949,7 @@
|
|||
0x8085C928:("D_8085C928","UNK_TYPE1","",0x14),
|
||||
0x8085C93C:("D_8085C93C","UNK_TYPE1","",0x1),
|
||||
0x8085C96C:("D_8085C96C","UNK_TYPE1","",0x1),
|
||||
0x8085C98C:("D_8085C98C","UNK_TYPE1","",0x1),
|
||||
0x8085C98C:("sZoraBarrierEnvLighting","UNK_TYPE1","",0x1),
|
||||
0x8085C99C:("sItemActionParams","UNK_TYPE1","",0x1),
|
||||
0x8085C9F0:("D_8085C9F0","UNK_PTR","",0x4),
|
||||
0x8085CB3C:("D_8085CB3C","UNK_PTR","",0x4),
|
||||
|
|
@ -12278,19 +12278,19 @@
|
|||
0x80A8FF6C:("D_80A8FF6C","f32","",0x4),
|
||||
0x80A906E0:("En_Test5_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80A93E60:("En_Test6_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80A93E80:("D_80A93E80","UNK_TYPE1","",0x1),
|
||||
0x80A9402C:("D_80A9402C","UNK_TYPE1","",0x1),
|
||||
0x80A94048:("D_80A94048","UNK_TYPE1","",0x1),
|
||||
0x80A9404C:("D_80A9404C","UNK_TYPE1","",0x1),
|
||||
0x80A94050:("D_80A94050","UNK_TYPE1","",0x1),
|
||||
0x80A94054:("D_80A94054","UNK_TYPE2","",0x2),
|
||||
0x80A94058:("D_80A94058","UNK_TYPE2","",0x2),
|
||||
0x80A93E80:("sDoubleSoTCsCamData","UNK_TYPE1","",0x1),
|
||||
0x80A9402C:("sSoTCsAmmoDropTextures","UNK_TYPE1","",0x1),
|
||||
0x80A94048:("sInvSoTCsFogColor","UNK_TYPE1","",0x1),
|
||||
0x80A9404C:("sInvSoTCsAmbientColor","UNK_TYPE1","",0x1),
|
||||
0x80A94050:("sInvSoTCsDiffuseColor","UNK_TYPE1","",0x1),
|
||||
0x80A94054:("sInvSoTCsFogNear","UNK_TYPE2","",0x2),
|
||||
0x80A94058:("sInvSoTCsZFar","UNK_TYPE2","",0x2),
|
||||
0x80A9405C:("D_80A9405C","UNK_TYPE1","",0x1),
|
||||
0x80A94068:("D_80A94068","UNK_TYPE1","",0x1),
|
||||
0x80A9406C:("D_80A9406C","UNK_TYPE1","",0x1),
|
||||
0x80A94070:("D_80A94070","UNK_TYPE1","",0x1),
|
||||
0x80A94074:("D_80A94074","UNK_TYPE2","",0x2),
|
||||
0x80A94078:("D_80A94078","UNK_TYPE2","",0x2),
|
||||
0x80A94068:("sDoubleSoTCsFogColor","UNK_TYPE1","",0x1),
|
||||
0x80A9406C:("sDoubleSoTCsAmbientColor","UNK_TYPE1","",0x1),
|
||||
0x80A94070:("sDoubleSoTCsDiffuseColor","UNK_TYPE1","",0x1),
|
||||
0x80A94074:("sDoubleSoTCsFogNear","UNK_TYPE2","",0x2),
|
||||
0x80A94078:("sDoubleSoTCsZFar","UNK_TYPE2","",0x2),
|
||||
0x80A94080:("D_80A94080","f32","",0x4),
|
||||
0x80A94084:("D_80A94084","f32","",0x4),
|
||||
0x80A94088:("D_80A94088","f32","",0x4),
|
||||
|
|
@ -12321,7 +12321,7 @@
|
|||
0x80A94338:("jtbl_80A94338","UNK_PTR","",0x4),
|
||||
0x80A94360:("D_80A94360","f32","",0x4),
|
||||
0x80A94364:("D_80A94364","f32","",0x4),
|
||||
0x80A94910:("D_80A94910","UNK_TYPE4","",0x4),
|
||||
0x80A94910:("sSoTCsAmmoDrops","UNK_TYPE4","",0x4),
|
||||
0x80A99010:("D_80A99010","UNK_TYPE4","",0x4),
|
||||
0x80A990F0:("En_Az_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80A99110:("D_80A99110","UNK_TYPE1","",0x1),
|
||||
|
|
|
|||
|
|
@ -1265,10 +1265,10 @@ asm/non_matchings/code/z_kankyo/Environment_FillScreen.s,Environment_FillScreen,
|
|||
asm/non_matchings/code/z_kankyo/Environment_DrawSandstorm.s,Environment_DrawSandstorm,0x800FC64C,0x31A
|
||||
asm/non_matchings/code/z_kankyo/func_800FD2B4.s,func_800FD2B4,0x800FD2B4,0xA1
|
||||
asm/non_matchings/code/z_kankyo/func_800FD538.s,func_800FD538,0x800FD538,0x19
|
||||
asm/non_matchings/code/z_kankyo/func_800FD59C.s,func_800FD59C,0x800FD59C,0x11
|
||||
asm/non_matchings/code/z_kankyo/func_800FD5E0.s,func_800FD5E0,0x800FD5E0,0x1D
|
||||
asm/non_matchings/code/z_kankyo/func_800FD654.s,func_800FD654,0x800FD654,0x11
|
||||
asm/non_matchings/code/z_kankyo/func_800FD698.s,func_800FD698,0x800FD698,0x22
|
||||
asm/non_matchings/code/z_kankyo/Environment_LerpAmbientColor.s,Environment_LerpAmbientColor,0x800FD59C,0x11
|
||||
asm/non_matchings/code/z_kankyo/Environment_LerpDiffuseColor.s,Environment_LerpDiffuseColor,0x800FD5E0,0x1D
|
||||
asm/non_matchings/code/z_kankyo/Environment_LerpFogColor.s,Environment_LerpFogColor,0x800FD654,0x11
|
||||
asm/non_matchings/code/z_kankyo/Environment_LerpFog.s,Environment_LerpFog,0x800FD698,0x22
|
||||
asm/non_matchings/code/z_kankyo/get_days_elapsed.s,get_days_elapsed,0x800FD720,0x4
|
||||
asm/non_matchings/code/z_kankyo/reset_days_elapsed.s,reset_days_elapsed,0x800FD730,0x4
|
||||
asm/non_matchings/code/z_kankyo/get_current_day.s,get_current_day,0x800FD740,0x4
|
||||
|
|
|
|||
|
Loading…
Reference in New Issue