cleanup, fake match Play_Init

This commit is contained in:
engineer124 2022-08-16 15:22:21 -04:00
parent 6ab0b075cd
commit 6693c168a8
7 changed files with 39 additions and 28 deletions

View File

@ -2194,8 +2194,8 @@ void Scene_DrawConfigMatAnimManualStep(PlayState* play);
void Scene_DrawConfigGreatBayTemple(PlayState* play);
EntranceTableEntry* Entrance_GetTableEntry(u16 entrance);
s32 Entrance_GetSceneNum(u16 entrance);
s32 Entrance_GetSceneNumAbsolute(u16 entrance);
s32 Entrance_GetSpawnNum(u16 entrance);
u32 Entrance_GetSceneNumAbsolute(u16 entrance);
u32 Entrance_GetSpawnNum(u16 entrance);
s32 Entrance_GetTransitionFlags(u16 entrance);
s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output);
void SkelAnime_DrawLimbLod(PlayState* play, s32 limbIndex, void** skeleton, Vec3s* jointTable, OverrideLimbDrawOpa overrideLimbDraw, PostLimbDrawOpa postLimbDraw, Actor* actor, s32 lod);

View File

@ -123,6 +123,8 @@ extern GraphicsContext* __gfxCtx;
#define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x))
#define CLAMP_MIN(x, min) ((x) < (min) ? (min) : (x))
#define RGBA8(r, g, b, a) (((r & 0xFF) << 24) | ((g & 0xFF) << 16) | ((b & 0xFF) << 8) | ((a & 0xFF) << 0))
#define ROUND(x) (s32)(((x) >= 0.0) ? ((x) + 0.5) : ((x) - 0.5))
#define SWAP(type, a, b) \

View File

@ -1479,7 +1479,7 @@ extern const TransitionInit TransitionCircle_InitVars;
extern s32 gDbgCamEnabled;
// extern UNK_TYPE1 D_801D0D54;
// extern UNK_TYPE2 D_801D0D58;
// extern UNK_TYPE2 D_801D0D5C;
// extern UNK_TYPE2 sIsCameraUnderwater;
extern Input* D_801D0D60;
// extern UNK_TYPE2 D_801D0D64;
// extern UNK_TYPE1 D_801D0D7A;

View File

