Beispiel #1
0
void CShellyFrags::process()
{
	performCollisions();
	
	performGravityMid();

	// Reflections at wall. Not sure, if it makes sense, let's observe the behaviour
	if( (blockedl && mXSpeed < 0) ||
	    (blockedr && mXSpeed > 0) )
	{
	  mXSpeed = -mXSpeed;
	}		
	
	if( blockedd )
	{
	  dead = true;
	  exists = false;
	  return;
	}
	
	
	moveXDir(mXSpeed);
	
	processActionRoutine();	
}
void CMadMushroom::process()
{

	performGravityMid();
	performCollisions();

	if(!blockedd)
	{
		m_jumped = false;
	}

	if(blockedd && !m_jumped)
	{
		yinertia = -MUSHROOM_LOW_INERTIA;
		jumpcounter++;

		if( jumpcounter>=bounceAmount )
		{
			yinertia = -MUSHROOM_HIGH_INERTIA;
			jumpcounter = 0;
			playSound( SOUND_BOUNCE_HIGH );
		}
		else
		{
			playSound( SOUND_BOUNCE_LOW );
		}

		m_jumped = true;
	}

	if(!processActionRoutine())
			exists = false;
}
Beispiel #3
0
void CAmpton::process()
{
	performCollisions();
	
	if(!getActionNumber(A_AMPTON_POLE_SLIDE))
	  performGravityMid();

	if(!dead) // If we is dead, there is no way to continue moving or turning
	{	
	  if( blockedl )
	  {
	    if(xDirection == LEFT)
	      setAction(A_AMPTON_TURN);
	    
	    xDirection = RIGHT;
	  }
	  else if(blockedr)
	  {
	    if(xDirection == RIGHT)
	      setAction(A_AMPTON_TURN);
	    
	    xDirection = LEFT;
	  }
	}
	
	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
Beispiel #4
0
void CSparky::process()
{
	performCollisions();
	
    performGravityMid();

	if(!dead) // If we is dead, there is no way to continue moving or turning
	{
	  if( blockedl )
	  {
	    if(xDirection == LEFT)
	      setAction(A_SPARKY_TURN);
	    
	    xDirection = RIGHT;
	  }
	  else if(blockedr)
	  {
	    if(xDirection == RIGHT)
	      setAction(A_SPARKY_TURN);
	    
	    xDirection = LEFT;
	  }
	}

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
void CMimrock::process()
{       
    performCollisions();
    performGravityMid();    
	
    processActionRoutine();
        
    (this->*mp_processState)();
    
}
Beispiel #6
0
void CShikadiMaster::process()
{
	performCollisions();
	
	performGravityMid();

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
Beispiel #7
0
void CLick::process()
{
	performCollisions();
	performGravityMid();

	if( blockedl )
		xDirection = RIGHT;
	else if( blockedr )
		xDirection = LEFT;

	(this->*mp_processState)();

	if(!processActionRoutine())
			exists = false;
}
Beispiel #8
0
void CRoboRed::process()
{
	performCollisions();
	
	performGravityMid();

	if( blockedl )
	{
	  xDirection = RIGHT;
	}
	else if(blockedr)
	{
	  xDirection = LEFT;
	}

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
Beispiel #9
0
void CMastersSpark::process()
{
	performCollisions();
	
	performGravityMid();

	if( blockedl )
	{
	  xDirection = RIGHT;
	  mIsDead = true;
	}
	else if(blockedr)
	{
	  xDirection = LEFT;
	  mIsDead = true;
	}

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}
Beispiel #10
0
void CBlueBird::process()
{
	performCollisions();
	
	if(!inhibitfall)
	    performGravityMid();

	if( blockedl )
		xDirection = RIGHT;
	else if( blockedr )
		xDirection = LEFT;

	if( blockedu )
		yDirection = DOWN;
	else if( blockedu )
		yDirection = UP;


	(this->*mpProcessState)();

	if(!processActionRoutine())
			exists = false;
}
Beispiel #11
0
void CKorath::process()
{
	performCollisions();
	
	performGravityMid();

	if(!dead) // If we is dead, there is no way to continue moving or turning
	{
	  if( blockedl )
	  {	    
	    xDirection = RIGHT;
	  }
	  else if(blockedr)
	  {
	    
	    xDirection = LEFT;
	  }
	}

	if(!processActionRoutine())
	    exists = false;
	
	(this->*mp_processState)();
}