// clear everything out and reset the generator back to the beginning, keeping the current set of objects activated before new objects are generated
    public void reset()
    {
        moveDirection = Vector3.forward;

        for (int i = 0; i < (int)ObjectLocation.Last; ++i)
        {
            turnPlatform[i]        = null;
            localDistance[i]       = 0;
            localSceneDistance[i]  = 0;
            localPlatformHeight[i] = 0;
            localSceneHeight[i]    = 0;
        }
        turnOffset = Vector3.zero;

        stopObjectSpawns            = false;
        spawnData.largestScene      = largestSceneLength;
        spawnData.useWidthBuffer    = true;
        spawnData.section           = 0;
        spawnData.sectionTransition = false;

        infiniteObjectHistory.saveObjectsReset();
        sectionSelection.reset();
    }