Browse Source

♻️ Leverage 'Damage' for '_pIF[Min|Max]Dam' 'Player' fields

julealgon/Enhancements/DamageStruct
Juliano Leal Goncalves 5 years ago
parent
commit
919093406e
  1. 3
      Source/items.cpp
  2. 10
      Source/loadsave.cpp
  3. 4
      Source/missiles.cpp
  4. 4
      Source/player.cpp
  5. 3
      Source/player.h
  6. 3
      test/player_test.cpp

3
Source/items.cpp

@ -2861,8 +2861,7 @@ void CalcPlrItemVals(Player &player, bool loadgfx)
player._pMaxMana = imana + player._pMaxManaBase;
player._pMana = std::min(imana + player._pManaBase, player._pMaxMana);
player._pIFMinDam = fmin;
player._pIFMaxDam = fmax;
player._pIFDamage = { fmin, fmax };
player._pILMinDam = lmin;
player._pILMaxDam = lmax;

10
Source/loadsave.cpp

@ -489,8 +489,10 @@ void LoadPlayer(LoadHelper &file, Player &player)
file.Skip(2); // Alignment
player._pISplDur = file.NextLE<int32_t>();
player._pIEnAc = file.NextLE<int32_t>();
player._pIFMinDam = file.NextLE<int32_t>();
player._pIFMaxDam = file.NextLE<int32_t>();
auto minFireDamage = file.NextLE<int32_t>();
auto maxFireDamage = file.NextLE<int32_t>();
player._pIFDamage = { minFireDamage, maxFireDamage };
player._pILMinDam = file.NextLE<int32_t>();
player._pILMaxDam = file.NextLE<int32_t>();
player._pOilType = static_cast<item_misc_id>(file.NextLE<int32_t>());
@ -1164,8 +1166,8 @@ void SavePlayer(SaveHelper &file, const Player &player)
file.Skip(2); // Alignment
file.WriteLE<int32_t>(player._pISplDur);
file.WriteLE<int32_t>(player._pIEnAc);
file.WriteLE<int32_t>(player._pIFMinDam);
file.WriteLE<int32_t>(player._pIFMaxDam);
file.WriteLE<int32_t>(player._pIFDamage.minValue);
file.WriteLE<int32_t>(player._pIFDamage.maxValue);
file.WriteLE<int32_t>(player._pILMinDam);
file.WriteLE<int32_t>(player._pILMaxDam);
file.WriteLE<int32_t>(player._pOilType);

4
Source/missiles.cpp

@ -2846,7 +2846,7 @@ void MI_LArrow(Missile &missile)
}
if (missile._mitype == MIS_FARROW) {
const auto damage = p != -1
? Damage { Players[p]._pIFMinDam, Players[p]._pIFMaxDam }
? Players[p]._pIFDamage
: Damage { GenerateRnd(10) + 1 + currlevel, GenerateRnd(10) + 1 + currlevel * 2 };
MissilesData[MIS_FARROW].mResist = MISR_FIRE;
@ -3599,7 +3599,7 @@ void MI_Weapexp(Missile &missile)
int id = missile._misource;
Damage damage { 0 };
if (missile.var2 == 1) {
damage = { Players[id]._pIFMinDam, Players[id]._pIFMaxDam };
damage = Players[id]._pIFDamage;
MissilesData[missile._mitype].mResist = MISR_FIRE;
} else {
damage = { Players[id]._pILMinDam, Players[id]._pILMaxDam };

4
Source/player.cpp

@ -916,7 +916,7 @@ bool PlrHitMonst(int pnum, int m)
}
if ((player._pIFlags & ISPL_FIREDAM) != 0 && (player._pIFlags & ISPL_LIGHTDAM) != 0) {
int midam = player._pIFMinDam + GenerateRnd(player._pIFMaxDam - player._pIFMinDam + 1);
int midam = player._pIFDamage.GetValue();
AddMissile(player.position.tile, player.position.temp, player._pdir, MIS_SPECARROW, TARGET_MONSTERS, pnum, midam, 0);
}
int dam = player._pIDamage.GetValue();
@ -1300,7 +1300,7 @@ bool DoRangeAttack(int pnum)
mistype = MIS_LARROW;
}
if ((player._pIFlags & ISPL_FIRE_ARROWS) != 0 && (player._pIFlags & ISPL_LIGHT_ARROWS) != 0) {
dmg = player._pIFMinDam + GenerateRnd(player._pIFMaxDam - player._pIFMinDam + 1);
dmg = player._pIFDamage.GetValue();
mistype = MIS_SPECARROW;
}

3
Source/player.h

@ -282,8 +282,7 @@ struct Player {
int8_t _pISplLvlAdd;
int _pISplDur;
int _pIEnAc;
int _pIFMinDam;
int _pIFMaxDam;
Damage _pIFDamage;
int _pILMinDam;
int _pILMaxDam;
item_misc_id _pOilType;

3
test/player_test.cpp

@ -165,8 +165,7 @@ static void AssertPlayer(Player &player)
ASSERT_EQ(player._pISplLvlAdd, 0);
ASSERT_EQ(player._pISplDur, 0);
ASSERT_EQ(player._pIEnAc, 0);
ASSERT_EQ(player._pIFMinDam, 0);
ASSERT_EQ(player._pIFMaxDam, 0);
ASSERT_EQ(player._pIFDamage, Damage { 0 });
ASSERT_EQ(player._pILMinDam, 0);
ASSERT_EQ(player._pILMaxDam, 0);
}

Loading…
Cancel
Save