forked from Kolyah35/minecraft-pe-0.6.1
Fixes and New Additions
Added GUI Styles with 3 options: Java, Pi/Xperia and Pocket Hopefully fixed touch input eating and breaking blocks bug Fire should render on all mobs now Fixed only one side of the first person burning animation being animated Added Window Scaling Option for PC Users (Hasn't been tested on other platforms Render Distance is now configurable from the settings menu Tried to fix shadows again on IOS and Android, hopefully works? Block Outline Selection now has a thicker outline for better visibility
This commit is contained in:
@@ -229,6 +229,12 @@ options.fancyGraphics=Fancy graphics
|
||||
options.renderDebug=Debug render
|
||||
options.anaglyph3d=3D anaglyph
|
||||
|
||||
options.windowScale =Window Scaling
|
||||
|
||||
options.menuStyle =Menu Style
|
||||
options.menuStyle.pocket =Pocket Edition
|
||||
options.menuStyle.xperia =Xperia/Pi
|
||||
options.menuStyle.java =Java Beta
|
||||
|
||||
performance.max=Max FPS
|
||||
performance.balanced=Balanced
|
||||
|
||||
@@ -843,7 +843,7 @@ void Minecraft::tickInput() {
|
||||
if (key == Keyboard::KEY_ESCAPE)
|
||||
pauseGame(false);
|
||||
|
||||
#ifndef OPENGL_ES
|
||||
#ifdef PLATFORM_DESKTOP
|
||||
if (key == Keyboard::KEY_P) {
|
||||
static bool isWireFrame = false;
|
||||
isWireFrame = !isWireFrame;
|
||||
@@ -864,12 +864,14 @@ void Minecraft::tickInput() {
|
||||
|
||||
static bool prevMouseDownLeft = false;
|
||||
|
||||
if (Mouse::getButtonState(MouseAction::ACTION_LEFT) == 0) {
|
||||
gameMode->stopDestroyBlock();
|
||||
}
|
||||
if (!useTouchscreen()) {
|
||||
if (Mouse::getButtonState(MouseAction::ACTION_LEFT) == 0) {
|
||||
gameMode->stopDestroyBlock();
|
||||
}
|
||||
|
||||
if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) {
|
||||
gameMode->releaseUsingItem(player);
|
||||
if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) {
|
||||
gameMode->releaseUsingItem(player);
|
||||
}
|
||||
}
|
||||
|
||||
if (useTouchscreen()) {
|
||||
@@ -1142,7 +1144,8 @@ void Minecraft::init()
|
||||
textures->addDynamicTexture(new WaterSideTexture());
|
||||
textures->addDynamicTexture(new LavaTexture());
|
||||
textures->addDynamicTexture(new LavaSideTexture());
|
||||
textures->addDynamicTexture(new FireTexture());
|
||||
textures->addDynamicTexture(new FireTexture(0));
|
||||
textures->addDynamicTexture(new FireTexture(1));
|
||||
gui.texturesLoaded(textures);
|
||||
|
||||
levelRenderer = new LevelRenderer(this);
|
||||
@@ -1191,6 +1194,27 @@ void Minecraft::setSize(int w, int h) {
|
||||
|
||||
width = w;
|
||||
height = h;
|
||||
int screenWidth;
|
||||
int screenHeight;
|
||||
//#ifdef PLATFORM_DESKTOP
|
||||
if (options.getBooleanValue(OPTIONS_WINDOW_SCALE)){ // scales with resolution using a formula instead of having hardcoded if checks
|
||||
int guiScale = options.getIntValue(OPTIONS_GUI_SCALE);
|
||||
if (guiScale == 0) {
|
||||
guiScale = 1000;
|
||||
}
|
||||
|
||||
// determine gui scale, optionally overriding auto
|
||||
|
||||
|
||||
Gui::GuiScale = (float)Mth::Min(guiScale, Mth::Max(1, Mth::Min(width / 320, height / 240)));
|
||||
|
||||
// 2. Calculate the Inverse based on the NEW scale
|
||||
Gui::InvGuiScale = 1.0f / Gui::GuiScale;
|
||||
screenWidth = (int)(width * Gui::InvGuiScale);
|
||||
screenHeight = (int)(height * Gui::InvGuiScale);
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
int guiScale = options.getIntValue(OPTIONS_GUI_SCALE);
|
||||
|
||||
@@ -1228,8 +1252,8 @@ void Minecraft::setSize(int w, int h) {
|
||||
}
|
||||
|
||||
Gui::InvGuiScale = 1.0f / Gui::GuiScale;
|
||||
int screenWidth = (int)(width * Gui::InvGuiScale);
|
||||
int screenHeight = (int)(height * Gui::InvGuiScale);
|
||||
screenWidth = (int)(width * Gui::InvGuiScale);
|
||||
screenHeight = (int)(height * Gui::InvGuiScale);
|
||||
|
||||
// if (platform()) {
|
||||
// float pixelsPerMillimeter = options.getProgressValue(&Option::PIXELS_PER_MILLIMETER);
|
||||
@@ -1237,6 +1261,8 @@ void Minecraft::setSize(int w, int h) {
|
||||
// pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale);
|
||||
// }
|
||||
|
||||
#endif
|
||||
}
|
||||
Config config = createConfig(this);
|
||||
gui.onConfigChanged(config);
|
||||
|
||||
@@ -1251,7 +1277,7 @@ void Minecraft::setSize(int w, int h) {
|
||||
char resbuf[128];
|
||||
sprintf(resbuf, " %d x %d @ scale %.2f", width, height, Gui::GuiScale);
|
||||
//gui.addMessage(resbuf);
|
||||
#endif
|
||||
|
||||
#endif /* STANDALONE_SERVER */
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,10 @@ OptionBool restoredAnims("restoredAnims", true);
|
||||
|
||||
OptionInt debugStyle("debugStyle", 0, 0, 1);
|
||||
|
||||
OptionInt menuStyle("menuStyle",0, 0, 2);
|
||||
|
||||
OptionBool windowScale("windowScale", false);
|
||||
|
||||
OptionInt keyForward("key.forward", Keyboard::KEY_W);
|
||||
OptionInt keyLeft("key.left", Keyboard::KEY_A);
|
||||
OptionInt keyBack("key.back", Keyboard::KEY_S);
|
||||
@@ -134,6 +138,7 @@ void Options::initTable() {
|
||||
|
||||
|
||||
m_options[OPTIONS_GUI_SCALE] = &guiScale;
|
||||
m_options[OPTIONS_WINDOW_SCALE] = &windowScale;
|
||||
|
||||
m_options[OPTIONS_SKIN] = &skin;
|
||||
m_options[OPTIONS_USERNAME] = &username;
|
||||
@@ -170,6 +175,8 @@ void Options::initTable() {
|
||||
|
||||
m_options[OPTIONS_SERVER_VISIBLE] = &serverVisible;
|
||||
|
||||
m_options[OPTIONS_MENU_STYLE] = &menuStyle;
|
||||
|
||||
m_options[OPTIONS_KEY_FORWARD] = &keyForward;
|
||||
m_options[OPTIONS_KEY_LEFT] = &keyLeft;
|
||||
m_options[OPTIONS_KEY_BACK] = &keyBack;
|
||||
|
||||
@@ -37,6 +37,7 @@ enum OptionId {
|
||||
OPTIONS_BAR_ON_TOP,
|
||||
OPTIONS_ALLOW_SPRINT,
|
||||
OPTIONS_AUTOJUMP,
|
||||
OPTIONS_WINDOW_SCALE,
|
||||
|
||||
// Graphics
|
||||
OPTIONS_RENDER_DEBUG,
|
||||
@@ -51,6 +52,7 @@ enum OptionId {
|
||||
OPTIONS_FANCY_GRAPHICS,
|
||||
OPTIONS_NORMAL_LIGHTING,
|
||||
|
||||
|
||||
// Cheats / debug
|
||||
OPTIONS_FLY_SPEED,
|
||||
OPTIONS_CAMERA_SPEED,
|
||||
@@ -95,6 +97,8 @@ enum OptionId {
|
||||
OPTIONS_BEAUTIFUL_SKY,
|
||||
OPTIONS_VIGNETTE,
|
||||
OPTIONS_DEBUG_STYLE,
|
||||
OPTIONS_COMPLETE_LIGHTING,
|
||||
OPTIONS_MENU_STYLE,
|
||||
// Should be last!
|
||||
OPTIONS_COUNT
|
||||
};
|
||||
|
||||
@@ -56,6 +56,28 @@ void OptionsItem::render( Minecraft* minecraft, int xm, int ym ) {
|
||||
}
|
||||
text += ": " + scaleText;
|
||||
}
|
||||
if (m_optionId == OPTIONS_MENU_STYLE) {
|
||||
int value = minecraft->options.getIntValue(OPTIONS_MENU_STYLE);
|
||||
std::string scaleText;
|
||||
switch (value) {
|
||||
case 0: scaleText = I18n::get("options.menuStyle.pocket"); break;
|
||||
case 1: scaleText = I18n::get("options.menuStyle.xperia"); break;
|
||||
case 2: scaleText = I18n::get("options.menuStyle.java"); break;
|
||||
}
|
||||
text += ": " + scaleText;
|
||||
}
|
||||
if (m_optionId == OPTIONS_VIEW_DISTANCE) {
|
||||
int value = minecraft->options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
||||
std::string scaleText;
|
||||
switch (value) {
|
||||
case 0: scaleText = I18n::get("options.renderDistance.far"); break;
|
||||
case 1: scaleText = I18n::get("options.renderDistance.normal"); break;
|
||||
case 2: scaleText = I18n::get("options.renderDistance.short"); break;
|
||||
case 3: scaleText = I18n::get("options.renderDistance.tiny"); break;
|
||||
default: scaleText = "Debug"; break;
|
||||
}
|
||||
text += ": " + scaleText;
|
||||
}
|
||||
|
||||
minecraft->font->draw(text, (float)x, (float)y + yOffset, 0x909090, false);
|
||||
super::render(minecraft, xm, ym);
|
||||
|
||||
@@ -23,12 +23,15 @@ DeathScreen::~DeathScreen()
|
||||
|
||||
void DeathScreen::init()
|
||||
{
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
||||
bRespawn = new Touch::TButton(1, "Respawn!");
|
||||
bTitle = new Touch::TButton(2, "Main menu");
|
||||
} else {
|
||||
} else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) {
|
||||
bRespawn = new Button(1, "Respawn!");
|
||||
bTitle = new Button(2, "Main menu");
|
||||
} else {
|
||||
bRespawn = new Button(1, 0, 0, 200, 20, "Respawn");
|
||||
bTitle = new Button(2, 0, 0, 200, 20, "Title menu");
|
||||
}
|
||||
buttons.push_back(bRespawn);
|
||||
buttons.push_back(bTitle);
|
||||
@@ -39,13 +42,23 @@ void DeathScreen::init()
|
||||
|
||||
void DeathScreen::setupPositions()
|
||||
{
|
||||
bRespawn->width = bTitle->width = width / 4;
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
||||
bRespawn->width = 200;
|
||||
bTitle->width = 200;
|
||||
|
||||
int centerX = (width / 2) - (bRespawn->width / 2);
|
||||
bRespawn->x = centerX;
|
||||
bTitle->x = centerX;
|
||||
|
||||
bRespawn->y = (height / 2);
|
||||
bTitle->y = bRespawn->y + 24;
|
||||
} else {
|
||||
bRespawn->width = bTitle->width = width / 4;
|
||||
bRespawn->y = bTitle->y = height / 2;
|
||||
bRespawn->x = width/2 - bRespawn->width - 10;
|
||||
bTitle->x = width/2 + 10;
|
||||
|
||||
LOGI("xyz: %d, %d (%d, %d)\n", bTitle->x, bTitle->y, width, height);
|
||||
}
|
||||
// LOGI("xyz: %d, %d (%d, %d)\n", bTitle->x, bTitle->y, width, height);
|
||||
}
|
||||
|
||||
void DeathScreen::tick() {
|
||||
@@ -56,10 +69,20 @@ void DeathScreen::render( int xm, int ym, float a )
|
||||
{
|
||||
fillGradient(0, 0, width, height, 0x60500000, 0xa0803030);
|
||||
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
||||
glPushMatrix2();
|
||||
glScalef2(2, 2, 2);
|
||||
drawCenteredString(font, "Game over!", width / 2 / 2, height / 8, 0xffffff);
|
||||
glPopMatrix2();
|
||||
std::stringstream ss;
|
||||
ss << "Score: &e" << minecraft->player->getScore();
|
||||
drawCenteredString(font, ss.str(), width / 2, (height / 4) + 32, 0xffffff);
|
||||
} else {
|
||||
glPushMatrix2();
|
||||
glScalef2(2, 2, 2);
|
||||
drawCenteredString(font, "You died!", width / 2 / 2, height / 8, 0xffffff);
|
||||
glPopMatrix2();
|
||||
}
|
||||
|
||||
if (_tick >= WAIT_TICKS)
|
||||
Screen::render(xm, ym, a);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "../../renderer/Textures.h"
|
||||
#include "../../gamemode/GameMode.h"
|
||||
#include "ArmorScreen.h"
|
||||
#include "crafting/WorkbenchScreen.h"
|
||||
#include "../components/Button.h"
|
||||
|
||||
#if defined(__APPLE__)
|
||||
@@ -27,7 +28,8 @@ IngameBlockSelectionScreen::IngameBlockSelectionScreen()
|
||||
InventoryRows(1),
|
||||
InventoryCols(1),
|
||||
InventorySize(1),
|
||||
bArmor(1, "Armor")
|
||||
bArmor(1, "Armor"),
|
||||
bCrafting(1, "Crafting")
|
||||
{
|
||||
}
|
||||
|
||||
@@ -43,6 +45,19 @@ void IngameBlockSelectionScreen::init()
|
||||
(float)getSlotPosX(InventoryCols) + 4,
|
||||
(float)getSlotPosY(InventoryRows) + 4);
|
||||
|
||||
if (!minecraft->isCreativeMode()) {
|
||||
bArmor.width = 42;
|
||||
bCrafting.width = 42;
|
||||
|
||||
bArmor.x = 0;
|
||||
bArmor.y = height - bArmor.height;
|
||||
|
||||
bCrafting.x = 0;
|
||||
bCrafting.y = height - bCrafting.height - 30;
|
||||
buttons.push_back(&bArmor);
|
||||
buttons.push_back(&bCrafting);
|
||||
}
|
||||
|
||||
ItemInstance* selected = inventory->getSelected();
|
||||
if (!selected || selected->isNull()) {
|
||||
selectedItem = 0;
|
||||
@@ -58,13 +73,6 @@ void IngameBlockSelectionScreen::init()
|
||||
}
|
||||
if (!isAllowed(selectedItem))
|
||||
selectedItem = 0;
|
||||
|
||||
if (!minecraft->isCreativeMode()) {
|
||||
bArmor.width = 42;
|
||||
bArmor.x = 0;
|
||||
bArmor.y = height - bArmor.height;
|
||||
buttons.push_back(&bArmor);
|
||||
}
|
||||
}
|
||||
|
||||
void IngameBlockSelectionScreen::removed()
|
||||
@@ -124,7 +132,7 @@ void IngameBlockSelectionScreen::renderSlots()
|
||||
//w.printEvery(1000, "render-blocksel");
|
||||
|
||||
glDisable2(GL_RESCALE_NORMAL);
|
||||
Lighting::turnOn(minecraft);
|
||||
Lighting::turnOff();
|
||||
}
|
||||
|
||||
int IngameBlockSelectionScreen::getSlotPosX(int slotX) {
|
||||
@@ -249,7 +257,7 @@ void IngameBlockSelectionScreen::mouseClicked(int x, int y, int buttonNum)
|
||||
//minecraft->soundEngine->playUI("random.click", 1, 1);
|
||||
} else {
|
||||
_pendingQuit = !_area.isInside((float)x, (float)y)
|
||||
&& !bArmor.isInside(x, y);
|
||||
&& !bArmor.isInside(x, y) && !bCrafting.isInside(x, y);
|
||||
}
|
||||
}
|
||||
if (!_pendingQuit)
|
||||
@@ -338,5 +346,8 @@ void IngameBlockSelectionScreen::buttonClicked( Button* button )
|
||||
if (button == &bArmor) {
|
||||
minecraft->setScreen(new ArmorScreen());
|
||||
}
|
||||
if (button == &bCrafting) {
|
||||
minecraft->setScreen(new WorkbenchScreen(Recipe::SIZE_2X2));
|
||||
}
|
||||
super::buttonClicked(button);
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ private:
|
||||
bool _pendingQuit;
|
||||
|
||||
Button bArmor;
|
||||
Button bCrafting;
|
||||
|
||||
RectangleArea _area;
|
||||
};
|
||||
|
||||
@@ -197,6 +197,7 @@ void OptionsScreen::generateOptionScreens() {
|
||||
optionPanes[1]->addOptionItem(OPTIONS_DIFFICULTY, minecraft)
|
||||
.addOptionItem(OPTIONS_SERVER_VISIBLE, minecraft)
|
||||
.addOptionItem(OPTIONS_THIRD_PERSON_VIEW, minecraft)
|
||||
.addOptionItem(OPTIONS_WINDOW_SCALE, minecraft)
|
||||
.addOptionItem(OPTIONS_GUI_SCALE, minecraft)
|
||||
.addOptionItem(OPTIONS_SENSITIVITY, minecraft)
|
||||
.addOptionItem(OPTIONS_MUSIC_VOLUME, minecraft)
|
||||
@@ -223,6 +224,7 @@ void OptionsScreen::generateOptionScreens() {
|
||||
// .addOptionItem(&Option::ANAGLYPH, minecraft)
|
||||
.addOptionItem(OPTIONS_LIMIT_FRAMERATE, minecraft)
|
||||
.addOptionItem(OPTIONS_VSYNC, minecraft)
|
||||
.addOptionItem(OPTIONS_VIEW_DISTANCE, minecraft)
|
||||
.addOptionItem(OPTIONS_RENDER_DEBUG, minecraft)
|
||||
.addOptionItem(OPTIONS_ANAGLYPH_3D, minecraft)
|
||||
.addOptionItem(OPTIONS_VIEW_BOBBING, minecraft)
|
||||
@@ -233,6 +235,7 @@ void OptionsScreen::generateOptionScreens() {
|
||||
|
||||
optionPanes[4]->addOptionItem(OPTIONS_ALLOW_SPRINT, minecraft)
|
||||
.addOptionItem(OPTIONS_BAR_ON_TOP, minecraft)
|
||||
.addOptionItem(OPTIONS_MENU_STYLE, minecraft)
|
||||
.addOptionItem(OPTIONS_RPI_CURSOR, minecraft)
|
||||
.addOptionItem(OPTIONS_FOLIAGE_TINT, minecraft)
|
||||
.addOptionItem(OPTIONS_TINTED_SIDE, minecraft)
|
||||
|
||||
@@ -10,18 +10,18 @@
|
||||
#include "client/gui/screens/OptionsScreen.h"
|
||||
|
||||
PauseScreen::PauseScreen(bool wasBackPaused)
|
||||
: saveStep(0),
|
||||
: saveStep(0),
|
||||
visibleTime(0),
|
||||
bContinue(0),
|
||||
bQuit(0),
|
||||
bOptions(0),
|
||||
bQuitAndSaveLocally(0),
|
||||
bServerVisibility(0),
|
||||
// bThirdPerson(0),
|
||||
// bThirdPerson(0),
|
||||
wasBackPaused(wasBackPaused),
|
||||
// bSound(OPTIONS_SOUND_VOLUME, 1, 0),
|
||||
bThirdPerson(OPTIONS_THIRD_PERSON_VIEW),
|
||||
bHideGui(OPTIONS_HIDEGUI)
|
||||
bHideGui(OPTIONS_HIDEGUI)
|
||||
{
|
||||
ImageDef def;
|
||||
def.setSrc(IntRectangle(160, 144, 39, 31));
|
||||
@@ -34,7 +34,7 @@ PauseScreen::PauseScreen(bool wasBackPaused)
|
||||
// bSound.setImageDef(def, true);
|
||||
defSrc.y += defSrc.h;
|
||||
bThirdPerson.setImageDef(def, true);
|
||||
bHideGui.setImageDef(def, true);
|
||||
bHideGui.setImageDef(def, true);
|
||||
//void setImageDef(ImageDef& imageDef, bool setButtonSize);
|
||||
}
|
||||
|
||||
@@ -44,24 +44,31 @@ PauseScreen::~PauseScreen() {
|
||||
delete bQuitAndSaveLocally;
|
||||
delete bServerVisibility;
|
||||
delete bOptions;
|
||||
// delete bThirdPerson;
|
||||
// delete bThirdPerson;
|
||||
}
|
||||
|
||||
void PauseScreen::init() {
|
||||
if (/* minecraft->useTouchscreen() */ true) {
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
||||
bContinue = new Touch::TButton(1, "Back to game");
|
||||
bOptions = new Touch::TButton(5, "Options");
|
||||
bQuit = new Touch::TButton(2, "Quit to title");
|
||||
bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map");
|
||||
bServerVisibility = new Touch::TButton(4, "");
|
||||
// bThirdPerson = new Touch::TButton(5, "Toggle 3:rd person view");
|
||||
} else {
|
||||
// bThirdPerson = new Touch::TButton(5, "Toggle 3:rd person view");
|
||||
} else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) {
|
||||
bContinue = new Button(1, "Back to game");
|
||||
bOptions = new Button(5, "Options");
|
||||
bQuit = new Button(2, "Quit to title");
|
||||
bQuitAndSaveLocally = new Button(3, "Quit and copy map");
|
||||
bServerVisibility = new Button(4, "");
|
||||
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
||||
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
||||
} else {
|
||||
bContinue = new Button(1, 0, 0, 200, 20, "Back to game");
|
||||
bServerVisibility = new Button(4, 0, 0, 200, 20, "");
|
||||
bOptions = new Button(5, 0, 0, 200, 20, "Options...");
|
||||
bQuit = new Button(2, 0, 0, 200, 20, "Save and quit to title");
|
||||
bQuitAndSaveLocally = new Button(3, 0, 0, 200, 20, "Copy and quit map");
|
||||
// bThirdPerson = new Button(5, "Toggle 3:rd person view");
|
||||
}
|
||||
|
||||
buttons.push_back(bContinue);
|
||||
@@ -72,12 +79,12 @@ void PauseScreen::init() {
|
||||
bHideGui.updateImage(&minecraft->options);
|
||||
// buttons.push_back(&bSound);
|
||||
buttons.push_back(&bThirdPerson);
|
||||
//buttons.push_back(&bHideGui);
|
||||
//buttons.push_back(&bHideGui);
|
||||
|
||||
// If Back wasn't pressed, set up additional items (more than Quit to menu
|
||||
// and Back to game) here
|
||||
|
||||
#if !defined(APPLE_DEMO_PROMOTION) && !defined(RPI)
|
||||
#if !defined(APPLE_DEMO_PROMOTION) && !defined(RPI)
|
||||
if (true || !wasBackPaused) {
|
||||
if (minecraft->raknetInstance) {
|
||||
if (minecraft->raknetInstance->isServer()) {
|
||||
@@ -85,14 +92,14 @@ void PauseScreen::init() {
|
||||
buttons.push_back(bServerVisibility);
|
||||
}
|
||||
else {
|
||||
#if !defined(DEMO_MODE)
|
||||
buttons.push_back(bQuitAndSaveLocally);
|
||||
#endif
|
||||
#if !defined(DEMO_MODE)
|
||||
buttons.push_back(bQuitAndSaveLocally);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// buttons.push_back(bThirdPerson);
|
||||
#endif
|
||||
// buttons.push_back(bThirdPerson);
|
||||
|
||||
for (unsigned int i = 0; i < buttons.size(); ++i) {
|
||||
// if (buttons[i] == &bSound) continue;
|
||||
@@ -103,27 +110,48 @@ void PauseScreen::init() {
|
||||
}
|
||||
|
||||
void PauseScreen::setupPositions() {
|
||||
saveStep = 0;
|
||||
saveStep = 0;
|
||||
int yBase = 16;
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
||||
yBase = 50;
|
||||
|
||||
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 160;
|
||||
bQuitAndSaveLocally->width = bServerVisibility->width = 160;
|
||||
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 200;
|
||||
bQuitAndSaveLocally->width = bServerVisibility->width = 200;
|
||||
|
||||
bContinue->x = (width - bContinue->width) / 2;
|
||||
bContinue->y = yBase + 32 * 1;
|
||||
bContinue->x = (width - bContinue->width) / 2;
|
||||
bContinue->y = yBase + 24 * 1;
|
||||
|
||||
bOptions->x = (width - bOptions->width) / 2;
|
||||
bOptions->y = yBase + 32 * 2;
|
||||
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
||||
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 24 * 2;
|
||||
|
||||
bQuit->x = (width - bQuit->width) / 2;
|
||||
bQuit->y = yBase + 32 * 3;
|
||||
bOptions->x = (width - bOptions->width) / 2;
|
||||
bOptions->y = yBase + 24 * 3 + 24;
|
||||
|
||||
bQuit->x = (width - bQuit->width) / 2;
|
||||
bQuit->y = yBase + 24 * 4 + 24;
|
||||
|
||||
} else {
|
||||
bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 160;
|
||||
bQuitAndSaveLocally->width = bServerVisibility->width = 160;
|
||||
|
||||
bContinue->x = (width - bContinue->width) / 2;
|
||||
bContinue->y = yBase + 32 * 1;
|
||||
|
||||
bOptions->x = (width - bOptions->width) / 2;
|
||||
bOptions->y = yBase + 32 * 2;
|
||||
|
||||
bQuit->x = (width - bQuit->width) / 2;
|
||||
bQuit->y = yBase + 32 * 3;
|
||||
|
||||
#if APPLE_DEMO_PROMOTION
|
||||
bQuit->y += 16;
|
||||
bQuit->y += 16;
|
||||
#endif
|
||||
|
||||
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
||||
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 4;
|
||||
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
|
||||
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// bSound.y = bThirdPerson.y = 8;
|
||||
// bSound.x = 4;
|
||||
@@ -161,9 +189,9 @@ void PauseScreen::buttonClicked(Button* button) {
|
||||
minecraft->setScreen(NULL);
|
||||
//minecraft->grabMouse();
|
||||
}
|
||||
if (button->id == bQuit->id) {
|
||||
if (button->id == bQuit->id) {
|
||||
minecraft->leaveGame();
|
||||
}
|
||||
}
|
||||
if (button->id == bQuitAndSaveLocally->id) {
|
||||
minecraft->leaveGame(true);
|
||||
}
|
||||
@@ -197,5 +225,5 @@ void PauseScreen::updateServerVisibilityText()
|
||||
ServerSideNetworkHandler* ss = (ServerSideNetworkHandler*) minecraft->netCallback;
|
||||
bServerVisibility->msg = ss->allowsIncomingConnections()?
|
||||
"Server is visible"
|
||||
: "Server is invisible";
|
||||
: "Server is invisible";
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ Screen* ScreenChooser::createScreen( ScreenId id )
|
||||
Screen* screen = NULL;
|
||||
|
||||
// :sob:
|
||||
if (/* _mc->useTouchscreen() */ true) {
|
||||
if (_mc->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
|
||||
switch (id) {
|
||||
case SCREEN_STARTMENU: screen = new Touch::StartMenuScreen(); break;
|
||||
case SCREEN_SELECTWORLD: screen = new Touch::SelectWorldScreen();break;
|
||||
|
||||
@@ -23,49 +23,62 @@
|
||||
|
||||
// Some kind of default settings, might be overridden in ::init
|
||||
StartMenuScreen::StartMenuScreen()
|
||||
: bHost( 2, 0, 0, 160, 24, "Start Game"),
|
||||
bJoin( 3, 0, 0, 160, 24, "Join Game"),
|
||||
bOptions( 4, 0, 0, 160, 24, "Options"),
|
||||
bQuit( 5, "")
|
||||
{
|
||||
}
|
||||
|
||||
StartMenuScreen::~StartMenuScreen()
|
||||
{
|
||||
delete bHost;
|
||||
delete bJoin;
|
||||
delete bOptions;
|
||||
delete bQuit;
|
||||
}
|
||||
|
||||
void StartMenuScreen::init()
|
||||
{
|
||||
bJoin.active = bHost.active = bOptions.active = true;
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
||||
bHost = new Button( 2, 0, 0, 200, 20, "Singleplayer");
|
||||
bJoin = new Button( 3, 0, 0, 200, 20, "Multiplayer");
|
||||
bOptions = new Button( 4, 0, 0, 200, 20, "Options...");
|
||||
bQuit = new Button( 5, 0, 0, 200, 20, "Ouit Game");
|
||||
} else {
|
||||
bHost = new Button( 2, 0, 0, 160, 24, "Start Game");
|
||||
bJoin = new Button( 3, 0, 0, 160, 24, "Join Game");
|
||||
bOptions = new Button( 4, 0, 0, 160, 24, "Options");
|
||||
bQuit = new Button( 5, 0, 0, 160, 24, "Ouit Game");
|
||||
}
|
||||
bJoin->active = bHost->active = bOptions->active = true;
|
||||
|
||||
if (minecraft->options.getStringValue(OPTIONS_USERNAME).empty()) {
|
||||
return; // tick() will redirect to UsernameScreen
|
||||
}
|
||||
|
||||
buttons.push_back(&bHost);
|
||||
buttons.push_back(&bJoin);
|
||||
buttons.push_back(bHost);
|
||||
buttons.push_back(bJoin);
|
||||
//buttons.push_back(&bTest);
|
||||
buttons.push_back(bQuit);
|
||||
|
||||
tabButtons.push_back(&bHost);
|
||||
tabButtons.push_back(&bJoin);
|
||||
tabButtons.push_back(bHost);
|
||||
tabButtons.push_back(bJoin);
|
||||
tabButtons.push_back(bQuit);
|
||||
|
||||
#ifndef RPI
|
||||
buttons.push_back(&bOptions);
|
||||
tabButtons.push_back(&bOptions);
|
||||
buttons.push_back(bOptions);
|
||||
tabButtons.push_back(bOptions);
|
||||
#endif
|
||||
|
||||
// add quit button (top right X icon) – match OptionsScreen style
|
||||
{
|
||||
ImageDef def;
|
||||
def.name = "gui/touchgui.png";
|
||||
def.width = 34;
|
||||
def.height = 26;
|
||||
def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height));
|
||||
bQuit.setImageDef(def, true);
|
||||
bQuit.scaleWhenPressed = false;
|
||||
buttons.push_back(&bQuit);
|
||||
// don't include in tab navigation
|
||||
}
|
||||
//// add quit button (top right X icon) – match OptionsScreen style
|
||||
//{
|
||||
// ImageDef def;
|
||||
// def.name = "gui/touchgui.png";
|
||||
// def.width = 34;
|
||||
// def.height = 26;
|
||||
// def.setSrc(IntRectangle(150, 0, (int)def.width, (int)def.height));
|
||||
// bQuit.setImageDef(def, true);
|
||||
// bQuit.scaleWhenPressed = false;
|
||||
// buttons.push_back(&bQuit);
|
||||
// // don't include in tab navigation
|
||||
//}
|
||||
|
||||
copyright = "\xffMojang AB";//. Do not distribute!";
|
||||
|
||||
@@ -93,20 +106,30 @@ void StartMenuScreen::init()
|
||||
}
|
||||
|
||||
void StartMenuScreen::setupPositions() {
|
||||
int yBase = height / 2;
|
||||
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
|
||||
int yBase = (height / 2) - 20;
|
||||
|
||||
bHost.y = yBase;
|
||||
bJoin.y = bHost.y + 24 + 4;
|
||||
bOptions.y = bJoin.y + 24 + 4;
|
||||
bHost->y = yBase;
|
||||
bJoin->y = bHost->y + 24;
|
||||
bOptions->y = bJoin->y + 24;
|
||||
bQuit->y = bOptions->y + 24;
|
||||
} else {
|
||||
int yBase = height / 2;
|
||||
bHost->y = yBase;
|
||||
bJoin->y = bHost->y + 24 + 4;
|
||||
bOptions->y = bJoin->y + 24 + 4;
|
||||
bQuit->y = bOptions->y + 24 + 4;
|
||||
}
|
||||
|
||||
// Center buttons
|
||||
bHost.x = (width - bHost.width) / 2;
|
||||
bJoin.x = (width - bJoin.width) / 2;
|
||||
bOptions.x = (width - bOptions.width) / 2;
|
||||
bHost->x = (width - bHost->width) / 2;
|
||||
bJoin->x = (width - bJoin->width) / 2;
|
||||
bOptions->x = (width - bOptions->width) / 2;
|
||||
bQuit->x = (width - bQuit->width) / 2;
|
||||
|
||||
// position quit icon at top-right (use image-defined size)
|
||||
bQuit.x = width - bQuit.width;
|
||||
bQuit.y = 0;
|
||||
//// position quit icon at top-right (use image-defined size)
|
||||
//bQuit.x = width - bQuit.width;
|
||||
//bQuit.y = 0;
|
||||
}
|
||||
|
||||
void StartMenuScreen::tick() {
|
||||
@@ -114,7 +137,7 @@ void StartMenuScreen::tick() {
|
||||
|
||||
void StartMenuScreen::buttonClicked(Button* button) {
|
||||
|
||||
if (button->id == bHost.id)
|
||||
if (button->id == bHost->id)
|
||||
{
|
||||
#if defined(DEMO_MODE) || defined(APPLE_DEMO_PROMOTION)
|
||||
minecraft->setScreen( new SimpleChooseLevelScreen("_DemoLevel") );
|
||||
@@ -122,16 +145,16 @@ void StartMenuScreen::buttonClicked(Button* button) {
|
||||
minecraft->screenChooser.setScreen(SCREEN_SELECTWORLD);
|
||||
#endif
|
||||
}
|
||||
if (button->id == bJoin.id)
|
||||
if (button->id == bJoin->id)
|
||||
{
|
||||
minecraft->locateMultiplayer();
|
||||
minecraft->screenChooser.setScreen(SCREEN_JOINGAME);
|
||||
}
|
||||
if (button->id == bOptions.id)
|
||||
if (button->id == bOptions->id)
|
||||
{
|
||||
minecraft->setScreen(new OptionsScreen());
|
||||
}
|
||||
if (button == &bQuit)
|
||||
if (button->id == bQuit->id)
|
||||
{
|
||||
minecraft->quit();
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ public:
|
||||
bool isInGameScreen();
|
||||
private:
|
||||
|
||||
Button bHost;
|
||||
Button bJoin;
|
||||
Button bOptions;
|
||||
ImageButton bQuit; // X button in top-right corner
|
||||
Button* bHost;
|
||||
Button* bJoin;
|
||||
Button* bOptions;
|
||||
Button* bQuit;
|
||||
|
||||
std::string copyright;
|
||||
int copyrightPosX;
|
||||
|
||||
@@ -575,7 +575,7 @@ void LevelRenderer::render(const AABB& b) const
|
||||
// t.color(255, 255, 255, 255); // again not needed, for some reason the vanilla source code tints it... white? maybe this was used for something else in MCPE's dev at one point? - shredder
|
||||
|
||||
// t.offset(((Mob*)mc->player)->getPos(0).negated()); // why does this even exist normally, it just makes the thing... not render
|
||||
|
||||
glLineWidth(2.0f); // make it more thick - shredder
|
||||
t.begin(GL_LINE_STRIP);
|
||||
t.vertex(b.x0, b.y0, b.z0);
|
||||
t.vertex(b.x1, b.y0, b.z0);
|
||||
|
||||
@@ -130,9 +130,8 @@ void EntityRenderer::postRender(Entity* entity, float x, float y, float z, float
|
||||
if (pow > 0) {
|
||||
renderShadow(entity, x, y, z, pow, a);
|
||||
}
|
||||
//}
|
||||
if (entity->isOnFire()) renderFlame(entity, x, y, z, a);
|
||||
}
|
||||
if (entity->isOnFire()) renderFlame(entity, x, y, z, a);
|
||||
}
|
||||
void EntityRenderer::renderFlame(Entity* e, float x, float y, float z, float a) {
|
||||
glDisable(GL_LIGHTING);
|
||||
@@ -187,8 +186,12 @@ void EntityRenderer::renderShadow(Entity* e, float x, float y, float z, float po
|
||||
//Textures* textures = entityRenderDispatcher->textures;
|
||||
//textures->bind(textures->loadTexture("%clamp%/environment/shadow.png"));
|
||||
Textures* textures = entityRenderDispatcher->textures;
|
||||
textures->loadAndBindTexture("/misc/shadow.png");
|
||||
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
|
||||
|
||||
|
||||
Level* level = getLevel();
|
||||
@@ -221,9 +224,6 @@ void EntityRenderer::renderShadow(Entity* e, float x, float y, float z, float po
|
||||
renderTileShadow(Tile::tiles[t], x, y + e->getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e->getShadowHeightOffs(), zo);
|
||||
}
|
||||
}
|
||||
textures->loadAndBindTexture(("/misc/shadow.png"));
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
tt.draw();
|
||||
|
||||
glColor4f2(1, 1, 1, 1);
|
||||
|
||||
@@ -393,8 +393,8 @@ void LavaSideTexture::tick() {
|
||||
}
|
||||
}
|
||||
|
||||
FireTexture::FireTexture()
|
||||
: super(((Tile*)Tile::fire)->tex),
|
||||
FireTexture::FireTexture(int id)
|
||||
: super(((Tile*)Tile::fire)->tex + id * 16),
|
||||
_tick(0),
|
||||
_frame(0)
|
||||
{
|
||||
|
||||
@@ -106,7 +106,7 @@ class FireTexture: public DynamicTexture
|
||||
float* heata;
|
||||
|
||||
public:
|
||||
FireTexture();
|
||||
FireTexture(int id);
|
||||
~FireTexture();
|
||||
|
||||
void tick();
|
||||
|
||||
Reference in New Issue
Block a user