Browse Source

Move distance check

pull/8327/head
Eric Robinson 4 months ago
parent
commit
c2f1181ccd
  1. 33
      Source/controls/plrctrls.cpp

33
Source/controls/plrctrls.cpp

@ -510,26 +510,25 @@ void Interact()
} }
const Player &myPlayer = *MyPlayer; const Player &myPlayer = *MyPlayer;
Direction pdir = myPlayer._pdir;
const AxisDirection moveDir = GetMoveDirection();
const bool motion = moveDir.x != AxisDirectionX_NONE || moveDir.y != AxisDirectionY_NONE;
if (motion) { if (leveltype != DTYPE_TOWN && IsStandingGround()) {
pdir = FaceDir[static_cast<std::size_t>(moveDir.x)][static_cast<std::size_t>(moveDir.y)]; Direction pdir = myPlayer._pdir;
} const AxisDirection moveDir = GetMoveDirection();
const bool motion = moveDir.x != AxisDirectionX_NONE || moveDir.y != AxisDirectionY_NONE;
Point position = myPlayer.position.tile + pdir; if (motion) {
pdir = FaceDir[static_cast<std::size_t>(moveDir.x)][static_cast<std::size_t>(moveDir.y)];
if (pcursmonst != -1 && !motion) { }
position = Monsters[pcursmonst].position.tile;
}
bool bNear = myPlayer.position.tile.WalkingDistance(position) < 2; Point position = myPlayer.position.tile + pdir;
if (pcursmonst != -1 && !motion) {
position = Monsters[pcursmonst].position.tile;
}
if (leveltype != DTYPE_TOWN && IsStandingGround() && !bNear) { if (myPlayer.position.tile.WalkingDistance(position) > 1) {
NetSendCmdLoc(MyPlayerId, true, myPlayer.UsesRangedWeapon() ? CMD_RATTACKXY : CMD_SATTACKXY, position); NetSendCmdLoc(MyPlayerId, true, myPlayer.UsesRangedWeapon() ? CMD_RATTACKXY : CMD_SATTACKXY, position);
LastPlayerAction = PlayerActionType::Attack; LastPlayerAction = PlayerActionType::Attack;
return; return;
}
} }
if (pcursmonst != -1) { if (pcursmonst != -1) {

Loading…
Cancel
Save