You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Refresh 11
This commit is contained in:
@@ -267,10 +267,15 @@ static void geo_process_perspective(struct GraphNodePerspective *node) {
|
||||
* range of this node.
|
||||
*/
|
||||
static void geo_process_level_of_detail(struct GraphNodeLevelOfDetail *node) {
|
||||
#ifdef GBI_FLOATS
|
||||
Mtx *mtx = gMatStackFixed[gMatStackIndex];
|
||||
s16 distanceFromCam = (s32) -mtx->m[3][2]; // z-component of the translation column
|
||||
#else
|
||||
// The fixed point Mtx type is defined as 16 longs, but it's actually 16
|
||||
// shorts for the integer parts followed by 16 shorts for the fraction parts
|
||||
s16 *mtx = (s16 *) gMatStackFixed[gMatStackIndex];
|
||||
s16 distanceFromCam = -mtx[14]; // z-component of the translation column
|
||||
Mtx *mtx = gMatStackFixed[gMatStackIndex];
|
||||
s16 distanceFromCam = -GET_HIGH_S16_OF_32(mtx->m[1][3]); // z-component of the translation column
|
||||
#endif
|
||||
|
||||
if (node->minDistance <= distanceFromCam && distanceFromCam < node->maxDistance) {
|
||||
if (node->node.children != 0) {
|
||||
@@ -321,7 +326,7 @@ static void geo_process_camera(struct GraphNodeCamera *node) {
|
||||
gMatStackFixed[gMatStackIndex] = mtx;
|
||||
if (node->fnNode.node.children != 0) {
|
||||
gCurGraphNodeCamera = node;
|
||||
node->matrixPtr = gMatStack[gMatStackIndex];
|
||||
node->matrixPtr = &gMatStack[gMatStackIndex];
|
||||
geo_process_node_and_siblings(node->fnNode.node.children);
|
||||
gCurGraphNodeCamera = NULL;
|
||||
}
|
||||
@@ -646,7 +651,7 @@ static void geo_process_shadow(struct GraphNodeShadow *node) {
|
||||
if (gCurGraphNodeCamera != NULL && gCurGraphNodeObject != NULL) {
|
||||
if (gCurGraphNodeHeldObject != NULL) {
|
||||
get_pos_from_transform_mtx(shadowPos, gMatStack[gMatStackIndex],
|
||||
gCurGraphNodeCamera->matrixPtr);
|
||||
*gCurGraphNodeCamera->matrixPtr);
|
||||
shadowScale = node->shadowScale;
|
||||
} else {
|
||||
vec3f_copy(shadowPos, gCurGraphNodeObject->pos);
|
||||
@@ -686,7 +691,7 @@ static void geo_process_shadow(struct GraphNodeShadow *node) {
|
||||
mtx = alloc_display_list(sizeof(*mtx));
|
||||
gMatStackIndex++;
|
||||
mtxf_translate(mtxf, shadowPos);
|
||||
mtxf_mul(gMatStack[gMatStackIndex], mtxf, gCurGraphNodeCamera->matrixPtr);
|
||||
mtxf_mul(gMatStack[gMatStackIndex], mtxf, *gCurGraphNodeCamera->matrixPtr);
|
||||
mtxf_to_mtx(mtx, gMatStack[gMatStackIndex]);
|
||||
gMatStackFixed[gMatStackIndex] = mtx;
|
||||
if (gShadowAboveWaterOrLava == 1) {
|
||||
@@ -802,7 +807,7 @@ static void geo_process_object(struct Object *node) {
|
||||
|
||||
if (node->header.gfx.unk18 == gCurGraphNodeRoot->areaIndex) {
|
||||
if (node->header.gfx.throwMatrix != NULL) {
|
||||
mtxf_mul(gMatStack[gMatStackIndex + 1], (void *) node->header.gfx.throwMatrix,
|
||||
mtxf_mul(gMatStack[gMatStackIndex + 1], *node->header.gfx.throwMatrix,
|
||||
gMatStack[gMatStackIndex]);
|
||||
} else if (node->header.gfx.node.flags & GRAPH_RENDER_BILLBOARD) {
|
||||
mtxf_billboard(gMatStack[gMatStackIndex + 1], gMatStack[gMatStackIndex],
|
||||
@@ -814,7 +819,7 @@ static void geo_process_object(struct Object *node) {
|
||||
|
||||
mtxf_scale_vec3f(gMatStack[gMatStackIndex + 1], gMatStack[gMatStackIndex + 1],
|
||||
node->header.gfx.scale);
|
||||
node->header.gfx.throwMatrix = gMatStack[++gMatStackIndex];
|
||||
node->header.gfx.throwMatrix = &gMatStack[++gMatStackIndex];
|
||||
node->header.gfx.cameraToObject[0] = gMatStack[gMatStackIndex][3][0];
|
||||
node->header.gfx.cameraToObject[1] = gMatStack[gMatStackIndex][3][1];
|
||||
node->header.gfx.cameraToObject[2] = gMatStack[gMatStackIndex][3][2];
|
||||
@@ -885,7 +890,7 @@ void geo_process_held_object(struct GraphNodeHeldObject *node) {
|
||||
translation[2] = node->translation[2] / 4.0f;
|
||||
|
||||
mtxf_translate(mat, translation);
|
||||
mtxf_copy(gMatStack[gMatStackIndex + 1], (void *) gCurGraphNodeObject->throwMatrix);
|
||||
mtxf_copy(gMatStack[gMatStackIndex + 1], *gCurGraphNodeObject->throwMatrix);
|
||||
gMatStack[gMatStackIndex + 1][3][0] = gMatStack[gMatStackIndex][3][0];
|
||||
gMatStack[gMatStackIndex + 1][3][1] = gMatStack[gMatStackIndex][3][1];
|
||||
gMatStack[gMatStackIndex + 1][3][2] = gMatStack[gMatStackIndex][3][2];
|
||||
|
||||
Reference in New Issue
Block a user