mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-22 11:15:15 +00:00
53 lines
2.1 KiB
C++
53 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
|
|
namespace sead
|
|
{
|
|
/// A CalendarSpan represents a duration in terms of days, hours, minutes and seconds.
|
|
class CalendarSpan
|
|
{
|
|
public:
|
|
#define SEAD_CALENDARSPAN_MAKE_CLASS(NAME) \
|
|
class NAME \
|
|
{ \
|
|
public: \
|
|
NAME(s32 v) : mValue(v) {} \
|
|
s32 getValue() const { return mValue; } \
|
|
void setValue(s32 v) { mValue = v; } \
|
|
\
|
|
private: \
|
|
s32 mValue; \
|
|
};
|
|
|
|
SEAD_CALENDARSPAN_MAKE_CLASS(Day)
|
|
SEAD_CALENDARSPAN_MAKE_CLASS(Hour)
|
|
SEAD_CALENDARSPAN_MAKE_CLASS(Minute)
|
|
SEAD_CALENDARSPAN_MAKE_CLASS(Second)
|
|
#undef SEAD_CALENDARSPAN_MAKE_CLASS
|
|
|
|
CalendarSpan() : mDay(0), mHour(0), mMinute(0), mSecond(0) {}
|
|
|
|
CalendarSpan(const Day& day, const Hour& hour, const Minute& minute, const Second& second)
|
|
: mDay(day), mHour(hour), mMinute(minute), mSecond(second)
|
|
{
|
|
}
|
|
|
|
s32 getDays() const { return mDay.getValue(); }
|
|
s32 getHours() const { return mHour.getValue(); }
|
|
s32 getMinutes() const { return mMinute.getValue(); }
|
|
s32 getSeconds() const { return mSecond.getValue(); }
|
|
|
|
void setDays(s32 days) { mDay.setValue(days); }
|
|
void setHours(s32 hours) { mHour.setValue(hours); }
|
|
void setMinutes(s32 minutes) { mMinute.setValue(minutes); }
|
|
void setSeconds(s32 seconds) { mSecond.setValue(seconds); }
|
|
|
|
private:
|
|
Day mDay;
|
|
Hour mHour;
|
|
Minute mMinute;
|
|
Second mSecond;
|
|
};
|
|
|
|
} // namespace sead
|