コード例 #1
0
ファイル: p_misc.c プロジェクト: foxbird/fuzzball
void
prim_event_count(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = muf_event_count(fr);
    PushInt(result);
}
コード例 #2
0
ファイル: p_stack.c プロジェクト: CyberLeo/protomuck
void
prim_over(PRIM_PROTOTYPE)
{
    CHECKOP_READONLY(2);
    CHECKOFLOW(1);
    copyinst(&arg[*top - 2], &arg[*top]);
    (*top)++;
}
コード例 #3
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_mode(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = fr->multitask;
	CHECKOFLOW(1);
	PushInt(result);
}
コード例 #4
0
ファイル: p_float.c プロジェクト: UnderSampled/RAOAMUCK
void
prim_epsilon(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = DBL_EPSILON;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
コード例 #5
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_caller(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) fr->caller.st[fr->caller.top - 1];
	CHECKOFLOW(1);
	PushObject(ref);
}
コード例 #6
0
ファイル: p_misc.c プロジェクト: CyberLeo/protomuck
void 
prim_pid(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = fr->pid;
    PushInt(result);
}
コード例 #7
0
ファイル: p_stack.c プロジェクト: foxbird/fuzzball
void
prim_over(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(2);
    CHECKOFLOW(1);
    copyinst(&arg[*top - 2], &arg[*top]);
    (*top)++;
}
コード例 #8
0
ファイル: p_error.c プロジェクト: giveamouse/fbmuck
void
prim_error_num(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	result = ERROR_NUM;
	PushInt(result);
}
コード例 #9
0
ファイル: p_misc.c プロジェクト: CyberLeo/protomuck
void
prim_gmtoffset(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    result = get_tz_offset();
    PushInt(result);
}
コード例 #10
0
ファイル: p_float.c プロジェクト: UnderSampled/RAOAMUCK
void
prim_pi(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = F_PI;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
コード例 #11
0
ファイル: p_error.c プロジェクト: giveamouse/fbmuck
void
prim_is_error(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	result = ((fr->error.is_flags) != 0);
	PushInt(result);
}
コード例 #12
0
ファイル: p_misc.c プロジェクト: CyberLeo/protomuck
void 
prim_systime(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    result = time(NULL);
    CHECKOFLOW(1);
    PushInt(result);
}
コード例 #13
0
ファイル: p_stack.c プロジェクト: foxbird/fuzzball
void
prim_deep_copy(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(1);
    CHECKOFLOW(1);
    deep_copyinst(&arg[*top - 1], &arg[*top], fr->pinning);
    (*top)++;
}
コード例 #14
0
ファイル: p_float.c プロジェクト: UnderSampled/RAOAMUCK
void
prim_frand(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	CHECKOFLOW(1);
	fresult = _int_f_rand();
	PushFloat( fresult );
}
コード例 #15
0
ファイル: p_float.c プロジェクト: UnderSampled/RAOAMUCK
void
prim_inf(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	fresult = INF;
	CHECKOFLOW(1);
	PushFloat(fresult);
}
コード例 #16
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_prog(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) program;
	CHECKOFLOW(1);
	PushObject(ref);
}
コード例 #17
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_trig(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) fr->trig;
	CHECKOFLOW(1);
	PushObject(ref);
}
コード例 #18
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_fulldepth(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = *top;
	CHECKOFLOW(1);
	PushInt(result);
}
コード例 #19
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_depth(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	result = fr->trys.top ? *top - fr->trys.st->depth : *top;
	CHECKOFLOW(1);
	PushInt(result);
}
コード例 #20
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_dbtop(PRIM_PROTOTYPE)
{
	CHECKOP(0);
	ref = (dbref) db_top;
	CHECKOFLOW(1);
	PushObject(ref);
}
コード例 #21
0
ファイル: p_stack.c プロジェクト: hyena/fuzzball
void
prim_dup(PRIM_PROTOTYPE)
{
	CHECKOP_READONLY(1);
	nargs = 0;
	CHECKOFLOW(1);
	copyinst(&arg[*top - 1], &arg[*top]);
	(*top)++;
}
コード例 #22
0
ファイル: p_connects.c プロジェクト: GlowMUCK/GlowMUCK
void 
prim_concount(PRIM_PROTOTYPE)
{
    /* -- int */
    CHECKOP(0);
    result = pcount();
    CHECKOFLOW(1);
    PushInt(result);
}
コード例 #23
0
ファイル: p_stack.c プロジェクト: foxbird/fuzzball
void
prim_cmd(PRIM_PROTOTYPE)
{
    CHECKOP(0);
    CHECKOFLOW(1);
    PushStrRaw(fr->cmd);
    if (fr->cmd)
	fr->cmd->links++;
}
コード例 #24
0
ファイル: p_stack.c プロジェクト: foxbird/fuzzball
void
prim_pdup(PRIM_PROTOTYPE)
{
    EXPECT_READ_STACK(1);
    if (!false_inst(&arg[*top - 1])) {
	CHECKOFLOW(1);
	copyinst(&arg[*top - 1], &arg[*top]);
	(*top)++;
    }
}
コード例 #25
0
ファイル: p_system.c プロジェクト: CyberLeo/protomuck
void
prim_version(PRIM_PROTOTYPE)
{
    char temp[256];

    CHECKOP(0);
    CHECKOFLOW(1);
    sprintf(temp, "%s(ProtoMUCK%s)", VERSION, PROTOBASE);
    PushString(temp);
}
コード例 #26
0
ファイル: p_misc.c プロジェクト: hyena/fuzzball
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 */
	}
}
コード例 #27
0
ファイル: p_stack.c プロジェクト: foxbird/fuzzball
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)++;
}
コード例 #28
0
ファイル: p_misc.c プロジェクト: foxbird/fuzzball
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);
}
コード例 #29
0
ファイル: p_misc.c プロジェクト: foxbird/fuzzball
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);
}
コード例 #30
0
ファイル: p_misc.c プロジェクト: CyberLeo/protomuck
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);
}