diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 14895aa4d..c905ceebe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ -DURDE_VECTOR_ISA=$URDE_VECTOR_ISA .. - ninja urde hecl visigen - - cd Editor + - cd Binaries - cp -R urde.app $CI_PROJECT_DIR/URDE.app - cd $CI_PROJECT_DIR - strip -S -o URDE.app/Contents/MacOS/urde URDE.app/Contents/MacOS/urde @@ -73,12 +73,12 @@ build:macos:avx2: -DURDE_VECTOR_ISA=$URDE_VECTOR_ISA .. - ninja urde hecl visigen - - cp Editor/urde $CI_PROJECT_DIR - - strip --strip-debug -o $CI_PROJECT_DIR/urde Editor/urde + - cp Binaries/urde $CI_PROJECT_DIR + - strip --strip-debug -o $CI_PROJECT_DIR/urde Binaries/urde - rm -r $CI_PROJECT_DIR/hecl - - strip --strip-debug -o $CI_PROJECT_DIR/hecl hecl/driver/hecl + - strip --strip-debug -o $CI_PROJECT_DIR/hecl Binaries/hecl - rm -r $CI_PROJECT_DIR/visigen - - strip --strip-debug -o $CI_PROJECT_DIR/visigen visigen/visigen + - strip --strip-debug -o $CI_PROJECT_DIR/visigen Binaries/visigen only: - release artifacts: @@ -129,12 +129,12 @@ build:linux:avx2: -DURDE_VECTOR_ISA=%URDE_VECTOR_ISA% .. - ninja urde hecl visigen - - 'copy Editor\urde.exe "%CI_PROJECT_DIR%\urde.exe"' - - 'pdbcopy Editor\urde.pdb "%CI_PROJECT_DIR%\urde.pdb" -p' - - 'copy hecl\driver\hecl.exe "%CI_PROJECT_DIR%\hecl.exe"' - - 'pdbcopy hecl\driver\hecl.pdb "%CI_PROJECT_DIR%\hecl.pdb" -p' - - 'copy visigen\visigen.exe "%CI_PROJECT_DIR%\visigen.exe"' - - 'pdbcopy visigen\visigen.pdb "%CI_PROJECT_DIR%\visigen.pdb" -p' + - 'copy Binaries\urde.exe "%CI_PROJECT_DIR%\urde.exe"' + - 'pdbcopy Binaries\urde.pdb "%CI_PROJECT_DIR%\urde.pdb" -p' + - 'copy Binaries\hecl.exe "%CI_PROJECT_DIR%\hecl.exe"' + - 'pdbcopy Binaries\hecl.pdb "%CI_PROJECT_DIR%\hecl.pdb" -p' + - 'copy Binaries\visigen.exe "%CI_PROJECT_DIR%\visigen.exe"' + - 'pdbcopy Binaries\visigen.pdb "%CI_PROJECT_DIR%\visigen.pdb" -p' only: - release artifacts: diff --git a/CMakeLists.txt b/CMakeLists.txt index be2276104..d4fb94777 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,7 +236,6 @@ endif() unset(GIT_EXECUTABLE CACHE) find_package(Git) if(GIT_FOUND) - message(STATUS "Found GIT: ${GIT_EXECUTABLE}") # Get the current working branch execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) diff --git a/DataSpec/DNACommon/DeafBabe.cpp b/DataSpec/DNACommon/DeafBabe.cpp index a20c1671e..1988a2cf3 100644 --- a/DataSpec/DNACommon/DeafBabe.cpp +++ b/DataSpec/DNACommon/DeafBabe.cpp @@ -185,11 +185,11 @@ void DeafBabeBuildFromBlender(DEAFBABE& db, const hecl::blender::ColMesh& colMes dbMat.setSurfaceWeb(mat.surfaceWeb); dbMat.setProjectilePassthrough(mat.projPassthrough); dbMat.setSolid(mat.solid); - dbMat.setU20(mat.u20); + dbMat.setNoPlatformCollision(mat.noPlatformCollision); dbMat.setCameraPassthrough(mat.camPassthrough); dbMat.setSurfaceWood(mat.surfaceWood); dbMat.setSurfaceOrganic(mat.surfaceOrganic); - dbMat.setU24(mat.u24); + dbMat.setNoEdgeCollision(mat.noEdgeCollision); dbMat.setSurfaceRubber(mat.surfaceRubber); dbMat.setSeeThrough(mat.seeThrough); dbMat.setScanPassthrough(mat.scanPassthrough); diff --git a/DataSpec/DNAMP1/DeafBabe.cpp b/DataSpec/DNAMP1/DeafBabe.cpp index 2bc0ab6e1..a05838550 100644 --- a/DataSpec/DNAMP1/DeafBabe.cpp +++ b/DataSpec/DNAMP1/DeafBabe.cpp @@ -55,12 +55,12 @@ void DeafBabe::BlenderInit(hecl::blender::PyOutStream& os) "bpy.types.Material.retro_surface_sand = bpy.props.BoolProperty(name='Retro Surface: Sand')\n" "bpy.types.Material.retro_projectile_passthrough = bpy.props.BoolProperty(name='Retro: Projectile Passthrough (P)')\n" "bpy.types.Material.retro_solid = bpy.props.BoolProperty(name='Retro: Solid (K)')\n" - "bpy.types.Material.retro_u20 = bpy.props.BoolProperty(name='Retro: u20')\n" + "bpy.types.Material.retro_no_platform_collision = bpy.props.BoolProperty(name='Retro: No Platform Collision')\n" "bpy.types.Material.retro_camera_passthrough = bpy.props.BoolProperty(name='Retro: Camera Passthrough (O)')\n" "bpy.types.Material.retro_surface_wood = bpy.props.BoolProperty(name='Retro Surface: Wood')\n" "bpy.types.Material.retro_surface_organic = bpy.props.BoolProperty(name='Retro Surface: Organic')\n" - "bpy.types.Material.retro_u24 = bpy.props.BoolProperty(name='Retro: u24')\n" - "bpy.types.Material.retro_seeThrough = bpy.props.BoolProperty(name='Retro: See Through')\n" + "bpy.types.Material.retro_no_edge_collision = bpy.props.BoolProperty(name='Retro: No Edge Collision')\n" + "bpy.types.Material.retro_see_through = bpy.props.BoolProperty(name='Retro: See Through')\n" "bpy.types.Material.retro_scan_passthrough = bpy.props.BoolProperty(name='Retro: Scan Passthrough (S)')\n" "bpy.types.Material.retro_ai_passthrough = bpy.props.BoolProperty(name='Retro: AI Passthrough (A)')\n" "bpy.types.Material.retro_ceiling = bpy.props.BoolProperty(name='Retro: Ceiling (C)')\n" @@ -212,12 +212,12 @@ void DeafBabe::BlenderInit(hecl::blender::PyOutStream& os) " mat.retro_surface_sand = ((data >> 17) & 1)\n" " mat.retro_projectile_passthrough = ((data >> 18) & 1)\n" " mat.retro_solid = ((data >> 19) & 1)\n" - " mat.retro_u20 = ((data >> 20) & 1)\n" + " mat.retro_no_platform_collision = ((data >> 20) & 1)\n" " mat.retro_camera_passthrough = ((data >> 21) & 1)\n" " mat.retro_surface_wood = ((data >> 22) & 1)\n" " mat.retro_surface_organic = ((data >> 23) & 1)\n" - " mat.retro_u24 = ((data >> 24) & 1)\n" - " mat.retro_seeThrough = ((data >> 26) & 1)\n" + " mat.retro_no_edge_collision = ((data >> 24) & 1)\n" + " mat.retro_see_through = ((data >> 26) & 1)\n" " mat.retro_scan_passthrough = ((data >> 27) & 1)\n" " mat.retro_ai_passthrough = ((data >> 28) & 1)\n" " mat.retro_ceiling = ((data >> 29) & 1)\n" diff --git a/DataSpec/DNAMP1/DeafBabe.hpp b/DataSpec/DNAMP1/DeafBabe.hpp index 302eb0161..ff9c80c68 100644 --- a/DataSpec/DNAMP1/DeafBabe.hpp +++ b/DataSpec/DNAMP1/DeafBabe.hpp @@ -55,16 +55,16 @@ struct DeafBabe : BigDNA void setProjectilePassthrough(bool v) { material &= ~(1ull << 18); material |= (v << 18); } bool solid() const { return (material >> 19) & 1; } void setSolid(bool v) { material &= ~(1ull << 19); material |= (v << 19); } - bool u20() const { return (material >> 20) & 1; } - void setU20(bool v) { material &= ~(1ull << 20); material |= (v << 20); } + bool noPlatformCollision() const { return (material >> 20) & 1; } + void setNoPlatformCollision(bool v) { material &= ~(1ull << 20); material |= (v << 20); } bool cameraPassthrough() const { return (material >> 21) & 1; } void setCameraPassthrough(bool v) { material &= ~(1ull << 21); material |= (v << 21); } bool surfaceWood() const { return (material >> 22) & 1; } void setSurfaceWood(bool v) { material &= ~(1ull << 22); material |= (v << 22); } bool surfaceOrganic() const { return (material >> 23) & 1; } void setSurfaceOrganic(bool v) { material &= ~(1ull << 23); material |= (v << 23); } - bool u24() const { return (material >> 24) & 1; } - void setU24(bool v) { material &= ~(1ull << 24); material |= (v << 24); } + bool noEdgeCollision() const { return (material >> 24) & 1; } + void setNoEdgeCollision(bool v) { material &= ~(1ull << 24); material |= (v << 24); } bool flipFace() const { return (material >> 25) & 1; } void setFlipFace(bool v) { material &= ~(1ull << 25); material |= (v << 25); } bool seeThrough() const { return (material >> 26) & 1; } diff --git a/DataSpec/DNAMP2/DeafBabe.hpp b/DataSpec/DNAMP2/DeafBabe.hpp index 4979e23f3..f363ec53f 100644 --- a/DataSpec/DNAMP2/DeafBabe.hpp +++ b/DataSpec/DNAMP2/DeafBabe.hpp @@ -99,10 +99,10 @@ struct DeafBabe : BigDNA void setSurfaceStoneRock(bool v) {} bool solid() const { return false; } void setSolid(bool v) {} - bool u20() const { return false; } - void setU20(bool v) { } - bool u24() const { return false; } - void setU24(bool v) { } + bool noPlatformCollision() const { return false; } + void setNoPlatformCollision(bool v) { } + bool noEdgeCollision() const { return false; } + void setNoEdgeCollision(bool v) { } }; using Edge = DNAMP1::DeafBabe::Edge; diff --git a/Editor/CMakeLists.txt b/Editor/CMakeLists.txt index 7e4b35cdc..0ea66faf0 100644 --- a/Editor/CMakeLists.txt +++ b/Editor/CMakeLists.txt @@ -120,6 +120,12 @@ set_target_properties(urde PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "urde") if (NOT WINDOWS_STORE) + if(APPLE) + add_custom_command(TARGET urde POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $) + add_custom_command(TARGET urde POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $) + endif() add_dependencies(urde visigen hecl) else() set_property(TARGET urde PROPERTY VS_WINRT_COMPONENT TRUE) diff --git a/Runtime/World/CActor.cpp b/Runtime/World/CActor.cpp index cfa95984e..d56a3e6e4 100644 --- a/Runtime/World/CActor.cpp +++ b/Runtime/World/CActor.cpp @@ -42,7 +42,7 @@ CActor::CActor(TUniqueId uid, bool active, std::string_view name, const CEntityI xe4_27_notInSortedLists = true; xe4_28_transformDirty = true; xe4_29_actorLightsDirty = true; - xe4_31_lightsDirty = true; + xe4_31_calculateLighting = true; xe5_27_useInSortedLists = true; xe5_28_callTouch = true; xe5_29_globalTimeProvider = params.x58_24_globalTimeProvider; @@ -136,6 +136,8 @@ void CActor::PreRender(CStateManager& mgr, const zeus::CFrustum& planes) xe4_30_outOfFrustum = !planes.aabbFrustumTest(x9c_renderBounds); if (!xe4_30_outOfFrustum) { + xe7_28_worldLightingDirty = true; + bool lightsDirty = false; if (xe4_29_actorLightsDirty) { @@ -158,7 +160,7 @@ void CActor::PreRender(CStateManager& mgr, const zeus::CFrustum& planes) xe5_25_shadowDirty = false; } - if (xe4_31_lightsDirty && x90_actorLights) + if (xe4_31_calculateLighting && x90_actorLights) { zeus::CAABox bounds = x64_modelData->GetBounds(x34_transform); if (mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::Thermal) @@ -739,7 +741,7 @@ SAdvancementDeltas CActor::UpdateAnimation(float dt, CStateManager& mgr, bool ad void CActor::SetActorLights(std::unique_ptr&& lights) { x90_actorLights = std::move(lights); - xe4_31_lightsDirty = true; + xe4_31_calculateLighting = true; } bool CActor::CanDrawStatic() const @@ -765,7 +767,7 @@ void CActor::SetCalculateLighting(bool c) if (!x90_actorLights) x90_actorLights = std::make_unique(8, zeus::CVector3f::skZero, 4, 4, false, false, false, 0.1f); - xe4_31_lightsDirty = c; + xe4_31_calculateLighting = c; } float CActor::GetAverageAnimVelocity(int anim) const diff --git a/Runtime/World/CActor.hpp b/Runtime/World/CActor.hpp index 46e90c9a2..29eebe166 100644 --- a/Runtime/World/CActor.hpp +++ b/Runtime/World/CActor.hpp @@ -58,7 +58,7 @@ protected: bool xe4_28_transformDirty : 1; bool xe4_29_actorLightsDirty : 1; bool xe4_30_outOfFrustum : 1; - bool xe4_31_lightsDirty : 1; + bool xe4_31_calculateLighting : 1; bool xe5_24_shadowEnabled : 1; bool xe5_25_shadowDirty : 1; bool xe5_26_muted : 1; diff --git a/hecl b/hecl index ed2e587c3..d2c2ef61d 160000 --- a/hecl +++ b/hecl @@ -1 +1 @@ -Subproject commit ed2e587c3af34009200dbb2e6eb5f3e376479a4c +Subproject commit d2c2ef61dbcb78fe6995e61de7e97cf3e156e40a