1 Commits
Author SHA1 Message Date
pieeebot 2dfad97503 wip_feat(PS3): Implement SPU variants for a portion of TU19's blocks
crashes at a stack overflow, cant be assed to fix it atm
2026-07-14 19:52:30 +03:00
147 changed files with 13310 additions and 5118 deletions
-109
View File
@@ -1,109 +0,0 @@
name: Build & Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version tag for release (e.g. v1.0.0).'
required: true
default: ''
notes:
description: 'URL to notes for release.'
required: false
default: ''
jobs:
validate:
runs-on: windows-2022
steps:
- name: Validate version format
run: |
if (-not ("${{ inputs.version }}" -match '^v\d+\.\d+\.\d+[a-zA-Z0-9.-]*$')) {
Write-Error "Version '${{ inputs.version }}' doesn't match expected format (e.g. v1.0.0)"
exit 1
}
build:
runs-on: windows-2022
strategy:
matrix:
configuration: [Release]
platform: [PS3, Windows64] #[PS3, PSVita, Xbox 360, ORBIS, Windows64]
steps:
- name: Checkout Repository
uses: https://github.com/actions/checkout@v4
- name: Build Cafeberry
run: |
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" MinecraftConsoles.sln `
/p:Configuration=${{ matrix.configuration }} `
/p:Platform=${{ matrix.platform }} `
/m
- name: Zip Build (Consoles)
if: matrix.platform != 'Windows64'
run: 7z a -r LCE${{ matrix.platform }}.zip ./${{ matrix.platform }}_${{ matrix.configuration }}/* "-x!*.ipdb" "-x!*.iobj"
- name: Zip Build (Windows64)
if: matrix.platform == 'Windows64'
run: 7z a -r LCE${{ matrix.platform }}.zip ./x64/${{ matrix.configuration }}/* "-x!*.ipdb" "-x!*.iobj"
- name: Stage artifacts
run: |
New-Item -ItemType Directory -Force -Path staging
Copy-Item LCE${{ matrix.platform }}.zip staging/
- name: Stage exe
if: matrix.platform == 'Windows64'
run: |
Copy-Item ./x64/${{ matrix.configuration }}/Minecraft.Client.exe staging/
- name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3
with:
name: build-${{ matrix.platform }}
path: staging/*
release:
needs: build
runs-on: windows-2022
steps:
- name: Checkout Repository
uses: https://github.com/actions/checkout@v4
- name: Download all build artifacts
uses: https://github.com/actions/download-artifact@v3
with:
path: downloaded
- name: Fetch release notes
id: notes
run: |
$notesSource = "${{ inputs.notes }}"
$fallback = "## Cafeberry`n`n### Whoever made this release forgot to put notes, sorry!"
if ($notesSource -match '^https?://') {
try {
$body = (Invoke-WebRequest -Uri $notesSource -UseBasicParsing).Content
if ([string]::IsNullOrWhiteSpace($body)) { $body = $fallback }
} catch {
$body = $fallback
}
}
"description<<EOF`n$body`nEOF" | Out-File -Append -Encoding utf8 -NoNewline:$false $env:GITHUB_OUTPUT
- name: Publish Release
uses: akkuman/gitea-release-action@v1
with:
name: ${{ inputs.version }}
server_url: ${{ gitea.server_url }}
repository: ${{ gitea.repository }}
token: ${{ gitea.token }}
tag_name: ${{ inputs.version }}
prerelease: false
verbose: true
files: downloaded/**/*
body: ${{ steps.notes.outputs.description }}
+48 -43
View File
@@ -1,50 +1,55 @@
/*Debug
/*Release
/*ContentPackage
/*ContentPackage_NO_TU
/*ContentPackage_SYMBOLS
/*ReleaseForArt
/ORBIS_Debug
/ORBIS_Release
/PS3_Debug
/PS3_Release
/PSVita_Debug
/PSVita_Release
/X360_Debug
/X360_Release
/Release
/Debug
/x64
/ipch
.vs/
# Minecraft.Client
/Minecraft.Client/x64/
/Minecraft.Client/x64_*
/Minecraft.Client/*Debug
/Minecraft.Client/*Release
/Minecraft.Client/*ContentPackage
/Minecraft.Client/*ContentPackage_NO_TU
/Minecraft.Client/*ContentPackage_SYMBOLS
/Minecraft.Client/*ReleaseForArt
/Minecraft.Client/ORBIS_Debug
/Minecraft.Client/ORBIS_Release
/Minecraft.Client/PS3_Debug
/Minecraft.Client/PS3_Release
/Minecraft.Client/PSVita_Debug
/Minecraft.Client/PSVita_Release
/Minecraft.Client/X360_Debug
/Minecraft.Client/X360_Release
/Minecraft.Client/Debug
/Minecraft.Client/Release
/Minecraft.Client/x64
/Minecraft.Client/Windows64/GameHDD
# Minecraft.world
/Minecraft.World/x64/
/Minecraft.World/x64_*
/Minecraft.World/*Debug
/Minecraft.World/*Release
/Minecraft.World/*ContentPackage
/Minecraft.World/*ContentPackage_NO_TU
/Minecraft.World/*ContentPackage_SYMBOLS
/Minecraft.World/*ReleaseForArt
/Minecraft.World/ORBIS_Debug
/Minecraft.World/ORBIS_Release
/Minecraft.World/PS3_Debug
/Minecraft.World/PS3_Release
/Minecraft.World/PSVita_Debug
/Minecraft.World/PSVita_Release
/Minecraft.World/X360_Debug
/Minecraft.World/X360_Release
/Minecraft.World/Debug
/Minecraft.World/Release
/Minecraft.World/x64_Debug
/Minecraft.World/x64_Release
MinecraftConsoles.opensdf
MinecraftConsoles.v11.suo
MinecraftConsoles.sdf
# PS3 SPU
/Minecraft.Client/PS3/SPU_Tasks/objFiles/
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3*
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3*
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3*
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3*
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3*
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3*
# Misc
*.pkg
*.bat
/*.gp4p
/*.vpk
/*.gp4
*-app
*.sdf
*.opensdf
*.v11.suo
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3_Release
-58
View File
@@ -1,58 +0,0 @@
@echo off
setlocal
:: -------------------------------------------------------
:: Paths
:: -------------------------------------------------------
set TOOLS=C:\Program Files (x86)\SCE\ORBIS\Tools\Publishing Tools\bin
set SRC_GAME=Minecraft.Client\PS4_GAME
set SRC_ELF=ORBIS_Release\Minecraft.Client.elf
set STAGING=CUSA00283-app
set OUT_PKG=CUSA00283-app.pkg
:: -------------------------------------------------------
:: 1. Clean and create staging folder
:: -------------------------------------------------------
echo [1/5] Staging files...
if exist "%STAGING%" rmdir /S /Q "%STAGING%"
xcopy /E /I /Y "%SRC_GAME%" "%STAGING%"
:: -------------------------------------------------------
:: 2. Replace eboot.bin with freshly compiled ELF
:: -------------------------------------------------------
echo [2/5] Injecting eboot.bin...
copy /Y "%SRC_ELF%" "%STAGING%\eboot.bin"
:: -------------------------------------------------------
:: 3. Create placeholder keystone (256 zero bytes)
:: Required by gengp4_app before it will generate the GP4
:: -------------------------------------------------------
echo [3/5] Creating keystone...
powershell -NoProfile -Command ^
copy /Y "keystone" "%STAGING%\sce_sys\keystone'
:: -------------------------------------------------------
:: 4. Generate GP4 project file
:: Backup param.sfo first as gengp4 may modify it
:: -------------------------------------------------------
echo [4/5] Generating GP4...
copy /Y "%STAGING%\sce_sys\param.sfo" "%STAGING%\sce_sys\param.sfo.bak"
"%TOOLS%\gengp4_app.exe" "%STAGING%"
:: -------------------------------------------------------
:: 4b. Fix gengp4 bug: default_id is 1-indexed but scenario id is 0-indexed
:: -------------------------------------------------------
echo [4b/5] Patching GP4 default_id...
powershell -NoProfile -Command ^
"(Get-Content '%STAGING%.gp4') -replace 'default_id=""1""', 'default_id=""0""' | Set-Content '%STAGING%.gp4'"
:: -------------------------------------------------------
:: 5. Build PKG
:: -------------------------------------------------------
echo [5/5] Building PKG...
if exist "%OUT_PKG%" del /Q "%OUT_PKG%"
"%TOOLS%\orbis-pub-cmd.exe" img_create "%STAGING%.gp4" "%OUT_PKG%"
echo.
echo Done! Output: %OUT_PKG%
pause
+6 -16
View File
@@ -1964,7 +1964,6 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
#elif defined __PSVITA__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
int ret = -1;
/*
if(!CGameNetworkManager::usingAdhocMode()) // we don't need to be friends in PSN for adhoc mode
{
int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, false);
@@ -1975,11 +1974,10 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
friendCount = friendList.get()->size();
}
}
}*/
}
#else // __ORBIS__
/*
//sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
std::vector<sce::Toolkit::NP::FriendsList> friendList;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
sce::Toolkit::NP::FriendInfoRequest requestParam;
memset(&requestParam,0,sizeof(requestParam));
@@ -1988,16 +1986,14 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
requestParam.offset = 0;
requestParam.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());
//int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, false);
int ret = 42069;
int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, false);
if( ret == 0 )
{
if( friendList.hasResult())
if( friendList.hasResult() )
{
friendCount = friendList.get()->size();
}
}*/
int ret = 42069;
}
#endif
if( ret == 0 )
{
@@ -2007,18 +2003,12 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
{
#ifdef __PS3__
ret = sceNpBasicGetFriendListEntry( i, &npid );
#elif defined __ORBIS__
//dont touch npid
#else
npid = friendList.get()->at(i).npid;
#endif
if( ret == 0 )
{
#ifndef __ORBIS__
if(strcmp(npid.handle.data, packet->m_playerXuids[packet->m_hostIndex].getOnlineID()) == 0)
#else
if(1==2)
#endif
{
isFriend = true;
break;
@@ -77,21 +77,20 @@ char SoundEngine::m_szRedistName[]={"redist"};
char SoundEngine::m_szSoundPath[]={"PS3/Sound/"};
char SoundEngine::m_szMusicPath[]={"music/"};
char SoundEngine::m_szRedistName[]={"redist"};
#endif
/*#ifdef _CONTENT_PACKAGE // strk1k3r - not needed use default paths instead.
#ifdef _CONTENT_PACKAGE
char SoundEngine::m_szSoundPath[]={"Sound/"};
#elif defined _ART_BUILD
char SoundEngine::m_szSoundPath[]={"Sound/"};
#endif*/
#endif
#ifdef __PS3__
#define USE_SPURS
#ifdef USE_SPURS
#include <cell/spurs.h>
#else
#include <sys/spu_image.h>
#endif
#endif
F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
+2 -2
View File
@@ -127,7 +127,7 @@ CMinecraftApp::CMinecraftApp()
m_bChangingSessionType = false;
m_bReallyChangingSessionType = false;
#ifdef _DEBUG_MENUS_ENABLED
#ifdef _DEBUG
#ifdef _CONTENT_PACKAGE
m_bDebugOptions=false; // make them off by default in a content package build
@@ -2386,7 +2386,7 @@ void CMinecraftApp::ClearGameSettingsChangedFlag(int iPad)
// Remove the debug settings in the content package build
//
////////////////////////////
#ifdef _DEBUG_MENUS_ENABLED
#ifdef _DEBUG
unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options
{
return 0;
@@ -9,9 +9,7 @@ const wstring LeaderboardManager::filterNames[eNumFilterModes] =
L"Friends", L"MyScore", L"TopRank"
};
#if !defined(_DURANGO) && !defined(_WINDOWS64) && !defined(_XBOX) // str1k3r - only needed for sony platforms.
LeaderboardManager *LeaderboardManager::m_instance = NULL;
#endif
void LeaderboardManager::DeleteInstance()
{
@@ -154,7 +154,7 @@ void SonyLeaderboardManager::scoreboardThreadInternal()
// The following NP call should be reserved for asynchronous multiplayer modes that require PS Plus to be accessed.
//
// Note 2:
// The message is not displayed with a user without PlayStationPlus subscription and they are able to access the Leaderboards.
// The message is not displayed with a user without PlayStation®Plus subscription and they are able to access the Leaderboards.
// NotifyAsyncPlusFeature();
@@ -204,10 +204,11 @@ HRESULT SonyLeaderboardManager::fillByIdsQuery(const SceNpId &myNpId, SceNpId* &
case eFM_Friends:
{
// 4J-JEV: Implementation for Orbis & Vita as they a very similar.
#if (defined __PSVITA__)
#if (defined __ORBIS__) || (defined __PSVITA__)
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> s_friendList;
ret = getFriendsList(s_friendList);
if(ret != SCE_TOOLKIT_NP_SUCCESS)
{
// Error handling
@@ -245,11 +246,7 @@ HRESULT SonyLeaderboardManager::fillByIdsQuery(const SceNpId &myNpId, SceNpId* &
npIds[0] = myNpId;
}
#elif (defined __ORBIS__)
// Error handling
if (m_eStatsState != eStatsState_Canceled) m_eStatsState = eStatsState_Failed;
app.DebugPrintf("[SonyLeaderboardManager] 'getFriendslist' fail, 0x%x.\n", ret);
return false;
#elif (defined __PS3__)
// PS3
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

@@ -1,93 +1 @@
param(
[string]$OutDir,
[string]$ProjectDir
)
Write-Host "Durango Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"Durango\StoreImages",
"Common\Media",
"Common\res",
"DLCImages",
"Tutorial",
"Durango",
"music",
"Sound",
"Xbox",
"DLC",
"CU",
)
foreach ($dir in $directories) {
New-Item -ItemType Directory -Path (Join-Path $OutDir $dir) -Force | Out-Null
}
$folderCopies = @(
@{ Source = "Common\Media"; Dest = "Common\Media" },
@{ Source = "Common\res"; Dest = "Common\res" },
@{ Source = "Durango\Sound"; Dest = "Sound" },
@{ Source = "DurangoMedia\DLC"; Dest = "DLC" },
@{ Source = "DurangoMedia\Tutorial"; Dest = "Tutorial" },
@{ Source = "music"; Dest = "music" },
@{ Source = "Durango\DLCImages"; Dest = "DLCImages" },
@{ Source = "Durango\CU"; Dest = "CU" },
)
foreach ($copy in $folderCopies) {
$src = Join-Path $ProjectDir $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
xcopy /q /y /i /s /e /d "$src" "$dst" 2>$null
}
}
$fileCopies = @(
@{ Source = "Durango\DurangoExtras\xcompress.dll"; Dest = "xcompress.dll" },
@{ Source = "Durango\DLCXbox1.cmp"; Dest = "DLCXbox1.cmp" }
)
foreach ($copy in $fileCopies) {
$src = Join-Path $ProjectDir $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
Copy-Item -Path $src -Destination $dst -Force
}
}
$deleteDirs = @(
"Common\Media\Sound",
"Common\Media\Graphics",
"Common\Media\de-DE",
"Common\Media\es-ES",
"Common\Media\fr-FR",
"Common\Media\it-IT",
"Common\Media\ja-JP",
"Common\Media\ko-KR",
"Common\Media\pt-BR",
"Common\Media\pt-PT",
"Common\Media\zh-CHT"
)
foreach ($dir in $deleteDirs) {
$path = Join-Path $OutDir $dir
if (Test-Path $path) {
Remove-Item $path -Recurse -Force -ErrorAction SilentlyContinue
}
}
$delDirs = @(
"Common\Media",
"Common\Media\font"
)
foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) {
$path = Join-Path $OutDir $dir
if (Test-Path $path) {
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.h, *.xui, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaWindows64.arc, MediaOrbis.arc, MediaPS3.arc, MediaPSVita.arc -File |
Remove-Item -Force -ErrorAction SilentlyContinue
}
}
}
// Currently a stub as we dont know what would go here
@@ -6,13 +6,13 @@ param(
Write-Host "Orbis Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"PS4_GAME\music",
"PS4_GAME\Orbis",
"PS4_GAME\Common",
"PS4_GAME\Common\Media",
"PS4_GAME\Common\Tutorial",
"PS4_GAME\Common\res",
"PS4_GAME\Orbis\Sound"
"music",
"Orbis",
"Common",
"Common\Media",
"Common\Tutorial",
"Common\res",
"Sound"
)
foreach ($dir in $directories) {
@@ -27,7 +27,7 @@ $folderCopies = @(
@{ Source = "PS3\Sound"; Dest = "PS4_GAME\Sound" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_module"; Dest = "PS4_GAME\sce_module" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_gls"; Dest = "PS4_GAME\sce_gls" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_sys"; Dest = "PS4_GAME\sce_sys" }
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_sys"; Dest = "PS4_GAME\sce_sys" },
)
foreach ($copy in $folderCopies) {
@@ -41,7 +41,7 @@ foreach ($copy in $folderCopies) {
$fileCopies = @(
@{ Source = "Orbis\PS4ProductCodes.bin"; Dest = "PS4_GAME\Orbis\PS4ProductCodes.bin" },
@{ Source = "Orbis\session_image.jpg"; Dest = "PS4_GAME\Orbis\session_image.jpg" }
@{ Source = "Orbis\session_image.jpg"; Dest = "PS4_GAME\Orbis\session_image.jpg" },
)
foreach ($copy in $fileCopies) {
@@ -6,12 +6,12 @@ param(
Write-Host "PSVita Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"PSVITA_GAME\music",
"PSVITA_GAME\PSVita",
"PSVITA_GAME\Common",
"PSVITA_GAME\Common\Media",
"PSVITA_GAME\Common\res",
"PSVITA_GAME\Sound"
"music",
"PSVita",
"Common",
"Common\Media",
"Common\res",
"Sound"
)
foreach ($dir in $directories) {
@@ -22,17 +22,13 @@ $folderCopies = @(
@{ Source = "music"; Dest = "PSVITA_GAME\music" },
@{ Source = "Common\Media"; Dest = "PSVITA_GAME\Common\Media" },
@{ Source = "Common\res"; Dest = "PSVITA_GAME\Common\res" },
@{ Source = "PSVita\Sound"; Dest = "PSVITA_GAME\PSVita\Sound" },
@{ Source = "$env:SCE_PSP2_SDK_DIR\target\sce_module"; Dest = "PSVITA_GAME\sce_module" },
@{ Source = "PSVita\Sound"; Dest = "PSVITA_GAME\Sound" },
@{ Source = "Common\Postbuilds\Contents\PSVita\sce_module"; Dest = "PSVITA_GAME\sce_module" },
@{ Source = "Common\Postbuilds\Contents\PSVita\sce_sys"; Dest = "PSVITA_GAME\sce_sys" }
)
foreach ($copy in $folderCopies) {
if ([System.IO.Path]::IsPathRooted($copy.Source)) {
$src = $copy.Source
} else {
$src = Join-Path $ProjectDir $copy.Source
}
$src = Join-Path $ProjectDir $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
@@ -43,7 +39,7 @@ foreach ($copy in $folderCopies) {
$fileCopies = @(
@{ Source = "PSVita\PSVitaProductCodes.bin"; Dest = "PSVITA_GAME\PSVita\PSVitaProductCodes.bin" },
@{ Source = "PSVita\session_image.png"; Dest = "PSVITA_GAME\PSVita\session_image.png" },
@{ Source = "Common\Postbuilds\Contents\PSVita\icon.png"; Dest = "PSVITA_GAME\icon.png" }
@{ Source = "Common\Postbuilds\Contents\PSVita\icon.png"; Dest = "PSVITA_GAME\icon.png" },
)
foreach ($copy in $fileCopies) {
@@ -10,6 +10,7 @@
#include "..\..\TexturePack.h"
#include "..\..\DLCTexturePack.h"
#include "..\..\..\Minecraft.World\StringHelpers.h"
#ifndef _XBOX
#include "UI.h"
#endif
@@ -2,6 +2,7 @@
#include "UI.h"
#include "UIComponent_PressStartToPlay.h"
#include "..\..\..\Minecraft.World\StringHelpers.h"
UIComponent_PressStartToPlay::UIComponent_PressStartToPlay(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
{
// Setup all the Iggy references we need for this scene
@@ -23,7 +23,7 @@ UIScene_HelpAndOptionsMenu::UIScene_HelpAndOptionsMenu(int iPad, void *initData,
// We don't have a reinstall content, so remove the button
removeControl( &m_buttons[BUTTON_HAO_REINSTALL], false );
#ifdef _FINAL_BUILD
#ifndef _DEBUG
removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
#else
if(!app.DebugSettingsOn()) removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
@@ -121,7 +121,7 @@ void UIScene_HelpAndOptionsMenu::updateComponents()
void UIScene_HelpAndOptionsMenu::handleReload()
{
#ifdef _FINAL_BUILD
#ifndef _DEBUG
removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
#else
if(!app.DebugSettingsOn()) removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
@@ -61,7 +61,7 @@ UIScene_InGamePlayerOptionsMenu::UIScene_InGamePlayerOptionsMenu(int iPad, void
if(m_editingSelf)
{
#if (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
#ifndef _DEBUG // (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
removeControl( &m_checkboxes[eControl_Op], true );
#else
m_checkboxes[eControl_Op].init(L"DEBUG: Creative",eControl_Op,Player::getPlayerGamePrivilege(m_playerPrivileges,Player::ePlayerGamePrivilege_CreativeMode));
@@ -254,7 +254,7 @@ void UIScene_InGamePlayerOptionsMenu::handleReload()
if(m_editingSelf)
{
#if (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
#ifndef _DEBUG // (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
removeControl( &m_checkboxes[eControl_Op], true );
#endif
@@ -402,7 +402,7 @@ wstring CScene_TutorialPopup::_SetIcon(int icon, int iAuxVal, bool isFoil, LPCWS
}
else if(temp.find(L"{*StoneIcon*}")!=wstring::npos)
{
m_pCraftingPic->SetIcon(m_iPad, Tile::rock_Id,0,1,10,31,false);
m_pCraftingPic->SetIcon(m_iPad, Tile::stone_Id,0,1,10,31,false);
}
else
{
+1 -1
View File
@@ -6,7 +6,7 @@
// 4J - added
void CreeperModel::_init(float g)
{
int yo = 6;
int yo = 4;
head = new ModelPart(this, 0, 0);
head->addBox(-4, - 8, -4, 8, 8, 8, g); // Head
@@ -112,22 +112,22 @@ DurangoStatsDebugger *DurangoStatsDebugger::Initialize()
sp->addArgs(1, Tile::dirt_Id, 0); // works
sp->addArgs(2, Tile::dirt_Id, 0); // works
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 0); // fixed (+ach 'Rainbow Collection')
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 1);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 2);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 3);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 4);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 5);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 6);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 7);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 8);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 9);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 10);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 11);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 12);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 13);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 14);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::cloth_Id, 15);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 0); // fixed (+ach 'Rainbow Collection')
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 1);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 2);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 3);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 4);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 5);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 6);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 7);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 8);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 9);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 10);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 11);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 12);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 13);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 14);
sp->addArgs(DsItemEvent::eAcquisitionMethod_Pickedup, Tile::wool_Id, 15);
out->m_stats.push_back(sp);
@@ -166,20 +166,20 @@ DurangoStatsDebugger *DurangoStatsDebugger::Initialize()
sp = new StatParam(L"BlockBroken.BlockId.*");
sp->addArgs( Tile::dirt_Id );
sp->addArgs( Tile::rock_Id );
sp->addArgs( Tile::stone_Id );
sp->addArgs( Tile::emeraldOre_Id );
out->m_stats.push_back(sp);
sp = new StatParam(L"BlockBroken.BlockId.*.BlockAux.*");
sp->addArgs( Tile::dirt_Id, 0 );
sp->addArgs( Tile::rock_Id, 0 );
sp->addArgs( Tile::stone_Id, 0 );
out->m_stats.push_back(sp);
sp = new StatParam(L"BlockBroken.DifficultyLevelId.*.BlockId.*");
sp->addArgs( 1, Tile::dirt_Id );
sp->addArgs( 2, Tile::dirt_Id );
sp->addArgs( 1, Tile::rock_Id );
sp->addArgs( 2, Tile::rock_Id );
sp->addArgs( 1, Tile::stone_Id );
sp->addArgs( 2, Tile::stone_Id );
out->m_stats.push_back(sp);
sp = new StatParam(L"BlockBroken");
@@ -188,7 +188,7 @@ DurangoStatsDebugger *DurangoStatsDebugger::Initialize()
sp = new StatParam(L"BlockPlaced.BlockId.*");
sp->addArgs( Tile::dirt_Id );
sp->addArgs( Tile::stoneBrick_Id );
sp->addArgs( Tile::cobblestone_Id );
sp->addArgs( Tile::sand_Id ); // works
sp->addArgs( Tile::sign_Id ); // fixed
sp->addArgs( Tile::wallSign_Id ); // fixed
+3 -29
View File
@@ -46,35 +46,9 @@ void HorseRenderer::renderModel(shared_ptr<LivingEntity> mob, float wp, float ws
}
else
{
shared_ptr<EntityHorse> horse = dynamic_pointer_cast<EntityHorse>(mob);
ResourceLocation *location = getTextureLocation(mob);
// Pass 1: Bind only the coat texture (first valid layer) and render opaque
int coatTex = location->getTexture(0);
if( coatTex != -1 )
{
RenderManager.TextureBind(entityRenderDispatcher->textures->loadTexture(coatTex));
}
model->render(mob, wp, ws, bob, headRotMinusBodyRot, headRotx, scale, true);
// Pass 2: If horse has armor, find the armor texture in the layers and render with blending
int armorType = horse->getArmorType();
if( armorType > 0 )
{
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
for( int i = 1; i < location->getTextureCount(); i++ )
{
int texId = location->getTexture(i);
if( texId != -1 )
{
RenderManager.TextureBind(entityRenderDispatcher->textures->loadTexture(texId));
model->render(mob, wp, ws, bob, headRotMinusBodyRot, headRotx, scale, true);
}
}
glDisable(GL_BLEND);
}
EntityRenderer::bindTexture(mob);
model->render(mob, wp, ws, bob, headRotMinusBodyRot, headRotx, scale, true);
// Ensure that any extra layers of texturing are disabled after rendering this horse
RenderManager.TextureBind(-1);
}
}
+1 -1
View File
@@ -491,7 +491,7 @@ void LivingEntityRenderer::renderNameTag(shared_ptr<LivingEntity> mob, const wst
float s = 1 / 60.0f * size;
glPushMatrix();
glTranslatef((float) x, (float) y + mob->bbHeight + 0.5f, (float) z);
glTranslatef((float) x, (float) y + 2.3f, (float) z);
glNormal3f(0, 1, 0);
glRotatef(-this->entityRenderDispatcher->playerRotY, 0, 1, 0);
File diff suppressed because it is too large Load Diff
@@ -2665,15 +2665,9 @@
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\PortalTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\PressurePlateTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\PumpkinTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\RailTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\RecordPlayerTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
@@ -3775,6 +3769,36 @@
<ClInclude Include="PSVita\OldSdk.h">
<Filter>PSVita</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\BaseRailTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\RailTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\PoweredRailTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\DropperTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\HayBlockTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\RotatedPillarTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\BasePressurePlateTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\PressurePlateTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\WeightedPressurePlateTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
<ClInclude Include="PS3\SPU_Tasks\ChunkUpdate\DaylightDetectorTile_SPU.h">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
@@ -5001,9 +5025,6 @@
<ClCompile Include="PS3\SPU_Tasks\ChunkUpdate\LiquidTile_SPU.cpp">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClCompile>
<ClCompile Include="PS3\SPU_Tasks\ChunkUpdate\PressurePlateTile_SPU.cpp">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClCompile>
<ClCompile Include="PS3\SPU_Tasks\ChunkUpdate\StairTile_SPU.cpp">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClCompile>
@@ -5919,6 +5940,9 @@
<ClCompile Include="PSVita\OldSdk.cpp">
<Filter>PSVita</Filter>
</ClCompile>
<ClCompile Include="PS3\SPU_Tasks\ChunkUpdate\BasePressurePlateTile_SPU.cpp">
<Filter>PS3\ChunkRebuild_SPU</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Library Include="Xbox\4JLibs\libs\4J_Render_d.lib">
+1 -1
View File
@@ -1858,7 +1858,7 @@ void Minecraft::run_middle()
achievementPopup->render();
PIXBeginNamedEvent(0,"Sleeping");
//Sleep(0); // 4J - was Thread.yield()
Sleep(0); // 4J - was Thread.yield()
PIXEndNamedEvent();
// if (Keyboard::isKeyDown(Keyboard::KEY_F7)) Display.update(); // 4J - removed condition
+1 -1
View File
@@ -116,7 +116,7 @@ void Options::init()
bobView = true;
anaglyph3d = false;
advancedOpengl = false;
framerateLimit = 0;
framerateLimit = 2;
fancyGraphics = true;
ambientOcclusion = true;
renderClouds = true;
File diff suppressed because it is too large Load Diff
@@ -1,32 +1,109 @@
#pragma once
#include "Common\Leaderboards\SonyLeaderboardManager.h"
#include "Common\Leaderboards\LeaderboardManager.h"
#include <np.h>
class OrbisLeaderboardManager : public SonyLeaderboardManager
class OrbisLeaderboardManager : public LeaderboardManager
{
protected:
enum EStatsState
{
eStatsState_Idle,
eStatsState_Getting,
eStatsState_Failed,
eStatsState_Ready,
eStatsState_Canceled,
//eStatsState_Writing,
eStatsState_Max
};
public:
OrbisLeaderboardManager();
virtual ~OrbisLeaderboardManager();
protected:
private:
unsigned short m_openSessions;
virtual HRESULT initialiseScoreUtility();
C4JThread *m_threadScoreboard;
bool m_running;
virtual bool scoreUtilityAlreadyInitialised(HRESULT hr);
int m_titleContext;
int32_t m_requestId;
virtual HRESULT createTitleContext(const SceNpId &npId);
//SceNpId m_myNpId;
virtual HRESULT destroyTitleContext(int titleContext);
static int scoreboardThreadEntry(LPVOID lpParam);
void scoreboardThreadInternal();
virtual HRESULT createTransactionContext(int titleContext);
bool getScoreByIds();
bool getScoreByRange();
virtual HRESULT abortTransactionContext(int transactionContext);
bool setScore();
queue<RegisterScore> m_views;
virtual HRESULT destroyTransactionContext(int transactionContext);
CRITICAL_SECTION m_csViewsLock;
virtual HRESULT getFriendsList(sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> &friendsList);
EStatsState m_eStatsState; //State of the stats read
// EFilterMode m_eFilterMode;
virtual char * getComment(SceNpScoreComment *comment);
ReadScore *m_scores;
unsigned int m_maxRank;
//SceNpScoreRankData *m_stats;
public:
virtual void Tick();// {}
//Open a session
virtual bool OpenSession();// { return true; }
//Close a session
virtual void CloseSession();// {}
//Delete a session
virtual void DeleteSession();// {}
//Write the given stats
//This is called synchronously and will not free any memory allocated for views when it is done
virtual bool WriteStats(unsigned int viewCount, ViewIn views);// { return false; }
virtual bool ReadStats_Friends(LeaderboardReadListener *callback, int difficulty, EStatsType type, PlayerUID myUID, unsigned int startIndex, unsigned int readCount);// { return false; }
virtual bool ReadStats_MyScore(LeaderboardReadListener *callback, int difficulty, EStatsType type, PlayerUID myUID, unsigned int readCount);// { return false; }
virtual bool ReadStats_TopRank(LeaderboardReadListener *callback, int difficulty, EStatsType type, unsigned int startIndex, unsigned int readCount);// { return false; }
//Perform a flush of the stats
virtual void FlushStats();// {}
//Cancel the current operation
virtual void CancelOperation();// {}
//Is the leaderboard manager idle.
virtual bool isIdle();// { return true; }
private:
int getBoardId(int difficulty, EStatsType);
//LeaderboardManager::ReadScore *filterJustScorers(unsigned int &num, LeaderboardManager::ReadScore *friendsData);
SceNpScorePlayerRankData *addPadding(unsigned int num, SceNpScoreRankData *rankData);
void convertToOutput(unsigned int &num, ReadScore *out, SceNpScorePlayerRankData *rankData, SceNpScoreComment *comm);
void toBinary(void *out, SceNpScoreComment *in);
void fromBinary(SceNpScoreComment **out, void *in);
void toBase32(SceNpScoreComment *out, void *in);
void fromBase32(void *out, SceNpScoreComment *in);
void toSymbols(char *);
void fromSymbols(char *);
bool test_string(string);
void initReadScoreStruct(ReadScore &out, SceNpScoreRankData &);
void fillReadScoreStruct(ReadScore &out, SceNpScoreComment &comment);
static bool SortByRank(const ReadScore &lhs, const ReadScore &rhs);
//void NotifyAsyncPlusFeature();
};
@@ -12,13 +12,9 @@
// Singleton
OrbisNPToolkit NPToolkit;
#ifndef __ORBIS__ // sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70
sce::Toolkit::NP::Utilities::Future< sce::Toolkit::NP::NpSessionInformation > OrbisNPToolkit::sm_createJoinFuture;
#endif
sce::Toolkit::NP::NpSessionInformation OrbisNPToolkit::m_currentSessionInfo;
#ifndef __ORBIS__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::MessageAttachment> OrbisNPToolkit::m_messageData;
#endif
void OrbisNPToolkit::presenceCallback( const sce::Toolkit::NP::Event& event )
@@ -134,53 +130,29 @@ void OrbisNPToolkit::sessionsCallback( const sce::Toolkit::NP::Event& event)
{
case sce::Toolkit::NP::Event::npSessionCreateResult: ///< An event generated when the %Np session creation process has been completed.
app.DebugPrintf("npSessionCreateResult");
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// no way to retrieve the NpSessionInformation payload; m_currentSessionInfo stays zeroed.
if(event.returnCode >= 0)
{
app.DebugPrintf("Session Created Successfully\n");
}
else
{
app.DebugPrintf("Session Creation Failed 0x%x\n",event.returnCode);
}
#else
if(sm_createJoinFuture.hasResult())
if(sm_createJoinFuture.hasResult())
{
app.DebugPrintf("Session Created Successfully\n");
m_currentSessionInfo = *sm_createJoinFuture.get();
}
else
}
else
{
app.DebugPrintf("Session Creation Failed 0x%x\n",sm_createJoinFuture.getError());
}
sm_createJoinFuture.reset();
#endif
break;
case sce::Toolkit::NP::Event::npSessionJoinResult: ///< An event generated when the join %Np session process has been completed.
app.DebugPrintf("npSessionJoinResult");
#ifdef __ORBIS__
if(event.returnCode >= 0)
{
app.DebugPrintf("Session joined successfully\n");
}
else
{
app.DebugPrintf("Session join Failed 0x%x\n",event.returnCode);
}
#else
if(sm_createJoinFuture.hasResult())
if(sm_createJoinFuture.hasResult())
{
app.DebugPrintf("Session joined successfully\n");
m_currentSessionInfo = *sm_createJoinFuture.get();
}
else
}
else
{
app.DebugPrintf("Session join Failed 0x%x\n",sm_createJoinFuture.getError());
}
sm_createJoinFuture.reset();
#endif
break;
case sce::Toolkit::NP::Event::npSessionError: ///< An event generated when there was error performing the current %Np session process.
app.DebugPrintf("npSessionError");
@@ -235,12 +207,6 @@ void OrbisNPToolkit::gameCustomDataCallback( const sce::Toolkit::NP::Event& even
break;
case sce::Toolkit::NP::Event::gameCustomDataGameDataResult:
app.DebugPrintf("gameCustomDataGameDataResult");
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// the MessageAttachment payload can't be retrieved, so invite data is unavailable.
app.DebugPrintf("gameCustomDataGameDataResult stubbed (no Future in SDK 1.70), returnCode 0x%08x\n", event.returnCode);
ORBIS_STUBBED;
#else
if(m_messageData.hasResult())
{
SQRNetworkManager_Orbis::GetInviteDataAndProcess(m_messageData.get());
@@ -263,7 +229,6 @@ void OrbisNPToolkit::gameCustomDataCallback( const sce::Toolkit::NP::Event& even
break;
}
}
#endif
break;
case sce::Toolkit::NP::Event::gameCustomDataMessageResult:
app.DebugPrintf("gameCustomDataMessageResult");
@@ -385,20 +350,6 @@ void OrbisNPToolkit::init()
}
// Get network status and inform library
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// query the net state directly instead of going through NetInfo::getNetInfo
int32_t netState = SCE_NET_CTL_STATE_DISCONNECTED;
if (sceNetCtlGetState(&netState) == SCE_OK)
{
ProfileManager.SetNetworkStatus(netState == SCE_NET_CTL_STATE_IPOBTAINED);
}
else
{
// Error means we're disconnected
ProfileManager.SetNetworkStatus(false);
}
#else
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::NetStateBasic> netStateFuture = sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::NetStateBasic>();
sce::Toolkit::NP::NetInfo::Interface::getNetInfo(&netStateFuture);
@@ -418,7 +369,6 @@ void OrbisNPToolkit::init()
// Error message means we're disconnected
ProfileManager.SetNetworkStatus(false);
}
#endif
// // Register Client ID for Auth
// ret = sce::Toolkit::NP::Interface::registerClientId(CLIENT_ID_FOR_SAMPLE);
@@ -459,13 +409,7 @@ void OrbisNPToolkit::createNPSession()
char test[3] = {'R','K','B'};
createSessionRequest.sessionData= test;
createSessionRequest.sessionDataSize = 3;
#ifdef __ORBIS__
// Sessions::Interface::create requires a Future out-param that SDK 1.70 doesn't implement
app.DebugPrintf("createNPSession stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
#else
ret = sce::Toolkit::NP::Sessions::Interface::create(&createSessionRequest,&sm_createJoinFuture);
#endif
}
@@ -503,18 +447,12 @@ void OrbisNPToolkit::getMessageData(SceNpGameCustomDataEventParam* paramData)
req.itemId = paramData->itemId;
req.userInfo.userId = userId;
#ifdef __ORBIS__
// GameCustomData::Interface::getGameData requires a Future out-param that SDK 1.70 doesn't implement
app.DebugPrintf("getMessageData stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
#else
ret = sce::Toolkit::NP::GameCustomData::Interface::getGameData(&req, &m_messageData);
if( ret < 0 ) {
//Error handling
} else {
//Error handling
}
#endif
//
@@ -809,9 +809,7 @@ int SQRNetworkManager_Orbis::BasicEventThreadProc( void *lpParameter )
int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
{
SQRNetworkManager_Orbis *manager = (SQRNetworkManager_Orbis *)lpParameter;
#ifndef __ORBIS__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
#endif
int ret = 0;
manager->m_aFriendSearchResults.clear();
@@ -830,13 +828,13 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
requestParam.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());
bool async = false;
#ifndef __ORBIS__
ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, async);
if(ret != SCE_OK)
{
app.DebugPrintf("getFriendslist failed! 0x%08x\n", ret);
return 0;
}
if (friendList.hasResult())
{
sce::Toolkit::NP::FriendsList::const_iterator iter ;
@@ -853,11 +851,12 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
sce::Toolkit::NP::PresenceRequest presenceRequest;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::PresenceInfo> presenceInfo;
int presenceInfo;
memset(&presenceRequest,0,sizeof(presenceRequest));
strncpy(presenceRequest.onlineId.data,iter->npid.handle.data, strlen(iter->npid.handle.data));
presenceRequest.presenceType = SCE_TOOLKIT_NP_PRESENCE_TYPE_INCONTEXT_INFO;
presenceRequest.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());;
ret = sce::Toolkit::NP::Presence::Interface::getPresence(&presenceRequest,&presenceInfo,false);
if( ret < 0 )
{
@@ -904,10 +903,6 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
app.DebugPrintf("Check sign-in status\n");
}
#else
app.DebugPrintf( "Friend list is disabled on this build -UbEr\n");
#endif
return 0;
}
@@ -44,11 +44,9 @@ bool SonyCommerce_Orbis::m_bLicenseChecked=false; // Check the trial/
#ifndef __ORBIS__ // sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70
sce::Toolkit::NP::Utilities::Future<std::vector<sce::Toolkit::NP::ProductInfo> > g_productList;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::CategoryInfo> g_categoryInfo;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::ProductInfoDetailed> g_detailedProductInfo;
#endif
SonyCommerce_Orbis::ProductInfoDetailed s_trialUpgradeProductInfoDetailed;
@@ -182,15 +180,8 @@ int SonyCommerce_Orbis::getProductList(std::vector<ProductInfo>* productList, ch
params.serviceLabel = 0;
app.DebugPrintf("Getting Product List ...\n");
#ifdef __ORBIS__
// Commerce::Interface::getProductList requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getProductList stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getProductList(&g_productList, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::getProductList() error. ret = 0x%x\n", ret);
return ret;
@@ -201,8 +192,7 @@ int SonyCommerce_Orbis::getProductList(std::vector<ProductInfo>* productList, ch
// result has returned immediately (don't think this should happen, but was handled in the samples
copyProductList(productList, g_productList.get());
m_event = e_event_commerceGotProductList;
}
#endif
}
return ret;
}
@@ -251,27 +241,19 @@ int SonyCommerce_Orbis::getCategoryInfo(CategoryInfo *pInfo, char *categoryId)
app.DebugPrintf("Getting Category Information...\n");
#ifdef __ORBIS__
// Commerce::Interface::getCategoryInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getCategoryInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getCategoryInfo(&g_categoryInfo, params, true);
if (ret < 0)
if (ret < 0)
{
// error
app.DebugPrintf("Commerce::Interface::getCategoryInfo error: 0x%x\n", ret);
return ret;
}
else if (g_categoryInfo.hasResult())
else if (g_categoryInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyCategoryInfo(pInfo, g_categoryInfo.get());
m_event = e_event_commerceGotCategoryInfo;
}
#endif
return ret;
}
@@ -307,28 +289,20 @@ int SonyCommerce_Orbis::getDetailedProductInfo(ProductInfoDetailed *pInfo, const
strcpy(params.productId, productId);
app.DebugPrintf("Getting Detailed Product Information ... \n");
#ifdef __ORBIS__
// Commerce::Interface::getDetailedProductInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
app.DebugPrintf("Getting Detailed Product Information ... \n");
ret = sce::Toolkit::NP::Commerce::Interface::getDetailedProductInfo(&g_detailedProductInfo, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::getDetailedProductInfo() error. ret = 0x%x\n", ret);
return ret;
}
if (g_detailedProductInfo.hasResult())
if (g_detailedProductInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyDetailedProductInfo(pInfo, g_detailedProductInfo.get());
m_event = e_event_commerceGotDetailedProductInfo;
}
#endif
return ret;
}
@@ -365,27 +339,19 @@ int SonyCommerce_Orbis::addDetailedProductInfo(ProductInfo *pInfo, const char *p
strcpy(params.productId, productId);
app.DebugPrintf("Getting Detailed Product Information ... \n");
#ifdef __ORBIS__
// Commerce::Interface::getDetailedProductInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("addDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
app.DebugPrintf("Getting Detailed Product Information ... \n");
ret = sce::Toolkit::NP::Commerce::Interface::getDetailedProductInfo(&g_detailedProductInfo, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::addDetailedProductInfo() error. ret = 0x%x\n", ret);
}
if (g_detailedProductInfo.hasResult())
if (g_detailedProductInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyAddDetailedProductInfo(pInfo, g_detailedProductInfo.get());
m_event = e_event_commerceAddedDetailedProductInfo;
}
#endif
return ret;
}
@@ -634,7 +600,7 @@ int SonyCommerce_Orbis::createSession()
//
// sce::Toolkit::NP::Commerce::Interface::CreateSession
//
// This function is provided to maintain compatibility with the PlayStationVita and PlayStation3 platforms. Because commerce on the PlayStation4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
// This function is provided to maintain compatibility with the PlayStation®Vita and PlayStation®3 platforms. Because commerce on the PlayStation®4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
int ret = sce::Toolkit::NP::Commerce::Interface::createSession();
@@ -690,12 +656,7 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
}
case sce::Toolkit::NP::Event::UserEvent::commerceGotCategoryInfo:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotCategoryInfo stubbed (no Future in SDK 1.70)\n");
#else
copyCategoryInfo(m_pCategoryInfo, g_categoryInfo.get());
#endif
m_pCategoryInfo = NULL;
m_event = e_event_commerceGotCategoryInfo;
break;
@@ -703,12 +664,7 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
case sce::Toolkit::NP::Event::UserEvent::commerceGotProductList:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotProductList stubbed (no Future in SDK 1.70)\n");
#else
copyProductList(m_pProductInfoList, g_productList.get());
#endif
m_pProductInfoDetailed = NULL;
m_event = e_event_commerceGotProductList;
break;
@@ -716,12 +672,6 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
case sce::Toolkit::NP::Event::UserEvent::commerceGotDetailedProductInfo:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
m_pProductInfoDetailed = NULL;
m_pProductInfo = NULL;
#else
if(m_pProductInfoDetailed)
{
copyDetailedProductInfo(m_pProductInfoDetailed, g_detailedProductInfo.get());
@@ -732,7 +682,6 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
copyAddDetailedProductInfo(m_pProductInfo, g_detailedProductInfo.get());
m_pProductInfo = NULL;
}
#endif
m_event = e_event_commerceGotDetailedProductInfo;
break;
}
@@ -1196,8 +1145,8 @@ void SonyCommerce_Orbis::CreateSession( CallbackFunc cb, LPVOID lpParam )
setCallback(cb,lpParam);
// We don't need to create a session on PS4, from the Sony docs -
// This function is provided to maintain compatibility with the PlayStationVita and PlayStation3
// platforms. Because commerce on the PlayStation4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
// This function is provided to maintain compatibility with the PlayStation®Vita and PlayStation®3
// platforms. Because commerce on the PlayStation®4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
@@ -35,23 +35,14 @@ int g_loadedPCMVoiceDataSizes[4];
int g_loadedPCMVoiceDataPos[4];
char* g_loadedPCMVoiceData[4];
static bool CreatePort(uint32_t *portId, const SceVoicePortParam *pArg)
{
C4JThread::PushAffinityAllCores();
*portId = SCE_VOICE_INVALID_PORT_ID;
int err = sceVoiceCreatePort(portId, pArg);
//assert(err == SCE_OK);
//assert(*portId != VOICE_INVALID_PORT_ID);
C4JThread::PopAffinity();
if (err != SCE_OK || *portId == SCE_VOICE_INVALID_PORT_ID)
{
return false;
}
return true;
static void CreatePort(uint32_t *portId, const SceVoicePortParam *pArg)
{
C4JThread::PushAffinityAllCores(); // PS4 only
int err = sceVoiceCreatePort( portId, pArg );
assert(err == SCE_OK);
assert(*portId != SCE_VOICE_INVALID_PORT_ID);
C4JThread::PopAffinity(); // PS4 only
}
static void DeletePort(uint32_t& port)
@@ -131,12 +122,7 @@ void SonyVoiceChat_Orbis::init()
portArgs.volume = 1.0f;
portArgs.voice.bitrate = VOICE_ENCODED_FORMAT;
#endif
//CreatePort( &m_voiceOutPort, &portArgs );
if (!CreatePort(&m_voiceOutPort, &portArgs))
{
return;
}
CreatePort( &m_voiceOutPort, &portArgs );
start();
m_bInitialised = true;
@@ -8,6 +8,7 @@
static const int sc_maxVoiceDataSize = 2048;
class VoicePacket
{
static const int MAX_LOCAL_PLAYER_COUNT = 4;
@@ -85,10 +86,10 @@ public:
SceUserServiceUserId m_localUserID;
public:
SQRLocalVoiceDevice()
: m_localUserID(SCE_USER_SERVICE_USER_ID_INVALID)
, m_headsetPort(SCE_VOICE_INVALID_PORT_ID)
SQRLocalVoiceDevice()
: m_headsetPort(SCE_VOICE_INVALID_PORT_ID)
, m_microphonePort(SCE_VOICE_INVALID_PORT_ID)
, m_localUserID(SCE_USER_SERVICE_USER_ID_INVALID)
{
for(int i=0;i<4;i++)
m_localConnections[i] = 0;
@@ -1675,69 +1675,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_DESC_SKULL">
<value>Mob Heads can be placed as a decoration, or worn as a mask in the helmet slot.</value>
</data>
</data>
<data name="IDS_DESC_COMMAND_BLOCK">
<value>Used to execute commands.</value>
</data>
<data name="IDS_DESC_BEACON">
<value>Projects a beam of light into the sky and can provide Status Effects to nearby players.</value>
</data>
<data name="IDS_DESC_CHEST_TRAP">
<value>Stores blocks and items inside. Place two chest side by side to create a larger chest with double capacity. The trapped chest also creates a Redstone charge when opened.</value>
</data>
<data name="IDS_DESC_WEIGHTED_PLATE_LIGHT">
<value>Provides a Redstone charge. The charge will be stronger if more items are on the plate.</value>
</data>
<data name="IDS_DESC_WEIGHTED_PLATE_HEAVY">
<value>Provides a Redstone charge. The charge will be stronger if more items are on the plate. Requires more weight than the light plate.</value>
</data>
<data name="IDS_DESC_REDSTONE_BLOCK">
<value>Used as a redstone power source. Can be crafted back into Redstone.</value>
</data>
<data name="IDS_DESC_HOPPER">
<value>Used to catch items or to transfer items into and out of containers.</value>
</data>
<data name="IDS_DESC_ACTIVATOR_RAIL">
<value>A type of rail that can enable or disable Minecarts with Hoppers and trigger Minecarts with TNT.</value>
</data>
<data name="IDS_DESC_DROPPER">
<value>Used to hold and drop items, or push items into another container, when given a Redstone charge.</value>
</data>
<data name="IDS_DESC_STAINED_CLAY">
<value>Colorful blocks crafted by dyeing Hardened clay.</value>
</data>
<data name="IDS_DESC_HAY">
<value>Can be fed to Horses, Donkeys or Mules to heal up to 10 Hearts. Speeds up the growth of foals.</value>
</data>
<data name="IDS_DESC_HARDENED_CLAY">
<value>Created by smelting Clay in a furnace.</value>
</data>
<data name="IDS_DESC_STAINED_GLASS">
<value>Crafted from glass and a dye.</value>
</data>
<data name="IDS_DESC_STAINED_GLASS_PANE">
<value>Crafted from Stained Glass</value>
</data>
<data name="IDS_DESC_COAL_BLOCK">
<value>A compact way of storing Coal. Can be used as fuel in a Furnace.</value>
</data>
<data name="IDS_SQUID">
<data name="IDS_SQUID">
<value>Squid</value>
</data>
@@ -2955,13 +2895,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_TILE_JUNGLE_PLANKS">
<value>Jungle Wood Planks</value>
</data>
</data>
<data name="IDS_TILE_PLANKS">
<value>Wood Planks (any type)</value>
</data>
<data name="IDS_TILE_SAPLING">
<data name="IDS_TILE_SAPLING">
<value>Sapling</value>
</data>
@@ -5752,41 +5688,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_TOOLTIPS_CLEARSLOTS">
<value>Clear All Slots</value>
</data>
</data>
<data name="IDS_TOOLTIPS_MOUNT">
<value>Mount</value>
</data>
<data name="IDS_TOOLTIPS_DISMOUNT">
<value>Dismount</value>
</data>
<data name="IDS_TOOLTIPS_SADDLEBAGS">
<value>Attach Chest</value>
</data>
<data name="IDS_TOOLTIPS_FIREWORK_LAUNCH">
<value>Launch</value>
</data>
<data name="IDS_TOOLTIPS_LEASH">
<value>Leash</value>
</data>
<data name="IDS_TOOLTIPS_UNLEASH">
<value>Release</value>
</data>
<data name="IDS_TOOLTIPS_ATTACH">
<value>Attach</value>
</data>
<data name="IDS_TOOLTIPS_NAME">
<value>Name</value>
</data>
<data name="IDS_CONFIRM_OK">
<data name="IDS_CONFIRM_OK">
<value>OK</value>
</data>
@@ -5796,13 +5700,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_DOWNLOADABLECONTENT">
<value>Minecraft Store</value>
</data>
</data>
<data name="IDS_CONFIRM_LEAVE_VIA_INVITE">
<value>Are you sure you want to leave your current game and join the new one? Any unsaved progress will be lost.</value>
</data>
<data name="IDS_EXIT_GAME">
<data name="IDS_EXIT_GAME">
<value>Exit Game</value>
</data>
@@ -5832,17 +5732,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_CORRUPT_OR_DAMAGED_SAVE_TEXT">
<value>This save is corrupt or damaged. Would you like to delete it?</value>
</data>
</data>
<data name="IDS_CORRUPT_OPTIONS_RETRY">
<value>Str1k3r: Placeholder</value>
</data>
<data name="IDS_CORRUPT_OPTIONS_DELETE">
<value>Str1k3r: Placeholder</value>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_CONFIRM_DISCONNECT_SAVE">
<data name="IDS_CONFIRM_EXIT_GAME_CONFIRM_DISCONNECT_SAVE">
<value>Are you sure you want to exit to the main menu and disconnect all players from the game? Any unsaved progress will be lost.</value>
</data>
@@ -5852,13 +5744,9 @@ Can also be used for low-level lighting.</value>
<data name="IDS_EXIT_GAME_NO_SAVE">
<value>Exit without saving</value>
</data>
</data>
<data name="IDS_CONFIRM_EXIT_GAME">
<value>Are you sure you want to exit to the main menu? Any unsaved progress will be lost.</value>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_PROGRESS_LOST">
<data name="IDS_CONFIRM_EXIT_GAME_PROGRESS_LOST">
<value>Are you sure you want to exit to the main menu? Your progress will be lost!</value>
</data>
@@ -6615,13 +6503,9 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_GAMEMODE_CREATIVE">
<value>Game Mode: Creative</value>
</data>
</data>
<data name="IDS_GAMEMODE_ADVENTURE">
<value>Game Mode: Adventure</value>
</data>
<data name="IDS_SURVIVAL">
<data name="IDS_SURVIVAL">
<value>Survival</value>
</data>
@@ -6633,10 +6517,6 @@ Would you like to install the mash-up pack or texture pack now?</value>
<value>Adventure</value>
</data>
<data name="IDS_ADVENTURE">
<value>Adventure</value>
</data>
<data name="IDS_CREATED_IN_SURVIVAL">
<value>Created in Survival Mode</value>
</data>
@@ -6675,13 +6555,9 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_LEVELTYPE_SUPERFLAT">
<value>Superflat</value>
</data>
</data>
<data name="IDS_GAMEOPTION_SEED">
<value>Enter a seed to generate the same terrain again. Leave blank for a random world.</value>
</data>
<data name="IDS_GAMEOPTION_ONLINE">
<data name="IDS_GAMEOPTION_ONLINE">
<value>When enabled, the game will be an online game.</value>
</data>
@@ -6699,29 +6575,13 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_GAMEOPTION_TRUST">
<value>When disabled, players joining the game cannot build or mine until authorised.</value>
</data>
</data>
<data name="IDS_INCREASE_WORLD_SIZE">
<value>Increase World Size</value>
</data>
<data name="IDS_INCREASE_WORLD_SIZE_OVERWRITE_EDGES">
<value>Overwrite World Edges</value>
</data>
<data name="IDS_GAMEOPTION_FIRE_SPREADS">
<data name="IDS_GAMEOPTION_FIRE_SPREADS">
<value>When enabled, fire may spread to nearby flammable blocks.</value>
</data>
</data>
<data name="IDS_GAMEOPTION_INCREASE_WORLD_SIZE">
<value>Select a larger world size to increase the amount of the world that you can explore. Larger worlds cannot be made smaller again.</value>
</data>
<data name="IDS_GAMEOPTION_INCREASE_WORLD_SIZE_OVERWRITE_EDGES">
<value>When enabled, the outer 32 tiles around the world edge will be overwritten by newly generated tiles to make the world size increase seamless. When disabled, the world size increase will leave all original tiles intact.</value>
</data>
<data name="IDS_GAMEOPTION_TNT_EXPLODES">
<data name="IDS_GAMEOPTION_TNT_EXPLODES">
<value>When enabled, TNT will explode when activated.</value>
</data>
@@ -7250,13 +7110,9 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_MAX_CHICKENS_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding Chickens has been reached.</value>
</data>
</data>
<data name="IDS_MAX_HORSES_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding horses has been reached.</value>
</data>
<data name="IDS_MAX_MUSHROOMCOWS_BRED">
<data name="IDS_MAX_MUSHROOMCOWS_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding Mooshrooms has been reached.</value>
</data>
@@ -7306,11 +7162,7 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_CREDITS">
<value>Credits</value>
</data>
<data name="IDS_LANGUAGE_SELECTOR">
<value>Languages</value>
</data>
</data>
<data name="IDS_REINSTALL_CONTENT">
<value>Reinstall Content</value>
@@ -7714,25 +7566,9 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_POTION_POISON">
<value>Poison</value>
</data>
</data>
<data name="IDS_POTION_WITHER">
<value>Wither</value>
</data>
<data name="IDS_POTION_HEALTHBOOST">
<value>Health Boost</value>
</data>
<data name="IDS_POTION_ABSORPTION">
<value>Absorption</value>
</data>
<data name="IDS_POTION_SATURATION">
<value>Saturation</value>
</data>
<data name="IDS_POTION_MOVESPEED_POSTFIX">
<data name="IDS_POTION_MOVESPEED_POSTFIX">
<value>of Swiftness</value>
</data>
@@ -7806,25 +7642,9 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_POTION_POISON_POSTFIX">
<value>of Poison</value>
</data>
</data>
<data name="IDS_POTION_WITHER_POSTFIX">
<value>of Decay</value>
</data>
<data name="IDS_POTION_HEALTHBOOST_POSTFIX">
<value>of Health Boost</value>
</data>
<data name="IDS_POTION_ABSORPTION_POSTFIX">
<value>of Absorption</value>
</data>
<data name="IDS_POTION_SATURATION_POSTFIX">
<value>of Saturation</value>
</data>
<data name="IDS_POTION_POTENCY_0">
<data name="IDS_POTION_POTENCY_0">
<value/>
</data>
@@ -8017,10 +7837,6 @@ Would you like to install the mash-up pack or texture pack now?</value>
<value>Reduces health of the affected players, animals and monsters over time.</value>
</data>
<data name="IDS_POTION_EFFECTS_WHENDRANK">
<value>When Applied:</value>
</data>
<data name="IDS_ATTRIBUTE_NAME_HORSE_JUMPSTRENGTH">
<value>Horse Jump Strength</value>
</data>
@@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="IDS_LANG_SYSTEM">
<value>System Language</value>
</data>
<data name="IDS_LANG_ENGLISH">
<value>English</value>
</data>
<data name="IDS_LANG_GERMAN">
<value>German</value>
</data>
<data name="IDS_LANG_SPANISH">
<value>Spanish</value>
</data>
<data name="IDS_LANG_SPANISH_SPAIN">
<value>Spanish (Spain)</value>
</data>
<data name="IDS_LANG_SPANISH_LATIN_AMERICA">
<value>Spanish (Latin America)</value>
</data>
<data name="IDS_LANG_FRENCH">
<value>French</value>
</data>
<data name="IDS_LANG_ITALIAN">
<value>Italian</value>
</data>
<data name="IDS_LANG_PORTUGUESE">
<value>Portuguese</value>
</data>
<data name="IDS_LANG_PORTUGUESE_PORTUGAL">
<value>Portuguese (Portugal)</value>
</data>
<data name="IDS_LANG_PORTUGUESE_BRAZIL">
<value>Portuguese (Brazil)</value>
</data>
<data name="IDS_LANG_JAPANESE">
<value>Japanese</value>
</data>
<data name="IDS_LANG_KOREAN">
<value>Korean</value>
</data>
<data name="IDS_LANG_CHINESE_TRADITIONAL">
<value>Chinese (Traditional)</value>
</data>
<data name="IDS_LANG_CHINESE_SIMPLIFIED">
<value>Chinese (Simplified)</value>
</data>
<data name="IDS_LANG_DANISH">
<value>Danish</value>
</data>
<data name="IDS_LANG_FINISH">
<value>Finnish</value>
</data>
<data name="IDS_LANG_DUTCH">
<value>Dutch</value>
</data>
<data name="IDS_LANG_POLISH">
<value>Polish</value>
</data>
<data name="IDS_LANG_RUSSIAN">
<value>Russian</value>
</data>
<data name="IDS_LANG_SWEDISH">
<value>Swedish</value>
</data>
<data name="IDS_LANG_NORWEGIAN">
<value>Norwegian</value>
</data>
<data name="IDS_LANG_GREEK">
<value>Greek</value>
</data>
<data name="IDS_LANG_TURKISH">
<value>Turkish</value>
</data>
</root>
@@ -270,10 +270,6 @@ If you try to save while using the trial version, you will be given the option t
<value>Download Failed. Please try again later.</value>
</data>
<data name="IDS_SAVE_TRANSFER_WRONG_VERSION">
<value>The saved file in the download area has a version number that Minecraft: PlayStation®4 Edition does not yet support.</value>
</data>
<data name="IDS_DISCONNECTED_NAT_TYPE_MISMATCH">
<value>Failed to join the game due to a restrictive NAT type. Please check your network settings.</value>
</data>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,33 +1,110 @@
#pragma once
#include "Common\Leaderboards\SonyLeaderboardManager.h"
#include "Common\Leaderboards\LeaderboardManager.h"
#include "..\..\Common\Leaderboards\LeaderboardManager.h"
#include "..\..\..\Minecraft.World\x64headers\extraX64.h"
#include "PS3\Passphrase\ps3__np_conf.h"
class PS3LeaderboardManager : public SonyLeaderboardManager
using namespace std;
class PS3LeaderboardManager : public LeaderboardManager
{
protected:
enum EStatsState
{
eStatsState_Idle,
eStatsState_Getting,
eStatsState_Failed,
eStatsState_Ready,
eStatsState_Canceled,
//eStatsState_Writing,
eStatsState_Max
};
public:
PS3LeaderboardManager();
virtual ~PS3LeaderboardManager();
protected:
private:
unsigned short m_openSessions;
virtual HRESULT initialiseScoreUtility();
C4JThread *m_threadScoreboard;
bool m_running;
virtual bool scoreUtilityAlreadyInitialised(HRESULT hr);
int32_t m_titleContext;
int m_transactionCtx;
virtual HRESULT createTitleContext(const SceNpId &npId);
//SceNpId m_myNpId;
virtual HRESULT destroyTitleContext(int titleContext);
static int scoreboardThreadEntry(LPVOID lpParam);
void scoreboardThreadInternal();
virtual HRESULT createTransactionContext(int titleContext);
bool getScoreByIds();
bool getScoreByRange();
virtual HRESULT abortTransactionContext(int transactionContext);
bool setScore();
queue<RegisterScore> m_views;
virtual HRESULT destroyTransactionContext(int transactionContext);
CRITICAL_SECTION m_csViewsLock;
virtual HRESULT getFriendsList(const SceNpId &myNpId, SceNpId* &npIds, uint32_t &len);
EStatsState m_eStatsState; //State of the stats read
// EFilterMode m_eFilterMode;
virtual char * getComment(SceNpScoreComment *comment);
ReadScore *m_scores;
unsigned int m_maxRank;
//SceNpScoreRankData *m_stats;
public:
virtual void Tick();
//Open a session
virtual bool OpenSession();
//Close a session
virtual void CloseSession();
//Delete a session
virtual void DeleteSession();
//Write the given stats
//This is called synchronously and will not free any memory allocated for views when it is done
virtual bool WriteStats(unsigned int viewCount, ViewIn views);
virtual bool ReadStats_Friends(LeaderboardReadListener *listener, int difficulty, EStatsType type, PlayerUID myUID, unsigned int startIndex, unsigned int readCount);
virtual bool ReadStats_MyScore(LeaderboardReadListener *listener, int difficulty, EStatsType type, PlayerUID myUID, unsigned int readCount);
virtual bool ReadStats_TopRank(LeaderboardReadListener *listener, int difficulty, EStatsType type, unsigned int startIndex, unsigned int readCount);
//Perform a flush of the stats
virtual void FlushStats();
//Cancel the current operation
virtual void CancelOperation();
//Is the leaderboard manager idle.
virtual bool isIdle();
private:
int getBoardId(int difficulty, EStatsType);
//LeaderboardManager::ReadScore *filterJustScorers(unsigned int &num, LeaderboardManager::ReadScore *friendsData);
SceNpScorePlayerRankData *addPadding(unsigned int num, SceNpScoreRankData *rankData);
void convertToOutput(unsigned int &num, ReadScore *out, SceNpScorePlayerRankData *rankData, SceNpScoreComment *comm);
void toBinary(void *out, SceNpScoreComment *in);
void fromBinary(SceNpScoreComment **out, void *in);
void toBase32(SceNpScoreComment *out, void *in);
void fromBase32(void *out, SceNpScoreComment *in);
void toSymbols(char *);
void fromSymbols(char *);
bool test_string(string);
void initReadScoreStruct(ReadScore &out, SceNpScoreRankData &);
void fillReadScoreStruct(ReadScore &out, SceNpScoreComment &comment);
static bool SortByRank(const ReadScore &lhs, const ReadScore &rhs);
};
@@ -242,11 +242,10 @@ C4JSpursJob_ChunkUpdate::C4JSpursJob_ChunkUpdate(ChunkRebuildData* pDataIn, Chun
extern const CellSpursJobHeader JOBHEADER_SYMBOL(ChunkUpdate);
//E create job
m_job256.header = JOBHEADER_SYMBOL(ChunkUpdate);
m_job256.header.sizeStack = (60*1024)>>4;
m_job256.header.sizeStack = (58*1024)>>4;
m_job256.workArea.userData[0] = (uintptr_t)pDataIn;
m_job256.workArea.userData[1] = (uintptr_t)pDataOut;
assert(cellSpursJobQueueCheckJob(&m_job256, 256, 256) == CELL_OK);
}
C4JSpursJob_LevelRenderer_cull::C4JSpursJob_LevelRenderer_cull(LevelRenderer_cull_DataIn* pDataIn)
@@ -0,0 +1,21 @@
#pragma once
#include "BaseRailTile_SPU.h"
class ActivatorRailTile_SPU : public BaseRailTile_SPU
{
public:
ActivatorRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
Icon_SPU *getTexture(int face, int data)
{
if ((data & RAIL_DATA_BIT) == 0)
{
return &ms_pTileData->activatorRailTile_icon;
}
else
{
return &ms_pTileData->activatorRailTile_iconPowered;
}
};
};
@@ -0,0 +1,41 @@
#include "stdafx.h"
#include "BasePressurePlateTile_SPU.h"
#include "ChunkRebuildData.h"
bool BasePressurePlateTile_SPU::isSolidRender(bool isServerLevel)
{
return false;
}
bool BasePressurePlateTile_SPU::blocksLight()
{
return false;
}
void BasePressurePlateTile_SPU::updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData, TileEntity* forceEntity) // 4J added forceData, forceEntity param
{
int data = level->getData(x, y, z);
bool pressed = getSignalForData(data) > 0; // 0 is Redstone::SIGNAL_NONE
float o = 1 / 16.0f;
if (pressed)
{
setShape(o, 0, o, 1 - o, 0.5f / 16.0f, 1 - o);
}
else
{
setShape(o, 0, o, 1 - o, 1 / 16.0f, 1 - o);
}
}
void BasePressurePlateTile_SPU::updateDefaultShape()
{
float x = 8 / 16.0f;
float y = 2 / 16.0f;
float z = 8 / 16.0f;
setShape(0.5f - x, 0.5f - y, 0.5f - z, 0.5f + x, 0.5f + y, 0.5f + z);
}
@@ -0,0 +1,16 @@
#pragma once
#include "Tile_SPU.h"
class BasePressurePlateTile_SPU : public Tile_SPU
{
public:
BasePressurePlateTile_SPU(int id) : Tile_SPU(id) {}
virtual bool isSolidRender(bool isServerLevel = false);
virtual bool blocksLight();
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL); // 4J added forceData, forceEntity param
virtual void updateDefaultShape();
protected:
virtual int getSignalForData(int data) = 0;
};
@@ -0,0 +1,31 @@
#pragma once
#include "Tile_SPU.h"
class BaseRailTile_SPU : public Tile_SPU
{
public:
static const int RAIL_DATA_BIT = 8;
static const int RAIL_DIRECTION_MASK = 7;
BaseRailTile_SPU(int id) : Tile_SPU(id) {}
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
{
int data = level->getData(x, y, z);
if (data >= 2 && data <= 5)
{
setShape(0, 0, 0, 1, 2 / 16.0f + 0.5f, 1);
} else
{
setShape(0, 0, 0, 1, 2 / 16.0f, 1);
}
}
virtual int getRenderShape() { return Tile_SPU::SHAPE_RAIL; }
bool isUsesDataBit()
{
if(id == goldenRail_Id || id == detectorRail_Id || id == activatorRail_Id)
return true;
return false;
}
};
@@ -13,7 +13,7 @@ public:
if(id == Tile_SPU::button_wood_Id)
return TileRef_SPU(wood_Id)->getTexture(Facing::UP);
else
return TileRef_SPU(rock_Id)->getTexture(Facing::UP);
return TileRef_SPU(stone_Id)->getTexture(Facing::UP);
}
virtual bool blocksLight() { return false; }
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
@@ -39,7 +39,7 @@ static const int Level_MAX_BRIGHTNESS = 15;
#include "TileRenderer_SPU.h"
#include "Tile_SPU.h"
#include "ChunkRebuildData.h"
TileData_SPU g_tileSPUData;
//TileData_SPU g_tileSPUData;
static const int MAX_LEVEL_SIZE = 30000000;
static const int MAX_BRIGHTNESS = 15;
@@ -89,30 +89,30 @@ void ChunkRebuildData::disableUnseenTiles()
// Establish whether this tile and its neighbours are all made of rock, dirt, unbreakable tiles, or have already
// been determined to meet this criteria themselves and have a tile of 255 set.
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
tileID = getTile(iX-1, iY, iZ);
flags = getFlags(iX-1, iY, iZ);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
tileID = getTile(iX+1, iY, iZ);
flags = getFlags(iX+1, iY, iZ);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
tileID = getTile(iX, iY, iZ-1);
flags = getFlags(iX, iY, iZ-1);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
tileID = getTile(iX, iY, iZ+1);
flags = getFlags(iX, iY, iZ+1);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
// Treat the bottom of the world differently - we shouldn't ever be able to look up at this, so consider tiles as invisible
// if they are surrounded on sides other than the bottom
if( iY > 0 )
{
tileID = getTile(iX, iY-1, iZ);
flags = getFlags(iX, iY-1, iZ);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
}
tileID = getTile(iX, iY+1, iZ);
flags = getFlags(iX, iY+1, iZ);
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
// This tile is surrounded. Flag it as not requiring to be rendered by setting its id to 255.
setFlag(iX, iY, iZ, e_flag_NoRender);
@@ -157,7 +157,7 @@ void ChunkRebuildData::buildMaterials()
buildMaterial(Material_SPU::plant_Id, Material::plant);
buildMaterial(Material_SPU::replaceable_plant_Id, Material::replaceable_plant);
buildMaterial(Material_SPU::sponge_Id, Material::sponge);
buildMaterial(Material_SPU::cloth_Id, Material::cloth);
buildMaterial(Material_SPU::wool_Id, Material::cloth);
buildMaterial(Material_SPU::fire_Id, Material::fire);
buildMaterial(Material_SPU::sand_Id, Material::sand);
buildMaterial(Material_SPU::decoration_Id, Material::decoration);
@@ -195,7 +195,7 @@ int ChunkRebuildData::getMaterialID(Tile* pTile)
if(m == Material::plant) return Material_SPU::plant_Id;
if(m == Material::replaceable_plant)return Material_SPU::replaceable_plant_Id;
if(m == Material::sponge) return Material_SPU::sponge_Id;
if(m == Material::cloth) return Material_SPU::cloth_Id;
if(m == Material::cloth) return Material_SPU::wool_Id;
if(m == Material::fire) return Material_SPU::fire_Id;
if(m == Material::sand) return Material_SPU::sand_Id;
if(m == Material::decoration) return Material_SPU::decoration_Id;
@@ -341,9 +341,17 @@ void ChunkRebuildData::createTileData()
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFront, ((DispenserTile*)Tile::dispenser)->iconFront);
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFrontVertical, ((DispenserTile*)Tile::dispenser)->iconFrontVertical);
setIconSPUFromIcon(&m_tileData.dropperTile_iconFront, ((DropperTile*)Tile::dropper)->iconFront);
setIconSPUFromIcon(&m_tileData.dropperTile_iconFrontVertical, ((DropperTile*)Tile::dropper)->iconFrontVertical);
// RailTile
setIconSPUFromIcon(&m_tileData.railTile_iconTurn, ((RailTile*)Tile::rail)->iconTurn);
setIconSPUFromIcon(&m_tileData.railTile_iconTurnGolden, ((RailTile*)Tile::goldenRail)->iconTurn);
setIconSPUFromIcon(&m_tileData.poweredRailTile_icon, ((PoweredRailTile*)Tile::goldenRail)->icon);
setIconSPUFromIcon(&m_tileData.poweredRailTile_iconPowered, ((PoweredRailTile*)Tile::goldenRail)->iconPowered);
setIconSPUFromIcon(&m_tileData.activatorRailTile_icon, ((PoweredRailTile*)Tile::activatorRail)->icon);
setIconSPUFromIcon(&m_tileData.activatorRailTile_iconPowered, ((PoweredRailTile*)Tile::activatorRail)->iconPowered);
for(int i=0;i<2;i++)
setIconSPUFromIcon(&m_tileData.detectorRailTile_icons[i], ((DetectorRailTile*)Tile::detectorRail)->icons[i]);
@@ -413,8 +421,12 @@ void ChunkRebuildData::createTileData()
setIconSPUFromIcon(&m_tileData.stoneSlab_iconSide, ((StoneSlabTile*)(Tile::stoneSlab))->iconSide);
//ColoredTile
for(int i=0;i<16;i++)
setIconSPUFromIcon(&m_tileData.clothTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
setIconSPUFromIcon(&m_tileData.woolTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
for(int i=0;i<16;i++)
setIconSPUFromIcon(&m_tileData.clayHardened_colored_icons[i], ((ColoredTile*)Tile::clayHardened_colored)->icons[i]);
// CarrotTile
for(int i=0;i<4;i++)
@@ -438,6 +450,13 @@ void ChunkRebuildData::createTileData()
setIconSPUFromIcon(&m_tileData.quartzBlock_iconTop, ((QuartzBlockTile*)Tile::quartzBlock)->iconTop);
setIconSPUFromIcon(&m_tileData.quartzBlock_iconBottom, ((QuartzBlockTile*)Tile::quartzBlock)->iconBottom);
// HayBlockTile
setIconSPUFromIcon(&m_tileData.hayBlockTile_iconTop, ((HayBlockTile*)Tile::hayBlock)->iconTop);
setIconSPUFromIcon(&m_tileData.hayBlockTile_icon, ((HayBlockTile*)Tile::hayBlock)->icon);
// DaylightDetectorTile
for(int i=0;i<1;i++)
setIconSPUFromIcon(&m_tileData.daylightDetector_icons[i], ((DaylightDetectorTile*)Tile::daylightDetector)->icons[i]);
}
// extern int g_lastHitBlockX;
@@ -59,7 +59,7 @@ public:
int m_lastHitBlockX;
int m_lastHitBlockY;
int m_lastHitBlockZ;
unsigned int m_pad[5];// padding to 16 byte alignment
unsigned int m_pad[3];// padding to 16 byte alignment
int getTileIdx(int x, int y, int z) { return (( x - m_x0 )*sc_size*sc_size) + (( y - m_y0 )*sc_size) + ( z - m_z0 ); }
@@ -115,6 +115,7 @@
<ClInclude Include="WorkbenchTile_SPU.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="BasePressurePlateTile_SPU.cpp" />
<ClCompile Include="ChunkRebuildData.cpp" />
<ClCompile Include="DiodeTile_SPU.cpp" />
<ClCompile Include="Direction_SPU.cpp" />
@@ -126,7 +127,6 @@
<ClCompile Include="Icon_SPU.cpp" />
<ClCompile Include="LeafTile_SPU.cpp" />
<ClCompile Include="LiquidTile_SPU.cpp" />
<ClCompile Include="PressurePlateTile_SPU.cpp" />
<ClCompile Include="StairTile_SPU.cpp" />
<ClCompile Include="TallGrass_SPU.cpp" />
<ClCompile Include="task.cpp" />
@@ -142,9 +142,6 @@
<ClCompile Include="LiquidTile_SPU.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PressurePlateTile_SPU.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="StairTile_SPU.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -166,5 +163,8 @@
<ClCompile Include="TileRenderer_SPU.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="BasePressurePlateTile_SPU.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,11 +0,0 @@
#pragma once
#include "Tile_SPU.h"
class ClothTile_SPU : public Tile_SPU
{
public:
ClothTile_SPU(int id) : Tile_SPU(id) {}
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->clothTile_icons[data]; }
};
@@ -0,0 +1,11 @@
#pragma once
#include "Tile_SPU.h"
class ColoredClay_SPU : public Tile_SPU
{
public:
ColoredClay_SPU(int id) : Tile_SPU(id) {}
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->clayHardened_colored_icons[data]; }
};
@@ -0,0 +1,21 @@
#pragma once
#include "EntityTile_SPU.h"
class DaylightDetectorTile_SPU : public EntityTile_SPU
{
public:
DaylightDetectorTile_SPU(int id) : EntityTile_SPU(id) {}
Icon_SPU *getTexture(int face, int data) {
if (face == Facing::UP)
{
return &ms_pTileData->daylightDetector_icons[0];
}
return &ms_pTileData->daylightDetector_icons[1];
};
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
virtual void updateDefaultShape() { setShape(0, 0, 0, 1, 6.0f / 16.0f, 1); };
virtual void updateShape() { setShape(0, 0, 0, 1, 6.0f / 16.0f, 1); };
};
@@ -2,10 +2,10 @@
#include "RailTile_SPU.h"
class DetectorRailTile_SPU : public RailTile_SPU
class DetectorRailTile_SPU : public BaseRailTile_SPU
{
public:
DetectorRailTile_SPU(int id) : RailTile_SPU(id) {}
DetectorRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
Icon_SPU *getTexture(int face, int data)
{
if ((data & RAIL_DATA_BIT) != 0)
@@ -21,9 +21,9 @@ public:
{
if (id==diode_on_Id)
{
return TileRef_SPU(notGate_on_Id)->getTexture(face);
return TileRef_SPU(redstoneTorch_on_Id)->getTexture(face);
}
return TileRef_SPU(notGate_off_Id)->getTexture(face);
return TileRef_SPU(redstoneTorch_off_Id)->getTexture(face);
}
if (face == Facing::UP)
{
@@ -0,0 +1,37 @@
#pragma once
#include "DispenserTile_SPU.h"
#include "Facing_SPU.h"
class DropperTile_SPU : public DispenserTile_SPU
{
public:
DropperTile_SPU(int id) : DispenserTile_SPU(id) {}
public:
virtual Icon_SPU *getTexture(int face, int data)
{
int dir = data & FACING_MASK;
if (face == dir)
{
if (dir == Facing::UP || dir == Facing::DOWN)
{
return &ms_pTileData->dropperTile_iconFrontVertical;
}
else
{
return &ms_pTileData->dropperTile_iconFront;
}
}
if (dir == Facing::UP || dir == Facing::DOWN)
{
return &ms_pTileData->dispenserTile_iconTop;
}
else if (face == Facing::UP || face == Facing::DOWN)
{
return &ms_pTileData->dispenserTile_iconTop;
}
return icon();
}
};
@@ -33,7 +33,7 @@ public:
case Tile_SPU::bookshelf_Id:
case Tile_SPU::tnt_Id:
case Tile_SPU::tallgrass_Id:
case Tile_SPU::cloth_Id:
case Tile_SPU::wool_Id:
case Tile_SPU::vine_Id:
return true;
default:
@@ -0,0 +1,19 @@
#pragma once
#include "RotatedPillarTile_SPU.h"
class HayBlockTile_SPU : public RotatedPillarTile_SPU
{
friend class ChunkRebuildData;
public:
HayBlockTile_SPU(int id) : RotatedPillarTile_SPU(id) {}
protected:
Icon_SPU *getTopTexture(int type) {
return &ms_pTileData->hayBlockTile_iconTop;
};
Icon_SPU *getTypeTexture(int type) {
return &ms_pTileData->hayBlockTile_icon;
};
};
@@ -14,8 +14,8 @@ public:
Icon_SPU *getTexture(int face, int data)
{
Icon_SPU* icons = ms_pTileData->hugeMushroom_icons;
int type = 0; // hugeMushroom1_Id
if(id == hugeMushroom2_Id)
int type = 0; // hugemushroom_brown_Id
if(id == hugeMushroom_red_Id)
type = 1;
// 123
// 456 10
@@ -19,7 +19,7 @@ public:
static const int plant_Id = 9;
static const int replaceable_plant_Id = 10;
static const int sponge_Id = 11;
static const int cloth_Id = 12;
static const int wool_Id = 12;
static const int fire_Id = 13;
static const int sand_Id = 14;
static const int decoration_Id = 15;
@@ -0,0 +1,21 @@
#pragma once
#include "BaseRailTile_SPU.h"
class PoweredRailTile_SPU : public BaseRailTile_SPU
{
public:
PoweredRailTile_SPU(int id) : BaseRailTile_SPU(id) {}
Icon_SPU *getTexture(int face, int data)
{
if ((data & RAIL_DATA_BIT) == 0)
{
return &ms_pTileData->poweredRailTile_icon;
}
else
{
return &ms_pTileData->poweredRailTile_iconPowered;
}
};
};
@@ -1,41 +0,0 @@
#include "stdafx.h"
#include "PressurePlateTile_SPU.h"
#include "ChunkRebuildData.h"
bool PressurePlateTile_SPU::isSolidRender(bool isServerLevel)
{
return false;
}
bool PressurePlateTile_SPU::blocksLight()
{
return false;
}
void PressurePlateTile_SPU::updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData, TileEntity* forceEntity) // 4J added forceData, forceEntity param
{
bool pressed = level->getData(x, y, z) == 1;
float o = 1 / 16.0f;
if (pressed)
{
this->setShape(o, 0, o, 1 - o, 0.5f / 16.0f, 1 - o);
}
else
{
setShape(o, 0, o, 1 - o, 1 / 16.0f, 1 - o);
}
}
void PressurePlateTile_SPU::updateDefaultShape()
{
float x = 8 / 16.0f;
float y = 2 / 16.0f;
float z = 8 / 16.0f;
setShape(0.5f - x, 0.5f - y, 0.5f - z, 0.5f + x, 0.5f + y, 0.5f + z);
}
@@ -1,21 +1,23 @@
#pragma once
#include "Tile_SPU.h"
#include "BasePressurePlateTile_SPU.h"
class PressurePlateTile_SPU : public Tile_SPU
class PressurePlateTile_SPU : public BasePressurePlateTile_SPU
{
public:
enum Sensitivity
enum Sensitivity
{
everything,
mobs,
players
};
everything, mobs, players
};
PressurePlateTile_SPU(int id) : Tile_SPU(id) {}
virtual bool isSolidRender(bool isServerLevel = false);
virtual bool blocksLight();
private:
Sensitivity sensitivity;
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL); // 4J added forceData, forceEntity param
virtual void updateDefaultShape();
};
public:
PressurePlateTile_SPU(int id) : BasePressurePlateTile_SPU(id) {}
protected:
virtual int getSignalForData(int data) {
// 15 is Redstone::SIGNAL_MAX
return data == 1 ? 15 : 0;
};
};
@@ -1,58 +1,21 @@
#pragma once
#include "Tile_SPU.h"
class RailTile_SPU : public Tile_SPU
#include "BaseRailTile_SPU.h"
class RailTile_SPU : public BaseRailTile_SPU
{
public:
static const int RAIL_DATA_BIT = 8;
static const int RAIL_DIRECTION_MASK = 7;
RailTile_SPU(int id) : BaseRailTile_SPU(id) {}
RailTile_SPU(int id) : Tile_SPU(id) {}
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
Icon_SPU *getTexture(int face, int data)
{
int data = level->getData(x, y, z);
if (data >= 2 && data <= 5)
if (data >= 6)
{
setShape(0, 0, 0, 1, 2 / 16.0f + 0.5f, 1);
} else
{
setShape(0, 0, 0, 1, 2 / 16.0f, 1);
return &ms_pTileData->railTile_iconTurn;
}
}
virtual Icon_SPU *getTexture(int face, int data)
{
bool usesDataBit = false;
Icon_SPU* iconTurn = &ms_pTileData->railTile_iconTurn;
if(id == goldenRail_Id)
else
{
usesDataBit = true;
iconTurn = &ms_pTileData->railTile_iconTurnGolden;
return icon();
}
if (usesDataBit)
{
// if (id == Tile::goldenRail_Id)
// {
if ((data & RAIL_DATA_BIT) == 0)
{
return icon();
}
else
{
return iconTurn; // Actually the powered rail on version
}
// }
} else if (data >= 6) return iconTurn;
return icon();
}
virtual int getRenderShape() { return Tile_SPU::SHAPE_RAIL; }
bool isUsesDataBit()
{
if(id == goldenRail_Id || id == detectorRail_Id)
return true;
return false;
}
};
};
@@ -0,0 +1,45 @@
#pragma once
#include "Tile_SPU.h"
#include "Facing_SPU.h"
class RotatedPillarTile_SPU : public Tile_SPU
{
public:
static const int MASK_TYPE = 0x3;
static const int MASK_FACING = 0xC;
static const int FACING_Y = 0 << 2;
static const int FACING_X = 1 << 2;
static const int FACING_Z = 2 << 2;
protected:
RotatedPillarTile_SPU(int id) : Tile_SPU(id) {}
public:
virtual int getRenderShape() { return Tile_SPU::SHAPE_TREE; };
virtual Icon_SPU *getTexture(int face, int data) {
int dir = data & MASK_FACING;
int type = data & MASK_TYPE;
if (dir == FACING_Y && (face == Facing::UP || face == Facing::DOWN))
{
return getTopTexture(type);
}
else if (dir == FACING_X && (face == Facing::EAST || face == Facing::WEST))
{
return getTopTexture(type);
}
else if (dir == FACING_Z && (face == Facing::NORTH || face == Facing::SOUTH))
{
return getTopTexture(type);
}
return getTypeTexture(type);
};
protected:
virtual Icon_SPU *getTypeTexture(int type) = 0;
virtual Icon_SPU *getTopTexture(int type) = 0;
};
@@ -43,5 +43,5 @@ public:
}
}
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(hellSand_Id)->getTexture(face); }
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(netherRack_Id)->getTexture(face); }
};
@@ -39,7 +39,7 @@ bool StairTile_SPU::isStairs(int id)
case Tile_SPU::stairs_wood_Id:
case Tile_SPU::stairs_stone_Id:
case Tile_SPU::stairs_bricks_Id:
case Tile_SPU::stairs_stoneBrickSmooth_Id:
case Tile_SPU::stairs_stoneBrick_Id:
case Tile_SPU::stairs_netherBricks_Id:
case Tile_SPU::stairs_sandstone_Id:
case Tile_SPU::stairs_sprucewood_Id:
@@ -21,12 +21,12 @@ public:
{
if (data == HOST_COBBLE)
{
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
return TileRef_SPU(cobblestone_Id)->getTexture(face);
}
if (data == HOST_STONEBRICK)
{
return TileRef_SPU(stoneBrickSmooth_Id)->getTexture(face);
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
}
return TileRef_SPU(rock_Id)->getTexture(face);
return TileRef_SPU(stone_Id)->getTexture(face);
}
};
@@ -41,11 +41,11 @@ public:
case WOOD_SLAB:
return TileRef_SPU(wood_Id)->getTexture(face); //Tile::wood->getTexture(face);
case COBBLESTONE_SLAB:
return TileRef_SPU(stoneBrick_Id)->getTexture(face); //Tile::stoneBrick->getTexture(face);
return TileRef_SPU(cobblestone_Id)->getTexture(face); //Tile::stoneBrick->getTexture(face);
case BRICK_SLAB:
return TileRef_SPU(redBrick_Id)->getTexture(face); //Tile::redBrick->getTexture(face);
case SMOOTHBRICK_SLAB:
return TileRef_SPU(stoneBrickSmooth_Id)->getTexture(face); //Tile::stoneBrickSmooth->getTexture(face, SmoothStoneBrickTile::TYPE_DEFAULT);
return TileRef_SPU(stoneBrick_Id)->getTexture(face); //Tile::stoneBrickSmooth->getTexture(face, SmoothStoneBrickTile::TYPE_DEFAULT);
case NETHERBRICK_SLAB:
return TileRef_SPU(netherBrick_Id)->getTexture(Facing::UP); //Tile::netherBrick->getTexture(Facing::UP);
case QUARTZ_SLAB:
@@ -12,6 +12,7 @@
#include "DirtTile_SPU.h"
#include "DoorTile_SPU.h"
#include "PressurePlateTile_SPU.h"
#include "WeightedPressurePlateTile_SPU.h"
#include "FarmTile_SPU.h"
#include "Bush_SPU.h"
#include "TallGrass_SPU.h"
@@ -32,7 +33,10 @@
#include "IceTile_SPU.h"
#include "PortalTile_SPU.h"
#include "DispenserTile_SPU.h"
#include "DropperTile_SPU.h"
#include "RailTile_SPU.h"
#include "PoweredRailTile_SPU.h"
#include "ActivatorRailTile_SPU.h"
#include "DetectorRailTile_SPU.h"
#include "TntTile_SPU.h"
#include "BookshelfTile_SPU.h"
@@ -71,7 +75,7 @@
#include "EggTile_SPU.h"
#include "CocoaTile_SPU.h"
#include "RedlightTile_SPU.h"
#include "ClothTile_SPU.h"
#include "WoolTile_SPU.h"
#include "SkullTile_SPU.h"
#include "MobSpawnerTile_SPU.h"
#include "EnderChestTile_SPU.h"
@@ -83,6 +87,9 @@
#include "PotatoTile_SPU.h"
#include "QuartzBlockTile_SPU.h"
#include "WoolCarpetTile_SPU.h"
#include "ColoredClay_SPU.h"
#include "HayBlockTile_SPU.h"
#include "DaylightDetectorTile_SPU.h"
#ifdef SN_TARGET_PS3_SPU
#include "..\Common\spu_assert.h"
@@ -514,7 +521,7 @@ void Tile_SPU::updateDefaultShape()
// void Tile_SPU::playerDestroy(Level *level, shared_ptr<Player> player, int x, int y, int z, int data)
// {
// // 4J Stu - Special case - only record a crop destroy if is fully grown
// if(id==Tile_SPU::crops_Id)
// if(id==Tile_SPU::wheat_Id)
// {
// if( Tile_SPU::crops->getResource(data, NULL, 0) > 0 )
// player->awardStat(Stats::blocksMined[id], 1);
@@ -681,6 +688,7 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(woodSlabHalf_Id, WoodSlabTile_SPU);
CREATE_TILE_TYPE(chest_Id, ChestTile_SPU);
CREATE_TILE_TYPE(chest_trap_Id, ChestTile_SPU);
CREATE_TILE_TYPE(ironFence_Id, ThinFenceTile_SPU);
CREATE_TILE_TYPE(thinGlass_Id, ThinFenceTile_SPU);
@@ -691,7 +699,7 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(stairs_wood_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_stone_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_bricks_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_stoneBrickSmooth_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_stoneBrick_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_netherBricks_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_sandstone_Id, StairTile_SPU);
CREATE_TILE_TYPE(stairs_sprucewood_Id, StairTile_SPU);
@@ -706,6 +714,9 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(pressurePlate_stone_Id, PressurePlateTile_SPU);
CREATE_TILE_TYPE(pressurePlate_wood_Id, PressurePlateTile_SPU);
CREATE_TILE_TYPE(weightedPlate_light_Id, WeightedPressurePlateTile_SPU);
CREATE_TILE_TYPE(weightedPlate_heavy_Id, WeightedPressurePlateTile_SPU);
CREATE_TILE_TYPE(farmland_Id, FarmTile_SPU);
CREATE_TILE_TYPE(flower_Id, Bush_SPU);
@@ -722,19 +733,19 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(leaves_Id, LeafTile_SPU);
CREATE_TILE_TYPE(crops_Id, CropTile_SPU);
CREATE_TILE_TYPE(wheat_Id, CropTile_SPU);
CREATE_TILE_TYPE(reeds_Id, ReedTile_SPU);
CREATE_TILE_TYPE(torch_Id, TorchTile_SPU);
CREATE_TILE_TYPE(notGate_off_Id, TorchTile_SPU); // TorchTile->NotGateTile
CREATE_TILE_TYPE(notGate_on_Id, TorchTile_SPU); // TorchTile->NotGateTile
CREATE_TILE_TYPE(redstoneTorch_off_Id, TorchTile_SPU); // TorchTile->NotGateTile
CREATE_TILE_TYPE(redstoneTorch_on_Id, TorchTile_SPU); // TorchTile->NotGateTile
CREATE_TILE_TYPE(mushroom1_Id, Mushroom_SPU);
CREATE_TILE_TYPE(mushroom2_Id, Mushroom_SPU);
CREATE_TILE_TYPE(mushroom_brown_Id, Mushroom_SPU);
CREATE_TILE_TYPE(mushroom_red_Id, Mushroom_SPU);
CREATE_TILE_TYPE(mobSpawner_Id, MobSpawnerTile_SPU);
CREATE_TILE_TYPE(musicBlock_Id, EntityTile_SPU); // MusicTile->EntityTile
CREATE_TILE_TYPE(noteblock_Id, EntityTile_SPU); // MusicTile->EntityTile
CREATE_TILE_TYPE(furnace_Id, FurnaceTile_SPU);
CREATE_TILE_TYPE(furnace_lit_Id, FurnaceTile_SPU);
@@ -757,9 +768,12 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(portalTile_Id, PortalTile_SPU);
CREATE_TILE_TYPE(dispenser_Id, DispenserTile_SPU);
CREATE_TILE_TYPE(dropper_Id, DropperTile_SPU);
CREATE_TILE_TYPE(rail_Id, RailTile_SPU);
CREATE_TILE_TYPE(goldenRail_Id, RailTile_SPU);
CREATE_TILE_TYPE(goldenRail_Id, PoweredRailTile_SPU);
CREATE_TILE_TYPE(activatorRail_Id, ActivatorRailTile_SPU);
CREATE_TILE_TYPE(detectorRail_Id, DetectorRailTile_SPU);
@@ -781,7 +795,7 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(cactus_Id, CactusTile_SPU);
CREATE_TILE_TYPE(recordPlayer_Id, RecordPlayerTile_SPU);
CREATE_TILE_TYPE(jukebox_Id, RecordPlayerTile_SPU);
CREATE_TILE_TYPE(pumpkin_Id, PumpkinTile_SPU);
CREATE_TILE_TYPE(litPumpkin_Id, PumpkinTile_SPU);
@@ -792,10 +806,10 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(monsterStoneEgg_Id, StoneMonsterTile_SPU);
CREATE_TILE_TYPE(stoneBrickSmooth_Id, SmoothStoneBrickTile_SPU);
CREATE_TILE_TYPE(stoneBrick_Id, SmoothStoneBrickTile_SPU);
CREATE_TILE_TYPE(hugeMushroom1_Id, HugeMushroomTile_SPU);
CREATE_TILE_TYPE(hugeMushroom2_Id, HugeMushroomTile_SPU);
CREATE_TILE_TYPE(hugeMushroom_brown_Id, HugeMushroomTile_SPU);
CREATE_TILE_TYPE(hugeMushroom_red_Id, HugeMushroomTile_SPU);
CREATE_TILE_TYPE(melon_Id, MelonTile_SPU);
@@ -847,16 +861,18 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(skull_Id, SkullTile_SPU);
// these tile types don't have any additional code that we need.
CREATE_TILE_TYPE(stoneBrick_Id, Tile_SPU); // Tile
// these tile types don't have any additional code that we need.
CREATE_TILE_TYPE(cobblestone_Id, Tile_SPU); // Tile
CREATE_TILE_TYPE(lapisBlock_Id, Tile_SPU);
CREATE_TILE_TYPE(redBrick_Id, Tile_SPU);
CREATE_TILE_TYPE(mossStone_Id, Tile_SPU);
CREATE_TILE_TYPE(mossyCobblestone_Id, Tile_SPU);
CREATE_TILE_TYPE(netherBrick_Id, Tile_SPU);
CREATE_TILE_TYPE(whiteStone_Id, Tile_SPU);
CREATE_TILE_TYPE(endStone_Id, Tile_SPU);
CREATE_TILE_TYPE(unbreakable_Id, Tile_SPU);
CREATE_TILE_TYPE(sponge_Id, Tile_SPU);
CREATE_TILE_TYPE(rock_Id, Tile_SPU); // StoneTile
CREATE_TILE_TYPE(coalBlock_Id, Tile_SPU);
CREATE_TILE_TYPE(redstoneBlock_Id, Tile_SPU);
CREATE_TILE_TYPE(stone_Id, Tile_SPU); // StoneTile
CREATE_TILE_TYPE(obsidian_Id, Tile_SPU); // StoneTile->ObsidianTile
CREATE_TILE_TYPE(sand_Id, Tile_SPU); // HeavyTile
CREATE_TILE_TYPE(gravel_Id, Tile_SPU); // GravelTile
@@ -872,12 +888,15 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(ironBlock_Id, Tile_SPU); // MetalTile
CREATE_TILE_TYPE(diamondBlock_Id, Tile_SPU); // MetalTile
CREATE_TILE_TYPE(snow_Id, Tile_SPU); // SnowTile
CREATE_TILE_TYPE(hellRock_Id, Tile_SPU); // HellStoneTile
CREATE_TILE_TYPE(hellSand_Id, Tile_SPU); // HellSandTile
CREATE_TILE_TYPE(lightGem_Id, Tile_SPU); // LightGemTile
CREATE_TILE_TYPE(aprilFoolsJoke_Id, Tile_SPU); // LockedChestTile
CREATE_TILE_TYPE(netherRack_Id, Tile_SPU); // NetherrackTile
CREATE_TILE_TYPE(soulsand_Id, Tile_SPU); // SoulSandTile
CREATE_TILE_TYPE(glowstone_Id, Tile_SPU); // Glowstonetile
// got replaced by stained_glass_Id, rest in peace locked chest
//CREATE_TILE_TYPE(aprilFoolsJoke_Id , Tile_SPU); // LockedChestTile
CREATE_TILE_TYPE(clayHardened_Id, Tile_SPU); // ColoredTile
CREATE_TILE_TYPE(cloth_Id, ClothTile_SPU); // wool
CREATE_TILE_TYPE(wool_Id, WoolTile_SPU); // wool
CREATE_TILE_TYPE(clayHardened_colored_Id, ColoredClay_SPU); // wool
CREATE_TILE_TYPE(emeraldOre_Id, Tile_SPU); // OreTile
@@ -895,5 +914,6 @@ void Tile_SPU::initTilePointers()
CREATE_TILE_TYPE(quartzBlock_Id, QuartzBlockTile_SPU);
CREATE_TILE_TYPE(stairs_quartz_Id, StairTile_SPU);
CREATE_TILE_TYPE(woolCarpet_Id, WoolCarpetTile_SPU);
CREATE_TILE_TYPE(hayBlock_Id, HayBlockTile_SPU);
CREATE_TILE_TYPE(daylightDetector_Id, DaylightDetectorTile_SPU);
};
@@ -129,8 +129,14 @@ public:
Icon_SPU dispenserTile_iconFront;
Icon_SPU dispenserTile_iconFrontVertical;
Icon_SPU dropperTile_iconFront;
Icon_SPU dropperTile_iconFrontVertical;
Icon_SPU railTile_iconTurn;
Icon_SPU railTile_iconTurnGolden;
Icon_SPU poweredRailTile_icon;
Icon_SPU poweredRailTile_iconPowered;
Icon_SPU activatorRailTile_icon;
Icon_SPU activatorRailTile_iconPowered;
Icon_SPU detectorRailTile_icons[2];
@@ -178,7 +184,7 @@ public:
Icon_SPU redStoneDust_iconCrossOver;
Icon_SPU redStoneDust_iconLineOver;
Icon_SPU clothTile_icons[16];
Icon_SPU woolTile_icons[16];
Icon_SPU stoneSlab_iconSide;
@@ -193,6 +199,12 @@ public:
Icon_SPU quartzBlock_iconTop;
Icon_SPU quartzBlock_iconBottom;
Icon_SPU clayHardened_colored_icons[16];
Icon_SPU hayBlockTile_icon;
Icon_SPU hayBlockTile_iconTop;
Icon_SPU daylightDetector_icons[2];
int anvilPart; // normally part of the AnvilTile class
@@ -296,19 +308,24 @@ public:
static const int SHAPE_FLOWER_POT = 33;
static const int SHAPE_BEACON = 34;
static const int SHAPE_ANVIL = 35;
static const int SHAPE_HOPPER = 38;
static const int SHAPE_QUARTZ = 39;
static const int SHAPE_THIN_PANE = 40;
static const int SHAPE_COUNT = 41;
// 4J - this array of simple constants made so the compiler can optimise references to Ids that were previous of the form Tile_SPU::<whatever>->id, and are now simply Tile_SPU::whatever_Id
static const int rock_Id = 1;
static const int stone_Id = 1;
static const int grass_Id = 2;
static const int dirt_Id = 3;
static const int stoneBrick_Id = 4;
static const int cobblestone_Id = 4;
static const int wood_Id = 5;
static const int sapling_Id = 6;
static const int unbreakable_Id = 7;
static const int water_Id = 8;
static const int calmWater_Id = 9;
static const int lava_Id = 10;
static const int calmLava_Id = 11;
static const int sand_Id = 12;
static const int gravel_Id = 13;
@@ -319,26 +336,29 @@ public:
static const int leaves_Id = 18;
static const int sponge_Id = 19;
static const int glass_Id = 20;
static const int lapisOre_Id = 21;
static const int lapisBlock_Id = 22;
static const int dispenser_Id = 23;
static const int sandStone_Id = 24;
static const int musicBlock_Id = 25;
static const int noteblock_Id = 25;
static const int bed_Id = 26;
static const int goldenRail_Id = 27;
static const int detectorRail_Id = 28;
static const int pistonStickyBase_Id = 29;
static const int web_Id = 30;
static const int tallgrass_Id = 31;
static const int deadBush_Id = 32;
static const int pistonBase_Id = 33;
static const int pistonExtensionPiece_Id = 34;
static const int cloth_Id = 35;
static const int wool_Id = 35;
static const int pistonMovingPiece_Id = 36;
static const int flower_Id = 37;
static const int rose_Id = 38;
static const int mushroom1_Id = 39;
static const int mushroom2_Id = 40;
static const int mushroom_brown_Id = 39;
static const int mushroom_red_Id = 40;
static const int goldBlock_Id = 41;
static const int ironBlock_Id = 42;
static const int stoneSlab_Id = 43;
@@ -346,9 +366,10 @@ public:
static const int redBrick_Id = 45;
static const int tnt_Id = 46;
static const int bookshelf_Id = 47;
static const int mossStone_Id = 48;
static const int mossyCobblestone_Id = 48;
static const int obsidian_Id = 49;
static const int torch_Id = 50;
static const int fire_Id = 51;
static const int mobSpawner_Id = 52;
static const int stairs_wood_Id = 53;
@@ -357,8 +378,9 @@ public:
static const int diamondOre_Id = 56;
static const int diamondBlock_Id = 57;
static const int workBench_Id = 58;
static const int crops_Id = 59;
static const int wheat_Id = 59;
static const int farmland_Id = 60;
static const int furnace_Id = 61;
static const int furnace_lit_Id = 62;
static const int sign_Id = 63;
@@ -369,37 +391,40 @@ public:
static const int wallSign_Id = 68;
static const int lever_Id = 69;
static const int pressurePlate_stone_Id = 70;
static const int door_iron_Id = 71;
static const int pressurePlate_wood_Id = 72;
static const int redStoneOre_Id = 73;
static const int redStoneOre_lit_Id = 74;
static const int notGate_off_Id = 75;
static const int notGate_on_Id = 76;
static const int redstoneTorch_off_Id = 75;
static const int redstoneTorch_on_Id = 76;
static const int button_stone_Id = 77;
static const int topSnow_Id = 78;
static const int ice_Id = 79;
static const int snow_Id = 80;
static const int cactus_Id = 81;
static const int clay_Id = 82;
static const int reeds_Id = 83;
static const int recordPlayer_Id = 84;
static const int jukebox_Id = 84;
static const int fence_Id = 85;
static const int pumpkin_Id = 86;
static const int hellRock_Id = 87;
static const int hellSand_Id = 88;
static const int lightGem_Id = 89;
static const int netherRack_Id = 87;
static const int soulsand_Id = 88;
static const int glowstone_Id = 89;
static const int portalTile_Id = 90;
static const int litPumpkin_Id = 91;
static const int cake_Id = 92;
static const int diode_off_Id = 93;
static const int diode_on_Id = 94;
static const int aprilFoolsJoke_Id = 95;
static const int stained_glass_Id = 95;
static const int trapdoor_Id = 96;
static const int monsterStoneEgg_Id = 97;
static const int stoneBrickSmooth_Id = 98;
static const int hugeMushroom1_Id = 99;
static const int hugeMushroom2_Id = 100;
static const int stoneBrick_Id = 98;
static const int hugeMushroom_brown_Id = 99;
static const int hugeMushroom_red_Id = 100;
static const int ironFence_Id = 101;
static const int thinGlass_Id = 102;
static const int melon_Id = 103;
@@ -408,9 +433,9 @@ public:
static const int vine_Id = 106;
static const int fenceGate_Id = 107;
static const int stairs_bricks_Id = 108;
static const int stairs_stoneBrickSmooth_Id = 109;
static const int stairs_stoneBrick_Id = 109;
static const int mycel_Id = 110;
static const int waterLily_Id = 111;
static const int netherBrick_Id = 112;
static const int netherFence_Id = 113;
@@ -421,36 +446,55 @@ public:
static const int cauldron_Id = 118;
static const int endPortalTile_Id = 119;
static const int endPortalFrameTile_Id = 120;
static const int whiteStone_Id = 121;
static const int endStone_Id = 121;
static const int dragonEgg_Id = 122;
static const int redstoneLight_Id = 123;
static const int redstoneLight_lit_Id = 124;
static const int woodSlab_Id = 125;
static const int woodSlabHalf_Id = 126;
static const int cocoa_Id = 127;
static const int stairs_sandstone_Id = 128;
static const int stairs_sprucewood_Id = 134;
static const int stairs_birchwood_Id = 135;
static const int stairs_junglewood_Id = 136;
static const int emeraldOre_Id = 129;
static const int enderChest_Id = 130;
static const int tripWireSource_Id = 131;
static const int tripWire_Id = 132;
static const int emeraldBlock_Id = 133;
static const int stairs_sprucewood_Id = 134;
static const int stairs_birchwood_Id = 135;
static const int stairs_junglewood_Id = 136;
static const int commandBlock_Id = 137;
static const int beacon_Id = 138;
static const int cobbleWall_Id = 139;
static const int flowerPot_Id = 140;
static const int carrots_Id = 141;
static const int potatoes_Id = 142;
static const int anvil_Id = 145;
static const int button_wood_Id = 143;
static const int skull_Id = 144;
static const int anvil_Id = 145;
static const int chest_trap_Id = 146;
static const int weightedPlate_light_Id = 147;
static const int weightedPlate_heavy_Id = 148;
static const int comparator_off_Id = 149;
static const int comparator_on_Id = 150;
static const int daylightDetector_Id = 151;
static const int redstoneBlock_Id = 152;
static const int netherQuartz_Id = 153;
static const int hopper_Id = 154;
static const int quartzBlock_Id = 155;
static const int stairs_quartz_Id = 156;
static const int activatorRail_Id = 157;
static const int dropper_Id = 158;
static const int clayHardened_colored_Id = 159;
static const int stained_glass_pane_Id = 160;
static const int hayBlock_Id = 170;
static const int woolCarpet_Id = 171;
static const int clayHardened_Id = 172;
static const int coalBlock_Id = 173;
static Tile_SPU m_tiles[256];
@@ -1,10 +1,10 @@
#pragma once
#include "Tile_SPU.h"
#include "RotatedPillarTile_SPU.h"
class Player;
class TreeTile_SPU : public Tile_SPU
class TreeTile_SPU : public RotatedPillarTile_SPU
{
public:
static const int DARK_TRUNK = 1;
@@ -19,29 +19,14 @@ public:
static const int TREE_NAMES_LENGTH = 4;
TreeTile_SPU(int id) : Tile_SPU(id) {}
int getRenderShape() { return Tile_SPU::SHAPE_TREE; }
TreeTile_SPU(int id) : RotatedPillarTile_SPU(id) {}
public:
Icon_SPU *getTexture(int face, int data)
{
int dir = data & MASK_FACING;
int type = data & MASK_TYPE;
if (dir == FACING_Y && (face == Facing::UP || face == Facing::DOWN))
{
return &ms_pTileData->treeTile_icons_top[type];
}
else if (dir == FACING_X && (face == Facing::EAST || face == Facing::WEST))
{
return &ms_pTileData->treeTile_icons_top[type];
}
else if (dir == FACING_Z && (face == Facing::NORTH || face == Facing::SOUTH))
{
return &ms_pTileData->treeTile_icons_top[type];
}
Icon_SPU *getTypeTexture(int type) {
return &ms_pTileData->treeTile_icons_side[type];
}
};
Icon_SPU *getTopTexture(int type) {
return &ms_pTileData->treeTile_icons_top[type];
};
};
@@ -22,7 +22,7 @@ public:
{
if (data == TYPE_MOSSY)
{
return TileRef_SPU(mossStone_Id)->getTexture(face);
return TileRef_SPU(mossyCobblestone_Id)->getTexture(face);
}
return TileRef_SPU(stoneBrick_Id)->getTexture(face);
@@ -0,0 +1,22 @@
#pragma once
#include "BasePressurePlateTile_SPU.h"
class WeightedPressurePlateTile_SPU : public BasePressurePlateTile_SPU
{
public:
enum Sensitivity
{
everything, mobs, players
};
private:
Sensitivity sensitivity;
public:
WeightedPressurePlateTile_SPU(int id) : BasePressurePlateTile_SPU(id) {}
protected:
virtual int getSignalForData(int data) {
return data;
};
};
@@ -7,7 +7,7 @@ class WoolCarpetTile_SPU : public Tile_SPU
public:
WoolCarpetTile_SPU(int id) : Tile_SPU(id) {}
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(cloth_Id)->getTexture(face, data); }
Icon_SPU *getTexture(int face, int data) { return TileRef_SPU(wool_Id)->getTexture(face, data); }
bool isSolidRender(bool isServerLevel = false) { return false; }
void updateDefaultShape() { updateShape(0); }
void updateShape(ChunkRebuildData *level, int x, int y, int z) { updateShape(level->getData(x, y, z)); }
@@ -0,0 +1,11 @@
#pragma once
#include "Tile_SPU.h"
class WoolTile_SPU : public Tile_SPU
{
public:
WoolTile_SPU(int id) : Tile_SPU(id) {}
virtual Icon_SPU *getTexture(int face, int data) { return &ms_pTileData->woolTile_icons[data]; }
};

Some files were not shown because too many files have changed in this diff Show More