Skip to content

Releases: DreamyCecil/Serious-Engine

[Snapshot] 2024-09-09 - Linux support

09 Sep 12:55
Compare
Choose a tag to compare
Pre-release

Outline

This snapshot implements initial support for Linux operating systems with working DedicatedServer & SeriousSam projects, as well as a lot of fixes and improved support of game controllers.

Code cleanup

  • 84b2d74 - Removed additional inclusion of io.h from various source files since it is already included in Engine/Base/FileSystem.h for Windows.
  • 7fae8c4 - Moved EAX_ENVIRONMENT_* enum values under a separate header file.
  • cde4405 - Removed extern keyword from variable definitions.
  • e510e60 - Removed old unused code for disabling some Windows actions.
  • 8c07199 - Removed GCC inline assembly code from math functions.
  • ee633cb - Removed some Win32-isms.

Code changes

  • 1dba771 - Added function for displaying error messages without terminating the game.
  • Filesystem improvements:
    • 1f4221e - Reworked filename methods of CTString to make them recognize and process forward slashes in paths as well.
    • 336f9fa - Replaced various fopen() calls with FileSystem::Exists() in stream methods.
    • af67faa - Added a cross-platform alternative to the standard fopen() method.
    • 7c45372 - Adapted path-related code to Unix filesystems.
    • c52ac15 - Made application paths be determined on non-Windows systems.
  • 92a979b - Created strong typedefs for Win32 handle types for non-Windows platforms.
  • e68d0bf - Slightly improved _strupr() implementation for Unix systems.
  • 23374a9 - Added support for running the entire engine on the same thread.
  • Master server query rework:
    • 5e98924 - Fixed ser_bEnumeration being ignored when working with master server.
    • 9f062b4 - Replaced GameAgent code with query manager from Classics Patch.
      • Added support for "DarkPlaces" master server protocol.
      • Adapted query manager code to Unix.
  • Linux support:
    • 402ec96 - Adapted ECC code to Unix.
    • 3e2a626 - Adapted thread synchronization code to Unix.
    • 50fc784 - Adapted smaller chunks of code for Unix.
    • bc51639 - Adapted SeriousSam initialization code to Unix.
    • 58daa17 - Adapted communication interface code to Unix.
    • d2c095c, 22b8c42 - Adapted graphics code to Unix.
    • ffc597f - Adapted DedicatedServer code to Unix.
    • 50996f7 - Made engine gather info about hardware upon initialization on Unix.
  • e47ed4f - Added name hashes to shell symbols for retrieving symbols faster.
  • d362f78, 35b096d - Linked Ogg Vorbis library statically under static configurations.
  • Input & window events rework:
    • 6869a57 - Refactored and abstracted code related to input & game window events.
    • a4df5eb, 06a54b4 - Separated second mouse and joystick functionality from the main input code.
    • ca4a0c9 - Made OS::GetCursorPos() method work more like SDL_GetMouseState() and removed OS::ScreenToClient() method.
    • a5dad01 - Reworked window & input messages into their own custom cross-platform events.
    • 0887a76 - Replaced Windows Multimedia Joysticks functionality with SDL_GameController.
    • 9e55e76, d69b6f9 - Implemented full input support using SDL, if it's preferred, and added proper support for Mouse Button 4 and Mouse Button 5.
  • 162c6a2 - Added method to OS::Window for retrieving the native window handle under Windows platforms.

