struct guild_storage *guild2storage(int guild_id) { struct guild_storage* gs = NULL; if(inter_guild_search(guild_id) != NULL) gs = (struct guild_storage*)idb_ensure(guild_storage_db, guild_id, create_guildstorage); return gs; }
//--------------------------------------------------------- // 倉庫データを書き込む int inter_guild_storage_save() { struct DBIterator* iter; struct guild_storage* data; FILE *fp; int lock; if( (fp=lock_fopen(guild_storage_txt,&lock))==NULL ){ ShowError("int_storage: can't write [%s] !!! data is lost !!!\n",guild_storage_txt); return 1; } iter = guild_storage_db->iterator(guild_storage_db); for( data = (struct guild_storage*)iter->first(iter,NULL); iter->exists(iter); data = (struct guild_storage*)iter->next(iter,NULL) ) { char line[65536]; if(inter_guild_search(data->guild_id) != NULL) { guild_storage_tostr(line,data); if(*line) fprintf(fp,"%s\n",line); } } iter->destroy(iter); lock_fclose(fp,guild_storage_txt,&lock); return 0; }
int inter_guild_storage_save_sub(DBKey key,void *data,va_list ap) { char line[65536]; FILE *fp; if(inter_guild_search(((struct guild_storage *)data)->guild_id) != NULL) { guild_storage_tostr(line,(struct guild_storage *)data); fp=va_arg(ap,FILE *); if(*line) fprintf(fp,"%s" RETCODE,line); }
struct guild_storage *guild2storage(int guild_id) { struct guild_storage *gs = NULL; if(inter_guild_search(guild_id) != NULL) { gs= (struct guild_storage *) numdb_search(guild_storage_db,guild_id); if(gs == NULL) { gs = (struct guild_storage *) aCalloc(sizeof(struct guild_storage), 1); if(gs==NULL){ ShowFatalError("int_storage: out of memory!\n"); exit(0); } // memset(gs,0,sizeof(struct guild_storage)); aCalloc does this! [Skotlex] gs->guild_id=guild_id; numdb_insert(guild_storage_db,gs->guild_id,gs); } } return gs; }