/*========================================== * カードイラストのリソース名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_cardillustnametable(void) { char *buf,*p; int s; buf = (char *)grfio_reads("data\\num2cardillustnametable.txt",&s); if(buf == NULL) return -1; buf[s] = 0; for(p=buf; p-buf<s; ) { int nameid; char buf2[128]; if(sscanf(p,"%d#%127[^#]#",&nameid,buf2) == 2) { buf2[59] = '\0'; // force \0 strcat(buf2,".bmp"); memcpy(itemdb_search(nameid)->cardillustname,buf2,64); } p=strchr(p,'\n'); if(!p) break; p++; } aFree(buf); printf("read data\\num2cardillustnametable.txt done.\n"); return 0; }
/*========================================== * *------------------------------------------ */ static int itemdb_read_itemslotcounttable(void) { char *buf, *p; int s; buf = (char *)grfio_reads("data\\itemslotcounttable.txt", &s); if (buf == NULL) return -1; buf[s] = 0; for (p = buf; p - buf < s;){ int nameid, slot; sscanf(p, "%d#%d#", &nameid, &slot); if (slot > MAX_SLOTS) { ShowWarning("itemdb_read_itemslotcounttable: Item %d specifies %d slots, but the server only supports up to %d\n", nameid, slot, MAX_SLOTS); slot = MAX_SLOTS; } itemdb_slot(nameid) = slot; p = strchr(p,10); if(!p) break; p++; p = strchr(p,10); if(!p) break; p++; } aFree(buf); ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n", "data\\itemslotcounttable.txt"); return 0; }
/*========================================== * カードイラストのリソース名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_cardillustnametable(void) { char *buf,*p; int s; buf=(char *) grfio_reads("data\\num2cardillustnametable.txt",&s); if(buf==NULL) return -1; buf[s]=0; for(p=buf;p-buf<s;){ int nameid; char buf2[64]; if( sscanf(p,"%d#%[^#]#",&nameid,buf2)==2 ){ strcat(buf2,".bmp"); memcpy(itemdb_search(nameid)->cardillustname,buf2,64); } p=strchr(p,10); if(!p) break; p++; } aFree(buf); ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","data\\num2cardillustnametable.txt"); return 0; }
/*========================================== * *------------------------------------------ */ static int itemdb_read_itemslottable(void) { char *buf, *p; int s; buf = (char *)grfio_reads("data\\itemslottable.txt", &s); if (buf == NULL) return -1; buf[s] = 0; for (p = buf; p - buf < s; ) { int nameid, equip; struct item_data* item; sscanf(p, "%d#%d#", &nameid, &equip); item = itemdb_search(nameid); if (item && itemdb_isequip2(item)) item->equip = equip; p = strchr(p, 10); if(!p) break; p++; p=strchr(p, 10); if(!p) break; p++; } aFree(buf); ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","data\\itemslottable.txt"); return 0; }
/*========================================== * *------------------------------------------ */ static int itemdb_read_itemslotcounttable(void) { char *buf,*p; int s; buf = grfio_reads("data\\itemslotcounttable.txt", &s); if (buf == NULL) return -1; buf[s] = 0; p = buf; while(p - buf < s) { int nameid, slot; sscanf(p, "%d#%d#", &nameid, &slot); itemdb_search(nameid)->slot = slot; p = strchr(p, 10); if (!p) break; p++; p = strchr(p, 10); if (!p) break; p++; } FREE(buf); printf("File '" CL_WHITE "data\\itemslotcounttable.txt" CL_RESET "' readed.\n"); return 0; }
/*========================================== * *------------------------------------------ */ static int itemdb_read_itemslottable(void) { char *buf,*p; int s; buf = grfio_reads("data\\itemslottable.txt", &s); if (buf == NULL) return -1; buf[s] = 0; p = buf; while(p - buf < s) { int nameid, equip; struct item_data* item; sscanf(p, "%d#%d#", &nameid, &equip); // fix unuseable cards item = itemdb_search(nameid); if (item && itemdb_isequip2(item)) item->equip = equip; p = strchr(p, 10); if(!p) break; p++; p = strchr(p, 10); if (!p) break; p++; } FREE(buf); printf("File '" CL_WHITE "data\\itemslottable.txt" CL_RESET "' readed.\n"); return 0; }
/*========================================== * カードイラストのリソース名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_cardillustnametable(void) { char *buf,*p; int s; buf = grfio_reads("data\\num2cardillustnametable.txt", &s); if (buf == NULL) return -1; buf[s] = 0; p = buf; while(p - buf < s) { int nameid; char buf2[64]; if (sscanf(p, "%d#%[^#]#", &nameid, buf2) == 2) { strcat(buf2, ".bmp"); memset(itemdb_search(nameid)->cardillustname, 0, sizeof(itemdb_search(nameid)->cardillustname)); strncpy(itemdb_search(nameid)->cardillustname, buf2, 64); // printf("%d %s\n", nameid, itemdb_search(nameid)->cardillustname); } p = strchr(p,10); if(!p) break; p++; } FREE(buf); printf("File '" CL_WHITE "data\\num2cardillustnametable.txt" CL_RESET "' readed.\n"); return 0; }
/*========================================== * アイテムの名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_itemnametable(void) { char *buf,*p; int s; buf = grfio_reads("data\\idnum2itemdisplaynametable.txt",&s); if (buf == NULL) return -1; buf[s] = 0; p = buf; while(p - buf < s) { int nameid; char buf2[64]; if (sscanf(p, "%d#%[^#]#", &nameid, buf2) == 2) { #ifdef ITEMDB_OVERRIDE_NAME_VERBOSE if (itemdb_exists(nameid) && strncmp(itemdb_search(nameid)->jname, buf2, 24) != 0) { printf("[override] %d %s => %s\n", nameid, itemdb_search(nameid)->jname, buf2); } #endif memset(itemdb_search(nameid)->jname, 0, sizeof(itemdb_search(nameid)->jname)); strncpy(itemdb_search(nameid)->jname, buf2, 24); } p = strchr(p, 10); if (!p) break; p++; } FREE(buf); printf("File '" CL_WHITE "data\\idnum2itemdisplaynametable.txt" CL_RESET "' readed.\n"); return 0; }
/*========================================== * アイテムの名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_itemnametable(void) { char *buf,*p; int s; buf=(char *) grfio_reads("data\\idnum2itemdisplaynametable.txt",&s); if(buf==NULL) return -1; buf[s]=0; for(p=buf;p-buf<s;){ int nameid; char buf2[64]; //Why 64? What's this for, other than holding an item's name? [Skotlex] if( sscanf(p,"%d#%[^#]#",&nameid,buf2)==2 ){ #ifdef ITEMDB_OVERRIDE_NAME_VERBOSE if( itemdb_exists(nameid) && strncmp(itemdb_search(nameid)->jname,buf2,ITEM_NAME_LENGTH)!=0 ){ ShowNotice("[override] %d %s => %s\n",nameid ,itemdb_search(nameid)->jname,buf2); } #endif strncpy(itemdb_search(nameid)->jname,buf2,ITEM_NAME_LENGTH-1); } p=strchr(p,10); if(!p) break; p++; } aFree(buf); ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","data\\idnum2itemdisplaynametable.txt"); return 0; }
/*========================================== * アイテムの名前テーブルを読み込む *------------------------------------------ */ static int itemdb_read_itemnametable(void) { char *buf,*p; int s; buf = (char *)grfio_reads("data\\idnum2itemdisplaynametable.txt",&s); if(buf == NULL) return -1; buf[s] = 0; for(p=buf; p-buf<s; ) { int nameid; char buf2[64]; if(sscanf(p,"%d#%63[^#]#",&nameid,buf2) == 2) { char *jname = itemdb_jname(nameid); buf2[47] = '\0'; // force \0 terminal #ifdef ITEMDB_OVERRIDE_NAME_VERBOSE if(itemdb_exists(nameid) && strcmp(jname, buf2) != 0) { printf("[override] %d %s => %s\n", nameid, jname, buf2); } #endif memcpy(jname,buf2,48); } p=strchr(p,'\n'); if(!p) break; p++; } aFree(buf); printf("read data\\idnum2itemdisplaynametable.txt done.\n"); return 0; }