Commit Graph
100 Commits
Author SHA1 Message Date
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