#include "cServer.h"
#include "GetFunc.h"
#include "SendFunc.h"
#include "Basedef.h"
#include "HellGate.h"
#include "ArenaReal.h"
#include "CuboMaldade.h"
#include "QuestGelo.h"
#include "DropRate.h"
#include "DragonStories.h"
#include "UOD_EventManager.h"
#include "CombatTune.h"
#include "PositionSanity.h"

using namespace std::chrono_literals;

void ProcessSendTimer()
{
	for (int i = 1; i < MAX_PLAYER; ++i)
	{
		if (Users[i].Status == USER_EMPTY)
			continue;

		if (Users[i].Socket.nSendPosition == 0)
			continue;

		Users[i].SendMessageA();
	}
}

void ProcessSecTimer()
{
	// Cada segundo incrementa 1
	// !(counter % 10) quer dizer que passaram-se 10 segundos
	int counter = sServer.SecCounter;

	time_t rawnow = time(NULL);
	struct tm now; localtime_s(&now, &rawnow);

	counter++;

	CombatTune_TickReload();

	if (!(counter % 2))
		ProcessPositionSanity();

	CurrentTime = GetTickCount();

	DragonStories_Tick();

	auto nowChrono = std::chrono::steady_clock::now();
	for (auto&[type, event] : TOD_EventManager::GetInstance().GetEvents())
	{
		if (nowChrono - event->GetLastExecution() <= event->GetInterval())
			continue;