Fixes

  • Various cross-platform fixes:
    • e6bdc8f - Made CSelection template code more cross-platform.
    • f481f57 - Got rid of I64 suffix from 64-bit integer values.
    • 77b68d9 - Replaced the last Sleep() methods with CTimer::Suspend() in SeriousSam.
    • 3ba2c46 - Added const specifier to reference arguments in some game functions.
    • 0e6b6c2 - Fixed zlib compression for network packets under Unix.
  • f5322e2 - Used full path to MenuPrinting.h relative to SeriousSam project in MenuGadget.h.
  • Implicit string conversion fixes:
    • f37a1dd, 968c202 - Added experimental feature for checking arguments of string printing methods.
    • 014ae5a - Got rid of as many implicit CTString -> const char * conversions as possible.
  • a6db89c - Fixed various warnings and errors for GCC.
  • 4d04da7, 8ae5d8a - Got rid of various comparisons of this with NULL that might have been optimized away by GCC.
  • 9c3fe44 - Fixed minor issues from warnings.
  • 64d77ec - Fixed assertions upon trying to render computer images in Deathmatch.
  • bca14aa - Fixed compilation errors under newer C++ standards using MSVC.

Project cleanup

  • 8160332, 09ccafa - Renamed Statistics_Internal.h to Statistics_internal.h for case consistency.
  • 6583db4, 0e7657e - Fixed filename case of some included headers.
  • c5d6d96, e005e80 - Fixed casing in names of some headers.
  • 7e58616 - Removed deprecated compiler option from project files.

Project changes

  • d8ad157 - Renamed GameMP/WEDInterface.cpp to GameMP/Interface.cpp.
  • a5759af - Made Engine delete old Bison & Flex generated files before building it.
  • d2f1dcf - Added CMake project files for building the entire project under Linux.

[Snapshot] 2024-08-11 - Quality-of-life features & fixes (Pt. 4)

11 Aug 06:39
Compare
Choose a tag to compare

Outline

This snapshot introduces a new "extra content directories" system, adds support for more aspect ratios and resolutions by the game window and fixes a few issues.

Code cleanup

  • de2bf44 - Replaced SE1_D3D macro with a new SE1_DIRECT3D macro switch in the config that can be easily toggled instead of having to define it for all projects.
  • 730f8b3 - Reworked SE1_3DFX macro into macro switch in the config that can be easily toggled instead of having to define it for all projects.

Code changes

  • 954ec4d - Added new server-to-client packet for making clients dump synchronization data on bad syncs for debugging purposes.
  • ae3051d, de61379 - Added more options for the game window:
    • Added support for multiple aspect ratios with more resolutions for each of them.
    • Made native screen resolution be automatically added under the closest aspect ratio list.
    • Added "Borderless" window mode.
    • Made the game window DPI-aware to prevent it from being scaled by Windows.
  • a79174f - Moved binary data generated by game & tool applications under the "UserData" directory as well.
  • ee4c7cd - Moved ZIP entry class definition into the header file and added a method for retrieving a specific entry by its index.
  • Added support for extra content directories for loading resources from other games and folders:
    • 7c82d8f - Added more features to the MakeDirList() method via new flags.
    • ef94fb0 - Slightly reworked and fixed the internal ExpandFilePath_read() method.
    • 6f2c997 - Replaced CD path functionality with a list of extra "game" and "content" directories.

Fixes

  • f70d891 - Fixed other player controls not loading when selecting their presets.
  • a5a9cff - Fixed some compilation errors under Visual Studio 2010 and Visual Studio 2013.
  • e0d81c6 - Fixed compilation error when Direct3D support is enabled without Truform support.
  • 02dbc5a - Wrote a Direct3D implementation for the gfxSetTextureMatrix2() method that's used solely by the terrain system.

[Snapshot] 2024-07-13 - Quality-of-life features & fixes (Pt. 3)

13 Jul 17:20
Compare
Choose a tag to compare

Outline

This snapshot focuses on fixing various issues, some of which were left by the last release.

Code cleanup

  • 555036f - Removed unnecessary DllMain() function from Engine.

Code changes

  • 4adbdfa - Made the game store all user files under the UserData/ directory.
  • 13acf41, 79c719a - Made the engine store log files under the Logs/ directory.
  • Fixed unreliable logic related to player jumping.
    • 73296d2 - Added a new virtual event method to CMovableEntity that's called every time an entity physically jumps.
    • d707caa - Made player entity handle jumping directly via a new CMovableEntity event method instead of checking CMovableEntity::en_tmJumped values.
  • fe26720 - Added SE1_DOUBLE_TIMER macro switch for toggling double-precision timer values.

