2 Commits

13 changed files with 2648 additions and 291 deletions

View File

@@ -129,6 +129,7 @@ public class SoundPlayer
new SoundId(R.raw.eat1, "random.eat"), new SoundId(R.raw.eat1, "random.eat"),
new SoundId(R.raw.eat2, "random.eat"), new SoundId(R.raw.eat2, "random.eat"),
new SoundId(R.raw.eat3, "random.eat"), new SoundId(R.raw.eat3, "random.eat"),
new SoundId(R.raw.burp1, "random.burp"),
new SoundId(R.raw.fuse, "random.fuse"), new SoundId(R.raw.fuse, "random.fuse"),
new SoundId(R.raw.zpig1, "mob.zombiepig.zpig"), new SoundId(R.raw.zpig1, "mob.zombiepig.zpig"),

View File

@@ -8,7 +8,6 @@
#include "client/Options.h" #include "client/Options.h"
#include "client/gui/components/Button.h" #include "client/gui/components/Button.h"
#include "client/gui/screens/OptionsScreen.h" #include "client/gui/screens/OptionsScreen.h"
#include "UploadPhotoScreen.h"
PauseScreen::PauseScreen(bool wasBackPaused) PauseScreen::PauseScreen(bool wasBackPaused)
: saveStep(0), : saveStep(0),
@@ -18,7 +17,6 @@ PauseScreen::PauseScreen(bool wasBackPaused)
bOptions(0), bOptions(0),
bQuitAndSaveLocally(0), bQuitAndSaveLocally(0),
bServerVisibility(0), bServerVisibility(0),
bPhotoMode(0),
// bThirdPerson(0), // bThirdPerson(0),
wasBackPaused(wasBackPaused), wasBackPaused(wasBackPaused),
// bSound(OPTIONS_SOUND_VOLUME, 1, 0), // bSound(OPTIONS_SOUND_VOLUME, 1, 0),
@@ -45,7 +43,6 @@ PauseScreen::~PauseScreen() {
delete bQuit; delete bQuit;
delete bQuitAndSaveLocally; delete bQuitAndSaveLocally;
delete bServerVisibility; delete bServerVisibility;
delete bPhotoMode;
delete bOptions; delete bOptions;
// delete bThirdPerson; // delete bThirdPerson;
} }
@@ -54,7 +51,6 @@ void PauseScreen::init() {
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) { if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 0) {
bContinue = new Touch::TButton(1, "Back to game"); bContinue = new Touch::TButton(1, "Back to game");
bOptions = new Touch::TButton(5, "Options"); bOptions = new Touch::TButton(5, "Options");
bPhotoMode = new Touch::TButton(6, "Photo Mode");
bQuit = new Touch::TButton(2, "Quit to title"); bQuit = new Touch::TButton(2, "Quit to title");
bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map"); bQuitAndSaveLocally = new Touch::TButton(3, "Quit and copy map");
bServerVisibility = new Touch::TButton(4, ""); bServerVisibility = new Touch::TButton(4, "");
@@ -62,7 +58,6 @@ void PauseScreen::init() {
} else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) { } else if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 1) {
bContinue = new Button(1, "Back to game"); bContinue = new Button(1, "Back to game");
bOptions = new Button(5, "Options"); bOptions = new Button(5, "Options");
bPhotoMode = new Button(6, "Photo Mode");
bQuit = new Button(2, "Quit to title"); bQuit = new Button(2, "Quit to title");
bQuitAndSaveLocally = new Button(3, "Quit and copy map"); bQuitAndSaveLocally = new Button(3, "Quit and copy map");
bServerVisibility = new Button(4, ""); bServerVisibility = new Button(4, "");
@@ -71,7 +66,6 @@ void PauseScreen::init() {
bContinue = new Button(1, 0, 0, 200, 20, "Back to game"); bContinue = new Button(1, 0, 0, 200, 20, "Back to game");
bServerVisibility = new Button(4, 0, 0, 200, 20, ""); bServerVisibility = new Button(4, 0, 0, 200, 20, "");
bOptions = new Button(5, 0, 0, 200, 20, "Options..."); bOptions = new Button(5, 0, 0, 200, 20, "Options...");
bPhotoMode = new Button(6, 0, 0, 200, 20, "Photo Mode");
bQuit = new Button(2, 0, 0, 200, 20, "Save and quit to title"); 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"); bQuitAndSaveLocally = new Button(3, 0, 0, 200, 20, "Copy and quit map");
// bThirdPerson = new Button(5, "Toggle 3:rd person view"); // bThirdPerson = new Button(5, "Toggle 3:rd person view");
@@ -80,7 +74,6 @@ void PauseScreen::init() {
buttons.push_back(bContinue); buttons.push_back(bContinue);
buttons.push_back(bQuit); buttons.push_back(bQuit);
buttons.push_back(bOptions); buttons.push_back(bOptions);
buttons.push_back(bPhotoMode);
// bSound.updateImage(&minecraft->options); // bSound.updateImage(&minecraft->options);
bThirdPerson.updateImage(&minecraft->options); bThirdPerson.updateImage(&minecraft->options);
bHideGui.updateImage(&minecraft->options); bHideGui.updateImage(&minecraft->options);
@@ -122,7 +115,7 @@ void PauseScreen::setupPositions() {
if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){ if (minecraft->options.getIntValue(OPTIONS_MENU_STYLE) == 2){
yBase = 50; yBase = 50;
bContinue->width = bOptions->width = bPhotoMode->width = bQuit->width = /*bThirdPerson->w =*/ 200; bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 200;
bQuitAndSaveLocally->width = bServerVisibility->width = 200; bQuitAndSaveLocally->width = bServerVisibility->width = 200;
bContinue->x = (width - bContinue->width) / 2; bContinue->x = (width - bContinue->width) / 2;
@@ -131,9 +124,6 @@ void PauseScreen::setupPositions() {
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2; bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 24 * 2; bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 24 * 2;
bPhotoMode->x = (width - bPhotoMode->width) / 2;
bPhotoMode->y = yBase + 24 * 3;
bOptions->x = (width - bOptions->width) / 2; bOptions->x = (width - bOptions->width) / 2;
bOptions->y = yBase + 24 * 3 + 24; bOptions->y = yBase + 24 * 3 + 24;
@@ -141,7 +131,7 @@ void PauseScreen::setupPositions() {
bQuit->y = yBase + 24 * 4 + 24; bQuit->y = yBase + 24 * 4 + 24;
} else { } else {
bContinue->width = bOptions->width = bPhotoMode->width = bQuit->width = /*bThirdPerson->w =*/ 160; bContinue->width = bOptions->width = bQuit->width = /*bThirdPerson->w =*/ 160;
bQuitAndSaveLocally->width = bServerVisibility->width = 160; bQuitAndSaveLocally->width = bServerVisibility->width = 160;
bContinue->x = (width - bContinue->width) / 2; bContinue->x = (width - bContinue->width) / 2;
@@ -150,18 +140,15 @@ void PauseScreen::setupPositions() {
bOptions->x = (width - bOptions->width) / 2; bOptions->x = (width - bOptions->width) / 2;
bOptions->y = yBase + 32 * 2; bOptions->y = yBase + 32 * 2;
bPhotoMode->x = (width - bPhotoMode->width) / 2;
bPhotoMode->y = yBase + 32 * 3;
bQuit->x = (width - bQuit->width) / 2; bQuit->x = (width - bQuit->width) / 2;
bQuit->y = yBase + 32 * 4; bQuit->y = yBase + 32 * 3;
#if APPLE_DEMO_PROMOTION #if APPLE_DEMO_PROMOTION
bQuit->y += 16; bQuit->y += 16;
#endif #endif
bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2; bQuitAndSaveLocally->x = bServerVisibility->x = (width - bQuitAndSaveLocally->width) / 2;
bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 5; bQuitAndSaveLocally->y = bServerVisibility->y = yBase + 32 * 4;
} }
@@ -205,9 +192,6 @@ void PauseScreen::buttonClicked(Button* button) {
if (button->id == bQuit->id) { if (button->id == bQuit->id) {
minecraft->leaveGame(); minecraft->leaveGame();
} }
if (button->id == bPhotoMode->id) {
minecraft->setScreen(new UploadPhotoScreen());
}
if (button->id == bQuitAndSaveLocally->id) { if (button->id == bQuitAndSaveLocally->id) {
minecraft->leaveGame(true); minecraft->leaveGame(true);
} }

View File

@@ -33,7 +33,6 @@ private:
Button* bQuit; Button* bQuit;
Button* bQuitAndSaveLocally; Button* bQuitAndSaveLocally;
Button* bServerVisibility; Button* bServerVisibility;
Button* bPhotoMode;
Button* bOptions; Button* bOptions;
// Button* bThirdPerson; // Button* bThirdPerson;

View File

@@ -1,160 +1,177 @@
#include "UploadPhotoScreen.h" #if 0
#include "../components/Button.h" #include "UploadPhotoScreen.h"
#include "../../Minecraft.h" #include "../renderer/TileRenderer.h"
#include "../../player/LocalPlayer.h" #include "../player/LocalPlayer.h"
#include "../../../world/entity/item/TripodCamera.h" #include "../../world/entity/player/Inventory.h"
#include "../../../world/level/Level.h"
#include "../../../platform/input/Keyboard.h" UploadPhotoScreen::UploadPhotoScreen()
#include "../../renderer/GameRenderer.h" :
#include "../../renderer/LevelRenderer.h" selectedItem(0)
{
UploadPhotoScreen::UploadPhotoScreen() }
: hasAppliedPhotoMode(false),
oldHideGui(false), void UploadPhotoScreen::init()
oldThirdPerson(false), {
oldFixedCamera(false), int currentSelection = minecraft->player->inventory->getSelectedItemId();
hasOldPose(false), for (int i = 0; i < Inventory::INVENTORY_SIZE; i++)
oldX(0), {
oldY(0), if (currentSelection == minecraft->player->inventory->getSelectionSlotItemId(i + Inventory::SELECTION_SIZE))
oldZ(0), {
oldYaw(0), selectedItem = i;
oldPitch(0), break;
photoCameraTarget(NULL), }
photoCameraX(0), }
photoCameraY(0),
photoCameraZ(0), }
bBack(0)
{ void UploadPhotoScreen::renderSlots()
} {
glColor4f2(1, 1, 1, 1);
UploadPhotoScreen::~UploadPhotoScreen()
{ blitOffset = -90;
restorePhotoMode();
delete photoCameraTarget; minecraft->textures->loadAndBindTexture("gui/gui.png");
delete bBack; for (int r = 0; r < Inventory::INVENTORY_ROWS; r++)
} {
blit(width / 2 - 182 / 2, height - 22 * 3 - 22 * r, 0, 0, 182, 22);
void UploadPhotoScreen::init() }
{ if (selectedItem >= 0)
applyPhotoMode(); {
int x = width / 2 - 182 / 2 - 1 + (selectedItem % Inventory::SELECTION_SIZE) * 20;
if (minecraft->useTouchscreen()) { int y = height - 22 * 3 - 1 - (selectedItem / Inventory::SELECTION_SIZE) * 22;
bBack = new Touch::TButton(1, "Back"); blit(x, y, 0, 22, 24, 22);
} else { }
bBack = new Button(1, "Back");
} for (int r = 0; r < Inventory::INVENTORY_ROWS; r++)
{
buttons.push_back(bBack); for (int i = 0; i < 9; i++) {
tabButtons.push_back(bBack); int x = width / 2 - 9 * 10 + i * 20 + 2;
} int y = height - 16 - 3 - 22 * 2 - 22 * r;
renderSlot(r * 9 + i + Inventory::SELECTION_SIZE, x, y, 0);
void UploadPhotoScreen::removed() }
{ }
restorePhotoMode();
} }
void UploadPhotoScreen::applyPhotoMode() void UploadPhotoScreen::renderSlot(int slot, int x, int y, float a)
{ {
if (hasAppliedPhotoMode || !minecraft || !minecraft->gameRenderer) return; int itemId = minecraft->player->inventory->getSelectionSlotItemId(slot);
if (itemId < 0) return;
if (minecraft->player) {
oldX = minecraft->player->x; const bool fancy = false;
oldY = minecraft->player->y;
oldZ = minecraft->player->z; if (fancy && itemId < 256 && TileRenderer::canRender(Tile::tiles[itemId]->getRenderShape())) {
oldYaw = minecraft->player->yRot;
oldPitch = minecraft->player->xRot; } else {
hasOldPose = true; if (itemId < 256) {
} Tile* tile = Tile::tiles[itemId];
if (tile == NULL) return;
oldHideGui = minecraft->options.getBooleanValue(OPTIONS_HIDEGUI);
oldThirdPerson = minecraft->options.getBooleanValue(OPTIONS_THIRD_PERSON_VIEW); minecraft->textures->loadAndBindTexture("terrain.png");
oldFixedCamera = minecraft->options.getBooleanValue(OPTIONS_FIXED_CAMERA);
Pos spawn = minecraft->level->getSharedSpawnPos(); int textureId = tile->getTexture(2, 0);
photoCameraX = (float) spawn.x; blit(x, y, textureId % 16 * 16, textureId / 16 * 16, 16, 16);
photoCameraY = 128.0f; }
photoCameraZ = (float) spawn.z; }
if (!photoCameraTarget) {
photoCameraTarget = new TripodCamera(minecraft->level, minecraft->player, photoCameraX, photoCameraY, photoCameraZ); }
}
photoCameraTarget->setPos(photoCameraX, photoCameraY, photoCameraZ); void UploadPhotoScreen::keyPressed(int eventKey)
photoCameraTarget->xo = photoCameraTarget->xOld = photoCameraX; {
photoCameraTarget->yo = photoCameraTarget->yOld = photoCameraY; int selX = selectedItem % Inventory::SELECTION_SIZE;
photoCameraTarget->zo = photoCameraTarget->zOld = photoCameraZ; int selY = selectedItem / Inventory::SELECTION_SIZE;
if (!oldHideGui) minecraft->options.toggle(OPTIONS_HIDEGUI); Options& o = minecraft->options;
if (!oldThirdPerson) minecraft->options.toggle(OPTIONS_THIRD_PERSON_VIEW); if (eventKey == o.keyLeft.key && selX > 0)
if (!oldFixedCamera) minecraft->options.toggle(OPTIONS_FIXED_CAMERA); {
selectedItem -= 1;
minecraft->gameRenderer->setPhotoModeIsometric(); }
minecraft->levelRenderer->allChanged(); else if (eventKey == o.keyRight.key && selX < (Inventory::SELECTION_SIZE - 1))
hasAppliedPhotoMode = true; {
} selectedItem += 1;
}
void UploadPhotoScreen::tick() else if (eventKey == o.keyDown.key && selY > 0)
{ {
if (!hasAppliedPhotoMode || !minecraft || !minecraft->player || !minecraft->level) return; selectedItem -= Inventory::SELECTION_SIZE;
}
if (photoCameraTarget) { else if (eventKey == o.keyUp.key && selY < (Inventory::INVENTORY_ROWS - 1))
photoCameraTarget->setPos(photoCameraX, photoCameraY, photoCameraZ); {
photoCameraTarget->xo = photoCameraTarget->xOld = photoCameraX; selectedItem += Inventory::SELECTION_SIZE;
photoCameraTarget->yo = photoCameraTarget->yOld = photoCameraY; }
photoCameraTarget->zo = photoCameraTarget->zOld = photoCameraZ;
photoCameraTarget->yRot = photoCameraTarget->yRotO = 45.0f; if (eventKey == o.keyMenuOk.key)
photoCameraTarget->xRot = photoCameraTarget->xRotO = 68.0f; {
minecraft->cameraTargetPlayer = photoCameraTarget; selectSlotAndClose();
} }
} }
void UploadPhotoScreen::restorePhotoMode() int UploadPhotoScreen::getSelectedSlot(int x, int y)
{ {
if (!hasAppliedPhotoMode || !minecraft) return; int left = 3 + width / 2 - Inventory::SELECTION_SIZE * 10;
int top = height - 16 - 3 - 22 * 2 - 22 * Inventory::INVENTORY_ROWS;
if (minecraft->options.getBooleanValue(OPTIONS_HIDEGUI) != oldHideGui) minecraft->options.toggle(OPTIONS_HIDEGUI);
if (minecraft->options.getBooleanValue(OPTIONS_THIRD_PERSON_VIEW) != oldThirdPerson) minecraft->options.toggle(OPTIONS_THIRD_PERSON_VIEW); if (x >= left && y >= top)
if (minecraft->options.getBooleanValue(OPTIONS_FIXED_CAMERA) != oldFixedCamera) minecraft->options.toggle(OPTIONS_FIXED_CAMERA); {
minecraft->gameRenderer->clearPhotoModeIsometric(); int xSlot = (x - left) / 20;
minecraft->cameraTargetPlayer = minecraft->player; if (xSlot < Inventory::SELECTION_SIZE)
{
if (hasOldPose && minecraft->player) { // rows are rendered upsidedown
minecraft->player->yRot = oldYaw; return xSlot + Inventory::INVENTORY_SIZE - ((y - top) / 22) * Inventory::SELECTION_SIZE;
minecraft->player->xRot = oldPitch; }
} }
return -1;
hasAppliedPhotoMode = false; }
}
void UploadPhotoScreen::mouseClicked(int x, int y, int buttonNum) {
void UploadPhotoScreen::keyPressed(int eventKey) if (buttonNum == MouseAction::ACTION_LEFT) {
{
if (eventKey == Keyboard::KEY_ESCAPE) { int slot = getSelectedSlot(x, y);
restorePhotoMode(); if (slot >= 0 && slot < Inventory::INVENTORY_SIZE)
minecraft->setScreen(NULL); {
return; selectedItem = slot;
} //minecraft->soundEngine->playUI("random.click", 1, 1);
}
Screen::keyPressed(eventKey); }
} }
void UploadPhotoScreen::buttonClicked(Button* button) void UploadPhotoScreen::mouseReleased(int x, int y, int buttonNum)
{ {
if (!button || button->id != 1) return; if (buttonNum == MouseAction::ACTION_LEFT) {
restorePhotoMode(); int slot = getSelectedSlot(x, y);
minecraft->setScreen(NULL); if (slot >= 0 && slot < Inventory::INVENTORY_SIZE && slot == selectedItem)
} {
selectSlotAndClose();
void UploadPhotoScreen::setupPositions() }
{ }
const int buttonWidth = 120; }
const int buttonHeight = 24;
bBack->width = buttonWidth; void UploadPhotoScreen::selectSlotAndClose()
bBack->height = buttonHeight; {
bBack->x = (width - buttonWidth) / 2; Inventory* inventory = minecraft->player->inventory;
bBack->y = height - 32;
} int itemId = inventory->getSelectionSlotItemId(selectedItem + Inventory::SELECTION_SIZE);
int i = 0;
void UploadPhotoScreen::render(int xm, int ym, float a)
{ for (; i < Inventory::SELECTION_SIZE - 2; i++)
drawCenteredString(font, "Photo Mode - Isometric", width / 2, 12, 0xffffff); {
Screen::render(xm, ym, a); if (itemId == inventory->getSelectionSlotItemId(i))
} {
break;
}
}
// update selection list
for (; i >= 1; i--)
{
inventory->setSelectionSlotItemId(i, inventory->getSelectionSlotItemId(i - 1));
}
inventory->setSelectionSlotItemId(0, itemId);
inventory->selectSlot(0);
minecraft->soundEngine->playUI("random.click", 1, 1);
minecraft->setScreen(NULL);
}
#endif

View File

@@ -1,50 +1,36 @@
#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__ #ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__
#define NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__ #define NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__
#include "../Screen.h" #include "Screen.h"
class Button; class UploadPhotoScreen : public Screen
class Mob; {
public:
class UploadPhotoScreen : public Screen
{ UploadPhotoScreen();
public: virtual ~UploadPhotoScreen() {}
UploadPhotoScreen(); virtual void init();
virtual ~UploadPhotoScreen();
void render(int xm, int ym, float a) {
virtual void init(); Screen::render(xm, ym, a);
virtual void setupPositions(); }
virtual void tick();
virtual void removed(); protected:
virtual void keyPressed(int eventKey);
virtual void mouseClicked(int x, int y, int buttonNum);
virtual void render(int xm, int ym, float a); virtual void mouseReleased(int x, int y, int buttonNum);
virtual void keyPressed(int eventKey);
protected:
private:
virtual void buttonClicked(Button* button);
int selectedItem;
private:
void renderSlots();
void applyPhotoMode(); void renderSlot(int slot, int x, int y, float a);
void restorePhotoMode();
int getSelectedSlot(int x, int y);
bool hasAppliedPhotoMode; void selectSlotAndClose();
bool oldHideGui; };
bool oldThirdPerson;
bool oldFixedCamera; #endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__*/
bool hasOldPose;
float oldX;
float oldY;
float oldZ;
float oldYaw;
float oldPitch;
Mob* photoCameraTarget;
float photoCameraX;
float photoCameraY;
float photoCameraZ;
Button* bBack;
};
#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__UploadPhotoScreen_H__*/

View File

@@ -34,7 +34,6 @@ static int _shTicks = -1;
GameRenderer::GameRenderer( Minecraft* mc ) GameRenderer::GameRenderer( Minecraft* mc )
: mc(mc), : mc(mc),
renderDistance(0), renderDistance(0),
photoModeIsometric(false),
_tick(0), _tick(0),
_lastTickT(0), _lastTickT(0),
fovOffset(0), fovOffset(0),
@@ -91,7 +90,7 @@ void renderCursor(float x, float y, Minecraft* minecraft) {
/*private*/ /*private*/
void GameRenderer::setupCamera(float a, int eye) { void GameRenderer::setupCamera(float a, int eye) {
renderDistance = photoModeIsometric ? 1024.0f : (float) (16 * 16 >> (mc->options.getIntValue(OPTIONS_VIEW_DISTANCE))); renderDistance = (float) (16 * 16 >> (mc->options.getIntValue(OPTIONS_VIEW_DISTANCE)));
#if defined(ANDROID) #if defined(ANDROID)
if (mc->isPowerVR() && mc->options.getIntValue(OPTIONS_VIEW_DISTANCE) <= 2) if (mc->isPowerVR() && mc->options.getIntValue(OPTIONS_VIEW_DISTANCE) <= 2)
renderDistance *= 0.8f; renderDistance *= 0.8f;
@@ -315,7 +314,7 @@ void GameRenderer::renderLevel(float a) {
setupFog(1); setupFog(1);
// MCPE renders clouds using this, but this method breaks 3d clouds and also breaks 2d clouds transparency viewed from above, add as a Legacy Sky or Fast Sky option. - shredder // MCPE renders clouds using this, but this method breaks 3d clouds and also breaks 2d clouds transparency viewed from above, add as a Legacy Sky or Fast Sky option. - shredder
if(!mc->options.getBooleanValue(OPTIONS_BETA_SKY)){ if(!mc->options.getBooleanValue(OPTIONS_BETA_SKY)){
if(mc->options.getBooleanValue(OPTIONS_FANCY_GRAPHICS) && !photoModeIsometric) { if(mc->options.getBooleanValue(OPTIONS_FANCY_GRAPHICS)) {
prepareAndRenderClouds(levelRenderer, a); prepareAndRenderClouds(levelRenderer, a);
} }
} }
@@ -574,14 +573,6 @@ void GameRenderer::bobView(float a) {
/*private*/ /*private*/
void GameRenderer::setupFog(int i) { void GameRenderer::setupFog(int i) {
if (photoModeIsometric) {
glDisable2(GL_FOG);
glFogf(GL_FOG_START, 0.0f);
glFogf(GL_FOG_END, 1024.0f);
glEnable2(GL_COLOR_MATERIAL);
return;
}
Mob* player = mc->cameraTargetPlayer; Mob* player = mc->cameraTargetPlayer;
float fogBuffer[4] = {fr, fg, fb, 1}; float fogBuffer[4] = {fr, fg, fb, 1};
@@ -838,14 +829,6 @@ void GameRenderer::tick(int nTick, int maxTick) {
/*private*/ /*private*/
void GameRenderer::setupClearColor(float a) { void GameRenderer::setupClearColor(float a) {
if (photoModeIsometric) {
fr = 0.47f;
fg = 0.78f;
fb = 1.0f;
glClearColor(fr, fg, fb, 1.0f);
return;
}
Level* level = mc->level; Level* level = mc->level;
Mob* player = mc->cameraTargetPlayer; Mob* player = mc->cameraTargetPlayer;
@@ -959,28 +942,6 @@ void GameRenderer::onGraphicsReset()
if (itemInHandRenderer) itemInHandRenderer->onGraphicsReset(); if (itemInHandRenderer) itemInHandRenderer->onGraphicsReset();
} }
void GameRenderer::setPhotoModeIsometric()
{
photoModeIsometric = true;
thirdDistance = thirdDistanceO = 128.0f;
thirdRotation = thirdRotationO = 45.0f;
thirdTilt = thirdTiltO = 56.0f;
zoom = 1.0f;
zoom_x = 0.0f;
zoom_y = 0.0f;
cameraRoll = cameraRollO = 0.0f;
}
void GameRenderer::clearPhotoModeIsometric()
{
photoModeIsometric = false;
}
bool GameRenderer::isPhotoModeIsometric() const
{
return photoModeIsometric;
}
void GameRenderer::saveMatrices() void GameRenderer::saveMatrices()
{ {
#if defined(RPI) #if defined(RPI)

View File

@@ -33,9 +33,6 @@ public:
void renderItemInHand(float a, int eye); void renderItemInHand(float a, int eye);
void onGraphicsReset(); void onGraphicsReset();
void setPhotoModeIsometric();
void clearPhotoModeIsometric();
bool isPhotoModeIsometric() const;
void setupCamera(float a, int eye); void setupCamera(float a, int eye);
void moveCameraToPlayer(float a); void moveCameraToPlayer(float a);
@@ -61,7 +58,6 @@ private:
Minecraft* mc; Minecraft* mc;
float renderDistance; float renderDistance;
bool photoModeIsometric;
int _tick; int _tick;
Vec3 pickDirection; Vec3 pickDirection;

View File

@@ -193,9 +193,7 @@ void LevelRenderer::allChanged()
TileRenderer::setUseTint(sideTint); TileRenderer::setUseTint(sideTint);
int dist = mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric() int dist = (512 >> 3) << (3 - lastViewDistance);
? 1024
: (512 >> 3) << (3 - lastViewDistance);
if (lastViewDistance <= 2 && mc->isPowerVR()) if (lastViewDistance <= 2 && mc->isPowerVR())
dist = (int)((float)dist * 0.8f); dist = (int)((float)dist * 0.8f);
LOGI("last: %d, power: %d\n", lastViewDistance, mc->isPowerVR()); LOGI("last: %d, power: %d\n", lastViewDistance, mc->isPowerVR());
@@ -204,9 +202,7 @@ void LevelRenderer::allChanged()
dist *= 0.6f; dist *= 0.6f;
#endif #endif
if (!(mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric())) { if (dist > 400) dist = 400;
if (dist > 400) dist = 400;
}
/* /*
* if (Minecraft.FLYBY_MODE) { dist = 512 - CHUNK_SIZE * 2; } * if (Minecraft.FLYBY_MODE) { dist = 512 - CHUNK_SIZE * 2; }
*/ */
@@ -678,11 +674,9 @@ void LevelRenderer::tick()
bool LevelRenderer::updateDirtyChunks( Mob* player, bool force ) bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
{ {
bool slow = mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric(); bool slow = false;
if (slow) { if (slow) {
const int visibleLimit = 12;
const int invisibleLimit = 4;
DirtyChunkSorter dirtySorter(player); DirtyChunkSorter dirtySorter(player);
std::sort(dirtyChunks.begin(), dirtyChunks.end(), dirtySorter); std::sort(dirtyChunks.begin(), dirtyChunks.end(), dirtySorter);
int s = dirtyChunks.size() - 1; int s = dirtyChunks.size() - 1;
@@ -692,9 +686,9 @@ bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
if (!force) { if (!force) {
if (chunk->distanceToSqr(player) > 16 * 16) { if (chunk->distanceToSqr(player) > 16 * 16) {
if (chunk->visible) { if (chunk->visible) {
if (i >= visibleLimit) return false; if (i >= MAX_VISIBLE_REBUILDS_PER_FRAME) return false;
} else { } else {
if (i >= invisibleLimit) return false; if (i >= MAX_INVISIBLE_REBUILDS_PER_FRAME) return false;
} }
} }
} else { } else {
@@ -708,9 +702,10 @@ bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
return dirtyChunks.size() == 0; return dirtyChunks.size() == 0;
} else { } else {
const int count = (mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric()) ? 32 : 3; const int count = 3;
Chunk* toAdd[24] = {NULL};
DirtyChunkSorter dirtyChunkSorter(player); DirtyChunkSorter dirtyChunkSorter(player);
Chunk* toAdd[count] = {NULL};
std::vector<Chunk*>* nearChunks = NULL; std::vector<Chunk*>* nearChunks = NULL;
int pendingChunkSize = dirtyChunks.size(); int pendingChunkSize = dirtyChunks.size();
@@ -720,7 +715,7 @@ bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
Chunk* chunk = dirtyChunks[i]; Chunk* chunk = dirtyChunks[i];
if (!force) { if (!force) {
if (chunk->distanceToSqr(player) > ((mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric()) ? 65536.0f : 1024.0f)) { if (chunk->distanceToSqr(player) > 1024.0f) {
int index; int index;
// is this chunk in the closest <count>? // is this chunk in the closest <count>?
@@ -759,7 +754,7 @@ bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
// if there are nearby chunks that need to be prepared for // if there are nearby chunks that need to be prepared for
// rendering, sort them and then process them // rendering, sort them and then process them
static const float MaxFrameTime = (mc->gameRenderer && mc->gameRenderer->isPhotoModeIsometric()) ? (1.0f / 75.0f) : (1.0f / 100.0f); static const float MaxFrameTime = 1.0f / 100.0f;
Stopwatch chunkWatch; Stopwatch chunkWatch;
chunkWatch.start(); chunkWatch.start();

View File

@@ -111,6 +111,7 @@
#include "data/eat1.pcm" #include "data/eat1.pcm"
#include "data/eat2.pcm" #include "data/eat2.pcm"
#include "data/eat3.pcm" #include "data/eat3.pcm"
#include "data/burp1.pcm"
#include "data/fuse.pcm" #include "data/fuse.pcm"
SoundDesc SA_cloth1((char*)PCM_cloth1); SoundDesc SA_cloth1((char*)PCM_cloth1);
@@ -221,6 +222,7 @@ SoundDesc SA_creeperdeath((char*)PCM_creeperdeath);
SoundDesc SA_eat1((char*)PCM_eat1); SoundDesc SA_eat1((char*)PCM_eat1);
SoundDesc SA_eat2((char*)PCM_eat2); SoundDesc SA_eat2((char*)PCM_eat2);
SoundDesc SA_eat3((char*)PCM_eat3); SoundDesc SA_eat3((char*)PCM_eat3);
SoundDesc SA_burp1((char*)PCM_burp1);
SoundDesc SA_fuse((char*)PCM_fuse); SoundDesc SA_fuse((char*)PCM_fuse);
#endif /*!PRE_ANDROID23 && !__APPLE__*/ #endif /*!PRE_ANDROID23 && !__APPLE__*/

View File

@@ -172,6 +172,7 @@ extern SoundDesc SA_creeperdeath;
extern SoundDesc SA_eat1; extern SoundDesc SA_eat1;
extern SoundDesc SA_eat2; extern SoundDesc SA_eat2;
extern SoundDesc SA_eat3; extern SoundDesc SA_eat3;
extern SoundDesc SA_burp1;
extern SoundDesc SA_fuse; extern SoundDesc SA_fuse;
#endif /*!PRE_ANDROID23 && !__APPLE__*/ #endif /*!PRE_ANDROID23 && !__APPLE__*/

View File

@@ -144,6 +144,7 @@ void SoundEngine::init( Minecraft* mc, Options* options )
sounds.add("random.eat", SA_eat1); sounds.add("random.eat", SA_eat1);
sounds.add("random.eat", SA_eat2); sounds.add("random.eat", SA_eat2);
sounds.add("random.eat", SA_eat3); sounds.add("random.eat", SA_eat3);
sounds.add("random.burp", SA_burp1);
sounds.add("random.fuse", SA_fuse); sounds.add("random.fuse", SA_fuse);
#endif #endif

View File

@@ -227,6 +227,7 @@ void SoundEngine::init( Minecraft* mc, Options* options )
sounds.add( "random.eat", _pp("eat1")); sounds.add( "random.eat", _pp("eat1"));
sounds.add( "random.eat", _pp("eat2")); sounds.add( "random.eat", _pp("eat2"));
sounds.add( "random.eat", _pp("eat3")); sounds.add( "random.eat", _pp("eat3"));
sounds.add( "random.burp", _pp("burp1"));
sounds.add( "random.fuse", _pp("fuse")); sounds.add( "random.fuse", _pp("fuse"));
sounds.add( "step.cloth", _pp("cloth1")); sounds.add( "step.cloth", _pp("cloth1"));

File diff suppressed because it is too large Load Diff