refactor CheckTown() and CheckRportal()

This commit is contained in:
BC Ko 2021-08-18 10:28:29 -07:00 committed by Anders Jenbo
commit b9927c7ceb

View file

@ -217,21 +217,22 @@ void CheckTown()
{
for (int i = 0; i < ActiveMissileCount; i++) {
int mx = ActiveMissiles[i];
if (Missiles[mx]._mitype == MIS_TOWN) {
if ((cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y)
|| (cursmx == Missiles[mx].position.tile.x && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 2 && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 2 && cursmy == Missiles[mx].position.tile.y - 2)
|| (cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y - 2)
|| (cursmx == Missiles[mx].position.tile.x && cursmy == Missiles[mx].position.tile.y)) {
auto &missile = Missiles[mx];
if (missile._mitype == MIS_TOWN) {
if ((cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y)
|| (cursmx == missile.position.tile.x && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 2 && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 2 && cursmy == missile.position.tile.y - 2)
|| (cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y - 2)
|| (cursmx == missile.position.tile.x && cursmy == missile.position.tile.y)) {
trigflag = true;
ClearPanel();
strcpy(infostr, _("Town Portal"));
strcpy(tempstr, fmt::format(_("from {:s}"), Players[Missiles[mx]._misource]._pName).c_str());
strcpy(tempstr, fmt::format(_("from {:s}"), Players[missile._misource]._pName).c_str());
AddPanelString(tempstr);
cursmx = Missiles[mx].position.tile.x;
cursmy = Missiles[mx].position.tile.y;
cursmx = missile.position.tile.x;
cursmy = missile.position.tile.y;
}
}
}
@ -241,14 +242,15 @@ void CheckRportal()
{
for (int i = 0; i < ActiveMissileCount; i++) {
int mx = ActiveMissiles[i];
if (Missiles[mx]._mitype == MIS_RPORTAL) {
if ((cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y)
|| (cursmx == Missiles[mx].position.tile.x && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 2 && cursmy == Missiles[mx].position.tile.y - 1)
|| (cursmx == Missiles[mx].position.tile.x - 2 && cursmy == Missiles[mx].position.tile.y - 2)
|| (cursmx == Missiles[mx].position.tile.x - 1 && cursmy == Missiles[mx].position.tile.y - 2)
|| (cursmx == Missiles[mx].position.tile.x && cursmy == Missiles[mx].position.tile.y)) {
auto &missile = Missiles[mx];
if (missile._mitype == MIS_RPORTAL) {
if ((cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y)
|| (cursmx == missile.position.tile.x && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 2 && cursmy == missile.position.tile.y - 1)
|| (cursmx == missile.position.tile.x - 2 && cursmy == missile.position.tile.y - 2)
|| (cursmx == missile.position.tile.x - 1 && cursmy == missile.position.tile.y - 2)
|| (cursmx == missile.position.tile.x && cursmy == missile.position.tile.y)) {
trigflag = true;
ClearPanel();
strcpy(infostr, _("Portal to"));
@ -257,8 +259,8 @@ void CheckRportal()
else
strcpy(tempstr, _("level 15"));
AddPanelString(tempstr);
cursmx = Missiles[mx].position.tile.x;
cursmy = Missiles[mx].position.tile.y;
cursmx = missile.position.tile.x;
cursmy = missile.position.tile.y;
}
}
}