Browse Source

Make _oAnimFlag a boolean

pull/4750/merge
Anders Jenbo 4 years ago
parent
commit
0d27761ac2
  1. 4
      Source/loadsave.cpp
  2. 220
      Source/objdat.cpp
  3. 2
      Source/objdat.h
  4. 32
      Source/objects.cpp

4
Source/loadsave.cpp

@ -780,7 +780,7 @@ void LoadObject(LoadHelper &file, Object &object)
object.position.x = file.NextLE<int32_t>();
object.position.y = file.NextLE<int32_t>();
object._oLight = file.NextBool32();
object._oAnimFlag = file.NextLE<uint32_t>();
object._oAnimFlag = file.NextBool32();
file.Skip(4); // Skip pointer _oAnimData
object._oAnimDelay = file.NextLE<int32_t>();
object._oAnimCnt = file.NextLE<int32_t>();
@ -1482,7 +1482,7 @@ void SaveObject(SaveHelper &file, const Object &object)
file.WriteLE<int32_t>(object.position.x);
file.WriteLE<int32_t>(object.position.y);
file.WriteLE<uint32_t>(object._oLight ? 1 : 0);
file.WriteLE<uint32_t>(object._oAnimFlag);
file.WriteLE<uint32_t>(object._oAnimFlag ? 1 : 0);
file.Skip(4); // Skip pointer _oAnimData
file.WriteLE<int32_t>(object._oAnimDelay);
file.WriteLE<int32_t>(object._oAnimCnt);

220
Source/objdat.cpp

