Commit graph

339 commits

Author SHA1 Message Date
albertbogusz 05c492d6d4 fix: correct casing for include header for Linux build 2026-04-21 20:58:25 +01:00
Frcoxd 637bcf7702 Fix: Fixed the double press sound on more options againg on the loadmenu and create world menu
and fix the bug where the save thumbnail wasn't displaying correctly in loadmenu
2026-04-21 00:38:41 -03:00
Frcoxd 4b8ce04efb feat: LoadCreateJoinMenu1080 (alfin wn) 2026-04-20 23:32:59 -03:00
Frcoxd 6d170fa3da Feat: LoadCreateJoin (alfin kliado) 2026-04-20 23:28:09 -03:00
Lord_Cambion 4c8e38c721 feat: stoneslab2
fully implemented stoneslab2 with craftings and revisited existing slabs according to wii u decomp

todo:Material.cs
2026-04-21 01:32:02 +03:00
George V. eed98a6603
chore: replace backslashes with forward slashes for linux cross compilation 2026-04-20 18:15:27 +03:00
neoapps-dev 168fe6b862 fix: build issue due to duplicates 2026-04-19 18:02:10 +03:00
Sestain 73a89b80e1 Fixed DLC audio. 2026-04-19 17:58:23 +03:00
SevenToaster509 a3ac98884e fix: load/create at lower resolutions, chore: remove console spam 2026-04-19 11:56:34 +01:00
Lord_Cambion 383302eb2e feat: armorstand from decomp 2026-04-18 03:46:45 +02:00
George V. 00399fc2da
fix: Update hardcore mode UI to correctly set gamemode slider 2026-04-17 21:37:15 +03:00
George V. 82c6c5db8f
Merge remote-tracking branch 'itsRevela/main' into upstream-merge
# Conflicts:
#	.github/ISSUE_TEMPLATE/config.yml
#	.github/workflows/nightly.yml
#	Minecraft.Client/Windows64/4JLibs/libs/4J_Profile.lib
#	README.md
2026-04-17 21:22:20 +03:00
itsRevela cf81dd9d13 fix: apostrophes and quotes displaying as HTML entities in chat 2026-04-17 12:20:58 -05:00
itsRevela ce2efc1a4d fix: crash when opening UI scenes at sub-720p window size
SWF movie loading crashed with __debugbreak when the window height was
below 720px (e.g. after leaving exclusive fullscreen). The fallback
chain only tried 720.swf which doesn't exist. Now falls back through
720 -> 1080 so scenes always find a valid SWF.
2026-04-17 07:07:02 -05:00
itsRevela 59f9dbc8c6 fix: hardcore mode UI not locking difficulty/gamemode on world load
Three issues fixed:

- Save file path used hardcoded saveData.ms but new 4JLibs names files
  as <title>.ms. ReadLevelNameFromSaveFile now constructs the correct
  path with fallback to saveData.ms for old saves.
- The level.dat code path for reading the hardcore flag (sidecar rename)
  returned early without ever parsing level.dat. Now stores the sidecar
  name and continues to read the hardcore flag from NBT.
- The thumbnail host options path could overwrite m_bHardcore to false.
  Now only upgrades to true, never downgrades.
- Load menu constructor and tick handler both lock difficulty slider to
  Hardcore and gamemode to Survival when hardcore is detected.
