void	EventHandler::MouseFunc(int but, int state, int x, int y)
{
	EventHandler*			s_event = EventHandler::GetInstance();
	Display*			disp;
	std::list<Player*>::iterator	it;
	ID::Env*			env;

	env = ID::Env::GetInstance();
	disp = Display::GetInstance();
	it = disp->game->GetPlayerList()->begin();
	if (disp->InGame)
	{
		if (but == GLUT_LEFT_BUTTON && state == GLUT_DOWN )
		{
			if ((*it)->Get_Weapon()->Get_Charger1()->Get_Nb_Ammo() > 0)
			{
				disp->game->S->play_distant_sound(0, 0, 0);
				(*it)->Fire(0);
				Ball*	ball = new Ball(Vec3f(camera.pos[0] + camera.forward[0], camera.pos[1] - 1.f, camera.pos[2]),
							Vec3f(0.f, 0.f, 0.f), Vec3f(1.f, 1.f, 1.f),
							Vec3f(camera.forward[0] * ((GLfloat)rand() / (GLfloat)RAND_MAX / 50.f + 0.99f) * 100.f,
							      camera.forward[1] * 100.f,
							      camera.forward[2] * ((GLfloat)rand() / (GLfloat)RAND_MAX / 50.f + 0.99f) * 100.f),
							0.5f, 0.5f * 0.9f);
				ball->GenerateHitBox();
				balls.push_back(ball);
				g_phys.AddObject((SolidObj*)ball);
			}
			else
			{
				(*it)->Reload(0);
				disp->game->S->play_distant_sound(1, 0, 0);
			}
		}
	}
	else
	{
		if (state == GLUT_DOWN)
		{
			s_event->__ev.type = ID::EVENT_CLICK_DOWN;
			s_event->__ev.clickDown.button = (ID::Mouse_Button)but;
			s_event->__ev.clickDown.x = x;
			s_event->__ev.clickDown.y = y;
			env->ClickDown(&(s_event->__ev));
		}
		else if (state == GLUT_UP)
		{
			s_event->__ev.type = ID::EVENT_CLICK_UP;
			s_event->__ev.clickDown.button = (ID::Mouse_Button)but;
			s_event->__ev.clickDown.x = x;
			s_event->__ev.clickDown.y = y;
			env->ClickUp(&(s_event->__ev));
		}
	}
}