diff --git a/source/games/duke/src/savegame.cpp b/source/games/duke/src/savegame.cpp index 9f803d758..cbdf5130d 100644 --- a/source/games/duke/src/savegame.cpp +++ b/source/games/duke/src/savegame.cpp @@ -42,10 +42,10 @@ extern FixedBitArray activeSprites; template<> FSerializer& Serialize(FSerializer& arc, const char* key, Duke3d::weaponhit*& ht, Duke3d::weaponhit** def) { - size_t index = ht - Duke3d::hittype; - assert(index < MAXSPRITES); + ptrdiff_t index = ht? ht - Duke3d::hittype : -1; + assert(index >= -1 && index < MAXSPRITES); Serialize(arc, key, index, nullptr); - ht = &Duke3d::hittype[index]; + ht = index < 0? nullptr : &Duke3d::hittype[index]; return arc; }