From b23047f47b19722354ce6fcb4fa671dd7e3528f2 Mon Sep 17 00:00:00 2001 From: Samuel Barney Date: Mon, 4 Nov 2013 20:10:29 -0700 Subject: Reworked collision to use g_BlockIsSolid --- source/Tracer.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/source/Tracer.cpp b/source/Tracer.cpp index 675905b11..d7a613891 100644 --- a/source/Tracer.cpp +++ b/source/Tracer.cpp @@ -225,24 +225,15 @@ int cTracer::Trace( const Vector3f & a_Start, const Vector3f & a_Direction, int BLOCKTYPE BlockID = m_World->GetBlock(pos.x, pos.y, pos.z); // No collision with water ;) - switch(BlockID) + if (g_BlockIsSolid[BlockID]) { - case E_BLOCK_AIR: - case E_BLOCK_YELLOW_FLOWER: - case E_BLOCK_RED_ROSE: - case E_BLOCK_RED_MUSHROOM: - case E_BLOCK_BROWN_MUSHROOM: - break; - default: + BlockHitPosition = pos; + int Normal = GetHitNormal(a_Start, End, pos ); + if(Normal > 0) { - BlockHitPosition = pos; - int Normal = GetHitNormal(a_Start, End, pos ); - if(Normal > 0) - { - HitNormal = m_NormalTable[Normal-1]; - } - return true; + HitNormal = m_NormalTable[Normal-1]; } + return true; } } return 0; -- cgit v1.2.3