* Use rapidyaml library to parse YAML databases instead of yaml-cpp.
* Drastically reduces the parse time for yaml databases.
* Removes yaml-cpp content from main servers, except for tool emitter.
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* 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
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.
* Initial progression of moving the map-server to C++ format.
* Converted all core files to .cpp and header files to .hpp.
* Refactored the refine database parser to utilize native YAML C++.
Thanks to @Jeybla and @lighta for their help!
* Information based on kRO patch notes.
- http://ro.gnjoy.com/news/update/View.asp?seq=163&curpage=1
* Includes Title System which is integrated into the Achievement System.
* Includes RODEX integration for rewards.
* Added new atcommand reloadachievementdb.
* Added new script commands achievementinfo, achievementadd, achievementremove, achievementcomplete, and achievementexists.
Thanks to @Lux-uri, @RagnarokNova, @Lemongrass3110, and @Tokeiburu for their help!
By updating to this commit, Linux users have to regenerate Makefiles by re-running the configure script.
* Added yaml-cpp project as a 3rdparty library
* Migrated source files core to C++
* Updated configure scripts
* Make Linux installations compile *.cpp files
* Made server components' main source file C++
* Also made headers CPP-aware.
* Added basic C wrapper for yaml-cpp library
* YAML-node path is delimited by periods.
* Basic integer types and string are supported.
* Strings returned from this wrapper have to be freed with malloc.h::aFree
* Arrays (sequence) is supported with iterator wrapper.
* Remember to free every wrapper you create!
* Add yaml-cpp as dependency of common project
* Made the repo not ignore *.yml files
Thanks to @aleos89 and @Lemongrass3110.
Removed the .dll files for the libraries from the root directory.
They are now copied from the 3rdparty folder when your build finishes and the project requires them.
If you clean your project they will also automatically be removed from the root directory again.
Updated libraries:
MySQL 5.0.20 -> 6.1.9
PCRE 8.30 -> 8.33.0.1 UTF8
Both Win32 and x64 are now supported. Remember to clean and build when you switch the target platform, otherwise you will end up with the wrong .dll files at runtime.
- Removed any remaining TXT and SQL references from files.
- The 'make sql' command is now replaced by 'make server'.
- Removed account.engine feature as it is no longer needed.
- Moved login and IP ban configs to inter_athena.conf.
- Cleaned up cmake files.
- Miscellaneous clean ups.
* Fixed Concentration ending when Frenzy is used. (bugreport:8942)
* Fixed Hells Plant hitting Ghost element enemies. (bugreport:8799)
* Forced guild notice changes to save immediately. (bugreport:8961)
* Fixed Cart Tornado damage formula. (bugreport:9065)
* Adjust Amistr's Castling to now switch to any target type. Still needs skill switching support. (bugreport:1784)
* Removed hard coded 1 second skill duration reduction for Spore Explosion.
* Fixed the party window not displaying the correct map name when in an instance. (bugreport:7949)
* Fixed hatching a pet causing client disconnections. (bugreport:9059) (Hercules 533ff4f)
* Updated Kagerou/Oboro skill cast times. (bugreport:9035)
* Removed deprecated negative nameid value for getitem/getitem2.
* Renamed incuvate to incubate throughout source and SQL.
* Added skill ID to the error display for battle_calc_attack to help resolve issues. (bugreport:8876)
* Cleaned and corrected some Sorcerer Elemental skills. (bugreport:9058)
* Cleaned up some more compile warnings.
Bug in Detail:
- Misplaced LDFLAGS uage in some Makefile templates (by passing them to the compiler not to the linker.)
- Wrong usage of volatile (a functions return value couldnt be declared to return volatile :D )
- Unsupported Inline ASM using lock xchg operation on llvm-gcc .. (apple loves this ..)
Fixed by:
- Removed unnecessary LDFLAGS
- Removed unnecessary volatile declarator
- Replaced InterlockedExchange and InterlockedExchange64 with gcc intrinsics.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16270 54d463be-8e91-2dee-dedb-b68131a5f0ec
- "Optimized" the build Output using Makefiles - to Kernel style build output.
- Changed dependency handling to common (core), by generating one lib file (ar) and link against that
instead of assigning all deps individually in every subproject
- Changed header dependency handling in Subproject makefiles - requiring all common/ headers.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16198 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Chanced libconfig.h include directives to double-quoted form (never use the system version of libconfig.h).
- Removed ShowError/ShowNotice from sig plugin (showmsg.c depends on core.c).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15737 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated VS9/10 project files.
- Updated `configure` & `Makefile`s.
- New GM, Commands & Permissions system:
- '''This is a backwards compatibility breaking update''', please read tid:58877
- Replaced GM levels with Player Groups.
- Commands permissions & other privileges now depend on group, not GM level.
- `@help` command improvements: requires "commandname" param and shows more detailed info about commands.
- Modified GM whisper system to deliver messages basing on permissions, not GM level.
- Remote trade request is now possible only if player is allowed to use `@trade` command as well.
- Added a proper permission to use `/changemaptype` command.
- `clif_displaymessage` is now capable of displaying multiline messages.
- All `ACMD_FUNC`s are static now, and the only way to invoke them is with `is_atcommand()`; all client commands (starting with `/`) are now translated into corresponding atcommands (with exception of `/kick` used on monster, as there is no atcommand to kill single monster).
- Removed nonsense "bot check" triggering when player blocked (`/ex`) Server.
- Merged `@monster`, `@monsterbig` and `@monstersmall`.
- Improved flow of atcommand execution to avoid revealing info about online players or existing commands to non-privileged players.
- Merged `atcommand` and `charcommand` script functions (`charcommand` is aliased to `atcommand`).
- Fixed `atcommand` script function reading unknown memory area (possible access violation).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15572 54d463be-8e91-2dee-dedb-b68131a5f0ec