@ -63,7 +63,7 @@ void func_80165E1C(PreRender* prerender) {
s32 func_80165E7C(PlayState* this, s32 arg1) {
s32 phi_v1 = arg1;
if (arg1 == 0x14) {
if (arg1 == TRANS_TYPE_20) {
if (!gSaveContext.save.isNight) {
phi_v1 = TRANS_TYPE_03;
} else {
@ -159,10 +159,10 @@ void func_80166060(PlayState* this) {
}
Gfx* func_801660B8(PlayState* this, Gfx* gfx) {
s32 phi_v1 = this->lightCtx.unkC * 0.078125f;
s32 phi_v1 = this->lightCtx.unkC * (5.0f / 64.0f);
return Gfx_SetFogWithSync(gfx, this->lightCtx.unk7, this->lightCtx.unk8, this->lightCtx.unk9, 0,
this->lightCtx.unkA, phi_v1 <= 1000 ? 1000 : phi_v1);
this->lightCtx.unkA, (phi_v1 <= 1000) ? 1000 : phi_v1);
}
void Play_Destroy(GameState* thisx) {
@ -181,14 +181,17 @@ void Play_Destroy(GameState* thisx) {
gfxCtx->updateViMode = 1;
D_801F6DFC = 0;
}
func_8016FC98(&D_801F6D50);
this->state.gfxCtx->callback = NULL;
this->state.gfxCtx->callbackParam = 0;
func_80165630();
if (SREG(94) != 0) {
PreRender_ApplyFiltersSlowlyDestroy(&this->pauseBgPreRender);
SREG(94) = 0;
}
SREG(89) = 0;
PreRender_Destroy(&this->pauseBgPreRender);
this->unk_18E58 = NULL;
@ -199,24 +202,29 @@ void Play_Destroy(GameState* thisx) {
Effect_DestroyAll(this);
EffectSS_Clear(this);
CollisionCheck_DestroyContext(this, &this->colChkCtx);
if (D_801F6D10 == 3) {
func_8016424C(&D_801F6C30);
D_801F6D10 = 0;
}
if ((this->transitionMode == TRANS_MODE_03) || (D_801D0D54 != 0)) {
this->unk_18BF0.unk_234(&this->unk_18BF0.unk_08);
func_80166060(this);
this->transitionMode = TRANS_MODE_OFF;
}
ShrinkWindow_Destroy();
TransitionFade_Destroy(&this->unk_18E48);
VisMono_Destroy(&D_801F6D18);
func_80140EA0(D_801F6D4C);
D_801F6D4C = NULL;
if (gSaveContext.save.weekEventReg[0x5C] & 0x80) {
Actor_CleanupContext(&this->actorCtx, this);
}
gSaveContext.save.weekEventReg[0x5C] &= (u8)~0x80;
func_80121F94(this);
KaleidoScopeCall_Destroy(this);
KaleidoManager_Destroy();
@ -247,23 +255,23 @@ f32 func_801668B4(PlayState* this, Vec3f* arg1, s32* arg2) {
void func_80166968(PlayState* this, Camera* camera) {
static s16 D_801D0D58 = -1;
static s16 D_801D0D5C = 0;
static s16 sIsCameraUnderwater = false;
s32 pad;
s32 sp28;
Player* player = GET_PLAYER(this);
D_801D0D5C = camera->stateFlags & CAM_STATE_UNDERWATER;
sIsCameraUnderwater = camera->stateFlags & CAM_STATE_UNDERWATER;
if (func_801668B4(this, &camera->eye, &sp28) != BGCHECK_Y_MIN) {
s16 temp;
if (D_801D0D5C == 0) {
if (!sIsCameraUnderwater) {
Camera_SetFlags(camera, CAM_STATE_UNDERWATER);
D_801D0D58 = -1;
Distortion_SetType(0x10);
Distortion_SetCountdown(0x50);
}
func_801A3EC0(0x20);
func_800F6834(this, sp28);
if ((D_801D0D58 == -1) || (Quake_GetCountdown(D_801D0D58) == 0xA)) {
s16 quake = Quake_Add(camera, 5);
@ -282,8 +290,8 @@ void func_80166968(PlayState* this, Camera* camera) {
Distortion_ClearType(8);
}
} else {
if (D_801D0D5C != 0) {
Camera_ClearFlags(camera, 0x100);
if (sIsCameraUnderwater) {
Camera_ClearFlags(camera, CAM_STATE_UNDERWATER);
}
Distortion_ClearType(4);
Distortion_ClearType(0x10);
@ -840,13 +848,13 @@ void func_8016A268(GameState* thisx, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg
MREG(68) = arg5;
}
#ifdef NON_MATCHING
// #ifdef NON_MATCHING
// a1/a2 reg swap around Entrance_GetSpawnNum
void Play_Init(GameState* thisx) {
PlayState* this = (PlayState*)thisx;
GraphicsContext* gfxCtx = this->state.gfxCtx;
s32 pad;
s32 pad2;
s32 temp;
s32 sp94;
Player* player;
s32 spawn;
@ -876,7 +884,7 @@ void Play_Init(GameState* thisx) {
gSaveContext.unk_3CA7 = 0;
}
if (gSaveContext.save.entrance == -1) {
if ((s32)gSaveContext.save.entrance == -1) {
gSaveContext.save.entrance = 0;
this->state.running = false;
{
@ -944,11 +952,11 @@ void Play_Init(GameState* thisx) {
}
Camera_Init(&this->mainCamera, &this->view, &this->colCtx, this);
Camera_ChangeStatus(&this->mainCamera, 7);
Camera_ChangeStatus(&this->mainCamera, CAM_STATUS_ACTIVE);
for (i = 0; i < ARRAY_COUNT(this->subCameras); i++) {
Camera_Init(&this->subCameras[i], &this->view, &this->colCtx, this);
Camera_ChangeStatus(&this->subCameras[i], 0x100);
Camera_ChangeStatus(&this->subCameras[i], CAM_STATUS_INACTIVE);
}
this->cameraPtrs[CAM_ID_MAIN] = &this->mainCamera;
@ -1001,10 +1009,12 @@ void Play_Init(GameState* thisx) {
sp87 = gSaveContext.sceneSetupIndex;
//! FAKE: temp. Also introduces a warning.
Play_SceneInit(
this,
Entrance_GetSceneNumAbsolute(((void)0, gSaveContext.save.entrance) + ((void)0, gSaveContext.sceneSetupIndex)),
Entrance_GetSpawnNum(((void)0, gSaveContext.save.entrance) + ((void)0, gSaveContext.sceneSetupIndex)));
Entrance_GetSceneNumAbsolute(((void)0, gSaveContext.save.entrance) +
((void)0, (temp = gSaveContext.sceneSetupIndex))),
Entrance_GetSpawnNum(((void)0, gSaveContext.save.entrance) + ((void)0, (temp = gSaveContext.sceneSetupIndex))));
KaleidoScopeCall_Init(this);
func_80121FC4(this);
@ -1056,7 +1066,7 @@ void Play_Init(GameState* thisx) {
(Entrance_GetTransitionFlags(((void)0, gSaveContext.save.entrance) + sp87) >> 7) & 0x7F;
} else {
this->transitionType = gSaveContext.nextTransitionType;
gSaveContext.nextTransitionType = 0xFF;
gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT;
}
} else {
this->transitionType = TRANS_TYPE_02;
@ -1064,7 +1074,7 @@ void Play_Init(GameState* thisx) {
TransitionFade_Init(&this->unk_18E48);
TransitionFade_SetType(&this->unk_18E48, 3);
TransitionFade_SetColor(&this->unk_18E48, 0xA0A0A0FF);
TransitionFade_SetColor(&this->unk_18E48, RGBA8(160, 160, 160, 255));
TransitionFade_Start(&this->unk_18E48);
VisMono_Init(&D_801F6D18);
@ -1114,9 +1124,9 @@ void Play_Init(GameState* thisx) {
D_801F6DFC = 0;
func_8016FC78(&D_801F6D50);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_Init.s")
#endif
// #else
// #pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_Init.s")
// #endif
// play_hireso need to confirm still
u16 D_801D0D78[] = { 0, 0, 0, 0 };

View File

@ -597,5 +597,5 @@ u16 Entrance_Create(s32 scene, s32 spawn, s32 layer) {
* Creates an layer 0 entranace from the current entrance and the given spawn.
*/
u16 Entrance_CreateFromSpawn(s32 spawn) {
return Entrance_Create(gSaveContext.save.entrance >> 9, spawn, 0);
return Entrance_Create((u32)gSaveContext.save.entrance >> 9, spawn, 0);
}

View File

@ -4,7 +4,6 @@
* Description: Breakable Pot With Grass
*/
#include "prevent_bss_reordering.h"
#include "z_obj_flowerpot.h"
#include "objects/object_flowerpot/object_flowerpot.h"

View File

@ -2128,7 +2128,7 @@
0x801D0D50:("gDbgCamEnabled","UNK_TYPE4","",0x4),
0x801D0D54:("D_801D0D54","UNK_TYPE1","",0x1),
0x801D0D58:("D_801D0D58","UNK_TYPE2","",0x2),
0x801D0D5C:("D_801D0D5C","UNK_TYPE2","",0x2),
0x801D0D5C:("sIsCameraUnderwater","UNK_TYPE2","",0x2),
0x801D0D60:("D_801D0D60","Input*","",0x4),
0x801D0D64:("D_801D0D64","s16","[10]",0x14),
0x801D0D78:("D_801D0D78","u16","[4]",0x4),