From cd0ab951cfa08e8c4e43716cf65d612be02e9545 Mon Sep 17 00:00:00 2001 From: A-lex-Ra Date: Wed, 31 Jan 2024 09:57:26 +0600 Subject: [PATCH 1/4] minor refact --- src/audio/audioutil.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/audio/audioutil.cpp b/src/audio/audioutil.cpp index fcb6b773..17e3d99c 100644 --- a/src/audio/audioutil.cpp +++ b/src/audio/audioutil.cpp @@ -15,21 +15,23 @@ #endif bool is_big_endian(void){ - union { - uint32_t i; - char c[4]; - } bint = {0x01020304}; + uint32_t ui32_v = 0x01020304; + char bytes[sizeof(uint32_t)]; + std::memcpy(bytes, &ui32_v, sizeof(uint32_t)); - return bint.c[0] == 1; + return bytes[0] == 1; } std::int32_t convert_to_int(char* buffer, std::size_t len){ std::int32_t a = 0; - if(!is_big_endian()) + if (!is_big_endian()) { std::memcpy(&a, buffer, len); - else - for(std::size_t i = 0; i < len; ++i) + } + else { + for (std::size_t i = 0; i < len; ++i) { reinterpret_cast(&a)[3 - i] = buffer[i]; + } + } return a; } From 02860f193a11dd1e8ccbd517ebab3da866e82125 Mon Sep 17 00:00:00 2001 From: A-lex-Ra Date: Wed, 14 Feb 2024 10:40:02 +0600 Subject: [PATCH 2/4] included where needed --- src/frontend/gui/panels.cpp | 1 + src/items/Inventories.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/frontend/gui/panels.cpp b/src/frontend/gui/panels.cpp index 2a65903b..e86c6e28 100644 --- a/src/frontend/gui/panels.cpp +++ b/src/frontend/gui/panels.cpp @@ -1,6 +1,7 @@ #include "panels.h" #include +#include #include "../../window/Window.h" #include "../../assets/Assets.h" diff --git a/src/items/Inventories.cpp b/src/items/Inventories.cpp index 0b1ac2dc..787f31e6 100644 --- a/src/items/Inventories.cpp +++ b/src/items/Inventories.cpp @@ -1,4 +1,7 @@ #include "Inventories.h" + +#include + #include "../world/Level.h" #include "../world/World.h" @@ -18,7 +21,7 @@ std::shared_ptr Inventories::create(size_t size) { std::shared_ptr Inventories::createVirtual(size_t size) { int64_t id; do { - id = -std::max(1L, std::abs(random.rand64())); + id = -std::max(1LL, std::abs(random.rand64())); } while (map.find(id) != map.end()); auto inv = std::make_shared(id, size); From 408dccc59017d74bf8b3e707962448790bb3037a Mon Sep 17 00:00:00 2001 From: A-lex-Ra Date: Wed, 14 Feb 2024 11:15:47 +0600 Subject: [PATCH 3/4] 'Camera Shaking' checkbox added to settings menu --- res/texts/ru_RU.txt | 1 + src/frontend/menu.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/res/texts/ru_RU.txt b/res/texts/ru_RU.txt index 65085d46..71fabbb7 100644 --- a/res/texts/ru_RU.txt +++ b/res/texts/ru_RU.txt @@ -34,6 +34,7 @@ settings.Load Speed=Скорость Загрузки settings.Fog Curve=Кривая Тумана settings.Backlight=Подсветка settings.V-Sync=Вертикальная Синхронизация +settings.Camera Shaking=Тряска Камеры settings.FOV=Поле Зрения settings.Mouse Sensitivity=Чувствительность Мыши diff --git a/src/frontend/menu.cpp b/src/frontend/menu.cpp index 87b18957..56aa500b 100644 --- a/src/frontend/menu.cpp +++ b/src/frontend/menu.cpp @@ -596,6 +596,19 @@ void create_settings_panel(Engine* engine) { panel->add(checkbox); } + /* Camera shaking checkbox */ { + auto checkbox = std::make_shared( + langs::get(L"Camera Shaking", L"settings"), vec2(400, 32) + ); + checkbox->setSupplier([=]() { + return engine->getSettings().camera.shaking; + }); + checkbox->setConsumer([=](bool checked) { + engine->getSettings().camera.shaking = checked; + }); + panel->add(checkbox); + } + std::string langName = langs::locales_info.at(langs::current->getId()).name; panel->add(guiutil::gotoButton( langs::get(L"Language", L"settings")+L": "+ From 5ab44d13a6cfcf9462a109700a7530c07ba92c49 Mon Sep 17 00:00:00 2001 From: A-lex-Ra Date: Wed, 14 Feb 2024 11:34:35 +0600 Subject: [PATCH 4/4] gnu type deducing fix --- src/items/Inventories.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/items/Inventories.cpp b/src/items/Inventories.cpp index 787f31e6..c072ff27 100644 --- a/src/items/Inventories.cpp +++ b/src/items/Inventories.cpp @@ -21,7 +21,7 @@ std::shared_ptr Inventories::create(size_t size) { std::shared_ptr Inventories::createVirtual(size_t size) { int64_t id; do { - id = -std::max(1LL, std::abs(random.rand64())); + id = -std::max(1LL, std::llabs(random.rand64())); } while (map.find(id) != map.end()); auto inv = std::make_shared(id, size);