(p_ptr->prace == RACE_SPECTRE))
{
/* Undead start just after midnight */
- turn = (60L * TOWN_DAWN) / 4 + 1;
+ turn = (TURNS_PER_TICK*3 * TOWN_DAWN) / 4 + 1;
}
else
{
char out_val[160], tmp_str[80];
cptr p;
- if ((turn - old_battle) > 5000)
+ if ((turn - old_battle) > TURNS_PER_TICK*250)
{
battle_monsters();
old_battle = turn;
break;
case BACT_REST: /* Rest for the night */
- dawnval = ((turn % (20L * TOWN_DAWN)));
- if (dawnval > 50000)
+ dawnval = ((turn % (TURNS_PER_TICK * TOWN_DAWN)));
+ if (dawnval > (TURNS_PER_TICK * TOWN_DAWN)/4)
{ /* nighttime */
if ((p_ptr->poisoned) || (p_ptr->cut))
{
#else
do_cmd_write_nikki(NIKKI_BUNSHOU, 0, "stay over night at the inn");
#endif
- turn = ((turn / 100000) + 1) * 100000;
- if (((oldturn + 5L * TOWN_DAWN) % (20L * TOWN_DAWN)) > 50000L) do_cmd_write_nikki(NIKKI_HIGAWARI, 0, NULL);
+ turn = (turn / (TURNS_PER_TICK*TOWN_DAWN/2) + 1) * (TURNS_PER_TICK*TOWN_DAWN/2);
+ if (((oldturn + TURNS_PER_TICK * TOWN_DAWN / 4) % (TURNS_PER_TICK * TOWN_DAWN)) > TURNS_PER_TICK * TOWN_DAWN/4) do_cmd_write_nikki(NIKKI_HIGAWARI, 0, NULL);
p_ptr->chp = p_ptr->mhp;
- dungeon_turn += MIN(turn - oldturn, 5000);
+ dungeon_turn += MIN(turn - oldturn, TURNS_PER_TICK*250);
if (ironman_nightmare)
{
s16b end_temp;
- bool daytime = ((turn % (20L * TOWN_DAWN)) < ((20L * TOWN_DAWN) / 2));
-
/* Clear all monster lit squares */
for (i = 0; i < mon_lite_n; i++)
{
/* Exit if has no light */
if (!rad) continue;
- if (!(r_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) && (m_ptr->csleep || (!dun_level && daytime) || p_ptr->inside_battle)) continue;
+ if (!(r_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) && (m_ptr->csleep || (!dun_level && is_daytime()) || p_ptr->inside_battle)) continue;
if (world_monster) continue;
cptr note_level = "";
bool do_level = TRUE;
- s32b len = 20L * TOWN_DAWN;
- s32b tick = turn % len + len / 4;
-
static bool disable_nikki = FALSE;
- if (disable_nikki) return(-1);
-
- if ((p_ptr->prace == RACE_VAMPIRE) ||
- (p_ptr->prace == RACE_SKELETON) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_SPECTRE))
- day = (turn - (15L * TOWN_DAWN))/ len + 1;
- else
- day = (turn + (5L * TOWN_DAWN))/ len + 1;
+ extract_day_hour_min(&day, &hour, &min);
- hour = (24 * tick / len) % 24;
- min = (1440 * tick / len) % 60;
+ if (disable_nikki) return(-1);
if (type == NIKKI_FIX_QUEST_C ||
type == NIKKI_FIX_QUEST_F ||
}
/* Display the feeling */
- if (turn - old_turn >= (3000 - dun_level*20) || cheat_xtra)
+ if (turn - old_turn >= (150 - dun_level)*TURNS_PER_TICK || cheat_xtra)
{
if (p_ptr->muta3 & MUT3_GOOD_LUCK) msg_print(do_cmd_feeling_text_lucky[feeling]);
else {
FILE *fff;
- s32b len = 20L * TOWN_DAWN;
- s32b tick = turn % len + len / 4;
+ extract_day_hour_min(&day, &hour, &min);
- if ((p_ptr->prace == RACE_VAMPIRE) ||
- (p_ptr->prace == RACE_SKELETON) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_SPECTRE))
- day = (turn - (15L * TOWN_DAWN))/ len + 1;
- else
- day = (turn + (5L * TOWN_DAWN))/ len + 1;
- hour = (24 * tick / len) % 24;
- min = (1440 * tick / len) % 60;
full = hour * 100 + min;
start = 9999;
/*
* Misc constants
*/
-#define TOWN_DAWN 10000 /* Number of turns from dawn to dawn XXX */
+#define TOWN_DAWN 10000 /* Number of ticks from dawn to dawn XXX */
+#define TURNS_PER_TICK 20L /* # of energy-gain-turns per ticks */
#define BREAK_GLYPH 550 /* Rune of protection resistance */
#define BREAK_MINOR_GLYPH 299 /* For explosive runes */
#define BTH_PLUS_ADJ 3 /* Adjust BTH per plus-to-hit */
/* The light is getting dim */
else if (o_ptr->name2 == EGO_LITE_LONG)
{
- if ((o_ptr->xtra4 < 50) && (!(o_ptr->xtra4 % 5)) && (turn % 40))
+ if ((o_ptr->xtra4 < 50) && (!(o_ptr->xtra4 % 5))
+ && (turn % (TURNS_PER_TICK*2)))
{
if (disturb_minor) disturb(0, 0);
#ifdef JP
object_kind *k_ptr;
const int dec_count = (easy_band ? 2 : 1);
- int hour, min, prev_min;
- s32b len = 20L * TOWN_DAWN;
+ int day, hour, min, prev_min;
+
+ s32b len = TURNS_PER_TICK * TOWN_DAWN;
s32b tick = turn % len + len / 4;
- hour = (24 * tick / len) % 24;
- min = (1440 * tick / len) % 60;
+ extract_day_hour_min(&day, &hour, &min);
prev_min = (1440 * (tick - 20) / len) % 60;
- if ((turn - old_turn == (3000 - dun_level*20)) && (dun_level) &&
+ if ((turn - old_turn == (150 - dun_level) * TURNS_PER_TICK)
+ && (dun_level) &&
!(quest_number(dun_level) && ((quest_number(dun_level) < MIN_RANDOM_QUEST) && !(quest_number(dun_level) == QUEST_OBERON || quest_number(dun_level) == QUEST_SERPENT || !(quest[quest_number(dun_level)].flags & QUEST_FLAG_PRESET)))) &&
!(p_ptr->inside_battle))
do_cmd_feeling();
p_ptr->energy = 100;
battle_monsters();
}
- else if(turn - old_turn == 3000L)
+ else if(turn - old_turn == 150*TURNS_PER_TICK)
{
#ifdef JP
msg_print("¿½¤·Ê¬¤±¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤³¤Î¾¡Éé¤Ï°ú¤Ê¬¤±¤È¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£");
}
/* Every 20 game turns */
- if (turn % 20) return;
+ if (turn % TURNS_PER_TICK) return;
/*** Check the Time and Load ***/
- if (!(turn % 1000))
+ if (!(turn % (50*TURNS_PER_TICK)))
{
/* Check time and load */
if ((0 != check_time()) || (0 != check_load()))
/*** Attempt timed autosave ***/
if (autosave_t && autosave_freq && !p_ptr->inside_battle)
{
- if (!(turn % ((s32b)autosave_freq * 20)))
+ if (!(turn % ((s32b)autosave_freq * TURNS_PER_TICK)))
do_cmd_save_game(TRUE);
}
if (!dun_level && !p_ptr->inside_quest && !p_ptr->inside_battle && !p_ptr->inside_arena && !p_ptr->wild_mode)
{
/* Hack -- Daybreak/Nighfall in town */
- if (!(turn % ((20L * TOWN_DAWN) / 2)))
+ if (!(turn % ((TURNS_PER_TICK * TOWN_DAWN) / 2)))
{
bool dawn;
/* Check for dawn */
- dawn = (!(turn % (20L * TOWN_DAWN)));
+ dawn = (!(turn % (TURNS_PER_TICK * TOWN_DAWN)));
/* Day breaks */
if (dawn)
}
/* Set back the rewards once a day */
- if (!(turn % (200L * STORE_TURNS)))
+ if (!(turn % (TURNS_PER_TICK*10 * STORE_TURNS)))
{
int n;
}
/* Hack -- Check for creature regeneration */
- if (!(turn % 200) && !p_ptr->inside_battle) regen_monsters();
- if (!(turn % 60)) regen_captured_monsters();
+ if (!(turn % (TURNS_PER_TICK*10)) && !p_ptr->inside_battle) regen_monsters();
+ if (!(turn % (TURNS_PER_TICK*3))) regen_captured_monsters();
/*** Damage over Time ***/
/* (Vampires) Take damage from sunlight */
if (prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE))
{
- if (!dun_level && !p_ptr->resist_lite && !p_ptr->invuln &&
- (!((turn / ((20L * TOWN_DAWN) / 2)) % 2)))
+ if (!dun_level && !p_ptr->resist_lite && !p_ptr->invuln && is_daytime())
{
if (cave[py][px].info & CAVE_GLOW)
{
if (p_ptr->food < PY_FOOD_MAX)
{
/* Every 100 game turns */
- if (!(turn % 100))
+ if (!(turn % (TURNS_PER_TICK*5)))
{
/* Basic digestion rate based on speed */
i = /* extract_energy[p_ptr->pspeed] * 2;*/
/* Decrease life-span */
if (o_ptr->name2 == EGO_LITE_LONG)
{
- if (turn % 40) o_ptr->xtra4--;
+ if (turn % (TURNS_PER_TICK*2)) o_ptr->xtra4--;
}
else o_ptr->xtra4--;
(p_ptr->prace == RACE_SKELETON) ||
(p_ptr->prace == RACE_ZOMBIE) ||
(p_ptr->prace == RACE_SPECTRE))
- return hoge-(60L * TOWN_DAWN) / 4;
+ return hoge-(TURNS_PER_TICK * TOWN_DAWN *3/ 4);
else
return hoge;
}
#endif /* SUPPORT_GAMMA */
/* xtra1.c */
+extern bool is_daytime(void);
+extern void extract_day_hour_min(int *day, int *hour, int *min);
extern void prt_time(void);
extern cptr map_name(void);
extern void cnv_stat(int val, char *out_val);
/* Dump Day */
{
- s32b len = 20L * TOWN_DAWN;
- s32b tick = turn % len + len / 4;
+ int day, hour, min;
+ extract_day_hour_min(&day, &hour, &min);
sprintf(buf,
#ifdef JP
#else
"Day %ld %2ld:%02ld",
#endif
- ((p_ptr->prace == RACE_VAMPIRE) ||
- (p_ptr->prace == RACE_SKELETON) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_SPECTRE))
- ? (turn - (15L * TOWN_DAWN)) / len + 1
- : (turn + (5L * TOWN_DAWN))/ len + 1,
- (24 * tick / len) % 24,
- (1440 * tick / len) % 60);
+ day, hour, min);
}
display_player_one_line(ENTRY_DAY, buf, TERM_L_GREEN);
int y, x;
int qy = SCREEN_HGT;
int qx = SCREEN_WID;
- bool daytime;
-
- /* Day time */
- if ((turn % (20L * TOWN_DAWN)) < ((20L * TOWN_DAWN) / 2))
- daytime = TRUE;
-
- /* Night time */
- else
- daytime = FALSE;
/* Start with solid walls */
for (y = 0; y < MAX_HGT; y++)
if (rating > 10) return 8;
if (rating > 0) return 9;
- if((turn - old_turn) > 100000L)
+ if((turn - old_turn) > TURNS_PER_TICK * TOWN_DAWN /2)
chg_virtue(V_PATIENCE, 1);
return 10;
st_ptr->bad_buy = 0;
/* Open tomorrow */
- st_ptr->store_open = turn + 25000 + randint1(25000);
+ st_ptr->store_open = turn + TURNS_PER_TICK*TOWN_DAWN/8 + randint1(TURNS_PER_TICK*TOWN_DAWN/8);
/* Closed */
return (TRUE);
}
/* Calculate the number of store maintainances since the last visit */
- maintain_num = (turn - town[p_ptr->town_num].store[which].last_visit) / (20L * STORE_TURNS);
+ maintain_num = (turn - town[p_ptr->town_num].store[which].last_visit) / (TURNS_PER_TICK * STORE_TURNS);
/* Maintain the store max. 10 times */
if (maintain_num > 10) maintain_num = 10;
void wilderness_gen(void)
{
int i, y, x, lim;
- bool daytime;
cave_type *c_ptr;
/* Big town */
/* South east corner */
cave[MAX_HGT - 1][MAX_WID - 1].mimic = border.south_east;
-
- /* Day time */
- if ((turn % (20L * TOWN_DAWN)) < ((20L * TOWN_DAWN) / 2))
- daytime = TRUE;
- else
- daytime = FALSE;
-
/* Light up or darken the area */
for (y = 0; y < cur_hgt; y++)
{
/* Get the cave grid */
c_ptr = &cave[y][x];
- if (daytime)
+ if (is_daytime())
{
/* Assume lit */
c_ptr->info |= (CAVE_GLOW);
/*
+ * Whether daytime or not
+ */
+bool is_daytime(void)
+{
+ s32b len = TURNS_PER_TICK * TOWN_DAWN;
+ if ((turn % len) < (len / 2))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/*
+ * Extract day, hour, min
+ */
+void extract_day_hour_min(int *day, int *hour, int *min)
+{
+ s32b len = TURNS_PER_TICK * TOWN_DAWN;
+ s32b tick = turn % len + len / 4;
+
+ if ((p_ptr->prace == RACE_VAMPIRE) ||
+ (p_ptr->prace == RACE_SKELETON) ||
+ (p_ptr->prace == RACE_ZOMBIE) ||
+ (p_ptr->prace == RACE_SPECTRE))
+ *day = (turn - (TURNS_PER_TICK * TOWN_DAWN *3/4)) / len + 1;
+ else
+ *day = (turn + (TURNS_PER_TICK * TOWN_DAWN /4))/ len + 1;
+ *hour = (24 * tick / len) % 24;
+ *min = (1440 * tick / len) % 60;
+}
+
+/*
* Print time
*/
void prt_time(void)
{
- s32b len = 20L * TOWN_DAWN;
- s32b tick = turn % len + len / 4;
+ int day, hour, min;
/* Dump 13 spaces to clear */
c_put_str(TERM_WHITE, " ", ROW_DAY, COL_DAY);
+ extract_day_hour_min(&day, &hour, &min);
+
/* Dump the info itself */
c_put_str(TERM_WHITE, format(
#ifdef JP
#else
"Day %-2d",
#endif
- ((p_ptr->prace == RACE_VAMPIRE) ||
- (p_ptr->prace == RACE_SKELETON) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_SPECTRE))
- ? (turn - (15L * TOWN_DAWN)) / len + 1
- : (turn + (5L * TOWN_DAWN))/ len + 1),
- ROW_DAY, COL_DAY);
+ day), ROW_DAY, COL_DAY);
- c_put_str(TERM_WHITE, format("%2d:%02d",
- (24 * tick / len) % 24,
- (1440 * tick / len) % 60),
- ROW_DAY, COL_DAY+7);
+ c_put_str(TERM_WHITE, format("%2d:%02d", hour, min), ROW_DAY, COL_DAY+7);
}