- Hide title logo on load menu to match create world menu.
2026-04-17 07:06:26 -05:00
DrPerkyLegit 9ddb95e7ad Fix broken Chat Formatting behavior (#1520)
- Remove shadowcolor from font tags (Iggy doesn't support multiple)
- Enforce HTML text mode on chat labels and jukebox
- Move IDS translatable pattern matching into FormatChatMessage
- Add §r (reset) color code support
- Fix message truncation to count visible characters, skipping HTML tags
- Fix CJK truncation using raw index instead of visible char count
2026-04-17 05:52:26 -05:00
dtentiion 8464bfd448 fix: Skin pack names showing only first letter after 4JLibs update (#1518) 2026-04-17 05:49:22 -05:00
SevenToaster509 2b5a46a4fa fix: enchanting
fixes:
fishing rod crashing in enchantment table
updated more swfs that were not updated in a recent merge
sort costs in ascending order
randomise enchantment seeds for new players
2026-04-17 08:26:13 +01:00
SevenToaster509 add784b259 fix: clients crashing on enchantment attempt, disabled quick equip until further notice, updated enchantingmenu swfs because lapis slot was missing? 2026-04-16 20:47:14 +01:00
Fireblade 8d72625516
feat: neoLegacy logo
Signed-off-by: George V. <georgev22.github@gmail.com>
2026-04-14 22:26:00 +03:00
George V. 9803addf5c
chore: clean up the Minecraft.Client/Common/Media folder 2026-04-14 21:20:44 +03:00
George V. 2ddf72a4eb
fix(audio): restore missing comma lost in upstream merge
A comma between "item.armor.equip_generic6" and "damage.critical" was
accidentally dropped during an upstream merge, causing the two entries
to be concatenated into a single string literal at compile time.

This produced an invalid sound key and led to crashes when:
- equipping armor
- triggering critical hits
2026-04-13 22:45:10 +03:00
George V. ac7a207597
Merge branch 'main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Windows64Media/strings.h
#	Minecraft.World/BiomeSource.cpp
#	Minecraft.World/BiomeSource.h
2026-04-13 22:26:43 +03:00
SevenToaster509 f307d7b0eb Fix: Enchanting Table taking wrong levels
Was using cost instead of the index of the slot
2026-04-13 17:25:19 +01:00
Lord_Cambion 4fe92f9a5a changed: guardians placeholders 2026-04-13 18:21:58 +02:00
SevenToaster509 5656aa979f Fix: Controller support broken on LoadMenu
SWF updates:
LoadMenu1080
CreateWorldMenu1080
2026-04-13 16:35:46 +01:00
George V. 80179ae3be
Merge branch 'main' into upstream-merge 2026-04-13 17:56:40 +03:00
George V. 734f186cd3
Merge remote-tracking branch 'itsRevela/main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Common/Audio/SoundNames.cpp
#	Minecraft.Client/SheepRenderer.cpp
#	Minecraft.World/SoundTypes.h
#	README.md
#	cmake/CopyAssets.cmake
2026-04-13 17:54:36 +03:00
George V. edeb0d2230
Merge branch 'main' into upstream-merge
# Conflicts:
#	.github/workflows/nightly.yml
#	Minecraft.Server/cmake/sources/Common.cmake
2026-04-13 17:39:46 +03:00
SevenToaster509 0606ce717d Refactor: Allow slider to be set
WARNING: REQUIRES ARC TO BE EDITED TO FUNCTION, PUSHED THIS TASK TO georgev22
2026-04-13 15:30:40 +01:00
George V. 5efd489229
fix: Prevent crash when displaying hardcore difficulty label
The hardcore difficulty label was using the raw string ID `IDS_HARDCORE` (oops)
instead of a localized string, which caused a crash in the UI.

Replaced `IDS_HARDCORE` with `app.GetString(IDS_HARDCORE)`
2026-04-13 17:18:15 +03:00
George V. 6d98c4ebf6
fix: Prevent gamemode slider movement when hardcore mode is enabled
Add virtual `canMoveSlider` method to UIScene base class and override it
in both LoadMenu and CreateWorldMenu scenes. The method returns false
when attempting to move the gamemode slider while hardcore mode is active,
effectively locking the slider in that state.

The UIController now checks `canMoveSlider` before initiating a slider
drag and during ongoing drag updates.
2026-04-13 17:18:15 +03:00
Tyler Reese 6913ce5323 fix: Implement missing critical hit sound (#1141) 2026-04-13 00:51:16 -05:00
DrPerkyLegit 71707fbb8c Add Chat Formatting Support For Servers (#1483) 2026-04-13 00:49:49 -05:00
DrPerkyLegit 6c572d4940 feat: Scrollable chat (#1493) 2026-04-13 00:42:04 -05:00
SevenToaster509 3d57609e12 Chore: Disable track debugging
Hope no-one needs it, it was pissing me off
2026-04-12 20:43:55 +01:00
SevenToaster509 e0cc846be5 Fix: Lapis Slot for Enchanting takes and consumes any item 2026-04-12 18:42:59 +01:00
SevenToaster509 48ce29a28e Fix: Clicking book while signing removes signing text, Clicking book when book is signed allows text editing, Added default resolution to not crash on smaller screens (720p and less) 2026-04-12 18:25:27 +01:00
George V. 7d05b6a9d6
fix: Replace hardcoded "Hardcore" string with localization resource ID
Replace the hardcoded string literal "Hardcore" in the difficulty slider
label with the localization resource identifier `IDS_HARDCORE` in both
the load menu and create world menu scenes.
2026-04-12 00:41:17 +03:00
Fireblade c322f759f3
Merge branch 'GeorgeV220:upstream-merge' into upstream-merge 2026-04-11 17:25:50 -04:00
Firebladedoge229 e77458b7e8 fix: folderFile common linking 2026-04-11 17:24:49 -04:00
George V. 401ccbcdc9
fix: lock survival when hardcore and swf changes 2026-04-12 00:22:38 +03:00
George V. 1a78363ee5
Merge branch 'main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_LoadMenu.h
2026-04-11 23:36:43 +03:00
George V. 18f7d9a219
feat: merge hardcore hearts 2026-04-11 23:10:43 +03:00
George V. 84f1382a40
chore: merge Windows 64-bit media SWF files from revelations 2026-04-11 22:31:37 +03:00
SevenToaster509 a58b14a2ea Feat: Changed game mode selection to a slider 2026-04-11 20:03:09 +01:00
George V. 224dd491b9
chore: add MediaWindows64 directory to server target assets 2026-04-11 19:12:13 +03:00
George V. bb04d465db
feat: replace ArchiveFile with FolderFile for media asset loading
Replace the ArchiveFile-based media asset loading system with a new
FolderFile implementation that reads files directly from a folder
structure instead of from compressed .arc archives. This change
simplifies asset management and eliminates the need for pre-packaged
media archives.

Key changes:
- Added FolderFile class that indexes and reads files from a folder
- Updated Consoles_App to use FolderFile instead of ArchiveFile
- Modified CMake asset copy configuration to exclude platform-specific
  media folders instead of .arc files
- Updated platform-specific media path references to point to folders
  instead of .arc files

This enables easier development and debugging by allowing direct access
to media files without requiring archive extraction or repackaging.
2026-04-11 18:57:54 +03:00
piebot 08d68d6cdd chore: rebrand to neoLegacy 2026-04-11 18:21:40 +03:00
itsRevela abb18e3e12 fix: new players kicked when joining right after being whitelisted
When a new player was whitelisted while they were sitting on the join screen, their next attempt would insta-kick before the world ever loaded, and the retry after that would let them in for roughly 20 seconds before booting them with "connection closed". Two separate bugs were colliding.

The first kick was a stale cancel flag on the client. When the server rejects a join, the "Connecting to host..." screen tears down, and its teardown path fires the cancel callback defensively. That flag would latch on without ever being consumed, so the very first tick of the next join attempt saw it and immediately closed the fresh connection. Clearing the flag when a new join starts prevents this.

The second kick was an orphan on the server. When the first failed join's TCP dropped, its slot got recycled for the next successful join, but the half-built login object from the broken attempt was still in the pending queue. 30 seconds later its "login took too long" timer fired, and the disconnect packet it tried to send was routed to whoever currently held that slot, which was now the new in-world player. It landed on their live socket and kicked them. Telling the game's Socket layer about the TCP drop lets the orphan clean itself up, and refusing to write on an already-closing socket stops any late packet from leaking into the recycled slot.
2026-04-11 08:13:46 -05:00