/*
// ColdMUD was created and is copyright 1993, 1994 by Greg Hudson
//
// ColdX is a derivitive work, and is copyright 1995 by the ColdX Project.
// Full copyright information can be found in the file doc/CREDITS
//
// File:        methodop.c
// Version:     0.1-5
// Last Edited: 18 May 1995
//
// ---
//
// 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);
}