@ -161,116 +161,116 @@ const _object_id ObjTypeConv[] = {
/** Contains the data related to each object ID. */
const ObjectData AllObjects[109] = {
// clang-format off
// ofindex, ominlvl, omaxlvl, olvltype, otheme, oquest, oAnimFlag, oAnimDelay, oAnimLen, oAnimWidth, oSolidFlag, oMissFlag, oLightFlag, oBreak, oSelFlag, oTrapFlag
{ OFILE_L1BRAZ, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 1, 1, 26, 64, true, true, false, 0, 0, false },
{ OFILE_L1DOORS, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L1DOORS, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_SKULFIRE, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, 1, 2, 11, 96, true, true, false, 0, 0, false },
{ OFILE_LEVER, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 1, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST1, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST2, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST3, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_PWATER, 1, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, 0, 2, 0, 96, true, true, true, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, 0, 3, 0, 96, true, true, true, 0, 0, false },
{ OFILE_SKULPILE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 1, 96, true, true, true, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_CRUXSK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_CRUXSK2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_CRUXSK3, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_ROCKSTAN, 5, 5, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 0, false },
{ OFILE_ANGEL, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BURNCROS, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 0, 10, 160, true, false, false, 0, 0, false },
{ OFILE_NUDE2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 3, 6, 128, true, false, true, 0, 0, false },
{ OFILE_SWITCH4, 16, 16, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 4, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 1, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 2, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 3, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 4, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 5, 0, 128, false, true, true, 0, 0, false },
{ OFILE_BOOK2, 6, 6, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L2DOORS, 0, 0, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L2DOORS, 0, 0, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_WTORCH4, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH3, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH1, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH2, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_SARC, 1, 4, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 5, 128, true, true, true, 0, 3, true },
{ OFILE_FLAME1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 20, 96, false, true, true, 0, 0, false },
{ OFILE_LEVER, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 2, 96, true, true, true, 0, 1, true },
{ OFILE_MINIWATR, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 1, 10, 64, true, false, true, 0, 0, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_TRAPHOLE, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, true, true, 0, 0, false },
{ OFILE_TRAPHOLE, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, true, true, 0, 0, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_BARREL, 1, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_BARRELEX, 1, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_LSHRINEG, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_INVALID, 0, 1, 11, 128, false, false, true, 0, 3, false },
{ OFILE_RSHRINEG, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_INVALID, 0, 1, 11, 128, false, false, true, 0, 3, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, 0, 3, 0, 96, false, false, true, 0, 3, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, 0, 4, 0, 96, false, false, true, 0, 3, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, 1, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_BLOODFNT, 0, 0, DTYPE_NONE, THEME_BLOODFOUNTAIN, Q_INVALID, 1, 2, 10, 96, true, true, true, 0, 3, false },
{ OFILE_DECAP, 13, 15, DTYPE_NONE, THEME_DECAPITATED, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, false },
{ OFILE_CHEST1, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST2, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST3, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLIND, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLOOD, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_PEDISTL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLOOD, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L3DOORS, 0, 0, DTYPE_CAVES, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L3DOORS, 0, 0, DTYPE_CAVES, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_PFOUNTN, 0, 0, DTYPE_NONE, THEME_PURIFYINGFOUNTAIN, Q_INVALID, 1, 2, 10, 128, true, true, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_ARMORSTAND, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_ARMORSTAND, Q_INVALID, 0, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_GOATSHRN, 0, 0, DTYPE_NONE, THEME_GOATSHRINE, Q_INVALID, 1, 2, 10, 96, true, true, true, 0, 3, false },
{ OFILE_CAULDREN, 13, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_MFOUNTN, 0, 0, DTYPE_NONE, THEME_MURKYFOUNTAIN, Q_INVALID, 1, 2, 10, 128, true, true, true, 0, 3, false },
{ OFILE_TFOUNTN, 0, 0, DTYPE_NONE, THEME_TEARFOUNTAIN, Q_INVALID, 1, 2, 4, 128, true, true, true, 0, 3, false },
{ OFILE_ALTBOY, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 0, 1, 0, 128, true, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 0, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 0, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_BKSLBRNT, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 1, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, 0, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, 0, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_BURNCROS, 0, 0, DTYPE_NONE, THEME_BRNCROSS, Q_INVALID, 1, 0, 10, 160, true, false, false, 0, 0, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_WEAPONRACK, Q_INVALID, 0, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_WEAPONRACK, Q_INVALID, 0, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_MUSHPTCH, 0, 0, DTYPE_NONE, THEME_NONE, Q_MUSHROOM, 0, 1, 0, 96, true, true, true, 0, 3, true },
{ OFILE_LZSTAND, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 0, 1, 0, 128, true, false, true, 0, 3, false },
{ OFILE_DECAP, 9, 9, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 2, 0, 96, true, true, true, 0, 1, false },
{ OFILE_CHEST3, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_POD, 17, 20, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_PODEX, 17, 20, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_URN, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_URNEX, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_L5BOOKS, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L5CANDLE, 21, 23, DTYPE_NONE, THEME_NONE, Q_INVALID, 1, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_L5DOORS, 0, 0, DTYPE_CRYPT, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5DOORS, 0, 0, DTYPE_CRYPT, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5LEVER, 24, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 1, 96, true, true, true, 0, 1, true },
{ OFILE_L5SARC, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 5, 128, true, true, true, 0, 3, true },
// ofindex, ominlvl, omaxlvl, olvltype, otheme, oquest, oAnimFlag, oAnimDelay, oAnimLen, oAnimWidth, oSolidFlag, oMissFlag, oLightFlag, oBreak, oSelFlag, oTrapFlag
{ OFILE_L1BRAZ, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, true, 1, 26, 64, true, true, false, 0, 0, false },
{ OFILE_L1DOORS, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, false, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L1DOORS, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, false, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_SKULFIRE, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, true, 2, 11, 96, true, true, false, 0, 0, false },
{ OFILE_LEVER, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 1, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST1, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST2, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST3, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_PWATER, true, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, false, 2, 0, 96, true, true, true, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 0, false },
{ OFILE_BANNER, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, false, 3, 0, 96, true, true, true, 0, 0, false },
{ OFILE_SKULPILE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 1, 96, true, true, true, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_L1BRAZ, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 0, 0, 0, false, false, false, 0, 0, false },
{ OFILE_CRUXSK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_CRUXSK2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_CRUXSK3, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 15, 96, true, false, true, 1, 3, false },
{ OFILE_ROCKSTAN, 5, 5, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 0, false },
{ OFILE_ANGEL, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BURNCROS, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 0, 10, 160, true, false, false, 0, 0, false },
{ OFILE_NUDE2, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 3, 6, 128, true, false, true, 0, 0, false },
{ OFILE_SWITCH4, 16, 16, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 4, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 15, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, false, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 1, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 2, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 3, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 4, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 15, DTYPE_NONE, THEME_NONE, Q_BUTCHER, false, 5, 0, 128, false, true, true, 0, 0, false },
{ OFILE_BOOK2, 6, 6, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L2DOORS, 0, 0, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, false, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L2DOORS, 0, 0, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, false, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_WTORCH4, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH3, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH1, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH2, 5, 8, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_SARC, 1, 4, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 5, 128, true, true, true, 0, 3, true },
{ OFILE_FLAME1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 20, 96, false, true, true, 0, 0, false },
{ OFILE_LEVER, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 2, 96, true, true, true, 0, 1, true },
{ OFILE_MINIWATR, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 1, 10, 64, true, false, true, 0, 0, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_TRAPHOLE, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 64, false, true, true, 0, 0, false },
{ OFILE_TRAPHOLE, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 2, 0, 64, false, true, true, 0, 0, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 0, false },
{ OFILE_BARREL, 1, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_BARRELEX, 1, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_LSHRINEG, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_INVALID, false, 1, 11, 128, false, false, true, 0, 3, false },
{ OFILE_RSHRINEG, 0, 0, DTYPE_NONE, THEME_SHRINE, Q_INVALID, false, 1, 11, 128, false, false, true, 0, 3, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_SKELROOM, Q_INVALID, false, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, false, 3, 0, 96, false, false, true, 0, 3, false },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, false, 4, 0, 96, false, false, true, 0, 3, false },
{ OFILE_BOOK2, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_LIBRARY, Q_INVALID, true, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_BLOODFNT, 0, 0, DTYPE_NONE, THEME_BLOODFOUNTAIN, Q_INVALID, true, 2, 10, 96, true, true, true, 0, 3, false },
{ OFILE_DECAP, 13, 15, DTYPE_NONE, THEME_DECAPITATED, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, false },
{ OFILE_CHEST1, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST2, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_CHEST3, 1, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLIND, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLOOD, false, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_PEDISTL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BLOOD, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L3DOORS, 0, 0, DTYPE_CAVES, THEME_NONE, Q_INVALID, false, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L3DOORS, 0, 0, DTYPE_CAVES, THEME_NONE, Q_INVALID, false, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_PFOUNTN, 0, 0, DTYPE_NONE, THEME_PURIFYINGFOUNTAIN, Q_INVALID, true, 2, 10, 128, true, true, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_ARMORSTAND, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_ARMORSTAND, Q_INVALID, false, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_GOATSHRN, 0, 0, DTYPE_NONE, THEME_GOATSHRINE, Q_INVALID, true, 2, 10, 96, true, true, true, 0, 3, false },
{ OFILE_CAULDREN, 13, 15, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_MFOUNTN, 0, 0, DTYPE_NONE, THEME_MURKYFOUNTAIN, Q_INVALID, true, 2, 10, 128, true, true, true, 0, 3, false },
{ OFILE_TFOUNTN, 0, 0, DTYPE_NONE, THEME_TEARFOUNTAIN, Q_INVALID, true, 2, 4, 128, true, true, true, 0, 3, false },
{ OFILE_ALTBOY, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, false, 1, 0, 128, true, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, false, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, false, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_BKSLBRNT, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_CANDLE2, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, true, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_BOOK1, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, false, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_ARMSTAND, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, false, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_NONE, Q_WARLORD, false, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_BURNCROS, 0, 0, DTYPE_NONE, THEME_BRNCROSS, Q_INVALID, true, 0, 10, 160, true, false, false, 0, 0, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_WEAPONRACK, Q_INVALID, false, 1, 0, 96, true, false, true, 0, 3, false },
{ OFILE_WEAPSTND, 0, 0, DTYPE_NONE, THEME_WEAPONRACK, Q_INVALID, false, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_MUSHPTCH, 0, 0, DTYPE_NONE, THEME_NONE, Q_MUSHROOM, false, 1, 0, 96, true, true, true, 0, 3, true },
{ OFILE_LZSTAND, 0, 0, DTYPE_NONE, THEME_NONE, Q_BETRAYER, false, 1, 0, 128, true, false, true, 0, 3, false },
{ OFILE_DECAP, 9, 9, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 2, 0, 96, true, true, true, 0, 1, false },
{ OFILE_CHEST3, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 1, true },
{ OFILE_BCASE, 0, 0, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 2, 0, 96, true, false, true, 0, 0, false },
{ OFILE_POD, 17, 20, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_PODEX, 17, 20, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_URN, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_URNEX, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 10, 96, true, true, true, 1, 3, false },
{ OFILE_L5BOOKS, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L5CANDLE, 21, 23, DTYPE_NONE, THEME_NONE, Q_INVALID, true, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_L5DOORS, 0, 0, DTYPE_CRYPT, THEME_NONE, Q_INVALID, false, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5DOORS, 0, 0, DTYPE_CRYPT, THEME_NONE, Q_INVALID, false, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5LEVER, 24, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 1, 96, true, true, true, 0, 1, true },
{ OFILE_L5SARC, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, false, 1, 5, 128, true, true, true, 0, 3, true },
// clang-format on
};
/** Maps from object_graphic_id to object CEL name. */

