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.c265
1 files changed, 0 insertions, 265 deletions
diff --git a/src/char_sql/itemdb.c b/src/char_sql/itemdb.c
deleted file mode 100644
index ee0801f..0000000
--- a/src/char_sql/itemdb.c
+++ /dev/null
@@ -1,265 +0,0 @@
-// $Id: itemdb.c,v 1.1.1.1 2004/09/10 17:44:48 MagicalTux Exp $
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "itemdb.h"
-#include "db.h"
-#include "inter.h"
-#include "char.h"
-#include "utils.h"
-
-#ifdef MEMWATCH
-#include "memwatch.h"
-#endif
-
-#define MAX_RANDITEM 2000
-
-// ** ITEMDB_OVERRIDE_NAME_VERBOSE **
-// 定義すると、itemdb.txtとgrfで名前が異なる場合、表示します.
-//#define ITEMDB_OVERRIDE_NAME_VERBOSE 1
-
-char item_db_db[256] = "item_db"; // added to specify item_db sql table [Valaris]
-
-static struct dbt *item_db;
-
-/*==========================================
- * DBの検索
- *------------------------------------------
- */
-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;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-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 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;
-}
-
-/*==========================================
- * アイテムデータベースの読み込み
- *------------------------------------------
- */
-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;
-}
-
-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;
-
- // ----------
-
- // 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));
- }
-
- // 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 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
-/*
- id = calloc(sizeof(struct item_data), 1);
-
- if (id == NULL) {
- printf("out of memory : itemdb_read_sqldb\n");
- exit(1);
- }
-
- memset(id, 0, sizeof(struct item_data));
- numdb_insert(item_db, nameid, id);
-
- // ----------
-*/
- 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)
-{
- struct item_data *id;
-
- id = data;
- if (id->use_script)
- free (id->use_script);
- if (id->equip_script)
- free (id->equip_script);
- free (id);
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-void do_final_itemdb (void)
-{
- if (item_db)
- {
- numdb_final (item_db, itemdb_final);
- item_db = NULL;
- }
-}
-
-int do_init_itemdb (void)
-{
- 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;
-}