mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-06-09 11:32:08 +00:00
Fix all the Cherry Pick Commits from TU24 to TU30
This commit is contained in:
@@ -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")
|
||||
@@ -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>
|
||||
|
||||
Binary file not shown.
@@ -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
Binary file not shown.
@@ -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;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "IUIScene_ClassicCraftingMenu.h"
|
||||
#include "..\..\..\Minecraft.World\net.minecraft.world.inventory.h"
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "UI.h"
|
||||
#include "UIControl_LeftIconButtonList.h"
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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__
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
@@ -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();
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "stdafx.h";
|
||||
#include "LeashKnotModel.h"
|
||||
#include "ModelPart.h"
|
||||
|
||||
|
||||
@@ -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
@@ -1,4 +1,3 @@
|
||||
#include "stdafx.h"
|
||||
#include "StructureTable.h"
|
||||
#include "../Minecraft.World/StringHelpers.h"
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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);
|
||||
@@ -1,5 +1,4 @@
|
||||
#ifdef SPLIT_SAVES
|
||||
#include "stdafx.h"
|
||||
#include "StringHelpers.h"
|
||||
#include "ConsoleSaveFileSplit.h"
|
||||
#include "ConsoleSaveFileConverter.h"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "stdafx.h"
|
||||
#include "NewLogTile.h"
|
||||
|
||||
const unsigned int NewLogTile::TREE_NAMES[NewLogTile::TREE_NAMES_LENGTH] = {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "stdafx.h"
|
||||
#include "OldLogTile.h"
|
||||
|
||||
OldLogTile::OldLogTile(int id) : LogTile(id)
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "WritingBookItem.h"
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "WrittenBookItem.h"
|
||||
#include "WritingBookItem.h"
|
||||
|
||||
Reference in New Issue
Block a user