Esempio n. 1
0
 Col_Valid_Type cBaseBox::Validate_Collision(cSprite* obj)
 {
     switch (obj->m_type)
     {
         case TYPE_MUSHROOM_LIVE_1:
         case TYPE_MUSHROOM_DEFAULT:
         case TYPE_MUSHROOM_POISON:
         case TYPE_MUSHROOM_BLUE:
         case TYPE_MUSHROOM_GHOST:
         case TYPE_FGOLDPIECE:
         {
             return COL_VTYPE_BLOCKING;
         }
         default:
         {
             break;
         }
     }
     
     if (obj->m_massive_type == MASS_MASSIVE)
     {
         return COL_VTYPE_BLOCKING;
     }
     else if (obj->m_massive_type == MASS_HALFMASSIVE)
     {
         if (m_vely >= 0.0f && Is_On_Top(obj))
         {
             return COL_VTYPE_BLOCKING;
         }
     }
     
     return COL_VTYPE_NOT_VALID;
 }
Esempio n. 2
0
Col_Valid_Type cBall :: Validate_Collision( cSprite *obj )
{
	// basic validation checking
	Col_Valid_Type basic_valid = Validate_Collision_Ghost( obj );

	// found valid collision
	if( basic_valid != COL_VTYPE_NOT_POSSIBLE )
	{
		return basic_valid;
	}

	switch( obj->m_type )
	{
		case TYPE_PLAYER:
		{
			if( m_origin_type != TYPE_PLAYER )
			{
				return COL_VTYPE_INTERNAL;
			}

			return COL_VTYPE_NOT_VALID;
		}
		case TYPE_BALL:
		{
			return COL_VTYPE_NOT_VALID;
		}
		default:
		{
			break;
		}
	}

	if( obj->m_massive_type == MASS_MASSIVE )
	{
		if( obj->m_sprite_array == ARRAY_ENEMY && m_origin_array == ARRAY_ENEMY )
		{
			return COL_VTYPE_NOT_VALID;
		}

		return COL_VTYPE_BLOCKING;
	}
	else if( obj->m_massive_type == MASS_HALFMASSIVE )
	{
		// if moving downwards and the object is on bottom
		if( m_vely >= 0.0f && Is_On_Top( obj ) )
		{
			return COL_VTYPE_BLOCKING;
		}
	}

	return COL_VTYPE_NOT_VALID;
}
Esempio n. 3
0
Col_Valid_Type cMovingSprite :: Validate_Collision( cSprite *obj )
{
	if( obj->m_massive_type == MASS_MASSIVE )
	{
		return COL_VTYPE_BLOCKING;
	}
	else if( obj->m_massive_type == MASS_HALFMASSIVE )
	{
		// if moving downwards and the object is on bottom
		if( m_vely >= 0.0f && Is_On_Top( obj ) )
		{
			return COL_VTYPE_BLOCKING;
		}
	}

	return COL_VTYPE_NOT_VALID;
}
Esempio n. 4
0
 Col_Valid_Type cPowerUp::Validate_Collision(cSprite* obj)
 {
     Col_Valid_Type basic_valid = Validate_Collision_Ghost(obj);
     
     if (basic_valid != COL_VTYPE_NOT_POSSIBLE)
     {
         return basic_valid;
     }
     
     switch (obj->m_type)
     {
         case TYPE_PLAYER:
         {
             return COL_VTYPE_INTERNAL;
         }
         case TYPE_BALL:
         {
             return COL_VTYPE_NOT_VALID;
         }
         default:
         {
             break;
         }
     }
     
     if (obj->m_massive_type == MASS_MASSIVE)
     {
         if (obj->m_sprite_array == ARRAY_ENEMY)
         {
             return COL_VTYPE_NOT_VALID;
         }
         
         return COL_VTYPE_BLOCKING;
     }
     if (obj->m_massive_type == MASS_HALFMASSIVE)
     {
         if (m_vely >= 0.0f && Is_On_Top(obj))
         {
             return COL_VTYPE_BLOCKING;
         }
     }
     
     return COL_VTYPE_NOT_VALID;
 }
Esempio n. 5
0
Col_Valid_Type cSpikeball :: Validate_Collision( cSprite *obj )
{
	// basic validation checking
	Col_Valid_Type basic_valid = Validate_Collision_Ghost( obj );

	// found valid collision
	if( basic_valid != COL_VTYPE_NOT_POSSIBLE )
	{
		return basic_valid;
	}

	if( obj->m_massive_type == MASS_MASSIVE )
	{
		switch( obj->m_type )
		{
			case TYPE_FLYON:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_ROKKO:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_GEE:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_SPIKA:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_STATIC_ENEMY:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_TURTLE_BOSS:
			{
				return COL_VTYPE_NOT_VALID;
			}
			case TYPE_FURBALL_BOSS:
			{
				return COL_VTYPE_NOT_VALID;
			}
			default:
			{
				break;
			}
		}

		return COL_VTYPE_BLOCKING;
	}
	else if( obj->m_massive_type == MASS_HALFMASSIVE )
	{
		// if moving downwards and the object is on bottom
		if( m_vely >= 0.0f && Is_On_Top( obj ) )
		{
			return COL_VTYPE_BLOCKING;
		}
	}
	else if( obj->m_massive_type == MASS_PASSIVE )
	{
		switch( obj->m_type )
		{
			case TYPE_ENEMY_STOPPER:
			{
				return COL_VTYPE_BLOCKING;
			}
			default:
			{
				break;
			}
		}
	}

	return COL_VTYPE_NOT_VALID;
}