95 Commits
Author SHA1 Message Date
pieeebot d24c73d4c7 fix: networking fixes + add server 2026-09-25 13:43:05 +01:00
pieeebot faf3a3edea fix: INP_OnScreenKeyboard softlock 2026-09-22 13:37:25 +01:00
pieeebot 1e747b70e7 fix: missing LeaveCriticalSection(&s_sendLock); 2026-09-14 19:50:32 +01:00
pieeebot e16d566853 chore: update 4JLibs 2026-09-13 16:05:14 +01:00
pieeebot fc988df2cc fix: compile error 2026-09-13 15:20:09 +01:00
pieeebot ca4a561d07 fix: compile error 2026-09-13 15:05:02 +01:00
pieeebot 1e47ff84a9 fix: compile errors 2026-09-13 14:48:48 +01:00
pieeebot a2dad85bb1 chore/fix: clean up NetworkSocketLayer, fix console compile errors 2026-09-13 14:10:24 +01:00
str1k3r 0405a47bd1 fix: project filter 2026-09-06 09:47:05 -04:00
str1k3r 0e7da09615 fix: submodule 2026-09-06 09:41:11 -04:00
str1k3r ad7dd528f7 chore: no we use submodule 2026-09-06 09:33:58 -04:00
str1k3r 83e11bdf9b Merge remote-tracking branch 'origin/main' into networking 2026-09-06 09:33:19 -04:00
str1k3r 7b4821d329 fix: being able to fly while riding entity 2026-09-05 12:43:40 -04:00
str1k3r a8a2c5393a chore: cleanup media folder & update platform swfs 2026-09-05 11:45:05 -04:00
str1k3r e21c637b3c fix: 4Jlibs out of date 2026-09-05 09:22:19 -04:00
str1k3r b22decd65c fix: case being commented out 2026-09-05 09:18:10 -04:00
str1k3r 9b7d5a0c25 refactor: use enum controller types 2026-09-05 09:17:13 -04:00
str1k3r e71fe15126 fix: signin ui showing with multiple controllers 2026-09-05 09:14:31 -04:00
str1k3r 8e471b7e9c feat: auto switching tooltips
Currently doesnt work with PS4 & PS3 tooltips, only works with Xbox one & Xbox 360 tooltips
2026-09-05 02:18:20 -04:00
str1k3r 6800455166 chore: cleanup function names & update gdraw resolution 2026-09-05 01:17:52 -04:00
pieeebot 1e37e0207c chore: update README.md 2026-09-03 11:18:38 +00:00
pieeebot 195672f73c chore: base disclaimer warning 2026-09-03 11:17:41 +00:00
str1k3r 4020b16864 feat: auto switching tooltips (not fully done) 2026-09-02 22:45:39 -04:00
pieeebot 5065c28b5c update 4JLibs 2026-09-02 17:30:36 +03:00
pieeebot 39c22195fb fix: remove windows64 ifdef for circlecrossed buttons 2026-08-31 17:35:53 +03:00
str1k3r 41b976ed9e fix: the cheeky fix for orbis 2026-08-30 20:05:33 -04:00
str1k3r fc1a6a80e3 feat: update 4JLibs & add win64 to splitsave case 2026-08-30 18:08:18 -04:00
str1k3r 902a6ca641 fix: miles not shutting down, copying extra stuff to output folder, typo, durango output paths & stray pixel on logos 2026-08-29 13:04:39 -04:00
pieeebot 4e368283e1 fix: include server 4JLibs 2026-08-29 15:26:05 +03:00
pieeebot 4b962fcb21 feat: add smartcmd dedicated server
major bug: when connecting to the server a second time, it gets softlocked and keeps repeating ticking connection A\n in debug logs until it times out.
2026-08-29 14:01:24 +03:00
str1k3r 81e4a789b6 fix: non High Def resolutions not showing splitscreen hint & fix missing string 2026-08-26 21:59:06 -04:00
str1k3r 78f192ed76 fix: windows64 only falling back to 720 & update 4JLibs 2026-08-25 21:52:46 -04:00
str1k3r 344fd63488 feat: new logo 2026-08-24 21:45:05 -04:00
str1k3r 1f3664da94 fix: vita skin on windows64 & make cursor the lce pointer 2026-08-23 23:23:02 -04:00
str1k3r a43edb9faa chore: update discord link 2026-08-23 18:52:43 -04:00
str1k3r b62b7eb04d fix: sign over char limit crash 2026-08-23 18:42:22 -04:00
str1k3r 5531c673cd fix: typo 2026-08-23 18:01:19 -04:00
str1k3r 91ed8dceb6 chore: update 4jlibs 2026-08-23 17:56:55 -04:00
str1k3r 9cabad158a feat: ability to turn off vsync 2026-08-23 17:56:01 -04:00
str1k3r 6878c47f24 feat: durango ui parity & setting name 2026-08-22 18:37:33 -04:00
str1k3r a26fa24890 fix: string spacing 2026-08-22 18:09:51 -04:00
str1k3r 3f8321240f refactor: remove X360 specific stuff from non X360 platforms
and abit of PS3 only stuff from PSVita
2026-08-21 21:50:18 -04:00
str1k3r e52fce044a fix: D3D debug flag on non debug builds 2026-08-21 21:10:44 -04:00
str1k3r 327da2f843 fix(Windows64): SoundEngine starting abit late 2026-08-21 19:28:33 -04:00
str1k3r 5845c6ce26 fix: game always closing with exitcode 0 2026-08-21 17:58:41 -04:00
str1k3r f615927e0e feat: settings saving 2026-08-19 23:10:58 -04:00
str1k3r 5a3c528ed0 fix: durango being included in TMS ifdef
Durango lit doesnt support this idk why i even added it
2026-08-19 16:08:22 -04:00
str1k3r fe90a6c640 feat: better FatalLoadError, clean up build outputs & fix some def's 2026-08-19 01:03:39 -04:00
str1k3r 6512a32798 feat: FatalLoadError on Windows64
also readded TemporaryCreateGameStart
2026-08-18 18:31:50 -04:00
str1k3r 8fffd28dda fix: 4J 2026-08-16 19:33:45 -04:00
str1k3r e5b6a63d4c chore: fix Minecraft.xzp 2026-08-16 16:37:53 -04:00
str1k3r 12a601d478 chore: update Minecraft.xzp 2026-08-16 16:24:51 -04:00
str1k3r de526b7bd9 chore: update windows64 & durango strings & update x360 panorama 2026-08-16 16:08:58 -04:00
str1k3r ad62c603da fix(X360): Contentpackage not booting 2026-08-16 01:31:58 -04:00
str1k3r 90f771e038 fix: X360 build configs 2026-08-15 22:26:57 -04:00
str1k3r c8ffa527c8 fix: Files being included on wrong plats & ps3 postbuild 2026-08-15 22:09:43 -04:00
str1k3r b1d583721f fix: console compiling 2026-08-15 21:15:39 -04:00
str1k3r 8ee10c3a68 fix: release workflow not pulling submodules & bump checkout ver 2026-08-16 00:34:33 +00:00
str1k3r c988bd564d update submodule 2026-08-15 19:00:49 -04:00
str1k3r 71a972a033 fix: windows64 release workflow 2026-08-15 18:17:06 -04:00
str1k3r a047df6dc4 feat: release workflow for windows64 only 2026-08-15 22:08:57 +00:00
str1k3r 1763155fc6 fix: missing stuff from last commit 2026-08-15 17:17:27 -04:00
str1k3r 1a903c65dc fix: down DPAD opening 2 menus. small UI Parity, fix debug ifdefs, add -resolution arg, remove random debugbreak 2026-08-15 14:46:34 -04:00
pieeebot a1541c590d Revert LCEMP dedicated server changes
Apparently smartcmd used their own dedicated server and not LCEMP's, starting from scratch!
2026-08-15 03:28:51 +03:00
str1k3r 9d19fdc5f5 feat: Fullscreen, fix sending input when window not focused, fix iggy lib not being copied & request dedicated GPU 2026-08-14 19:44:30 -04:00
qloak 14cd85e7ed fix: Xbox 360 fixes (#31)
Fixes black text and newer DLCs crashingReviewed-on: cafeberry/cafeberry#31

Co-authored-by: qloak <realminecart@gmail.com>
2026-08-14 21:32:25 +00:00
pieeebot 9e3077c3bc LCEMP commit: world/server linux support, a ton of fixes, initial ded server support 2026-08-14 15:06:42 +03:00
pieeebot 494235878e LCEMP commit: multiple savefile fixes 2026-08-14 14:39:13 +03:00
pieeebot feeff55924 LCEMP Commit: add dedicated server check to sessioninfo 2026-08-14 13:42:38 +03:00
pieeebot f404e4b4e4 LCEMP commit: prepare code for dedicated server support 2026-08-14 13:32:11 +03:00
pieeebot 67a8111974 LCEMP commit: support more max players 2026-08-14 11:46:19 +03:00
pieeebot 6853eab85f update lcemp networking 2026-08-14 07:02:50 +03:00
qloak 125819419f Xbox 360 fixes (again...) (#29)
Merging main repo undid a lot of my changes so this PR reimplements them. Fixes build and playthrough. Has been tested.Reviewed-on: pieeebot/cafeberry#29

Co-authored-by: qloak <realminecart@gmail.com>
2026-08-08 12:23:28 +00:00
qloak ebbd54288b Fix X360 Crossplay (#26)
^Reviewed-on: pieeebot/cafeberry#26

Co-authored-by: qloak <realminecart@gmail.com>
2026-08-07 17:14:12 +00:00
ubergamer-pieand552eden 92891de261 Fix: PS3 SPU build task (#25)
Fixed PS3 SPU build task

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: pieeebot/cafeberry#25
Co-authored-by: ubergamer-pie <16+ubergamer-pie@noreply.localhost>
2026-08-06 04:04:50 +00:00
ubergamer-pieand552eden 6167e04f82 Disable _LARGE_WORLDS for PS4 (#24)
Temporarily disabled _LARGE_WORLDS to get all platforms communicating with eachother.

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: pieeebot/cafeberry#24
Co-authored-by: ubergamer-pie <16+ubergamer-pie@noreply.localhost>
2026-08-05 20:02:49 +00:00
ubergamer-pieand552eden 0443166b6a fix: vita networking(#23)
VITA Networking is now working. but it can only connect to non LARGE_WORLDS.

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: pieeebot/cafeberry#23
Co-authored-by: ubergamer-pie <16+ubergamer-pie@noreply.localhost>
2026-08-05 16:59:22 +00:00
NaN 4b0520c938 fix PS4 networking support (#20)
gonna mark this a WIP till i test more with large worlds and achievements issues i dont wanna break the PS3 and other builds by enabling it freely,

ideally i can get it to work without it

also i wanna remove the GetLocalIPv4Interfaces auto discovery feature i just did that cause i had so many local networks it got confusing, will remove on Final PR editReviewed-on: pieeebot/cafeberry#20

Co-authored-by: NaN <nan@str1k3r.xyz>
2026-08-04 22:49:46 +00:00
ubergamer-pieand552eden 2840b7620b fix psvita being in trial mode + play game button freezing the entire game (#22)
fixed lock crash and enabled full mode for vita

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: pieeebot/cafeberry#22
Co-authored-by: ubergamer-pie <16+ubergamer-pie@noreply.localhost>
2026-08-04 22:19:29 +00:00
ubergamer-pieand552eden 5451249347 fixed vita startup crash by guarding commerce calls (#21)
Commerce calls are now guarded with `#elif defined(__PSVITA__) && !defined(DISABLE_PSN)`

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: pieeebot/cafeberry#21
Co-authored-by: ubergamer-pie <16+ubergamer-pie@noreply.localhost>
2026-08-04 21:41:13 +00:00
str1k3r de8bf25fbe Merge branch 'main' into networking 2026-08-04 09:39:41 -04:00
pieeebot 64e95393c8 fix ps3 compile errors 2026-08-04 07:40:52 +03:00
pieeebot ea3621971f psvita networking (Experimental) 2026-08-04 07:04:38 +03:00
pieeebot ce3e83039d rename network scripts 2026-08-03 04:18:33 +03:00
pieeebot 42f09f93e5 Fix Windows64 720p crash 2026-08-03 04:11:11 +03:00
pieeebot 9f8dab8ebb Merge branch 'main' into networking 2026-08-03 02:03:23 +03:00
pieeebot 5ebaab0ac9 Fix Shadps4 crash 2026-08-02 23:05:25 +03:00
pieeebot 92209cf909 add ps4 support 2026-08-02 22:06:27 +03:00
pieeebot 94f1cefcf9 Merge branch 'main' into networking 2026-08-02 18:58:23 +03:00
pieeebot e254228cf5 update lcemp networking 2026-08-02 03:33:11 +03:00
pieeebot b87d044cf0 fix crash when opening loadorjoin a second time 2026-08-01 22:56:12 +03:00
pieeebot 01abe05b18 attempt at trying to get XB360 to work 2026-08-01 06:15:37 +03:00
pieeebot 2170209e26 Merge branch 'main' into networking 2026-08-01 02:04:05 +03:00
pieeebot 991369547a fix compile error 2026-07-31 22:35:05 +03:00
pieeebot dbd90a75c9 add lcemp networking + ps3 support
YES I KNOW ITS GARBAGE, THATS WHY ITS NOT ON MAIN

ILL FIX IT UP IN FUTURE COMMITS THEN MERGE TO MAIN
2026-07-31 22:08:30 +03:00
1596 changed files with 299489 additions and 269493 deletions

No files matched your search

+114
View File
@@ -0,0 +1,114 @@
name: Build & Release Windows64
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:
needs: validate
strategy:
matrix:
configuration: [ContentPackage]
platform: [Windows64]
include:
- platform: Windows64
sdk_label: windows-2022 # str1k3r - can run on any runner
runs-on: [windows-2022, "${{ matrix.sdk_label }}"]
steps:
- name: Checkout Repository
uses: https://github.com/actions/checkout@v4
with:
fetch-depth: 1
clean: false
lfs: false
submodules: true
- 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
run: |
7z a -r "LCEWindows64.zip" "./x64/${{ matrix.configuration }}/*" "-x!*.pdb" "-x!*.pch" "-x!*.ilk" "-x!*.lib" "-x!*.exp"
- name: Stage artifacts
run: |
New-Item -ItemType Directory -Force -Path staging
Copy-Item "LCE${{ matrix.platform }}.zip" staging/
Copy-Item "./x64/${{ matrix.configuration }}/Minecraft.Client.exe" staging/
- name: Upload artifacts
uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with:
name: build-${{ matrix.platform }}
path: staging/*
compression-level: 0
release:
needs: build
runs-on: windows-2022
steps:
- name: Download all build artifacts
uses: https://github.com/christopherHX/gitea-download-artifact@v4
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
}
} else {
$body = $fallback
}
$delimiter = "EOF_$([System.Guid]::NewGuid().ToString('N'))"
$content = "description<<$delimiter`n$body`n$delimiter`n"
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::AppendAllText($env:GITHUB_OUTPUT, $content, $utf8NoBom)
- 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 }}
+2 -1
View File
@@ -45,11 +45,12 @@ jobs:
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: https://github.com/actions/checkout@v4 uses: actions/checkout@v6
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false clean: false
lfs: false lfs: false
submodules: recursive
- name: Build Cafeberry - name: Build Cafeberry
run: | run: |
+15 -2
View File
@@ -6,15 +6,24 @@
/*Release* /*Release*
/*ContentPackage* /*ContentPackage*
# Minecraft.Server
/Minecraft.Server/x64
/Minecraft.Server/x64_*
/Minecraft.Server/*Debug
/Minecraft.Server/*Release*
/Minecraft.Server/*Server*
/Minecraft.Server/*ContentPackage*
# Minecraft.Client # Minecraft.Client
/Minecraft.Client/x64 /Minecraft.Client/x64
/Minecraft.Client/x64_* /Minecraft.Client/x64_*
/Minecraft.Client/*Debug /Minecraft.Client/*Debug
/Minecraft.Client/*Release* /Minecraft.Client/*Release*
/Minecraft.Client/*Server*
/Minecraft.Client/*ContentPackage* /Minecraft.Client/*ContentPackage*
/Minecraft.Client/Windows64/GameHDD /Minecraft.Client/Windows64/GameHDD
# Minecraft.world # Minecraft.World
/Minecraft.World/x64 /Minecraft.World/x64
/Minecraft.World/x64_* /Minecraft.World/x64_*
/Minecraft.World/*Debug /Minecraft.World/*Debug
@@ -28,6 +37,10 @@
/Minecraft.Client/PS3/SPU_Tasks/*/Release /Minecraft.Client/PS3/SPU_Tasks/*/Release
/Minecraft.Client/PS3/SPU_Tasks/*/ContentPackage /Minecraft.Client/PS3/SPU_Tasks/*/ContentPackage
# Xbox 360 XZP & XURs
Minecraft.Client/XboxMedia/XZP
Minecraft.Client/Common/Media/XURs
# Misc # Misc
*.ppu.o *.ppu.o
*.pkg *.pkg
@@ -39,4 +52,4 @@
*.opensdf *.opensdf
*.v11.suo *.v11.suo
*.vcxproj.user *.vcxproj.user
*.aps *.aps
+1 -1
View File
@@ -1,5 +1,5 @@
[submodule "Minecraft.Client/Windows64/4JLibs"] [submodule "Minecraft.Client/Windows64/4JLibs"]
path = Minecraft.Client/Windows64/4JLibs path = Minecraft.Client/Windows64/4JLibs
url = https://gitea.str1k3r.xyz/pieeebot/Cafeberry-4JLibs url = https://gitea.str1k3r.xyz/cafeberry/4JLibs.git
ignore = untracked ignore = untracked
branch = main branch = main
+1 -1
View File
@@ -248,7 +248,7 @@ void AbstractTexturePack::loadDefaultUI()
//CXuiSceneBase::GetInstance()->SetVisualPrefix(L"TexturePack"); //CXuiSceneBase::GetInstance()->SetVisualPrefix(L"TexturePack");
CXuiSceneBase::GetInstance()->SkinChanged(CXuiSceneBase::GetInstance()->m_hObj); CXuiSceneBase::GetInstance()->SkinChanged(CXuiSceneBase::GetInstance()->m_hObj);
#else #else
ui.ReloadSkin(); ui.ReloadSkins();
#endif #endif
} }
+4 -2
View File
@@ -402,6 +402,7 @@ void Chunk::rebuild()
} }
Tile *tile = Tile::tiles[tileId]; Tile *tile = Tile::tiles[tileId];
if (!tile) continue;
if (currentLayer == 0 && tile->isEntityTile()) if (currentLayer == 0 && tile->isEntityTile())
{ {
shared_ptr<TileEntity> et = region->getTileEntity(x, y, z); shared_ptr<TileEntity> et = region->getTileEntity(x, y, z);
@@ -739,9 +740,9 @@ void Chunk::rebuild_SPU()
{ {
// 4J - get tile from those copied into our local array in earlier optimisation // 4J - get tile from those copied into our local array in earlier optimisation
unsigned char tileId = pOutData->getTile(x,y,z); unsigned char tileId = pOutData->getTile(x,y,z);
if (tileId > 0) if (tileId > 0 && tileId != 0xff)
{ {
if (currentLayer == 0 && Tile::tiles[tileId]->isEntityTile()) if (currentLayer == 0 && Tile::tiles[tileId] && Tile::tiles[tileId]->isEntityTile())
{ {
shared_ptr<TileEntity> et = region.getTileEntity(x, y, z); shared_ptr<TileEntity> et = region.getTileEntity(x, y, z);
if (TileEntityRenderDispatcher::instance->hasRenderer(et)) if (TileEntityRenderDispatcher::instance->hasRenderer(et))
@@ -754,6 +755,7 @@ void Chunk::rebuild_SPU()
{ {
Tile *tile = Tile::tiles[tileId]; Tile *tile = Tile::tiles[tileId];
if (!tile) continue;
int renderLayer = tile->getRenderLayer(); int renderLayer = tile->getRenderLayer();
if (renderLayer != currentLayer) if (renderLayer != currentLayer)
+64 -5
View File
@@ -50,11 +50,16 @@
#else #else
#include "Common\UI\UI.h" #include "Common\UI\UI.h"
#endif #endif
#ifdef __PS3__ #if defined __PS3__ && !defined DISABLE_PSN
#include "PS3/Network/SonyVoiceChat.h" #include "PS3/Network/SonyVoiceChat.h"
#endif #endif
#include "DLCTexturePack.h" #include "DLCTexturePack.h"
#if defined _WINDOWS64 || defined DISABLE_PSN || defined _DISABLE_XBLIVE
#include "Xbox\Network\NetworkPlayerXbox.h"
#include "Common\Network\PlatformNetworkManager.h"
#endif
#ifdef _DURANGO #ifdef _DURANGO
#include "..\Minecraft.World\DurangoStats.h" #include "..\Minecraft.World\DurangoStats.h"
#include "..\Minecraft.World\GenericStats.h" #include "..\Minecraft.World\GenericStats.h"
@@ -298,6 +303,10 @@ void ClientConnection::handleLogin(shared_ptr<LoginPacket> packet)
level->isClientSide = true; level->isClientSide = true;
minecraft->setLevel(level); minecraft->setLevel(level);
} }
else
{
level = (MultiPlayerLevel *)dimensionLevel;
}
minecraft->player->setPlayerIndex( packet->m_playerIndex ); minecraft->player->setPlayerIndex( packet->m_playerIndex );
minecraft->player->setCustomSkin( app.GetPlayerSkinId(m_userIndex) ); minecraft->player->setCustomSkin( app.GetPlayerSkinId(m_userIndex) );
@@ -771,6 +780,7 @@ void ClientConnection::handleAddPlayer(shared_ptr<AddPlayerPacket> packet)
player->yRotp = packet->yRot; player->yRotp = packet->yRot;
player->yHeadRot = packet->yHeadRot * 360 / 256.0f; player->yHeadRot = packet->yHeadRot * 360 / 256.0f;
player->setXuid(packet->xuid); player->setXuid(packet->xuid);
player->setOnlineXuid(packet->OnlineXuid);
#ifdef _DURANGO #ifdef _DURANGO
// On Durango request player display name from network manager // On Durango request player display name from network manager
@@ -781,6 +791,32 @@ void ClientConnection::handleAddPlayer(shared_ptr<AddPlayerPacket> packet)
player->m_displayName = player->name; player->m_displayName = player->name;
#endif #endif
#if defined _WINDOWS64 || defined DISABLE_PSN || defined _DISABLE_XBLIVE
{
PlayerUID netXuid = packet->OnlineXuid;
const PlayerUID WIN64_XUID_BASE = (PlayerUID)0xe000d45248242f2e;
if (netXuid >= WIN64_XUID_BASE && netXuid < WIN64_XUID_BASE + MINECRAFT_NET_MAX_PLAYERS)
{
BYTE smallId = (BYTE)(netXuid - WIN64_XUID_BASE);
INetworkPlayer *np = g_NetworkManager.GetPlayerBySmallId(smallId);
if (np != NULL)
{
NetworkPlayerXbox *npx = (NetworkPlayerXbox *)np;
IQNetPlayer *qp = npx->GetQNetPlayer();
if (qp != NULL)
{
wcsncpy(qp->m_gamertag, packet->name.c_str(), 31);
qp->m_gamertag[31] = L'\0';
if (g_NetworkManager.IsHost())
{
g_NetworkManager.UpdateAndSetGameSessionData();
}
}
}
}
}
#endif
// printf("\t\t\t\t%d: Add player\n",packet->id,packet->yRot); // printf("\t\t\t\t%d: Add player\n",packet->id,packet->yRot);
int item = packet->carriedItem; int item = packet->carriedItem;
@@ -1004,6 +1040,7 @@ void ClientConnection::handleChunkVisibility(shared_ptr<ChunkVisibilityPacket> p
void ClientConnection::handleChunkTilesUpdate(shared_ptr<ChunkTilesUpdatePacket> packet) void ClientConnection::handleChunkTilesUpdate(shared_ptr<ChunkTilesUpdatePacket> packet)
{ {
// 4J - changed to encode level in packet // 4J - changed to encode level in packet
if (packet->levelIdx >= minecraft->levels.length) return;
MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx]; MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx];
if( dimensionLevel ) if( dimensionLevel )
{ {
@@ -1073,6 +1110,7 @@ void ClientConnection::handleChunkTilesUpdate(shared_ptr<ChunkTilesUpdatePacket>
void ClientConnection::handleBlockRegionUpdate(shared_ptr<BlockRegionUpdatePacket> packet) void ClientConnection::handleBlockRegionUpdate(shared_ptr<BlockRegionUpdatePacket> packet)
{ {
// 4J - changed to encode level in packet // 4J - changed to encode level in packet
if (packet->levelIdx >= minecraft->levels.length) return;
MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx]; MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx];
if( dimensionLevel ) if( dimensionLevel )
{ {
@@ -1130,6 +1168,8 @@ void ClientConnection::handleTileUpdate(shared_ptr<TileUpdatePacket> packet)
destroyTilePacket = true; destroyTilePacket = true;
} }
// 4J - changed to encode level in packet // 4J - changed to encode level in packet
if (packet->levelIdx >= minecraft->levels.length) return;
MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx]; MultiPlayerLevel *dimensionLevel = (MultiPlayerLevel *)minecraft->levels[packet->levelIdx];
if( dimensionLevel ) if( dimensionLevel )
{ {
@@ -1769,6 +1809,7 @@ void ClientConnection::handleEntityActionAtPosition(shared_ptr<EntityActionAtPos
void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet) void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
{ {
app.DebugPrintf("ClientConnection::handlePreLogin ENTER (user %d)\n", m_userIndex);
// printf("Client: handlePreLogin\n"); // printf("Client: handlePreLogin\n");
#if 1 #if 1
// 4J - Check that we can play with all the players already in the game who have Friends-Only UGC set // 4J - Check that we can play with all the players already in the game who have Friends-Only UGC set
@@ -1784,13 +1825,17 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
app.SetGameHostOption(eGameHostOption_All,packet->m_serverSettings); app.SetGameHostOption(eGameHostOption_All,packet->m_serverSettings);
// 4J-PB - if we go straight in from the menus via an invite, we won't have the DLC info // 4J-PB - if we go straight in from the menus via an invite, we won't have the DLC info
//str1k3r - TMS only exists on Xbox 360 therefore, we only need this on Xbox 360.
#ifdef _XBOX
if(app.GetTMSGlobalFileListRead()==false) if(app.GetTMSGlobalFileListRead()==false)
{ {
app.SetTMSAction(ProfileManager.GetPrimaryPad(),eTMSAction_TMSPP_RetrieveFiles_RunPlayGame); app.SetTMSAction(ProfileManager.GetPrimaryPad(),eTMSAction_TMSPP_RetrieveFiles_RunPlayGame);
} }
#endif
} }
#ifdef _XBOX #ifdef _XBOX
#if !defined(_DISABLE_XBLIVE)
if(!g_NetworkManager.IsHost() && !app.GetGameHostOption(eGameHostOption_FriendsOfFriends)) if(!g_NetworkManager.IsHost() && !app.GetGameHostOption(eGameHostOption_FriendsOfFriends))
{ {
if(m_userIndex == ProfileManager.GetPrimaryPad() ) if(m_userIndex == ProfileManager.GetPrimaryPad() )
@@ -1934,6 +1979,16 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
} }
} }
} }
#else
// Offline/system-link games have no Xbox Live friend list, so grant all
// pre-login permissions (the Xbox Live-only checks above would otherwise
// fail and reject the client's own pre-login before Login is ever sent).
canPlay = TRUE;
canPlayLocal = TRUE;
isAtLeastOneFriend = TRUE;
isFriendsWithHost = TRUE;
cantPlayContentRestricted = FALSE;
#endif // _DISABLE_XBLIVE
#else #else
// TODO - handle this kind of things for non-360 platforms // TODO - handle this kind of things for non-360 platforms
canPlay = TRUE; canPlay = TRUE;
@@ -1941,7 +1996,7 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
isAtLeastOneFriend = TRUE; isAtLeastOneFriend = TRUE;
cantPlayContentRestricted= FALSE; cantPlayContentRestricted= FALSE;
#if ( defined __PS3__ || defined __ORBIS__ || defined __PSVITA__) #if !defined DISABLE_PSN && ( defined __PS3__ || defined __ORBIS__ || defined __PSVITA__)
if(!g_NetworkManager.IsHost() && !app.GetGameHostOption(eGameHostOption_FriendsOfFriends)) if(!g_NetworkManager.IsHost() && !app.GetGameHostOption(eGameHostOption_FriendsOfFriends))
{ {
@@ -2223,7 +2278,8 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
} }
BOOL allAllowed, friendsAllowed; BOOL allAllowed, friendsAllowed;
ProfileManager.AllowedPlayerCreatedContent(m_userIndex,true,&allAllowed,&friendsAllowed); ProfileManager.AllowedPlayerCreatedContent(m_userIndex,true,&allAllowed,&friendsAllowed);
send( shared_ptr<LoginPacket>( new LoginPacket(minecraft->user->name, SharedConstants::NETWORK_PROTOCOL_VERSION, offlineXUID, onlineXUID, (allAllowed!=TRUE && friendsAllowed==TRUE), app.DebugPrintf("ClientConnection::handlePreLogin SENDING LoginPacket (user %d)\n", m_userIndex);
send( shared_ptr<LoginPacket>( new LoginPacket(minecraft->user->name, SharedConstants::NETWORK_PROTOCOL_VERSION, offlineXUID, onlineXUID, (allAllowed!=TRUE && friendsAllowed==TRUE),
packet->m_ugcPlayersVersion, app.GetPlayerSkinId(m_userIndex), app.GetPlayerCapeId(m_userIndex), ProfileManager.IsGuest( m_userIndex )))); packet->m_ugcPlayersVersion, app.GetPlayerSkinId(m_userIndex), app.GetPlayerCapeId(m_userIndex), ProfileManager.IsGuest( m_userIndex ))));
if(!g_NetworkManager.IsHost() ) if(!g_NetworkManager.IsHost() )
@@ -2273,6 +2329,7 @@ void ClientConnection::handleAddMob(shared_ptr<AddMobPacket> packet)
float xRot = packet->xRot * 360 / 256.0f; float xRot = packet->xRot * 360 / 256.0f;
shared_ptr<LivingEntity> mob = dynamic_pointer_cast<LivingEntity>(EntityIO::newById(packet->type, level)); shared_ptr<LivingEntity> mob = dynamic_pointer_cast<LivingEntity>(EntityIO::newById(packet->type, level));
if (mob == NULL) return;
mob->xp = packet->x; mob->xp = packet->x;
mob->yp = packet->y; mob->yp = packet->y;
mob->zp = packet->z; mob->zp = packet->z;
@@ -3516,10 +3573,12 @@ void ClientConnection::handleCustomPayload(shared_ptr<CustomPayloadPacket> custo
} }
#else #else
UIScene *scene = ui.GetTopScene(m_userIndex, eUILayer_Scene); UIScene *scene = ui.GetTopScene(m_userIndex, eUILayer_Scene);
UIScene_TradingMenu *screen = (UIScene_TradingMenu *)scene; UIScene_TradingMenu *screen = dynamic_cast<UIScene_TradingMenu *>(scene);
trader = screen->getMerchant(); if (screen != NULL)
trader = screen->getMerchant();
#endif #endif
if (trader == NULL) return;
MerchantRecipeList *recipeList = MerchantRecipeList::createFromStream(&input); MerchantRecipeList *recipeList = MerchantRecipeList::createFromStream(&input);
trader->overrideOffers(recipeList); trader->overrideOffers(recipeList);
} }
+2 -1
View File
@@ -875,7 +875,8 @@ enum EControllerActions
MINECRAFT_ACTION_SPAWN_CREEPER, MINECRAFT_ACTION_SPAWN_CREEPER,
MINECRAFT_ACTION_CHANGE_SKIN, MINECRAFT_ACTION_CHANGE_SKIN,
MINECRAFT_ACTION_FLY_TOGGLE, MINECRAFT_ACTION_FLY_TOGGLE,
MINECRAFT_ACTION_RENDER_DEBUG MINECRAFT_ACTION_RENDER_DEBUG,
MINECRAFT_ACTION_RENDER_DEBUG_SCREEN
}; };
enum eMCLang enum eMCLang
+1 -1
View File
@@ -162,7 +162,7 @@ MOJANG_DATA;
typedef struct typedef struct
{ {
eDLCContentType eDLCType; eDLCContentType eDLCType;
#if defined( __PS3__) || defined(__ORBIS__) || defined (__PSVITA__) #if !defined(DISABLE_PSN) && (defined( __PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
char chImageURL[256];//SCE_NP_COMMERCE2_URL_LEN char chImageURL[256];//SCE_NP_COMMERCE2_URL_LEN
#else #else
+13 -50
View File
@@ -22,44 +22,13 @@
#ifdef __ORBIS__ #ifdef __ORBIS__
#include <audioout.h> #include <audioout.h>
//#define __DISABLE_MILES__ // MGH disabled for now as it crashes if we call sceNpMatching2Initialize //#define __DISABLE_MILES__ // MGH disabled for now as it crashes if we call sceNpMatching2Initialize
#endif #endif
// take out Orbis until they are done
#if defined _XBOX
SoundEngine::SoundEngine() {}
void SoundEngine::init(Options *pOptions)
{
}
void SoundEngine::tick(shared_ptr<Mob> *players, float a)
{
}
void SoundEngine::destroy() {}
void SoundEngine::play(int iSound, float x, float y, float z, float volume, float pitch)
{
app.DebugPrintf("PlaySound - %d\n",iSound);
}
void SoundEngine::playStreaming(const wstring& name, float x, float y , float z, float volume, float pitch, bool bMusicDelay) {}
void SoundEngine::playUI(int iSound, float volume, float pitch) {}
void SoundEngine::updateMusicVolume(float fVal) {}
void SoundEngine::updateSoundEffectVolume(float fVal) {}
void SoundEngine::add(const wstring& name, File *file) {}
void SoundEngine::addMusic(const wstring& name, File *file) {}
void SoundEngine::addStreaming(const wstring& name, File *file) {}
char *SoundEngine::ConvertSoundPathToName(const wstring& name, bool bConvertSpaces) { return NULL; }
bool SoundEngine::isStreamingWavebankReady() { return true; }
void SoundEngine::playMusicTick() {};
#else
// str1k3r: previously ps4 needed the durango folder to load sound and so did windows this fixes that and makes them use there own folders. // str1k3r: previously ps4 needed the durango folder to load sound and so did windows this fixes that and makes them use there own folders.
#ifdef _WINDOWS64 #ifdef _WINDOWS64
char SoundEngine::m_szSoundPath[]={"Windows64Media\\Sound\\"}; char SoundEngine::m_szSoundPath[]={"Windows64Media\\Sound\\"};
char SoundEngine::m_szMusicPath[]={"music\\"}; char SoundEngine::m_szMusicPath[]={"music\\"};
char SoundEngine::m_szRedistName[]={"Windows64\\redist64"}; //str1k3r - moved this to a the Windows64 dir so its out of plain view char SoundEngine::m_szRedistName[]={"Windows64\\redist64"}; //str1k3r - moved this to the Windows64 dir so its out of plain view
#elif defined _DURANGO #elif defined _DURANGO
char SoundEngine::m_szSoundPath[]={"Sound\\"}; char SoundEngine::m_szSoundPath[]={"Sound\\"};
char SoundEngine::m_szMusicPath[]={"music\\"}; char SoundEngine::m_szMusicPath[]={"music\\"};
@@ -79,7 +48,7 @@ char SoundEngine::m_szMusicPath[]={"music/"};
char SoundEngine::m_szRedistName[]={"redist"}; char SoundEngine::m_szRedistName[]={"redist"};
#endif #endif
/*#ifdef _CONTENT_PACKAGE // strk1k3r - not needed use default paths instead. /*#ifdef _CONTENT_PACKAGE // str1k3r - not needed use default paths instead.
char SoundEngine::m_szSoundPath[]={"Sound/"}; char SoundEngine::m_szSoundPath[]={"Sound/"};
#elif defined _ART_BUILD #elif defined _ART_BUILD
char SoundEngine::m_szSoundPath[]={"Sound/"}; char SoundEngine::m_szSoundPath[]={"Sound/"};
@@ -111,7 +80,6 @@ char *SoundEngine::m_szStreamFileA[eStream_Max]=
"hal4", "hal4",
"nuance1", "nuance1",
"nuance2", "nuance2",
#ifndef _XBOX
// add the new music tracks // add the new music tracks
"creative1", "creative1",
"creative2", "creative2",
@@ -123,11 +91,9 @@ char *SoundEngine::m_szStreamFileA[eStream_Max]=
"menu2", "menu2",
"menu3", "menu3",
"menu4", "menu4",
#endif
"piano1", "piano1",
"piano2", "piano2",
"piano3", "piano3",
// Nether // Nether
"nether1", "nether1",
"nether2", "nether2",
@@ -308,9 +274,7 @@ void SoundEngine::init(Options *pOptions)
sprintf(szBankName,"%s/%s",getUsrDirPath(), m_szSoundPath ); sprintf(szBankName,"%s/%s",getUsrDirPath(), m_szSoundPath );
} }
#elif defined __PSVITA__ #elif (defined __PSVITA__ || __ORBIS__)
sprintf(szBankName,"%s/%s",getUsrDirPath(), m_szSoundPath );
#elif defined __ORBIS__
sprintf(szBankName,"%s/%s",getUsrDirPath(), m_szSoundPath ); sprintf(szBankName,"%s/%s",getUsrDirPath(), m_szSoundPath );
#else #else
strcpy((char *)szBankName,m_szSoundPath); strcpy((char *)szBankName,m_szSoundPath);
@@ -1166,13 +1130,17 @@ void SoundEngine::playMusicTick()
void SoundEngine::playMusicUpdate() void SoundEngine::playMusicUpdate()
{ {
//return; //return;
static bool firstCall = true;
static float fMusicVol = 0.0f; static float fMusicVol = 0.0f;
#ifndef _WINDOWS64 //str1k3r - if used on windows64 volume doesnt update
static bool firstCall = true;
if( firstCall ) if( firstCall )
{ {
fMusicVol = getMasterMusicVolume(); fMusicVol = getMasterMusicVolume();
firstCall = false; firstCall = false;
} }
#else
fMusicVol = getMasterMusicVolume();
#endif
switch(m_StreamState) switch(m_StreamState)
{ {
@@ -1232,7 +1200,7 @@ void SoundEngine::playMusicUpdate()
m_MusicType=eMusicType_Game; m_MusicType=eMusicType_Game;
m_StreamingAudioInfo.bIs3D=false; m_StreamingAudioInfo.bIs3D=false;
#ifdef _XBOX_ONE #if (defined _XBOX_ONE || _WINDOWS64)
wstring &wstrSoundName=dlcAudioFile->GetSoundName(m_musicID); wstring &wstrSoundName=dlcAudioFile->GetSoundName(m_musicID);
wstring wstrFile=L"TPACK:\\Data\\" + wstrSoundName +L".binka"; wstring wstrFile=L"TPACK:\\Data\\" + wstrSoundName +L".binka";
std::wstring mountedPath = StorageManager.GetMountedPath(wstrFile); std::wstring mountedPath = StorageManager.GetMountedPath(wstrFile);
@@ -1241,12 +1209,7 @@ void SoundEngine::playMusicUpdate()
wstring &wstrSoundName=dlcAudioFile->GetSoundName(m_musicID); wstring &wstrSoundName=dlcAudioFile->GetSoundName(m_musicID);
char szName[255]; char szName[255];
wcstombs(szName,wstrSoundName.c_str(),255); wcstombs(szName,wstrSoundName.c_str(),255);
#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__
string strFile="TPACK:/Data/" + string(szName) + ".binka"; string strFile="TPACK:/Data/" + string(szName) + ".binka";
#else
string strFile="TPACK:\\Data\\" + string(szName) + ".binka";
#endif
std::string mountedPath = StorageManager.GetMountedPath(strFile); std::string mountedPath = StorageManager.GetMountedPath(strFile);
strcpy(m_szStreamName,mountedPath.c_str()); strcpy(m_szStreamName,mountedPath.c_str());
#endif #endif
@@ -1520,7 +1483,9 @@ void SoundEngine::playMusicUpdate()
} }
// volume change required? // volume change required?
if(fMusicVol!=getMasterMusicVolume()) #ifndef _WINDOWS64
if(fMusicVol!=getMasterMusicVolume()) //str1k3r - if used on windows64 music doesnt update its volume
#endif
{ {
fMusicVol=getMasterMusicVolume(); fMusicVol=getMasterMusicVolume();
HSAMPLE hSample = AIL_stream_sample_handle( m_hStream); HSAMPLE hSample = AIL_stream_sample_handle( m_hStream);
@@ -1662,8 +1627,6 @@ char *SoundEngine::ConvertSoundPathToName(const wstring& name, bool bConvertSpac
return buf; return buf;
} }
#endif
F32 AILCALLBACK custom_falloff_function (HSAMPLE S, F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
F32 distance, F32 distance,
@@ -24,7 +24,7 @@ foreach ($dir in $directories) {
} }
$folderCopies = @( $folderCopies = @(
@{ Source = "Common\Media"; Dest = "Common\Media" }, @{ Source = "Common\Media\Font"; Dest = "Common\Media\Font" },
@{ Source = "Common\res"; Dest = "Common\res" }, @{ Source = "Common\res"; Dest = "Common\res" },
@{ Source = "DurangoMedia\Sound"; Dest = "Sound" }, @{ Source = "DurangoMedia\Sound"; Dest = "Sound" },
@{ Source = "DurangoMedia\DLC"; Dest = "DLC" }, @{ Source = "DurangoMedia\DLC"; Dest = "DLC" },
@@ -46,6 +46,7 @@ foreach ($copy in $folderCopies) {
} }
$fileCopies = @( $fileCopies = @(
@{ Source = "Common\Media\MediaDurango.arc"; Dest = "Common\Media\MediaDurango.arc" },
@{ Source = "Durango\DurangoExtras\xcompress.dll"; Dest = "xcompress.dll" }, @{ Source = "Durango\DurangoExtras\xcompress.dll"; Dest = "xcompress.dll" },
@{ Source = "Durango\DLCXbox1.cmp"; Dest = "DLCXbox1.cmp" } @{ Source = "Durango\DLCXbox1.cmp"; Dest = "DLCXbox1.cmp" }
) )
@@ -61,17 +62,7 @@ foreach ($copy in $fileCopies) {
} }
$deleteDirs = @( $deleteDirs = @(
"Common\Media\Sound", "Common\Media\font\RU"
"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) { foreach ($dir in $deleteDirs) {
@@ -82,16 +73,14 @@ foreach ($dir in $deleteDirs) {
} }
$delDirs = @( $delDirs = @(
"Common\Media", "Common\Media\font",
"Common\Media\font" "Common\Media\font\*"
) )
foreach ($dir in $delDirs) { foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) { $path = Join-Path $OutDir $dir
$path = Join-Path $OutDir $dir if (Test-Path $path) {
if (Test-Path $path) { Get-ChildItem -Path $path -Recurse -Include *.txt, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", "DF-DotDotGothic16.ttf", "DFTT_R5.TTC", "candadite2.ttf" -File |
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.xui, *.abc, *.h, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaWindows64.arc, MediaOrbis.arc, MediaPS3.arc, MediaPSVita.arc -File | Remove-Item -Force -ErrorAction SilentlyContinue
Remove-Item -Force -ErrorAction SilentlyContinue
}
} }
} }
@@ -23,7 +23,7 @@ foreach ($dir in $directories) {
$folderCopies = @( $folderCopies = @(
@{ Source = "music"; Dest = "PS4_GAME\music" }, @{ Source = "music"; Dest = "PS4_GAME\music" },
@{ Source = "Common\Media"; Dest = "PS4_GAME\Common\Media" }, @{ Source = "Common\Media\Font";Dest = "PS4_GAME\Common\Media\Font" },
@{ Source = "Common\res"; Dest = "PS4_GAME\Common\res" }, @{ Source = "Common\res"; Dest = "PS4_GAME\Common\res" },
@{ Source = "OrbisMedia\Sound"; Dest = "PS4_GAME\Orbis\Sound" }, @{ Source = "OrbisMedia\Sound"; Dest = "PS4_GAME\Orbis\Sound" },
@{ Source = "OrbisMedia\DLC"; Dest = "PS4_GAME\Orbis\DLC" }, @{ Source = "OrbisMedia\DLC"; Dest = "PS4_GAME\Orbis\DLC" },
@@ -50,6 +50,7 @@ foreach ($copy in $folderCopies) {
} }
$fileCopies = @( $fileCopies = @(
@{ Source = "Common\Media\MediaOrbis.arc"; Dest = "PS4_GAME\Common\Media\MediaOrbis.arc" },
@{ Source = "Orbis\PS4ProductCodes.bin"; Dest = "PS4_GAME\Orbis\PS4ProductCodes.bin" }, @{ 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" }
) )
@@ -75,17 +76,7 @@ if (Test-Path $builtFile) {
} }
$deleteDirs = @( $deleteDirs = @(
"PS4_GAME\Common\Media\Sound", "PS4_GAME\Common\Media\font\RU"
"PS4_GAME\Common\Media\Graphics",
"PS4_GAME\Common\Media\de-DE",
"PS4_GAME\Common\Media\es-ES",
"PS4_GAME\Common\Media\fr-FR",
"PS4_GAME\Common\Media\it-IT",
"PS4_GAME\Common\Media\ja-JP",
"PS4_GAME\Common\Media\ko-KR",
"PS4_GAME\Common\Media\pt-BR",
"PS4_GAME\Common\Media\pt-PT",
"PS4_GAME\Common\Media\zh-CHT"
) )
foreach ($dir in $deleteDirs) { foreach ($dir in $deleteDirs) {
@@ -96,17 +87,15 @@ foreach ($dir in $deleteDirs) {
} }
$delDirs = @( $delDirs = @(
"PS4_GAME\Common\Media", "PS4_GAME\Common\Media\font",
"PS4_GAME\Common\Media\font" "PS4_GAME\Common\Media\font\*"
) )
foreach ($dir in $delDirs) { foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) { $path = Join-Path $OutDir $dir
$path = Join-Path $OutDir $dir if (Test-Path $path) {
if (Test-Path $path) { Get-ChildItem -Path $path -Recurse -Include *.txt, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", "MSYH.ttf" -File |
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.xui, *.abc, *.h, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaDurango.arc, MediaWindows64.arc, MediaPS3.arc, MediaPSVita.arc -File | Remove-Item -Force -ErrorAction SilentlyContinue
Remove-Item -Force -ErrorAction SilentlyContinue
}
} }
} }
@@ -21,11 +21,11 @@ foreach ($dir in $directories) {
$folderCopies = @( $folderCopies = @(
@{ Source = "music"; Dest = "PS3_GAME\USRDIR\music" }, @{ Source = "music"; Dest = "PS3_GAME\USRDIR\music" },
@{ Source = "Common\Media"; Dest = "PS3_GAME\USRDIR\Common\Media" }, @{ Source = "Common\Media\Font";Dest = "PS3_GAME\USRDIR\Common\Media\Font" },
@{ Source = "Common\res"; Dest = "PS3_GAME\USRDIR\Common\res" }, @{ Source = "Common\res"; Dest = "PS3_GAME\USRDIR\Common\res" },
@{ Source = "PS3Media\DLC"; Dest = "PS3_GAME\USRDIR\DLC" }, @{ Source = "PS3Media\DLC"; Dest = "PS3_GAME\USRDIR\DLC" },
@{ Source = "PS3Media\Sound"; Dest = "PS3_GAME\USRDIR\PS3\Sound" }, @{ Source = "PS3Media\Sound"; Dest = "PS3_GAME\USRDIR\PS3\Sound" },
#@{ Source = "PSVita\Tutorial"; Dest = "PS3_GAME\USRDIR\PS3\Tutorial" }, # str1k3r - softlocks game #@{ Source = "PSVita\Tutorial"; Dest = "PS3_GAME\USRDIR\PS3\Tutorial" }, # str1k3r - softlocks game
@{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\LICDIR"; Dest = "PS3_GAME\LICDIR" }, @{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\LICDIR"; Dest = "PS3_GAME\LICDIR" },
@{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\TROPDIR"; Dest = "PS3_GAME\TROPDIR" } @{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\TROPDIR"; Dest = "PS3_GAME\TROPDIR" }
) )
@@ -47,6 +47,7 @@ foreach ($copy in $folderCopies) {
$fileCopies = @( $fileCopies = @(
@{ Source = "PS3\PS3ProductCodes.bin"; Dest = "PS3_GAME\USRDIR\PS3\PS3ProductCodes.bin" }, @{ Source = "PS3\PS3ProductCodes.bin"; Dest = "PS3_GAME\USRDIR\PS3\PS3ProductCodes.bin" },
@{ Source = "Common\Media\MediaPS3.arc"; Dest = "PS3_GAME\USRDIR\Common\Media\MediaPS3.arc" },
@{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_DISC.SFB"; Dest = "PS3_DISC.SFB" }, @{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_DISC.SFB"; Dest = "PS3_DISC.SFB" },
@{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\ICON0.PNG"; Dest = "PS3_GAME\ICON0.PNG" }, @{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\ICON0.PNG"; Dest = "PS3_GAME\ICON0.PNG" },
@{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\PARAM.SFO"; Dest = "PS3_GAME\PARAM.SFO" }, @{ Source = Join-Path $PSScriptRoot "Contents\PS3\PS3_GAME\PARAM.SFO"; Dest = "PS3_GAME\PARAM.SFO" },
@@ -59,7 +60,7 @@ $fileCopies = @(
) )
foreach ($copy in $fileCopies) { foreach ($copy in $fileCopies) {
$src = Join-Path $ProjectDir $copy.Source $src = $copy.Source
$dst = Join-Path $OutDir $copy.Dest $dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) { if (Test-Path $src) {
Copy-Item -Path $src -Destination $dst -Force Copy-Item -Path $src -Destination $dst -Force
@@ -84,17 +85,7 @@ if (Test-Path $builtFile) {
} }
$deleteDirs = @( $deleteDirs = @(
"PS3_GAME\USRDIR\Common\Media\Sound", "PS3_GAME\USRDIR\Common\Media\font\RU"
"PS3_GAME\USRDIR\Common\Media\Graphics",
"PS3_GAME\USRDIR\Common\Media\de-DE",
"PS3_GAME\USRDIR\Common\Media\es-ES",
"PS3_GAME\USRDIR\Common\Media\fr-FR",
"PS3_GAME\USRDIR\Common\Media\it-IT",
"PS3_GAME\USRDIR\Common\Media\ja-JP",
"PS3_GAME\USRDIR\Common\Media\ko-KR",
"PS3_GAME\USRDIR\Common\Media\pt-BR",
"PS3_GAME\USRDIR\Common\Media\pt-PT",
"PS3_GAME\USRDIR\Common\Media\zh-CHT"
) )
foreach ($dir in $deleteDirs) { foreach ($dir in $deleteDirs) {
@@ -105,16 +96,14 @@ foreach ($dir in $deleteDirs) {
} }
$delDirs = @( $delDirs = @(
"PS3_GAME\USRDIR\Common\Media", "PS3_GAME\USRDIR\Common\Media\font",
"PS3_GAME\USRDIR\Common\Media\font" "PS3_GAME\USRDIR\Common\Media\font\*"
) )
foreach ($dir in $delDirs) { foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) { $path = Join-Path $OutDir $dir
$path = Join-Path $OutDir $dir if (Test-Path $path) {
if (Test-Path $path) { Get-ChildItem -Path $path -Recurse -Include *.txt, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", "MSYH.ttf" -File |
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.xui, *.abc, *.h, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaDurango.arc, MediaWindows64.arc, MediaOrbis.arc, MediaPSVita.arc -File | Remove-Item -Force -ErrorAction SilentlyContinue
Remove-Item -Force -ErrorAction SilentlyContinue
}
} }
} }
@@ -9,10 +9,11 @@ $directories = @(
"PSVITA_GAME\music", "PSVITA_GAME\music",
"PSVITA_GAME\PSVita", "PSVITA_GAME\PSVita",
"PSVITA_GAME\Common", "PSVITA_GAME\Common",
"PSVITA_GAME\Common\res",
"PSVITA_GAME\Common\Media", "PSVITA_GAME\Common\Media",
"PSVITA_GAME\Common\res",
"PSVITA_GAME\PSVita\Sound", "PSVITA_GAME\PSVita\Sound",
"PSVITA_GAME\PSVita\Tutorial" "PSVITA_GAME\PSVita\Tutorial",
"PSVITA_GAME\savedata"
) )
foreach ($dir in $directories) { foreach ($dir in $directories) {
@@ -21,7 +22,7 @@ foreach ($dir in $directories) {
$folderCopies = @( $folderCopies = @(
@{ Source = "music"; Dest = "PSVITA_GAME\music" }, @{ Source = "music"; Dest = "PSVITA_GAME\music" },
@{ Source = "Common\Media"; Dest = "PSVITA_GAME\Common\Media" }, @{ Source = "Common\Media\Font"; Dest = "PSVITA_GAME\Common\Media\Font" },
@{ Source = "Common\res"; Dest = "PSVITA_GAME\Common\res" }, @{ Source = "Common\res"; Dest = "PSVITA_GAME\Common\res" },
@{ Source = "PSVitaMedia\Sound"; Dest = "PSVITA_GAME\PSVita\Sound" }, @{ Source = "PSVitaMedia\Sound"; Dest = "PSVITA_GAME\PSVita\Sound" },
@{ Source = "PSVitaMedia\DLC"; Dest = "PSVITA_GAME\PSVita\DLC" }, @{ Source = "PSVitaMedia\DLC"; Dest = "PSVITA_GAME\PSVita\DLC" },
@@ -46,6 +47,7 @@ foreach ($copy in $folderCopies) {
} }
$fileCopies = @( $fileCopies = @(
@{ Source = "Common\Media\MediaPSVita.arc"; Dest = "PSVITA_GAME\Common\Media\MediaPSVita.arc" },
@{ Source = "PSVita\PSVitaProductCodes.bin"; Dest = "PSVITA_GAME\PSVita\PSVitaProductCodes.bin" }, @{ Source = "PSVita\PSVitaProductCodes.bin"; Dest = "PSVITA_GAME\PSVita\PSVitaProductCodes.bin" },
@{ Source = "PSVita\session_image.png"; Dest = "PSVITA_GAME\PSVita\session_image.png" } @{ Source = "PSVita\session_image.png"; Dest = "PSVITA_GAME\PSVita\session_image.png" }
) )
@@ -72,17 +74,7 @@ if (Test-Path $builtFile) {
} }
$deleteDirs = @( $deleteDirs = @(
"PSVITA_GAME\Common\Media\Sound", "PSVITA_GAME\Common\Media\font\RU"
"PSVITA_GAME\Common\Media\Graphics",
"PSVITA_GAME\Common\Media\de-DE",
"PSVITA_GAME\Common\Media\es-ES",
"PSVITA_GAME\Common\Media\fr-FR",
"PSVITA_GAME\Common\Media\it-IT",
"PSVITA_GAME\Common\Media\ja-JP",
"PSVITA_GAME\Common\Media\ko-KR",
"PSVITA_GAME\Common\Media\pt-BR",
"PSVITA_GAME\Common\Media\pt-PT",
"PSVITA_GAME\Common\Media\zh-CHT"
) )
foreach ($dir in $deleteDirs) { foreach ($dir in $deleteDirs) {
@@ -93,17 +85,15 @@ foreach ($dir in $deleteDirs) {
} }
$delDirs = @( $delDirs = @(
"PSVITA_GAME\Common\Media", "PSVITA_GAME\Common\Media\font",
"PSVITA_GAME\Common\Media\font" "PSVITA_GAME\Common\Media\font\*"
) )
foreach ($dir in $delDirs) { foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) { $path = Join-Path $OutDir $dir
$path = Join-Path $OutDir $dir if (Test-Path $path) {
if (Test-Path $path) { Get-ChildItem -Path $path -Recurse -Include *.txt, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", "MSYH.ttf" -File |
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.h, *.xui, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaDurango.arc, MediaWindows64.arc, MediaPS3.arc, MediaOrbis.arc -File | Remove-Item -Force -ErrorAction SilentlyContinue
Remove-Item -Force -ErrorAction SilentlyContinue
}
} }
} }
@@ -0,0 +1,85 @@
param(
[string]$OutDir,
[string]$ProjectDir
)
Write-Host "Server Postbuild: script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"Windows64\GameHDD",
"Common\Media",
"Common\res",
"redist64"
)
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 = "Common\Postbuilds\Contents\Windows64\redist64"; Dest = "redist64" }
)
foreach ($copy in $folderCopies) {
$src = Join-Path "$ProjectDir\..\Minecraft.Client" $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 = Join-Path "$ProjectDir\..\Minecraft.Client" "Windows64\4JLibs\4J_Input\Windows64\vendor\SDL\lib\x64\SDL3.dll"; Dest = "SDL3.dll" },
@{ Source = "Common\Media\MediaWindows64.arc"; Dest = "Common\Media\MediaWindows64.arc" },
@{ Source = Join-Path $PSScriptRoot "Contents\Windows64\mss64.dll"; Dest = "mss64.dll" },
@{ Source = "Windows64\Iggy\lib\redist64\iggy_w64.dll"; Dest = "iggy_w64.dll" }
)
foreach ($copy in $fileCopies) {
$src = $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
Copy-Item -Path $src -Destination $dst -Force
} else {
Write-Host "Server Postbuild: File not found, skipping: $src"
}
}
$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", MediaDurango.arc, MediaOrbis.arc, MediaPS3.arc, MediaPSVita.arc -File |
Remove-Item -Force -ErrorAction SilentlyContinue
}
}
}
@@ -7,11 +7,10 @@ Write-Host "Windows64 Postbuild: script started. Output Directory: $OutDir, Proj
$directories = @( $directories = @(
"music", "music",
"Windows64\GameHDD",
"Common\Media", "Common\Media",
"Common\res",
"Windows64Media", "Windows64Media",
"redist64" "Windows64\GameHDD",
"Windows64\redist64"
) )
foreach ($dir in $directories) { foreach ($dir in $directories) {
@@ -21,9 +20,8 @@ foreach ($dir in $directories) {
$folderCopies = @( $folderCopies = @(
@{ Source = "music"; Dest = "music" }, @{ Source = "music"; Dest = "music" },
@{ Source = "Common\res"; Dest = "Common\res" }, @{ Source = "Common\res"; Dest = "Common\res" },
@{ Source = "Common\Media"; Dest = "Common\Media" }, @{ Source = "Common\Media\Font"; Dest = "Common\Media\Font" },
@{ Source = "DurangoMedia"; Dest = "Windows64Media" }, @{ Source = "Windows64Media\DLC"; Dest = "Windows64Media\DLC" },
@{ Source = "Windows64Media"; Dest = "Windows64Media" },
@{ Source = "Windows64Media\Sound"; Dest = "Windows64Media\Sound" }, @{ Source = "Windows64Media\Sound"; Dest = "Windows64Media\Sound" },
#@{ Source = "PSVita\Tutorial"; Dest = "Windows64Media\Tutorial" }, # str1k3r - doesnt even work bru #@{ Source = "PSVita\Tutorial"; Dest = "Windows64Media\Tutorial" }, # str1k3r - doesnt even work bru
@{ Source = "Windows64\Miles\lib\redist64"; Dest = "Windows64\redist64" } @{ Source = "Windows64\Miles\lib\redist64"; Dest = "Windows64\redist64" }
@@ -46,8 +44,9 @@ foreach ($copy in $folderCopies) {
$fileCopies = @( $fileCopies = @(
@{ Source = Join-Path $ProjectDir "Windows64\4JLibs\4J_Input\Windows64\vendor\SDL\lib\x64\SDL3.dll"; Dest = "SDL3.dll" }, @{ Source = Join-Path $ProjectDir "Windows64\4JLibs\4J_Input\Windows64\vendor\SDL\lib\x64\SDL3.dll"; Dest = "SDL3.dll" },
@{ Source = "Common\Media\MediaWindows64.arc"; Dest = "Common\Media\MediaWindows64.arc" },
@{ Source = Join-Path $PSScriptRoot "Contents\Windows64\mss64.dll"; Dest = "mss64.dll" }, @{ Source = Join-Path $PSScriptRoot "Contents\Windows64\mss64.dll"; Dest = "mss64.dll" },
@{ Source = "Windows64\redist64\iggy_w64.dll"; Dest = "iggy_w64.dll" } @{ Source = "Windows64\Iggy\lib\redist64\iggy_w64.dll"; Dest = "iggy_w64.dll" }
) )
foreach ($copy in $fileCopies) { foreach ($copy in $fileCopies) {
@@ -61,17 +60,7 @@ foreach ($copy in $fileCopies) {
} }
$deleteDirs = @( $deleteDirs = @(
"Common\Media\Sound", "Common\Media\font\RU" #str1k3r - russian font?
"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) { foreach ($dir in $deleteDirs) {
@@ -82,16 +71,14 @@ foreach ($dir in $deleteDirs) {
} }
$delDirs = @( $delDirs = @(
"Common\Media", "Common\Media\font",
"Common\Media\font" "Common\Media\font\*"
) )
foreach ($dir in $delDirs) { foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) { $path = Join-Path $OutDir $dir
$path = Join-Path $OutDir $dir if (Test-Path $path) {
if (Test-Path $path) { Get-ChildItem -Path $path -Recurse -Include *.txt, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", "DF-DotDotGothic16.ttf", "DFTT_R5.TTC", "candadite2.ttf" -File |
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.xui, *.abc, *.h, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaDurango.arc, MediaOrbis.arc, MediaPS3.arc, MediaPSVita.arc -File | Remove-Item -Force -ErrorAction SilentlyContinue
Remove-Item -Force -ErrorAction SilentlyContinue
}
} }
} }
+13 -1
View File
@@ -1,15 +1,27 @@
#include "stdafx.h" #include "stdafx.h"
#if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
#include "../../Minecraft.Server/ServerLogManager.h"
#endif
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Name: DebugSpewV() // Name: DebugSpewV()
// Desc: Internal helper function // Desc: Internal helper function
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
#ifndef _CONTENT_PACKAGE #ifndef _CONTENT_PACKAGE
static VOID DebugSpewV( const CHAR* strFormat, const va_list pArgList ) static VOID DebugSpewV( const CHAR* strFormat, va_list pArgList )
{ {
#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ #if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__
assert(0); assert(0);
#else #else
#if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
// Dedicated server routes legacy debug spew through ServerLogger to preserve CLI prompt handling.
if (ServerRuntime::ServerLogManager::ShouldForwardClientDebugLogs())
{
ServerRuntime::ServerLogManager::ForwardClientDebugSpewLogV(strFormat, pArgList);
return;
}
#endif
CHAR str[2048]; CHAR str[2048];
// Use the secure CRT to avoid buffer overruns. Specify a count of // Use the secure CRT to avoid buffer overruns. Specify a count of
// _TRUNCATE so that too long strings will be silently truncated // _TRUNCATE so that too long strings will be silently truncated
+120 -59
View File
@@ -30,6 +30,9 @@
#include "GameRules\ConsoleGameRules.h" #include "GameRules\ConsoleGameRules.h"
#include "GameRules\ConsoleSchematicFile.h" #include "GameRules\ConsoleSchematicFile.h"
#include "..\User.h" #include "..\User.h"
#if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
#include "..\..\Minecraft.Server\ServerLogManager.h"
#endif
#include "..\\EntityRenderDispatcher.h" #include "..\\EntityRenderDispatcher.h"
#include "..\TexturePackRepository.h" #include "..\TexturePackRepository.h"
#include "..\DLCTexturePack.h" #include "..\DLCTexturePack.h"
@@ -230,12 +233,21 @@ void CMinecraftApp::DebugPrintf(const char *szFormat, ...)
{ {
#ifndef _FINAL_BUILD #ifndef _FINAL_BUILD
char buf[1024]; va_list ap;
va_list ap; va_start(ap, szFormat);
va_start(ap, szFormat); #if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
vsnprintf(buf, sizeof(buf), szFormat, ap); // Dedicated server routes client debug spew through ServerLogger so CLI output stays prompt-safe.
va_end(ap); if (ServerRuntime::ServerLogManager::ShouldForwardClientDebugLogs())
OutputDebugStringA(buf); {
ServerRuntime::ServerLogManager::ForwardClientAppDebugLogV(szFormat, ap);
va_end(ap);
return;
}
#endif
char buf[1024];
vsnprintf(buf, sizeof(buf), szFormat, ap);
va_end(ap);
OutputDebugStringA(buf);
#endif #endif
} }
@@ -243,13 +255,22 @@ void CMinecraftApp::DebugPrintf(const char *szFormat, ...)
void CMinecraftApp::DebugPrintf(int user, const char *szFormat, ...) void CMinecraftApp::DebugPrintf(int user, const char *szFormat, ...)
{ {
#ifndef _FINAL_BUILD #ifndef _FINAL_BUILD
if(user == USER_NONE) if(user == USER_NONE)
return; return;
char buf[1024]; va_list ap;
va_list ap; va_start(ap, szFormat);
va_start(ap, szFormat); #if defined(_WINDOWS64) && defined(MINECRAFT_SERVER_BUILD)
vsnprintf(buf, sizeof(buf), szFormat, ap); // Dedicated server routes client debug spew through ServerLogger so CLI output stays prompt-safe.
va_end(ap); if (ServerRuntime::ServerLogManager::ShouldForwardClientDebugLogs())
{
ServerRuntime::ServerLogManager::ForwardClientUserDebugLogV(user, szFormat, ap);
va_end(ap);
return;
}
#endif
char buf[1024];
vsnprintf(buf, sizeof(buf), szFormat, ap);
va_end(ap);
#ifdef __PS3__ #ifdef __PS3__
unsigned int writelen; unsigned int writelen;
sys_tty_write(SYS_TTYP_USER1 + ( user - 1 ), buf, strlen(buf), &writelen ); sys_tty_write(SYS_TTYP_USER1 + ( user - 1 ), buf, strlen(buf), &writelen );
@@ -764,11 +785,11 @@ void CMinecraftApp::InitGameSettings()
//SetDefaultGameSettings(i); - done on a callback from the profile manager //SetDefaultGameSettings(i); - done on a callback from the profile manager
// 4J-PB - adding in for Windows & PS3 to set the defaults for the joypad // 4J-PB - adding in for Windows & PS3 to set the defaults for the joypad
#if defined _WINDOWS64// || defined __PSVITA__ #if defined _WINDOWS64
C_4JProfile::PROFILESETTINGS *pProfileSettings=ProfileManager.GetDashboardProfileSettings(i); C_4JProfile::PROFILESETTINGS *pProfileSettings=ProfileManager.GetDashboardProfileSettings(i);
// clear this for now - it will come from reading the system values
memset(pProfileSettings,0,sizeof(C_4JProfile::PROFILESETTINGS));
SetDefaultOptions(pProfileSettings,i); SetDefaultOptions(pProfileSettings,i);
ProfileManager.LoadSettings(GameSettingsA[i], sizeof(GAME_SETTINGS));
ApplyGameSettingsChanged(i);
#elif defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__ #elif defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__
C4JStorage::PROFILESETTINGS *pProfileSettings=StorageManager.GetDashboardProfileSettings(i); C4JStorage::PROFILESETTINGS *pProfileSettings=StorageManager.GetDashboardProfileSettings(i);
// 4J-PB - don't cause an options write to happen here // 4J-PB - don't cause an options write to happen here
@@ -2355,6 +2376,8 @@ void CMinecraftApp::CheckGameSettingsChanged(bool bOverride5MinuteTimer, int iPa
{ {
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__ ) #if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__ )
StorageManager.WriteToProfile(i,true, bOverride5MinuteTimer); StorageManager.WriteToProfile(i,true, bOverride5MinuteTimer);
#elif _WINDOWS64
ProfileManager.SaveSettings(GameSettingsA[i], sizeof(GAME_SETTINGS));
#else #else
ProfileManager.WriteToProfile(i,true, bOverride5MinuteTimer); ProfileManager.WriteToProfile(i,true, bOverride5MinuteTimer);
#endif #endif
@@ -2368,6 +2391,8 @@ void CMinecraftApp::CheckGameSettingsChanged(bool bOverride5MinuteTimer, int iPa
{ {
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__) #if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__)
StorageManager.WriteToProfile(iPad,true, bOverride5MinuteTimer); StorageManager.WriteToProfile(iPad,true, bOverride5MinuteTimer);
#elif _WINDOWS64
ProfileManager.SaveSettings(GameSettingsA[iPad], sizeof(GAME_SETTINGS));
#else #else
ProfileManager.WriteToProfile(iPad,true, bOverride5MinuteTimer); ProfileManager.WriteToProfile(iPad,true, bOverride5MinuteTimer);
#endif #endif
@@ -2386,7 +2411,7 @@ void CMinecraftApp::ClearGameSettingsChangedFlag(int iPad)
// Remove the debug settings in the content package build // Remove the debug settings in the content package build
// //
//////////////////////////// ////////////////////////////
#ifdef _DEBUG_MENUS_ENABLED #ifndef _DEBUG_MENUS_ENABLED
unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options
{ {
return 0; return 0;
@@ -2399,9 +2424,7 @@ void CMinecraftApp::SetGameSettingsDebugMask(int iPad, unsigned int uiVal)
void CMinecraftApp::ActionDebugMask(int iPad,bool bSetAllClear) void CMinecraftApp::ActionDebugMask(int iPad,bool bSetAllClear)
{ {
} }
#else #else
unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options
{ {
if(iPad==-1) if(iPad==-1)
@@ -3672,7 +3695,7 @@ void CMinecraftApp::HandleXuiActions(void)
pDLCTexPack->m_pSoundBank->Destroy(); pDLCTexPack->m_pSoundBank->Destroy();
} }
#endif #endif
#ifdef _DURANGO #if (defined _DURANGO || _WINDOWS64)
DWORD result = StorageManager.UnmountInstalledDLC(L"TPACK"); DWORD result = StorageManager.UnmountInstalledDLC(L"TPACK");
#else #else
DWORD result = StorageManager.UnmountInstalledDLC("TPACK"); DWORD result = StorageManager.UnmountInstalledDLC("TPACK");
@@ -3844,9 +3867,9 @@ void CMinecraftApp::HandleXuiActions(void)
case eAppAction_SetDefaultOptions: case eAppAction_SetDefaultOptions:
SetAction(i,eAppAction_Idle); SetAction(i,eAppAction_Idle);
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__) #if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__)
SetDefaultOptions((C4JStorage::PROFILESETTINGS *)param,i); SetDefaultOptions((C4JStorage::PROFILESETTINGS *)param,i);
#else #else
SetDefaultOptions((C_4JProfile::PROFILESETTINGS *)param,i); SetDefaultOptions((C_4JProfile::PROFILESETTINGS *)param,i);
#endif #endif
// if the profile data has been changed, then force a profile write // if the profile data has been changed, then force a profile write
@@ -4037,8 +4060,8 @@ void CMinecraftApp::HandleXuiActions(void)
ui.SetTooltips(i, -1); ui.SetTooltips(i, -1);
ui.ReloadSkin(); ui.ReloadSkins();
ui.StartReloadSkinThread(); ui.StartReloadSkinsThread();
ui.setCleanupOnReload(); ui.setCleanupOnReload();
#endif #endif
@@ -4417,9 +4440,7 @@ int CMinecraftApp::EthernetDisconnectReturned(void *pParam,int iPad,const C4JSto
else else
{ {
// 4J-PB - turn off the PSN store icon just in case this happened when we were in one of the DLC menus // 4J-PB - turn off the PSN store icon just in case this happened when we were in one of the DLC menus
#ifdef __ORBIS__ #if defined __PSVITA__ || defined __ORBIS__
sceNpCommerceHidePsStoreIcon();
#elif defined __PSVITA__
app.GetCommerce()->HidePsStoreIcon(); app.GetCommerce()->HidePsStoreIcon();
#endif #endif
app.SetAction(iPad,eAppAction_EthernetDisconnectedReturned_Menus); app.SetAction(iPad,eAppAction_EthernetDisconnectedReturned_Menus);
@@ -4889,11 +4910,13 @@ void CMinecraftApp::SignInChangeCallback(LPVOID pParam,bool bPrimaryPlayerChange
// 4J Stu - On PS4 we can also cause to exit players if they are signed out here, but we shouldn't do that if // 4J Stu - On PS4 we can also cause to exit players if they are signed out here, but we shouldn't do that if
// we are going to switch to an offline game as it will likely crash due to incompatible parallel processes // we are going to switch to an offline game as it will likely crash due to incompatible parallel processes
bool switchToOffline = false; bool switchToOffline = false;
#ifndef _DISABLE_XBLIVE
// If it's an online game, and the primary profile is no longer signed into LIVE then we act as if disconnected // If it's an online game, and the primary profile is no longer signed into LIVE then we act as if disconnected
if( !ProfileManager.IsSignedInLive( ProfileManager.GetLockedProfile() ) && !g_NetworkManager.IsLocalGame() ) if( !ProfileManager.IsSignedInLive( ProfileManager.GetLockedProfile() ) && !g_NetworkManager.IsLocalGame() )
{ {
switchToOffline = true; switchToOffline = true;
} }
#endif
//printf("Old: %x, New: %x, Changed: %x\n", m_ulLastSignInData, ulSignInData, changedPlayers); //printf("Old: %x, New: %x, Changed: %x\n", m_ulLastSignInData, ulSignInData, changedPlayers);
for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i)
@@ -4958,6 +4981,7 @@ void CMinecraftApp::SignInChangeCallback(LPVOID pParam,bool bPrimaryPlayerChange
g_NetworkManager.HandleSignInChange(); g_NetworkManager.HandleSignInChange();
} }
#ifndef _DISABLE_XBLIVE
// Some menus require the player to be signed in to live, so if this callback happens and the primary player is // Some menus require the player to be signed in to live, so if this callback happens and the primary player is
// no longer signed in then nav back // no longer signed in then nav back
else if ( pApp->GetLiveLinkRequired() && !ProfileManager.IsSignedInLive( ProfileManager.GetLockedProfile() ) ) else if ( pApp->GetLiveLinkRequired() && !ProfileManager.IsSignedInLive( ProfileManager.GetLockedProfile() ) )
@@ -4969,6 +4993,7 @@ void CMinecraftApp::SignInChangeCallback(LPVOID pParam,bool bPrimaryPlayerChange
pApp->SetAction(iPrimaryPlayer,eAppAction_EthernetDisconnected); pApp->SetAction(iPrimaryPlayer,eAppAction_EthernetDisconnected);
} }
} }
#endif
#if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__ ) #if ( defined __PS3__ || defined __ORBIS__ || defined _DURANGO || defined __PSVITA__ )
// 4J-JEV: Need to kick of loading of profile data for sub-sign in players. // 4J-JEV: Need to kick of loading of profile data for sub-sign in players.
@@ -5094,6 +5119,9 @@ void CMinecraftApp::NotificationsCallback(LPVOID pParam,DWORD dwNotification, un
#if defined __PS3__ || defined __PSVITA__ || defined __ORBIS__ #if defined __PS3__ || defined __PSVITA__ || defined __ORBIS__
int CMinecraftApp::MustSignInFullVersionPurchaseReturned(void *pParam,int iPad,C4JStorage::EMessageResult result) int CMinecraftApp::MustSignInFullVersionPurchaseReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
{ {
#ifdef DISABLE_PSN
return 0;
#else
if(result==C4JStorage::EMessage_ResultAccept) if(result==C4JStorage::EMessage_ResultAccept)
{ {
#ifdef __PS3__ #ifdef __PS3__
@@ -5106,11 +5134,15 @@ int CMinecraftApp::MustSignInFullVersionPurchaseReturned(void *pParam,int iPad,C
} }
return 0; return 0;
#endif
} }
#if defined __PS3__ || defined __PSVITA__ || defined __ORBIS__ #if defined __PS3__ || defined __PSVITA__ || defined __ORBIS__
int CMinecraftApp::MustSignInFullVersionPurchaseReturnedExitTrial(void *pParam,int iPad,C4JStorage::EMessageResult result) int CMinecraftApp::MustSignInFullVersionPurchaseReturnedExitTrial(void *pParam,int iPad,C4JStorage::EMessageResult result)
{ {
#ifdef DISABLE_PSN
return 0;
#else
if(result==C4JStorage::EMessage_ResultAccept) if(result==C4JStorage::EMessage_ResultAccept)
{ {
#ifdef __PS3__ #ifdef __PS3__
@@ -5126,6 +5158,7 @@ int CMinecraftApp::MustSignInFullVersionPurchaseReturnedExitTrial(void *pParam,i
app.SetAction(iPad,eAppAction_ExitWorldTrial); app.SetAction(iPad,eAppAction_ExitWorldTrial);
return 0; return 0;
#endif
} }
#endif #endif
@@ -5457,9 +5490,9 @@ void CMinecraftApp::HandleDLC(DLCPack *pack)
{ {
DWORD dwFilesProcessed = 0; DWORD dwFilesProcessed = 0;
#ifndef _XBOX #ifndef _XBOX
#if defined(__PS3__) || defined(__ORBIS__) || defined(_WINDOWS64) || defined (__PSVITA__) #if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__)
std::vector<std::string> dlcFilenames; std::vector<std::string> dlcFilenames;
#elif defined _DURANGO #elif (defined _DURANGO || _WINDOWS64)
std::vector<std::wstring> dlcFilenames; std::vector<std::wstring> dlcFilenames;
#endif #endif
StorageManager.GetMountedDLCFileList("DLCDrive", dlcFilenames); StorageManager.GetMountedDLCFileList("DLCDrive", dlcFilenames);
@@ -6319,27 +6352,31 @@ void CMinecraftApp::InitialiseTips()
UINT CMinecraftApp::GetNextTip() UINT CMinecraftApp::GetNextTip()
{ {
static bool bShowSkinDLCTip=true; static bool bShowSkinDLCTip=true;
// don't display the DLC tip in the trial game //str1k3r - if uiStringID is IDS_TIPS_GAMETIP_0 then dont do this, fixes a bug with IDS_TIPS_GAMETIP_0 not showing on Windows64 if not high def
if(ProfileManager.IsFullVersion() && app.GetNewDLCAvailable() && app.DisplayNewDLCTip()) if(m_GameTipA[0].uiStringID != IDS_TIPS_GAMETIP_0)
{ {
return IDS_TIPS_GAMETIP_NEWDLC; // don't display the DLC tip in the trial game
} if(ProfileManager.IsFullVersion() && app.GetNewDLCAvailable() && app.DisplayNewDLCTip())
else
{
if(bShowSkinDLCTip && ProfileManager.IsFullVersion())
{ {
bShowSkinDLCTip=false; return IDS_TIPS_GAMETIP_NEWDLC;
if( app.DLCInstallProcessCompleted() ) }
else
{
if(bShowSkinDLCTip && ProfileManager.IsFullVersion())
{ {
if(app.m_dlcManager.getPackCount(DLCManager::e_DLCType_Skin)==0) bShowSkinDLCTip=false;
if( app.DLCInstallProcessCompleted() )
{
if(app.m_dlcManager.getPackCount(DLCManager::e_DLCType_Skin)==0)
{
return IDS_TIPS_GAMETIP_SKINPACKS;
}
}
else
{ {
return IDS_TIPS_GAMETIP_SKINPACKS; return IDS_TIPS_GAMETIP_SKINPACKS;
} }
} }
else
{
return IDS_TIPS_GAMETIP_SKINPACKS;
}
} }
} }
@@ -6455,7 +6492,7 @@ wstring CMinecraftApp::FormatHTMLString(int iPad, const wstring &desc, int shado
text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_DOWN*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_DOWN ) ); text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_DOWN*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_DOWN ) );
text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_RIGHT*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_RIGHT ) ); text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_RIGHT*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_RIGHT ) );
text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_LEFT*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_LEFT ) ); text = replaceAll(text, L"{*CONTROLLER_ACTION_DPAD_LEFT*}", GetActionReplacement(iPad,MINECRAFT_ACTION_DPAD_LEFT ) );
#if defined _XBOX_ONE || defined __PSVITA__ #if !(defined __ORBIS__ || __PS3__)
text = replaceAll(text, L"{*CONTROLLER_VK_START*}", GetVKReplacement(VK_PAD_START ) ); text = replaceAll(text, L"{*CONTROLLER_VK_START*}", GetVKReplacement(VK_PAD_START ) );
text = replaceAll(text, L"{*CONTROLLER_VK_BACK*}", GetVKReplacement(VK_PAD_BACK ) ); text = replaceAll(text, L"{*CONTROLLER_VK_BACK*}", GetVKReplacement(VK_PAD_BACK ) );
#endif #endif
@@ -6578,8 +6615,12 @@ wstring CMinecraftApp::GetActionReplacement(int iPad, unsigned char ucAction)
#ifdef __PS3__ #ifdef __PS3__
int size = 30; int size = 30;
#elif defined _WIN64 #elif defined _WIN64
int size = 45; int size = 30;
if(ui.getScreenWidth() < 1920) size = 30;
if(ui.getScreenWidth() >= 1920)
{
size = 45;
}
#else #else
int size = 45; int size = 45;
#endif #endif
@@ -6691,7 +6732,7 @@ wstring CMinecraftApp::GetVKReplacement(unsigned int uiVKey)
case VK_PAD_RTHUMB_DOWNLEFT : case VK_PAD_RTHUMB_DOWNLEFT :
replacement = L"ButtonRightStick"; replacement = L"ButtonRightStick";
break; break;
#if defined _XBOX_ONE || defined __PSVITA__ #if defined _XBOX_ONE || defined __PSVITA__ || defined _WINDOWS64
case VK_PAD_START: case VK_PAD_START:
replacement = L"ButtonStart"; replacement = L"ButtonStart";
break; break;
@@ -6707,8 +6748,12 @@ wstring CMinecraftApp::GetVKReplacement(unsigned int uiVKey)
#ifdef __PS3__ #ifdef __PS3__
int size = 30; int size = 30;
#elif defined _WIN64 #elif defined _WIN64
int size = 45; int size = 30;
if(ui.getScreenWidth() < 1920) size = 30;
if(ui.getScreenWidth() >= 1920)
{
size = 45;
}
#else #else
int size = 45; int size = 45;
#endif #endif
@@ -6738,8 +6783,12 @@ wstring CMinecraftApp::GetIconReplacement(unsigned int uiIcon)
#ifdef __PS3__ #ifdef __PS3__
int size = 22; int size = 22;
#elif defined _WIN64 #elif defined _WIN64
int size = 33; int size = 22;
if(ui.getScreenWidth() < 1920) size = 22;
if(ui.getScreenWidth() >= 1920)
{
size = 33;
}
#else #else
int size = 33; int size = 33;
#endif #endif
@@ -6761,7 +6810,7 @@ wstring CMinecraftApp::GetIconReplacement(unsigned int uiIcon)
#endif #endif
} }
#if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__) #if !defined(DISABLE_PSN) && (defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
unordered_map<PlayerUID, MOJANG_DATA *, PlayerUID::Hash> CMinecraftApp::MojangData; unordered_map<PlayerUID, MOJANG_DATA *, PlayerUID::Hash> CMinecraftApp::MojangData;
unordered_map<int, char * > CMinecraftApp::DLCTextures_PackID; unordered_map<int, char * > CMinecraftApp::DLCTextures_PackID;
unordered_map<string, DLC_INFO * > CMinecraftApp::DLCInfo; unordered_map<string, DLC_INFO * > CMinecraftApp::DLCInfo;
@@ -6772,6 +6821,12 @@ unordered_map<int, wstring > CMinecraftApp::DLCTextures_PackID; // for mash-up
//unordered_map<ULONGLONG,DLC_INFO * > CMinecraftApp::DLCInfo_Trial; // full offerid, dlc_info //unordered_map<ULONGLONG,DLC_INFO * > CMinecraftApp::DLCInfo_Trial; // full offerid, dlc_info
unordered_map<wstring,DLC_INFO * > CMinecraftApp::DLCInfo_Full; // full offerid, dlc_info unordered_map<wstring,DLC_INFO * > CMinecraftApp::DLCInfo_Full; // full offerid, dlc_info
unordered_map<wstring, wstring > CMinecraftApp::DLCInfo_SkinName; // skin name, full offer id unordered_map<wstring, wstring > CMinecraftApp::DLCInfo_SkinName; // skin name, full offer id
#elif defined(DISABLE_PSN)
unordered_map<PlayerUID, MOJANG_DATA *, PlayerUID::Hash> CMinecraftApp::MojangData;
unordered_map<int, ULONGLONG > CMinecraftApp::DLCTextures_PackID;
unordered_map<ULONGLONG, DLC_INFO * > CMinecraftApp::DLCInfo_Trial;
unordered_map<ULONGLONG, DLC_INFO * > CMinecraftApp::DLCInfo_Full;
unordered_map<wstring, ULONGLONG > CMinecraftApp::DLCInfo_SkinName;
#else #else
unordered_map<PlayerUID, MOJANG_DATA *> CMinecraftApp::MojangData; unordered_map<PlayerUID, MOJANG_DATA *> CMinecraftApp::MojangData;
unordered_map<int, ULONGLONG > CMinecraftApp::DLCTextures_PackID; unordered_map<int, ULONGLONG > CMinecraftApp::DLCTextures_PackID;
@@ -6854,7 +6909,7 @@ HRESULT CMinecraftApp::RegisterConfigValues(WCHAR *pType, int iValue)
return hr; return hr;
} }
#if (defined _XBOX || defined _WINDOWS64) #if (defined _XBOX || defined _WINDOWS64 || defined DISABLE_PSN)
HRESULT CMinecraftApp::RegisterDLCData(WCHAR *pType, WCHAR *pBannerName, int iGender, __uint64 ullOfferID_Full, __uint64 ullOfferID_Trial, WCHAR *pFirstSkin, unsigned int uiSortIndex, int iConfig, WCHAR *pDataFile) HRESULT CMinecraftApp::RegisterDLCData(WCHAR *pType, WCHAR *pBannerName, int iGender, __uint64 ullOfferID_Full, __uint64 ullOfferID_Trial, WCHAR *pFirstSkin, unsigned int uiSortIndex, int iConfig, WCHAR *pDataFile)
{ {
HRESULT hr=S_OK; HRESULT hr=S_OK;
@@ -6871,12 +6926,20 @@ HRESULT CMinecraftApp::RegisterDLCData(WCHAR *pType, WCHAR *pBannerName, int iGe
// ignore the names if we don't recognize them // ignore the names if we don't recognize them
if(pBannerName!=L"") if(pBannerName!=L"")
{ {
#ifdef __PSVITA__
wcsncpy_s( pDLCData->wchBanner, MAX_BANNERNAME_SIZE, pBannerName, MAX_BANNERNAME_SIZE);
#else
wcsncpy_s( pDLCData->wchBanner, pBannerName, MAX_BANNERNAME_SIZE); wcsncpy_s( pDLCData->wchBanner, pBannerName, MAX_BANNERNAME_SIZE);
#endif
} }
if(pDataFile[0]!=0) if(pDataFile[0]!=0)
{ {
#ifdef __PSVITA__
wcsncpy_s( pDLCData->wchDataFile, MAX_BANNERNAME_SIZE, pDataFile, MAX_BANNERNAME_SIZE);
#else
wcsncpy_s( pDLCData->wchDataFile, pDataFile, MAX_BANNERNAME_SIZE); wcsncpy_s( pDLCData->wchDataFile, pDataFile, MAX_BANNERNAME_SIZE);
#endif
} }
#endif #endif
@@ -7046,7 +7109,7 @@ HRESULT CMinecraftApp::RegisterDLCData(char *pchDLCName, unsigned int uiSortInde
#if defined( __PS3__) || defined(__ORBIS__) || defined(__PSVITA__) #if !defined(DISABLE_PSN) && (defined( __PS3__) || defined(__ORBIS__) || defined(__PSVITA__))
bool CMinecraftApp::GetDLCFullOfferIDForSkinID(const wstring &FirstSkin,ULONGLONG *pullVal) bool CMinecraftApp::GetDLCFullOfferIDForSkinID(const wstring &FirstSkin,ULONGLONG *pullVal)
{ {
AUTO_VAR(it, DLCInfo_SkinName.find(FirstSkin)); AUTO_VAR(it, DLCInfo_SkinName.find(FirstSkin));
@@ -7314,7 +7377,7 @@ DLC_INFO *CMinecraftApp::GetDLCInfoForProductName(WCHAR *pwchProductName)
return NULL; return NULL;
} }
#elif defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__) #elif !defined(DISABLE_PSN) && (defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
#else #else
DLC_INFO *CMinecraftApp::GetDLCInfoForFullOfferID(ULONGLONG ullOfferID_Full) DLC_INFO *CMinecraftApp::GetDLCInfoForFullOfferID(ULONGLONG ullOfferID_Full)
@@ -9425,7 +9488,7 @@ byteArray CMinecraftApp::getArchiveFile(const wstring &filename)
// DLC // DLC
#if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__) #if !defined(DISABLE_PSN) && (defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
int CMinecraftApp::GetDLCInfoCount() int CMinecraftApp::GetDLCInfoCount()
{ {
return (int)DLCInfo.size(); return (int)DLCInfo.size();
@@ -9717,7 +9780,6 @@ void CMinecraftApp::getLocale(vector<wstring> &vecWstrLocales)
locales.push_back(eMCLang_zhCN); locales.push_back(eMCLang_zhCN);
break; break;
#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ || defined _DURANGO
case XC_LANGUAGE_DANISH: case XC_LANGUAGE_DANISH:
locales.push_back(eMCLang_daDA); locales.push_back(eMCLang_daDA);
locales.push_back(eMCLang_daDK); locales.push_back(eMCLang_daDK);
@@ -9743,7 +9805,6 @@ void CMinecraftApp::getLocale(vector<wstring> &vecWstrLocales)
locales.push_back(eMCLang_enGR); locales.push_back(eMCLang_enGR);
locales.push_back(eMCLang_enGB); locales.push_back(eMCLang_enGB);
break; break;
#endif
} }
#endif #endif
@@ -10032,7 +10093,7 @@ enum ETitleUpdateTexturePacks
}; };
#ifdef _WINDOWS64 #ifdef _WINDOWS64
wstring titleUpdateTexturePackRoot = L"Windows64\\DLC\\"; wstring titleUpdateTexturePackRoot = L"Windows64Media\\DLC\\";
#elif defined(__ORBIS__) #elif defined(__ORBIS__)
wstring titleUpdateTexturePackRoot = L"app0/Orbis/DLC/"; wstring titleUpdateTexturePackRoot = L"app0/Orbis/DLC/";
#elif defined(__PSVITA__) #elif defined(__PSVITA__)
+9 -12
View File
@@ -594,7 +594,7 @@ public:
MOJANG_DATA *GetMojangDataForXuid(PlayerUID xuid); MOJANG_DATA *GetMojangDataForXuid(PlayerUID xuid);
static HRESULT RegisterConfigValues(WCHAR *pType, int iValue); static HRESULT RegisterConfigValues(WCHAR *pType, int iValue);
#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__) #if !defined(DISABLE_PSN) && (defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__))
HRESULT RegisterDLCData(char *pchDLCName, unsigned int uiSortIndex, char *pchImageURL); HRESULT RegisterDLCData(char *pchDLCName, unsigned int uiSortIndex, char *pchImageURL);
bool GetDLCFullOfferIDForSkinID(const wstring &FirstSkin,ULONGLONG *pullVal); bool GetDLCFullOfferIDForSkinID(const wstring &FirstSkin,ULONGLONG *pullVal);
DLC_INFO *GetDLCInfoForTrialOfferID(ULONGLONG ullOfferID_Trial); DLC_INFO *GetDLCInfoForTrialOfferID(ULONGLONG ullOfferID_Trial);
@@ -631,7 +631,7 @@ private:
std::vector <SCreditTextItemDef *> vDLCCredits; std::vector <SCreditTextItemDef *> vDLCCredits;
#if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__) #if !defined(DISABLE_PSN) && (defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
static unordered_map<PlayerUID,MOJANG_DATA *, PlayerUID::Hash > MojangData; static unordered_map<PlayerUID,MOJANG_DATA *, PlayerUID::Hash > MojangData;
static unordered_map<int, char * > DLCTextures_PackID; // for mash-up packs & texture packs static unordered_map<int, char * > DLCTextures_PackID; // for mash-up packs & texture packs
static unordered_map<string,DLC_INFO * > DLCInfo; static unordered_map<string,DLC_INFO * > DLCInfo;
@@ -642,6 +642,12 @@ private:
//static unordered_map<wstring,DLC_INFO * > DLCInfo_Trial; // full offerid, dlc_info //static unordered_map<wstring,DLC_INFO * > DLCInfo_Trial; // full offerid, dlc_info
static unordered_map<wstring,DLC_INFO * > DLCInfo_Full; // full offerid, dlc_info static unordered_map<wstring,DLC_INFO * > DLCInfo_Full; // full offerid, dlc_info
static unordered_map<wstring, wstring > DLCInfo_SkinName; // skin name, full offer id static unordered_map<wstring, wstring > DLCInfo_SkinName; // skin name, full offer id
#elif defined(DISABLE_PSN)
static unordered_map<PlayerUID,MOJANG_DATA *, PlayerUID::Hash > MojangData;
static unordered_map<int, ULONGLONG > DLCTextures_PackID; // for mash-up packs & texture packs
static unordered_map<ULONGLONG,DLC_INFO * > DLCInfo_Trial; // full offerid, dlc_info
static unordered_map<ULONGLONG,DLC_INFO * > DLCInfo_Full; // full offerid, dlc_info
static unordered_map<wstring, ULONGLONG > DLCInfo_SkinName; // skin name, full offer id
#else #else
static unordered_map<PlayerUID,MOJANG_DATA * > MojangData; static unordered_map<PlayerUID,MOJANG_DATA * > MojangData;
static unordered_map<int, ULONGLONG > DLCTextures_PackID; // for mash-up packs & texture packs static unordered_map<int, ULONGLONG > DLCTextures_PackID; // for mash-up packs & texture packs
@@ -772,7 +778,7 @@ public:
void ClearTMSPPFilesRetrieved(); void ClearTMSPPFilesRetrieved();
unsigned int AddTMSPPFileTypeRequest(eDLCContentType eType, bool bPromote=false); unsigned int AddTMSPPFileTypeRequest(eDLCContentType eType, bool bPromote=false);
int GetDLCInfoTexturesOffersCount(); int GetDLCInfoTexturesOffersCount();
#if defined( __PS3__) || defined(__ORBIS__) || defined(__PSVITA__) #if !defined(DISABLE_PSN) && (defined( __PS3__) || defined(__ORBIS__) || defined(__PSVITA__))
DLC_INFO *GetDLCInfo(int iIndex); DLC_INFO *GetDLCInfo(int iIndex);
DLC_INFO *GetDLCInfo(char *); DLC_INFO *GetDLCInfo(char *);
DLC_INFO *GetDLCInfoFromTPackID(int iTPID); DLC_INFO *GetDLCInfoFromTPackID(int iTPID);
@@ -851,15 +857,6 @@ public:
static DWORD getSkinIdFromPath(const wstring &skin); static DWORD getSkinIdFromPath(const wstring &skin);
static wstring getSkinPathFromId(DWORD skinId); static wstring getSkinPathFromId(DWORD skinId);
virtual int LoadLocalTMSFile(WCHAR *wchTMSFile)=0;
virtual int LoadLocalTMSFile(WCHAR *wchTMSFile, eFileExtensionType eExt)=0;
virtual void FreeLocalTMSFiles(eTMSFileType eType)=0;
virtual int GetLocalTMSFileIndex(WCHAR *wchTMSFile,bool bFilenameIncludesExtension,eFileExtensionType eEXT)=0;
virtual bool GetTMSGlobalFileListRead() { return true;}
virtual bool GetTMSDLCInfoRead() { return true;}
virtual bool GetTMSXUIDsFileRead() { return true;}
bool GetBanListRead(int iPad) { return m_bRead_BannedListA[iPad];} bool GetBanListRead(int iPad) { return m_bRead_BannedListA[iPad];}
void SetBanListRead(int iPad,bool bVal) { m_bRead_BannedListA[iPad]=bVal;} void SetBanListRead(int iPad,bool bVal) { m_bRead_BannedListA[iPad]=bVal;}
void ClearBanList(int iPad) { BannedListA[iPad].pBannedList=NULL;BannedListA[iPad].dwBytes=0;} void ClearBanList(int iPad) { BannedListA[iPad].pBannedList=NULL;BannedListA[iPad].dwBytes=0;}
+21 -10
View File
@@ -344,14 +344,14 @@ bool DLCManager::readDLCDataFile(DWORD &dwFilesProcessed, const string &path, DL
} }
else if (fromArchive) return false; else if (fromArchive) return false;
#ifdef _WINDOWS64 #if (defined _DURANGO || _WINDOWS64)
string finalPath = StorageManager.GetMountedPath(path.c_str());
if(finalPath.size() == 0) finalPath = path;
HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#elif defined(_DURANGO)
wstring finalPath = StorageManager.GetMountedPath(wPath.c_str()); wstring finalPath = StorageManager.GetMountedPath(wPath.c_str());
if(finalPath.size() == 0) finalPath = wPath; if(finalPath.size() == 0) finalPath = wPath;
#ifdef _DURANGO
HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#else
HANDLE file = CreateFileW(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#endif
#else #else
HANDLE file = CreateFile(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE file = CreateFile(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#endif #endif
@@ -406,6 +406,12 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD
unsigned int uiVersion=*(unsigned int *)pbData; unsigned int uiVersion=*(unsigned int *)pbData;
uiCurrentByte+=sizeof(int); uiCurrentByte+=sizeof(int);
if(uiVersion > CURRENT_DLC_VERSION_NUM)
{
if(pbData!=NULL) delete [] pbData;
app.DebugPrintf("DLC version of %d is newer than this build can read (%d)\n", uiVersion, CURRENT_DLC_VERSION_NUM);
return false;
}
if(uiVersion < CURRENT_DLC_VERSION_NUM) if(uiVersion < CURRENT_DLC_VERSION_NUM)
{ {
if(pbData!=NULL) delete [] pbData; if(pbData!=NULL) delete [] pbData;
@@ -551,14 +557,14 @@ DWORD DLCManager::retrievePackIDFromDLCDataFile(const string &path, DLCPack *pac
DWORD packId = 0; DWORD packId = 0;
wstring wPath = convStringToWstring(path); wstring wPath = convStringToWstring(path);
#ifdef _WINDOWS64 #if (defined _DURANGO || _WINDOWS64)
string finalPath = StorageManager.GetMountedPath(path.c_str());
if(finalPath.size() == 0) finalPath = path;
HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#elif defined(_DURANGO)
wstring finalPath = StorageManager.GetMountedPath(wPath.c_str()); wstring finalPath = StorageManager.GetMountedPath(wPath.c_str());
if(finalPath.size() == 0) finalPath = wPath; if(finalPath.size() == 0) finalPath = wPath;
#ifdef _DURANGO
HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE file = CreateFile(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#else
HANDLE file = CreateFileW(finalPath.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#endif
#else #else
HANDLE file = CreateFile(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE file = CreateFile(path.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
#endif #endif
@@ -613,6 +619,11 @@ DWORD DLCManager::retrievePackID(PBYTE pbData, DWORD dwLength, DLCPack *pack)
unsigned int uiVersion=*(unsigned int *)pbData; unsigned int uiVersion=*(unsigned int *)pbData;
uiCurrentByte+=sizeof(int); uiCurrentByte+=sizeof(int);
if(uiVersion > CURRENT_DLC_VERSION_NUM)
{
app.DebugPrintf("DLC version of %d is newer than this build can read (%d)\n", uiVersion, CURRENT_DLC_VERSION_NUM);
return 0;
}
if(uiVersion < CURRENT_DLC_VERSION_NUM) if(uiVersion < CURRENT_DLC_VERSION_NUM)
{ {
app.DebugPrintf("DLC version of %d is too old to be read\n", uiVersion); app.DebugPrintf("DLC version of %d is too old to be read\n", uiVersion);
@@ -464,7 +464,7 @@ void LevelGenerationOptions::loadBaseSaveData()
if(mountIndex > -1) if(mountIndex > -1)
{ {
#ifdef _DURANGO #if (defined _DURANGO || _WINDOWS64)
if(StorageManager.MountInstalledDLC(ProfileManager.GetPrimaryPad(),mountIndex,&LevelGenerationOptions::packMounted,this,L"WPACK")!=ERROR_IO_PENDING) if(StorageManager.MountInstalledDLC(ProfileManager.GetPrimaryPad(),mountIndex,&LevelGenerationOptions::packMounted,this,L"WPACK")!=ERROR_IO_PENDING)
#else #else
if(StorageManager.MountInstalledDLC(ProfileManager.GetPrimaryPad(),mountIndex,&LevelGenerationOptions::packMounted,this,"WPACK")!=ERROR_IO_PENDING) if(StorageManager.MountInstalledDLC(ProfileManager.GetPrimaryPad(),mountIndex,&LevelGenerationOptions::packMounted,this,"WPACK")!=ERROR_IO_PENDING)
@@ -604,7 +604,7 @@ int LevelGenerationOptions::packMounted(LPVOID pParam,int iPad,DWORD dwErr,DWORD
} }
} }
#ifdef _DURANGO #if (defined _DURANGO || _WINDOWS64)
DWORD result = StorageManager.UnmountInstalledDLC(L"WPACK"); DWORD result = StorageManager.UnmountInstalledDLC(L"WPACK");
#else #else
DWORD result = StorageManager.UnmountInstalledDLC("WPACK"); DWORD result = StorageManager.UnmountInstalledDLC("WPACK");
@@ -1,7 +1,7 @@
/* /*
base64.cpp and base64.h base64.cpp and base64.h
Copyright (C) 2004-2008 René Nyffenegger Copyright (C) 2004-2008 René Nyffenegger
This source code is provided 'as-is', without any express or implied This source code is provided 'as-is', without any express or implied
warranty. In no event will the author be held liable for any damages warranty. In no event will the author be held liable for any damages
@@ -21,7 +21,7 @@
3. This notice may not be removed or altered from any source distribution. 3. This notice may not be removed or altered from any source distribution.
René Nyffenegger rene.nyffenegger@adp-gmbh.ch René Nyffenegger rene.nyffenegger@adp-gmbh.ch
*/ */
@@ -41,7 +41,7 @@ static inline bool is_base64(unsigned char c) {
} }
// 4J ADDED, // 4J ADDED,
std::string base64_encode(std::string str) std::string base64_encode(const std::string& str)
{ {
return base64_encode( reinterpret_cast<const unsigned char*>(str.c_str()), str.length() ); return base64_encode( reinterpret_cast<const unsigned char*>(str.c_str()), str.length() );
} }
@@ -2,6 +2,6 @@
#include <string> #include <string>
std::string base64_encode(std::string str); std::string base64_encode(const std::string& str);
std::string base64_encode(unsigned char const* , unsigned int len); std::string base64_encode(unsigned char const* , unsigned int len);
std::string base64_decode(std::string const& s); std::string base64_decode(std::string const& s);
Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Loaded 100 of 1596 files, more files were not shown because too many files have changed in this diff. Show more