/*
    This file is autogenerated by scripts/create_python_docstrings_from_cpp_docs.py
    Do not edit it manually. Edit the Markdown files under docs/api/cpp/ directory instead and regenerate it.
*/

#ifndef __VIZDOOM_METHODS_DOCSTRINGS_H__
#define __VIZDOOM_METHODS_DOCSTRINGS_H__

namespace vizdoom {
namespace docstrings {

namespace DoomGamePython {

    const char *init = R"DOCSTRING(Initializes ViZDoom game instance and starts a new episode.
After calling this method, the first state from a new episode will be available.
Some configuration options cannot be changed after calling this method.
Init returns ``True`` when the game was started properly and ``False`` otherwise.)DOCSTRING";

    const char *close = R"DOCSTRING(Closes ViZDoom game instance.
It is automatically invoked by the destructor.
The game can be initialized again after being closed.)DOCSTRING";

    const char *newEpisode = R"DOCSTRING(Initializes a new episode. The state of an environment is completely restarted (all variables and rewards are reset to their initial values).
After calling this method, the first state from the new episode will be available.
If the ``recording_file_path`` argument is not empty, the new episode will be recorded to this file (as a Doom lump).

In a multiplayer game, the host can call this method to finish the game.
Then the rest of the players must also call this method to start a new episode.

Note: Changed in 1.1.0)DOCSTRING";

    const char *replayEpisode = R"DOCSTRING(Replays the recorded episode from the given file using the perspective of the specified player.
Players are numbered from 1, If ``player`` argument is equal to 0,
the episode will be replayed using the perspective of the default player in the recording file.
After calling this method, the first state from the replay will be available.
All rewards, variables, and states are available when replaying the episode.

See also:

- `examples/python/record_episodes.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/record_episodes.py>`_
- `examples/python/record_multiplayer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/record_multiplayer.py>`_

Note: added in 1.1.0.)DOCSTRING";

    const char *isRunning = R"DOCSTRING(Returns ``True`` if the controlled game instance is running.)DOCSTRING";

    const char *isMultiplayerGame = R"DOCSTRING(Returns ``True`` if the game is in multiplayer mode.

See also:

- `examples/python/multiple_instances.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/multiple_instances.py>`_
- `examples/python/cig_multiplayer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/cig_multiplayer.py>`_
- `examples/python/cig_multiplayer_host.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/cig_multiplayer_host.py>`_

Note: added in 1.1.2.)DOCSTRING";

    const char *isRecordingEpisode = R"DOCSTRING(Returns ``True`` if the game is in recording mode.

Note: added in 1.1.5.)DOCSTRING";

    const char *isReplayingEpisode = R"DOCSTRING(Returns ``True`` if the game is in replay mode.

Note: added in 1.1.5.)DOCSTRING";

    const char *setAction = R"DOCSTRING(Sets the player's action for the following tics until the method is called again with new action.
Each value corresponds to a button previously specified
with :meth:`add_available_button`, or :meth:`set_available_buttons` methods,
or in the configuration file (in order of appearance).)DOCSTRING";

    const char *advanceAction = R"DOCSTRING(Processes the specified number of tics, the last action set with :meth:`set_action`
method will be repeated for each tic. If ``update_state`` argument is set,
the state will be updated after the last processed tic
and a new reward will be calculated based on all processed tics since last the last state update.
To get the new state, use :meth:`get_state` and to get the new reward use :meth:`get_last_reward`.)DOCSTRING";

    const char *makeAction = R"DOCSTRING(This method combines functionality of :meth:`set_action`, :meth:`advance_action`,
and :meth:`get_last_reward` called in this sequance.
Sets the player's action for all the next tics (the same action will be repeated for each tic),
processes the specified number of tics, updates the state and calculates a new reward from all processed tics, which is returned.)DOCSTRING";

    const char *isNewEpisode = R"DOCSTRING(Returns ``True`` if the current episode is in the initial state - the first state, no actions were performed yet.)DOCSTRING";

    const char *isEpisodeFinished = R"DOCSTRING(Returns ``True`` if the current episode is in the terminal state (is finished).
:meth:`make_action` and :meth:`advance_action` methods
will take no effect after this point (unless :meth:`new_episode` method is called).)DOCSTRING";

    const char *isEpisodeTimeoutReached = R"DOCSTRING(Returns ``True`` if the current episode is in the terminal state due to exceeding the time limit (timeout)
set with :meth:`set_episode_timeout`` method or via ``+timelimit` parameter.)DOCSTRING";

    const char *isPlayerDead = R"DOCSTRING(Returns ``True`` if the player is dead.
In singleplayer, the player's death is equivalent to the end of the episode.
In multiplayer, when the player is dead :meth:`respawn_player` method can be called.)DOCSTRING";

    const char *respawnPlayer = R"DOCSTRING(This method respawns the player after death in multiplayer mode.
After calling this method, the first state after the respawn will be available.

See also:

- :meth:`is_multiplayer_game`)DOCSTRING";

    const char *sendGameCommand = R"DOCSTRING(Sends the command to Doom console. It can be used for controlling the game, changing settings, cheats, etc.
Some commands will be blocked in some modes.

See also:

