void Explosion::clearExplosion(GameMap &map, int pow) { int xpos = getPosX(); int zpos = getPosZ(); int i; // right if (map.getCoordType(zpos, xpos) == 7) map.setTypeAtPos(xpos, zpos, 0); for (i = 1; i < pow; ++i) if (map.getCoordType(zpos, xpos + i) == 7) map.setTypeAtPos(xpos + i, zpos, 0); // left for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos, xpos + i) == 7) map.setTypeAtPos(xpos + i, zpos, 0); } // up for (i = 1; i < pow; ++i) { if (map.getCoordType(zpos + i, xpos) == 7) map.setTypeAtPos(xpos, zpos + i, 0); } // down for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos + i, xpos) == 7) map.setTypeAtPos(xpos, zpos + i, 0); } }
void Explosion::impact(GameMap &map, int pow) { int xpos = getPosX(); int zpos = getPosZ(); int i; // right map.setTypeAtPos(xpos, zpos, 7); for (i = 1; i < pow; ++i) { if (map.getCoordType(zpos, xpos + i) == 1) break; else if (map.getCoordType(zpos, xpos + i) == 4) { map.setRandomBonusAtPos(xpos + i, zpos); break; } map.setTypeAtPos(xpos +i, zpos, 7); } // up for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos, xpos + i) == 1) break; else if (map.getCoordType(zpos, xpos + i) == 4) { map.setRandomBonusAtPos(xpos + i, zpos); break; } map.setTypeAtPos(xpos + i, zpos, 7); } // up for (i = 1; i < pow; ++i) { if (map.getCoordType(zpos + i, xpos) == 1) break; else if (map.getCoordType(zpos + i, xpos) == 4) { map.setRandomBonusAtPos(xpos, zpos + i); break; } map.setTypeAtPos(xpos, zpos + i, 7); } // down for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos + i, xpos) == 1) break; else if (map.getCoordType(zpos + i, xpos) == 4) { map.setRandomBonusAtPos(xpos, zpos + i); break; } map.setTypeAtPos(xpos, zpos + i, 7); } }
void Explosion::toRenew(GameMap &map, int pow) { int xpos = getPosX(); int zpos = getPosZ(); int i; // right if (map.getCoordType(zpos, xpos) == 7 || map.getCoordType(zpos, xpos) == 0) map.setTypeAtPos(xpos, zpos, 7); for (i = 1; i < pow; ++i) if (map.getCoordType(zpos, xpos + i) == 7 || map.getCoordType(zpos, xpos + i) == 0) map.setTypeAtPos(xpos + i, zpos, 7); else break; //left for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos, xpos + i) == 7 || map.getCoordType(zpos, xpos + i) == 0) map.setTypeAtPos(xpos + i, zpos, 7); else break; } // up for (i = 1; i < pow; ++i) { if (map.getCoordType(zpos + i, xpos) == 7 || map.getCoordType(zpos + i, xpos) == 0) map.setTypeAtPos(xpos, zpos + i, 7); else break; } // down for (i = -1; i > -pow; --i) { if (map.getCoordType(zpos + i, xpos) == 7 || map.getCoordType(zpos + i, xpos) == 0) map.setTypeAtPos(xpos, zpos + i, 7); else break; } }