summaryrefslogtreecommitdiff
path: root/src/char_sql/itemdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/char_sql/itemdb.c')
-rw-r--r--src/char_sql/itemdb.c338
1 files changed, 178 insertions, 160 deletions
diff --git a/src/char_sql/itemdb.c b/src/char_sql/itemdb.c
index 85c4929..3e1c22d 100644
--- a/src/char_sql/itemdb.c
+++ b/src/char_sql/itemdb.c
@@ -17,160 +17,172 @@
// ** ITEMDB_OVERRIDE_NAME_VERBOSE **
// 定義すると、itemdb.txtとgrfで名前が異なる場合、表示します.
-//#define ITEMDB_OVERRIDE_NAME_VERBOSE 1
+//#define ITEMDB_OVERRIDE_NAME_VERBOSE 1
-char item_db_db[256]="item_db"; // added to specify item_db sql table [Valaris]
+char item_db_db[256] = "item_db"; // added to specify item_db sql table [Valaris]
-static struct dbt* item_db;
+static struct dbt *item_db;
/*==========================================
* DBの検索
*------------------------------------------
*/
-struct item_data* itemdb_search(int nameid)
+struct item_data *itemdb_search (int nameid)
{
- struct item_data *id;
-
- id=numdb_search(item_db,nameid);
- if(id) return id;
-
- CREATE(id, struct item_data, 1);
-
- numdb_insert(item_db,nameid,id);
-
-
- if(nameid>500 && nameid<600)
- id->type=0; //heal item
- else if(nameid>600 && nameid<700)
- id->type=2; //use item
- else if((nameid>700 && nameid<1100) ||
- (nameid>7000 && nameid<8000))
- id->type=3; //correction
- else if(nameid>=1750 && nameid<1771)
- id->type=10; //arrow
- else if(nameid>1100 && nameid<2000)
- id->type=4; //weapon
- else if((nameid>2100 && nameid<3000) ||
- (nameid>5000 && nameid<6000))
- id->type=5; //armor
- else if(nameid>4000 && nameid<5000)
- id->type=6; //card
- else if(nameid>9000 && nameid<10000)
- id->type=7; //egg
- else if(nameid>10000)
- id->type=8; //petequip
-
- return id;
+ struct item_data *id;
+
+ id = numdb_search (item_db, nameid);
+ if (id)
+ return id;
+
+ CREATE (id, struct item_data, 1);
+
+ numdb_insert (item_db, nameid, id);
+
+ if (nameid > 500 && nameid < 600)
+ id->type = 0; //heal item
+ else if (nameid > 600 && nameid < 700)
+ id->type = 2; //use item
+ else if ((nameid > 700 && nameid < 1100) ||
+ (nameid > 7000 && nameid < 8000))
+ id->type = 3; //correction
+ else if (nameid >= 1750 && nameid < 1771)
+ id->type = 10; //arrow
+ else if (nameid > 1100 && nameid < 2000)
+ id->type = 4; //weapon
+ else if ((nameid > 2100 && nameid < 3000) ||
+ (nameid > 5000 && nameid < 6000))
+ id->type = 5; //armor
+ else if (nameid > 4000 && nameid < 5000)
+ id->type = 6; //card
+ else if (nameid > 9000 && nameid < 10000)
+ id->type = 7; //egg
+ else if (nameid > 10000)
+ id->type = 8; //petequip
+
+ return id;
}
/*==========================================
*
*------------------------------------------
*/
-int itemdb_isequip(int nameid)
+int itemdb_isequip (int nameid)
{
- int type=itemdb_type(nameid);
- if(type==0 || type==2 || type==3 || type==6 || type==10)
- return 0;
- return 1;
+ int type = itemdb_type (nameid);
+ if (type == 0 || type == 2 || type == 3 || type == 6 || type == 10)
+ return 0;
+ return 1;
}
+
/*==========================================
*
*------------------------------------------
*/
-int itemdb_isequip2(struct item_data *data)
+int itemdb_isequip2 (struct item_data *data)
{
- if(data) {
- int type=data->type;
- if(type==0 || type==2 || type==3 || type==6 || type==10)
- return 0;
- else
- return 1;
- }
- return 0;
+ if (data)
+ {
+ int type = data->type;
+ if (type == 0 || type == 2 || type == 3 || type == 6 || type == 10)
+ return 0;
+ else
+ return 1;
+ }
+ return 0;
}
-
-
/*==========================================
* アイテムデータベースの読み込み
*------------------------------------------
*/
-static int itemdb_readdb(void)
+static int itemdb_readdb (void)
{
- FILE *fp;
- char line[1024];
- int ln=0;
- int nameid,j;
- char *str[32],*p,*np;
- struct item_data *id;
-
- fp=fopen_("db/item_db.txt","r");
- if(fp==NULL){
- printf("can't read db/item_db.txt\n");
- exit(1);
- }
- while(fgets(line,1020,fp)){
- if(line[0]=='/' && line[1]=='/')
- continue;
- memset(str,0,sizeof(str));
- for(j=0,np=p=line;j<17 && p;j++){
- str[j]=p;
- p=strchr(p,',');
- if(p){ *p++=0; np=p; }
- }
- if(str[0]==NULL)
- continue;
-
- nameid=atoi(str[0]);
- if(nameid<=0 || nameid>=20000)
- continue;
- ln++;
-
- //ID,Name,Jname,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Gender,Loc,wLV,eLV,View
- id=itemdb_search(nameid);
- memcpy(id->name,str[1],24);
- memcpy(id->jname,str[2],24);
- id->type=atoi(str[3]);
-
- }
- fclose_(fp);
- printf("read db/item_db.txt done (count=%d)\n",ln);
- return 0;
+ FILE *fp;
+ char line[1024];
+ int ln = 0;
+ int nameid, j;
+ char *str[32], *p, *np;
+ struct item_data *id;
+
+ fp = fopen_ ("db/item_db.txt", "r");
+ if (fp == NULL)
+ {
+ printf ("can't read db/item_db.txt\n");
+ exit (1);
+ }
+ while (fgets (line, 1020, fp))
+ {
+ if (line[0] == '/' && line[1] == '/')
+ continue;
+ memset (str, 0, sizeof (str));
+ for (j = 0, np = p = line; j < 17 && p; j++)
+ {
+ str[j] = p;
+ p = strchr (p, ',');
+ if (p)
+ {
+ *p++ = 0;
+ np = p;
+ }
+ }
+ if (str[0] == NULL)
+ continue;
+
+ nameid = atoi (str[0]);
+ if (nameid <= 0 || nameid >= 20000)
+ continue;
+ ln++;
+
+ //ID,Name,Jname,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Gender,Loc,wLV,eLV,View
+ id = itemdb_search (nameid);
+ memcpy (id->name, str[1], 24);
+ memcpy (id->jname, str[2], 24);
+ id->type = atoi (str[3]);
+
+ }
+ fclose_ (fp);
+ printf ("read db/item_db.txt done (count=%d)\n", ln);
+ return 0;
}
-static int itemdb_read_sqldb(void) // sql item_db read, shortened version of map-server item_db read [Valaris]
+static int itemdb_read_sqldb (void) // sql item_db read, shortened version of map-server item_db read [Valaris]
{
- unsigned int nameid; // Type should be "unsigned short int", but currently isn't for compatibility with numdb_insert()
- struct item_data *id;
+ unsigned int nameid; // Type should be "unsigned short int", but currently isn't for compatibility with numdb_insert()
+ struct item_data *id;
- // ----------
+ // ----------
- // Output query to retrieve all rows from the item database table
- sprintf(tmp_sql, "SELECT * FROM `%s`", item_db_db);
+ // Output query to retrieve all rows from the item database table
+ sprintf (tmp_sql, "SELECT * FROM `%s`", item_db_db);
- // Execute the query; if the query execution fails, output an error
- if (mysql_query(&mysql_handle, tmp_sql)) {
- printf("Database server error (executing query for %s): %s\n", item_db_db, mysql_error(&mysql_handle));
- }
+ // Execute the query; if the query execution fails, output an error
+ if (mysql_query (&mysql_handle, tmp_sql))
+ {
+ printf ("Database server error (executing query for %s): %s\n",
+ item_db_db, mysql_error (&mysql_handle));
+ }
- // Store the query result
- sql_res = mysql_store_result(&mysql_handle);
+ // Store the query result
+ sql_res = mysql_store_result (&mysql_handle);
- // If the storage of the query result succeeded
- if (sql_res) {
- // Parse each row in the query result into sql_row
- while ((sql_row = mysql_fetch_row(sql_res))) {
- nameid = atoi(sql_row[0]);
+ // If the storage of the query result succeeded
+ if (sql_res)
+ {
+ // Parse each row in the query result into sql_row
+ while ((sql_row = mysql_fetch_row (sql_res)))
+ {
+ nameid = atoi (sql_row[0]);
- // If the identifier is not within the valid range, process the next row
- if (nameid == 0 || nameid >= 20000) { // Should ">= 20000" be "> 20000"?
- continue;
- }
+ // If the identifier is not within the valid range, process the next row
+ if (nameid == 0 || nameid >= 20000)
+ { // Should ">= 20000" be "> 20000"?
+ continue;
+ }
- // ----------
+ // ----------
- // Insert a new row into the item database
+ // Insert a new row into the item database
/*
id = calloc(sizeof(struct item_data), 1);
@@ -184,64 +196,70 @@ static int itemdb_read_sqldb(void) // sql item_db read, shortened version of map
// ----------
*/
- id=itemdb_search(nameid);
-
- memcpy(id->name, sql_row[1], 24);
- memcpy(id->jname, sql_row[2], 24);
-
- id->type = atoi(sql_row[3]);
- }
-
- // If the retrieval failed, output an error
- if (mysql_errno(&mysql_handle)) {
- printf("Database server error (retrieving rows from %s): %s\n", item_db_db, mysql_error(&mysql_handle));
- }
-
- printf("read %s done (count = %lu)\n", item_db_db, (unsigned long) mysql_num_rows(sql_res));
-
- // Free the query result
- mysql_free_result(sql_res);
- } else {
- printf("MySQL error (storing query result for %s): %s\n", item_db_db, mysql_error(&mysql_handle));
- }
-
- return 0;
+ id = itemdb_search (nameid);
+
+ memcpy (id->name, sql_row[1], 24);
+ memcpy (id->jname, sql_row[2], 24);
+
+ id->type = atoi (sql_row[3]);
+ }
+
+ // If the retrieval failed, output an error
+ if (mysql_errno (&mysql_handle))
+ {
+ printf ("Database server error (retrieving rows from %s): %s\n",
+ item_db_db, mysql_error (&mysql_handle));
+ }
+
+ printf ("read %s done (count = %lu)\n", item_db_db,
+ (unsigned long) mysql_num_rows (sql_res));
+
+ // Free the query result
+ mysql_free_result (sql_res);
+ }
+ else
+ {
+ printf ("MySQL error (storing query result for %s): %s\n", item_db_db,
+ mysql_error (&mysql_handle));
+ }
+
+ return 0;
}
-static int itemdb_final(void *key,void *data,va_list ap)
+static int itemdb_final (void *key, void *data, va_list ap)
{
- struct item_data *id;
+ struct item_data *id;
- id=data;
- if(id->use_script)
- free(id->use_script);
- if(id->equip_script)
- free(id->equip_script);
- free(id);
+ id = data;
+ if (id->use_script)
+ free (id->use_script);
+ if (id->equip_script)
+ free (id->equip_script);
+ free (id);
- return 0;
+ return 0;
}
-
/*==========================================
*
*------------------------------------------
*/
-void do_final_itemdb(void)
+void do_final_itemdb (void)
{
- if(item_db){
- numdb_final(item_db,itemdb_final);
- item_db=NULL;
- }
+ if (item_db)
+ {
+ numdb_final (item_db, itemdb_final);
+ item_db = NULL;
+ }
}
-int do_init_itemdb(void)
+
+int do_init_itemdb (void)
{
- item_db = numdb_init();
+ item_db = numdb_init ();
- if (db_use_sqldbs) // it db_use_sqldbs in inter config are yes, will read from item_db for char server display [Valaris]
- itemdb_read_sqldb();
- else
- itemdb_readdb();
- return 0;
+ if (db_use_sqldbs) // it db_use_sqldbs in inter config are yes, will read from item_db for char server display [Valaris]
+ itemdb_read_sqldb ();
+ else
+ itemdb_readdb ();
+ return 0;
}
-