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
..
- 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:

View File

@ -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 )

View File

@ -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);

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_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"

View File

@ -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; }

View File

@ -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;

View File

@ -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 $<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)
else()
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_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<CActorLights>&& 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<CActorLights>(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

View File

@ -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;

2
hecl

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