TU43 Structures, bug fixes & minor changes
- Elytra flight, damage, kinetic energy, pretty much any bug someone reported, paper doll, etc. - Fossil & Igloo generation - Texture interpolation - Iggy mouse fix for world settings - Neo branding on main screen - Release build txt logger - Debug mode spectator - Several server fixes - Flowerpot fixes - Several more changes made in TU43
This commit is contained in:
@@ -77,11 +77,28 @@ void UIControl_MinecraftPlayer::render(IggyCustomDrawCallbackRegion *region)
|
||||
glTranslatef(0, pMinecraft->localplayers[containerMenu->getPad()]->heightOffset, 0);
|
||||
EntityRenderDispatcher::instance->playerRotY = 180;
|
||||
|
||||
auto lp = pMinecraft->localplayers[containerMenu->getPad()];
|
||||
float owp = lp->walkAnimPos;
|
||||
float ows = lp->walkAnimSpeed;
|
||||
float owsO = lp->walkAnimSpeedO;
|
||||
if (lp->isElytraFlying())
|
||||
{
|
||||
lp->walkAnimPos = 0.0f;
|
||||
lp->walkAnimSpeed = 0.0f;
|
||||
lp->walkAnimSpeedO = 0.0f;
|
||||
}
|
||||
|
||||
// 4J Stu - Turning on hideGui while we do this stops the name rendering in split-screen
|
||||
bool wasHidingGui = pMinecraft->options->hideGui;
|
||||
pMinecraft->options->hideGui = true;
|
||||
EntityRenderDispatcher::instance->render(pMinecraft->localplayers[containerMenu->getPad()], 0, 0, 0, 0, 1, false, false);
|
||||
EntityRenderDispatcher::instance->isInventoryRender = true;
|
||||
EntityRenderDispatcher::instance->render(lp, 0, 0, 0, 0, 1, false, false);
|
||||
EntityRenderDispatcher::instance->isInventoryRender = false;
|
||||
pMinecraft->options->hideGui = wasHidingGui;
|
||||
|
||||
lp->walkAnimPos = owp;
|
||||
lp->walkAnimSpeed = ows;
|
||||
lp->walkAnimSpeedO = owsO;
|
||||
//pMinecraft->localplayers[m_iPad]->glow = 0;
|
||||
|
||||
pMinecraft->localplayers[containerMenu->getPad()]->yBodyRot = oybr;
|
||||
|
||||
@@ -80,6 +80,8 @@ UIScene_LaunchMoreOptionsMenu::UIScene_LaunchMoreOptionsMenu(int iPad, void *ini
|
||||
m_bUpdateCheats = false;
|
||||
// Update cheat checkboxes
|
||||
UpdateCheats();
|
||||
m_bPendingTabSwitch = false;
|
||||
m_iPendingTabIndex = -1;
|
||||
|
||||
m_checkboxes[eLaunchCheckbox_Online].init(app.GetString(IDS_ONLINE_GAME),eLaunchCheckbox_Online,bOnlineGame);
|
||||
m_checkboxes[eLaunchCheckbox_InviteOnly].init(app.GetString(IDS_INVITE_ONLY),eLaunchCheckbox_InviteOnly,bInviteOnly);
|
||||
@@ -240,6 +242,14 @@ void UIScene_LaunchMoreOptionsMenu::tick()
|
||||
UpdateOnline();
|
||||
m_bUpdateOnline = false;
|
||||
}
|
||||
if (m_bPendingTabSwitch)
|
||||
{
|
||||
m_bPendingTabSwitch = false;
|
||||
m_tabIndex = m_iPendingTabIndex;
|
||||
updateTooltips();
|
||||
IggyDataValue result;
|
||||
IggyResult out = IggyPlayerCallMethodRS(getMovie(), &result, IggyPlayerRootPath(getMovie()), m_funcChangeTab, 0, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
void UIScene_LaunchMoreOptionsMenu::handleDestroy()
|
||||
@@ -339,6 +349,42 @@ void UIScene_LaunchMoreOptionsMenu::handleTouchInput(unsigned int iPad, S32 x, S
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
bool UIScene_LaunchMoreOptionsMenu::handleMouseClick(F32 x, F32 y)
|
||||
{
|
||||
if (!hasFocus(m_iPad) || getMovie() == nullptr || g_KBMInput.IsMouseGrabbed() || !g_KBMInput.IsKBMActive())
|
||||
return false;
|
||||
|
||||
if (m_bIgnoreInput)
|
||||
return false;
|
||||
|
||||
float sceneMouseX = x;
|
||||
float sceneMouseY = y;
|
||||
|
||||
if (sceneMouseY >= 190.0f && sceneMouseY <= 270.0f)
|
||||
{
|
||||
int newTab = -1;
|
||||
if (sceneMouseX >= 480.0f && sceneMouseX <= 700.0f)
|
||||
newTab = TAB_WORLD_OPTIONS;
|
||||
else if (sceneMouseX > 700.0f && sceneMouseX <= 960.0f)
|
||||
newTab = TAB_GAME_OPTIONS;
|
||||
|
||||
if (newTab >= 0)
|
||||
{
|
||||
if (m_tabIndex != newTab)
|
||||
{
|
||||
m_bPendingTabSwitch = true;
|
||||
m_iPendingTabIndex = newTab;
|
||||
ui.PlayUISFX(eSFX_Press);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return UIScene::handleMouseClick(x, y);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__PSVITA__) || defined(_WINDOWS64)
|
||||
UIControl* UIScene_LaunchMoreOptionsMenu::GetMainPanel()
|
||||
{
|
||||
|
||||
@@ -146,6 +146,9 @@ public:
|
||||
#endif
|
||||
// INPUT
|
||||
virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled);
|
||||
#ifdef _WINDOWS64
|
||||
virtual bool handleMouseClick(F32 x, F32 y);
|
||||
#endif
|
||||
virtual void handleFocusChange(F64 controlId, F64 childId);
|
||||
virtual void handleTimerComplete(int id);
|
||||
static int KeyboardCompleteSeedCallback(LPVOID lpParam,const bool bRes);
|
||||
@@ -162,6 +165,9 @@ private:
|
||||
bool m_bUpdateOnline; // If true, update online settings on next tick
|
||||
void UpdateOnline();
|
||||
|
||||
bool m_bPendingTabSwitch;
|
||||
int m_iPendingTabIndex;
|
||||
|
||||
#ifdef __PSVITA__
|
||||
virtual void handleTouchInput(unsigned int iPad, S32 x, S32 y, int iId, bool bPressed, bool bRepeat, bool bReleased);
|
||||
#endif //__PSVITA__
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
#include "stdafx.h"
|
||||
#include "../../Lighting.h"
|
||||
#ifdef _WINDOWS64
|
||||
#include "../../Windows64/Iggy/gdraw/gdraw_d3d11.h"
|
||||
#include "../../Windows64/4JLibs/inc/4J_Render.h"
|
||||
#endif
|
||||
#include "../../../Minecraft.World/Mth.h"
|
||||
#include "../../../Minecraft.World/StringHelpers.h"
|
||||
#include "../../../Minecraft.World/Random.h"
|
||||
@@ -553,7 +558,61 @@ void UIScene_MainMenu::customDrawSplash(IggyCustomDrawCallbackRegion *region)
|
||||
|
||||
|
||||
// Finish GDraw and anything else that needs to be finalised
|
||||
ui.endCustomDraw(region);
|
||||
ui.endCustomDraw(region);
|
||||
}
|
||||
|
||||
void UIScene_MainMenu::render(S32 width, S32 height, C4JRender::eViewportType viewport)
|
||||
{
|
||||
UIScene::render(width, height, viewport);
|
||||
|
||||
Minecraft *pMinecraft = Minecraft::GetInstance();
|
||||
if (!pMinecraft || !pMinecraft->font) return;
|
||||
|
||||
Font *font = pMinecraft->font;
|
||||
const wstring part1 = L"neo";
|
||||
const wstring part2 = L"Legacy";
|
||||
const float scale = 0.6f;
|
||||
const int pad = 4;
|
||||
|
||||
ScreenSizeCalculator ssc(pMinecraft->options, pMinecraft->width_phys, pMinecraft->height_phys);
|
||||
S32 sw = ssc.getWidth();
|
||||
S32 sh = ssc.getHeight();
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
RenderManager.StartFrame();
|
||||
gdraw_D3D11_setViewport_4J();
|
||||
#endif
|
||||
RenderManager.Set_matrixDirty();
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0, sw, sh, 0, 1000, 3000);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0.0f, 0.0f, -2000.0f);
|
||||
|
||||
Lighting::turnOff();
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDepthMask(false);
|
||||
glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
int totalW = static_cast<int>((font->width(part1) + font->width(part2)) * scale);
|
||||
int tx = sw - totalW - pad;
|
||||
int ty = sh - static_cast<int>(8 * scale) - pad;
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(static_cast<float>(tx), static_cast<float>(ty), 0.0f);
|
||||
glScalef(scale, scale, scale);
|
||||
font->drawShadow(part1, 0, 0, 0x66A254FA);
|
||||
font->drawShadow(part2, font->width(part1), 0, 0x66ffffff);
|
||||
glPopMatrix();
|
||||
|
||||
glDepthMask(true);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
int UIScene_MainMenu::MustSignInReturned(void *pParam, int iPad, C4JStorage::EMessageResult result)
|
||||
|
||||
@@ -118,6 +118,7 @@ public:
|
||||
virtual EUIScene getSceneType() { return eUIScene_MainMenu;}
|
||||
|
||||
virtual void customDraw(IggyCustomDrawCallbackRegion *region);
|
||||
virtual void render(S32 width, S32 height, C4JRender::eViewportType viewport);
|
||||
protected:
|
||||
void customDrawSplash(IggyCustomDrawCallbackRegion *region);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user