Fixes

  • 1e3c80d - Made the engine detect the game directory from any subdirectory under Bin/.
  • e04bd9a - Adapted perspective projections and drawports to wider aspect ratios.
  • 2bf95e5 - Fixed rare crashes related to non-existing sound interface.
  • 38df2e9 - Replaced console warning in CStaticArray::New() with the old commented assertion.
  • bd97444 - Made sure that the internal mask shader is set only once to avoid assertion spam.
  • 5fc305d - Commented out an unnecessary assertion in CTFileStream::Close().
  • 9c0acdb - Adapted HUD code from EntitiesMP to double-precision timer values.
  • 9eb6ff8 - Fixed some more GCC-specific warnings and errors.
  • bd09bbe - Converted backslashes into forward slashes in the filename that's passed into ECC.
  • 6398a4c - Made engine skip IFeel initialization on non-Windows systems.

[Snapshot] 2024-07-11 - Static building support

11 Jul 21:16
Compare
Choose a tag to compare

Outline

This snapshot focuses on adding configurations for static building of all dynamic libraries and linking them by including their code into individual executable files.

Code cleanup

  • 5bf6327 - Moved entity component management methods from CEntityClass to CDLLEntityClass.
  • b859216 - Reworked exporting and importing APIs for different modules.
  • 208ad40 - Reformatted more conversions of filenames and strings.
  • a5b1886 - Moved all code related to wed_bUseGenericTextureReplacement into Engine.
  • 2eb1ffc, 2f1a3cb - Removed wrappers of GameMP's LCD functions from SeriousSam.
  • 5479a52 - Marked CTString::Split() as const.

Code changes

  • Reworked entity classes and shaders to register themselves in special engine registries upon dynamic module initialization.
    • 5076d9a - Added class registries for dynamic modules that will be automatically filled.
    • 4c9318b - Utilized registries for entity classes and shaders in dynamic modules.
  • de22950 - Added OS structure for dynamic modules that utilize the engine.
  • 2b035bd - Made entity classes and shaders utilize new engine module structure.
  • Reworked various dependencies on EngineGUI, GameGUIMP and GameMP projects.
    • 0c066e3 - Added interface class for EngineGUI module in the engine.
    • 3217027 - Reworked EngineGUI to utilize its new engine interface.
    • d506c8f - Directly linked and utilized GameMP and GameGUIMP libraries.
    • 7fb0d61 - Used some functions directly from GameMP instead of accessing them through the shell.
  • Support for static linking of all projects.
    • 81250d8 - Defined some variables and functions only used within their source files as static.
    • 4875d45 - Renamed _hwndMain to _hwndCurrent in Engine.
    • 42218e7, 5e379bb - Used custom prefix for Bison/Flex scripts in SeriousSkaStudio.
    • fe3cfdf, aaee7b9 - Defined some inline methods properly in Engine.
    • 8002d64 - Adapted engine code to the new static build configurations.
  • b1e1e26 - Add CTString method for converting any path in the string into a full absolute path.
  • 139d0e2 - Implemented a new improved method for determining application paths on demand and a method for creating all subdirectories in a path relative to the game directory.
    • Prevented _fnmApplicationPath and _fnmApplicationExe variables from being accidentally modifiable.
    • Obsoleted and removed IgnoreApplicationPath() and UseApplicationPath() functions because of constant path variables.
  • 86b6187 - Made SeriousSam launch mods using the exact same executable filename and removed old functions for launching mods and teasers after the game.