- `ZDoom Wiki: Console <http://zdoom.org/wiki/Console>`_
- `ZDoom Wiki: CVARs (console variables) <https://zdoom.org/wiki/CVARs>`_
- `ZDoom Wiki: CCMD (console commands) <https://zdoom.org/wiki/CCMDs>`_)DOCSTRING";

    const char *getState = R"DOCSTRING(Returns :class:`.GameState` object with the current game state.
If the current episode is finished, ``None`` will be returned.

Note: Changed in 1.1.0)DOCSTRING";

    const char *getServerState = R"DOCSTRING(Returns :class:`.ServerState` object with the current server state.

Note: added in 1.1.6.)DOCSTRING";

    const char *getLastAction = R"DOCSTRING(Returns the last action performed.
Each value corresponds to a button added with :meth:`set_available_buttons`
or/and :meth:`add_available_button` (in order of appearance).
Most useful in ``SPECTATOR`` mode.)DOCSTRING";

    const char *getEpisodeTime = R"DOCSTRING(Returns number of current episode tic.)DOCSTRING";

    const char *save = R"DOCSTRING(Saves a game's internal state to the file using ZDoom save game functionality.

Note: added in 1.1.9.)DOCSTRING";

    const char *load = R"DOCSTRING(Loads a game's internal state from the file using ZDoom load game functionality.
A new state is available after loading.
Loading the game state does not reset the current episode state,
tic counter/time and total reward state keep their values.

Note: added in 1.1.9.)DOCSTRING";

    const char *getAvailableButtons = R"DOCSTRING(Returns the list of available :class:`.Button` s,
that were added with :meth:`set_available_buttons` or/and :meth:`add_available_button` methods.)DOCSTRING";

    const char *setAvailableButtons = R"DOCSTRING(Sets given list of :class:`.Button` s (e.g. ``TURN_LEFT``, ``MOVE_FORWARD``) as available buttons.

Has no effect when the game is running.

Default value: `[]` (empty vector/list, no buttons).

Config key: ``availableButtons``/``available_buttons`` (list of values))DOCSTRING";

    const char *addAvailableButton = R"DOCSTRING(Adds :class:`.Button` type (e.g. ``TURN_LEFT``, ``MOVE_FORWARD``) to available buttons and sets the maximum allowed, absolute value for the specified button.
If the given button has already been added, it will not be added again, but the maximum value will be overridden.

Has no effect when the game is running.

Config key: ``availableButtons``/``available_buttons`` (list of values))DOCSTRING";

    const char *clearAvailableButtons = R"DOCSTRING(Clears all available :class:`.Button`s added so far.

Has no effect when the game is running.)DOCSTRING";

    const char *getAvailableButtonsSize = R"DOCSTRING(Returns the number of available :class:`.Button` s.)DOCSTRING";

    const char *setButtonMaxValue = R"DOCSTRING(Sets the maximum allowed absolute value for the specified :class:`.Button`.
Setting the maximum value to 0 results in no constraint at all (infinity).
This method makes sense only for delta buttons.
The constraints limit applies in all Modes.

Default value: 0 (no constraint, infinity).

Has no effect when the game is running.)DOCSTRING";

    const char *getButtonMaxValue = R"DOCSTRING(Returns the maximum allowed absolute value for the specified :class:`.Button`.)DOCSTRING";

    const char *getButton = R"DOCSTRING(Returns the current state of the specified :class:`.Button` (``ATTACK``, ``USE`` etc.).)DOCSTRING";

    const char *getAvailableGameVariables = R"DOCSTRING(Returns the list of available :class:`.GameVariable` s,
that were added with :meth:`set_available_game_variables` or/and :meth:`add_available_game_variable` methods.)DOCSTRING";

    const char *setAvailableGameVariables = R"DOCSTRING(Sets list of :class:`.GameVariable` s as available game variables in the :class:`.GameState` returned by :meth:`get_state` method.

Has no effect when the game is running.

Default value: `[]` (empty vector/list, no game variables).

Config key: ``availableGameVariables``/``available_game_variables`` (list of values))DOCSTRING";

    const char *addAvailableGameVariable = R"DOCSTRING(Adds the specified :class:`.GameVariable` to the list of available game variables (e.g. ``HEALTH``, ``AMMO1``, ``ATTACK_READY``) in the :class:`.GameState` returned by :meth:`get_state` method.

Has no effect when the game is running.

Config key: ``availableGameVariables``/``available_game_variables`` (list of values))DOCSTRING";

    const char *clearAvailableGameVariables = R"DOCSTRING(Clears the list of available :class:`.GameVariable` s that are included in the :class:`.GameState` returned by :meth:`get_state` method.

Has no effect when the game is running.)DOCSTRING";

    const char *getAvailableGameVariablesSize = R"DOCSTRING(Returns the number of available :class:`.GameVariable`.
It corresponds to taking the size of the list returned by :meth:`get_available_game_variables`.)DOCSTRING";

    const char *getGameVariable = R"DOCSTRING(Returns the current value of the specified :class:`.GameVariable` (``HEALTH``, ``AMMO1`` etc.).
The specified game variable does not need to be among available game variables (included in the state).
It could be used for e.g. shaping. Returns 0 in case of not finding given :class:`.GameVariable`.)DOCSTRING";

    const char *setGameArgs = R"DOCSTRING(Sets custom arguments that will be passed to ViZDoom process during initialization.
