Commit graph

44 commits

Author SHA1 Message Date
r-log
e5317def81 [Cleanup] Remove the unused USE_STORMLIB option
Nothing in this repo's own tree reads the variable: the CI workflows,
ci-compile.sh, and the repo's CLAUDE.md example already stopped passing
-DUSE_STORMLIB in an earlier commit, leaving the option() declaration
orphaned. Mirrors the removal already done on mangoszero/server.

The Eluna submodule's own CI still passes -DUSE_STORMLIB:BOOL=1 when it
builds this repo, but an unrecognized -D is a non-fatal CMake warning,
not a configure failure, and Eluna is maintained in its own repo.
2026-08-03 07:19:25 +01:00
billy1arm
9c0068e7be
Remove unused USE_STORMLIB directive. Thanks Pysis 2026-08-01 23:50:01 +01:00
billy1arm
808af8450e
Rel23 Prep pt1 2026-07-31 00:32:30 +01:00
H0zen
b0e4b2a828 United cores
Four cores brought to one shape.

TERRAIN. src/shared/terrain in all four behind the TerrainInfo seam, and no
src/game/vmap anywhere: one baked tile carries ground, liquid, area and
collision together. The seam is load-bearing -- the moment the engine learns
what a zone is, it can no longer live in shared. A hull has surfaces stacked at
one (x, y), so the query is a Column, not a height.

SPATIAL. An object no longer owns coordinates: it HAS a Geometry::Placement,
read through Where() and mutated through Place(). A placement carries the FRAME
it is in, and a cross-frame answer fails closed -- so "same map AND in range"
cannot be written wrong, because it is one question. Ground height, line of
sight and the free-spot sweep were never geometry and became free functions
beside it.

MOVEMENT. A generator states an INTENT -- where the mover wants to be -- and a
driver realises it. The two were one thing before, so every generator knew how
movement is executed and none could be reasoned about alone. An intent resolves
in the mover's OWN frame, so chase, follow and a random walk on a deck are
computed in deck coordinates without the caller knowing there is a deck, and the
pathfinder is handed the map it routes on rather than assuming the world's.

TRANSPORTS. The vessel IS a map. A ship's hull is baked as its own map with its
own terrain, so a passenger stands on real ground rather than on an offset, and
deck-local is the only coordinate system aboard. The server's estimate of a
hull's world position is used for one thing only -- finding observers ashore --
and never composed into anything.

SD3. The scripts moved onto Where()/Place() and the free functions beside them,
so the old coordinate-owning API is not compiled at all in an SD3 build. What
remains of the compatibility layer exists for Eluna alone. dep, realmd and SD3
all point at merged upstream.

EXTRACTORS. One baker per core, from the client to the caches the server reads,
with a Windows GUI in front of it: checkboxes per component, folder and file
pickers, a live log. It drives the console tool through its command line and
links none of it. Cataclysm's split ADT and its MPQ patch chain are read
properly; every core's output is scored against the world database's own ground
spawns, 97-99% within two yards.

ALSO. Off-thread logging and one startup console. The src/proto network seam,
enforced at build time -- game links proto, proto reaches neither game nor the
database. C++17 throughout, ACE and G3D gone. One test harness, socket tests
behind their own switch. Layout, CI and ignore rules identical across the four.

