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:
engineer124
2023-05-23 11:47:41 +10:00
committed by GitHub
parent 1be7517f3d
commit 22af2bb8fe
19 changed files with 7927 additions and 556 deletions
+7682 -267
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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;