Project changes

  • cedffb3 - Added new build configurations for static building of some projects.
    • Renamed "Debug" and "Release" build configurations to "Dynamic-Debug" and "Dynamic-Release".
    • Renamed property sheets for dynamic build configurations from "Debug.props" and "Release.props" to "DynamicDebug.props" and "DynamicRelease.props".
    • Added property sheets for static build configurations.
    • Added missing "DisplaceShader.cpp" source file to Shaders project.
  • 401b5bc - Added special source files for statically linking specific projects.
  • 2ab9628 - Sorted built binaries into their own Bin folders.
  • 6a34742 - Appended "-Dynamic" and "-Static" suffixes to built executables depending on the build configuration.

[Snapshot] 2024-05-29 - Quality-of-life features & fixes (Pt. 2)

29 May 15:15
Compare
Choose a tag to compare

Outline

This snapshot focuses on extended support of SDL functionality, reworks identification of applications for the engine, reworks fundamental support of different sound APIs and fixes a few bugs.

Code cleanup

  • 30b7448 - Removed obsolete and unused CMessageDispatcher::md_strGameID field.
  • 230eed6 - Reworked configuration header and moved it outside the Base directory.
  • 8240cf7 - Initialized IFeel via a new external method to reduce clutter in the main engine source file.
  • bdb431f - Added own implementation of bit rotation for CTString::GetHash().
  • f748db4 - Marked some character arrays as const in ChoosePixelFormatTB() method.

Code changes

  • 76b2a9b - Replaced game ID string and global application flags upon engine initialization with a new engine application type.
  • a8d3d5c - Reworked sound library to rely on dynamic sound API classes that switches between them when needed. WaveOut and DirectSound (with EAX) interfaces are now separate from each other and reside under their own source files.
  • 9f49f26 - Disabled DirectSound on non-Windows platforms and disabled any interaction with the sound library when running a dedicated server application.
  • Better SDL support.
    • a25a435 - Slightly adjusted code for timers.
    • d7834a5 - Made CTempDC class compatible with SDL window management.
    • f8bb408 - Made SDL automatically initialize and shut down in the engine if it's available.
    • 00765dd - Added temporary solutions for HWND usage if SDL usage is preferred.
    • e0173c7, b43d80f - Made SDL manage windows of the game client if its usage is preferred.
  • Implemented OpenGL rendering using SDL.
    • 185f496 - Refactored initialization code for graphics APIs.
    • 197efd7 - Made SDL setup OpenGL display adapter if its usage is preferred.
    • 4e737a9, 1d32618, 6e0e7cd - Implemented OpenGL rendering using SDL if its usage is preferred.
    • 69cf253 - Added SDL Audio as an alternative sound interface for non-Windows platforms.
    • 6141825 - Made SDL permanently available in the engine regardless of the platform.
  • 56bcf61 - Dynamically filled arrays of graphics & sound APIs for in-game options using available interfaces from the engine.
  • 131d219 - Determined CPU speed on non-Windows platforms.

Fixes

  • 6045225 - Renamed thread_local macro to SE1_THREADLOCAL to avoid conflicts.
  • a4c6d06 - Specific fixes for potential support of the MSVC 6.0 compiler.
  • 533babb - Fixed incorrect calling conventions when using GLEW under the x86 platform.
  • f97a053 - Adjusted assertions inside CTString::GetSubstr() and CTString::GetChar() methods to prevent them from being triggered on empty strings when searching from the very beginning.
  • 693a3d1 - Compatibility fixes for OS::Window and dynamic library loading.
  • fc593ab - Exported FileRequester() function from EngineGUI via C API. It also fixed the bug where it couldn't be loaded because it expected a CTFileName as one of the arguments, which doesn't exist in the engine anymore.

Project cleanup

  • c6377e5, 021f490 - Removed unnecessary libraries from linker properties of project files.

[Snapshot] 2024-02-04 - Quality-of-life features & fixes (Pt. 1)

04 Feb 12:26
Compare
Choose a tag to compare

Outline

This snapshot implements new third party modules for future functionality, reworks fundamental support of different graphics APIs and fixes a few important crashes.

Code cleanup

  • af56069 - Added proper comments to CEntity methods related to predictions to help clear up any confusion on what each method does.

