131 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: #31

Co-authored-by: qloak <realminecart@gmail.com>
2026-08-14 21:32:25 +00:00
str1k3r 82e802873f fix: duplicates for windows64 & update postbuild copies 2026-08-14 16:50:56 -04:00
str1k3r ecb1a93444 fix: Miles Sound System on Windows64 & Move all msscmp's to media folders 2026-08-14 16:37:58 -04: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
6a49df36cc revert perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)
revert perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)

windows optimizations include:

- adding WPO/LTCG
- fixing potential memory leaks
- reducing unneeded busy waits

xbox 360 fixes include:

- all item names displaying as black
- adding newer dlcs crashing game

ps3 fix was that, when holding the ps button, it'd corrupt the hdd. NEEDS TESTING! just a guess fix since I don't have a PS3.

---------

Co-authored-by: pieeebot <piebot00@gmail.com>
Co-authored-by: piebot <piebot00@gmail.com>
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
Co-authored-by: str1k3r <1+str1k3r@noreply.localhost>
Co-authored-by: pieeebot <10+pieeebot@noreply.neolegacy.dev>
Co-authored-by: qloak <53+qloak@noreply.neolegacy.dev>
Reviewed-on: #27
Co-authored-by: qloak <realminecart@gmail.com>
2026-08-14 10:48:38 +00: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
bad3a41225 perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)
title

windows optimizations include:

- adding WPO/LTCG
- fixing potential memory leaks
- reducing unneeded busy waits

xbox 360 fixes include:

- all item names displaying as black
- adding newer dlcs crashing game

ps3 fix was that, when holding the ps button, it'd corrupt the hdd. NEEDS TESTING! just a guess fix since I don't have a PS3.

---------

