Fix see though collision material

This commit is contained in:
Jack Andersen 2018-05-10 21:02:42 -10:00
parent 280ae47b15
commit 41034fefda
10 changed files with 41 additions and 34 deletions

View File

@ -19,7 +19,7 @@
-DURDE_VECTOR_ISA=$URDE_VECTOR_ISA -DURDE_VECTOR_ISA=$URDE_VECTOR_ISA
.. ..
- ninja urde hecl visigen - ninja urde hecl visigen
- cd Editor - cd Binaries
- cp -R urde.app $CI_PROJECT_DIR/URDE.app - cp -R urde.app $CI_PROJECT_DIR/URDE.app
- cd $CI_PROJECT_DIR - cd $CI_PROJECT_DIR
- strip -S -o URDE.app/Contents/MacOS/urde URDE.app/Contents/MacOS/urde - 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 -DURDE_VECTOR_ISA=$URDE_VECTOR_ISA
.. ..
- ninja urde hecl visigen - ninja urde hecl visigen
- cp Editor/urde $CI_PROJECT_DIR - cp Binaries/urde $CI_PROJECT_DIR
- strip --strip-debug -o $CI_PROJECT_DIR/urde Editor/urde - strip --strip-debug -o $CI_PROJECT_DIR/urde Binaries/urde
- rm -r $CI_PROJECT_DIR/hecl - 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 - 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: only:
- release - release
artifacts: artifacts:
@ -129,12 +129,12 @@ build:linux:avx2:
-DURDE_VECTOR_ISA=%URDE_VECTOR_ISA% -DURDE_VECTOR_ISA=%URDE_VECTOR_ISA%
.. ..
- ninja urde hecl visigen - ninja urde hecl visigen
- 'copy Editor\urde.exe "%CI_PROJECT_DIR%\urde.exe"' - 'copy Binaries\urde.exe "%CI_PROJECT_DIR%\urde.exe"'
- 'pdbcopy Editor\urde.pdb "%CI_PROJECT_DIR%\urde.pdb" -p' - 'pdbcopy Binaries\urde.pdb "%CI_PROJECT_DIR%\urde.pdb" -p'
- 'copy hecl\driver\hecl.exe "%CI_PROJECT_DIR%\hecl.exe"' - 'copy Binaries\hecl.exe "%CI_PROJECT_DIR%\hecl.exe"'
- 'pdbcopy hecl\driver\hecl.pdb "%CI_PROJECT_DIR%\hecl.pdb" -p' - 'pdbcopy Binaries\hecl.pdb "%CI_PROJECT_DIR%\hecl.pdb" -p'
- 'copy visigen\visigen.exe "%CI_PROJECT_DIR%\visigen.exe"' - 'copy Binaries\visigen.exe "%CI_PROJECT_DIR%\visigen.exe"'
- 'pdbcopy visigen\visigen.pdb "%CI_PROJECT_DIR%\visigen.pdb" -p' - 'pdbcopy Binaries\visigen.pdb "%CI_PROJECT_DIR%\visigen.pdb" -p'
only: only:
- release - release
artifacts: artifacts:

View File

@ -236,7 +236,6 @@ endif()
unset(GIT_EXECUTABLE CACHE) unset(GIT_EXECUTABLE CACHE)
find_package(Git) find_package(Git)
if(GIT_FOUND) if(GIT_FOUND)
message(STATUS "Found GIT: ${GIT_EXECUTABLE}")
# Get the current working branch # Get the current working branch
execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse --abbrev-ref HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE )

View File

