| 415 | static unordered_map<int32_t, df::coord> corner1; |
| 416 | static unordered_map<int32_t, df::coord> corner2; |
| 417 | static void cacheBuilding(df::building *building) { |
| 418 | int32_t id = building->id; |
| 419 | df::coord p1(std::min(building->x1, building->x2), std::min(building->y1,building->y2), building->z); |
| 420 | df::coord p2(std::max(building->x1, building->x2), std::max(building->y1,building->y2), building->z); |
| 421 | |
| 422 | corner1[id] = p1; |
| 423 | corner2[id] = p2; |
| 424 | |
| 425 | for (int32_t x = p1.x; x <= p2.x; x++) { |
| 426 | for (int32_t y = p1.y; y <= p2.y; y++) { |
| 427 | df::coord pt(x, y, building->z); |
| 428 | if (Buildings::containsTile(building, pt)) { |
| 429 | locationToBuilding[pt] = id; |
| 430 | } |
| 431 | } |
| 432 | } |
| 433 | } |
| 434 | |
| 435 | bool Buildings::findCivzonesAt(std::vector<df::building_civzonest*> *pvec, |
| 436 | df::coord pos) { |