diff --git a/include/courtroom.h b/include/courtroom.h
index 6132ed9c3..a4bacc228 100644
--- a/include/courtroom.h
+++ b/include/courtroom.h
@@ -109,7 +109,6 @@ class Courtroom : public QMainWindow {
if (arup_locks.size() > place)
arup_locks[place] = value;
}
- list_areas();
}
void character_loading_finished();
@@ -460,6 +459,14 @@ class Courtroom : public QMainWindow {
QString current_background = "default";
QString current_side = "";
+ QBrush free_brush;
+ QBrush lfp_brush;
+ QBrush casing_brush;
+ QBrush recess_brush;
+ QBrush rp_brush;
+ QBrush gaming_brush;
+ QBrush locked_brush;
+
AOMusicPlayer *music_player;
AOSfxPlayer *sfx_player;
AOSfxPlayer *objection_player;
diff --git a/resource/translations/ao_ru.ts b/resource/translations/ao_ru.ts
index 3b0af42f4..9347436f1 100644
--- a/resource/translations/ao_ru.ts
+++ b/resource/translations/ao_ru.ts
@@ -6,97 +6,99 @@
- Соединение с сервером прервано.
+ Соединение с сервером разорвано.
- Ошибка соединения с главным сервером. Попытка пересоединения будет через %1 с.
+ Ошибка соединения с главным сервером. Повторная попытка соединения через %1 с.
- Произошла ошибка соединения с главным сервером.
-Пожалуйста, проверьте ваши Интернет-соединение, настройки браундмауэра, и попробуйте перезайти.
+ Не удалось соединиться с главным сервером.
+Мы используем несколько главных серверов для того, чтобы сократить время простоя, но клиент перепробовал все возможные варианты и не смог подключиться ни к одному из серверов.
+Пожалуйста, проверьте ваши настройки браундмауэра и соединение с Интернетом попробуйте перезайти.
- Устаревшая версия! У вас установлена %1
+ Устаревшая версия! У вас установлена версия %1
Проследуйте на сайт aceattorneyonline.com для обновления.
- Из AO вас отправили в жизнь.
-Хорошего дня.
+ Вас изгнали из AO.
+Всего хорошего.
-
+ Attorney Online 2
-
+ Загрузка
-
+
- Загрузка вещдоков:
+ Загрузка улик:
%1/%2
-
-
+
+ Загрузка музыки:
%1/%2
-
-
+
+ Загрузка персонажей:
%1/%2
-
+ Вас выпнули с сервера.
Причина: %1
-
+
-
+ Вы были забанены на сервере.
+Причина: %1
-
+
- Вас отправили в баню.
+ Вы забанены на этом сервере.
Причина: %1
- Вас выпнули с сервера.
+ Вас выпнули с сервера.
Причина:
- Вас отправили в баню.
+ Вы забанены на этом сервере.
Причина:
@@ -105,37 +107,37 @@ Reason:
- Материалы дела
+ Объявление о проведении заседания
- Название:
+ Название дела:
- Сторона защиты
+ Нужна защита
- Сторона обвинения
+ Нужно обвинение
- Без судьи никак
+ Нужен судья
- Суд присяжных
+ Нужны присяжные
- Нужен стенографист?
+ Нужен стенографист
@@ -158,27 +160,29 @@ Reason:
- Устанавливает внешний вид игры. Может понадобиться перезайти на сервер.
+ Определяет внешний вид игры. Для применения новой темы может понадобиться перезайти на сервер.
- Портянку вниз:
+ История чата идёт вниз:
- Отметьте галочку, если хотите, чтобы сообщения в игровом чате отображались снизу, а не сверху.
+ Показывать новые сообщения в игровом чате снизу (как в ООС-чате), а не сверху (как в AO1).
- Длина игрового чата:
+ Размер истории игрового чата:
- Количество сообщений, максимально хранимых в игровом чате. Значение, равное 0 или меньше, будет расценено как снятие такого ограничения.
+ Максимальное количество сообщений, сохраняемых в игровом чате.
+При превышении лимита старые сообщения будут удаляться.
+Поставьте 0 или отрицательное значение, чтобы снять ограничение.
@@ -188,17 +192,18 @@ Reason:
- Псевдоним, используемый при соединении с сервером. В основном, его видно в чате сервера.
+ Псевдоним по умолчанию для ООС-чата.
- Произвольные имена:
+ Пользовательские имена:
- Отображать произвольные имена персонажей, установленные самими игроками.
+ Задать значение по умолчанию для настройки отображения пользовательских имён,
+которая определяет возможность показа в игровом чате имён персонажей, установленных самими игроками.
@@ -208,7 +213,7 @@ Reason:
- Отображать перечень серверов от главного сервера, указанного здесь, когда не удалось соединиться с первичным ГС.
+ Если клиент не сможет соединиться с встроенным главным сервером (ГС), он проверит адреса из этого списка.
@@ -218,7 +223,7 @@ Reason:
- Показать в Discord сервер, на котором вы играете, каким персонажем управляете и время игры.
+ Показывать в Discord сервер, на котором вы играете, вашего персонажа и продолжительность игры.
@@ -228,282 +233,303 @@ Reason:
-
+ Изменяет язык интерфейса программы, если вы не хотите использовать язык системы.
-
+ - сохранить текущие настройки
-
+
-
+ Встряска экрана:
-
+
-
+ Разрешить показ встрясок экрана. Отключите, если вы страдаете от светочувствительности и/или припадков.
-
+
-
+ Визуальные эффекты:
-
+
-
+ Разрешить показ визуальных эффектов. Отключите, если вы страдаете от светочувствительности и/или припадков.
-
+
-
+ Эффекты по сети:
-
+
-
+ Разрешить отправку звуков, эффектов вспышек и встряски экрана по сети в соответствии с char.ini.
+Работает только на серверах, поддерживающих данную функцию.
-
+
-
+ Цвета в истории чата:
-
+
-
+ Отображать цвета в истории игрового чата.
-
+
-
+ Закрепить звуки:
-
+
-
+ Не сбрасывать выбранные настройки звука после его воспроизведения.
-
+
-
+ Закрепить эффекты:
-
+
-
+ Не сбрасывать выбранные настройки эффекта после его воспроизведения.
-
+
-
+ Закрепить пред. анимации:
-
+
-
+ Не сбрасывать настройки пред. анимации после её воспроизведения.
+
+
+
+
+ Пользовательские подложки:
-
+
+
+ Отображать дизайны подложек, заданные персонажами.
+
+
+ Позывные
-
+
- <html><head/><body>Введите на отдельных строках свои позывные, при указании которых в сообщениях будет подан звуковой сигнал.</body></html>
+ <html><head/><body>Введите на отдельных строках свои позывные. Если кто-то в чате напишет их, вы услышите звуковой сигнал. Регистр символов не учитывается.<br>Не оставляйте в конце строк пробелы, иначе вы будете получать оповещения о каждом пробеле в чате.</body></html>
-
+ Аудио
-
+ Устройство воспроизведения:
-
+
- Куда вещать звук из игры.
+ Укажите устройство вывода всего аудио игры.
-
+ Музыка:
-
+ Громкость музыки по умолчанию.
-
+ Звук. эффекты:
-
+
- Громкость звуковых эффектов по умолчанию.
+ Громкость звуковых эффектов по умолчанию. В категорию эффектов также входят возгласы.
-
+ Сигналы:
-
+ Громкость сигналов, заменяющих голос, по умолчанию.
-
+
- Пер. сигналов:
+ Частота сигналов:
-
+
- Период между сигналами, заменяющими голос, по умолчанию.
+ Задержка по умолчанию между сигналами, заменяющими голос.
-
+
-
+ Проигрывать сигнал "каждые Х символов", где Х - частота.
-
+ Пустые сигналы:
-
+ Проигрывать сигналы даже для пробелов.
-
+
-
+ Повтор звук. эффектов:
-
+
-
+ Разрешить воспроизведение зацикленных звуковых эффектов во время предварительной анимации.
-
+
-
+ Тишина при протесте:
-
+
-
+ Останавливать музыку, когда кто-нибудь кричит "Objection!".
-
+
- Заседание
+ Заседания
-
+
- Этот сервер поддерживает объявление заседания.
+ Этот сервер поддерживает объявления заседаний.
-
+
- Этот сервер не поддерживает объявление заседания.
+ Этот сервер не поддерживает объявления заседаний.
-
+
- Весьма доходчиво.
+ Дополнительные пояснения не требуются.
-
+
- Новое дело:
+ Заседания:
-
+
- При заведении дела вы получите уведомление.
+ Вы получите уведомление, когда будет объявлено заседание.
-
+ Защита:
-
+
- При заведении дела, в котором нужна сторона защиты, вы получите уведомление.
+ Вы получите уведомление при объявлении дела, в котором нужна сторона защиты.
-
+ Обвинение:
-
+
- При заведении дела, в котором нужна сторона обвинения, вы получите уведомление.
+ Вы получите уведомление при объявлении дела, в котором нужна сторона обвинения.
-
+ Судья:
-
+
- При заведении дела, в котором нужен судья, вы получите уведомление.
+ Вы получите уведомление при объявлении дела, в котором нужен судья.
-
+
- Присяжный:
+ Присяжные:
-
+
- При заведении дела, в котором нужны присяжные заседатели, вы получите уведомление.
+ Вы получите уведомление при объявлении дела, в котором нужны присяжные заседатели.
-
+ Стенографист:
-
+
- При заведении дела, в котором нужна стенография, вы получите уведомление.
+ Вы получите уведомление при объявлении дела, в котором нужна стенография.
-
+ ПД:
-
+
- Отметьте, если вы хотите состоять в числе производителей дел.
+ Отметьте, если хотите состоять в числе возможных производителей дел (ПД).
-
+
- ПД акт.:
+ Проведение дел:
-
+
- Будучи производителем дела (ПД), вы можете войти в зону и заниматься её оркестровкой.
+ Если вы производитель дел (ПД), укажите, какими делами вы хотите заниматься.
+
+
+
+
+ Авт. сохранение истории:
+
+
+
+
+ Автоматически сохранять всю историю чатов в папке /logs.
@@ -516,7 +542,7 @@ Reason:
- Наблюдатель
+ Зритель
@@ -527,7 +553,7 @@ Reason:
- Ограничен паролем
+ Защищён паролем
@@ -535,7 +561,7 @@ Reason:
Занят
-
+ Генерация персонажей:
@@ -544,7 +570,7 @@ Reason:
- Генерация персонажей:
+ Генерация персонажей:
@@ -565,17 +591,17 @@ Reason:
- Пред.
+
- Разв.
+
- Охрана
+
@@ -584,73 +610,73 @@ Reason:
-
+
- Дело
+
- Произв. имена
+
- Говорить сразу
+
- Белый
+ Белый
- Зелëный
+ Зелëный
- Красный
+ Красный
- Оранжевый
+ Оранжевый
- Синий
+ Синий
- Жëлтый
+ Жëлтый
- В общем-то, это ни на что не влияет...
+ В общем-то, это ни на что не влияет...
-
+
- Укажите имя файла с делом (без расширения) для загрузки. Убедитесь, что оно расположено в папке `base/cases`.
-Были найдены: %1
+ Укажите имя файла с делом (без расширения) для загрузки. Убедитесь, что он расположен в папке `base/cases`, и что это правильно отформатированный файл .ini.
+Вы можете загрузить следующие дела: %1
-
+
- Дело завëл игрок: %1.
+ Автор дела: %1.
-
+
- Перейдите к %1 для получения материалов дела.
+ Откройте %1 для получения материалов дела.
-
+
- Дело под кодовым названием "%1" готово!
+ Ваше дело "%1" было загружено!
-
-
+
+ Сервер
@@ -660,582 +686,600 @@ Cases you can load: %1
-
+
-
-
-
+
+
+
-
+ Когда эта опция включена, ваше следующее сообщение в игровом чате будет с возгласом!
-
+
-
+
-
+
-
+ Переключатель между чатом сервера и общим чатом AO2.
-
-
-
-
+
+
+
+
-
+ Показать анимацию в игровом чате сразу после нажатия.
-
+
-
+ Виновен!
-
+
-
+ Перейти на экран выбора и сменить персонажа.
-
+
-
+ Перезагрузить тему и обновить все элементы интерфейса.
-
+
-
+ Привлечь внимание модератора сервера.
-
+
-
+ Изменить параметры работы программы.
-
+
-
+ Открыть окно, которое позволит вам объявить о деле
+(для этого нужно быть производителем дел (ПД))
-
+
-
+ Переключатель между списками музыки и локаций
-
+
-
+ Показать разовую анимацию, соответствующую выбранной эмоции.
-
+
-
+ Если включена предварительная анимация: вывести текст, не дожидаясь окончания предварительной анимации.
-
+
-
+ Отразить анимации персонажа по горизонтали.
-
+
-
+ Добавлять текст к своему последнему сообщению.
-
+
-
+ Заглушить вызовы модератора: вы не будете получать звуковые оповещения, а игра не будет привлекать к себе внимание.
-
+
-
+ Получать уведомления о заседаниях.
+(См. подробнее в меню опций)
-
+
-
+ Показывать пользовательские имена для всех.
-
+
-
+ Пользовательский возглас!
-
+
-
+ Показать в игровом чате анимацию, уникальную для персонажа, сразу после нажатия.
+Для добавления такой анимации поместите в папку персонажа свои изображения
+в формате webp/apng/gif/png и звук в формате wav/ogg/opus
-
+
-
+ Показать вспышку и воспроизвести звук озарения во время вывода следующей реплики.
-
+
-
+ Потрясти экран во время вывода следующей реплики.
-
+
-
+ Выбрать персонажей, которых нужно игнорировать.
-
-
+
+
-
+ Поощрить.
-
-
+
+
-
+ Оштрафовать.
-
+
-
+ Изменить цвет текста сообщения.
+Вы также можете выделить часть текста и изменить только её цвет в выпадающем меню.
-
+ Назад в лобби
-
-
-
+
+
+
-
+ включил(а) композицию
-
+
-
+ Вы встанете рядом с %1, если он(а) выберет вашего персонажа.
- Радужный
+ Радужный
- Розовый
+ Розовый
- Голубой
+ Голубой
-
+ % сдвига
-
+
-
+ Вперёд
-
+
-
+ Назад
-
+
-
+ Выберите персонажа, с которым хотите встать рядом.
-
+
-
+ Изменить процент сдвига вашего персонажа относительно центра экрана.
-
+
-
+ Переместить вашего персонажа вперёд или назад относительно партнёра.
-
+
-
+ Показать список персонажей, с которыми можно встать рядом.
-
+
-
+ О нет, вас заглушили!
-
+
-
+ Выберите эмоцию для отображения при выводе вашего следующего сообщения.
-
+
-
+ Установить фон для вашего персонажа.
-
+
-
+ Включить т.н. подмену ini – альтернативную папку персонажа, к которой будет обращаться текущий персонаж.
+Введите имя персонажа и нажмите Enter; нажмите [X], чтобы удалить.
+Изменения сохраняются по следующему пути: base/characters/<имя_персонажа>/iniswaps.ini
-
-
+
+
-
+ Удалить выбранного для подмены ini персонажа и вернуться к папке изначально выбранного персонажа.
-
+
-
+ Выберите звук, который нужно воспроизвести со следующей пред. анимацией.
+Если выбрано "по умолчанию", вы услышите звук, заданный пред. анимацией (если он есть).
+Выберите или введите название звука и нажмите Enter; нажмите [X], чтобы удалить.
+Изменения сохраняются по следующему пути: base/characters/<имя_персонажа>/soundlist.ini
-
+
-
+ Выберите эффект, который нужно воспроизвести с вашим следующим сообщением.
+Эффекты определяются файлом theme/effects/effects.ini. Ваш персонаж может задать собственные эффекты
+в категории [Options] файла char.ini, effects = 'название', что отсылает к файлу misc/<название>/effects.ini.
-
+
- Музыка
+
-
+
- Звук. эффекты
+
-
+
- Сигналы
+
-
+
-
+
-
+
-
+
- Настройки
+
-
+
-
+ Л/М
-
+
-
+
-
+ Вернуться к списку серверов.
-
+
-
+ Зайти в качестве зрителя. Вы не сможете взаимодействовать с игровым чатом.
-
+
-
+ Вам дали кнопку выключения вызова модератора.
-
-
+
+
-
+ КЛИЕНТ
-
+
-
+ Вас забанили.
- Теперь у вас есть кнопка "Охрана".
+ Теперь у вас есть кнопка "Охрана".
-
+
- Вы открыли меню настроек.
+ Вы открыли меню опций.
- Вы встанете парой с персонажем по имени
+ Вы встанете парой с персонажем по имени
- (если он выберет вас в ответ).
+ (если он выберет вас в ответ).
-
+
- Теперь вы не стоите в парах.
+ Вы больше не стоите рядом ни с кем.
-
+
- Кажется, вам нужно поменять запрос: такой идентификатор персонажа не был найден.
+ Убедитесь в правильности введённой информации: персонаж с таким ID не найден.
-
+ Вы установили сдвиг персонажа на
-
+ Сдвиг персонажа должен быть между -100% и 100%!
-
+ Неверный сдвиг персонажа.
-
+
- Вы переключили перечень зон и музыки.
+ Вы переключили списки локаций и музыки.
-
+
- Из-за того, что вы включили не поддержимаемые сервером возможности, он может не принять ваши сообщения.
+ Из-за того, что вы включили не поддерживаемые сервером возможности, он может не принять ваши сообщения.
-
+
- Персонаж будет говорить только после анимации.
+ Персонаж будет говорить только после предварительной анимации.
-
+
- Персонаж будет говорить и во время анимации.
+ Предварительные анимации не будут прерывать вывод текста.
-
+
- Не могу открыть `chatlog.txt` для записи лога.
+ Невозможно открыть `chatlog.txt` для записи.
-
+
- Лог игрового чата сохранëн.
+ История игрового чата сохранена.
-
+
- Файл с делом не найден. Если найдëте, положите его в папку `base/cases/`, которую мы для вас создали.
+ Файл с делом не найден. Если найдёте, положите его в папку `base/cases/`, которую мы для вас создали.
-
+ Введите имя файла без расширения.
-
-
-
-
+
+
+
+
-
+ н/д
-
+
- Папка `base/cases/` отсутствует!
+ Папка `base/cases/` отсутствует.
-
+
- Введите имя файла (без расширения) и предоставьте статус зоны.
+ Введите имя файла (без расширения) и укажите статус зала суда.
-
+
- Убедитесь, что имя файла не содержит расширение.
+ Убедитесь, что имя файла указано без расширения.
-
+
- Сохранение прошло успешно!
+ Сохранение прошло успешно. Ссылки на документы можно редактировать в ini.
-
+ Мастер
-
+
+
+ Включить случайную композицию
+
+
+
-
+ Развернуть все категории
-
+
-
+ Свернуть все категории
-
+
-
+ Постепенное затухание предыдущей композиции
-
+
-
+ Постепенное нарастание
-
+
-
+ Синхронизировать
-
+
-
+ по умолчанию
-
+ Причина:
-
+
- Позвать модератора
+ Вызов модератора
-
-
+
+ Ошибка
-
+ Укажите причину.
-
+
- Слишком длинный текст.
+ Слишком длинное сообщение.
- Выбрать...
+ Выбрать...
-
+ Показать эту улику всем присутствующим вместе с вашим следующим сообщением.
-
+ Сохранить улику в файл .ini.
-
+ Загрузить улику из файла .ini.
-
+ Уничтожить эту улику.
-
+ Выбрать...
-
+ Закрыть окно редактирования улики.
+Если вы не сохранили изменения, вы увидите диалоговое окно.
-
+ Сохранить все изменения, внесённые в улику, и отправить её на сервер.
-
+ Редактирование по двойному клику. Нажмите [X] для обновления.
-
+ Открыть окно управления уликами.
-
+ Перейти к своему списку.
-
+ Перейти к общему списку.
-
+ Перенести улику в свой список.
-
+ Перенести улику в общий список.
-
+ В улику, которую вы редактировали, были внесены изменения.
-
+ Хотите сохранить внесённые изменения?
@@ -1243,7 +1287,10 @@ You will be prompted if there's any unsaved changes.
Image: %2
Description:
%3
-
+ Название: %1
+Изображение: %2
+Описание:
+%3
@@ -1255,7 +1302,7 @@ Description:
-
+ Редактирование по двойному клику...
@@ -1265,43 +1312,43 @@ Description:
-
+ Улика была изменена.
-
+ Хотите сохранить внесённые изменения?
-
+ Вы видите общий список улик. Нажмите здесь для просмотра своих улик.
-
+ Вы видите свой список улик. Нажмите здесь для просмотра общих улик.
-
+ Улика "%1" была перенесена.
-
+
-
+ Сохранить список улик
-
-
+
+
-
+ Файлы ini (*.ini)
-
+
-
+ Загрузить список улик
@@ -1314,7 +1361,7 @@ Description:
- Поиск
+ Поиск
@@ -1325,8 +1372,8 @@ Description:
- Не похоже, что ваш клиент установлен правильно.
-Скачали ли вы все ресурсы (tiny.cc/getao), включая огромную папку `base`?
+ Кажется, ваш клиент неправильно настроен.
+Вы точно скачали все ресурсы отсюда tiny.cc/getao, включая огромную папку `base`?
@@ -1336,12 +1383,12 @@ Did you download all resources correctly from tiny.cc/getao, including the large
- Настройки
+ Опции
-
+ Изменить параметры работы программы.
@@ -1354,29 +1401,29 @@ Did you download all resources correctly from tiny.cc/getao, including the large
Отмена
-
-
-
+
+
+ <h2>Attorney Online %1</h2>Симулятор драмы в зале суда<p><b>Исходный код:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Основная разработка:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter, Crystalwarrior, Iamgoofball<p><b>Разработка клиента:</b><br>Cents02, in1tiate, raidensnake, windrammer<p><b>Тестирование:</b><br>CaseyCazy, CedricDewitt, Chewable Tablets, CrazyJC, Fantos, Fury McFlurry, Geck, Gin-Gi, Jamania, Minx, Pandae, Robotic Overlord, Shadowlions (aka Shali), Sierra, SomeGuy, Veritas, Wiso<p><b>Благодарности:</b><br>CrazyJC (директор по выпуску версии 2.8) и MaximumVolty (продвижение версии 2.8); Remy, Hibiki, court-records.net (спрайты); Qubrick (webAO); Rue (вебсайт); Draxirch (дизайн интерфейса); Lewdton and Argoneus (tsuserver); Fiercy, Noevain, Cronnicossy, и FanatSors (AO1); держатели серверов, ГМ, ПД, создатели контента, и всё сообщество AO2!<p>Проект сетевой визуальной новеллы Attorney Online (c) 2016-2020 разработчики Attorney Online. Применяется лицензия на открытое ПО. Все прочие файлы являются собственностью их владельцев.<p>Работает на Qt версии %2 с аудио-движком %3.<p>Сборка от %4
-
+
-
+ О программе
- <h2>Attorney Online %1</h2>Симулятор судебной драмы<p><b>Исходный код:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Основной разработкой занимались:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Особенная благодарность:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (дизайн интерфейса), Draxirch (дизайн интерфейса), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy
+ <h2>Attorney Online %1</h2>Симулятор судебной драмы<p><b>Исходный код:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Основной разработкой занимались:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Особенная благодарность:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (дизайн интерфейса), Draxirch (дизайн интерфейса), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy
-
+ Онлайн: %1/%2
-
+
- Вне сети
+ Не в сети
@@ -1386,12 +1433,12 @@ Did you download all resources correctly from tiny.cc/getao, including the large
-
+ н/д
-
+
-
+ включил(а) композицию:
@@ -1409,7 +1456,7 @@ Did you download all resources correctly from tiny.cc/getao, including the large
- На заметку
+ Уведомление
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 3f723974d..3b3f69916 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -636,6 +636,7 @@ void Courtroom::set_widgets()
}
ui_music_display->play("music_display");
+ ui_music_display->set_play_once(false);
if (is_ao2_bg) {
set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message");
@@ -934,6 +935,14 @@ void Courtroom::set_widgets()
ui_spectator->setToolTip(tr("Become a spectator. You won't be able to "
"interact with the in-character screen."));
+ free_brush = *new QBrush(ao_app->get_color("area_free_color", "courtroom_design.ini"));
+ lfp_brush = *new QBrush(ao_app->get_color("area_lfp_color", "courtroom_design.ini"));
+ casing_brush = *new QBrush(ao_app->get_color("area_casing_color", "courtroom_design.ini"));
+ recess_brush = *new QBrush(ao_app->get_color("area_recess_color", "courtroom_design.ini"));
+ rp_brush = *new QBrush(ao_app->get_color("area_rp_color", "courtroom_design.ini"));
+ gaming_brush = *new QBrush(ao_app->get_color("area_gaming_color", "courtroom_design.ini"));
+ locked_brush = *new QBrush(ao_app->get_color("area_locked_color", "courtroom_design.ini"));
+
refresh_evidence();
}
@@ -975,7 +984,7 @@ void Courtroom::set_font(QWidget *widget, QString class_name,
}
}
bool bold = ao_app->get_design_element(p_identifier + "_bold", design_file, p_char) ==
- 1; // is the font bold or not?
+ "1"; // is the font bold or not?
bool antialias =
ao_app->get_design_element(p_identifier + "_sharp", design_file, p_char) !=
"1"; // is the font anti-aliased or not?
@@ -1237,6 +1246,8 @@ void Courtroom::update_character(int p_cid)
current_char = f_char;
current_side = ao_app->get_char_side(current_char);
+ set_text_color_dropdown();
+
current_emote_page = 0;
current_emote = 0;
@@ -1433,15 +1444,6 @@ void Courtroom::list_areas()
ui_area_list->clear();
// ui_music_search->setText("");
- QString f_file = "courtroom_design.ini";
-
- QBrush free_brush(ao_app->get_color("area_free_color", f_file));
- QBrush lfp_brush(ao_app->get_color("area_lfp_color", f_file));
- QBrush casing_brush(ao_app->get_color("area_casing_color", f_file));
- QBrush recess_brush(ao_app->get_color("area_recess_color", f_file));
- QBrush rp_brush(ao_app->get_color("area_rp_color", f_file));
- QBrush gaming_brush(ao_app->get_color("area_gaming_color", f_file));
- QBrush locked_brush(ao_app->get_color("area_locked_color", f_file));
int n_listed_areas = 0;
@@ -1856,12 +1858,20 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
log_maximum_blocks > 0) {
ic_chatlog_history.removeFirst();
}
-
- append_ic_text(m_chatmessage[MESSAGE], f_displayname, "", m_chatmessage[TEXT_COLOR].toInt());
-
+
QString f_char = m_chatmessage[CHAR_NAME];
QString f_custom_theme = ao_app->get_char_shouts(f_char);
+ // Load the colors in case it's using a custom chatbox with custom colors.
+ // Or reload the default ones in case it's not using custom colors
+ color_rgb_list.clear();
+ for (int c = 0; c < max_colors; ++c) {
+ QColor color = ao_app->get_chat_color("c" + QString::number(c), f_char);
+ color_rgb_list.append(color);
+ }
+
+ append_ic_text(m_chatmessage[MESSAGE], f_showname, "", m_chatmessage[TEXT_COLOR].toInt());
+
// if an objection is used
if (objection_mod <= 4 && objection_mod >= 1) {
switch (objection_mod) {
@@ -2884,6 +2894,12 @@ void Courtroom::chat_tick()
next_character_is_not_special = false;
}
+ // Keep the speed at bay.
+ if (current_display_speed < 0)
+ current_display_speed = 0;
+ else if (current_display_speed > 6)
+ current_display_speed = 6;
+
if ((message_display_speed[current_display_speed] <= 0 &&
tick_pos < f_message.size() - 1) ||
formatting_char) {
@@ -2912,12 +2928,6 @@ void Courtroom::chat_tick()
ui_vp_message->ensureCursorVisible();
- // Keep the speed at bay.
- if (current_display_speed < 0)
- current_display_speed = 0;
- else if (current_display_speed > 6)
- current_display_speed = 6;
-
// Blip player and real tick pos ticker
if (!formatting_char && (f_character != ' ' || blank_blip)) {
if (blip_ticker % blip_rate == 0) {
diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp
index b543cfb55..fd7453ee9 100644
--- a/src/packet_distribution.cpp
+++ b/src/packet_distribution.cpp
@@ -676,6 +676,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->arup_modify(arup_type, n_element - 1,
f_contents.at(n_element));
}
+ w_courtroom->list_areas();
}
}
else if (header == "IL") {
diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp
index 39754f39e..45dd34f6d 100644
--- a/src/text_file_functions.cpp
+++ b/src/text_file_functions.cpp
@@ -435,7 +435,7 @@ QString AOApplication::get_tagged_stylesheet(QString target_tag, QString p_file)
QString AOApplication::get_chat_markdown(QString p_identifier, QString p_chat)
{
- QString design_ini_path = get_base_path() + "misc/" + p_chat + "/config.ini";
+ QString design_ini_path = get_base_path() + "misc/" + get_chat(p_chat) + "/config.ini";
QString default_path = get_base_path() + "misc/default/config.ini";
QString f_result = read_design_ini(p_identifier, design_ini_path);
@@ -449,9 +449,9 @@ QColor AOApplication::get_chat_color(QString p_identifier, QString p_chat)
{
QColor return_color(255, 255, 255);
- QString design_ini_path = get_base_path() + "misc/" + p_chat + "/config.ini";
+ QString design_ini_path = get_base_path() + "misc/" + get_chat(p_chat) + "/config.ini";
QString default_path = get_base_path() + "misc/default/config.ini";
- QString f_result = read_design_ini("c" + p_identifier, design_ini_path);
+ QString f_result = read_design_ini(p_identifier, design_ini_path);
if (f_result == "") {
f_result = read_design_ini(p_identifier, default_path);
@@ -908,6 +908,11 @@ QString AOApplication::get_effect_sound(QString fx_name, QString p_char)
f_result = read_design_ini(fx_name, default_path);
}
}
+
+ if(fx_name == "realization"){
+ f_result = get_custom_realization(p_char);
+ }
+
return f_result;
}