diff --git a/assets/test_chambers/test_chamber_00/test_chamber_00_0.blend b/assets/test_chambers/test_chamber_00/test_chamber_00_0.blend index 24037a7..b4183f9 100644 Binary files a/assets/test_chambers/test_chamber_00/test_chamber_00_0.blend and b/assets/test_chambers/test_chamber_00/test_chamber_00_0.blend differ diff --git a/src/math/plane.c b/src/math/plane.c index 922652f..d9e439c 100644 --- a/src/math/plane.c +++ b/src/math/plane.c @@ -28,6 +28,7 @@ void planeProjectPoint(struct Plane* plane, struct Vector3* point, struct Vector vector3AddScaled(point, &plane->normal, distance, output); } +// TODO figure out what to do when two points are the same void calculateBarycentricCoords(struct Vector3* a, struct Vector3* b, struct Vector3* c, struct Vector3* point, struct Vector3* output) { struct Vector3 v0; struct Vector3 v1; diff --git a/src/physics/world.c b/src/physics/world.c index 4d8125f..7cc204c 100644 --- a/src/physics/world.c +++ b/src/physics/world.c @@ -7,7 +7,7 @@ int worldCheckDoorwaySides(struct World* world, struct Vector3* position, int cu for (int i = 0; i < room->doorwayCount; ++i) { if (planePointDistance(&world->doorways[room->doorwayIndices[i]].quad.plane, position) > 0) { - sideMask |= 1 << 1; + sideMask |= 1 << i; } } @@ -20,7 +20,7 @@ int worldCheckDoorwayCrossings(struct World* world, struct Vector3* position, in for (int i = 0; i < room->doorwayCount; ++i) { struct Doorway* doorway = &world->doorways[room->doorwayIndices[i]]; - int prevSide = (sideMask & (1 << 1)) != 0; + int prevSide = (sideMask & (1 << i)) != 0; int currSide = planePointDistance(&doorway->quad.plane, position) > 0; if (prevSide != currSide) { diff --git a/src/player/player.c b/src/player/player.c index 69cc4ea..ee234c9 100644 --- a/src/player/player.c +++ b/src/player/player.c @@ -12,9 +12,9 @@ #include "../audio/soundplayer.h" #include "../audio/clips.h" -#define GRAB_RAYCAST_DISTANCE 3.5f +#define GRAB_RAYCAST_DISTANCE 2.5f -struct Vector3 gGrabDistance = {0.0f, 0.0f, -2.5f}; +struct Vector3 gGrabDistance = {0.0f, 0.0f, -1.5f}; struct Vector3 gCameraOffset = {0.0f, 0.0f, 0.0f}; struct CollisionSphere gPlayerCollider = { diff --git a/src/scene/scene.c b/src/scene/scene.c index eab119b..99b0bf5 100644 --- a/src/scene/scene.c +++ b/src/scene/scene.c @@ -29,7 +29,7 @@ #include "../decor/decor_object_list.h" #include "signals.h" -struct Vector3 gPortalGunOffset = {0.110957, -0.113587, -0.21916}; +struct Vector3 gPortalGunOffset = {0.120957, -0.113587, -0.20916}; struct Vector3 gPortalGunForward = {0.1f, -0.1f, 1.0f}; struct Vector3 gPortalGunUp = {0.0f, 1.0f, 0.0f};