#include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include "emlen.h" #define ATTACH_TO_ROOM(func, vnum, trigger, keywords) /* Basic stuctures */ #define ROOM_FUNCTION(text) void (text)(CHAR_DATA *ch, ROOM_DATA *room, char *argy) #define END_FUNCTION room->more->running_room_function=NULL; room->more->script_delay=0; room->more->tag_in_proc=0; if (room->more->argy) {free_string(room->more->argy); room->more->argy=NULL;} room->more->caller=NULL; return #define DELAY_SCRIPT(val) room->more->script_delay+=(val); room->more->tag_in_proc=room_chunk+1; room->more->running_room_function=rf; room->more->caller=ch; if (room->more->argy==NULL) room->more->argy=str_dup(argy); return #define MARK_CHUNK(val) room_chunk=val; if ( room->more->tag_in_proc <= (val) ) #define CHECK_INTEGRITY(ch,func) if ( (ch)->data_type==-1 ) {END_FUNCTION;} rf=(func) #define DONT_ALLOW_INTERRUPTIONS if ((room->more->caller!=NULL && ch!=room->more->caller) || room->more->script_delay!=0) return #define ALLOW_INTERRUPTIONS if (room->more->caller!=NULL && room->more->caller!=ch) room->tag_in_proc=0;