extern struct Object **ItemArray;
extern tag NObs(void);
extern char *emalloc(int);
extern char *estralloc(char *);
extern void TrashItem(tag);
extern tag AddObject(void);
extern tag AddRoom(void);
extern tag AddPlayer(void);
extern void SetName(tag,char *);
extern void SetIOH(tag,int,char *);
extern void SetLong(tag,char *);
extern void SetState(tag,int);
extern void SetMaxState(tag,int);
extern void SetDesc(tag,int,char *);
/* comtab.c */
extern char *CmTab[];
extern int ExecCmd(int);
extern int strUcmp(char *,char *);
extern int FindAction(char *);
extern int li_pt;
extern tag Li_Array[256];
extern tag *LinePtr[2048];
extern int tb_pt;
extern int tb_num;
extern int Num_Tables;
extern int UStk;
extern int ForStk;
extern void Wipe_Table(void);
extern void Load_Table(void);
extern void Init_Table(int);
extern void Set_Line(int);
extern void Init_Line(void);
extern void Write_Line(void);
extern char *CompileItem(char *,tag);
extern char *CompileMessage(char *,tag);
extern char *CompileNumber(char *);
extern void Compile_Word(tag);
extern char *CompileAction(char *);
extern int CompileLine(char *);
extern int Compile_Table(FILE *,int,int);
extern int LoadTables(FILE *,int);
extern int LoadEachTable(FILE *,int);
extern int LoadItemTables(FILE *,int);
/* condact.c */
extern void C_Done(void),C_Ok(void),C_Msg(void);
extern int Q_Get(void);
extern void C_Drop(void),C_Place(void),C_Call(void),C_Ld(void);
extern int Q_NumOf(void);
extern void C_LdF(void),C_Print(void),C_LdO(void),C_LdR(void);
extern void C_LdP(void),C_SetO(void),C_SetP(void),C_SetR(void);
extern void C_Mul(void),C_Div(void),C_Add(void),C_Sub(void);
extern void C_Set(void),C_Res(void),C_Inc(void),C_Dec(void),C_SetState(void);
extern void C_DoAct(void),C_DoTo(void),C_Score(void),C_Look(void);
extern void ChkCarried(tag);
extern void C_DoLobj(void);
extern void DoLobjl(tag);
extern void C_Lobjs(void);
extern void Lobs(tag);
extern void C_PName(void),C_PDesc(void),C_PLong(void),C_JP(void),C_CR(void);
extern void C_MsgCR(void);
extern int Q_Z(void),Q_Eq(void),Q_Gt(void),Q_Lt(void),Q_At(void),Q_Is(void);
extern int Q_Bit(void),Q_IsAt(void),Q_Here(void),Q_Pres(void),Q_Dark(void);
extern int Q_State(void),Q_Chance(void),Q_OBit(void),Q_PBit(void),Q_RBit(void);
extern int Q_CanSee(void),Q_Level(void),Q_Arch(void),Q_Called(void);
extern int Q_Weighs(void),Q_CanPut(void),Q_Got(void);
extern void C_Exit(void),C_Save(void);
extern int Q_Neil(void);
extern void C_GetWords(void),C_Parse(void),C_TabTo(void),C_Prompt(void);
extern void C_AutoVerb(void);
extern void C_Append(void);
extern int Q_Type(void);
extern int Q_NextMatch(void);
extern int Q_NextGMatch(void);
extern void C_Random(void);
extern void C_PwChange(void);
extern void C_PwForce(void);
extern void C_MkPlayer(void);
extern void C_MkRoom(void);
extern void C_MkObject(void);
extern void C_PCName(void);
extern void C_MFormat(void);
extern void FormErr(tag);
extern int Q_Next(void);
extern void C_Trash(void),C_SetDesc(void),C_SetMaxState(void),C_SetLong(void);
extern void C_SetIOH(void),C_SetName(void),C_SetVocab(void),C_Length(void);
extern void C_AddWord(void),C_FindWord(void),C_DelWord(void),C_Tod(void);
extern void C_Fload(void),C_FSave(void);
extern int SeekFor,SeekIdent;
extern struct StackFrame *SysStack;
extern void C_Do(void),C_For(void),C_EndFor(void),C_ForUser(void),C_EndUser(void);
extern void C_Loop(void);
extern int Q_DelFile(void),Q_FindStr(void),Q_SkipStr(void),Q_LoadU(void);
extern int Q_SaveU(void),Q_SubStr(void);
extern void C_Extract(void);
extern void C_NumText(void);
extern void C_WText(void);
extern void C_FTrueName(void);
extern void C_NewMsg(void);
extern void C_DelMsg(void);
extern FILE *Work_File;
extern int Q_FOpen(void);
extern void C_FClose(void);
extern int Q_Fmove(void),Q_FRead(void),Q_FWrite(void);
extern void C_Consult(void),C_AttachTable(void);
extern char *f_tos(char *);
/* data.c */
extern TABLE *Table;
extern char **Messages;
/* executiv.c */
extern tag SysFlags[256];
extern int CurTable,CurLine,CurStat;
extern void ReportError(char *,int,int);
extern void ReportLines(void);
extern void MsgError(char *,int,char *);
extern void GoSplat(void);
extern struct StackFrame *StackContext(void);
extern void RestoreContext(void);
extern void ExecTable(int);
extern int DoExecTable(TABLE,int);
extern int ExecLine(LINE);
extern void NextLineMove(int);
extern int GetCLine(void);
extern void SetCLine(int);
extern tag Arg(void);
extern char *TQuery(tag,char *,int);
extern char *TQuery2(tag,char *,int,int);
extern tag NQuery(tag,int,int);
extern tag NQuery2(tag,int,int,int);
extern void DoConsult(tag,int,int,int);
/* finder.c */
extern tag FindIn(tag,int,int);
extern tag FindAny(int,int);
extern tag NextIn(tag,int,int,tag);
extern tag NextAny(int,int,tag);
/* function.c */
extern tag Me(void);
extern void Tree_Unlink(tag);
extern void Tree_Link(tag,tag);
extern void MoveItem(tag,tag);
extern int CheckRedraw(tag,int,int *);
extern void MarkClean(tag);
extern int ChkRedraw(void);
extern void DoRedraw(void);
extern int UsersActive(void);
extern int Weight(tag);
extern int WeightRec(tag,int);
extern void PMsg(tag);
extern void Does(tag,tag,int,tag);
extern void DoesT(tag,char *,int,tag);
extern char *MakeCName(tag);
extern void DoesProcess(tag,char *,int,tag,tag);
extern int CanPut(tag,tag);
extern int PCanPut(ITEM,ITEM);
extern int IsDarkFor(tag);
extern int IsDark(tag,tag);
extern void Exit_Player(tag);
/* io.c */
extern void ReportInput(char *,tag);
extern void UPrintf(char *,...);
extern void TellUser(tag,char *,...);
extern void Set_Tab(tag,int);
#ifndef va_list
#include <stdarg.h>
#endif
extern void SendIO(tag,char *,va_list);
extern char *snoopof(char *);
extern void ch_out(tag,char);
extern void SendUser(tag,char *,char *,va_list);
/* loader.c */
extern int Load_Database(char *,int);
extern int Load_From_File(FILE *,int);
extern char LineBuf[256];
extern int LineNumber;
extern void ELine(void);
extern void Push_File(FILE *);
extern FILE *act_f;
extern FILE *Pop_File(void);
extern FILE *GetFP(void);
extern char *GetLine(FILE *);
extern int ArchID[16];
extern char *ArchName[16];
extern char GameName[32];
extern char *RFlagList[16];
extern char *OFlagList[16];
extern char *PFlagList[16];
extern int FindFlagListEntry(char *);
extern int Load_ArchID(FILE *,int);
extern int Load_ArchName(FILE *,int);
extern int Load_GameName(FILE *,int);
extern int LoadRFlag(FILE *,int);
extern int LoadOFlag(FILE *,int);
extern int LoadPFlag(FILE *,int);
extern int LoadFlagSet(char **,FILE *,int,char *);
extern int AllocWC(void);
extern int LoadVocab(FILE *,int);
/* loadmess.c */
extern tag msg_Next,msg_Limit;
extern tag Next_Msg(void);
extern int LoadMessage(FILE *,int);
/* loadthin.c */
extern char *stpblk(char *);
extern char *GetName(char *,char *);
extern char *GetToken(char *,char *);
extern char *Get_Block(char *,char *);
extern char *ReadLongString(FILE *);
extern int GetFlagLine(char *[]);
extern int LoadOneRoom(FILE *,int);
extern int LoadRoom(FILE *,int);
extern int LoadOneObject(FILE *,int);
extern int LoadObject(FILE *,int);
extern int LoadOnePlayer(FILE *,int);
extern int LoadPlayer(FILE *,int);
extern int LoadExit(FILE *,int);
extern void BuildFlagImage(FILE *,tag[],ITEM,int);
extern int LoadConstants(FILE *);
extern tag ResolveOConstant(char *,tag,int);
extern tag ResolveConstant(char *);
/* macro.c */
extern int mac_IsItem(tag);
extern int mac_Valid(tag);
extern void log_error(char *,...);
extern struct Object *mac_Object(tag);
extern struct Player *mac_Player(tag);
extern struct Room *mac_Room(tag);
extern tag VAL(tag);
/* main.c */
extern void Time_Alert(void);
extern void End_Limit(void);
extern void Allow_Time(long);
extern short Booted;
/* names.c */
extern struct Word *NameList;
extern void AddName(char *,tag,int);
extern struct Word *FindName(char *,int);
extern char *TrueName(tag);
extern char *MsgName(int);
extern void DelName(struct Word *);
extern void Push_Resolution(tag,int,char *);
extern void ResolveReferences(void);
/* netdrive.c */
extern USER UserArray[MAXU];
extern int Bind_To_Server(void);
extern void Exec_Packet_Response(void);
extern void KillConnection(tag);
extern void Connect(PACKET *);
extern void Do_Connection(int);
extern void Disconnect(PACKET *);
extern void Do_Disconnect(tag);
extern void Command(PACKET *);
extern void Do_Net_Driver(tag,char *);
extern void Create_Player(tag,PACKET *);
extern int Check_PW(tag,PACKET *);
extern void GetPW_1(tag,PACKET *);
extern void ChPW_2(tag,PACKET *);
extern void ChPW_1(tag,PACKET *);
extern void GetPW_2(tag,PACKET *);
extern void ChPW_3(tag,PACKET *);
extern void DoCommand(tag,PACKET *);
extern void Exec_Time_Event(void);
extern int WhichUser(tag);
/* parser.c */
extern char *GetWord(char *,char *);
extern tag FindCWord(char *,int);
extern int Parser(char *);
extern void WhatThings(void);
/* pcio.c */
int packet_init(void);
int ReadData(int);
void PollSocket(int);
void Scan_Packets(void);
void WriteToHandle(int,int,char *);
void say_to_user(int,tag,char *);
/* stubs.c */
extern void panic(void);
extern void Queue_LockItem(tag);
extern void Queue_LockMessage(tag);
extern void Queue_LockWord(tag);
extern void Init_LockList(void);
extern void Do_LockList(void);
/* uaf.c */
extern int OpenUAF(void);
extern void CloseUAF(int);
extern int LoadUser(int,char *);
extern void SaveUser(ITEM,char *);
extern int CryptX(unsigned char *);
extern void ForcePassword(char *);
/* validate.c */
extern char *Is_Legal_Name(char *,int);
/* vocab.c */
extern void AddWord(char *,tag,int);
extern void DelWord(struct Word *);
extern struct Word *FindWord(char *,int);
extern struct Word *FindNumWord(int,int);
extern int stricmp(char *,char *);
extern tag ResolveWord(char *);
/* -- END -- */