Added support for constants in csv2yaml (#4433)
This commit is contained in:
parent
e6bf2d18f9
commit
f10fdf5aa0
@ -17,15 +17,34 @@
|
|||||||
|
|
||||||
#include <yaml-cpp/yaml.h>
|
#include <yaml-cpp/yaml.h>
|
||||||
|
|
||||||
|
#include "../common/cbasetypes.hpp"
|
||||||
#include "../common/core.hpp"
|
#include "../common/core.hpp"
|
||||||
#include "../common/malloc.hpp"
|
#include "../common/malloc.hpp"
|
||||||
#include "../common/mmo.hpp"
|
#include "../common/mmo.hpp"
|
||||||
|
#include "../common/nullpo.hpp"
|
||||||
#include "../common/showmsg.hpp"
|
#include "../common/showmsg.hpp"
|
||||||
#include "../common/strlib.hpp"
|
#include "../common/strlib.hpp"
|
||||||
#include "../common/utilities.hpp"
|
#include "../common/utilities.hpp"
|
||||||
|
#ifdef WIN32
|
||||||
|
#include "../common/winapi.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
// Only for constants - do not use functions of it or linking will fail
|
// Only for constants - do not use functions of it or linking will fail
|
||||||
#include "../map/mob.hpp" // MAX_MVP_DROP and MAX_MOB_DROP
|
#include "../map/achievement.hpp"
|
||||||
|
#include "../map/battle.hpp"
|
||||||
|
#include "../map/battleground.hpp"
|
||||||
|
#include "../map/channel.hpp"
|
||||||
|
#include "../map/chat.hpp"
|
||||||
|
#include "../map/date.hpp"
|
||||||
|
#include "../map/instance.hpp"
|
||||||
|
#include "../map/mercenary.hpp"
|
||||||
|
#include "../map/mob.hpp"
|
||||||
|
#include "../map/npc.hpp"
|
||||||
|
#include "../map/pc.hpp"
|
||||||
|
#include "../map/pet.hpp"
|
||||||
|
#include "../map/script.hpp"
|
||||||
|
#include "../map/storage.hpp"
|
||||||
|
#include "../map/quest.hpp"
|
||||||
|
|
||||||
using namespace rathena;
|
using namespace rathena;
|
||||||
|
|
||||||
@ -54,6 +73,7 @@ static size_t pet_read_db( const char* file );
|
|||||||
std::unordered_map<uint16, std::string> aegis_itemnames;
|
std::unordered_map<uint16, std::string> aegis_itemnames;
|
||||||
std::unordered_map<uint16, std::string> aegis_mobnames;
|
std::unordered_map<uint16, std::string> aegis_mobnames;
|
||||||
std::unordered_map<uint16, std::string> aegis_skillnames;
|
std::unordered_map<uint16, std::string> aegis_skillnames;
|
||||||
|
std::unordered_map<const char*, int32> constants;
|
||||||
|
|
||||||
// Forward declaration of constant loading functions
|
// Forward declaration of constant loading functions
|
||||||
static bool parse_item_constants( const char* path );
|
static bool parse_item_constants( const char* path );
|
||||||
@ -68,6 +88,24 @@ bool askConfirmation( const char* fmt, ... );
|
|||||||
YAML::Node body;
|
YAML::Node body;
|
||||||
size_t counter;
|
size_t counter;
|
||||||
|
|
||||||
|
// Implement the function instead of including the original version by linking
|
||||||
|
void script_set_constant_( const char* name, int value, const char* constant_name, bool isparameter, bool deprecated ){
|
||||||
|
constants[name] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* constant_lookup( int32 value, const char* prefix ){
|
||||||
|
nullpo_retr( nullptr, prefix );
|
||||||
|
|
||||||
|
for( auto const& pair : constants ){
|
||||||
|
// Same prefix group and same value
|
||||||
|
if( strncasecmp( pair.first, prefix, strlen( prefix ) ) == 0 && pair.second == value ){
|
||||||
|
return pair.first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename Func>
|
template<typename Func>
|
||||||
bool process( const std::string& type, uint32 version, const std::vector<std::string>& paths, const std::string& name, Func lambda ){
|
bool process( const std::string& type, uint32 version, const std::vector<std::string>& paths, const std::string& name, Func lambda ){
|
||||||
for( const std::string& path : paths ){
|
for( const std::string& path : paths ){
|
||||||
@ -124,6 +162,9 @@ int do_init( int argc, char** argv ){
|
|||||||
sv_readdb( path_db_mode.c_str(), "skill_db.txt", ',', 18, 18, -1, parse_skill_constants, false );
|
sv_readdb( path_db_mode.c_str(), "skill_db.txt", ',', 18, 18, -1, parse_skill_constants, false );
|
||||||
sv_readdb( path_db_import.c_str(), "skill_db.txt", ',', 18, 18, -1, parse_skill_constants, false );
|
sv_readdb( path_db_import.c_str(), "skill_db.txt", ',', 18, 18, -1, parse_skill_constants, false );
|
||||||
|
|
||||||
|
// Load constants
|
||||||
|
#include "../map/script_constants.hpp"
|
||||||
|
|
||||||
std::vector<std::string> guild_skill_tree_paths = {
|
std::vector<std::string> guild_skill_tree_paths = {
|
||||||
path_db,
|
path_db,
|
||||||
path_db_import
|
path_db_import
|
||||||
|
Loading…
x
Reference in New Issue
Block a user