1313 |
void |
void |
1314 |
PuzzleStone::trigger_explosion_at(GridPos p, double delay, int wanted_oxyd_attrib) { |
PuzzleStone::trigger_explosion_at(GridPos p, double delay, int wanted_oxyd_attrib) { |
1315 |
PuzzleStone *puzz = dynamic_cast<PuzzleStone*>(GetStone(p)); |
PuzzleStone *puzz = dynamic_cast<PuzzleStone*>(GetStone(p)); |
1316 |
if (puzz && wanted_oxyd_attrib == puzz->int_attrib("oxyd")) // explode adjacent puzzle stones of same type |
if (puzz && wanted_oxyd_attrib == puzz->int_attrib("oxyd")) { |
1317 |
|
// explode adjacent puzzle stones of same type |
1318 |
puzz->trigger_explosion(delay); |
puzz->trigger_explosion(delay); |
1319 |
|
} |
1320 |
} |
} |
1321 |
|
|
1322 |
void |
void |
1329 |
|
|
1330 |
// exchange puzzle stone with explosion |
// exchange puzzle stone with explosion |
1331 |
play_sound("explosion1"); |
play_sound("explosion1"); |
1332 |
KillStone(p); |
// KillStone(p); |
1333 |
SetItem(p, MakeItem(expl)); |
SetStone(p, MakeStone("st-explosion")); //expl)); |
1334 |
|
|
1335 |
// trigger all adjacent puzzle stones : |
// trigger all adjacent puzzle stones : |
1336 |
const double DEFAULT_DELAY = 0.2; |
const double DEFAULT_DELAY = 0.2; |
1344 |
// Possible fix : mark whole cluster as "EXPLODING_SOON" when explosion is initiated |
// Possible fix : mark whole cluster as "EXPLODING_SOON" when explosion is initiated |
1345 |
|
|
1346 |
// ignite adjacent fields |
// ignite adjacent fields |
1347 |
SendExplosionEffect(p, DYNAMITE); |
// SendExplosionEffect(p, DYNAMITE); |
1348 |
} |
} |
1349 |
|
|
1350 |
void |
void |