Address warnings/dead code
This commit is contained in:
parent
ca93d852d2
commit
d3c42544a6
2 changed files with 29 additions and 26 deletions
|
|
@ -1350,7 +1350,7 @@ void SaveMonster(SaveHelper *file, Monster &monster)
|
|||
// Omit pointer MData;
|
||||
}
|
||||
|
||||
void SaveMissile(SaveHelper *file, Missile &missile)
|
||||
void SaveMissile(SaveHelper *file, const Missile &missile)
|
||||
{
|
||||
file->WriteLE<int32_t>(missile._mitype);
|
||||
file->WriteLE<int32_t>(missile.position.tile.x);
|
||||
|
|
@ -1538,16 +1538,17 @@ void SaveAdditionalMissiles()
|
|||
{
|
||||
constexpr size_t BytesWrittenBySaveMissile = 180;
|
||||
size_t missileCountAdditional = (Missiles.size() > MaxMissilesForSaveGame) ? Missiles.size() - MaxMissilesForSaveGame : 0;
|
||||
SaveHelper file("additionalMissiles", sizeof(uint32_t) + sizeof(int32_t) + (missileCountAdditional * BytesWrittenBySaveMissile));
|
||||
SaveHelper file("additionalMissiles", sizeof(uint32_t) + sizeof(uint32_t) + (missileCountAdditional * BytesWrittenBySaveMissile));
|
||||
|
||||
file.WriteLE<uint32_t>(VersionAdditionalMissiles);
|
||||
file.WriteLE<uint32_t>(missileCountAdditional);
|
||||
|
||||
size_t wroteMissiles = 0;
|
||||
for (auto &missile : Missiles) {
|
||||
wroteMissiles += 1;
|
||||
if (wroteMissiles >= MaxMissilesForSaveGame) {
|
||||
SaveMissile(&file, missile);
|
||||
if (missileCountAdditional > 0) {
|
||||
auto it = Missiles.cbegin();
|
||||
// std::list::const_iterator doesn't provide operator+() :/ using std::advance to get past the missiles we've already saved
|
||||
std::advance(it, MaxMissilesForSaveGame);
|
||||
for (; it != Missiles.cend(); it++) {
|
||||
SaveMissile(&file, *it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1566,8 +1567,8 @@ void LoadAdditionalMissiles()
|
|||
// unknown version
|
||||
return;
|
||||
}
|
||||
uint32_t missileCountAdditional = file.NextLE<uint32_t>();
|
||||
for (int i = 0; i < missileCountAdditional; i++) {
|
||||
auto missileCountAdditional = file.NextLE<uint32_t>();
|
||||
for (uint32_t i = 0U; i < missileCountAdditional; i++) {
|
||||
LoadMissile(&file);
|
||||
}
|
||||
}
|
||||
|
|
@ -1860,8 +1861,6 @@ void LoadGame(bool firstflag)
|
|||
monstkill = file.NextBE<int32_t>();
|
||||
|
||||
if (leveltype != DTYPE_TOWN) {
|
||||
int8_t tmpActiveMissiles[MaxMissilesForSaveGame];
|
||||
|
||||
for (int &monsterId : ActiveMonsters)
|
||||
monsterId = file.NextBE<int32_t>();
|
||||
for (int i = 0; i < ActiveMonsterCount; i++)
|
||||
|
|
@ -1968,7 +1967,7 @@ void LoadGame(bool firstflag)
|
|||
ProcessVisionList();
|
||||
// convert stray manashield missiles into pManaShield flag
|
||||
for (auto &missile : Missiles) {
|
||||
if (missile._mitype == MIS_MANASHIELD && missile._miDelFlag == false) {
|
||||
if (missile._mitype == MIS_MANASHIELD && !missile._miDelFlag) {
|
||||
Players[missile._misource].pManaShield = true;
|
||||
missile._miDelFlag = true;
|
||||
}
|
||||
|
|
@ -2037,7 +2036,10 @@ void SaveGameData()
|
|||
file.WriteLE<uint8_t>(chrflag ? 1 : 0);
|
||||
file.WriteBE<int32_t>(ActiveMonsterCount);
|
||||
file.WriteBE<int32_t>(ActiveItemCount);
|
||||
file.WriteBE<int32_t>(std::min(Missiles.size(), MaxMissilesForSaveGame));
|
||||
// ActiveMissileCount will be a value from 0-125 (for vanilla compatibility). Writing an unsigned value here to avoid
|
||||
// warnings about casting from unsigned to signed, but there's no sign extension issues when reading this as a signed
|
||||
// value later so it doesn't have to match in LoadGameData().
|
||||
file.WriteBE<uint32_t>(static_cast<uint32_t>(std::min(Missiles.size(), MaxMissilesForSaveGame)));
|
||||
file.WriteBE<int32_t>(ActiveObjectCount);
|
||||
|
||||
for (uint8_t i = 0; i < giNumberOfLevels; i++) {
|
||||
|
|
@ -2066,15 +2068,16 @@ void SaveGameData()
|
|||
file.WriteLE<int8_t>(activeMissile);
|
||||
// Write AvailableMissiles
|
||||
for (size_t avaiableMissile = Missiles.size(); avaiableMissile < MaxMissilesForSaveGame; avaiableMissile++)
|
||||
file.WriteLE<int8_t>(avaiableMissile);
|
||||
file.Skip<int8_t>(std::min(Missiles.size(), MaxMissilesForSaveGame));
|
||||
file.WriteLE<int8_t>(static_cast<int8_t>(avaiableMissile));
|
||||
const size_t savedMissiles = std::min(Missiles.size(), MaxMissilesForSaveGame);
|
||||
file.Skip<int8_t>(savedMissiles);
|
||||
// Write Missile Data
|
||||
size_t wroteMissiles = 0;
|
||||
for (auto &missile : Missiles) {
|
||||
SaveMissile(&file, missile);
|
||||
wroteMissiles += 1;
|
||||
if (wroteMissiles == MaxMissilesForSaveGame)
|
||||
break;
|
||||
{
|
||||
auto missilesEnd = Missiles.cbegin();
|
||||
std::advance(missilesEnd, savedMissiles);
|
||||
for (auto it = Missiles.cbegin(); it != missilesEnd; it++) {
|
||||
SaveMissile(&file, *it);
|
||||
}
|
||||
}
|
||||
for (int objectId : ActiveObjects)
|
||||
file.WriteLE<int8_t>(objectId);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue