Releases: DreamyCecil/SE1-ModSDK
SDK update (2024-07-14)
Changes since v1.5.3
- Added legacy
Entities
andEntitiesMP
projects from old SDKs (sdk105
andsdk107
respectively) with little to no changes to the code and the project structure to allow porting existing mods onto this SDK. - Added
EntitiesSSR
project that attempts to recreate entity logic from Serious Sam Revolution (WIP). - Fixed a typo in the manual TSE compilation script that didn't compile item entities.
- Fixed a compilation error in
WorldBase.es
fromEntitiesTFE
when building under 1.10.
Changes to SDK includes
- Unified headers of the
EngineGUI
library from all the engine versions under common engine headers. - Unified "exploration3d", "Math" and "Sound" code from all the engine versions under common engine headers.
- Adapted headers of old engine versions (pre-1.10) to the new VS2010+ compilers.
- Removed unnecessary extra code from
EngineEx
. - Made
Engine.h
of every engine version automatically configure the mod SDK if property sheets have not been used. - Significantly updated SDK for Serious Sam Revolution.
- Added include guard to
GameV/SessionProperties.h
from all the engine versions.
SDK update (2024-01-14)
Changes since v1.5.2
- Removed inclusion of
Game/PlayerSettings.h
fromEntitiesAPI.h
due to being not that important. - Added support for stereo rendering to
EntitiesTFE
. - Made entity logic of
EntitiesTFE
andEntitiesTSE
on 1.05 compatible with their vanilla logic.
Changes to SDK includes
- Removed inclusion of
PlayerSettings.h
fromStdH.h
of vanilla entities.- Added
class
keyword toCPlayerSettings
in vanilla entity headers.
- Added
- Updated Entity Class Compiler to version 1.0.10.
SDK update (2023-08-16)
Changes since v1.5.1
- Added special API headers to
Entities
libraries for easier linkage that also includes all the necessary stuff like inStdH.h
. - Added include guard to
Game/SessionProperties.h
. - Fixed a bug in
Game
for The Second Encounter build configurations that would render the intro book texture over the world map if the game was started from "In The Last Episode" level. - Renamed
(LibMain).cpp
back toLibMain.cpp
. It can now be named anything without worrying about the order of code initialization.
Changes to SDK includes
- Added entity table method for gathering entity property identifiers in a container.
- Implemented tables of property references for easier property search by using the identifier name (like in Revolution).
- Added new header library under the
Common/EngineEx
directory that contains headers with useful custom functionality. - Updated Entity Class Compiler to version 1.0.9.
- Regenerated vanilla entity headers using updated Entity Class Compiler.
- Removed
SE1_101
macro for 1.01 engine version due to not being an actual version. - Massively improved SDK for Serious Sam Revolution, making it nearly perfect for common use cases (e.g. entity pack creation).
SDK update (2023-06-02)
Changes since v1.5
- Made project files compatible with Visual Studio 2010.
- Made project works under directories that contains spaces.
- Added batch scripts for sorting and compiling entities under
EntitiesTFE
.
Changes to SDK includes
- Removed DirectX8 SDK headers and replaced needed types with dummies.
- Added missing "Debug" libraries for vanilla SDKs for linking modules under
Debug
configurations. - Added helper headers that need to surround included STL headers.
- Uploaded manually recreated headers & libraries of Serious Sam Revolution (WIP).
SDK update (2023-02-15)
Changes since v1.4
- Renamed
LibMain.cpp
into(LibMain).cpp
to always automatically keep it on the top of all source files in the project file. - Replaced engine version numbers with proper macros that define engine versions.
- Removed entity headers and tables from the Entities project files to prevent them from appearing in searches and to keep project files cleaner and easier to maintain.
- Made
Game
project compatible with both The First Encounter and The Second Encounter. - Renamed
Entities
project intoEntitiesTSE
to signify that it contains entity code specifically for The Second Encounter. - Added
EntitiesTFE
project that contains entity code specifically for The First Encounter. - Made all file includes have paths relative to the project directory, rather than the solution.
Changes to SDK includes
- Added new property sheets with common properties that were previously defined in projects specifically.
- Moved model headers under the "Common" directory for consistency.
- Moved property sheets with definitions of engine versions and games from the SDK to includes.
- Added headers and static libraries of vanilla entities for projects that depends on vanilla entity logic (TFE 1.05 and TSE 1.05 & 1.07).
- Updated Entity Class Compiler to the 1.0.5 version.
- Added support for generating tables of entity property identifiers, the indices of which match properties in their respective tables inside
CDLLEntityClass
. - Added a
-compat
command line argument for compiling entity sources that are compatible with the vanilla SDK. - Added an
-export
command line argument for forcing class export from the library regardless of whether or not it's marked with anexport
keyword.
- Added support for generating tables of entity property identifiers, the indices of which match properties in their respective tables inside
SDK update (2022-12-23)
From this point on, there won't be any archives with only the source code attached, since it was just including everything that's already under the repository's Sources
directory. Click on Source code (zip)
or Source code (tar.gz)
instead to download the whole package.
Changes since v1.3.1
- Replaced
SE1_TFE
macro with a more versatileSE1_GAME
that defines a current game. For example, a#ifdef SE1_TFE
check would now become#if SE1_GAME == SS_TFE
. Find out more in the wiki. - Removed project files for Visual Studio 2019. Having multiple project files is useful only when the project is included in another project. This SDK is supposed to be standalone.
- Got rid of obsolete
SeriousSam_SDK107
name from everywhere. - Changed build directories to append Visual Studio version to configuration folder names instead of build directory folder names. For example,
Bin.vs2013/Release_TSE107
is nowBin/vs2013.Release_TSE107
. - Grouped entity source files under their respective directories that mirror the project tree.
- Also moved source & header files that are generated by ECC under their own subfolders in the project tree.
- Removed unfinished
ExotechLarvaAnimator
andLightStyle
entities from files. - Replaced 1.05 compatibility methods with preprocessor checks that the new ECC supports.
- Replaced
StdH.cpp
withLibMain.cpp
and defined a library entry point method.- Also defined extra ECC features by including its source file there.
- Introduced exportable tables of entities that list every entity class available in the library.
Changes to SDK includes
- Unified code of template classes (from
Engine/Templates
) under the new "Common" engine directory. - Backported features for template classes from 1.50.
- Added methods to template container iterators that return the current iteration index.
- Made sure that container methods for searching for specific objects returned
-1
instead of0
upon failure to find an object. - Fixed incorrect deletion of elements in the
CDynamicStackArray
container template. - Moved DirectX8 includes under the "Common" directory.
- Introduced a custom Entity Class Compiler with new features for entity source files.
- It now includes
EccExtras.h
header into every entity header to provide extended functionality. - It now generates tables of event classes for each entity source using backported
CDLLEntityEvent
class from 1.50. - It now generates an entry in the global entity table with pointers to its
CDLLEntityClass
class and a brand new array ofCDLLEntityEvent
classes.
- It now includes
Source Code Only (2022-08-22 #2)
This archive (SDK.zip
) includes only the source code with project files, without the mod shell.
Changes since v1.3
- Removed
MP
suffix from project directories. - Added Croteam license header to all source files.
- Borrowed code fixes from Serious Engine 1.10 for some source files.
- Removed obsolete ECL and message files from
Entities
project files. - Removed definitions of custom weapon indices from
WeaponPositions.h
and utilize indices fromWeaponType
enum instead.
Keep in mind that the libraries are compiled in the Bin folder one level above the source code folder (e.g. C:\Mod\Bin
if the source code is in C:\Mod\Sources
).
Source Code Only (2022-08-22)
This archive (SDK.zip
) includes only the source code with project files, without the mod shell.
Changes since v1.2
- Added configurations for building under The First Encounter 1.05.
- Renamed build configurations to properly indicate their purpose.
- Added property sheets for projects to unify paths to includes, libraries & builds between projects and Visual Studio versions.
Keep in mind that the libraries are compiled in the Bin folder one level above the source code folder (e.g. C:\Mod\Bin
if the source code is in C:\Mod\Sources
).
Source Code Only (2022-05-21)
This archive (SDK107.zip
) includes only the source code with project files, without the mod shell.
Changes since v1.1
- Moved engine and model headers into a separate submodule, which resides in
Sources/Includes
in order to not copypaste the files across different projects since those files are very rarely changed. - Two sets of projects, for Visual Studio 2013 and Visual Studio 2019 (both of which target MSVC6.0 for 1.07 configurations and MSVC12.0 for 1.10). Project files are suffixed with
_vs2013
and_vs2019
respectively.
Keep in mind that the libraries are compiled in the Bin folder one level above the source code folder (e.g. C:\Mod\Bin
if the source code is in C:\Mod\Sources
).
Source Code Only (2021-05-16)
This archive (SDK107.zip
) includes only the source code with project files, without the mod shell.
Changes since v1.0.1
- Included headers and libraries of
Engine
andEngineGUI
from SE1.10 and a new set of configurations for building the SDK for the clean Serious Engine 1.10. - These headers and libraries can also be copied from a custom fork of Serious Engine 1.10, assuming there aren't many significant changes that conflict with the entity and game code.
Keep in mind that the libraries are compiled in the Bin folder one level above the source code folder (e.g. C:\Mod\Bin
if the source code is in C:\Mod\Sources
).