Commit graph

455 commits

Author SHA1 Message Date
rtm516 5b78588298
Merge branch 'main' into feature/cmake-full 2026-03-14 17:11:42 +00:00
rtm516 fe9c56f591
Re-work compiler target options 2026-03-14 17:08:19 +00:00
rtm516 8c346e5f67
Always cleanup artifacts in nightly even if some builds fail 2026-03-14 12:18:27 +00:00
rtm516 de4cf39199
Drop CMakePresets.json version as we dont use v6 features 2026-03-14 12:05:58 +00:00
rtm516 1baa4fcb24
Update documentation 2026-03-14 12:03:25 +00:00
rtm516 7dff5fb12b
Fix robocopy error checking 2026-03-14 12:03:04 +00:00
rtm516 0f2a5b4319
Add clang flags (untested) 2026-03-14 11:00:36 +00:00
rtm516 ad55c38d02
Implement copilot suggestions 2026-03-14 10:59:58 +00:00
troglodyte9 4d200a589d
Fixed dangling pointer issue (#1209)
Some checks failed
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Has been cancelled
Nightly Release / Build Windows64 (push) Has been cancelled
2026-03-13 20:32:02 +00:00
rtm516 4e4e4dff0a
Remove all old binka redist files (#1116)
* Remove all old binka redist files

* Delete x64/Debug/Effects.msscmp

* Delete x64/Release/Effects.msscmp
2026-03-13 19:43:37 +00:00
Prakhar Sharma 379434097a
Fix witches' bottle color (#1205)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
* fix: witches' bottle is now the right color

* fix: add condition if item has mutiple layers
2026-03-13 11:41:47 +00:00
Ayush Thoren d131a551bf
Fix mounted minecarts not persisting across world reloads (#979)
* Fix mounted minecarts not persisting across world reloads

Signed-off-by: Ayush Thoren <ayushthoren@gmail.com>

* Apply patch

---------

Signed-off-by: Ayush Thoren <ayushthoren@gmail.com>
2026-03-13 11:16:05 +00:00
MrTheShy ad74d44300
Fix joining servers in split screen, splitscreen fixes (#1031)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
* Fix split-screen join failing when connecting to a remote host via UI

When a non-host client connected to a remote server through the in-game
UI (as opposed to the -ip/-port command line flags), the global variables
g_Win64MultiplayerIP and g_Win64MultiplayerPort were never updated from
their defaults ("127.0.0.1" and the default port). JoinSplitScreen()
relies on these globals to open a second TCP connection for the local
split-screen pad, so it would always attempt to connect to localhost,
failing immediately on any remote session.

Fix: update g_Win64MultiplayerIP and g_Win64MultiplayerPort inside
JoinGame() once the primary connection is established. This ensures
subsequent JoinSplitScreen() calls always reach the correct host
regardless of how the session was joined.

Additionally, guard PushFreeSmallId() against recycling smallIds in the
range [0, XUSER_MAX_COUNT), which are permanently reserved for the
host's local controller slots. Previously, if a host-side local pad
disconnected its smallId could re-enter the free pool and be handed
to an incoming remote client, causing that client's IQNetPlayer slot
to collide with a local pad slot on the non-host machine.

* Fix tutorial popup positioning in split-screen viewports

Replace the manual switch-case that computed viewport origin with the shared GetViewportRect/Fit16x9 helpers (from UISplitScreenHelpers.h). This ensures the tutorial popup is positioned and scaled consistently with the rest of the split-screen UI, fitting a 16:9 box inside each viewport and applying safezone offsets correctly.

Also adds missing default:break to safezone switch statements to silence compiler warnings.

Made-with: Cursor

* Prevent split-screen join when game window is not focused

Add g_KBMInput.IsWindowFocused() guard to the tryJoin condition so that gamepad input from background windows does not accidentally trigger a split-screen player join. This avoids phantom joins when the user is interacting with another application.

* Open debug overlay in fullscreen UI group during split-screen

Pass eUIGroup_Fullscreen to NavigateToScene when opening the debug overlay, so it spans the entire window instead of being confined to a single split-screen viewport. This makes the debug info readable regardless of the current split-screen layout.

* Fix non-host split-screen connections missing world updates

Previously, secondary (non-host) split-screen connections used isPrimaryConnection()
to gate nearly all world update packets, meaning the second local player would never
receive tile updates, entity movement, sounds, particles, explosions, etc.

The fix introduces per-connection tracking of which entities and chunks each
ClientConnection has loaded, and uses that information to decide whether a secondary
connection needs to process a given packet or if the primary connection already
handled it.

New members in ClientConnection:
- m_trackedEntityIds: set of entity IDs this connection has received AddEntity/AddMob/AddPlayer etc. for
- m_visibleChunks: set of chunk coordinates (packed into int64) this connection has marked visible
- Both sets are cleared on close(), respawn (dimension change), and destructor

New helpers:
- findPrimaryConnection(): walks the MultiPlayerLevel connection list to find the connection on the primary pad
- shouldProcessForEntity(id): secondary connection skips the packet only if the primary is already tracking that entity
- shouldProcessForPosition(x, z): secondary connection skips the packet only if the primary already has that chunk visible
- anyOtherConnectionHasChunk(x, z): used when a chunk becomes invisible to avoid hiding it from the level if another connection still needs it
- isTrackingEntity(id): public accessor used by shouldProcessForEntity on the primary connection

Packet handler changes:
- handleMoveEntity, handleMoveEntitySmall, handleSetEntityMotion, handleTakeItemEntity:
  replaced isPrimaryConnection() with shouldProcessForEntity() so secondary
  connections still process movement for entities they know about
- handleExplosion, handleLevelEvent:
  replaced isPrimaryConnection() with shouldProcessForPosition() so block
  destruction and level events fire for the correct connection based on chunks
- handleChunkTilesUpdate, handleBlockRegionUpdate, handleTileUpdate, handleSignUpdate,
  handleTileEntityData, handleTileEvent, handleTileDestruction, handleComplexItemData,
  handleSoundEvent, handleParticleEvent:
  removed the isPrimaryConnection() guard entirely -- these are world-state updates
  that all connections must process regardless of which pad is primary
- handleChunkVisibilityArea / handleChunkVisibility:
  now populate m_visibleChunks; on visibility=false, setChunkVisible(false) is
  only called on the level if no other connection still has that chunk loaded
- handleAddEntity, handleAddExperienceOrb, handleAddPainting, handleAddPlayer,
  handleAddMob: now insert into m_trackedEntityIds on arrival
- handleRemoveEntity: now erases from m_trackedEntityIds on removal
- handleLevelEvent: removed a duplicate levelEvent() call that was always firing
  regardless of the isPrimaryConnection() check above it (latent bug)

MultiPlayerLevel: added friend class ClientConnection to allow access to the
connections list without exposing it publicly.

* Fix fullscreen progress screen swallowing input before load completes

Two issues in UIScene_FullscreenProgress::handleInput:

1. The touchpad/button press that triggers movie skip or input forwarding
   had no guard on m_threadCompleted, so pressing a button during the loading
   phase would fire the skip/send logic before the background thread finished.
   Added the m_threadCompleted check so that path is only reachable once
   the load is actually done.

2. The `handled = true` assignment was missing from that branch, so input
   events were not being consumed and could fall through to other handlers.
   Added it unconditionally at the end of the block.

* Update player count decrement logic in PlatformNetworkManagerStub

Refactor the condition for decrementing the player count in CPlatformNetworkManagerStub::DoWork. The previous check was replaced with a while loop to ensure that the player count is only decremented when there are more than one player and the last player's custom data value is zero. This change improves the handling of player connections in the network manager.

* Refactor safe zone calculations in UI components for consistency

Updated the safe zone calculations across multiple UI components to ensure symmetry in split viewports. Removed unnecessary assignments and added comments for clarity. Modified the repositionHud function to include an additional parameter for better handling of HUD positioning in split-screen scenarios.

* Gui.cpp: fix F3 debug overlay in splitscreen + minor perf cleanup

The F3 debug screen was badly broken in splitscreen: it used the GUI
coordinate space which gets distorted by the splitscreen scaling, so
text appeared stretched, misaligned or completely off-screen depending
on the viewport layout.

Fixed by setting up a dedicated projection matrix using physical pixel
coordinates (g_rScreenWidth / g_rScreenHeight) each time the overlay is
drawn, completely decoupled from whatever transform the HUD is using.
The viewport dimensions are now computed per screen section so the ortho
projection matches the actual pixel area of each player's quadrant.
Version and branch strings are only shown for player 0 (iPad == 0) to
avoid repeating them across every splitscreen pane.

Also removed a few redundant calculations that were being done twice in
the same frame (atan for xRot, health halves, air supply scaled value).
These are minor and have negligible real-world impact; more substantial
per-frame caching work (safe zone calculations etc.) will follow in a
separate commit.
2026-03-13 01:32:18 -05:00
aria 714462b130
Fix background stretching in settings>graphics menu (#1092)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
2026-03-12 16:01:15 +00:00
rtm516 980e5b9228
Correct path to xsb/xwb 2026-03-12 15:50:03 +00:00
rtm516 49b7d506e1
Remove include of terrain_MipmapLevel 2026-03-12 15:26:38 +00:00
rtm516 0b9a2ce3fd
Correct Iggy libs path 2026-03-12 15:15:42 +00:00
rtm516 a00ae64f36
Only set WIN32_EXECUTABLE on Windows 2026-03-12 15:00:39 +00:00
rtm516 51cbf16047
Fix EnsureGameHDD check 2026-03-12 15:00:06 +00:00
rtm516 ff4e0f8095
Define Iggy libs per platform 2026-03-12 14:37:55 +00:00
rtm516 e29b7b630e
Copy only current platform media 2026-03-12 14:37:36 +00:00
rtm516 7ae87ad51f
Handle per-platform source includes 2026-03-12 14:08:47 +00:00
RatCatcherVr 1cee2136d3
Added LittleBigPlanet Skin Pack (#793)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
Co-authored-by: RatCatcherVr <littlerat111811@gmail.com>
2026-03-12 12:55:50 +00:00
Alezito2008 e140978daf
fix: logo rendering order after closing host options (#907) 2026-03-12 12:52:09 +00:00
Twig6943 1c32d7bc5d
Remove some leftover files (#881) 2026-03-12 12:48:06 +00:00
Matt.T e689562027
Fix SubEntity hitbox hit detection (#1175) 2026-03-12 12:32:27 +00:00
Ayush Thoren bb8ffee0d3
Fix mouse being pulled to the bottom right (#1156)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
Signed-off-by: Ayush Thoren <ayushthoren@gmail.com>
2026-03-12 01:44:32 -05:00
ModMaker101 44fc8a4db2
Fix quiet in-game audio after engine update #897 (#1171) 2026-03-12 01:43:12 -05:00
rtm516 c6916c90bf
Exclude compat_shims from PCH 2026-03-12 00:17:28 +00:00
rtm516 1b705b1b63
Only use PCH for cpp 2026-03-12 00:03:53 +00:00
rtm516 7fd2dfa351
Use precompiled headers 2026-03-11 23:59:14 +00:00
rtm516 508fb98459
Force MSVC 2026-03-11 16:48:59 +00:00
rtm516 85fc4f6952
Disable vcpkg checks 2026-03-11 16:42:07 +00:00
rtm516 031170cdab
Update build workflows and output folder 2026-03-11 16:27:21 +00:00
rtm516 ac8710c08e
Update workflows 2026-03-11 15:56:20 +00:00
rtm516 93d7ed2aa7
Use incremental LTCG 2026-03-11 03:52:54 +00:00
rtm516 7badc298d3
Update readme and actions 2026-03-11 03:51:07 +00:00
Marvelco 1036b7368e
Fixed DLC map loading / saving, missing chunks (#1114)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
* fixed all DLC maps

* fixed old saves have overlapping chunks with the new system
2026-03-10 22:04:19 -05:00
rtm516 24ab1fb700
Remove remaining VS project files 2026-03-11 03:01:11 +00:00
rtm516 c88cde6b1e
Missing line 2026-03-11 02:58:08 +00:00
rtm516 cad2fe2965
Exclude more files and make sure GameHDD exists 2026-03-11 02:55:57 +00:00
rtm516 cca184d988
Seperate projects properly 2026-03-11 02:28:08 +00:00
rtm516 76bd513e84
Move BuildVer.h to common include and fix rebuild issue 2026-03-11 02:08:46 +00:00
rtm516 b286f33251
Match MSBuild flags 2026-03-10 23:25:36 +00:00
rtm516 25d084558a
Add platform defines 2026-03-10 23:24:53 +00:00
Loki a195ac7172
Only single topic PRs, please - CONTRIBUTING.md 2026-03-10 09:37:52 -05:00
la d7596aa28c
Fix issue where visually the HUD shows you have 0 hearts when you dont (#1089)
Some checks are pending
MSBuild Debug Test / Build Windows64 (DEBUG) (push) Waiting to run
Nightly Release / Build Windows64 (push) Waiting to run
* Fix for issue where player is able to stay alive with zero hearts in their healthbar.

* use static cast over c style cast
2026-03-09 22:30:01 -05:00
eh-K c998346312
FIX: Bonus Chests spawn again when loading back in. #982 (#992)
* Fixed bug where Bonus Chests would spawn again when loading back into it.

Fixes #982

Added a check for if the world is new.

Meaning no more additional chests if the world is loaded up again.

* Replace NULL with nullptr for chest check
2026-03-09 22:07:38 -05:00
Marlian 91ae76f132
Fix tamed horses despawning when player moves away (#1057)
Co-authored-by: MCbabel <MCbabel@users.noreply.github.com>
2026-03-09 22:06:38 -05:00
Us3ful"-Dev c90a6bf5ab
Fixed Enderman, monster aggro in creative (#1051)
Fixed endermans by making a invulnerable check
2026-03-09 22:05:56 -05:00