mirror of https://github.com/AxioDL/metaforce.git
Fix see though collision material
This commit is contained in:
parent
280ae47b15
commit
41034fefda
|
@ -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:
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
2
hecl
|
@ -1 +1 @@
|
|||
Subproject commit ed2e587c3af34009200dbb2e6eb5f3e376479a4c
|
||||
Subproject commit d2c2ef61dbcb78fe6995e61de7e97cf3e156e40a
|
Loading…
Reference in New Issue