Fix all the Cherry Pick Commits from TU24 to TU30

This commit is contained in:
GabsPuNs
2026-06-07 01:25:23 -04:00
parent 23f1c2255e
commit c38286e075
38 changed files with 2404 additions and 7648 deletions

View File

@@ -1,10 +1,13 @@
cmake_minimum_required(VERSION 3.24)
#set(CMAKE_C_COMPILER clang-cl)
#set(CMAKE_CXX_COMPILER clang-cl)
project(MinecraftConsoles LANGUAGES C CXX RC ASM_MASM)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# set(CMAKE_CXX_COMPILER clang-cl)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING)
@@ -26,15 +29,13 @@ function(configure_compiler_target target)
# MSVC and compatible compilers (like Clang-cl)
if (MSVC)
target_compile_options(${target} PRIVATE
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3>
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0>
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3 /Od>
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0 /O2 /Oi /GT /GF /Gw /Gy>
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
$<$<COMPILE_LANGUAGE:C,CXX>:/FS>
$<$<COMPILE_LANGUAGE:C,CXX>:/GS>
$<$<COMPILE_LANGUAGE:CXX>:/EHsc>
$<$<COMPILE_LANGUAGE:CXX>:/GR>
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/Od>
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/O2 /Oi /GT /GF>
)
endif()
@@ -44,23 +45,21 @@ function(configure_compiler_target target)
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/GL>
)
target_link_options(${target} PRIVATE
$<$<CONFIG:Release>:/LTCG:incremental>
$<$<CONFIG:Release>:/LTCG:incremental /OPT:REF /OPT:ICF>
)
endif()
# Clang
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
target_compile_options(${target} PRIVATE
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:-O0 -Wall>
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:-O2 -w -flto>
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/clang:-O3>
)
target_link_options(${target} PRIVATE
$<$<CONFIG:Release>:-flto>
$<$<CONFIG:Release>:/OPT:REF /OPT:ICF>
)
endif()
endfunction()
# ---
# Configuration
# ---
@@ -112,4 +111,4 @@ set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT Minecraft.Client)
# Setup folders for Visual Studio, just hides the build targets under a sub folder
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(TARGET GenerateBuildVer PROPERTY FOLDER "Build")
set_property(TARGET GenerateBuildVer PROPERTY FOLDER "Build")

View File

@@ -93,6 +93,9 @@
<data name="IDS_SLIDER_DIFFICULTY">
<value>Dificultad</value>
</data>
<data name="IDS_SLIDER_GAMEMODE">
<value>Modo Juego</value>
</data>
<data name="IDS_SLIDER_MUSIC">
<value>Música</value>
</data>

View File

@@ -96,6 +96,9 @@
<data name="IDS_SLIDER_DIFFICULTY">
<value>Уровень сложности</value>
</data>
<data name="IDS_SLIDER_DIFFICULTY">
<value>Game Mode</value>
</data>
<data name="IDS_SLIDER_MUSIC">
<value>Музыка</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -2599,7 +2599,7 @@ unsigned char CMinecraftApp::GetGameSettings(int iPad,eGameSetting eVal)
break;
case eGameSetting_RenderDistance:
{
unsigned char ucVal=(GameSettingsA[iPad]->uiBitmaskValues >> 23) & 0x3F;
unsigned char ucVal=(GameSettingsA[iPad]->uiBitmaskValues >> 25) & 0x3F;
return ucVal;
}
break;

View File

@@ -1,5 +1,3 @@
#include "stdafx.h"
#include "IUIScene_ClassicCraftingMenu.h"
#include "..\..\..\Minecraft.World\net.minecraft.world.inventory.h"

View File

@@ -1,5 +1,3 @@
#include "StdAfx.h"
#include "UI.h"
#include "UIControl_LeftIconButtonList.h"

View File

