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))
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;
if (monster._mhitpoints >> 6 <= 0) {
M_StartKill(m, pnum);
M_StartKill(monsterId, pnum);
} else if (resist) {
PlayEffect(monster, 1);
} else {
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)
M_StartHit(m, pnum, dam);
M_StartHit(monsterId, pnum, dam);
}
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);
if (!IsRelativeMoveOK(monster, monster.position.old, dir)) {
return;

2
Source/monster.h

@ -306,7 +306,7 @@ void AddDoppelganger(Monster &monster);
bool M_Talker(const Monster &monster);
void M_StartStand(Monster &monster, Direction md);
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 pnum, int dam);
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);
if (gbBufferMsgs != 1 && Players[pnum].isOnActiveLevel() && message.wParam1 < MaxMonsters) {
M_GetKnockback(message.wParam1);
M_GetKnockback(Monsters[message.wParam1]);
M_StartHit(message.wParam1, pnum, 0);
}

14
Source/player.cpp

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

Loading…
Cancel
Save