- Sector* sector = Sector::current();
- if (!sector) {
- log_debug << "no current sector" << std::endl;
- return;
- }
- for(Sector::GameObjects::iterator i = sector->gameobjects.begin(); i != sector->gameobjects.end(); ++i) {
- WeakBlock* wb = dynamic_cast<WeakBlock*>(*i);
- if (!wb) continue;
- if (wb == this) continue;
- if (wb->state != STATE_NORMAL) continue;
- float dx = fabsf(wb->get_pos().x - this->get_pos().x);
- float dy = fabsf(wb->get_pos().y - this->get_pos().y);
- if ((dx <= 32.5) && (dy <= 32.5)) wb->startBurning();
+ //Destroy adjacent weakblocks if applicable
+ if(linked) {
+ Sector* sector = Sector::current();
+ if (!sector) {
+ log_debug << "no current sector" << std::endl;
+ return;
+ }
+ for(Sector::GameObjects::iterator i = sector->gameobjects.begin(); i != sector->gameobjects.end(); ++i) {
+ WeakBlock* wb = dynamic_cast<WeakBlock*>(*i);
+ if (!wb) continue;
+ if (wb == this) continue;
+ if (wb->state != STATE_NORMAL) continue;
+ float dx = fabsf(wb->get_pos().x - this->get_pos().x);
+ float dy = fabsf(wb->get_pos().y - this->get_pos().y);
+ if ((dx <= 32.5) && (dy <= 32.5)) wb->startBurning();
+ }