Beispiel #1
0
void
prim_event_count(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = muf_event_count(fr);
    PushInt(result);
}
Beispiel #2
0
void
prim_over(PRIM_PROTOTYPE)
{
    CHECKOP_READONLY(2);
    CHECKOFLOW(1);
    copyinst(&arg[*top - 2], &arg[*top]);
    (*top)++;
}
Beispiel #3
0
void
prim_mode(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = fr->multitask;
	CHECKOFLOW(1);
	PushInt(result);
}
Beispiel #4
0
void
prim_epsilon(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = DBL_EPSILON;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
Beispiel #5
0
void
prim_caller(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) fr->caller.st[fr->caller.top - 1];
	CHECKOFLOW(1);
	PushObject(ref);
}
Beispiel #6
0
void 
prim_pid(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = fr->pid;
    PushInt(result);
}
Beispiel #7
0
void
prim_over(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(2);
    CHECKOFLOW(1);
    copyinst(&arg[*top - 2], &arg[*top]);
    (*top)++;
}
Beispiel #8
0
void
prim_error_num(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	result = ERROR_NUM;
	PushInt(result);
}
Beispiel #9
0
void
prim_gmtoffset(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = get_tz_offset();
    PushInt(result);
}
Beispiel #10
0
void
prim_pi(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = F_PI;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
Beispiel #11
0
void
prim_is_error(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	result = ((fr->error.is_flags) != 0);
	PushInt(result);
}
Beispiel #12
0
void 
prim_systime(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    result = time(NULL);
    CHECKOFLOW(1);
    PushInt(result);
}
Beispiel #13
0
void
prim_deep_copy(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(1);
    CHECKOFLOW(1);
    deep_copyinst(&arg[*top - 1], &arg[*top], fr->pinning);
    (*top)++;
}
Beispiel #14
0
void
prim_frand(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	fresult = _int_f_rand();
	PushFloat( fresult );
}
Beispiel #15
0
void
prim_inf(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = INF;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
Beispiel #16
0
void
prim_prog(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) program;
	CHECKOFLOW(1);
	PushObject(ref);
}
Beispiel #17
0
void
prim_trig(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) fr->trig;
	CHECKOFLOW(1);
	PushObject(ref);
}
Beispiel #18
0
void
prim_fulldepth(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = *top;
	CHECKOFLOW(1);
	PushInt(result);
}
Beispiel #19
0
void
prim_depth(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = fr->trys.top ? *top - fr->trys.st->depth : *top;
	CHECKOFLOW(1);
	PushInt(result);
}
Beispiel #20
0
void
prim_dbtop(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) db_top;
	CHECKOFLOW(1);
	PushObject(ref);
}
Beispiel #21
0
void
prim_dup(PRIM_PROTOTYPE)
{
	CHECKOP_READONLY(1);
	nargs = 0;
	CHECKOFLOW(1);
	copyinst(&arg[*top - 1], &arg[*top]);
	(*top)++;
}
Beispiel #22
0
void 
prim_concount(PRIM_PROTOTYPE)
{
    /* -- int */
    CHECKOP(0);
    result = pcount();
    CHECKOFLOW(1);
    PushInt(result);
}
Beispiel #23
0
void
prim_cmd(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    PushStrRaw(fr->cmd);
    if (fr->cmd)
	fr->cmd->links++;
}
Beispiel #24
0
void
prim_pdup(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(1);
    if (!false_inst(&arg[*top - 1])) {
	CHECKOFLOW(1);
	copyinst(&arg[*top - 1], &arg[*top]);
	(*top)++;
    }
}
Beispiel #25
0
void
prim_version(PRIM_PROTOTYPE)
{
    char temp[256];

    CHECKOP(0);
    CHECKOFLOW(1);
    sprintf(temp, "%s(ProtoMUCK%s)", VERSION, PROTOBASE);
    PushString(temp);
}
Beispiel #26
0
void
prim_stats(PRIM_PROTOTYPE)
{
	/* A WhiteFire special. :) */
	CHECKOP(1);
	oper1 = POP();
	if (mlev < 3)
		abort_interp("Requires Mucker Level 3.");
	if (!valid_player(oper1) && (oper1->data.objref != NOTHING))
		abort_interp("non-player argument (1)");
	ref = oper1->data.objref;
	CLEAR(oper1);
	{
		dbref i;
		int rooms, exits, things, players, programs, garbage;

		/* tmp, ref */
		rooms = exits = things = players = programs = garbage = 0;
		for (i = 0; i < db_top; i++) {
			if (ref == NOTHING || OWNER(i) == ref) {
				switch (Typeof(i)) {
				case TYPE_ROOM:
					rooms++;
					break;
				case TYPE_EXIT:
					exits++;
					break;
				case TYPE_THING:
					things++;
					break;
				case TYPE_PLAYER:
					players++;
					break;
				case TYPE_PROGRAM:
					programs++;
					break;
				case TYPE_GARBAGE:
					garbage++;
					break;
				}
			}
		}
		ref = rooms + exits + things + players + programs + garbage;
		CHECKOFLOW(7);
		PushInt(ref);
		PushInt(rooms);
		PushInt(exits);
		PushInt(things);
		PushInt(programs);
		PushInt(players);
		PushInt(garbage);
		/* push results */
	}
}
Beispiel #27
0
void
prim_tuck(PRIM_PROTOTYPE)
{
    CHECKOFLOW(1);
    CHECKOP(2);
    oper1 = POP();
    temp2 = *(oper2 = POP());
    arg[(*top)++] = *oper1;
    arg[(*top)++] = temp2;
    copyinst(&arg[*top - 2], &arg[*top]);
    (*top)++;
}
Beispiel #28
0
void
prim_systime_precise(PRIM_PROTOTYPE)
{
    struct timeval fulltime;
    double dbltime;

    CHECKOP(0);
    gettimeofday(&fulltime, (struct timezone *) 0);
    CHECKOFLOW(1);
    dbltime = fulltime.tv_sec + (((double) fulltime.tv_usec) / 1.0e6);
    PushFloat(dbltime);
}
Beispiel #29
0
void
prim_forcedby(PRIM_PROTOTYPE)
{
    CHECKOFLOW(1);
    if (mlev < 4)
	abort_interp("Wizbit only primitive.");

    if (forcelist) {
	ref = forcelist->data;
    } else {
	ref = NOTHING;
    }
    PushObject(ref);
}
Beispiel #30
0
void 
prim_prettylock(PRIM_PROTOTYPE)
{
    const char *ptr;

    CHECKOP(1);
    oper1 = POP();		/* lock: lock */
    if (oper1->type != PROG_LOCK)
	abort_interp("Invalid argument");
    ptr = unparse_boolexp(ProgUID, oper1->data.lock, 1);
    CHECKOFLOW(1);
    CLEAR(oper1);
    PushString(ptr);
}