diff --git a/Minecraft.Client/Platform/Common/UI/IUIScene_CommandBlockMenu.h b/Minecraft.Client/Platform/Common/UI/IUIScene_CommandBlockMenu.h index 67cc20d1c..ee6b9b295 100644 --- a/Minecraft.Client/Platform/Common/UI/IUIScene_CommandBlockMenu.h +++ b/Minecraft.Client/Platform/Common/UI/IUIScene_CommandBlockMenu.h @@ -3,15 +3,16 @@ class IUIScene_CommandBlockMenu { public: + virtual ~IUIScene_CommandBlockMenu() = default; void Initialise(CommandBlockEntity* commandBlock); protected: void ConfirmButtonClicked(); - virtual std::wstring GetCommand(); - virtual void SetCommand(std::wstring command); - virtual int GetPad(); + virtual std::wstring GetCommand() = 0; + virtual void SetCommand(std::wstring command) = 0; + virtual int GetPad() = 0; private: CommandBlockEntity* m_commandBlock; -}; \ No newline at end of file +}; diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp index 4a6da3114..29fa2b306 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.cpp @@ -12,7 +12,7 @@ Random* UIScene_MainMenu::random = new Random(); -EUIScene UIScene_MainMenu::eNavigateWhenReady = (EUIScene)-1; +int UIScene_MainMenu::eNavigateWhenReady = -1; UIScene_MainMenu::UIScene_MainMenu(int iPad, void* initData, UILayer* parentLayer) @@ -1966,8 +1966,8 @@ void UIScene_MainMenu::tick() { #endif { app.DebugPrintf("[MainMenu] Navigating away from MainMenu.\n"); - ui.NavigateToScene(lockedProfile, eNavigateWhenReady); - eNavigateWhenReady = (EUIScene)-1; + ui.NavigateToScene(lockedProfile, (EUIScene)eNavigateWhenReady); + eNavigateWhenReady = -1; } #ifdef _DURANGO else { diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.h b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.h index 143797f46..ba8425c62 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_MainMenu.h @@ -90,10 +90,10 @@ private: private: // 4J-JEV: Delay navigation until font changes. - static EUIScene eNavigateWhenReady; + static int eNavigateWhenReady; static void proceedToScene(int iPad, EUIScene eScene) { - eNavigateWhenReady = eScene; + eNavigateWhenReady = (int)eScene; } public: diff --git a/Minecraft.Client/Platform/Windows64/Iggy/gdraw/gdraw_gl_shared.inl b/Minecraft.Client/Platform/Windows64/Iggy/gdraw/gdraw_gl_shared.inl index dc53e84db..c22517041 100644 --- a/Minecraft.Client/Platform/Windows64/Iggy/gdraw/gdraw_gl_shared.inl +++ b/Minecraft.Client/Platform/Windows64/Iggy/gdraw/gdraw_gl_shared.inl @@ -1504,30 +1504,34 @@ static int set_render_state(GDrawRenderState *r, S32 vformat, const int **ovvars static void set_vertex_format(S32 format, F32 *vertices) { + const void *vertex_offset_0 = (const void *) (size_t) vertices; + const void *vertex_offset_8 = (const void *) ((size_t) vertices + (2 * sizeof(F32))); + const void *vertex_offset_16 = (const void *) ((size_t) vertices + (4 * sizeof(F32))); + switch (format) { case GDRAW_vformat_v2: - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, vertices); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, vertex_offset_0); glEnableVertexAttribArray(0); break; case GDRAW_vformat_v2aa: - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 16, vertices); - glVertexAttribPointer(1, 4, GL_SHORT, GL_FALSE, 16, vertices+2); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 16, vertex_offset_0); + glVertexAttribPointer(1, 4, GL_SHORT, GL_FALSE, 16, vertex_offset_8); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); break; case GDRAW_vformat_v2tc2: - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 16, vertices); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 16, vertices+2); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 16, vertex_offset_0); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 16, vertex_offset_8); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); break; case GDRAW_vformat_ihud1: - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 20, vertices); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 20, vertices+2); - glVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, 20, vertices+4); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 20, vertex_offset_0); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 20, vertex_offset_8); + glVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, 20, vertex_offset_16); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glEnableVertexAttribArray(2); @@ -1943,10 +1947,13 @@ static void make_fragment_program(ProgramWithCachedVariableLocations *p, int num p->program = 0; } else { S32 vert = GDRAW_vformat_v2tc2; - if (p >= &gdraw->fprog[0][0][0] && p < &gdraw->fprog[GDRAW_TEXTURE__count][0][0]) { + ProgramWithCachedVariableLocations *basic_fprog_begin = &gdraw->fprog[0][0][0]; + ProgramWithCachedVariableLocations *basic_fprog_end = + basic_fprog_begin + (sizeof(gdraw->fprog) / sizeof(gdraw->fprog[0][0][0])); + if (p >= basic_fprog_begin && p < basic_fprog_end) { // for basic rendering shaders, we have three versions corresponding to the // three vertex formats we support. - S32 n = (S32) (p - gdraw->fprog[0][0]); + S32 n = (S32) (p - basic_fprog_begin); vert = n % 3; } @@ -2032,8 +2039,12 @@ static void make_vertex_programs(void) static void lazy_shader(ProgramWithCachedVariableLocations *ptr) { - if (ptr >= &gdraw->fprog[0][0][0] && ptr < &gdraw->fprog[GDRAW_TEXTURE__count][0][0]) { - S32 n = (S32) (ptr - gdraw->fprog[0][0]); + ProgramWithCachedVariableLocations *basic_fprog_begin = &gdraw->fprog[0][0][0]; + ProgramWithCachedVariableLocations *basic_fprog_end = + basic_fprog_begin + (sizeof(gdraw->fprog) / sizeof(gdraw->fprog[0][0][0])); + + if (ptr >= basic_fprog_begin && ptr < basic_fprog_end) { + S32 n = (S32) (ptr - basic_fprog_begin); n /= 3; make_fragment_program(ptr, NUMFRAGMENTS_pshader_basic, pshader_basic_arr[n], pshader_basic_vars); diff --git a/Minecraft.World/Level/TickNextTickData.cpp b/Minecraft.World/Level/TickNextTickData.cpp index b050cf11c..e20d27d14 100644 --- a/Minecraft.World/Level/TickNextTickData.cpp +++ b/Minecraft.World/Level/TickNextTickData.cpp @@ -27,7 +27,11 @@ bool TickNextTickData::equals(const TickNextTickData* o) const { } int TickNextTickData::hashCode() const { - return (((x * 1024 * 1024) + (z * 1024) + y) * 256); + std::uint32_t hash = + (((std::uint32_t)x * 1024u * 1024u) + ((std::uint32_t)z * 1024u) + + (std::uint32_t)y) * + 256u; + return (std::int32_t)hash; } TickNextTickData* TickNextTickData::delay(int64_t l) { @@ -72,4 +76,4 @@ int TickNextTickData::hash_fnct(const TickNextTickData& k) { bool TickNextTickData::eq_test(const TickNextTickData& x, const TickNextTickData& y) { return x.equals(&y); -} \ No newline at end of file +} diff --git a/Minecraft.World/Util/DescFormatter.h b/Minecraft.World/Util/DescFormatter.h index a28900d5b..bd71d319e 100644 --- a/Minecraft.World/Util/DescFormatter.h +++ b/Minecraft.World/Util/DescFormatter.h @@ -2,5 +2,6 @@ class DescFormatter { public: - virtual std::wstring format(const std::wstring& i18nValue); -}; \ No newline at end of file + virtual ~DescFormatter() = default; + virtual std::wstring format(const std::wstring& i18nValue) = 0; +};