From faa4a989ce4ee94a1088770614a9e9e20ced2df8 Mon Sep 17 00:00:00 2001 From: Nikita Edel Date: Wed, 11 Mar 2026 18:49:36 +0100 Subject: [PATCH] new blob --- Minecraft.Client/Platform/Common/App_enums.h | 5 +++-- .../Platform/Common/UI/UIComponent_TutorialPopup.cpp | 6 ++++++ .../Rendering/EntityRenderers/MinecartRenderer.cpp | 7 ++++--- .../Rendering/EntityRenderers/TileRenderer.cpp | 6 +++--- Minecraft.Client/UI/Font.cpp | 3 ++- Minecraft.World/Level/Level.cpp | 2 +- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Minecraft.Client/Platform/Common/App_enums.h b/Minecraft.Client/Platform/Common/App_enums.h index d4f639e05..7f6c6de19 100644 --- a/Minecraft.Client/Platform/Common/App_enums.h +++ b/Minecraft.Client/Platform/Common/App_enums.h @@ -809,7 +809,8 @@ enum EControllerActions ACTION_MENU_OK, ACTION_MENU_CANCEL, - ACTION_MAX_MENU = ACTION_MENU_CANCEL, + // 4jcraft added, off by one + ACTION_MAX_MENU = ACTION_MENU_CANCEL + 1, MINECRAFT_ACTION_JUMP, MINECRAFT_ACTION_FORWARD, @@ -911,4 +912,4 @@ enum eMCLang eMCLang_elGR, eMCLang_nnNO, eMCLang_skSK, -}; \ No newline at end of file +}; diff --git a/Minecraft.Client/Platform/Common/UI/UIComponent_TutorialPopup.cpp b/Minecraft.Client/Platform/Common/UI/UIComponent_TutorialPopup.cpp index 333e5dd95..dceb0f831 100644 --- a/Minecraft.Client/Platform/Common/UI/UIComponent_TutorialPopup.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIComponent_TutorialPopup.cpp @@ -23,6 +23,9 @@ UIComponent_TutorialPopup::UIComponent_TutorialPopup(int iPad, void *initData, U m_bSplitscreenGamertagVisible = false; m_labelDescription.init(L""); + + // 4jcraft added + m_tutorial = NULL; } std::wstring UIComponent_TutorialPopup::getMoviePath() @@ -69,6 +72,9 @@ void UIComponent_TutorialPopup::SetTutorialDescription(TutorialPopupInfo *info) { m_interactScene = info->interactScene; + // 4jcraft added + m_tutorial = info->tutorial; + std::wstring parsed = _SetIcon(info->icon, info->iAuxVal, info->isFoil, info->desc); parsed = _SetImage( parsed ); parsed = ParseDescription(m_iPad, parsed); diff --git a/Minecraft.Client/Rendering/EntityRenderers/MinecartRenderer.cpp b/Minecraft.Client/Rendering/EntityRenderers/MinecartRenderer.cpp index 9948ab907..e5928f55b 100644 --- a/Minecraft.Client/Rendering/EntityRenderers/MinecartRenderer.cpp +++ b/Minecraft.Client/Rendering/EntityRenderers/MinecartRenderer.cpp @@ -17,8 +17,9 @@ void MinecartRenderer::render(std::shared_ptr _cart, double x, double y, glPushMatrix(); - __int64 seed = cart->entityId * 493286711l; - seed = seed * seed * 4392167121l + seed * 98761; + // 4jcraft added a bunch of casts to prever overflow + int64_t seed = (int64_t)((uint64_t)cart->entityId * 493286711ULL); + seed = (int64_t)(((uint64_t)seed * (uint64_t)seed * 4392167121ULL) + ((uint64_t)seed * 98761ULL)); float xo = ((((seed >> 16) & 0x7) + 0.5f) / 8.0f - 0.5f) * 0.004f; float yo = ((((seed >> 20) & 0x7) + 0.5f) / 8.0f - 0.5f) * 0.004f; @@ -103,4 +104,4 @@ void MinecartRenderer::render(std::shared_ptr _cart, double x, double y, model->render(cart, 0, 0, -0.1f, 0, 0, 1 / 16.0f, true); glPopMatrix(); -} \ No newline at end of file +} diff --git a/Minecraft.Client/Rendering/EntityRenderers/TileRenderer.cpp b/Minecraft.Client/Rendering/EntityRenderers/TileRenderer.cpp index 4b248d31e..a5961ab02 100644 --- a/Minecraft.Client/Rendering/EntityRenderers/TileRenderer.cpp +++ b/Minecraft.Client/Rendering/EntityRenderers/TileRenderer.cpp @@ -3822,9 +3822,9 @@ bool TileRenderer::tesselateLilypadInWorld(Tile *tt, int x, int y, int z) float u1 = tex->getU1(true); float v1 = tex->getV1(true); - __int64 seed = (x * 3129871) ^ (z * 116129781l) ^ (y); - seed = seed * seed * 42317861 + seed * 11; - + // 4jcraft add a bunch of casts to prevent overflow (i pray to god) + int64_t seed = ((int64_t)x * 3129871) ^ ((int64_t)z * 116129781L) ^ ((int64_t)y); + seed = (int64_t)(((uint64_t)seed * (uint64_t)seed * 42317861ULL) + ((uint64_t)seed * 11ULL)); int dir = (int) ((seed >> 16) & 0x3); diff --git a/Minecraft.Client/UI/Font.cpp b/Minecraft.Client/UI/Font.cpp index 3ece2e8bb..096e548a3 100644 --- a/Minecraft.Client/UI/Font.cpp +++ b/Minecraft.Client/UI/Font.cpp @@ -258,7 +258,8 @@ void Font::draw(const std::wstring& str, int x, int y, int color, bool dropShado // if not set if (dropShadow) // divide RGB by 4, preserve alpha - color = (color & 0xfcfcfc) >> 2 | (color & (-1 << 24)); + // 4jcraft changed -1 << 24 to the value of 1 (0xFF FF FF FF) + color = (color & 0xfcfcfc) >> 2 | (color & (0xFFFFFFFF << 24)); glColor4f((color >> 16 & 255) / 255.0F, (color >> 8 & 255) / 255.0F, (color & 255) / 255.0F, (color >> 24 & 255) / 255.0F); diff --git a/Minecraft.World/Level/Level.cpp b/Minecraft.World/Level/Level.cpp index c09680f92..536703187 100644 --- a/Minecraft.World/Level/Level.cpp +++ b/Minecraft.World/Level/Level.cpp @@ -3228,7 +3228,7 @@ void Level::tickClientSideTiles(int xo, int zo, LevelChunk *lc) if (delayUntilNextMoodSound == 0) { - randValue = randValue * 3 + addend; + randValue = (unsigned) randValue * 3 + (unsigned) addend; int val = (randValue >> 2); int x = (val & 15); int z = ((val >> 8) & 15);