mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 02:27:40 -04:00
@ -367,6 +367,14 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
// Handle messages
|
||||
switch (message) {
|
||||
case WM_TIMECHANGE:
|
||||
// To prevent cheating and keep things better synchronized,
|
||||
// we will completely re-eval the offsets on the next NetMsg we
|
||||
// get from the server
|
||||
if (plNetClientMgr* nc = plNetClientMgr::GetInstance())
|
||||
nc->ResetServerTimeOffset(true);
|
||||
break;
|
||||
|
||||
case WM_KEYDOWN :
|
||||
case WM_LBUTTONDOWN :
|
||||
case WM_RBUTTONDOWN :
|
||||
|
@ -648,19 +648,19 @@ time_t cyMisc::ConvertGMTtoDni(time_t gtime)
|
||||
plUnifiedTime utime = plUnifiedTime();
|
||||
utime.SetSecs(dtime);
|
||||
// check for daylight savings time in New Mexico and adjust
|
||||
if ( utime.GetMonth() >= 4 && utime.GetMonth() < 11 )
|
||||
if ( utime.GetMonth() >= 3 && utime.GetMonth() < 11 )
|
||||
{
|
||||
plUnifiedTime dstStart = plUnifiedTime();
|
||||
dstStart.SetGMTime(utime.GetYear(),4,1,2,0,0);
|
||||
// find first Sunday after 4/1 (first sunday of April)
|
||||
dstStart.SetGMTime(utime.GetYear(),3,7,2,0,0);
|
||||
// find first Sunday after 3/7 (second Sunday of March)
|
||||
int days_to_go = 7 - dstStart.GetDayOfWeek();
|
||||
if (days_to_go == 7)
|
||||
days_to_go = 0;
|
||||
time_t dstStartSecs = dstStart.GetSecs() + days_to_go * kOneDay;
|
||||
|
||||
plUnifiedTime dstEnd = plUnifiedTime();
|
||||
dstEnd.SetGMTime(utime.GetYear(),10,25,1,0,0);
|
||||
// find first sunday after 10/25 (last sunday of Oct.)
|
||||
dstEnd.SetGMTime(utime.GetYear(),11,1,1,0,0);
|
||||
// find first sunday after 11/1 (first Sunday of November)
|
||||
days_to_go = 7 - dstEnd.GetDayOfWeek();
|
||||
if (days_to_go == 7)
|
||||
days_to_go = 0;
|
||||
|
@ -506,8 +506,9 @@ void plNetClientMgr::UpdateServerTimeOffset(plNetMessage* msg)
|
||||
}
|
||||
}
|
||||
|
||||
void plNetClientMgr::ResetServerTimeOffset()
|
||||
void plNetClientMgr::ResetServerTimeOffset(bool delayed)
|
||||
{
|
||||
if (!delayed)
|
||||
fServerTimeOffset = 0;
|
||||
fTimeSamples = 0;
|
||||
fLastTimeUpdate = 0;
|
||||
|
@ -383,7 +383,7 @@ public:
|
||||
void StoreSDLState(const plStateDataRecord* sdRec, const plUoid& uoid, uint32_t sendFlags, uint32_t writeOptions);
|
||||
|
||||
void UpdateServerTimeOffset(plNetMessage* msg);
|
||||
void ResetServerTimeOffset();
|
||||
void ResetServerTimeOffset(bool delayed=false);
|
||||
|
||||
private:
|
||||
plNetClientComm fNetClientComm;
|
||||
|
Reference in New Issue
Block a user