Built with both script engines on GCC, Clang and MSVC.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 18:34:47 +01:00
MadMax
9dc43b345d
chore: integrate realmd auth hardening 2026-07-23 21:58:41 +01:00
MadMax
5155841ae0
Decouple world networking and harden ACE removal (#150)
* fix: harden ACE removal networking and OpenSSL runtime

Constrain builds and runtime loading to OpenSSL 3.x, update the merged realmd pointer, and add regression coverage. Harden backend shutdown, session lifetime, async authentication, and startup failure handling across the ACE replacement network stack.

* refactor: separate wire opcodes from game dispatch

* refactor: add isolated world protocol primitives

* refactor: isolate world client connections

* refactor: decouple world networking from game policy

* test: cover the world protocol boundary

* fix: make mailbox ownership transfer explicit

* fix: contain gateway exceptions per connection

* fix: close session publication races

* fix: declare pet item prototype dependency

* fix: preserve auth ordering and session synchronization
2026-07-23 03:25:21 +01:00
H0zen
6cbf136a47 ACE removal - phase 2/2 2026-07-13 23:49:41 +01:00
H0zen
705fe156d1 ACE removal - phase 1/2.
This is the first phase, before the complete removal of ACE.
See ChangeLog.txt for what changed here.
This commit introduces full transporters' crews/pets/totems/etc support
2026-07-12 19:29:51 +01:00
H0zen
3b75befc76 Network engine: decoupled game/session logic from the network thread.
- WorldSocket::HandleAuthSession no longer runs synchronous, blocking
    LoginDatabase queries (plus a stray 10ms sleep) on the network thread;
    it now fires a single async account+ban-check query and finishes session
    creation in a new HandleAuthSessionCallback, invoked on the world thread
    via the existing Database::ProcessResultQueue()/AsyncPQuery mechanism.
    - CMSG_PING and CMSG_KEEP_ALIVE are no longer special-cased in-place on the
    network thread; they are now ordinary queued STATUS_AUTHED opcodes
    handled by new WorldSession::HandlePingOpcode()/HandleKeepAliveOpcode()
    on the world/map thread, removing a WorldSession field race and an
    off-thread Eluna hook call. Ping-flood tracking state moved from
    WorldSocket to WorldSession accordingly.

    See ChangeLog.txt for a full list of changes.
2026-07-09 07:30:05 +01:00
billy1arm
e5779744f6
[Build] Fix build paths in prefix blank 2026-05-10 23:57:42 +01:00
H0zen
e5cd68c563
Fixed non PCH build and updated GitHub actions (#211)
* Fixed non PCH build
  - Updated CMakeLists.txt
  - Updated GitHub actions
  - Updated non-portable / not safe localtime* methods
  - Minor refactoring on some time-to-string methods

* Fixed error from GitHub actions

* fix trailing space

---------

Co-authored-by: Antz <billy1arm@users.noreply.github.com>
2025-12-25 01:47:17 +00:00
billy1arm
95ac0461a1
Happy Valentines Day 2025 from everyone at getMangos.eu 🎉 2025-02-12 22:47:28 +00:00
H0zen
5c250b0a2e
C++17 and updated workflows 2024-08-18 23:27:26 +01:00
Antz
ffcd98e4d8
Fix Gentoo build of openSSL3.x. Thanks to @Shaorin for pointing 2023-11-08 22:37:51 +00:00
Antz
6f9bf25e26
Added OpenSSL3.x support based on the work on @Meltie2013 and @i-am-fyre 2023-10-20 15:28:27 +01:00
Antz
d62fdfe93b
Happy New Year 2023 from everyone at getMangos.eu 🎉
Signed-off-by: billy1arm <antz@cix.co.uk>
2022-12-31 22:09:38 +00:00
Meltie2013
1f870a87bc
Improve Revision System (mangosthree/server#52)
Improve issue and bug reporting with Git Hash tracking
2022-06-25 00:10:22 +01:00
Antz
7a1718161d
raise minimum cmake version to 3.12 2022-02-14 18:08:05 +00:00
Antz
8b821d7be6
Happy New Year 2022 from everyone at getMangos.eu 🎉
Signed-off-by: Antz <antz@cix.co.uk>
2022-01-01 01:02:46 +00:00
Foereaper
105bbfed3b
Remove in-house SSL script
This is included in cmake, >=3.18 gives SSL 3.0 support as well
2021-11-08 12:12:04 +00:00
Meltie2013
2658d98140
OpenSSL Version Check & Ensure Version Package (#160)
* Impement Ensure Version for OpenSSL

* Fix OpenSSL library linking to most of the project

* Cleanup of old file

* Make error message a bit more clear on invalid versions

* Link Submodule changes to main PR

* Attempt to fix missing symbol DSO compile issue linux
* Sometimes I need to learn to look into things a bit more.
2021-08-02 21:07:09 +01:00
andybe
56d2731461
CMakelist.txt in sync with release point (#103)
Co-authored-by: AndyBe <andreas.benzler@gmail.com>
2021-05-18 20:47:44 +01:00
Warkdev
3adebd43d4 [Extractors] Convert Extractors to use stormlib
This is purely swapping over the libraries behind the extractors.
- You should not need to extract the files again.
2021-02-04 23:41:10 +00:00
Antz
dd79a17bf2
Release 22 2020-12-29 20:37:16 +00:00
Antz
760d798fc2 Correct .EXE release number back to Rel21 2020-05-12 20:32:37 +01:00
Antz
c90a3f4c6f Happy New Year 2020 from everyone at getMangos.eu 🎉
This is the year change commit.

But its also a build system rollup commit as a lot of the submodules
already had the changes in them
2020-01-07 12:59:48 +00:00
Antz
0236466d92
Happy New Year 2019 from everyone at getMangos.eu 🎉 2019-01-02 23:54:04 +00:00
H0zen
be0faa2294 Implement OpenSSL 1.1.x support 2018-04-12 21:16:39 +01:00
Antz
a3b8214117 [Build] Update to newer build system, based on the work of H0zen 2018-04-10 22:14:41 +01:00
Antz
13d333f268 Update missed year changes 2018-04-05 12:22:41 +01:00
H0zen
4b820ff52a New thread pool reactor implementation and refactoring world daemon. (#8)
* New thread pool reactor implementation and refactoring world daemon.

* Fix Linux build.

* Fix Windows debug builds.
2017-02-11 22:03:48 +00:00
Antz
8853416ad8 Remove obsolete code 2017-02-06 07:50:12 +00:00
Antz
b7e58e4f6f Prep for Rel21 2017-01-04 15:05:06 +00:00
Antz
727f64c221 🎉 Happy 2017 from everyone at getmangos.eu 2017-01-01 23:57:42 +00:00
H0zen
d38a4dc8ea Many fixes ported from Zero 2016-09-26 22:36:47 +03:00
Antz
b5e117edb7 [Build] Enhanced Build System
Added additional build options:

BUILD_MANGOSD
BUILD_REALMD

ALSO DECOUPLED BUILD_TOOLS

All three can now be built separately from each other

EasyBuild has been update to support the extra options
2016-09-15 00:55:26 +01:00
Antz
f08fc0a994 Corrected website URL 2016-03-20 22:09:47 +00:00
Antz
b2e31ca749 [2016] Happy New Year from the MaNGOS Team 2015-12-31 21:34:27 +00:00
H0zen
dfa293adff Corrections to the build system.
- FreeBSD does not support ACE_Stack_Trace
    - Made internal ACE build symmetrical with its external counterpart
    - Removed a redundant compiler directive
2015-12-28 18:49:05 +00:00
Antz
b288ebd01f [Build] move core definition into cmake 2015-12-01 21:46:41 +00:00
Antz
a3d7177065 [SD3] Added initial ScriptDev3 changes 2015-11-02 22:07:26 +00:00
H0zen
61acb1dde0 Minor corrections to the build system. 2015-09-07 21:35:24 +01:00
Foereaper
02d868127f [Cleanup] Complete cleanup of cmake build system and Warden implementation
This is a complete cleanup port from Zero, containing cleanup update one through six

This also contains submodule updates and Warden
2015-05-07 21:48:05 +02:00
Antz
32306361ea [Rel20] Initial Release20 Commit 2015-05-02 23:20:03 +01:00