Commit graph

88 commits

Author SHA1 Message Date
David Kindl
eefd085d5d
Remove untrusted preinstalled MacOS tap 2026-07-23 14:56:12 +02:00
David Kindl
2670e26b63
Update ccache patch version, since it doesn't update itself (nodejs deprecation) 2026-07-23 14:35:22 +02:00
Mulambo
fc6eedbd82
Fix CI (#1585)
* Set Windows GitHub image to 2022 (VS 17)
* Update cache + msbuild to include nodejs 24 in CI
* Update actions
2026-05-20 10:12:18 +02:00
David Kindl
07933101a6
Update download/upload artifact action to resolve deprecated Node.js v20 (v24 is now default) 2026-03-11 16:55:56 +01:00
David Kindl
c0670ff5bc
Update deprecated codeql-actions from v3 to v4 2026-03-09 15:43:39 +01:00
David Kindl
480cd48e99
Fix ${{ }} wrapper in GitHub CI (either whole condition has to be in it or nothing) 2026-03-09 15:37:21 +01:00
Mulambo
fe4c6a574a
Automated deb packaging on master branch (#1544)
* 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
2026-03-09 13:25:27 +01:00
Mulambo
ab4823b74e
Upload selfhost master release to new website (#1554) 2026-03-09 12:19:28 +01:00
David Kindl
656b2db5f8 Fix github upload release ci permissions 2026-02-11 13:37:19 +01:00
cbnolok
86ae49bb4e Fixing.. the previous fix for github actions on master branch. 2025-11-18 20:43:07 +01:00
cbnolok
a4f461c2a1 Fixed github actions failing in master branch for missing permissions. Updated changelog. 2025-11-18 20:06:10 +01:00
Mulambo
ecd546ab05
MacOS container image update (13 will be removed in december) (#1489)
- fix reference to non-pointer member
2025-10-04 07:47:43 +02:00
mtwango
7df95a95fe
Update Ubuntu LTS to fix mariadb/mysql conflict in build job (#1468) 2025-09-23 20:14:41 +02:00
cbnolok
ca0666938c Added automatic CodeQL and Coverity scans also to master branch commit pushes. 2025-05-26 10:52:44 +02:00
cbnolok
19576735e9 Workflows: update coverity-scan.yml. 2025-05-25 23:38:50 +02:00
cbnolok
b439f7160a Github workflows: update jobs permissions. 2025-05-25 23:38:49 +02:00
cbnolok
6c492d2be9 Updated CodeQL actions. 2025-05-25 23:38:49 +02:00
cbnolok
0cc91dac01 .github/workflows: added ld type and version reporting 2025-04-27 18:18:50 +02:00
cbnolok
09f2d2364e Github workflows/osx: do not attempt to install ninja, it's already there 2025-04-26 17:35:44 +02:00
Max Kellermann
8ad988a8f3 .github/workflows/build_linux*: add GCC option "-fpch-preprocess"
Another improvement for ccache with GCC+PCH, see ccache maual.
2025-02-14 08:30:57 +01:00
Max Kellermann
aff7f58a58 .github/workflows/build_linux*: configure ccache sloppiness for PCH
ccache cannot cache projects using PCH properly unless we allow it to
be "sloppy" about it.  See ccache manual.
2025-02-14 08:26:33 +01:00
Max Kellermann
6f59cff590 .github/workflows/build*: pass "-v" to ninja
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
2025-02-14 08:13:45 +01:00
Max Kellermann
390f8ff773 .github/workflows: start ninja with the "-C" option
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).
2025-02-14 07:52:32 +01:00
Max Kellermann
b06a46ebba .github/workflows/build_linux_*: use ccache to speed up builds 2025-02-14 07:52:32 +01:00
Max Kellermann
4b05fc7861 .github/workflows: use "apt-get" instead of "apt"
"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.
2025-02-14 07:52:32 +01:00
Max Kellermann
6bac383243 .github/workflows: merge adjacent "apt install"
Each "apt install" invocation loads the package database, and merging
two calls speeds up the build.
2025-02-14 07:52:32 +01:00
cbnolok
36ca3bdec4 Reworked worldobjs ticking lists to use vectors.
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.
2025-02-12 19:45:41 +01:00
cbnolok
b48c0eac6b Github workflows ignore .txt and .md files 2025-02-12 19:45:41 +01:00
cbnolok
ae8297ff1b Move the workflow binariy and .ini files into the root folder #1277 2024-09-05 12:28:32 +02:00
cbnolok
dffa6fb84f Added Linux-AArch64 and OSX-AArch64 toolchains, cleanup of other toolchains. 2024-08-26 16:30:59 +02:00
cbnolok
7a9a90c47c Fixed Linux/MacOS ARM build artifact not being uploaded to our host and Coverity build 2024-08-07 12:33:41 +02:00
cbnolok
e3db3e4753 Fix CMakeDetectArch for x86 2024-08-06 09:56:32 +02:00
cbnolok
1548abf9dd Updated README.md
Added more log messages for Linux x86 build and Coverity upload
workflow.
2024-08-06 09:56:32 +02:00
cbnolok
3aa85ba032 Updated gh workflow names and badges in README.
Fixeid an invalid memory read when reading the last script file line.
2024-08-06 09:56:32 +02:00
cbnolok
5c9ea6bff6 Fixed: LASTUSED, LASTDISCONNECTED, TIMESTAMP being interpreted as a number with a different base (seconds or tenths of seconds or milliseconds) in different contexts. Now they expect in scripts only values in seconds.
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.
2024-08-06 09:56:32 +02:00
cbnolok
945ce47fc0 Fixed a case of wrong << parsing inside other angular brackets.
Changes to functions to retrieve the monotonic clock value: on non-Windows OSes they now use faster backends according to the time precision needed.
2024-06-13 15:22:49 +02:00
cbnolok
d598dedb8f Changed: how the client versions are handled internally (now use CUOClientVersion), since newest clients have a revision number > 100 and it broke compatibility with previous internal representations.
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.
2024-06-08 19:53:41 +02:00
cbnolok
c7f4eb52f1 - Added: client commands ADDITEM and ADDCHAR, to be used in place of .ADD when there's the need to force the argument to be an item or a char.
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.
2024-06-04 13:56:45 +02:00
cbnolok
d04dc35bd3 Updated phmap lib, fixed osx-arm64 executable name, removed _32/64BITS macro references, added llvm symbolizer path to windows clang util bat. 2024-05-27 19:12:00 +02:00
cbnolok
80929e0e24 Added static linking of (a)san library. Fixed C library target arch. 2024-05-23 23:02:59 +02:00
cbnolok
66ef50b3c6 Some more optimizations, changed rand algorithm to the fast one for trivial tasks, fixed MSVC, typo for OSX toolchains and rigid cast making the Linux build fail. 2024-05-23 19:10:16 +02:00
cbnolok
e355543faa Core optimizations.
- 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).
2024-05-19 18:54:23 +02:00
cbnolok
3b2c4d9c6d Updated zlib to v1.3.1
Added Apple Silicon ARM build for Mac OS
Fixed Clang 15 compilation on newer MacOS images
2024-05-06 10:59:10 +02:00
cbnolok
19d9b91b18 Update deprecated actions in github build workflow 2024-05-06 10:04:26 +02:00
cbnolok
41b9dcc806 Fixed GCC compilation error, fixed some warnings. 2024-05-05 22:59:38 +02:00
cbnolok
93b4a9881e Updated c++ std version to c++20.
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.
2024-05-04 12:46:34 +02:00
cbnolok
24308e45d4 - Created new namespace "sl" to hold sphere_library classes and functions (it will be slowly populated).
- Added new "smart" pointer sl::smart_ptr_view, a customized version of the proposed std::observer_ptr. Use this to make clear that you aren't managing the lifetime of the pointer you are using, since it's owned by a unique_ptr or shared_ptr.
- Added new "smart" sl::raw_ptr_view. Same concept of sl::smart_ptr_view, but it wraps a raw/bare pointer (most often it will be used in conjunction with legacy code, which doesn't use smart pointers).

- Renamed CSSortedVector to sl::sorted_vector.
2023-10-23 22:35:20 +02:00
cbnolok
b19d063d04 Fixed warnings and coverity download being picky and case sensitive. 2023-10-19 18:36:00 +02:00
cbnolok
d09b2f071b Fixed recent GMPage crash (Issue #1136). Updated Coverity scan yml. 2023-10-19 17:50:47 +02:00
cbnolok
cc3a13c4b1 Fixed compilation on older GCC versions and coverity utility download for the static analysis workflow.
Using static buffers in CScript.h instead of _sWriteBuffer_num and _sWriteBuffer_keyVal.
2023-10-18 21:03:54 +02:00