#include "config.h" #include "object.h" #include "instr.h" #include "construct.h" #include "compile.h" #include "interp.h" #include "operproto.h" #include "interface.h" #include "dbhandle.h" #include "globals.h" int s_set_interactive(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=0) return 1; obj->flags|=INTERACTIVE; tmp.type=INTEGER; tmp.value.integer=0; push(&tmp,rts); return 0; } int s_interactive(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (tmp.value.objptr->flags & INTERACTIVE) { tmp.type=INTEGER; tmp.value.integer=1; } else { tmp.type=INTEGER; tmp.value.integer=0; } push(&tmp,rts); return 0; } int s_set_priv(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (!(obj->flags & PRIV)) { tmp.type=INTEGER; tmp.value.integer=1; push(&tmp,rts); return 0; } tmp.value.objptr->flags|=PRIV; tmp.type=INTEGER; tmp.value.integer=0; push(&tmp,rts); return 0; } int s_priv(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (tmp.value.objptr->flags & PRIV) { tmp.type=INTEGER; tmp.value.integer=1; } else { tmp.type=INTEGER; tmp.value.integer=0; } push(&tmp,rts); return 0; } int s_in_editor(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (tmp.value.objptr->flags & IN_EDITOR) { tmp.type=INTEGER; tmp.value.integer=1; } else { tmp.type=INTEGER; tmp.value.integer=0; } push(&tmp,rts); return 0; } int s_connected(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (tmp.value.objptr->flags & CONNECTED) { tmp.type=INTEGER; tmp.value.integer=1; } else { tmp.type=INTEGER; tmp.value.integer=0; } push(&tmp,rts); return 0; } int s_prototype(struct object *caller, struct object *obj, struct object *player, struct var_stack **rts) { struct var tmp; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=NUM_ARGS) { clear_var(&tmp); return 1; } if (tmp.value.num!=1) return 1; if (pop(&tmp,rts,obj)) return 1; if (tmp.type!=OBJECT) { clear_var(&tmp); return 1; } if (tmp.value.objptr->flags & PROTOTYPE) { tmp.type=INTEGER; tmp.value.integer=1; } else { tmp.type=INTEGER; tmp.value.integer=0; } push(&tmp,rts); return 0; }