/** * \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; }
/** * \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); } }
DataMarshaller::DataMarshaller(void) { resetInputs(); resetOutputs(); }