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

Doc misc 1 (#1160)

* Misc documentation 1

* Add parentheses

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Move the parentheses to the right place

* `curByte`(2) -> `curChar`(2)

Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>

* Revert `isMaterialSet` boolean usage

* Fix misplaced line (how did that happen)

* Fixup

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
This commit is contained in:
Dragorn421 2022-02-27 22:32:05 +01:00 committed by GitHub
parent dfbc356cdf
commit ed6ec5bceb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 265 additions and 262 deletions

View file

@ -86,17 +86,17 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
struct_80095D04 spB8[SHAPE_SORT_MAX];
struct_80095D04* spB4 = NULL;
struct_80095D04* spB0 = NULL;
struct_80095D04* phi_v0;
struct_80095D04* iter;
s32 pad;
struct_80095D04* spA4;
s32 phi_v1;
s32 sp9C;
Vec3f sp90;
Vec3f sp84;
f32 sp80;
s32 j;
s32 i;
Vec3f pos;
Vec3f projectedPos;
f32 projectedW;
s32 pad2;
PolygonDlist2* sp78;
PolygonDlist2* temp;
PolygonDlist2* polygonDlistFirst;
PolygonDlist2* polygonDlistIter;
f32 temp_f2;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_room.c", 287);
@ -119,44 +119,44 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
spA4 = spB8;
ASSERT(polygon2->num <= SHAPE_SORT_MAX, "polygon2->num <= SHAPE_SORT_MAX", "../z_room.c", 317);
sp78 = polygonDlist;
polygonDlistFirst = polygonDlist;
for (sp9C = 0; sp9C < polygon2->num; sp9C++, polygonDlist++) {
sp90.x = polygonDlist->pos.x;
sp90.y = polygonDlist->pos.y;
sp90.z = polygonDlist->pos.z;
SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &sp90, &sp84, &sp80);
if (-(f32)polygonDlist->unk_06 < sp84.z) {
temp_f2 = sp84.z - polygonDlist->unk_06;
for (i = 0; i < polygon2->num; i++, polygonDlist++) {
pos.x = polygonDlist->pos.x;
pos.y = polygonDlist->pos.y;
pos.z = polygonDlist->pos.z;
SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &pos, &projectedPos, &projectedW);
if (-(f32)polygonDlist->unk_06 < projectedPos.z) {
temp_f2 = projectedPos.z - polygonDlist->unk_06;
if (temp_f2 < globalCtx->lightCtx.fogFar) {
phi_v0 = spB4;
spA4->unk_00 = polygonDlist;
spA4->unk_04 = temp_f2;
if (phi_v0 == NULL) {
iter = spB4;
if (iter == NULL) {
spB4 = spB0 = spA4;
spA4->unk_08 = spA4->unk_0C = NULL;
} else {
do {
if (spA4->unk_04 < phi_v0->unk_04) {
if (spA4->unk_04 < iter->unk_04) {
break;
}
phi_v0 = phi_v0->unk_0C;
} while (phi_v0 != NULL);
iter = iter->unk_0C;
} while (iter != NULL);
if (phi_v0 == NULL) {
if (iter == NULL) {
spA4->unk_08 = spB0;
spA4->unk_0C = NULL;
spB0->unk_0C = spA4;
spB0 = spA4;
} else {
spA4->unk_08 = phi_v0->unk_08;
spA4->unk_08 = iter->unk_08;
if (spA4->unk_08 == NULL) {
spB4 = spA4;
} else {
spA4->unk_08->unk_0C = spA4;
}
phi_v0->unk_08 = spA4;
spA4->unk_0C = phi_v0;
iter->unk_08 = spA4;
spA4->unk_0C = iter;
}
}
spA4++;
@ -166,51 +166,51 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
iREG(87) = polygon2->num & 0xFFFF & 0xFFFF & 0xFFFF; // if this is real then I might not be
for (sp9C = 1; spB4 != NULL; spB4 = spB4->unk_0C, sp9C++) {
Gfx* temp2;
for (i = 1; spB4 != NULL; spB4 = spB4->unk_0C, i++) {
Gfx* displayList;
polygonDlist = spB4->unk_00;
if (iREG(86) != 0) {
temp = sp78;
for (phi_v1 = 0; phi_v1 < polygon2->num; phi_v1++, temp++) {
if (polygonDlist == temp) {
polygonDlistIter = polygonDlistFirst;
for (j = 0; j < polygon2->num; j++, polygonDlistIter++) {
if (polygonDlist == polygonDlistIter) {
break; // This loop does nothing?
}
}
if (((iREG(86) == 1) && (iREG(89) >= sp9C)) || ((iREG(86) == 2) && (iREG(89) == sp9C))) {
if (((iREG(86) == 1) && (iREG(89) >= i)) || ((iREG(86) == 2) && (iREG(89) == i))) {
if (flags & 1) {
temp2 = polygonDlist->opa;
if (temp2 != NULL) {
gSPDisplayList(POLY_OPA_DISP++, temp2);
displayList = polygonDlist->opa;
if (displayList != NULL) {
gSPDisplayList(POLY_OPA_DISP++, displayList);
}
}
if (flags & 2) {
temp2 = polygonDlist->xlu;
if (temp2 != NULL) {
gSPDisplayList(POLY_XLU_DISP++, temp2);
displayList = polygonDlist->xlu;
if (displayList != NULL) {
gSPDisplayList(POLY_XLU_DISP++, displayList);
}
}
}
} else {
if (flags & 1) {
temp2 = polygonDlist->opa;
if (temp2 != NULL) {
gSPDisplayList(POLY_OPA_DISP++, temp2);
displayList = polygonDlist->opa;
if (displayList != NULL) {
gSPDisplayList(POLY_OPA_DISP++, displayList);
}
}
if (flags & 2) {
temp2 = polygonDlist->xlu;
if (temp2 != NULL) {
gSPDisplayList(POLY_XLU_DISP++, temp2);
displayList = polygonDlist->xlu;
if (displayList != NULL) {
gSPDisplayList(POLY_XLU_DISP++, displayList);
}
}
}
}
iREG(88) = sp9C - 1;
iREG(88) = i - 1;
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_room.c", 430);
}
@ -250,7 +250,6 @@ void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 h
u16 tlutCount, f32 frameX, f32 frameY) {
Gfx* displayListHead;
uObjBg* bg;
s32 temp;
displayListHead = *displayList;
func_80096238(SEGMENTED_TO_VIRTUAL(source));
@ -312,31 +311,31 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) {
Gfx* spA8;
PolygonType1* polygon1;
PolygonDlist* polygonDlist;
u32 sp9C;
u32 sp98;
u32 sp94;
u32 sp90;
u32 isFixedCamera;
u32 drawBg;
u32 drawOpa;
u32 drawXlu;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_room.c", 628);
camera = GET_ACTIVE_CAM(globalCtx);
sp9C = (camera->setting == CAM_SET_PREREND_FIXED);
isFixedCamera = camera->setting == CAM_SET_PREREND_FIXED;
polygon1 = &room->mesh->polygon1;
polygonDlist = SEGMENTED_TO_VIRTUAL(polygon1->dlist);
sp98 = (flags & 1) && sp9C && polygon1->single.source && !(SREG(25) & 1);
sp94 = (flags & 1) && polygonDlist->opa && !(SREG(25) & 2);
sp90 = (flags & 2) && polygonDlist->xlu && !(SREG(25) & 4);
drawBg = (flags & 1) && isFixedCamera && polygon1->single.source && !(SREG(25) & 1);
drawOpa = (flags & 1) && (polygonDlist->opa != NULL) && !(SREG(25) & 2);
drawXlu = (flags & 2) && (polygonDlist->xlu != NULL) && !(SREG(25) & 4);
if (sp94 || sp98) {
if (drawOpa || drawBg) {
gSPSegment(POLY_OPA_DISP++, 0x03, room->segment);
if (sp94) {
if (drawOpa) {
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, polygonDlist->opa);
}
if (sp98) {
if (drawBg) {
// gSPLoadUcodeL(POLY_OPA_DISP++, rspS2DEX)?
gSPLoadUcodeEx(POLY_OPA_DISP++, OS_K0_TO_PHYSICAL(D_80113070), OS_K0_TO_PHYSICAL(D_801579A0), 0x800);
@ -356,7 +355,7 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) {
}
}
if (sp90) {
if (drawXlu) {
gSPSegment(POLY_XLU_DISP++, 0x03, room->segment);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD);
@ -403,47 +402,49 @@ BgImage* func_80096A74(PolygonType1* polygon1, GlobalContext* globalCtx) {
// Room Draw Polygon Type 1 - Multi Format
void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) {
Camera* camera;
Gfx* spA8;
Gfx* gfx;
PolygonType1* polygon1;
BgImage* bgImage;
PolygonDlist* polygonDlist;
u32 sp98;
u32 sp94;
u32 sp90;
u32 sp8C;
u32 isFixedCamera;
u32 drawBg;
u32 drawOpa;
u32 drawXlu;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_room.c", 752);
camera = GET_ACTIVE_CAM(globalCtx);
sp98 = (camera->setting == CAM_SET_PREREND_FIXED);
isFixedCamera = camera->setting == CAM_SET_PREREND_FIXED;
polygon1 = &room->mesh->polygon1;
polygonDlist = SEGMENTED_TO_VIRTUAL(polygon1->dlist);
bgImage = func_80096A74(polygon1, globalCtx);
sp94 = (flags & 1) && sp98 && bgImage->source && !(SREG(25) & 1);
sp90 = (flags & 1) && polygonDlist->opa && !(SREG(25) & 2);
sp8C = (flags & 2) && polygonDlist->xlu && !(SREG(25) & 4);
drawBg = (flags & 1) && isFixedCamera && bgImage->source && !(SREG(25) & 1);
drawOpa = (flags & 1) && (polygonDlist->opa != NULL) && !(SREG(25) & 2);
drawXlu = (flags & 2) && (polygonDlist->xlu != NULL) && !(SREG(25) & 4);
if (sp90 || sp94) {
if (drawOpa || drawBg) {
gSPSegment(POLY_OPA_DISP++, 0x03, room->segment);
if (sp90) {
if (drawOpa) {
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_OPA_DISP++, polygonDlist->opa);
}
if (sp94) {
if (drawBg) {
// gSPLoadUcodeL(POLY_OPA_DISP++, rspS2DEX)?
gSPLoadUcodeEx(POLY_OPA_DISP++, OS_K0_TO_PHYSICAL(D_80113070), OS_K0_TO_PHYSICAL(D_801579A0), 0x800);
{
Vec3f sp5C;
spA8 = POLY_OPA_DISP;
Camera_GetSkyboxOffset(&sp5C, camera);
func_8009638C(&spA8, bgImage->source, bgImage->tlut, bgImage->width, bgImage->height, bgImage->fmt,
Vec3f skyboxOffset;
gfx = POLY_OPA_DISP;
Camera_GetSkyboxOffset(&skyboxOffset, camera);
func_8009638C(&gfx, bgImage->source, bgImage->tlut, bgImage->width, bgImage->height, bgImage->fmt,
bgImage->siz, bgImage->mode0, bgImage->tlutCount,
(sp5C.x + sp5C.z) * 1.2f + sp5C.y * 0.6f, sp5C.y * 2.4f + (sp5C.x + sp5C.z) * 0.3f);
POLY_OPA_DISP = spA8;
(skyboxOffset.x + skyboxOffset.z) * 1.2f + skyboxOffset.y * 0.6f,
skyboxOffset.y * 2.4f + (skyboxOffset.x + skyboxOffset.z) * 0.3f);
POLY_OPA_DISP = gfx;
}
// gSPLoadUcode(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData())?
@ -451,7 +452,7 @@ void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) {
}
}
if (sp8C) {
if (drawXlu) {
gSPSegment(POLY_XLU_DISP++, 0x03, room->segment);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(POLY_XLU_DISP++, &gMtxClear, G_MTX_MODELVIEW | G_MTX_LOAD);