OSDN Git Service

[Refactor] #39912 不要インクルードファイル整理中. / Refactoring unused include files.
[hengband/hengband.git] / src / world.c
1 #include "angband.h"
2 #include "world.h"
3 #include "player-race.h"
4
5 world_type world;
6 world_type *current_world_ptr = &world;
7
8 /*!
9  * @brief ゲーム時間が日中かどうかを返す /
10  * Whether daytime or not
11  * @return 日中ならばTRUE、夜ならばFALSE
12  */
13 bool is_daytime(void)
14 {
15         s32b len = TURNS_PER_TICK * TOWN_DAWN;
16         if ((current_world_ptr->game_turn % len) < (len / 2))
17                 return TRUE;
18         else
19                 return FALSE;
20 }
21
22 /*!
23  * @brief 現在の日数、時刻を返す /
24  * Extract day, hour, min
25  * @param player_ptr プレーヤーへの参照ポインタ
26  * @param day 日数を返すための参照ポインタ
27  * @param hour 時数を返すための参照ポインタ
28  * @param min 分数を返すための参照ポインタ
29  */
30 void extract_day_hour_min(player_type *player_ptr, int *day, int *hour, int *min)
31 {
32         const s32b A_DAY = TURNS_PER_TICK * TOWN_DAWN;
33         s32b turn_in_today = (current_world_ptr->game_turn + A_DAY / 4) % A_DAY;
34
35         switch (player_ptr->start_race)
36         {
37         case RACE_VAMPIRE:
38         case RACE_SKELETON:
39         case RACE_ZOMBIE:
40         case RACE_SPECTRE:
41                 *day = (current_world_ptr->game_turn - A_DAY * 3 / 4) / A_DAY + 1;
42                 break;
43         default:
44                 *day = (current_world_ptr->game_turn + A_DAY / 4) / A_DAY + 1;
45                 break;
46         }
47         *hour = (24 * turn_in_today / A_DAY) % 24;
48         *min = (1440 * turn_in_today / A_DAY) % 60;
49 }