nexus/lf.h

575 lines
29 KiB
C

#include "defs.h"
//void add_subjob_alignment_restrictions(flagpile_t *fp, enum SUBJOB sj);
void addbodypart(race_t *r, enum BODYPART bp, char *name);
lifeform_t *addlf(cell_t *cell, enum RACE rid, int level);
lifeform_t *real_addlf(cell_t *cell, enum RACE rid, int level, int controller);
poisontype_t *addpoisontype(enum POISONTYPE id, char *name, char *desc, char *contracttext, char *damverb, enum OBTYPE vomitob, int dam, int dampct, enum POISONSEVERITY severity, int incubationtime);
job_t *addjob(enum JOB id, char *name, char *desc, enum JOBCATEGORY category);
race_t *addrace(enum RACE id, char *name, float weight, int glyph, int glyphcolour, enum MATERIAL mat, enum RACECLASS raceclass, char *desc);
raceclass_t *addraceclass(enum RACECLASS id, char *name, char *pluralname, enum SKILL skill);
void addraceclassflags(flagpile_t *fp, enum RACECLASS rcid, enum RACE rid);
skill_t *addskill(enum SKILL id, char *name, char *desc, int traintime);
void addskillabil(enum SKILL id, enum SKILLLEVEL lev, enum OBTYPE abilid, int timeout, char *text, int announce);
void addskilldesc(enum SKILL id, enum SKILLLEVEL lev, char *text, int wantmsg);
//subjob_t *addsubjob(enum SUBJOB id, char *name, char *desc, char letter);
object_t *addtrail(lifeform_t *lf, cell_t *where, int dir, int doprints, int doscents);
void adjustdamlf(lifeform_t *lf, int *amt, enum DAMTYPE damtype);
void adjustmonk(lifeform_t *lf, int allowloss);
void adjustspeedforwater(lifeform_t *lf, int *speed);
void age(lifeform_t *lf, int pct);
void adjustdamforblessings(lifeform_t *attacker, int *dam, lifeform_t *victim, int blessed);
void applylfdammod(int *dam, lifeform_t *lf, object_t *wep);
void applywalkdam(lifeform_t *lf, int dam, enum DAMTYPE damtype, object_t *o, int bodypart);
void apply_wep_tr_limit(lifeform_t *lf, condset_t *cs);
int areallies(lifeform_t *lf1, lifeform_t *lf2);
int areenemies(lifeform_t *lf1, lifeform_t *lf2);
int armourfits(lifeform_t *lf, object_t *o, enum ERROR *reason);
int askforinfo(lifeform_t *lf, int diffmod);
//int askforpayment(lifeform_t *shk, lifeform_t *lf);
char *assignnpcname(flagpile_t *fp);
int attrincreasable(enum ATTRIB a);
void autolearnspellsfrombook(lifeform_t *lf, object_t *book);
void autoshortcut(lifeform_t *lf, enum OBTYPE spellid, int startslot);
void autoskill(lifeform_t *lf);
void autospells(lifeform_t *lf, int howmany);
void autotarget(lifeform_t *lf);
void autoweild(lifeform_t *lf);
int appearsrandomly(enum RACE rid);
void awardxpfor(lifeform_t *killed, float pct);
void bleed(lifeform_t *lf, int splatter);
int bleedfrom(lifeform_t *lf, enum BODYPART bp, int splatter);
int bpcantakearmour(lifeform_t *lf, enum BODYPART bp);
void breakgrabs(lifeform_t *lf, int fromme, int tome, int wantannounce);
void breakaitargets(lifeform_t *lf, int onlylowerlev);
long calcscore(lifeform_t *lf);
int calcxp(lifeform_t *lf);
int calcxprace(enum RACE rid);
void callguards(lifeform_t *caller, lifeform_t *victim);
int canattack(lifeform_t *lf);
int canbuild(lifeform_t *lf, objecttype_t *ot, char *needtext, enum OBTYPE *needob, int *numneed);
int cancast(lifeform_t *lf, enum OBTYPE oid, int *mpcost);
int cancook(lifeform_t *lf, recipe_t *rec, enum ERROR *reason);
int canclimb(lifeform_t *lf, enum ERROR *reason);
int candrink(lifeform_t *lf, object_t *o);
int caneat(lifeform_t *lf, object_t *o);
int canevade(lifeform_t *lf, lifeform_t *attacker);
int canexorcise(lifeform_t *lf, lifeform_t *target, int modifier);
int canhaverandombehaviour(lifeform_t *lf);
int canhear(lifeform_t *lf, cell_t *c, int volume, int *numwalls);
int canlearn(lifeform_t *lf, enum SKILL skid);
int canmakerecipe(lifeform_t *lf, recipe_t *rec);
int canopendoors(lifeform_t *lf);
int canoperate(lifeform_t *lf, object_t *o, enum ERROR *why);
int canpickup(lifeform_t *lf, object_t *o, int amt);
int canpolymorphto(enum RACE rid);
int canpush(lifeform_t *lf, object_t *o, int dir);
int canreach(lifeform_t *lf, lifeform_t *victim, int *reachpenalty);
int canreachbp(lifeform_t *lf, lifeform_t *victim, enum BODYPART bp);
int canreachroof(lifeform_t *lf);
int cansee(lifeform_t *viewer, lifeform_t *viewee);
int cansee_real(lifeform_t *viewer, lifeform_t *viewee, int uselos);
int canshoot(lifeform_t *lf, enum ERROR *why);
int cansleep(lifeform_t *lf);
int canstudyspell(lifeform_t *lf, enum OBTYPE spellid);
int canthrow(lifeform_t *lf, object_t *o, enum ERROR *why);
int canuseweapons(lifeform_t *lf);
int canwear(lifeform_t *lf, object_t *o, enum BODYPART where);
int canweild(lifeform_t *lf, object_t *o);
int cantakeoff(lifeform_t *lf, object_t *o, object_t **errob);
int cantalk(lifeform_t *lf);
int castspell(lifeform_t *lf, enum OBTYPE sid, lifeform_t *targlf, object_t *targob, cell_t *targcell, object_t *fromob, int *seen);
int celllitfor(lifeform_t *lf, cell_t *c, int maxvisrange, int nightvisrange);
int celltransparentfor(lifeform_t *lf, cell_t *c, int *xray, int *rangemod);
int charmedaction(lifeform_t *lf, flag_t *charmflag);
int checkburdened(lifeform_t *lf, int preburdened);
int checkfordrowning(lifeform_t *lf, object_t *o);
int check_rest_ok(lifeform_t *lf);
//void checkxp(enum RACE rid);
lifeform_t *clonelf(lifeform_t *src, cell_t *where);
float comparelfs(lifeform_t *lf1, lifeform_t *lf2);
void completeincubation(lifeform_t *lf, flag_t *incubateflag);
int confuse(lifeform_t *lf, int howlong);
void copycorpseflags(flagpile_t *dst, flagpile_t *src);
int continuedigging(lifeform_t *lf);
int continuerepairing(lifeform_t *lf, flag_t *repairflag);
int countinnateattacks(lifeform_t *lf);
int countlegs(lifeform_t *lf);
int countmonsters(void);
int countnearbyallies(lifeform_t *lf);
int countnearbyhurtallies(lifeform_t *lf);
int countplantsinsight(lifeform_t *lf);
void debug(lifeform_t *lf);
int demandbribe(lifeform_t *lf);
void die(lifeform_t *lf);
int digcell(lifeform_t *lf, cell_t *c, object_t *o, int dismantle);
int digdown(lifeform_t *lf, object_t *o);
int digup(lifeform_t *lf, object_t *o);
//void do_eyesight_adjust(lifeform_t *lf);
void dumplev(void);
void dumplf(void);
void dumpmonsters(enum HABITAT hab);
void dumpxp(void);
int eat(lifeform_t *lf, object_t *o);
void endlfturn(lifeform_t *lf);
void enhancerandomskill(lifeform_t *lf);
void enhanceskills(lifeform_t *lf);
int enrage(lifeform_t *lf, int howlong);
int exchangeweapon(lifeform_t *lf);
void extinguishlf(lifeform_t *lf);
object_t *eyesshaded(lifeform_t *lf);
object_t *facecovered(lifeform_t *lf);
int fall(lifeform_t *lf, lifeform_t *fromlf, int announce);
int fallasleep(lifeform_t *lf, enum SLEEPTYPE how, int howlong);
int fall_from_air(lifeform_t *lf);
int real_fall_from_air(lifeform_t *lf, enum LFSIZE leqsize);
void fightback(lifeform_t *lf, lifeform_t *attacker);
behaviour_t *findbehaviour(enum BEHAVIOUR bid);
job_t *findjob(enum JOB jobid);
job_t *findjobbyname(char *name);
lifeform_t *findlf(map_t *m, int lfid);
lifeform_t *findlfunique(enum RACE rid);
cell_t *findnearbylifeob(cell_t *src, int maxdist, flag_t *lifeobflag, object_t **retlifeob);
poisontype_t *findpoisontype(enum POISONTYPE id);
race_t *findrace(enum RACE id);
race_t *findracebyname(char *name, condset_t *cs);
raceclass_t *findraceclass(enum RACECLASS id);
//lifeform_t *findshopkeeper(map_t *m, int roomid);
skill_t *findskill(enum SKILL id);
skill_t *findskillbyname(char *name);
enum SKILLLEVEL findskilllevbyname(char *name);
//subjob_t *findsubjob(enum SUBJOB sjid);
//subjob_t *findsubjobbyletter(char letter);
int fixcurses(lifeform_t *lf);
int flee(lifeform_t *lf);
void fleefrom(lifeform_t *lf, lifeform_t *enemy, int howlong, int onpurpose);
int fovlist_contains(int *endx, int *endy, int nendcells, int x, int y);
int freezelf(lifeform_t *freezee, lifeform_t *freezer, int howlong);
void gainhp(lifeform_t *lf, int amt);
void gainlevel(lifeform_t *lf, int autotrain);
void gainmp(lifeform_t *lf, int amt);
void gainxp(lifeform_t *lf, long amt);
void genareaknowledge(flagpile_t *fp, int chancemod);
int genalignmentlist(flagpile_t *fp, char *buf);
void generatealignment(lifeform_t *lf);
void genxplist(void);
int get_adjacent_quadrants(int dir, enum QUADRANT *start, enum QUADRANT *end);
int get_circular_fov_endpoints(lifeform_t *lf, int maxvisrange, int *endx, int *endy, int *nendcells);
int getactspeed(lifeform_t *lf);
int getadjenemies(lifeform_t *lf, lifeform_t **adjlf, int *nadjlfs);
char *getbloodobname(flagpile_t *fp, char *buf, int userandom);
void getwhowillfollow(lifeform_t *lf, object_t *stairob, lifeform_t **adjally, int *seen, int *nadjallies);
enum ALIGNMENT getalignment(lifeform_t *lf);
int getalignmod(lifeform_t *lf);
enum ALLEGIENCE getallegiance(lifeform_t *lf);
int getallouterarmour(lifeform_t *lf, object_t **ob, int *nobs);
object_t *getarmour(lifeform_t *lf, enum BODYPART bp);
int getarmouraccpenalty(lifeform_t *lf);
int getarmourevpenalty(lifeform_t *lf);
int getarmournoise(lifeform_t *lf);
int getarmourrating(lifeform_t *lf, object_t **hitob, int *hitchance, enum BODYPART *hitbp, int *narms);
int getattackspeed(lifeform_t *lf);
float getattackstamloss(object_t *wep);
int getattpoints(lifeform_t *lf);
int getattr(lifeform_t *lf, enum ATTRIB attr);
enum ATTRBRACKET getattrbracket(int attrval, enum ATTRIB whichatt, /*@null@*/char *buf);
int real_getattr(lifeform_t *lf, enum ATTRIB attr, int ignoreattrset);
int getavgdam(lifeform_t *lf, int forxp);
enum CASTTYPE getcasttype(lifeform_t *lf, enum OBTYPE sid);
int getdistspotmod(lifeform_t *lf, cell_t *c);
int getdrunkattrmod(lifeform_t *lf, enum ATTRIB att, int drunkamt);
int getengineeringwallmod(lifeform_t *lf);
float getequippedweight(lifeform_t *lf);
int getevasion(lifeform_t *lf);
object_t *getbestthrowmissile(lifeform_t *lf, lifeform_t *target);
object_t *getbestweapon(lifeform_t *lf);
object_t *getbestfirearm(lifeform_t *lf);
int getbodyparthitchance(enum BODYPART bp);
char *getbodypartname(lifeform_t *lf, enum BODYPART bp);
char *getbodypartequipname(enum BODYPART bp);
object_t *getequippedob(obpile_t *op, enum BODYPART bp);
int getexposedlimbs(lifeform_t *lf);
int getextraspellchoices(lifeform_t *lf);
object_t *getfirearm(lifeform_t *lf);
enum LOFTYPE getfirearmloftype(lifeform_t *lf);
int getfootprinttime(lifeform_t *lf);
enum GENDER getgender(lifeform_t *lf);
lifeform_t *getguntarget(lifeform_t *lf);
int getguntargetid(lifeform_t *lf);
//int gethealtime(lifeform_t *lf);
int gethearingrange(lifeform_t *lf);
int gettrrace(race_t *r);
int gethitstokill(lifeform_t *lf, lifeform_t *victim, int useevasion, int usearmour);
int gethppct(lifeform_t *lf);
enum COLOUR gethungercol(enum HUNGER hlev);
enum HUNGER gethungerlevel(int hunger);
char *gethungername(lifeform_t *lf, enum HUNGER hunger, char *buf);
int gethungerval(lifeform_t *lf);
job_t *getjob(lifeform_t *lf);
enum JOBCATEGORY getjobcat(lifeform_t *lf);
//enum SUBJOB getsubjob(lifeform_t *lf);
char *getjobname(lifeform_t *lf);
int getjobrecommendation(race_t *r, job_t *j);
int getlastdir(lifeform_t *lf);
int getleftrightwalls(lifeform_t *lf);
int getlfaccuracy(lifeform_t *lf, object_t *wep);
char getlfcol(lifeform_t *lf, enum MSGCHARCOL cc);
enum LFCONDITION getlfcondition(lifeform_t *lf);
enum TEMPERATURE getlftemp(lifeform_t *lf);
int getfeetheight(lifeform_t *lf);
int getlistendetectrange(lifeform_t *lf);
int getmasterid(lifeform_t *lf);
enum SKILLLEVEL getmaxskilllevel(lifeform_t *lf, enum SKILL skid);
int getminions(lifeform_t *lf, lifeform_t **minion, int *nminions);
int getmiscastchance(lifeform_t *lf);
void getmonkattacks(int level, int *rmin, int *rmax);
int getmonkdr(int level);
int getmorale(lifeform_t *lf);
int getnaturalflightheight(lifeform_t *lf);
int getnextshortcut(lifeform_t *lf);
int getnightvisrange(lifeform_t *lf);
int getnoisedetails(lifeform_t *lf, enum NOISETYPE nid, flag_t *noiseflag, char *heartext,char *seetext, int *volume, flag_t **returnedflag);
char *getlfconditionname(enum LFCONDITION cond);
object_t *getouterequippedob(lifeform_t *lf, enum BODYPART bp);
//int getowing(lifeform_t *buyer, int shopid, int *retnitems);
enum LFCONDITION getseenlfconditioncutoff(lifeform_t *lf);
char *getseenlfconditionname(lifeform_t *lf, lifeform_t *viewer);
int getsmellrange(lifeform_t *lf);
flag_t *getspellcasttextflag(lifeform_t *lf, enum OBTYPE sid);
glyph_t *getlfglyph(lifeform_t *lf);
enum MATERIAL getlfmaterial(lifeform_t *lf);
enum SKILLLEVEL getlorelevel(lifeform_t *lf, enum RACECLASS rcid);
int getattacks(lifeform_t *lf, int *min, int *max);
float getmaxcarryweight(lifeform_t *lf);
float getmaxliftweight(lifeform_t *lf);
int getmaxmp(lifeform_t *lf);
float getmaxpushweight(lifeform_t *lf);
float getmaxstamina(lifeform_t *lf);
object_t *getmeleeweapon(lifeform_t *lf);
int getmr(lifeform_t *lf);
int real_getmr(lifeform_t *lf, int onlyexternal);
int gettempaccpenalty(lifeform_t *lf, int temperature);
int gettempstammod(lifeform_t *lf, int temperature);
int getvisrange(lifeform_t *lf, int useambient);
void idxtoxy(lifeform_t *lf, int idx, int *x, int *y);
//void setviscell(lifeform_t *lf, cell_t *cell, int how);
//int getviscell(lifeform_t *lf, cell_t *cell);
int xytoidx(lifeform_t *lf, int x, int y);
int getmovespeed(lifeform_t *lf);
char *getmoveverb(lifeform_t *lf);
char *getmoveverbother(lifeform_t *lf, char *buf);
lifeform_t *getnearbypeaceful(lifeform_t *lf);
char *getpitverb(lifeform_t *lf, int dir, int onpurpose, int climb);
char *getlfname(lifeform_t *lf, char *buf);
char *real_getlfname(lifeform_t *lf, char *buf, lifeform_t *usevis, int showall, int useorigrace);
char *getlfnamea(lifeform_t *lf, char *buf);
char *real_getlfnamea(lifeform_t *lf, char *buf, lifeform_t *usevis, int showall, int useorigrace);
enum LFSIZE getlfsize(lifeform_t *lf);
float getlfweight(lifeform_t *lf, int withobs);
object_t *getsecmeleeweapon(lifeform_t *lf);
object_t *getshield(lifeform_t *lf, enum DAMTYPE dt);
int getallshields(lifeform_t *lf, enum DAMTYPE damtype, object_t **retob, int *checkmod, int *nretobs);
int getshieldblockmod(lifeform_t *lf, object_t *o);
int getspellspeed(lifeform_t *lf);
int getstamina(lifeform_t *lf);
int getstaminapct(lifeform_t *lf);
float getstamregen(lifeform_t *lf);
char *getplayername(char *buf);
char *getplayernamefull(char *buf);
/*
int getpoisondamchance(enum POISONTYPE ptype);
char *getpoisondamverb(enum POISONTYPE ptype);
char *getpoisondesc(enum POISONTYPE ptype);
char *getpoisonname(enum POISONTYPE ptype);
enum POISONSEVERITY getpoisonseverity(enum POISONTYPE ptype);
*/
enum RACECLASS getraceclass(lifeform_t *lf);
int getracerarity(enum HABITAT hab, enum RACE rid, enum RARITY *rr);
object_t *getrandomarmour(lifeform_t *lf, lifeform_t *attacker);
enum BEHAVIOUR getrandombehaviour(void);
enum BODYPART getrandomcorebp(lifeform_t *lf, lifeform_t *attacker);
race_t *getrandomcorpserace(cell_t *c, enum LFSIZE wantsize);
job_t *getrandomjob(int onlyplayerjobs);
int getrandommonlevel(race_t *r, map_t *m);
race_t *getrandomrace(cell_t *c, int forcedepth, condset_t *cs);
race_t *getrandomraceofsize(enum LFSIZE wantsize);
race_t *getrandomracewithflag(enum FLAG fid);
race_t *getreallyrandomrace(enum RACECLASS wantrc, condset_t *cs);
enum SKILL getrandomskill(void);
object_t *getrestob(lifeform_t *lf);
enum SKILLLEVEL getskill(lifeform_t *lf, enum SKILL id);
int getskilllevcost(enum SKILLLEVEL slev);
int getsounddist(enum SPEECHVOL volume);
char *getspeedname(int speed, char *buf);
char *getspeednameshort(int speed, char *buf);
long getspforpoint(lifeform_t *lf);
float getstatmod(lifeform_t *lf, enum ATTRIB att);
char *getskilldesc(enum SKILL id );
char *getskillname(enum SKILL id );
char *getskilllevelabbr(enum SKILLLEVEL sl);
char *getskilllevelname(enum SKILLLEVEL sl);
int getteachableskills(lifeform_t *teacher, lifeform_t *student, int *info, enum TRADEINFOTYPE *tradetype, int *ninfo );
int gettr(lifeform_t *lf);
char *gettradeinfoname(int what, enum TRADEINFOTYPE tradetype, char *buf);
int getthrowspeed(lifeform_t *lf);
int getturnspeed(lifeform_t *lf);
void getwantdistance(lifeform_t *lf, lifeform_t *victim, int *min, int *max, int attacking);
object_t *getweapon(lifeform_t *lf);
int getweapons(lifeform_t *lf, int meleeonly, object_t **wep, flag_t **damflag, int *lastweaponidx, obpile_t **op, int *nweps);
enum SKILLLEVEL getweaponskill(lifeform_t *lf, object_t *o);
long getxpforlev(int level);
void givebehaviour(lifeform_t *lf, enum BEHAVIOUR bid);
void givejob(lifeform_t *lf, enum JOB jobid);
//void givesubjob(lifeform_t *lf, enum SUBJOB sj);
int givemoney(lifeform_t *from, lifeform_t *to, int amt);
void giveobflags(lifeform_t *lf, object_t *o, enum FLAG whattype);
int giverandomobs(lifeform_t *lf, int amt);
flag_t *giveskill(lifeform_t *lf, enum SKILL id);
flag_t *giveskilllev(lifeform_t *lf, enum SKILL id, enum SKILLLEVEL slev);
void givestartobs(lifeform_t *lf, object_t *targob, flagpile_t *fp);
void givestartskills(lifeform_t *lf, flagpile_t *fp);
map_t *gotolev(lifeform_t *lf, int depth, object_t *fromstairs);
int gotosleep(lifeform_t *lf, int onpurpose);
void growhydrahead(lifeform_t *lf, int announce);
void losehydrahead(lifeform_t *lf);
flag_t *hasbleedinginjury(lifeform_t *lf, enum BODYPART bp);
int hasfreeaction(lifeform_t *lf);
int real_hasfreeaction(lifeform_t *lf, enum FLAG exception);
int hashealableinjuries(lifeform_t *lf);
flag_t *hasinjuredbp(lifeform_t *lf, enum BODYPART bp);
job_t *hasjob(lifeform_t *lf, enum JOB job);
int hasjobcat(lifeform_t *lf, enum JOBCATEGORY jcid);
flag_t *hasname(lifeform_t *lf);
//int hassubjob(lifeform_t *lf, enum SUBJOB id);
int hassoul(lifeform_t *lf);
void inc_quad_range(enum QUADRANT *start, enum QUADRANT *end, int howmuch);
int injure(lifeform_t *lf, enum BODYPART where, enum DAMTYPE damtype, enum INJURY forcetype);
int leveldrain(lifeform_t *lf, int amt, enum CHECKTYPE sctype, int scdiff, lifeform_t *fromlf);
int lfcanbekod(lifeform_t *lf);
int lfcanbestoned(lifeform_t *lf);
flag_t *lfhasflag(lifeform_t *lf, enum FLAG fid);
flag_t *lfhasflagval(lifeform_t *lf, enum FLAG fid, int val0, int val1, int val2, char *text);
flag_t *lfhasknownflag(lifeform_t *lf, enum FLAG fid);
flag_t *lfhasknownflagval(lifeform_t *lf, enum FLAG fid, int val0, int val1, int val2, /*@null@*/ char *text);
int lfproduceslight(lifeform_t *lf, object_t **fromwhat);
int lighthurtseyes(lifeform_t *lf);
int lockpick(lifeform_t *lf, cell_t *targcell, object_t *target, object_t *device);
void loseobflags(lifeform_t *lf, object_t *o, int kind);
int handlearmour(lifeform_t *lf, object_t *fromob, int *dam, enum DAMTYPE dt);
int hasbp(lifeform_t *lf, enum BODYPART bp);
flag_t *hasactivespell(lifeform_t *lf, enum OBTYPE sid);
int haslof(cell_t *src, cell_t *dest, enum LOFTYPE loftype, cell_t **newdest);
int haslofknown(cell_t *src, cell_t *dest, enum LOFTYPE loftype, cell_t **newdest);
int haslof_real(cell_t *src, cell_t *dest, enum LOFTYPE loftype, cell_t **newdest, lifeform_t *srclf, int walllfsok);
int haslos(lifeform_t *viewer, cell_t *dest);
//int haslosdark(lifeform_t *viewer, cell_t *dest);
int haslos_fast(lifeform_t *viewer, cell_t *dest);
void interrupt(lifeform_t *lf);
enum FLAG isairborne(lifeform_t *lf, int *height);
int isaquatic(lifeform_t *lf);
flag_t *isasleep(lifeform_t *lf);
int isbehind(lifeform_t *lf, lifeform_t *otherlf);
int isbleeding(lifeform_t *lf);
flag_t *isblind(lifeform_t *lf);
enum BURDENED isburdened(lifeform_t *lf);
int ischarmable(lifeform_t *lf);
int isclimbing(lifeform_t *lf);
int isdead(lifeform_t *lf);
int isdeaf(lifeform_t *lf);
object_t *isdualweilding(lifeform_t *lf);
flag_t *isfleeing(lifeform_t *lf);
flag_t *isfleeingfrom(lifeform_t *lf, lifeform_t *runfrom);
flag_t *isflyingwithwings(lifeform_t *lf);
int isfreebp(lifeform_t *lf, enum BODYPART bp, object_t *whatfor);
int isfriendly(lifeform_t *lf);
int isfullyhealed(lifeform_t *lf);
int isexhausted(lifeform_t *lf);
int isgenius(lifeform_t *lf);
int isgod(lifeform_t *lf);
int ishelplessvictim(lifeform_t *victim, lifeform_t *attacker, enum HELPLESSTYPE *how);
flag_t *ishidingfrom(lifeform_t *hider, lifeform_t *seeker);
int ishirable(lifeform_t *lf);
int isimmobile(lifeform_t *lf);
flag_t *isimmuneto(flagpile_t *fp, enum DAMTYPE dt, int onlytemp);
int isinbattle(lifeform_t *lf, int includedistant, int onlyarmed);
int isingunrange(lifeform_t *lf, cell_t *where);
int isliving(lifeform_t *lf);
int isloreskill(enum SKILL skid);
int islowhp(lifeform_t *lf);
int isspellskill(enum SKILL skid);
int ismadeofice(lifeform_t *lf);
int ismaxedattr(lifeform_t *lf, enum ATTRIB a);
int ismaxedskill(lifeform_t *lf, enum SKILL skid);
int ispeaceful(lifeform_t *lf);
int isknownpeaceful(lifeform_t *lf);
int ispetof(lifeform_t *lf, lifeform_t *owner);
flag_t *ispetortarget(lifeform_t *lf, lifeform_t *ownertarget);
int isplayer(lifeform_t *lf);
flag_t *ispoisoned(lifeform_t *lf);
flag_t *ispoisonedwith(lifeform_t *lf, enum POISONTYPE pt);
int ispolymorphed(lifeform_t *lf);
int isprone(lifeform_t *lf);
flag_t *isresistantto(flagpile_t *fp, enum DAMTYPE dt, int onlytemp);
flag_t *isresting(lifeform_t *lf);
int issleepingtimefor(lifeform_t *lf);
object_t *isstuck(lifeform_t *lf);
int issmellablelf(lifeform_t *lf);
int isswimming(lifeform_t *lf);
int isunconscious(lifeform_t *lf);
int isundead(lifeform_t *lf);
flag_t *isvulnto(flagpile_t *fp, enum DAMTYPE dt, int onlytemp);
int isweaponbp(enum BODYPART bp);
int isweaponskill(enum SKILL skid);
enum FLAG iswoozy(lifeform_t *lf);
int jobpossible(flagpile_t *basefp, enum JOB jid);
void killjob(job_t *job);
void killlf(lifeform_t *lf);
void killpoisontype(poisontype_t *pt);
void killrace(race_t *race);
//void killsubjob(subjob_t *sj);
void learnspell(lifeform_t *lf, enum OBTYPE sid, int fromlevelup);
flag_t *levelabilityready(lifeform_t *lf);
int loadfirearm(lifeform_t *lf, object_t *gun, object_t *ammo);
int loadfirearmfast(lifeform_t *lf, int onpurpose);
void loseconcentration(lifeform_t *lf);
void loseconsciousness(lifeform_t *lf, int howlong, lifeform_t *fromlf);
int losehp(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *fromlf, char *damsrc);
int losehp_noarm(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *fromlf, char *damsrc);
int losehp_bp(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *fromlf, char *damsrc, int bodypart);
int losehp_real(lifeform_t *lf, int amt, enum DAMTYPE damtype, lifeform_t *fromlf, char *damsrc, int reducedam, object_t *fromob, int retaliate, int *waskod, int doeffects, int bodypart, int fromcrit);
void losehpeffects(lifeform_t *lf, int dam, enum DAMTYPE damtype, lifeform_t *fromlf, object_t *fromob, int retaliate, int ko, int *waskod, int prelowhp, int bodypart, int damreducebyarm, int crit);
void losemp(lifeform_t *lf, int amt);
void loselevel(lifeform_t *lf, int amt, lifeform_t *fromlf);
void loseskill(lifeform_t *lf, enum SKILL skid);
void magicwoods_angry(lifeform_t *who);
void magicwoods_warn(lifeform_t *who);
void makecommslist(prompt_t *p, lifeform_t *lf, int multiple);
void makefriendly(lifeform_t *lf, int howlong);
void makeheard(lifeform_t *listener, lifeform_t *noisemaker, int showglyph, char *noisetext, int howlong);
int makelearnable(lifeform_t *lf, enum SKILL skid);
int makenauseated(lifeform_t *lf, int amt, int howlong, enum ERROR *why);
void makenoise(lifeform_t *lf, enum NOISETYPE nid);
void makepeaceful(lifeform_t *lf, lifeform_t *causedby);
lifeform_t *makezombie(object_t *o, int power, char *description, lifeform_t *master);
void mayusespellschool(flagpile_t *fp, enum SPELLSCHOOL ss, enum FLAG how, int overridepower);
int meetsallattreqs(lifeform_t *lf, object_t *o);
int meetsattreq(lifeform_t *lf, flag_t *f, object_t *o, int *modpct);
int mightflee(lifeform_t *lf);
flag_t *missingspellcastob(lifeform_t *lf);
int modattr(lifeform_t *lf, enum ATTRIB attr, int amt);
void modhunger(lifeform_t *lf, int amt);
float modifybystat(float num, lifeform_t *lf, enum ATTRIB att);
void modmorale(lifeform_t *lf, int howmuch);
int modskillcheckroll(lifeform_t *lf, enum CHECKTYPE ct, int *roll);
void modstamina(lifeform_t *lf, float howmuch);
int movecausesnoise(lifeform_t *lf);
int willmoverandomly(lifeform_t *lf);
int needstobreath(lifeform_t *lf);
int needstorest(lifeform_t *lf, char *validchars);
void noarmouron(race_t *r, enum BODYPART bp);
int noise(cell_t *c, lifeform_t *noisemaker, enum NOISECLASS nt, int volume, char *text, char *seetext);
enum NOISECLASS noisetypetoclass(enum NOISETYPE nt);
void outfitlf(lifeform_t *lf);
void petify(lifeform_t *lf, lifeform_t *owner);
int pickup(lifeform_t *lf, object_t *what, int howmany, int fromground, int antannounce);
int poison(lifeform_t *lf, int howlong, enum POISONTYPE ptype, int power, char *fromwhat, enum RACE srcraceid, int immediate);
int poisoneffects(lifeform_t *lf, enum POISONTYPE ptid, int power);
int poisoncausesvomit(enum POISONTYPE ptype);
int poisonthreatenslife(lifeform_t *lf, flag_t *f);
int polymorphto(lifeform_t *lf, enum RACE rid, int howlong);
void practice(lifeform_t *lf, enum SKILL skid, int amt);
//void precalclos_old(lifeform_t *lf);
void precalclos(lifeform_t *lf);
void preparecorpse(lifeform_t *lf, object_t *corpse);
int push(lifeform_t *lf, object_t *o, int dir);
int racecantalk(enum RACE rid);
int raceclassbleeds(enum RACECLASS id);
int racemeetscondition(race_t *r, enum CELLCONDITION cond, int arg, int val);
int racemeets(enum RACE rid, condset_t *cs);
int readytotrain(lifeform_t *lf);
int recruit(lifeform_t *lf);
void refreshlevelabilities(lifeform_t *lf);
void relinklf(lifeform_t *src, map_t *dst);
int resizelf(lifeform_t *lf, enum LFSIZE newsize, int doobs);
lifeform_t *ressurect(object_t *o);
int rest(lifeform_t *lf, int onpurpose);
void setskillused(lifeform_t *lf, enum SKILL skid);
void spot_hiding_lf(lifeform_t *lf, lifeform_t *hider);
int startclimbing(lifeform_t *lf);
int startresting(lifeform_t *lf, int willtrain);
int rollattr(enum ATTRBRACKET bracket);
int rollstat(lifeform_t *lf, enum ATTRIB attr);
int safetorest(lifeform_t *lf, enum ERROR *why);
int say(lifeform_t *lf, char *text, int volume);
int sayphrase(lifeform_t *lf, enum SAYPHRASE what, int volume, int val0, char *text, lifeform_t *talkingto);
int scare(lifeform_t *lf, lifeform_t *scarer, int howlong, int scarerbonus);
//int setammo(lifeform_t *lf, object_t *o);
void setalignment(lifeform_t *lf, enum ALIGNMENT al);
void setattr(lifeform_t *lf, enum ATTRIB attr, int val);
int setbloodfrom(object_t *o, lifeform_t *lf);
void setbodypartname(race_t *r, enum BODYPART bp, char *name);
void setbodytype(race_t *r, enum BODYTYPE bt);
int setfacing(lifeform_t *lf, int dir);
void setfollowdistance(lifeform_t *lf, int min, int max);
void setguntarget(lifeform_t *lf, lifeform_t *targ);
void sethomeroom(lifeform_t *lf);
void setkillverb(lifeform_t *lf, char *buf);
void setrace(lifeform_t *lf, enum RACE rid, int frompolymorph);
void setlastdam(lifeform_t *lf, char *buf);
//void setlftarget(lifeform_t *lf, lifeform_t *victim);
int setlfmaterial(lifeform_t *lf, enum MATERIAL id, int wantannounce);
void setlosdirty(lifeform_t *lf);
void setstamina(lifeform_t *lf, float howmuch);
void shiver(lifeform_t *lf);
int shoot(lifeform_t *lf);
int getskillcheckchance(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod) ;
int skillcheck(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod);
int real_skillcheck(lifeform_t *lf, enum CHECKTYPE ct, int diff, int mod, int *result);
int restoredrainedstats(lifeform_t *lf);
int skillcheckvs(lifeform_t *lf1, enum CHECKTYPE ct1, int mod1, lifeform_t *lf2, enum CHECKTYPE ct2, int mod2);
int slipon(lifeform_t *lf, object_t *o);
void sortlf(map_t *map, lifeform_t *lf);
int statdrain(lifeform_t *lf, enum ATTRIB attr, int amt, enum CHECKTYPE sctype, int scdiff, lifeform_t *fromlf);
void startlfturn(lifeform_t *lf);
int steal(lifeform_t *lf, obpile_t *op, enum FLAG wantflag);
int stir(lifeform_t *lf, int vol, int dist, char *noisetext);
int stone(lifeform_t *lf);
int stopclimbing(lifeform_t *lf, int onpurpose);
void stopeating(lifeform_t *lf);
void stoppathfinding(lifeform_t *lf);
void stopresting(lifeform_t *lf);
void stoprunning(lifeform_t *lf);
void stopsprinting(lifeform_t *lf);
int stun(lifeform_t *lf, int nturns);
lifeform_t *summonmonster(lifeform_t *caster, cell_t *c, enum RACE rid, char *racename, int lifetime, int wantfriendly);
//int testammo(lifeform_t *lf, object_t *o);
int takeoff(lifeform_t *lf, object_t *o);
void takerotationtime(lifeform_t *lf);
void taketime(lifeform_t *lf, long howlong);
int throwat(lifeform_t *thrower, object_t *o, cell_t *where);
void timeeffectslf(lifeform_t *lf);
int tradeknowledge(lifeform_t *lf);
int tryclimb(lifeform_t *lf, cell_t *where, char *towhat, int onpurpose);
int touch(lifeform_t *lf, object_t *o);
int real_touch(lifeform_t *lf, object_t *o, int onpurpose);
lifeform_t *reveal_pretendob(object_t *o);
void turntoface(lifeform_t *lf, cell_t *dstcell);
void unequipeffects(lifeform_t *lf, object_t *o);
void unpoison(lifeform_t *lf);
void unsummon(lifeform_t *lf, int vanishobs);
int unweild(lifeform_t *lf, object_t *o);
int useability(lifeform_t *lf, enum OBTYPE aid, lifeform_t *who, cell_t *where);
int useringofmiracles(lifeform_t *lf, int charges);
int usestairs(lifeform_t *lf, object_t *o, int onpurpose, int climb);
int validateraces(void);
void wakeup(lifeform_t *lf, int howmuch);
int wear(lifeform_t *lf, object_t *o);
int weild(lifeform_t *lf, object_t *o);
enum SKILLLEVEL whichlevforabil(enum SKILL skid, enum OBTYPE oid);
int willattackdoors(lifeform_t *lf);
int willbackstab(lifeform_t *lf, lifeform_t *victim, object_t *wep);
int willbleedfrom(lifeform_t *lf, enum BODYPART bp);
int willburden(lifeform_t *lf, object_t *o, int howmany);
int willeatlf(lifeform_t *eater, lifeform_t *eatee);
//int youhear(cell_t *c, char *text);