Browse Source

♻️ change delta_monster_hp to receive a Monster reference (#4873)

pull/4879/head
Cesar Canassa 4 years ago committed by GitHub
parent
commit
79f5cdb2be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      Source/monster.cpp
  2. 10
      Source/msg.cpp
  3. 2
      Source/msg.h

4
Source/monster.cpp

@ -1050,7 +1050,7 @@ void HitMonster(int monsterId, int dam)
assert(monsterId >= 0 && monsterId < MaxMonsters);
auto &monster = Monsters[monsterId];
delta_monster_hp(monsterId, monster._mhitpoints, *MyPlayer);
delta_monster_hp(monster, *MyPlayer);
NetSendCmdMonDmg(false, monsterId, dam);
PlayEffect(monster, 1);
@ -3929,7 +3929,7 @@ void M_StartHit(int monsterId, int pnum, int dam)
monster.mWhoHit |= 1 << pnum;
if (pnum == MyPlayerId) {
delta_monster_hp(monsterId, monster._mhitpoints, *MyPlayer);
delta_monster_hp(monster, *MyPlayer);
NetSendCmdMonDmg(false, monsterId, dam);
}
if (IsAnyOf(monster.type().type, MT_SNEAK, MT_STALKER, MT_UNSEEN, MT_ILLWEAV) || dam >> 6 >= monster.mLevel + 3) {

10
Source/msg.cpp

@ -1592,7 +1592,7 @@ DWORD OnMonstDamage(const TCmd *pCmd, int pnum)
monster._mhitpoints -= message.dwDam;
if ((monster._mhitpoints >> 6) < 1)
monster._mhitpoints = 1 << 6;
delta_monster_hp(message.wMon, monster._mhitpoints, player);
delta_monster_hp(monster, player);
}
}
}
@ -2220,15 +2220,15 @@ void delta_kill_monster(int mi, Point position, const Player &player)
pD->_mhitpoints = 0;
}
void delta_monster_hp(int mi, int hp, const Player &player)
void delta_monster_hp(const Monster &monster, const Player &player)
{
if (!gbIsMultiplayer)
return;
sgbDeltaChanged = true;
DMonsterStr *pD = &GetDeltaLevel(player).monster[mi];
if (pD->_mhitpoints > hp)
pD->_mhitpoints = hp;
DMonsterStr *pD = &GetDeltaLevel(player).monster[monster.getId()];
if (pD->_mhitpoints > monster._mhitpoints)
pD->_mhitpoints = monster._mhitpoints;
}
void delta_sync_monster(const TSyncMonster &monsterSync, uint8_t level)

2
Source/msg.h

@ -722,7 +722,7 @@ void DeltaExportData(int pnum);
void DeltaSyncJunk();
void delta_init();
void delta_kill_monster(int mi, Point position, const Player &player);
void delta_monster_hp(int mi, int hp, const Player &player);
void delta_monster_hp(const Monster &monster, const Player &player);
void delta_sync_monster(const TSyncMonster &monsterSync, uint8_t level);
uint8_t GetLevelForMultiplayer(const Player &player);
bool IsValidLevelForMultiplayer(uint8_t level);

Loading…
Cancel
Save