1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 06:24:30 +00:00

More Camera Flags (#1453)

* Generic Camera Flags

* New flag names

* Add flags to functions

* Finish flag docs

* More docs

* More cleanup

* More clarity

* Better shrinkwindow flag docs

* Improve name

* CAM_INTERFACE_FLAGS

* Better approach to edge cases

* Change ordering for consistency

* Oops

* Add masks to macro

* PR/Discord discussions

* cleanup comment

* Oops

* PR Suggestions

* More PR Feedback

* More PR Suggestions

* More Camera Flags

* PR Suggestions

* More flag style change

* Small cleanup

* More flag docs

* Another flag

* Fix flags

* sync names with other PRs

* more fixes

* fix comments

* update with hud visibility mode docs

* missed one

* fix comments

* Roman PR Suggestions

* interfaceField

* small fix

* letterbox cleanup

* cleanup

* fix macro arg

* fix func declaration

* many more docs

* better docs?

* missed some

* oops, revert

* add flags to name

* cleanup

* flag

* double signal

* simplify cam func name

* more suggestions

* PR Suggestion
This commit is contained in:
engineer124 2023-11-19 12:17:32 +11:00 committed by GitHub
parent d1df4e4c7e
commit 81a3c3da32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 531 additions and 461 deletions

View file

@ -241,7 +241,7 @@ void func_8086C29C(BgBdanObjects* this, PlayState* play) {
BgBdanObjects_SetContactRu1(this, 4);
this->timer = 10;
this->actionFunc = func_8086C55C;
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
}
}
@ -354,12 +354,12 @@ void func_8086C874(BgBdanObjects* this, PlayState* play) {
if (this->switchFlag == 0) {
if (DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
this->cameraSetting = play->cameraPtrs[CAM_ID_MAIN]->setting;
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_NORMAL2);
Camera_UnsetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_2);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_NORMAL2);
Camera_UnsetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_CHECK_BG);
this->switchFlag = 10;
}
} else {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_NORMAL2);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_NORMAL2);
if (!DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
if (this->switchFlag != 0) {
this->switchFlag--;
@ -367,8 +367,8 @@ void func_8086C874(BgBdanObjects* this, PlayState* play) {
}
if (this->switchFlag == 0) {
if (1) {}
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], this->cameraSetting);
Camera_SetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_2);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], this->cameraSetting);
Camera_SetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_CHECK_BG);
}
}
this->dyna.actor.world.pos.y =

View file

@ -501,7 +501,7 @@ void BgDyYoseizo_SayFarewell_NoReward(BgDyYoseizo* this, PlayState* play) {
Message_CloseTextbox(play);
this->mouthState = 0;
this->actionFunc = BgDyYoseizo_SetupSpinShrink;
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
}
BgDyYoseizo_Bob(this, play);

View file

@ -129,10 +129,10 @@ void BgHidanFslift_Update(Actor* thisx, PlayState* play) {
if (this->unk_16A == 0) {
this->unk_16A = 3;
}
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
} else if (!DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
if (this->unk_16A != 0) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
this->unk_16A = 0;
}

View file

@ -264,10 +264,10 @@ void func_8088B79C(BgHidanRock* this, PlayState* play) {
if (this->unk_169 == 0) {
this->unk_169 = 3;
}
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
} else if (!DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
if (this->unk_169 != 0) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
this->unk_169 = 0;
}
@ -317,10 +317,10 @@ void func_8088B990(BgHidanRock* this, PlayState* play) {
if (this->unk_169 == 0) {
this->unk_169 = 3;
}
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
} else if (!DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
if (this->unk_169 != 0) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
this->unk_169 = 0;
}

View file

@ -112,10 +112,10 @@ void BgHidanSyoku_Update(Actor* thisx, PlayState* play) {
if (this->unk_168 == 0) {
this->unk_168 = 3;
}
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
} else if (!DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
if (this->unk_168 != 0) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
this->unk_168 = 0;
}

View file

