void MouseMotion (int x, int y)
{
    if (pressed_mouse_button == GLUT_LEFT_BUTTON) {
        processLeft(x, y);
    } else if (pressed_mouse_button == GLUT_RIGHT_BUTTON) {
        processRight(x,y);
    }
    glutPostRedisplay ();
}
void EnemyPrisonerRock::processUpdate()
{
//	BelowFeetLadderCheck();

	if(ipFlags.S_ON_GROUND)
	{
		velModifier = 0;
		velYModifier = 0;
	}
	else
	{
//		velYModifier += (gravityConstant * time);
	}

	if((player_spr->GetFrameSet() == ENEMY_PRISONER_ANIM_DEATH)&& !player_spr->IsAnimating())
		Die();

	if(ipFlags.S_ATTACK)
	{
		if((player_spr->GetFrameSet() == ENEMY_PRISONER_ANIM_THROW) && !player_spr->IsAnimating())
			ipFlags.S_ATTACK = false;
	}

	//Transition Movement State
//	TransitionMovement(ipFlags.CurMState);

	// Apply Velocity Modifier
	if(!ipFlags.S_DAMAGED)
	{
		if(!ipFlags.S_ATTACK)
			switch(ipFlags.CurMState)
			{
				case move_stop:
					stop();
					break;

				case move_left:
					processLeft();
					break;

				case move_right:
					processRight();
					break;

				default:
					break;
			}
	}
}
void EnemyZombiePrisoner::processUpdate()
{
	ipFlags.S_ATTACK = true;


	BelowFeetLadderCheck();

	if(!ipFlags.S_DEAD)
	{
		if((player_spr->GetFrameSet() == ENEMY_PRISONER_ZOMBIE_ANIM_ATTACK) && !player_spr->IsAnimating())
			Die();

		if(ipFlags.S_ATTACK)
		{
			if((player_spr->GetFrameSet() == ENEMY_PRISONER_ZOMBIE_ANIM_ATTACK) && !player_spr->IsAnimating())
				ipFlags.S_ATTACK = false;
		}

		// Apply Velocity Modifier
		if(!ipFlags.S_DAMAGED)
		{
		//	if(!ipFlags.S_ATTACK)
				switch(ipFlags.CurMState)
				{
					case move_stop:
						stop();
						break;		
	
					case move_left:
						processLeft();
						break;
	
					case move_right:
						processRight();
						break;

					default:
						break;
				}
		}
	}
}
void EnemyJunkbotFlying::processUpdate()
{
	/* Check for End of Death Animation */
	if((player_spr->GetFrameSet() == ENEMY_JUNKBOT_FLYING_DEATH) && !player_spr->IsAnimating())
		Die();

	if(!ipFlags.S_DEAD)
	{
		// Apply Velocity Modifier
		if(!ipFlags.S_DAMAGED)
		{
				switch(ipFlags.CurMState)
				{
					case move_stop:
						stop();
						break;		

					case move_left:
						processLeft();
						break;

					case move_right:
						processRight();
						break;

					case move_up:
						processUp();
						break;

					case move_down:
						processDown();

					default:
						break;
				}
		}
	}

	/* Center (0,0), offset by Render Offset */
//	SetRectangle(rectWorldLoc, 35, 15, -nOffSet - 25, -10);
}
void EnemyGreenNinja::processUpdate()
{
//	BelowFeetLadderCheck();

	if(!ipFlags.S_DEAD)
	{
		if((player_spr->GetFrameSet() == ENEMY_GREEN_NINJA_ANIM_DEATH)&& !player_spr->IsAnimating())
			Die();

		if(ipFlags.S_ATTACK)
		{
			if((player_spr->GetFrameSet() == ENEMY_GREEN_NINJA_ANIM_ATTACK) && !player_spr->IsAnimating())
				ipFlags.S_ATTACK = false;
		}

		// Apply Velocity Modifier
		if(!ipFlags.S_DAMAGED)
		{
			if(!ipFlags.S_ATTACK)
				switch(ipFlags.CurMState)
				{
					case move_stop:
						stop();
						break;		
	
					case move_left:
						processLeft();
						break;
	
					case move_right:
						processRight();
						break;

					default:
						break;
				}
		}
	}
}
void EnemyShadowElitePistol::processUpdate()
{
	BelowFeetLadderCheck();

	if((player_spr->GetFrameSet() == ENEMY_BATON_ELITE_GUARD_ANIM_DEATH)&& !player_spr->IsAnimating())
		Die();

	if(ipFlags.S_ATTACK)
	{
		if(!player_spr->IsAnimating())
			ipFlags.S_ATTACK = false;
	}

	// Apply Velocity Modifier
	if(!ipFlags.S_DAMAGED)
	{
		if(!ipFlags.S_ATTACK)
			switch(ipFlags.CurMState)
			{
				case move_stop:
					stop();
					break;

				case move_left:
					processLeft();
					break;

				case move_right:
					processRight();
					break;

				default:
					break;
			}
	}
}