* 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>
Renames "build_servers.yml" to "build_servers_gcc.yml"
Removed Pre-Renewal and Renewal from GCC compilation
Added an action for Pre-Renewal and Renewal
Added an action for VIP
Added an action for different packet versions
Added MSVS build
Changed some make server to make all
Added master building
Disabled LTO by default
Added some missing override declarations
Added Clang building
Disabled Clang 12 and 13 for the time being
Thanks to @aleos89 and @Akkarinage for their help and input.
With this you can now support more connections on linux, even if your system header is still set to a smaller value.
Make sure to increase the limit of open file handles with ulimit or other resource related settings.
You can change the compile time value of supported connections with ./configure --with-maxconn=value
Windows default is still 4096.
* Fixes#2572.
* Added a custom rule to avoid optimization causing monsters to not attack. (From tests this appears to be npc.cpp on Centos 7 and mob.cpp on Windows vc141)
* Added -fno-strict-alising to CMake when building with GCC. (Clang and VS have it by default)
* Fixed cmake output path.
Thanks to @lighta!
* Renamed inter.c to inter.cpp and refactored it
* Converted inter_server.conf to inter_server.yml
* Updated the makefiles
* Refactored inter-server storage handling logic
* Fixed a bug with wrong maximum being displayed
When you took out an item of the storage it would always display the maximum amount of the normal storage.
* Fixed a bug with storages that are over maximum
Thanks to @Akkarinage, @Lemongrass3110 and @Jeybla
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.
Align account_id and char_id to uint32 as this is the value they can be
in DB.
Remove src/test folder, unused
Remove useless #include to speedup compilation.
Add some requested option :
--enable-prere, --with-outputchar --with-outputlogin --with-outputmap
This allow to try in prere/re mode and to chose binary name for output
file easily.
--Upd map Makefile.in to auto add header file in folder
--Upd configure to fix some debuging issue on some OS (-g flag issue)
--Upd athena-start, add --enlog option to create a log file with a tee. (all the normal console could now be logged into that file) thx to Beanux
nb : this logging option doesn't actually support file oversize
--add --enable-warn=extra to show -Wconversion issues
--move -Wno-switch from prod only to all case
-Update packet_db thx (TTest)
--fix index typo for itemlistwindowselected(all),cashshopbuy(2010-11-24 => v26-30, 2012-04-10 => v30-34) bugreport:7723
-Add utils::date2version (lookup a version with a date for later usage)
-Fix missing revert part in mmo_send_char bugreport:7734
-Merge little herc change:
--fix possible mapcrash in SCB_MATK with SC_RECOGNIZEDSPELL and change status->matk_min calculation order to speed up thing
--add OFFICIAL_WALKPATH exception for BL_NPC
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17367 54d463be-8e91-2dee-dedb-b68131a5f0ec
--Add pcre version on output.
--Add tmp bugfix for bugreport:6671, (look like a GNU vs BSD issue)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17159 54d463be-8e91-2dee-dedb-b68131a5f0ec
-Upd configure to disable warning only when enable-debug option ain't selected. (thus if you wanna see more warnings compile with enable-debug)
-Add -Wconversion in configure.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17061 54d463be-8e91-2dee-dedb-b68131a5f0ec
Note
The files i added / modifications i did, are not affecting a normal build
nothing gets changed yet!
Linux 2.5+ only yet.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16271 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added Abstractions for Atomic Operations (lock instructions.. windows guy's may now this as Interlocked* stuff ..)
- Added Threading api abstraction for Pthread based OS's and Windows
- Added Spinlock Implementation (uses CAS / if you need more informations - just read the source - its simple.)
- Due to Interlocked(Compare)Exchange64 .. we now require at least i686 (Pentium Pro) for 32Bit Builds :)
youll also may feel some performance improvements when using 32bit builsd due to "newer" minimal arch
the compiler is now able to use CMOV's ....
================================================================
= Important Warning:
================================================================
Dont use threading at the moment athena is not threadsafe!
you'll mess up everthing when accessing data from other threads .., no synchronization is provided.
A way to process tasks asynchronously will come up after / with the new socket system.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16221 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
Info:
No need for --enable-64bit anymore,
you can force to build 32bit bin's on such platforms by adding a --disable-64bit (or --enable-64bit=no) ..
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16197 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
* Fixed TXT-removal branch configure and Makefile errors and removed TXT-only leftovers.
* SQL libs are now required to configure/make TXT-removal branch.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15499 54d463be-8e91-2dee-dedb-b68131a5f0ec