diff --git a/src/tool/csv2yaml.cpp b/src/tool/csv2yaml.cpp index 1e7147b5bb..7ecdeffa5c 100644 --- a/src/tool/csv2yaml.cpp +++ b/src/tool/csv2yaml.cpp @@ -17,15 +17,34 @@ #include +#include "../common/cbasetypes.hpp" #include "../common/core.hpp" #include "../common/malloc.hpp" #include "../common/mmo.hpp" +#include "../common/nullpo.hpp" #include "../common/showmsg.hpp" #include "../common/strlib.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 -#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; @@ -54,6 +73,7 @@ static size_t pet_read_db( const char* file ); std::unordered_map aegis_itemnames; std::unordered_map aegis_mobnames; std::unordered_map aegis_skillnames; +std::unordered_map constants; // Forward declaration of constant loading functions static bool parse_item_constants( const char* path ); @@ -68,6 +88,24 @@ bool askConfirmation( const char* fmt, ... ); YAML::Node body; 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 bool process( const std::string& type, uint32 version, const std::vector& paths, const std::string& name, Func lambda ){ 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_import.c_str(), "skill_db.txt", ',', 18, 18, -1, parse_skill_constants, false ); + // Load constants + #include "../map/script_constants.hpp" + std::vector guild_skill_tree_paths = { path_db, path_db_import