Co-authored-by: pieeebot <piebot00@gmail.com>
Co-authored-by: piebot <piebot00@gmail.com>
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
Co-authored-by: str1k3r <1+str1k3r@noreply.localhost>
Co-authored-by: pieeebot <10+pieeebot@noreply.neolegacy.dev>
Co-authored-by: qloak <53+qloak@noreply.neolegacy.dev>
Reviewed-on: #27
Co-authored-by: qloak <realminecart@gmail.com>
2026-08-14 05:09:20 +00:00
pieeebot 6853eab85f update lcemp networking 2026-08-14 07:02:50 +03:00
str1k3r 46caf4727c fix: g_bResolutionSetByCMD causing windows64 to not compile sometimes 2026-08-13 19:09:39 -04:00
str1k3r 47ea98fc86 fix: widescreen check only working if res was not cmd set 2026-08-13 00:21:01 -04:00
str1k3r d0362d2458 fix: res set over cmd not applying 2026-08-12 21:36:08 -04:00
str1k3r 82783c0812 feat(Windows64): safely exit game & get monitors size that has the game window instead of primary 2026-08-12 18:18:41 -04:00
str1k3r bd0cc59a54 chore: update .gitignore 2026-08-11 21:25:56 -04:00
str1k3r 81d41a6a04 feat(Windows64): use screen size instead of window size, fix exit game, fix oprhaned saves on exit without saving 2026-08-11 20:27:34 -04:00
str1k3r 0031cae3e3 fix: m_fScreen Width & Height missing .0f for 8th gen consoles 2026-08-11 18:45:04 -04:00
str1k3r 251cd8e304 feat(Windows64): fetch screen size instead of hardcoding & cleanup project filter 2026-08-11 18:36:29 -04:00
str1k3r df2a4d85ef fix: save space indicator & windows64 image scaling 2026-08-11 15:29:53 -04:00
str1k3r b737c3eccb feat(Windows64): ReloadSkin on another thread & improved screen height to swf 2026-08-10 00:28:30 -04:00
str1k3r 77a4ee39b5 fix: postbuilds 2026-08-09 23:43:30 -04:00
str1k3r 7fb2db5ed7 fix: SD3 lib being copied & update paths 2026-08-09 22:45:13 -04:00
str1k3r 90a2391e92 fix: SDL3 dll not being copied 2026-08-09 10:58:07 -04:00
str1k3r 36afa4a59f feat: SDL3 4JLibs 2026-08-09 00:34:21 -04:00
str1k3r eb317d8fbd chore: Bump 4JLibs 2026-08-08 21:08:50 -04:00
str1k3r af2040a849 fix: 4JLibs building, windows64 files not copying & add buildsteps to solution filter 2026-08-08 20:56:23 -04:00
str1k3r 9cba342973 feat: update submodule, more proper 4JLibs checks 2026-08-08 19:58:37 -04:00
str1k3r 8055f4dfc7 fix: world thumbnails 2026-08-08 15:09:57 -04:00
str1k3r 3ea3c08372 update submodule
SDL was being a bitch
2026-08-08 15:00:18 -04:00
str1k3r 9a729de7c3 fix: submodule tracking unneeded files 2026-08-08 14:19:49 -04:00
str1k3r 274f2ddc61 fix: submodule 2026-08-08 14:11:30 -04:00
str1k3r 831ec7292d fix: save space indicator
Credits to smartcmd for the base of this
2026-08-08 14:08:00 -04:00
str1k3r 13285fbffa feat: 4JLibs submodule 2026-08-08 14:06:08 -04: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
str1k3r 3866e525f1 fix(Windows64): 720p crash, Update README & .gitignore 2026-08-03 21:55:05 -04:00
str1k3r 9254fbcdb3 fix: ps3 zip not ignoring .self, stop tracking .vcxproj.user 2026-08-03 18:28:00 -04:00
str1k3r e8d19516e6 fix: windows64 release build
Release is actually a "Debug without extra shit" so we dont use _FINAL_BUILD
2026-08-03 16:32:30 -04:00
str1k3r 8bae3cfbc1 fix: ps3 zip 2026-08-03 15:27:43 -04:00
str1k3r 7f4227d902 fix: my mistake on workflow 2026-08-03 15:14:31 -04:00
str1k3r d9327ff1f5 fix: dangling build on workflow 2026-08-03 15:11:57 -04:00
str1k3r d770e58992 fix: workflows throwing GHES error 2026-08-03 15:03:16 -04:00
str1k3r 0889edf3bd chore: make the SPU Tasks SLN use $(Configuration) & $(Platform) 2026-08-03 14:40:28 -04:00
str1k3r 6e13d5d4c0 fix: PS3 & Windows64 ContentPackage, Exclude PSVita libs & OldSDK from other plats 2026-08-03 14:27:03 -04: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
1743 changed files with 300268 additions and 270365 deletions
+5 -3
View File
@@ -16,7 +16,7 @@ on:
jobs: jobs:
build: build:
runs-on: windows-2022 runs-on: sdk-orbis
strategy: strategy:
matrix: matrix:
@@ -27,6 +27,7 @@ jobs:
uses: https://github.com/actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false
lfs: false lfs: false
- name: Build Cafeberry - name: Build Cafeberry
@@ -48,7 +49,8 @@ jobs:
Copy-Item "./ORBIS_${{ inputs.configuration }}/Minecraft.Client.pkg" staging/LCEOrbis.pkg Copy-Item "./ORBIS_${{ inputs.configuration }}/Minecraft.Client.pkg" staging/LCEOrbis.pkg
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
+6 -4
View File
@@ -16,7 +16,7 @@ on:
jobs: jobs:
build: build:
runs-on: windows-2022 runs-on: sdk-ps3
strategy: strategy:
matrix: matrix:
@@ -27,6 +27,7 @@ jobs:
uses: https://github.com/actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false
lfs: false lfs: false
- name: Build Cafeberry - name: Build Cafeberry
@@ -37,7 +38,7 @@ jobs:
/m /m
- name: Zip Build - name: Zip Build
run: 7z a -r LCE${{ matrix.platform }}.zip ./${{ matrix.platform }}_${{ inputs.configuration }}/* "-x!*.ipdb" "-x!*.iobj" run: 7z a -r LCE${{ matrix.platform }}.zip ./${{ matrix.platform }}_${{ inputs.configuration }}/* "-x!*.a" "-x!*.pch" "-x!*.elf" "-x!*.self" "-x!*.map"
- name: Stage artifacts - name: Stage artifacts
run: | run: |
@@ -45,7 +46,8 @@ jobs:
Copy-Item LCE${{ matrix.platform }}.zip staging/ Copy-Item LCE${{ matrix.platform }}.zip staging/
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
+5 -3
View File
@@ -16,7 +16,7 @@ on:
jobs: jobs:
build: build:
runs-on: windows-2022 runs-on: sdk-psvita
strategy: strategy:
matrix: matrix:
@@ -27,6 +27,7 @@ jobs:
uses: https://github.com/actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false
lfs: false lfs: false
- name: Build Cafeberry - name: Build Cafeberry
@@ -46,7 +47,8 @@ jobs:
Copy-Item "./PSVita_${{ inputs.configuration }}/Minecraft.Client.vpk" staging/LCEPSVita.vpk Copy-Item "./PSVita_${{ inputs.configuration }}/Minecraft.Client.vpk" staging/LCEPSVita.vpk
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
+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 }}
+22 -8
View File
@@ -25,19 +25,32 @@ jobs:
build: build:
needs: validate needs: validate
runs-on: windows-2022
strategy: strategy:
matrix: matrix:
configuration: [Release] configuration: [Release]
platform: [PS3, Windows64, Orbis] #[PS3, PSVita, Xbox360, ORBIS, Windows64] platform: [Windows64, Xbox360, Orbis, PSVita, PS3]
include:
- platform: Windows64
sdk_label: windows-2022 # str1k3r - can run on any runner
- platform: Xbox360
sdk_label: sdk-xbox360
- platform: Orbis
sdk_label: sdk-orbis
- platform: PSVita
sdk_label: sdk-psvita
- platform: PS3
sdk_label: sdk-ps3
runs-on: [windows-2022, "${{ matrix.sdk_label }}"]
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
lfs: false clean: false
lfs: false
submodules: recursive
- name: Build Cafeberry - name: Build Cafeberry
run: | run: |
@@ -57,7 +70,7 @@ jobs:
} elseif ("${{ matrix.platform }}" -eq "PSVita") { } elseif ("${{ matrix.platform }}" -eq "PSVita") {
7z a -r "LCEPSVita.zip" "./PSVita_${{ matrix.configuration }}/PSVITA_GAME/*" 7z a -r "LCEPSVita.zip" "./PSVita_${{ matrix.configuration }}/PSVITA_GAME/*"
} elseif ("${{ matrix.platform }}" -eq "PS3") { } elseif ("${{ matrix.platform }}" -eq "PS3") {
7z a -r "LCEPS3.zip" "./PS3_${{ matrix.configuration }}/PS3_GAME/*" 7z a -r "LCEPS3.zip" "./PS3_${{ matrix.configuration }}/*" "-x!*.a" "-x!*.pch" "-x!*.elf" "-x!*.self" "-x!*.map"
} elseif ("${{ matrix.platform }}" -eq "Xbox360") { } elseif ("${{ matrix.platform }}" -eq "Xbox360") {
7z a -r "LCEXbox360.zip" "./X360_${{ matrix.configuration }}/*" "-x!*.pdb" "-x!*.pch" "-x!*.xdb" 7z a -r "LCEXbox360.zip" "./X360_${{ matrix.configuration }}/*" "-x!*.pdb" "-x!*.pch" "-x!*.xdb"
} else { } else {
@@ -78,17 +91,18 @@ jobs:
} }
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
release: release:
needs: build needs: build
runs-on: windows-2022 runs-on: windows-2022
steps: steps:
- name: Download all build artifacts - name: Download all build artifacts
uses: https://github.com/actions/download-artifact@v3 uses: https://github.com/christopherHX/gitea-download-artifact@v4
with: with:
path: downloaded path: downloaded
+4 -2
View File
@@ -27,6 +27,7 @@ jobs:
uses: https://github.com/actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false
lfs: false lfs: false
- name: Build Cafeberry - name: Build Cafeberry
@@ -46,7 +47,8 @@ jobs:
Copy-Item LCE${{ matrix.platform }}.zip staging/ Copy-Item LCE${{ matrix.platform }}.zip staging/
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
+5 -3
View File
@@ -16,7 +16,7 @@ on:
jobs: jobs:
build: build:
runs-on: windows-2022 runs-on: sdk-xbox360
strategy: strategy:
matrix: matrix:
@@ -27,6 +27,7 @@ jobs:
uses: https://github.com/actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
clean: false
lfs: false lfs: false
- name: Build Cafeberry - name: Build Cafeberry
@@ -48,7 +49,8 @@ jobs:
Copy-Item LCE${{ matrix.platform }}.zip staging/ Copy-Item LCE${{ matrix.platform }}.zip staging/
- name: Upload artifacts - name: Upload artifacts
uses: https://github.com/actions/upload-artifact@v3 uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with: with:
name: build-${{ matrix.platform }} name: build-${{ matrix.platform }}
path: staging/* path: staging/*
compression-level: 0
+29 -21
View File
@@ -1,33 +1,34 @@
/*Debug .vs
/*Release
/*ContentPackage
/*ContentPackage_NO_TU
/*ContentPackage_SYMBOLS
/*ReleaseForArt
/x64 /x64
/ipch /ipch
.vs/ .vscode
/*Debug
/*Release*
/*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/*ContentPackage /Minecraft.Client/*Server*
/Minecraft.Client/*ContentPackage_NO_TU /Minecraft.Client/*ContentPackage*
/Minecraft.Client/*ContentPackage_SYMBOLS
/Minecraft.Client/*ReleaseForArt
/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
/Minecraft.World/*Release /Minecraft.World/*Release*
/Minecraft.World/*ContentPackage /Minecraft.World/*ContentPackage*
/Minecraft.World/*ContentPackage_NO_TU
/Minecraft.World/*ContentPackage_SYMBOLS
/Minecraft.World/*ReleaseForArt
# PS3 SPU Tasks # PS3 SPU Tasks
/Minecraft.Client/PS3/SPU_Tasks/objFiles /Minecraft.Client/PS3/SPU_Tasks/objFiles
@@ -36,7 +37,12 @@
/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
*.pkg *.pkg
/*.gp4p /*.gp4p
/*.vpk /*.vpk
@@ -44,4 +50,6 @@
*-app *-app
*.sdf *.sdf
*.opensdf *.opensdf
*.v11.suo *.v11.suo
*.vcxproj.user
*.aps
+5
View File
@@ -0,0 +1,5 @@
[submodule "Minecraft.Client/Windows64/4JLibs"]
path = Minecraft.Client/Windows64/4JLibs
url = https://gitea.str1k3r.xyz/cafeberry/4JLibs.git
ignore = untracked
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
+22 -53
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[]={"redist64"}; 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);
@@ -791,7 +755,9 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa
char *SoundName = (char *)ConvertSoundPathToName(name); char *SoundName = (char *)ConvertSoundPathToName(name);
strcat((char *)szSoundName,SoundName); strcat((char *)szSoundName,SoundName);
// app.DebugPrintf(6,"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",iSound, SoundName, szSoundName,x,y,z,volume,pitch); #ifdef _DEBUG
app.DebugPrintf(6,"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",iSound, SoundName, szSoundName,x,y,z,volume,pitch);
#endif
AUDIO_INFO AudioInfo; AUDIO_INFO AudioInfo;
AudioInfo.x=x; AudioInfo.x=x;
@@ -846,9 +812,11 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
char *SoundName = (char *)ConvertSoundPathToName(name); char *SoundName = (char *)ConvertSoundPathToName(name);
strcat((char *)szSoundName,SoundName); strcat((char *)szSoundName,SoundName);
// app.DebugPrintf("UI: Playing %s, volume %f, pitch %f\n",SoundName,volume,pitch);
//app.DebugPrintf("PlaySound - %d - %s\n",iSound, SoundName); #ifdef _DEBUG
app.DebugPrintf("UI: Playing %s, volume %f, pitch %f\n",SoundName,volume,pitch);
app.DebugPrintf("PlaySound - %d - %s\n",iSound, SoundName);
#endif
AUDIO_INFO AudioInfo; AUDIO_INFO AudioInfo;
memset(&AudioInfo,0,sizeof(AUDIO_INFO)); memset(&AudioInfo,0,sizeof(AUDIO_INFO));
@@ -1136,10 +1104,12 @@ int SoundEngine::OpenStreamThreadProc( void* lpParameter )
SoundEngine *soundEngine = (SoundEngine *)lpParameter; SoundEngine *soundEngine = (SoundEngine *)lpParameter;
soundEngine->m_hStream = AIL_open_stream(soundEngine->m_hDriver,soundEngine->m_szStreamName,0); soundEngine->m_hStream = AIL_open_stream(soundEngine->m_hDriver,soundEngine->m_szStreamName,0);
#ifdef _DEBUG
if(soundEngine->m_hStream==0) if(soundEngine->m_hStream==0)
{ {
app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Could not open - %s\n",soundEngine->m_szStreamName); app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Could not open - %s\n",soundEngine->m_szStreamName);
} }
#endif
return 0; return 0;
} }
@@ -1160,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)
{ {
@@ -1226,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);
@@ -1235,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
@@ -1514,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);
@@ -1656,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,
@@ -0,0 +1,80 @@
param(
[string]$ProjectDir,
[string]$Platform,
[string]$Configuration
)
if ($ProjectDir -match "Minecraft.World") {
$BaseDir = "$ProjectDir..\Minecraft.Client\"
} elseif ($ProjectDir -match "Minecraft.Client") {
$BaseDir = $ProjectDir
} else {
Write-Host "4JLibs: Unknown project directory: '$ProjectDir'"
exit 1
}
switch ($Platform) {
"x64" { $LibsDir = Join-Path $BaseDir "Windows64\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Windows64" }
"Durango" { $LibsDir = Join-Path $BaseDir "Durango\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Durango" }
"Xbox 360" { $LibsDir = Join-Path $BaseDir "Xbox\4JLibs\"; $ExpectedCount = 5; $PlatformName = "Xbox" }
"PS3" { $LibsDir = Join-Path $BaseDir "PS3\4JLibs\"; $ExpectedCount = 4; $PlatformName = "PS3" }
"Orbis" { $LibsDir = Join-Path $BaseDir "Orbis\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Orbis" }
"PSVita" { $LibsDir = Join-Path $BaseDir "PSVita\4JLibs\"; $ExpectedCount = 4; $PlatformName = "PSVita" }
default { Write-Host "4JLibs: Unknown platform: '$Platform'"; exit 1 }
}
if ($Configuration -match "ContentPackage" -or $Configuration -match "Release") {
$BuildConfig = "Release"
} elseif ($Configuration -match "Debug") {
$BuildConfig = "Debug"
} else {
Write-Host "4JLibs: Configuration did not match any known patterns, defaulting to Debug"
$BuildConfig = "Debug"
}
if (-not (Test-Path $LibsDir)) {
Write-Host "4JLibs: $PlatformName 4JLibs directory not found"
exit 1
} elseif (-not (Test-Path "$LibsDir\Headers\$PlatformName")) {
Write-Host "4JLibs: $PlatformName 4JLibs Headers directory not found"
exit 1
} elseif (-not (Test-Path "$LibsDir\Headers")) {
Write-Host "4JLibs: Headers directory not found"
exit 1
}
$incPath = Join-Path $LibsDir "inc"
$libsPath = Join-Path $LibsDir "libs"
$incCount = (Get-ChildItem -Path $incPath -Filter "*.h" -ErrorAction SilentlyContinue).Count
if ($BuildConfig -eq "Release") {
$libCount = (Get-ChildItem -Path $libsPath -Filter "*_r.lib" -ErrorAction SilentlyContinue).Count
} else {
$libCount = (Get-ChildItem -Path $libsPath -Filter "*_d.lib" -ErrorAction SilentlyContinue).Count
}
if ($incCount -lt $ExpectedCount) {
Write-Host "4JLibs: Copying header files for $PlatformName"
xcopy "$LibsDir\Headers\$PlatformName\*" "$incPath" /E /I /Y
} else {
Write-Host "4JLibs: inc files already present, skipping copy."
}
if ($libCount -lt $ExpectedCount) {
Write-Host "4JLibs: Building 4JLibs for $PlatformName in $BuildConfig"
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" `
(Join-Path $LibsDir "4JLibs.sln") `
/p:Configuration=$BuildConfig `
/p:Platform=$PlatformName `
/v:minimal `
/m
if ($LASTEXITCODE -ne 0) {
Write-Host "4JLibs: Build failed with exit code: $LASTEXITCODE"
exit $LASTEXITCODE
}
} else {
Write-Host "4JLibs: libs already present, skipping build."
}

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Before

Width:  |  Height:  |  Size: 308 KiB

After

Width:  |  Height:  |  Size: 308 KiB

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

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