@ -189,9 +189,9 @@ void BgJya1flift_Update(Actor* thisx, PlayState* play2) {
tempIsRiding = DynaPolyActor_IsPlayerOnTop(&this->dyna) ? true : false;
if ((this->actionFunc == BgJya1flift_Move) || (this->actionFunc == BgJya1flift_DelayMove)) {
if (tempIsRiding) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_ELEVATOR_PLATFORM);
} else if (!tempIsRiding && this->isLinkRiding) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
}
this->isLinkRiding = tempIsRiding;

View file

@ -113,7 +113,7 @@ void BgJyaLift_Move(BgJyaLift* this, PlayState* play) {
tempVelocity = (this->dyna.actor.velocity.y < 0.2f) ? 0.2f : this->dyna.actor.velocity.y;
distFromBottom = Math_SmoothStepToF(&this->dyna.actor.world.pos.y, 973.0f, 0.1f, tempVelocity, 0.2f);
if ((this->dyna.actor.world.pos.y < 1440.0f) && (1440.0f <= this->dyna.actor.prevPos.y)) {
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
}
if (fabsf(distFromBottom) < 0.001f) {
BgJyaLift_SetFinalPosY(this);
@ -136,11 +136,11 @@ void BgJyaLift_Update(Actor* thisx, PlayState* play2) {
this->actionFunc(this, play);
}
if ((this->dyna.interactFlags & DYNA_INTERACT_PLAYER_ABOVE) && !(this->unk_16B & DYNA_INTERACT_PLAYER_ABOVE)) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DIRECTED_YAW);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DIRECTED_YAW);
} else if (!(this->dyna.interactFlags & DYNA_INTERACT_PLAYER_ABOVE) &&
(this->unk_16B & DYNA_INTERACT_PLAYER_ABOVE) &&
(play->cameraPtrs[CAM_ID_MAIN]->setting == CAM_SET_DIRECTED_YAW)) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
this->unk_16B = this->dyna.interactFlags;

View file

@ -169,7 +169,7 @@ void func_808A3C8C(BgMoriHineri* this, PlayState* play) {
f0 = 1100.0f - (player->actor.world.pos.z - this->dyna.actor.world.pos.z);
this->dyna.actor.shape.rot.z = CLAMP(f0, 0.0f, 1000.0f) * 16.384f;
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON1);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON1);
if (this->dyna.actor.params != 0) {
this->dyna.actor.shape.rot.z = -this->dyna.actor.shape.rot.z;
}

View file

@ -210,11 +210,11 @@ void BgMoriRakkatenjo_Update(Actor* thisx, PlayState* play) {
osSyncPrintf("camera changed (mori rakka tenjyo) ... \n");
sCamSetting = play->cameraPtrs[CAM_ID_MAIN]->setting;
Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 1, &this->dyna.actor, NULL, 0, 0, 0);
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_FOREST_BIRDS_EYE);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_FOREST_BIRDS_EYE);
}
} else if (sCamSetting != CAM_SET_NONE) {
osSyncPrintf("camera changed (previous) ... \n");
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON1);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON1);
sCamSetting = CAM_SET_NONE;
}
}

View file

