Example #1
0
        public static (TriangleDataModel, float) FindFloorAndY(float floatX, float floatY, float floatZ)
        {
            TriangleDataModel tri = FindFloor(floatX, floatY, floatZ);

            if (tri == null)
            {
                return(tri, -11000);
            }
            float y = tri.GetTruncatedHeightOnTriangle(floatX, floatZ);

            return(tri, y);
        }
Example #2
0
        public static (TriangleDataModel, float) FindCeilingAndY(float floatX, float floatY, float floatZ)
        {
            TriangleDataModel tri = FindCeiling(floatX, floatY + 80, floatZ);

            if (tri == null)
            {
                return(tri, 20000);
            }
            float y = tri.GetTruncatedHeightOnTriangle(floatX, floatZ);

            return(tri, y);
        }
        private static void perform_ground_quarter_step(
            MutableMarioState marioState, float intendedPosX, float intendedPosY, float intendedPosZ,
            TriangleDataModel floor, List <TriangleDataModel> walls)
        {
            (intendedPosX, intendedPosZ) =
                WallDisplacementCalculator.HandleWallDisplacement(
                    intendedPosX, intendedPosY, intendedPosZ, walls, 50, 60);

            float floorHeight = floor.GetTruncatedHeightOnTriangle(intendedPosX, intendedPosZ);

            marioState.X = intendedPosX;
            marioState.Y = floorHeight;
            marioState.Z = intendedPosZ;
        }