mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-20 10:37:37 -04:00
made all requested changes
This commit is contained in:
parent
d5c8eee04d
commit
2e5626b794
|
@ -31,13 +31,13 @@ struct ColliderTypeData gPortalColliderType = {
|
||||||
|
|
||||||
struct Vector3 gPortalOutline[PORTAL_LOOP_SIZE] = {
|
struct Vector3 gPortalOutline[PORTAL_LOOP_SIZE] = {
|
||||||
{0.0f, 1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{0.0f, 1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
{SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
{0.5f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0},
|
{1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0},
|
||||||
{SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
{0.0f, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{0.0f, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
{-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{-0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, -1.0f * SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
{-0.5f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0},
|
{-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, 0.0f, 0},
|
||||||
{-1.0f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
{-0.707107f * SCENE_SCALE * PORTAL_COVER_WIDTH_RADIUS, SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PORTAL_CLIPPING_PLANE_BIAS (SCENE_SCALE * 0.25f)
|
#define PORTAL_CLIPPING_PLANE_BIAS (SCENE_SCALE * 0.25f)
|
||||||
|
@ -86,12 +86,12 @@ void portalCalculateBB(struct Transform* portalTransform, struct Box3D* bb) {
|
||||||
bb->min = bb->max = portalTransform->position;
|
bb->min = bb->max = portalTransform->position;
|
||||||
|
|
||||||
struct Vector3 nextDir;
|
struct Vector3 nextDir;
|
||||||
vector3Scale(&portalUp, &nextDir, PORTAL_COVER_HEIGHT_RADIUS * 0.5f);
|
vector3Scale(&portalUp, &nextDir, PORTAL_COVER_HEIGHT_RADIUS);
|
||||||
box3DExtendDirection(bb, &nextDir, bb);
|
box3DExtendDirection(bb, &nextDir, bb);
|
||||||
vector3Negate(&nextDir, &nextDir);
|
vector3Negate(&nextDir, &nextDir);
|
||||||
box3DExtendDirection(bb, &nextDir, bb);
|
box3DExtendDirection(bb, &nextDir, bb);
|
||||||
|
|
||||||
vector3Scale(&portalRight, &nextDir, PORTAL_COVER_WIDTH_RADIUS * 0.5f);
|
vector3Scale(&portalRight, &nextDir, PORTAL_COVER_WIDTH_RADIUS);
|
||||||
box3DExtendDirection(bb, &nextDir, bb);
|
box3DExtendDirection(bb, &nextDir, bb);
|
||||||
vector3Negate(&nextDir, &nextDir);
|
vector3Negate(&nextDir, &nextDir);
|
||||||
box3DExtendDirection(bb, &nextDir, bb);
|
box3DExtendDirection(bb, &nextDir, bb);
|
||||||
|
|
|
@ -266,7 +266,7 @@ int renderPlanPortal(struct RenderPlan* renderPlan, struct Scene* scene, struct
|
||||||
struct Vector3 cameraForward;
|
struct Vector3 cameraForward;
|
||||||
quatMultVector(&next->camera.transform.rotation, &gForward, &cameraForward);
|
quatMultVector(&next->camera.transform.rotation, &gForward, &cameraForward);
|
||||||
|
|
||||||
next->camera.nearPlane = (-vector3Dot(&portalOffset, &cameraForward)) * SCENE_SCALE - SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS * 0.5f;
|
next->camera.nearPlane = (-vector3Dot(&portalOffset, &cameraForward)) * SCENE_SCALE - SCENE_SCALE * PORTAL_COVER_HEIGHT_RADIUS;
|
||||||
|
|
||||||
if (next->camera.nearPlane < current->camera.nearPlane) {
|
if (next->camera.nearPlane < current->camera.nearPlane) {
|
||||||
next->camera.nearPlane = current->camera.nearPlane;
|
next->camera.nearPlane = current->camera.nearPlane;
|
||||||
|
|
Loading…
Reference in a new issue