• 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

Revision244ee003747fdb40391c5ab30bc41031f867034f (tree)
Zeit2021-04-04 22:26:09
AutorEric Branlund <ebranlund@fast...>
CommiterEric Branlund

Log Message

Merge branch 'develop' into macos-develop

Ändern Zusammenfassung

Diff

--- a/Hengband/Hengband/Hengband.vcxproj
+++ b/Hengband/Hengband/Hengband.vcxproj
@@ -674,7 +674,6 @@
674674 <ClCompile Include="..\..\src\core\hp-mp-processor.cpp" />
675675 <ClCompile Include="..\..\src\core\hp-mp-regenerator.cpp" />
676676 <ClCompile Include="..\..\src\core\magic-effects-timeout-reducer.cpp" />
677- <ClCompile Include="..\..\src\core\output-updater.cpp" />
678677 <ClCompile Include="..\..\src\core\stuff-handler.cpp" />
679678 <ClCompile Include="..\..\src\core\turn-compensator.cpp" />
680679 <ClCompile Include="..\..\src\effect\effect-feature.cpp" />
@@ -1441,7 +1440,6 @@
14411440 <ClInclude Include="..\..\src\core\hp-mp-processor.h" />
14421441 <ClInclude Include="..\..\src\core\hp-mp-regenerator.h" />
14431442 <ClInclude Include="..\..\src\core\magic-effects-timeout-reducer.h" />
1444- <ClInclude Include="..\..\src\core\output-updater.h" />
14451443 <ClInclude Include="..\..\src\core\special-internal-keys.h" />
14461444 <ClInclude Include="..\..\src\core\stuff-handler.h" />
14471445 <ClInclude Include="..\..\src\mspell\mspell-bolt.h" />
@@ -1864,4 +1862,4 @@
18641862 <Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props'))" />
18651863 <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props'))" />
18661864 </Target>
1867-</Project>
\ No newline at end of file
1865+</Project>
--- a/Hengband/Hengband/Hengband.vcxproj.filters
+++ b/Hengband/Hengband/Hengband.vcxproj.filters
@@ -299,9 +299,6 @@
299299 <ClCompile Include="..\..\src\birth\birth-explanations-table.cpp">
300300 <Filter>birth</Filter>
301301 </ClCompile>
302- <ClCompile Include="..\..\src\core\output-updater.cpp">
303- <Filter>core</Filter>
304- </ClCompile>
305302 <ClCompile Include="..\..\src\core\game-closer.cpp">
306303 <Filter>core</Filter>
307304 </ClCompile>
@@ -2582,9 +2579,6 @@
25822579 <ClInclude Include="..\..\src\birth\birth-explanations-table.h">
25832580 <Filter>birth</Filter>
25842581 </ClInclude>
2585- <ClInclude Include="..\..\src\core\output-updater.h">
2586- <Filter>core</Filter>
2587- </ClInclude>
25882582 <ClInclude Include="..\..\src\core\game-closer.h">
25892583 <Filter>core</Filter>
25902584 </ClInclude>
@@ -5068,4 +5062,4 @@
50685062 <ItemGroup>
50695063 <ResourceCompile Include="..\..\src\angband.rc" />
50705064 </ItemGroup>
5071-</Project>
\ No newline at end of file
5065+</Project>
--- a/lib/edit/a_info.txt
+++ b/lib/edit/a_info.txt
@@ -192,10 +192,12 @@ N:5:上級王イングウェの
192192 E:of Ingwe
193193 I:40:11:3
194194 W:65:50:3:90000
195-F:WIS | CHR | INFRA | HIDE_TYPE |
196-F:SEE_INVIS | FREE_ACT | ACTIVATE |
197-F:RES_ACID | RES_COLD | RES_ELEC |
198-F:INSTA_ART
195+P:0:1d1:0:0:5
196+F:WIS | CHR | INFRA | HIDE_TYPE
197+F:SUST_WIS | SUST_CON | SUST_CHR
198+F:SEE_INVIS | FREE_ACT | WARNING
199+F:RES_ACID | RES_COLD | RES_ELEC | RES_FIRE
200+F:INSTA_ART | ACTIVATE | XTRA_H_RES
199201 U:DISP_EVIL
200202 D:$The ancient heirloom of Ingwe, high lord of the Vanyar, against whom nothing
201203 D:$of evil could stand.
@@ -1354,7 +1356,7 @@ F:CON | HIDE_TYPE
13541356 F:BRAND_ELEC | RES_ELEC | ACTIVATE | SHOW_MODS | THROW | XTRA_H_RES
13551357 U:ELEC_BALL_AND_RESISTANCE
13561358 D:$A dagger covered in sparks and finely balanced for deadly throws.
1357-D:「黒の牙」を意味する名を持つ、この短剣は雷光に覆われ、
1359+D:「闇夜の牙」を意味する名を持つ、この短剣は雷光に覆われ、
13581360 D:その刃から雷の球を迸らせる力をもつ。
13591361
13601362 # The Dagger of Rilia
@@ -2860,11 +2862,15 @@ N:149:八尺
28602862 E:'Yasaka-no-Magatama'
28612863 I:40:19:3
28622864 W:65:50:3:90000
2863-F:INT | CHR | SEARCH | HIDE_TYPE |
2864-F:SEE_INVIS | FREE_ACT | ACTIVATE |
2865-F:RES_FIRE | RES_COLD | RES_ELEC |
2866-F:INSTA_ART
2865+P:0:0d0:0:0:5
2866+F:INT | CHR | SEARCH | HIDE_TYPE
2867+F:SUST_INT | SUST_DEX | SUST_CHR
2868+F:RES_FIRE | RES_COLD | RES_ELEC | RES_WATER
2869+F:SEE_INVIS | FREE_ACT | HOLD_EXP | WARNING
2870+F:INSTA_ART | ACTIVATE | XTRA_H_RES
28672871 U:RECALL
2872+D:玉祖命が造り、のちに邇邇芸命に授けられた勾玉だ。
2873+D:身に着ける者を様々な危機から守る霊力が備わっている。
28682874
28692875 N:150:『斬鉄剣』
28702876 E:'Zantetsuken'
@@ -4384,3 +4390,41 @@ D:$It is one of the two scimitars of the legendary dark elf, Drizzt Do'Urden.
43844390 D:$ It is paired with "Icingdeath".
43854391 D:伝説のダークエルフ、ドリッズドの二振りの剣のうちの1つだ。
43864392 D:『アイシングデス』と対を成している。
4393+
4394+N:261:『モルサンク』
4395+E:'Morthanc'
4396+I:23:4:1
4397+W:4:10:12:12000
4398+P:0:2d4:4:6:0
4399+F:STR | HIDE_TYPE
4400+F:BRAND_ACID | RES_ACID | ACTIVATE | SHOW_MODS | LITE | THROW | XTRA_H_RES
4401+U:ACID_BALL_AND_RESISTANCE
4402+D:$A acidic dagger finely balanced for deadly throws.
4403+D:「黒の牙」を意味する名を持つこの暗澹とした短剣は、
4404+D:その刃から酸の球を迸らせる力をもつ。
4405+
4406+N:262:有翼のサンダル『タラリア』
4407+E:Winged sandals 'Talaria'
4408+I:30:2:6
4409+W:30:30:10:100000
4410+P:0:0d0:0:0:10
4411+F:FULL_NAME | SPEED | STEALTH | FREE_ACT | LEVITATION
4412+F:ACTIVATE
4413+U:PHASE_DOOR
4414+D:$Can fly if wearing these winged sandals of Hermes.
4415+D:伝令神ヘルメスの有翼のサンダルだ。
4416+D:身につけると空を飛ぶことができる。
4417+
4418+N:263:破壊神シヴァの三叉槍『トリシューラ』
4419+E:Trifurcate Spear of Shiva 'Trishula'
4420+I:22:26:4
4421+W:80:100:400:150000
4422+P:0:4d9:15:25:5
4423+F:FULL_NAME | DEX | HIDE_TYPE | SHOW_MODS
4424+F:SLAY_EVIL | KILL_DEMON | BRAND_FIRE | BRAND_ELEC
4425+F:IM_FIRE | RES_ELEC | SEE_INVIS | LITE | LITE_3
4426+F:BLESSED | RIDING | ACTIVATE
4427+U:BA_FIRE_2
4428+D:破壊神シヴァが持つ三又槍だ。3つの穂先はそれぞれシヴァの力である、意志(欲望)、行動、知恵をあらわす。
4429+D:シヴァはこの槍を用いて、アシュラ族の3人の魔神『トリプラースラ』がつくった「鉄でできた町」「銀でできた町」
4430+D:「金でできた町」を一晩で焼き払った。
--- a/lib/edit/e_info.txt
+++ b/lib/edit/e_info.txt
@@ -289,7 +289,7 @@ E:of Lordliness
289289 X:33:17
290290 W:0:18:0:10000
291291 C:0:0:0:3
292-F:WIS | CHR | SUST_WIS | SUST_CHR | XTRA_H_RES
292+F:WIS | CHR | SUST_WIS | SUST_CHR | XTRA_H_RES | XTRA_POWER
293293
294294 N:30:鋭敏の
295295 E:of Seeing
@@ -318,11 +318,15 @@ X:33:20
318318 W:0:18:0:15000
319319 #F:TELEPATHY
320320
321-N:34:急速回復の
321+N:34:再生の
322322 E:of Regeneration
323323 X:33:10
324-W:0:36:0:1500
325-F:REGEN
324+W:0:36:0:5500
325+C:0:0:7:0
326+F:SUST_STR | SUST_CON | ONE_SUSTAIN
327+F:RES_TIME | REGEN | HOLD_EXP | XTRA_POWER
328+F:BLESSED | ACTIVATE
329+U:CURE_700
326330
327331 N:35:テレポートの
328332 E:of Teleportation
@@ -343,9 +347,11 @@ F:INT | WIS | CHR | CURSED
343347 N:37:バジリスクの
344348 E:of Basilisk
345349 X:33:20
346-C:0:0:0:8
350+C:0:0:5:8
347351 W:0:36:0:10000
348352 F:INFRA | RES_POIS | FREE_ACT
353+F:ACTIVATE
354+U:BR_DRAGON
349355
350356 N:38:太古の忌まわしい
351357 E:of Ancient Curse
@@ -595,10 +601,10 @@ F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
595601 N:66:(祝福)
596602 E:(Blessed)
597603 X:24:20
598-W:0:36:0:5000
599-C:0:0:0:3
600-F:WIS | ESP_GOOD |
601-F:BLESSED | XTRA_POWER
604+W:0:36:0:7500
605+C:10:0:5:3
606+F:WIS | ESP_GOOD | SLAY_UNDEAD | SLAY_DEMON
607+F:LITE_2 | BLESSED | XTRA_POWER | XTRA_H_RES
602608
603609 # 67 (unused)
604610
@@ -706,31 +712,30 @@ U:QUAKE
706712 # 85
707713 # 86
708714
709-
710715 N:87:(妖刀)
711716 E:(Weird Weapon)
712717 X:24:30
713718 W:0:40:0:0
714-C:20:20:0:3
715-F:INT | WIS | VORPAL | VAMPIRIC | SLAY_DRAGON |
716-F:SLAY_ANIMAL | SLAY_ORC | SLAY_TROLL | SLAY_GIANT | SLAY_HUMAN |
717-F:DRAIN_EXP | AGGRAVATE |
719+C:0:10:0:-3
720+F:INT | WIS | POWERFUL
721+F:VORPAL | VAMPIRIC | SLAY_DRAGON
722+F:SLAY_ANIMAL | SLAY_ORC | SLAY_TROLL | SLAY_GIANT | SLAY_HUMAN
723+F:DRAIN_EXP | AGGRAVATE
718724 F:HEAVY_CURSE | CURSED | XTRA_DICE
719725
720-
721726 # The "Kill" brands (8)
722727
723728 N:88:アニマルスレイヤーの
724729 E:of Slay Animal
725730 X:24:10
726-W:0:40:0:6000
731+W:0:40:0:5000
727732 C:0:0:0:3
728733 F:INT | KILL_ANIMAL | REGEN | ESP_ANIMAL
729734
730735 N:89:滅邪の
731736 E:of Slay Evil
732737 X:24:15
733-W:0:40:0:5000
738+W:0:40:0:6000
734739 C:0:0:0:3
735740 F:WIS | SLAY_EVIL | BLESSED | RES_FEAR | ESP_EVIL
736741
@@ -739,7 +744,7 @@ E:of Slay Undead
739744 X:24:12
740745 W:0:40:0:8000
741746 C:0:0:0:3
742-F:WIS | KILL_UNDEAD | SEE_INVIS | RES_NETHER | ESP_UNDEAD
747+F:WIS | KILL_UNDEAD | BLESSED | SEE_INVIS | RES_NETHER | ESP_UNDEAD
743748
744749 N:91:デーモンスレイヤーの
745750 E:of Slay Demon
@@ -832,13 +837,14 @@ F:RES_FIRE | RES_NETHER | SEE_INVIS | ESP_DEMON | XTRA_DICE
832837
833838 N:102:モルグルの
834839 E:of Morgul
835-X:24:0
836-W:0:36:0:0
837-C:20:20:10:0
838-F:SEE_INVIS | AGGRAVATE | CURSED | SH_COLD |
839-F:SLAY_UNDEAD | SLAY_HUMAN | BRAND_POIS | ESP_UNDEAD |
840-F:RES_COLD | RES_NETHER |
841-F:RANDOM_CURSE2 | XTRA_DICE
840+X:24:25
841+W:0:30:0:15000
842+C:-5:12:-15:4
843+F:WIS | POWERFUL | CURSED
844+F:SLAY_UNDEAD | BRAND_COLD | BRAND_POIS
845+F:RES_COLD | RES_NETHER | SH_COLD
846+F:SEE_INVIS | ESP_UNDEAD | AGGRAVATE
847+F:RANDOM_CURSE2 | XTRA_DICE | XTRA_POWER
842848
843849 N:103:人喰いの
844850 E:of Slay Human
@@ -1014,7 +1020,7 @@ E:of Immolation
10141020 X:30:20
10151021 W:0:36:0:3000
10161022 C:0:0:0:0
1017-F:SH_FIRE | IGNORE_FIRE
1023+F:RES_FIRE | SH_FIRE | IGNORE_FIRE
10181024
10191025 N:143:暗視の
10201026 E:of Infravision
@@ -1527,8 +1533,8 @@ U:DETECT_ALL
15271533
15281534 N:237:愚者の
15291535 E:and Naivety
1530-X:27:0
1531-W:29:0:0:0
1536+X:29:0
1537+W:0:0:0:0
15321538 C:0:0:0:3
15331539 F:WIS | CHR | CURSED | HEAVY_CURSE | DOWN_SAVING
15341540
--- a/lib/edit/misc.txt
+++ b/lib/edit/misc.txt
@@ -25,7 +25,7 @@ M:V:173
2525 M:F:255
2626
2727 # Maximum number of artifacts in a_info.txt
28-M:A:261
28+M:A:264
2929
3030 # Maximum number of ego-items in e_info.txt
3131 M:E:255
--- a/lib/edit/r_info.txt
+++ b/lib/edit/r_info.txt
@@ -20556,25 +20556,21 @@ B:EXPLODE:HURT:1d2
2055620556 F:RAND_50 | CAN_FLY |
2055720557 F:WEIRD_MIND | ANIMAL
2055820558
20559-#
20560-# ケンシロウのコピーだけど、少しだけ違う。Raoh?
20561-#
2056220559 N:1018:世紀末覇者『ラオウ』
2056320560 E:Raou the Conqueror
2056420561 G:p:W
20565-I:123:60d100:50:170:10
20566-W:62:2:0:30000:0:0
20567-B:PUNCH:HURT:15d15
20568-B:PUNCH:HURT:15d15
20569-B:PUNCH:TERRIFY:30d1
20570-B:KICK:SUPERHURT:15d15
20571-F:UNIQUE | MALE | CAN_SPEAK | SMART | REFLECTING | HAS_LITE_2 | HUMAN |
20572-F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON |
20573-F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP |
20574-F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
20575-F:GOOD | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE |
20576-S:1_IN_3 |
20577-S:CAUSE_3 | TELE_TO
20562+I:123:66d139:50:170:10
20563+W:69:2:0:30000:0:0
20564+B:PUNCH:HURT:16d16
20565+B:PUNCH:HURT:16d16
20566+B:PUNCH:SUPERHURT:16d16
20567+F:UNIQUE | MALE | CAN_SPEAK | SMART | REFLECTING | HAS_LITE_2 | HUMAN
20568+F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON
20569+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP
20570+F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM
20571+F:GOOD | EVIL | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE
20572+S:1_IN_4
20573+S:BR_WALL | TELE_TO
2057820574 D:$Raou is the eldest of four honorary brothers, another being Kenshirou,
2057920575 D:$ who were trained by the master of Hokuto Shinken, a martial art.
2058020576 D:$ Headstrong, Raou tries to forge a new order through conquest in a
@@ -22798,6 +22794,7 @@ B:TOUCH:TIME:8d7
2279822794 F:QUANTUM | UNIQUE | FEMALE | ATTR_CLEAR | FORCE_MAXHP | RAND_25
2279922795 F:ONLY_ITEM | DROP_GREAT | DROP_2D2 | DROP_4D2
2280022796 F:DROP_CORPSE | DROP_SKELETON
22797+F:PREVENT_SUDDEN_MAGIC
2280122798 F:SMART | REFLECTING | INVISIBLE | WEIRD_MIND | REGENERATE
2280222799 F:POWERFUL | ELDRITCH_HORROR | AURA_ELEC | PASS_WALL
2280322800 F:MOVE_BODY | TAKE_ITEM | NO_FEAR | NO_CONF | NO_SLEEP
@@ -25186,19 +25183,20 @@ D:瑞々しい体からは汁が噴き出す。
2518625183 N:1271:吸魂鬼
2518725184 E:Dementor
2518825185 G:G:D
25189-I:120:22d202:20:300:50
25190-W:96:13:0:23000:0:0
25191-B:GAZE:TERRIFY:10d10
25192-B:TOUCH:COLD:10d10
25193-B:ENGULF:EXP_VAMP:100d1
25186+I:120:10d100:20:100:10
25187+W:60:4:0:5000:0:0
25188+B:GAZE:TERRIFY:8d8
25189+B:TOUCH:COLD:8d8
25190+B:ENGULF:EXP_VAMP:50d1
2519425191 F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | INVISIBLE | COLD_BLOOD
2519525192 F:EMPTY_MIND | PASS_WALL | CAN_FLY
2519625193 F:UNDEAD | EVIL | AURA_COLD | NONLIVING | HAS_DARK_2
2519725194 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS
25198-F:RES_LITE | RES_DARK | RES_NETH | RES_WATE | RES_PLAS | RES_SHAR | RES_SOUN
25199-F:RES_CHAO | RES_NEXU | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV
25195+F:RES_DARK | RES_NETH | RES_WATE | RES_SHAR | RES_SOUN
25196+F:RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV
2520025197 F:NO_FEAR | NO_STUN | NO_CONF | NO_SLEEP
25201-S:1_IN_3 | MIND_BLAST | BRAIN_SMASH | HAND_DOOM | DARKNESS
25198+S:1_IN_3
25199+S:BRAIN_SMASH | DARKNESS | SCARE
2520225200 D:それはこの世で最も忌まわしい生き物の一つである。
2520325201 D:それは相手からあらゆる幸せな気持ちを吸い取り、後には不幸しか残さない。
2520425202 D:それのそばでは動く気力すら沸かなくなるため、刑務所の看守として登用されている。
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -153,7 +153,6 @@ hengband_SOURCES = \
153153 core/hp-mp-regenerator.cpp core/hp-mp-regenerator.h \
154154 core/magic-effects-timeout-reducer.cpp core/magic-effects-timeout-reducer.h \
155155 core/object-compressor.cpp core/object-compressor.h \
156- core/output-updater.cpp core/output-updater.h \
157156 core/player-processor.cpp core/player-processor.h \
158157 core/player-redraw-types.h \
159158 core/player-update-types.h \
--- a/src/cmd-action/cmd-move.cpp
+++ b/src/cmd-action/cmd-move.cpp
@@ -5,9 +5,9 @@
55 #include "cmd-io/cmd-save.h"
66 #include "core/asking-player.h"
77 #include "core/disturbance.h"
8-#include "core/output-updater.h"
98 #include "core/player-redraw-types.h"
109 #include "core/player-update-types.h"
10+#include "core/stuff-handler.h"
1111 #include "dungeon/dungeon.h"
1212 #include "dungeon/quest.h"
1313 #include "floor/cave.h"
@@ -429,8 +429,7 @@ void do_cmd_rest(player_type *creature_ptr)
429429 creature_ptr->resting = command_arg;
430430 creature_ptr->action = ACTION_REST;
431431 creature_ptr->update |= PU_BONUS;
432- update_creature(creature_ptr);
433432 creature_ptr->redraw |= (PR_STATE);
434- update_output(creature_ptr);
433+ handle_stuff(creature_ptr);
435434 term_fresh();
436435 }
--- a/src/core/game-play.cpp
+++ b/src/core/game-play.cpp
@@ -17,7 +17,6 @@
1717 #include "cmd-io/cmd-gameoption.h"
1818 #include "core/asking-player.h"
1919 #include "core/game-closer.h"
20-#include "core/output-updater.h"
2120 #include "core/player-processor.h"
2221 #include "core/player-update-types.h"
2322 #include "core/scores.h"
--- a/src/core/output-updater.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
1-/*!
2- * @brief メインウィンドウの再描画を行う
3- * @date 2020/05/09
4- * @author Hourier
5- */
6-
7-#include "core/output-updater.h"
8-#include "core/window-redrawer.h"
9-
10-void update_output(player_type* player_ptr)
11-{
12- if (player_ptr->redraw)
13- redraw_stuff(player_ptr);
14- if (player_ptr->window_flags)
15- window_stuff(player_ptr);
16-}
--- a/src/core/output-updater.h
+++ /dev/null
@@ -1,5 +0,0 @@
1-#pragma once
2-
3-#include "system/angband.h"
4-
5-void update_output(player_type* player_ptr);
--- a/src/effect/effect-monster-charm.cpp
+++ b/src/effect/effect-monster-charm.cpp
@@ -17,6 +17,7 @@
1717 #include "object-enchant/trc-types.h"
1818 #include "pet/pet-fall-off.h"
1919 #include "player-info/avatar.h"
20+#include "player/player-status.h"
2021 #include "player/player-status-flags.h"
2122 #include "spell/spells-diceroll.h"
2223 #include "status/bad-status-setter.h"
@@ -359,6 +360,7 @@ static bool effect_monster_capture_attemption(player_type *caster_ptr, effect_mo
359360 msg_format(_("地面に落とされた。", "You have fallen from %s."), em_ptr->m_name);
360361
361362 delete_monster_idx(caster_ptr, em_ptr->g_ptr->m_idx);
363+ calculate_upkeep(caster_ptr);
362364 return TRUE;
363365 }
364366
--- a/src/mind/mind-elementalist.cpp
+++ b/src/mind/mind-elementalist.cpp
@@ -803,10 +803,13 @@ bool get_element_power(player_type *caster_ptr, SPELL_IDX *sn, bool only_browse)
803803 continue;
804804 }
805805
806- spell = get_elemental_info(caster_ptr, i);
807806 if (ask) {
807+ char name[80];
808808 char tmp_val[160];
809- (void)strnfmt(tmp_val, 78, _("%sを使いますか?", "Use %s? "), spell.name);
809+ elem = get_elemental_elem(caster_ptr, i);
810+ spell = get_elemental_info(caster_ptr, i);
811+ (void)sprintf(name, spell.name, get_element_name(caster_ptr->realm1, elem));
812+ (void)strnfmt(tmp_val, 78, _("%sを使いますか?", "Use %s? "), name);
810813 if (!get_check(tmp_val))
811814 continue;
812815 }
--- a/src/mspell/mspell-breath.cpp
+++ b/src/mspell/mspell-breath.cpp
@@ -16,6 +16,32 @@
1616 #include "view/display-messages.h"
1717
1818 /*!
19+ * @brief ブレスを吐くときにモンスター固有のセリフを表示する
20+ * @param r_idx モンスター種族番号
21+ * @param GF_TYPE 魔法効果
22+ * @return 表示したらTRUE、しなかったらFALSE
23+ */
24+static bool spell_RF4_BREATH_special_message(MONSTER_IDX r_idx, int GF_TYPE, concptr m_name)
25+{
26+ if (r_idx == MON_JAIAN && GF_TYPE == GF_SOUND) {
27+ msg_format(_("%^s「ボォエ~~~~~~」", "%^s sings, 'Booooeeeeee'"), m_name);
28+ return TRUE;
29+ }
30+ if (r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS) {
31+ msg_format(_("%^s「ボ帝ビルカッター!!!」", "%^s shouts, 'Boty-Build cutter!!!'"), m_name);
32+ return TRUE;
33+ }
34+ if (r_idx == MON_RAOU &&GF_TYPE == GF_FORCE) {
35+ if (one_in_(2))
36+ msg_format(_("%^s「北斗剛掌波!!」", "%^s says, 'Hokuto Goh-Sho-Ha!!'"), m_name);
37+ else
38+ msg_format(_("%^s「受けてみい!!天将奔烈!!!」", "%^s says, 'Tensho-Honretsu!!'"), m_name);
39+ return TRUE;
40+ }
41+ return FALSE;
42+}
43+
44+/*!
1945 * @brief RF4_BR_*の処理。各種ブレス。 /
2046 * @param target_ptr プレーヤーへの参照ポインタ
2147 * @param GF_TYPE ブレスの属性
@@ -187,18 +213,16 @@ MonsterSpellResult spell_RF4_BREATH(player_type *target_ptr, int GF_TYPE, POSITI
187213 if (mon_to_player || (mon_to_mon && known && see_either))
188214 disturb(target_ptr, TRUE, TRUE);
189215
190- if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND) {
191- msg_format(_("「ボォエ~~~~~~」", "'Booooeeeeee'"));
192- } else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS) {
193- msg_format(_("「ボ帝ビルカッター!!!」", "'Boty-Build cutter!!!'"));
194- } else if (target_ptr->blind) {
195- if (mon_to_player || (mon_to_mon && known && see_either))
196- msg_format(_("%^sが何かのブレスを吐いた。", "%^s breathes."), m_name);
197- } else {
198- if (mon_to_player) {
199- msg_format(_("%^sが%^sのブレスを吐いた。", "%^s breathes %^s."), m_name, type_s);
200- } else if (mon_to_mon && known && see_either) {
201- _(msg_format("%^sが%^sに%^sのブレスを吐いた。", m_name, t_name, type_s), msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
216+ if (!spell_RF4_BREATH_special_message(m_ptr->r_idx, GF_TYPE, m_name)) {
217+ if (target_ptr->blind) {
218+ if (mon_to_player || (mon_to_mon && known && see_either))
219+ msg_format(_("%^sが何かのブレスを吐いた。", "%^s breathes."), m_name);
220+ } else {
221+ if (mon_to_player) {
222+ msg_format(_("%^sが%^sのブレスを吐いた。", "%^s breathes %^s."), m_name, type_s);
223+ } else if (mon_to_mon && known && see_either) {
224+ _(msg_format("%^sが%^sに%^sのブレスを吐いた。", m_name, t_name, type_s), msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
225+ }
202226 }
203227 }
204228
--- a/src/object-enchant/apply-magic.cpp
+++ b/src/object-enchant/apply-magic.cpp
@@ -307,7 +307,10 @@ void apply_magic(player_type *owner_ptr, object_type *o_ptr, DEPTH lev, BIT_FLAG
307307 } else if (o_ptr->name2 == EGO_A_DEMON || o_ptr->name2 == EGO_DRUID || o_ptr->name2 == EGO_OLOG) {
308308 o_ptr->pval = randint1(e_ptr->max_pval);
309309 } else {
310- o_ptr->pval += randint1(e_ptr->max_pval);
310+ if (e_ptr->max_pval > 0)
311+ o_ptr->pval += randint1(e_ptr->max_pval);
312+ else if (e_ptr->max_pval < 0)
313+ o_ptr->pval -= randint1(0 - e_ptr->max_pval);
311314 }
312315 }
313316
--- a/src/specific-object/monster-ball.cpp
+++ b/src/specific-object/monster-ball.cpp
@@ -8,6 +8,7 @@
88 #include "monster/monster-info.h"
99 #include "monster/monster-util.h"
1010 #include "object-activation/activation-util.h"
11+#include "player/player-status.h"
1112 #include "racial/racial-android.h"
1213 #include "spell-kind/spells-launcher.h"
1314 #include "spell/spell-types.h"
@@ -185,6 +186,7 @@ bool exe_monster_capture(player_type *user_ptr, ae_type *ae_ptr)
185186 if (!ae_ptr->success)
186187 msg_print(_("おっと、解放に失敗した。", "Oops. You failed to release your pet."));
187188
189+ calculate_upkeep(user_ptr);
188190 calc_android_exp(user_ptr);
189191 return TRUE;
190192 }
--- a/src/system/angband-version.h
+++ b/src/system/angband-version.h
@@ -17,7 +17,7 @@
1717 #define H_VER_MAJOR 3 //!< ゲームのバージョン定義(メジャー番号)
1818 #define H_VER_MINOR 0 //!< ゲームのバージョン定義(マイナー番号)
1919 #define H_VER_PATCH 0 //!< ゲームのバージョン定義(パッチ番号)
20-#define H_VER_EXTRA 15 //!< ゲームのバージョン定義(エクストラ番号)
20+#define H_VER_EXTRA 16 //!< ゲームのバージョン定義(エクストラ番号)
2121
2222 /*!
2323 * @brief セーブファイルのバージョン(3.0.0から導入)
--- a/src/view/display-messages.cpp
+++ b/src/view/display-messages.cpp
@@ -1,5 +1,4 @@
11 #include "view/display-messages.h"
2-#include "core/output-updater.h"
32 #include "core/window-redrawer.h"
43 #include "game-option/cheat-options.h"
54 #include "game-option/input-options.h"
@@ -421,7 +420,7 @@ void msg_print(concptr msg)
421420
422421 term_putstr(p, 0, n, TERM_WHITE, t);
423422 p_ptr->window_flags |= (PW_MESSAGE);
424- update_output(p_ptr);
423+ window_stuff(p_ptr);
425424
426425 msg_flag = TRUE;
427426 #ifdef JP
--- a/src/wizard/cmd-wizard.cpp
+++ b/src/wizard/cmd-wizard.cpp
@@ -76,6 +76,7 @@ std::vector<std::vector<std::string>> debug_menu_table = {
7676 { "W", _("願い", "Wishing") },
7777 { "x", _("経験値を得る(指定可)", "Get experience") },
7878 { "X", _("所持品を初期状態に戻す", "Return inventory to initial") },
79+ { "y", _("ダメージ100万・半径0の弱魔力のボールを放つ", "Cast missile ball had power a million") },
7980 { "z", _("近隣のモンスター消去", "Terminate near monsters") },
8081 { "Z", _("フロアの全モンスター消去", "Terminate all monsters in floor") },
8182 { "@", _("特殊スペルの発動", "Activate specified spells") },
@@ -139,7 +140,7 @@ bool exe_cmd_debug(player_type *creature_ptr, char cmd)
139140 wiz_create_item(creature_ptr);
140141 break;
141142 case 'C':
142- wiz_create_named_art(creature_ptr);
143+ wiz_create_named_art(creature_ptr, command_arg);
143144 break;
144145 case 'd':
145146 detect_all(creature_ptr, DETECT_RAD_ALL * 3);
--- a/src/wizard/wizard-player-modifier.cpp
+++ b/src/wizard/wizard-player-modifier.cpp
@@ -23,6 +23,7 @@
2323 std::vector<std::vector<std::string>> wizard_player_modifier_menu_table = {
2424 { "r", _("種族変更", "Change race") },
2525 { "c", _("職業変更", "Change class") },
26+ { "R", _("領域変更", "Change realms") },
2627 { "e", _("能力変更", "Change status") },
2728 { "k", _("自己分析", "Self knowledge") },
2829 { "l", _("ライフレート変更", "Set new life rate") },
@@ -90,6 +91,9 @@ void wizard_player_modifier(player_type *creature_ptr)
9091 case 'r':
9192 wiz_reset_race(creature_ptr);
9293 break;
94+ case 'R':
95+ wiz_reset_realms(creature_ptr);
96+ break;
9397 default:
9498 msg_print("That is not a valid debug command.");
9599 break;
--- a/src/wizard/wizard-special-process.cpp
+++ b/src/wizard/wizard-special-process.cpp
@@ -212,15 +212,22 @@ void wiz_create_item(player_type *caster_ptr)
212212 * @param caster_ptr プレーヤーへの参照ポインタ
213213 * @return なし
214214 */
215-void wiz_create_named_art(player_type *caster_ptr)
215+void wiz_create_named_art(player_type *caster_ptr, ARTIFACT_IDX a_idx)
216216 {
217- char tmp_val[10] = "";
218- if (!get_string("Artifact ID:", tmp_val, 3))
219- return;
217+ if (a_idx <= 0) {
218+ char tmp[80] = "";
219+ sprintf(tmp, "Artifact ID (1-%d): ", max_a_idx - 1);
220+ char tmp_val[10] = "";
221+ if (!get_string(tmp, tmp_val, 3))
222+ return;
223+
224+ a_idx = (ARTIFACT_IDX)atoi(tmp_val);
225+ }
220226
221- ARTIFACT_IDX a_idx = (ARTIFACT_IDX)atoi(tmp_val);
222- if ((a_idx < 0) || (a_idx >= max_a_idx))
223- a_idx = 0;
227+ if (a_idx <= 0 || a_idx >= max_a_idx) {
228+ msg_format(_("番号は1から%dの間で指定して下さい。", "ID must be between 1 to %d."), max_a_idx - 1);
229+ return;
230+ }
224231
225232 (void)create_named_art(caster_ptr, a_idx, caster_ptr->y, caster_ptr->x);
226233 msg_print("Allocated.");
@@ -252,7 +259,7 @@ void wiz_change_status(player_type *creature_ptr)
252259 }
253260
254261 sprintf(tmp_val, "%d", WEAPON_EXP_MASTER);
255- if (!get_string(_("熟練度: ", "Proficiency: "), tmp_val, 9))
262+ if (!get_string(_("熟練度: ", "Proficiency: "), tmp_val, 4))
256263 return;
257264
258265 s16b tmp_s16b = (s16b)atoi(tmp_val);
@@ -466,7 +473,7 @@ void wiz_reset_race(player_type *creature_ptr)
466473
467474 creature_ptr->window_flags |= PW_PLAYER;
468475 creature_ptr->update |= PU_BONUS | PU_HP | PU_MANA | PU_SPELLS;
469- creature_ptr->redraw |= PR_BASIC;
476+ creature_ptr->redraw |= PR_BASIC | PR_HP | PR_MANA | PR_STATS;
470477 handle_stuff(creature_ptr);
471478 }
472479
@@ -492,6 +499,36 @@ void wiz_reset_class(player_type *creature_ptr)
492499
493500 creature_ptr->pclass = static_cast<player_class_type>(tmp_int);
494501 cp_ptr = &class_info[creature_ptr->pclass];
502+ mp_ptr = &m_info[creature_ptr->pclass];
503+ creature_ptr->window_flags |= PW_PLAYER;
504+ creature_ptr->update |= PU_BONUS | PU_HP | PU_MANA | PU_SPELLS;
505+ creature_ptr->redraw |= PR_BASIC | PR_HP | PR_MANA | PR_STATS;
506+ handle_stuff(creature_ptr);
507+}
508+
509+/*!
510+ * @brief プレイヤーの領域を変更する
511+ * @return なし
512+ * @todo 存在有無などは未判定。そのうちすべき。
513+ */
514+void wiz_reset_realms(player_type *creature_ptr)
515+{
516+ char ppp[80];
517+ char tmp_val[160];
518+
519+ sprintf(ppp, "1st Realm (None=0, 1-%d): ", MAX_REALM - 1);
520+ sprintf(tmp_val, "%d", creature_ptr->realm1);
521+ if (!get_string(ppp, tmp_val, 2))
522+ return;
523+
524+ creature_ptr->realm1 = static_cast<REALM_IDX>(atoi(tmp_val));
525+
526+ sprintf(ppp, "2st Realm (None=0, 1-%d): ", MAX_REALM - 1);
527+ sprintf(tmp_val, "%d", creature_ptr->realm2);
528+ if (!get_string(ppp, tmp_val, 2))
529+ return;
530+
531+ creature_ptr->realm2 = static_cast<REALM_IDX>(atoi(tmp_val));
495532 creature_ptr->window_flags |= PW_PLAYER;
496533 creature_ptr->update |= PU_BONUS | PU_HP | PU_MANA | PU_SPELLS;
497534 creature_ptr->redraw |= PR_BASIC;
--- a/src/wizard/wizard-special-process.h
+++ b/src/wizard/wizard-special-process.h
@@ -5,13 +5,14 @@
55 void wiz_cure_all(player_type *creature_ptr);
66 KIND_OBJECT_IDX wiz_create_itemtype(void);
77 void wiz_create_item(player_type *caster_ptr);
8-void wiz_create_named_art(player_type *caster_ptr);
8+void wiz_create_named_art(player_type *caster_ptr, ARTIFACT_IDX a_idx);
99 void wiz_change_status(player_type *creature_ptr);
1010 void wiz_create_feature(player_type *creature_ptr);
1111 void wiz_jump_to_dungeon(player_type *creature_ptr);
1212 void wiz_learn_items_all(player_type *caster_ptr);
1313 void wiz_reset_race(player_type *creature_ptr);
1414 void wiz_reset_class(player_type *creature_ptr);
15+void wiz_reset_realms(player_type *creature_ptr);
1516 void wiz_dump_options(void);
1617 void set_gametime(void);
1718 void wiz_zap_surrounding_monsters(player_type *caster_ptr);
Show on old repository browser