You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Make obj_set_opacity_from_cam_dist its own function
This commit is contained in:
@@ -93,6 +93,30 @@ void obj_update_gfx_pos_and_angle(struct Object *obj) {
|
||||
obj->header.gfx.angle[2] = obj->oFaceAngleRoll & 0xFFFF;
|
||||
}
|
||||
|
||||
#ifdef OBJ_OPACITY_BY_CAM_DIST
|
||||
void obj_set_opacity_from_cam_dist(struct Object *obj) {
|
||||
f32 dist;
|
||||
Vec3f d;
|
||||
if (obj->header.gfx.node.flags & GRAPH_RENDER_BILLBOARD) {
|
||||
d[0] = (obj->oPosX - gCamera->pos[0]);
|
||||
d[2] = (obj->oPosZ - gCamera->pos[2]);
|
||||
dist = (sqr(d[0]) + sqr(d[2]));
|
||||
} else {
|
||||
vec3_diff(d, &obj->oPosVec, gCamera->pos);
|
||||
dist = (sqr(d[0]) + sqr(d[1]) + sqr(d[2]));
|
||||
}
|
||||
if (dist > 0.0f) {
|
||||
obj->header.gfx.node.flags &= ~GRAPH_RENDER_UCODE_REJ;
|
||||
}
|
||||
#ifdef PUPPYCAM
|
||||
s32 opacityDist = ((gPuppyCam.zoom > 0) ? ((dist / sqr(gPuppyCam.zoom)) * 255.0f) : 255);
|
||||
#else
|
||||
s32 opacityDist = (dist * (255.0f / sqr(1024.0f)));
|
||||
#endif
|
||||
obj->oOpacity = CLAMP(opacityDist, 0x00, 0xFF);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Push the address of a behavior command to the object's behavior stack.
|
||||
static void cur_obj_bhv_stack_push(uintptr_t bhvAddr) {
|
||||
gCurrentObject->bhvStack[gCurrentObject->bhvStackIndex] = bhvAddr;
|
||||
@@ -976,25 +1000,7 @@ void cur_obj_update(void) {
|
||||
|
||||
#ifdef OBJ_OPACITY_BY_CAM_DIST
|
||||
if (objFlags & OBJ_FLAG_OPACITY_FROM_CAMERA_DIST) {
|
||||
f32 dist;
|
||||
Vec3f d;
|
||||
if (gCurrentObject->header.gfx.node.flags & GRAPH_RENDER_BILLBOARD) {
|
||||
d[0] = (gCurrentObject->oPosX - gCamera->pos[0]);
|
||||
d[2] = (gCurrentObject->oPosZ - gCamera->pos[2]);
|
||||
dist = (sqr(d[0]) + sqr(d[2]));
|
||||
} else {
|
||||
vec3_diff(d, &gCurrentObject->oPosVec, gCamera->pos);
|
||||
dist = (sqr(d[0]) + sqr(d[1]) + sqr(d[2]));
|
||||
}
|
||||
if (dist > 0.0f) {
|
||||
gCurrentObject->header.gfx.node.flags &= ~GRAPH_RENDER_UCODE_REJ;
|
||||
}
|
||||
#ifdef PUPPYCAM
|
||||
s32 opacityDist = ((gPuppyCam.zoom > 0) ? ((dist / sqr(gPuppyCam.zoom)) * 255.0f) : 255);
|
||||
#else
|
||||
s32 opacityDist = (dist * (255.0f / sqr(1024.0f)));
|
||||
#endif
|
||||
gCurrentObject->oOpacity = CLAMP(opacityDist, 0x00, 0xFF);
|
||||
obj_set_opacity_from_cam_dist(gCurrentObject);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user