OGSR-Engine icon indicating copy to clipboard operation
OGSR-Engine copied to clipboard

Фишки UI

Open xrModder opened this issue 2 years ago • 8 comments

  • [x] добавить возможность переносить текст по ширине (как justify в css);
  • [ ] добавить круглую миникарту (как в ЗП);
  • [ ] добавить "туман войны" для карты;
  • [x] восстановить альфа-канал для видеороликов;
  • [ ] добавить "серединный" цвет mid_color (middle color) для progress-баров (только min_color и max_color).

Список будет дополняться.

xrModder avatar Nov 02 '21 15:11 xrModder

  • добавить "серединный" цвет mid_color (middle color) для progress-баров (только min_color и max_color).

Это точно есть...

I-AmDead avatar Nov 02 '21 15:11 I-AmDead

Есть такой вопрос, возможно идиотский: зачем везде сунуть get_current_kx() если можно добавить его в самом начале, в ui_base.h? Типа один раз сразу исправляем ширину UI элементов в ui_base.h с помощью get_current_kx().

xrModder avatar Nov 02 '21 15:11 xrModder

Так исторически сложилось как бы.

xrSimpodin avatar Nov 02 '21 15:11 xrSimpodin

Некоторые найденные мной проблемы:

  1. В оконном режиме невозможно двигать курсор на вверхний левый угол, застревает около него;
  2. В КПК при нажатии на "Центр на Меченом" на карте позиция актёра смещается из центра по x, причём чем дальше от центра локации, тем больше;
  3. Некорректно отображается статическая анимация lanim_xform если есть флаг heading (вращение);
  4. Стрелка цели на миникарте вращается по овалу (для просмотра спасти Шустрого, взять спецзадание у Сидоровича, подойти к переходу на Свалку и вращаться).

xrModder avatar Nov 02 '21 16:11 xrModder

  1. Некорректно отображается статическая анимация lanim_xform если есть флаг heading (вращение);

Решение: откатить все правки к lanim_xform и в void CUIStatic::Update() изменить код:

SetWndSize			(Fvector2().set(m_xxxRect.width(),m_xxxRect.height()));

На:

SetWndSize			(Fvector2().set(m_xxxRect.width()*UI()->get_current_kx(),m_xxxRect.height()));
  1. Стрелка цели на миникарте вращается по овалу (для просмотра спасти Шустрого, взять спецзадание у Сидоровича, подойти к переходу на Свалку и вращаться).

Решение: https://github.com/OGSR/OGSR-Engine/issues/352#issuecomment-957118517

xrModder avatar Nov 02 '21 16:11 xrModder

https://github.com/OGSR/OGSR-Engine/blob/7ab5bb7bb2caf2b6dcd1529a8d39c3191847b530/ogsr_engine/xrGame/ui_base.cpp#L269

Тут явно забыли добавить float перед (Device.dwWidth).

xrModder avatar Nov 02 '21 21:11 xrModder

2. В КПК при нажатии на "Центр на Меченом" на карте позиция актёра смещается из центра по x, причём чем дальше от центра локации, тем больше;

Не знаю зачем тут два ConvertRealToLocalNoTransform: https://github.com/OGSR/OGSR-Engine/blob/4c6a8bcc24319ecd08d1208c9af6e52657872a2d/ogsr_engine/xrGame/ui/UIMap.h#L25-L26

Но для исправление вышеописанной проблемы удалить первый ConvertRealToLocalNoTransform, потом добавить (как в ЗП) BoundRect() в двух местах: https://github.com/OGSR/OGSR-Engine/blob/4c6a8bcc24319ecd08d1208c9af6e52657872a2d/ogsr_engine/xrGame/ui/UIMap.cpp#L92 https://github.com/OGSR/OGSR-Engine/blob/4c6a8bcc24319ecd08d1208c9af6e52657872a2d/ogsr_engine/xrGame/ui/UIMap.cpp#L193

Потом вместо: https://github.com/OGSR/OGSR-Engine/blob/4c6a8bcc24319ecd08d1208c9af6e52657872a2d/ogsr_engine/xrGame/ui/UIMapWnd.cpp#L323 Написать:

		m_tgtCenter						= m->ConvertRealToLocal(pos, true);

xrModder avatar Nov 05 '21 17:11 xrModder

Добавлю от себя замечание по теме. На версии 2.1.386 (не знаю, было ли такое раньше) метки на карте и мини-карте с heading="1" (в оригинальном ТЧ это стрелка на метку активного задания и красный сектор, показывающий направление недавнего хита) были приплюснутыми на широкоформатном разрешении.

https://github.com/OGSR/OGSR-Engine/blob/bcae676c66960da0f71310ed8c18942e136a2d6e/ogsr_engine/xrGame/map_spot.cpp#L29 Если эту строчку обернуть в условие, то проблемы не будет.

	if (!Heading()) {
		SetWidth(GetWidth() * UI()->get_current_kx() );
	}

VovaMiller avatar Apr 14 '22 16:04 VovaMiller