67 Commits

Author SHA1 Message Date
iProgramInCpp
777bd6a3e2 * Add PathFinder and friends. 2023-12-06 14:03:20 +02:00
iProgramInCpp
5554fc7c6a * Normalize paths to MC_ROOT. 2023-12-05 22:38:36 +02:00
iProgramInCpp
efebfdd122 * Add CowRenderer 2023-12-05 21:12:05 +02:00
iProgramInCpp
ca295740dd * Add PigModel and PigRenderer 2023-12-05 20:07:20 +02:00
iProgramInCpp
8b3c01b092 * Add ModelPart from 0.2.0 2023-12-05 18:27:01 +02:00
iProgramInCpp
5df07e2fc1 Add scrollable options menu (#99)
* * Add new scrollable options list.

* * Add OptionList.cpp to the CMakeLists.txt

* * Add the new stuff by @jonkadelic to the new options menu.
2023-11-05 18:40:44 +02:00
jonkadelic
e6ab1214af Biome colour and grass side tint options (#98)
* Added biome colour and grass side tint options

* Moved GrassColor and FoliageColor to client/renderer/

* * Fix some build issues.

* * Add the new files to the CMakeLists.txt

---------

Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
2023-11-05 18:19:41 +02:00
iProgramInCpp
60b21356a1 Integrate touch related development. (#90)
* * Add BuildActionIntention crap

* * Set Client and World projects to use MP compilation

* asd

* * Use the new BuildActionIntention to break and place blocks.

* * Reverse engineer the IArea system.

* * Copy break logic from survival into creative conditionally

* * Reverse IBuildInput and MouseHandler
* Replace the new relative paths in the client project with $(MC_ROOT) again

* * Reverse Multitouch, MouseDevice

* * Reverse a bunch of auxiliary classes for input.

* * Use CustomInputHolder instead of holding inputs manually.

* * Reverse a whole BUNCH of things!

* * Add feedback textures to the gitignore.

* * D-pad now renders! Also loads of other work.

* * More Stuff

* * Finish touch control bug fixing.

* * Finalize work.

* * One last thing..

* * Add a "cramped" mode to the options screen and start menu.

* * Oh, forgot to do something
2023-11-02 00:49:11 +02:00
Brent
f12a3c1c61 Visual Studio Project Overhaul + Cleanup (#80)
* Visual Studio Project Overhaul + Cleanup
* SDL2 project for Windows
* Re-added game client icon to SDL2 code
* Renamed "AppPlatform_windows" to "AppPlatform_win32" (this is the name of the Windows API and is not representative of the architecture type)
* Renamed "LoggerWindows" to "LoggerWin32"
* Renamed "SoundSystemWindows to "SoundSystemDS" (DirectSound). This may be used for the 360, so it wouldn't really be Windows-specific then.
* Moved "ClientSideNetworkHandler" from "network" to "client/network". We don't need it being compiled for the server if the client's the only thing that needs it.
* I wonder if this still works on macOS...

* Bugfixes & Fixed for macOS

* Options::savePropertiesToFile Logging Bugfix

* Silence Winsock Deprecation Warnings in RakNet

* VS Project Improvements
- Replaced 50 billion relative paths with $(MC_ROOT)
- Added $(RAKNET_PATH) variable to override RakNet location
- Re-added gitignore for .vcxproj.user files
- Added debugging config to Directory.Builds.props
- Slimmed down project configurations for SDL2

* VS Project Config Bugfixes
- Fixed RakNet header path for additional includes

* RakNet Target for XCode

* XCode Project Config Fixes

* Packet logging

* Network VS Project Filter Fix

* Fix RakNet Packet ID Length
We previously didn't have consistency between old and new C++ regarding PacketType enum length. Now we do. This is required or else it completely breaks networking between the versions.

* Additional RakNet Error Handling

* Disable packet logging

* * Fix CMakeLists.txt

This reflects the relocation of ClientSideNetworkHandler.cpp.

* * Also add renderer/GL/GL.cpp to the CMakeLists.txt

* * Replace libpng with stb_image

* * Fix buggy water behavior.

* * Put the CMakeLists of the SDL project in debug mode

* Visual Studio 2010 Support

* * Change the SdlIoCallbacks from an array to a single member.

This fixes compilation of the sdl2 target on VS.

* * Fix missing _error label.

* Revert "* Fix missing _error label."

This reverts commit 99a057fc84049a16c864bd840fb439a008af5c74.

* Revert "* Replace libpng with stb_image"

* info_updateGame Tiles

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
2023-10-22 10:08:59 +03:00
iProgramInCpp
c67d8dc3c6 * Add DXSDK include and lib directories to the project.
DXSDK_DIR is a standard path that the DirectX SDK (June 2010) installer adds.
2023-09-04 12:23:31 +03:00
Brent
3fa70ad387 vcxproj file fixes (#75)
* vcxproj file fixes
* Platform version is now 8.1
* Platform toolset is now v141_xp
* Fixed IncludePath not inheriting default paths
* Disabled ConformanceMode since it causes the "IUnknown" issue on v141_xp

* Update README.md

* Update README.md
* Includes screenshots

* Update README.md

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-09-04 12:11:56 +03:00
Brent
2e55f99a54 Options Logic Cleanup (#71)
* Output/Logging Overhaul
* Added StandardOut class
* Renamed LOGX macros to LOG_X
* Removed LogMsg macros in favor of LOG_X
* Added console window for debug Windows builds

* Options Refactor
* Moved options loading code from AppPlatform classes to Options class
* Added AppPlatform::singleton()
* Minecraft::m_options is now only accessible via Minecraft::getOptions() (as it should be)
* Making this work with SDL2 next

* Options Cleanup for SDL2

* Added AppPlatform::hasFileSystemAccess()
* Options won't try to load if hasFileSystemAccess returns false. Emscripten build will be happy.

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-09-04 12:11:36 +03:00
iProgramInCpp
cd4c469571 * Move the loggers into the proper filters 2023-08-28 22:04:47 +03:00
iProgramInCpp
73b5aded1b * Use concrete log levels instead of prefixing the log string.
* Remove the "info" tag.
2023-08-28 21:44:47 +03:00
iProgramInCpp
d88e0a7643 * Remove debug console - it's now behind a GameMod
* Remove log counter.
2023-08-28 20:45:05 +03:00
iProgramInCpp
6e2fffdd68 * Rename Logger_windows -> LoggerWindows
* Add logger support for SDL base
2023-08-28 11:13:57 +03:00
iProgramInCpp
8fe86fccb5 * Rename StandardOut -> Logger. 2023-08-28 11:01:12 +03:00
Brent
5c1ea03747 Logging cleanup (#69)
* Mac OS X 10.6 & More C++03 Support

* Fix SDL2 options.txt loading for C++03

* Output/Logging Overhaul
* Added StandardOut class
* Renamed LOGX macros to LOG_X
* Removed LogMsg macros in favor of LOG_X
* Added console window for debug Windows builds

* Updated Xcode Project
+ StandardOut.hpp
+ StandardOut.cpp

* StandardOut_windows
* Replaced the Windows #ifdefs in StandardOut with StandardOut_windows

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-08-28 10:55:41 +03:00
Brent
f7915a1dab Mac OS X 10.6 & More C++03 Support (#68)
* Mac OS X 10.6 & More C++03 Support

* Fix SDL2 options.txt loading for C++03

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-08-27 11:46:15 +03:00
iProgramInCpp
282ecf85d4 * Replace the hardcoded SLASH define with an actual keybind.
This was a thing in released Minecraft
2023-08-22 19:31:15 +03:00
iProgramInCpp
bf5114e684 * Also fix support for SDL again... 2023-08-22 18:23:31 +03:00
iProgramInCpp
b129fd7434 Add mccpp.vcxproj.user, so the working dir is safe 2023-08-21 11:12:20 +03:00
Brent
74038329f1 Move Windows projects into platforms folders (#65)
Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-08-21 10:31:20 +03:00
iProgramInCpp
82770d3436 * Small clean ups to the project. 2023-08-19 16:12:32 +03:00
Brent Da Mage
d5ee7bfc08 Cleaned Up AppPlatform & Input Classes
* Cleaned up AppPlatform classes
* Documented & improved Keyboard & Mouse classes
* Improved input-handling code in the Windows & SDL main.cpp files
2023-08-19 15:57:50 +03:00
iProgramInCpp
919e4d8625 * Move client/common/ and client/network/ into common/ and network/ respectively. 2023-08-19 10:05:48 +03:00
iProgramInCpp
a08478d527 * Slight refactor to the resize code. 2023-08-17 11:44:24 +03:00
iProgramInCpp
2da5c2e2fe * Add clouds! (optional feature) 2023-08-13 20:38:52 +03:00
iProgramInCpp
34fc30f08a * Outline all the Mouse and Keyboard code. 2023-08-11 11:19:26 +03:00
iProgramInCpp
d1de430d14 * Add optional 3d panorama background 2023-08-11 00:13:06 +03:00
f
ac4369f5b2 Fix memory leak in SoundSystemWindows (#47)
* Fix memory leak in SoundSystemWindows

Add functionality to release LPDIRECTSOUND3DBUFFER8 when sound finished playing.

* Update minecraftcpp.vcxproj

same mistake again
2023-08-10 10:05:13 +03:00
iProgramInCpp
c445c255a3 * Fix bad soundbuffer release check in the SoundSystemWindows 2023-08-09 23:12:07 +03:00
iProgramInCpp
df47842c5e * Add PatchManager - Allows you to patch terrain.png and items.png on the fly.
This can be used for modding, since you don't need to share copyrighted Mojang assets alongside your texture patches.
2023-08-09 22:13:04 +03:00
iProgramInCpp
a7f56c5581 * Change options.txt separator from '|' to ':'.
* Move FireTexture.cpp into the correct filter.
2023-08-09 18:44:49 +03:00
Brent
a0f71c7b27 C++03 Support & Partial Xbox 360 Support (#37)
* WIP C++03 + Xbox 360 Support

* math.h & _USE_MATH_DEFINES on Level.hpp
Updated Xenon vcxproj file for new file structure.

* * Fix bad GUI scale setup.

* * Gui: Use ratios instead of hardcoded sub-1 floating point values, to make the mechanism more clear.

* Add Direct Connect Button and Screen (#30)

* Add Direct Connect Button and Screen

* Remove accidental extra build directories for wasm

* Add DirectConnectScreen.cpp to the CMake

* Use Hungarian coding style notation

* * Fix errors caused by #30

* * Improve the Chat Screen

* * Improve the DirectConnectScreen, among other things.

* * Update the game title once again.

* * Add build-wasm.bat.

* * Add info about compiling for wasm

* * Fix send to specific GUID actually broadcasting to everyone

* * Add command manager.

* * Add writeable configuration.

* * Allow dynamic screen size change on windows

* * Allow the same thing on the emscripten version.

* WIP C++03 + Xbox 360 Support

* Fixed a possible merging issue that broke RakNet?

* Additional Xbox 360 compatability fixes

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
Co-authored-by: ts <124226059+uniformization@users.noreply.github.com>
2023-08-07 15:48:52 +03:00
iProgramInCpp
88d68cf21e * Allow dynamic screen size change on windows 2023-08-06 22:45:15 +03:00
iProgramInCpp
9ef72164bb * Add writeable configuration. 2023-08-06 22:21:18 +03:00
iProgramInCpp
e7a520ba34 * Update the game title once again. 2023-08-06 14:03:33 +03:00
iProgramInCpp
554c971c05 x 2023-08-05 22:17:24 +03:00
f
eaa90a6f95 * SoundSystemWindows: Fix low volume on 3D Sounds, remove useless calloc. (#27)
* SoundSystemWindows: Fix low volume on 3D Sounds, remove useless calloc.

Mojang made the volume on 3D sounds very quiet so i multiplied it by 5 and it seems to match better to the 2D sounds now. The calloc crap was not needed i dont know what i was thinking there

* Update minecraftcpp.vcxproj -- undoes an accidental change
2023-08-05 18:49:09 +03:00
iProgramInCpp
0ceef907c0 * Allow handling of WM_CHAR in the case of Windows. 2023-08-05 16:13:11 +03:00
iProgramInCpp
bfdd5beb75 * Fix include paths. Now it builds properly. 2023-08-05 15:34:07 +03:00
iProgramInCpp
3f8f7d7e00 * Make the game not run if a texture couldn't be loaded. 2023-08-02 23:18:46 +03:00
iProgramInCpp
cd777c1bb9 * Update game title. 2023-08-02 23:18:46 +03:00
iProgramInCpp
ec73b28e92 Merge branch 'master' into master 2023-08-02 14:05:02 +03:00
iProgramInCpp
b485071d00 * Unblock sound playback 2023-08-02 14:03:57 +03:00
iProgramInCpp
450cb190b6 * Finish level saving. 2023-08-02 13:15:25 +03:00
f
9bfec799e2 Improve and fix crash in SoundSystemWindows
Add 3D Sound Listener, Fix crash when DirectSound fails to initialize. Add second argument to setListenerAngle. Implement setListenerAngle and setListenerPos in Minecraft.cpp (Is this a good place to put it?)
2023-08-01 22:02:24 +02:00
iProgramInCpp
0cdc8e07fb Revert "Use DwmFlush to VSync instead of OpenGL VSync on supported OS" 2023-08-01 13:19:25 +03:00
Kleadron
79b4185324 Forgot to add WIN32_LEAN_AND_MEAN 2023-08-01 02:51:18 -07:00