It is useful for changing additional game settings.
Use with caution, as in rare cases it may prevent the library from working properly.
Using this method is equivalent to first calling :meth:`clear_game_args` and then :meth:`add_game_args`.

Default value: ``""`` (empty string, no additional arguments).

Config key: ``gameArgs``/``game_args``

See also:

- `ZDoom Wiki: Command line parameters <http://zdoom.org/wiki/Command_line_parameters>`_
- `ZDoom Wiki: CVARs (Console Variables) <http://zdoom.org/wiki/CVARS>`_

Note: added in 1.2.3.)DOCSTRING";

    const char *addGameArgs = R"DOCSTRING(Adds custom arguments that will be passed to ViZDoom process during initialization.
It is useful for changing additional game settings.
Use with caution, as in rare cases it may prevent the library from working properly.

Config key: ``gameArgs``/``game_args``

See also:

- `ZDoom Wiki: Command line parameters <http://zdoom.org/wiki/Command_line_parameters>`_
- `ZDoom Wiki: CVARs (Console Variables) <http://zdoom.org/wiki/CVARS>`_)DOCSTRING";

    const char *clearGameArgs = R"DOCSTRING(Clears all arguments previously added with :meth:`set_game_args` or/and :meth:`add_game_args` methods.)DOCSTRING";

    const char *getGameArgs = R"DOCSTRING(Returns the additional arguments for ViZDoom process set with :meth:`set_game_args` or/and :meth:`add_game_args` methods.

Note: added in 1.2.3.)DOCSTRING";

    const char *getLivingReward = R"DOCSTRING(Returns the reward granted to the player after every tic.)DOCSTRING";

    const char *setLivingReward = R"DOCSTRING(Sets the reward granted to the player after every tic. A negative value is also allowed.

Default value: 0

Config key: ``livingReward``/``living_reward``)DOCSTRING";

    const char *getDeathPenalty = R"DOCSTRING(Returns the penalty for the player's death.)DOCSTRING";

    const char *setDeathPenalty = R"DOCSTRING(Sets a penalty for the player's death. Note that in case of a negative value, the player will be rewarded upon dying.

Default value: 0

Config key: ``deathPenalty``/``death_penalty``)DOCSTRING";

    const char *getDeathReward = R"DOCSTRING(Returns the reward for the player's death. It is equal to negation of value returned by :meth:`get_death_reward`.

Note: added in 1.3.0)DOCSTRING";

    const char *setDeathReward = R"DOCSTRING(Sets a reward for the player's death. A negative value is also allowed.

Default value: 0

Config key: ``deathReward``/``death_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getMapExitReward = R"DOCSTRING(Returns the reward for finishing a map.

Note: added in 1.3.0)DOCSTRING";

    const char *setMapExitReward = R"DOCSTRING(Sets a reward for finishing a map (finding an exit or succeeding in other programmed objective). A negative value is also allowed.

Default value: 0

Config key: ``mapExitReward``/``map_exit_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getKillReward = R"DOCSTRING(Returns the reward granted to the player for killing an enemy.

Note: added in 1.3.0)DOCSTRING";

    const char *setKillReward = R"DOCSTRING(Sets the reward granted to the player for killing an enemy. A negative value is also allowed.

Default value: 0

Config key: ``killReward``/``kill_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getItemReward = R"DOCSTRING(Returns the reward granted to the player for picking up an item.

Note: added in 1.3.0)DOCSTRING";

    const char *setItemReward = R"DOCSTRING(Sets the reward granted to the player for picking up an item. A negative value is also allowed.

Default value: 0

Config key: ``itemReward``/``item_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getSecretReward = R"DOCSTRING(Returns the reward granted to the player for discovering a secret.

Note: added in 1.3.0)DOCSTRING";

    const char *setSecretReward = R"DOCSTRING(Sets the reward granted to the player for discovering a secret. A negative value is also allowed.

Default value: 0

Config key: ``secretReward``/``secret_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getFragReward = R"DOCSTRING(Returns the reward granted to the player for scoring a frag (killing another player in multiplayer).

Note: added in 1.3.0)DOCSTRING";

    const char *setFragReward = R"DOCSTRING(Sets the reward granted to the player for scoring a frag. A negative value is also allowed.

Default value: 0

Config key: ``fragReward``/``frag_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getHitReward = R"DOCSTRING(Returns the reward granted to the player for hitting (damaging) an enemy.

Note: added in 1.3.0)DOCSTRING";

    const char *setHitReward = R"DOCSTRING(Sets the reward granted to the player for hitting (damaging) an enemy.
The reward is the same despite the amount of damage dealt.
A negative value is also allowed.

Default value: 0

Config key: ``hitReward``/``hit_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getHitTakenReward = R"DOCSTRING(Returns the reward granted to the player when hit (damaged) by an enemy.
The reward is the same despite the amount of damage taken.

Note: added in 1.3.0)DOCSTRING";

    const char *setHitTakenReward = R"DOCSTRING(Sets the reward granted to the player when hit (damaged) by an enemy.
The reward is the same despite the amount of damage taken.
A negative value is also allowed.

Default value: 0

Config key: ``hitTakenReward``/``hit_taken_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getHitTakenPenalty = R"DOCSTRING(Returns the penalty for the player when hit (damaged) by an enemy.
The penalty is the same despite the amount of damage taken.
It is equal to negation of value returned by :meth:`get_hit_taken_reward`.

