Fixed missing dummy item after reloading (#5552)
Fixes #5548 Thanks to @reunite-ro and @Triedge
This commit is contained in:
parent
8053a72890
commit
9cdc008bfe
@ -84,7 +84,11 @@ bool YamlDatabase::verifyCompatibility( const YAML::Node& rootNode ){
|
||||
}
|
||||
|
||||
bool YamlDatabase::load(){
|
||||
return this->load( this->getDefaultLocation() );
|
||||
bool ret = this->load( this->getDefaultLocation() );
|
||||
|
||||
this->loadingFinished();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool YamlDatabase::reload(){
|
||||
@ -128,8 +132,6 @@ bool YamlDatabase::load(const std::string& path) {
|
||||
|
||||
this->parseImports( rootNode );
|
||||
|
||||
this->loadingFinished();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1019,6 +1019,23 @@ uint64 ItemDatabase::parseBodyNode(const YAML::Node &node) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ItemDatabase::loadingFinished(){
|
||||
if( !this->exists( ITEMID_DUMMY ) ){
|
||||
// Create dummy item
|
||||
std::shared_ptr<item_data> dummy_item = std::make_shared<item_data>();
|
||||
|
||||
dummy_item->nameid = ITEMID_DUMMY;
|
||||
dummy_item->weight = 1;
|
||||
dummy_item->value_sell = 1;
|
||||
dummy_item->type = IT_ETC;
|
||||
dummy_item->name = "UNKNOWN_ITEM";
|
||||
dummy_item->ename = "Unknown Item";
|
||||
dummy_item->view_id = UNKNOWN_ITEM_ID;
|
||||
|
||||
item_db.put( ITEMID_DUMMY, dummy_item );
|
||||
}
|
||||
}
|
||||
|
||||
ItemDatabase item_db;
|
||||
|
||||
/**
|
||||
@ -1364,23 +1381,6 @@ static void itemdb_jobid2mapid(uint64 bclass[3], e_mapid jobmask, bool active)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create dummy item_data
|
||||
*/
|
||||
static void itemdb_create_dummy(void) {
|
||||
std::shared_ptr<item_data> dummy_item;
|
||||
|
||||
dummy_item = std::make_shared<item_data>();
|
||||
dummy_item->nameid = ITEMID_DUMMY;
|
||||
dummy_item->weight = 1;
|
||||
dummy_item->value_sell = 1;
|
||||
dummy_item->type = IT_ETC;
|
||||
dummy_item->name = "UNKNOWN_ITEM";
|
||||
dummy_item->ename = "Unknown Item";
|
||||
dummy_item->view_id = UNKNOWN_ITEM_ID;
|
||||
item_db.put(ITEMID_DUMMY, dummy_item);
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Loads an item from the db. If not found, it will return the dummy item.
|
||||
* @param nameid
|
||||
@ -2758,7 +2758,6 @@ void do_final_itemdb(void) {
|
||||
*/
|
||||
void do_init_itemdb(void) {
|
||||
itemdb_group = uidb_alloc(DB_OPT_BASE);
|
||||
itemdb_create_dummy();
|
||||
itemdb_read();
|
||||
|
||||
if (battle_config.feature_roulette)
|
||||
|
@ -989,6 +989,7 @@ public:
|
||||
|
||||
const std::string getDefaultLocation();
|
||||
uint64 parseBodyNode(const YAML::Node& node);
|
||||
void loadingFinished();
|
||||
};
|
||||
|
||||
extern ItemDatabase item_db;
|
||||
|
@ -763,6 +763,9 @@ uint64 ItemDatabase::parseBodyNode(const YAML::Node& node) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ItemDatabase::loadingFinished(){
|
||||
}
|
||||
|
||||
ItemDatabase item_db;
|
||||
|
||||
static bool parse_mob_constants( char* split[], int columns, int current ){
|
||||
|
Loading…
x
Reference in New Issue
Block a user