@ -185,11 +185,11 @@ void DeafBabeBuildFromBlender(DEAFBABE& db, const hecl::blender::ColMesh& colMes
dbMat.setSurfaceWeb(mat.surfaceWeb); dbMat.setSurfaceWeb(mat.surfaceWeb);
dbMat.setProjectilePassthrough(mat.projPassthrough); dbMat.setProjectilePassthrough(mat.projPassthrough);
dbMat.setSolid(mat.solid); dbMat.setSolid(mat.solid);
dbMat.setU20(mat.u20); dbMat.setNoPlatformCollision(mat.noPlatformCollision);
dbMat.setCameraPassthrough(mat.camPassthrough); dbMat.setCameraPassthrough(mat.camPassthrough);
dbMat.setSurfaceWood(mat.surfaceWood); dbMat.setSurfaceWood(mat.surfaceWood);
dbMat.setSurfaceOrganic(mat.surfaceOrganic); dbMat.setSurfaceOrganic(mat.surfaceOrganic);
dbMat.setU24(mat.u24); dbMat.setNoEdgeCollision(mat.noEdgeCollision);
dbMat.setSurfaceRubber(mat.surfaceRubber); dbMat.setSurfaceRubber(mat.surfaceRubber);
dbMat.setSeeThrough(mat.seeThrough); dbMat.setSeeThrough(mat.seeThrough);
dbMat.setScanPassthrough(mat.scanPassthrough); dbMat.setScanPassthrough(mat.scanPassthrough);

View File

@ -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_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_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_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_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_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_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_no_edge_collision = bpy.props.BoolProperty(name='Retro: No Edge Collision')\n"
"bpy.types.Material.retro_seeThrough = bpy.props.BoolProperty(name='Retro: See Through')\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_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_ai_passthrough = bpy.props.BoolProperty(name='Retro: AI Passthrough (A)')\n"
"bpy.types.Material.retro_ceiling = bpy.props.BoolProperty(name='Retro: Ceiling (C)')\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_surface_sand = ((data >> 17) & 1)\n"
" mat.retro_projectile_passthrough = ((data >> 18) & 1)\n" " mat.retro_projectile_passthrough = ((data >> 18) & 1)\n"
" mat.retro_solid = ((data >> 19) & 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_camera_passthrough = ((data >> 21) & 1)\n"
" mat.retro_surface_wood = ((data >> 22) & 1)\n" " mat.retro_surface_wood = ((data >> 22) & 1)\n"
" mat.retro_surface_organic = ((data >> 23) & 1)\n" " mat.retro_surface_organic = ((data >> 23) & 1)\n"
" mat.retro_u24 = ((data >> 24) & 1)\n" " mat.retro_no_edge_collision = ((data >> 24) & 1)\n"
" mat.retro_seeThrough = ((data >> 26) & 1)\n" " mat.retro_see_through = ((data >> 26) & 1)\n"
" mat.retro_scan_passthrough = ((data >> 27) & 1)\n" " mat.retro_scan_passthrough = ((data >> 27) & 1)\n"
" mat.retro_ai_passthrough = ((data >> 28) & 1)\n" " mat.retro_ai_passthrough = ((data >> 28) & 1)\n"
" mat.retro_ceiling = ((data >> 29) & 1)\n" " mat.retro_ceiling = ((data >> 29) & 1)\n"

View File

@ -55,16 +55,16 @@ struct DeafBabe : BigDNA
void setProjectilePassthrough(bool v) { material &= ~(1ull << 18); material |= (v << 18); } void setProjectilePassthrough(bool v) { material &= ~(1ull << 18); material |= (v << 18); }
bool solid() const { return (material >> 19) & 1; } bool solid() const { return (material >> 19) & 1; }
void setSolid(bool v) { material &= ~(1ull << 19); material |= (v << 19); } void setSolid(bool v) { material &= ~(1ull << 19); material |= (v << 19); }
bool u20() const { return (material >> 20) & 1; } bool noPlatformCollision() const { return (material >> 20) & 1; }
void setU20(bool v) { material &= ~(1ull << 20); material |= (v << 20); } void setNoPlatformCollision(bool v) { material &= ~(1ull << 20); material |= (v << 20); }
bool cameraPassthrough() const { return (material >> 21) & 1; } bool cameraPassthrough() const { return (material >> 21) & 1; }
void setCameraPassthrough(bool v) { material &= ~(1ull << 21); material |= (v << 21); } void setCameraPassthrough(bool v) { material &= ~(1ull << 21); material |= (v << 21); }
bool surfaceWood() const { return (material >> 22) & 1; } bool surfaceWood() const { return (material >> 22) & 1; }
void setSurfaceWood(bool v) { material &= ~(1ull << 22); material |= (v << 22); } void setSurfaceWood(bool v) { material &= ~(1ull << 22); material |= (v << 22); }
bool surfaceOrganic() const { return (material >> 23) & 1; } bool surfaceOrganic() const { return (material >> 23) & 1; }
void setSurfaceOrganic(bool v) { material &= ~(1ull << 23); material |= (v << 23); } void setSurfaceOrganic(bool v) { material &= ~(1ull << 23); material |= (v << 23); }
bool u24() const { return (material >> 24) & 1; } bool noEdgeCollision() const { return (material >> 24) & 1; }
void setU24(bool v) { material &= ~(1ull << 24); material |= (v << 24); } void setNoEdgeCollision(bool v) { material &= ~(1ull << 24); material |= (v << 24); }
bool flipFace() const { return (material >> 25) & 1; } bool flipFace() const { return (material >> 25) & 1; }
void setFlipFace(bool v) { material &= ~(1ull << 25); material |= (v << 25); } void setFlipFace(bool v) { material &= ~(1ull << 25); material |= (v << 25); }
bool seeThrough() const { return (material >> 26) & 1; } bool seeThrough() const { return (material >> 26) & 1; }

View File

@ -99,10 +99,10 @@ struct DeafBabe : BigDNA
void setSurfaceStoneRock(bool v) {} void setSurfaceStoneRock(bool v) {}
bool solid() const { return false; } bool solid() const { return false; }
void setSolid(bool v) {} void setSolid(bool v) {}
bool u20() const { return false; } bool noPlatformCollision() const { return false; }
void setU20(bool v) { } void setNoPlatformCollision(bool v) { }
bool u24() const { return false; } bool noEdgeCollision() const { return false; }
void setU24(bool v) { } void setNoEdgeCollision(bool v) { }
}; };
using Edge = DNAMP1::DeafBabe::Edge; using Edge = DNAMP1::DeafBabe::Edge;

