示例#1
0
文件: exit.c 项目: shentino/kotaka
atomic void set_exit_destination(object obj)
{
	object lobj;

	lobj = query_local_property("exit_return");

	if (lobj && obj != nil) {
		error("Exit has a return exit");
	}

	set_local_property("exit_destination", obj);
}
示例#2
0
文件: exit.c 项目: shentino/kotaka
atomic void set_exit_return(object obj)
{
	object lobj;

	if (query_local_property("exit_destination")) {
		error("Exit already has a destination");
	}

	if (obj->query_local_property("exit_destination")) {
		error("Return exit already has a destination");
	}

	if (obj->query_local_property("exit_return")) {
		error("Return exit already has a return exit");
	}

	lobj = query_local_property("exit_return");

	if (lobj) {
		object llobj;

		llobj = lobj->query_local_property("exit_return");

		if (llobj == this_object()) {
			llobj->set_local_property("exit_return", nil);
		}
	}

	lobj = obj->query_local_property("exit_return");

	if (lobj) {
		error("Return exit already has a return exit");
	}

	obj->set_local_property("exit_return", this_object());
	set_local_property("exit_return", obj);
}
示例#3
0
void set_y_size(int new_ysize)
{
	set_local_property("size_y", new_ysize ? new_ysize : nil);
}
示例#4
0
void set_z_size(int new_zsize)
{
	set_local_property("size_z", new_zsize ? new_zsize : nil);
}
示例#5
0
void set_x_size(int new_xsize)
{
	set_local_property("size_x", new_xsize ? new_xsize : nil);
}
示例#6
0
void set_z_position(int new_zpos)
{
	set_local_property("pos_z", new_zpos ? new_zpos : nil);
}
示例#7
0
void set_y_position(int new_ypos)
{
	set_local_property("pos_y", new_ypos ? new_ypos : nil);
}
示例#8
0
void set_x_position(int new_xpos)
{
	set_local_property("pos_x", new_xpos ? new_xpos : nil);
}
示例#9
0
void clear_xyz()
{
	set_local_property("pos_x", nil);
	set_local_property("pos_y", nil);
	set_local_property("pos_z", nil);
}