diff options
author | Haru <haru@dotalux.com> | 2015-08-12 04:07:07 +0200 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2015-10-22 12:47:34 +0200 |
commit | 95c3844754b1649aaa4866e1e65034ad24a1cafe (patch) | |
tree | 8146b94b7bb3f6a63c23c7ddb3d38ab7e64c4c49 /src/map | |
parent | e4c30aeb788c34865325df7189ddc21b9542e86e (diff) | |
download | hercules-95c3844754b1649aaa4866e1e65034ad24a1cafe.tar.gz hercules-95c3844754b1649aaa4866e1e65034ad24a1cafe.tar.bz2 hercules-95c3844754b1649aaa4866e1e65034ad24a1cafe.tar.xz hercules-95c3844754b1649aaa4866e1e65034ad24a1cafe.zip |
Removed support for the deprecated SQL item, mob, mob_skill databases.
Follow-up to 84e02ac28fbb15c58d0a0f8a916b49663198b05b
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 13 | ||||
-rw-r--r-- | src/map/itemdb.c | 171 | ||||
-rw-r--r-- | src/map/itemdb.h | 3 | ||||
-rw-r--r-- | src/map/map.c | 62 | ||||
-rw-r--r-- | src/map/map.h | 10 | ||||
-rw-r--r-- | src/map/mob.c | 61 | ||||
-rw-r--r-- | src/map/mob.h | 1 |
7 files changed, 13 insertions, 308 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 1f9d75a64..be508dae0 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7157,14 +7157,14 @@ void Hercules_report(char* date, char *time_c) { C_RENEWAL_EDP = 0x0400, C_RENEWAL_ASPD = 0x0800, C_SECURE_NPCTIMEOUT = 0x1000, - C_SQL_DB_ITEM = 0x2000, + //C_SQL_DB_ITEM = 0x2000, C_SQL_LOGS = 0x4000, C_MEMWATCH = 0x8000, C_DMALLOC = 0x10000, C_GCOLLECT = 0x20000, C_SEND_SHORTLIST = 0x40000, - C_SQL_DB_MOB = 0x80000, - C_SQL_DB_MOBSKILL = 0x100000, + //C_SQL_DB_MOB = 0x80000, + //C_SQL_DB_MOBSKILL = 0x100000, C_PACKETVER_RE = 0x200000, }; @@ -7229,13 +7229,6 @@ void Hercules_report(char* date, char *time_c) { #endif /* non-define part */ - if( map->db_use_sql_item_db ) - config |= C_SQL_DB_ITEM; - if( map->db_use_sql_mob_db ) - config |= C_SQL_DB_MOB; - if( map->db_use_sql_mob_skill_db ) - config |= C_SQL_DB_MOBSKILL; - if( logs->config.sql_logs ) config |= C_SQL_LOGS; diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 3afb10bec..efa9b18e5 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -1502,112 +1502,8 @@ void itemdb_readdb_additional_fields(int itemid, config_setting_t *it, int n, co } /** - * Processes one itemdb entry from the sql backend, loading and inserting it - * into the item database. - * - * @param *handle MySQL connection handle. It is expected to have data - * available (i.e. already queried) and it won't be freed (it - * is care of the caller to do so) - * @param n Ordinal number of the entry, to be displayed in case of - * validation errors. - * @param *source Source of the entry (table name), to be displayed in case of - * validation errors. - * @return Nameid of the validated entry, or 0 in case of failure. - */ -int itemdb_readdb_sql_sub(Sql *handle, int n, const char *source) { - struct item_data id = { 0 }; - char *data = NULL; - - /* - * `id` smallint(5) unsigned NOT NULL DEFAULT '0' - * `name_english` varchar(50) NOT NULL DEFAULT '' - * `name_japanese` varchar(50) NOT NULL DEFAULT '' - * `type` tinyint(2) unsigned NOT NULL DEFAULT '0' - * `price_buy` mediumint(10) DEFAULT NULL - * `price_sell` mediumint(10) DEFAULT NULL - * `weight` smallint(5) unsigned DEFAULT NULL - * `atk` smallint(5) unsigned DEFAULT NULL - * `matk` smallint(5) unsigned DEFAULT NULL - * `defence` smallint(5) unsigned DEFAULT NULL - * `range` tinyint(2) unsigned DEFAULT NULL - * `slots` tinyint(2) unsigned DEFAULT NULL - * `equip_jobs` int(12) unsigned DEFAULT NULL - * `equip_upper` tinyint(8) unsigned DEFAULT NULL - * `equip_genders` tinyint(2) unsigned DEFAULT NULL - * `equip_locations` smallint(4) unsigned DEFAULT NULL - * `weapon_level` tinyint(2) unsigned DEFAULT NULL - * `equip_level_min` smallint(5) unsigned DEFAULT NULL - * `equip_level_max` smallint(5) unsigned DEFAULT NULL - * `refineable` tinyint(1) unsigned DEFAULT NULL - * `view` smallint(3) unsigned DEFAULT NULL - * `bindonequip` tinyint(1) unsigned DEFAULT NULL - * `buyingstore` tinyint(1) NOT NULL DEFAULT NULL - * `delay` mediumint(9) NOT NULL DEFAULT NULL - * `trade_flag` smallint(4) NOT NULL DEFAULT NULL - * `trade_group` smallint(4) NOT NULL DEFAULT NULL - * `nouse_flag` smallint(4) NOT NULL DEFAULT NULL - * `nouse_group` smallint(4) NOT NULL DEFAULT NULL - * `stack_amount` mediumint(6) NOT NULL DEFAULT NULL - * `stack_flag` smallint(2) NOT NULL DEFAULT NULL - * `sprite` mediumint(6) NOT NULL DEFAULT NULL - * `script` text - * `equip_script` text - * `unequip_script` text - */ - SQL->GetData(handle, 0, &data, NULL); id.nameid = (uint16)atoi(data); - SQL->GetData(handle, 1, &data, NULL); safestrncpy(id.name, data, sizeof(id.name)); - SQL->GetData(handle, 2, &data, NULL); safestrncpy(id.jname, data, sizeof(id.jname)); - SQL->GetData(handle, 3, &data, NULL); id.type = atoi(data); - SQL->GetData(handle, 4, &data, NULL); id.value_buy = data ? atoi(data) : -1; // Using invalid price -1 when missing, it'll be validated later - SQL->GetData(handle, 5, &data, NULL); id.value_sell = data ? atoi(data) : -1; - SQL->GetData(handle, 6, &data, NULL); id.weight = data ? atoi(data) : 0; - SQL->GetData(handle, 7, &data, NULL); id.atk = data ? atoi(data) : 0; - SQL->GetData(handle, 8, &data, NULL); id.matk = data ? atoi(data) : 0; - SQL->GetData(handle, 9, &data, NULL); id.def = data ? atoi(data) : 0; - SQL->GetData(handle, 10, &data, NULL); id.range = data ? atoi(data) : 0; - SQL->GetData(handle, 11, &data, NULL); id.slot = data ? atoi(data) : 0; - SQL->GetData(handle, 12, &data, NULL); itemdb->jobid2mapid(id.class_base, data ? (unsigned int)strtoul(data,NULL,0) : UINT_MAX); - SQL->GetData(handle, 13, &data, NULL); id.class_upper = data ? (unsigned int)atoi(data) : ITEMUPPER_ALL; - SQL->GetData(handle, 14, &data, NULL); id.sex = data ? atoi(data) : 2; - SQL->GetData(handle, 15, &data, NULL); id.equip = data ? atoi(data) : 0; - SQL->GetData(handle, 16, &data, NULL); id.wlv = data ? atoi(data) : 0; - SQL->GetData(handle, 17, &data, NULL); id.elv = data ? atoi(data) : 0; - SQL->GetData(handle, 18, &data, NULL); id.elvmax = data ? atoi(data) : 0; - SQL->GetData(handle, 19, &data, NULL); id.flag.no_refine = data && atoi(data) ? 0 : 1; - SQL->GetData(handle, 20, &data, NULL); id.look = data ? atoi(data) : 0; - SQL->GetData(handle, 21, &data, NULL); id.flag.bindonequip = data && atoi(data) ? 1 : 0; - SQL->GetData(handle, 22, &data, NULL); id.flag.force_serial = data && atoi(data) ? 1 : 0; - SQL->GetData(handle, 23, &data, NULL); id.flag.buyingstore = data && atoi(data) ? 1 : 0; - SQL->GetData(handle, 24, &data, NULL); id.delay = data ? atoi(data) : 0; - SQL->GetData(handle, 25, &data, NULL); id.flag.trade_restriction = data ? atoi(data) : ITR_NONE; - SQL->GetData(handle, 26, &data, NULL); id.gm_lv_trade_override = data ? atoi(data) : 0; - SQL->GetData(handle, 27, &data, NULL); id.item_usage.flag = data ? atoi(data) : INR_NONE; - SQL->GetData(handle, 28, &data, NULL); id.item_usage.override = data ? atoi(data) : 0; - SQL->GetData(handle, 29, &data, NULL); id.stack.amount = data ? atoi(data) : 0; - SQL->GetData(handle, 30, &data, NULL); - if (data) { - int stack_flag = atoi(data); - id.stack.inventory = (stack_flag&1)!=0; - id.stack.cart = (stack_flag&2)!=0; - id.stack.storage = (stack_flag&4)!=0; - id.stack.guildstorage = (stack_flag&8)!=0; - } - SQL->GetData(handle, 31, &data, NULL); - if (data) { - id.view_id = atoi(data); - if (id.view_id) - id.flag.available = 1; - } - SQL->GetData(handle, 32, &data, NULL); id.script = data && *data ? script->parse(data, source, -id.nameid, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL) : NULL; - SQL->GetData(handle, 33, &data, NULL); id.equip_script = data && *data ? script->parse(data, source, -id.nameid, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL) : NULL; - SQL->GetData(handle, 34, &data, NULL); id.unequip_script = data && *data ? script->parse(data, source, -id.nameid, SCRIPT_IGNORE_EXTERNAL_BRACKETS, NULL) : NULL; - - return itemdb->validate_entry(&id, n, source); -} - -/** - * Processes one itemdb entry from the sql backend, loading and inserting it - * into the item database. + * Processes one itemdb entry from the libconfig backend, loading and inserting + * it into the item database. * * @param *it Libconfig setting entry. It is expected to be valid and it * won't be freed (it is care of the caller to do so if @@ -1974,45 +1870,6 @@ int itemdb_readdb_libconfig(const char *filename) { return count; } -/** - * Reads from a sql itemdb table and inserts the found entries into the item - * database, overwriting duplicate ones (i.e. item_db2 overriding item_db.) - * - * @param *tablename Table name to query. - * @return The number of found entries. - */ -int itemdb_readdb_sql(const char *tablename) { - int i = 0, count = 0; - - // retrieve all rows from the item database - if( SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT `id`, `name_english`, `name_japanese`, `type`," - " `price_buy`, `price_sell`, `weight`, `atk`," - " `matk`, `defence`, `range`, `slots`," - " `equip_jobs`, `equip_upper`, `equip_genders`, `equip_locations`," - " `weapon_level`, `equip_level_min`, `equip_level_max`, `refineable`," - " `view`, `bindonequip`, `forceserial`, `buyingstore`, `delay`," - " `trade_flag`, `trade_group`, `nouse_flag`, `nouse_group`," - " `stack_amount`, `stack_flag`, `sprite`, `script`," - " `equip_script`, `unequip_script`" - "FROM `%s`", tablename) ) { - Sql_ShowDebug(map->mysql_handle); - return 0; - } - - // process rows one by one - while( SQL_SUCCESS == SQL->NextRow(map->mysql_handle) ) { - if( itemdb->readdb_sql_sub(map->mysql_handle, i++, tablename) ) - count++; - } - - // free the query result - SQL->FreeResult(map->mysql_handle); - - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, tablename); - - return count; -} - /*========================================== * Unique item ID function * Only one operation by once @@ -2029,22 +1886,12 @@ void itemdb_read(bool minimal) { int i; DBData prev; - if (map->db_use_sql_item_db) { - const char* item_db_name[] = { - map->item_db_db, - map->item_db2_db - }; - for(i = 0; i < ARRAYLENGTH(item_db_name); i++) - itemdb->readdb_sql(item_db_name[i]); - } else { - const char* filename[] = { - DBPATH"item_db.conf", - "item_db2.conf", - }; - - for(i = 0; i < ARRAYLENGTH(filename); i++) - itemdb->readdb_libconfig(filename[i]); - } + const char *filename[] = { + DBPATH"item_db.conf", + "item_db2.conf", + }; + for (i = 0; i < ARRAYLENGTH(filename); i++) + itemdb->readdb_libconfig(filename[i]); for( i = 0; i < ARRAYLENGTH(itemdb->array); ++i ) { if( itemdb->array[i] ) { @@ -2359,10 +2206,8 @@ void itemdb_defaults(void) { itemdb->gendercheck = itemdb_gendercheck; itemdb->validate_entry = itemdb_validate_entry; itemdb->readdb_additional_fields = itemdb_readdb_additional_fields; - itemdb->readdb_sql_sub = itemdb_readdb_sql_sub; itemdb->readdb_libconfig_sub = itemdb_readdb_libconfig_sub; itemdb->readdb_libconfig = itemdb_readdb_libconfig; - itemdb->readdb_sql = itemdb_readdb_sql; itemdb->unique_id = itemdb_unique_id; itemdb->read = itemdb_read; itemdb->destroy_item_data = destroy_item_data; diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 64b800b87..7b35e1ae1 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -10,7 +10,6 @@ #include "common/conf.h" #include "common/db.h" #include "common/mmo.h" // ITEM_NAME_LENGTH -#include "common/sql.h" struct script_code; struct hplugin_data_store; @@ -602,10 +601,8 @@ struct itemdb_interface { int (*gendercheck) (struct item_data *id); int (*validate_entry) (struct item_data *entry, int n, const char *source); void (*readdb_additional_fields) (int itemid, config_setting_t *it, int n, const char *source); - int (*readdb_sql_sub) (Sql *handle, int n, const char *source); int (*readdb_libconfig_sub) (config_setting_t *it, int n, const char *source); int (*readdb_libconfig) (const char *filename); - int (*readdb_sql) (const char *tablename); uint64 (*unique_id) (struct map_session_data *sd); void (*read) (bool minimal); void (*destroy_item_data) (struct item_data *self, int free_self); diff --git a/src/map/map.c b/src/map/map.c index 9a7cbe163..cd2ba17c2 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -3702,21 +3702,8 @@ int inter_config_read(char *cfgName) { if (sscanf(line,"%1023[^:]: %1023[^\r\n]", w1, w2) < 2) continue; - /* table names */ - if(strcmpi(w1,"item_db_db")==0) - safestrncpy(map->item_db_db, w2, sizeof(map->item_db_db)); - else if(strcmpi(w1,"mob_db_db")==0) - safestrncpy(map->mob_db_db, w2, sizeof(map->mob_db_db)); - else if(strcmpi(w1,"item_db2_db")==0) - safestrncpy(map->item_db2_db, w2, sizeof(map->item_db2_db)); - else if(strcmpi(w1,"mob_db2_db")==0) - safestrncpy(map->mob_db2_db, w2, sizeof(map->mob_db2_db)); - else if(strcmpi(w1, "mob_skill_db_db") == 0) - safestrncpy(map->mob_skill_db_db, w2, sizeof(map->mob_skill_db_db)); - else if(strcmpi(w1,"mob_skill_db2_db")==0) - safestrncpy(map->mob_skill_db2_db, w2, sizeof(map->mob_skill_db2_db)); /* map sql stuff */ - else if(strcmpi(w1,"map_server_ip")==0) + if(strcmpi(w1,"map_server_ip")==0) safestrncpy(map->server_ip, w2, sizeof(map->server_ip)); else if(strcmpi(w1,"map_server_port")==0) map->server_port=atoi(w2); @@ -3728,42 +3715,6 @@ int inter_config_read(char *cfgName) { safestrncpy(map->server_db, w2, sizeof(map->server_db)); else if(strcmpi(w1,"default_codepage")==0) safestrncpy(map->default_codepage, w2, sizeof(map->default_codepage)); - else if(strcmpi(w1,"use_sql_item_db")==0) { - map->db_use_sql_item_db = config_switch(w2); - ShowStatus ("Using item database as SQL: '%s'\n", w2); - if (map->db_use_sql_item_db) { - // Deprecated 2015-08-09 [Haru] - ShowWarning("Support for the SQL item database is deprecated and it will removed in future versions. " - "Please upgrade to the non-sql version as soon as possible. " - "Bug reports or pull requests concerning the SQL item database are no longer accepted.\n"); - ShowInfo("Resuming in 10 seconds...\n"); - HSleep(10); - } - } - else if(strcmpi(w1,"use_sql_mob_db")==0) { - map->db_use_sql_mob_db = config_switch(w2); - ShowStatus ("Using monster database as SQL: '%s'\n", w2); - if (map->db_use_sql_mob_db) { - // Deprecated 2015-08-09 [Haru] - ShowWarning("Support for the SQL monster database is deprecated and it will removed in future versions. " - "Please upgrade to the non-sql version as soon as possible. " - "Bug reports or pull requests concerning the SQL monster database are no longer accepted.\n"); - ShowInfo("Resuming in 10 seconds...\n"); - HSleep(10); - } - } - else if(strcmpi(w1,"use_sql_mob_skill_db")==0) { - map->db_use_sql_mob_skill_db = config_switch(w2); - ShowStatus ("Using monster skill database as SQL: '%s'\n", w2); - if (map->db_use_sql_mob_skill_db) { - // Deprecated 2015-08-09 [Haru] - ShowWarning("Support for the SQL monster skill database is deprecated and it will removed in future versions. " - "Please upgrade to the non-sql version as soon as possible. " - "Bug reports or pull requests concerning the SQL monster skill database are no longer accepted.\n"); - ShowInfo("Resuming in 10 seconds...\n"); - HSleep(10); - } - } else if(strcmpi(w1,"autotrade_merchants_db")==0) safestrncpy(map->autotrade_merchants_db, w2, sizeof(map->autotrade_merchants_db)); else if(strcmpi(w1,"autotrade_data_db")==0) @@ -6019,17 +5970,6 @@ void map_defaults(void) { map->night_flag = 0; // 0=day, 1=night [Yor] map->enable_spy = 0; //To enable/disable @spy commands, which consume too much cpu time when sending packets. [Skotlex] - map->db_use_sql_item_db = 0; - map->db_use_sql_mob_db = 0; - map->db_use_sql_mob_skill_db = 0; - - sprintf(map->item_db_db, "item_db"); - sprintf(map->item_db2_db, "item_db2"); - sprintf(map->mob_db_db, "mob_db"); - sprintf(map->mob_db2_db, "mob_db2"); - sprintf(map->mob_skill_db_db, "mob_skill_db"); - sprintf(map->mob_skill_db2_db, "mob_skill_db2"); - map->INTER_CONF_NAME="conf/inter-server.conf"; map->LOG_CONF_NAME="conf/logs.conf"; map->MAP_CONF_NAME = "conf/map-server.conf"; diff --git a/src/map/map.h b/src/map/map.h index 961a45793..974fbc4ba 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -858,16 +858,6 @@ struct map_interface { char *MSG_CONF_NAME; char *GRF_PATH_FILENAME; - int db_use_sql_item_db; - int db_use_sql_mob_db; - int db_use_sql_mob_skill_db; - - char item_db_db[32]; - char item_db2_db[32]; - char mob_db_db[32]; - char mob_db2_db[32]; - char mob_skill_db_db[32]; - char mob_skill_db2_db[32]; char autotrade_merchants_db[32]; char autotrade_data_db[32]; char npc_market_data_db[32]; diff --git a/src/map/mob.c b/src/map/mob.c index 94d68df88..2b519462d 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -4261,7 +4261,6 @@ void mob_readdb(void) { mob->name_constants(); } - int mob_read_libconfig(const char *filename, bool ignore_missing) { config_t mob_db_conf; @@ -4809,59 +4808,6 @@ void mob_readskilldb(void) { } } -/** - * mob_skill_db table reading [CalciumKid] - * not overly sure if this is all correct - * seems to work though... - */ -int mob_read_sqlskilldb(void) { - const char* mob_skill_db_name[] = { - map->mob_skill_db_db, - map->mob_skill_db2_db - }; - int fi; - - if( battle_config.mob_skill_rate == 0 ) { - ShowStatus("Mob skill use disabled. Not reading mob skills.\n"); - return 0; - } - - for( fi = 0; fi < ARRAYLENGTH(mob_skill_db_name); ++fi ) { - uint32 lines = 0, count = 0; - - // retrieve all rows from the mob skill database - if( SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT * FROM `%s`", mob_skill_db_name[fi]) ) { - Sql_ShowDebug(map->mysql_handle); - continue; - } - - // process rows one by one - while( SQL_SUCCESS == SQL->NextRow(map->mysql_handle) ) { - // wrap the result into a TXT-compatible format - char* str[19]; - char* dummy = ""; - int i; - ++lines; - for( i = 0; i < 19; ++i ) - { - SQL->GetData(map->mysql_handle, i, &str[i], NULL); - if( str[i] == NULL ) str[i] = dummy; // get rid of NULL columns - } - - if (!mob->parse_row_mobskilldb(str, 19, count)) - continue; - - count++; - } - - // free the query result - SQL->FreeResult(map->mysql_handle); - - ShowStatus("Done reading '"CL_WHITE"%"PRIu32""CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, mob_skill_db_name[fi]); - } - return 0; -} - /*========================================== * mob_race2_db.txt reading *------------------------------------------*/ @@ -4925,11 +4871,7 @@ void mob_load(bool minimal) { sv->readdb(map->db_path, "mob_item_ratio.txt", ',', 2, 2+MAX_ITEMRATIO_MOBS, -1, mob->readdb_itemratio); // must be read before mobdb mob->readchatdb(); mob->readdb(); - if (map->db_use_sql_mob_skill_db) { - mob->read_sqlskilldb(); - } else { - mob->readskilldb(); - } + mob->readskilldb(); sv->readdb(map->db_path, "mob_avail.txt", ',', 2, 12, -1, mob->readdb_mobavail); mob->read_randommonster(); sv->readdb(map->db_path, DBPATH"mob_race2_db.txt", ',', 2, 20, -1, mob->readdb_race2); @@ -5155,7 +5097,6 @@ void mob_defaults(void) { mob->readchatdb = mob_readchatdb; mob->parse_row_mobskilldb = mob_parse_row_mobskilldb; mob->readskilldb = mob_readskilldb; - mob->read_sqlskilldb = mob_read_sqlskilldb; mob->readdb_race2 = mob_readdb_race2; mob->readdb_itemratio = mob_readdb_itemratio; mob->load = mob_load; diff --git a/src/map/mob.h b/src/map/mob.h index cc81c2fc3..f7e071261 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -380,7 +380,6 @@ struct mob_interface { void (*readchatdb) (void); bool (*parse_row_mobskilldb) (char **str, int columns, int current); void (*readskilldb) (void); - int (*read_sqlskilldb) (void); bool (*readdb_race2) (char *fields[], int columns, int current); bool (*readdb_itemratio) (char *str[], int columns, int current); void (*load) (bool minimal); |