mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[10727] Map system re-engineered. Special thanks to Blueboy for tests.
Signed-off-by: Ambal <pogrebniak@gala.net>
This commit is contained in:
parent
f5e40a5fda
commit
f67d89f109
43 changed files with 1254 additions and 1128 deletions
|
|
@ -33,14 +33,12 @@ class GridInfo
|
|||
public:
|
||||
|
||||
GridInfo()
|
||||
: i_timer(0), i_unloadActiveLockCount(0), i_unloadExplicitLock(false),
|
||||
i_unloadReferenceLock(false)
|
||||
: i_timer(0), i_unloadActiveLockCount(0), i_unloadExplicitLock(false)
|
||||
{
|
||||
}
|
||||
|
||||
GridInfo(time_t expiry, bool unload = true )
|
||||
: i_timer(expiry), i_unloadActiveLockCount(0), i_unloadExplicitLock(!unload),
|
||||
i_unloadReferenceLock(false)
|
||||
: i_timer(expiry), i_unloadActiveLockCount(0), i_unloadExplicitLock(!unload)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -48,11 +46,10 @@ class GridInfo
|
|||
|
||||
bool getUnloadLock() const
|
||||
{
|
||||
return i_unloadActiveLockCount || i_unloadExplicitLock || i_unloadReferenceLock;
|
||||
return i_unloadActiveLockCount || i_unloadExplicitLock;
|
||||
}
|
||||
|
||||
void setUnloadExplicitLock( bool on ) { i_unloadExplicitLock = on; }
|
||||
void setUnloadReferenceLock( bool on ) { i_unloadReferenceLock = on; }
|
||||
void incUnloadActiveLock() { ++i_unloadActiveLockCount; }
|
||||
void decUnloadActiveLock() { if (i_unloadActiveLockCount) --i_unloadActiveLockCount; }
|
||||
|
||||
|
|
@ -65,7 +62,6 @@ class GridInfo
|
|||
TimeTracker i_timer;
|
||||
uint16 i_unloadActiveLockCount : 16; // lock from active object spawn points (prevent clone loading)
|
||||
bool i_unloadExplicitLock : 1; // explicit manual lock or config setting
|
||||
bool i_unloadReferenceLock : 1; // lock from instance map copy
|
||||
};
|
||||
|
||||
typedef enum
|
||||
|
|
@ -129,7 +125,6 @@ class MANGOS_DLL_DECL NGrid
|
|||
const TimeTracker& getTimeTracker() const { return i_GridInfo.getTimeTracker(); }
|
||||
bool getUnloadLock() const { return i_GridInfo.getUnloadLock(); }
|
||||
void setUnloadExplicitLock(bool on) { i_GridInfo.setUnloadExplicitLock(on); }
|
||||
void setUnloadReferenceLock(bool on) { i_GridInfo.setUnloadReferenceLock(on); }
|
||||
void incUnloadActiveLock() { i_GridInfo.incUnloadActiveLock(); }
|
||||
void decUnloadActiveLock() { i_GridInfo.decUnloadActiveLock(); }
|
||||
void ResetTimeTracker(time_t interval) { i_GridInfo.ResetTimeTracker(interval); }
|
||||
|
|
|
|||
|
|
@ -121,12 +121,12 @@ namespace MaNGOS
|
|||
{
|
||||
public:
|
||||
|
||||
Lock(T& /*host*/)
|
||||
Lock(const T& /*host*/)
|
||||
{
|
||||
ClassLevelLockable<T, MUTEX>::si_mtx.acquire();
|
||||
}
|
||||
|
||||
Lock(ClassLevelLockable<T, MUTEX> &)
|
||||
Lock(const ClassLevelLockable<T, MUTEX> &)
|
||||
{
|
||||
ClassLevelLockable<T, MUTEX>::si_mtx.acquire();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue