/* methodop.c: Current method operations. */ #include "x.tab.h" #include "operator.h" #include "execute.h" #include "ident.h" void op_this(void) { /* Accept no arguments, and push the dbref of the current object. */ if (!func_init_0()) return; push_dbref(cur_frame->object->dbref); } void op_definer(void) { /* Accept no arguments, and push the dbref of the method definer. */ if (!func_init_0()) return; push_dbref(cur_frame->method->object->dbref); } void op_sender(void) { /* Accept no arguments, and push the dbref of the sending object. */ if (!func_init_0()) return; if (cur_frame->sender == NOT_AN_IDENT) push_int(0); else push_dbref(cur_frame->sender); } void op_caller(void) { /* Accept no arguments, and push the dbref of the calling method's * definer. */ if (!func_init_0()) return; if (cur_frame->caller == NOT_AN_IDENT) push_int(0); else push_dbref(cur_frame->caller); } void op_task_id(void) { /* Accept no arguments, and push the task ID. */ if (!func_init_0()) return; push_int(task_id); }