Code changes

  • 2985078 - Completely cleaned up code of various templates and improved their functionality.
  • Reworked back end for graphics APIs.
    • 5d22a72, 0d0ae39, 4b31f60 - Reworked type checking of graphics APIs.
    • 4638bcc, 084c643 - Allowed some methods to work with any graphics API type.
    • f186638 - Moved GfxAPIType enum from GfxLibrary.h to Gfx_wrapper.h to make it more accessible.
    • e254447, 09acb74, ee500fd, 84895d6, 01788cc - Organized existing graphics APIs into proper interfaces instead of relying on generic function pointers in global scope.
  • 8fd0081 - Made sure that GetWindowsError() can format the message at all.
  • 9b027c8 - Added OS method for loading libraries or throwing exceptions on any error during loading.
  • 7009d1c, a0f4154, fd68c34 - Added support for Simple DirectMedia Layer that's disabled on Windows by default.
    • b750362 - Added SDL alternatives to error reporting logic.
    • 491674c - Implemented timers using SDL.
    • 5ac93af - Added SDL alternative to splash screen display upon starting the game.
  • 2e57cf9, a1ef45f - Added optional support for The OpenGL Extension Wrangler Library.
  • b98a6ff - Surrounded all Truform-related code with a SE1_TRUFORM macro switch.
  • 05f7831 - Surrounded all 3Dfx-related code with a SE1_3DFX macro.
  • 2072bf9 - Added base for a cross-platform window handler class and utilized it in all projects, excluding those that utilize MFC.
  • 29b238f, 38d38af - Reworked CTString methods and added new useful ones to be functionally close to std::string.

Fixes

  • 30150ce - Restored this == NULL checks for CNetworkLibrary methods.
  • 8f8789a - Fixed issues with mismatching sizes of INDEX and time_t types.
  • 80cf095 - Fixed crash upon creating an animated texture from the root game directory.
  • 75a5592 - Made error message upon opening the log for writing more informative in order to understand what caused it.

Project cleanup

  • 27b8bff - Removed profile-specific control files that are generated upon starting the game anyway.

Project changes

  • f4c9835 - Set platform toolset in all project files to the default value determined by the current Visual Studio.
  • f0fc3f5 - Added editor config to the solution.
  • Added new third party modules.
    • f4f252d, 1fc662a - Added SDL2 and made Engine depend on it.
    • 45a5fef - Added GLEW and made Engine depend on it.

[Snapshot] 2023-10-19 - World Editor hotfix

19 Oct 03:37
Compare
Choose a tag to compare

Outline

This snapshot fixes a bug left by the last release that made Serious Editor unusable and restores all logic of the GameGUI library.

Fixes

  • 53afb1e - Fixed filename serialization in WorldEditor due to CTFileName becoming an alias for CTString.
  • dc7d2c9 - Made all code in GameGUI library build properly in both Unicode and non-Unicode modes, that was excluded from building before.

[Snapshot] 2023-10-18 - Code quality fixes

18 Oct 08:00
Compare
Choose a tag to compare

Outline

This snapshot compiles fixes related to building code under different configurations and using compilers other than MSVC.

Code cleanup

  • d8c0a16 - Removed useless template definitions.
  • 2e8d74b - Removed unused string from the scan upon parsing axis actions during controls loading.
  • 56b3266 - Fixed some minor code quality issues.
  • 0a83caf - Added proper include guard to Gfx_wrapper.h and added a couple SE1_D3D macro blocks.

