Fix see through collision material

This commit is contained in:
Jack Andersen 2018-05-10 21:02:19 -10:00
parent fef55d7fc0
commit 9c30a44a65
3 changed files with 10 additions and 8 deletions

View File

@ -286,11 +286,11 @@ def cookcol(writebuf, mesh_obj):
surfaceWeb = prop_val_from_colmat('retro_surface_web', m) surfaceWeb = prop_val_from_colmat('retro_surface_web', m)
projPassthrough = prop_val_from_colmat('retro_projectile_passthrough', m) projPassthrough = prop_val_from_colmat('retro_projectile_passthrough', m)
solid = prop_val_from_colmat('retro_solid', m) solid = prop_val_from_colmat('retro_solid', m)
u20 = prop_val_from_colmat('retro_u20', m) noPlatformCollision = prop_val_from_colmat('retro_no_platform_collision', m)
camPassthrough = prop_val_from_colmat('retro_camera_passthrough', m) camPassthrough = prop_val_from_colmat('retro_camera_passthrough', m)
surfaceWood = prop_val_from_colmat('retro_surface_wood', m) surfaceWood = prop_val_from_colmat('retro_surface_wood', m)
surfaceOrganic = prop_val_from_colmat('retro_surface_organic', m) surfaceOrganic = prop_val_from_colmat('retro_surface_organic', m)
u24 = prop_val_from_colmat('retro_u24', m) noEdgeCollision = prop_val_from_colmat('retro_no_edge_collision', m)
surfaceRubber = prop_val_from_colmat('retro_surface_rubber', m) surfaceRubber = prop_val_from_colmat('retro_surface_rubber', m)
seeThrough = prop_val_from_colmat('retro_see_through', m) seeThrough = prop_val_from_colmat('retro_see_through', m)
scanPassthrough = prop_val_from_colmat('retro_scan_passthrough', m) scanPassthrough = prop_val_from_colmat('retro_scan_passthrough', m)
@ -307,8 +307,9 @@ def cookcol(writebuf, mesh_obj):
surfaceIce, pillar, surfaceMetalGrating, surfacePhazon, surfaceDirt, surfaceLava, surfaceSPMetal, surfaceIce, pillar, surfaceMetalGrating, surfacePhazon, surfaceDirt, surfaceLava, surfaceSPMetal,
surfaceStoneRock, surfaceSnow, surfaceMudSlow, surfaceFabric, halfPipe, surfaceMud, surfaceGlass, surfaceStoneRock, surfaceSnow, surfaceMudSlow, surfaceFabric, halfPipe, surfaceMud, surfaceGlass,
unused3, unused4, surfaceShield, surfaceSand, surfaceMothOrSeedOrganics, surfaceWeb, projPassthrough, unused3, unused4, surfaceShield, surfaceSand, surfaceMothOrSeedOrganics, surfaceWeb, projPassthrough,
solid, u20, camPassthrough, surfaceWood, surfaceOrganic, u24, surfaceRubber, seeThrough, scanPassthrough, solid, noPlatformCollision, camPassthrough, surfaceWood, surfaceOrganic, noEdgeCollision, surfaceRubber,
aiPassthrough, ceiling, wall, floor, aiBlock, jumpNotAllowed, spiderBall, screwAttackWallJump)) seeThrough, scanPassthrough, aiPassthrough, ceiling, wall, floor, aiBlock, jumpNotAllowed, spiderBall,
screwAttackWallJump))
# Send verts # Send verts
writebuf(struct.pack('I', len(copy_mesh.vertices))) writebuf(struct.pack('I', len(copy_mesh.vertices)))

View File

@ -304,11 +304,11 @@ struct ColMesh
bool surfaceWeb; bool surfaceWeb;
bool projPassthrough; bool projPassthrough;
bool solid; bool solid;
bool u20; bool noPlatformCollision;
bool camPassthrough; bool camPassthrough;
bool surfaceWood; bool surfaceWood;
bool surfaceOrganic; bool surfaceOrganic;
bool u24; bool noEdgeCollision;
bool surfaceRubber; bool surfaceRubber;
bool seeThrough; bool seeThrough;
bool scanPassthrough; bool scanPassthrough;

View File

@ -150,7 +150,7 @@ uint32_t Connection::_readStr(char* buf, uint32_t bufSz)
BlenderLog.report(logvisor::Fatal, strerror(errno)); BlenderLog.report(logvisor::Fatal, strerror(errno));
return 0; return 0;
} }
else if (readLen >= 4) else if (readLen >= 9)
{ {
if (!memcmp(buf, "EXCEPTION", std::min(readLen, uint32_t(9)))) if (!memcmp(buf, "EXCEPTION", std::min(readLen, uint32_t(9))))
{ {
@ -187,7 +187,7 @@ size_t Connection::_readBuf(void* buf, size_t len)
int ret = Read(m_readpipe[0], cBuf, len); int ret = Read(m_readpipe[0], cBuf, len);
if (ret < 0) if (ret < 0)
goto err; goto err;
if (len >= 4) if (len >= 9)
if (!memcmp((char*) cBuf, "EXCEPTION", std::min(len, size_t(9)))) if (!memcmp((char*) cBuf, "EXCEPTION", std::min(len, size_t(9))))
_blenderDied(); _blenderDied();
readLen += ret; readLen += ret;
@ -1338,6 +1338,7 @@ ColMesh::ColMesh(Connection& conn)
for (uint32_t i=0 ; i<count ; ++i) for (uint32_t i=0 ; i<count ; ++i)
edges.emplace_back(conn); edges.emplace_back(conn);
conn._readBuf(&count, 4); conn._readBuf(&count, 4);
trianges.reserve(count); trianges.reserve(count);
for (uint32_t i=0 ; i<count ; ++i) for (uint32_t i=0 ; i<count ; ++i)