# Музыкальный автомат (Jukebox / Jackbox) в казино ## Описание В зале казино (зона бара и лаунжа, координаты `(6.0, 20.0)`) установлен интерактивный ретро-автомат для выбора и воспроизведения фоновой музыки. ## Возможности 1. **Фоновое воспроизведение (Windows MCI)**: - Музыка воспроизводится асинхронно в фоне через нативный API `winmm.dll` (`mciSendStringA`). - Музыка **продолжает играть** при выходе из меню автомата обратно в 3D-зал, во время ходьбы, игры за столами (покер, блэкджек, рулетка, дурак, слоты, дартс и др.). - При завершении трека он автоматически зацикливается (`repeat`). 2. **Интерактивный экран (`MODE_JACKBOX = 28`)**: - Отрисовывается на базе текстуры `assets/animations/hall/jackbox-ui-v1.bin` (640×480 BGRA). - Отображает текущий статус («СЕЙЧАС ИГРАЕТ: <Трек>» или «МУЗЫКА ВЫКЛЮЧЕНА»). - Список из 10 позиций с подсветкой текущего выбора `> ` и индикатором `[ИГРАЕТ]`. 3. **Управление**: - `Стрелки Вверх / Вниз` или `W / S`: выбор трека в списке. - `Enter` / `Пробел`: включить выбранный трек. - `1`–`9`: мгновенный запуск соответствующего трека по номеру. - `0`: выключить музыку (тишина). - `S`: остановить воспроизведение. - `R`: воспроизвести случайный трек. - `Esc` / `E` / Клик по кнопке «ВЫХОД»: вернуться в 3D-зал. - `Клик мыши` по строке трека: мгновенный выбор и запуск. 4. **Физическая 3D-модель в зале**: - Габариты: ширина 0.7м, глубина 0.45м, высота 1.85м. - Материал 161 (фасад `Jackbox_front.jpg`), материал 162 (боковины `Jackbox_side.jpg`), верхняя крышка (110). - Коллизия: игрок не может пройти сквозь автомат (`JackboxCanWalk3D`). ## Плейлист | № | Исполнитель и трек | Формат | |---|---|---| | 1 | Keygen Church — Tenebre Rosso Sangue (ULTRAKILL OST) | MP3 | | 2 | Keygen Church — Hareklavit | MP3 | | 3 | Keygen Church — Ladikerfos | MP3 | | 4 | Keygen Church — Tilaskarot | MP3 | | 5 | Mick Gordon — BFG Division (DOOM) | MP3 | | 6 | Mick Gordon — Rip & Tear (DOOM) | MP3 | | 7 | Mick Gordon — The Only Thing They Fear Is You (DOOM Eternal) | MP3 | | 8 | Hakari Dance (Jackpot Win Theme) | WAV | | 9 | Team Fortress 2 — Victory Anthem | WAV | | 0 | *[ ВЫКЛЮЧИТЬ МУЗЫКУ / ТИШИНА ]* | — | ## Файлы реализации - `src_graphics/jackbox_data.inc`: структуры, таблицы команд MCI, пути, CP1251 строки. - `src_graphics/jackbox.inc`: загрузка ассетов, 3D-кабинет, коллизии, аудио-контроллер, ввод и рендеринг GUI. - `tools/generators/pack_jackbox.py`: оффлайн-компилятор текстур из `assets/sprites/jackbox/` в бинарные контейнеры `ANM1`. - `tools/tests/check_jackbox.py`: тестовый набор верификации ассетов, аудио-файлов и бинарника.