MatthewBeshay
4d9db3ed3b
refactor: hide DLC pack lookups behind TexturePack::needsPurchase and BufferedImage helper
2026-04-09 21:22:07 +10:00
MatthewBeshay
8b202ba5f1
refactor: extract ISkinAssetData so minecraft/ stops including DLCSkinFile.h
2026-04-09 21:11:41 +10:00
MatthewBeshay
80019158da
fix: harden Log::info, switch StringTable to span, consolidate getLocale
2026-04-09 20:59:00 +10:00
MatthewBeshay
84140ae6d4
refactor: move StringTable impl into minecraft/locale and inject locales
2026-04-09 20:35:53 +10:00
MatthewBeshay
aa250ff560
refactor: inject IPlatformLeaderboard into Minecraft and StatsCounter via constructor
2026-04-09 20:19:50 +10:00
MatthewBeshay
08d8e341b9
refactor: stop inheriting Game from IPlatformGame and delete the override stubs
2026-04-09 19:35:47 +10:00
MatthewBeshay
9c502ce8fc
refactor: route IPlatformGame and Leaderboard call sites through platform/
2026-04-09 19:28:57 +10:00
MatthewBeshay
fbfccdeac6
chore: drop a few more dead app/ includes from minecraft
2026-04-09 15:49:31 +10:00
MatthewBeshay
5d86773134
refactor: relocate IPlatformNetwork/Leaderboard/Game interfaces to platform/
2026-04-09 15:42:23 +10:00
MatthewBeshay
e051527607
refactor: replace XuiActionPayload polling with server-owned typed action queue
2026-04-09 15:24:13 +10:00
MatthewBeshay
45c85fcf79
perf: stop heap-allocating mob restriction state and Path nodes
...
Inlines restrictCenter and leashRestrictionGoal as value members and
stores Path nodes by value, removing per-mob and per-path malloc churn.
2026-04-09 15:24:13 +10:00
MatthewBeshay
fe77d9c2a0
build: optional mimalloc replacement for system malloc
...
Toggle with -Denable_mimalloc=enabled/disabled/auto.
2026-04-09 15:24:13 +10:00
MatthewBeshay
b7792622a9
perf: replace EventArray mutex+cv with atomic mask
...
set() is now lock-free; waiters block via std::atomic::wait.
2026-04-09 15:24:13 +10:00
MatthewBeshay
cd4b39cf88
style: clang-format the entire project
2026-04-09 15:24:13 +10:00
MatthewBeshay
81c2eb82f0
fix: clear all build warnings and clean up review nits
2026-04-09 15:24:13 +10:00
MatthewBeshay
aa515c5f3d
refactor: replace winapi_stubs with std::vector, std::atomic_ref and std::chrono
2026-04-09 15:24:13 +10:00
MatthewBeshay
1b9d27f4a0
refactor: hide miniaudio behind PIMPL in SoundEngine
2026-04-09 15:24:13 +10:00
MatthewBeshay
0ef3b2de31
refactor: pull DLC enums out into their own header
2026-04-09 15:24:13 +10:00
MatthewBeshay
b3d6e7151b
refactor: extract a network service interface for minecraft to depend on
2026-04-09 15:24:13 +10:00
MatthewBeshay
03618ed156
refactor: move leaderboard/network interfaces back into app
2026-04-09 15:24:13 +10:00
MatthewBeshay
33fe5fec3a
chore: drop a few more dead LinuxGame.h includes
2026-04-09 15:24:13 +10:00
MatthewBeshay
61a0d9690b
chore: drop a few more dead winapi_stubs.h includes
2026-04-09 15:24:13 +10:00
MatthewBeshay
09a6ba4a12
refactor: move Minecraft_Macros.h into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
e14825c302
refactor: move GameRule chain headers into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
efe4c91538
refactor: move BuildVer.h into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
a3b8adeb5a
refactor: move Console_Debug_enum.h into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
58de5bb40b
refactor: move ConsoleGameRulesConstants.h into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
1ddf12beb9
refactor: move WstringLookup into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
e5cdd2c370
refactor: move NetworkPlayerInterface and SessionInfo into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
9b830f1bfc
refactor: carve out a proper sound interface with miniaudio behind it
2026-04-09 15:24:13 +10:00
MatthewBeshay
b032e2a3a0
refactor: use function-local statics for platform accessors to dodge SIOF
2026-04-09 15:24:13 +10:00
MatthewBeshay
60410f59bf
refactor: split GLRenderer so the class is not tangled with GL macros
2026-04-09 15:24:13 +10:00
MatthewBeshay
9834a95f0e
build: break platform_sdl2 up into per-subsystem libraries
2026-04-09 15:24:13 +10:00
MatthewBeshay
7b28bcbcb6
refactor: move ColourTable into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
016b2d91b4
refactor: move StringTable.h into minecraft (impl stays for now)
2026-04-09 15:24:13 +10:00
MatthewBeshay
5f7e4ab703
refactor: move Console_Awards_enum.h into minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
95efdb54dd
chore: drop dead winapi_stubs.h includes across minecraft
2026-04-09 15:24:13 +10:00
MatthewBeshay
6e1964adb3
chore: drop dead LinuxGame.h includes across minecraft
2026-04-09 15:24:12 +10:00
MatthewBeshay
52b4ccaea2
refactor: type the IGameServices payload as a variant instead of void*
2026-04-09 15:24:12 +10:00
MatthewBeshay
8084ec7857
chore: delete unused IPlatformUIController and Platform aggregator
2026-04-09 15:24:12 +10:00
MatthewBeshay
6b3b0134cf
build: list sources explicitly in meson.build instead of shelling out
2026-04-09 15:24:12 +10:00
MatthewBeshay
d7eca58551
refactor: split App_Defines.h up by concern and drop the umbrella
2026-04-09 15:24:12 +10:00
MatthewBeshay
875039a6dd
refactor: use unique_ptr<byte[]> in ImageFileBuffer instead of malloc/free
2026-04-09 15:24:12 +10:00
MatthewBeshay
7cceb05d83
build: turn on LTO and tidy up release build flags
2026-04-09 15:24:12 +10:00
MatthewBeshay
48a170a6c4
Merge pull request #412 from 4jcraft/refactor/nuke-widestrings
...
refactor: nuke all widestrings and widechars everywhere
2026-04-08 17:02:56 +10:00
MatthewBeshay
f1f1d116b3
Merge pull request #409 from 4jcraft/platform-refactor
2026-04-08 13:39:24 +10:00
MatthewBeshay
b88a89ae01
Merge pull request #407 from 4jcraft/fix/includes
...
fix: missing includes in MenuController/XuiActions
2026-04-07 12:55:07 +10:00
MatthewBeshay
5d9bcac156
refactor: decouple minecraft/ from app/ via IGameServices virtual interface
2026-04-06 20:32:24 -05:00
MatthewBeshay
7787015025
refactor: move HandleXuiActions to separate translation unit
2026-04-06 20:32:24 -05:00
MatthewBeshay
3b47b80762
refactor: extract GameSettingsManager, DLCController, NetworkController, MenuController from Game
2026-04-06 20:32:24 -05:00
MatthewBeshay
d61d3cddab
refactor: extract LocalizationManager, ArchiveManager, SkinManager from Game
2026-04-06 20:32:24 -05:00
MatthewBeshay
0c7800d28b
refactor: extract SaveManager, BannedListManager, TerrainFeatureManager, DebugOptions from Game
2026-04-06 20:32:24 -05:00
MatthewBeshay
5f64818302
refactor: eliminate app. calls from minecraft via Log, Strings, GameHostOptions, and service wiring
2026-04-06 20:32:24 -05:00
MatthewBeshay
f28c722da4
refactor: split QNet stubs out of XboxStubs.cpp, remove dead Xbox symbols
2026-04-06 20:32:24 -05:00
MatthewBeshay
54a1f90212
refactor: move misplaced headers to their proper modules
2026-04-06 20:32:24 -05:00
MatthewBeshay
d814a78453
refactor: flatten app/ and util/ directory structure
2026-04-06 20:32:24 -05:00
MatthewBeshay
31580d44dd
refactor: rename CMinecraftApp to Game, extract IPlatformGame interface
2026-04-04 10:17:12 +11:00
MatthewBeshay
7ecb17596a
refactor: migrate platform interface callbacks from C-style to std::function
2026-04-04 09:42:27 +11:00
MatthewBeshay
f11473776c
refactor: switch CompoundTag from unordered_map to flat_map
2026-04-04 09:42:27 +11:00
MatthewBeshay
c3312a9a01
fix: update CI to install libc++ and fix artifact path
2026-04-03 19:43:00 +11:00
MatthewBeshay
ec0a8af821
fix: update CI to install libc++ and fix artifact path
2026-04-03 19:14:29 +11:00
MatthewBeshay
5105f89648
refactor: use std::endian directly, enum class EDefaultSkins, rename reserved-prefix helpers
2026-04-03 19:05:19 +11:00
MatthewBeshay
3f33bf4817
fix: remove unnecessary zlib Byte typedef workaround in compression.cpp
2026-04-03 19:01:05 +11:00
MatthewBeshay
bfc960c0f1
refactor: split EDefaultSkins out of Definitions.h into SkinTypes.h
2026-04-03 19:01:05 +11:00
MatthewBeshay
decc20b70f
refactor: dissolve console_helpers into util, platform, and minecraft
2026-04-03 19:01:05 +11:00
MatthewBeshay
116cf4887d
refactor: remove dead code and fix thread safety in console_helpers
2026-04-03 19:00:40 +11:00
MatthewBeshay
5bbb045e86
refactor: consolidate timing utilities into header-only Timer.h
2026-04-03 18:57:29 +11:00
MatthewBeshay
98e23cfd4d
refactor: consolidate file I/O into IPlatformFileIO, delete PortableFileIO and PathHelper
2026-04-03 18:57:29 +11:00
MatthewBeshay
e4d871cd2f
chore: switch default toolchain to LLVM 20 + libc++ for full C++23 support
2026-04-03 18:57:29 +11:00
MatthewBeshay
bc2a0d6c7f
feat: add IPlatformFileIO interface for cross-platform file access
2026-04-03 18:57:29 +11:00
MatthewBeshay
5b93add4c4
docs: fix binary path and run instructions in README
2026-04-03 18:57:29 +11:00
MatthewBeshay
f2a6d29fa1
refactor: wire IPlatformLeaderboard and IPlatformNetwork into PlatformServices
2026-04-03 18:57:29 +11:00
MatthewBeshay
eacf5ccf30
refactor: remove backwards-compat enum aliases from PlatformTypes
2026-04-02 16:30:19 +11:00
MatthewBeshay
26222f26e0
refactor: fold 4J.Common into platform types, eliminate last 4J directory
2026-04-02 16:27:06 +11:00
MatthewBeshay
11f9bd6046
refactor: move Minecraft.Client into app
2026-04-02 16:09:32 +11:00
MatthewBeshay
e5a859f8a7
refactor: move 4J implementations into platform/sdl2
2026-04-02 16:03:08 +11:00
MatthewBeshay
35b63da24d
refactor: migrate CPlatformNetworkManager into IPlatformNetwork
2026-04-02 15:42:22 +11:00
MatthewBeshay
7b1a6092e1
refactor: extract IPlatformLeaderboard from LeaderboardManager
2026-04-02 15:36:42 +11:00
MatthewBeshay
f70d4b703b
refactor: split extraX64.h into NetTypes.h and XboxStubs.h
...
World no longer depends on Xbox/network stubs. INVALID_XUID moved to
4J_Compat.h. XPhysicalAlloc replaced with std::vector in HellFlatLevelSource.
2026-04-01 17:48:04 +11:00
MatthewBeshay
b4feb6ce92
chore: mark comment 4jcraft
2026-04-01 16:28:57 +11:00
MatthewBeshay
cca286b73a
fix: getSubimage pixel data written to copy, not actual buffer
2026-04-01 16:18:40 +11:00
MatthewBeshay
be3cb9ad92
fix: undef stb_vorbis macros leaking into unity build chunks
2026-04-01 13:47:25 +11:00
MatthewBeshay
4271e562a6
fix: clean up __valid macro leak at source in sal.h instead of patching every include site
2026-04-01 13:15:16 +11:00
MatthewBeshay
ee31bfcec5
refactor: replace POSIX/Win32 APIs with standard C++ equivalents
...
Replaces platform-specific APIs across 21 files with std::chrono, std::fstream, std::filesystem, and std::this_thread. Adds PlatformTime.h utility header wrapping std::chrono::steady_clock for GetTickCount/QueryPerformanceCounter patterns.
2026-04-01 05:01:37 +11:00
MatthewBeshay
2f92b07c1f
fix: resolve ByteBuffer hardcoded path and static const linker errors
2026-03-31 21:50:15 +11:00
MatthewBeshay
a18cb3d484
refactor: replace shared_ptr(new T) with make_shared<T>
2026-03-31 20:42:45 +11:00
MatthewBeshay
8b836cf604
refactor: remove remaining trial/upsell from platform interfaces
2026-03-31 20:12:15 +11:00
MatthewBeshay
f7241f8064
chore: add TODO for std::function migration in platform interfaces
2026-03-31 20:05:59 +11:00
MatthewBeshay
940b214539
refactor: apply C++ best practices to platform interfaces
...
Extract shared types to PlatformTypes.h, add [[nodiscard]] to query
methods, convert file-scope enums to enum class with compat aliases.
2026-03-31 20:05:59 +11:00
MatthewBeshay
5b02454b4f
refactor: add IPlatformSound, IPlatformNetwork, IPlatformUIController interfaces
2026-03-31 20:05:59 +11:00
MatthewBeshay
42839182cd
refactor: break World dependency on 4J modules via platform interfaces
2026-03-31 20:05:59 +11:00
MatthewBeshay
5c3668ec3c
refactor: remove IsFullVersion and all trial mode code
2026-03-31 20:05:59 +11:00
MatthewBeshay
9e207250cb
refactor: add platform interfaces, move GetPrimaryPad to Input, gut Profile stubs
2026-03-31 20:05:59 +11:00
MatthewBeshay
e942d0d472
refactor: revert GameMath rename back to Mth
2026-03-31 13:38:53 +11:00
MatthewBeshay
2a7e5dc1d4
refactor: migrate NBT storage to unique_ptr, remove -fpermissive
...
CompoundTag/ListTag now use unique_ptr internally, fixing multiple memory leaks in getCompound/getList/getAllTags and tag overwrite paths.
2026-03-31 13:27:00 +11:00
MatthewBeshay
8f0c2a3f26
refactor: replace Mth with GameMath, switch to stdlib math and std::numbers::pi
...
Inlined trivial wrappers, moved ranged random methods to Random, replaced M_PI with std::numbers::pi, unified DEGRAD/RAD_TO_GRAD as DEG_TO_RAD, fixed getInt/getDouble default fallback bug, and switched non-worldgen sin/cos to sinf/cosf.
2026-03-31 13:12:34 +11:00
MatthewBeshay
7ddfaeb59e
refactor: remove arrayWithLength, replace with std::vector
...
Eliminates the custom arrayWithLength<T> wrapper and all typedefs, replacing with std::vector<T> directly.
2026-03-31 12:06:19 +11:00
MatthewBeshay
e911e07a58
Refactor C4JThread: modernise API naming and replace Windows constants
...
Rename all PascalCase methods to camelCase, replace Windows macro constants with C++ constexpr members, convert ThreadPriority to enum class, remove unused Sleep(), fix memory ordering on inline accessors, extract platform code into helpers.
2026-03-31 01:06:06 +11:00
MatthewBeshay
156a23d744
Remove dead _ENTITIES_RW_SECTION code and update stale critical section comments
...
The RW section code path was never compiled. Updated remaining comments to reflect mutex/lock terminology.
2026-03-31 00:23:35 +11:00
MatthewBeshay
a513fa7597
Rename CriticalSection wrapper functions to match std::mutex usage
...
EnterCallbackIdCriticalSection/LeaveCallbackIdCriticalSection -> lockCallbackScenes/unlockCallbackScenes, EnterSaveNotificationSection/LeaveSaveNotificationSection -> lockSaveNotification/unlockSaveNotification, m_saveNotificationCriticalSection -> m_saveNotificationMutex.
2026-03-31 00:16:16 +11:00