int recalibrate(int start, int end){ //gets index of closest item in item range[start:end] float shortdist = 100.0f; int index = -1; for(int i = start; i < end + 1; i++){ if (itemBool[i] == -1) { temp[0] = distance(items[i], me) / MY_SPEED; if (temp[0] * MY_SPEED < shortdist && temp[0] < getETA(other, items[i])) { shortdist = distance(me, items[i]); index = i; } } } return index; }
void Move::createFrame(Frame * f, int pos) { Game* game = Game::getGame(); IGObject* obj = game->getObjectManager()->getObject(game->getOrderManager()->getOrderQueue(orderqueueid)->getObjectId()); if(obj != NULL){ turns = getETA(obj); game->getObjectManager()->doneWithObject(obj->getID()); }else{ turns = 0; Logger::getLogger()->error("Move create frame: object not found, id = %d", obj->getID()); } Order::createFrame(f, pos); }
float Plan::updateProgress(const IMC::ManeuverControlState* mcs) { float prog = progress(mcs); if (prog >= 0.0 && m_sched != NULL) { if (!m_beyond_dur) m_sched->updateSchedule(getETA()); else // if we're beyond computed durations, flush all timed actions m_sched->flushTimed(); } return prog; }
/* Figures out the index of an element of a 2D array that is closest to me * Arguments: 2D array, me, beginning index (inclusive), ending index * (exclusive) * * Returns the index of the element in the 2D array closest to me * Returns -1 if no items are avaliable */ int minDistEl(float choices[][3], float me[], int beginning, int end) { int result = -1; float minDist = 101.0f; for (n = beginning ; n < end ; n++) { if (itemPossession[n] == -1) { temp[0] = distance(choices[n], me) / MY_SPEED; if (temp[0] * MY_SPEED < minDist && temp[0] < getETA(other, items[n])) { minDist = distance(choices[n], me); result = n; } } } if (minDist > 100) { return -1; } return result; }
void Road::startRoad() { reloj.restart(); setETA(); initialDurationEstimation = getETA(); }
int Fleet::getEstimatedRationsNeeded() { return getETA() * getNumSailors(); }