Note: added in 1.3.0)DOCSTRING";

    const char *setHitTakenPenalty = R"DOCSTRING(Sets a penalty for the player when hit (damaged) by an enemy.
The penalty is the same despite the amount of damage taken.
Note that in case of a negative value, the player will be rewarded upon being hit.

Default value: 0

Config key: ``hitTakenPenalty``/``hit_taken_penalty``

Note: added in 1.3.0)DOCSTRING";

    const char *getDamageMadeReward = R"DOCSTRING(Returns the reward granted to the player for damaging an enemy, proportional to the damage dealt.
Every point of damage dealt to an enemy will result in a reward equal to the value returned by this method.

Note: added in 1.3.0)DOCSTRING";

    const char *setDamageMadeReward = R"DOCSTRING(Sets the reward granted to the player for damaging an enemy, proportional to the damage dealt.
Every point of damage dealt to an enemy will result in a reward equal to the value returned by this method.
A negative value is also allowed.


Default value: 0

Config key: ``damageMadeReward``/``damage_made_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getDamageTakenReward = R"DOCSTRING(Returns the reward granted to the player when damaged by an enemy, proportional to the damage received.
Every point of damage taken will result in a reward equal to the value returned by this method.

Note: added in 1.3.0)DOCSTRING";

    const char *setDamageTakenReward = R"DOCSTRING(Sets the reward granted to the player when damaged by an enemy, proportional to the damage received.
Every point of damage taken will result in a reward equal to the set value.
A negative value is also allowed.

Default value: 0

Config key: ``damageTakenReward``/``damage_taken_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getDamageTakenPenalty = R"DOCSTRING(Returns the penalty for the player when damaged by an enemy, proportional to the damage received.
Every point of damage taken will result in a penalty equal to the value returned by this method.
It is equal to negation of value returned by :meth:`get_damage_taken_reward`.

Note: added in 1.3.0)DOCSTRING";

    const char *setDamageTakenPenalty = R"DOCSTRING(Sets a penalty for the player when damaged by an enemy, proportional to the damage received.
Every point of damage taken will result in a penalty equal to the set value.
Note that in case of a negative value, the player will be rewarded upon receiving damage.

Default value: 0

Config key: ``damageTakenPenalty``/``damage_taken_penalty``

Note: added in 1.3.0)DOCSTRING";

    const char *getHealthReward = R"DOCSTRING(Returns the reward granted to the player for getting health points.

Note: added in 1.3.0)DOCSTRING";

    const char *setHealthReward = R"DOCSTRING(Sets the reward granted to the player for getting health points. A negative value is also allowed.

Default value: 0

Config key: ``healthReward``/``health_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getArmorReward = R"DOCSTRING(Returns the reward granted to the player for getting armor points.

Note: added in 1.3.0)DOCSTRING";

    const char *setArmorReward = R"DOCSTRING(Sets the reward granted to the player for getting armor points. A negative value is also allowed.

Default value: 0

Config key: ``armorReward``/``armor_reward``

Note: added in 1.3.0)DOCSTRING";

    const char *getLastReward = R"DOCSTRING(Returns a reward granted after the last update of state.)DOCSTRING";

    const char *getTotalReward = R"DOCSTRING(Returns the sum of all rewards gathered in the current episode.)DOCSTRING";

    const char *loadConfig = R"DOCSTRING(Loads configuration (resolution, available buttons, game variables etc.) from a configuration file.
In case of multiple invocations, older configurations will be overwritten by the recent ones.
Overwriting does not involve resetting to default values. Thus only overlapping parameters will be changed.
The method returns ``True`` if the whole configuration file was correctly read and applied,
`False` if the file contained errors.

If the file relative path is given, it will be searched for in the following order: ``<current directory>``, ``<current directory>/scenarios/``, ``<ViZDoom library location>/scenarios/``.

Relative paths in the config file (e.g. for ``doom_scenario_path``) are resolved relative to the config file location.)DOCSTRING";

    const char *setConfig = R"DOCSTRING(Sets configuration from a config string or dictionary (Python only).

This method accepts either a configuration string (in the same format as .cfg files)
or a Python dictionary with configuration key-value pairs.

When using a Python dictionary:
- Keys should be configuration parameter names (e.g., 'screen_resolution', 'doom_skill')
- Values can be:
  - Primitive types: str, int, float, bool
  - Enums: Button, GameVariable, ScreenResolution, ScreenFormat, SamplingRate, Mode, AutomapMode
  - Lists: for 'available_buttons' and 'available_game_variables'

Relative paths (e.g., for 'doom_scenario_path') are resolved relative to the current working directory.

Python example:
```
    game.set_config({
        'screen_resolution': ScreenResolution.RES_640X480,
        'screen_format': ScreenFormat.CRCGCB,
        'doom_skill': 5,
        'available_buttons': [Button.MOVE_LEFT, Button.MOVE_RIGHT, Button.ATTACK],
        'available_game_variables': [GameVariable.AMMO2],
        'living_reward': -1
    })
```

Returns ``True`` if the configuration was successfully applied, ``False`` if errors occurred.

