* Automated Debian packaging for x86_64 build
* Do not check dependencies (since cmake in actions isnt installed with dpkg)
* Workflow update to avoid checking file existence in release
* changed domain and mail in deb release to new website
The CI log should be verbose so we can see what commands are really
being used, and it's pointless to use the default "beautified" ninja
output. In this case, I'd like to know why my ccache changes were not
used ("Hits: 0 / Uncacheable: 210"), see commit b06a46ebba
Let's make this a single command, removing the overhead for two "cd"
commands (the latter of which had no effect anyway because it was the
last command in the shell process).
"apt" is a wrapper for "apt-get" that is "better suited for
interactive usage", but really only adds overhead, and GitHub actions
are non-interactive by design.
It should be faster and safer than before, also it should fix a possible bug with the previous ticking system.
Also, made github workflows run on push on every branch, and added some ignored files.
Fixed: crash when moving a char in an area full of teleporters, or whichever items made the char move multiple times in the same tick.
Fixed: buffer read past the end in CCacheableScriptFile first reading.
Fixed: if a char had the COMM_CRYSTAL flag enabled, it called ::OnHear on every item in range, without checking if the item is actually capable of hearing.
Further optimized distance checks.
Separated the Github workflows into different files, in order to get a different badge for each build platform/type.
Dismissed AppVeyor build.
Added sphere_library/sfastmath.h.
Updated: sphereCrypt with newest EC client keys; moreover, fixed EC client version numbers.
Fixed: re-added some code lost during copypaste CChar::NPC_StablePetSelect() (credits to xwerswoodx).
Added: SERV.CALCCRYPT <client version string>, <optional: client type id>, <optional: force crypt type/algorithm>.
Returns the line for the given client version to be added to SphereCrypt.ini.
Client type id:
0 // Standard client (Classic, default)
1 // Old 3D client
2 // KR client
3 // Enhanced Client
Force crypt type:
0 // None (default: auto detect)
1 // Blowfish
2 // Blowfish + Twofish
3 // Twofish
4 // Login (old cypher used for some 1.x clients)
Huge cleanup of CCrypto.
Added _WIN32_WINNT version constants in os_windows.h.
This can be useful when using raw IDs (like 01, 0bd1, etc) instead of defnames.
- Improvement: changed the logic behind script files reading and caching, now it will be faster and require less memory.
- Fixed: correct thread name not being shown in the stack trace.
- Renamed ResourceGetID_Advance to ResourceGetID_EatStr, added fCanFail argument.
- Added some string functions, starting from POSIX C getline and getdelim (got the source from NetBSD and renamed to fReadUntilDelimiter), then added some more custom functions to help read from file or string buffers.
- Added DEBUG_ASSERT, to execute them only in Debug builds.
- Moved numerical map data into a different storage system to achieve maximum data locality and cache-frendliness.
- Added an additional argument to CUOTerrainInfo constructor to avoid string copying where the name of the tile is not needed.
- Tweaked libev wait and collect intervals.
- Dropped use of vector for CWorldSearch sector obj list in favor of raw dynamic arrays.
- Faster ThreadHolder::current() thread retrieval.
- Commented some ADDTOCALLSTACK/_INTENSIVE in map functions called extremely frequently.
- SphereAbs now uses the fastest abs functions available.
- Added more noexcept specifiers where appropriate.
Fixes:
- CNetState socket being initialized as non-blocking no matter of g_Cfg.m_fUseAsyncNetwork value.
- Changed CNetState m_useAsync and m_isSendingAsync to atomic variables to guard r/w from different threads (main, network).
Updated CMake toolchains: improved library search (link phase).
Updated gitignore to add KDevelop files.
Fixed unused parameters, now using them as fault check.
Added include guards to some headers.