/**
* \fn void resetMotionVariables(KaamObject* pObject)
* \brief Resets all variable relative to a jump.
*
* \param[in] pObject, pointer to the object to move.
* \returns void
*/
void resetMotionVariables(KaamObject* pObject)
{
	resetInputs();
	resetSpeed(&pObject->Xspeed, &pObject->Yspeed);
	resetAbsoluteCoordinates(pObject->objectSurface, &pObject->absoluteCoordinate.x, &pObject->absoluteCoordinate.y);
	pObject->relativeTime = 0;
	pObject->startMotion = 0;
	pObject->motionDirection = DOWN;
}
Beispiel #2
0
/**
* \fn void updateGameWorms(Jeu* jeu, Worms** wormsTab, SDL_Texture* pTextureDisplay, SDL_Rect* pCamera)
* \brief Update worms display, manages overlay and physics for all worms.
*
* \returns void
*/
void updateGameWorms(Jeu* jeu, Worms** wormsTab, SDL_Texture* pTextureDisplay, SDL_Rect* pCamera)
{
	int indexWorms;

	updateTeamLife(jeu->equipes);
	isGameEnd(jeu);

	if (!globalVar.gameEnd && !globalInput->menu && !globalInput->weaponTab)
	{
		if (wormsTab[globalVar.indexWormsTab]->vie <= 0)
		{
			callNextWorms(wormsTab);
		}
		globalInput->deplacement = 0;
		for (indexWorms = 0; indexWorms < globalVar.nbWormsTotal; indexWorms++)
		{
			if (indexWorms == globalVar.indexWormsTab || wormsTab[indexWorms]->wormsObject->reactToBomb == 1
				|| !testGround(jeu->pMapTerrain->collisionMapSurface, wormsTab[indexWorms]->wormsObject->objectSurface, 1))
			{
				if (wormsTab[indexWorms]->vie > 0
					|| (wormsTab[indexWorms]->vie == 0 && !testGround(jeu->pMapTerrain->collisionMapSurface, wormsTab[indexWorms]->wormsObject->objectSurface, 2)))
				{
					KaamWormsMotionManagement(wormsTab[indexWorms], jeu->pMapTerrain->collisionMapSurface);
				}
				if (deathByLimitMap(wormsTab[indexWorms], jeu->pMapTerrain->collisionMapSurface))
					resetInputs();
			}
			if (globalInput->deplacement || globalInput->raffraichissement)
			{
				updateTextSurfaceWormsTab(wormsTab);	//MAJ de la position du texte + Surface Vie	
				displayWorms(wormsTab[indexWorms], 1);
				if (globalVar.nbWormsTotal > 1)
					wormsOverlay(wormsTab);
				globalInput->raffraichissement = 1;
			}
			/*if (wormsTab[indexWorms]->vie > 0 && (!wormsTab[indexWorms]->wormsObject->startMotion || !wormsTab[indexWorms]->wormsObject->falling))
			randomAnimationWorms(wormsTab[indexWorms], jeu->pMapTerrain->collisionMapSurface);*/
		}
		updateHUD(wormsTab);
		if (wormsTab[globalVar.indexWormsTab]->vie > 0 && !globalInput->grenade)
			weaponManagement(jeu->pMapTerrain, pTextureDisplay, wormsTab, globalInput->weaponIndex, pCamera);
		if (globalInput->grenade && !globalInput->arme)
			grenadeManagement(jeu->pMapTerrain, pTextureDisplay, wormsTab, pCamera);
	}
}
Beispiel #3
0
DataMarshaller::DataMarshaller(void)
{
	resetInputs();
	resetOutputs();
}