Note: added in 1.3.0)DOCSTRING";

    const char *getMode = R"DOCSTRING(Returns the current :class:`.Mode` (``PLAYER``, ``SPECTATOR``, ``ASYNC_PLAYER``, ``ASYNC_SPECTATOR``).)DOCSTRING";

    const char *setMode = R"DOCSTRING(Sets the :class:`.Mode` (``PLAYER``, ``SPECTATOR``, ``ASYNC_PLAYER``, ``ASYNC_SPECTATOR``) in which the game will be running.

Default value: ``PLAYER``.

Has no effect when the game is running.

Config key: ``mode``)DOCSTRING";

    const char *getTicrate = R"DOCSTRING(Returns current ticrate.

Note: added in 1.1.0.)DOCSTRING";

    const char *setTicrate = R"DOCSTRING(Sets the ticrate for ASNYC Modes - number of logic tics executed per second.
The default Doom ticrate is 35. This value will play a game at normal speed.

Default value: 35 (default Doom ticrate).

Has no effect when the game is running.

Config key: ``ticrate``

See also:

- `examples/python/ticrate.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/ticrate.py>`_

Note: added in 1.1.0.)DOCSTRING";

    const char *getViZDoomPath = R"DOCSTRING(Returns the path to the ViZDoom engine executable vizdoom.)DOCSTRING";

    const char *setViZDoomPath = R"DOCSTRING(Sets the path to the ViZDoom engine executable vizdoom.
We recommend not changing this path unless you know what you are doing.

Default value: ``<ViZDoom library location>/<vizdoom or vizdoom.exe on Windows>``.

Config key: ``ViZDoomPath``/``vizdoom_path``)DOCSTRING";

    const char *getDoomGamePath = R"DOCSTRING(Returns the path to the Doom engine based game file (wad format).)DOCSTRING";

    const char *setDoomGamePath = R"DOCSTRING(Sets the path to the Doom engine-based game file (wad format).
If set to empty, DoomGame will look for doom2.wad, and freedoom2.wad (in that order) in the working directory first and then in ViZDoom's installation directory
(where vizdoom library/pyd is).
If the path is set and the file does not exist, ViZDoom will check if the file exists in the working directory and then in ViZDoom's installation directory.

Default value: ``""``

Config key: ``DoomGamePath``/``doom_game_path``)DOCSTRING";

    const char *getDoomScenarioPath = R"DOCSTRING(Returns the path to the additional scenario file (wad format).)DOCSTRING";

    const char *setDoomScenarioPath = R"DOCSTRING(Sets the path to an additional scenario file (wad format).
If not provided, the default maps of selected Doom engine-based game will be used.

Default value: ``""``

Config key: ``DoomScenarioPath``/``doom_scenario_path``)DOCSTRING";

    const char *getDoomMap = R"DOCSTRING(Returns the map name to be used.)DOCSTRING";

    const char *setDoomMap = R"DOCSTRING(Sets the map name to be used. The map name is case insensitive.

Default value: ``"map01"``, if set to empty ``"map01"`` will be used.

Config key: ``DoomMap``/``doom_map``)DOCSTRING";

    const char *getDoomSkill = R"DOCSTRING(Returns the Doom game difficulty level (skill).)DOCSTRING";

    const char *setDoomSkill = R"DOCSTRING(Sets Doom game difficulty level, which is called skill in Doom.
The higher the skill, the harder the game becomes.
Skill level affects monsters' aggressiveness, monsters' speed, weapon damage, ammunition quantities, etc.
Takes effect from the next episode.

- 1 - VERY EASY, "I'm Too Young to Die" in Doom/Doom 2.
- 2 - EASY, "Hey, Not Too Rough" in Doom/Doom 2.
- 3 - NORMAL, "Hurt Me Plenty" in Doom/Doom 2.
- 4 - HARD, "Ultra-Violence" in Doom/Doom 2.
- 5 - VERY HARD, "Nightmare!" in Doom/Doom 2.
Default value: 3

Config key: ``DoomSkill``/``doom_skill``)DOCSTRING";

    const char *getDoomConfigPath = R"DOCSTRING(Returns the path for ZDoom's configuration file.)DOCSTRING";

    const char *setDoomConfigPath = R"DOCSTRING(Sets the path for ZDoom's configuration file.
The file is responsible for the configuration of the ZDoom engine itself.
If it does not exist, it will be created after the ``vizdoom`` executable is run.
This method is not needed for most of the tasks and is added for the convenience of users with hacking tendencies.

Default value: ``""``, if left empty ``"_vizdoom.ini"`` will be used.

Config key: ``DoomConfigPath``/``doom_config_path``)DOCSTRING";

    const char *getSeed = R"DOCSTRING(Returns ViZDoom's seed.)DOCSTRING";

    const char *setSeed = R"DOCSTRING(Sets the seed of ViZDoom's RNG that generates seeds (initial state) for episodes.

Default value: randomized in constructor

Config key: ``seed``

See also:

- `examples/python/seed.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/seed.py>`_)DOCSTRING";

    const char *getEpisodeStartTime = R"DOCSTRING(Returns the start time (delay) of every episode in tics.)DOCSTRING";

    const char *setEpisodeStartTime = R"DOCSTRING(Sets the start time (delay) of every episode in tics.
Every episode will effectively start (from the user's perspective) after the provided number of tics.

Default value: 1

Config key: ``episodeStartTime``/``episode_start_time``)DOCSTRING";

    const char *getEpisodeTimeout = R"DOCSTRING(Returns the number of tics after which the episode will be finished.)DOCSTRING";

    const char *setEpisodeTimeout = R"DOCSTRING(Sets the number of tics after which the episode will be finished. 0 will result in no timeout.

Default value: 0

Config key: ``episodeTimeout``/``episode_timeout``)DOCSTRING";

    const char *setScreenResolution = R"DOCSTRING(Sets the screen resolution and additional buffers (depth, labels, and automap). ZDoom engine supports only specific resolutions.
Supported resolutions are part of :class:`.ScreenResolution` enumeration (e.g., ``RES_320X240``, ``RES_640X480``, ``RES_1920X1080``).
The buffers, as well as the content of ViZDoom's display window, will be affected.

Default value: ``RES_320X240``

Has no effect when the game is running.

Config key: ``screenResolution``/``screen_resolution``)DOCSTRING";

    const char *getScreenFormat = R"DOCSTRING(Returns the format of the screen buffer and the automap buffer.)DOCSTRING";

    const char *setScreenFormat = R"DOCSTRING(Sets the format of the screen buffer and the automap buffer.
Supported formats are defined in :class:`.ScreenFormat` enumeration type (e.g. ``CRCGCB``, ``RGB24``, ``GRAY8``).
The format change affects only the buffers, so it will not have any effect on the content of ViZDoom's display window.

Default value: ``CRCGCB``

Has no effect when the game is running.

Config key: ``screenFormat``/``screen_format``)DOCSTRING";

    const char *isDepthBufferEnabled = R"DOCSTRING(Returns ``True`` if the depth buffer is enabled.)DOCSTRING";

    const char *setDepthBufferEnabled = R"DOCSTRING(Enables rendering of the depth buffer, it will be available in the state.
The buffer always has the same resolution as the screen buffer.
Depth buffer will contain noise if ``viz_nocheat`` flag is enabled.

Default value: ``False``

Has no effect when the game is running.

Config key: ``depthBufferEnabled``/``depth_buffer_enabled``

See also:

- :class:`.GameState`
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_

Note: added in 1.1.0.)DOCSTRING";

    const char *isLabelsBufferEnabled = R"DOCSTRING(Returns ``True`` if the labels buffer is enabled.

Note: added in 1.1.0.)DOCSTRING";

    const char *setLabelsBufferEnabled = R"DOCSTRING(Enables rendering of the labels buffer, it will be available in the state with the vector of :class:`.Label` s.
The buffer always has the same resolution as the screen buffer.
LabelsBuffer will contain noise if ``viz_nocheat`` is enabled.

Default value: ``False``

Has no effect when the game is running.

Config key: ``labelsBufferEnabled``/``labels_buffer_enabled``

See also:

- :class:`.GameState`
- `examples/python/labels_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/labels_buffer.py>`_
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_

Note: added in 1.1.0.)DOCSTRING";

    const char *isAutomapBufferEnabled = R"DOCSTRING(Returns ``True`` if the automap buffer is enabled.

Note: added in 1.1.0.)DOCSTRING";

    const char *setAutomapBufferEnabled = R"DOCSTRING(Enables rendering of the automap buffer, it will be available in the state.
The buffer always has the same resolution as the screen buffer.

Default value: ``False``

Has no effect when the game is running.

Config key: ``automapBufferEnabled``/``automap_buffer_enabled``

See also:

- :class:`.GameState`
- `examples/python/automap_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/automap_buffer.py>`_
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_,

Note: added in 1.1.0.)DOCSTRING";

    const char *setAutomapMode = R"DOCSTRING(Sets the :class:`.AutomapMode` (``NORMAL``, ``WHOLE``, ``OBJECTS``, ``OBJECTS_WITH_SIZE``),
which determines what will be visible on it.

Default value: ``NORMAL``

Config key: ``automapMode``/``automap_mode``

Note: added in 1.1.0.)DOCSTRING";

    const char *setAutomapRotate = R"DOCSTRING(Determine if the automap will be rotating with the player.
If ``False``, north always will be at the top of the buffer.

Default value: ``False``

Config key: ``automapRotate``/``automap_rotate``

Note: added in 1.1.0.)DOCSTRING";

    const char *setAutomapRenderTextures = R"DOCSTRING(Determine if the automap will be textured, showing the floor textures.

Default value: ``True``

Config key: ``automapRenderTextures``/``automap_render_textures``

Note: added in 1.1.0.)DOCSTRING";

    const char *setAutomapRenderObjectsAsSprites = R"DOCSTRING(Controls whether things (objects, monsters, items, etc.) are rendered as sprites or as simple triangles on the automap.

When enabled (```True```), things are displayed as rotated sprites with their actual appearance. When disabled (```False```), things are shown as simple triangular markers.
Works only with ``OBJECTS`` and ``OBJECTS_WITH_SIZE`` automap modes.

Default value: ``False``

Config key: ``automapRenderObjectsAsSprites``/``automap_render_objects_as_sprites``

See also:

- :meth:`set_automap_mode`,

Note: added in 1.3.0.)DOCSTRING";

    const char *setRenderHud = R"DOCSTRING(Determine if the hud will be rendered in the game.

