## Формат изображений для RPG

Задаётся в переменных:

- `location_ext` - расширение для изображений локаций (`main`, `free` и `over`).
- `location_object_ext` - для объектов локаций (и их анимаций).
- `character_ext` - для персонажей (и их анимаций).

По умолчанию все эти переменные равны `"png"`.

## Текущие локация и место

В любом месте сценария:

- `cur_location` будет являться текущей локацией (объектом из словаря `rpg_locations`),
- `cur_location_name` будет являться её названием,
- `cur_place` - текущее место в ней (объектом из словаря `cur_location.places`),
- `cur_place_name` - его названием.

Если локация не установлена (была скрыта `hide_location` или вовсе не была показана `set_location`), то:

- `cur_location` будет `None`;
- `cur_location_name` - `''` (пустая строка).

Аналогично, если персонаж не находится в 1 из зарегистрированных мест, то:

- `cur_place` будет `None`;
- `cur_place_name` - `''` (пустая строка).

Таким образом, указанные `*_name`-переменные всегда будут иметь тип `str` (строка).

Также стоит отметить, что при обработке каких-то событий в метках (`label`) сценария, её команды не всегда исполняются одномоментно. Т. е. при использовании этих переменных в нескольких местах одной метки рекомендуется сохранять их значения в самом начале, и далее использовать уже их. Иначе возможна ситуация, когда метка начинает исполнение в одном кадре (и эти переменные имеют одно значение), а продолжается в другом - и тогда они, вероятно, будут уже изменены, что может сделать сценарий неадекватным.

Также стоит отделять текущую локацию (`cur_location`) от отрисовываемой локации.
Обычно это одна и та же локация, но в первой половине эффекта перехода (от старой локации к новой) `cur_location` уже станет указывать на новую локацию, тогда как на экране всё ещё будет старая.

<- Назад