Replace hasElementOfType with protocol version

This commit is contained in:
cx384 2024-02-01 17:38:06 +01:00
parent e8f92ba825
commit f24116ed01
2 changed files with 3 additions and 10 deletions

View File

@ -369,20 +369,13 @@ void Hud::drawLuaElements(const v3s16 &camera_offset, bool draw_crosshairs)
elems.insert(it, e);
}
// Legacy (Remove this when version 5.8.0 and older is not supported anymore.)
// If a new client connects to a sever version 5.8.0 and older some HUD elements
// are not hard coded in the client code anymore, but handled in builtin.
// So the client must add them again.
// Crosshair
if ((player->hud_flags & HUD_FLAG_CROSSHAIR_VISIBLE) && !hasElementOfType(HUD_ELEM_CROSSHAIR)) {
// Add builtin cosshair if the server doesn't send it.
if (client->getProtoVersion() < 44 && (player->hud_flags & HUD_FLAG_CROSSHAIR_VISIBLE)) {
HudElement crosshair{HUD_ELEM_CROSSHAIR, v2f(0.5, 0.5), "", v2f(1, 1), "", 0 , 0, 0, v2f(),
v2f(), v3f(), v2s32(), 0, "", 0};
elems.push_back(&crosshair);
}
// End of legacy support code.
for (HudElement *e : elems) {
v2s32 pos(floor(e->pos.X * (float) m_screensize.X + 0.5),

View File

@ -222,7 +222,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
PROTOCOL VERSION 44:
AO_CMD_SET_BONE_POSITION extended
Add TOCLIENT_MOVE_PLAYER_REL
Move default minimap from client-side C++ to server-side builtin Lua
Move default minimap and crosshair from client-side C++ to server-side builtin Lua
[scheduled bump for 5.9.0]
*/