Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,264 @@
#include "stdafx.h"
#include "Pulse.h"
#include <mmsystem.h>
#include <BaseLibrary/Log/ServerLog.h>
CPulse& CPulse::GetInstance()
{
static CPulse Pulse;
return Pulse;
}
CPulse::CPulse()
: m_dwPulse(0),
m_dwLastTick(timeGetTime()),
m_dwHeavyTrafficCount(0),
m_bTPPOverTwoTime(FALSE),
m_nTicksPerPulse(0),
m_nTicksPerSec(0)
{
SetTicksPerPulse(DEFAULT_TICKS_PER_PULSE);
}
CPulse::~CPulse()
{
}
void CPulse::SetTicksPerPulse(long nTicksPerPulse)
{
if(nTicksPerPulse <= 0)
{
nTicksPerPulse = DEFAULT_TICKS_PER_PULSE;
}
m_nTicksPerPulse = nTicksPerPulse;
m_nTicksPerSec = 1000 / nTicksPerPulse;
}
unsigned long CPulse::GetRemainTime() const
{
long nElapsed = timeGetTime() - m_dwLastTick;
if (nElapsed < m_nTicksPerPulse)
{
return (m_nTicksPerPulse - nElapsed);
}
return 0;
}
unsigned long CPulse::CheckSleep()
{
long nElapsed = timeGetTime() - m_dwLastTick;
if (nElapsed < m_nTicksPerPulse)
{
// <20><EFBFBD>ð<EFBFBD><C3B0><EFBFBD> TPP<50><50><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sleep
unsigned long dwSleep = (m_nTicksPerPulse - nElapsed) - 1;
unsigned long dwTicksPerPulse = m_nTicksPerPulse;
if(m_nTicksPerPulse < 0)
{
dwTicksPerPulse = 0;
}
if(dwTicksPerPulse < dwSleep)
{
dwSleep = 0;
}
Sleep(dwSleep);
m_dwHeavyTrafficCount = 0;
m_bTPPOverTwoTime = FALSE;
}
else if(((++m_dwHeavyTrafficCount) > 5) || (nElapsed > (m_nTicksPerPulse * 2)))
{
// <20><20>ð<EFBFBD><C3B0><EFBFBD> TPP<50><50> <20>ι<CEB9><E8BAB8> ū <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʈ<><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
DETLOG3(g_Log, "Time Overflow : Elapsed time is %u, (TPP is %d), HeavyTrafficCount is %u"
, nElapsed, m_nTicksPerPulse, m_dwHeavyTrafficCount);
m_bTPPOverTwoTime = TRUE;
}
else
{
DETLOG1(g_Log, "Traffic is %u", m_dwHeavyTrafficCount);
m_bTPPOverTwoTime = FALSE;
}
m_dwLastTick = timeGetTime();
++m_dwPulse;
if(0 == m_dwPulse)
{
// <20><><EFBFBD><EFBFBD> <20>޽<EFBFBD><DEBD><EFBFBD> <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD>Ƽ<EFBFBD> <20>ٽ<EFBFBD> 0<><30><EFBFBD><EFBFBD> <20><><EFBFBD>ƿԴٸ<D4B4>,
// <20>ѹ<EFBFBD> <20><> <20><><EFBFBD>ؼ<EFBFBD> 0<><30> <20><> <20><> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
++m_dwPulse;
}
return m_dwPulse;
}
/*
#include "../stdafx.h"
#include "Pulse.h"
#define DEFAULT_TPP 100
CPulse g_Pulse;
// constructor and destructor
CPulse::CPulse() : m_dwPulse(0), m_dwExtraTick(GetTickCount()), m_dwLastTick(GetTickCount()), m_dwHeavyTrafficCount(0), m_TPPOverTwoTime(false)
//, m_SleepOperation(NULL)
{
SetTicksPerPulse(DEFAULT_TPP);
for (int i=0; i<PULSETABLE_NUM; ++i)
::ZeroMemory(&m_PulseTable[i], sizeof(PULSE_TIMER));
DETLOG1(g_Log, "this:0x%08x.", this);
}
CPulse::~CPulse()
{
DETLOG1(g_Log, "this:0x%08x.", this);
}
void CPulse::SetTicksPerPulse(unsigned long dwTicksPerPulse)
{
m_nTicksPerPulse = dwTicksPerPulse;
}
//void CPulse::SetSleepOperation(Operation pOperation)
//{
// m_SleepOperation = pOperation;
//}
unsigned long CPulse::CheckSleep(void)
{
m_dwExtraTick = GetTickCount();
unsigned long nElapsed = m_dwExtraTick - m_dwLastTick;
if (nElapsed <= m_nTicksPerPulse) {
// <20><EFBFBD>ð<EFBFBD><C3B0><EFBFBD> TPP<50><50><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Sleep
if (nElapsed < m_nTicksPerPulse) {
//if (m_SleepOperation) {
// // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>۷<EFBFBD><DBB7>̼<EFBFBD><CCBC><EFBFBD> <20><><EFBFBD><EFBFBD>
// m_SleepOperation();
// // <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ŀ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> Ȯ<><C8AE><EFBFBD>ؼ<EFBFBD> TPP<50><50><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> Sleep
// m_dwExtraTick = GetTickCount();
// nElapsed = m_dwExtraTick - m_dwLastTick;
// if (nElapsed < m_nTicksPerPulse) {
// Sleep((m_nTicksPerPulse - nElapsed) - 1);
// }
//} else {
Sleep((m_nTicksPerPulse - nElapsed) - 1);
//}
}
m_dwLastTick = GetTickCount();
m_dwHeavyTrafficCount = 0;
m_TPPOverTwoTime = false;
} else if(((++m_dwHeavyTrafficCount) > 5) || (nElapsed > (m_nTicksPerPulse * 2))) {
// <20><20>ð<EFBFBD><C3B0><EFBFBD> TPP<50><50> <20>ι<CEB9><E8BAB8> ū <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʈ<><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
DETLOG2(g_Log, "Time Overflow : <20><20>ð<EFBFBD><C3B0><EFBFBD> %d <20><> TPP <20><> <20>ι<CEB9><E8BAB8> ũ<>ų<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʈ<><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d <20>Դϴ<D4B4>.", nElapsed, m_dwHeavyTrafficCount);
m_dwLastTick = GetTickCount();
m_TPPOverTwoTime = true;
} else {
DETLOG1(g_Log, "Ʈ<><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d <20>Դϴ<D4B4>.", m_dwHeavyTrafficCount);
// m_nTicksPerPulse < nElapsed <= m_nTicksPerPulse * 2
m_dwLastTick = GetTickCount() - (nElapsed - m_nTicksPerPulse);
m_TPPOverTwoTime = false;
}
return ++m_dwPulse;
}
bool CPulse::InstallTimer(int nOperation, unsigned long dwPulse, Operation pOperation)
{
if (nOperation <= 0 || nOperation >= PULSETABLE_NUM) {
return false;
}
for (int i=0; i < PULSETABLE_NUM; ++i) {
if (0 == m_PulseTable[i].m_nOperation) {
m_PulseTable[i].m_nOperation = nOperation;
m_PulseTable[i].m_dwPulse = dwPulse;
m_PulseTable[i].m_pOperation = pOperation;
return true;
}
}
// TODO : <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
return false;
}
bool CPulse::UninstallTimer(int nOperation)
{
if(nOperation <= 0 || nOperation >= PULSETABLE_NUM)
{
return false;
}
for (int i=0; i<PULSETABLE_NUM; ++i) {
if (nOperation == m_PulseTable[i].m_nOperation) {
m_PulseTable[i].m_nOperation = 0;
m_PulseTable[i].m_dwPulse = 0;
m_PulseTable[i].m_pOperation = NULL;
// TODO : <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> shift up
ShiftupTable(i + 1);
return true;
}
}
// TODO : <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
return false;
}
void CPulse::Operate(void)
{
int i = 0;
while (m_PulseTable[i].m_nOperation) {
if (0 == (GetCurrentPulse() % m_PulseTable[i].m_dwPulse)) {
if (m_PulseTable[i].m_nOperation) {
m_PulseTable[i].m_pOperation();
}
}
++i;
}
}
void CPulse::ShiftupTable(int nStartIndex)
{
for (int i=nStartIndex; i<(PULSETABLE_NUM - 1); ++i) {
// TODO : <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> shift up
m_PulseTable[i].m_nOperation = m_PulseTable[i+1].m_nOperation;
m_PulseTable[i].m_dwPulse = m_PulseTable[i+1].m_dwPulse;
m_PulseTable[i].m_pOperation = m_PulseTable[i+1].m_pOperation;
}
m_PulseTable[PULSETABLE_NUM].m_nOperation = 0;
m_PulseTable[PULSETABLE_NUM].m_dwPulse = 0;
m_PulseTable[PULSETABLE_NUM].m_pOperation = NULL;
}
*/

