tmaze 1.17.1

Simple multiplatform maze solving game for terminal written entirely in Rust
Documentation
Settings (
    // theme of the game, if None, default theme will be used.
    // default theme is automatically loaded from <game config>/themes/default_theme.json5,
    // which is generated when none is found.
    //
    // Othwerwise, you can specify your own theme file, which will be loaded
    // from the <game config>/themes directory. It can be either .json[5] or .toml format.
    // theme: "theme.json",

    // logging levels for different logging mechanisms in the game.
    // - valid levels:
    //  - trace
    //  - debug
    //  - info
    //  - warn
    //  - error
    // 
    // messages in the UI
    logging_level: "info",
    // messages in the UI if debug mode is enabled
    debug_logging_level: "debug",
    // messages in the log file
    file_logging_level: "info",

    // player will move only one space at the time,
    // otherwise it will move until other possible move
    slow: false,
    // slow: true,

    // in tower maze, player will automatically move up when possible
    disable_tower_auto_up: false,
    // disable_tower_auto_up: true,

    // when maze cannot fit on the screen
    // camera_mode:
    // - valid modes
    //  - CloseFollow - player will always be centered
    //  - EdgeFollow(horizontal margin, vertical margin)
    //     player will move on screen, but when he hits margin
    //     he will be centered on that axis.
    //     margin can be either relative (0.0 - 0.5 or absolute
    //     when it's fractional, it's relative to the viewport size
    //     when it's absolute, it's in characters
    camera_mode: CloseFollow,
    // camera_mode: EdgeFollow(10, 5),
    // camera_mode: EdgeFollow(0.25, 0.25),

    // smoothing of the camera movement, values 0.5 - 1.0
    camera_smoothing: 0.8,

    // player movement smoothing, values 0.5 - 1.0
    player_smoothing: 0.5,

    // viewport margin, space between edges of the screen and maze/dpad
    // value is a tuple of two integeres, horizontal and vertical margin
    viewport_margin: (4, 3),

    // enable mouse input
    enable_mouse: true,

    // enable dpad, it is virtual controller for mobile devices
    enable_dpad: false,

    // default algorithm used for maze generation
    default_maze_gen_algo: RandomKruskals,
    // default_maze_gen_algo: DepthFirstSearch,

    // skip prompt for maze generation algorithm
    dont_ask_for_maze_algo: true,
    // dont_ask_for_maze_algo: false,

    // update check interval
    // - valid intervals:
    //  - Never
    //  - Daily
    //  - Weekly
    //  - Monthly
    //  - Yearly
    //  - Always
    update_check_interval: Daily,

    // display update check errors,
    // when false display on successfully found new version
    display_update_check_errors: true,
    // display_update_check_errors: false,

    // enable audio, if false, no audio will be played
    enable_audio: true,
    // enable_audio: false,

    // audio volume, 0.0 - 1.0, value is clamped, must not be NaN
    audio_volume: 0.5,

    // enable music, needs to have audio enabled
    enable_music: true,
    // enable_music: false,

    // music volume, 0.0 - 1.0, value is clamped, must not be NaN
    music_volume: 0.5,

    // lists of maze presets
    mazes: [
        // Maze:
        // - title - title of the maze preset
        // - width - width of the maze
        // - height - height of the maze
        // - depth - depth of the maze
        // - tower - if true, maze will be a tower (only if depth is >1)
        // - default - first maze with "default: true", will be used as default in the menu
        MazePreset (
            title: "10x5",
            width: 10,
            height: 5,
            default: true,
        ), MazePreset (
            title: "20x10",
            width: 20,
            height: 10,
        ), MazePreset (
            title: "60x30",
            width: 60,
            height: 30,
        ), MazePreset (
            title: "200x100",
            width: 200,
            height: 100,
        ), MazePreset (
            title: "6x3x3",
            width: 6,
            height: 3,
            depth: 3,
        ), MazePreset (
            title: "10x5x5",
            width: 10,
            height: 5,
            depth: 5,
        ), MazePreset (
            title: "10x10x5 Tower",
            width: 20,
            height: 10,
            depth: 5,
            tower: true,
        ), MazePreset (
            title: "40x15x10 Tower",
            width: 40,
            height: 20,
            depth: 10,
            tower: true,
        )
    ],
)