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
|
-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:
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
2
hecl
|
@ -1 +1 @@
|
||||||
Subproject commit ed2e587c3af34009200dbb2e6eb5f3e376479a4c
|
Subproject commit d2c2ef61dbcb78fe6995e61de7e97cf3e156e40a
|
Loading…
Reference in New Issue