完全搞定除了皮肤
This commit is contained in:
@@ -4,15 +4,15 @@ extern auto TimerCallBack(_GameTimer* timer) -> void;
|
||||
extern auto RunTickCallBack(_GameTickRunTime* timer) -> void;
|
||||
}; // namespace ScriptApis
|
||||
namespace GameTimer {
|
||||
std::shared_mutex mutex_timerList;
|
||||
std::recursive_mutex mutex_timerList;
|
||||
std::vector<_GameTimer*> timerList;
|
||||
auto AddTimer(_GameTimer* timer) -> int {
|
||||
std::unique_lock<std::shared_mutex> lock(mutex_timerList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_timerList);
|
||||
timerList.push_back(timer);
|
||||
return timerList.size() - 1;
|
||||
};
|
||||
auto CleanUpTimers() -> void {
|
||||
std::unique_lock<std::shared_mutex> lock(mutex_timerList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_timerList);
|
||||
for (auto it = timerList.begin(); it != timerList.end();) {
|
||||
if ((*it)->m_bPreserveMapChange) {
|
||||
++it;
|
||||
@@ -23,7 +23,7 @@ auto CleanUpTimers() -> void {
|
||||
}
|
||||
};
|
||||
auto ExcuteTimers() -> void {
|
||||
std::shared_lock<std::shared_mutex> lock(mutex_timerList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_timerList);
|
||||
for (auto it = timerList.begin(); it != timerList.end();) {
|
||||
if ((*it)->m_flLastExecute == -1) {
|
||||
(*it)->m_flLastExecute = global::m_flUniversalTime;
|
||||
@@ -44,21 +44,21 @@ auto ExcuteTimers() -> void {
|
||||
}
|
||||
}; // namespace GameTimer
|
||||
namespace GameTickRunTime {
|
||||
std::shared_mutex mutex_tickRunList;
|
||||
std::recursive_mutex mutex_tickRunList;
|
||||
std::vector<_GameTickRunTime*> tickRunList;
|
||||
auto AddTickFunction(_GameTickRunTime* timer) -> void {
|
||||
std::unique_lock<std::shared_mutex> lock(mutex_tickRunList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_tickRunList);
|
||||
tickRunList.push_back(timer);
|
||||
};
|
||||
auto CleanUpTickFunctions() -> void {
|
||||
std::unique_lock<std::shared_mutex> lock(mutex_tickRunList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_tickRunList);
|
||||
for (auto it = tickRunList.begin(); it != tickRunList.end();) {
|
||||
delete (*it);
|
||||
it = tickRunList.erase(it);
|
||||
}
|
||||
};
|
||||
auto ExcuteTickFunctions() -> void {
|
||||
std::shared_lock<std::shared_mutex> lock(mutex_tickRunList);
|
||||
std::unique_lock<std::recursive_mutex> lock(mutex_tickRunList);
|
||||
for (auto it = tickRunList.begin(); it != tickRunList.end();) {
|
||||
ScriptApis::RunTickCallBack(*it);
|
||||
delete (*it);
|
||||
|
||||
Reference in New Issue
Block a user