mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-20 12:19:10 +00:00
Change the fSecs field of plUnifiedTime from UInt32 to time_t. (cherry picked from commit 9adb8efd5d
)
This fixes various date formatting problems when building on a system where time_t is 64-bit (e.g. Visual Studio 2010), and, as a bonus, extends the range past 2038 on such systems. The wire protocol is left at 32-bit for now, we might change that to 64 when other reasons to break compatibility have accumulated.
This commit is contained in:
committed by
rarified
parent
68bbea08a1
commit
a117e47b5e
@ -618,7 +618,7 @@ UInt32 cyMisc::GetAgeTime( void )
|
||||
|
||||
|
||||
|
||||
UInt32 cyMisc::GetDniTime(void)
|
||||
time_t cyMisc::GetDniTime(void)
|
||||
{
|
||||
const plUnifiedTime utime = plNetClientMgr::GetInstance()->GetServerTime();
|
||||
if ( utime.GetSecs() != 0)
|
||||
@ -627,7 +627,7 @@ UInt32 cyMisc::GetDniTime(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
UInt32 cyMisc::GetServerTime(void)
|
||||
time_t cyMisc::GetServerTime(void)
|
||||
{
|
||||
const plUnifiedTime utime = plNetClientMgr::GetInstance()->GetServerTime();
|
||||
return utime.GetSecs();
|
||||
@ -645,7 +645,7 @@ float cyMisc::GetAgeTimeOfDayPercent(void)
|
||||
UInt32 cyMisc::ConvertGMTtoDni(UInt32 gtime)
|
||||
{
|
||||
// convert to mountain time
|
||||
UInt32 dtime = gtime - kMST;
|
||||
time_t dtime = gtime - kMST;
|
||||
plUnifiedTime utime = plUnifiedTime();
|
||||
utime.SetSecs(dtime);
|
||||
// check for daylight savings time in New Mexico and adjust
|
||||
@ -654,10 +654,10 @@ UInt32 cyMisc::ConvertGMTtoDni(UInt32 gtime)
|
||||
plUnifiedTime dstStart = plUnifiedTime();
|
||||
dstStart.SetGMTime(utime.GetYear(),3,8,2,0,0);
|
||||
// find first Sunday after (including) 3/8 (second Sunday of March)
|
||||
UInt32 days_to_go = 7 - dstStart.GetDayOfWeek();
|
||||
int days_to_go = 7 - dstStart.GetDayOfWeek();
|
||||
if (days_to_go == 7)
|
||||
days_to_go = 0;
|
||||
UInt32 dstStartSecs = dstStart.GetSecs() + days_to_go * kOneDay;
|
||||
time_t dstStartSecs = dstStart.GetSecs() + days_to_go * kOneDay;
|
||||
|
||||
plUnifiedTime dstEnd = plUnifiedTime();
|
||||
dstEnd.SetGMTime(utime.GetYear(),11,1,1,0,0);
|
||||
@ -665,7 +665,7 @@ UInt32 cyMisc::ConvertGMTtoDni(UInt32 gtime)
|
||||
days_to_go = 7 - dstEnd.GetDayOfWeek();
|
||||
if (days_to_go == 7)
|
||||
days_to_go = 0;
|
||||
UInt32 dstEndSecs = dstEnd.GetSecs() + days_to_go * kOneDay;
|
||||
time_t dstEndSecs = dstEnd.GetSecs() + days_to_go * kOneDay;
|
||||
|
||||
if ( dtime >= dstStartSecs && dtime < dstEndSecs )
|
||||
// add hour for daylight savings time
|
||||
|
@ -290,9 +290,9 @@ public:
|
||||
static PyObject* GetPrevAgeInfo();
|
||||
// current time in current age
|
||||
static UInt32 GetAgeTime( void );
|
||||
static UInt32 GetDniTime(void);
|
||||
static UInt32 ConvertGMTtoDni(UInt32 time);
|
||||
static UInt32 GetServerTime( void ); // returns the current server time in GMT
|
||||
static time_t GetDniTime(void);
|
||||
static time_t ConvertGMTtoDni(time_t time);
|
||||
static time_t GetServerTime( void ); // returns the current server time in GMT
|
||||
static float GetAgeTimeOfDayPercent(void);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -75,12 +75,12 @@ PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetPrevAgeInfo, "Returns ptAgeInfoStruc
|
||||
|
||||
PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetDniTime, "Returns current D'Ni time")
|
||||
{
|
||||
return PyLong_FromUnsignedLong(cyMisc::GetDniTime());
|
||||
return PyLong_FromUnsignedLong((unsigned long)cyMisc::GetDniTime());
|
||||
}
|
||||
|
||||
PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetServerTime, "Returns the current time on the server (which is GMT)")
|
||||
{
|
||||
return PyLong_FromUnsignedLong(cyMisc::GetServerTime());
|
||||
return PyLong_FromUnsignedLong((unsigned long)cyMisc::GetServerTime());
|
||||
}
|
||||
|
||||
PYTHON_GLOBAL_METHOD_DEFINITION(PtGMTtoDniTime, args, "Params: gtime\nConverts GMT time (passed in) to D'Ni time")
|
||||
@ -91,7 +91,7 @@ PYTHON_GLOBAL_METHOD_DEFINITION(PtGMTtoDniTime, args, "Params: gtime\nConverts G
|
||||
PyErr_SetString(PyExc_TypeError, "PtGMTtoDniTime expects a long");
|
||||
PYTHON_RETURN_ERROR;
|
||||
}
|
||||
return PyLong_FromUnsignedLong(cyMisc::ConvertGMTtoDni(gtime));
|
||||
return PyLong_FromUnsignedLong((unsigned long)cyMisc::ConvertGMTtoDni(gtime));
|
||||
}
|
||||
|
||||
PYTHON_GLOBAL_METHOD_DEFINITION(PtGetClientName, args, "Params: avatarKey=None\nThis will return the name of the client that is owned by the avatar\n"
|
||||
|
@ -71,10 +71,10 @@ UInt32 pyDniInfoSource::GetAgeTime( void ) const
|
||||
if (!node)
|
||||
return 0;
|
||||
|
||||
unsigned result;
|
||||
UInt32 result;
|
||||
VaultAgeInfoNode ageInfo(node);
|
||||
if (const plUnifiedTime * utime = ageInfo.GetAgeTime())
|
||||
result = utime->GetSecs();
|
||||
result = (UInt32)utime->GetSecs();
|
||||
else
|
||||
result = 0;
|
||||
node->DecRef();
|
||||
|
Reference in New Issue
Block a user