Skip to content

Dev#1513

Merged
cbnolok merged 115 commits intomasterfrom
dev
Nov 15, 2025
Merged

Dev#1513
cbnolok merged 115 commits intomasterfrom
dev

Conversation

@cbnolok
Copy link
Copy Markdown
Contributor

@cbnolok cbnolok commented Nov 15, 2025

Merge dev branch

cbnolok and others added 30 commits May 9, 2025 20:04
…also for Nightly and Release builds

Useful for profiling
…ediate link-in-a-library stage.

This speeds up overall compilation, since only one link pass is done,
instead of one per target.
…n sphere.ini (#850) (#1416)

- fixed search for another webpage_type, since table isnt sorted
* - fixed dropping items to container with tdata3/4 ending in point 0,0 (second part of #793)
- added check for placing items into containers with tdata3/4 with actual values instead of fixed ones
- changed generating value for random location in container with tdata3/4 to be same as without tdata3/4

* - changed max X/Y Gump size calculation with tdata on containers
- warning, if tdata4 is lower or not set and tdata3 is
* - require both tdata3/4 when using custom container dimensions

* - fallback values for random container position
- warn if we don't have hardcoded value
- warn not to use hardcoded value

* - remove notice about hardoded values (too much spam on console)

* - division by zero check
…void heap allocating it each time (happening very often)
- Changed: Moved all the script grammar parsing code to CExpression.
  Each Sphere thread has its copy of CExpression, which now is mostly
  multi-thread capable.
- Changed into CExpression:
  Made CScriptSubExprState array, used for parsing subexpressions, a
    member of CExpression, instead of allocating it multiple times
    and passing it around through the functions.
  Stack-allocate CScriptExprContext struct and pass it around the
    functions. It's sufficiently small and way faster than heap
    allocating it each time, or taking it from a heap-allocated pool.
- Changed: Moved DEFMSGs, LISTs, VARs into a new class meant to be a
  thread-safe holder class for global data, instead of storing them on
  CExpression, named CExprGlobals.
- More info about sobjpool.h, added two commits ago:
  It's a library to create a pool of heap pre-allocated
  objects. These can be reused by borrowing one from the pool. It's
  useful for objects with expensive constructors and/or objects that
  are very frequently allocated/deallocated, to avoid the cost of
  heap allocation/deallocation and construction/destruction.
- Changed: sstacks.h class names, added another helper stack container
  class.
- Added: class GuardedAccess into basic_threading.h.
  It offers methods to retrieve LockedReader/LockedWriter objects which
  also hold a  mutex lock.
  There are also methods which will lock the mutex only if
  MT_ENGINES macro is enabled, so that the core won't incur in useless
  mutex locking overhead when unneeded (the multi-threaded world/script
  handling and networking isn't complete).These are mtEngineLockedReader
  and mtEngineLockedWriter.
  It's possible also to retrieve an non-locked/unguarded access.
…ld (#1427)

* Replacing existing VarStr/VarNum on Boot now give warning in nightly build

* Update sphereCrypt.ini
Moved CppCheck cmake code in a separate file.
Changed fc::vector_set usage to std::vector.
mtwango and others added 29 commits October 1, 2025 19:50
fix equipping in paperdoll
Fix - players equipping gear by drag in to paperdoll
…ction call stacks, which held data from different threads instead of only one). Split spheresvr.cpp classes in different files.
@cbnolok cbnolok merged commit 7c5c453 into master Nov 15, 2025
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants