#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include "struct.h" /* * Function replacements for our rather out of control macros */ int mac_IsItem(x) tag x; { if(ItemArray[OBJ(x)]==NULL) return(0); return(1); } int mac_Valid(x) tag x; { if(OBJ(x)>=0&&OBJ(x)<=VAL(NObs())) return(1); return(0); } void log_error(char *a,...) { va_list b; va_start(b,a); if(Booted) ReportLines(); vfprintf(stderr,a,b); fflush(stderr); va_end(b); } struct Object *mac_Object(x) tag x; { if(mac_Valid(x)==0) { log_error("Invalid item '%d'\n",x); panic(); } return(ItemArray[x]); } struct Player *mac_Player(x) tag x; { return((struct Player *)mac_Object(x)); } struct Room *mac_Room(x) tag x; { return((struct Room *)mac_Object(x)); } tag VAL(x) tag x; { return(x); }