Code changes

  • ffb710b - Improved architecture and system detection in the config header and add automatic macro switch for Unix operating systems.
  • 59e3b7c - Replaced Windows methods for working with dynamic libraries with the ones from the new OS interface.
  • ad45449 - Utilized cross-platform thread_local keyword for marking specific variables.
  • 9015daa - Disabled IFeel and multimonitor support on non-Windows platforms.
  • 4155e9d - Added support for TIME being a double-precision floating-point type (i.e. exponentially more precise timer ticks).
  • 361b818 - Replaced Sleep() method from Windows API with a new cross-platform CTimer::Suspend() method.
  • cf2978c - Made registry methods exclusive to the Windows platform.
  • 9754e73, 660c6ed - Made all interactions with the file system cross-platform by replacing Windows API methods with a new FileSystem interface.
  • cca9105 - Replaced CTStream operators for writing and reading of CTFileName with proper methods for easier differentiating between serialization of filenames and simple strings.
  • 25e3bbb - Completely removed CTFileName as a separate class and migrated all of its methods and functionality into CTString. CTFileName is now an alias for CTString for compatibility reasons.
  • b9bfab4, 637a5d0 - Replaced BSP template classes with proper classes based on DOUBLE precision and 3D space.
  • 8a8db08 - Made shell class initialize before anything else.
  • 0cd5dda - Added some methods from Windows API to the cross-platform OS interface and utilize them instead of Windows API directly (for future cross-platform support).

Fixes

  • c760daf - Utilized new macro switches for detecting Windows and Unix platforms everywhere.
  • 91db734 - Utilized integer types from the engine everywhere for consistency.
  • a184bb8 - Fixed compilation errors and warnings related to engine templates.
  • 704bad5, 766091d, 60cd2e0, 179cb18 - Fixed a lot of GCC-specific errors and warnings.
  • 7081d0a - Added alternatives to a couple of code chunks for GCC.
  • 61d85b7 - Fixed errors related to Direct3D support:
    • Fixed all build errors under x86 with Direct3D support enabled.
    • Fixed errors under x64 from simply having Direct3D headers under any appropriate include directory.
    • Added a new header file with dummy Direct3D types used by fields of graphics classes in case Direct3D support is disabled.
  • 97c1496 - Fixed a crash upon trying to snap brush vertices in Serious Editor without selecting any vertices.
  • 3d7d5f6 - Made ModelPolygonVertex remember indices of set vertices in new fields instead of converting pointers into index storages and vice versa for serialization.
  • 55e723a - Fixed conversions of CTFileName & CTString into const char * for printing; reformatted conversions of const char * & CTString into CTString & CTFileName.
  • cd8123c - Optimized code related to memory management for GCC.
  • d7e4200 - Fixed weird behavior of sounds with SOF_LOCAL flag set for predicted listeners.
  • a0e2b6f - Disabled CSetPriority logic for non-Windows platforms.
  • 30fdfae - Fixed some code quality issues within memory streams and replaced usage of VirtualAlloc() and VirtualFree() with byte array allocation.
  • 06ceabf - Added some missing types for non-Windows platforms.

Project changes

  • b651c70 - Adjusted project properties related to precompiled headers.
  • 71f7688 - Replaced backward slashes with forward slashes in paths to ES files for custom building.
  • ddc25d1 - Added source files with special code with platform-specific types and logic.
  • a7af17a - Updated common property sheet to make sure that the short platform name is always consistent between all sorts of configurations (either x86 or x64); removed semicolons from paths to DX8 to allow specifying paths relative to them.

[Snapshot] 2023-05-02 - Essential fixes

07 May 09:12
Compare
Choose a tag to compare
Pre-release

Outline

This snapshot compiles essential fixes and quality-of-life features to the engine.

Code changes

  • 504f010 - Added new CTString helper methods for finding and replacing characters.
  • 6b07906 - Reworked CTString methods for finding substrings and added a method for finding a pointer to the beginning of a substring. Also added a method for finding position of a character in a string.

