OSDN Git Service

[Refactor] #38995 world_type 構造体に dungeon_turn を取り込む。 / Move dungeon_turn to world_t...
authordeskull <deskull@users.sourceforge.jp>
Thu, 28 Feb 2019 05:19:16 +0000 (14:19 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 28 Feb 2019 05:19:16 +0000 (14:19 +0900)
src/birth.c
src/bldg.c
src/defines.h
src/dungeon.c
src/externs.h
src/load.c
src/monster2.c
src/save.c
src/spells-world.c
src/types.h
src/variable.c

index 686acec..ddfba26 100644 (file)
@@ -1905,7 +1905,7 @@ static void init_turn(void)
                current_world_ptr->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
        }
 
-       dungeon_turn = 1;
+       current_world_ptr->dungeon_turn = 1;
        dungeon_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
 }
 
index 27c1b1b..490c551 100644 (file)
@@ -1948,10 +1948,10 @@ static bool inn_comm(int cmd)
                                        do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("宿屋に泊まった。", "stay over night at the inn."));
                                
                                current_world_ptr->game_turn = (current_world_ptr->game_turn / (TURNS_PER_TICK * TOWN_DAWN / 2) + 1) * (TURNS_PER_TICK * TOWN_DAWN / 2);
-                               if (dungeon_turn < dungeon_turn_limit)
+                               if (current_world_ptr->dungeon_turn < dungeon_turn_limit)
                                {
-                                       dungeon_turn += MIN((current_world_ptr->game_turn - oldturn), TURNS_PER_TICK * 250) * INN_DUNGEON_TURN_ADJ;
-                                       if (dungeon_turn > dungeon_turn_limit) dungeon_turn = dungeon_turn_limit;
+                                       current_world_ptr->dungeon_turn += MIN((current_world_ptr->game_turn - oldturn), TURNS_PER_TICK * 250) * INN_DUNGEON_TURN_ADJ;
+                                       if (current_world_ptr->dungeon_turn > dungeon_turn_limit) current_world_ptr->dungeon_turn = dungeon_turn_limit;
                                }
 
                                prevent_turn_overflow();
index 9df5429..024afd9 100644 (file)
  */
 #define TOWN_DAWN         10000   /*!< 1日分のターン / Number of ticks from dawn to dawn XXX */
 #define TURNS_PER_TICK    10L     /*!< 時間経過処理を行うターン数の刻み / Number of energy-gain-turns per ticks */
-#define INN_DUNGEON_TURN_ADJ 10   /*!< 宿屋で時間をつぶした場合に増えるdungeon_turnの倍率 */
+#define INN_DUNGEON_TURN_ADJ 10   /*!< 宿屋で時間をつぶした場合に増えるcurrent_world_ptr->dungeon_turnの倍率 */
 #define MAX_DAYS          20000   /*!< 内部処理中で保持される最大日数 / Maximum days */
 #define BREAK_GLYPH       550     /*!< 守りのルーンの強靭度 / Rune of protection resistance */
 #define BREAK_MINOR_GLYPH 299     /*!< 爆発のルーンの発動しやすさ / For explosive runes */
index 5aad9d4..76cd096 100644 (file)
@@ -5498,10 +5498,10 @@ static void dungeon(bool load_game)
                /* Count game turns */
                current_world_ptr->game_turn++;
 
-               if (dungeon_turn < dungeon_turn_limit)
+               if (current_world_ptr->dungeon_turn < dungeon_turn_limit)
                {
-                       if (!p_ptr->wild_mode || wild_regen) dungeon_turn++;
-                       else if (p_ptr->wild_mode && !(current_world_ptr->game_turn % ((MAX_HGT + MAX_WID) / 2))) dungeon_turn++;
+                       if (!p_ptr->wild_mode || wild_regen) current_world_ptr->dungeon_turn++;
+                       else if (p_ptr->wild_mode && !(current_world_ptr->game_turn % ((MAX_HGT + MAX_WID) / 2))) current_world_ptr->dungeon_turn++;
                }
 
                prevent_turn_overflow();
index f445ff1..8d7155a 100644 (file)
@@ -160,7 +160,6 @@ extern bool msg_flag;
 extern s16b running;
 extern GAME_TURN resting;
 extern bool invoking_midnight_curse;
-extern GAME_TURN dungeon_turn;
 extern GAME_TURN dungeon_turn_limit;
 extern GAME_TURN old_turn;
 extern GAME_TURN old_battle;
index 90047ab..a87acef 100644 (file)
@@ -2282,16 +2282,16 @@ static void rd_extra(void)
 
        if (z_older_than(10, 3, 12))
        {
-               dungeon_turn = current_world_ptr->game_turn;
+               current_world_ptr->dungeon_turn = current_world_ptr->game_turn;
        }
-       else rd_s32b(&dungeon_turn);
+       else rd_s32b(&current_world_ptr->dungeon_turn);
 
        if (z_older_than(11, 0, 13))
        {
                old_turn /= 2;
                p_ptr->feeling_turn /= 2;
                current_world_ptr->game_turn /= 2;
-               dungeon_turn /= 2;
+               current_world_ptr->dungeon_turn /= 2;
        }
 
        if (z_older_than(10, 3, 13))
index 647fbd7..20262bc 100644 (file)
@@ -1254,8 +1254,8 @@ MONRACE_IDX get_mon_num(DEPTH level)
        int pls_kakuritu, pls_level;
        int delay = mysqrt(level * 10000L) + 400L;
 
-       pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10)));
-       pls_level    = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ;
+       pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((current_world_ptr->dungeon_turn / (TURNS_PER_TICK * 5000L) - delay / 10)));
+       pls_level    = MIN(NASTY_MON_PLUS_MAX, 3 + current_world_ptr->dungeon_turn / (TURNS_PER_TICK * 40000L) - delay / 40 + MIN(5, level / 10)) ;
 
        if (d_info[p_ptr->dungeon_idx].flags1 & DF1_MAZE)
        {
index 9e57fc4..b935d9c 100644 (file)
@@ -828,7 +828,7 @@ static void wr_extra(void)
        /* Current current_world_ptr->game_turn */
        wr_s32b(current_world_ptr->game_turn);
 
-       wr_s32b(dungeon_turn);
+       wr_s32b(current_world_ptr->dungeon_turn);
 
        wr_s32b(old_battle);
 
index 9c84e42..f1db60a 100644 (file)
@@ -10,14 +10,14 @@ bool set_gametime(void)
        char ppp[80], tmp_val[40];
 
        sprintf(ppp, "Dungeon Turn (0-%ld): ", (long)dungeon_turn_limit);
-       sprintf(tmp_val, "%ld", (long)dungeon_turn);
+       sprintf(tmp_val, "%ld", (long)current_world_ptr->dungeon_turn);
        if (!get_string(ppp, tmp_val, 10)) return (FALSE);
        tmp_int = atoi(tmp_val);
 
        /* Verify */
        if (tmp_int >= dungeon_turn_limit) tmp_int = dungeon_turn_limit - 1;
        else if (tmp_int < 0) tmp_int = 0;
-       dungeon_turn = current_world_ptr->game_turn = tmp_int;
+       current_world_ptr->dungeon_turn = current_world_ptr->game_turn = tmp_int;
        return (TRUE);
 
 }
index 68bfe75..143a189 100644 (file)
@@ -1903,5 +1903,6 @@ typedef struct {
        POSITION max_wild_y;
        GAME_TURN game_turn;                    /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */
        GAME_TURN game_turn_limit;              /*!< game_turnの最大値 / Limit of game_turn */
+       GAME_TURN dungeon_turn;                 /*!< NASTY生成の計算に関わる内部ターン値 / Game current_world_ptr->game_turn in dungeon */
 
 } world_type;
index eaa0d0e..a3510d9 100644 (file)
@@ -113,8 +113,7 @@ GAME_TURN resting;                  /* Current counter for resting, if any */
 
 bool invoking_midnight_curse; /*!< 悪夢モード時の真夜中太古の呪い発生処理フラグ */
 
-GAME_TURN dungeon_turn;                        /*!< NASTY生成の計算に関わる内部ターン値 / Game current_world_ptr->game_turn in dungeon */
-GAME_TURN dungeon_turn_limit;  /*!< dungeon_turnの最大値 / Limit of game current_world_ptr->game_turn in dungeon */
+GAME_TURN dungeon_turn_limit;  /*!< current_world_ptr->dungeon_turnの最大値 / Limit of game current_world_ptr->game_turn in dungeon */
 GAME_TURN old_turn;                    /* Turn when level began */
 GAME_TURN old_battle;
 
@@ -155,6 +154,7 @@ MONSTER_IDX m_cnt = 0; /* Number of live monsters */
 
 MONSTER_IDX hack_m_idx = 0;    /* Hack -- see "process_monsters()" */
 MONSTER_IDX hack_m_idx_ii = 0;
+
 bool multi_rew = FALSE;
 char summon_kin_type;   /* Hack, by Julian Lighton: summon 'relatives' */