Default value: ``False``

Config key: ``renderHud``/``render_hud``)DOCSTRING";

    const char *setRenderMinimalHud = R"DOCSTRING(Determine if the minimalistic version of the hud will be rendered instead of the full hud.

Default value: ``False``

Config key: ``renderMinimalHud``/``render_minimal_hud``

Note: added in 1.1.0.)DOCSTRING";

    const char *setRenderWeapon = R"DOCSTRING(Determine if the weapon held by the player will be rendered in the game.

Default value: ``True``

Config key: ``renderWeapon``/``render_weapon``)DOCSTRING";

    const char *setRenderCrosshair = R"DOCSTRING(Determine if the crosshair will be rendered in the game.

Default value: ``False``

Config key: ``renderCrosshair``/``render_crosshair``)DOCSTRING";

    const char *setRenderDecals = R"DOCSTRING(Determine if the decals (marks on the walls) will be rendered in the game.

Default value: ``True``

Config key: ``renderDecals``/``render_decals``)DOCSTRING";

    const char *setRenderParticles = R"DOCSTRING(Determine if the particles will be rendered in the game.

Default value: ``True``

Config key: ``renderParticles``/``render_particles``)DOCSTRING";

    const char *setRenderEffectsSprites = R"DOCSTRING(Determine if some effects sprites (gun puffs, blood splats etc.) will be rendered in the game.

Default value: ``True``

Config key: ``renderEffectsSprites``/``render_effects_sprites``

Note: added in 1.1.0.)DOCSTRING";

    const char *setRenderMessages = R"DOCSTRING(Determine if in-game messages (information about pickups, kills, etc.) will be rendered in the game.

Default value: ``False``

Config key: ``renderMessages``/``render_messages``

Note: added in 1.1.0.)DOCSTRING";

    const char *setRenderCorpses = R"DOCSTRING(Determine if actors' corpses will be rendered in the game.

Default value: ``True``

Config key: ``renderCorpses``/``render_corpses``

Note: added in 1.1.0.)DOCSTRING";

    const char *setRenderScreenFlashes = R"DOCSTRING(Determine if the screen flash effect upon taking damage or picking up items will be rendered in the game.

Default value: ``True``

Config key: ``renderScreenFlashes``/``render_screen_flashes``

Note: added in 1.1.0.)DOCSTRING";

    const char *setRenderAllFrames = R"DOCSTRING(Determine if all frames between states will be rendered (when skip greater than 1 is used).
Allows smooth preview but can reduce performance.
It only makes sense to use it if the window is visible.

Default value: ``False``

Config key: ``renderAllFrames``/``render_all_frames``

See also:

- :meth:`set_window_visible`

Note: added in 1.1.3.)DOCSTRING";

    const char *setWindowVisible = R"DOCSTRING(Determines if ViZDoom's window will be visible.
ViZDoom with window disabled can be used on Linux systems without X Server.

Default value: ``False``

Has no effect when the game is running.

Config key: ``windowVisible``/``window_visible``)DOCSTRING";

    const char *setConsoleEnabled = R"DOCSTRING(Determines if ViZDoom's console output will be enabled.

Default value: ``False``

Config key: ``consoleEnabled``/``console_enabled``)DOCSTRING";

    const char *setSoundEnabled = R"DOCSTRING(Determines if ViZDoom's sound will be played.

Default value: ``False``

Config key: ``soundEnabled``/``sound_enabled``)DOCSTRING";

    const char *getScreenWidth = R"DOCSTRING(Returns game's screen width - width of screen, depth, labels, and automap buffers.)DOCSTRING";

    const char *getScreenHeight = R"DOCSTRING(Returns game's screen height - height of screen, depth, labels, and automap buffers.)DOCSTRING";

    const char *getScreenChannels = R"DOCSTRING(Returns number of channels in screen buffer and map buffer (depth and labels buffer always have one channel).)DOCSTRING";

    const char *getScreenPitch = R"DOCSTRING(Returns size in bytes of one row in screen buffer and map buffer.)DOCSTRING";

    const char *getScreenSize = R"DOCSTRING(Returns size in bytes of screen buffer and map buffer.)DOCSTRING";

    const char *isObjectsInfoEnabled = R"DOCSTRING(Returns ``True`` if the objects information is enabled.

Note: added in 1.1.8.)DOCSTRING";

    const char *setObjectsInfoEnabled = R"DOCSTRING(Enables information about all :class:`.Object` s present in the current episode/level.
It will be available in the state.

Default value: ``False``

Has no effect when the game is running.

Config key: ``objectsInfoEnabled``/``objects_info_enabled``

See also:

- :class:`.GameState`
- `examples/python/objects_and_sectors.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/objects_and_sectors.py>`_,

Note: added in 1.1.8.)DOCSTRING";

    const char *isSectorsInfoEnabled = R"DOCSTRING(Returns ``True`` if the information about sectors is enabled.

Note: added in 1.1.8.)DOCSTRING";

    const char *setSectorsInfoEnabled = R"DOCSTRING(Enables information about all :class:`.Sector` s (map layout) present in the current episode/level.
It will be available in the state.

Default value: ``False``

Has no effect when the game is running.

Config key: ``sectorsInfoEnabled``/``sectors_info_enabled``

See also:

- :class:`.GameState`
- `examples/python/objects_and_sectors.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/objects_and_sectors.py>`_

Note: added in 1.1.8.)DOCSTRING";

    const char *isAudioBufferEnabled = R"DOCSTRING(Returns ``True`` if the audio buffer is enabled.

Note: added in 1.1.9.)DOCSTRING";

    const char *setAudioBufferEnabled = R"DOCSTRING(Enables rendering of the audio buffer, it will be available in the state.
The audio buffer will contain audio from the number of the last tics specified by :meth:`set_audio_buffer_size` method.
Sampling rate can be set with :meth:`set_audio_sampling_rate` method.

Default value: ``False``

Has no effect when the game is running.

Config key: ``audioBufferEnabled``/``audio_buffer_enabled``

See also:

- :class:`.GameState`
- :class:`.SamplingRate`
- `examples/python/audio_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/audio_buffer.py>`_

Note: added in 1.1.9.)DOCSTRING";

    const char *getAudioSamplingRate = R"DOCSTRING(Returns the :class:`.SamplingRate` of the audio buffer.

See also:

- :class:`.GameState`
- `examples/python/audio_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/audio_buffer.py>`_

Note: added in 1.1.9.)DOCSTRING";

    const char *setAudioSamplingRate = R"DOCSTRING(Sets the :class:`.SamplingRate` of the audio buffer.

Default value: ``False``

Has no effect when the game is running.

Config key: ``audioSamplingRate``/``audio_sampling_rate``

See also:

- :class:`.GameState`
- `examples/python/audio_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/audio_buffer.py>`_

Note: added in 1.1.9.)DOCSTRING";

    const char *getAudioBufferSize = R"DOCSTRING(Returns the size of the audio buffer.

Note: added in 1.1.9.


See also:

- :class:`.GameState`
- `examples/python/audio_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/audio_buffer.py>`_)DOCSTRING";

    const char *setAudioBufferSize = R"DOCSTRING(Sets the size/length of the audio buffer. The size is defined by a number of logic tics.
After each action audio buffer will contain audio from the specified number of the last processed tics.
Doom uses 35 ticks per second.

Default value: 1

Has no effect when the game is running.

Config key: ``audioBufferSize``/``audio_buffer_size``

See also:

- :class:`.GameState`
- `examples/python/audio_buffer.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/audio_buffer.py>`_

Note: added in 1.1.9.)DOCSTRING";

    const char *isNotificationsBufferEnabled = R"DOCSTRING(Returns ``True`` if the notify buffer is enabled.

Note: added in 1.3.0.)DOCSTRING";

    const char *setNotificationsBufferEnabled = R"DOCSTRING(Enables notification buffer, it will be available in the state.
The notification buffer will contain text notifications from the number of the last tics specified by :meth:`set_notifications_buffer_size` method.

Default value: ``False``

Has no effect when the game is running.

Config key: ``notificationsBufferEnabled``/``notifications_buffer_enabled``

See also:

- :class:`.GameState`
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_

Note: added in 1.3.0.)DOCSTRING";

    const char *getNotificationsBufferSize = R"DOCSTRING(Returns the size of the notify buffer.

Note: added in 1.3.0.


See also:

- :class:`.GameState`
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_)DOCSTRING";

    const char *setNotificationsBufferSize = R"DOCSTRING(Sets the size of the notify buffer. The size is defined by a number of logic tics.
After each action notify buffer will contain text notifications from the specified number of the last processed tics.
Doom uses 35 ticks per second.

Default value: 1

Has no effect when the game is running.

Config key: ``notificationsBufferSize``/``notifications_buffer_size``

See also:

- :class:`.GameState`
- `examples/python/buffers.py <https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/buffers.py>`_

Note: added in 1.3.0.)DOCSTRING";

} // namespace DoomGamePython

    const char *doomTicsToMs = R"DOCSTRING(Calculates how many tics will be made during given number of milliseconds.

Note: changed in 1.1.0)DOCSTRING";

    const char *msToDoomTics = R"DOCSTRING(Calculates the number of milliseconds that will pass during specified number of tics.

Note: changed in 1.1.0)DOCSTRING";

    const char *doomTicsToSec = R"DOCSTRING(Calculates how many tics will be made during given number of seconds.

Note: added in 1.1.0)DOCSTRING";

    const char *secToDoomTics = R"DOCSTRING(Calculates the number of seconds that will pass during specified number of tics.

Note: added in 1.1.0)DOCSTRING";

    const char *doomFixedToDouble = R"DOCSTRING(Converts fixed point numeral to a floating point value.
Doom engine internally use fixed point numbers.
If you assign fixed point numeral to ``USER1`` - ``USER60`` GameVariables,
you can convert them to floating point by using this function.)DOCSTRING";

    const char *isBinaryButton = R"DOCSTRING(Returns ``True`` if :class:`.Button` is binary button.)DOCSTRING";

    const char *isDeltaButton = R"DOCSTRING(Returns ``True`` if :class:`.Button` is delta button.)DOCSTRING";

    const char *getDefaultCategories = R"DOCSTRING(Returns the default object categories of ViZDoom.

Note: added in 1.3.0.)DOCSTRING";


} // namespace docstrings
} // namespace vizdoom

#endif
