Compare commits

..

4 Commits

9 changed files with 130 additions and 93 deletions

View File

@ -8,7 +8,7 @@ Beware, spoilers ahead!
2.1.4 (TBD)
- Chinese Simplified localization revision by DaisyComment (no translation of lines added after 2.0.12.4 yet).
- Fixed random crashes caused by guards conversation scenes, when any of them is riding a horse (reported by cloudropis).
- Fixed a random crash, occuring when guards are about to start a conversation scene and any of them is riding a horse.
- Fixed help messages (in the middle of the screen) sometimes getting stuck in an infinite savebaked loop.
- Dreamflower can be found without finishing The Secrets first.
- Dimension Rift might get stuck in an infinite effect+sound loop if player left the cell while it's active.
@ -17,6 +17,7 @@ Beware, spoilers ahead!
- Fixed scripts causing black screen during starting quests with SkyParkour and possibly some other mods.
- Updated LOD with xLODGen beta 132 and DynDOLOD 3.00 alpha 194.
- Restored Tharael's forehead tattoo lost during the initial facegen conversion.
- Fixed Entropic Blood not working in god mode, fixed inability to select a strong enemy as an attack target.
- Revised alchemy. Consistency and distribution changes across the board due to lack of a coherent alchemy system prior to this patch, such as:
-- Lower global magnitude modifier than in Skyrim (x1.5 against x4) combined with higher game difficulty made some grandfathered ingredients too weak, effect magnitudes were increased where necessary.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,4 @@
option(ENABLE_VCPKG OFF)
cmake_minimum_required(VERSION 3.21)
message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.")
@ -5,57 +6,121 @@ message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.")
## Define project
########################################################################################################################
project(
EnderalSE
VERSION 2.1.3
DESCRIPTION "Enderal SE DLL"
LANGUAGES CXX)
EnderalSE
VERSION 2.1.4
DESCRIPTION "Enderal SE DLL"
LANGUAGES CXX
)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY)
${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in
${CMAKE_CURRENT_BINARY_DIR}/version.rc
@ONLY
)
#include(GNUInstallDirs)
find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c")
file(
GLOB_RECURSE
sources
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
${CMAKE_CURRENT_BINARY_DIR}/version.rc
GLOB_RECURSE
sources
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
${CMAKE_CURRENT_BINARY_DIR}/version.rc
)
source_group(
TREE ${CMAKE_CURRENT_SOURCE_DIR}
FILES
${headers}
${sources})
TREE ${CMAKE_CURRENT_SOURCE_DIR}
FILES
${headers}
${sources}
)
########################################################################################################################
## Configure target DLL
########################################################################################################################
include(FetchContent)
FetchContent_Declare(
CommonLibNG
GIT_REPOSITORY https://github.com/alandtse/CommonLibVR.git
GIT_TAG 5e5417e3585c9434295e919bdda27737244e9c5a
)
include(FetchContent)
# DirectXMath
FetchContent_Declare(
DirectXMath
URL "https://github.com/microsoft/DirectXMath/archive/refs/tags/apr2025.tar.gz"
OVERRIDE_FIND_PACKAGE
DOWNLOAD_EXTRACT_TIMESTAMP 1
EXCLUDE_FROM_ALL
SYSTEM
)
FetchContent_MakeAvailable(DirectXMath)
add_library("Microsoft::DirectXMath" ALIAS "DirectXMath")
# DirectXTK
FetchContent_Declare(
DirectXTK
URL "https://github.com/microsoft/DirectXTK/archive/refs/tags/jul2025.tar.gz"
DOWNLOAD_EXTRACT_TIMESTAMP 1
OVERRIDE_FIND_PACKAGE
EXCLUDE_FROM_ALL
SYSTEM
)
FetchContent_MakeAvailable(DirectXTK)
add_library("Microsoft::DirectXTK" ALIAS "DirectXTK")
# simpleini
FetchContent_Declare(
simpleini
URL "https://github.com/brofield/simpleini/archive/refs/tags/v4.22.tar.gz"
DOWNLOAD_EXTRACT_TIMESTAMP 1
)
FetchContent_MakeAvailable(simpleini)
INCLUDE_DIRECTORIES(${simpleini_SOURCE_DIR})
# rapidcsv
set(RAPIDCSV_INCLUDE_DIRS ${rapidcsv_SOURCE_DIR}/src)
FetchContent_Declare(
rapidcsv
URL "https://github.com/d99kris/rapidcsv/archive/refs/tags/v8.87.tar.gz"
DOWNLOAD_EXTRACT_TIMESTAMP 1
OVERRIDE_FIND_PACKAGE
)
FetchContent_MakeAvailable(rapidcsv)
set(RAPIDCSV_INCLUDE_DIRS ${rapidcsv_SOURCE_DIR}/src)
# spdlog
set(SPDLOG_INSTALL ON CACHE INTERNAL "Install SPDLOG for CommonLibSSE")
set(SPDLOG_USE_STD_FORMAT ON CACHE INTERNAL "Use std::format in SPDLOG, not fmt")
FetchContent_Declare(
spdlog
URL "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz"
DOWNLOAD_EXTRACT_TIMESTAMP 1
OVERRIDE_FIND_PACKAGE
)
FetchContent_MakeAvailable(spdlog)
# xbyak
FetchContent_Declare(
xbyak
URL "https://github.com/herumi/xbyak/archive/v7.28.tar.gz"
DOWNLOAD_EXTRACT_TIMESTAMP 1
)
FetchContent_MakeAvailable(xbyak)
# CommonLibSSE
set(SKSE_SUPPORT_XBYAK ON CACHE BOOL " " FORCE)
set(ENABLE_SKYRIM_SE ON CACHE BOOL " " FORCE)
set(ENABLE_SKYRIM_AE ON CACHE BOOL " " FORCE)
set(ENABLE_SKYRIM_VR ON CACHE BOOL " " FORCE)
set(BUILD_TESTS OFF CACHE BOOL " " FORCE)
message(STATUS "Fetching CommonLibSSE-NG (5e5417e3585c9434295e919bdda27737244e9c5a)...")
FetchContent_Declare(
CommonLibSSE
GIT_REPOSITORY https://github.com/eddoursul/CommonLibVR.git
GIT_TAG 5e5417e3585c9434295e919bdda27737244e9c5a
)
FetchContent_MakeAvailable(CommonLibSSE)
FetchContent_MakeAvailable(CommonLibNG)
# Use a local copy instead
#add_subdirectory("d:/Git/CommonLibVR/" ${CMAKE_BINARY_DIR}/_deps/clib-build)
#find_package(CommonLibSSE CONFIG REQUIRED)
get_target_property(COMMONLIB_SRC_DIR CommonLibSSE SOURCE_DIR)
@ -64,37 +129,36 @@ include(${COMMONLIB_SRC_DIR}/cmake/CommonLibSSE.cmake)
add_commonlibsse_plugin(${PROJECT_NAME} SOURCES ${headers} ${sources})
add_library("${PROJECT_NAME}::${PROJECT_NAME}" ALIAS "${PROJECT_NAME}")
target_link_libraries(${PROJECT_NAME} PUBLIC CommonLibSSE::CommonLibSSE)
target_link_libraries(CommonLibSSE PUBLIC
DirectXTK
xbyak
)
target_include_directories(${PROJECT_NAME}
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
$<INSTALL_INTERFACE:src>
${SIMPLEINI_INCLUDE_DIRS}
target_link_libraries(${PROJECT_NAME} PUBLIC
CommonLibSSE::CommonLibSSE
spdlog Version.lib
xbyak
)
target_include_directories(${PROJECT_NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
find_package(spdlog CONFIG REQUIRED)
target_link_libraries(
"${PROJECT_NAME}"
PUBLIC
spdlog::spdlog
Version.lib
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
$<INSTALL_INTERFACE:src>
)
target_include_directories(${PROJECT_NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
target_precompile_headers(${PROJECT_NAME}
PRIVATE
src/PCH.h)
install(TARGETS ${PROJECT_NAME}
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
PRIVATE
src/PCH.h
)
install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}")
########################################################################################################################

View File

@ -1,7 +0,0 @@
{
"default-registry": {
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg.git",
"baseline": "cacf5994341f27e9a14a7b8724b0634b138ecb30"
}
}

View File

@ -1,24 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
"name": "enderal-se",
"version-string": "2.1.3",
"port-version": 0,
"description": "Enderal SE Helper",
"homepage": "https://mod.pub/enderal-se/38-enderal-se",
"license": "LGPL-3.0",
"features": {
"plugin": {
"description": "Enderal SE functions and potion replacer.",
"dependencies": [
"simpleini",
"spdlog",
"directxtk",
"rapidcsv",
"xbyak"
]
}
},
"default-features": [
"plugin"
]
}

View File

@ -214,12 +214,11 @@ EndFunction
Function SelectEnemy(Actor iVictim)
If ! IsTargetValid(iVictim)
return
EndIf
If !IsTargetMarked(iVictim)
If !iFrenzyTargetMarked
If ! IsTargetValid(iVictim)
return
EndIf
MarkFrenzyVictim(iVictim)
iFrenzyTargetMarked = True
Elseif !iFrezyAttackTargetMarked
@ -287,7 +286,7 @@ EndFunction
bool Function IsTargetValid(Actor CheckVictim)
If CheckVictim.IsInFaction(PlayerAlliesFaction) || CheckVictim.IsCommandedActor() || CheckVictim.IsPlayerTeammate()
If CheckVictim.IsInFaction(PlayerAlliesFaction) || CheckVictim.IsPlayerTeammate()
Return False
ElseIf CheckVictim.HasKeyword(MagicNoEldritchBlood)
_00E_Levelsystem_sAbilityEnemyLevelTooHigh.Show()

View File

@ -31,7 +31,7 @@ Event OnEffectStart(Actor akTarget, Actor akCaster)
Victim = akTarget
A2_EldritchBlood_Victim.ForceRefTo(Victim)
_00E_A2_EldritchBloodParticelAttachVFX.Play(Victim)
bIsInPlayerFaction = Victim.IsInFaction(PlayerAlliesFaction)
; Strip Victim off all its factions
VictimFactions = Victim.GetFactions(-128, 127)
@ -48,7 +48,6 @@ Event OnEffectStart(Actor akTarget, Actor akCaster)
EndWhile
Victim.AddToFaction(PlayerAlliesFaction)
Victim.AddToFaction(EPFaction)
Victim.SetRelationshipRank(PlayerRef, 3)
@ -57,6 +56,8 @@ Event OnEffectStart(Actor akTarget, Actor akCaster)
AdjustDamageMult(Victim)
_00E_A2_EldritchBloodParticelAttachVFX.Play(Victim)
Victim.StopCombat()
If A2_EldritchBlood_VictimTarget.GetActorReference()
@ -79,9 +80,10 @@ Event OnEffectFinish(Actor akTarget, Actor akCaster)
_00E_A2_EldritchBloodParticelAttachVFX.Stop(Victim)
; Restore old factions of Victim
Victim.RemoveFromFaction(PlayerAlliesFaction)
Victim.RemoveFromFaction(EPFaction)
if ! bIsInPlayerFaction
Victim.RemoveFromFaction(PlayerAlliesFaction)
endif
Int i = 0
While i < VictimFactions.Length
If VictimFactions[i]
@ -238,4 +240,6 @@ Explosion Property _00E_MAGEldritchShockExplosion Auto
Explosion Property _00E_MAGEldritchShockExplosion02 Auto
Explosion Property _00E_MAGEldritchShockExplosion03 Auto
Explosion Property _00E_A2_SynergyEldritchBloodSkyfallExp Auto
Explosion Property _00E_FS_MAGGoreExplosion Auto
Explosion Property _00E_FS_MAGGoreExplosion Auto
bool bIsInPlayerFaction