From 3e45a2400c9921412e0cf8aa766df30b89c02614 Mon Sep 17 00:00:00 2001 From: mogami Date: Sat, 13 Apr 2002 18:23:58 +0000 Subject: [PATCH] =?utf8?q?=E3=82=B9=E3=83=94=E3=83=BC=E3=83=89=E3=82=B7?= =?utf8?q?=E3=82=B9=E3=83=86=E3=83=A0=E4=BF=AE=E6=AD=A3=E3=81=AB=E5=82=99?= =?utf8?q?=E3=81=88=E3=81=A6=E3=80=81turn=E3=81=A8=E6=99=82=E5=88=BB?= =?utf8?q?=E3=81=AE=E5=8F=96=E3=82=8A=E3=81=82=E3=81=A4=E3=81=8B=E3=81=84?= =?utf8?q?=E3=81=AE=E3=82=B3=E3=83=BC=E3=83=89=E3=82=92=E6=95=B4=E7=90=86?= =?utf8?q?=E3=80=82=20#define=20TURNS=5FPER=5FTICK=2020L=20=E3=82=92?= =?utf8?q?=E5=AE=9A=E7=BE=A9=E3=81=97=E3=81=9F=E3=80=82=20=E6=97=A5?= =?utf8?q?=E4=BB=98=E3=82=92=E6=B1=82=E3=82=81=E3=82=8B=E9=96=A2=E6=95=B0?= =?utf8?q?=E7=AD=89=E3=82=92=E7=94=A8=E6=84=8F=E3=81=97=E3=81=A6=E3=81=9D?= =?utf8?q?=E3=82=8C=E3=82=92=E5=91=BC=E3=81=B6=E3=82=88=E3=81=86=E3=81=AB?= =?utf8?q?=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/birth.c | 2 +- src/bldg.c | 12 ++++++------ src/cave.c | 4 +--- src/cmd4.c | 30 ++++-------------------------- src/defines.h | 3 ++- src/dungeon.c | 41 +++++++++++++++++++++-------------------- src/externs.h | 2 ++ src/files.c | 13 +++---------- src/generate.c | 11 +---------- src/store.c | 4 ++-- src/wild.c | 10 +--------- src/xtra1.c | 49 ++++++++++++++++++++++++++++++++++++------------- 12 files changed, 80 insertions(+), 101 deletions(-) diff --git a/src/birth.c b/src/birth.c index b4779cebd..7c537bfe7 100644 --- a/src/birth.c +++ b/src/birth.c @@ -5449,7 +5449,7 @@ static bool player_birth_aux(void) (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 { diff --git a/src/bldg.c b/src/bldg.c index 03184c2ba..f70b2394f 100644 --- a/src/bldg.c +++ b/src/bldg.c @@ -1921,7 +1921,7 @@ static bool kakutoujou(void) 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; @@ -2685,8 +2685,8 @@ msg_print(" 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)) { @@ -2712,11 +2712,11 @@ msg_print(" #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) { diff --git a/src/cave.c b/src/cave.c index 552bc409b..36ab79c9f 100644 --- a/src/cave.c +++ b/src/cave.c @@ -3342,8 +3342,6 @@ void update_mon_lite(void) 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++) { @@ -3381,7 +3379,7 @@ void update_mon_lite(void) /* 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; diff --git a/src/cmd4.c b/src/cmd4.c index 5c70c8090..c07d1ec52 100644 --- a/src/cmd4.c +++ b/src/cmd4.c @@ -224,23 +224,11 @@ errr do_cmd_write_nikki(int type, int num, cptr note) 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 || @@ -4625,7 +4613,7 @@ void do_cmd_feeling(void) } /* 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 { @@ -7670,18 +7658,8 @@ void do_cmd_time(void) 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; diff --git a/src/defines.h b/src/defines.h index f482251d1..a813be896 100644 --- a/src/defines.h +++ b/src/defines.h @@ -489,7 +489,8 @@ /* * 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 */ diff --git a/src/dungeon.c b/src/dungeon.c index 99656e36d..3bd0d3b01 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -1085,7 +1085,8 @@ msg_print(" /* 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 @@ -1488,15 +1489,16 @@ static void process_world(void) 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(); @@ -1569,7 +1571,7 @@ msg_print(" 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("¿½¤·Ê¬¤±¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤³¤Î¾¡Éé¤Ï°ú¤­Ê¬¤±¤È¤µ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹¡£"); @@ -1584,11 +1586,11 @@ 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())) @@ -1636,7 +1638,7 @@ msg_print(" /*** 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); } @@ -1655,12 +1657,12 @@ msg_print(" 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) @@ -1740,7 +1742,7 @@ msg_print(" } /* Set back the rewards once a day */ - if (!(turn % (200L * STORE_TURNS))) + if (!(turn % (TURNS_PER_TICK*10 * STORE_TURNS))) { int n; @@ -1771,8 +1773,8 @@ if (cheat_xtra) msg_print(" } /* 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 ***/ @@ -1793,8 +1795,7 @@ take_hit(DAMAGE_NOESCAPE, 1, " /* (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) { @@ -2197,7 +2198,7 @@ take_hit(DAMAGE_NOESCAPE, i, " 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;*/ @@ -2703,7 +2704,7 @@ msg_print(" /* 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--; @@ -6786,7 +6787,7 @@ s32b turn_real(s32b hoge) (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; } diff --git a/src/externs.h b/src/externs.h index 9c280efaa..1b3dace20 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1185,6 +1185,8 @@ extern void build_gamma_table(int gamma); #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); diff --git a/src/files.c b/src/files.c index e34e5a65c..51cae901a 100644 --- a/src/files.c +++ b/src/files.c @@ -1878,8 +1878,8 @@ static void display_player_middle(void) /* 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 @@ -1887,14 +1887,7 @@ static void display_player_middle(void) #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); diff --git a/src/generate.c b/src/generate.c index dc49662da..7578fef5b 100644 --- a/src/generate.c +++ b/src/generate.c @@ -1162,15 +1162,6 @@ static void arena_gen(void) 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++) @@ -1440,7 +1431,7 @@ static byte extract_feeling(void) 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; diff --git a/src/store.c b/src/store.c index b0490f1c4..44c0172c3 100644 --- a/src/store.c +++ b/src/store.c @@ -2465,7 +2465,7 @@ static int increase_insults(void) 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); @@ -4485,7 +4485,7 @@ void do_cmd_store(void) } /* 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; diff --git a/src/wild.c b/src/wild.c index e79b14280..4067202e5 100644 --- a/src/wild.c +++ b/src/wild.c @@ -639,7 +639,6 @@ static border_type border; void wilderness_gen(void) { int i, y, x, lim; - bool daytime; cave_type *c_ptr; /* Big town */ @@ -753,13 +752,6 @@ void wilderness_gen(void) /* 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++) { @@ -768,7 +760,7 @@ void wilderness_gen(void) /* Get the cave grid */ c_ptr = &cave[y][x]; - if (daytime) + if (is_daytime()) { /* Assume lit */ c_ptr->info |= (CAVE_GLOW); diff --git a/src/xtra1.c b/src/xtra1.c index 848e01ac4..ae4a7b0bd 100644 --- a/src/xtra1.c +++ b/src/xtra1.c @@ -113,16 +113,48 @@ static void prt_field(cptr info, int row, int col) /* + * 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 @@ -130,18 +162,9 @@ void prt_time(void) #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); } -- 2.11.0