@ -61,9 +61,9 @@ void BgSstFloor_Update(Actor* thisx, PlayState* play) {
if (1) {}
if (DynaPolyActor_IsPlayerAbove(&this->dyna) && (this->dyna.actor.yDistToPlayer < 1000.0f)) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BOSS_BONGO);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BOSS_BONGO);
} else {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
}
if (DynaPolyActor_IsPlayerOnTop(&this->dyna) && (player->fallDistance > 1000.0f)) {

View file

@ -640,8 +640,8 @@ void func_809BE26C(EnBigokuta* this, PlayState* play) {
}
if (this->unk_198 == 0 && Math_StepToF(&this->actor.scale.y, 0.0f, 0.001f)) {
Flags_SetClear(play, this->actor.room);
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_SetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_2);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_DUNGEON0);
Camera_SetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_CHECK_BG);
SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 50, NA_SE_EN_OCTAROCK_BUBLE);
Item_DropCollectibleRandom(play, &this->actor, &this->actor.world.pos, 0xB0);
Actor_Kill(&this->actor);
@ -777,8 +777,8 @@ void EnBigokuta_Update(Actor* thisx, PlayState* play2) {
this->actionFunc(this, play);
func_809BD2E4(this);
func_809BE568(this);
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BIG_OCTO);
Camera_UnsetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_2);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BIG_OCTO);
Camera_UnsetStateFlag(play->cameraPtrs[CAM_ID_MAIN], CAM_STATE_CHECK_BG);
if (this->cylinder[0].base.atFlags & AT_ON) {
if (this->actionFunc != func_809BE058) {

View file

@ -449,7 +449,7 @@ void EnBomBowlMan_BeginPlayGame(EnBomBowlMan* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == this->dialogState) && Message_ShouldAdvance(play)) {
Message_CloseTextbox(play);
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
this->startedPlaying = true;
if (BREG(2)) {

View file

@ -251,7 +251,7 @@ void EnDntJiji_Talk(EnDntJiji* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 3, 0x1388, 0);
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
Message_CloseTextbox(play);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_7);
this->actor.parent = NULL;

View file

@ -337,7 +337,7 @@ void EnDntNomal_TargetTalk(EnDntNomal* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime);
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
Message_CloseTextbox(play);
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
GET_ACTIVE_CAM(play)->csId = 0;
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8);
this->actionFunc = EnDntNomal_SetupTargetGivePrize;

View file

@ -384,7 +384,7 @@ void func_809FE6CC(EnDu* this, PlayState* play) {
void func_809FE740(EnDu* this, PlayState* play) {
if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE) {
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
this->unk_1E2 = 0x5A;
EnDu_SetupAction(this, func_809FE798);
}

View file

@ -429,13 +429,13 @@ s32 EnGo_IsCameraModified(EnGo* this, PlayState* play) {
xyzDistSq = (this->actor.scale.x / 0.01f) * SQ(100.0f);
if ((this->actor.params & 0xF0) == 0x90) {
Camera_ChangeSetting(mainCam, CAM_SET_DIRECTED_YAW);
Camera_RequestSetting(mainCam, CAM_SET_DIRECTED_YAW);
xyzDistSq *= 4.8f;
}
if (fabsf(this->actor.xyzDistToPlayerSq) > xyzDistSq) {
if (mainCam->setting == CAM_SET_DIRECTED_YAW) {
Camera_ChangeSetting(mainCam, CAM_SET_NORMAL0);
Camera_RequestSetting(mainCam, CAM_SET_NORMAL0);
}
return 0;
} else {

View file

@ -1163,11 +1163,11 @@ s32 EnGo2_IsCameraModified(EnGo2* this, PlayState* play) {
if ((this->actor.params & 0x1F) == GORON_DMT_BIGGORON) {
if (EnGo2_IsWakingUp(this)) {
Camera_ChangeSetting(mainCam, CAM_SET_DIRECTED_YAW);
Camera_UnsetStateFlag(mainCam, CAM_STATE_2);
Camera_RequestSetting(mainCam, CAM_SET_DIRECTED_YAW);
Camera_UnsetStateFlag(mainCam, CAM_STATE_CHECK_BG);
} else if (!EnGo2_IsWakingUp(this) && (mainCam->setting == CAM_SET_DIRECTED_YAW)) {
Camera_ChangeSetting(mainCam, CAM_SET_DUNGEON1);
Camera_SetStateFlag(mainCam, CAM_STATE_2);
Camera_RequestSetting(mainCam, CAM_SET_DUNGEON1);
Camera_SetStateFlag(mainCam, CAM_STATE_CHECK_BG);
}
}
@ -1839,7 +1839,7 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) {
case 1:
if (DECR(this->animTimer)) {
if (this->animTimer == 60 || this->animTimer == 120) {
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
func_800F4524(&gSfxDefaultPos, NA_SE_EV_GORON_WATER_DROP, 60);
}
} else {

View file

@ -1747,7 +1747,7 @@ void EnHorse_Inactive(EnHorse* this, PlayState* play2) {
// Focus the camera on Epona
Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor);
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0);
}
}
@ -1821,7 +1821,7 @@ void EnHorse_Idle(EnHorse* this, PlayState* play) {
this->followTimer = 0;
EnHorse_SetFollowAnimation(this, play);
Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor);
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND);
Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0);
}
} else {

View file

@ -218,7 +218,7 @@ void EnJj_BeginCutscene(EnJj* this, PlayState* play) {
play->csCtx.script = D_80A88164;
gSaveContext.cutsceneTrigger = 1;
DynaPoly_DisableCollision(play, &play->colCtx.dyna, bodyCollisionActor->bgId);
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
SET_EVENTCHKINF(EVENTCHKINF_3A);
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
}

View file

@ -264,7 +264,7 @@ void func_80A8F9C8(EnKakasi* this, PlayState* play) {
if (this->unk_196 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) {
if (this->subCamId != CAM_ID_NONE) {
func_8005B1A4(play->cameraPtrs[this->subCamId]);
Camera_SetFinishedFlag(play->cameraPtrs[this->subCamId]);
}
this->subCamId = OnePointCutscene_Init(play, 2270, -99, &this->actor, CAM_ID_MAIN);
play->msgCtx.msgMode = MSGMODE_PAUSED;
@ -296,7 +296,7 @@ void func_80A8FAA4(EnKakasi* this, PlayState* play) {
OnePointCutscene_EndCutscene(play, this->subCamId);
this->subCamId = CAM_ID_NONE;
this->subCamId = OnePointCutscene_Init(play, 2260, -99, &this->actor, CAM_ID_MAIN);
func_8005B1A4(play->cameraPtrs[this->subCamId]);
Camera_SetFinishedFlag(play->cameraPtrs[this->subCamId]);
}
}
@ -305,7 +305,7 @@ void func_80A8FBB8(EnKakasi* this, PlayState* play) {
SkelAnime_Update(&this->skelanime);
if (this->unk_196 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) {
func_8005B1A4(play->cameraPtrs[this->subCamId]);
Camera_SetFinishedFlag(play->cameraPtrs[this->subCamId]);
Message_CloseTextbox(play);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_7);
this->actionFunc = func_80A8F660;

View file

@ -286,7 +286,7 @@ void func_80A91620(EnKakasi3* this, PlayState* play) {
this->subCamId = CAM_ID_NONE;
}
if (this->subCamId != CAM_ID_NONE) {
func_8005B1A4(play->cameraPtrs[this->subCamId]);
Camera_SetFinishedFlag(play->cameraPtrs[this->subCamId]);
}
this->actionFunc = func_80A911F0;
return;
@ -394,7 +394,7 @@ void func_80A91A90(EnKakasi3* this, PlayState* play) {
this->subCamId = CAM_ID_NONE;
}
if (this->subCamId != CAM_ID_NONE) {
func_8005B1A4(play->cameraPtrs[this->subCamId]);
Camera_SetFinishedFlag(play->cameraPtrs[this->subCamId]);
}
Message_CloseTextbox(play);
play->msgCtx.ocarinaMode = OCARINA_MODE_04;

View file

@ -677,7 +677,7 @@ void func_80AF39DC(EnRu2* this, PlayState* play) {
player = GET_PLAYER(play);
// "uorya-!" (screeming sound)
osSyncPrintf("うおりゃー! \n");
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
player->actor.world.pos.x = 820.0f;
player->actor.world.pos.y = 0.0f;
player->actor.world.pos.z = 180.0f;
@ -688,7 +688,7 @@ void func_80AF39DC(EnRu2* this, PlayState* play) {
this->unk_2C3 = dialogState;
if (Message_GetState(msgCtx) == TEXT_STATE_CLOSING) {
this->action = 18;
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
}
}

View file

@ -2088,7 +2088,7 @@ void func_80B582C8(EnZl3* this, PlayState* play) {
*unk_3CC += 1.0f;
func_80B57858(play);
} else if (*unk_3CC == kREG(17) + 40.0f) {
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
*unk_3CC += 1.0f;
} else if (*unk_3CC >= ((kREG(17) + 40.0f) + 1.0f)) {
this->action = 32;
@ -2153,7 +2153,7 @@ void func_80B58624(EnZl3* this, PlayState* play) {
} else {
if (*unk_3CC >= kREG(20) + 30.0f) {
this->action = 28;
func_8005B1A4(GET_ACTIVE_CAM(play));
Camera_SetFinishedFlag(GET_ACTIVE_CAM(play));
func_80B54E14(this, &gZelda2Anime2Anim_009FBC, 0, -12.0f, 0);
*unk_3CC = 0.0f;
} else {

View file

@ -181,7 +181,7 @@ static AnimationInfo sAnimationInfo[] = {
void EnZl4_SetActiveCamDir(PlayState* play, s16 index) {
Camera* activeCam = GET_ACTIVE_CAM(play);
Camera_ChangeSetting(activeCam, CAM_SET_FREE0);
Camera_RequestSetting(activeCam, CAM_SET_FREE0);
activeCam->at = sCamDirections[index].at;
activeCam->eye = activeCam->eyeNext = sCamDirections[index].eye;
activeCam->roll = sCamDirections[index].roll;
@ -192,7 +192,7 @@ void EnZl4_SetActiveCamMove(PlayState* play, s16 index) {
Camera* activeCam = GET_ACTIVE_CAM(play);
Player* player = GET_PLAYER(play);
Camera_ChangeSetting(activeCam, CAM_SET_CS_0);
Camera_RequestSetting(activeCam, CAM_SET_CS_0);
Camera_ResetAnim(activeCam);
Camera_SetCSParams(activeCam, sCamMove[index].atPoints, sCamMove[index].eyePoints, player,
sCamMove[index].relativeToPlayer);
@ -1111,7 +1111,7 @@ s32 EnZl4_CsMakePlan(EnZl4* this, PlayState* play) {
if (!((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play))) {
break;
} else {
Camera_ChangeSetting(GET_ACTIVE_CAM(play), CAM_SET_NORMAL0);
Camera_RequestSetting(GET_ACTIVE_CAM(play), CAM_SET_NORMAL0);
this->talkState = 7;
play->talkWithPlayer(play, &this->actor);
Actor_OfferGetItem(&this->actor, play, GI_ZELDAS_LETTER, fabsf(this->actor.xzDistToPlayer) + 1.0f,

View file

@ -753,9 +753,9 @@ void ObjBean_WaitForPlayer(ObjBean* this, PlayState* play) {
if (DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
ObjBean_SetupFly(this);
if (play->sceneId == SCENE_LOST_WOODS) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_LOST_WOODS);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_LOST_WOODS);
} else {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_GENERIC);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_GENERIC);
}
}
ObjBean_UpdatePosition(this);
@ -781,7 +781,7 @@ void ObjBean_Fly(ObjBean* this, PlayState* play) {
mainCam = play->cameraPtrs[CAM_ID_MAIN];
if ((mainCam->setting == CAM_SET_BEAN_LOST_WOODS) || (mainCam->setting == CAM_SET_BEAN_GENERIC)) {
Camera_ChangeSetting(mainCam, CAM_SET_NORMAL0);
Camera_RequestSetting(mainCam, CAM_SET_NORMAL0);
}
} else if (DynaPolyActor_IsPlayerOnTop(&this->dyna)) {
@ -789,15 +789,15 @@ void ObjBean_Fly(ObjBean* this, PlayState* play) {
func_8002F974(&this->dyna.actor, NA_SE_PL_PLANT_MOVE - SFX_FLAG);
if (play->sceneId == SCENE_LOST_WOODS) {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_LOST_WOODS);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_LOST_WOODS);
} else {
Camera_ChangeSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_GENERIC);
Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_BEAN_GENERIC);
}
} else if (this->stateFlags & BEAN_STATE_PLAYER_ON_TOP) {
mainCam = play->cameraPtrs[CAM_ID_MAIN];
if ((mainCam->setting == CAM_SET_BEAN_LOST_WOODS) || (mainCam->setting == CAM_SET_BEAN_GENERIC)) {
Camera_ChangeSetting(mainCam, CAM_SET_NORMAL0);
Camera_RequestSetting(mainCam, CAM_SET_NORMAL0);
}
}

View file

@ -501,7 +501,7 @@ void ObjectKankyo_DrawFairies(Actor* thisx, PlayState* play2) {
Vec3f vec2 = { 0.0f, 0.0f, 0.0f };
s16 i;
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_8)) {
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER)) {
OPEN_DISPS(play->state.gfxCtx, "../z_object_kankyo.c", 807);
POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_20);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gSun1Tex));
@ -596,7 +596,7 @@ void ObjectKankyo_DrawSnow(Actor* thisx, PlayState* play2) {
s32 pad;
s32 pad2;
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_8)) {
if (!(play->cameraPtrs[CAM_ID_MAIN]->stateFlags & CAM_STATE_CAMERA_IN_WATER)) {
OPEN_DISPS(play->state.gfxCtx, "../z_object_kankyo.c", 958);
if (play->envCtx.precipitation[PRECIP_SNOW_CUR] < play->envCtx.precipitation[PRECIP_SNOW_MAX]) {
if (play->state.frames % 16 == 0) {

View file

@ -1694,7 +1694,7 @@ void func_80832440(PlayState* play, Player* this) {
this->unk_6AD = 0;
func_80832340(play, this);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
this->stateFlags1 &= ~(PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_20 | PLAYER_STATE1_21);
this->stateFlags2 &= ~(PLAYER_STATE2_4 | PLAYER_STATE2_7 | PLAYER_STATE2_CRAWLING);
@ -3184,7 +3184,7 @@ void func_80835E44(PlayState* play, s16 camSetting) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
}
} else {
Camera_ChangeSetting(Play_GetCamera(play, CAM_ID_MAIN), camSetting);
Camera_RequestSetting(Play_GetCamera(play, CAM_ID_MAIN), camSetting);
}
}
@ -4588,7 +4588,7 @@ void func_80838F5C(PlayState* play, Player* this) {
this->stateFlags1 |= PLAYER_STATE1_29 | PLAYER_STATE1_31;
Camera_ChangeSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_FREE0);
Camera_RequestSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_FREE0);
}
s32 func_80838FB8(PlayState* play, Player* this) {
@ -5368,23 +5368,23 @@ void func_8083AA10(Player* this, PlayState* play) {
}
s32 func_8083AD4C(PlayState* play, Player* this) {
s32 cameraMode;
s32 camMode;
if (this->unk_6AD == 2) {
if (func_8002DD6C(this)) {
if (LINK_IS_ADULT) {
cameraMode = CAM_MODE_AIM_ADULT;
camMode = CAM_MODE_AIM_ADULT;
} else {
cameraMode = CAM_MODE_AIM_CHILD;
camMode = CAM_MODE_AIM_CHILD;
}
} else {
cameraMode = CAM_MODE_AIM_BOOMERANG;
camMode = CAM_MODE_AIM_BOOMERANG;
}
} else {
cameraMode = CAM_MODE_FIRST_PERSON;
camMode = CAM_MODE_FIRST_PERSON;
}
return Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), cameraMode);
return Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
}
/**
@ -5615,7 +5615,7 @@ s32 Player_ActionChange_13(Player* this, PlayState* play) {
Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->unk_6A8);
}
}
} else if (func_8083AD4C(play, this)) {
} else if (func_8083AD4C(play, this) != CAM_MODE_NORMAL) {
if (!(this->stateFlags1 & PLAYER_STATE1_23)) {
Player_SetupAction(play, this, Player_Action_8084B1D8, 1);
this->av2.actionVar2 = 13;
@ -6770,7 +6770,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) {
ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
ANIM_FLAG_PLAYER_7);
chest->unk_1F4 = 1;
Camera_ChangeSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_SLOW_CHEST_CS);
Camera_RequestSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_SLOW_CHEST_CS);
} else {
Player_AnimPlayOnce(play, this, &gPlayerAnim_link_normal_box_kick);
chest->unk_1F4 = -1;
@ -8256,7 +8256,7 @@ void Player_Action_8084279C(Player* this, PlayState* play) {
}
this->actor.flags &= ~ACTOR_FLAG_8;
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
}
@ -9515,10 +9515,11 @@ void Player_Action_80845CA4(Player* this, PlayState* play) {
temp = func_80845BA0(play, this, &sp34, sp30);
if ((this->av2.actionVar2 == 0) || ((temp == 0) && (this->speedXZ == 0.0f) &&
(Play_GetCamera(play, CAM_ID_MAIN)->stateFlags & CAM_STATE_4))) {
if ((this->av2.actionVar2 == 0) ||
((temp == 0) && (this->speedXZ == 0.0f) &&
(Play_GetCamera(play, CAM_ID_MAIN)->stateFlags & CAM_STATE_CAM_FUNC_FINISH))) {
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
func_80845C68(play, gSaveContext.respawn[RESPAWN_MODE_DOWN].data);
if (!Player_ActionChange_4(this, play)) {
@ -9552,7 +9553,7 @@ void Player_Action_80845EF8(Player* this, PlayState* play) {
if (play->roomCtx.prevRoom.num >= 0) {
func_80097534(play, &play->roomCtx);
}
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
Play_SetupRespawnPoint(play, RESPAWN_MODE_DOWN, 0xDFF);
}
return;
@ -10592,7 +10593,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
seqMode = SEQ_MODE_DEFAULT;
if (this->csAction != PLAYER_CSACTION_NONE) {
Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_NORMAL);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_NORMAL);
} else if (!(this->stateFlags1 & PLAYER_STATE1_20)) {
if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_7)) {
camMode = CAM_MODE_HOOKSHOT_FLY;
@ -10653,7 +10654,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
}
}
Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), camMode);
} else {
// First person mode
seqMode = SEQ_MODE_STILL;
@ -11701,7 +11702,7 @@ void Player_Action_8084B1D8(Player* this, PlayState* play) {
}
if ((this->csAction != PLAYER_CSACTION_NONE) || (this->unk_6AD == 0) || (this->unk_6AD >= 4) ||
func_80833B54(this) || (this->unk_664 != NULL) || !func_8083AD4C(play, this) ||
func_80833B54(this) || (this->unk_664 != NULL) || (func_8083AD4C(play, this) == CAM_MODE_NORMAL) ||
(((this->unk_6AD == 2) && (CHECK_BTN_ANY(sControlInput->press.button, BTN_A | BTN_B | BTN_R) ||
func_80833B2C(this) || (!func_8002DD78(this) && !func_808334B4(this)))) ||
((this->unk_6AD == 1) &&
@ -11767,7 +11768,7 @@ void Player_Action_8084B530(Player* this, PlayState* play) {
this->stateFlags2 &= ~PLAYER_STATE2_13;
}
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
if (!func_8084B4D4(play, this) && !func_8084B3CC(play, this) && !Player_StartCsAction(play, this)) {
if ((this->targetActor != this->interactRangeActor) || !Player_ActionChange_2(this, play)) {
@ -12553,7 +12554,7 @@ void Player_Action_8084CC98(Player* this, PlayState* play) {
}
if (this->stateFlags1 & PLAYER_STATE1_20) {
if (!func_8083AD4C(play, this) || CHECK_BTN_ANY(sControlInput->press.button, BTN_A) ||
if ((func_8083AD4C(play, this) == CAM_MODE_NORMAL) || CHECK_BTN_ANY(sControlInput->press.button, BTN_A) ||
func_80833BCC(this)) {
this->unk_6AD = 0;
this->stateFlags1 &= ~PLAYER_STATE1_20;
@ -12613,7 +12614,7 @@ void Player_Action_8084D3E4(Player* this, PlayState* play) {
gSaveContext.save.info.horseData.angle = rideActor->actor.shape.rot.y;
}
} else {
Camera_ChangeSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_NORMAL0);
Camera_RequestSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_NORMAL0);
if (this->mountSide < 0) {
D_808549C4[0].data = ANIMSFX_DATA(ANIMSFX_TYPE_5, 40);
@ -12864,7 +12865,7 @@ void func_8084DF6C(PlayState* play, Player* this) {
this->unk_862 = 0;
this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11);
this->getItemId = GI_NONE;
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
void func_8084DFAC(PlayState* play, Player* this) {
@ -12992,7 +12993,7 @@ void Player_Action_8084E3C4(Player* this, PlayState* play) {
}
if (play->msgCtx.ocarinaMode == OCARINA_MODE_04) {
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
if ((this->targetActor != NULL) && (this->targetActor == this->unk_6A8)) {
func_80853148(play, this->targetActor);
@ -13015,7 +13016,7 @@ void Player_Action_8084E3C4(Player* this, PlayState* play) {
this->stateFlags1 &= ~PLAYER_STATE1_29;
Player_TryCsAction(play, NULL, PLAYER_CSACTION_8);
play->mainCamera.stateFlags &= ~CAM_STATE_3;
play->mainCamera.stateFlags &= ~CAM_STATE_EXTERNAL_FINISHED;
this->stateFlags1 |= PLAYER_STATE1_28 | PLAYER_STATE1_29;
this->stateFlags2 |= PLAYER_STATE2_27;
@ -13203,7 +13204,7 @@ void Player_Action_8084EAC0(Player* this, PlayState* play) {
}
func_8083C0E8(this, play);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
} else if (this->av2.actionVar2 == 1) {
if ((gSaveContext.healthAccumulator == 0) && (gSaveContext.magicState != MAGIC_STATE_FILL)) {
Player_AnimChangeOnceMorphAdjusted(play, this, &gPlayerAnim_link_bottle_drink_demo_end);
@ -13240,7 +13241,7 @@ void Player_Action_8084ECA4(Player* this, PlayState* play) {
this->av2.actionVar2 = 1;
} else if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
this->av1.actionVar1 = 0;
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
} else {
func_8083C0E8(this, play);
@ -13293,7 +13294,7 @@ static Vec3f D_80854A1C = { 0.0f, 0.0f, 5.0f };
void Player_Action_8084EED8(Player* this, PlayState* play) {
if (LinkAnimation_Update(play, &this->skelAnime)) {
func_8083C0E8(this, play);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
return;
}
@ -13323,7 +13324,7 @@ void Player_Action_8084EFC0(Player* this, PlayState* play) {
if (LinkAnimation_Update(play, &this->skelAnime)) {
func_8083C0E8(this, play);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
return;
}
@ -13387,7 +13388,7 @@ void Player_Action_8084F104(Player* this, PlayState* play) {
func_8083C0E8(this, play);
}
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
}
} else if (this->av2.actionVar2 >= 0) {
@ -13635,7 +13636,7 @@ s32 func_8084FCAC(Player* this, PlayState* play) {
D_808535D0 ^= 1;
if (D_808535D0) {
Camera_ChangeMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_Z_AIM);
Camera_RequestMode(Play_GetCamera(play, CAM_ID_MAIN), CAM_MODE_Z_AIM);
}
}
@ -13888,7 +13889,7 @@ void Player_Action_8085063C(Player* this, PlayState* play) {
}
func_80853080(this, play);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
}
@ -13954,7 +13955,7 @@ void Player_Action_808507F4(Player* this, PlayState* play) {
if (this->av1.actionVar1 < 0) {
if ((this->itemAction == PLAYER_IA_NAYRUS_LOVE) || (gSaveContext.magicState == MAGIC_STATE_IDLE)) {
func_80839FFC(this, play);
func_8005B1A4(Play_GetCamera(play, CAM_ID_MAIN));
Camera_SetFinishedFlag(Play_GetCamera(play, CAM_ID_MAIN));
}
} else {
if (this->av2.actionVar2 == 0) {