mirror of
https://github.com/zeldaret/mm.git
synced 2026-06-03 10:31:10 -04:00
z_camera with Partial Docs (3 Non-Equivalent) (#601)
* more boot files * Add VT macros and script * finish already existing boot files * most of libultra * fix 64bits libultra files * Use C files for libultra, wrap some functions in NON_MATCHING * Remove duplicate of OS_CLOCK_RATE from fault.c * C files for fbdemos * delete dumb files * bootstrap C files, still need to add them to the spec * update fixbaserom * boot OK? * I forgot to commit the spec * C for gamestates * C for kaleido * Change all includes to "" * copy actor sizes script from oot * I forgot to delete those files * Basic C files for effects * Add effects initvars names * Remove mislabelled boot functions from header/txt * Begin porting bootstrap_fx, some sizes * Fix <> * Fix enum * Fix diff.py * fix libultra stuff * update regconvert * update setup warnings * add some missing ; * Fix some makefile stuff and other fixes on some non_matching functions * add executable flag in extract_baserom and fixbaserom * fix relative path * copy assist from oot * fix map path * another assist path fix * Delete C files for handwritten files * add code_801A51F0 to spec * add gfxbuffers to spec * Move rodata to top of each file when possible * UNK_TYPEs for func_801A51F0 * Remove kaleido rodata from spec * Update spec and undefined_syms for recent merge * GCC warnings and fix errors in nonmatchings, * round percentage numbers * progress script: format changes * progress: error on non-existing files * fix warning in z_scene_table * Match 2 nonmatchings in z_actor * Warnings in lightswitch and invadepoh * Fix warning in z_actor_dlftbls * I though I fixed this one * whoops * Comment out CC_CHECK * Removed redundant ultra64.h includes * Update asm_processor, sorted boot_O1 into other folders, completed the fbdemo bootstrap, cleaned up undefined_syms * Completed gamestates bootstrap * Split kaleido_scope * Remove section.h and segment.h, move keep object externs to a common location in variables.h * Completed effects bootstrap * Segmented address externs for effects, fbdemos, gamestates and kaleido * Move actor data externs out of the if 0 * Segmented address externs for actors * Prepare actionfunc detection * fix script, how did it even work before * Fix actionfunc script again, re-introduce some more intermediate prints to the disassembler * Automated actionFunc detection in actors * Segmented addresses from player .text * rm old segment addrs script and fix build * Move sizes folder to tools * Make build.py executable * New Jenkinsfile Prayge * Remove numpy dependencies * Add warnings_disasm_current.txt * my bad * Update spec and undefined_syms * Add z_eff_ss_hahen to pametfrog * git subrepo pull (merge) --force tools/z64compress subrepo: subdir: "tools/z64compress" merged: "163ca2af" upstream: origin: "https://github.com/z64me/z64compress.git" branch: "main" commit: "163ca2af" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Make z64compress print to stdout * sneeky commit to update warnings tooling * test * Another test * Mark fixing overlay reloc generating as a TODO * Update warnings stuff * Communicate the return code from running z64compress back to the Makefile through the wrapper * Run formatter, remove extra commented copy of function * Re-fix some includes * Convert atan to hex to conform to decided style * Clean up most matching with rodata and most warnings * Match Parallel1, minor improvement in Jump and KeepOn * Begin Documentation * More docs, fixed warnings * cleanup * Continuing with docs * Small progress * Fix BSS, All but 1 matching functions freed, continue docs * Fix merge * Many function names * More Names * Change name * Docs * Begin camera_data docs * small progress * Minor change * Improve docs on functions * Player to TrackActor, progress on camera_data * Add Cam_Data Macro and fix warnings * Progress on Camera_Data docs * Document CsCamData * Cleanup * Minor clean up in Battle NON_MATCHING * Small fixes * Fix bss, OK * typo * revert some z64 macros and format * OK * minor settings docs * Many flags, names, and other documentation * Name many camera_data variables * A few more small changes * Refactoring Camera Action Function Structs WIP * Finish Struct reworking * Some door docs * Add my findings of Camera Settings as comments * More camera data names and comments cleanup * A few names * Slow progress on camera_data * More camera_data progress, slow and steady * Many renaming * wip * camera_data WIP * The grind continues * More data wip * All the macros are in! * Format and cleanup * more docs * format * Breakup camera into pieces * format * PR Feedback round 1 * revert macro * Fix header * Document Play Camera and Screen pos * cleanup * revert camera split * Start copying docs from OoT * remaining CAM_INTERFACE_FLAGS * roData and rwData * Change paramData * Flags * More docs * More Cleanup * cleanup * more * More docs * Standardize subcams * macro * Player_UpdateCamAndSeqModes * cleanup from PR * format * sync with bgCam and actorsCsCam PR * sync to z_play cam PR * docs progress * revert player changes * helper function cleanup * match Jump3, thanks petrie & synray * camera bg docs * brackets * cam math docs * more cam bg docs * rename flags * misc docs * more cleanup * some cam docs * some PR * hud visibility * fix macros, sync with PR * sync with PR * sync with PR * helper cleanup * cleanup * PR Suggestions * more PR * fix merge master * PR review * add comment * more quake cleanup * pr suggestions --------- Co-authored-by: angie <angheloalf95@gmail.com> Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com> Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
This commit is contained in:
+7682
-267
File diff suppressed because it is too large
Load Diff
@@ -402,13 +402,13 @@ s16 CutsceneManager_Start(s16 csId, Actor* actor) {
|
||||
if (CutsceneManager_FindEntranceCsId() != csId) {
|
||||
func_800E0348(retCam);
|
||||
} else {
|
||||
Camera_ClearFlags(retCam, CAM_STATE_2);
|
||||
Camera_UnsetStateFlag(retCam, CAM_STATE_2);
|
||||
}
|
||||
}
|
||||
|
||||
memcpy(subCam, retCam, sizeof(Camera));
|
||||
subCam->camId = sCutsceneMgr.subCamId;
|
||||
Camera_ClearFlags(subCam, CAM_STATE_6 | CAM_STATE_0);
|
||||
Camera_UnsetStateFlag(subCam, CAM_STATE_6 | CAM_STATE_0);
|
||||
|
||||
Play_ChangeCameraStatus(sCutsceneMgr.play, sCutsceneMgr.retCamId, CAM_STATUS_WAIT);
|
||||
Play_ChangeCameraStatus(sCutsceneMgr.play, sCutsceneMgr.subCamId, CAM_STATUS_ACTIVE);
|
||||
@@ -422,7 +422,7 @@ s16 CutsceneManager_Start(s16 csId, Actor* actor) {
|
||||
sCutsceneMgr.length = csEntry->length;
|
||||
} else {
|
||||
if (csEntry->csCamId != CS_CAM_ID_NONE) {
|
||||
Camera_ChangeDataIdx(subCam, csEntry->csCamId);
|
||||
Camera_ChangeActorCsCamIndex(subCam, csEntry->csCamId);
|
||||
} else {
|
||||
Camera_ChangeSetting(subCam, CAM_SET_FREE0);
|
||||
}
|
||||
|
||||
+16
-15
@@ -505,7 +505,7 @@ void Play_UpdateWaterCamera(PlayState* this, Camera* camera) {
|
||||
sIsCameraUnderwater = camera->stateFlags & CAM_STATE_UNDERWATER;
|
||||
if (Play_GetWaterSurface(this, &camera->eye, &lightIndex) != BGCHECK_Y_MIN) {
|
||||
if (!sIsCameraUnderwater) {
|
||||
Camera_SetFlags(camera, CAM_STATE_UNDERWATER);
|
||||
Camera_SetStateFlag(camera, CAM_STATE_UNDERWATER);
|
||||
sQuakeIndex = -1;
|
||||
Distortion_Request(DISTORTION_TYPE_UNDERWATER_ENTRY);
|
||||
Distortion_SetDuration(80);
|
||||
@@ -533,7 +533,7 @@ void Play_UpdateWaterCamera(PlayState* this, Camera* camera) {
|
||||
}
|
||||
} else {
|
||||
if (sIsCameraUnderwater) {
|
||||
Camera_ClearFlags(camera, CAM_STATE_UNDERWATER);
|
||||
Camera_UnsetStateFlag(camera, CAM_STATE_UNDERWATER);
|
||||
}
|
||||
Distortion_RemoveRequest(DISTORTION_TYPE_NON_ZORA_SWIMMING);
|
||||
Distortion_RemoveRequest(DISTORTION_TYPE_UNDERWATER_ENTRY);
|
||||
@@ -1681,11 +1681,11 @@ s32 Play_SetCameraAtEye(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye) {
|
||||
camera->dist = Math3D_Distance(at, eye);
|
||||
|
||||
if (camera->focalActor != NULL) {
|
||||
camera->atActorOffset.x = at->x - camera->focalActor->world.pos.x;
|
||||
camera->atActorOffset.y = at->y - camera->focalActor->world.pos.y;
|
||||
camera->atActorOffset.z = at->z - camera->focalActor->world.pos.z;
|
||||
camera->focalActorAtOffset.x = at->x - camera->focalActor->world.pos.x;
|
||||
camera->focalActorAtOffset.y = at->y - camera->focalActor->world.pos.y;
|
||||
camera->focalActorAtOffset.z = at->z - camera->focalActor->world.pos.z;
|
||||
} else {
|
||||
camera->atActorOffset.x = camera->atActorOffset.y = camera->atActorOffset.z = 0.0f;
|
||||
camera->focalActorAtOffset.x = camera->focalActorAtOffset.y = camera->focalActorAtOffset.z = 0.0f;
|
||||
}
|
||||
|
||||
camera->atLerpStepScale = 0.01f;
|
||||
@@ -1710,11 +1710,11 @@ s32 Play_SetCameraAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec
|
||||
camera->dist = Math3D_Distance(at, eye);
|
||||
|
||||
if (camera->focalActor != NULL) {
|
||||
camera->atActorOffset.x = at->x - camera->focalActor->world.pos.x;
|
||||
camera->atActorOffset.y = at->y - camera->focalActor->world.pos.y;
|
||||
camera->atActorOffset.z = at->z - camera->focalActor->world.pos.z;
|
||||
camera->focalActorAtOffset.x = at->x - camera->focalActor->world.pos.x;
|
||||
camera->focalActorAtOffset.y = at->y - camera->focalActor->world.pos.y;
|
||||
camera->focalActorAtOffset.z = at->z - camera->focalActor->world.pos.z;
|
||||
} else {
|
||||
camera->atActorOffset.x = camera->atActorOffset.y = camera->atActorOffset.z = 0.0f;
|
||||
camera->focalActorAtOffset.x = camera->focalActorAtOffset.y = camera->focalActorAtOffset.z = 0.0f;
|
||||
}
|
||||
|
||||
camera->atLerpStepScale = 0.01f;
|
||||
@@ -1748,13 +1748,13 @@ void Play_CopyCamera(PlayState* this, s16 destCamId, s16 srcCamId) {
|
||||
Camera_Copy(this->cameraPtrs[destCamId1], this->cameraPtrs[srcCamId2]);
|
||||
}
|
||||
|
||||
// Same as Play_ChangeCameraSetting but also calls Camera_InitPlayerSettings
|
||||
// Same as Play_ChangeCameraSetting but also calls Camera_InitFocalActorSettings
|
||||
s32 func_80169A50(PlayState* this, s16 camId, Player* player, s16 setting) {
|
||||
Camera* camera;
|
||||
s16 camIdx = (camId == CAM_ID_NONE) ? this->activeCamId : camId;
|
||||
|
||||
camera = this->cameraPtrs[camIdx];
|
||||
Camera_InitPlayerSettings(camera, player);
|
||||
Camera_InitFocalActorSettings(camera, &player->actor);
|
||||
return Camera_ChangeSetting(camera, setting);
|
||||
}
|
||||
|
||||
@@ -2179,7 +2179,8 @@ void Play_Init(GameState* thisx) {
|
||||
this->cameraPtrs[CAM_ID_MAIN]->uid = CAM_ID_MAIN;
|
||||
this->activeCamId = CAM_ID_MAIN;
|
||||
|
||||
func_800DFF18(&this->mainCamera, 0x7F);
|
||||
Camera_OverwriteStateFlags(&this->mainCamera, CAM_STATE_0 | CAM_STATE_CHECK_WATER | CAM_STATE_2 | CAM_STATE_3 |
|
||||
CAM_STATE_4 | CAM_STATE_DISABLE_MODE_CHANGE | CAM_STATE_6);
|
||||
Sram_Alloc(&this->state, &this->sramCtx);
|
||||
Regs_InitData(this);
|
||||
Message_Init(this);
|
||||
@@ -2323,11 +2324,11 @@ void Play_Init(GameState* thisx) {
|
||||
|
||||
player = GET_PLAYER(this);
|
||||
|
||||
Camera_InitPlayerSettings(&this->mainCamera, player);
|
||||
Camera_InitFocalActorSettings(&this->mainCamera, &player->actor);
|
||||
gDbgCamEnabled = false;
|
||||
|
||||
if ((player->actor.params & 0xFF) != 0xFF) {
|
||||
Camera_ChangeDataIdx(&this->mainCamera, player->actor.params & 0xFF);
|
||||
Camera_ChangeActorCsCamIndex(&this->mainCamera, player->actor.params & 0xFF);
|
||||
}
|
||||
|
||||
CutsceneManager_StoreCamera(&this->mainCamera);
|
||||
|
||||
+1
-1
@@ -357,7 +357,7 @@ void Room_DrawImageSingle(PlayState* play, Room* room, u32 flags) {
|
||||
|
||||
RoomShapeImageMultiBgEntry* Room_GetImageMultiBgEntry(RoomShapeImageMulti* roomShapeImageMulti, PlayState* play) {
|
||||
Camera* activeCam = GET_ACTIVE_CAM(play);
|
||||
s32 bgCamIndex = activeCam->bgCamDataId;
|
||||
s32 bgCamIndex = activeCam->bgCamIndex;
|
||||
s16 overrideBgCamIndex;
|
||||
Player* player;
|
||||
RoomShapeImageMultiBgEntry* bgEntry;
|
||||
|
||||
Reference in New Issue
Block a user