You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
2.0 KiB

/**
* @file towners.h
*
* Interface of functionality for loading and spawning towners.
*/
#ifndef __TOWNERS_H__
#define __TOWNERS_H__
DEVILUTION_BEGIN_NAMESPACE
#ifdef __cplusplus
extern "C" {
#endif
typedef struct TNQ {
Uint8 _qsttype;
Uint8 _qstmsg;
bool _qstmsgact;
} TNQ;
typedef struct TownerStruct {
int _tmode;
int _ttype;
int _tx; // Tile X-position of NPC
int _ty; // Tile Y-position of NPC
int _txoff; // Sprite X-offset (unused)
int _tyoff; // Sprite Y-offset (unused)
int _txvel; // X-velocity during movement (unused)
int _tyvel; // Y-velocity during movement (unused)
int _tdir; // Facing of NPC (unused)
Uint8 *_tAnimData;
int _tAnimDelay; // Tick length of each frame in the current animation
int _tAnimCnt; // Increases by one each game tick, counting how close we are to _pAnimDelay
int _tAnimLen; // Number of frames in current animation
int _tAnimFrame; // Current frame of animation.
int _tAnimFrameCnt;
Sint8 _tAnimOrder;
int _tAnimWidth;
int _tAnimWidth2;
int _tTenPer;
int _teflag;
int _tbtcnt;
int _tSelFlag;
bool _tMsgSaid;
TNQ qsts[MAXQUESTS];
int _tSeed;
int _tVar1;
int _tVar2;
int _tVar3;
int _tVar4;
char _tName[PLR_NAME_LEN];
Uint8 *_tNAnim[8];
int _tNFrames;
Uint8 *_tNData;
} TownerStruct;
typedef struct QuestTalkData {
int _qinfra;
int _qblkm;
int _qgarb;
int _qzhar;
int _qveil;
int _qmod;
int _qbutch;
int _qbol;
int _qblind;
int _qblood;
int _qanvil;
int _qwarlrd;
int _qking;
int _qpw;
int _qbone;
int _qvb;
int _qgrv;
int _qfarm;
int _qgirl;
int _qtrade;
int _qdefiler;
int _qnakrul;
int _qjersy;
int _qhf8;
} QuestTalkData;
extern TownerStruct towner[NUM_TOWNERS];
void InitTowners();
void FreeTownerGFX();
void ProcessTowners();
ItemStruct *PlrHasItem(int pnum, int item, int *i);
void TalkToTowner(int p, int t);
extern QuestTalkData Qtalklist[];
#ifdef __cplusplus
}
#endif
DEVILUTION_END_NAMESPACE
#endif /* __TOWNERS_H__ */