View File

@@ -0,0 +1,53 @@
#ifndef _RYL_BASE_LIBRARY_PULSE_H_
#define _RYL_BASE_LIBRARY_PULSE_H_
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib, "winmm.lib")
// Single Thread<61><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
class CPulse
{
public:
enum PulseConst
{
DEFAULT_TICKS_PER_PULSE = 100
};
static CPulse& GetInstance();
unsigned long CheckSleep();
void SetTicksPerPulse(long nTicksPerPulse);
long GetTicksPerPulse() const { return m_nTicksPerPulse; }
long GetTicksPerSec() const { return m_nTicksPerSec; }
unsigned long GetRemainTime() const;
BOOL GetTPPOverTwoTime() const { return m_bTPPOverTwoTime; }
unsigned long GetCurrentPulse() const { return m_dwPulse; }
unsigned long GetLastTick() const { return m_dwLastTick; }
inline bool ProcessBySecond(unsigned long dwCycleSec) const { return (0 == (m_dwPulse % (dwCycleSec * m_nTicksPerSec))); }
inline bool ProcessByMinute(unsigned long dwCycleMin) const { return ProcessBySecond(dwCycleMin * 60); }
inline bool ProcessByHour(unsigned long dwCycleHour) const { return ProcessBySecond(dwCycleHour * 3600); }
private:
CPulse();
~CPulse();
unsigned long m_dwPulse;
unsigned long m_dwLastTick;
unsigned long m_dwHeavyTrafficCount;
long m_nTicksPerPulse;
long m_nTicksPerSec;
BOOL m_bTPPOverTwoTime;
};
#endif