OSDN Git Service

v3.0.0 Alpha5 OSDN最終版
[hengband/hengband.git] / src / world.c
1 #include "angband.h"
2
3 /*!
4  * @brief ゲーム時間が日中かどうかを返す /
5  * Whether daytime or not
6  * @return 日中ならばTRUE、夜ならばFALSE
7  */
8 bool is_daytime(void)
9 {
10         s32b len = TURNS_PER_TICK * TOWN_DAWN;
11         if ((turn % len) < (len / 2))
12                 return TRUE;
13         else
14                 return FALSE;
15 }
16
17 /*!
18  * @brief 現在の日数、時刻を返す /
19  * Extract day, hour, min
20  * @param day 日数を返すための参照ポインタ
21  * @param hour 時数を返すための参照ポインタ
22  * @param min 分数を返すための参照ポインタ
23  */
24 void extract_day_hour_min(int *day, int *hour, int *min)
25 {
26         const s32b A_DAY = TURNS_PER_TICK * TOWN_DAWN;
27         s32b turn_in_today = (turn + A_DAY / 4) % A_DAY;
28
29         switch (p_ptr->start_race)
30         {
31         case RACE_VAMPIRE:
32         case RACE_SKELETON:
33         case RACE_ZOMBIE:
34         case RACE_SPECTRE:
35                 *day = (turn - A_DAY * 3 / 4) / A_DAY + 1;
36                 break;
37         default:
38                 *day = (turn + A_DAY / 4) / A_DAY + 1;
39                 break;
40         }
41         *hour = (24 * turn_in_today / A_DAY) % 24;
42         *min = (1440 * turn_in_today / A_DAY) % 60;
43 }