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(){
|
bool YamlDatabase::load(){
|
||||||
return this->load( this->getDefaultLocation() );
|
bool ret = this->load( this->getDefaultLocation() );
|
||||||
|
|
||||||
|
this->loadingFinished();
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool YamlDatabase::reload(){
|
bool YamlDatabase::reload(){
|
||||||
@ -128,8 +132,6 @@ bool YamlDatabase::load(const std::string& path) {
|
|||||||
|
|
||||||
this->parseImports( rootNode );
|
this->parseImports( rootNode );
|
||||||
|
|
||||||
this->loadingFinished();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1019,6 +1019,23 @@ uint64 ItemDatabase::parseBodyNode(const YAML::Node &node) {
|
|||||||
return 1;
|
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;
|
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.
|
* Loads an item from the db. If not found, it will return the dummy item.
|
||||||
* @param nameid
|
* @param nameid
|
||||||
@ -2758,7 +2758,6 @@ void do_final_itemdb(void) {
|
|||||||
*/
|
*/
|
||||||
void do_init_itemdb(void) {
|
void do_init_itemdb(void) {
|
||||||
itemdb_group = uidb_alloc(DB_OPT_BASE);
|
itemdb_group = uidb_alloc(DB_OPT_BASE);
|
||||||
itemdb_create_dummy();
|
|
||||||
itemdb_read();
|
itemdb_read();
|
||||||
|
|
||||||
if (battle_config.feature_roulette)
|
if (battle_config.feature_roulette)
|
||||||
|
@ -989,6 +989,7 @@ public:
|
|||||||
|
|
||||||
const std::string getDefaultLocation();
|
const std::string getDefaultLocation();
|
||||||
uint64 parseBodyNode(const YAML::Node& node);
|
uint64 parseBodyNode(const YAML::Node& node);
|
||||||
|
void loadingFinished();
|
||||||
};
|
};
|
||||||
|
|
||||||
extern ItemDatabase item_db;
|
extern ItemDatabase item_db;
|
||||||
|
@ -763,6 +763,9 @@ uint64 ItemDatabase::parseBodyNode(const YAML::Node& node) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ItemDatabase::loadingFinished(){
|
||||||
|
}
|
||||||
|
|
||||||
ItemDatabase item_db;
|
ItemDatabase item_db;
|
||||||
|
|
||||||
static bool parse_mob_constants( char* split[], int columns, int current ){
|
static bool parse_mob_constants( char* split[], int columns, int current ){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user