Skip to content

Conversation

@cbnolok
Copy link
Contributor

@cbnolok cbnolok commented Jun 1, 2025

No description provided.

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.
cbnolok and others added 29 commits June 11, 2025 14:55
… Str_CheckName

Changed: CSectorList::Get() to return a reference and not a pointer.
…an are used (incompatible with lld and/or LLVM implementation)
…resize but use big buffers in a dedicated pool.
- Reserved some starting space for RESDEFs, DEFs and ResourceHash to
avoid unnecessary early reallocations.
- Cached some invariant sector data, instead of generating it on the fly
each time.
Also:
- Added support for delayed sorting of CResourceHash.
- Moved some CResourceHolder methods to CServerConfig, instead of having
spaghetti code calling virtuals from both classes.
…r Chars unable to tick but placed in the ticking list.
Expanded Str_To* functions by having a uiStopAtLen parameter, in order
to make it able to parse substrings. If the param is 0, just parse it
until the end as always.
…tick

CDataBase: moved mysql include files from .h to .cpp.
receive.cpp: do not take CScriptTriggerArgs from the standard script
parser buffer pool, because networking might happen in a different
thread than script parsing.
…rder to avoid useless costly copies of shared_ptr.
@cbnolok cbnolok closed this Sep 23, 2025
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.

4 participants