Browse Source

Only load relevant object graphics

Some object graphics where loaded despite not being used on the given
levels
pull/4564/head
Anders Jenbo 4 years ago
parent
commit
9872c7be05
  1. 88
      Source/objdat.cpp
  2. 68
      Source/objects.cpp

88
Source/objdat.cpp

@ -162,11 +162,11 @@ const _object_id ObjTypeConv[] = {
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, 1, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 1, 1, 26, 64, true, true, false, 0, 0, false },
{ OFILE_L1DOORS, 1, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L1DOORS, 1, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ 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, 1, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 1, 1, 96, true, true, true, 0, 1, true },
{ 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 },
@ -191,36 +191,36 @@ const ObjectData AllObjects[109] = {
{ 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, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEM, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 4, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 1, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 2, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TNUDEW, 13, 16, DTYPE_NONE, THEME_TORTURE, Q_BUTCHER, 0, 3, 0, 128, true, false, true, 0, 0, false },
{ OFILE_TSOUL, 13, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 1, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 2, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 3, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 4, 0, 128, false, true, true, 0, 0, false },
{ OFILE_TSOUL, 13, 16, DTYPE_NONE, THEME_NONE, Q_BUTCHER, 0, 5, 0, 128, false, true, true, 0, 0, false },
{ 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, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L2DOORS, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_WTORCH4, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH3, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH1, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_WTORCH2, 5, 8, DTYPE_CATACOMBS, THEME_NONE, Q_INVALID, 1, 1, 9, 96, false, true, false, 0, 0, false },
{ OFILE_SARC, 1, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 1, 5, 128, true, true, true, 0, 3, true },
{ 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, 3, 4, DTYPE_CATHEDRAL, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, 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, 16, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 9, 96, true, true, true, 1, 3, false },
{ OFILE_BARRELEX, 1, 16, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 10, 96, true, true, true, 1, 3, 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 },
@ -229,36 +229,36 @@ const ObjectData AllObjects[109] = {
{ 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, 16, DTYPE_NONE, THEME_DECAPITATED, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 1, 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, 7, 7, DTYPE_CATACOMBS, THEME_NONE, Q_BLIND, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_BOOK1, 5, 5, DTYPE_CATACOMBS, THEME_NONE, Q_BLOOD, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_PEDISTL, 5, 5, DTYPE_CATACOMBS, THEME_NONE, Q_BLOOD, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_L3DOORS, 9, 12, DTYPE_CAVES, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L3DOORS, 9, 12, DTYPE_CAVES, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, 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, 16, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, false, 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_CATHEDRAL, THEME_NONE, Q_BETRAYER, 0, 1, 0, 128, true, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_BETRAYER, 0, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_MCIRL, 0, 0, DTYPE_CATHEDRAL, THEME_NONE, Q_BETRAYER, 0, 1, 0, 96, false, true, true, 0, 0, false },
{ OFILE_BKSLBRNT, 1, 12, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 0, 96, true, true, true, 0, 3, false },
{ OFILE_CANDLE2, 1, 12, DTYPE_NONE, THEME_NONE, Q_BETRAYER, 1, 2, 4, 96, true, true, true, 0, 0, false },
{ OFILE_BOOK1, 13, 13, DTYPE_HELL, THEME_NONE, Q_WARLORD, 0, 4, 0, 96, true, true, true, 0, 3, false },
{ OFILE_ARMSTAND, 13, 13, DTYPE_NONE, THEME_NONE, Q_WARLORD, 0, 1, 0, 96, true, false, 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_CAVES, THEME_NONE, Q_INVALID, 0, 2, 0, 96, true, true, true, 0, 1, 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 },
@ -267,9 +267,9 @@ const ObjectData AllObjects[109] = {
{ 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, 21, 24, DTYPE_CRYPT, THEME_NONE, Q_INVALID, 0, 1, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5DOORS, 21, 24, DTYPE_CRYPT, THEME_NONE, Q_INVALID, 0, 2, 0, 64, false, false, true, 0, 3, true },
{ OFILE_L5LEVER, 21, 24, DTYPE_NONE, THEME_NONE, Q_INVALID, 0, 1, 1, 96, true, true, true, 0, 1, true },
{ 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 },
// clang-format on
};

68
Source/objects.cpp

@ -4511,25 +4511,12 @@ bool IsItemBlockingObjectAtPosition(Point position)
return false;
}
void InitObjectGFX()
void LoadLevelObjects(bool filesLoaded[65])
{
bool filesLoaded[65] = {};
for (const ObjectData objectData : AllObjects) {
if (objectData.ominlvl != 0 && currlevel >= objectData.ominlvl && currlevel <= objectData.omaxlvl) {
if (leveltype == objectData.olvltype) {
filesLoaded[objectData.ofindex] = true;
}
if (objectData.otheme != THEME_NONE) {
for (int j = 0; j < numthemes; j++) {
if (themes[j].ttype == objectData.otheme)
filesLoaded[objectData.ofindex] = true;
}
}
if (objectData.oquest != Q_INVALID) {
if (Quests[objectData.oquest].IsAvailable())
filesLoaded[objectData.ofindex] = true;
}
}
for (int i = OFILE_L1BRAZ; i <= OFILE_L5BOOKS; i++) {
@ -4545,6 +4532,39 @@ void InitObjectGFX()
}
}
void InitObjectGFX()
{
bool filesLoaded[65] = {};
if (IsAnyOf(currlevel, 4, 8, 12)) {
filesLoaded[OFILE_BKSLBRNT] = true;
filesLoaded[OFILE_CANDLE2] = true;
}
for (const ObjectData objectData : AllObjects) {
if (objectData.ominlvl != 0 && currlevel >= objectData.ominlvl && currlevel <= objectData.omaxlvl) {
if (IsAnyOf(objectData.ofindex, OFILE_TRAPHOLE, OFILE_TRAPHOLE) && leveltype == DTYPE_HELL) {
continue;
}
filesLoaded[objectData.ofindex] = true;
}
if (objectData.otheme != THEME_NONE) {
for (int j = 0; j < numthemes; j++) {
if (themes[j].ttype == objectData.otheme) {
filesLoaded[objectData.ofindex] = true;
}
}
}
if (objectData.oquest != Q_INVALID && Quests[objectData.oquest].IsAvailable()) {
filesLoaded[objectData.ofindex] = true;
}
}
LoadLevelObjects(filesLoaded);
}
void FreeObjectGFX()
{
for (int i = 0; i < numobjfiles; i++) {
@ -4764,12 +4784,6 @@ void SetMapObjects(const uint16_t *dunData, int startx, int starty)
ClrAllObjects();
ApplyObjectLighting = true;
for (const ObjectData objectData : AllObjects) {
if (leveltype == objectData.olvltype) {
filesLoaded[objectData.ofindex] = true;
}
}
int width = SDL_SwapLE16(dunData[0]);
int height = SDL_SwapLE16(dunData[1]);
@ -4790,17 +4804,7 @@ void SetMapObjects(const uint16_t *dunData, int startx, int starty)
}
}
for (int i = OFILE_L1BRAZ; i <= OFILE_L5BOOKS; i++) {
if (!filesLoaded[i]) {
continue;
}
ObjFileList[numobjfiles] = static_cast<object_graphic_id>(i);
char filestr[32];
sprintf(filestr, "Objects\\%s.CEL", ObjMasterLoadList[i]);
pObjCels[numobjfiles] = LoadFileInMem(filestr);
numobjfiles++;
}
LoadLevelObjects(filesLoaded);
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {

Loading…
Cancel
Save