Fixes

  • 6bb88d3 - Fixed issues with building under the x86 platform left by porting engine under the x64 platform.
  • 180cdeb - Fixed float functions in Engine under the x64 platform that triggered a series of assertions in Debug mode (thanks to @sultim-t).
  • 545922b - Fixed usage of out-of-bounds array indices in particle star positions in EntitiesMP.
  • bfa8bcc - Utilized new CTString helper methods for finding and replacing characters, as well as the default method for finding substring positions.
  • 794d0e9 - Fixed CTString::Undecorated() method skipping two characters instead of one while parsing the flashing tag.
  • 5cb517e - Fixed CTString::VPrintF() by allocating a local character buffer within the method instead of using a static one.
  • 5207ce8 - Fixed incorrect deletion of an array of characters in EngineGUI.
  • 9a661ca - Fixed warning about custom build of the SeriousSkaStudio.cnt file in SeriousSkaStudio.
  • 3074611 - Made exception handling code compatible with the x64 platform.
  • a63f003 - Reverted definition of the NEXTARGUMENT macro to fix returned values from shell function arguments.
  • 0c1ebe4, 68cdf59, 95af3e0 - Fixed SKA model rendering in fog and haze.

Project cleanup

  • f29a071 - Removed some source files generated by Bison & Flex that were pushed by mistake.

[Snapshot] 2023-03-27 - x64 platform support

27 Mar 16:11
Compare
Choose a tag to compare

Outline

This snapshot compiles changes that make it possible to build and run Serious Engine under the x64 Windows platform.

Code cleanup

  • 704510d - Added include guards to specific Engine files to avoid multiple inclusions.

Code changes

  • 9985e8c - Added new useful integer types and included headers used by newer Visual Studio compilers.
  • 5840767 - Replaced engine's ByteSwap() method with a new ByteSwap32().
  • b2a9026 - Utilized new macro switches defined by the config header instead of generic macros.
  • 7c914bb - Replaced pwoCurrentWorld shell symbol with a proper and direct pointer to the world that's exported from the engine.
  • 4e6f241 - Removed assembly code related to byte swapping and replace it with the new ByteSwap32() method.
  • d243dfe, bb67839, df3413f, 273935b - Added alternative C++ implementations to assembly code. Important parts:
    • Graphics/rendering functions.
    • Layer mixing functions (lighting/shadows).
    • Sound mixing functions (thanks to @Tinsed for fixing C++ translation of MixStereo()).
  • 6ec02f1 - Made SplashWindowProc() method from SeriousSam project compatible with the x64 platform.
  • 51523eb - Made ReportGlobalMemoryStatus() shell function from Engine project compatible with the x64 platform.
  • 5a0eefa - Made float functions in the engine cross-platform.
  • 71800e3 - Replaced strlen() methods with CTString::Length() on every CTString variable.
  • fee2ca5 - Made Write_t() and Read_t() methods of CTStream classes take size_t for data length.
  • cf4709c - Added some useful helper methods to CTString.

Fixes

  • d737181 - Made MFC code in GUI applications compatible with the x64 platform.
  • a73abd5 - Fixed CRC_AddWORD() method taking an integer of a wrong type and added methods for getting a unique integer out of pointers that's compatible with the x64 platform.
  • dce797f, febb9f7, dfde0d9 - Adapted specific pointer-related code and fixed integer conversions for the x64 platform.
  • b05a48c - Fixed issues with the color palette and certain elements of the terrain interface in WorldEditor.
  • cfd0b2d - Fixed certain issues related to quaternion calculations and trigonometric functions on newer Visual Studio compilers.
  • f3b37af - Fixed MAX_SWORD macro being defined with a wrong UWORD type instead of SWORD.
  • a6ef19c - Improved safety checks inside the CTextureData::SetAsCurrent() method.
  • 7ad7038 - Removed obsolete _ulPageSize variable from streams.
  • 963adcf - Utilized new CTString helper methods across the engine to eliminate potential issues with improper implicit conversions (such as pure CTFileName in PrintF arguments).

Project changes

  • df2e05b - Added new headers.
    • Header with Serious Engine configuration that defines macro switches depending on current operating system and platform.
    • Header with new byte-swapping functions to replace inline code in the engine.
  • 9525791 - Properly set up debugging commands for launching executables from Visual Studio.