diff --git a/modifiedeight-newadditions/headers/rendering/LevelRenderer.hpp b/modifiedeight-newadditions/headers/rendering/LevelRenderer.hpp index f157fa8..e530a46 100644 --- a/modifiedeight-newadditions/headers/rendering/LevelRenderer.hpp +++ b/modifiedeight-newadditions/headers/rendering/LevelRenderer.hpp @@ -91,7 +91,7 @@ struct LevelRenderer: LevelListener, AppPlatform::Listener std::string gatherStats1(); void generateSky(); static int32_t getLayerFeature(int32_t, bool_t); - void render(const AABB&); + void render(const AABB&, float); int32_t renderChunks(int32_t, float, bool_t); void renderClouds(float); void renderDebug(const AABB&, float); diff --git a/modifiedeight-newadditions/impl/entity/LocalPlayer.cpp b/modifiedeight-newadditions/impl/entity/LocalPlayer.cpp index a31ffdb..ee2315f 100644 --- a/modifiedeight-newadditions/impl/entity/LocalPlayer.cpp +++ b/modifiedeight-newadditions/impl/entity/LocalPlayer.cpp @@ -512,6 +512,9 @@ void LocalPlayer::aiStep() { if (!currentScreen || currentScreen->field_C) { moveInput->tick(this); } + if (this->moveInput->sneakingMaybe && this->ySize < 0.2) { + this->ySize = 0.2; + } this->field_B7C = 1.0; if (this->abilities.mayfly) { if (!jumpingMaybe && this->moveInput->jumpingMaybe) { @@ -547,10 +550,6 @@ void LocalPlayer::aiStep() { } } - if (!this->abilities.flying && this->moveInput->sneakingMaybe && - !this->onGround) { - this->motionY = this->motionY - 0.15f; - } if (this->isUsingItem()) { this->moveInput->strafeInput = this->moveInput->strafeInput * 0.35; this->moveInput->forwardInput = this->moveInput->forwardInput * 0.35; diff --git a/modifiedeight-newadditions/impl/input/ControllerHandler.cpp b/modifiedeight-newadditions/impl/input/ControllerHandler.cpp index 64f2d9f..4c4d57c 100644 --- a/modifiedeight-newadditions/impl/input/ControllerHandler.cpp +++ b/modifiedeight-newadditions/impl/input/ControllerHandler.cpp @@ -179,9 +179,6 @@ void ControllerHandler::tickGame(Minecraft* mc) { ControllerHandler::jumpHeld = Gamepad::isBindingDown(ControllerLayout::get(CA_JUMP)); if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK))) { ControllerHandler::sneakToggle ^= 1; - if(mc->soundEngine) { - mc->soundEngine->playUI("random.click", 1.0f, 1.0f); - } } ControllerHandler::sneakHeld = ControllerHandler::sneakToggle; @@ -324,7 +321,7 @@ void ControllerHandler::tickMenu(Minecraft* mc) { Mouse::feed(1, 0, cx, cy); } - if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK))) { + if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK)) || Gamepad::wasButtonPressed(GP_BTN_B)) { mc->handleBack(0); return; } diff --git a/modifiedeight-newadditions/impl/input/TouchscreenInput.cpp b/modifiedeight-newadditions/impl/input/TouchscreenInput.cpp index 2fac029..0a0c7a4 100644 --- a/modifiedeight-newadditions/impl/input/TouchscreenInput.cpp +++ b/modifiedeight-newadditions/impl/input/TouchscreenInput.cpp @@ -120,7 +120,7 @@ void TouchscreenInput::rebuild() { (this->field_42 || (hideGUI = this->field_41) != 0)) { hideGUI = 1; } - if (!this->minecraft->player->isRiding()) { + if (!Gamepad::connected && !this->minecraft->player->isRiding()) { if (hideGUI || this->idkWhatIsThis2) { v4 = _D6E06658; } else if (this->isButtonDown(102)) { @@ -161,37 +161,41 @@ void TouchscreenInput::rebuild() { sub_D6604D0C(this->upRightButton, 26, 133, 26.0); } } - if (this->isButtonDown(100)) { - v9 = _D6E0665C; - } else { - v9 = _D6E06660; - } - Tesselator::instance.colorABGR(v9); - if (this->idkWhatIsThis2) { - v10 = 52; - v11 = 133; - } else { - v10 = 0; - v11 = 107; - } - sub_D6604D0C(this->upArrow, v10, v11, 26.0); - if (this->field_43 && hideGUI) { - v12 = _D6E06658; - } else if (this->isButtonDown(104)) { - v12 = _D6E0665C; - } else { - v12 = _D6E06660; - } - Tesselator::instance.colorABGR(v12); - if (this->field_43) { - v13 = 133; - } else { - v13 = 107; + if (!Gamepad::connected) { + if (this->isButtonDown(100)) { + v9 = _D6E0665C; + } else { + v9 = _D6E06660; + } + Tesselator::instance.colorABGR(v9); + if (this->idkWhatIsThis2) { + v10 = 52; + v11 = 133; + } else { + v10 = 0; + v11 = 107; + } + sub_D6604D0C(this->upArrow, v10, v11, 26.0); } - if (this->options->swapJumpAndSneak) { - sub_D6604D0C(this->jumpButton, 104, this->field_43 ? 133 : 107, 26.0); - } else { - sub_D6604D0C(this->jumpButton, 104, v13, 26.0); + if (!Gamepad::connected) { + if (this->field_43 && hideGUI) { + v12 = _D6E06658; + } else if (this->isButtonDown(104)) { + v12 = _D6E0665C; + } else { + v12 = _D6E06660; + } + Tesselator::instance.colorABGR(v12); + if (this->field_43) { + v13 = 133; + } else { + v13 = 107; + } + if (this->options->swapJumpAndSneak) { + sub_D6604D0C(this->jumpButton, 104, this->field_43 ? 133 : 107, 26.0); + } else { + sub_D6604D0C(this->jumpButton, 104, v13, 26.0); + } } if (!this->minecraft->currentScreen) { if (this->isButtonDown(106)) { @@ -202,7 +206,7 @@ void TouchscreenInput::rebuild() { Tesselator::instance.colorABGR(v14); sub_D6604D0C(this->chatButton, 200, 82, 18.0); } - if (!this->minecraft->currentScreen && this->sneakButton) { + if (!Gamepad::connected && !this->minecraft->currentScreen && this->sneakButton) { if (this->isButtonDown(108)) { v14 = _D6E0665C; } else { @@ -407,7 +411,6 @@ void TouchscreenInput::tick(Player *a2) { static int32_t s_lastSneakTap = 0; int32_t now = getTimeMs(); if (now - s_lastSneakTap <= 400) { - this->minecraft->soundEngine->playUI("random.click", 1.0, 1.0); this->sneakingMaybe = !this->sneakingMaybe; s_lastSneakTap = 0; } else { diff --git a/modifiedeight-newadditions/impl/rendering/GameRenderer.cpp b/modifiedeight-newadditions/impl/rendering/GameRenderer.cpp index 62f541f..84f47ed 100644 --- a/modifiedeight-newadditions/impl/rendering/GameRenderer.cpp +++ b/modifiedeight-newadditions/impl/rendering/GameRenderer.cpp @@ -367,7 +367,7 @@ void GameRenderer::pick(float a2) { if(this->minecraft->viewEntityMaybe) { if(this->minecraft->viewEntityMaybe->isAlive()) { float v6 = this->minecraft->gameMode->getPickRange(); - Vec3 v72(0, 0, 0); + Vec3 v72 = this->minecraft->viewEntityMaybe->getPos(a2); bool updated; if(!this->minecraft->useTouchscreen() || this->minecraft->options.useJoypad) { bool isLiquidClipItem; @@ -813,17 +813,15 @@ void GameRenderer::renderLevel(float a2) { this->minecraft->levelRenderer->renderNameTags(a2); if(this->field_4C == 1.0) { if(viewEntityMaybe->isPlayer()) { - if(!this->minecraft->currentScreen && !this->minecraft->options.thirdPerson && this->minecraft->selectedObject.hitType != 2 && !viewEntityMaybe->isUnderLiquid(Material::water)) { -#ifndef PCTWEAKS - if(this->minecraft->useTouchscreen() && !this->minecraft->mouseGrabbed) { -#endif - levelRenderer->renderHitSelect((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); -#ifndef PCTWEAKS - } else { - levelRenderer->renderHitOutline((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); - } + if(!this->minecraft->currentScreen && !this->minecraft->options.thirdPerson && this->minecraft->selectedObject.hitType != 2 && !viewEntityMaybe->isUnderLiquid(Material::water)) { +#ifdef PCTWEAKS + levelRenderer->renderHitOutline((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); +#else + if(this->minecraft->useTouchscreen()) { + levelRenderer->renderHitSelect((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); + } #endif - levelRenderer->renderHit((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); + levelRenderer->renderHit((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); } } } diff --git a/modifiedeight-newadditions/impl/rendering/LevelRenderer.cpp b/modifiedeight-newadditions/impl/rendering/LevelRenderer.cpp index 3f26c91..cbb1b22 100644 --- a/modifiedeight-newadditions/impl/rendering/LevelRenderer.cpp +++ b/modifiedeight-newadditions/impl/rendering/LevelRenderer.cpp @@ -538,25 +538,25 @@ int32_t LevelRenderer::getLayerFeature(int32_t a1, bool_t a2) { return 0; } } -void LevelRenderer::render(const AABB &a2) { - Vec3 v5 = this->minecraft->player->getPos(0.0); +void LevelRenderer::render(const AABB &a2, float pt) { + Vec3 v5 = this->minecraft->player->getPos(pt); Vec3 v6(-v5.x, -v5.y, -v5.z); Tesselator::instance.offset(v6); - Tesselator::instance.begin(3); + Tesselator::instance.begin(3, 0); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.minY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.draw(1); - Tesselator::instance.begin(3); + Tesselator::instance.begin(3, 0); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.maxY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.draw(1); - Tesselator::instance.begin(1); + Tesselator::instance.begin(1, 0); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.minZ); @@ -1025,19 +1025,16 @@ void LevelRenderer::renderHitOutline(Player *a2, const HitResult &a3, int32_t v9 = this->level->getTile(a3.field_4, a3.field_8, a3.field_C); if (v9 > 0) { Tile::tiles[v9]->updateShape(this->level, a3.field_4, a3.field_8, a3.field_C); - float v11 = a2->prevPosX + (float)((float)(a2->posX - a2->prevPosX) * a6); - float v12 = a2->prevPosY + (float)((float)(a2->posY - a2->prevPosY) * a6); - float v13 = a2->prevPosZ + (float)((float)(a2->posZ - a2->prevPosZ) * a6); AABB v15 = Tile::tiles[v9]->getTileAABB(this->level, a3.field_4, a3.field_8, a3.field_C); AABB v16{ - (float)(v15.minX - 0.002f) - v11, - (float)(v15.minY - 0.002f) - v12, - (float)(v15.minZ - 0.002f) - v13, - (float)(v15.maxX + 0.002f) - v11, - (float)(v15.maxY + 0.002f) - v12, - (float)(v15.maxZ + 0.002f) - v13, + (float)(v15.minX - 0.002f), + (float)(v15.minY - 0.002f), + (float)(v15.minZ - 0.002f), + (float)(v15.maxX + 0.002f), + (float)(v15.maxY + 0.002f), + (float)(v15.maxZ + 0.002f), }; - this->render(v16); + this->render(v16, a6); } } } @@ -1088,7 +1085,8 @@ void LevelRenderer::renderOutlineHitSelect(Player *a2, float a3, Tile *a4, glColor4f(0.0, 0.0, 0.0, 0.4); AABB v8 = a4->getTileAABB(this->level, a5.field_4, a5.field_8, a5.field_C); this->render({v8.minX + 0.002f, v8.minY + 0.002f, v8.minZ + 0.002f, - v8.maxX - 0.002f, v8.maxY - 0.002f, v8.maxZ - 0.002f}); + v8.maxX - 0.002f, v8.maxY - 0.002f, v8.maxZ - 0.002f}, + a3); glDepthMask(1u); } void LevelRenderer::renderShadows( diff --git a/modifiedeight/headers/rendering/LevelRenderer.hpp b/modifiedeight/headers/rendering/LevelRenderer.hpp index 249ede4..2eb95f6 100644 --- a/modifiedeight/headers/rendering/LevelRenderer.hpp +++ b/modifiedeight/headers/rendering/LevelRenderer.hpp @@ -91,7 +91,7 @@ struct LevelRenderer: LevelListener, AppPlatform::Listener std::string gatherStats1(); void generateSky(); static int32_t getLayerFeature(int32_t, bool_t); - void render(const AABB&); + void render(const AABB&, float); int32_t renderChunks(int32_t, float, bool_t); void renderClouds(float); void renderDebug(const AABB&, float); diff --git a/modifiedeight/impl/entity/LocalPlayer.cpp b/modifiedeight/impl/entity/LocalPlayer.cpp index 8fb2680..ae391d5 100644 --- a/modifiedeight/impl/entity/LocalPlayer.cpp +++ b/modifiedeight/impl/entity/LocalPlayer.cpp @@ -428,6 +428,9 @@ void LocalPlayer::aiStep() { if (!currentScreen || currentScreen->field_C) { moveInput->tick(this); } + if (this->moveInput->sneakingMaybe && this->ySize < 0.2) { + this->ySize = 0.2; + } this->field_B7C = 1.0; if (this->abilities.mayfly) { if (!jumpingMaybe && this->moveInput->jumpingMaybe) { @@ -463,10 +466,6 @@ void LocalPlayer::aiStep() { } } - if (!this->abilities.flying && this->moveInput->sneakingMaybe && - !this->onGround) { - this->motionY = this->motionY - 0.15f; - } if (this->isUsingItem()) { this->moveInput->strafeInput = this->moveInput->strafeInput * 0.35; this->moveInput->forwardInput = this->moveInput->forwardInput * 0.35; diff --git a/modifiedeight/impl/input/ControllerHandler.cpp b/modifiedeight/impl/input/ControllerHandler.cpp index 64f2d9f..4c4d57c 100644 --- a/modifiedeight/impl/input/ControllerHandler.cpp +++ b/modifiedeight/impl/input/ControllerHandler.cpp @@ -179,9 +179,6 @@ void ControllerHandler::tickGame(Minecraft* mc) { ControllerHandler::jumpHeld = Gamepad::isBindingDown(ControllerLayout::get(CA_JUMP)); if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK))) { ControllerHandler::sneakToggle ^= 1; - if(mc->soundEngine) { - mc->soundEngine->playUI("random.click", 1.0f, 1.0f); - } } ControllerHandler::sneakHeld = ControllerHandler::sneakToggle; @@ -324,7 +321,7 @@ void ControllerHandler::tickMenu(Minecraft* mc) { Mouse::feed(1, 0, cx, cy); } - if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK))) { + if(Gamepad::wasBindingPressed(ControllerLayout::get(CA_SNEAK)) || Gamepad::wasButtonPressed(GP_BTN_B)) { mc->handleBack(0); return; } diff --git a/modifiedeight/impl/input/TouchscreenInput.cpp b/modifiedeight/impl/input/TouchscreenInput.cpp index f703101..1d46379 100644 --- a/modifiedeight/impl/input/TouchscreenInput.cpp +++ b/modifiedeight/impl/input/TouchscreenInput.cpp @@ -120,7 +120,7 @@ void TouchscreenInput::rebuild() { (this->field_42 || (hideGUI = this->field_41) != 0)) { hideGUI = 1; } - if (!this->minecraft->player->isRiding()) { + if (!Gamepad::connected && !this->minecraft->player->isRiding()) { if (hideGUI || this->idkWhatIsThis2) { v4 = _D6E06658; } else if (this->isButtonDown(102)) { @@ -161,34 +161,38 @@ void TouchscreenInput::rebuild() { sub_D6604D0C(this->upRightButton, 26, 133, 26.0); } } - if (this->isButtonDown(100)) { - v9 = _D6E0665C; - } else { - v9 = _D6E06660; - } - Tesselator::instance.colorABGR(v9); - if (this->idkWhatIsThis2) { - v10 = 52; - v11 = 133; - } else { - v10 = 0; - v11 = 107; - } - sub_D6604D0C(this->upArrow, v10, v11, 26.0); - if (this->field_43 && hideGUI) { - v12 = _D6E06658; - } else if (this->isButtonDown(104)) { - v12 = _D6E0665C; - } else { - v12 = _D6E06660; + if (!Gamepad::connected) { + if (this->isButtonDown(100)) { + v9 = _D6E0665C; + } else { + v9 = _D6E06660; + } + Tesselator::instance.colorABGR(v9); + if (this->idkWhatIsThis2) { + v10 = 52; + v11 = 133; + } else { + v10 = 0; + v11 = 107; + } + sub_D6604D0C(this->upArrow, v10, v11, 26.0); } - Tesselator::instance.colorABGR(v12); - if (this->field_43) { - v13 = 133; - } else { - v13 = 107; + if (!Gamepad::connected) { + if (this->field_43 && hideGUI) { + v12 = _D6E06658; + } else if (this->isButtonDown(104)) { + v12 = _D6E0665C; + } else { + v12 = _D6E06660; + } + Tesselator::instance.colorABGR(v12); + if (this->field_43) { + v13 = 133; + } else { + v13 = 107; + } + sub_D6604D0C(this->jumpButton, 104, v13, 26.0); } - sub_D6604D0C(this->jumpButton, 104, v13, 26.0); if (!this->minecraft->currentScreen) { if (this->isButtonDown(106)) { v14 = _D6E0665C; @@ -198,14 +202,14 @@ void TouchscreenInput::rebuild() { Tesselator::instance.colorABGR(v14); sub_D6604D0C(this->chatButton, 200, 82, 18.0); } - if (!this->minecraft->currentScreen && this->sneakButton) { + if (!Gamepad::connected && !this->minecraft->currentScreen && this->sneakButton) { if (this->isButtonDown(108)) { v14 = _D6E0665C; } else { v14 = _D6E06660; } Tesselator::instance.colorABGR(v14); - sub_D6604D0C(this->sneakButton, 218, this->sneakingMaybe ? 82 : 64, 18.0); + sub_D6604D0C(this->sneakButton, 218, this->sneakingMaybe ? 64 : 82, 18.0); } if (!this->minecraft->currentScreen && this->cameraButton) { int vCam = this->isButtonDown(107) ? _D6E0665C : _D6E06660; @@ -403,7 +407,6 @@ void TouchscreenInput::tick(Player *a2) { static int32_t s_lastSneakTap = 0; int32_t now = getTimeMs(); if (now - s_lastSneakTap <= 400) { - this->minecraft->soundEngine->playUI("random.click", 1.0, 1.0); this->sneakingMaybe = !this->sneakingMaybe; s_lastSneakTap = 0; } else { diff --git a/modifiedeight/impl/rendering/GameRenderer.cpp b/modifiedeight/impl/rendering/GameRenderer.cpp index acf0f28..9a14d83 100644 --- a/modifiedeight/impl/rendering/GameRenderer.cpp +++ b/modifiedeight/impl/rendering/GameRenderer.cpp @@ -192,12 +192,16 @@ void GameRenderer::moveCameraToPlayer(float a2) { float v44; // r0 Minecraft* minecraft; // r3 Minecraft* v46; // r3 + float rayYaw = 0.0f; + float rayPitch = 0.0f; viewEntityMaybe = this->minecraft->viewEntityMaybe; posX = viewEntityMaybe->posX; prevX = viewEntityMaybe->prevX; posY = viewEntityMaybe->posY; prevY = viewEntityMaybe->prevY; + posZ = viewEntityMaybe->posZ; + prevZ = viewEntityMaybe->prevZ; v11 = viewEntityMaybe->ridingHeight - 1.62; if(viewEntityMaybe->isSneaking()) { v11 += 0.12f; @@ -230,12 +234,18 @@ void GameRenderer::moveCameraToPlayer(float a2) { v30 = prevZ + (float)((float)(posZ - prevZ) * a2); v31 = prevX + (float)((float)(posX - prevX) * a2); pitch = viewEntityMaybe->pitch; - v33 = (float)(pitch / 180.0) * 3.1416; + rayYaw = yaw; + rayPitch = pitch; + if (this->minecraft->options.thirdPerson == 2) { + rayYaw += 180.0f; + rayPitch = -rayPitch; + } + v33 = (float)(rayPitch / 180.0) * 3.1416; v34 = v28 - v11; - v35 = Mth::sin((float)(yaw / 180.0) * 3.1416); + v35 = Mth::sin((float)(rayYaw / 180.0) * 3.1416); v36 = Mth::cos(v33); v37 = (float)-(float)(v35 * v36) * v23; - v38 = (float)(Mth::cos((float)(yaw / 180.0) * 3.1416) * v36) * v23; + v38 = (float)(Mth::cos((float)(rayYaw / 180.0) * 3.1416) * v36) * v23; v39 = -(float)(Mth::sin(v33) * v23); do { v40 = (float)(2 * (v24 & 1) - 1) * 0.1; @@ -303,7 +313,7 @@ void GameRenderer::pick(float a2) { if(this->minecraft->viewEntityMaybe) { if(this->minecraft->viewEntityMaybe->isAlive()) { float v6 = this->minecraft->gameMode->getPickRange(); - Vec3 v72(0, 0, 0); + Vec3 v72 = this->minecraft->viewEntityMaybe->getPos(a2); bool updated; if(!this->minecraft->useTouchscreen() || this->minecraft->options.useJoypad) { bool isLiquidClipItem; @@ -754,13 +764,11 @@ void GameRenderer::renderLevel(float a2) { if(viewEntityMaybe->isPlayer()) { if(!this->minecraft->currentScreen && this->minecraft->selectedObject.hitType != 2 && !viewEntityMaybe->isUnderLiquid(Material::water)) { if(!this->minecraft->options.thirdPerson) { -#ifndef PCTWEAKS - if(this->minecraft->useTouchscreen() && !this->minecraft->mouseGrabbed) { -#endif +#ifdef PCTWEAKS + levelRenderer->renderHitOutline((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); +#else + if(this->minecraft->useTouchscreen()) { levelRenderer->renderHitSelect((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); -#ifndef PCTWEAKS - } else { - levelRenderer->renderHitOutline((Player*)viewEntityMaybe, this->minecraft->selectedObject, 0, 0, a2); } #endif } diff --git a/modifiedeight/impl/rendering/LevelRenderer.cpp b/modifiedeight/impl/rendering/LevelRenderer.cpp index 06ae42b..75d3d27 100644 --- a/modifiedeight/impl/rendering/LevelRenderer.cpp +++ b/modifiedeight/impl/rendering/LevelRenderer.cpp @@ -439,26 +439,26 @@ int32_t LevelRenderer::getLayerFeature(int32_t a1, bool_t a2) { return 0; } } -void LevelRenderer::render(const AABB& a2) { +void LevelRenderer::render(const AABB& a2, float pt) { this->textures->loadAndBindTexture("terrain-atlas.tga"); - Vec3 v5 = this->minecraft->player->getPos(0.0); + Vec3 v5 = this->minecraft->player->getPos(pt); Vec3 v6(-v5.x, -v5.y, -v5.z); Tesselator::instance.offset(v6); - Tesselator::instance.begin(3); + Tesselator::instance.begin(3, 0); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.minY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.draw(1); - Tesselator::instance.begin(3); + Tesselator::instance.begin(3, 0); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.maxY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.maxZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.draw(1); - Tesselator::instance.begin(1); + Tesselator::instance.begin(1, 0); Tesselator::instance.vertex(a2.minX, a2.minY, a2.minZ); Tesselator::instance.vertex(a2.minX, a2.maxY, a2.minZ); Tesselator::instance.vertex(a2.maxX, a2.minY, a2.minZ); @@ -857,9 +857,6 @@ void LevelRenderer::renderHit(Player* a2, const HitResult& a3, int32_t df, void* void LevelRenderer::renderHitOutline(Player* a2, const HitResult& a3, int32_t a4, void*, float a6) { int32_t v9; // r0 int32_t v10; // r8 - float v11; // s17 - float v12; // s18 - float v13; // s16 if(!a4 && a3.hitType == 0) { glColor4f(0.0, 0.0, 0.0, 0.4); @@ -869,20 +866,17 @@ void LevelRenderer::renderHitOutline(Player* a2, const HitResult& a3, int32_t a4 v10 = v9; if(v9 > 0) { Tile::tiles[v9]->updateShape(this->level, a3.field_4, a3.field_8, a3.field_C); - v11 = a2->prevPosX + (float)((float)(a2->posX - a2->prevPosX) * a6); - v12 = a2->prevPosY + (float)((float)(a2->posY - a2->prevPosY) * a6); - v13 = a2->prevPosZ + (float)((float)(a2->posZ - a2->prevPosZ) * a6); AABB v15 = Tile::tiles[v10]->getTileAABB(this->level, a3.field_4, a3.field_8, a3.field_C); AABB v16{ - .minX = (float)(v15.minX - 0.002) - v11, - .minY = (float)(v15.minY - 0.002) - v12, - .minZ = (float)(v15.minZ - 0.002) - v13, - .maxX = (float)(v15.maxX + 0.002) - v11, - .maxY = (float)(v15.maxY + 0.002) - v12, - .maxZ = (float)(v15.maxZ + 0.002) - v13, + .minX = (float)(v15.minX - 0.002), + .minY = (float)(v15.minY - 0.002), + .minZ = (float)(v15.minZ - 0.002), + .maxX = (float)(v15.maxX + 0.002), + .maxY = (float)(v15.maxY + 0.002), + .maxZ = (float)(v15.maxZ + 0.002), }; - this->render(v16); + this->render(v16, a6); } //~v14 } @@ -929,7 +923,7 @@ void LevelRenderer::renderOutlineHitSelect(Player* a2, float a3, Tile* a4, const glDepthMask(0); glColor4f(0.0, 0.0, 0.0, 0.4); AABB v8 = a4->getTileAABB(this->level, a5.field_4, a5.field_8, a5.field_C); - this->render({v8.minX + 0.002f, v8.minY + 0.002f, v8.minZ + 0.002f, v8.maxX - 0.002f, v8.maxY - 0.002f, v8.maxZ - 0.002f}); + this->render({v8.minX + 0.002f, v8.minY + 0.002f, v8.minZ + 0.002f, v8.maxX - 0.002f, v8.maxY - 0.002f, v8.maxZ - 0.002f}, a3); glDepthMask(1u); } void LevelRenderer::renderShadows(const std::multimap>& a2, const std::vector& a3, float a4) { diff --git a/modifiedeight/impl/rendering/TileRenderer.cpp b/modifiedeight/impl/rendering/TileRenderer.cpp index 0f9719c..835272d 100644 --- a/modifiedeight/impl/rendering/TileRenderer.cpp +++ b/modifiedeight/impl/rendering/TileRenderer.cpp @@ -541,20 +541,14 @@ void TileRenderer::renderGuiTile(Tile* tile, int32_t a3, float a4, float a5) { tile->updateDefaultShape(); Tesselator::instance.begin(24); Tesselator::instance.color(a4, a4, a4, a5); - v16 = tile->getTexture(0); - this->renderFaceDown(tile, 0.0, 0.0, 0.0, *v16); v17 = tile->getTexture(1); this->renderFaceUp(tile, 0.0, 0.0, 0.0, *v17); Tesselator::instance.color(a4 * 0.5, a4 * 0.5, a4 * 0.5, a5); - v18 = tile->getTexture(2); - this->renderNorth(tile, 0.0, 0.0, 0.0625, *v18); v50 = *tile->getTexture(3); this->renderSouth(tile, 0.0, 0.0, -0.0625, v50); Tesselator::instance.color(a4 * 0.73, a4 * 0.73, a4 * 0.73, a5); v19 = tile->getTexture(4); this->renderWest(tile, 0.0625, 0.0, 0.0, *v19); - v20 = tile->getTexture(5); - this->renderEast(tile, -0.0625, 0.0, 0.0, *v20); goto LABEL_10; case 10: Tesselator::instance.begin(48); @@ -566,20 +560,14 @@ void TileRenderer::renderGuiTile(Tile* tile, int32_t a3, float a4, float a5) { } Tesselator::instance.color(a4, a4, a4, a5); ++v5; - v22 = tile->getTexture(0); - this->renderFaceDown(tile, 0.0, 0.0, 0.0, *v22); v23 = tile->getTexture(1); this->renderFaceUp(tile, 0.0, 0.0, 0.0, *v23); Tesselator::instance.color(a4 * 0.5, a4 * 0.5, a4 * 0.5, a5); - v24 = tile->getTexture(2); - this->renderNorth(tile, 0.0, 0.0, 0.0, *v24); v51 = *tile->getTexture(3); this->renderSouth(tile, 0.0, 0.0, 0.0, v51); Tesselator::instance.color(a4 * 0.73, a4 * 0.73, a4 * 0.73, a5); v25 = tile->getTexture(4); this->renderWest(tile, 0.0, 0.0, 0.0, *v25); - v26 = tile->getTexture(5); - this->renderEast(tile, 0.0, 0.0, 0.0, *v26); } while(v5 != 2); goto LABEL_10; case 11: @@ -602,20 +590,14 @@ void TileRenderer::renderGuiTile(Tile* tile, int32_t a3, float a4, float a5) { } Tesselator::instance.color(a4, a4, a4, a5); ++v5; - v27 = tile->getTexture(0); - this->renderFaceDown(tile, 0.0, 0.0, 0.0, *v27); v28 = tile->getTexture(1); this->renderFaceUp(tile, 0.0, 0.0, 0.0, *v28); Tesselator::instance.color(a4 * 0.5, a4 * 0.5, a4 * 0.5, a5); - v29 = tile->getTexture(2); - this->renderNorth(tile, 0.0, 0.0, 0.0, *v29); v52 = *tile->getTexture(3); this->renderSouth(tile, 0.0, 0.0, 0.0, v52); Tesselator::instance.color(a4 * 0.73, a4 * 0.73, a4 * 0.73, a5); v30 = tile->getTexture(4); this->renderWest(tile, 0.0, 0.0, 0.0, *v30); - v31 = tile->getTexture(5); - this->renderEast(tile, 0.0, 0.0, 0.0, *v31); } while(v5 != 4); LABEL_28: Tesselator::instance.draw(1); @@ -637,18 +619,12 @@ void TileRenderer::renderGuiTile(Tile* tile, int32_t a3, float a4, float a5) { ++v5; v33 = tile->getTexture(0); this->renderFaceUp(tile, 0.0, 0.0, 0.0, *v33); - v34 = tile->getTexture(1); - this->renderFaceDown(tile, 0.0, 0.0, 0.0, *v34); Tesselator::instance.color(a4 * 0.5, a4 * 0.5, a4 * 0.5, a5); - v35 = tile->getTexture(2); - this->renderNorth(tile, 0.0, 0.0, 0.0, *v35); v53 = *tile->getTexture(3); this->renderSouth(tile, 0.0, 0.0, 0.0, v53); Tesselator::instance.color(a4 * 0.73, a4 * 0.73, a4 * 0.73, a5); v36 = tile->getTexture(4); this->renderWest(tile, 0.0, 0.0, 0.0, *v36); - v37 = tile->getTexture(5); - this->renderEast(tile, 0.0, 0.0, 0.0, *v37); } while(v5 != 3); goto LABEL_28; case 32: @@ -684,18 +660,12 @@ void TileRenderer::renderGuiTile(Tile* tile, int32_t a3, float a4, float a5) { Tesselator::instance.color(a4, a4, a4, a5); v43 = tile->getTexture(0, a3); this->renderFaceUp(tile, 0.0, 0.0, 0.0, *v43); - v44 = tile->getTexture(1, a3); - this->renderFaceDown(tile, 0.0, 0.0, 0.0, *v44); Tesselator::instance.color(a4 * 0.5, a4 * 0.5, a4 * 0.5, a5); - v45 = tile->getTexture(2, a3); - this->renderNorth(tile, 0.0, 0.0, 0.0, *v45); v55 = *tile->getTexture(3, a3); this->renderSouth(tile, 0.0, 0.0, 0.0, v55); Tesselator::instance.color(a4 * 0.73, a4 * 0.73, a4 * 0.73, a5); v46 = tile->getTexture(4, a3); this->renderWest(tile, 0.0, 0.0, 0.0, *v46); - v47 = tile->getTexture(5, a3); - this->renderEast(tile, 0.0, 0.0, 0.0, *v47); if(v5 == 4) { goto LABEL_28; }