View File

@ -120,6 +120,12 @@ set_target_properties(urde PROPERTIES
MACOSX_BUNDLE_BUNDLE_NAME "urde") MACOSX_BUNDLE_BUNDLE_NAME "urde")
if (NOT WINDOWS_STORE) if (NOT WINDOWS_STORE)
if(APPLE)
add_custom_command(TARGET urde POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:visigen> $<TARGET_FILE_DIR:urde>)
add_custom_command(TARGET urde POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:hecl> $<TARGET_FILE_DIR:urde>)
endif()
add_dependencies(urde visigen hecl) add_dependencies(urde visigen hecl)
else() else()
set_property(TARGET urde PROPERTY VS_WINRT_COMPONENT TRUE) set_property(TARGET urde PROPERTY VS_WINRT_COMPONENT TRUE)

View File

@ -42,7 +42,7 @@ CActor::CActor(TUniqueId uid, bool active, std::string_view name, const CEntityI
xe4_27_notInSortedLists = true; xe4_27_notInSortedLists = true;
xe4_28_transformDirty = true; xe4_28_transformDirty = true;
xe4_29_actorLightsDirty = true; xe4_29_actorLightsDirty = true;
xe4_31_lightsDirty = true; xe4_31_calculateLighting = true;
xe5_27_useInSortedLists = true; xe5_27_useInSortedLists = true;
xe5_28_callTouch = true; xe5_28_callTouch = true;
xe5_29_globalTimeProvider = params.x58_24_globalTimeProvider; 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); xe4_30_outOfFrustum = !planes.aabbFrustumTest(x9c_renderBounds);
if (!xe4_30_outOfFrustum) if (!xe4_30_outOfFrustum)
{ {
xe7_28_worldLightingDirty = true;
bool lightsDirty = false; bool lightsDirty = false;
if (xe4_29_actorLightsDirty) if (xe4_29_actorLightsDirty)
{ {
@ -158,7 +160,7 @@ void CActor::PreRender(CStateManager& mgr, const zeus::CFrustum& planes)
xe5_25_shadowDirty = false; xe5_25_shadowDirty = false;
} }
if (xe4_31_lightsDirty && x90_actorLights) if (xe4_31_calculateLighting && x90_actorLights)
{ {
zeus::CAABox bounds = x64_modelData->GetBounds(x34_transform); zeus::CAABox bounds = x64_modelData->GetBounds(x34_transform);
if (mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::Thermal) 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<CActorLights>&& lights) void CActor::SetActorLights(std::unique_ptr<CActorLights>&& lights)
{ {
x90_actorLights = std::move(lights); x90_actorLights = std::move(lights);
xe4_31_lightsDirty = true; xe4_31_calculateLighting = true;
} }
bool CActor::CanDrawStatic() const bool CActor::CanDrawStatic() const
@ -765,7 +767,7 @@ void CActor::SetCalculateLighting(bool c)
if (!x90_actorLights) if (!x90_actorLights)
x90_actorLights = std::make_unique<CActorLights>(8, zeus::CVector3f::skZero, x90_actorLights = std::make_unique<CActorLights>(8, zeus::CVector3f::skZero,
4, 4, false, false, false, 0.1f); 4, 4, false, false, false, 0.1f);
xe4_31_lightsDirty = c; xe4_31_calculateLighting = c;
} }
float CActor::GetAverageAnimVelocity(int anim) const float CActor::GetAverageAnimVelocity(int anim) const

View File

@ -58,7 +58,7 @@ protected:
bool xe4_28_transformDirty : 1; bool xe4_28_transformDirty : 1;
bool xe4_29_actorLightsDirty : 1; bool xe4_29_actorLightsDirty : 1;
bool xe4_30_outOfFrustum : 1; bool xe4_30_outOfFrustum : 1;
bool xe4_31_lightsDirty : 1; bool xe4_31_calculateLighting : 1;
bool xe5_24_shadowEnabled : 1; bool xe5_24_shadowEnabled : 1;
bool xe5_25_shadowDirty : 1; bool xe5_25_shadowDirty : 1;
bool xe5_26_muted : 1; bool xe5_26_muted : 1;

2
hecl

@ -1 +1 @@
Subproject commit ed2e587c3af34009200dbb2e6eb5f3e376479a4c Subproject commit d2c2ef61dbcb78fe6995e61de7e97cf3e156e40a