示例#1
0
 fingerprint * fingerprint_set::insert(void * data, unsigned data_hash, unsigned num_args, enode * const * args) {
     fingerprint * d = mk_dummy(data, data_hash, num_args, args);
     if (m_set.contains(d)) 
         return 0;
     TRACE("fingerprint_bug", tout << "1) inserting: " << data_hash << " num_args: " << num_args;
           for (unsigned i = 0; i < num_args; i++) tout << " " << args[i]->get_owner_id(); 
           tout << "\n";);
示例#2
0
文件: mk_obj.c 项目: senlinms/C-RPG
Object *new_mk_obj(char *name, World * w, int x, int y, Object * parent)
{

	char file_name[256];
	sprintf(file_name, "./data/obj_%s.txt", name);
	FILE *fp = fopen(file_name, "rb");
	if (fp == 0) {
		char buf[512];
		sprintf(buf, "unable to open file:%s", file_name);
		MessageBox(0, buf, "error", MB_OK);
		exit(1);
		return 0;
	}

	char buf[4096];
	memset(buf, 0, sizeof(char) * 4096);
	int rpos = fread(buf, 1, 4096, fp);
	fseek(fp, 0, SEEK_END);
	int epos = ftell(fp);
	if (rpos != epos)
		return 0;
	fclose(fp);
	Object o = mk_dummy(w, x, y, parent);
	mod_obj_with_buf(buf, &o);
	int k = get_empty_obj_index(w);

	if (k == -1)
		return 0;
	w->objs[k] = o;

	//never return o. o is in stack. therefore it will be deleted when function finished.
	return &(w->objs[k]);
}