1. Кладём ролик в папку gamedata\textures\sleep\. Собственно, в любую папку, лишь бы она была в каталоге textures. Просто в sleep лежат ролики сна в оригинале.
имя файла любое, формат ogm, а разрешение ролика вроде можно сделать любое. Я не стал заморачиваться и просто скопировал существующий ролик сна с монолитом.
2. Озвучку ролика кладем по той-же схеме в папку в корневом каталогу gamedata\sounds\. У меня папка называется my_sleep. Имена файлов для левого и правого канала должны выглядеть так
my_sleep_sound_l.ogg
и
my_sleep_sound_r.ogg
длина звуков может быть разной и вообще говоря не совпадать с длиной ролика.
3. Правим файл \gamedata\config\ui\ui_movies.xml. Добавляем туда что-то в этом роде:
Код
<my_dream>
<play_each_item>1</play_each_item>
<global_wnd x="0" y="0" width="1024" height="768">
<auto_static x="0" y="0" width="1024" height="768" stretch="1">
<window_name>back</window_name>
<texture>intro\intro_back</texture>
</auto_static>
</global_wnd> <item type="video">
<sound>my_sleep\my_sleep_sound</sound>
<pause_state>on</pause_state>
<function_on_stop>sleep_manager.stopper</function_on_stop>
<video_wnd x="0" y="0" width="1024" height="768" stretch="1">
<texture x="0" y="1" width="512" height="286">sleep\dream_sarcofag</texture>
</video_wnd>
</item>
</my_dream>
Название тега my_dream - это моё имя для сна. Если я верно всё понимаю, то вся эта фигня описывает окно, в котором играется видеоролик.
4. Теперь собственно добавляем сон. Правим файл gamedata\config\misc\dream.ltx.
Там есть секции с именами [regular_dream#] где # - это номера снов. Сейчас там есть regular_dream1, regular_dream2 и regular_dream3. Добавляем секцию
Код
Код
[regular_dream4]
dream = my_dream
probability = 40
type = happy
параметеры
dream - это ранее заданное имя сна (в нашем случае my_dream).
probability - ясное дело, что нужно для вычисления вероятности появления именно этого сна. Но я пока не понял по какому алгоритму она вычисляется на основе этого параметра. Я просто сделал число побольше, дабы протестировать побыстрее.
type - может быть nightmare, normal и happy. По названию вроде понятно, что это. Но на что влияет пока не ясно.
5. Ну и завершающий этап. В этом же файле в секцию [dreams] к параметру regular добавляем к списку новый сон regular_dream4. Вроде такого
regular = regular_dream1, regular_dream2, regular_dream3, regular_dream4
Тестируем... Опа! Новый сон. Поскольку я звуки взял случайно, то при этом в левом ухе у меня орет кот, а в правом играет мрачный эмбиент =)
Ну и естественно работать будет только при установленном АМК. Что там именно сделано, для того чтобы сон вообще был, я пока не разбирался.