|
|
|
|
/**
|
|
|
|
|
* @file objdat.h
|
|
|
|
|
*
|
|
|
|
|
* Interface of all object data.
|
|
|
|
|
*/
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
namespace devilution {
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
typedef enum object_graphic_id {
|
|
|
|
|
OFILE_L1BRAZ,
|
|
|
|
|
OFILE_L1DOORS,
|
|
|
|
|
OFILE_LEVER,
|
|
|
|
|
OFILE_CHEST1,
|
|
|
|
|
OFILE_CHEST2,
|
|
|
|
|
OFILE_BANNER,
|
|
|
|
|
OFILE_SKULPILE,
|
|
|
|
|
OFILE_SKULFIRE,
|
|
|
|
|
OFILE_SKULSTIK,
|
|
|
|
|
OFILE_CRUXSK1,
|
|
|
|
|
OFILE_CRUXSK2,
|
|
|
|
|
OFILE_CRUXSK3,
|
|
|
|
|
OFILE_BOOK1,
|
|
|
|
|
OFILE_BOOK2,
|
|
|
|
|
OFILE_ROCKSTAN,
|
|
|
|
|
OFILE_ANGEL,
|
|
|
|
|
OFILE_CHEST3,
|
|
|
|
|
OFILE_BURNCROS,
|
|
|
|
|
OFILE_CANDLE2,
|
|
|
|
|
OFILE_NUDE2,
|
|
|
|
|
OFILE_SWITCH4,
|
|
|
|
|
OFILE_TNUDEM,
|
|
|
|
|
OFILE_TNUDEW,
|
|
|
|
|
OFILE_TSOUL,
|
|
|
|
|
OFILE_L2DOORS,
|
|
|
|
|
OFILE_WTORCH4,
|
|
|
|
|
OFILE_WTORCH3,
|
|
|
|
|
OFILE_SARC,
|
|
|
|
|
OFILE_FLAME1,
|
|
|
|
|
OFILE_PRSRPLT1,
|
|
|
|
|
OFILE_TRAPHOLE,
|
|
|
|
|
OFILE_MINIWATR,
|
|
|
|
|
OFILE_WTORCH2,
|
|
|
|
|
OFILE_WTORCH1,
|
|
|
|
|
OFILE_BCASE,
|
|
|
|
|
OFILE_BSHELF,
|
|
|
|
|
OFILE_WEAPSTND,
|
|
|
|
|
OFILE_BARREL,
|
|
|
|
|
OFILE_BARRELEX,
|
|
|
|
|
OFILE_LSHRINEG,
|
|
|
|
|
OFILE_RSHRINEG,
|
|
|
|
|
OFILE_BLOODFNT,
|
|
|
|
|
OFILE_DECAP,
|
|
|
|
|
OFILE_PEDISTL,
|
|
|
|
|
OFILE_L3DOORS,
|
|
|
|
|
OFILE_PFOUNTN,
|
|
|
|
|
OFILE_ARMSTAND,
|
|
|
|
|
OFILE_GOATSHRN,
|
|
|
|
|
OFILE_CAULDREN,
|
|
|
|
|
OFILE_MFOUNTN,
|
|
|
|
|
OFILE_TFOUNTN,
|
|
|
|
|
OFILE_ALTBOY,
|
|
|
|
|
OFILE_MCIRL,
|
|
|
|
|
OFILE_BKSLBRNT,
|
|
|
|
|
OFILE_MUSHPTCH,
|
|
|
|
|
OFILE_LZSTAND,
|
|
|
|
|
OFILE_NULL = -1,
|
|
|
|
|
} object_graphic_id;
|
|
|
|
|
|
|
|
|
|
typedef enum _object_id {
|
|
|
|
|
OBJ_L1LIGHT,
|
|
|
|
|
OBJ_L1LDOOR,
|
|
|
|
|
OBJ_L1RDOOR,
|
|
|
|
|
OBJ_SKFIRE,
|
|
|
|
|
OBJ_LEVER,
|
|
|
|
|
OBJ_CHEST1,
|
|
|
|
|
OBJ_CHEST2,
|
|
|
|
|
OBJ_CHEST3,
|
|
|
|
|
OBJ_CANDLE1,
|
|
|
|
|
OBJ_CANDLE2,
|
|
|
|
|
OBJ_CANDLEO,
|
|
|
|
|
OBJ_BANNERL,
|
|
|
|
|
OBJ_BANNERM,
|
|
|
|
|
OBJ_BANNERR,
|
|
|
|
|
OBJ_SKPILE,
|
|
|
|
|
OBJ_SKSTICK1,
|
|
|
|
|
OBJ_SKSTICK2,
|
|
|
|
|
OBJ_SKSTICK3,
|
|
|
|
|
OBJ_SKSTICK4,
|
|
|
|
|
OBJ_SKSTICK5,
|
|
|
|
|
OBJ_CRUX1,
|
|
|
|
|
OBJ_CRUX2,
|
|
|
|
|
OBJ_CRUX3,
|
|
|
|
|
OBJ_STAND,
|
|
|
|
|
OBJ_ANGEL,
|
|
|
|
|
OBJ_BOOK2L,
|
|
|
|
|
OBJ_BCROSS,
|
|
|
|
|
OBJ_NUDEW2R,
|
|
|
|
|
OBJ_SWITCHSKL,
|
|
|
|
|
OBJ_TNUDEM1,
|
|
|
|
|
OBJ_TNUDEM2,
|
|
|
|
|
OBJ_TNUDEM3,
|
|
|
|
|
OBJ_TNUDEM4,
|
|
|
|
|
OBJ_TNUDEW1,
|
|
|
|
|
OBJ_TNUDEW2,
|
|
|
|
|
OBJ_TNUDEW3,
|
|
|
|
|
OBJ_TORTURE1,
|
|
|
|
|
OBJ_TORTURE2,
|
|
|
|
|
OBJ_TORTURE3,
|
|
|
|
|
OBJ_TORTURE4,
|
|
|
|
|
OBJ_TORTURE5,
|
|
|
|
|
OBJ_BOOK2R,
|
|
|
|
|
OBJ_L2LDOOR,
|
|
|
|
|
OBJ_L2RDOOR,
|
|
|
|
|
OBJ_TORCHL,
|
|
|
|
|
OBJ_TORCHR,
|
|
|
|
|
OBJ_TORCHL2,
|
|
|
|
|
OBJ_TORCHR2,
|
|
|
|
|
OBJ_SARC,
|
|
|
|
|
OBJ_FLAMEHOLE,
|
|
|
|
|
OBJ_FLAMELVR,
|
|
|
|
|
OBJ_WATER,
|
|
|
|
|
OBJ_BOOKLVR,
|
|
|
|
|
OBJ_TRAPL,
|
|
|
|
|
OBJ_TRAPR,
|
|
|
|
|
OBJ_BOOKSHELF,
|
|
|
|
|
OBJ_WEAPRACK,
|
|
|
|
|
OBJ_BARREL,
|
|
|
|
|
OBJ_BARRELEX,
|
|
|
|
|
OBJ_SHRINEL,
|
|
|
|
|
OBJ_SHRINER,
|
|
|
|
|
OBJ_SKELBOOK,
|
|
|
|
|
OBJ_BOOKCASEL,
|
|
|
|
|
OBJ_BOOKCASER,
|
|
|
|
|
OBJ_BOOKSTAND,
|
|
|
|
|
OBJ_BOOKCANDLE,
|
|
|
|
|
OBJ_BLOODFTN,
|
|
|
|
|
OBJ_DECAP,
|
|
|
|
|
OBJ_TCHEST1,
|
|
|
|
|
OBJ_TCHEST2,
|
|
|
|
|
OBJ_TCHEST3,
|
|
|
|
|
OBJ_BLINDBOOK,
|
|
|
|
|
OBJ_BLOODBOOK,
|
|
|
|
|
OBJ_PEDISTAL,
|
|
|
|
|
OBJ_L3LDOOR,
|
|
|
|
|
OBJ_L3RDOOR,
|
|
|
|
|
OBJ_PURIFYINGFTN,
|
|
|
|
|
OBJ_ARMORSTAND,
|
|
|
|
|
OBJ_ARMORSTANDN,
|
|
|
|
|
OBJ_GOATSHRINE,
|
|
|
|
|
OBJ_CAULDRON,
|
|
|
|
|
OBJ_MURKYFTN,
|
|
|
|
|
OBJ_TEARFTN,
|
|
|
|
|
OBJ_ALTBOY,
|
|
|
|
|
OBJ_MCIRCLE1,
|
|
|
|
|
OBJ_MCIRCLE2,
|
|
|
|
|
OBJ_STORYBOOK,
|
|
|
|
|
OBJ_STORYCANDLE,
|
|
|
|
|
OBJ_STEELTOME,
|
|
|
|
|
OBJ_WARARMOR,
|
|
|
|
|
OBJ_WARWEAP,
|
|
|
|
|
OBJ_TBCROSS,
|
|
|
|
|
OBJ_WEAPONRACK,
|
|
|
|
|
OBJ_WEAPONRACKN,
|
|
|
|
|
OBJ_MUSHPATCH,
|
|
|
|
|
OBJ_LAZSTAND,
|
|
|
|
|
OBJ_SLAINHERO,
|
|
|
|
|
OBJ_SIGNCHEST,
|
|
|
|
|
OBJ_BOOKSHELFR,
|
|
|
|
|
OBJ_NULL = -1,
|
|
|
|
|
} _object_id;
|
|
|
|
|
|
|
|
|
|
typedef struct ObjDataStruct {
|
|
|
|
|
Sint8 oload; // Todo create enum
|
|
|
|
|
object_graphic_id ofindex;
|
|
|
|
|
Sint8 ominlvl;
|
|
|
|
|
Sint8 omaxlvl;
|
|
|
|
|
dungeon_type olvltype;
|
|
|
|
|
theme_id otheme;
|
|
|
|
|
quest_id oquest;
|
|
|
|
|
Sint32 oAnimFlag; // TODO Create enum
|
|
|
|
|
Sint32 oAnimDelay; // Tick length of each frame in the current animation
|
|
|
|
|
Sint32 oAnimLen; // Number of frames in current animation
|
|
|
|
|
Sint32 oAnimWidth;
|
|
|
|
|
bool oSolidFlag;
|
|
|
|
|
bool oMissFlag;
|
|
|
|
|
bool oLightFlag;
|
|
|
|
|
Sint8 oBreak; // TODO Create enum
|
|
|
|
|
Sint8 oSelFlag; // TODO Create enum
|
|
|
|
|
bool oTrapFlag;
|
|
|
|
|
} ObjDataStruct;
|
|
|
|
|
|
|
|
|
|
extern const _object_id ObjTypeConv[];
|
|
|
|
|
extern const ObjDataStruct AllObjects[];
|
|
|
|
|
extern const char *const ObjMasterLoadList[];
|
|
|
|
|
extern const char *ObjCryptLoadList[];
|
|
|
|
|
extern const char *ObjHiveLoadList[];
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
}
|