Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ Checks: >
-readability-simplify-boolean-expr,
-readability-uppercase-literal-suffix,
-zircon-*,
-*-pro-bounds-avoid-unchecked-container-access,
google-default-arguments,
google-explicit-constructor,
google-runtime-operator
Expand Down
2 changes: 1 addition & 1 deletion .idea/EdisonEngine.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion 3rdparty/rapidyaml
Submodule rapidyaml updated 117 files
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required( VERSION 3.16 )
list( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )

project( CroftEngine VERSION 2.5.0 )
project( CroftEngine VERSION 3.0.0 )

cmake_policy( SET CMP0069 NEW )
cmake_policy( SET CMP0083 NEW )
Expand Down
2 changes: 1 addition & 1 deletion cmake/get_glm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ dl_unpack(

add_library( glm::glm INTERFACE IMPORTED )
target_include_directories( glm::glm SYSTEM BEFORE INTERFACE "${EXTERNAL_SRC_ROOT}/glm-${_glm_version}" )
target_compile_definitions( glm::glm INTERFACE -DGLM_ENABLE_EXPERIMENTAL )
target_compile_definitions( glm::glm INTERFACE -DGLM_ENABLE_EXPERIMENTAL -DGLM_FORCE_SSE42 -DGLM_FORCE_CXX${CMAKE_CXX_STANDARD} )
6 changes: 4 additions & 2 deletions cmake/get_gsllite.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ endif()

include( ./dl_unpack )

set( _gsl_lite_version "0.42.0" )
set( _gsl_lite_version "1.0.1" )
dl_unpack(
URL https://github.com/gsl-lite/gsl-lite/archive/refs/tags/v${_gsl_lite_version}.tar.gz
FILENAME gsl-lite-v${_gsl_lite_version}.tar.gz
Expand All @@ -19,6 +19,8 @@ target_compile_definitions(
-Dgsl_FEATURE_MAKE_SPAN_TO_STD=${CMAKE_CXX_STANDARD}
-Dgsl_FEATURE_BYTE_SPAN_TO_STD=${CMAKE_CXX_STANDARD}
-Dgsl_CONFIG_NOT_NULL_EXPLICIT_CTOR=1
-Dgsl_CONFIG_TRANSPARENT_NOT_NULL=0
-Dgsl_CONFIG_CONTRACT_VIOLATION_CALLS_HANDLER
-Dgsl_CPLUSPLUS=201703L
-Dgsl_CONFIG_DEFAULTS_VERSION=1
-Dgsl_CPLUSPLUS=202002L
)
8 changes: 4 additions & 4 deletions cmake/scripts/wrap_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def generate_header_lines(args, enums: List[Tuple[str, str]]) -> Iterable[str]:
yield "#pragma once"
yield ""
yield "#include <cstdint>"
yield "#include <gsl/gsl-lite.hpp>"
yield "#include <gsl-lite/gsl-lite.hpp>"
yield "#include <map>"
yield "#include <string>"
for include in args.with_includes:
Expand All @@ -42,7 +42,7 @@ def generate_header_lines(args, enums: List[Tuple[str, str]]) -> Iterable[str]:
yield "};"

yield ""
yield f"extern gsl::czstring toString({args.name} val) noexcept;"
yield f"extern gsl_lite::czstring toString({args.name} val) noexcept;"

yield ""
yield "template<typename T> struct EnumUtil;"
Expand All @@ -66,7 +66,7 @@ def generate_impl_lines(args, enums: List[Tuple[str, str]], include_path: Path)
yield f"#include \"{include_path.as_posix()}\""
yield ""
yield "#include <cstdint>"
yield "#include <gsl/gsl-lite.hpp>"
yield "#include <gsl-lite/gsl-lite.hpp>"
yield "#include <map>"
yield "#include <stdexcept>"
yield "#include <string>"
Expand All @@ -75,7 +75,7 @@ def generate_impl_lines(args, enums: List[Tuple[str, str]], include_path: Path)
yield "{"

yield "// NOLINTNEXTLINE(readability-function-cognitive-complexity)"
yield f"gsl::czstring toString({args.name} val) noexcept"
yield f"gsl_lite::czstring toString({args.name} val) noexcept"
yield "{"
yield " switch(val)"
yield " {"
Expand Down
2 changes: 1 addition & 1 deletion cmake/toolchain_config.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD 20 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )

include( CheckPIESupported )
Expand Down
3 changes: 2 additions & 1 deletion deprecations.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
CE-675 2.8 Remove doppelganger save migration
CE-675 3.2 Remove doppelganger save migration
CE-683 3.3 Remove CameraController save migrations
8 changes: 6 additions & 2 deletions dev-docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ the prior level ends during the stats screen.
First, the engine initializes the script engine for the chosen game-flow. Then, the engine sets up a `Presenter`, which
basically is a container around everything a user can sense - audio and video currently, but may also include gamepad
rumble effects in the future once it's implemented in GLFW (blocked
by [issue #57](https://github.com/glfw/glfw/issues/57) and [pull 1687](https://github.com/glfw/glfw/pull/1678)). The
by [issue #57](https://github.com/glfw/glfw/issues/57) and [pull #1678](https://github.com/glfw/glfw/pull/1678)). The
presenter also handles the [`hid`](#hid) and OpenGL window using [`soglb`](#soglb).

Once the `Presenter` is initialized, the user's chosen render settings are applied, their input config is applied, and (
Expand Down Expand Up @@ -166,7 +166,11 @@ different animation state handler.
### objects

Contains everything that defines the game entities. The enemies' behaviours are defined here, as well as objects'
behaviours. The `update()` function is called each frame for every active object. There are usually custom serialization
behaviours. To support smooth rendering at higher frame rates, the engine uses a predictive interpolation system. At
the end of each logic tick, the predicted state for the next tick is calculated. During rendering, transforms are
interpolated between the predicted and actual state.

There are usually custom serialization
overrides for entities that have specific state variables (see also [`serialization`](#serialization)), and also custom
`collide()` overrides to handle collisions with Lara (like the hand of Midas or switches). Some entities like bridges
are also able to change the effective ceiling or floor height when they're activated through [`floordata`](#floordata).
Expand Down
2 changes: 1 addition & 1 deletion iwyu-mappings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

- include: [ "@<pybind11/detail/.*>", "private", "<pybind11/pybind11.h>", "public" ]

- symbol: [ "gsl::not_null", "private", "<gsl/gsl-lite.hpp>", "public" ]
- symbol: [ "gsl::not_null", "private", "<gsl-lite/gsl-lite.hpp>", "public" ]

- symbol: [ "serialization::Serializer", "private", "\"serialization/serialization_fwd.h\"", "public" ]

Expand Down
Loading