* Added the custom and test scripts to the buildbot
All scripts inside the custom and test npc directory are now parsed and executed automatically by the buildbot.
The only exceptions are the custom battleground scripts that would cause duplication warnings.
Thanks to @Jeybla for the Unix script!
* Fix#2591 spinlock issue.
Add basic_test, for few integration test.
Add thread_local_storage support in cmake
Fix thread.c for linux and fix small typo
* Follow up to 1c66035.
* Reverted a lambda function which was causing a mismatch between achievement vectors and player achievements.
Thanks to @reymarbc and @cydh!
* Fixes#2621
* Makes the getspawn functions independent of the mob_db struct.
Removes the getMobID() function from the struct which caused the
the issue.
* Thanks to @Lemongrass3110 and @uddevil!
* Adjusting Vending tax to match official
* Fixes#2528.
* There are no taxes on items being sold for less than 100 million. Anything above incurs a 5% tax.
* Refactored the tax code to use a single function.
Thanks to @mazvi, @Jeybla, and @lighta!
* Refactored achievements to utilize C++ features
* Cleaned up the YAML parser.
* Moved achievements from DBMap to an unordered_map.
* Moved achievement targets from DBMap to a vector.
* Changed all struct arrays into vectors.
* Changed all char arrays to strings.
* Changed all int arrays to std::arrays.
* Removed achievement_dummy as it's no longer needed.
* Achievements now use smart pointer to ensure proper construction and deconstruction of objects.
Thanks to @lighta!
* Fixed compilation for the Windows XP API
Fixes#2137
Thanks to @zackdreaver
* Fixed Windows version initialization
Respecting the SDK's Windows version and only use our own defines if they are not set by the SDK, which should not happen.
Thanks to @lighta.
* Moved Windows Vista declaration up
This way all defines that should actually come from sdkddkver.h will be checked right behind it and defined if they were not.
* Reverted line deletion
With this you will not have to upgrade your solution everytime you clone a fresh copy of rAthena and the problem with having to stash between branch switches should also be gone.
If you want to compile it for another toolset you simply have to set the target toolset by yourself.
With this the internal static array was changed to a std::map which manages it's memory dynamically when needed.
Dropped mob_dummy since it was useless to have it in the first place.
Replaced a lot of direct accesses to the mob db by the "get" function.
With this you can now use 20021-31998 for monsters and also 4000-20020 will be used for player clones whenever needed.
Dropped mobdb_exists
Replaced almost all references to MAX_MOB_DB
Moved MAX_MOB_DB from the header directly into the source file to make it only visible to the .cpp file itself and not to any other.
Moved the mob drop calculation function from itemdb.cpp into mob.cpp, because it needs to iterate over the whole mob db.
Added a few missing clone checks.
Thanks to @lighta, @Jeybla and @aleos89.
* Now mob_get_spawn does not add empty vectors to mob_spawn_data, when the
mobid does not exist in mob_spawn_data
* Saves a bit more memory space
* Thanks to @Lemongrass3110 for the suggestion
* Moves the monster spawn infos from the mob_db struct to an own
data structure.
* Fixes whereis after mobdb reload. Fixes#2360
* Fixes Taekwon Mission after mobdb reload. Closes#2460
* Thanks to @uddevil, @mgksrt8, @lighta and @aleos89!
* Fixes#2575 and fixes#2574.
* Adjusted the formula to properly account for bonuses which are additive of one another, not multiplicative.
* Added the global multiplier which is added on after MATK.
* Updated Highness Heal, Fresh Shrimp, and Bunch of Shrimp heal formulas.
Thanks to @Tokeiburu for his extensive research and code!
* Small cleanup of Rune Knight Runes
* Stone Hard Skin weapon break chance only applies to physical melee attacks.
* Giant Growth's physical bonus damage only applies to Rune Knights.
* Corrected weapon break chance to only happen when damage is increased for Giant Growth.
Thanks to @Rytech2 and @Jeybla!