Files
Client/Engine/Zalla3D Base Class/FrameTimer.cpp
LGram16 e067522598 Initial commit: ROW Client source code
Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 16:24:34 +09:00

74 lines
1.7 KiB
C++

// FrameTimer.cpp: implementation of the CFrameTimer class.
//
//////////////////////////////////////////////////////////////////////
#include "FrameTimer.h"
#include "GMMemory.h"
std::vector<float> CFrameTimer::m_fUpdateTimeList;
std::vector<float> CFrameTimer::m_fTimeRemainList;
std::vector<float> CFrameTimer::m_fPerSecondUpdateList;
DWORD CFrameTimer::m_dwTickTime;
DWORD CFrameTimer::m_dwLastUpdateTime;
CFrameTimer g_FrameTimer;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CFrameTimer::CFrameTimer()
{
m_dwTickTime = 0xFFFFFFFF;
}
CFrameTimer::~CFrameTimer()
{
m_fUpdateTimeList.clear();
m_fTimeRemainList.clear();
m_fPerSecondUpdateList.clear();
}
void CFrameTimer::Create()
{
m_dwTickTime = 0xFFFFFFFF;
}
void CFrameTimer::UpdateTime()
{
if(m_dwTickTime == 0xFFFFFFFF)
{
m_dwTickTime=GetTickCount();
m_dwLastUpdateTime=m_dwTickTime;
}
DWORD dwOldTickTime=m_dwTickTime;
m_dwTickTime=GetTickCount();
DWORD dwIntervalPreTime=m_dwTickTime-dwOldTickTime;
for(int i=0;i<(int)m_fUpdateTimeList.size();i++)
{
m_fUpdateTimeList[i]=(float)dwIntervalPreTime/(1000.0f/m_fPerSecondUpdateList[i]);
m_fUpdateTimeList[i]+=m_fTimeRemainList[i];
m_fTimeRemainList[i]=m_fUpdateTimeList[i]-(int)m_fUpdateTimeList[i];
}
}
int CFrameTimer::Regist(float fPerSecondUpdate)
{
m_fUpdateTimeList.push_back(0.0f);
m_fTimeRemainList.push_back(0.0f);
m_fPerSecondUpdateList.push_back(fPerSecondUpdate);
return (int)m_fUpdateTimeList.size()-1;
}
float CFrameTimer::GetUpdateTimer(int nTimer)
{
return m_fUpdateTimeList[nTimer];
}
void CFrameTimer::ResetTimer(int nTimer)
{
m_fUpdateTimeList[nTimer] = 0;
}