@@ -1,10 +1,11 @@
#include "stdafx.h"
#include "UI.h"
#include "..\..\..\Minecraft.World\net.minecraft.world.level.tile.entity.h"
#include "..\..\..\Minecraft.World\net.minecraft.world.inventory.h"
#include "..\..\Minecraft.h"
#include "..\..\LocalPlayer.h"
#include "UIScene_ClassicCraftingMenu.h"
#include "../Tutorial/TutorialMode.h"
#include "../../Windows64/GameConfig/Minecraft.spa.h"
UIScene_ClassicCraftingMenu::UIScene_ClassicCraftingMenu(int iPad, void *_initData, UILayer *parentLayer) : UIScene_AbstractContainerMenu(iPad, parentLayer)
{

View File

@@ -247,7 +247,7 @@ void UIScene_InGameInfoMenu::handleInput(int iPad, int key, bool repeat, bool pr
}
break;
case ACTION_MENU_Y:
if(pressed && m_playerList.hasFocus() && (m_playerList.getItemCount() > 0) && (m_playerList.getCurrentSelection() < m_players.size()) )
if(pressed && m_playerButtonList.hasFocus() && (m_playerButtonList.getItemCount() > 0) && (m_playerButtonList.getCurrentSelection() < m_players.size()) )
{
INetworkPlayer *player = g_NetworkManager.GetPlayerBySmallId(m_players[m_playerButtonList.getCurrentSelection()]->m_smallId);
if( player != nullptr )

View File

@@ -1,4 +1,3 @@
#include "stdafx.h"
#include "UI.h"
#include "UIScene_LoadCreateJoinMenu.h"
@@ -3132,33 +3131,7 @@ void UIScene_LoadCreateJoinMenu::CheckAndJoinGame(int gameIndex)
}
if (bHasTexturePackInstalled == false)
{
#ifdef _XBOX
ULONGLONG ullOfferID_Full;
app.GetDLCFullOfferIDForPackID(m_initData->selectedSession->data.texturePackParentId, &ullOfferID_Full);
TelemetryManager->
RecordUpsellPresented(m_iPad, eSet_UpsellID_Texture_DLC, ullOfferID_Full & 0xFFFFFFFF);
#endif
UINT uiIDA[2];
uiIDA[0] = IDS_TEXTUREPACK_FULLVERSION;
//uiIDA[1]=IDS_TEXTURE_PACK_TRIALVERSION;
uiIDA[1] = IDS_CONFIRM_CANCEL;
ui.RequestAlertMessage(
IDS_DLC_TEXTUREPACK_NOT_PRESENT_TITLE, IDS_DLC_TEXTUREPACK_NOT_PRESENT, uiIDA, 2, m_iPad,
&UIScene_LoadCreateJoinMenu::TexturePackDialogReturned, this);
return;
}
#ifdef __PSVITA__

View File

@@ -1,5 +1,4 @@

#include "..\Common\Consoles_App.h"
#include "..\Common\Consoles_App.h"
#include "..\User.h"
#include "..\..\Minecraft.Client\Minecraft.h"
#include "..\..\Minecraft.Client\MinecraftServer.h"
@@ -1238,7 +1237,7 @@ void CConsoleMinecraftApp::Callback_SaveGameIncomplete(void *pParam, C4JStorage:
if (saveIncompleteType == C4JStorage::ESaveIncomplete_OutOfQuota || saveIncompleteType == C4JStorage::ESaveIncomplete_OutOfLocalStorage)
{
if(UIScene_LoadOrJoinMenu::isSaveTransferRunning())
if(UIScene_LoadCreateJoinMenu::isSaveTransferRunning())
{
// 4J MGH - if we're trying to save from the save transfer stuff, only show "ok", and we won't try to save again
if(saveIncompleteType == C4JStorage::ESaveIncomplete_OutOfQuota) blocksRequired = -1;
@@ -1261,7 +1260,7 @@ void CConsoleMinecraftApp::Callback_SaveGameIncomplete(void *pParam, C4JStorage:
int CConsoleMinecraftApp::NoSaveSpaceReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
{
if(result==C4JStorage::EMessage_ResultAccept && !UIScene_LoadOrJoinMenu::isSaveTransferRunning()) // MGH - we won't try to save again during a save tranfer
if(result==C4JStorage::EMessage_ResultAccept && !UIScene_LoadCreateJoinMenu::isSaveTransferRunning()) // MGH - we won't try to save again during a save tranfer
{
int blocksRequired = (int)pParam;
if(blocksRequired > 0)

View File

@@ -1,5 +1,4 @@

#include "..\Common\UI\UIStructs.h"
#include "..\Common\UI\UIStructs.h"
#include "..\Common\XUI\XUI_Intro.h"
#include "..\Common\XUI\XUI_MainMenu.h"
@@ -1657,7 +1656,7 @@ HRESULT CConsoleMinecraftApp::NavigateToScene(int iPad,EUIScene eScene, void *in
// If you're navigating to the multigamejoinload, and the player hasn't seen the updates message yet, display it now
// display this message the first 3 times
// todo: re-enable if we fix this menu, for now its just blank!
if(false && (eScene==eUIScene_LoadOrJoinMenu) && (bSeenUpdateTextThisSession==false) && ( app.GetGameSettings(ProfileManager.GetPrimaryPad(),eGameSetting_DisplayUpdateMessage)!=0))
if(false && (eScene==eUIScene_LoadCreateJoinMenu) && (bSeenUpdateTextThisSession==false) && ( app.GetGameSettings(ProfileManager.GetPrimaryPad(),eGameSetting_DisplayUpdateMessage)!=0))
{
eScene=eUIScene_NewUpdateMessage;
bSeenUpdateTextThisSession=true;
@@ -1670,6 +1669,7 @@ HRESULT CConsoleMinecraftApp::NavigateToScene(int iPad,EUIScene eScene, void *in
case eUIScene_PauseMenu:
case eUIScene_Crafting2x2Menu:
case eUIScene_Crafting3x3Menu:
case eUIScene_ClassicCraftingMenu:
case eUIScene_FurnaceMenu:
case eUIScene_ContainerMenu:
case eUIScene_LargeContainerMenu:
@@ -1736,7 +1736,7 @@ HRESULT CConsoleMinecraftApp::NavigateToScene(int iPad,EUIScene eScene, void *in
case eUIScene_LeaderboardsMenu:
case eUIScene_Credits:
case eUIScene_CreateWorldMenu:
case eUIScene_LoadOrJoinMenu:
case eUIScene_LoadCreateJoinMenu:
case eUIScene_JoinMenu:
case eUIScene_DLCOffersMenu:
case eUIScene_DLCMainMenu:

View File

@@ -1 +0,0 @@
#include "stdafx.h"

View File

@@ -80,7 +80,7 @@ void ItemFrameRenderer::drawBlockFrame(shared_ptr<ItemFrame> itemFrame)
tileRenderer->clearFixedShape();
glPopMatrix();
tileRenderer->setFixedTexture(Tile::wood->getTexture(Facing::UP, TreeTile::BIRCH_TRUNK));
tileRenderer->setFixedTexture(Tile::wood->getTexture(Facing::UP, LogTile::BIRCH_TRUNK));
// Bottom
glPushMatrix();

View File

@@ -1,4 +1,3 @@
#include "stdafx.h";
#include "LeashKnotModel.h"
#include "ModelPart.h"

View File

@@ -50,7 +50,7 @@ public:
static constexpr int CHUNK_Y_COUNT = Level::maxBuildHeight / CHUNK_SIZE;
static constexpr int MAX_COMMANDBUFFER_ALLOCATIONS = 2048 * 2048 * 2048; // DURANGO: 512. ORBIS: 448. PS3: 110. X360: 55
static constexpr int MAX_COMMANDBUFFER_ALLOCATIONS = 2047 * 1024 * 1024; // DURANGO: 512. ORBIS: 448. PS3: 110. X360: 55
public:
LevelRenderer(Minecraft *mc, Textures *textures);

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,3 @@
#include "stdafx.h"
#include "StructureTable.h"
#include "../Minecraft.World/StringHelpers.h"

File diff suppressed because it is too large Load Diff

View File

@@ -1,134 +1,39 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
// or project specific include files that are used frequently.
#pragma once
//#include <xtl.h>
//#include <xboxmath.h>
//#ifdef _DEBUG
//#define _DEBUG_MENUS_ENABLED
//#endif
#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __STR2__(x) #x //Test
#define __STR1__(x) __STR2__(x) //Test
#define __LOC__ __FILE__ "("__STR1__(__LINE__)") : 4J Warning Msg: "
// use - #pragma message(__LOC__"Need to do something here")
// #ifndef _XBOX
// #ifdef _CONTENT_PACKAGE
// #define TO_BE_IMPLEMENTED
// #endif
// #endif
#ifdef _WINDOWS64
#define _HAS_STD_BYTE 0 // solve (std::)'BYTE' ambiguity with windows headers
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define NOMINMAX // Exclude min/max macros from Windows headers
// Windows Header Files:
#include <tchar.h>
#include <windows.h>
#include <windowsx.h>
// TODO: reference additional headers your program requires here
#include <DirectXMath.h>
#include <d3d11.h>
using namespace DirectX;
#define HRESULT_SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
#endif
#ifdef __PS3__
#include "Ps3Types.h"
#include "Ps3Stubs.h"
#include "PS3Maths.h"
#elif defined __ORBIS__
#include <stdio.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <fios2.h>
#include <message_dialog.h>
#include <game_live_streaming.h>
#include "OrbisTypes.h"
#include "OrbisStubs.h"
#include "OrbisMaths.h"
#define HRESULT_SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
#elif defined __PSVITA__
#include <stdio.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <touch.h>
#include "PSVitaTypes.h"
#include "PSVitaStubs.h"
#include "PSVitaMaths.h"
#else
#include <unordered_map>
#include <unordered_set>
#include <vector>
#endif
#ifdef _DURANGO
#include <xdk.h>
#include <wrl.h>
#include <d3d11_x.h>
#include <DirectXMath.h>
#include <ppltasks.h>
#include <collection.h>
using namespace DirectX;
#include <pix.h>
#include "DurangoStubs.h"
#define HRESULT_SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
#endif
#ifdef _XBOX
#include <xtl.h>
#include <xboxmath.h>
#include <xonline.h>
#include <xuiapp.h>
#include <xact3.h>
#include <xact3d3.h>
typedef XINVITE_INFO INVITE_INFO;
typedef XUID PlayerUID;
typedef XNKID SessionID;
typedef XUID GameSessionUID;
#define HRESULT_SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
#include "..\Minecraft.Client\xbox\network\extra.h"
#else
#include "extraX64.h"
#endif
#include "extraX64client.h"
#ifdef __PS3__
#include <cell/rtc.h>
#include <cell/l10n.h>
#include <cell/pad.h>
#include <cell/cell_fs.h>
#include <sys/process.h>
#include <sys/ppu_thread.h>
#include <cell/sysmodule.h>
#include <sysutil/sysutil_common.h>
#include <sysutil/sysutil_savedata.h>
#include <sysutil/sysutil_sysparam.h>
#endif
// C RunTime Header Files
#include <stdlib.h>
#include <memory>
#include <list>
#include <map>
#include <set>
@@ -140,212 +45,67 @@ typedef XUID GameSessionUID;
#include <iostream>
#include <exception>
#include <mutex>
#include <assert.h>
#include <fstream>
#include <filesystem>
namespace fs = std::filesystem;
#ifdef _XBOX
#include <xonline.h>
#include <xparty.h>
#if defined(_MSC_VER)
#define break_into_debugger() __debugbreak()
#elif defined(__GNUC__) || defined(__clang__)
#define break_into_debugger() __builtin_trap()
#endif
#include "..\Minecraft.World\Definitions.h"
#include "..\Minecraft.World\class.h"
#include "..\Minecraft.World\Mth.h"
#include "..\Minecraft.World\ArrayWithLength.h"
#include "..\Minecraft.World\SharedConstants.h"
#include "..\Minecraft.World\Random.h"
#include "..\Minecraft.World\compression.h"
#include "..\Minecraft.World\PerformanceTimer.h"
#include "../Minecraft.World/Definitions.h"
#include "../Minecraft.World/class.h"
#include "../Minecraft.World/Mth.h"
#include "../Minecraft.World/ArrayWithLength.h"
#include "../Minecraft.World/SharedConstants.h"
#include "../Minecraft.World/Random.h"
#include "../Minecraft.World/compression.h"
#include "../Minecraft.World/PerformanceTimer.h"
#ifdef _XBOX
#include "xbox\4JLibs\inc\4J_Input.h"
#include "xbox\4JLibs\inc\4J_Profile.h"
#include "xbox\4JLibs\inc\4J_Render.h"
#include "xbox\4JLibs\inc\4J_XTMS.h"
#include "xbox\4JLibs\inc\4J_Storage.h"
#elif defined (__PS3__)
#include <Xinput.h>
#include "Windows64/Libs/4JLibs/inc/4J_Input.h"
#include "Windows64/Libs/4JLibs/inc/4J_Profile.h"
#include "Windows64/Libs/4JLibs/inc/4J_Render.h"
#include "Windows64/Libs/4JLibs/inc/4J_Storage.h"
#include "PS3\4JLibs\inc\4J_Input.h"
#include "PS3\4JLibs\inc\4J_Profile.h"
#include "PS3\4JLibs\inc\4J_Render.h"
#include "PS3\4JLibs\inc\4J_Storage.h"
#elif defined _DURANGO
#include "Durango\4JLibs\inc\4J_Input.h"
#include "Durango\4JLibs\inc\4J_Profile.h"
#include "Durango\4JLibs\inc\4J_Render.h"
#include "Durango\4JLibs\inc\4J_Storage.h"
#elif defined _WINDOWS64
#include <Xinput.h>
#include "Windows64\Libs\4JLibs\inc\4J_Input.h"
#include "Windows64\Libs\4JLibs\inc\4J_Profile.h"
#include "Windows64\Libs\4JLibs\inc\4J_Render.h"
#include "Windows64\Libs\4JLibs\inc\4J_Storage.h"
#include "Windows64\KeyboardMouseInput.h"
#elif defined __PSVITA__
#include "PSVita\4JLibs\inc\4J_Input.h"
#include "PSVita\4JLibs\inc\4J_Profile.h"
#include "PSVita\4JLibs\inc\4J_Render.h"
#include "PSVita\4JLibs\inc\4J_Storage.h"
#else
#include "Orbis\4JLibs\inc\4J_Input.h"
#include "Orbis\4JLibs\inc\4J_Profile.h"
#include "Orbis\4JLibs\inc\4J_Render.h"
#include "Orbis\4JLibs\inc\4J_Storage.h"
#endif
#include "Textures.h"
#include "Font.h"
#include "ClientConstants.h"
#include "Gui.h"
#include "Screen.h"
#include "ScreenSizeCalculator.h"
#include "Minecraft.h"
#include "MemoryTracker.h"
#include "stubs.h"
#include "BufferedImage.h"
#include "Common\Network\GameNetworkManager.h"
#include "Common/Network/GameNetworkManager.h"
#include "Common/App_defines.h"
#include "Common/UI/UIEnums.h"
#include "Common/UI/UIStructs.h"
#ifdef _XBOX
#include "Common\XUI\XUI_Helper.h"
#include "Common\XUI\XUI_Scene_Base.h"
#endif
#include "Common/App_enums.h"
#include "Common/App_structs.h"
#include "Common\App_defines.h"
#include "Common\UI\UIEnums.h"
#include "Common\UI\UIStructs.h"
// #ifdef _XBOX
#include "Common\App_enums.h"
#include "Common\Tutorial\TutorialEnum.h"
#include "Common\App_structs.h"
//#endif
#include "Common/Consoles_App.h"
#include "Common/Minecraft_Utils.h"
#include "Common/Minecraft_Macros.h"
#include "Common/BuildVer.h"
#include "Common\Consoles_App.h"
#include "Common\Minecraft_Macros.h"
#include "Common\BuildVer.h"
#ifdef _XBOX
#include "Xbox\Xbox_App.h"
#include "Xbox\Sentient\MinecraftTelemetry.h"
#include "Xbox\Sentient\DynamicConfigurations.h"
#include "XboxMedia\strings.h"
#include "Xbox\Sentient\SentientTelemetryCommon.h"
#include "Xbox\Sentient\Include\SenClientStats.h"
#include "Xbox\GameConfig\Minecraft.spa.h"
#include "XboxMedia\4J_strings.h"
#include "Xbox\XML\ATGXmlParser.h"
#include "Xbox\Leaderboards\XboxLeaderboardManager.h"
#include "Xbox\Social\SocialManager.h"
#include "Xbox\Audio\SoundEngine.h"
#include "Xbox\Xbox_UIController.h"
#elif defined (__PS3__)
#include "extraX64client.h"
#include "PS3\Sentient\MinecraftTelemetry.h"
#include "PS3\Sentient\DynamicConfigurations.h"
#include "PS3\Sentient\SentientTelemetryCommon.h"
#include "PS3Media\strings.h"
#include "PS3\PS3_App.h"
#include "PS3\GameConfig\Minecraft.spa.h"
#include "PS3Media\4J_strings.h"
#include "PS3\XML\ATGXmlParser.h"
#include "PS3\Social\SocialManager.h"
#include "Common\Audio\SoundEngine.h"
#include "PS3\Iggy\include\iggy.h"
#include "PS3\Iggy\gdraw\gdraw_ps3gcm.h"
#include "PS3\PS3_UIController.h"
#elif defined _DURANGO
#include "Durango\Sentient\MinecraftTelemetry.h"
#include "DurangoMedia\strings.h"
#include "Durango\Durango_App.h"
#include "Durango\Sentient\DynamicConfigurations.h"
#include "Durango\Sentient\TelemetryEnum.h"
#include "Durango\Sentient\SentientTelemetryCommon.h"
#include "Durango\PresenceIds.h"
#include "DurangoMedia\4J_strings.h"
#include "Durango\XML\ATGXmlParser.h"
#include "Durango\Social\SocialManager.h"
#include "Common\Audio\SoundEngine.h"
#include "Durango\Iggy\include\iggy.h"
#include "Durango\Iggy\gdraw\gdraw_d3d11.h"
#include "Durango\Durango_UIController.h"
#elif defined _WINDOWS64
#include "Windows64\Sentient\MinecraftTelemetry.h"
#include "Windows64Media\strings.h"
#include "Windows64\Windows64_App.h"
#include "Windows64\Sentient\DynamicConfigurations.h"
#include "Windows64\Sentient\SentientTelemetryCommon.h"
#include "Windows64\GameConfig\Minecraft.spa.h"
#include "Windows64\XML\ATGXmlParser.h"
#include "Windows64\Social\SocialManager.h"
#include "Common\Audio\SoundEngine.h"
#include "Windows64\Libs\Iggy\inc\iggy.h"
#include "Windows64\Libs\Iggy\gdraw\gdraw_d3d11.h"
#include "Windows64\Windows64_UIController.h"
#elif defined __PSVITA__
#include "PSVita\PSVita_App.h"
#include "PSVitaMedia\strings.h" // TODO - create PSVita-specific version of this
#include "PSVita\Sentient\SentientManager.h"
#include "PSVita\Sentient\MinecraftTelemetry.h"
#include "PSVita\Sentient\DynamicConfigurations.h"
#include "PSVita\GameConfig\Minecraft.spa.h"
#include "PSVita\XML\ATGXmlParser.h"
#include "PSVita\Social\SocialManager.h"
#include "Common\Audio\SoundEngine.h"
#include "PSVita\Iggy\include\iggy.h"
#include "PSVita\Iggy\gdraw\gdraw_psp2.h"
#include "PSVita\PSVita_UIController.h"
#else
#include "Orbis\Sentient\MinecraftTelemetry.h"
#include "OrbisMedia\strings.h"
#include "Orbis\Orbis_App.h"
#include "Orbis\Sentient\SentientTelemetryCommon.h"
#include "Orbis\Sentient\DynamicConfigurations.h"
#include "Orbis\GameConfig\Minecraft.spa.h"
#include "OrbisMedia\4J_strings.h"
#include "Orbis\XML\ATGXmlParser.h"
#include "Windows64\Social\SocialManager.h"
#include "Common\Audio\SoundEngine.h"
#include "Orbis\Iggy\include\iggy.h"
#include "Orbis\Iggy\gdraw\gdraw_orbis.h"
#include "Orbis\Orbis_UIController.h"
#endif
#ifdef _XBOX
#include "Common\XUI\XUI_CustomMessages.h"
#include "Common\XUI\XUI_Scene_Inventory_Creative.h"
#include "Common\XUI\XUI_FullscreenProgress.h"
#include "Common\XUI\XUI_ConnectingProgress.h"
#include "Common\XUI\XUI_Scene_CraftingPanel.h"
#include "Common\XUI\XUI_TutorialPopup.h"
#include "Common\XUI\XUI_PauseMenu.h"
#endif
#include "Common\ConsoleGameMode.h"
#include "Common\Console_Debug_enum.h"
#include "Common\Console_Awards_enum.h"
#include "Common\Tutorial\TutorialMode.h"
#include "Common\Tutorial\Tutorial.h"
#include "Common\Tutorial\FullTutorialMode.h"
#include "Common\Trial\TrialMode.h"
#include "Common\GameRules\ConsoleGameRules.h"
#include "Common\GameRules\ConsoleSchematicFile.h"
#include "Common\Colours\ColourTable.h"
#include "StructureTable.h"
#include "Common\DLC\DLCSkinFile.h"
#include "Common\DLC\DLCManager.h"
#include "Common\DLC\DLCPack.h"
#include "Common\Telemetry\TelemetryManager.h"
#include "Common\Potion_Macros.h"
#ifdef _XBOX
//#include "Xbox\Xbox_App.h"
#elif !defined(__PS3__)
#include "extraX64client.h"
#endif
#include "Windows64/Sentient/MinecraftTelemetry.h"
#include "Assets/Localisation/strings.h"
#include "Windows64/Windows64_App.h"
#include "Windows64/Sentient/DynamicConfigurations.h"
#include "Windows64/Sentient/SentientTelemetryCommon.h"
#include "Windows64/XML/ATGXmlParser.h"
#include "Windows64/Social/SocialManager.h"
#include "Common/Audio/SoundEngine.h"
#include "Windows64/Libs/Iggy/inc/iggy.h"
#include "Windows64/Libs/Iggy/gdraw/gdraw_d3d11.h"
#include "Windows64/Windows64_UIController.h"
#include "Common/Console_Debug_enum.h"
#include "Common/Console_Awards_enum.h"
#include "Common/GameRules/ConsoleGameRules.h"
#include "Common/GameRules/ConsoleSchematicFile.h"
#include "Common/Telemetry/TelemetryManager.h"
#include "Common/Potion_Macros.h"
#ifdef _FINAL_BUILD
#define printf BREAKTHECOMPILE
@@ -356,4 +116,4 @@ namespace fs = std::filesystem;
#define OutputDebugStringW BREAKTHECOMPILE
#endif
void MemSect(int sect);
void MemSect(int sect);

View File

@@ -1,5 +1,4 @@
#ifdef SPLIT_SAVES
#include "stdafx.h"
#include "StringHelpers.h"
#include "ConsoleSaveFileSplit.h"
#include "ConsoleSaveFileConverter.h"

View File

@@ -1,4 +1,3 @@
#include "stdafx.h"
#include "net.minecraft.world.level.h"
#include "net.minecraft.world.level.tile.piston.h"
#include "net.minecraft.h"

View File

@@ -1,4 +1,3 @@
#include "stdafx.h"
#include "NewLogTile.h"
const unsigned int NewLogTile::TREE_NAMES[NewLogTile::TREE_NAMES_LENGTH] = {

View File

@@ -1,4 +1,3 @@
#include "stdafx.h"
#include "OldLogTile.h"
OldLogTile::OldLogTile(int id) : LogTile(id)

View File

@@ -14,6 +14,7 @@
#include "Facing.h"
#include "DoorItem.h"
#include "EnchantedBookItem.h"
#include "StringHelpers.h"
/**
*
@@ -120,9 +121,7 @@ StructurePiece* StructurePiece::findCollisionPiece( list< StructurePiece* > *pie
for (auto& piece : *pieces)
{
if ( piece && piece->getBoundingBox() && piece->getBoundingBox()->intersects( box ) )
{
return piece;
}
}
return nullptr;
}
@@ -149,14 +148,11 @@ bool StructurePiece::edgesLiquid( Level* level, BoundingBox* chunkBB )
{
int tile = level->getTile( x, y0, z );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
tile = level->getTile( x, y1, z );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
}
}
// north and south
@@ -166,14 +162,11 @@ bool StructurePiece::edgesLiquid( Level* level, BoundingBox* chunkBB )
{
int tile = level->getTile( x, y, z0 );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
tile = level->getTile( x, y, z1 );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
}
}
// east and west
@@ -183,14 +176,11 @@ bool StructurePiece::edgesLiquid( Level* level, BoundingBox* chunkBB )
{
int tile = level->getTile( x0, y, z );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
tile = level->getTile( x1, y, z );
if ( tile > 0 && Tile::tiles[tile]->material->isLiquid() )
{
return true;
}
}
}
return false;
@@ -216,9 +206,8 @@ int StructurePiece::getWorldX( int x, int z )
int StructurePiece::getWorldY( int y )
{
if ( orientation == Direction::UNDEFINED )
{
return y;
}
return y + boundingBox->y0;
}
@@ -245,13 +234,9 @@ int StructurePiece::getOrientationData( int tile, int data )
if ( orientation == Direction::WEST || orientation == Direction::EAST )
{
if ( data == BaseRailTile::DIR_FLAT_X )
{
return BaseRailTile::DIR_FLAT_Z;
}
else
{
return BaseRailTile::DIR_FLAT_X;
}
}
}
else if ( tile == Tile::door_wood_Id || tile == Tile::door_iron_Id )
@@ -259,13 +244,9 @@ int StructurePiece::getOrientationData( int tile, int data )
if ( orientation == Direction::SOUTH )
{
if ( data == 0 )
{
return 2;
}
if ( data == 2 )
{
return 0;
}
}
else if ( orientation == Direction::WEST )
{
@@ -289,51 +270,31 @@ int StructurePiece::getOrientationData( int tile, int data )
if ( orientation == Direction::SOUTH )
{
if ( data == 2 )
{
return 3;
}
if ( data == 3 )
{
return 2;
}
}
else if ( orientation == Direction::WEST )
{
if ( data == 0 )
{
return 2;
}
if ( data == 1 )
{
return 3;
}
if ( data == 2 )
{
return 0;
}
if ( data == 3 )
{
return 1;
}
}
else if ( orientation == Direction::EAST )
{
if ( data == 0 )
{
return 2;
}
if ( data == 1 )
{
return 3;
}
if ( data == 2 )
{
return 1;
}
if ( data == 3 )
{
return 0;
}
}
}
else if ( tile == Tile::ladder->id )
@@ -341,104 +302,63 @@ int StructurePiece::getOrientationData( int tile, int data )
if ( orientation == Direction::SOUTH )
{
if ( data == Facing::NORTH )
{
return Facing::SOUTH;
}
if ( data == Facing::SOUTH )
{
return Facing::NORTH;
}
}
else if ( orientation == Direction::WEST )
{
if ( data == Facing::NORTH )
{
return Facing::WEST;
}
if ( data == Facing::SOUTH )
{
return Facing::EAST;
}
if ( data == Facing::WEST )
{
return Facing::NORTH;
}
if ( data == Facing::EAST )
{
return Facing::SOUTH;
}
}
else if ( orientation == Direction::EAST )
{
if ( data == Facing::NORTH )
{
return Facing::EAST;
}
if ( data == Facing::SOUTH )
{
return Facing::WEST;
}
if ( data == Facing::WEST )
{
return Facing::NORTH;
}
if ( data == Facing::EAST )
{
return Facing::SOUTH;
}
}
}
else if ( tile == Tile::button->id )
{
if ( orientation == Direction::SOUTH )
{
if ( data == 3 )
{
return 4;
}
if ( data == 4 )
{
return 3;
}
}
else if ( orientation == Direction::WEST )
{
if ( data == 3 )
{
return 1;
}
if ( data == 4 )
{
return 2;
}
if ( data == 2 )
{
return 3;
}
if ( data == 1 )
{
return 4;
}
}
else if ( orientation == Direction::EAST )
{
if ( data == 3 )
{
return 2;
}
if ( data == 4 )
{
return 1;
}
if ( data == 2 )
{
return 3;
}
if ( data == 1 )
{
return 4;
}
}
}
else if (tile == Tile::tripWireSource_Id || (Tile::tiles[tile] != nullptr && dynamic_cast<DirectionalTile *>(Tile::tiles[tile])))
@@ -446,47 +366,29 @@ int StructurePiece::getOrientationData( int tile, int data )
if (orientation == Direction::SOUTH)
{
if (data == Direction::SOUTH || data == Direction::NORTH)
{
return Direction::DIRECTION_OPPOSITE[data];
}
}
else if (orientation == Direction::WEST)
{
if (data == Direction::NORTH)
{
return Direction::WEST;
}
if (data == Direction::SOUTH)
{
return Direction::EAST;
}
if (data == Direction::WEST)
{
return Direction::NORTH;
}
if (data == Direction::EAST)
{
return Direction::SOUTH;
}
}
else if (orientation == Direction::EAST)
{
if (data == Direction::NORTH)
{
return Direction::EAST;
}
if (data == Direction::SOUTH)
{
return Direction::WEST;
}
if (data == Direction::WEST)
{
return Direction::NORTH;
}
if (data == Direction::EAST)
{
return Direction::SOUTH;
}
}
}
else if (tile == Tile::pistonBase_Id || tile == Tile::pistonStickyBase_Id || tile == Tile::lever_Id || tile == Tile::dispenser_Id)
@@ -494,46 +396,29 @@ int StructurePiece::getOrientationData( int tile, int data )
if (orientation == Direction::SOUTH)
{
if (data == Facing::NORTH || data == Facing::SOUTH)
{
return Facing::OPPOSITE_FACING[data];
}
}
else if (orientation == Direction::WEST)
{
if (data == Facing::NORTH)
{
return Facing::WEST;
}
if (data == Facing::SOUTH)
{
return Facing::EAST;
}
if (data == Facing::WEST)
{
return Facing::NORTH;
}
if (data == Facing::EAST)
{
return Facing::SOUTH;
}
} else if (orientation == Direction::EAST)
}
else if (orientation == Direction::EAST)
{
if (data == Facing::NORTH)
{
return Facing::EAST;
}
if (data == Facing::SOUTH)
{
return Facing::WEST;
}
if (data == Facing::WEST)
{
return Facing::NORTH;
}
if (data == Facing::EAST)
{
return Facing::SOUTH;
}
}
}
return data;
@@ -547,9 +432,7 @@ void StructurePiece::placeBlock( Level* level, int block, int data, int x, int y
int worldZ = getWorldZ( x, z );
if ( !chunkBB->isInside( worldX, worldY, worldZ ) )
{
return;
}
// 4J Stu - We shouldn't be removing bedrock when generating things (eg in SuperFlat)
if(worldY == 0) return;
@@ -557,7 +440,6 @@ void StructurePiece::placeBlock( Level* level, int block, int data, int x, int y
level->setTileAndData( worldX, worldY, worldZ, block, data, Tile::UPDATE_CLIENTS);
}
/**
* The purpose of this method is to wrap the getTile call on Level, in order
* to prevent the level from generating chunks that shouldn't be loaded yet.
@@ -577,9 +459,7 @@ int StructurePiece::getBlock( Level* level, int x, int y, int z, BoundingBox* ch
int worldZ = getWorldZ( x, z );
if ( !chunkBB->isInside( worldX, worldY, worldZ ) )
{
return 0;
}
return level->getTile( worldX, worldY, worldZ );
}
@@ -591,9 +471,7 @@ void StructurePiece::generateAirBox(Level *level, BoundingBox *chunkBB, int x0,
for (int x = x0; x <= x1; x++)
{
for (int z = z0; z <= z1; z++)
{
placeBlock(level, 0, 0, x, y, z, chunkBB);
}
}
}
}
@@ -607,20 +485,13 @@ void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, int x0, in
{
for ( int z = z0; z <= z1; z++ )
{
if ( skipAir && getBlock( level, x, y, z, chunkBB ) == 0 )
{
continue;
}
if ( y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1 )
{
placeBlock( level, edgeTile, 0, x, y, z, chunkBB );
}
else
{
placeBlock( level, fillTile, 0, x, y, z, chunkBB );
}
if ( y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1 )
placeBlock( level, edgeTile, 0, x, y, z, chunkBB );
else
placeBlock( level, fillTile, 0, x, y, z, chunkBB );
}
}
}
@@ -634,27 +505,19 @@ void StructurePiece::generateBox(Level *level, BoundingBox *chunkBB, int x0, int
{
for (int z = z0; z <= z1; z++)
{
if (skipAir && getBlock(level, x, y, z, chunkBB) == 0)
{
continue;
}
if (y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1)
{
placeBlock(level, edgeTile, edgeData, x, y, z, chunkBB);
}
else
{
placeBlock(level, fillTile, fillData, x, y, z, chunkBB);
}
if (y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1)
placeBlock(level, edgeTile, edgeData, x, y, z, chunkBB);
else
placeBlock(level, fillTile, fillData, x, y, z, chunkBB);
}
}
}
}
void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, BoundingBox* boxBB, int edgeTile, int fillTile,
bool skipAir )
void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, BoundingBox* boxBB, int edgeTile, int fillTile, bool skipAir )
{
generateBox( level, chunkBB, boxBB->x0, boxBB->y0, boxBB->z0, boxBB->x1, boxBB->y1, boxBB->z1, edgeTile, fillTile,
skipAir );
@@ -669,21 +532,17 @@ void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, int x0, in
{
for ( int z = z0; z <= z1; z++ )
{
if ( skipAir && getBlock( level, x, y, z, chunkBB ) == 0 )
{
continue;
}
selector->next( random, x, y, z, y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1 );
placeBlock( level, selector->getNextId(), selector->getNextData(), x, y, z, chunkBB );
}
}
}
}
void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, BoundingBox* boxBB, bool skipAir, Random* random,
StructurePiece::BlockSelector* selector )
void StructurePiece::generateBox( Level* level, BoundingBox* chunkBB, BoundingBox* boxBB, bool skipAir, Random* random, StructurePiece::BlockSelector* selector )
{
generateBox( level, chunkBB, boxBB->x0, boxBB->y0, boxBB->z0, boxBB->x1, boxBB->y1, boxBB->z1, skipAir, random,
selector );
@@ -699,31 +558,22 @@ void StructurePiece::generateMaybeBox( Level* level, BoundingBox* chunkBB, Rando
{
for ( int z = z0; z <= z1; z++ )
{
if ( random->nextFloat() > probability )
{
continue;
}
if ( skipAir && getBlock( level, x, y, z, chunkBB ) == 0 )
{
continue;
}
if ( y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1 )
{
placeBlock( level, edgeTile, 0, x, y, z, chunkBB );
}
else
{
placeBlock( level, fillTile, 0, x, y, z, chunkBB );
}
if ( skipAir && getBlock( level, x, y, z, chunkBB ) == 0 )
continue;
if ( y == y0 || y == y1 || x == x0 || x == x1 || z == z0 || z == z1 )
placeBlock( level, edgeTile, 0, x, y, z, chunkBB );
else
placeBlock( level, fillTile, 0, x, y, z, chunkBB );
}
}
}
}
void StructurePiece::maybeGenerateBlock( Level* level, BoundingBox* chunkBB, Random *random, float probability, int x,
int y, int z, int tile, int data )
void StructurePiece::maybeGenerateBlock( Level* level, BoundingBox* chunkBB, Random *random, float probability, int x, int y, int z, int tile, int data )
{
if ( random->nextFloat() < probability )
{
@@ -731,8 +581,7 @@ void StructurePiece::maybeGenerateBlock( Level* level, BoundingBox* chunkBB, Ran
}
}
void StructurePiece::generateUpperHalfSphere( Level* level, BoundingBox* chunkBB, int x0, int y0, int z0, int x1,
int y1, int z1, int fillTile, bool skipAir )
void StructurePiece::generateUpperHalfSphere( Level* level, BoundingBox* chunkBB, int x0, int y0, int z0, int x1, int y1, int z1, int fillTile, bool skipAir )
{
float diagX = static_cast<float>(x1 - x0 + 1);
float diagY = static_cast<float>(y1 - y0 + 1);
@@ -753,18 +602,13 @@ void StructurePiece::generateUpperHalfSphere( Level* level, BoundingBox* chunkBB
float normalizedZDistance = ( float )( z - cz ) / ( diagZ * 0.5f );
if ( skipAir && getBlock( level, x, y, z, chunkBB ) == 0 )
{
continue;
}
float dist = ( normalizedXDistance * normalizedXDistance ) + ( normalizedYDistance *
normalizedYDistance ) + ( normalizedZDistance * normalizedZDistance );
if ( dist <= 1.05f )
{
placeBlock( level, fillTile, 0, x, y, z, chunkBB );
}
}
}
}
@@ -792,9 +636,7 @@ void StructurePiece::generateFullSphere( Level* level, BoundingBox* chunkBB, int
}
if ( ( float ) radius - dist > 0.5f )
{
placeBlock( level, fillTile, fillData, x, y, z, chunkBB );
}
}
}
}
@@ -807,9 +649,7 @@ void StructurePiece::generateAirColumnUp( Level* level, int x, int startY, int z
int worldZ = getWorldZ( x, z );
if ( !chunkBB->isInside( worldX, worldY, worldZ ) )
{
return;
}
while ( !level->isEmptyTile( worldX, worldY, worldZ ) && worldY < Level::maxBuildHeight - 1 )
{
@@ -823,9 +663,7 @@ void StructurePiece::generateAirBoxUp( Level* level, int x0, int z0, int x1, int
for ( int x = x0; x < x1; ++x )
{
for ( int z = z0; z < z1; ++z )
{
placeBlock( level, 0, 0, x, y, z, chunkBB );
}
}
}
@@ -836,9 +674,7 @@ void StructurePiece::fillColumnDown( Level* level, int tile, int tileData, int x
int worldZ = getWorldZ( x, z );
if ( !chunkBB->isInside( worldX, worldY, worldZ ) )
{
return;
}
while ( ( level->isEmptyTile( worldX, worldY, worldZ ) || level->getMaterial( worldX, worldY, worldZ )->isLiquid() ) && worldY > 1 )
{
@@ -852,9 +688,7 @@ void StructurePiece::fillBoxDown( Level* level, int tileId, int tileData, int x0
for ( int x = x0; x <= x1; x++ )
{
for ( int z = z0; z <= z1; z++ )
{
fillColumnDown( level, tileId, tileData, x, y0, z, chunkBB );
}
}
}
@@ -914,9 +748,7 @@ void StructurePiece::createCrops( Level *level, BoundingBox *chunkBB, Random *ra
for ( int x = x0; x <= x1; x++ )
{
for ( int z = z0; z <= z1; z++ )
{
placeBlock( level, tileId, Mth::nextInt( random, minData, maxData ), x, y, z, chunkBB );
}
}
}
@@ -949,25 +781,19 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
bool invert = s.v26[1] != 0;
if ( bitIndex >= (int)featureConditions.size() )
{
shouldGenerate = false;
}
else
{
bool bit = featureConditions[bitIndex];
if ( invert )
{
if ( bit )
{
shouldGenerate = false;
}
}
else
{
if ( !bit )
{
shouldGenerate = false;
}
}
}
}
@@ -1000,7 +826,8 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
break;
}
}
if (!shouldGenerate) break;
if (!shouldGenerate)
break;
}
}
@@ -1012,32 +839,41 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
{
int offsetValue = tileOptionRemap[remapIdx];
// start
if (s.startRemap0 == remapIdx) s.x0 += offsetValue;
if (s.startRemap1 == remapIdx) s.x0 += offsetValue;
if (s.startRemap2 == remapIdx) s.y0 += offsetValue;
if (s.startRemap0 == remapIdx)
s.x0 += offsetValue;
if (s.startRemap1 == remapIdx)
s.x0 += offsetValue;
if (s.startRemap2 == remapIdx)
s.y0 += offsetValue;
// end
if (s.endRemap0 == remapIdx) s.x1 += offsetValue;
if (s.endRemap1 == remapIdx) s.x1 += offsetValue;
if (s.endRemap2 == remapIdx) s.y1 += offsetValue;
if (s.endRemap0 == remapIdx)
s.x1 += offsetValue;
if (s.endRemap1 == remapIdx)
s.x1 += offsetValue;
if (s.endRemap2 == remapIdx)
s.y1 += offsetValue;
}
switch( s.id )
{
case eGenerateStructure_Block:
{
placeBlock( level, s.tileId, getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data ), s.x0, s.y0, s.z0, chunkBB );
break;
}
/*
case eGenerateStructure_maybeGenerateBlock:
{
maybeGenerateBlock( level, chunkBB, random, s.probability, s.x0, s.y0, s.z0, s.tileId, s.data );
break;
}
case eGenerateStructure_AirBox:
{
generateAirBox( level, chunkBB, s.x0, s.y0, s.z0, s.x1, s.y1, s.z1 );
break;
}
*/
case eGenerateStructure_Box:
{
int data0 = getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data );
@@ -1048,14 +884,16 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
/*
case eGenerateStructure_MaybeBox:
{
generateMaybeBox( level, chunkBB, random, s.probability, s.x0, s.y0, s.z0, s.x1, s.y1, s.z1, s.tileId, s.data, false );
break;
}
case eGenerateStructure_UpperHalfSphere:
{
generateUpperHalfSphere( level, chunkBB, s.x0, s.y0, s.z0, s.x1, s.y1, s.z1, s.tileId, false );
break;
}
*/
case eGenerateStructure_FullSphere:
{
int data0 = getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data );
@@ -1063,31 +901,30 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
generateFullSphere( level, chunkBB, s.x0, s.y0, s.z0, s.v25[0], s.tileId, data0, s.secondTileId, data1, false );
break;
}
/*
case eGenerateStructure_AirColumnUp:
{
generateAirColumnUp( level, s.x0, s.y0, s.z0, chunkBB );
break;
}
*/
case eGenerateStructure_fillColumnDown:
{
int data0 = getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data );
fillColumnDown( level, s.tileId, data0, s.x0, s.y0, s.z0, chunkBB );
break;
}
case eGenerateStructure_fillBoxDown:
{
int data0 = getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data );
fillBoxDown( level, s.tileId, data0, s.x0, s.y0, s.z0, s.x1, s.z1, chunkBB );
break;
}
case eGenerateStructure_generateAirBoxUp:
{
generateAirBoxUp( level, s.x0, s.z0, s.x1, s.z1, s.y0, chunkBB );
break;
}
case eGenerateStructure_Crops:
{
if( tileOptionRemap.empty() )
@@ -1109,7 +946,6 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
createCrops( level, chunkBB, random, s.x0, s.z0, s.x1, s.z1, s.y0, cropTileId, minCropAge, maxCropAge);
break;
}
case eGenerateStructure_CreateDoor:
{
int worldX = getWorldX( s.x0, s.z0 );
@@ -1119,38 +955,28 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
{
int doorData = getBlockDataValue( (StructureTable::eBlockDataType)s.dataType, s.tileId, s.data );
if( s.tileId == Tile::door_wood_Id )
{
DoorItem::place( level, worldX, worldY, worldZ, doorData, Tile::door_wood );
}
else
{
DoorItem::place( level, worldX, worldY, worldZ, doorData, Tile::door_iron );
}
}
break;
}
case eGenerateStructure_CheckBlock:
{
int block = getBlock(level, s.x0, s.y0, s.z0, chunkBB);
bool match = (block != 0);
if (!s.v25.empty() && s.v25[0] == 0)
{
match = (block == 0);
}
if (!match)
{
if (!s.v27.empty())
{
failures[s.v27[0]] = true;
}
}
break;
}
default:
break;
}
@@ -1164,9 +990,7 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
bool process = true;
if ( (int)objectPlacedFlags.size() == (int)piece->objects.size() )
{
process = objectPlacedFlags[i];
}
bool placed = false;
@@ -1187,13 +1011,9 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
int rollOffset = random->nextInt( o.rollWeight );
if ( o.id == eGenerateObject_Chest )
{
placed = createChest( level, chunkBB, random, o.x, o.y, o.z, treasure, o.rollCount + rollOffset );
}
else
{
placed = createDispenser( level, chunkBB, random, o.x, o.y, o.z, o.dispenserDir, treasure, o.rollCount + rollOffset );
}
delete book;
}
@@ -1201,13 +1021,9 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
{
int rollOffset = random->nextInt( o.rollWeight );
if ( o.id == eGenerateObject_Chest )
{
placed = createChest( level, chunkBB, random, o.x, o.y, o.z, treasureItems, o.rollCount + rollOffset );
}
else
{
placed = createDispenser( level, chunkBB, random, o.x, o.y, o.z, o.dispenserDir, treasureItems, o.rollCount + rollOffset );
}
}
}
}
@@ -1222,17 +1038,13 @@ void StructurePiece::generateStructureFromData( Level *level, BoundingBox *chunk
const StructureTable::EntityData &e = piece->entities[j];
if ( j >= entitySpawnCounts.size() )
{
entitySpawnCounts.push_back( 0 );
}
spawnEntity( level, chunkBB, e.x, e.y, e.z, (eGenerateEntity)e.id, e.count, const_cast<vector<int>&>( e.professions ), entitySpawnCounts[j] );
}
for (int i = 0; i < treasureItems.length; i++)
{
delete treasureItems[i];
}
}
void StructurePiece::setDirty()
@@ -1251,9 +1063,7 @@ void StructurePiece::spawnEntity( Level *level, BoundingBox *chunkBB, int x, int
worldX += entitySpawnCounts;
if ( !chunkBB->isInside( worldX, worldY, worldZ ) )
{
return;
}
if ( entityType == eGenerateEntity_Witch )
{
@@ -1334,9 +1144,7 @@ void StructurePiece::addBoolSaveData(DataOutputStream *dos, vector<bool> &data)
outData.append( woss.str() );
if ( i < data.size() - 1 )
{
outData.append( L"," );
}
}
dos->writeUTF( outData );
@@ -1375,9 +1183,7 @@ void StructurePiece::addIntSaveData(DataOutputStream *dos, vector<int> &data)
outData.append( woss.str() );
if ( i < data.size() - 1 )
{
outData.append( L"," );
}
}
dos->writeUTF( outData );

View File

@@ -1,3 +1 @@
#include "stdafx.h"
#include "WritingBookItem.h"

View File

@@ -1,4 +1,2 @@
#include "stdafx.h"
#include "WrittenBookItem.h"
#include "WritingBookItem.h"