mirror of https://github.com/zeldaret/mm.git
z_kankyo Decompiled (3 non-matching) (#1451)
* z_Kankyo progress * build OK * progress * more progress * Kankyo WIP * Add docs * func_800FEAF4 * more docs * func_800FEAF4 * improve Init * Small cleanup * kankyo data * data cleanup * Environment_DrawLensFlare * Match Environment_UpdateSkybox * Match Environment_DrawRainImpl * Start on Environment_UpdateLights * Match Environment_DrawSandstorm * gRainDropDL * Some light renamings * Fix merge * cleanup * improve non-equivalents * cleanup * PR Review * match Environment_UpdatePostmanEvents * PR Review * small improvement to Environment_UpdatePostmanEvents from anon * more cleanup * void * bits * fix comment * improve Environment_UpdateLights * Skybox Stars Docs * PR Review * fix merge * macros * Add comments * PR Review * gRandFloat * bug --------- Co-authored-by: Rozelette <Uberpanzermensch@gmail.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
This commit is contained in:
parent
0492c8e89a
commit
83ceaf3717
|
|
@ -42,9 +42,11 @@
|
|||
<Texture Name="gameplay_field_keep_Tex_007010" OutName="tex_007010" Format="rgba16" Width="32" Height="32" Offset="0x7010" />
|
||||
<DList Name="gKusaBushType1DL" Offset="0x78A0" />
|
||||
<DList Name="gKusaBushType2DL" Offset="0x7938" />
|
||||
<Texture Name="gameplay_field_keep_Tex_0079D0" OutName="tex_0079D0" Format="i8" Width="64" Height="32" Offset="0x79D0" />
|
||||
<Texture Name="gameplay_field_keep_Tex_0081D0" OutName="tex_0081D0" Format="ia8" Width="64" Height="32" Offset="0x81D0" />
|
||||
<DList Name="gameplay_field_keep_DL_0089D0" Offset="0x89D0" />
|
||||
|
||||
<Texture Name="gFieldSandstorm1Tex" OutName="sandstorm_1" Format="i8" Width="64" Height="32" Offset="0x79D0" />
|
||||
<Texture Name="gFieldSandstorm2Tex" OutName="sandstorm_2" Format="ia8" Width="64" Height="32" Offset="0x81D0" />
|
||||
<DList Name="gFieldSandstormDL" Offset="0x89D0" />
|
||||
|
||||
<Texture Name="gameplay_field_keep_Tex_008A90" OutName="tex_008A90" Format="rgba16" Width="32" Height="32" Offset="0x8A90" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
|||
|
|
@ -1230,7 +1230,7 @@
|
|||
<Texture Name="gameplay_keep_Tex_053940" OutName="tex_053940" Format="i4" Width="64" Height="64" Offset="0x53940" />
|
||||
<Texture Name="gameplay_keep_Tex_054140" OutName="tex_054140" Format="i4" Width="64" Height="64" Offset="0x54140" />
|
||||
<DList Name="gLensFlareCircleDL" Offset="0x54940" />
|
||||
<DList Name="gameplay_keep_DL_0549A8" Offset="0x549A8" />
|
||||
<DList Name="gLensFlareRingDL" Offset="0x549A8" />
|
||||
<DList Name="gEffSparklesDL" Offset="0x54A90" />
|
||||
<Texture Name="gameplay_keep_Tex_054AF0" OutName="tex_054AF0" Format="i4" Width="16" Height="16" Offset="0x54AF0" />
|
||||
<DList Name="gameplay_keep_DL_054C90" Offset="0x54C90" />
|
||||
|
|
@ -1347,7 +1347,7 @@
|
|||
<DList Name="gameplay_keep_DL_06FF68" Offset="0x6FF68" />
|
||||
<Texture Name="gameplay_keep_Tex_0700B0" OutName="tex_0700B0" Format="rgba16" Width="16" Height="32" Offset="0x700B0" />
|
||||
<Texture Name="gameplay_keep_Tex_0704B0" OutName="tex_0704B0" Format="rgba16" Width="16" Height="16" Offset="0x704B0" />
|
||||
<DList Name="gameplay_keep_DL_0706E0" Offset="0x706E0" />
|
||||
<DList Name="gFallingRainDropDL" Offset="0x706E0" />
|
||||
|
||||
<!-- Popped Deku Bubbles (EffSsSbn) -->
|
||||
|
||||
|
|
|
|||
|
|
@ -537,7 +537,7 @@ void Lib_PlaySfx(u16 sfxId);
|
|||
void Lib_PlaySfx_2(u16 sfxId);
|
||||
void Lib_PlaySfx_AtPos(Vec3f* pos, u16 sfxId);
|
||||
void Lib_Vec3f_TranslateAndRotateY(Vec3f* translation, s16 rotAngle, Vec3f* src, Vec3f* dst);
|
||||
void Color_RGB8_Lerp(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst);
|
||||
void Color_RGB8_Lerp(Color_RGB8* from, Color_RGB8* to, f32 lerp, Color_RGB8* dst);
|
||||
void Lib_Nop801004FC(void);
|
||||
void* Lib_SegmentedToVirtual(void* ptr);
|
||||
void* Lib_SegmentedToVirtualNull(void* ptr);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ extern RegEditor* gRegEditor;
|
|||
|
||||
/* TODO: There are still a few OoT defines here that need confirmation */
|
||||
|
||||
#define R_ENV_DISABLE_DBG REG(9)
|
||||
#define R_TIME_SPEED REG(15)
|
||||
#define R_RUN_SPEED_LIMIT REG(45)
|
||||
|
||||
|
|
@ -148,6 +149,9 @@ extern RegEditor* gRegEditor;
|
|||
#define R_REVERSE_FLOOR_INDEX XREG(94)
|
||||
#define R_MINIMAP_DISABLED XREG(95)
|
||||
|
||||
#define R_ENV_LIGHT1_DIR(i) cREG(3 + (i))
|
||||
#define R_ENV_LIGHT2_DIR(i) cREG(6 + (i))
|
||||
|
||||
#define R_TRANS_FADE_FLASH_ALPHA_STEP iREG(50) // Set to a negative number to start the flash
|
||||
#define R_ROOM_CULL_DEBUG_MODE iREG(86)
|
||||
#define R_ROOM_CULL_NUM_ENTRIES iREG(87)
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ extern u8* sYaz0MaxPtr;
|
|||
extern void* gYaz0DecompressDstEnd;
|
||||
|
||||
// extern UNK_TYPE4 D_8009CD10;
|
||||
extern u32 sRandFloat;
|
||||
extern u32 gRandFloat;
|
||||
// extern UNK_TYPE4 sArenaLockMsg;
|
||||
|
||||
extern DmaEntry dmadata[1568];
|
||||
|
|
|
|||
|
|
@ -131,7 +131,10 @@ typedef union {
|
|||
} MtxF; // size = 0x40
|
||||
|
||||
#define LERPIMP(v0, v1, t) ((v0) + (((v1) - (v0)) * (t)))
|
||||
#define LERPIMP_ALT(v0, v1, t) (((v1) - (v0)) * (t) + (v0))
|
||||
#define S16_LERP(v0, v1, t) ((s16)(((v1) - (v0)) * (t)) + (v0))
|
||||
#define F32_LERP(v0, v1, t) ((1.0f - (t)) * (f32)(v0) + (t) * (f32)(v1))
|
||||
#define F32_LERP_ALT(v0, v1, t) ((f32)(v0) * (1.0f - (t)) + (t) * (f32)(v1))
|
||||
#define F32_LERPIMP(v0, v1, t) ((f32)(v0) + (((f32)(v1) - (f32)(v0)) * (t)))
|
||||
#define F32_LERPIMPINV(v0, v1, t) ((f32)(v0) + (((f32)(v1) - (f32)(v0)) / (t)))
|
||||
#define BINANG_LERPIMP(v0, v1, t) ((v0) + (s16)(BINANG_SUB((v1), (v0)) * (t)))
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@ typedef struct PermanentSceneFlags {
|
|||
/* 0x08 */ u32 switch1;
|
||||
/* 0x0C */ u32 clearedRoom;
|
||||
/* 0x10 */ u32 collectible;
|
||||
/* 0x14 */ u32 unk_14; // varies based on scene. For dungeons, floors visited.
|
||||
/* 0x14 */ u32 unk_14; // varies based on scene. For dungeons, floors visited.
|
||||
/* 0x18 */ u32 rooms;
|
||||
} PermanentSceneFlags; // size = 0x1C
|
||||
|
||||
|
|
@ -1598,9 +1598,8 @@ typedef enum {
|
|||
#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
|
||||
// Checked in Kankyo as one to store the day: gSaveContext.eventInf[7] & 0xE0
|
||||
// EVENTINF_75 to EVENTINF_77
|
||||
|
||||
#define CHECK_EVENTINF(flag) (gSaveContext.eventInf[(flag) >> 4] & (1 << ((flag) & 0xF)))
|
||||
#define SET_EVENTINF(flag) (gSaveContext.eventInf[(flag) >> 4] |= (1 << ((flag) & 0xF)))
|
||||
|
|
@ -1628,6 +1627,13 @@ typedef enum {
|
|||
#define SET_EVENTINF_DOG_RACE_RACE_STANDING(raceStanding) \
|
||||
(gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & EVENTINF_DOG_RACE_STATE_MASK) | (raceStanding << 3))
|
||||
|
||||
#define EVENTINF_GET_7_E0 ((gSaveContext.eventInf[7] & 0xE0) >> 5)
|
||||
|
||||
#define EVENTINF_SET_7_E0(day, temp) \
|
||||
(temp) = gSaveContext.eventInf[7] & (u8)~0xE0; \
|
||||
(temp) |= (u8)((day) << 5); \
|
||||
gSaveContext.eventInf[7] = (temp)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ DUNGEON_INDEX_WOODFALL_TEMPLE,
|
||||
/* 1 */ DUNGEON_INDEX_SNOWHEAD_TEMPLE,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ static u32 sRandInt = 1;
|
|||
|
||||
//! Space to store a value to be re-interpreted as a float.
|
||||
//! This can't be static because it is used in z_kankyo.
|
||||
u32 sRandFloat;
|
||||
u32 gRandFloat;
|
||||
|
||||
//! These values are recommended by the algorithms book *Numerical Recipes in C. The Art of Scientific Computing*, 2nd
|
||||
//! Edition, 1992, ISBN 0-521-43108-5. (p. 284):
|
||||
|
|
@ -37,8 +37,8 @@ void Rand_Seed(u32 seed) {
|
|||
*/
|
||||
f32 Rand_ZeroOne(void) {
|
||||
sRandInt = (sRandInt * RAND_MULTIPLIER) + RAND_INCREMENT;
|
||||
sRandFloat = ((sRandInt >> 9) | 0x3F800000);
|
||||
return *((f32*)&sRandFloat) - 1.0f;
|
||||
gRandFloat = ((sRandInt >> 9) | 0x3F800000);
|
||||
return *((f32*)&gRandFloat) - 1.0f;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -46,8 +46,8 @@ f32 Rand_ZeroOne(void) {
|
|||
*/
|
||||
f32 Rand_Centered(void) {
|
||||
sRandInt = (sRandInt * RAND_MULTIPLIER) + RAND_INCREMENT;
|
||||
sRandFloat = ((sRandInt >> 9) | 0x3F800000);
|
||||
return *((f32*)&sRandFloat) - 1.5f;
|
||||
gRandFloat = ((sRandInt >> 9) | 0x3F800000);
|
||||
return *((f32*)&gRandFloat) - 1.5f;
|
||||
}
|
||||
|
||||
//! All functions below are unused variants of the above four, that use a provided random number variable instead of the
|
||||
|
|
@ -79,8 +79,8 @@ u32 Rand_Next_Variable(u32* rndNum) {
|
|||
f32 Rand_ZeroOne_Variable(u32* rndNum) {
|
||||
u32 next = (*rndNum * RAND_MULTIPLIER) + RAND_INCREMENT;
|
||||
|
||||
sRandFloat = ((*rndNum = next) >> 9) | 0x3F800000;
|
||||
return *((f32*)&sRandFloat) - 1.0f;
|
||||
gRandFloat = ((*rndNum = next) >> 9) | 0x3F800000;
|
||||
return *((f32*)&gRandFloat) - 1.0f;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -91,6 +91,6 @@ f32 Rand_ZeroOne_Variable(u32* rndNum) {
|
|||
f32 Rand_Centered_Variable(u32* rndNum) {
|
||||
u32 next = (*rndNum * RAND_MULTIPLIER) + RAND_INCREMENT;
|
||||
|
||||
sRandFloat = ((*rndNum = next) >> 9) | 0x3F800000;
|
||||
return *((f32*)&sRandFloat) - 1.5f;
|
||||
gRandFloat = ((*rndNum = next) >> 9) | 0x3F800000;
|
||||
return *((f32*)&gRandFloat) - 1.5f;
|
||||
}
|
||||
|
|
|
|||
2675
src/code/z_kankyo.c
2675
src/code/z_kankyo.c
File diff suppressed because it is too large
Load Diff
|
|
@ -663,15 +663,15 @@ void Lib_Vec3f_TranslateAndRotateY(Vec3f* translation, s16 rotAngle, Vec3f* src,
|
|||
dst->z = translation->z + (src->z * cos - src->x * sin);
|
||||
}
|
||||
|
||||
void Color_RGB8_Lerp(Color_RGB8* a, Color_RGB8* b, f32 t, Color_RGB8* dst) {
|
||||
void Color_RGB8_Lerp(Color_RGB8* from, Color_RGB8* to, f32 lerp, Color_RGB8* dst) {
|
||||
f32 aF;
|
||||
|
||||
aF = a->r;
|
||||
dst->r = aF + (b->r - aF) * t;
|
||||
aF = a->g;
|
||||
dst->g = aF + (b->g - aF) * t;
|
||||
aF = a->b;
|
||||
dst->b = aF + (b->b - aF) * t;
|
||||
aF = from->r;
|
||||
dst->r = aF + (to->r - aF) * lerp;
|
||||
aF = from->g;
|
||||
dst->g = aF + (to->g - aF) * lerp;
|
||||
aF = from->b;
|
||||
dst->b = aF + (to->b - aF) * lerp;
|
||||
}
|
||||
|
||||
f32 Math_Vec3f_StepTo(Vec3f* start, Vec3f* target, f32 speed) {
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@ void Play_Destroy(GameState* thisx) {
|
|||
|
||||
BombersNotebook_Destroy(&sBombersNotebook);
|
||||
this->state.gfxCtx->callback = NULL;
|
||||
this->state.gfxCtx->callbackArg = 0;
|
||||
this->state.gfxCtx->callbackArg = NULL;
|
||||
Play_DestroyMotionBlur();
|
||||
|
||||
if (R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_OFF) {
|
||||
|
|
@ -1332,7 +1332,7 @@ void Play_DrawMain(PlayState* this) {
|
|||
}
|
||||
|
||||
if (1) {
|
||||
Environment_FillScreen(gfxCtx, 0, 0, 0, this->bgCoverAlpha, 1);
|
||||
Environment_FillScreen(gfxCtx, 0, 0, 0, this->bgCoverAlpha, FILL_SCREEN_OPA);
|
||||
}
|
||||
|
||||
if (1) {
|
||||
|
|
@ -1353,13 +1353,14 @@ void Play_DrawMain(PlayState* this) {
|
|||
if (1) {
|
||||
if (R_PLAY_FILL_SCREEN_ON) {
|
||||
Environment_FillScreen(gfxCtx, R_PLAY_FILL_SCREEN_R, R_PLAY_FILL_SCREEN_G, R_PLAY_FILL_SCREEN_B,
|
||||
R_PLAY_FILL_SCREEN_ALPHA, 3);
|
||||
R_PLAY_FILL_SCREEN_ALPHA, FILL_SCREEN_OPA | FILL_SCREEN_XLU);
|
||||
}
|
||||
|
||||
switch (this->envCtx.fillScreen) {
|
||||
case 1:
|
||||
Environment_FillScreen(gfxCtx, this->envCtx.screenFillColor[0], this->envCtx.screenFillColor[1],
|
||||
this->envCtx.screenFillColor[2], this->envCtx.screenFillColor[3], 3);
|
||||
this->envCtx.screenFillColor[2], this->envCtx.screenFillColor[3],
|
||||
FILL_SCREEN_OPA | FILL_SCREEN_XLU);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -1374,7 +1375,7 @@ void Play_DrawMain(PlayState* this) {
|
|||
}
|
||||
|
||||
if (this->worldCoverAlpha != 0) {
|
||||
Environment_FillScreen(gfxCtx, 0, 0, 0, this->worldCoverAlpha, 3);
|
||||
Environment_FillScreen(gfxCtx, 0, 0, 0, this->worldCoverAlpha, FILL_SCREEN_OPA | FILL_SCREEN_XLU);
|
||||
}
|
||||
|
||||
if (1) {
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ void EnEncount3_Update(Actor* thisx, PlayState* play2) {
|
|||
Math_ApproachZeroF(&this->unk170, 0.3f, 10.0f);
|
||||
Math_ApproachZeroF(&this->unk160, 0.3f, 5.0f);
|
||||
if (this->unk160 < 1.0f) {
|
||||
play->unk_18880 = 0;
|
||||
play->unk_18880 = false;
|
||||
}
|
||||
} else if (this->unk148 != 0) {
|
||||
Math_ApproachF(&this->unk170, 255.0f, 0.4f, 10.0f);
|
||||
|
|
|
|||
|
|
@ -750,7 +750,8 @@ void EnInvadepohDemo_Ufo_Draw(EnInvadepohDemo* this, PlayState* play) {
|
|||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
||||
if (EnInvadepohDemo_Ufo_ShouldDrawLensFlare(play, &flashPos)) {
|
||||
Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, flashPos, 20.0f, 9.0f, 0, 0);
|
||||
Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, flashPos, 20.0f, 9.0f, 0,
|
||||
false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -553,7 +553,7 @@ void EnJso_HandleIntroCutscene(EnJso* this, PlayState* play) {
|
|||
|
||||
if (parent->actor.update != NULL) {
|
||||
parent->unk148 = 1;
|
||||
play->unk_18880 = 1;
|
||||
play->unk_18880 = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ void EnOkarinaEffect_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_8096B104(EnOkarinaEffect* this, PlayState* play) {
|
||||
this->unk144 = 0x50;
|
||||
this->timer = 80;
|
||||
play->envCtx.precipitation[PRECIP_SOS_MAX] = 60;
|
||||
gLightningStrike.delayTimer = 501.0f;
|
||||
play->envCtx.lightningState = LIGHTNING_LAST;
|
||||
|
|
@ -57,9 +57,9 @@ void func_8096B104(EnOkarinaEffect* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_8096B174(EnOkarinaEffect* this, PlayState* play) {
|
||||
DECR(this->unk144);
|
||||
DECR(this->timer);
|
||||
if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) &&
|
||||
(play->msgCtx.msgLength == 0) && !FrameAdvance_IsEnabled(&play->state) && (this->unk144 == 0)) {
|
||||
(play->msgCtx.msgLength == 0) && !FrameAdvance_IsEnabled(&play->state) && (this->timer == 0)) {
|
||||
EnOkarinaEffect_SetupAction(this, func_8096B1FC);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@ typedef void (*EnOkarinaEffectActionFunc)(struct EnOkarinaEffect*, PlayState*);
|
|||
|
||||
typedef struct EnOkarinaEffect {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ u16 unk144;
|
||||
/* 0x146 */ u16 unk146;
|
||||
/* 0x144 */ u16 timer;
|
||||
/* 0x148 */ EnOkarinaEffectActionFunc actionFunc;
|
||||
} EnOkarinaEffect; // size = 0x14C
|
||||
|
||||
|
|
|
|||
|
|
@ -431,7 +431,7 @@ void func_80A42AB8(EnTest4* this, PlayState* play) {
|
|||
this->unk_146 = gSaveContext.save.time += CLOCK_TIME_MINUTE;
|
||||
}
|
||||
} else if ((new_var * bellDiff) <= 0) {
|
||||
Audio_PlaySfx_BigBells(&this->actor.projectedPos, (this->actor.params >> 5) & 0xF);
|
||||
Audio_PlaySfx_BigBells(&this->actor.projectedPos, TEST4_GET_BIG_BELLS_SFX_VOLUME_INDEX(&this->actor));
|
||||
this->lastBellTime = gSaveContext.save.time;
|
||||
|
||||
if (CURRENT_DAY == 3) {
|
||||
|
|
@ -553,11 +553,11 @@ void func_80A431C8(EnTest4* this, PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80A4323C(EnTest4* this, PlayState* play) {
|
||||
s32 temp_v0 = (this->actor.params >> 0xA) * 0x64;
|
||||
void EnTest4_SetSkyboxNumStars(EnTest4* this, PlayState* play) {
|
||||
s32 numStars = TEST4_GET_SKYBOX_NUM_STARS(&this->actor);
|
||||
|
||||
if (temp_v0 > 0) {
|
||||
gSkyboxNumStars = temp_v0;
|
||||
if (numStars > 0) {
|
||||
gSkyboxNumStars = numStars;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -578,6 +578,6 @@ void EnTest4_Update(Actor* thisx, PlayState* play) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
func_80A4323C(this, play);
|
||||
EnTest4_SetSkyboxNumStars(this, play);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
|
||||
struct EnTest4;
|
||||
|
||||
#define TEST4_GET_SKYBOX_NUM_STARS(thisx) (((thisx)->params >> 10) * 100)
|
||||
#define TEST4_GET_BIG_BELLS_SFX_VOLUME_INDEX(thisx) (((thisx)->params >> 5) & 0xF)
|
||||
|
||||
typedef void (*EnTest4ActionFunc)(struct EnTest4*, PlayState*);
|
||||
|
||||
typedef struct EnTest4 {
|
||||
|
|
|
|||
|
|
@ -988,6 +988,6 @@ void EnTest7_Draw(Actor* thisx, PlayState* play) {
|
|||
|
||||
if (this->unk_144 & 4) {
|
||||
Environment_DrawLensFlare(play, &play->envCtx, &play->view, play->state.gfxCtx, this->actor.world.pos, 70.0f,
|
||||
5.0f, 0, 0);
|
||||
5.0f, 0, false);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ void EnWeatherTag_Init(Actor* thisx, PlayState* play) {
|
|||
EnWeatherTag_SetupAction(this, func_80966EF0);
|
||||
break;
|
||||
|
||||
case WEATHERTAG_TYPE_UNK4:
|
||||
case WEATHERTAG_TYPE_SKYBOX_STARS:
|
||||
EnWeatherTag_SetupAction(this, func_80966FEC);
|
||||
break;
|
||||
|
||||
|
|
@ -352,14 +352,11 @@ void func_80966F74(EnWeatherTag* this, PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
// WEATHERTAG_TYPE_UNK4: no visible effect, what does it doooo??
|
||||
// used in south clock town??? romani ranch, clock tower rooftop woodfall..? stt
|
||||
// all of them have shorter distances though, like 0xA and 0x6, so their locations are important
|
||||
void func_80966FEC(EnWeatherTag* this, PlayState* play) {
|
||||
// weirdly, not the same as the other param lookup used in the rest of the file, which is float
|
||||
s32 distance = WEATHER_TAG_RANGE100INT(&this->actor);
|
||||
if (distance > 0) {
|
||||
gSkyboxNumStars = distance;
|
||||
s32 numStars = WEATHER_TAG_GET_SKYBOX_NUM_STARS(&this->actor);
|
||||
|
||||
if (numStars > 0) {
|
||||
gSkyboxNumStars = numStars;
|
||||
}
|
||||
|
||||
if ((play->sceneId == SCENE_KAIZOKU) && (play->actorCtx.flags & ACTORCTX_FLAG_1)) {
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ typedef struct EnWeatherTag {
|
|||
#define WEATHER_TAG_TYPE(thisx) ((thisx)->params & 0xF)
|
||||
#define WEATHER_TAG_PATHID(thisx) (((thisx)->params >> 4) & 0xF)
|
||||
#define WEATHER_TAG_RANGE100(thisx) ((u8)(((thisx)->params >> 8) & 0xFF) * 100.0f)
|
||||
#define WEATHER_TAG_RANGE100INT(thisx) ((u8)(((thisx)->params >> 8) & 0xFF) * 100)
|
||||
#define WEATHER_TAG_GET_SKYBOX_NUM_STARS(thisx) ((u8)(((thisx)->params >> 8) & 0xFF) * 100)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ WEATHERTAG_TYPE_UNK0,
|
||||
/* 1 */ WEATHERTAG_TYPE_UNK1,
|
||||
/* 2 */ WEATHERTAG_TYPE_WINTERFOG,
|
||||
/* 3 */ WEATHERTAG_TYPE_UNK3,
|
||||
/* 4 */ WEATHERTAG_TYPE_UNK4,
|
||||
/* 4 */ WEATHERTAG_TYPE_SKYBOX_STARS,
|
||||
/* 5 */ WEATHERTAG_TYPE_UNK5,
|
||||
/* 6 */ WEATHERTAG_TYPE_WATERMURK,
|
||||
/* 7 */ WEATHERTAG_TYPE_LOCALDAY2RAIN
|
||||
|
|
|
|||
|
|
@ -511,7 +511,8 @@ void func_808DD3C8(Actor* thisx, PlayState* play2) {
|
|||
f32 temp_f2;
|
||||
f32 tempf;
|
||||
|
||||
if ((play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_UNDERWATER) || ((u8)play->envCtx.stormState == 0)) {
|
||||
if ((play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_UNDERWATER) ||
|
||||
((u8)play->envCtx.stormState == STORM_STATE_OFF)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -687,7 +688,7 @@ void func_808DDE9C(Actor* thisx, PlayState* play2) {
|
|||
}
|
||||
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gameplay_keep_DL_0706E0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFallingRainDropDL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ void ConsoleLogo_Draw(GameState* thisx) {
|
|||
1 << 10, 1 << 10);
|
||||
}
|
||||
|
||||
Environment_FillScreen(this->state.gfxCtx, 0, 0, 0, this->coverAlpha, 2);
|
||||
Environment_FillScreen(this->state.gfxCtx, 0, 0, 0, this->coverAlpha, FILL_SCREEN_XLU);
|
||||
|
||||
sTitleRotation += 300;
|
||||
|
||||
|
|
|
|||
|
|
@ -1720,7 +1720,7 @@
|
|||
0x800F6AB8:("Environment_UpdateNextDayTime",),
|
||||
0x800F6B44:("Environment_UpdateTime",),
|
||||
0x800F6CEC:("func_800F6CEC",),
|
||||
0x800F6EA4:("func_800F6EA4",),
|
||||
0x800F6EA4:("Environment_LerpColor",),
|
||||
0x800F6FCC:("Environment_IsSceneUpsideDown",),
|
||||
0x800F6FF8:("Environment_UpdateLights",),
|
||||
0x800F8554:("Environment_UpdateSun",),
|
||||
|
|
@ -10412,7 +10412,7 @@
|
|||
0x80A42F20:("func_80A42F20",),
|
||||
0x80A430C8:("func_80A430C8",),
|
||||
0x80A431C8:("func_80A431C8",),
|
||||
0x80A4323C:("func_80A4323C",),
|
||||
0x80A4323C:("EnTest4_SetSkyboxNumStars",),
|
||||
0x80A43274:("EnTest4_Update",),
|
||||
0x80A434E0:("EnBat_Init",),
|
||||
0x80A437A0:("EnBat_Destroy",),
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@
|
|||
0x8009CCD0:("sFaultDrawer","FaultDrawer","",0x3c),
|
||||
0x8009CD10:("D_8009CD10","UNK_TYPE4","",0x4),
|
||||
0x8009CD20:("gSystemArena","Arena","",0x24),
|
||||
0x8009CD50:("sRandFloat","f32","",0x4),
|
||||
0x8009CD50:("gRandFloat","f32","",0x4),
|
||||
0x8009CD60:("sArenaLockMsg","OSMesg","[1]",0x4),
|
||||
0x8009CD70:("tmp_task","OSTask","",0x40),
|
||||
0x8009CDB0:("__MotorDataBuf","OSPifRam","[4]",0x100),
|
||||
|
|
|
|||
|
|
@ -1229,12 +1229,12 @@ asm/non_matchings/code/z_kankyo/Environment_LerpWeightAccelDecel.s,Environment_L
|
|||
asm/non_matchings/code/z_kankyo/Environment_UpdateSkybox.s,Environment_UpdateSkybox,0x800F5CD0,0x2D9
|
||||
asm/non_matchings/code/z_kankyo/Environment_EnableUnderwaterLights.s,Environment_EnableUnderwaterLights,0x800F6834,0x46
|
||||
asm/non_matchings/code/z_kankyo/Environment_DisableUnderwaterLights.s,Environment_DisableUnderwaterLights,0x800F694C,0x2E
|
||||
asm/non_matchings/code/z_kankyo/func_800F6A04.s,func_800F6A04,0x800F6A04,0xF
|
||||
asm/non_matchings/code/z_kankyo/Environment_WipeRumbleRequests.s,Environment_WipeRumbleRequests,0x800F6A04,0xF
|
||||
asm/non_matchings/code/z_kankyo/Environment_UpdateSkyboxRotY.s,Environment_UpdateSkyboxRotY,0x800F6A40,0x1E
|
||||
asm/non_matchings/code/z_kankyo/Environment_UpdateNextDayTime.s,Environment_UpdateNextDayTime,0x800F6AB8,0x23
|
||||
asm/non_matchings/code/z_kankyo/Environment_UpdateTime.s,Environment_UpdateTime,0x800F6B44,0x6A
|
||||
asm/non_matchings/code/z_kankyo/func_800F6CEC.s,func_800F6CEC,0x800F6CEC,0x6E
|
||||
asm/non_matchings/code/z_kankyo/func_800F6EA4.s,func_800F6EA4,0x800F6EA4,0x4A
|
||||
asm/non_matchings/code/z_kankyo/Environment_LerpColor.s,Environment_LerpColor,0x800F6EA4,0x4A
|
||||
asm/non_matchings/code/z_kankyo/Environment_IsSceneUpsideDown.s,Environment_IsSceneUpsideDown,0x800F6FCC,0xB
|
||||
asm/non_matchings/code/z_kankyo/Environment_UpdateLights.s,Environment_UpdateLights,0x800F6FF8,0x557
|
||||
asm/non_matchings/code/z_kankyo/Environment_UpdateSun.s,Environment_UpdateSun,0x800F8554,0xDC
|
||||
|
|
|
|||
|
Loading…
Reference in New Issue