Browse Source

Remove monsterId from M_GetKnockback (#4882)

pull/4887/head
Cesar Canassa 4 years ago committed by GitHub
parent
commit
76da2d14c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      Source/missiles.cpp
  2. 4
      Source/monster.cpp
  3. 2
      Source/monster.h
  4. 2
      Source/msg.cpp
  5. 14
      Source/player.cpp

10
Source/missiles.cpp

@ -182,9 +182,9 @@ void MoveMissilePos(Missile &missile)
} }
} }
bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t, bool shift) bool MonsterMHit(int pnum, int monsterId, int mindam, int maxdam, int dist, missile_id t, bool shift)
{ {
auto &monster = Monsters[m]; auto &monster = Monsters[monsterId];
if (!monster.IsPossibleToHit() || monster.IsImmune(t)) if (!monster.IsPossibleToHit() || monster.IsImmune(t))
return false; return false;
@ -244,14 +244,14 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t
monster._mFlags |= MFLAG_NOHEAL; monster._mFlags |= MFLAG_NOHEAL;
if (monster._mhitpoints >> 6 <= 0) { if (monster._mhitpoints >> 6 <= 0) {
M_StartKill(m, pnum); M_StartKill(monsterId, pnum);
} else if (resist) { } else if (resist) {
PlayEffect(monster, 1); PlayEffect(monster, 1);
} else { } else {
if (monster._mmode != MonsterMode::Petrified && MissilesData[t].mType == 0 && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback)) if (monster._mmode != MonsterMode::Petrified && MissilesData[t].mType == 0 && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback))
M_GetKnockback(m); M_GetKnockback(monster);
if (monster.type().type != MT_GOLEM) if (monster.type().type != MT_GOLEM)
M_StartHit(m, pnum, dam); M_StartHit(monsterId, pnum, dam);
} }
if (monster._msquelch == 0) { if (monster._msquelch == 0) {

4
Source/monster.cpp

@ -3884,10 +3884,8 @@ void M_ClearSquares(const Monster &monster)
} }
} }
void M_GetKnockback(int monsterId) void M_GetKnockback(Monster &monster)
{ {
auto &monster = Monsters[monsterId];
Direction dir = Opposite(monster._mdir); Direction dir = Opposite(monster._mdir);
if (!IsRelativeMoveOK(monster, monster.position.old, dir)) { if (!IsRelativeMoveOK(monster, monster.position.old, dir)) {
return; return;

2
Source/monster.h

@ -306,7 +306,7 @@ void AddDoppelganger(Monster &monster);
bool M_Talker(const Monster &monster); bool M_Talker(const Monster &monster);
void M_StartStand(Monster &monster, Direction md); void M_StartStand(Monster &monster, Direction md);
void M_ClearSquares(const Monster &monster); void M_ClearSquares(const Monster &monster);
void M_GetKnockback(int monsterId); void M_GetKnockback(Monster &monster);
void M_StartHit(int monsterId, int dam); void M_StartHit(int monsterId, int dam);
void M_StartHit(int monsterId, int pnum, int dam); void M_StartHit(int monsterId, int pnum, int dam);
void StartMonsterDeath(int monsterId, int pnum, bool sendmsg); void StartMonsterDeath(int monsterId, int pnum, bool sendmsg);

2
Source/msg.cpp

@ -1434,7 +1434,7 @@ DWORD OnKnockback(const TCmd *pCmd, int pnum)
const auto &message = *reinterpret_cast<const TCmdParam1 *>(pCmd); const auto &message = *reinterpret_cast<const TCmdParam1 *>(pCmd);
if (gbBufferMsgs != 1 && Players[pnum].isOnActiveLevel() && message.wParam1 < MaxMonsters) { if (gbBufferMsgs != 1 && Players[pnum].isOnActiveLevel() && message.wParam1 < MaxMonsters) {
M_GetKnockback(message.wParam1); M_GetKnockback(Monsters[message.wParam1]);
M_StartHit(message.wParam1, pnum, 0); M_StartHit(message.wParam1, pnum, 0);
} }

14
Source/player.cpp

@ -796,14 +796,14 @@ bool DamageWeapon(Player &player, int durrnd)
return false; return false;
} }
bool PlrHitMonst(int pnum, int m, bool adjacentDamage = false) bool PlrHitMonst(int pnum, int monsterId, bool adjacentDamage = false)
{ {
int hper = 0; int hper = 0;
if ((DWORD)m >= MaxMonsters) { if ((DWORD)monsterId >= MaxMonsters) {
app_fatal(fmt::format("PlrHitMonst: illegal monster {}", m)); app_fatal(fmt::format("PlrHitMonst: illegal monster {}", monsterId));
} }
auto &monster = Monsters[m]; auto &monster = Monsters[monsterId];
if ((DWORD)pnum >= MAX_PLRS) { if ((DWORD)pnum >= MAX_PLRS) {
app_fatal(fmt::format("PlrHitMonst: illegal player {}", pnum)); app_fatal(fmt::format("PlrHitMonst: illegal player {}", pnum));
@ -971,11 +971,11 @@ bool PlrHitMonst(int pnum, int m, bool adjacentDamage = false)
} }
#endif #endif
if ((monster._mhitpoints >> 6) <= 0) { if ((monster._mhitpoints >> 6) <= 0) {
M_StartKill(m, pnum); M_StartKill(monsterId, pnum);
} else { } else {
if (monster._mmode != MonsterMode::Petrified && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback)) if (monster._mmode != MonsterMode::Petrified && HasAnyOf(player._pIFlags, ItemSpecialEffect::Knockback))
M_GetKnockback(m); M_GetKnockback(monster);
M_StartHit(m, pnum, dam); M_StartHit(monsterId, pnum, dam);
} }
return true; return true;

Loading…
Cancel
Save