Adds and Changes
Added missing crafting maps, removed unnecessary maps, changed a few miscellaneous things.
This commit is contained in:
@@ -1,264 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: FileName mk_inc_time.nss
|
||||
//:: Copyright (c) 2008 Kamiryn
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Kamiryn
|
||||
//:: Created On: 07.03.2008
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "mk_inc_debug"
|
||||
|
||||
const string g_sDateZero = "mk_datezero";
|
||||
|
||||
struct mk_datetime
|
||||
{
|
||||
int nYear;
|
||||
int nMonth;
|
||||
int nDay;
|
||||
int nHour;
|
||||
int nMinutes;
|
||||
int nSeconds;
|
||||
int nMilliSeconds;
|
||||
};
|
||||
|
||||
// time stamp is in minutes since 'DateZero'.
|
||||
|
||||
// initializes 'DateZero' with current time,
|
||||
// should be called once before any of the other functions gets used
|
||||
// returns DateZero
|
||||
struct mk_datetime mk_initTimeStamp();
|
||||
|
||||
// returns current time as time stamp
|
||||
float mk_getCurrentTimeStamp();
|
||||
|
||||
// deletes time stamp on oObject
|
||||
void mk_deleteTimeStampOnObject(object oObject, string sVarName);
|
||||
|
||||
// writes current time as time stamp on object oObject storing it in sVarName
|
||||
void mk_writeTimeStampToObject(object oObject, string sVarName);
|
||||
|
||||
// returns time stamp stored in sVarName on object oObject
|
||||
float mk_getTimeStampFromObject(object oObject, string sVarName);
|
||||
|
||||
// returns time passed since time stamp sVarName was written on oObject
|
||||
float mk_getTimeSinceTimeStamp(object oObject, string sVarName);
|
||||
|
||||
// returns time stamp as datetime span (datetime span = time stamp)
|
||||
struct mk_datetime mk_timeStampToDateTimeSpan(float fTimeStamp);
|
||||
|
||||
// returns time stamp as datetime (datetime = DateZero + time stamp)
|
||||
struct mk_datetime mk_timeStampToDateTime(float fTimeStamp);
|
||||
|
||||
// returns date1 + date2
|
||||
struct mk_datetime mk_addDateTime(struct mk_datetime date1, struct mk_datetime date2);
|
||||
|
||||
// returns datetime span as readable string
|
||||
string mk_formatDateTimeSpan(struct mk_datetime datetime);
|
||||
|
||||
// returnd datetime as readable string
|
||||
string mk_formatDateTime(struct mk_datetime datetime);
|
||||
|
||||
float fHourToMinutes = HoursToSeconds(1) / 60.0f;
|
||||
|
||||
const float fYearToHours = 8064.0f; // 8064 = 12.0f*28.0f*24.0f;
|
||||
const float fMonthToHours = 672.0f; // 672 = 28.0f*24.0f;
|
||||
const float fDayToHours = 24.0f;
|
||||
|
||||
struct mk_datetime mk_initTimeStamp()
|
||||
{
|
||||
string strZeroDate = GetLocalString(GetModule(), "MK_ZERODATE");
|
||||
if (strZeroDate == "")
|
||||
{
|
||||
strZeroDate = FloatToString(IntToFloat(GetCalendarYear()),5,0) +
|
||||
FloatToString(IntToFloat(GetCalendarMonth()),2,0) +
|
||||
FloatToString(IntToFloat(GetCalendarDay()),2,0) +
|
||||
FloatToString(IntToFloat(GetTimeHour()),2,0);
|
||||
SetLocalString(GetModule(), "MK_ZERODATE", strZeroDate);
|
||||
}
|
||||
|
||||
struct mk_datetime datetime;
|
||||
datetime.nYear = StringToInt(GetSubString(strZeroDate,0,5));
|
||||
datetime.nMonth = StringToInt(GetSubString(strZeroDate,5,2));
|
||||
datetime.nDay = StringToInt(GetSubString(strZeroDate,7,2));
|
||||
datetime.nHour = StringToInt(GetSubString(strZeroDate,9,2));
|
||||
datetime.nMinutes = 0;
|
||||
datetime.nSeconds = 0;
|
||||
datetime.nMilliSeconds = 0;
|
||||
|
||||
return datetime;
|
||||
}
|
||||
|
||||
float mk_getCurrentTimeStamp()
|
||||
{
|
||||
struct mk_datetime datetime = mk_initTimeStamp();
|
||||
|
||||
float fYear = IntToFloat(GetCalendarYear() - datetime.nYear);
|
||||
|
||||
float fMonth = IntToFloat(GetCalendarMonth() - datetime.nMonth);
|
||||
float fDay = IntToFloat(GetCalendarDay() - datetime.nDay);
|
||||
float fHour = IntToFloat(GetTimeHour() - datetime.nHour);
|
||||
float fMinute = IntToFloat(GetTimeMinute());
|
||||
float fSecond = IntToFloat(GetTimeSecond()) + IntToFloat(GetTimeMillisecond())/1000.0;
|
||||
|
||||
/* MK_DEBUG_TRACE(
|
||||
FloatToString(fYear,8,0)+
|
||||
FloatToString(fMonth,3,0)+
|
||||
FloatToString(fDay,3,0)+
|
||||
FloatToString(fHour,3,0)+
|
||||
FloatToString(fMinute,3,0)+
|
||||
FloatToString(fSecond,3,0));
|
||||
*/
|
||||
float fTimeStamp =
|
||||
(
|
||||
(
|
||||
(
|
||||
(
|
||||
(
|
||||
(fYear * 12.0) + fMonth
|
||||
) * 28.0
|
||||
) + fDay
|
||||
) * 24.0
|
||||
) + fHour
|
||||
) + ((fSecond / 60.0) + fMinute) / fHourToMinutes;
|
||||
|
||||
return fTimeStamp;
|
||||
}
|
||||
|
||||
void mk_deleteTimeStampOnObject(object oObject, string sVarName)
|
||||
{
|
||||
DeleteLocalFloat(oObject, sVarName);
|
||||
}
|
||||
|
||||
void mk_writeTimeStampToObject(object oObject, string sVarName)
|
||||
{
|
||||
if (!GetIsObjectValid(oObject)) return;
|
||||
|
||||
float fTimeStamp = mk_getCurrentTimeStamp();
|
||||
|
||||
SetLocalFloat(oObject, sVarName, fTimeStamp);
|
||||
|
||||
/* MK_DEBUG_TRACE("mk_writeTimeStampToObject: "+
|
||||
FloatToString(fTimeStamp,17,5)); */
|
||||
}
|
||||
|
||||
float mk_getTimeStampFromObject(object oObject, string sVarName)
|
||||
{
|
||||
float fTimeStamp = GetLocalFloat(oObject,sVarName);
|
||||
|
||||
/* MK_DEBUG_TRACE("mk_getTimeStampFromObject: "+
|
||||
FloatToString(fTimeStamp,17,5));*/
|
||||
|
||||
return fTimeStamp;
|
||||
}
|
||||
|
||||
float mk_getTimeSinceTimeStamp(object oObject, string sVarName)
|
||||
{
|
||||
float fCurrentTimeStamp = mk_getCurrentTimeStamp();
|
||||
|
||||
/* MK_DEBUG_TRACE("mk_getCurrentTimeStamp: "+
|
||||
FloatToString(fCurrentTimeStamp,17,5));*/
|
||||
|
||||
float fTimeStamp = mk_getTimeStampFromObject(oObject,sVarName);
|
||||
|
||||
/* MK_DEBUG_TRACE("mk_getTimeSinceTimeStamp: "+
|
||||
FloatToString(fCurrentTimeStamp - fTimeStamp,17,5));*/
|
||||
|
||||
return fCurrentTimeStamp - fTimeStamp;
|
||||
}
|
||||
|
||||
struct mk_datetime mk_timeStampToDateTimeSpan(float fTimeStamp)
|
||||
{
|
||||
struct mk_datetime datetime;
|
||||
|
||||
float fMinSec = fTimeStamp - IntToFloat(FloatToInt(fTimeStamp));
|
||||
int nMinutes = FloatToInt(fMinSec*fHourToMinutes);
|
||||
float fSeconds = (fMinSec*fHourToMinutes - IntToFloat(nMinutes))*60.0;
|
||||
|
||||
int nSeconds = FloatToInt(fSeconds);
|
||||
int nMilliSeconds = FloatToInt((fSeconds - IntToFloat(nSeconds))*1000.0);
|
||||
|
||||
// MK_DEBUG_TRACE("fMinSec : "+FloatToString(fMinSec));
|
||||
// MK_DEBUG_TRACE("fMinSec2: "+FloatToString((IntToFloat(nSeconds)/60.0 + IntToFloat(nMinutes))/fHourToMinutes));
|
||||
|
||||
int nYear = FloatToInt(fTimeStamp / fYearToHours);
|
||||
int nMonth = FloatToInt((fTimeStamp - IntToFloat(nYear)*fYearToHours) / fMonthToHours);
|
||||
int nDay = FloatToInt((fTimeStamp - IntToFloat(nYear)*fYearToHours - IntToFloat(nMonth)*fMonthToHours) / fDayToHours);
|
||||
int nHour = FloatToInt(fTimeStamp - IntToFloat(nYear)*fYearToHours - IntToFloat(nMonth)*fMonthToHours - IntToFloat(nDay)*fDayToHours);
|
||||
|
||||
datetime.nYear = nYear;
|
||||
datetime.nMonth = nMonth;
|
||||
datetime.nDay = nDay;
|
||||
datetime.nHour = nHour;
|
||||
datetime.nMinutes = nMinutes;
|
||||
datetime.nSeconds = nSeconds;
|
||||
datetime.nMilliSeconds = nMilliSeconds;
|
||||
|
||||
return datetime;
|
||||
}
|
||||
|
||||
struct mk_datetime mk_addDateTime(struct mk_datetime date1, struct mk_datetime date2)
|
||||
{
|
||||
struct mk_datetime date;
|
||||
date.nMilliSeconds = (date1.nMilliSeconds + date2.nMilliSeconds) % 1000;
|
||||
date.nSeconds = (date1.nSeconds + date2.nSeconds
|
||||
+ (date1.nMilliSeconds + date2.nMilliSeconds) / 1000) % 60;
|
||||
date.nMinutes = (date1.nMinutes + date2.nMinutes
|
||||
+ (date1.nSeconds + date2.nSeconds) / 60) % FloatToInt(fHourToMinutes)
|
||||
;
|
||||
date.nHour = (date1.nHour + date2.nHour
|
||||
+ (date1.nMinutes + date2.nMinutes) / FloatToInt(fHourToMinutes)) % 24;
|
||||
|
||||
date.nDay = (date1.nDay + date2.nDay + (date1.nHour + date2.nHour)/24 - 1) % 28 + 1;
|
||||
|
||||
date.nMonth = (date1.nMonth + date2.nMonth + (date1.nDay + date2.nDay - 1) / 28 - 1) % 12 + 1;
|
||||
|
||||
date.nYear = (date1.nYear + date2.nYear + (date1.nMonth + date2.nMonth - 1) / 12);
|
||||
|
||||
return date;
|
||||
}
|
||||
|
||||
|
||||
struct mk_datetime mk_timeStampToDateTime(float fTimeStamp)
|
||||
{
|
||||
return mk_addDateTime(mk_initTimeStamp(),mk_timeStampToDateTimeSpan(fTimeStamp));
|
||||
}
|
||||
|
||||
string mk_formatDateTimeSpan(struct mk_datetime datetime)
|
||||
{
|
||||
string sDateTimeSpan =
|
||||
(datetime.nYear>0 ? IntToString(datetime.nYear)+" years, " : "")+
|
||||
(datetime.nMonth>0 ? IntToString(datetime.nMonth)+" month, " : "")+
|
||||
(datetime.nDay>0 ? IntToString(datetime.nDay)+" days, " : "")+
|
||||
(datetime.nHour>0 ? IntToString(datetime.nHour)+" hours, " : "")+
|
||||
(datetime.nMinutes>0 ? IntToString(datetime.nMinutes)+" minutes, " : "")+
|
||||
(datetime.nSeconds>0 ? IntToString(datetime.nSeconds)+" seconds, " : "")+
|
||||
(datetime.nMilliSeconds>0 ? IntToString(datetime.nMilliSeconds)+" milliseconds, " : "");
|
||||
|
||||
|
||||
return GetStringLeft(sDateTimeSpan, GetStringLength(sDateTimeSpan)-2);
|
||||
}
|
||||
|
||||
string mk_formatDateTime(struct mk_datetime datetime)
|
||||
{
|
||||
string sDateTime =
|
||||
"year "+IntToString(datetime.nYear)+", "+
|
||||
"month "+IntToString(datetime.nMonth)+", "+
|
||||
"day "+IntToString(datetime.nDay)+", "+
|
||||
"hour "+IntToString(datetime.nHour)+", "+
|
||||
"minutes "+IntToString(datetime.nMinutes)+", "+
|
||||
"seconds "+IntToString(datetime.nSeconds)+", "+
|
||||
"seconds "+IntToString(datetime.nMilliSeconds);
|
||||
|
||||
return sDateTime;
|
||||
}
|
||||
|
||||
/* DO NOT CLOSE THIS TOP COMMENT!
|
||||
This main() function is here only for compilation testing.
|
||||
void main() {}
|
||||
/* */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user