z_quake OK and documented (#213)

* Create z_quake.c file

* Match all quake functions with OoT counterparts (quake2 left)

* z_quake OK

* Document first half of quake

* More docs

* more cleanup

* remember to format!

* PR Suggestions

* More PR Suggestions
This commit is contained in:
engineer124
2021-07-19 19:06:54 -04:00
committed by GitHub
parent 184e67c841
commit b5c931e432
15 changed files with 969 additions and 206 deletions
+3 -2
View File
@@ -180,8 +180,9 @@ VecSph* OLib_Vec3fDiffToVecSphGeo(VecSph* dest, Vec3f* a, Vec3f* b) {
/**
* Takes the sum of positions `a` (x,y,z coordinates) and `sph` (geographic coordinates), result is in x,y,z position
* Identical to Quake_AddVec from OoT
*/
Vec3f* OLib_VecSphToVec3fSum(Vec3f* dest, Vec3f* a, VecSph* sph) {
Vec3f* OLib_VecSphAddToVec3f(Vec3f* dest, Vec3f* a, VecSph* sph) {
Vec3f vec;
Vec3f b;
@@ -279,7 +280,7 @@ void OLib_DbCameraVec3fSum(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode) {
case 1:
OLib_Vec3fToVecSphGeo(&sph, b);
sph.yaw += a->rot.y;
OLib_VecSphToVec3fSum(dest, &a->pos, &sph);
OLib_VecSphAddToVec3f(dest, &a->pos, &sph);
break;
case 2:
dest->x = a->pos.x + b->x;
+759
View File
File diff suppressed because it is too large Load Diff
+22 -22
View File
@@ -33,13 +33,13 @@ void View_Init(View* view, GraphicsContext* gfxCtx) {
}
view->scale = 1.0f;
view->upDir.y = 1.0f;
view->up.y = 1.0f;
view->fovy = 60.0f;
view->eye.x = 0.0f;
view->eye.y = 0.0f;
view->focalPoint.x = 0.0f;
view->upDir.x = 0.0f;
view->upDir.z = 0.0f;
view->at.x = 0.0f;
view->up.x = 0.0f;
view->up.z = 0.0f;
view->zNear = 10.0f;
view->zFar = 12800.0f;
view->eye.z = -1.0f;
@@ -47,24 +47,24 @@ void View_Init(View* view, GraphicsContext* gfxCtx) {
View_InitCameraQuake(view);
}
void View_SetViewOrientation(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir) {
if (eye->x == focalPoint->x && eye->z == focalPoint->z) {
void View_SetViewOrientation(View* view, Vec3f* eye, Vec3f* at, Vec3f* up) {
if (eye->x == at->x && eye->z == at->z) {
eye->z += 0.1f;
upDir->z = 0.0f;
upDir->x = 0.0f;
upDir->y = 1.0f;
up->z = 0.0f;
up->x = 0.0f;
up->y = 1.0f;
}
view->eye = *eye;
view->focalPoint = *focalPoint;
view->upDir = *upDir;
view->at = *at;
view->up = *up;
view->flags |= 1;
}
void func_8013F050(View* view, Vec3f* eye, Vec3f* focalPoint, Vec3f* upDir) {
void func_8013F050(View* view, Vec3f* eye, Vec3f* at, Vec3f* up) {
view->eye = *eye;
view->focalPoint = *focalPoint;
view->upDir = *upDir;
view->at = *at;
view->up = *up;
}
void View_SetScale(View* view, f32 scale) {
@@ -321,12 +321,12 @@ s32 View_RenderToPerspectiveMatrix(View* view) {
viewing = GRAPH_ALLOC(gfxCtx, sizeof(*viewing));
view->viewingPtr = viewing;
if (view->eye.x == view->focalPoint.x && view->eye.y == view->focalPoint.y && view->eye.z == view->focalPoint.z) {
if (view->eye.x == view->at.x && view->eye.y == view->at.y && view->eye.z == view->at.z) {
view->eye.z += 2.0f;
}
guLookAt(viewing, view->eye.x, view->eye.y, view->eye.z, view->focalPoint.x, view->focalPoint.y, view->focalPoint.z,
view->upDir.x, view->upDir.y, view->upDir.z);
guLookAt(viewing, view->eye.x, view->eye.y, view->eye.z, view->at.x, view->at.y, view->at.z, view->up.x, view->up.y,
view->up.z);
view->viewing = *viewing;
@@ -455,12 +455,12 @@ s32 func_8013FD74(View* view) {
viewing = GRAPH_ALLOC(gfxCtx, sizeof(*viewing));
view->viewingPtr = viewing;
if (view->eye.x == view->focalPoint.x && view->eye.y == view->focalPoint.y && view->eye.z == view->focalPoint.z) {
if (view->eye.x == view->at.x && view->eye.y == view->at.y && view->eye.z == view->at.z) {
view->eye.z += 2.0f;
}
guLookAt(viewing, view->eye.x, view->eye.y, view->eye.z, view->focalPoint.x, view->focalPoint.y, view->focalPoint.z,
view->upDir.x, view->upDir.y, view->upDir.z);
guLookAt(viewing, view->eye.x, view->eye.y, view->eye.z, view->at.x, view->at.y, view->at.z, view->up.x, view->up.y,
view->up.z);
view->viewing = *viewing;
@@ -472,8 +472,8 @@ s32 func_8013FD74(View* view) {
}
s32 func_80140024(View* view) {
guLookAt(view->viewingPtr, view->eye.x, view->eye.y, view->eye.z, view->focalPoint.x, view->focalPoint.y,
view->focalPoint.z, view->upDir.x, view->upDir.y, view->upDir.z);
guLookAt(view->viewingPtr, view->eye.x, view->eye.y, view->eye.z, view->at.x, view->at.y, view->at.z, view->up.x,
view->up.y, view->up.z);
view->unkE0 = *view->viewingPtr;
view->viewingPtr = &view->unkE0;