2
Source/objdat.h

@ -249,7 +249,7 @@ struct ObjectData {
dungeon_type olvltype;
theme_id otheme;
quest_id oquest;
int oAnimFlag; // TODO Create enum
bool oAnimFlag;
int oAnimDelay; // Tick length of each frame in the current animation
int oAnimLen; // Number of frames in current animation
uint16_t oAnimWidth;

32
Source/objects.cpp

@ -771,7 +771,7 @@ void SetupObject(Object &object, Point position, _object_id ot)
object._oAnimData = pObjCels[j].get();
object._oAnimFlag = objectData.oAnimFlag;
if (object._oAnimFlag != 0) {
if (object._oAnimFlag) {
object._oAnimDelay = objectData.oAnimDelay;
object._oAnimCnt = GenerateRnd(object._oAnimDelay);
object._oAnimLen = objectData.oAnimLen;
@ -1188,7 +1188,7 @@ void AddPurifyingFountain(int i)
void AddArmorStand(int i)
{
if (!armorFlag) {
Objects[i]._oAnimFlag = 2;
Objects[i]._oAnimFlag = true;
Objects[i]._oSelFlag = 0;
}
@ -1275,7 +1275,7 @@ void AddStoryBook(int i)
void AddWeaponRack(int i)
{
if (!weaponFlag) {
Objects[i]._oAnimFlag = 2;
Objects[i]._oAnimFlag = true;
Objects[i]._oSelFlag = 0;
}
Objects[i]._oRndSeed = AdvanceRndSeed();
@ -1428,7 +1428,7 @@ void UpdateDoor(Object &door)
void UpdateSarcophagus(Object &sarcophagus)
{
if (sarcophagus._oAnimFrame == sarcophagus._oAnimLen)
sarcophagus._oAnimFlag = 0;
sarcophagus._oAnimFlag = false;
}
void ActivateTrapLine(int ttype, int tid)
@ -1437,7 +1437,7 @@ void ActivateTrapLine(int ttype, int tid)
int oi = ActiveObjects[i];
if (Objects[oi]._otype == ttype && Objects[oi]._oVar1 == tid) {
Objects[oi]._oVar4 = 1;
Objects[oi]._oAnimFlag = 1;
Objects[oi]._oAnimFlag = true;
Objects[oi]._oAnimDelay = 1;
Objects[oi]._olid = AddLight(Objects[oi].position, 1);
}
@ -2463,7 +2463,7 @@ void OperateTrapLever(Object &flameLever)
Object &target = Objects[ActiveObjects[j]];
if (target._otype == flameLever._oVar2 && target._oVar1 == flameLever._oVar1) {
target._oVar2 = 1;
target._oAnimFlag = 0;
target._oAnimFlag = false;
}
}
return;
@ -2475,7 +2475,7 @@ void OperateTrapLever(Object &flameLever)
if (target._otype == flameLever._oVar2 && target._oVar1 == flameLever._oVar1) {
target._oVar2 = 0;
if (target._oVar4 != 0) {
target._oAnimFlag = 1;
target._oAnimFlag = true;
}
}
}
@ -2489,7 +2489,7 @@ void OperateSarc(int pnum, int i, bool sendmsg)
PlaySfxLoc(IS_SARC, Objects[i].position);
Objects[i]._oSelFlag = 0;
Objects[i]._oAnimFlag = 1;
Objects[i]._oAnimFlag = true;
Objects[i]._oAnimDelay = 3;
SetRndSeed(Objects[i]._oRndSeed);
if (Objects[i]._oVar1 <= 2)
@ -3346,7 +3346,7 @@ void OperateShrine(int pnum, int i, _sfx_id sType)
Objects[i]._oSelFlag = 0;
PlaySfxLoc(sType, Objects[i].position);
Objects[i]._oAnimFlag = 1;
Objects[i]._oAnimFlag = true;
Objects[i]._oAnimDelay = 1;
switch (Objects[i]._oVar1) {
@ -3601,7 +3601,7 @@ void OperateCauldron(int pnum, int i, _sfx_id sType)
Objects[i]._oVar1 = FindValidShrine();
OperateShrine(pnum, i, sType);
Objects[i]._oAnimFrame = 3;
Objects[i]._oAnimFlag = 0;
Objects[i]._oAnimFlag = false;
force_redraw = 255;
}
@ -3884,7 +3884,7 @@ bool AreAllCruxesOfTypeBroken(int cruxType)
void BreakCrux(Object &crux)
{
crux._oAnimFlag = 1;
crux._oAnimFlag = true;
crux._oAnimFrame = 1;
crux._oAnimDelay = 1;
crux._oSolidFlag = true;
@ -3916,7 +3916,7 @@ void BreakBarrel(int pnum, Object &barrel, int dam, bool forcebreak, bool sendms
}
barrel._oVar1 = 0;
barrel._oAnimFlag = 1;
barrel._oAnimFlag = true;
barrel._oAnimFrame = 1;
barrel._oAnimDelay = 1;
barrel._oSolidFlag = false;
@ -4106,7 +4106,7 @@ void UpdateState(Object &object, int frame)
object._oSelFlag = 0;
object._oAnimFrame = frame;
object._oAnimFlag = 0;
object._oAnimFlag = false;
}
} // namespace
@ -4773,7 +4773,7 @@ void ProcessObjects()
default:
break;
}
if (object._oAnimFlag == 0)
if (!object._oAnimFlag)
continue;
object._oAnimCnt++;
@ -5274,15 +5274,13 @@ void DeltaSyncBreakObj(Object &object)
return;
object._oVar1 = 0;
object._oAnimFlag = 1;
object._oSolidFlag = false;
object._oMissFlag = true;
object._oBreak = -1;
object._oSelFlag = 0;
object._oPreFlag = true;
object._oAnimFlag = false;
object._oAnimFrame = object._oAnimLen;
object._oAnimCnt = 0;
object._oAnimDelay = 1000;
}
void SyncBreakObj(int pnum, Object &object)

Loading…
Cancel
Save