* Returns if a certain target is inside the base's * radar range, taking in account the positions of both. * @param target Pointer to target to compare. * @return 0 - outside radar range, 1 - inside conventional radar range, 2 - inside hyper-wave decoder range. */
| 398 | * @return 0 - outside radar range, 1 - inside conventional radar range, 2 - inside hyper-wave decoder range. |
| 399 | */ |
| 400 | int Base::insideRadarRange(Target *target) const |
| 401 | { |
| 402 | bool insideRange = false; |
| 403 | double distance = getDistance(target) * 60.0 * (180.0 / M_PI); |
| 404 | for (std::vector<BaseFacility*>::const_iterator i = _facilities.begin(); i != _facilities.end(); ++i) |
| 405 | { |
| 406 | if ((*i)->getRules()->getRadarRange() >= distance && (*i)->getBuildTime() == 0) |
| 407 | { |
| 408 | if ((*i)->getRules()->isHyperwave()) |
| 409 | { |
| 410 | return 2; |
| 411 | } |
| 412 | insideRange = true; |
| 413 | } |
| 414 | } |
| 415 | |
| 416 | return insideRange? 1 : 0; |
| 417 | } |
| 418 | |
| 419 | /** |
| 420 | * Returns the amount of soldiers contained |
no test coverage detected