Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Фишки UI #375

Open
2 of 5 tasks
xrModder opened this issue Nov 2, 2021 · 8 comments
Open
2 of 5 tasks

Фишки UI #375

xrModder opened this issue Nov 2, 2021 · 8 comments

Comments

@xrModder
Copy link
Contributor

xrModder commented Nov 2, 2021

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

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

@I-AmDead
Copy link
Contributor

I-AmDead commented Nov 2, 2021

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

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

@xrModder
Copy link
Contributor Author

xrModder commented Nov 2, 2021

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

@xrSimpodin
Copy link
Member

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

@xrModder
Copy link
Contributor Author

xrModder commented Nov 2, 2021

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

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

@xrModder
Copy link
Contributor Author

xrModder commented Nov 2, 2021

  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. Стрелка цели на миникарте вращается по овалу (для просмотра спасти Шустрого, взять спецзадание у Сидоровича, подойти к переходу на Свалку и вращаться).

Решение: #352 (comment)

@xrModder
Copy link
Contributor Author

xrModder commented Nov 2, 2021

return (Device.dwWidth)/float(Device.dwHeight) > (UI_BASE_WIDTH/UI_BASE_HEIGHT +0.01f);

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

@xrModder
Copy link
Contributor Author

xrModder commented Nov 5, 2021

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

Не знаю зачем тут два ConvertRealToLocalNoTransform:

Fvector2 ConvertRealToLocalNoTransform (const Fvector2& src);// meters->pixels (relatively own left-top pos)
Fvector2 ConvertRealToLocalNoTransform (const Fvector2& src, Frect const& bound_rect);

Но для исправление вышеописанной проблемы удалить первый ConvertRealToLocalNoTransform, потом добавить (как в ЗП) BoundRect() в двух местах:

res = ConvertRealToLocalNoTransform(src);
Fvector2 pos_on_map = ConvertRealToLocalNoTransform(pos);

Потом вместо:

m_tgtCenter = m->ConvertRealToLocalNoTransform(pos);

Написать:

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

@VovaMiller
Copy link

VovaMiller commented Apr 14, 2022

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

SetWidth(GetWidth() * UI()->get_current_kx() );

Если эту строчку обернуть в условие, то проблемы не будет.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants