• R/O
  • HTTP
  • SSH
  • HTTPS

hengbandosx: Commit

The master and develop branches track hengband.

OS X development happens on the macos-1-6-2, macos-2-2-1, and macos-develop branches.


Commit MetaInfo

Revision426c72f9454329fe9f28ee75d8e3658c48ade777 (tree)
Time2021-10-05 01:21:17
AuthorEric Branlund <ebranlund@fast...>
CommiterEric Branlund

Log Message

Merge branch 'develop' into macos-develop

Change Summary

Incremental Difference

--- a/src/dungeon/quest-completion-checker.cpp
+++ b/src/dungeon/quest-completion-checker.cpp
@@ -253,7 +253,7 @@ void QuestCompletionChecker::make_reward(const Pos2D pos)
253253 while (true) {
254254 item.wipe();
255255 auto &r_ref = r_info[this->m_ptr->r_idx];
256- make_object(this->player_ptr, &item, AM_GOOD | AM_GREAT, r_ref.level);
256+ (void)make_object(this->player_ptr, &item, AM_GOOD | AM_GREAT, r_ref.level);
257257 if (!this->check_quality(item)) {
258258 continue;
259259 }
--- a/src/floor/floor-object.cpp
+++ b/src/floor/floor-object.cpp
@@ -81,11 +81,11 @@ static void object_mention(player_type *player_ptr, object_type *o_ptr)
8181 msg_format_wizard(player_ptr, CHEAT_OBJECT, _("%sを生成しました。", "%s was generated."), o_name);
8282 }
8383
84-static int get_base_floor(floor_type *floor_ptr, BIT_FLAGS mode, int rq_level)
84+static int get_base_floor(floor_type *floor_ptr, BIT_FLAGS mode, std::optional<int> rq_mon_level)
8585 {
8686 if (any_bits(mode, AM_GREAT)) {
87- if (rq_level > 0) {
88- return rq_level + 10 + randint1(10);
87+ if (rq_mon_level.has_value()) {
88+ return rq_mon_level.value() + 10 + randint1(10);
8989 } else {
9090 return floor_ptr->object_level + 15;
9191 }
@@ -115,17 +115,14 @@ static void set_ammo_quantity(object_type *j_ptr)
115115 * @param player_ptr プレイヤーへの参照ポインタ
116116 * @param j_ptr 生成結果を収めたいオブジェクト構造体の参照ポインタ
117117 * @param mode オプションフラグ
118- * @param rq_floor ランダムクエスト討伐対象のレベル
118+ * @param rq_mon_level ランダムクエスト討伐対象のレベル。ランダムクエスト以外の生成であれば無効値
119119 * @return アイテムの生成成功可否
120- * @details
121- * rq_levelは、ユニークのレベルであってランダムクエストの階層ではない
122- * ランダムクエストではない場合、-1が入る
123120 */
124-bool make_object(player_type *player_ptr, object_type *j_ptr, BIT_FLAGS mode, int rq_level)
121+bool make_object(player_type *player_ptr, object_type *j_ptr, BIT_FLAGS mode, std::optional<int> rq_mon_level)
125122 {
126- floor_type *floor_ptr = player_ptr->current_floor_ptr;
127- PERCENTAGE prob = ((mode & AM_GOOD) ? 10 : 1000);
128- auto base = get_base_floor(floor_ptr, mode, rq_level);
123+ auto *floor_ptr = player_ptr->current_floor_ptr;
124+ auto prob = any_bits(mode, AM_GOOD) ? 10 : 1000;
125+ auto base = get_base_floor(floor_ptr, mode, rq_mon_level);
129126 if (!one_in_(prob) || !make_artifact_special(player_ptr, j_ptr)) {
130127 if (any_bits(mode, AM_GOOD) && !get_obj_num_hook) {
131128 get_obj_num_hook = kind_is_good;
--- a/src/floor/floor-object.h
+++ b/src/floor/floor-object.h
@@ -2,6 +2,7 @@
22
33 #include "object/item-tester-hooker.h"
44 #include "system/angband.h"
5+#include <optional>
56
67 class ObjectIndexList;
78
@@ -9,7 +10,7 @@ struct floor_type;
910 struct object_type;;
1011 struct player_type;
1112 class ItemTester;
12-bool make_object(player_type *player_ptr, object_type *j_ptr, BIT_FLAGS mode, int rq_level);
13+bool make_object(player_type *player_ptr, object_type *j_ptr, BIT_FLAGS mode, std::optional<int> rq_mon_level = std::nullopt);
1314 bool make_gold(player_type *player_ptr, object_type *j_ptr);
1415 void delete_all_items_from_floor(player_type *player_ptr, POSITION y, POSITION x);
1516 void floor_item_increase(player_type *player_ptr, INVENTORY_IDX item, ITEM_NUMBER num);
--- a/src/grid/object-placer.cpp
+++ b/src/grid/object-placer.cpp
@@ -77,7 +77,7 @@ void place_object(player_type *player_ptr, POSITION y, POSITION x, BIT_FLAGS mod
7777
7878 q_ptr = &forge;
7979 q_ptr->wipe();
80- if (!make_object(player_ptr, q_ptr, mode, -1))
80+ if (!make_object(player_ptr, q_ptr, mode))
8181 return;
8282
8383 OBJECT_IDX o_idx = o_pop(floor_ptr);
--- a/src/monster-floor/monster-death.cpp
+++ b/src/monster-floor/monster-death.cpp
@@ -289,7 +289,7 @@ static void drop_items_golds(player_type *player_ptr, monster_death_type *md_ptr
289289
290290 dump_gold++;
291291 } else {
292- if (!make_object(player_ptr, q_ptr, md_ptr->mo_mode, -1))
292+ if (!make_object(player_ptr, q_ptr, md_ptr->mo_mode))
293293 continue;
294294
295295 dump_item++;
--- a/src/monster-floor/special-death-switcher.cpp
+++ b/src/monster-floor/special-death-switcher.cpp
@@ -122,7 +122,7 @@ static void on_dead_raal(player_type *player_ptr, monster_death_type *md_ptr)
122122 else
123123 get_obj_num_hook = kind_is_book;
124124
125- make_object(player_ptr, q_ptr, md_ptr->mo_mode, -1);
125+ (void)make_object(player_ptr, q_ptr, md_ptr->mo_mode);
126126 (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
127127 }
128128
@@ -342,7 +342,7 @@ static void on_dead_big_raven(player_type *player_ptr, monster_death_type *md_pt
342342 static bool make_equipment(player_type *player_ptr, object_type *q_ptr, const BIT_FLAGS drop_mode, const bool is_object_hook_null)
343343 {
344344 q_ptr->wipe();
345- (void)make_object(player_ptr, q_ptr, drop_mode, -1);
345+ (void)make_object(player_ptr, q_ptr, drop_mode);
346346 if (!is_object_hook_null) {
347347 return true;
348348 }
@@ -436,7 +436,7 @@ static void drop_specific_item_on_dead(player_type *player_ptr, monster_death_ty
436436 object_type *q_ptr = &forge;
437437 q_ptr->wipe();
438438 get_obj_num_hook = object_hook_pf;
439- (void)make_object(player_ptr, q_ptr, md_ptr->mo_mode, -1);
439+ (void)make_object(player_ptr, q_ptr, md_ptr->mo_mode);
440440 (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
441441 }
442442
--- a/src/specific-object/chest.cpp
+++ b/src/specific-object/chest.cpp
@@ -102,7 +102,7 @@ void Chest::chest_death(bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx)
102102 /* Otherwise drop an item */
103103 else {
104104 /* Make a good object */
105- if (!make_object(this->player_ptr, q_ptr, mode, -1))
105+ if (!make_object(this->player_ptr, q_ptr, mode))
106106 continue;
107107 }
108108
--- a/src/spell/spells-object.cpp
+++ b/src/spell/spells-object.cpp
@@ -192,7 +192,7 @@ void acquirement(player_type *player_ptr, POSITION y1, POSITION x1, int num, boo
192192 i_ptr->wipe();
193193
194194 /* Make a good (or great) object (if possible) */
195- if (!make_object(player_ptr, i_ptr, mode, -1))
195+ if (!make_object(player_ptr, i_ptr, mode))
196196 continue;
197197
198198 if (known) {
--- a/src/wizard/wizard-item-modifier.cpp
+++ b/src/wizard/wizard-item-modifier.cpp
@@ -447,7 +447,7 @@ static void wiz_statistics(player_type *player_ptr, object_type *o_ptr)
447447 object_type forge;
448448 object_type *q_ptr = &forge;
449449 q_ptr->wipe();
450- make_object(player_ptr, q_ptr, mode, -1);
450+ make_object(player_ptr, q_ptr, mode);
451451 if (q_ptr->is_fixed_artifact())
452452 a_info[q_ptr->name1].cur_num = 0;
453453
Show on old repository browser