OSDN Git Service

Merge pull request #36 from taotao54321/fix-wrong-evasion-message
authortaotao54321 <taotao54321@gmail.com>
Fri, 12 Feb 2021 14:43:12 +0000 (23:43 +0900)
committerGitHub <noreply@github.com>
Fri, 12 Feb 2021 14:43:12 +0000 (23:43 +0900)
[Fix] 打撃回避判定のバグ修正

147 files changed:
.github/workflows/buildtest-on-linux.yml
lib/edit/r_info.txt
lib/file/rumors.txt
src/action/activation-execution.c
src/artifact/random-art-generator.c
src/autopick/autopick-describer.c
src/autopick/autopick-util.c
src/blue-magic/learnt-power-getter.c
src/cmd-action/cmd-hissatsu.c
src/cmd-action/cmd-mane.c
src/cmd-action/cmd-mind.c
src/cmd-action/cmd-move.c
src/cmd-action/cmd-pet.c
src/cmd-action/cmd-racial.c
src/cmd-action/cmd-spell.c
src/cmd-building/cmd-building.c
src/cmd-building/cmd-store.c
src/cmd-io/cmd-floor.c
src/cmd-io/cmd-gameoption.c
src/cmd-item/cmd-destroy.c
src/cmd-item/cmd-eat.c
src/cmd-item/cmd-equipment.c
src/cmd-item/cmd-item.c
src/cmd-item/cmd-smith.c
src/cmd-item/cmd-throw.c
src/cmd-item/cmd-usestaff.c
src/cmd-item/cmd-zaprod.c
src/cmd-item/cmd-zapwand.c
src/cmd-visual/cmd-draw.c
src/core/asking-player.c
src/core/game-play.c
src/core/hp-mp-processor.c
src/core/hp-mp-regenerator.c
src/core/object-compressor.c
src/core/output-updater.c
src/core/player-processor.c
src/core/stuff-handler.c
src/core/window-redrawer.c
src/dungeon/dungeon-processor.c
src/dungeon/quest.c
src/effect/effect-monster-psi.c
src/effect/effect-monster.c
src/effect/effect-player-resist-hurt.c
src/effect/effect-player-spirit.c
src/effect/effect-processor.c
src/floor/floor-changer.c
src/floor/floor-events.c
src/floor/floor-object.c
src/grid/grid.c
src/info-reader/race-info-tokens-table.c
src/inventory/floor-item-getter.c
src/inventory/inventory-object.c
src/inventory/inventory-slot-types.h
src/inventory/item-getter.c
src/inventory/player-inventory.c
src/inventory/recharge-processor.c
src/io/input-key-acceptor.c
src/io/input-key-acceptor.h
src/io/input-key-requester.c
src/lore/lore-store.c
src/maid-x11.c
src/main-win.c
src/main-x11.c
src/market/arena.c
src/market/building-recharger.c
src/mind/mind-blue-mage.c
src/mind/mind-mindcrafter.c
src/mind/mind-mirror-master.c
src/mind/mind-ninja.c
src/mind/mind-power-getter.c
src/mind/mind-priest.c
src/mind/mind-sniper.c
src/monster-attack/monster-eating.c
src/monster-floor/monster-move.c
src/monster-floor/one-monster-placer.c
src/monster-race/race-flags1.h
src/monster/monster-flag-types.h
src/monster/monster-processor.c
src/monster/monster-status-setter.c
src/monster/monster-update.c
src/mspell/monster-power-table.c
src/mspell/mspell-attack.c
src/mspell/mspell-checker.c
src/mspell/mspell-dispel.c
src/object-activation/activation-bolt-ball.c
src/object-activation/activation-others.c
src/object-enchant/activation-info-table.c
src/object-enchant/dragon-breaths-table.c
src/object-hook/hook-expendable.c
src/object-use/quaff-execution.c
src/object-use/read-execution.c
src/object/lite-processor.c
src/object/object-info.c
src/perception/simple-perception.c
src/pet/pet-fall-off.c
src/player/player-damage.c
src/player/player-move.c
src/player/player-status.c
src/player/player-status.h
src/racial/racial-switcher.c
src/realm/realm-arcane.c
src/realm/realm-chaos.c
src/realm/realm-craft.c
src/realm/realm-crusade.c
src/realm/realm-death.c
src/realm/realm-demon.c
src/realm/realm-hex.c
src/realm/realm-hissatsu.c
src/realm/realm-life.c
src/realm/realm-song.c
src/realm/realm-trump.c
src/room/rooms-vault.c
src/specific-object/toragoroshi.c
src/spell-kind/earthquake.c
src/spell-kind/spells-curse-removal.c
src/spell-kind/spells-detection.c
src/spell-kind/spells-equipment.c
src/spell-kind/spells-fetcher.c
src/spell-kind/spells-floor.c
src/spell-kind/spells-genocide.c
src/spell-kind/spells-perception.c
src/spell-kind/spells-sight.c
src/spell-realm/spells-chaos.c
src/spell-realm/spells-hex.c
src/spell-realm/spells-song.c
src/spell-realm/spells-sorcery.c
src/spell/spells-object.c
src/spell/spells-status.c
src/spell/spells-summon.c
src/status/bad-status-setter.c
src/status/base-status.c
src/status/body-improvement.c
src/status/buff-setter.c
src/status/shape-changer.c
src/status/temporary-resistance.c
src/target/grid-selector.c
src/target/target-checker.c
src/target/target-setter.c
src/target/target-setter.h
src/term/z-term.c
src/term/z-term.h
src/view/display-messages.c
src/window/display-sub-window-spells.c
src/window/display-sub-windows.c
src/window/display-sub-windows.h
src/wizard/wizard-item-modifier.c
src/wizard/wizard-special-process.c

index bc9af7c..7695fe9 100644 (file)
@@ -31,7 +31,7 @@ jobs:
         run: ./configure
 
       - name: Build Japanese version
-        run: make
+        run: make -j$(nproc)
 
       - name: Clean source tree
         run: make clean
@@ -40,4 +40,4 @@ jobs:
         run: ./configure --disable-japanese
 
       - name: Build English version
-        run: make
+        run: make -j$(nproc)
index 9708530..08aea00 100644 (file)
@@ -770,7 +770,7 @@ E:Shrieker mushroom patch
 G:,:R
 I:110:1d1:4:1:0
 W:2:1:0:3:0:0
-F:FORCE_SLEEP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | NEVER_BLOW | 
 F:STUPID | EMPTY_MIND | 
 F:IM_POIS | WILD_SWAMP | DROP_CORPSE |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -851,7 +851,7 @@ I:110:7d4:20:10:10
 W:2:1:0:9:100:225
 B:HIT:HURT:1d9
 F:MALE | HAS_LITE_1 | HUMAN |
-F:FORCE_SLEEP | GOOD | WILD_ALL | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | GOOD | WILD_ALL | DROP_SKELETON | DROP_CORPSE
 F:DROP_60 | EAT_GIVE_WIS | EAT_LOSE_INT | EAT_LOSE_CON
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_12 | 
@@ -867,7 +867,7 @@ I:110:6d4:20:6:5
 W:2:1:0:9:100:240
 B:HIT:HURT:1d8
 F:MALE | HAS_LITE_1 | HUMAN |
-F:FORCE_SLEEP | WILD_ALL | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | WILD_ALL | DROP_SKELETON | DROP_CORPSE
 F:DROP_60 | EAT_GIVE_INT | EAT_LOSE_STR | EAT_LOSE_CON
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_12 | 
@@ -1415,7 +1415,7 @@ B:SHOOT:HURT:2d7
 B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 F:MALE | HAS_LITE_1 | HUMAN |
-F:FORCE_SLEEP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | DROP_SKELETON | DROP_CORPSE
 F:DROP_60 | EAT_LOSE_STR | EAT_LOSE_WIS | EAT_GIVE_CON |
 F:OPEN_DOOR | BASH_DOOR | WILD_WOOD |
 S:1_IN_9 | 
@@ -1561,7 +1561,7 @@ I:110:6d4:20:6:10
 W:5:2:0:7:100:240
 B:HIT:HURT:1d8
 F:MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | DROP_60 | WILD_ALL | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR |
 S:1_IN_12 | 
@@ -1620,7 +1620,7 @@ W:4:1:0:20:500:1038
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 F:MALE | GOOD | HAS_LITE_1 | HUMAN |
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_60 | WILD_ALL | DROP_SKELETON | DROP_CORPSE |
 F:OPEN_DOOR | BASH_DOOR | EAT_GIVE_WIS | EAT_LOSE_INT
 S:1_IN_9 | 
@@ -1793,7 +1793,7 @@ I:110:7d4:20:10:5
 W:6:2:0:7:100:225
 B:HIT:HURT:1d9
 F:MALE | GOOD | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | WILD_ALL | DROP_SKELETON | DROP_CORPSE |
+F:PREVENT_SUDDEN_MAGIC | WILD_ALL | DROP_SKELETON | DROP_CORPSE |
 F:FRIENDS | DROP_60 |
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_12 | 
@@ -1903,7 +1903,7 @@ B:SHOOT:HURT:2d5
 B:HIT:HURT:1d5
 B:HIT:HURT:1d5
 F:MALE | HAS_LITE_1 | HUMAN |
-F:FORCE_SLEEP | WILD_ALL | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | WILD_ALL | DROP_SKELETON | DROP_CORPSE
 F:ONLY_GOLD | DROP_1D2 | EAT_GIVE_DEX | EAT_LOSE_INT | EAT_LOSE_WIS
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_3 | 
@@ -1993,7 +1993,7 @@ W:7:2:0:25:700:348
 B:HIT:HURT:1d8
 B:HIT:HURT:1d8
 F:MALE | 
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_90 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | HURT_LITE | RES_DARK
@@ -2229,7 +2229,7 @@ B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:TOUCH:EAT_GOLD
 F:UNIQUE | MALE | EVIL | CAN_SPEAK | HAS_LITE_2
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN | ONLY_ITEM | DROP_1D2 | DROP_GREAT
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN | ONLY_ITEM | DROP_1D2 | DROP_GREAT
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | DROP_CORPSE | RES_TELE
 S:1_IN_5 | 
 S:HEAL | SLOW | TRAPS | BO_COLD | BA_POIS
@@ -2256,7 +2256,7 @@ B:SHOOT:HURT:3d6
 B:HIT:HURT:2d6
 B:TOUCH:EAT_GOLD
 B:TOUCH:EAT_ITEM
-F:UNIQUE | MALE | FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | HUMAN
+F:UNIQUE | MALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | HUMAN
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT | WILD_WOOD
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | EVIL | DROP_SKELETON | DROP_CORPSE
 F:EAT_GIVE_DEX | EAT_LOSE_WIS
@@ -2336,7 +2336,7 @@ B:SHOOT:HURT:2d7
 B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 F:MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FRIENDS | DROP_60 | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FRIENDS | DROP_60 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR |
 S:1_IN_9 | 
 S:SHOOT | MISSILE
@@ -2351,7 +2351,7 @@ G:R:r
 I:110:6d7:6:40:1
 W:8:1:0:50:0:0
 B:BITE:FIRE:3d7
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_25 | SELF_LITE_1 |
 F:ANIMAL | IM_FIRE | CAN_SWIM | DROP_CORPSE | EAT_FIRE_RES |
 S:1_IN_9 
@@ -2407,7 +2407,7 @@ W:8:2:0:20:500:1038
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 F:MALE | GOOD | WILD_ALL | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | HAS_LITE_2 | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | HAS_LITE_2 | HUMAN |
 F:FRIENDS | DROP_60 | 
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_9 | 
@@ -2582,7 +2582,7 @@ W:9:1:0:25:0:0
 B:CLAW:HURT:1d7
 B:CLAW:HURT:1d7
 B:BITE:HURT:1d10
-F:BASH_DOOR | FORCE_MAXHP | FORCE_SLEEP | UNIQUE | DROP_CORPSE
+F:BASH_DOOR | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | UNIQUE | DROP_CORPSE
 F:ANIMAL | WILD_ONLY | WILD_WOOD | WILD_GRASS | WILD_MOUNTAIN 
 D:$A wounded bear, who has occasionally attacked humans.
 D:傷ついた熊で、人間を襲うこともある。
@@ -2623,7 +2623,7 @@ W:9:1:0:30:0:0
 B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 F:MALE | 
-F:FORCE_SLEEP | DROP_90 | WILD_WOOD | WILD_SWAMP | WILD_MOUNTAIN |
+F:PREVENT_SUDDEN_MAGIC | DROP_90 | WILD_WOOD | WILD_SWAMP | WILD_MOUNTAIN |
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE | RES_DARK |
 F:EVIL | ORC | HURT_LITE | EAT_GIVE_INT | EAT_LOSE_WIS | EAT_SLEEP |
 S:1_IN_8 | 
@@ -2640,7 +2640,7 @@ W:9:1:0:35:700:459
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
-F:FORCE_MAXHP | FORCE_SLEEP | DROP_CORPSE
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | DROP_CORPSE
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | IM_ELEC | EAT_ELEC_RES |
@@ -2659,7 +2659,7 @@ W:9:1:0:35:700:460
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
-F:FORCE_MAXHP | FORCE_SLEEP | CAN_FLY | DROP_CORPSE
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_FLY | DROP_CORPSE
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | DRAGON | IM_COLD | EAT_COLD_RES |
@@ -2678,7 +2678,7 @@ W:9:1:0:35:700:461
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
-F:FORCE_MAXHP | FORCE_SLEEP | 
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY | DROP_CORPSE
 F:EVIL | DRAGON | IM_POIS | EAT_POIS_RES
@@ -2697,7 +2697,7 @@ W:9:1:0:35:750:546
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
-F:FORCE_MAXHP | FORCE_SLEEP | CAN_FLY | DROP_CORPSE
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_FLY | DROP_CORPSE
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | EAT_ACID_RES | 
 F:EVIL | DRAGON | IM_ACID
@@ -2716,7 +2716,7 @@ W:10:1:0:40:850:563
 B:CLAW:HURT:1d5
 B:CLAW:HURT:1d5
 B:BITE:HURT:1d6
-F:FORCE_MAXHP | FORCE_SLEEP | CAN_FLY | DROP_CORPSE
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_FLY | DROP_CORPSE
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | EAT_FIRE_RES |
 F:EVIL | DRAGON | IM_FIRE
@@ -2908,7 +2908,7 @@ W:10:1:0:50:700:375
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 F:MALE | 
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | EAT_MANA | EAT_LOSE_STR | EAT_LOSE_CON |
 F:EVIL | IM_POIS | RES_DARK | HURT_LITE
@@ -2940,7 +2940,7 @@ B:HIT:HURT:1d8
 B:INSULT
 B:INSULT
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | HAS_LITE_2 |
 F:ONLY_ITEM | DROP_90 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR | 
@@ -3172,7 +3172,7 @@ W:10:2:0:150:1200:504
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
-F:FORCE_MAXHP | FORCE_SLEEP | CAN_FLY | DROP_CORPSE |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_FLY | DROP_CORPSE |
 F:DROP_60 | BASH_DOOR | DRAGON | EAT_BLIND | RES_LITE | RES_DARK
 S:1_IN_11 |
 S:CONF | SCARE | BR_LITE | BR_DARK
@@ -3357,7 +3357,7 @@ B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:1d5
 F:ATTR_MULTI | 
-F:FORCE_MAXHP | FORCE_SLEEP | 
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE
 F:EVIL | DRAGON | CAN_FLY |
@@ -3401,7 +3401,7 @@ B:CRUSH:HURT:2d12
 S:1_IN_6
 S:TELE_TO
 F:ANIMAL | NEVER_MOVE | COLD_BLOOD | WILD_ONLY | WILD_WOOD |
-F:EMPTY_MIND | UNIQUE | DROP_CORPSE | FORCE_MAXHP | FORCE_SLEEP |
+F:EMPTY_MIND | UNIQUE | DROP_CORPSE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC |
 F:RES_WATE | IM_POIS | IM_ACID | HURT_FIRE |
 F:DROP_90 | DROP_GOOD | ONLY_ITEM
 D:$"...a huge willow-tree, old and hoary. Enormous it looked, its 
@@ -3582,7 +3582,7 @@ W:9:1:0:36:0:0
 B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 F:MALE | WILD_SWAMP | WILD_WASTE |
-F:FORCE_SLEEP | DROP_90 | HAS_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | DROP_90 | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | 
 S:1_IN_8 | 
@@ -3703,7 +3703,7 @@ G:y:g
 I:110:12d9:18:24:10
 W:12:2:0:28:0:0
 B:HIT:HURT:1d8
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_60 | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | 
 F:ANIMAL | EVIL | IM_ACID | DROP_CORPSE | EAT_NEXUS |
@@ -3722,7 +3722,7 @@ W:12:1:0:36:800:445
 B:HIT:HURT:2d3
 B:HIT:HURT:2d3
 F:MALE | GOOD | HAS_LITE_2 |
-F:FORCE_SLEEP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | HUMAN |
 F:DROP_1D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 S:1_IN_3 |
@@ -3740,7 +3740,7 @@ W:12:1:0:50:600:400
 B:HIT:HURT:1d9
 B:HIT:HURT:1d10
 F:MALE | 
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_1D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | HURT_LITE | RES_DARK | EAT_MANA |
@@ -3824,7 +3824,7 @@ W:12:2:0:44:600:477
 B:WAIL:TERRIFY
 B:TOUCH:LOSE_DEX:1d8
 B:TOUCH:DR_MANA:1d8
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:DROP_60 | DROP_90 | CAN_FLY |
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | RES_NETH | NO_CONF | NO_SLEEP
@@ -3873,7 +3873,7 @@ B:SHOOT:HURT:3d6
 B:HIT:HURT:1d12
 B:HIT:HURT:1d12
 B:BITE:POISON:1d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:BASH_DOOR | DROP_SKELETON |
 F:EVIL | IM_POIS
 S:1_IN_8 | 
@@ -3917,7 +3917,7 @@ B:HIT:HURT:1d9
 B:HIT:HURT:1d9
 B:HIT:HURT:1d8
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | HAS_LITE_2 |
 F:ONLY_ITEM | DROP_90 | DROP_1D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_SPEAK | DROP_CORPSE
@@ -3969,7 +3969,7 @@ I:110:12d8:20:10:10
 W:13:2:0:50:500:449
 B:HIT:HURT:2d2
 F:MALE | HUMAN |
-F:FORCE_SLEEP | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:SMART | OPEN_DOOR | BASH_DOOR | EAT_CONF
 F:EVIL
 S:1_IN_3 | 
@@ -3991,7 +3991,7 @@ W:13:2:0:50:700:370
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 F:MALE | WILD_WOOD | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:SMART | OPEN_DOOR | BASH_DOOR | EAT_SLEEP |
 S:1_IN_3 | 
 S:HASTE | BLINK | BLIND | HOLD | SLOW | BO_FIRE | BO_ELEC
@@ -4130,7 +4130,7 @@ G:F:w
 I:110:5d8:20:20:50
 W:14:3:0:60:0:0
 B:BITE:COLD:1d6
-F:FORCE_SLEEP | WILD_WASTE |
+F:PREVENT_SUDDEN_MAGIC | WILD_WASTE |
 F:RAND_50 | CAN_FLY |
 F:WEIRD_MIND | BASH_DOOR | 
 F:ANIMAL | IM_COLD
@@ -4168,7 +4168,7 @@ B:CRAWL:POISON:1d4
 B:CRAWL:EAT_FOOD
 B:HIT:HURT:1d4
 B:HIT:HURT:1d4
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | 
 F:MULTIPLY | OPEN_DOOR | BASH_DOOR | CAN_SWIM | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | EAT_CONF
@@ -4413,7 +4413,7 @@ E:Magic mushroom patch
 G:,:B
 I:130:1d1:40:10:0
 W:15:2:0:10:0:0
-F:FORCE_SLEEP | NEVER_MOVE | NEVER_BLOW | FRIENDS | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | NEVER_BLOW | FRIENDS | 
 F:STUPID | RES_TELE | CAN_SWIM |
 F:NO_CONF | NO_SLEEP | NO_FEAR | SELF_LITE_1 |
 S:1_IN_1 | 
@@ -4469,7 +4469,7 @@ W:15:2:0:55:0:0
 B:CLAW:HURT:1d8
 B:CLAW:HURT:1d8
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_60 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | 
 F:ANIMAL | EVIL
@@ -4494,7 +4494,7 @@ G:Z:o
 I:110:6d6:30:30:0
 W:15:1:0:50:0:0
 B:BITE:HURT:1d6
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:FRIENDS | SELF_LITE_1 | SELF_LITE_2 |
 F:BASH_DOOR | 
 F:ANIMAL | RES_LITE
@@ -4510,7 +4510,7 @@ G:Z:D
 I:110:6d6:30:30:0
 W:15:1:0:50:0:0
 B:BITE:HURT:1d6
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:FRIENDS |
 F:BASH_DOOR | HURT_LITE | 
 F:ANIMAL | RES_DARK
@@ -4655,7 +4655,7 @@ I:110:7d8:20:20:20
 W:15:2:0:40:0:0
 B:HIT:HURT:1d5
 F:MALE | HAS_LITE_1 |
-F:FORCE_SLEEP | FRIENDS | DROP_60 | 
+F:PREVENT_SUDDEN_MAGIC | FRIENDS | DROP_60 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON
 F:EVIL
 S:1_IN_4 | 
@@ -4766,7 +4766,7 @@ G:F:G
 I:110:3d8:12:20:50
 W:16:2:0:70:0:0
 B:BITE:POISON:1d6
-F:FORCE_SLEEP | RAND_50 | RAND_25 | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | RAND_25 | WILD_SWAMP |
 F:WEIRD_MIND | BASH_DOOR | CAN_FLY |
 F:ANIMAL | IM_POIS
 S:1_IN_10 | 
@@ -4879,7 +4879,7 @@ W:16:2:0:50:10000:649
 B:BITE:LOSE_DEX:1d6
 B:CLAW:HURT:1d3
 B:CLAW:HURT:1d3
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | 
 F:SMART | INVISIBLE | BASH_DOOR | 
@@ -4897,7 +4897,7 @@ I:110:60d5:20:80:20
 W:17:2:0:80:0:0
 B:CLAW:HURT:2d6
 B:CLAW:HURT:2d6
-F:FORCE_SLEEP | RIDING |
+F:PREVENT_SUDDEN_MAGIC | RIDING |
 F:ONLY_GOLD | DROP_1D2 | CAN_FLY | DROP_CORPSE |
 F:OPEN_DOOR | BASH_DOOR | WILD_MOUNTAIN
 F:ANIMAL
@@ -4914,7 +4914,7 @@ I:110:6d8:20:30:20
 W:17:2:0:55:1000:566
 B:HIT:POISON:3d4
 B:HIT:POISON:3d4
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | 
 F:SMART | INVISIBLE | COLD_BLOOD | BASH_DOOR | 
@@ -4947,7 +4947,7 @@ G:*:w
 I:120:6d6:100:30:0
 W:17:1:0:50:0:0
 B:EXPLODE:COLD:8d8
-F:FORCE_SLEEP | CAN_FLY | COLD_BLOOD |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY | COLD_BLOOD |
 F:EMPTY_MIND | AURA_COLD | HURT_FIRE |
 F:IM_COLD | NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING
 D:$The embodiment of cold.
@@ -4960,7 +4960,7 @@ G:*:r
 I:120:6d6:100:30:0
 W:17:1:0:50:0:0
 B:EXPLODE:FIRE:8d8
-F:FORCE_SLEEP | CAN_FLY | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY | SELF_LITE_2 |
 F:EMPTY_MIND | AURA_FIRE | HURT_COLD |
 F:IM_FIRE | NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING
 D:$The embodiment of heat.
@@ -4973,7 +4973,7 @@ G:*:B
 I:120:6d6:100:30:0
 W:17:1:0:50:0:0
 B:EXPLODE:ELEC:8d8
-F:FORCE_SLEEP | CAN_FLY | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY | SELF_LITE_2 |
 F:EMPTY_MIND | AURA_ELEC |
 F:IM_ELEC | NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING
 D:$A crackling ball of energy.
@@ -4987,7 +4987,7 @@ I:110:100d3:20:60:20
 W:17:2:0:80:1200:387
 B:BITE:HURT:2d6
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | WILD_SHORE | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | WILD_SHORE | WILD_SWAMP |
 F:ONLY_GOLD | DROP_1D2 | CAN_SWIM | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | RIDING
@@ -5076,7 +5076,7 @@ W:18:1:0:70:0:0
 B:BITE:HURT:2d3
 B:BITE:HURT:2d3
 B:BITE:FIRE:2d3
-F:FORCE_SLEEP | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | SELF_LITE_2 |
 F:FRIENDS | 
 F:BASH_DOOR | HURT_COLD |
 F:ANIMAL | IM_FIRE |
@@ -5096,7 +5096,7 @@ W:18:1:0:70:0:0
 B:BITE:HURT:1d8
 B:CLAW:HURT:1d8
 B:BITE:COLD:1d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | HURT_FIRE |
 F:BASH_DOOR |
 F:ANIMAL | IM_COLD
@@ -5116,7 +5116,7 @@ W:18:1:0:70:0:0
 B:BITE:HURT:2d3
 B:BITE:HURT:2d3
 B:BITE:ELEC:2d3
-F:FORCE_SLEEP | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | SELF_LITE_2 |
 F:FRIENDS |
 F:BASH_DOOR | 
 F:ANIMAL | IM_ELEC
@@ -5137,7 +5137,7 @@ B:HIT:POISON:3d4
 B:HIT:HURT:2d5
 B:HIT:DR_MANA:2d5
 F:CHAR_MULTI | ATTR_SEMIRAND |
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_6 | 
@@ -5157,7 +5157,7 @@ B:HIT:POISON:3d4
 B:HIT:CONFUSE:2d3
 B:HIT:PARALYZE:2d3
 F:CHAR_MULTI | 
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_6 | 
@@ -5327,7 +5327,7 @@ E:Giant bronze dragon fly
 G:F:U
 I:120:3d8:12:20:50
 W:18:1:0:70:0:0
-F:FORCE_SLEEP | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_BLOW | 
 F:RAND_50 | RAND_25 | CAN_FLY |
 F:WEIRD_MIND | BASH_DOOR | WILD_MOUNTAIN |
 F:ANIMAL | NO_CONF | NO_SLEEP
@@ -5357,7 +5357,7 @@ E:Giant black dragon fly
 G:F:D
 I:120:3d8:12:20:50
 W:18:2:0:68:0:0
-F:FORCE_SLEEP | NEVER_BLOW | RAND_50 | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_BLOW | RAND_50 | RAND_25 | 
 F:WEIRD_MIND | BASH_DOOR | CAN_FLY | WILD_SWAMP |
 F:ANIMAL | IM_ACID
 S:1_IN_9 | 
@@ -5402,7 +5402,7 @@ G:F:y
 I:120:3d8:12:20:50
 W:18:2:0:78:0:0
 B:BITE:HURT:1d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | RAND_25 | WILD_MOUNTAIN |
 F:WEIRD_MIND | BASH_DOOR | 
 F:ANIMAL | IM_FIRE | RES_SOUN | CAN_FLY
@@ -5564,7 +5564,7 @@ B:BITE:HURT:2d5
 B:BITE:HURT:2d5
 B:BITE:HURT:2d5
 B:STING:POISON:1d5
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_60 | DROP_90 | IM_POIS | CAN_FLY |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | DRAGON |
 F:WILD_WOOD | WILD_MOUNTAIN | DROP_SKELETON | DROP_CORPSE |
@@ -5619,7 +5619,7 @@ B:BITE:HURT:1d8
 B:BITE:HURT:1d8
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS |
 F:BASH_DOOR | HURT_ROCK |
 F:ANIMAL | RES_SHAR
@@ -5641,7 +5641,7 @@ B:BITE:HURT:1d8
 B:BITE:HURT:1d8
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | CAN_FLY |
 F:BASH_DOOR |
 F:ANIMAL | IM_POIS
@@ -5679,7 +5679,7 @@ B:BITE:ACID:2d8
 B:BITE:ACID:2d8
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:BASH_DOOR | CAN_SWIM | WILD_SHORE |
 F:ANIMAL | IM_ACID
@@ -5699,7 +5699,7 @@ W:20:1:0:100:800:433
 B:BITE:HURT:1d10
 B:BITE:FIRE:1d3
 B:BITE:FIRE:1d3
-F:FORCE_SLEEP | CAN_FLY | DROP_CORPSE |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY | DROP_CORPSE |
 F:BASH_DOOR | WILD_MOUNTAIN |
 F:IM_FIRE | RIDING
 S:1_IN_10 | 
@@ -5721,7 +5721,7 @@ E:Quylthulg
 G:Q:W
 I:110:6d8:10:1:0
 W:20:1:0:250:0:0
-F:FORCE_SLEEP | NEVER_MOVE | NEVER_BLOW |
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | NEVER_BLOW |
 F:EMPTY_MIND | INVISIBLE | STUPID |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_4 | 
@@ -5820,7 +5820,7 @@ W:20:2:0:500:0:0
 B:HIT:HURT:3d8
 B:HIT:HURT:3d5
 F:MALE | 
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_2D2 | DROP_SKELETON | DROP_CORPSE | EAT_BLIND |
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | HURT_LITE | RES_DARK
@@ -5871,7 +5871,7 @@ G:b:B
 I:130:4d4:12:26:50
 W:21:1:0:54:0:0
 B:BITE:ELEC:1d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | SELF_LITE_1 |
 F:BASH_DOOR | CAN_FLY |
 F:ANIMAL | IM_ELEC
@@ -5891,7 +5891,7 @@ B:HIT:POISON:3d4
 B:HIT:HURT:2d3
 B:HIT:HURT:2d3
 F:CHAR_MULTI | 
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_5 | 
@@ -5913,7 +5913,7 @@ B:CLAW:POISON:3d4
 B:CLAW:POISON:3d4
 B:SPIT:BLIND:2d3
 F:CHAR_MULTI | 
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_5 | 
@@ -5931,7 +5931,7 @@ G:v:r
 I:110:9d9:100:30:0
 W:21:1:0:100:0:0
 B:ENGULF:FIRE:3d3
-F:FORCE_SLEEP | RAND_50 | CAN_FLY | WILD_VOLCANO | WILD_ALL | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | CAN_FLY | WILD_VOLCANO | WILD_ALL | SELF_LITE_2 |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | AURA_FIRE | HURT_COLD |
 F:IM_FIRE | NO_FEAR | NO_CONF | NO_SLEEP | NO_STUN |  NONLIVING
 S:1_IN_6 | 
@@ -5947,7 +5947,7 @@ G:v:b
 I:110:9d9:100:30:0
 W:21:1:0:100:0:0
 B:ENGULF:ACID:3d3
-F:FORCE_SLEEP | RAND_50 | WILD_SHORE | 
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | WILD_SHORE | 
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | CAN_FLY |
 F:IM_ACID | NO_FEAR | NO_CONF | NO_SLEEP | NO_STUN |  NONLIVING
 S:1_IN_6 | 
@@ -5984,7 +5984,7 @@ I:125:11d11:100:30:0
 W:21:1:0:300:0:0
 B:CLAW:HURT:3d9
 B:CLAW:HURT:3d9
-F:RAND_50 | EVIL | DEMON | FORCE_SLEEP | FORCE_MAXHP |
+F:RAND_50 | EVIL | DEMON | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:OPEN_DOOR | BASH_DOOR | COLD_BLOOD |
 F:IM_FIRE | RES_NETH | NO_CONF | NO_SLEEP | NONLIVING | NO_STUN
 S:1_IN_3 |
@@ -6002,7 +6002,7 @@ G:v:W
 I:110:9d9:100:30:0
 W:21:1:0:100:0:0
 B:ENGULF:COLD:3d3
-F:FORCE_SLEEP | RAND_50 | AURA_COLD | COLD_BLOOD |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | AURA_COLD | COLD_BLOOD |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | CAN_FLY | HURT_FIRE |
 F:IM_COLD | NO_FEAR | NO_CONF | NO_SLEEP | NO_STUN | NONLIVING
 S:1_IN_6 | 
@@ -6018,7 +6018,7 @@ G:v:y
 I:110:12d12:100:30:0
 W:21:1:0:130:0:0
 B:ENGULF:ELEC:5d5
-F:FORCE_SLEEP | RAND_50 | CAN_FLY | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | CAN_FLY | SELF_LITE_2 |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | AURA_ELEC |
 F:IM_ELEC | NO_FEAR | NO_CONF | NO_SLEEP | NO_STUN |  NONLIVING
 S:1_IN_6 | 
@@ -6156,7 +6156,7 @@ G:g:W
 I:110:80d12:12:80:10
 W:22:2:0:160:0:0
 B:HIT:HURT:1d12
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | 
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
 F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING
@@ -6175,7 +6175,7 @@ B:CRUSH:HURT:1d8
 B:CRUSH:HURT:1d8
 B:CRUSH:HURT:1d8
 B:CRUSH:HURT:1d8
-F:FORCE_SLEEP | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | RES_TELE
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING
 D:$It looks like a huge spiked roller, moving on its own towards you.
@@ -6288,7 +6288,7 @@ W:23:1:0:75:20000:657
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 F:MALE | 
-F:FORCE_SLEEP | EAT_MANA | EAT_GIVE_INT | EAT_LOSE_STR | EAT_LOSE_CON |
+F:PREVENT_SUDDEN_MAGIC | EAT_MANA | EAT_GIVE_INT | EAT_LOSE_STR | EAT_LOSE_CON |
 F:ONLY_ITEM | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | FRIENDS
 F:EVIL | IM_POIS | RES_DARK | HURT_LITE
@@ -6324,7 +6324,7 @@ G:b:r
 I:130:3d8:12:28:50
 W:23:1:0:60:2000:484
 B:BITE:FIRE:1d3
-F:FORCE_SLEEP | RAND_50 | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | SELF_LITE_1 |
 F:BASH_DOOR | CAN_FLY | DROP_CORPSE | EAT_FIRE_RES |
 F:ANIMAL | IM_FIRE
 S:1_IN_4 | 
@@ -6371,7 +6371,7 @@ B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_90 | DROP_1D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_ELEC | NO_CONF | NO_SLEEP
@@ -6388,7 +6388,7 @@ W:24:1:0:140:1000:416
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:TOUCH:EXP_20
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:DROP_60 | DROP_90 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK | HURT_LITE | 
@@ -6414,7 +6414,7 @@ B:HIT:HURT:3d6
 B:HIT:UN_BONUS
 B:TOUCH:EAT_GOLD
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | EVIL |
 F:IM_FIRE | IM_COLD | NO_CONF | NO_SLEEP | RES_DARK | RES_DISE | RES_TELE
@@ -6438,7 +6438,7 @@ B:HIT:HURT:3d7
 B:HIT:HURT:3d7
 B:HIT:UN_BONUS
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | EVIL |
 F:IM_FIRE | IM_COLD | RES_DARK | RES_DISE | NO_CONF | NO_SLEEP | RES_TELE
@@ -6497,7 +6497,7 @@ W:24:2:0:250:0:0
 B:BITE:HURT:3d6
 B:BITE:HURT:3d6
 B:BITE:HURT:3d6
-F:FORCE_SLEEP | AQUATIC | RES_WATE |
+F:PREVENT_SUDDEN_MAGIC | AQUATIC | RES_WATE |
 F:ANIMAL
 D:$A very large carnivorous fish.
 D:それはとても大きな肉食の魚だ。
@@ -6512,7 +6512,7 @@ B:BITE:HURT:2d6
 B:BITE:HURT:2d6
 B:BITE:HURT:2d6
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_4D2 | WILD_SWAMP | WILD_SHORE |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | DROP_SKELETON | DROP_CORPSE
 F:ANIMAL | RIDING
@@ -6549,7 +6549,7 @@ B:CLAW:HURT:1d6
 B:CLAW:HURT:1d6
 B:BITE:HURT:3d6
 B:BITE:HURT:3d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | DROP_CORPSE
 F:ANIMAL | RIDING
 D:$A horror from prehistory, reawakened by chaos.
@@ -6595,7 +6595,7 @@ B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | HAS_LITE_1 | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HAS_LITE_1 | HUMAN |
 F:ONLY_ITEM | DROP_90 | DROP_1D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_ELEC | NO_CONF | NO_SLEEP
@@ -6716,7 +6716,7 @@ I:110:80d12:12:80:10
 W:25:3:0:600:0:0
 B:HIT:HURT:1d12
 B:HIT:HURT:3d6
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | 
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
 F:HURT_ROCK | NONLIVING |
@@ -6755,7 +6755,7 @@ B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 B:HIT:HURT:3d8
 F:MALE | 
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | EAT_SLEEP |
 F:EVIL | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -6809,7 +6809,7 @@ B:HIT:HURT:1d8
 B:HIT:HURT:1d8
 B:BITE:HURT:3d4
 F:MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_90 | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_90 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | REGENERATE |
 F:EVIL | TROLL | HURT_LITE | NO_CONF | NO_SLEEP
 S:1_IN_5 | 
@@ -7031,7 +7031,7 @@ W:26:1:0:175:2000:554
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:TOUCH:EXP_20
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_1D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | CAN_FLY | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -7051,7 +7051,7 @@ B:HIT:HURT:3d4
 B:HIT:HURT:3d4
 B:HIT:HURT:3d4
 B:HIT:HURT:3d4
-F:FORCE_MAXHP | FORCE_SLEEP | NO_FEAR | SELF_LITE_1 |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | NO_FEAR | SELF_LITE_1 |
 F:ONLY_ITEM | DROP_2D2 | GOOD | CAN_FLY |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP | ANGEL
@@ -7108,7 +7108,7 @@ B:HIT:UN_BONUS:3d12
 B:TOUCH:EAT_GOLD
 B:TOUCH:EAT_GOLD
 F:UNIQUE | MALE | CAN_SPEAK
-F:FORCE_MAXHP | FORCE_SLEEP | DROP_SKELETON | DROP_CORPSE
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | INVISIBLE |
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -7129,7 +7129,7 @@ W:27:2:0:130:0:0
 B:SLASH:EXP_20:2d13
 B:SLASH:EXP_20:2d13
 F:CHAR_MULTI | EVIL | IM_POIS | IM_COLD | RES_CHAO |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:COLD_BLOOD | BASH_DOOR | NONLIVING |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 D:$A deadly blade of chaos, moving of its own volition.
@@ -7205,7 +7205,7 @@ I:110:60d15:10:70:20
 W:27:2:0:500:0:0
 B:ENGULF:FIRE:3d6
 B:ENGULF:FIRE:3d6
-F:FORCE_SLEEP | BASH_DOOR |
+F:PREVENT_SUDDEN_MAGIC | BASH_DOOR |
 F:IM_FIRE | IM_POIS | AURA_FIRE | DEMON | EVIL | RES_PLAS |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING
 S:1_IN_3 | 
@@ -7224,7 +7224,7 @@ B:CRUSH:PARALYZE:3d5
 B:CRUSH:PARALYZE:3d5
 B:CRUSH:PARALYZE:3d5
 B:CRUSH:PARALYZE:3d5
-F:FORCE_MAXHP | FORCE_SLEEP | NO_FEAR | NEVER_MOVE |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | NO_FEAR | NEVER_MOVE |
 F:ONLY_GOLD | DROP_2D2 | DROP_60 | DROP_1D2 | EVIL 
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP | IM_COLD | IM_FIRE |
 S:1_IN_5 | 
@@ -7265,7 +7265,7 @@ B:BITE:HURT:2d6
 B:BITE:HURT:2d6
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:BASH_DOOR | 
 F:ANIMAL | RES_SOUN | NO_CONF | NO_SLEEP |
@@ -7286,7 +7286,7 @@ B:BITE:HURT:2d8
 B:BITE:HURT:2d8
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | RES_NEXU |
+F:PREVENT_SUDDEN_MAGIC | RES_NEXU |
 F:FRIENDS | 
 F:BASH_DOOR | 
 F:ANIMAL | NO_CONF | NO_SLEEP
@@ -7307,7 +7307,7 @@ B:HIT:HURT:3d8
 B:HIT:HURT:3d8
 B:HIT:HURT:3d8
 B:HIT:HURT:3d8
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_1D2 | WILD_MOUNTAIN |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE
 F:EVIL | GIANT
@@ -7349,7 +7349,7 @@ B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:BITE:EXP_VAMP:1d8
 B:TOUCH:DR_MANA:1d10
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:COLD_BLOOD | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | REGENERATE | CAN_FLY | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -7370,7 +7370,7 @@ B:BITE:FIRE:1d3
 B:BITE:FIRE:1d3
 B:BITE:HURT:1d10
 B:GAZE:PARALYZE:2d4
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:BASH_DOOR | CAN_FLY | DROP_CORPSE
 F:IM_FIRE | RIDING
 S:1_IN_8 | 
@@ -7408,7 +7408,7 @@ I:120:80d12:12:80:10
 W:27:2:0:900:0:0
 B:HIT:ELEC:3d8
 B:HIT:ELEC:3d8
-F:FORCE_SLEEP | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | SELF_LITE_1 |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | CAN_FLY |
 F:IM_ELEC | IM_POIS | AURA_ELEC | REFLECTING |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING
@@ -7431,7 +7431,7 @@ B:BITE:HURT:1d10
 B:BITE:HURT:1d10
 B:TOUCH:DR_MANA:1d10
 F:FEMALE | 
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_CORPSE
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP | EAT_POISONOUS |
@@ -7509,7 +7509,7 @@ B:BITE:POISON:4d4
 B:BITE:POISON:4d4
 B:BITE:POISON:4d4
 B:BITE:POISON:4d4
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_GOLD | DROP_1D2 | DROP_4D2 | DROP_SKELETON | DROP_CORPSE | RIDING
 F:BASH_DOOR | MOVE_BODY | CAN_SWIM | EAT_POISONOUS |
 F:ANIMAL | IM_POIS | WILD_SHORE | WILD_SWAMP |
@@ -7530,7 +7530,7 @@ B:CHARGE:EAT_GOLD
 B:CHARGE:EAT_GOLD
 F:DROP_1D2 | DROP_90 | DROP_GREAT | ONLY_ITEM
 F:EVIL | MALE | CAN_SPEAK | SMART | RES_TELE | CAN_SWIM | DROP_CORPSE
-F:ANIMAL | IM_POIS | NO_CONF | NO_SLEEP | FORCE_MAXHP | UNIQUE | FORCE_SLEEP
+F:ANIMAL | IM_POIS | NO_CONF | NO_SLEEP | FORCE_MAXHP | UNIQUE | PREVENT_SUDDEN_MAGIC
 F:EAT_INSANITY | RES_CHAO
 S:1_IN_3
 S:SHRIEK | CONF | S_HYDRA | SLOW | BLIND | DRAIN_MANA
@@ -7549,7 +7549,7 @@ B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 F:MALE | HUMAN |
-F:FORCE_SLEEP | DROP_1D2 | 
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL
 S:1_IN_8 | 
@@ -7567,7 +7567,7 @@ W:36:2:0:860:0:0
 B:BITE:PARALYZE:4d5
 B:BITE:LOSE_DEX:4d5
 B:BITE:LOSE_CON:4d5
-F:FORCE_SLEEP | AQUATIC | GOOD | ANIMAL |
+F:PREVENT_SUDDEN_MAGIC | AQUATIC | GOOD | ANIMAL |
 F:IM_COLD | IM_POIS | IM_FIRE | IM_ELEC | RES_WATE | WILD_OCEAN 
 S:1_IN_5 | 
 S:BO_WATE | BO_COLD | BO_ICEE | BO_MANA
@@ -7585,7 +7585,7 @@ W:30:1:0:350:2000:490
 B:SHOOT:HURT:7d6
 B:HIT:HURT:9d8
 B:HIT:HURT:9d8
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_1D2 | TAKE_ITEM | WILD_SHORE | WILD_MOUNTAIN |
 F:BASH_DOOR | OPEN_DOOR | MOVE_BODY | DROP_CORPSE | EAT_GIVE_STR |
 F:EVIL | IM_POIS | IM_ACID | GIANT
@@ -7603,7 +7603,7 @@ W:28:3:0:250:6000:637
 B:HIT:CONFUSE:5d5
 B:HIT:TERRIFY:5d5
 F:MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | SMART | EAT_GIVE_WIS |
 F:EVIL
 S:1_IN_8 | 
@@ -7653,7 +7653,7 @@ W:28:4:0:60:2000:718
 B:HIT:HURT:2d6
 B:HIT:HURT:2d6
 B:HIT:HURT:2d6
-F:FORCE_SLEEP | COLD_BLOOD | EMPTY_MIND | KILL_WALL | RAND_50 | MULTIPLY |
+F:PREVENT_SUDDEN_MAGIC | COLD_BLOOD | EMPTY_MIND | KILL_WALL | RAND_50 | MULTIPLY |
 F:BASH_DOOR | IM_COLD | IM_ACID | IM_FIRE | IM_ELEC | IM_POIS | NONLIVING |
 F:HURT_ROCK | NO_CONF | NO_SLEEP | CHAR_MULTI | RES_SHAR
 D:$A sentient, moving section of wall.
@@ -7669,7 +7669,7 @@ B:HIT:HURT:2d5
 B:HIT:HURT:2d5
 B:TOUCH:DR_MANA:2d6
 F:MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_1D2 | DROP_SKELETON | DROP_CORPSE
 F:SMART | OPEN_DOOR | BASH_DOOR | EAT_GIVE_INT | EAT_LOSE_STR |
 F:EVIL
@@ -7688,7 +7688,7 @@ I:110:15d10:20:60:10
 W:28:1:0:200:0:0
 B:GAZE:LOSE_INT:2d6
 B:GAZE:LOSE_INT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | EAT_GIVE_INT | EAT_GIVE_WIS |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | EAT_GIVE_INT | EAT_GIVE_WIS |
 F:ONLY_ITEM | DROP_60 | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP
@@ -7709,7 +7709,7 @@ B:CRUSH:HURT:2d10
 B:CRUSH:HURT:2d10
 B:CRUSH:HURT:2d10
 B:CRUSH:SUPERHURT:2d10
-F:FORCE_SLEEP | FORCE_MAXHP | KILL_BODY | KILL_ITEM | UNIQUE | REFLECTING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | KILL_BODY | KILL_ITEM | UNIQUE | REFLECTING |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING | RES_SHAR | RES_TELE
 D:$It looks like a huge spiked roller. It was designed to keep this dungeon 
@@ -7839,7 +7839,7 @@ B:HIT:HURT:3d5
 B:HIT:HURT:3d5
 B:HIT:HURT:3d5
 B:HIT:HURT:3d5
-F:FORCE_MAXHP | FORCE_SLEEP | NO_FEAR | GOOD |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | NO_FEAR | GOOD |
 F:ONLY_ITEM | DROP_2D2 | CAN_FLY | SELF_LITE_1 |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP | RES_TELE | ANGEL
@@ -7861,7 +7861,7 @@ B:HIT:POISON:3d4
 B:HIT:POISON:3d4
 B:HIT:POISON:3d4
 F:CHAR_MULTI | ATTR_SEMIRAND |
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_4 | 
@@ -7882,7 +7882,7 @@ W:29:6:0:120:0:0
 B:HIT:POISON:3d4
 B:HIT:CONFUSE:3d4
 F:CHAR_MULTI | ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | NEVER_MOVE | MULTIPLY |
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | MULTIPLY |
 F:EMPTY_MIND | COLD_BLOOD | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_4 | 
@@ -7900,7 +7900,7 @@ W:25:1:0:325:4000:560
 B:CLAW:HURT:2d4
 B:CLAW:HURT:2d4
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN | WILD_WOOD |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN | WILD_WOOD |
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_CORPSE | EAT_ELEC_RES |
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | IM_ELEC | RIDING | SELF_LITE_1 |
@@ -7919,7 +7919,7 @@ W:25:1:0:325:4000:549
 B:CLAW:HURT:2d4
 B:CLAW:HURT:2d4
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN | WILD_WASTE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN | WILD_WASTE |
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_CORPSE | EAT_COLD_RES |
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | IM_COLD | RIDING
@@ -7939,7 +7939,7 @@ W:25:1:0:325:4000:561
 B:CLAW:HURT:2d4
 B:CLAW:HURT:2d4
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN | WILD_SWAMP |
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_CORPSE | EAT_POIS_RES |
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | IM_POIS | RIDING
@@ -7959,7 +7959,7 @@ W:29:3:0:350:4000:562
 B:CLAW:HURT:2d4
 B:CLAW:HURT:2d4
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN | 
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE |
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:DRAGON | NO_CONF | NO_SLEEP | RIDING
@@ -8098,7 +8098,7 @@ W:30:1:0:325:1500:499
 B:HIT:HURT:1d7
 B:HIT:HURT:1d7
 B:TOUCH:EXP_20
-F:FORCE_SLEEP | RAND_25 |
+F:PREVENT_SUDDEN_MAGIC | RAND_25 |
 F:ONLY_ITEM | DROP_1D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | CAN_FLY |
@@ -8117,7 +8117,7 @@ W:30:2:0:700:15000:643
 B:CLAW:HURT:2d4
 B:CLAW:HURT:2d4
 B:BITE:EXP_10:3d6
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_DARK_1
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_DARK_1
 F:ONLY_ITEM | DROP_2D2 |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR |
 F:EVIL | DRAGON | NO_CONF | NO_SLEEP 
@@ -8137,7 +8137,7 @@ B:SHOOT:HURT:7d6
 B:HIT:HURT:4d4
 B:HIT:HURT:4d4
 B:HIT:HURT:4d4
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:BASH_DOOR | CAN_FLY | WILD_WOOD | DROP_CORPSE | RIDING
 F:EVIL
 S:1_IN_5 | 
@@ -8186,7 +8186,7 @@ B:BUTT:HURT:3d9
 B:BUTT:HURT:3d9
 B:BITE:POISON:1d10
 B:KICK:HURT:2d4
-F:FORCE_SLEEP | ANIMAL | MOVE_BODY | WILD_WOOD |
+F:PREVENT_SUDDEN_MAGIC | ANIMAL | MOVE_BODY | WILD_WOOD |
 F:BASH_DOOR | IM_POIS | IM_ACID | DROP_CORPSE | EVIL | RIDING | EAT_POISONOUS |
 S:1_IN_8 | 
 S:BR_POIS
@@ -8208,7 +8208,7 @@ B:BITE:HURT:10d4
 B:CLAW:HURT:2d7
 B:CLAW:HURT:2d7
 B:CLAW:HURT:2d7
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:DROP_1D2 | TAKE_ITEM |
 F:BASH_DOOR | OPEN_DOOR | DROP_CORPSE
 F:EVIL | IM_POIS | IM_ACID | GIANT | EAT_GIVE_STR |
@@ -8233,7 +8233,7 @@ B:WAIL:TERRIFY
 B:TOUCH:EXP_20
 B:CLAW:LOSE_WIS:1d10
 B:TOUCH:DR_MANA:2d8
-F:FORCE_SLEEP | RAND_25 | DROP_60 | DROP_1D2 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | DROP_60 | DROP_1D2 | 
 F:INVISIBLE | COLD_BLOOD | TAKE_ITEM | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | CAN_FLY |
 F:IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -8270,7 +8270,7 @@ W:32:2:0:250:0:0
 B:HIT:HURT:3d6
 B:HIT:HURT:3d6
 B:HIT:HURT:3d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_90 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | GIANT | HAS_LITE_1
@@ -8286,7 +8286,7 @@ E:Nexus quylthulg
 G:Q:v
 I:110:10d12:10:1:0
 W:32:1:0:300:0:0
-F:FORCE_SLEEP | NEVER_MOVE | NEVER_BLOW | STUPID |
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | NEVER_BLOW | STUPID |
 F:INVISIBLE | EMPTY_MIND | RES_NEXU |
 F:NO_CONF | NO_SLEEP | NO_FEAR | RES_TELE
 S:1_IN_1 | 
@@ -8305,7 +8305,7 @@ B:STING:POISON:2d5
 B:STING:LOSE_STR:1d4
 B:STING:POISON:2d5
 F:UNIQUE | FEMALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | DROP_CORPSE | EAT_BLIND |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | 
 F:SMART | BASH_DOOR | 
@@ -8352,7 +8352,7 @@ B:CLAW:DISEASE:3d4
 B:CLAW:DISEASE:3d4
 B:BITE:PARALYZE:3d5
 F:DROP_60 | OPEN_DOOR | BASH_DOOR | CAN_SWIM |
-F:DROP_1D2 | FORCE_MAXHP | ESCORT | FORCE_SLEEP |
+F:DROP_1D2 | FORCE_MAXHP | ESCORT | PREVENT_SUDDEN_MAGIC |
 F:EVIL | UNDEAD | IM_POIS | IM_COLD | NO_CONF | NO_SLEEP |
 F:COLD_BLOOD | HURT_LITE | RES_NETH
 S:1_IN_7
@@ -8407,7 +8407,7 @@ I:110:1d2:30:1:5
 W:32:3:0:150:0:0
 B:HIT:CONFUSE:1d4
 B:HIT:CONFUSE:1d4
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:STUPID | EMPTY_MIND | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_6 | 
@@ -8426,7 +8426,7 @@ W:35:1:0:1500:0:0
 B:HIT:ELEC:3d8
 B:HIT:ELEC:3d8
 B:HIT:ELEC:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_1D2 | WILD_MOUNTAIN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_1D2 | WILD_MOUNTAIN |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | AURA_ELEC | DROP_SKELETON | DROP_CORPSE
 F:EVIL | GIANT | IM_COLD | IM_ELEC | MALE | SELF_LITE_1 | EAT_GIVE_STR |
 S:1_IN_8 | 
@@ -8444,7 +8444,7 @@ B:GAZE:PARALYZE:1d4
 B:GAZE:CONFUSE:1d4
 B:GAZE:UN_BONUS
 B:GAZE:DR_MANA:1d10
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:STUPID | EMPTY_MIND | CAN_FLY | DROP_CORPSE |
 F:NO_CONF | NO_SLEEP | NO_FEAR | EAT_CONF | EAT_INSANITY |
 S:1_IN_6 | 
@@ -8496,7 +8496,7 @@ W:36:1:0:1200:4500:1186
 B:SHOOT:HURT:9d6
 B:HIT:HURT:11d8
 B:HIT:HURT:11d8
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:DROP_1D2 | TAKE_ITEM | DROP_CORPSE |
 F:BASH_DOOR | OPEN_DOOR | MOVE_BODY |
 F:EVIL | IM_POIS | IM_ACID | GIANT | EAT_GIVE_STR |
@@ -8648,7 +8648,7 @@ B:KICK:HURT:10d2
 B:PUNCH:HURT:10d2
 B:KICK:HURT:10d2
 F:MALE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | EVIL | HAS_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | EVIL | HAS_LITE_1 |
 F:ONLY_ITEM | DROP_1D2 | ATTR_ANY | DROP_SKELETON | DROP_CORPSE
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR |
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP | EAT_CONF | EAT_INSANITY |
@@ -8674,7 +8674,7 @@ W:33:3:0:375:4000:604
 B:HIT:HURT:1d8
 B:HIT:HURT:1d8
 B:TOUCH:EXP_40
-F:FORCE_SLEEP | FRIENDS | DROP_60 | 
+F:PREVENT_SUDDEN_MAGIC | FRIENDS | DROP_60 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | CAN_FLY | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
 S:1_IN_8 | 
@@ -8709,7 +8709,7 @@ W:33:3:0:850:150000:783
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:2d6
-F:ATTR_MULTI | ATTR_ANY | CAN_FLY | FORCE_SLEEP | FORCE_MAXHP |
+F:ATTR_MULTI | ATTR_ANY | CAN_FLY | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | RES_DISE | OPEN_DOOR | BASH_DOOR | DROP_CORPSE |
 F:EVIL | DRAGON | IM_FIRE | RES_CHAO | NO_CONF | NO_SLEEP | RIDING |
 F:EAT_CONF | EAT_INSANITY
@@ -8728,7 +8728,7 @@ W:33:3:0:850:150000:784
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | GOOD | ONLY_ITEM | DROP_2D2 | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | GOOD | ONLY_ITEM | DROP_2D2 | CAN_FLY |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DRAGON | IM_COLD | NO_CONF | NO_SLEEP |
 F:RIDING | RES_SOUN | RES_SHAR
 S:1_IN_7 | SLOW | CONF | SCARE | BR_SOUN | BR_SHAR
@@ -8747,7 +8747,7 @@ B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:2d6
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | RES_SOUN | RES_SHAR | RES_DISE | RES_CHAO |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE
 F:DRAGON| CAN_FLY | EAT_CONF | EAT_INSANITY |
@@ -8768,7 +8768,7 @@ W:33:2:0:700:20000:676
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | CAN_FLY |
 F:INVISIBLE | PASS_WALL |
 F:DRAGON | RES_LITE | RES_DARK | NO_CONF | NO_SLEEP | RIDING
@@ -8832,7 +8832,7 @@ W:33:3:0:350:0:0
 B:WAIL:TERRIFY
 B:TOUCH:EXP_40
 B:CLAW:LOSE_INT:1d10
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | 
 F:INVISIBLE | COLD_BLOOD | TAKE_ITEM | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | CAN_FLY |
@@ -8854,7 +8854,7 @@ B:WAIL:TERRIFY
 B:TOUCH:EXP_40
 B:CLAW:LOSE_WIS:5d5
 B:TOUCH:DR_MANA:2d10
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | CAN_FLY |
 F:COLD_BLOOD | TAKE_ITEM | PASS_WALL |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH |
@@ -8897,7 +8897,7 @@ I:110:30d8:12:50:50
 W:33:2:0:350:2400:584
 B:HIT:FIRE:4d6
 B:HIT:FIRE:4d6
-F:FORCE_SLEEP | RAND_25 | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | SELF_LITE_1 |
 F:EMPTY_MIND | CAN_FLY | WILD_VOLCANO |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR | AURA_FIRE |
 F:EVIL | IM_FIRE | IM_POIS | NONLIVING | HURT_COLD |
@@ -8918,7 +8918,7 @@ B:HIT:HURT:4d3
 B:HIT:HURT:3d8
 B:HIT:HURT:4d3
 B:HIT:HURT:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | NO_FEAR | GOOD | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_FEAR | GOOD | CAN_FLY |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | REFLECTING | RES_TELE |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -8940,7 +8940,7 @@ W:33:2:0:325:0:0
 B:HIT:HURT:1d10
 B:HIT:HURT:1d10
 B:HIT:HURT:1d10
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:EMPTY_MIND | COLD_BLOOD | CAN_FLY |
 F:KILL_BODY | KILL_ITEM | BASH_DOOR |
 F:EVIL | RES_WATE | IM_POIS | NONLIVING |
@@ -8960,7 +8960,7 @@ B:CLAW:HURT:3d6
 B:CLAW:HURT:3d6
 B:BITE:HURT:4d4
 B:BITE:HURT:4d4
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:BASH_DOOR | ATTR_MULTI |
 F:ANIMAL | NO_CONF | NO_SLEEP | SELF_LITE_2 |
@@ -9060,7 +9060,7 @@ B:TOUCH:EXP_40
 B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:2d8
 B:TOUCH:LOSE_DEX:2d8
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_1D2 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_1D2 | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | HURT_LITE | 
 F:NO_CONF | NO_SLEEP
@@ -9078,7 +9078,7 @@ G:e:g
 I:110:25d10:30:1:5
 W:34:4:0:100:0:0
 B:EXPLODE:DISEASE:40d2
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:STUPID | EMPTY_MIND | CAN_FLY |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 D:$From a distance, this creature is often mistaken for the 
@@ -9098,7 +9098,7 @@ B:HIT:HURT:1d10
 B:BITE:EXP_VAMP:1d11
 B:BITE:EXP_VAMP:1d11
 B:TOUCH:DR_MANA:2d8
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:DROP_4D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | CAN_FLY | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -9120,7 +9120,7 @@ B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:BITE:EXP_VAMP:1d8
 B:TOUCH:DR_MANA:2d9
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:DROP_4D2 | CAN_FLY | RES_NETH | RES_DARK |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | INVISIBLE | PASS_WALL |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | HURT_LITE | NO_CONF | NO_SLEEP | RES_TELE
@@ -9140,7 +9140,7 @@ B:CLAW:LOSE_CON:1d6
 B:CLAW:DISEASE:1d6
 B:GAZE:EXP_VAMP:3d4
 B:GAZE:TERRIFY:1d4
-F:FORCE_SLEEP | FORCE_MAXHP | NO_FEAR | EVIL | UNDEAD |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_FEAR | EVIL | UNDEAD |
 F:COLD_BLOOD |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | RES_TELE
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
@@ -9195,7 +9195,7 @@ W:34:2:0:375:0:0
 B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 B:HIT:HURT:4d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:EMPTY_MIND | COLD_BLOOD | NONLIVING |
 F:KILL_ITEM | KILL_BODY | PASS_WALL |
 F:EVIL | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_SHAR | HURT_ROCK | 
@@ -9215,7 +9215,7 @@ W:34:2:0:390:0:0
 B:HIT:HURT:1d10
 B:HIT:CONFUSE:1d4
 B:HIT:HURT:1d10
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:EMPTY_MIND | COLD_BLOOD | CAN_FLY | NONLIVING |
 F:KILL_BODY | KILL_ITEM | BASH_DOOR |
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -9234,7 +9234,7 @@ W:34:3:0:750:3000:589
 B:CLAW:HURT:2d5
 B:CLAW:HURT:2d5
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:ONLY_ITEM | DROP_1D2 | FRIENDS |
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | SELF_LITE_1 |
@@ -9309,7 +9309,7 @@ G:{:D
 I:120:12d12:10:150:12
 W:35:2:0:200:0:0
 B:EXPLODE:SHATTER:100d2
-F:FORCE_SLEEP | FORCE_MAXHP | UNIQUE | REFLECTING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | UNIQUE | REFLECTING |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING | RES_TELE
 D:$It is the left hand of Killer Queen, the visual manifestation of the life
@@ -9347,7 +9347,7 @@ B:TOUCH:TERRIFY
 B:TOUCH:EXP_40
 B:CLAW:LOSE_INT:5d5
 B:CLAW:LOSE_WIS:5d5
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | CAN_FLY |
 F:COLD_BLOOD | TAKE_ITEM | PASS_WALL |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH |
@@ -9370,7 +9370,7 @@ W:35:2:0:600:6000:690
 B:HIT:HURT:6d6
 B:HIT:HURT:6d6
 B:HIT:LOSE_STR:3d4
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:ONLY_ITEM | DROP_60 | DROP_2D2 | 
 F:TAKE_ITEM | INVISIBLE | COLD_BLOOD | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | CAN_FLY |
@@ -9447,7 +9447,7 @@ I:120:15d10:10:80:90
 W:35:3:0:375:0:0
 B:BITE:HURT:2d6
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:EMPTY_MIND | 
 F:KILL_ITEM | KILL_BODY | BASH_DOOR |
 F:EVIL | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -9498,7 +9498,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | FRIENDS |
+F:PREVENT_SUDDEN_MAGIC | FRIENDS |
 F:BASH_DOOR | 
 F:ANIMAL | RES_GRAV | NO_CONF | NO_SLEEP | 
 S:1_IN_5 | 
@@ -9543,7 +9543,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | FRIENDS |
+F:PREVENT_SUDDEN_MAGIC | FRIENDS |
 F:BASH_DOOR | 
 F:ANIMAL | RES_INER | NO_CONF | NO_SLEEP
 S:1_IN_5 | 
@@ -9563,7 +9563,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:BASH_DOOR |
 F:ANIMAL | RES_WALL | NO_CONF | NO_SLEEP
@@ -9607,7 +9607,7 @@ W:35:3:0:300:0:0
 B:TOUCH:ACID:1d10
 B:TOUCH:ACID:1d10
 B:TOUCH:ACID:1d10
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:EMPTY_MIND | COLD_BLOOD | WILD_SHORE | WILD_SWAMP |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR |
 F:EVIL | IM_ACID | IM_FIRE | CAN_SWIM | NONLIVING |
@@ -9627,7 +9627,7 @@ W:25:1:0:325:4000:592
 B:CLAW:HURT:2d5
 B:CLAW:HURT:2d5
 B:BITE:HURT:2d6
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_SWAMP |
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY | 
 F:EVIL | DRAGON | IM_ACID | RIDING
@@ -9674,7 +9674,7 @@ W:33:1:0:1200:10000:617
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_2D2 | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_2D2 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | CAN_FLY | WILD_WASTE | WILD_MOUNTAIN | 
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
 S:1_IN_7 | SCARE | BR_COLD
@@ -9760,7 +9760,7 @@ B:TOUCH:EXP_80
 B:TOUCH:DR_MANA:2d10
 B:CLAW:LOSE_INT:1d10
 B:CLAW:LOSE_WIS:1d10
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_1D2 | 
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | CAN_FLY |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -9780,7 +9780,7 @@ W:36:1:0:700:5000:607
 B:HIT:HURT:1d10
 B:HIT:HURT:1d10
 B:TOUCH:EXP_40
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:DROP_60 | DROP_90 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_NETH |
 F:EVIL | UNDEAD | HURT_LITE | IM_COLD | IM_POIS | RES_DARK | NO_CONF | NO_SLEEP
@@ -9798,7 +9798,7 @@ I:125:111d2:30:70:5
 W:36:1:0:800:0:0
 B:HIT:HURT:2d10
 B:HIT:HURT:2d10
-F:FORCE_SLEEP | FORCE_MAXHP | REGENERATE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REGENERATE |
 F:DROP_60 | DROP_90 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | RES_NETH |
 F:EVIL | UNDEAD | HURT_LITE | IM_COLD | IM_POIS | RES_DARK | NO_CONF | NO_SLEEP
@@ -9821,7 +9821,7 @@ B:CLAW:HURT:2d9
 B:CLAW:HURT:2d9
 B:BITE:HURT:2d10
 F:ATTR_MULTI | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_1D2 | DROP_4D2 | CAN_FLY |
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | DRAGON | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | 
@@ -9839,7 +9839,7 @@ G:?:r
 I:120:50d10:20:150:15
 W:36:4:0:1500:0:0
 F:NEVER_MOVE | NEVER_BLOW | NONLIVING |
-F:FORCE_SLEEP | EVIL | COLD_BLOOD | EMPTY_MIND |
+F:PREVENT_SUDDEN_MAGIC | EVIL | COLD_BLOOD | EMPTY_MIND |
 F:FORCE_MAXHP | NO_CONF | NO_FEAR | NO_SLEEP | CHAR_MULTI |
 F:IM_ACID | IM_POIS | IM_COLD | IM_ELEC | HURT_FIRE | RES_NETH | RES_TELE
 S:1_IN_2 |
@@ -9881,7 +9881,7 @@ W:36:2:0:950:6000:590
 B:CLAW:HURT:1d8
 B:CLAW:HURT:1d8
 B:BITE:HURT:2d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE | RIDING
 F:OPEN_DOOR | BASH_DOOR | WILD_MOUNTAIN |
 F:DRAGON | RES_SOUN
@@ -9902,7 +9902,7 @@ W:33:1:0:1200:10000:601
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE | RIDING
 F:BASH_DOOR | WILD_MOUNTAIN | WILD_WOOD |
 F:EVIL | DRAGON | IM_ELEC | NO_CONF | NO_SLEEP | SELF_LITE_1
@@ -9919,7 +9919,7 @@ W:33:1:0:1200:10000:618
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE
 F:BASH_DOOR | WILD_MOUNTAIN | WILD_WOOD |
 F:EVIL | DRAGON | IM_POIS | NO_CONF | NO_SLEEP | RIDING
@@ -9936,7 +9936,7 @@ W:36:2:0:1300:10000:602
 B:CLAW:HURT:1d8
 B:CLAW:HURT:1d8
 B:BITE:HURT:2d10
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN |
 F:DROP_1D2 | DROP_4D2 | CAN_FLY |
 F:BASH_DOOR | DROP_CORPSE | RIDING
 F:DRAGON | NO_CONF | NO_SLEEP
@@ -9955,7 +9955,7 @@ W:26:1:0:400:5000:589
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:2d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_1D2 | WILD_MOUNTAIN | WILD_VOLCANO |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | RIDING
 F:EVIL | DRAGON | IM_FIRE | SELF_LITE_1 |
@@ -10009,7 +10009,7 @@ W:36:2:0:750:0:0
 B:HIT:FIRE:4d6
 B:HIT:FIRE:4d6
 B:GAZE:EXP_20
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | AURA_FIRE | NONLIVING |
 F:EVIL | DEMON | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_4 | 
@@ -10039,7 +10039,7 @@ I:110:40d13:10:68:90
 W:36:2:0:750:50000:719
 B:CLAW:HURT:5d6
 B:CLAW:HURT:5d6
-F:FORCE_SLEEP | PASS_WALL | INVISIBLE |
+F:PREVENT_SUDDEN_MAGIC | PASS_WALL | INVISIBLE |
 F:IM_POIS | IM_COLD | IM_ACID | IM_FIRE |
 F:NO_SLEEP | NO_CONF | NO_STUN | NONLIVING |
 F:EVIL | DEMON 
@@ -10064,7 +10064,7 @@ B:CRUSH:HURT:4d6
 B:CRUSH:HURT:4d6
 B:CRUSH:HURT:4d6
 B:TOUCH:LOSE_WIS
-F:FORCE_SLEEP | OPEN_DOOR | BASH_DOOR | NONLIVING |
+F:PREVENT_SUDDEN_MAGIC | OPEN_DOOR | BASH_DOOR | NONLIVING |
 F:DEMON | IM_POIS | IM_ACID | NO_CONF | NO_SLEEP | RES_TELE |
 F:CAN_SWIM |
 S:1_IN_4 |
@@ -10100,7 +10100,7 @@ W:36:2:0:650:0:0
 B:BITE:COLD:1d3
 B:HIT:HURT:4d6
 B:BITE:COLD:1d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:EMPTY_MIND | COLD_BLOOD | AURA_COLD |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR |
 F:EVIL | IM_COLD | IM_ELEC | CAN_SWIM | HURT_FIRE |
@@ -10120,7 +10120,7 @@ W:36:2:0:666:6000:638
 B:HIT:HURT:2d6
 B:HIT:HURT:2d6
 F:MALE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_1D2 | DROP_SKELETON
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL
@@ -10144,7 +10144,7 @@ B:GAZE:EXP_VAMP:4d8
 B:GAZE:EXP_VAMP:4d8
 B:CRUSH:ACID:8d8
 B:CRUSH:ACID:8d8
-F:FORCE_MAXHP | FORCE_SLEEP | UNIQUE | NO_STUN | NO_CONF
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | UNIQUE | NO_STUN | NO_CONF
 F:NO_SLEEP | EVIL | IM_ACID | IM_ELEC | IM_FIRE | IM_POIS | IM_COLD
 F:RES_LITE | RES_DARK | RES_NETH | RES_WATE | RES_PLAS | RES_SHAR | RES_SOUN
 F:RES_CHAO | RES_NEXU | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV
@@ -10172,7 +10172,7 @@ B:HIT:HURT:6d6
 B:HIT:HURT:3d8
 B:HIT:HURT:3d8
 F:UNIQUE | MALE | CAN_SPEAK | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -10246,7 +10246,7 @@ B:TOUCH:EXP_40
 B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:2d10
 B:TOUCH:LOSE_DEX:2d10
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_1D2 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_1D2 | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | HURT_LITE | 
 F:NO_CONF | NO_SLEEP
@@ -10267,7 +10267,7 @@ W:37:2:0:1000:0:0
 B:CLAW:HURT:3d7
 B:CLAW:HURT:3d7
 B:CRUSH:HURT:10d5
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:CAN_FLY |
 F:WEIRD_MIND | BASH_DOOR | ATTR_MULTI | ATTR_ANY |
 F:RES_CHAO | NO_CONF | NO_SLEEP | EVIL
@@ -10337,7 +10337,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d8
 B:BITE:HURT:2d8
 F:UNIQUE | FEMALE | GOOD | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:WEIRD_MIND | OPEN_DOOR | BASH_DOOR | 
@@ -10357,7 +10357,7 @@ B:HIT:HURT:1d9
 B:HIT:HURT:1d9
 B:HIT:HURT:1d9
 B:HIT:HURT:1d9
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_50 | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_50 | SELF_LITE_1 |
 F:SMART | EMPTY_MIND | INVISIBLE | 
 F:PASS_WALL | POWERFUL | CAN_FLY | WILD_SWAMP |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -10408,7 +10408,7 @@ W:37:2:0:950:0:0
 B:HIT:FIRE:3d7
 B:HIT:HURT:4d6
 B:HIT:FIRE:3d7
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:EMPTY_MIND | AURA_FIRE | WILD_VOLCANO |
 F:KILL_ITEM | KILL_BODY | PASS_WALL |
 F:EVIL | IM_FIRE | IM_ELEC | NONLIVING |
@@ -10462,7 +10462,7 @@ G:v:v
 I:120:32d10:100:40:0
 W:37:1:0:800:0:0
 B:ENGULF:HURT:5d5
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | RAND_25 | RES_NEXU | CAN_FLY |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | RES_TELE |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN |  NONLIVING
@@ -10479,7 +10479,7 @@ G:v:R
 I:120:32d10:100:40:0
 W:37:1:0:800:0:0
 B:ENGULF:FIRE:8d8
-F:FORCE_SLEEP | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | SELF_LITE_1 |
 F:RAND_50 | RAND_25 | RES_PLAS | AURA_FIRE | AURA_ELEC |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | 
 F:IM_ELEC | IM_FIRE | CAN_FLY |
@@ -10499,7 +10499,7 @@ W:34:1:0:1400:10000:644
 B:CLAW:HURT:2d9
 B:CLAW:HURT:2d9
 B:BITE:HURT:3d9
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN | WILD_VOLCANO |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN | WILD_VOLCANO |
 F:DROP_1D2 | DROP_4D2 | CAN_FLY | DROP_CORPSE | RIDING
 F:BASH_DOOR | SELF_LITE_1 |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP
@@ -10516,7 +10516,7 @@ W:37:2:0:1500:12000:645
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d10
 B:BITE:HURT:2d12
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN |
 F:DROP_1D2 | DROP_4D2 | CAN_FLY | DROP_CORPSE | RIDING
 F:BASH_DOOR | 
 F:DRAGON | RES_SOUN | NO_CONF | NO_SLEEP
@@ -10535,7 +10535,7 @@ W:37:2:0:1500:11000:646
 B:CLAW:HURT:1d4
 B:CLAW:HURT:1d4
 B:BITE:HURT:2d5
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | RIDING
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | RIDING
 F:ONLY_ITEM | DROP_4D2 | REFLECTING | ATTR_CLEAR |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | DRAGON | IM_COLD | NO_CONF | RES_SHAR | NO_SLEEP
@@ -10556,7 +10556,7 @@ W:33:1:0:1200:10000:624
 B:CLAW:HURT:2d8
 B:CLAW:HURT:2d8
 B:BITE:HURT:3d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
 F:DROP_60 | DROP_90 | DROP_2D2 | WILD_SWAMP | WILD_MOUNTAIN |
 F:BASH_DOOR | 
 F:EVIL | DRAGON | IM_ACID | NO_CONF | NO_SLEEP | RIDING
@@ -10573,7 +10573,7 @@ W:35:2:0:1700:20000:675
 B:CLAW:HURT:2d10
 B:CLAW:HURT:2d10
 B:BITE:HURT:3d10
-F:ATTR_MULTI | FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:ATTR_MULTI | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:DROP_3D2 | DROP_4D2 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | SELF_LITE_1
 F:EVIL | DRAGON | IM_ACID | IM_FIRE | IM_COLD
@@ -10592,7 +10592,7 @@ W:38:6:0:1750:0:0
 B:CRUSH:HURT:20d2
 B:CRUSH:HURT:20d2
 B:CRUSH:HURT:20d2
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE
 F:BASH_DOOR | SMART | GOOD | 
 F:NO_CONF | NO_SLEEP | RES_WATE | RES_NEXU | RES_TELE | RES_DISE | RIDING
@@ -10620,7 +10620,7 @@ F:ESCORT
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | DROP_CORPSE
 F:CAN_SWIM | BASH_DOOR | ELDRITCH_HORROR | RES_TELE | CAN_SPEAK |
 F:EVIL | DEMON | IM_FIRE | IM_COLD | IM_POIS | RES_WATE |
-F:UNIQUE | MALE | FORCE_SLEEP | FORCE_MAXHP |
+F:UNIQUE | MALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:NO_CONF | NO_SLEEP |
 S:1_IN_7 | 
 S:S_KIN | S_DEMON | BO_WATE | BA_WATE | BO_ACID | BA_ACID 
@@ -10650,7 +10650,7 @@ F:ESCORT
 F:DROP_60 | DROP_90 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | DROP_CORPSE
 F:CAN_SWIM | BASH_DOOR | ELDRITCH_HORROR | RES_TELE | CAN_SPEAK |
 F:EVIL | DEMON | IM_FIRE | IM_COLD | IM_POIS | RES_WATE |
-F:UNIQUE | FEMALE | FORCE_SLEEP | FORCE_MAXHP |
+F:UNIQUE | FEMALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:NO_CONF | NO_SLEEP |
 S:1_IN_7 | 
 S:S_HYDRA | S_DEMON | DARKNESS | BA_WATE | BO_ACID | BA_ACID 
@@ -10674,7 +10674,7 @@ B:HIT:HURT:6d6
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:EXP_20
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_NETH | MALE | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_NETH | MALE | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_COLD | HAS_LITE_1 |
@@ -10698,7 +10698,7 @@ B:HIT:HURT:5d5
 B:HIT:UN_POWER:5d5
 B:HIT:UN_BONUS:5d5
 F:UNIQUE | MALE | CAN_SPEAK | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | TAKE_ITEM | BASH_DOOR | 
 F:EVIL | RES_TELE
@@ -10722,7 +10722,7 @@ G:v:G
 I:130:32d10:100:40:0
 W:38:4:0:900:0:0
 B:ENGULF:HURT:5d5
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | RAND_25 | 
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | CAN_FLY |
 F:RES_TIME | NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN |  NONLIVING
@@ -10739,7 +10739,7 @@ G:v:v
 I:140:6d12:100:30:0
 W:38:4:0:200:0:0
 F:ATTR_MULTI | SELF_LITE_1 | SELF_LITE_2 |
-F:FORCE_SLEEP | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_BLOW | 
 F:RAND_50 | RAND_25 | CAN_FLY |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | RES_TELE |
 F:RES_LITE | NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN | NONLIVING
@@ -10762,7 +10762,7 @@ W:39:1:0:2500:100000:728
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:ELEC:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_LITE_1 |
 F:DROP_3D2 | DROP_4D2 | DROP_CORPSE | RIDING
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
 F:EVIL | DRAGON | IM_ELEC | NO_CONF | NO_SLEEP
@@ -10779,7 +10779,7 @@ W:38:2:0:1700:0:0
 B:CLAW:HURT:4d8
 B:CLAW:HURT:4d8
 B:BITE:CONFUSE:5d10
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:DRAGON | NO_CONF | NO_SLEEP | RIDING
@@ -10799,7 +10799,7 @@ B:GAZE:EXP_20:2d4
 B:GAZE:PARALYZE:2d4
 B:GAZE:LOSE_INT:2d6
 B:GAZE:DR_MANA:2d10
-F:FORCE_SLEEP | RES_TELE | CAN_FLY | BASH_DOOR | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | RES_TELE | CAN_FLY | BASH_DOOR | DROP_CORPSE
 F:EVIL | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_4
 S:BLIND | SLOW | CONF | SCARE | DRAIN_MANA | MIND_BLAST | FORGET
@@ -10816,7 +10816,7 @@ B:HIT:HURT:1d12
 B:HIT:HURT:1d12
 B:TOUCH:EXP_40
 B:TOUCH:EXP_40
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_90 | DROP_4D2 | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_90 | DROP_4D2 | CAN_FLY |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
 S:1_IN_6 | 
@@ -10835,7 +10835,7 @@ B:HIT:HURT:4d6
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:HURT:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | NO_FEAR | GOOD | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | NO_FEAR | GOOD | CAN_FLY |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | REFLECTING | RES_TELE |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -10859,7 +10859,7 @@ B:HIT:FIRE:6d6
 B:HIT:FIRE:6d6
 B:HIT:FIRE:6d6
 F:UNIQUE | SELF_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 |
 F:EMPTY_MIND | CAN_SPEAK | MALE | AURA_FIRE |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR | POWERFUL |
 F:EVIL | IM_FIRE | NONLIVING |
@@ -10879,7 +10879,7 @@ B:HIT:HURT:1d12
 B:HIT:HURT:1d12
 B:TOUCH:EXP_40
 B:TOUCH:EXP_40
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -10903,7 +10903,7 @@ I:110:24d10:20:50:80
 W:38:2:0:1000:0:0
 B:STING:LOSE_STR:1d5
 B:TOUCH:PARALYZE:3d4
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_60 | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | CAN_FLY |
 F:EVIL | DEMON | 
@@ -10956,7 +10956,7 @@ B:BITE:POISON:10d3
 B:BITE:POISON:10d3
 B:BITE:POISON:10d3
 B:BITE:POISON:10d3
-F:FORCE_SLEEP | UNIQUE | CAN_SWIM | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | UNIQUE | CAN_SWIM | FORCE_MAXHP |
 F:ONLY_GOLD | DROP_2D2 | DROP_4D2 | ESCORT | DROP_CORPSE
 F:BASH_DOOR | MOVE_BODY | EVIL | WILD_SHORE |
 F:ANIMAL | IM_POIS | RIDING
@@ -10975,7 +10975,7 @@ B:KICK:HURT:20d1
 B:HIT:HURT:20d1
 B:CLAW:EXP_80:4d2
 B:CLAW:LOSE_DEX:4d2
-F:UNDEAD | FORCE_SLEEP | FORCE_MAXHP | SMART | RES_TELE
+F:UNDEAD | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -10997,7 +10997,7 @@ B:HIT:HURT:1d12
 B:HIT:HURT:1d12
 B:TOUCH:EXP_80
 B:TOUCH:EXP_80
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | 
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK |
@@ -11019,7 +11019,7 @@ B:TOUCH:FIRE:1d10
 B:TOUCH:LOSE_WIS:1d10
 B:TOUCH:FIRE:1d10
 B:TOUCH:LOSE_INT:1d10
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | CAN_FLY | EVIL | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | CAN_FLY | EVIL | SELF_LITE_1 |
 F:SMART | EMPTY_MIND | AURA_FIRE | AURA_ELEC | RES_PLAS | KILL_ITEM |
 F:PASS_WALL | IM_ACID | IM_FIRE | IM_ELEC | IM_POIS | 
 F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING | NO_STUN
@@ -11042,7 +11042,7 @@ B:BITE:POISON:3d9
 B:BITE:POISON:3d9
 B:BITE:POISON:3d9
 B:SPIT:BLIND:1d2
-F:FORCE_SLEEP | WILD_SHORE | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | WILD_SHORE | WILD_SWAMP |
 F:ONLY_GOLD | DROP_2D2 | DROP_4D2 | CAN_SWIM | DROP_CORPSE
 F:BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | IM_POIS | RIDING
@@ -11070,7 +11070,7 @@ B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 F:UNIQUE | FEMALE | DROP_1D2 | DROP_2D2 | ONLY_ITEM | DROP_GOOD | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | DROP_CORPSE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | DROP_CORPSE |
 F:CAN_SPEAK | CAN_SWIM | WILD_OCEAN |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR | POWERFUL |
 F:EVIL | IM_POIS | WILD_SHORE | WILD_SWAMP |
@@ -11110,7 +11110,7 @@ B:BITE:HURT:3d12
 B:BUTT:HURT:2d12
 B:BUTT:HURT:3d12
 F:UNIQUE | MALE | ATTR_MULTI | CAN_SPEAK | ATTR_ANY |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | RES_NEXU | RES_SOUN |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | CAN_FLY |
 F:EVIL | DRAGON | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | RES_SHAR | RES_GRAV |
@@ -11134,7 +11134,7 @@ W:39:1:0:2500:100000:741
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:COLD:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:DROP_3D2 | DROP_4D2 | DROP_CORPSE
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
@@ -11151,7 +11151,7 @@ W:39:1:0:2400:100000:890
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:POISON:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_POIS | NO_CONF | NO_SLEEP | RIDING
@@ -11266,7 +11266,7 @@ B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:BITE:EXP_VAMP:4d6
 B:TOUCH:DR_MANA:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_4D2 |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | RES_TELE |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK | HURT_LITE |
@@ -11286,7 +11286,7 @@ W:39:1:0:2500:100000:1066
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:ACID:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_3D2 | DROP_4D2 | DROP_CORPSE
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_ACID | NO_CONF | NO_SLEEP | RIDING
@@ -11302,7 +11302,7 @@ I:120:35d10:100:40:0
 W:40:2:0:800:0:0
 B:ENGULF:CONFUSE:8d4
 B:ENGULF:CONFUSE:8d4
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_50 | RAND_25 | RES_CHAO | RES_NEXU | AURA_ELEC | IM_FIRE | IM_ELEC |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | 
 F:CAN_FLY | ATTR_MULTI | ATTR_ANY |
@@ -11321,7 +11321,7 @@ I:115:30d10:100:40:50
 W:40:5:0:150:0:0
 B:CRUSH:ACID:8d4
 B:CRUSH:ACID:8d4
-F:FORCE_SLEEP | ATTR_MULTI | ATTR_ANY | MULTIPLY | EVIL |
+F:PREVENT_SUDDEN_MAGIC | ATTR_MULTI | ATTR_ANY | MULTIPLY | EVIL |
 F:RAND_25 | RES_NEXU | AURA_ELEC | IM_FIRE | IM_ELEC |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | KILL_BODY |
 F:CAN_SWIM | NO_CONF | NO_SLEEP | 
@@ -11348,7 +11348,7 @@ W:47:2:0:7500:0:0
 B:HIT:HURT:12d9
 B:HIT:HURT:12d9
 F:MALE | REGENERATE | UNIQUE | CAN_SPEAK
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GREAT
 F:SMART | OPEN_DOOR | BASH_DOOR
 F:EVIL | HURT_LITE | RES_DARK | NO_CONF | NO_SLEEP | NO_STUN
@@ -11441,7 +11441,7 @@ E:Rotting quylthulg
 G:Q:U
 I:120:16d10:20:1:0
 W:40:1:0:1500:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:INVISIBLE | EMPTY_MIND | 
 F:ANIMAL | EVIL | STUPID |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -11461,7 +11461,7 @@ B:HIT:CONFUSE:6d6
 B:HIT:CONFUSE:6d6
 B:HIT:CONFUSE:6d6
 B:HIT:CONFUSE:6d6
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:DROP_2D2 | DROP_4D2 | DROP_SKELETON | DROP_CORPSE
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | GIANT | MALE
@@ -11481,7 +11481,7 @@ B:BITE:FIRE:3d6
 B:BITE:FIRE:3d6
 B:BITE:FIRE:3d6
 B:BITE:FIRE:3d6
-F:FORCE_SLEEP | WILD_SHORE | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | WILD_SHORE | WILD_SWAMP |
 F:ONLY_GOLD | DROP_2D2 | DROP_4D2 | CAN_SWIM |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | DROP_CORPSE
 F:ANIMAL | IM_FIRE | RIDING
@@ -11501,7 +11501,7 @@ B:HIT:HURT:2d6
 B:HIT:HURT:2d6
 B:HIT:HURT:2d8
 F:FEMALE |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP
@@ -11523,7 +11523,7 @@ B:HIT:HURT:3d4
 B:HIT:HURT:3d4
 B:HIT:HURT:3d5
 F:MALE | HAS_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | HUMAN |
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP
@@ -11553,7 +11553,7 @@ B:HIT:HURT:2d8
 B:HIT:HURT:2d8
 B:HIT:HURT:2d8
 F:MALE | HAS_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | HUMAN |
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP
@@ -11628,7 +11628,7 @@ B:GAZE:PARALYZE
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
 F:UNIQUE | FEMALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SWIM |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SWIM |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR | SELF_LITE_2 |
 F:EVIL | IM_ACID | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
@@ -11650,7 +11650,7 @@ B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:EXP_80:4d6
 B:BITE:EXP_80:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_DARK_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_DARK_1 |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | RES_TELE
 F:INVISIBLE | TAKE_ITEM | CAN_FLY |
 F:PASS_WALL | POWERFUL | MOVE_BODY | RES_NETH |
@@ -11670,7 +11670,7 @@ W:40:1:0:2750:100000:756
 B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:FIRE:5d14
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY | SELF_LITE_2 |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -11689,7 +11689,7 @@ W:41:2:0:3500:30000:1202
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:HURT:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:DRAGON | RES_SOUN | NO_CONF | NO_SLEEP | RIDING
@@ -11705,7 +11705,7 @@ W:41:2:0:3500:30000:1201
 B:CLAW:HURT:4d9
 B:CLAW:HURT:4d9
 B:BITE:HURT:5d12
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | CAN_FLY | ATTR_CLEAR |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_COLD | NO_CONF | RES_SHAR | NO_SLEEP | RIDING
@@ -11726,7 +11726,7 @@ B:CLAW:HURT:2d6
 B:CLAW:HURT:2d6
 B:CLAW:HURT:2d8
 F:FEMALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_SKELETON
 F:OPEN_DOOR | BASH_DOOR | 
 F:EVIL | HUMAN | NO_CONF | NO_SLEEP
@@ -11746,7 +11746,7 @@ W:40:2:0:1000:0:0
 B:HIT:HURT:3d4
 B:HIT:SUPERHURT:8d10
 B:HIT:SUPERHURT:8d10
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:FRIENDS | 
 F:ONLY_ITEM | DROP_60 | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | NONLIVING |
@@ -11766,7 +11766,7 @@ W:40:3:0:1000:0:0
 B:BITE:LOSE_DEX:3d6
 B:CLAW:HURT:3d3
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_4D2 | NONLIVING |
 F:SMART | INVISIBLE | PASS_WALL | CAN_FLY |
 F:EVIL | DEMON | IM_FIRE | IM_POIS | RES_TELE
@@ -11788,7 +11788,7 @@ W:38:6:0:7750:0:0
 B:CRUSH:HURT:33d2
 B:CRUSH:HURT:33d2
 B:CRUSH:SUPERHURT:33d2
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SWIM | IM_FIRE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SWIM | IM_FIRE |
 F:DROP_60 | DROP_90 | DROP_2D2 | UNIQUE | WEIRD_MIND |
 F:BASH_DOOR | SMART | EVIL | IM_COLD | DROP_CORPSE
 F:NO_CONF | NO_SLEEP | RES_WATE | WILD_OCEAN | RIDING |
@@ -11812,7 +11812,7 @@ B:CLAW:HURT:5d5
 B:HIT:LOSE_STR:4d4
 B:TOUCH:EXP_80:8d1
 F:UNIQUE | CAN_SPEAK | 
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | MOVE_BODY | NONLIVING |
 F:OPEN_DOOR | BASH_DOOR | IM_POIS | IM_COLD | DEMON | EVIL 
@@ -11843,7 +11843,7 @@ B:GAZE:EXP_VAMP:4d4
 B:GAZE:EXP_VAMP:4d4
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | NO_FEAR | EVIL | REFLECTING |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | RES_DARK |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_TELE | RES_NETH |
@@ -11884,7 +11884,7 @@ B:HIT:FIRE:5d5
 B:GAZE:EXP_80
 B:WAIL:TERRIFY
 F:UNIQUE | MALE | CAN_SPEAK | SELF_LITE_1 |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | POWERFUL |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | HURT_COLD | IM_POIS | IM_FIRE | RES_PLAS | RES_NETH |
@@ -11911,7 +11911,7 @@ B:HIT:POISON:5d5
 B:CRUSH:ACID:5d5
 B:HIT:POISON:5d5
 F:UNIQUE | CAN_SPEAK | NO_STUN | NO_SLEEP | NO_CONF |
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR | ESCORT |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR | ESCORT |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | REGENERATE |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | KILL_BODY |
 F:EVIL | HURT_FIRE | IM_COLD | IM_POIS
@@ -11949,7 +11949,7 @@ B:HIT:DISEASE:5d5
 B:TOUCH:LOSE_ALL
 B:TOUCH:EXP_80
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY |
 F:EVIL | UNDEAD | HURT_FIRE | IM_COLD | IM_POIS | RES_NETH |
@@ -11973,7 +11973,7 @@ B:HIT:HURT:2d8
 B:HIT:HURT:2d8
 B:HIT:HURT:2d8
 F:MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | HURT_LITE | RES_DARK | NO_CONF | NO_SLEEP
@@ -11996,7 +11996,7 @@ B:TOUCH:EXP_80
 B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:2d12
 B:TOUCH:LOSE_DEX:2d12
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -12022,7 +12022,7 @@ I:110:45d10:20:40:80
 W:41:3:0:1500:0:0
 B:CLAW:LOSE_STR:3d4
 B:BITE:EXP_20:3d4
-F:FORCE_SLEEP | FORCE_MAXHP | FRIENDS | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FRIENDS | 
 F:ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | CAN_FLY |
 F:EVIL | DEMON | IM_FIRE | NO_CONF | NO_SLEEP
@@ -12060,7 +12060,7 @@ B:HIT:HURT:8d6
 B:HIT:UN_BONUS:6d8
 B:HIT:UN_BONUS:6d8
 F:UNIQUE | MALE | CAN_SPEAK | AMBERITE | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | HAS_LITE_2 | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HAS_LITE_2 | HUMAN |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR |
 F:IM_ACID | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | RES_TELE
@@ -12081,7 +12081,7 @@ B:GAZE:TERRIFY:4d4
 B:GAZE:TERRIFY:4d4
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
-F:FORCE_SLEEP | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | NO_FEAR | GOOD | REFLECTING |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | RES_LITE |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_TELE | CAN_FLY | ANGEL
@@ -12110,7 +12110,7 @@ B:HIT:ACID:2d4
 B:HIT:ACID:2d4
 B:CRUSH:HURT:3d4
 B:BITE:ACID:6d6
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR | NONLIVING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR | NONLIVING |
 F:ONLY_ITEM | DROP_90 | REGENERATE | RES_TELE
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | CAN_SWIM |
 F:EVIL | DEMON | NO_CONF | NO_SLEEP | HURT_FIRE | IM_POIS
@@ -12140,7 +12140,7 @@ W:42:2:0:2300:0:0
 B:BITE:LOSE_DEX:1d3
 B:BITE:POISON:1d3
 B:CRUSH:HURT:9d4
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR |
 F:ONLY_ITEM | DROP_1D2 |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | CAN_FLY |
 F:EVIL | DEMON | HURT_LITE | IM_POIS | 
@@ -12172,7 +12172,7 @@ B:GAZE:EXP_40:2d4
 B:GAZE:PARALYZE:2d4
 B:GAZE:LOSE_INT:2d6
 B:GAZE:DR_MANA:2d12
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | CAN_FLY | BASH_DOOR | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | CAN_FLY | BASH_DOOR | DROP_CORPSE
 F:EVIL | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_3
 S:BLIND | SLOW | CONF | SCARE | DRAIN_MANA | MIND_BLAST | FORGET | 
@@ -12192,7 +12192,7 @@ B:TOUCH:EXP_80
 B:TOUCH:DR_MANA:2d10
 B:CLAW:LOSE_INT:1d10
 B:CLAW:LOSE_WIS:1d10
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:ONLY_ITEM | DROP_1D2 | POWERFUL | REGENERATE | HURT_LITE | SELF_DARK_1 |
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | FRIENDS | RES_NETH |
 F:EVIL | DEMON | IM_COLD | IM_POIS | NO_CONF | RES_DARK | NO_SLEEP
@@ -12212,7 +12212,7 @@ W:42:1:0:4000:20000:1180
 B:BUTT:COLD:3d6
 B:BUTT:FIRE:3d6
 B:BUTT:ELEC:3d6
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
 F:EVIL | UNDEAD | SMART | ONLY_ITEM | DROP_60 | DROP_GOOD
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH | RES_TELE
 F:NO_CONF | NO_SLEEP
@@ -12238,7 +12238,7 @@ W:42:1:0:600:6000:690
 B:HIT:HURT:6d6
 B:HIT:HURT:6d6
 B:HIT:LOSE_STR:3d4
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:RAND_25 | FRIENDS | CAN_FLY |
 F:ONLY_ITEM | DROP_60 | 
 F:TAKE_ITEM | INVISIBLE | COLD_BLOOD | PASS_WALL | 
@@ -12280,7 +12280,7 @@ B:ENGULF:HURT:10d8
 B:ENGULF:HURT:10d8
 B:ENGULF:HURT:10d8
 F:AQUATIC | EVIL | UNIQUE | DROP_CORPSE |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 |
 F:SMART | POWERFUL | MOVE_BODY | NEVER_MOVE |
 F:IM_ACID | IM_FIRE | IM_COLD | RES_WATE | 
@@ -12326,7 +12326,7 @@ B:HIT:EXP_20:8d2
 B:HIT:LOSE_STR:8d2
 B:HIT:LOSE_CON:8d2
 F:MALE | ATTR_MULTI | UNDEAD | EVIL |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:IM_FIRE | IM_COLD | IM_ACID | IM_ELEC | IM_POIS | RES_NETH |
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | 
@@ -12382,7 +12382,7 @@ B:GAZE:EXP_40
 B:GAZE:DR_MANA:4d8
 B:GAZE:HURT:2d20
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_FIRE | IM_COLD | IM_POIS | RES_NETH | RES_DARK |
@@ -12404,7 +12404,7 @@ B:CLAW:HURT:4d12
 B:CLAW:HURT:4d12
 B:BITE:HURT:6d12
 F:ATTR_MULTI | SELF_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_ACID | IM_FIRE | IM_COLD | 
@@ -12425,7 +12425,7 @@ W:43:2:0:11000:0:0
 B:CLAW:HURT:4d12
 B:CLAW:HURT:4d12
 B:BITE:HURT:6d12
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | 
 F:INVISIBLE | CAN_FLY |
 F:PASS_WALL | POWERFUL | MOVE_BODY | 
@@ -12450,7 +12450,7 @@ B:CRUSH:HURT:5d6
 B:CRUSH:HURT:5d6
 B:BITE:LOSE_STR:1d6
 B:BITE:LOSE_STR:1d6
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR |
 F:ONLY_ITEM | DROP_1D2 | NONLIVING | CAN_SWIM |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | HURT_LITE |
 F:EVIL | DEMON | IM_FIRE | RES_DARK | NO_CONF | NO_SLEEP | RES_TELE
@@ -12490,7 +12490,7 @@ I:120:12d100:20:100:10
 W:43:2:0:8000:0:0
 B:TOUCH:LOSE_ALL:7d6
 B:TOUCH:LOSE_ALL:7d6
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | 
 F:INVISIBLE | PASS_WALL | CAN_FLY | 
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | ATTR_MULTI | ATTR_ANY |
 F:CHAR_CLEAR | SMART | COLD_BLOOD | EVIL | 
@@ -12530,7 +12530,7 @@ B:HIT:SUPERHURT:6d6
 B:HIT:SUPERHURT:6d6
 B:HIT:SHATTER:10d10
 F:UNIQUE | MALE | CAN_SPEAK | 
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:EMPTY_MIND | COLD_BLOOD | KILL_WALL | 
 F:KILL_ITEM | KILL_BODY | PASS_WALL | POWERFUL | 
 F:EVIL | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_SHAR |
@@ -12577,7 +12577,7 @@ B:CRUSH:HURT:10d10
 B:BITE:LOSE_CON:8d2
 B:BITE:LOSE_CON:8d1
 F:UNIQUE | CAN_SPEAK | EVIL | DEMON | 
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE |
 F:ELDRITCH_HORROR | POWERFUL |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
 F:HURT_ROCK | 
@@ -12620,7 +12620,7 @@ W:44:2:0:6000:0:0
 B:ENGULF:LOSE_CON:4d10
 B:ENGULF:LOSE_CON:4d10
 B:ENGULF:LOSE_CON:4d10
-F:FORCE_SLEEP | ELDRITCH_HORROR | PASS_WALL | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | ELDRITCH_HORROR | PASS_WALL | FORCE_MAXHP |
 F:INVISIBLE | DROP_2D2 | DROP_4D2 | CAN_FLY | EVIL |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | POWERFUL | NONLIVING | RES_WALL |
 F:SMART | IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS | RES_GRAV |
@@ -12650,7 +12650,7 @@ B:HIT:COLD:12d12
 B:HIT:COLD:12d12
 B:HIT:COLD:12d12
 F:ESCORT | UNIQUE | IM_COLD | AURA_COLD | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | GIANT | MALE 
@@ -12671,7 +12671,7 @@ B:CLAW:HURT:50d1
 B:TOUCH:TIME:1d50
 B:TOUCH:TIME:1d50
 F:ESCORT | UNIQUE | IM_COLD | RES_TIME | ELDRITCH_HORROR | RES_NETH |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | KILL_BODY | DROP_GREAT |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | UNDEAD | DEMON | REGENERATE |
@@ -12711,7 +12711,7 @@ B:CRUSH:HURT:9d9
 F:REGENERATE | KILL_ITEM | CAN_SPEAK | 
 F:BASH_DOOR | EVIL | DEMON | NO_CONF | NO_FEAR | NO_SLEEP | KILL_BODY |
 F:CAN_SWIM | RES_DARK |
-F:FORCE_MAXHP | FORCE_SLEEP | HURT_LITE | POWERFUL | ELDRITCH_HORROR | 
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | HURT_LITE | POWERFUL | ELDRITCH_HORROR | 
 F:IM_ACID | IM_FIRE | RES_PLAS | IM_POIS | IM_COLD | IM_ELEC | RES_TELE
 D:$"The nightmare, plastic column of fetid, black iridescence oozed 
 D:$tightly onward... A shapeless congerie of protoplasmic bubbles, 
@@ -12748,7 +12748,7 @@ B:CLAW:POISON:10d5
 B:CLAW:EXP_40:10d1
 B:GAZE:TERRIFY
 F:UNIQUE | MALE | CAN_SPEAK | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_ELEC | IM_COLD | RES_NETH | HURT_FIRE | 
@@ -12770,7 +12770,7 @@ B:HIT:CONFUSE:1d4
 B:HIT:HURT:4d6
 B:HIT:CONFUSE:1d4
 F:UNIQUE | FEMALE | AURA_ELEC | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_LITE_1 |
 F:RAND_25 | CAN_FLY | NONLIVING |
 F:EMPTY_MIND | COLD_BLOOD | 
 F:KILL_ITEM | KILL_BODY | BASH_DOOR | POWERFUL | 
@@ -12793,7 +12793,7 @@ B:BITE:FIRE:3d12
 B:BITE:FIRE:3d12
 B:BITE:FIRE:3d12
 B:BITE:FIRE:3d12
-F:FORCE_SLEEP | WILD_SHORE | WILD_SWAMP |
+F:PREVENT_SUDDEN_MAGIC | WILD_SHORE | WILD_SWAMP |
 F:ONLY_GOLD | DROP_2D2 | DROP_4D2 | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | IM_FIRE | CAN_SWIM | RIDING
@@ -12813,7 +12813,7 @@ B:HIT:HURT:3d4
 B:HIT:HURT:3d4
 B:HIT:HURT:3d5
 F:MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | 
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | NO_CONF | NO_SLEEP
@@ -12835,7 +12835,7 @@ B:HIT:HURT:6d6
 B:HIT:HURT:6d6
 B:HIT:LOSE_STR:3d4
 B:HIT:LOSE_STR:3d4
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | CAN_FLY |
 F:SMART | TAKE_ITEM | INVISIBLE | COLD_BLOOD | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | NO_CONF | RES_NETH | NO_SLEEP
@@ -12863,7 +12863,7 @@ B:BITE:HURT:5d8
 B:BITE:HURT:5d8
 B:CLAW:POISON:3d3
 B:CLAW:POISON:3d3
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:EMPTY_MIND | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:DRAGON | IM_FIRE | IM_COLD | 
 F:IM_ELEC | IM_POIS | CAN_SWIM |
@@ -12890,7 +12890,7 @@ B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:HURT:6d14
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | DROP_CORPSE
 F:BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
@@ -12930,7 +12930,7 @@ B:HIT:UN_BONUS:4d8
 B:HIT:UN_BONUS:4d8
 B:HIT:LOSE_STR:4d6
 B:HIT:LOSE_STR:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | 
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | CAN_SWIM |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | RES_NETH | RES_TELE |
@@ -12956,7 +12956,7 @@ B:CRUSH:HURT:25d3
 B:BITE:LOSE_DEX:2d10
 B:BITE:LOSE_CON:2d10
 F:UNIQUE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:RAND_25 | CAN_SWIM | ELDRITCH_HORROR |
 F:KILL_ITEM | BASH_DOOR | POWERFUL | 
 F:EVIL | IM_ACID | IM_COLD | IM_ELEC | IM_POIS | 
@@ -13019,7 +13019,7 @@ B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:HURT:6d14
 F:UNIQUE | MALE | REFLECTING | CAN_FLY | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -13045,7 +13045,7 @@ B:SLASH:EXP_80:80d1
 B:SLASH:EXP_80:80d1
 B:SLASH:EXP_VAMP:8d8
 F:CHAR_MULTI | EVIL | IM_POIS | IM_COLD | IM_FIRE | RES_NETH | RES_CHAO |
-F:FORCE_SLEEP | UNIQUE | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | UNIQUE | FORCE_MAXHP | CAN_FLY |
 F:COLD_BLOOD | BASH_DOOR | NONLIVING |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 A:190:1:100
@@ -13099,7 +13099,7 @@ B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:EXP_40:3d6
 B:BITE:EXP_VAMP:3d6
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | COLD_BLOOD | EVIL | DRAGON | UNDEAD
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY
 F:IM_COLD | IM_POIS | RES_NETH | RES_DARK | RES_TELE
@@ -13119,7 +13119,7 @@ B:HIT:CONFUSE:9d9
 B:HIT:CONFUSE:9d9
 B:HIT:CONFUSE:9d9
 B:HIT:CONFUSE:9d9
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | GIANT | MALE
@@ -13141,7 +13141,7 @@ B:BITE:HURT:5d11
 B:BITE:HURT:5d11
 B:BITE:HURT:8d7
 B:GAZE:PARALYZE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | ANIMAL | EVIL | DRAGON
 F:IM_FIRE | IM_POIS | RES_NETH | RES_TELE | NO_CONF | NO_SLEEP | RIDING
@@ -13163,7 +13163,7 @@ B:BITE:HURT:5d8
 B:BITE:HURT:5d8
 B:CRUSH:POISON:3d10
 B:CRUSH:POISON:3d10
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | AQUATIC | WILD_OCEAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | AQUATIC | WILD_OCEAN |
 F:IM_FIRE | IM_ACID | IM_COLD | IM_POIS | RES_WATE |
 F:DRAGON | NO_CONF | NO_SLEEP | NO_FEAR | RIDING
 S:1_IN_6 | 
@@ -13183,7 +13183,7 @@ B:BITE:EXP_40:2d13
 B:BITE:EXP_40:2d13
 B:BITE:LOSE_STR:5d8
 B:GAZE:TERRIFY
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:EVIL | UNDEAD | ANIMAL | RES_NETH | RES_NEXU | RES_TELE
 F:NO_CONF | NO_FEAR | NO_SLEEP | 
 F:IM_POIS | IM_ACID | IM_COLD |
@@ -13209,7 +13209,7 @@ I:120:55d55:30:100:20
 W:46:2:0:16000:0:0
 B:TOUCH:LOSE_ALL:1d166
 B:TOUCH:LOSE_ALL:1d166
-F:FORCE_SLEEP | ELDRITCH_HORROR | NEVER_MOVE | REGENERATE |
+F:PREVENT_SUDDEN_MAGIC | ELDRITCH_HORROR | NEVER_MOVE | REGENERATE |
 F:DROP_2D2 | DROP_4D2 | CAN_FLY | DROP_GOOD | ONLY_ITEM |
 F:POWERFUL | EVIL | CAN_SPEAK | UNIQUE | FORCE_MAXHP |
 F:SMART | IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS | RES_CHAO
@@ -13245,7 +13245,7 @@ W:46:2:0:16000:0:0
 B:CLAW:LOSE_INT:5d10
 B:CLAW:LOSE_WIS:5d10
 B:BITE:CONFUSE:5d10
-F:FORCE_SLEEP | ELDRITCH_HORROR | PASS_WALL | UNIQUE | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | ELDRITCH_HORROR | PASS_WALL | UNIQUE | FORCE_MAXHP |
 F:INVISIBLE | DROP_2D2 | DROP_4D2 | CAN_FLY | DROP_GOOD | ONLY_ITEM |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | POWERFUL | EVIL |
 F:SMART | IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS |
@@ -13282,7 +13282,7 @@ B:CRUSH:HURT:10d11
 B:CRUSH:HURT:10d11
 B:CRUSH:HURT:10d11
 B:CRUSH:HURT:10d11
-F:DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | FRIENDLY | HURT_FIRE |
+F:DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FRIENDLY | HURT_FIRE |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:GOOD | GIANT | MALE | RIDING
@@ -13298,7 +13298,7 @@ B:CRUSH:SHATTER:10d11
 B:CRUSH:SHATTER:10d11
 B:CRUSH:SHATTER:10d11
 B:CRUSH:SHATTER:10d11
-F:FORCE_SLEEP | FORCE_MAXHP | HURT_ROCK |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HURT_ROCK |
 F:ONLY_GOLD | DROP_4D2 | MOVE_BODY | KILL_WALL |
 F:SMART | KILL_ITEM | BASH_DOOR |
 F:EVIL | GIANT | MALE
@@ -13316,7 +13316,7 @@ B:CLAW:HURT:1d10
 B:BITE:HURT:3d14
 B:BITE:HURT:4d14
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | SELF_LITE_2 |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -13339,7 +13339,7 @@ B:HIT:UN_BONUS:7d7
 B:HIT:UN_BONUS:7d7
 B:HIT:UN_BONUS:7d7
 B:HIT:EXP_VAMP:5d5
-F:FORCE_SLEEP | NEVER_MOVE | CAN_SWIM |
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | CAN_SWIM |
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
 F:NO_CONF | NO_SLEEP | NO_FEAR
 D:$It is the epitome of all that is evil, in a mold.  Its lifeless form draws 
@@ -13365,7 +13365,7 @@ B:CLAW:HURT:4d10
 B:BITE:FIRE:14d6
 B:BITE:POISON:14d6
 F:UNIQUE | MALE |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | DROP_CORPSE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | DROP_CORPSE |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | DROP_90 | DROP_60 |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | RIDING | SELF_LITE_2 |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | IM_POIS
@@ -13388,7 +13388,7 @@ B:CRUSH:HURT:12d13
 B:CRUSH:HURT:12d13
 B:CRUSH:HURT:12d13
 F:UNIQUE | DROP_CORPSE | CAN_SPEAK | HURT_FIRE |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:GOOD | GIANT | FRIENDLY | MALE
@@ -13411,7 +13411,7 @@ W:55:3:0:15000:0:0
 B:CRUSH:HURT:23d13
 B:CRUSH:HURT:23d13
 B:CRUSH:HURT:23d13
-F:FORCE_SLEEP | FORCE_MAXHP | UNIQUE | EVIL | ELDRITCH_HORROR
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | UNIQUE | EVIL | ELDRITCH_HORROR
 F:ONLY_ITEM | DROP_4D2 | DROP_GREAT | KILL_BODY
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | CAN_SWIM
 S:1_IN_6 | S_DEMON | SHRIEK | CONF | SCARE | MIND_BLAST | BLIND 
@@ -13444,7 +13444,7 @@ B:CLAW:HURT:7d12
 B:BITE:HURT:8d14
 B:BITE:HURT:8d14
 F:UNIQUE | MALE | CAN_SWIM | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | CAN_SPEAK |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING |
@@ -13473,7 +13473,7 @@ B:BITE:FIRE:8d8
 B:BITE:FIRE:8d8
 B:CRUSH:SUPERHURT:5d15
 B:CRUSH:SUPERHURT:5d15
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SWIM | ANIMAL
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SWIM | ANIMAL
 F:IM_FIRE | IM_ACID | IM_COLD | IM_POIS | DROP_CORPSE
 F:NO_CONF | NO_SLEEP | NO_FEAR | RIDING
 S:1_IN_9
@@ -13495,7 +13495,7 @@ B:CLAW:HURT:7d13
 B:CLAW:HURT:7d13
 B:BITE:HURT:8d13
 B:BITE:HURT:8d13
-F:UNIQUE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP
+F:UNIQUE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:ONLY_ITEM | DROP_2D2 | DROP_GREAT
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | RES_NETH | RES_DARK |
 F:ANIMAL | EVIL | IM_FIRE | NO_CONF | NO_SLEEP
@@ -13516,7 +13516,7 @@ W:50:4:0:500:0:0
 B:HIT:HURT:3d6
 B:HIT:HURT:3d6
 B:HIT:HURT:3d6
-F:FORCE_SLEEP | COLD_BLOOD | EMPTY_MIND | PASS_WALL | RAND_50 | MULTIPLY |
+F:PREVENT_SUDDEN_MAGIC | COLD_BLOOD | EMPTY_MIND | PASS_WALL | RAND_50 | MULTIPLY |
 F:BASH_DOOR | IM_COLD | IM_ACID | IM_FIRE | IM_ELEC | IM_POIS | NONLIVING |
 F:HURT_ROCK | NO_CONF | NO_SLEEP | CHAR_MULTI | CAN_FLY | RES_SHAR
 D:$A sentient, moving section of wall.
@@ -13531,7 +13531,7 @@ B:TOUCH:TERRIFY
 B:CLAW:HURT:6d6
 B:CLAW:HURT:6d6
 B:CLAW:HURT:6d6
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_FIRE | NONLIVING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_FIRE | NONLIVING |
 F:REGENERATE | IM_ACID | IM_COLD | IM_FIRE | CAN_FLY |
 F:NO_SLEEP | NO_STUN | NO_CONF | EVIL | DEMON |
 F:INVISIBLE | KILL_WALL |
@@ -13558,7 +13558,7 @@ B:HIT:FIRE:2d6
 B:HIT:HURT:5d6
 B:HIT:FIRE:6d2
 B:HIT:HURT:6d5
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_FIRE | CAN_FLY | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_FIRE | CAN_FLY | SELF_LITE_1 |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | NONLIVING |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | SMART | 
 F:EVIL | DEMON | IM_FIRE | NO_CONF | NO_SLEEP | KILL_WALL |
@@ -13578,7 +13578,7 @@ B:GAZE:TERRIFY
 B:BUTT:HURT:6d6
 B:BITE:EXP_40
 B:BITE:LOSE_CON
-F:EVIL | DEMON | FORCE_SLEEP | FORCE_MAXHP | 
+F:EVIL | DEMON | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | SMART | NONLIVING |
 F:NO_CONF | NO_SLEEP | HURT_LITE | IM_FIRE | IM_COLD | RES_DARK
@@ -13602,7 +13602,7 @@ B:TOUCH:POISON:3d5
 B:TOUCH:POISON:3d5
 B:HIT:UN_BONUS:6d8
 B:HIT:DR_MANA:5d10
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_TELE | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -13632,7 +13632,7 @@ B:BUTT:HURT:4d6
 B:BUTT:HURT:4d6
 F:ONLY_ITEM | DROP_60 | DROP_GOOD | RES_TELE
 F:BASH_DOOR | STUPID | DROP_CORPSE
-F:EVIL | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP
+F:EVIL | IM_FIRE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 S:1_IN_5 |
 S:BO_PLAS | BA_FIRE
 D:$It is a belligerent minotaur with some magic powers and armed with a hammer.
@@ -13648,7 +13648,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | SELF_DARK_1 |
+F:PREVENT_SUDDEN_MAGIC | SELF_DARK_1 |
 F:FRIENDS | RES_NETH |
 F:OPEN_DOOR | BASH_DOOR | 
 F:ANIMAL | NO_CONF | NO_SLEEP
@@ -13669,7 +13669,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:OPEN_DOOR | BASH_DOOR |
 F:ANIMAL | RES_TIME | NO_CONF | NO_SLEEP
@@ -13692,7 +13692,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:FRIENDS | RES_PLAS | SELF_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR |
 F:ANIMAL | IM_ELEC | IM_FIRE | NO_CONF | NO_SLEEP
@@ -13712,7 +13712,7 @@ E:Demonic quylthulg
 G:Q:R
 I:120:48d10:20:1:0
 W:51:1:0:3000:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:INVISIBLE | EMPTY_MIND | 
 F:ANIMAL | EVIL | STUPID |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -13733,7 +13733,7 @@ B:CLAW:HURT:4d10
 B:CLAW:ELEC:6d12
 B:BITE:HURT:4d10
 B:BITE:ELEC:6d12
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | CAN_FLY
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_ELEC | NO_CONF | NO_SLEEP | RIDING
@@ -13755,7 +13755,7 @@ B:HIT:SHATTER:20d12
 B:HIT:SHATTER:20d12
 B:BITE:POISON:6d14
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD | 
 F:DROP_90 | REGENERATE | KILL_WALL | RES_TELE |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE
@@ -13780,7 +13780,7 @@ B:BUTT:HURT:12d13
 B:HIT:HURT:10d10
 B:HIT:HURT:10d10
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | DROP_CORPSE
 F:EVIL | IM_FIRE | IM_POIS | RES_WALL | NO_CONF | NO_SLEEP
@@ -13802,7 +13802,7 @@ B:HIT:HURT:10d5
 B:HIT:HURT:10d5
 B:HIT:HURT:10d5
 B:HIT:EXP_80
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | IM_FIRE | IM_COLD | IM_POIS | MALE | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | IM_FIRE | IM_COLD | IM_POIS | MALE | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | RES_NETH | RES_NEXU | RES_PLAS |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | EVIL
 S:1_IN_5 |
@@ -13823,7 +13823,7 @@ B:CHARGE:EAT_ITEM:5d5
 B:SPIT:BLIND:10d5
 B:DROOL:DISEASE:8d5
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | 
 F:IM_POIS | IM_FIRE | NO_CONF | NO_SLEEP | EVIL | RES_TELE
@@ -13844,7 +13844,7 @@ B:TOUCH:LOSE_ALL:10d1
 B:TOUCH:LOSE_ALL:10d1
 B:CHARGE:EAT_GOLD
 F:UNIQUE | MALE | CAN_SPEAK | REFLECTING | DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | HAS_LITE_1
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | HAS_LITE_1
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GREAT
 F:NO_STUN | NO_SLEEP | NO_CONF | IM_ELEC | IM_FIRE | IM_POIS | IM_COLD
 F:COLD_BLOOD | RES_TELE
@@ -13874,7 +13874,7 @@ B:CRUSH:HURT:10d10
 B:CRUSH:HURT:10d10
 B:CRUSH:HURT:10d10
 F:UNIQUE | CAN_SPEAK | ESCORT | REGENERATE |
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_POIS |
@@ -13915,7 +13915,7 @@ B:CRUSH:HURT:12d12
 B:GAZE:LOSE_WIS:5d10
 B:GAZE:TERRIFY:5d10
 F:UNIQUE | MALE | CAN_SPEAK | ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_ACID | IM_FIRE | IM_COLD | IM_POIS | RES_NETH |
@@ -13947,7 +13947,7 @@ B:BITE:ACID:10d10
 B:BITE:POISON:10d10
 B:BITE:CONFUSE:10d10
 F:DEMON | EVIL | NONLIVING | CAN_SWIM |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR | SMART | POWERFUL | DROP_GOOD | KILL_BODY |
 F:IM_ACID | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
 F:KILL_ITEM 
@@ -13975,7 +13975,7 @@ B:KICK:HURT:10d2
 B:HIT:POISON:20d1
 B:HIT:LOSE_ALL:15d1
 F:MALE | EVIL | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON |
 F:ONLY_ITEM | DROP_4D2 | ATTR_MULTI | SHAPECHANGER | ATTR_ANY |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | SMART | HAS_LITE_2 | RES_CHAO |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
@@ -13999,7 +13999,7 @@ B:HIT:HURT:5d5
 B:TOUCH:EXP_40
 B:TOUCH:EXP_40
 F:UNIQUE | MALE | CAN_SPEAK | 
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_ACID | IM_FIRE | IM_COLD | IM_POIS | RES_NETH | RES_DARK |
@@ -14026,7 +14026,7 @@ W:54:3:0:8000:0:0
 B:BITE:TIME:2d12
 B:BITE:TIME:2d12
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP | FRIENDS | RES_NETH | RES_TIME |
+F:PREVENT_SUDDEN_MAGIC | FRIENDS | RES_NETH | RES_TIME |
 F:INVISIBLE | PASS_WALL | EVIL | CAN_FLY |
 F:ANIMAL | NO_CONF | NO_SLEEP
 S:1_IN_5 |
@@ -14067,7 +14067,7 @@ B:CRUSH:HURT:16d12
 B:CRUSH:HURT:16d12
 B:CRUSH:HURT:16d12
 B:CRUSH:HURT:16d12
-F:FORCE_SLEEP | FORCE_MAXHP | AQUATIC | WILD_OCEAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AQUATIC | WILD_OCEAN |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | SMART | RES_WATE |
 F:EVIL | IM_ELEC | NO_CONF | NO_SLEEP | IM_POIS | IM_FIRE | RES_DARK | RIDING
@@ -14088,7 +14088,7 @@ B:CLAW:HURT:4d10
 B:CLAW:COLD:6d12
 B:BITE:HURT:4d10
 B:BITE:COLD:6d12
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | AURA_COLD
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GOOD
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
@@ -14109,7 +14109,7 @@ B:TOUCH:EXP_VAMP:1d12
 B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:4d12
 B:TOUCH:LOSE_DEX:4d12
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_1D2 | DROP_GOOD |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -14135,7 +14135,7 @@ B:BITE:FIRE:12d6
 B:HIT:FIRE:9d12
 B:HIT:FIRE:9d12
 F:UNIQUE | CAN_SPEAK | RES_PLAS | AURA_FIRE | SELF_LITE_1 | SELF_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | RES_LITE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | RES_LITE |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | RIDING | GOOD |
 F:ANIMAL | IM_ACID | IM_FIRE | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
@@ -14157,7 +14157,7 @@ B:STING:LOSE_CON:8d8
 B:STING:LOSE_CON:8d8
 B:BITE:ACID:10d10
 B:BITE:ACID:10d10
-F:FORCE_SLEEP | SMART | KILL_WALL | CAN_SWIM |
+F:PREVENT_SUDDEN_MAGIC | SMART | KILL_WALL | CAN_SWIM |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_FIRE | IM_COLD | IM_POIS | RES_DARK | RES_TELE |
@@ -14187,7 +14187,7 @@ B:CLAW:CONFUSE:10d10
 B:CLAW:CONFUSE:10d10
 B:BITE:BLIND:12d12
 F:DEMON | EVIL | ATTR_MULTI | DROP_GOOD | MOVE_BODY | NONLIVING |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | SMART | POWERFUL | CAN_FLY | RES_CHAO |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | RIDING
 S:1_IN_3
@@ -14212,7 +14212,7 @@ B:HIT:TERRIFY:10d10
 B:HIT:BLIND:10d10
 B:HIT:TERRIFY:10d10
 F:DEMON | EVIL | DROP_GOOD | NONLIVING | CAN_SWIM |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_2D2 | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR | SMART | POWERFUL | MOVE_BODY |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_POIS | NO_CONF | RES_CHAO | NO_SLEEP
 S:1_IN_3
@@ -14269,7 +14269,7 @@ E:Hand druj
 G:s:y
 I:130:60d10:20:110:10
 W:55:4:0:6000:20000:749
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | RES_TELE
 F:SMART | COLD_BLOOD | CAN_SWIM |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -14289,7 +14289,7 @@ B:GAZE:EXP_80
 B:GAZE:EXP_80
 B:GAZE:DR_MANA:5d10
 B:GAZE:DR_MANA:5d10
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | RES_TELE
 F:SMART | COLD_BLOOD |
 F:EVIL | UNDEAD | CAN_SWIM |
 F:IM_FIRE | IM_COLD | IM_POIS | RES_NETH |
@@ -14311,7 +14311,7 @@ B:BITE:EXP_80:4d4
 B:BITE:PARALYZE:4d4
 B:BITE:LOSE_INT:4d4
 B:BITE:LOSE_WIS:4d4
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | RES_TELE
 F:SMART | COLD_BLOOD | 
 F:EVIL | UNDEAD | CAN_SWIM |
 F:IM_FIRE | IM_COLD | IM_POIS | RES_NETH |
@@ -14332,7 +14332,7 @@ G:v:v
 I:140:32d20:100:80:0
 W:55:1:0:4000:0:0
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_BLOW | 
 F:RAND_50 | RAND_25 | CAN_FLY |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | 
 F:RES_CHAO | NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN | NONLIVING
@@ -14353,7 +14353,7 @@ B:ENGULF:FIRE:3d3
 B:ENGULF:ACID:3d3
 B:ENGULF:COLD:3d3
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:RAND_50 | RAND_25 | AURA_COLD | AURA_FIRE | AURA_ELEC |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | SELF_LITE_2 |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS |
@@ -14380,7 +14380,7 @@ B:CLAW:LOSE_CON:8d12
 B:BITE:EXP_VAMP:8d15
 B:BITE:EXP_VAMP:8d15
 F:UNIQUE | DROP_CORPSE | CAN_FLY | RES_NETH | RIDING |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | IM_POIS |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | CAN_SPEAK | IM_ACID |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | IM_COLD |
@@ -14404,7 +14404,7 @@ B:BITE:POISON:8d6
 B:BITE:FIRE:12d6
 B:BITE:FIRE:12d6
 F:UNIQUE | 
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | DROP_CORPSE | RIDING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | DROP_CORPSE | RIDING |
 F:ONLY_GOLD | DROP_3D2 | DROP_4D2 | WILD_SHORE | WILD_SWAMP |
 F:OPEN_DOOR | BASH_DOOR | KILL_BODY | POWERFUL | 
 F:ANIMAL | IM_FIRE | IM_POIS | 
@@ -14432,7 +14432,7 @@ B:BITE:EXP_VAMP:8d8
 B:HIT:CONFUSE:6d6
 B:HIT:CONFUSE:6d6
 F:UNIQUE | FEMALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | RES_NETH | RES_DARK |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | HURT_LITE | NO_CONF | NO_SLEEP | RES_TELE
@@ -14456,7 +14456,7 @@ B:CLAW:HURT:4d14
 B:CLAW:FIRE:6d16
 B:CLAW:HURT:4d14
 B:BITE:FIRE:6d16
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | AURA_FIRE |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -14486,7 +14486,7 @@ B:CRUSH:HURT:14d8
 B:BITE:EXP_80:6d6
 B:BITE:EXP_80:6d6
 F:UNIQUE | ELDRITCH_HORROR | CAN_SWIM | EVIL | UNDEAD |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | CAN_SPEAK | AURA_ELEC |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | CAN_SPEAK | AURA_ELEC |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | POWERFUL | NONLIVING | RES_NETH |
 F:IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP | RES_TELE
@@ -14516,7 +14516,7 @@ B:HIT:HURT:50d1
 B:HIT:HURT:50d1
 B:HIT:HURT:50d1
 F:DEMON | EVIL | DROP_GOOD | REGENERATE | CAN_FLY | NONLIVING |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_4D2 | ELDRITCH_HORROR |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_4D2 | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR | RES_NETH | RES_NEXU | RES_TELE | MOVE_BODY |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP | NO_FEAR
 D:$Khorne's mightiest servant, a winged hound-demon walking on 
@@ -14534,7 +14534,7 @@ E:Draconic quylthulg
 G:Q:G
 I:120:72d10:20:1:0
 W:55:3:0:5500:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW |
 F:INVISIBLE | EMPTY_MIND | 
 F:ANIMAL | EVIL | STUPID |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -14560,7 +14560,7 @@ B:CRUSH:ACID:10d6
 B:CRUSH:ACID:10d6
 B:CRUSH:HURT:16d16
 F:UNIQUE | ELDRITCH_HORROR |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | SMART | CAN_SWIM |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | SMART | CAN_SWIM |
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD |
 F:REGENERATE | KILL_ITEM | DROP_2D2 | DROP_90 | DROP_60 |
 F:BASH_DOOR | EVIL | NO_CONF | NO_SLEEP | KILL_BODY |
@@ -14589,7 +14589,7 @@ B:CRUSH:HURT:13d13
 B:CRUSH:FIRE:10d10
 B:CRUSH:HURT:13d13
 B:CRUSH:FIRE:10d10
-F:FORCE_SLEEP | FORCE_MAXHP | UNIQUE | CAN_SPEAK |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | UNIQUE | CAN_SPEAK |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | DEMON | NONLIVING | ELDRITCH_HORROR
@@ -14620,7 +14620,7 @@ B:HIT:HURT:8d6
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE |
-F:FORCE_SLEEP | FORCE_MAXHP | FRIENDLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FRIENDLY |
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | 
@@ -14653,7 +14653,7 @@ B:HIT:TERRIFY:5d6
 B:HIT:PARALYZE:5d6
 B:HIT:BLIND:4d8
 F:UNIQUE | MALE | AMBERITE | DROP_CORPSE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | SHAPECHANGER | CAN_SPEAK |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SHAPECHANGER | CAN_SPEAK |
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD | CAN_FLY | RES_CHAO |
 F:OPEN_DOOR | BASH_DOOR | ATTR_MULTI | RES_DISE | ATTR_ANY | RES_TELE
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | 
@@ -14699,7 +14699,7 @@ B:HIT:FIRE:8d12
 B:HIT:FIRE:10d10
 B:HIT:FIRE:10d10
 F:UNIQUE | MALE | CAN_SPEAK | NO_FEAR | GOOD | AURA_FIRE | REFLECTING |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_LITE | RES_TELE |
@@ -14730,7 +14730,7 @@ B:TOUCH:EXP_VAMP:5d12
 B:HIT:BLIND:10d10
 B:HIT:HURT:10d10
 F:UNIQUE | MALE | CAN_SPEAK | RES_NETH | NO_FEAR | GOOD |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | REFLECTING | AURA_COLD |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | REFLECTING | AURA_COLD |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | CAN_FLY |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_DARK | RES_TELE
@@ -14760,7 +14760,7 @@ B:CLAW:HURT:6d12
 B:CLAW:HURT:8d12
 B:BITE:HURT:10d14
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_ACID | IM_FIRE | RIDING |
@@ -14785,7 +14785,7 @@ B:TOUCH:CONFUSE:5d12
 B:TOUCH:CONFUSE:5d12
 B:TOUCH:CONFUSE:5d12
 F:UNIQUE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:IM_ACID | IM_FIRE | IM_POIS | IM_COLD | ELDRITCH_HORROR |
 F:NEVER_MOVE | RES_NEXU | REFLECTING | PASS_WALL |
@@ -14821,7 +14821,7 @@ B:HIT:UN_BONUS:10d10
 B:HIT:UN_BONUS:10d10
 B:HIT:UN_BONUS:7d7
 B:HIT:UN_BONUS:7d7
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | CAN_SWIM |
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_TELE
 F:EVIL | UNDEAD | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH | RES_DARK |
@@ -14852,7 +14852,7 @@ B:HIT:FIRE:4d6
 B:HIT:HURT:15d10
 B:HIT:HURT:15d10
 F:UNIQUE | MALE | FORCE_MAXHP | CAN_SPEAK | NO_FEAR | GOOD |
-F:FORCE_SLEEP | SMART | AURA_ELEC | REFLECTING | RES_TELE |
+F:PREVENT_SUDDEN_MAGIC | SMART | AURA_ELEC | REFLECTING | RES_TELE |
 F:ESCORT | CAN_FLY | POWERFUL | SELF_LITE_1 | SELF_LITE_2 | ANGEL
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | MOVE_BODY |
@@ -14882,7 +14882,7 @@ B:HIT:EXP_VAMP:6d6
 B:HIT:EXP_VAMP:8d8
 B:HIT:EXP_VAMP:10d10
 F:UNIQUE | MALE | CAN_SPEAK | HAS_LITE_2 | HUMAN
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | DROP_CORPSE
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GREAT
 F:OPEN_DOOR | BASH_DOOR | RES_NEXU | RES_NETH | RES_CHAO | EVIL
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
@@ -14907,7 +14907,7 @@ B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 F:UNIQUE | MALE | DROP_CORPSE | ATTR_MULTI | CAN_SPEAK |
 F:FRIENDLY | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_COLD | 
@@ -14937,7 +14937,7 @@ B:HIT:UN_BONUS:6d8
 B:HIT:TERRIFY:5d5
 B:HIT:TERRIFY:5d5
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE | FRIENDLY | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | RES_TELE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | RES_TELE |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:GOOD | IM_FIRE | IM_COLD |
@@ -14971,7 +14971,7 @@ B:HIT:UN_BONUS:6d8
 B:HIT:CONFUSE:5d5
 B:HIT:UN_POWER:5d5
 F:UNIQUE | MALE | ATTR_MULTI | CAN_SPEAK | AMBERITE | ATTR_ANY | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE | HAS_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE | HAS_LITE_2 |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD | HUMAN |
 F:SMART | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_COLD |
@@ -15009,7 +15009,7 @@ B:HIT:EXP_80:6d12
 B:HIT:DR_MANA:5d10
 B:HIT:LOSE_STR:4d6
 B:GAZE:TERRIFY:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_DARK_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_DARK_2 |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | 
 F:INVISIBLE | COLD_BLOOD | TAKE_ITEM | PASS_WALL | 
 F:EVIL | UNDEAD | CAN_FLY |
@@ -15034,7 +15034,7 @@ B:CRUSH:HURT:15d15
 B:CRUSH:HURT:15d15
 B:CRUSH:HURT:15d15
 B:CRUSH:HURT:15d15
-F:FORCE_SLEEP | FORCE_MAXHP | AQUATIC | WILD_OCEAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AQUATIC | WILD_OCEAN |
 F:ONLY_ITEM | DROP_3D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | SMART | RES_WATE | RES_DARK |
 F:EVIL | IM_ELEC | NO_CONF | NO_SLEEP | IM_POIS | IM_FIRE | RIDING
@@ -15056,7 +15056,7 @@ B:TOUCH:EXP_VAMP:1d16
 B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:8d12
 B:TOUCH:LOSE_DEX:8d12
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_TELE | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_TELE | CAN_FLY |
 F:ONLY_ITEM | DROP_4D2 | DROP_1D2 | DROP_GOOD |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | PASS_WALL |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -15084,7 +15084,7 @@ B:TOUCH:LOSE_DEX:2d12
 B:HIT:BLIND:10d5
 B:HIT:PARALYZE:15d1
 F:UNIQUE | FEMALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | EVIL |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
@@ -15111,7 +15111,7 @@ B:CLAW:HURT:10d10
 B:BITE:HURT:10d10
 B:BITE:HURT:10d10
 F:ATTR_MULTI | EVIL |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE
 F:ONLY_ITEM | DROP_60 | DROP_90 | 
 F:BASH_DOOR | CAN_FLY | DROP_CORPSE | RIDING
 F:ANIMAL | RES_CHAO
@@ -15133,7 +15133,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | 
+F:PREVENT_SUDDEN_MAGIC | 
 F:FRIENDS | 
 F:BASH_DOOR | 
 F:ANIMAL | RES_CHAO | NO_CONF | NO_SLEEP
@@ -15161,7 +15161,7 @@ B:BITE:EXP_VAMP:8d8
 B:HIT:CONFUSE:8d8
 B:HIT:CONFUSE:8d8
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | RES_NETH | RES_DARK |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | HURT_LITE | NO_CONF | NO_SLEEP | RES_TELE
@@ -15181,7 +15181,7 @@ B:GAZE:EXP_40:4d6
 B:GAZE:PARALYZE:4d6
 B:GAZE:LOSE_INT:4d6
 B:GAZE:DR_MANA:6d6
-F:FORCE_SLEEP | RES_TELE | HAS_DARK_1 | COLD_BLOOD | BASH_DOOR
+F:PREVENT_SUDDEN_MAGIC | RES_TELE | HAS_DARK_1 | COLD_BLOOD | BASH_DOOR
 F:EVIL | UNDEAD | CAN_FLY
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH |
 F:NO_CONF | NO_SLEEP
@@ -15208,7 +15208,7 @@ B:BITE:FIRE:5d12
 B:BITE:FIRE:5d12
 B:CRUSH:HURT:6d15
 B:CRUSH:HURT:6d15
-F:FORCE_SLEEP | FORCE_MAXHP | AQUATIC | WILD_OCEAN | EVIL |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AQUATIC | WILD_OCEAN | EVIL |
 F:IM_FIRE | IM_ACID | IM_COLD | IM_POIS | RES_WATE | RES_DARK |
 F:DRAGON | NO_CONF | NO_SLEEP | NO_FEAR | DROP_CORPSE | RIDING
 S:1_IN_9
@@ -15228,7 +15228,7 @@ B:CLAW:HURT:5d12
 B:CLAW:HURT:6d12
 B:BITE:HURT:8d14
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_CHAO | RES_DISE | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_CHAO | RES_DISE | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
 F:EVIL | DRAGON | NO_CONF | NO_SLEEP | RIDING
@@ -15253,7 +15253,7 @@ B:CLAW:HURT:5d12
 B:CLAW:HURT:5d12
 B:CLAW:HURT:6d12
 B:BITE:HURT:8d14
-F:FORCE_SLEEP | FORCE_MAXHP | GOOD | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | GOOD | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
 F:DRAGON | RES_SOUN | RES_SHAR | NO_CONF | NO_SLEEP | RIDING
@@ -15279,7 +15279,7 @@ B:CLAW:HURT:5d12
 B:CLAW:HURT:6d12
 B:BITE:HURT:8d14
 F:ATTR_MULTI | ATTR_ANY | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | RES_SOUN | RES_SHAR |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | RES_CHAO | RES_DISE |
 F:DRAGON | NO_CONF | NO_SLEEP | RIDING
@@ -15305,7 +15305,7 @@ B:CLAW:HURT:3d12
 B:CLAW:HURT:3d12
 B:CRUSH:HURT:8d12
 B:CRUSH:HURT:8d12
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | CAN_SWIM | DROP_CORPSE |
 F:BASH_DOOR | OPEN_DOOR | POWERFUL | MOVE_BODY | 
 F:NO_CONF | NO_SLEEP | EVIL 
@@ -15334,7 +15334,7 @@ B:GAZE:TERRIFY:1d20
 B:GAZE:BLIND:1d20
 F:UNIQUE | MALE | CAN_SPEAK | ATTR_MULTI | 
 F:RES_DISE | RES_NEXU | RES_CHAO | RES_INER | CAN_FLY |
-F:FORCE_SLEEP | FORCE_MAXHP | EVIL | SMART | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | EVIL | SMART | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:NO_SLEEP | NO_CONF | NO_STUN | IM_POIS | IM_COLD | IM_FIRE | IM_ACID
 S:1_IN_3
@@ -15372,7 +15372,7 @@ B:STING:DISEASE:20d1
 B:CRUSH:HURT:3d20
 F:UNIQUE | CAN_SPEAK | ATTR_MULTI | ELDRITCH_HORROR |
 F:RES_NEXU | RES_WATE | CAN_SWIM | REGENERATE |
-F:FORCE_SLEEP | FORCE_MAXHP | EVIL | SMART | DEMON |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | EVIL | SMART | DEMON |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:NO_SLEEP | NO_CONF | NO_STUN |
 F:IM_POIS | IM_COLD | IM_ACID
@@ -15417,7 +15417,7 @@ B:HIT:HURT:8d15
 B:HIT:HURT:8d15
 B:TOUCH:EAT_ITEM
 F:UNIQUE | MALE | CAN_SPEAK | AMBERITE | RES_TELE | DROP_CORPSE | HAS_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | DROP_SKELETON | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | DROP_SKELETON | HUMAN |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_FIRE | IM_ELEC | SMART | REGENERATE | OPEN_DOOR | BASH_DOOR |
 S:1_IN_3 |
@@ -15450,7 +15450,7 @@ B:BITE:HURT:6d10
 B:BUTT:HURT:6d10
 B:CRUSH:HURT:6d10
 F:ATTR_MULTI | CAN_FLY
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
@@ -15478,7 +15478,7 @@ B:TOUCH:LOSE_CHR
 B:TOUCH:LOSE_CON
 F:UNIQUE | FEMALE | CAN_SPEAK | AMBERITE | ONLY_ITEM | RES_CHAO | RES_TELE |
 F:DROP_CORPSE | DROP_SKELETON | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 |
 F:EVIL | IM_POIS | IM_ELEC | SMART | REGENERATE | OPEN_DOOR | BASH_DOOR |
 S:1_IN_3 |
@@ -15503,7 +15503,7 @@ B:HIT:HURT:10d10
 B:HIT:LOSE_STR:4d6
 B:HIT:LOSE_STR:4d6
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | CAN_FLY | HAS_DARK_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | CAN_FLY | HAS_DARK_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | 
 F:EVIL | UNDEAD | IM_COLD | RES_NETH | AURA_COLD |
@@ -15533,7 +15533,7 @@ B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:BITE:ELEC:9d15
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | AURA_COLD | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | AURA_COLD | DROP_CORPSE
 F:IM_ELEC | RES_GRAV | RES_LITE | GOOD | CAN_FLY | SELF_LITE_1 | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | 
@@ -15556,7 +15556,7 @@ B:HIT:HURT:9d15
 B:HIT:HURT:9d15
 B:HIT:LOSE_CON:1d30
 F:UNIQUE | MALE | CAN_SPEAK | AMBERITE | RES_TELE | DROP_SKELETON | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | DROP_CORPSE
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:HAS_LITE_2 |
 F:EVIL | IM_POIS | IM_ELEC | IM_COLD | SMART | REGENERATE
@@ -15590,7 +15590,7 @@ B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:BITE:HURT:10d14
 F:ATTR_MULTI | 
-F:UNIQUE | FEMALE | CAN_FLY | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP
+F:UNIQUE | FEMALE | CAN_FLY | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:ESCORT | RIDING | AURA_FIRE | AURA_COLD | AURA_ELEC
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY
@@ -15617,7 +15617,7 @@ B:CRUSH:ELEC:8d12
 B:CRUSH:POISON:10d14
 F:ATTR_MULTI | ELDRITCH_HORROR | DROP_CORPSE
 F:UNIQUE | CAN_SPEAK | AURA_FIRE | AURA_ELEC | AURA_COLD
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY
 F:EVIL | RIDING |
@@ -15648,7 +15648,7 @@ B:CLAW:HURT:8d12
 B:CRUSH:ACID:5d12
 F:ELDRITCH_HORROR | CAN_SWIM | EVIL |
 F:UNIQUE | CAN_SPEAK | AURA_FIRE | AURA_ELEC |
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | RES_WATE
@@ -15684,7 +15684,7 @@ B:HIT:UN_BONUS:6d8
 B:HIT:UN_BONUS:6d8
 B:HIT:LOSE_STR:4d6
 B:HIT:LOSE_STR:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | CAN_SWIM |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | CAN_SWIM |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | POWERFUL |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | RES_NETH | RES_TELE |
@@ -15712,7 +15712,7 @@ B:INSULT:EAT_ITEM:1d3
 B:INSULT:EAT_GOLD:1d3
 F:UNIQUE | MALE | CAN_SPEAK | AMBERITE | RES_TELE | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_POIS | IM_ACID | IM_COLD | SMART | REGENERATE
 S:1_IN_4 |
@@ -15742,7 +15742,7 @@ E:Master quylthulg
 G:Q:b
 I:120:20d100:20:1:0
 W:71:3:0:12000:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:INVISIBLE | EMPTY_MIND | STUPID |
 F:ANIMAL | EVIL | RES_TELE
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -15757,7 +15757,7 @@ E:Greater draconic quylthulg
 G:Q:g
 I:120:15d100:20:1:0
 W:71:3:0:10500:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:INVISIBLE | EMPTY_MIND | STUPID |
 F:ANIMAL | EVIL | RES_TELE | SELF_LITE_1 |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -15775,7 +15775,7 @@ E:Greater rotting quylthulg
 G:Q:u
 I:120:15d100:20:1:0
 W:71:3:0:10500:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:INVISIBLE | EMPTY_MIND | STUPID |
 F:ANIMAL | EVIL | RES_TELE |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -15818,7 +15818,7 @@ B:TOUCH:UN_POWER
 B:TOUCH:LOSE_DEX:2d12
 B:TOUCH:LOSE_DEX:2d12
 F:UNIQUE | MALE | DROP_SKELETON | CAN_SPEAK | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | POWERFUL |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
@@ -15845,7 +15845,7 @@ B:GAZE:UN_POWER:2d6
 B:GAZE:LOSE_INT:2d6
 B:GAZE:DR_MANA:7d10
 F:UNIQUE | MALE | CAN_SPEAK | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:SMART | BASH_DOOR | 
 F:EVIL | IM_POIS | 
 F:NO_CONF | NO_SLEEP
@@ -15875,7 +15875,7 @@ B:CRUSH:ACID:5d6
 B:CRUSH:LOSE_ALL:5d6
 B:CRUSH:ACID:5d6
 F:UNIQUE | CAN_SPEAK | RES_TELE | ELDRITCH_HORROR |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_1D2 | DROP_2D2 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_1D2 | DROP_2D2 | 
 F:ONLY_ITEM | DROP_GOOD | MOVE_BODY |
 F:SMART | BASH_DOOR | 
 F:EVIL | IM_POIS | IM_ACID | IM_COLD |
@@ -15914,7 +15914,7 @@ B:HIT:SHATTER:15d15
 B:HIT:SHATTER:15d15
 F:UNIQUE | MALE | CAN_SPEAK | AMBERITE | RES_TELE | HAS_LITE_2 |
 F:DROP_SKELETON | DROP_CORPSE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | KILL_WALL |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | KILL_WALL |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_POIS | IM_ACID | IM_FIRE | REGENERATE
 F:OPEN_DOOR | BASH_DOOR |
@@ -15952,7 +15952,7 @@ B:BITE:POISON:3d9
 B:STING:POISON:2d5
 B:STING:POISON:2d5
 F:UNIQUE | FEMALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | SELF_DARK_1 | SELF_DARK_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | SELF_DARK_1 | SELF_DARK_2 |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:SMART | BASH_DOOR | 
 F:ANIMAL | EVIL | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -15986,7 +15986,7 @@ B:BITE:LOSE_STR:3d9
 B:STING:POISON:2d5
 B:STING:LOSE_STR:2d5
 F:UNIQUE | CAN_SPEAK | ELDRITCH_HORROR | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:SMART | BASH_DOOR | MOVE_BODY | NONLIVING |
 F:ANIMAL | EVIL | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
@@ -16025,7 +16025,7 @@ B:BITE:HURT:40d1
 B:TOUCH:LOSE_WIS:1d20
 B:BITE:HURT:40d1
 F:UNIQUE | CAN_SPEAK | ELDRITCH_HORROR | RES_TELE |
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD |
 F:SMART | BASH_DOOR | MOVE_BODY | NONLIVING |
 F:EVIL | IM_POIS | NO_CONF | NO_SLEEP
@@ -16055,7 +16055,7 @@ B:BITE:HURT:2d12
 B:BITE:HURT:2d12
 B:CLAW:HURT:3d3
 F:ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY |
 F:FRIENDS |
 F:BASH_DOOR | AURA_FIRE | AURA_ELEC | AURA_COLD | SELF_LITE_2 |
 F:ANIMAL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -16083,7 +16083,7 @@ I:120:30d100:30:100:20
 W:76:1:0:15000:0:0
 B:HIT:UN_BONUS:14d11
 B:HIT:UN_POWER:14d11
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | INVISIBLE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | INVISIBLE |
 F:DROP_GOOD | DROP_60 | DROP_1D2 | SMART | PASS_WALL |
 F:RES_NEXU | RES_NETH | NONLIVING | CAN_FLY |
 F:EVIL | IM_POIS | IM_ELEC | IM_COLD | IM_FIRE | DEMON
@@ -16111,7 +16111,7 @@ B:HIT:HURT:10d15
 B:HIT:EAT_ITEM:10d15
 F:UNIQUE | MALE | CAN_SPEAK | SMART | AMBERITE | RES_TELE | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_POIS | IM_ACID | IM_ELEC | REGENERATE |
 S:1_IN_4 |
@@ -16157,7 +16157,7 @@ B:BITE:HURT:100d1
 F:UNIQUE | MALE | CAN_SPEAK | SMART | RES_TELE | ANIMAL |
 F:ESCORT | ESCORTS | CAN_SWIM | ELDRITCH_HORROR |
 F:OPEN_DOOR | BASH_DOOR |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_POIS | IM_ACID | IM_ELEC | REGENERATE |
 S:1_IN_4 |
@@ -16182,7 +16182,7 @@ B:TOUCH:UN_BONUS:10d10
 B:TOUCH:UN_POWER:10d10
 B:TOUCH:DR_MANA:10d10
 F:KILL_WALL | KILL_ITEM | KILL_BODY | NO_FEAR |
-F:FORCE_SLEEP | FORCE_MAXHP | MULTIPLY | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | MULTIPLY | CAN_FLY |
 F:ATTR_MULTI | SHAPECHANGER | ATTR_ANY |
 F:DROP_60 | DROP_GOOD | POWERFUL | AURA_ELEC | AURA_FIRE | AURA_COLD |
 F:BASH_DOOR | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS | IM_ACID |
@@ -16215,7 +16215,7 @@ B:HIT:HURT:1d50
 B:HIT:HURT:1d50
 F:RAND_25 | EVIL | DEMON |
 F:DROP_2D2 | DROP_GOOD | ONLY_ITEM | RES_TELE |
-F:IM_POIS | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP | NONLIVING
+F:IM_POIS | IM_FIRE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NONLIVING
 S:1_IN_4 |
 S:ROCKET
 V:166
@@ -16238,7 +16238,7 @@ B:TOUCH:EXP_VAMP:50d1
 B:TOUCH:UN_BONUS:50d1
 B:TOUCH:DR_MANA:50d1
 F:UNIQUE | FEMALE | CAN_SPEAK | POWERFUL | RES_TELE |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | CAN_FLY |
 F:EVIL | RES_NETH | IM_COLD | IM_POIS |
@@ -16268,7 +16268,7 @@ B:HIT:UN_BONUS:6d8
 B:TOUCH:UN_POWER
 B:TOUCH:UN_POWER
 F:UNIQUE | MALE | DROP_CORPSE | DROP_SKELETON | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | HAS_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | HAS_LITE_2 |
 F:ONLY_ITEM | DROP_1D2 | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_COLD | 
@@ -16295,7 +16295,7 @@ B:HIT:UN_POWER:6d8
 B:TOUCH:BLIND
 B:TOUCH:CONFUSE
 F:UNIQUE | MALE | CAN_SPEAK | POWERFUL | RES_TELE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_SKELETON 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_SKELETON 
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | IM_FIRE | IM_COLD | 
@@ -16330,7 +16330,7 @@ B:HIT:HURT:10d15
 B:HIT:LOSE_CON:10d15
 F:UNIQUE | MALE | CAN_SPEAK | SMART | AMBERITE | RES_TELE | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:POWERFUL |
 F:EVIL |IM_COLD | IM_POIS | IM_ACID | IM_ELEC | REGENERATE
@@ -16365,7 +16365,7 @@ G:Q:y
 I:130:50d100:30:1:0
 W:78:3:0:20000:0:0
 F:UNIQUE | DROP_CORPSE | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:ONLY_ITEM | DROP_4D2 | 
 F:INVISIBLE | STUPID |
 F:ANIMAL | EVIL | 
@@ -16387,7 +16387,7 @@ G:Q:B
 I:130:65d100:30:1:0
 W:92:3:0:25000:0:0
 F:UNIQUE | CAN_SPEAK | DROP_CORPSE | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | 
 F:ONLY_ITEM | DROP_4D2 | STUPID |
 F:INVISIBLE | ATTR_MULTI |
 F:ANIMAL | EVIL | 
@@ -16419,7 +16419,7 @@ B:TOUCH:FIRE:12d10
 B:TOUCH:FIRE:12d10
 B:TOUCH:FIRE:12d10
 F:UNIQUE | RES_TELE | AURA_ELEC | AURA_FIRE | IM_FIRE | CAN_FLY | RES_PLAS |
-F:FORCE_SLEEP | FORCE_MAXHP | NONLIVING | SELF_LITE_2 | IM_ELEC |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NONLIVING | SELF_LITE_2 | IM_ELEC |
 F:ONLY_ITEM | DROP_4D2 | SMART | ELDRITCH_HORROR |
 F:EVIL | KILL_ITEM | KILL_BODY |
 F:NO_CONF | NO_SLEEP | NO_FEAR
@@ -16457,7 +16457,7 @@ B:HIT:HURT:15d15
 B:HIT:HURT:15d15
 F:UNIQUE | MALE | CAN_SPEAK | SMART | AMBERITE | RES_TELE | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP | HUMAN |
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE
 S:1_IN_4 |
@@ -16492,7 +16492,7 @@ B:HIT:HURT:10d10
 B:HIT:EXP_80:5d10
 B:TOUCH:DR_MANA:6d10
 F:UNIQUE | MALE | CAN_SPEAK | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | 
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | 
@@ -16524,7 +16524,7 @@ B:CRUSH:HURT:15d15
 B:CRUSH:HURT:15d15
 B:CRUSH:HURT:15d15
 F:UNIQUE | CAN_SPEAK | RES_TELE | ELDRITCH_HORROR | CAN_FLY |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | SELF_DARK_1 | SELF_DARK_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | SELF_DARK_1 | SELF_DARK_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | DEMON | IM_ACID | IM_ELEC | RES_DARK |
@@ -16562,7 +16562,7 @@ B:HIT:ELEC:12d12
 B:HIT:ELEC:12d12
 B:HIT:ELEC:12d12
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | DEMON | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | 
@@ -16588,7 +16588,7 @@ B:CLAW:COLD:12d12
 B:CRUSH:HURT:12d12
 B:CRUSH:HURT:12d12
 F:UNIQUE | CAN_SPEAK | ESCORT | ELDRITCH_HORROR | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | AURA_COLD |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | AURA_COLD |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | AURA_ELEC |
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | NONLIVING |
 F:EVIL | DEMON | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | 
@@ -16622,7 +16622,7 @@ W:83:4:0:600:0:0
 B:BITE:FIRE:3d12
 B:BITE:FIRE:3d12
 B:BITE:FIRE:3d12
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE 
 F:RAND_25 | FRIENDS | AURA_FIRE |
 F:BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | EVIL | IM_FIRE
@@ -16643,7 +16643,7 @@ B:GAZE:EXP_80
 B:TOUCH:POISON:3d5
 B:TOUCH:POISON:3d5
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT |
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
 F:EVIL | UNDEAD | IM_FIRE | IM_COLD | IM_POIS | RES_NETH |
@@ -16672,7 +16672,7 @@ B:GAZE:TERRIFY:1d15
 B:TOUCH:FIRE:4d5
 B:TOUCH:UN_POWER:4d5
 F:MALE | UNIQUE | CAN_SPEAK | CAN_FLY |
-F:FORCE_SLEEP | FORCE_MAXHP | OPEN_DOOR | BASH_DOOR | MOVE_BODY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | OPEN_DOOR | BASH_DOOR | MOVE_BODY |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT |
 F:IM_FIRE | RES_PLAS | RES_NETH | AURA_FIRE |
 F:NO_CONF | NO_SLEEP | NONLIVING | EVIL | DEMON |
@@ -16696,7 +16696,7 @@ B:CLAW:POISON:5d10
 B:BITE:HURT:20d10
 B:CRUSH:UN_BONUS:5d12
 F:UNIQUE | CAN_SWIM | DROP_CORPSE | RIDING |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_PLAS | RES_DISE | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_PLAS | RES_DISE | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | IM_FIRE | IM_COLD | NO_CONF | NO_SLEEP | IM_POIS
@@ -16721,7 +16721,7 @@ B:TOUCH:DISEASE:11d11
 B:TOUCH:ACID:11d11
 B:TOUCH:POISON:11d11
 F:ONLY_ITEM | DROP_1D2 | CAN_SWIM | DROP_GREAT
-F:CAN_SPEAK | EVIL | UNIQUE | NEVER_MOVE | FORCE_MAXHP | FORCE_SLEEP
+F:CAN_SPEAK | EVIL | UNIQUE | NEVER_MOVE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC
 F:IM_ACID | IM_POIS | IM_COLD | IM_ELEC | RES_NETH | RES_WATE | RES_NEXU
 F:NO_FEAR | NO_CONF | NO_SLEEP | DEMON | SMART | ELDRITCH_HORROR | RES_CHAO
 F:COLD_BLOOD | RES_DISE | NO_STUN
@@ -16755,7 +16755,7 @@ B:HIT:SUPERHURT:5d10
 B:HIT:COLD:5d10
 B:HIT:SUPERHURT:5d10
 F:UNIQUE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | RES_NETH | RES_WATE | MALE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | RES_NETH | RES_WATE | MALE |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | EVIL | ESCORT | GIANT |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | TAKE_ITEM | RES_DISE |
 F:IM_COLD | NO_CONF | NO_SLEEP | IM_POIS | HURT_FIRE |
@@ -16781,7 +16781,7 @@ B:HIT:UN_BONUS:6d11
 B:HIT:UN_POWER:6d11
 B:TOUCH:DR_MANA:6d11
 F:UNIQUE | DROP_CORPSE | MALE |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | RES_NETH | RES_PLAS |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | RES_NETH | RES_PLAS |
 F:ONLY_ITEM | DROP_4D2 | DROP_GREAT | EVIL | AURA_FIRE |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | TAKE_ITEM | CAN_SPEAK |
 F:IM_FIRE | NO_CONF | NO_SLEEP | IM_POIS | HURT_COLD | GIANT |
@@ -16812,7 +16812,7 @@ B:CLAW:ACID:1d30
 B:TOUCH:UN_POWER:1d10
 B:CRUSH:UN_BONUS:2d33
 F:RAND_25 | KILL_ITEM | OPEN_DOOR | BASH_DOOR | RES_NETH | ELDRITCH_HORROR |
-F:DROP_1D2 | DROP_2D2 | DROP_90 | ONLY_ITEM | FORCE_SLEEP | FORCE_MAXHP |
+F:DROP_1D2 | DROP_2D2 | DROP_90 | ONLY_ITEM | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:EVIL | DEMON | IM_POIS | IM_COLD | IM_ACID | IM_ELEC | RES_TELE | NONLIVING |
 F:POWERFUL | IM_FIRE | CAN_SWIM | NO_CONF | DROP_GOOD
 S:1_IN_3
@@ -16854,7 +16854,7 @@ B:HIT:SUPERHURT:6d11
 B:HIT:FIRE:6d11
 B:HIT:SUPERHURT:6d11
 F:UNIQUE | SELF_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | RES_NETH | RES_PLAS | MALE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | RES_NETH | RES_PLAS | MALE |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | EVIL | AURA_FIRE | DEMON |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | TAKE_ITEM | CAN_SPEAK |
 F:IM_FIRE | NO_CONF | NO_SLEEP | IM_POIS | HURT_COLD | GIANT |
@@ -16883,7 +16883,7 @@ B:TOUCH:UN_POWER
 B:TOUCH:UN_POWER
 F:UNIQUE | RIDING |
 F:ATTR_MULTI | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE 
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | IM_FIRE | IM_COLD | NO_CONF | NO_SLEEP
@@ -16907,7 +16907,7 @@ B:HIT:FIRE:8d12
 B:CRUSH:SUPERHURT:8d12
 B:TOUCH:UN_POWER
 F:UNIQUE | MALE | SELF_LITE_1 | SELF_LITE_2 | AURA_FIRE |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
@@ -16936,7 +16936,7 @@ B:CLAW:HURT:9d9
 B:BITE:POISON:12d6
 B:BITE:POISON:12d6
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | ESCORTS | DROP_CORPSE 
 F:RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | 
@@ -16961,7 +16961,7 @@ B:CRUSH:HURT:12d12
 B:GAZE:LOSE_INT:2d12
 B:GAZE:LOSE_WIS:2d12
 F:ONLY_ITEM | DROP_1D2 | CAN_SWIM | DROP_GREAT
-F:CAN_SPEAK | EVIL | UNIQUE | NEVER_MOVE | FORCE_MAXHP | FORCE_SLEEP
+F:CAN_SPEAK | EVIL | UNIQUE | NEVER_MOVE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC
 F:IM_ACID | IM_POIS | IM_COLD | IM_ELEC | RES_NETH | RES_WATE | RES_NEXU
 F:NO_FEAR | NO_CONF | NO_SLEEP | DEMON | SMART | ELDRITCH_HORROR | RES_CHAO
 F:COLD_BLOOD | RES_DISE | NO_STUN | POWERFUL
@@ -16987,7 +16987,7 @@ B:HIT:HURT:2d50
 B:HIT:HURT:2d50
 F:RAND_25 | EVIL | DEMON | AURA_FIRE | AURA_COLD | ELDRITCH_HORROR |
 F:DROP_2D2 | DROP_4D2 | DROP_GOOD | ONLY_ITEM | RES_TELE | 
-F:IM_POIS | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP | NONLIVING |
+F:IM_POIS | IM_FIRE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NONLIVING |
 F:IM_COLD | IM_ACID | IM_ELEC | RES_NEXU | RES_NETH | RES_PLAS |
 F:REGENERATE | UNIQUE | SELF_LITE_2 |
 S:1_IN_3 |
@@ -17020,7 +17020,7 @@ B:HIT:HURT:2d50
 B:HIT:HURT:2d50
 F:RAND_25 | EVIL | DEMON |
 F:DROP_2D2 | ONLY_ITEM | RES_TELE | DROP_GREAT | UNIQUE |
-F:IM_POIS | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP | NONLIVING
+F:IM_POIS | IM_FIRE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NONLIVING
 S:1_IN_3 |
 S:ROCKET | S_CYBER
 V:166
@@ -17038,7 +17038,7 @@ B:HIT:UN_BONUS:6d8
 B:HIT:HURT:5d10
 B:HIT:DR_MANA:10d10
 F:UNIQUE | MALE | DROP_SKELETON | CAN_SPEAK | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | 
@@ -17068,7 +17068,7 @@ B:TOUCH:HURT:40d5
 B:TOUCH:LOSE_CON:16d2
 B:TOUCH:LOSE_CON:16d2
 F:UNIQUE | CAN_SPEAK | SMART | ELDRITCH_HORROR | RES_TIME | RES_TELE |
-F:PASS_WALL | FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | AURA_FIRE |
+F:PASS_WALL | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | AURA_FIRE |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | ATTR_MULTI | ATTR_ANY | AURA_COLD |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | NONLIVING | CAN_FLY | POWERFUL |
 F:EVIL | IM_ACID | IM_COLD | IM_ELEC | IM_POIS | IM_FIRE | NO_CONF | NO_SLEEP
@@ -17110,7 +17110,7 @@ B:CLAW:HURT:8d3
 B:CLAW:HURT:8d3
 B:BITE:HURT:20d6
 F:UNIQUE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | 
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | KILL_BODY | 
@@ -17134,7 +17134,7 @@ B:CRUSH:POISON:8d12
 B:CRUSH:FIRE:8d12
 B:CRUSH:ELEC:8d12
 B:CRUSH:HURT:10d18
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING |
 F:AURA_FIRE | AURA_ELEC | AURA_COLD |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | CAN_FLY |
@@ -17170,7 +17170,7 @@ B:CRUSH:LOSE_INT:20d5
 B:BITE:LOSE_STR:10d2
 B:BITE:LOSE_CON:10d2
 F:UNIQUE | CAN_SPEAK | FEMALE | ELDRITCH_HORROR | AURA_ELEC | RES_TELE
-F:ATTR_MULTI | FORCE_SLEEP | FORCE_MAXHP | PASS_WALL | ATTR_ANY | 
+F:ATTR_MULTI | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | PASS_WALL | ATTR_ANY | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | DROP_90 | NONLIVING | CAN_FLY |
 F:SMART | OPEN_DOOR | BASH_DOOR | REGENERATE | DEMON | AURA_COLD 
 F:EVIL | IM_ACID | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP | RES_CHAO
@@ -17202,7 +17202,7 @@ W:92:3:0:48000:0:0
 B:HIT:HURT:2d66
 B:HIT:HURT:2d66
 F:UNIQUE | CAN_SPEAK | MALE |
-F:FORCE_SLEEP | FORCE_MAXHP | PASS_WALL |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | PASS_WALL |
 F:ONLY_ITEM | DROP_4D2 | DROP_90 | DROP_GREAT |
 F:SMART | OPEN_DOOR | BASH_DOOR | REGENERATE | CAN_FLY |
 F:GOOD | IM_ACID | IM_COLD | IM_POIS | IM_FIRE | IM_ELEC | NO_CONF | 
@@ -17230,7 +17230,7 @@ B:CLAW:HURT:10d10
 B:BITE:POISON:18d5
 B:BITE:POISON:18d5
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | 
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | AURA_FIRE |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | EVIL | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
@@ -17262,7 +17262,7 @@ B:CRUSH:LOSE_STR:30d4
 B:GAZE:LOSE_INT:1d50
 B:GAZE:LOSE_WIS:1d50
 F:UNIQUE | CAN_SPEAK | ELDRITCH_HORROR | RES_TELE | NONLIVING |
-F:FORCE_SLEEP | FORCE_MAXHP | PASS_WALL | DEMON | RES_NEXU | RES_CHAO |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | PASS_WALL | DEMON | RES_NEXU | RES_CHAO |
 F:SHAPECHANGER | ATTR_MULTI | ATTR_ANY | MALE | AURA_ELEC |
 F:ONLY_ITEM | DROP_4D2 | DROP_GREAT | DROP_90 |
 F:SMART | OPEN_DOOR | BASH_DOOR | REGENERATE | AURA_COLD |
@@ -17304,7 +17304,7 @@ B:CRAWL:ACID:35d5
 B:CRUSH:HURT:35d5
 B:CRAWL:ACID:35d5
 F:UNIQUE | ELDRITCH_HORROR | RES_TELE |
-F:FORCE_SLEEP | FORCE_MAXHP | DEMON | AURA_FIRE | AURA_ELEC |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DEMON | AURA_FIRE | AURA_ELEC |
 F:ATTR_MULTI | ESCORTS | ESCORT | POWERFUL | ATTR_ANY | NONLIVING |
 F:KILL_ITEM | KILL_WALL | CAN_SWIM | AURA_COLD |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | DROP_90 | RES_CHAO | RES_DISE |
@@ -17339,7 +17339,7 @@ B:HIT:FIRE:9d12
 B:HIT:FIRE:9d12
 B:HIT:FIRE:9d12
 F:UNIQUE |
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_FIRE | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_FIRE | DROP_CORPSE
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:ANIMAL | EVIL | IM_FIRE | NO_CONF | NO_SLEEP
@@ -17365,7 +17365,7 @@ W:75:1:0:30000:0:0
 B:CRUSH:SUPERHURT:20d10
 B:CRUSH:SUPERHURT:20d10
 B:BITE:HURT:5d50
-F:UNIQUE | FORCE_MAXHP | FORCE_SLEEP | AQUATIC | WILD_OCEAN |
+F:UNIQUE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | AQUATIC | WILD_OCEAN |
 F:MOVE_BODY | KILL_WALL | IM_FIRE | IM_POIS | IM_ACID | IM_COLD | EVIL |
 F:RES_WATE | RES_PLAS | RES_NEXU | NO_STUN | REGENERATE | DROP_CORPSE
 F:NO_CONF | NO_SLEEP | RIDING | POWERFUL
@@ -17388,7 +17388,7 @@ B:HIT:HURT:30d9
 B:HIT:HURT:30d9
 B:HIT:HURT:30d9
 B:HIT:HURT:30d9
-F:UNIQUE | NONLIVING | NO_FEAR | FORCE_MAXHP | FORCE_SLEEP | REFLECTING |
+F:UNIQUE | NONLIVING | NO_FEAR | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | REFLECTING |
 F:MOVE_BODY | KILL_WALL | IM_FIRE | IM_ELEC | IM_POIS | IM_ACID | IM_COLD |
 F:RES_NETH | RES_WATE | RES_PLAS | RES_NEXU |
 F:RES_DISE | RES_WALL | RES_INER | RES_GRAV | NO_STUN | REGENERATE |
@@ -17418,7 +17418,7 @@ B:HIT:FIRE:9d12
 B:HIT:FIRE:9d12
 B:CRUSH:SUPERHURT:8d12
 B:TOUCH:UN_POWER
-F:UNIQUE | MALE | CAN_SPEAK | CAN_FLY | FORCE_SLEEP | FORCE_MAXHP
+F:UNIQUE | MALE | CAN_SPEAK | CAN_FLY | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:ESCORT | ESCORTS | KILL_WALL | AURA_FIRE | NONLIVING
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY
@@ -17450,7 +17450,7 @@ B:CLAW:UN_POWER:15d2
 B:CLAW:UN_BONUS:15d2
 B:TOUCH:DISEASE:100d1
 F:UNIQUE | CAN_SPEAK | DEMON | ELDRITCH_HORROR | NONLIVING |
-F:FORCE_SLEEP | FORCE_MAXHP | ESCORT | ESCORTS | SMART | RES_PLAS | RES_NEXU |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ESCORT | ESCORTS | SMART | RES_PLAS | RES_NEXU |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | REGENERATE | RES_NETH |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_1D2 | DROP_GREAT
 F:RES_DISE | RES_CHAO | RES_DARK | RES_TELE | CAN_SWIM |
@@ -17492,7 +17492,7 @@ B:HIT:UN_BONUS:10d12
 B:TOUCH:UN_POWER
 B:TOUCH:UN_POWER
 F:UNIQUE | MALE | CAN_SPEAK | REFLECTING | HAS_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT |
 F:SMART | OPEN_DOOR | BASH_DOOR | MOVE_BODY | REGENERATE | 
 F:EVIL | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_DARK |
@@ -17524,7 +17524,7 @@ B:KICK:DR_MANA:10d10
 B:KICK:UN_POWER:13d13
 B:BUTT:UN_BONUS:12d12
 B:BITE:TIME:11d11
-F:UNIQUE | FORCE_SLEEP | FORCE_MAXHP | FEMALE
+F:UNIQUE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FEMALE
 F:REFLECTING | AURA_COLD | AURA_ELEC |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | 
 F:DROP_GREAT | RES_LITE | RES_NETH | RES_WATE | RES_PLAS |
@@ -17573,7 +17573,7 @@ B:HIT:BLIND:10d3
 B:TOUCH:DR_MANA:10d8
 F:UNIQUE | QUESTOR | MALE | CAN_SPEAK | DROP_CORPSE | HAS_LITE_2 |
 F:ATTR_MULTI | AMBERITE | RES_TELE
-F:FORCE_SLEEP | FORCE_MAXHP | FORCE_DEPTH | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FORCE_DEPTH | HUMAN |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT |
 F:REFLECTING | AURA_FIRE | AURA_ELEC
 F:SMART | OPEN_DOOR | BASH_DOOR | MOVE_BODY | REGENERATE | 
@@ -17627,7 +17627,7 @@ B:HIT:SHATTER:20d10
 B:HIT:LOSE_ALL:10d12
 B:TOUCH:UN_POWER
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | FORCE_DEPTH | SELF_DARK_1 | SELF_DARK_2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FORCE_DEPTH | SELF_DARK_1 | SELF_DARK_2
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_4D2 
 F:DROP_GREAT | SMART | KILL_WALL | MOVE_BODY | AURA_COLD
 F:REGENERATE | POWERFUL | NO_CONF | NO_SLEEP | NO_FEAR
@@ -17675,7 +17675,7 @@ B:CRUSH:SHATTER:22d10
 B:BITE:LOSE_ALL:10d12
 B:TOUCH:UN_POWER
 F:UNIQUE | QUESTOR | CAN_SPEAK | ATTR_MULTI | ATTR_ANY |
-F:FORCE_SLEEP | FORCE_MAXHP | FORCE_DEPTH | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FORCE_DEPTH | SELF_LITE_1 |
 F:REFLECTING | AURA_FIRE | AURA_ELEC | AURA_COLD |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_4D2 | 
 F:DROP_GREAT | RES_CHAO | RES_NETH |
@@ -17732,7 +17732,7 @@ B:TOUCH:BLIND:5d5
 B:TOUCH:UN_BONUS:10d10
 B:TOUCH:LOSE_ALL:10d10
 B:TOUCH:EXP_80:10d10
-F:UNIQUE | FORCE_SLEEP | NEVER_MOVE | ONLY_ITEM | DROP_90 | FORCE_MAXHP |
+F:UNIQUE | PREVENT_SUDDEN_MAGIC | NEVER_MOVE | ONLY_ITEM | DROP_90 | FORCE_MAXHP |
 F:DROP_GREAT | REFLECTING | INVISIBLE | COLD_BLOOD | 
 F:SMART | EMPTY_MIND | REGENERATE | POWERFUL | AURA_FIRE |
 F:EVIL | DEMON | NONLIVING | IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS |
@@ -17824,7 +17824,7 @@ I:125:30d20:10:45:80
 W:30:100:0:900:0:0
 B:TOUCH:TERRIFY:5d5
 B:BITE:HURT:8d4
-F:CHAR_CLEAR | CHAR_MULTI | ATTR_CLEAR | FORCE_SLEEP |
+F:CHAR_CLEAR | CHAR_MULTI | ATTR_CLEAR | PREVENT_SUDDEN_MAGIC |
 F:SMART | INVISIBLE | COLD_BLOOD | EMPTY_MIND |
 F:ELDRITCH_HORROR | OPEN_DOOR | ANIMAL | NO_FEAR |
 F:NO_STUN | NO_CONF | NO_SLEEP | CAN_SWIM |
@@ -17886,7 +17886,7 @@ B:HIT:UN_BONUS:1d10
 B:HIT:UN_BONUS:1d10
 B:TOUCH:UN_POWER
 B:TOUCH:UN_POWER
-F:FORCE_SLEEP
+F:PREVENT_SUDDEN_MAGIC
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | 
 F:DROP_GREAT | CAN_SWIM |
 F:SMART | NONLIVING | COLD_BLOOD |
@@ -17908,7 +17908,7 @@ B:CLAW:POISON:5d10
 B:CRUSH:UN_BONUS:5d12
 F:UNIQUE |
 F:ATTR_MULTI | 
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | ANIMAL |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | ANIMAL |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | RES_CHAO | RES_DARK |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | CAN_SWIM | RES_WATE |
 F:EVIL | IM_FIRE | IM_COLD | IM_POIS | IM_ELEC | NO_CONF | NO_SLEEP
@@ -17931,7 +17931,7 @@ B:HIT:UN_POWER:7d8
 B:KICK:HURT:7d10
 B:HIT:UN_POWER:7d8
 F:UNIQUE | MALE | HAS_LITE_2 | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | CAN_SPEAK |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | CAN_SPEAK |
 F:ONLY_ITEM | DROP_1D2 | DROP_3D2 | DROP_GREAT |
 F:OPEN_DOOR | POWERFUL | MOVE_BODY | CAN_SWIM |
 F:GOOD | IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS | 
@@ -17961,7 +17961,7 @@ B:CLAW:HURT:9d9
 B:CLAW:HURT:9d9
 B:CLAW:HURT:9d9
 B:BITE:UN_BONUS:6d6
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_DARK_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_DARK_2 |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | RES_TELE
 F:INVISIBLE | TAKE_ITEM | CAN_FLY
 F:PASS_WALL | POWERFUL | MOVE_BODY | RES_DARK | RES_NETH
@@ -17982,7 +17982,7 @@ B:HIT:ELEC:3d10
 B:BITE:HURT:1d22
 B:HIT:COLD:3d10
 B:BITE:HURT:1d22
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE | REGENERATE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE | REGENERATE |
 F:DROP_3D2 | SMART | TAKE_ITEM | SELF_LITE_1 |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | POWERFUL |
 F:IM_ACID | IM_COLD | IM_ELEC | TROLL | EVIL
@@ -18033,7 +18033,7 @@ B:CLAW:EXP_VAMP:10d10
 B:SPIT:BLIND:10d10
 B:HIT:LOSE_CON:10d10
 F:UNIQUE | MALE |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY | AURA_COLD |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | CAN_SPEAK | CAN_FLY | AURA_COLD |
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK | HURT_LITE |
@@ -18073,7 +18073,7 @@ B:HIT:TIME:5d8
 B:HIT:TIME:5d8
 B:HIT:TIME:5d8
 B:KICK:UN_BONUS:8d10
-F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP |
+F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_4D2 | DROP_GOOD | HUMAN |
 F:REFLECTING | SMART | REGENERATE | PASS_WALL | CAN_FLY |
 F:EVIL | IM_ACID | IM_COLD | IM_POIS | IM_FIRE | IM_ELEC | NO_CONF | 
@@ -18100,7 +18100,7 @@ B:HIT:HURT:14d14
 B:HIT:HURT:14d14
 B:HIT:HURT:14d14
 B:HIT:HURT:14d14
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | FRIENDLY |
+F:UNIQUE | MALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FRIENDLY |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_GOOD | HUMAN |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR |
 F:GOOD | IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -18124,7 +18124,7 @@ B:HIT:BLIND:8d8
 B:HIT:CONFUSE:8d8
 B:TOUCH:UN_POWER
 B:TOUCH:UN_POWER
-F:UNIQUE | FEMALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK |
+F:UNIQUE | FEMALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_GOOD | HUMAN |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR |
 F:EVIL | IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -18151,7 +18151,7 @@ B:CRUSH:SHATTER:22d15
 B:BITE:LOSE_ALL:15d12
 B:TOUCH:UN_POWER
 F:CAN_SPEAK | UNDEAD | UNIQUE2 |
-F:FORCE_SLEEP | FORCE_MAXHP | FORCE_DEPTH |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | FORCE_DEPTH |
 F:REFLECTING | AURA_FIRE | AURA_ELEC | AURA_COLD |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_4D2 | 
 F:DROP_GREAT | RES_CHAO | RES_NETH |
@@ -18206,7 +18206,7 @@ B:TOUCH:DR_MANA:3d10
 B:TOUCH:LOSE_DEX:8d8
 B:TOUCH:LOSE_INT:8d8
 F:MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:ONLY_ITEM | DROP_90 | DROP_4D2 | 
 F:SMART | INVISIBLE | COLD_BLOOD | UNDEAD |
 F:EVIL | HURT_LITE | RES_NETH | RES_DARK | NO_CONF | NO_SLEEP |
@@ -18227,7 +18227,7 @@ B:BITE:HURT:25d1
 B:BITE:HURT:25d1
 B:BITE:HURT:25d1
 B:CLAW:HURT:3d3
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:FRIENDS | SELF_LITE_1 |
 F:OPEN_DOOR | BASH_DOOR |
 F:ANIMAL | NO_CONF | NO_SLEEP
@@ -18279,7 +18279,7 @@ B:CLAW:HURT:4d10
 B:CLAW:POISON:6d11
 B:BITE:HURT:4d10
 B:BITE:POISON:6d11
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GOOD |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | CAN_FLY |
 F:EVIL | DRAGON | IM_POIS | NO_CONF | NO_SLEEP | RIDING |
@@ -18300,7 +18300,7 @@ B:HIT:HURT:8d6
 B:HIT:UN_BONUS:6d8
 B:HIT:UN_BONUS:6d8
 F:UNIQUE | DROP_CORPSE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | UNDEAD 
 F:SMART | OPEN_DOOR | BASH_DOOR | HAS_LITE_2 |
 F:IM_ACID | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP |
@@ -18388,7 +18388,7 @@ B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
-F:MALE | FORCE_SLEEP | FORCE_MAXHP | DROP_1D2 | SMART
+F:MALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_1D2 | SMART
 F:DROP_CORPSE | DROP_SKELETON | CAN_SWIM
 S:1_IN_5 |
 S:ROCKET
@@ -18404,7 +18404,7 @@ W:35:4:0:630:0:0
 B:ENGULF:HURT:6d6
 B:ENGULF:HURT:6d6
 B:ENGULF:HURT:6d6
-F:FORCE_SLEEP | RAND_50 | EMPTY_MIND | BASH_DOOR | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | RAND_50 | EMPTY_MIND | BASH_DOOR | CAN_FLY |
 F:RES_SHAR | NO_FEAR | NO_CONF | NO_SLEEP | NO_STUN | POWERFUL | NONLIVING
 S:1_IN_4 | 
 S:BR_SHAR
@@ -18686,7 +18686,7 @@ B:KICK:HURT:9d2
 B:KICK:HURT:9d2
 B:KICK:HURT:9d2
 F:MALE | GOOD | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP
@@ -18705,7 +18705,7 @@ B:KICK:HURT:10d2
 B:KICK:HURT:10d2
 B:KICK:HURT:10d2
 F:MALE | GOOD | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP
@@ -18727,7 +18727,7 @@ B:KICK:HURT:15d2
 B:HIT:POISON:20d1
 B:HIT:PARALYZE:15d1
 F:MALE | GOOD | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | 
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -18783,7 +18783,7 @@ B:HIT:LOSE_CON:5d10
 B:CRUSH:HURT:12d12
 B:TOUCH:UN_POWER:3d5
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
@@ -18804,7 +18804,7 @@ G:e:B
 I:80:20d20:25:0:1
 W:30:1:0:200:0:0
 B:EXPLODE:LOSE_INT:10d10
-F:RAND_25 | RAND_50 | STUPID | EMPTY_MIND | REFLECTING | FORCE_SLEEP | CAN_SPEAK
+F:RAND_25 | RAND_50 | STUPID | EMPTY_MIND | REFLECTING | PREVENT_SUDDEN_MAGIC | CAN_SPEAK
 F:BASH_DOOR | EVIL | NONLIVING | IM_ACID | IM_FIRE | IM_COLD | IM_POIS
 F:RES_LITE | RES_DARK | RES_NETH | RES_WATE | RES_PLAS | RES_SHAR | RES_SOUN
 F:RES_CHAO | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV | RES_TELE
@@ -18904,7 +18904,7 @@ W:31:4:0:2500:0:0
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
-F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP
+F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:HAS_LITE_2 | HUMAN | DROP_2D2 | ONLY_ITEM | DROP_GOOD | OPEN_DOOR
 F:GOOD | FRIENDLY | CAN_SWIM | CAN_FLY | NO_CONF | NO_SLEEP | TAKE_ITEM
 S:1_IN_4 | BA_FIRE | HASTE | HOLD | CONF | BLIND | INVULNER
@@ -18923,7 +18923,7 @@ B:CLAW:POISON:2d5
 B:BITE:FIRE:3d4
 B:CRUSH:HURT:8d8
 F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:DROP_1D2 | DROP_2D2 | ONLY_ITEM | DROP_GOOD |
 F:BASH_DOOR | EVIL | CAN_SWIM | CAN_FLY | KILL_ITEM |
 S:1_IN_3 |
@@ -18942,7 +18942,7 @@ B:SHOW:SHATTER:1d200
 B:INSULT:EXP_VAMP:1d200
 B:DROOL:UN_POWER:1d100
 B:WAIL:DR_MANA:1d100
-F:DROP_SKELETON | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | ELDRITCH_HORROR |
+F:DROP_SKELETON | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ELDRITCH_HORROR |
 F:ATTR_MULTI | RAND_25 | RAND_50 | RIDING |
 F:ONLY_ITEM | DROP_60 | DROP_90 | DROP_1D2 | DROP_2D2 | DROP_3D2 | DROP_4D2 |
 F:DROP_GOOD | STUPID | SMART | CAN_SPEAK | REFLECTING | INVISIBLE | COLD_BLOOD |
@@ -18983,7 +18983,7 @@ B:HIT:HURT:14d14
 B:HIT:HURT:14d14
 B:HIT:HURT:14d14
 B:HIT:HURT:14d14
-F:DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP |
+F:DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | MALE | HUMAN |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR |
 F:IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -19005,7 +19005,7 @@ B:HIT:BLIND:8d8
 B:HIT:CONFUSE:8d8
 B:TOUCH:UN_BONUS:6d6
 B:TOUCH:UN_BONUS:6d6
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:UNIQUE | MALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_3D2 | DROP_GOOD | CAN_SWIM |
 F:GOOD | EVIL | REFLECTING | SMART | REGENERATE | OPEN_DOOR | CAN_SPEAK |
 F:IM_COLD | IM_FIRE | IM_ELEC | IM_ACID | IM_POIS | NO_CONF | NO_STUN |
@@ -19028,7 +19028,7 @@ B:HIT:BLIND:10d13
 B:HIT:CONFUSE:10d13
 B:HIT:HURT:13d13
 B:HIT:HURT:13d13
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:UNIQUE | MALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR | CAN_SPEAK |
 F:EVIL | IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -19053,7 +19053,7 @@ B:HIT:BLIND:8d8
 B:HIT:CONFUSE:8d8
 B:TOUCH:DR_MANA:4d10
 B:TOUCH:UN_POWER
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:UNIQUE | MALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | CAN_SPEAK |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR |
 F:EVIL | IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -19076,7 +19076,7 @@ B:HIT:HURT:13d13
 B:HIT:HURT:13d13
 B:HIT:HURT:13d13
 B:HIT:HURT:13d13
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | HUMAN |
+F:UNIQUE | MALE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | CAN_SPEAK |
 F:REFLECTING | SMART | REGENERATE | OPEN_DOOR |
 F:EVIL | IM_COLD | IM_FIRE | IM_ELEC | NO_CONF | NO_STUN |
@@ -19098,7 +19098,7 @@ B:HIT:POISON:10d10
 B:HIT:POISON:10d10
 B:TOUCH:UN_BONUS:6d6
 F:UNIQUE |
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | RES_NETH | RES_PLAS |
 F:EVIL | IM_FIRE | NO_CONF | NO_SLEEP
@@ -19122,7 +19122,7 @@ B:PUNCH:TERRIFY:30d1
 B:KICK:SUPERHURT:15d15
 F:UNIQUE | MALE | CAN_SPEAK | SMART | REFLECTING | HAS_LITE_2 |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP |
 F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
 F:GOOD | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE |
 S:1_IN_3 |
@@ -19142,7 +19142,7 @@ B:PUNCH:HURT:10d10
 B:KICK:SHATTER:16d10
 B:KICK:SHATTER:16d10
 F:UNIQUE | MALE | DROP_CORPSE | 
-F:NONLIVING | NO_FEAR | FORCE_MAXHP | FORCE_SLEEP |
+F:NONLIVING | NO_FEAR | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC |
 F:KILL_BODY | IM_FIRE | IM_POIS |
 F:NO_STUN | REGENERATE | NO_CONF | NO_SLEEP | CAN_SWIM |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR |
@@ -19162,7 +19162,7 @@ B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 F:MALE | HUMAN |
-F:FORCE_SLEEP | DROP_1D2 | 
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:GOOD
 S:1_IN_8 | 
@@ -19181,7 +19181,7 @@ B:HIT:HURT:5d5
 B:TOUCH:EXP_80
 B:WAIL:TERRIFY
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | 
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK |
@@ -19204,7 +19204,7 @@ B:HIT:FIRE:2d6
 B:HIT:HURT:4d6
 B:HIT:FIRE:2d6
 B:HIT:HURT:5d5
-F:FORCE_SLEEP | FORCE_MAXHP | SELF_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SELF_LITE_1 |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DEMON | IM_FIRE | NO_CONF | NO_SLEEP
@@ -19240,7 +19240,7 @@ B:HIT:HURT:8d6
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
 B:HIT:HURT:8d6
-F:FORCE_SLEEP | FORCE_MAXHP | GOOD | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | GOOD | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_LITE |
@@ -19262,7 +19262,7 @@ B:GAZE:UN_BONUS:10d4
 B:GAZE:UN_BONUS:10d4
 B:HIT:HURT:12d8
 B:HIT:HURT:12d8
-F:FORCE_SLEEP | FORCE_MAXHP | GOOD | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | GOOD | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_3D2 | DROP_4D2 | DROP_GOOD | 
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_LITE |
@@ -19300,7 +19300,7 @@ B:HIT:FIRE:9d12
 B:HIT:FIRE:9d12
 B:TOUCH:DISEASE:20d4
 B:CRUSH:HURT:50d4
-F:UNIQUE | FORCE_MAXHP | EVIL | FORCE_SLEEP | CAN_SPEAK | DEMON |
+F:UNIQUE | FORCE_MAXHP | EVIL | PREVENT_SUDDEN_MAGIC | CAN_SPEAK | DEMON |
 F:ONLY_ITEM | DROP_3D2 | DROP_1D2 | DROP_GOOD | KILL_BODY |
 F:IM_FIRE | IM_ELEC | IM_POIS | POWERFUL | ESCORT | SELF_LITE_2 |
 F:NO_SLEEP | NO_CONF | OPEN_DOOR | CAN_FLY | REGENERATE |
@@ -19317,7 +19317,7 @@ B:HIT:COLD:9d12
 B:HIT:COLD:9d12
 B:TOUCH:DISEASE:20d4
 B:CRUSH:HURT:40d4
-F:UNIQUE | FORCE_MAXHP | FORCE_SLEEP | CAN_SPEAK | DEMON |
+F:UNIQUE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_SPEAK | DEMON |
 F:ONLY_ITEM | DROP_3D2 | DROP_1D2 | DROP_GOOD | MOVE_BODY |
 F:IM_COLD | IM_ELEC | IM_POIS | POWERFUL |
 F:NO_SLEEP | NO_CONF | OPEN_DOOR | CAN_FLY | REGENERATE |
@@ -19362,7 +19362,7 @@ B:HIT:SUPERHURT:12d12
 B:HIT:SUPERHURT:12d12
 B:HIT:UN_BONUS:10d4
 B:TOUCH:UN_POWER
-F:UNIQUE | FORCE_MAXHP | EVIL | GOOD | FORCE_SLEEP | CAN_SPEAK | MALE |
+F:UNIQUE | FORCE_MAXHP | EVIL | GOOD | PREVENT_SUDDEN_MAGIC | CAN_SPEAK | MALE |
 F:ONLY_ITEM | DROP_3D2 | DROP_2D2 | DROP_GOOD | HAS_LITE_2 |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS |
 F:RES_WATE | RES_NETH | RES_DISE | HUMAN |
@@ -19382,7 +19382,7 @@ B:SHOOT:HURT:4d6
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
 B:HIT:HURT:2d4
-F:FORCE_SLEEP | DROP_CORPSE | RAND_50 | ANIMAL |
+F:PREVENT_SUDDEN_MAGIC | DROP_CORPSE | RAND_50 | ANIMAL |
 S:1_IN_2 | 
 S:SHOOT
 D:$A large turtle creature walking on two legs, 
@@ -19413,7 +19413,7 @@ G:Z:o
 I:130:30d10:30:50:0
 W:44:4:0:500:0:0
 B:EXPLODE:HURT:30d3
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:FRIENDS |
 F:OPEN_DOOR | BASH_DOOR |
 F:ANIMAL | NO_CONF | NO_SLEEP
@@ -19443,7 +19443,7 @@ W:14:3:0:40:0:0
 B:SHOOT:HURT:3d6
 B:HIT:HURT:1d5
 B:HIT:HURT:1d5
-F:FORCE_SLEEP | DROP_1D2 | SMART | DROP_CORPSE | DROP_SKELETON |
+F:PREVENT_SUDDEN_MAGIC | DROP_1D2 | SMART | DROP_CORPSE | DROP_SKELETON |
 F:ORC | HURT_LITE | EVIL | RES_DARK
 S:1_IN_2 |
 S:SHOOT
@@ -19575,7 +19575,7 @@ B:PUNCH:BLIND:20d1
 B:KICK:HURT:8d8
 F:UNIQUE | MALE | CAN_SPEAK | REFLECTING | HAS_LITE_2 | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_SLEEP | FORCE_MAXHP | MOVE_BODY | TAKE_ITEM |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | MOVE_BODY | TAKE_ITEM |
 F:DROP_1D2 | DROP_90 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
 F:REGENERATE | EAT_GIVE_STR | EAT_GIVE_CON | EAT_LOSE_INT | EAT_LOSE_CHR |
 S:1_IN_6 |
@@ -19607,7 +19607,7 @@ B:CLAW:POISON:3d4
 B:CLAW:POISON:3d4
 B:SPIT:BLIND:2d3
 F:CHAR_MULTI | 
-F:FORCE_SLEEP | NEVER_MOVE | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_MOVE | 
 F:EMPTY_MIND | COLD_BLOOD |
 F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_5 | 
@@ -19627,7 +19627,7 @@ W:31:4:0:2500:0:0
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
-F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP
+F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP
 F:HAS_LITE_2 | HUMAN | DROP_2D2 | ONLY_ITEM | DROP_GOOD | OPEN_DOOR
 F:GOOD | FRIENDLY | CAN_SWIM | CAN_FLY | NO_CONF | NO_SLEEP | TAKE_ITEM
 S:1_IN_4 | BA_ELEC | HASTE | HOLD | CONF | BLIND | INVULNER
@@ -19644,7 +19644,7 @@ B:SHOW:CONFUSE
 B:HIT:HURT:4d5
 B:CRUSH:HURT:20d2
 F:UNIQUE | MALE | DROP_SKELETON | DROP_CORPSE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | HAS_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HAS_LITE_2 |
 F:DROP_2D2 | ONLY_GOLD |
 F:OPEN_DOOR | BASH_DOOR | TAKE_ITEM | MOVE_BODY | RES_SOUN
 S:1_IN_5 |
@@ -19662,7 +19662,7 @@ B:CLAW:COLD:8d12
 B:CLAW:COLD:8d12
 B:CLAW:COLD:8d12
 B:BITE:COLD:10d12
-F:UNIQUE | DROP_CORPSE | FRIENDLY | FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:UNIQUE | DROP_CORPSE | FRIENDLY | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_FLY | POWERFUL |
 F:DRAGON | GOOD | IM_COLD | NO_CONF | NO_SLEEP | AURA_COLD |
@@ -19683,7 +19683,7 @@ B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:BITE:ACID:10d12
-F:UNIQUE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:UNIQUE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_FLY | POWERFUL |
 F:DRAGON | EVIL | IM_POIS | NO_CONF | NO_SLEEP | CAN_SWIM |
@@ -19703,7 +19703,7 @@ B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:BITE:EXP_80:10d12
-F:UNIQUE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:UNIQUE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_FLY | POWERFUL |
 F:DRAGON | EVIL | IM_ACID | RES_DARK | NO_CONF | NO_SLEEP |
@@ -19723,7 +19723,7 @@ B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:CLAW:HURT:8d12
 B:BITE:HURT:10d12
-F:UNIQUE | DROP_CORPSE | FRIENDLY | FORCE_SLEEP | FORCE_MAXHP | RES_TELE |
+F:UNIQUE | DROP_CORPSE | FRIENDLY | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_FLY | POWERFUL |
 F:DRAGON | GOOD | RES_SOUN | RES_LITE | NO_CONF | NO_SLEEP |
@@ -19743,7 +19743,7 @@ B:CLAW:FIRE:8d12
 B:CLAW:FIRE:8d12
 B:CLAW:FIRE:8d12
 B:BITE:FIRE:10d12
-F:UNIQUE | DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | 
+F:UNIQUE | DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:RES_TELE | AURA_FIRE | SELF_LITE_2 |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | CAN_FLY | POWERFUL |
@@ -19819,7 +19819,7 @@ B:HIT:HURT:5d12
 B:HIT:HURT:5d12
 B:HIT:HURT:5d12
 F:UNIQUE | MALE | CAN_SPEAK |
-F:FORCE_SLEEP | FORCE_MAXHP | MOVE_BODY | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | MOVE_BODY | DROP_CORPSE
 F:ONLY_ITEM | DROP_3D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR |
 F:EVIL | IM_ACID | IM_FIRE | IM_POIS | IM_COLD | RES_DARK
@@ -19840,7 +19840,7 @@ B:HIT:LOSE_INT:4d11
 B:HIT:SHATTER:10d10
 B:HIT:SUPERHURT:10d10
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS
@@ -19863,7 +19863,7 @@ B:HIT:HURT:4d12
 B:HIT:HURT:4d12
 B:HIT:HURT:4d12
 F:HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | UNIQUE | CAN_SPEAK | HAS_LITE_2 | MALE |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | UNIQUE | CAN_SPEAK | HAS_LITE_2 | MALE |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | DROP_SKELETON | DROP_CORPSE
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | MOVE_BODY
 S:1_IN_10 |
@@ -19902,7 +19902,7 @@ W:29:4:0:330:0:0
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
 B:HIT:HURT:3d7
-F:DROP_CORPSE | FORCE_SLEEP | NO_FEAR | FRIENDLY | ANIMAL |
+F:DROP_CORPSE | PREVENT_SUDDEN_MAGIC | NO_FEAR | FRIENDLY | ANIMAL |
 F:ONLY_ITEM | DROP_2D2 | GOOD | CAN_FLY |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:IM_ACID | IM_POIS | NO_CONF | NO_SLEEP
@@ -19966,7 +19966,7 @@ W:20:1:0:100:0:0
 B:CLAW:HURT:1d10
 B:CLAW:HURT:1d10
 B:BITE:POISON:1d10
-F:FORCE_SLEEP | DROP_CORPSE | ANIMAL |
+F:PREVENT_SUDDEN_MAGIC | DROP_CORPSE | ANIMAL |
 F:BASH_DOOR | WILD_MOUNTAIN |
 D:$This strange hybrid has the head of a monkey, the body of a racoon dog,
 D:$ the legs of a tiger and a tail that is the front half of a snake.  It
@@ -19998,7 +19998,7 @@ I:110:12d16:20:32:40
 W:17:3:0:60:0:0
 B:HIT:HURT:2d5
 B:HIT:HURT:2d5
-F:MALE | EVIL | FORCE_SLEEP | DROP_1D2 | ANIMAL |
+F:MALE | EVIL | PREVENT_SUDDEN_MAGIC | DROP_1D2 | ANIMAL |
 F:SMART | OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 S:1_IN_3 |
 S:SCARE | CAUSE_2 | S_MONSTER
@@ -20015,7 +20015,7 @@ B:KICK:UN_POWER:3d10
 B:KICK:UN_POWER:3d10
 B:BITE:HURT:5d12
 B:BITE:HURT:5d12
-F:REFLECTING | DROP_1D2 | DROP_3D2 | ANIMAL | FORCE_MAXHP | FORCE_SLEEP |
+F:REFLECTING | DROP_1D2 | DROP_3D2 | ANIMAL | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC |
 F:REGENERATE | IM_FIRE | IM_COLD |
 F:NO_CONF | NO_SLEEP | RES_TELE | RIDING |
 S:1_IN_2
@@ -20034,7 +20034,7 @@ B:CLAW:UN_BONUS:6d10
 B:CLAW:CONFUSE:8d10
 B:BITE:UN_POWER:8d10
 F:GOOD | DROP_GOOD | MOVE_BODY | NONLIVING | AURA_FIRE | SELF_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_1D2 | DROP_2D2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_1D2 | DROP_2D2 |
 F:OPEN_DOOR | SMART | POWERFUL | CAN_FLY |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_TELE |
 F:RES_DISE | RES_NEXU | RES_NETH | RES_PLAS | RES_LITE | RES_SOUN |
@@ -20060,7 +20060,7 @@ B:KICK:HURT:12d12
 B:BITE:UN_BONUS:10d10
 B:CRUSH:TIME:10d10
 F:GOOD | DROP_GOOD | MOVE_BODY | NONLIVING | AURA_ELEC |
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_1D2 | DROP_2D2 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_1D2 | DROP_2D2 |
 F:OPEN_DOOR | SMART | POWERFUL | CAN_SWIM |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_TELE |
 F:RES_DISE | RES_NETH | RES_PLAS |
@@ -20113,7 +20113,7 @@ B:CLAW:HURT:7d10
 B:BITE:POISON:5d10
 B:BITE:POISON:5d10
 F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE | WILD_WOOD |
-F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | GOOD | FRIENDLY | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RAND_25 | GOOD | FRIENDLY | 
 F:SMART | OPEN_DOOR | BASH_DOOR | MOVE_BODY | RIDING |
 F:ANIMAL | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
 D:$As large as a small horse, Huan, the hound of Valinor, has the ability to
@@ -20184,7 +20184,7 @@ B:HIT:HURT:3d5
 B:HIT:HURT:3d5
 B:HIT:HURT:3d5
 F:UNIQUE | MALE | MOVE_BODY | SMART | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_MAXHP | FORCE_SLEEP | CAN_SPEAK |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_SPEAK |
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | 
 F:IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP
@@ -20246,7 +20246,7 @@ B:CLAW:HURT:8d12
 B:BITE:HURT:10d14
 F:ATTR_MULTI | CAN_SPEAK | SELF_LITE_2 |
 F:UNIQUE | MALE | CAN_FLY | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ESCORT | 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_4D2 | DROP_GREAT | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
@@ -20322,7 +20322,7 @@ B:HIT:HURT:4d5
 B:HIT:HURT:4d5
 B:HIT:HURT:4d5
 F:UNIQUE | MALE | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP | HAS_LITE_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HAS_LITE_1 |
 F:DROP_1D2 | ONLY_ITEM | DROP_GOOD |
 F:OPEN_DOOR | GOOD | CAN_SWIM |
 F:NO_CONF | NO_SLEEP | FRIENDLY | TAKE_ITEM |
@@ -20347,7 +20347,7 @@ B:HIT:UN_BONUS:6d6
 B:HIT:HURT:4d5
 B:HIT:HURT:4d5
 F:UNIQUE | MALE | CAN_SPEAK | HAS_LITE_2 |
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_SKELETON 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_SKELETON 
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | 
 F:IM_ACID | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | EVIL
@@ -20400,7 +20400,7 @@ B:HIT:HURT:2d5
 B:HIT:HURT:2d5
 B:HIT:HURT:2d4
 F:HUMAN | MALE | EVIL | DROP_CORPSE | DROP_SKELETON | HAS_LITE_2
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_1D2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_1D2
 F:SMART | OPEN_DOOR | BASH_DOOR
 S:1_IN_4 | TPORT | HOLD | S_DEMON
 D:$A figure twisted by evil standing in robes of deepest crimson.
@@ -20416,7 +20416,7 @@ B:HIT:HURT:5d5
 B:BITE:EXP_40:2d4
 B:WAIL:TERRIFY
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | 
 F:SMART | COLD_BLOOD | OPEN_DOOR | BASH_DOOR | MOVE_BODY | 
 F:EVIL | UNDEAD | IM_FIRE | IM_COLD | RES_NETH | RES_DARK |
@@ -20437,7 +20437,7 @@ I:160:150d10:30:120:255
 W:50:100:0:1:0:0
 B:TOUCH:EAT_GOLD
 B:TOUCH:EAT_ITEM
-F:FORCE_MAXHP | FORCE_SLEEP |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC |
 F:CAN_FLY | UNIQUE2 | ANGEL
 F:TAKE_ITEM | OPEN_DOOR |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS | NO_CONF | NO_SLEEP
@@ -20453,7 +20453,7 @@ G:A:w
 I:130:30d10:30:50:255
 W:30:30:0:1:10000:1010
 B:TOUCH:EAT_GOLD
-F:FORCE_MAXHP | FORCE_SLEEP |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC |
 F:CAN_FLY | UNIQUE2 | ANGEL
 F:TAKE_ITEM | OPEN_DOOR |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS | NO_CONF | NO_SLEEP
@@ -20527,7 +20527,7 @@ G:{:W
 I:120:7d14:10:80:12
 W:50:10:0:200:0:0
 B:EXPLODE:SHATTER:100d2
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS |
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING | RES_TELE
@@ -20575,7 +20575,7 @@ B:PUNCH:TERRIFY:30d1
 B:KICK:SUPERHURT:15d15
 F:UNIQUE | MALE | CAN_SPEAK | SMART | REFLECTING | HAS_LITE_2 | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | DROP_CORPSE | DROP_SKELETON |
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP |
 F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
 F:GOOD | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE |
 S:1_IN_3 |
@@ -20632,7 +20632,7 @@ B:HIT:EAT_GOLD:1d9
 B:HIT:EAT_GOLD:1d9
 B:TOUCH:EAT_ITEM
 B:TOUCH:EAT_ITEM
-F:UNIQUE | FEMALE | FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | FRIENDLY | HUMAN |
+F:UNIQUE | FEMALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | FRIENDLY | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT | WILD_GRASS |
 F:TAKE_ITEM | OPEN_DOOR | CAN_SWIM | DROP_SKELETON | DROP_CORPSE
 S:1_IN_3
@@ -20650,7 +20650,7 @@ B:PUNCH:HURT:10d8
 B:HIT:SHATTER:10d10
 F:UNIQUE | MALE | CAN_SPEAK | RES_TELE
 F:DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | KILL_WALL | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | KILL_WALL | HUMAN |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:EVIL | REGENERATE |
 F:OPEN_DOOR | BASH_DOOR | RES_WALL
@@ -20704,7 +20704,7 @@ B:TOUCH:UN_POWER
 B:HIT:EXP_80:8d12
 B:HIT:EXP_80:8d12
 F:UNIQUE | MALE | SMART |
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_GOLD | DROP_3D2 | DROP_4D2 |
 F:COLD_BLOOD | PASS_WALL | OPEN_DOOR | BASH_DOOR | MOVE_BODY |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH |
@@ -20728,7 +20728,7 @@ B:HIT:HURT:6d8
 B:HIT:HURT:6d8
 B:TOUCH:DR_MANA:6d8
 F:MALE | HUMAN |
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD |
 F:SMART | OPEN_DOOR | BASH_DOOR | TAKE_ITEM |
 F:EVIL | NO_CONF | NO_SLEEP |
@@ -20813,7 +20813,7 @@ B:HIT:HURT:30d9
 B:HIT:HURT:30d9
 B:HIT:HURT:30d9
 B:HIT:HURT:30d9
-F:UNIQUE | NONLIVING | NO_FEAR | FORCE_MAXHP | FORCE_SLEEP | REFLECTING |
+F:UNIQUE | NONLIVING | NO_FEAR | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | REFLECTING |
 F:MOVE_BODY | KILL_WALL | IM_FIRE | IM_ELEC | IM_POIS | IM_ACID | IM_COLD |
 F:RES_NETH | RES_WATE | RES_PLAS | RES_NEXU |
 F:RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV | NO_STUN | REGENERATE |
@@ -20838,7 +20838,7 @@ W:51:3:0:16000:0:0
 B:INSULT
 B:INSULT
 F:UNIQUE | FEMALE | CAN_SPEAK | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_SWIM | ELDRITCH_HORROR | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SWIM | ELDRITCH_HORROR | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | 
 F:SMART | OPEN_DOOR | BASH_DOOR | SELF_LITE_2 |
 F:EVIL | IM_ACID | IM_FIRE | IM_POIS | RES_CHAO | NO_CONF | NO_SLEEP
@@ -20859,7 +20859,7 @@ B:CLAW:ACID:6d12
 B:CLAW:HURT:8d12
 B:BITE:HURT:10d14
 F:UNIQUE | DROP_CORPSE |
-F:FORCE_SLEEP | FORCE_MAXHP | KILL_WALL |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | KILL_WALL |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | IM_ACID | IM_FIRE | IM_POIS | ANIMAL |
@@ -21009,7 +21009,7 @@ B:BUTT:HURT:8d5
 B:BUTT:HURT:8d5
 B:BUTT:COLD:10d8
 F:UNIQUE | DROP_CORPSE | AQUATIC | ANIMAL |
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD |
 F:IM_COLD | RES_WATE |
 F:IM_POIS | NO_CONF | NO_SLEEP | NO_STUN |
@@ -21033,7 +21033,7 @@ B:BITE:COLD:12d6
 B:HIT:COLD:9d12
 B:HIT:COLD:9d12
 F:UNIQUE | DROP_CORPSE | RES_NETH | AURA_COLD | EVIL
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | SMART |
 F:ANIMAL | IM_ACID | IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP
@@ -21069,7 +21069,7 @@ E:Disintegration vortex
 G:v:s
 I:140:32d20:100:80:0
 W:65:6:0:5000:0:0
-F:FORCE_SLEEP | NEVER_BLOW | 
+F:PREVENT_SUDDEN_MAGIC | NEVER_BLOW | 
 F:RAND_50 | RAND_25 | CAN_FLY |
 F:EMPTY_MIND | BASH_DOOR | POWERFUL | KILL_WALL | KILL_ITEM |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN | NONLIVING
@@ -21121,7 +21121,7 @@ B:CLAW:HURT:6d10
 B:CLAW:HURT:6d10
 B:BITE:HURT:6d13
 B:CRUSH:SUPERHURT:7d15
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_4D2 | CAN_FLY | RIDING |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY |
 F:IM_FIRE | IM_ELEC | IM_POIS | HURT_COLD
@@ -21138,7 +21138,7 @@ B:CLAW:HURT:7d12
 B:CLAW:HURT:7d12
 B:BITE:HURT:7d14
 B:CRUSH:SUPERHURT:7d17
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY | RIDING |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY |
 F:IM_FIRE | IM_ELEC | IM_POIS | RES_SHAR |
@@ -21156,7 +21156,7 @@ B:HIT:CONFUSE:13d13
 B:HIT:SHATTER:13d13
 B:HIT:CONFUSE:13d13
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_GOOD | DROP_4D2 | KILL_BODY | KILL_WALL |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | DROP_CORPSE | 
 F:EVIL | GIANT | HURT_ROCK | HAS_LITE_2 | 
@@ -21176,7 +21176,7 @@ B:HIT:CONFUSE:12d12
 B:HIT:CONFUSE:12d12
 B:HIT:CONFUSE:12d12
 F:UNIQUE | MALE | 
-F:FORCE_SLEEP | FORCE_MAXHP | MOVE_BODY | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | MOVE_BODY | 
 F:ONLY_ITEM | DROP_4D2 | DROP_3D2 | DROP_GOOD | 
 F:SMART | TAKE_ITEM | BASH_DOOR | HAS_LITE_2 |
 F:EVIL | GIANT | ESCORT | DROP_CORPSE | RES_SHAR | RES_SOUN | RES_TIME |
@@ -21197,7 +21197,7 @@ W:29:6:0:400:0:0
 B:HIT:HURT:3d5
 B:HIT:HURT:3d5
 B:HIT:HURT:3d5
-F:FORCE_MAXHP | FORCE_SLEEP | NO_FEAR | EVIL |
+F:FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | NO_FEAR | EVIL |
 F:ONLY_ITEM | DROP_2D2 | NONLIVING | 
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | 
 F:IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP | RES_TELE | 
@@ -21244,7 +21244,7 @@ W:22:2:0:50:5000:1056
 B:HIT:HURT:3d4
 B:HIT:HURT:3d4
 F:MALE | 
-F:FORCE_SLEEP | DROP_90 | WILD_ALL | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | DROP_90 | WILD_ALL | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE | 
 F:EVIL | HAS_LITE_2
 S:1_IN_4 | 
@@ -21261,7 +21261,7 @@ W:40:2:0:2000:0:0
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
 B:HIT:HURT:5d5
-F:MALE | ONLY_ITEM | FORCE_SLEEP | FORCE_MAXHP | DROP_4D2 |
+F:MALE | ONLY_ITEM | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_4D2 |
 F:SMART | BASH_DOOR | TAKE_ITEM | MOVE_BODY | HUMAN |
 F:EVIL | IM_FIRE | IM_ELEC | IM_POIS |
 F:NO_CONF | NO_SLEEP | NO_STUN | NO_FEAR
@@ -21296,7 +21296,7 @@ B:HIT:HURT:4d6
 B:HIT:HURT:4d6
 B:BITE:EXP_VAMP:6d8
 B:BITE:DR_MANA:6d8
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_4D2 |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE | RES_TELE | 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK | HURT_LITE | 
@@ -21353,7 +21353,7 @@ B:SHOW:LOSE_WIS
 B:CHARGE:EAT_GOLD
 B:CHARGE:EAT_GOLD
 F:EVIL | MALE | CAN_SPEAK | SMART | RES_TELE | CAN_SWIM | DROP_CORPSE |
-F:ANIMAL | IM_POIS | NO_CONF | NO_SLEEP | FORCE_MAXHP | UNIQUE | FORCE_SLEEP |
+F:ANIMAL | IM_POIS | NO_CONF | NO_SLEEP | FORCE_MAXHP | UNIQUE | PREVENT_SUDDEN_MAGIC |
 F:RES_CHAO
 S:1_IN_3
 S:SHRIEK | CONF | S_HYDRA | SLOW | BLIND | DRAIN_MANA
@@ -21410,7 +21410,7 @@ B:CLAW:HURT:5d12
 B:CLAW:HURT:5d12
 B:CLAW:HURT:6d12
 B:BITE:TIME:8d14
-F:DROP_CORPSE | FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:DROP_CORPSE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | RES_TIME | RES_GRAV |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | RES_NEXU | RES_INER |
 F:DRAGON | NO_CONF | NO_SLEEP | RIDING | PASS_WALL |
@@ -21454,7 +21454,7 @@ B:CLAW:HURT:4d10
 B:CLAW:HURT:4d10
 B:BITE:ACID:6d12
 B:BITE:ACID:6d12
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_90 | DROP_2D2 | DROP_GOOD
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | RIDING | CAN_FLY
 F:EVIL | DRAGON | IM_ACID | NO_CONF | NO_SLEEP
@@ -21757,7 +21757,7 @@ B:SHOOT:HURT:5d6
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
 B:HIT:HURT:1d6
-F:UNIQUE | MALE | FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK | HUMAN |
+F:UNIQUE | MALE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_SPEAK | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_GREAT | WILD_WOOD |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | EVIL | DROP_SKELETON | DROP_CORPSE
 S:1_IN_4
@@ -21957,7 +21957,7 @@ B:HIT:HURT:8d6
 B:HIT:HURT:10d5
 B:HIT:HURT:10d5
 B:HIT:HURT:12d10
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_CHAO | MALE | HUMAN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_CHAO | MALE | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | NO_FEAR | NO_CONF
 F:OPEN_DOOR | BASH_DOOR | 
 F:IM_FIRE | IM_POIS | HAS_LITE_1 |
@@ -21993,7 +21993,7 @@ E:Moonlight butterfly
 G:I:b
 I:120:70d50:50:64:50
 W:48:6:0:5000:0:0
-F:FORCE_SLEEP | CAN_FLY | WEIRD_MIND | BASH_DOOR | RAND_50
+F:PREVENT_SUDDEN_MAGIC | CAN_FLY | WEIRD_MIND | BASH_DOOR | RAND_50
 F:RES_CHAO | NO_CONF | ONLY_ITEM | DROP_90 | | DROP_GREAT | NEVER_BLOW
 S:1_IN_2 | BO_MANA | BR_MANA
 D:この青く輝く巨大な蝶は、鱗を持たぬ白竜シースの手によって生み出された。
@@ -22077,7 +22077,7 @@ B:CLAW:HURT:1d12
 B:CLAW:HURT:1d12
 B:BITE:HURT:2d12
 B:BITE:HURT:2d12
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY |
 F:DROP_60 | DROP_90 | DROP_2D2 | DROP_CORPSE | RIDING
 F:OPEN_DOOR | BASH_DOOR | WILD_MOUNTAIN |
 F:DRAGON
@@ -22096,7 +22096,7 @@ B:CLAW:HURT:3d4
 B:CLAW:SUPERHURT:2d11
 B:BITE:HURT:3d12
 B:BITE:HURT:3d12
-F:FORCE_SLEEP | FORCE_MAXHP | WILD_MOUNTAIN |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | WILD_MOUNTAIN |
 F:DROP_1D2 | DROP_4D2 | CAN_FLY | DROP_CORPSE | RIDING
 F:BASH_DOOR | 
 F:DRAGON | NO_CONF | NO_SLEEP | NO_FEAR
@@ -22114,7 +22114,7 @@ B:CLAW:HURT:8d10
 B:CLAW:SUPERHURT:6d11
 B:BITE:HURT:5d14
 B:BITE:HURT:5d14
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:DROP_3D2 | DROP_4D2 | CAN_FLY |
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:DRAGON | NO_CONF | NO_SLEEP | NO_FEAR | RIDING
@@ -22161,7 +22161,7 @@ B:HIT:SUPERHURT:5d4
 B:HIT:SUPERHURT:5d4
 B:HIT:SUPERHURT:5d4
 B:BITE:POISON:9d3
-F:EVIL | DROP_1D2 | DROP_SKELETON | DROP_CORPSE | FORCE_SLEEP
+F:EVIL | DROP_1D2 | DROP_SKELETON | DROP_CORPSE | PREVENT_SUDDEN_MAGIC
 F:OPEN_DOOR | MALE | WILD_WASTE | WILD_SWAMP | NO_FEAR
 D:$Walking on two legs, this creature looks like a Skaven, of sorts, but it's
 D:$ larger and more terrible than a Skaven.
@@ -22175,7 +22175,7 @@ W:45:4:0:5000:0:0
 B:HIT:SUPERHURT:10d12
 B:HIT:SUPERHURT:10d12
 B:HIT:SUPERHURT:10d12
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_4D2 |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | NONLIVING |
 F:EVIL | DEMON | NO_CONF | NO_SLEEP
@@ -22273,7 +22273,7 @@ B:CLAW:HURT:6d6
 B:CLAW:HURT:6d6
 B:BITE:EXP_VAMP:5d6
 B:BITE:EXP_VAMP:5d6
-F:FORCE_SLEEP | FORCE_MAXHP | KILL_BODY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | KILL_BODY
 F:DROP_2D2 | CAN_FLY | RES_NETH | RES_DARK |
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | REGENERATE 
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | HURT_LITE | NO_SLEEP | NO_FEAR
@@ -22291,7 +22291,7 @@ B:CLAW:HURT:2d4
 B:SLASH:HURT:2d6
 B:BITE:HURT:1d6
 F:UNIQUE | MALE | DROP_CORPSE | HAS_LITE_1 |
-F:FORCE_SLEEP | FORCE_MAXHP | HUMAN | DEMON | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | HUMAN | DEMON | 
 F:IM_FIRE | IM_ELEC
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | STUPID 
@@ -22844,7 +22844,7 @@ W:43:2:0:5000:0:0
 B:CLAW:HURT:5d10
 B:HIT:CONFUSE:2d10
 B:CLAW:HURT:5d10
-F:FORCE_SLEEP | RAND_25 | 
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | 
 F:COLD_BLOOD | CAN_FLY | NONLIVING |
 F:KILL_BODY | KILL_ITEM | BASH_DOOR |
 F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
@@ -22872,7 +22872,7 @@ W:45:2:0:4500:0:0
 B:HIT:FIRE:5d7
 B:BITE:HURT:6d6
 B:HIT:FIRE:5d7
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:AURA_FIRE | WILD_VOLCANO |
 F:KILL_ITEM | KILL_BODY | PASS_WALL |
 F:EVIL | IM_FIRE | IM_ELEC | NONLIVING |
@@ -22901,7 +22901,7 @@ W:44:2:0:6000:0:0
 B:HIT:FIRE:4d10
 B:HIT:FIRE:4d10
 B:SLASH:FIRE:5d12
-F:FORCE_SLEEP | RAND_25 | SELF_LITE_2 |
+F:PREVENT_SUDDEN_MAGIC | RAND_25 | SELF_LITE_2 |
 F:CAN_FLY | WILD_VOLCANO |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR | AURA_FIRE |
 F:EVIL | IM_FIRE | IM_POIS | NONLIVING | HURT_COLD |
@@ -22928,7 +22928,7 @@ W:43:2:0:3500:0:0
 B:BITE:COLD:3d10
 B:CLAW:HURT:5d10
 B:BITE:COLD:3d10
-F:FORCE_SLEEP | POWERFUL
+F:PREVENT_SUDDEN_MAGIC | POWERFUL
 F:COLD_BLOOD | AURA_COLD |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR |
 F:EVIL | IM_COLD | IM_ELEC | CAN_SWIM | HURT_FIRE |
@@ -22956,7 +22956,7 @@ B:TOUCH:ACID:1d12
 B:TOUCH:ACID:1d12
 B:TOUCH:ACID:1d12
 B:BITE:POISON:1d12
-F:FORCE_SLEEP | POWERFUL
+F:PREVENT_SUDDEN_MAGIC | POWERFUL
 F:COLD_BLOOD | WILD_SHORE | WILD_SWAMP |
 F:KILL_ITEM | KILL_BODY | BASH_DOOR |
 F:EVIL | IM_ACID | IM_FIRE | CAN_SWIM | NONLIVING |
@@ -23183,7 +23183,7 @@ G:g:U
 I:105:30d25:10:85:50
 W:40:1:0:700:0:0
 F:HURT_ROCK | IM_ELEC | RES_PLAS | RES_GRAV | RES_TELE
-F:FRIENDS | FORCE_SLEEP | DROP_90
+F:FRIENDS | PREVENT_SUDDEN_MAGIC | DROP_90
 F:NONLIVING | NO_CONF | NO_STUN | NO_SLEEP | NO_FEAR
 F:NEVER_MOVE | NEVER_BLOW
 S:1_IN_2 | BR_ELEC | BR_PLAS
@@ -23318,7 +23318,7 @@ B:CRUSH:SUPERHURT:12d15
 B:CRUSH:SUPERHURT:12d15
 B:CRUSH:SUPERHURT:12d15
 B:BITE:POISON:12d15
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_4D2 | DROP_3D2 | DROP_GREAT | MOVE_BODY
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL
 F:EVIL | FEMALE | UNIQUE | RES_LITE | RES_TIME | RES_DARK | RES_NETH
@@ -23355,7 +23355,7 @@ B:CRUSH:SHATTER:16d11
 B:CRUSH:SHATTER:16d11
 F:UNIQUE | FEMALE | RES_TELE | CAN_FLY
 F:DROP_SKELETON | DROP_CORPSE
-F:FORCE_SLEEP | FORCE_MAXHP | KILL_WALL | DEMON | HUMAN
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | KILL_WALL | DEMON | HUMAN
 F:ONLY_ITEM | DROP_4D2 | DROP_3D2 | DROP_GREAT | MOVE_BODY
 F:REGENERATE | NO_CONF | NO_STUN | NO_SLEEP | NO_FEAR | POWERFUL
 F:IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE
@@ -23440,7 +23440,7 @@ B:KICK:HURT:24d1
 B:HIT:HURT:24d1
 B:CLAW:EXP_80:4d2
 B:CLAW:LOSE_DEX:4d2
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_TELE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | RES_TELE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | 
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
@@ -23462,7 +23462,7 @@ B:KICK:HURT:18d2
 B:HIT:POISON:18d1
 B:HIT:PARALYZE:18d1
 F:HUMAN | MALE | GOOD | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_4D2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_4D2
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_3 | HEAL | MIND_BLAST | S_SPIDER | S_HOUND
@@ -23482,7 +23482,7 @@ B:KICK:HURT:20d2
 B:HIT:POISON:20d1
 B:HIT:PARALYZE:20d1
 F:HUMAN | MALE | GOOD | DROP_CORPSE | DROP_SKELETON
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_GOOD | DROP_4D2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_GOOD | DROP_4D2
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_2 | HEAL | MIND_BLAST | S_SPIDER | S_HOUND
@@ -23501,7 +23501,7 @@ B:HIT:HURT:2d6
 B:HIT:HURT:2d6
 B:HIT:HURT:2d5
 F:HUMAN | MALE | EVIL | DROP_CORPSE | DROP_SKELETON | HAS_LITE_2
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_1D2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_1D2
 F:SMART | OPEN_DOOR | BASH_DOOR
 S:1_IN_2 | TPORT | HOLD | S_DEMON
 D:$This man will soon be absorbed in the devil's world.
@@ -23517,7 +23517,7 @@ W:47:1:0:14000:35000:1181
 B:BUTT:COLD:4d6
 B:BUTT:FIRE:4d6
 B:BUTT:ELEC:4d6
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
 F:EVIL | UNDEAD | SMART | ONLY_ITEM | DROP_60 | DROP_90 | DROP_GOOD
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH | RES_TELE
 F:NO_CONF | NO_SLEEP
@@ -23538,7 +23538,7 @@ W:52:4:0:19000:0:0
 B:BUTT:COLD:5d6
 B:BUTT:FIRE:5d6
 B:BUTT:ELEC:5d6
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | COLD_BLOOD | BASH_DOOR | CAN_FLY
 F:EVIL | UNDEAD | SMART | ONLY_ITEM | DROP_2D2 | DROP_GOOD
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH | RES_TELE
 F:NO_CONF | NO_SLEEP
@@ -23560,7 +23560,7 @@ B:BITE:SUPERHURT:12d11
 B:PUNCH:TERRIFY:25d1
 B:KICK:TERRIFY:25d1
 F:UNDEAD | EVIL | COLD_BLOOD | DROP_SKELETON | SMART | HAS_DARK_1
-F:FORCE_SLEEP | ONLY_ITEM | DROP_GOOD | DROP_2D2
+F:PREVENT_SUDDEN_MAGIC | ONLY_ITEM | DROP_GOOD | DROP_2D2
 F:BASH_DOOR | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP
 S:1_IN_5 | BA_FIRE | BA_DARK | BA_CHAO | CAUSE_3 | MIND_BLAST
 S:BLINK | TELE_TO | BLIND | HOLD | CONF | SCARE | ANIM_DEAD | S_UNDEAD
@@ -23579,7 +23579,7 @@ B:HIT:HURT:1d12
 B:HIT:HURT:1d12
 B:TOUCH:EXP_80
 B:TOUCH:EXP_80
-F:FORCE_SLEEP | FORCE_MAXHP | ONLY_ITEM | DROP_90 | DROP_4D2 | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | ONLY_ITEM | DROP_90 | DROP_4D2 | CAN_FLY
 F:COLD_BLOOD | OPEN_DOOR | BASH_DOOR | RES_NETH |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_DARK | HURT_LITE | NO_CONF | NO_SLEEP
 S:1_IN_6 | 
@@ -23597,7 +23597,7 @@ B:GAZE:EXP_80
 B:GAZE:PARALYZE:5d6
 B:GAZE:LOSE_INT:5d6
 B:GAZE:DR_MANA:6d6
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | HAS_DARK_1 |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | HAS_DARK_1 |
 F:COLD_BLOOD | BASH_DOOR | 
 F:EVIL | UNDEAD | CAN_FLY |
 F:IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | RES_NETH |
@@ -23621,7 +23621,7 @@ B:GAZE:EXP_40:5d5
 B:GAZE:LOSE_INT:5d6
 B:GAZE:UN_POWER:5d6
 B:GAZE:DR_MANA:5d10
-F:FORCE_SLEEP | FORCE_MAXHP | RES_TELE | CAN_FLY |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | RES_TELE | CAN_FLY |
 F:BASH_DOOR | FEMALE | SMART | DROP_CORPSE |
 F:EVIL | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_2 | 
@@ -23641,7 +23641,7 @@ W:42:5:0:2000:0:0
 B:SHOOT:HURT:9d9
 B:HIT:HURT:15d8
 B:HIT:HURT:15d8
-F:FORCE_SLEEP |
+F:PREVENT_SUDDEN_MAGIC |
 F:ONLY_ITEM | DROP_2D2 | TAKE_ITEM | DROP_CORPSE |
 F:BASH_DOOR | OPEN_DOOR | MOVE_BODY |
 F:EVIL | IM_POIS | IM_ACID | GIANT | EAT_GIVE_STR |
@@ -23660,7 +23660,7 @@ B:HIT:CONFUSE:12d12
 B:HIT:CONFUSE:12d12
 B:HIT:CONFUSE:12d12
 B:HIT:CONFUSE:12d12
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_SKELETON | DROP_CORPSE
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | MOVE_BODY |
 F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL | GIANT | MALE
@@ -23680,7 +23680,7 @@ B:CLAW:HURT:4d12
 B:CLAW:ACID:12d14
 B:BITE:HURT:4d12
 B:BITE:ACID:12d14
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | RIDING | CAN_FLY
 F:EVIL | DRAGON | IM_ACID | NO_CONF | NO_SLEEP
@@ -23702,7 +23702,7 @@ B:CLAW:SUPERHURT:6d12
 B:CLAW:ACID:21d21
 B:BITE:SUPERHURT:6d12
 B:BITE:ACID:21d21
-F:FORCE_SLEEP | FORCE_MAXHP | 
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | 
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | RIDING | CAN_FLY
 F:EVIL | DRAGON | IM_ACID | NO_CONF | NO_SLEEP
@@ -23721,7 +23721,7 @@ B:CLAW:HURT:4d12
 B:CLAW:ELEC:12d14
 B:BITE:HURT:4d12
 B:BITE:ELEC:12d14
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | CAN_FLY
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_ELEC | NO_CONF | NO_SLEEP | RIDING
@@ -23743,7 +23743,7 @@ B:CLAW:SUPERHURT:6d12
 B:CLAW:ELEC:21d21
 B:BITE:SUPERHURT:6d12
 B:BITE:ELEC:21d21
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | CAN_FLY
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_ELEC | NO_CONF | NO_SLEEP | RIDING
@@ -23763,7 +23763,7 @@ B:CLAW:HURT:5d12
 B:CLAW:FIRE:12d15
 B:BITE:HURT:5d12
 B:BITE:FIRE:12d15
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | AURA_FIRE |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -23785,7 +23785,7 @@ B:CLAW:SUPERHURT:7d12
 B:CLAW:FIRE:22d21
 B:BITE:SUPERHURT:7d12
 B:BITE:FIRE:22d21
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | DROP_CORPSE | SELF_LITE_1
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | SELF_LITE_2
 F:BASH_DOOR | POWERFUL | MOVE_BODY | AURA_FIRE |
 F:EVIL | DRAGON | IM_FIRE | NO_CONF | NO_SLEEP | RIDING
@@ -23805,7 +23805,7 @@ B:CLAW:HURT:4d12
 B:CLAW:COLD:12d14
 B:BITE:HURT:4d12
 B:BITE:COLD:12d14
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | AURA_COLD
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
@@ -23827,7 +23827,7 @@ B:CLAW:SUPERHURT:6d12
 B:CLAW:COLD:21d21
 B:BITE:SUPERHURT:6d12
 B:BITE:COLD:21d21
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY | AURA_COLD
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD | 
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE
 F:EVIL | DRAGON | IM_COLD | NO_CONF | NO_SLEEP | RIDING
@@ -23847,7 +23847,7 @@ B:CLAW:HURT:4d12
 B:CLAW:POISON:12d14
 B:BITE:HURT:4d12
 B:BITE:POISON:12d14
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | CAN_FLY
 F:EVIL | DRAGON | IM_POIS | NO_CONF | NO_SLEEP | RIDING
@@ -23868,7 +23868,7 @@ B:CLAW:SUPERHURT:6d12
 B:CLAW:POISON:18d19
 B:BITE:SUPERHURT:6d12
 B:BITE:POISON:18d19
-F:FORCE_SLEEP | FORCE_MAXHP |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_2D2 | DROP_3D2 | DROP_GOOD |
 F:BASH_DOOR | POWERFUL | MOVE_BODY | DROP_CORPSE | CAN_FLY
 F:EVIL | DRAGON | IM_POIS | NO_CONF | NO_SLEEP | RIDING
@@ -23888,7 +23888,7 @@ B:CLAW:HURT:6d11
 B:BITE:HURT:6d11
 B:BUTT:HURT:6d11
 B:CRUSH:HURT:6d11
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
 F:ATTR_MULTI | CAN_FLY
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS | RES_TELE
 F:ONLY_ITEM | DROP_60 | DROP_90
@@ -23910,7 +23910,7 @@ B:CLAW:SUPERHURT:7d11
 B:BITE:SUPERHURT:7d11
 B:BUTT:SUPERHURT:7d11
 B:CRUSH:SUPERHURT:7d11
-F:FORCE_SLEEP | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | AURA_ELEC | AURA_FIRE | AURA_COLD
 F:ATTR_MULTI | CAN_FLY
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS | RES_TELE
 F:ONLY_ITEM | DROP_60 | DROP_90
@@ -23959,7 +23959,7 @@ B:CLAW:HURT:9d9
 B:CLAW:HURT:9d9
 B:CLAW:HURT:9d9
 B:BITE:HURT:6d14
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | CAN_FLY | ATTR_CLEAR
 F:INVISIBLE | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | 
 F:EVIL | DRAGON | IM_COLD | NO_CONF | RES_SHAR | NO_SLEEP | RIDING
@@ -23980,7 +23980,7 @@ B:CLAW:HURT:8d9
 B:CLAW:HURT:8d9
 B:CLAW:HURT:8d9
 B:BITE:HURT:5d14
-F:FORCE_SLEEP | FORCE_MAXHP | DROP_CORPSE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | DROP_CORPSE
 F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GOOD | CAN_FLY
 F:SMART | BASH_DOOR | POWERFUL | MOVE_BODY
 F:DRAGON | RES_SOUN | NO_CONF | NO_SLEEP | RIDING
@@ -24631,7 +24631,7 @@ B:CLAW:HURT:4d12
 B:CLAW:HURT:4d12
 B:BITE:EXP_80:3d6
 B:BITE:EXP_VAMP:3d6
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | COLD_BLOOD | EVIL | DRAGON | UNDEAD
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY
 F:IM_COLD | IM_POIS | RES_NETH | RES_DARK | RES_TELE
@@ -24652,7 +24652,7 @@ B:BITE:HURT:5d12
 B:BITE:HURT:5d12
 B:BITE:HURT:8d8
 B:GAZE:PARALYZE
-F:FORCE_SLEEP | FORCE_MAXHP | CAN_FLY
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | CAN_FLY
 F:ONLY_ITEM | DROP_4D2 | DROP_GOOD | DROP_CORPSE
 F:OPEN_DOOR | BASH_DOOR | ANIMAL | EVIL | DRAGON
 F:IM_FIRE | IM_POIS | RES_NETH | RES_TELE | NO_CONF | NO_SLEEP | RIDING
@@ -24702,7 +24702,7 @@ B:SLASH:HURT:20d1
 B:SLASH:HURT:20d1
 B:SLASH:HURT:20d1
 B:SLASH:HURT:20d1
-F:RAND_25 | SMART | REFLECTING | FORCE_SLEEP | CAN_SPEAK
+F:RAND_25 | SMART | REFLECTING | PREVENT_SUDDEN_MAGIC | CAN_SPEAK
 F:REGENERATE | AURA_ELEC | BASH_DOOR | EVIL
 F:NONLIVING | IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS
 F:RES_LITE | RES_DARK | RES_NETH | RES_WATE | RES_PLAS | RES_SHAR | RES_SOUN
@@ -24726,7 +24726,7 @@ B:GAZE:PARALYZE:5d5
 B:TOUCH:TERRIFY:5d5
 B:SPIT:CONFUSE:5d5
 B:SHOW:BLIND:5d5
-F:SMART | FRIENDS | FORCE_SLEEP | AURA_ELEC
+F:SMART | FRIENDS | PREVENT_SUDDEN_MAGIC | AURA_ELEC
 F:IM_POIS | RES_SOUN | RES_PLAS | RES_LITE | RES_DARK | RES_NETH
 F:NO_FEAR | NO_STUN | NO_CONF | CAN_SPEAK
 S:1_IN_5 | BR_SOUN | BR_PLAS
@@ -24773,7 +24773,7 @@ B:BITE:HURT:15d15
 B:BITE:POISON:15d15
 F:UNIQUE | MALE | RES_TELE |
 F:BASH_DOOR | DROP_CORPSE | DROP_SKELETON | ANIMAL
-F:FORCE_SLEEP | FORCE_MAXHP | NO_CONF | NO_SLEEP
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NO_CONF | NO_SLEEP
 F:DROP_4D2 | DROP_1D2 | DROP_GOOD | DROP_60 | DROP_90 | ONLY_ITEM |
 F:EVIL | IM_COLD | IM_ACID | IM_ELEC | IM_FIRE
 S:1_IN_4 |
@@ -24794,7 +24794,7 @@ B:BITE:FIRE:12d6
 B:BUTT:HURT:12d6
 B:BITE:POISON:8d6
 F:UNIQUE
-F:FORCE_SLEEP | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_3D2 | DROP_4D2
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART | DROP_CORPSE | DROP_3D2 | DROP_4D2
 F:OPEN_DOOR | BASH_DOOR | KILL_BODY | POWERFUL | CAN_FLY
 F:ANIMAL | EVIL | IM_FIRE | IM_POIS | IM_COLD | IM_ACID
 F:NO_CONF | NO_SLEEP | RIDING | ESCORT | ATTR_MULTI
@@ -24845,7 +24845,7 @@ I:125:50d3:10:15:20
 W:17:2:0:50:0:0
 B:STING:PARALYZE:3d3
 B:CRUSH:PARALYZE:3d4
-F:FORCE_SLEEP | ANIMAL | IM_ACID | IM_ELEC | HURT_FIRE | WEIRD_MIND
+F:PREVENT_SUDDEN_MAGIC | ANIMAL | IM_ACID | IM_ELEC | HURT_FIRE | WEIRD_MIND
 F:CAN_FLY | RAND_25 | NO_FEAR | ONLY_ITEM | DROP_60 | DROP_CORPSE
 D:$A bee-like insect that has become huge due to mutation.
 D:$  It has a paralytic stinger on the abdomen.
@@ -24860,7 +24860,7 @@ B:STING:PARALYZE:3d10
 B:STING:PARALYZE:3d10
 B:CRUSH:SUPERHURT:3d12
 S:1_IN_4 | SHRIEK | S_KIN | BR_ACID
-F:UNIQUE | FEMALE | ANIMAL | FORCE_MAXHP | FORCE_SLEEP | CAN_FLY | RAND_25
+F:UNIQUE | FEMALE | ANIMAL | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC | CAN_FLY | RAND_25
 F:ONLY_ITEM | DROP_60 | DROP_1D2 | DROP_GOOD | DROP_CORPSE |
 F:BASH_DOOR | IM_ACID | IM_ELEC | HURT_FIRE | WEIRD_MIND | NO_FEAR
 R:1252:5d5
@@ -24884,7 +24884,7 @@ B:GAZE:TERRIFY:4d5
 B:GAZE:TERRIFY:4d5
 B:SHOW:LOSE_INT
 B:TOUCH:EAT_ITEM
-F:UNIQUE | CAN_SPEAK | FORCE_MAXHP | FORCE_SLEEP
+F:UNIQUE | CAN_SPEAK | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC
 F:SHAPECHANGER | ATTR_MULTI | ATTR_ANY | SELF_LITE_1
 F:EVIL | DEMON | CAN_SWIM | OPEN_DOOR
 F:NO_FEAR | NO_SLEEP | WEIRD_MIND | ELDRITCH_HORROR | MOVE_BODY
@@ -24993,7 +24993,7 @@ B:CRUSH:SHATTER:16d10
 B:CRUSH:SHATTER:16d10
 S:1_IN_3 |
 S:SHRIEK | BA_FIRE | PSY_SPEAR | S_KIN
-F:UNIQUE | MALE | DROP_CORPSE | FORCE_MAXHP | FORCE_SLEEP
+F:UNIQUE | MALE | DROP_CORPSE | FORCE_MAXHP | PREVENT_SUDDEN_MAGIC
 F:NONLIVING | CAN_SPEAK | POWERFUL
 F:ONLY_ITEM | DROP_1D2 | DROP_3D2 | DROP_GREAT
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS | RES_LITE | RES_DARK
@@ -25011,7 +25011,7 @@ E:Engel quylthulg
 G:Q:w
 I:120:48d10:20:1:0
 W:51:1:0:3000:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | INVISIBLE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | INVISIBLE
 F:EMPTY_MIND | ANIMAL | GOOD | STUPID | NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_2 | BLINK | TPORT | S_ANGEL
 D:$The wreckage of an angel is a mass united by evil magic.
@@ -25023,7 +25023,7 @@ E:Greater quylthulg
 G:Q:s
 I:120:15d100:20:1:0
 W:71:3:0:10500:0:0
-F:FORCE_SLEEP | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | INVISIBLE
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | NEVER_MOVE | NEVER_BLOW | INVISIBLE
 F:EMPTY_MIND | STUPID | RES_TELE | NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_2 | BLINK | TELE_TO | S_MONSTERS
 D:$It is a strong pulsing mound of flesh.
@@ -25037,7 +25037,7 @@ W:49:3:0:6000:0:0
 B:SLASH:HURT:8d8
 B:SLASH:HURT:8d8
 B:SLASH:HURT:45d1
-F:MALE | FORCE_SLEEP | ANIMAL
+F:MALE | PREVENT_SUDDEN_MAGIC | ANIMAL
 F:REGENERATE | OPEN_DOOR | MOVE_BODY | TAKE_ITEM | DROP_CORPSE 
 F:IM_ACID | IM_ELEC | IM_COLD | IM_FIRE | IM_POIS
 S:1_IN_4 | HASTE | HEAL | CAUSE_2
@@ -25199,7 +25199,7 @@ W:96:13:0:23000:0:0
 B:GAZE:TERRIFY:10d10
 B:TOUCH:COLD:10d10
 B:ENGULF:EXP_VAMP:100d1
-F:FORCE_SLEEP | FORCE_MAXHP | REFLECTING | INVISIBLE | COLD_BLOOD
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | REFLECTING | INVISIBLE | COLD_BLOOD
 F:EMPTY_MIND | PASS_WALL | CAN_FLY
 F:UNDEAD | EVIL | AURA_COLD | NONLIVING | HAS_DARK_2
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS
@@ -25270,7 +25270,7 @@ I:115:3d11:15:30:80
 W:12:3:0:20:0:0
 B:STING:POISON:5d1
 B:WAIL:LOSE_INT
-F:FEMALE | QUANTUM | FORCE_SLEEP | FRIENDS | DROP_90 | TAKE_ITEM
+F:FEMALE | QUANTUM | PREVENT_SUDDEN_MAGIC | FRIENDS | DROP_90 | TAKE_ITEM
 F:HURT_FIRE | CAN_FLY | FRIENDLY | HAS_LITE_1 | IM_POIS | RES_LITE
 S:1_IN_4 | MISSILE
 D:$Only a few old photographs are the only proof that this fairy once existed.
@@ -25285,7 +25285,7 @@ B:SPORE:LOSE_ALL:2d5
 B:SPORE:LOSE_ALL:2d5
 B:GAZE:DR_MANA:10d1
 B:TOUCH:UN_POWER
-F:UNIQUE | FORCE_SLEEP | FORCE_MAXHP | STUPID | WEIRD_MIND
+F:UNIQUE | PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | STUPID | WEIRD_MIND
 F:ATTR_MULTI | ATTR_ANY | RAND_25 | RAND_50 | QUANTUM | ELDRITCH_HORROR
 F:IM_ACID | IM_ELEC | IM_FIRE | IM_COLD | IM_POIS
 F:NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN
index bfadb49..295fed1 100644 (file)
@@ -1,4 +1,10 @@
-N:*:Default
+N:1:Excellent
+R:ARTIFACT:*:There is a treasure called {Name} in dungeons.
+R:MONSTER:*:There is a monster called {Name}.
+R:DUNGEON:1:The location of {Name} is here: -more-
+R:TOWN:*:Have you ever been to the town of {Name}?
+
+N:0:Default
 They say that you can't trust rumors.
 You have no more Black Potions of Death.
 They say that smart guys hang around at 1600'.
index 5701632..a14cb4a 100644 (file)
@@ -231,7 +231,7 @@ void exe_activate(player_type *user_ptr, INVENTORY_IDX item)
     sound(SOUND_ZAP);
     if (activation_index(user_ptr, ae_ptr->o_ptr)) {
         (void)activate_artifact(user_ptr, ae_ptr->o_ptr);
-        user_ptr->window |= PW_INVEN | PW_EQUIP;
+        user_ptr->window_flags |= PW_INVEN | PW_EQUIP;
         return;
     }
 
index d8a1f21..f517912 100644 (file)
@@ -380,7 +380,7 @@ static void generate_unnatural_random_artifact(player_type *player_ptr, object_t
     msg_format_wizard(player_ptr, CHEAT_OBJECT,
         _("パワー %d で 価値%ld のランダムアーティファクト生成 バイアスは「%s」", "Random artifact generated - Power:%d Value:%d Bias:%s."), max_powers,
         total_flags, artifact_bias_name[o_ptr->artifact_bias]);
-    player_ptr->window |= PW_INVEN | PW_EQUIP;
+    player_ptr->window_flags |= PW_INVEN | PW_EQUIP;
 }
 
 /*!
index ae3fd21..6f45c5e 100644 (file)
@@ -53,7 +53,8 @@ static void describe_autpick_jp(char *buff, autopick_type *entry, autopick_descr
                before_str[describer->before_n++] = "ダメージダイスの最大値が";
                describer->body_str = "武器";
 
-               sprintf(more_than_desc_str, "%d", entry->dice);
+               snprintf(more_than_desc_str, sizeof(more_than_desc_str), "%d",
+                       entry->dice);
                before_str[describer->before_n++] = more_than_desc_str;
                before_str[describer->before_n++] = "以上の";
        }
@@ -63,7 +64,8 @@ static void describe_autpick_jp(char *buff, autopick_type *entry, autopick_descr
                static char more_bonus_desc_str[] = "___";
                before_str[describer->before_n++] = "修正値が(+";
 
-               sprintf(more_bonus_desc_str, "%d", entry->bonus);
+               snprintf(more_bonus_desc_str, sizeof(more_bonus_desc_str),
+                       "%d", entry->bonus);
                before_str[describer->before_n++] = more_bonus_desc_str;
                before_str[describer->before_n++] = ")以上の";
        }
@@ -283,14 +285,18 @@ static void describe_autpick_jp(char *buff, autopick_type *entry, autopick_descr
 void describe_autopick_en(char *buff, autopick_type *entry, autopick_describer *describer)
 {
        concptr before_str[20], after_str[20], which_str[20], whose_str[20];
-       int after_n = 0, which_n = 0, whose_n = 0;
+       concptr whose_arg_str[20];
+       char arg_str[2][24];
+       int after_n = 0, which_n = 0, whose_n = 0, arg_n = 0;
        if (IS_FLG(FLG_COLLECTING))
                which_str[which_n++] = "can be absorbed into an existing inventory list slot";
 
        if (IS_FLG(FLG_UNAWARE))
        {
                before_str[describer->before_n++] = "unidentified";
-               whose_str[whose_n++] = "basic abilities are not known";
+               whose_str[whose_n] = "basic abilities are not known";
+               whose_arg_str[whose_n] = "";
+               ++whose_n;
        }
 
        if (IS_FLG(FLG_UNIDENTIFIED))
@@ -349,28 +355,41 @@ void describe_autopick_en(char *buff, autopick_type *entry, autopick_describer *
        if (IS_FLG(FLG_BOOSTED))
        {
                describer->body_str = "weapons";
-               whose_str[whose_n++] = "damage dice is bigger than normal";
+               whose_str[whose_n] = "damage dice is bigger than normal";
+               whose_arg_str[whose_n] = "";
+               ++whose_n;
        }
 
        if (IS_FLG(FLG_MORE_DICE))
        {
-               static char more_than_desc_str[] =
-                       "maximum damage from dice is bigger than __";
                describer->body_str = "weapons";
-
-               sprintf(more_than_desc_str + sizeof(more_than_desc_str) - 3,
-                       "%d", entry->dice);
-               whose_str[whose_n++] = more_than_desc_str;
+               whose_str[whose_n] =
+                       "maximum damage from dice is bigger than ";
+               if (arg_n < (int) (sizeof(arg_str) / sizeof(arg_str[0]))) {
+                       snprintf(arg_str[arg_n], sizeof(arg_str[arg_n]), "%d",
+                               entry->dice);
+                       whose_arg_str[whose_n] = arg_str[arg_n];
+                       ++arg_n;
+               }
+               else {
+                       whose_arg_str[whose_n] = "garbled";
+               }
+               ++whose_n;
        }
 
        if (IS_FLG(FLG_MORE_BONUS))
        {
-               static char more_bonus_desc_str[] =
-                       "magical bonus is bigger than (+__)";
-
-               sprintf(more_bonus_desc_str + sizeof(more_bonus_desc_str) - 4,
-                       "%d)", entry->bonus);
-               whose_str[whose_n++] = more_bonus_desc_str;
+               whose_str[whose_n] = "magical bonus is bigger than (+";
+               if (arg_n < (int) (sizeof(arg_str) / sizeof(arg_str[0]))) {
+                       snprintf(arg_str[arg_n], sizeof(arg_str[arg_n]),
+                               "%d)", entry->bonus);
+                       whose_arg_str[whose_n] = arg_str[arg_n];
+                       ++arg_n;
+               }
+               else {
+                       whose_arg_str[whose_n] = "garbled)";
+               }
+               ++whose_n;
        }
 
        if (IS_FLG(FLG_WANTED))
@@ -481,7 +500,9 @@ void describe_autopick_en(char *buff, autopick_type *entry, autopick_describer *
                {
                        describer->str++;
                        describer->top = TRUE;
-                       whose_str[whose_n++] = "name begins with \"";
+                       whose_str[whose_n] = "name begins with \"";
+                       whose_arg_str[whose_n] = "";
+                       ++whose_n;
                }
                else
                        which_str[which_n++] = "have \"";
@@ -532,6 +553,7 @@ void describe_autopick_en(char *buff, autopick_type *entry, autopick_describer *
                        strcat(buff, ", and ");
 
                strcat(buff, whose_str[i]);
+               strcat(buff, whose_arg_str[i]);
        }
 
        if (*describer->str && describer->top)
index 0a121c4..9dac736 100644 (file)
@@ -77,7 +77,7 @@ void auto_inscribe_item(player_type *player_ptr, object_type *o_ptr, int idx)
        if (!o_ptr->inscription)
                o_ptr->inscription = quark_add(autopick_list[idx].insc);
 
-       player_ptr->window |= (PW_EQUIP | PW_INVEN);
+       player_ptr->window_flags |= (PW_EQUIP | PW_INVEN);
        player_ptr->update |= (PU_BONUS);
 }
 
index 95fdb43..1eac57c 100644 (file)
@@ -427,7 +427,7 @@ bool get_learned_power(player_type *caster_ptr, SPELL_IDX *sn)
     if (lm_ptr->redraw)
         screen_load();
 
-    caster_ptr->window |= PW_SPELL;
+    caster_ptr->window_flags |= PW_SPELL;
     handle_stuff(caster_ptr);
 
     if (!lm_ptr->flag)
index b635015..b8d3763 100644 (file)
@@ -284,7 +284,7 @@ static int get_hissatsu_power(player_type *creature_ptr, SPELL_IDX *sn)
     if (redraw)
         screen_load();
 
-    creature_ptr->window |= (PW_SPELL);
+    creature_ptr->window_flags |= (PW_SPELL);
     handle_stuff(creature_ptr);
 
     /* Abort if needed */
@@ -355,7 +355,7 @@ void do_cmd_hissatsu(player_type *creature_ptr)
     if (creature_ptr->csp < 0)
         creature_ptr->csp = 0;
     creature_ptr->redraw |= (PR_MANA);
-    creature_ptr->window |= (PW_PLAYER | PW_SPELL);
+    creature_ptr->window_flags |= (PW_PLAYER | PW_SPELL);
 }
 
 /*!
index 751cfa3..2e4ef48 100644 (file)
@@ -269,7 +269,7 @@ static int get_mane_power(player_type *caster_ptr, int *sn, bool baigaesi)
     if (redraw)
         screen_load();
 
-    caster_ptr->window |= (PW_SPELL);
+    caster_ptr->window_flags |= (PW_SPELL);
     handle_stuff(caster_ptr);
 
     /* Abort if needed */
@@ -1135,8 +1135,8 @@ bool do_cmd_mane(player_type *creature_ptr, bool baigaesi)
     take_turn(creature_ptr, 100);
 
     creature_ptr->redraw |= (PR_IMITATION);
-    creature_ptr->window |= (PW_PLAYER);
-    creature_ptr->window |= (PW_SPELL);
+    creature_ptr->window_flags |= (PW_PLAYER);
+    creature_ptr->window_flags |= (PW_SPELL);
 
     return TRUE;
 }
\ No newline at end of file
index 378fb8b..1d3d236 100644 (file)
@@ -380,8 +380,8 @@ void do_cmd_mind(player_type *caster_ptr)
     mind_turn_passing(caster_ptr, cm_ptr);
     process_hard_concentration(caster_ptr, cm_ptr);
     caster_ptr->redraw |= PR_MANA;
-    caster_ptr->window |= PW_PLAYER;
-    caster_ptr->window |= PW_SPELL;
+    caster_ptr->window_flags |= PW_PLAYER;
+    caster_ptr->window_flags |= PW_SPELL;
 }
 
 static mind_kind_type decide_use_mind_browse(player_type *caster_ptr)
index fa958d9..48c56a3 100644 (file)
@@ -17,6 +17,7 @@
 #include "game-option/input-options.h"
 #include "game-option/play-record-options.h"
 #include "game-option/special-options.h"
+#include "game-option/map-screen-options.h"
 #include "grid/grid.h"
 #include "info-reader/fixed-map-parser.h"
 #include "io/input-key-requester.h"
@@ -425,6 +426,6 @@ void do_cmd_rest(player_type *creature_ptr)
     update_creature(creature_ptr);
     creature_ptr->redraw |= (PR_STATE);
     update_output(creature_ptr);
-    if (need_term_fresh(creature_ptr))
+    if (fresh_after)
         term_fresh();
 }
\ No newline at end of file
index 1ba17f4..6d31449 100644 (file)
@@ -12,6 +12,7 @@
 #include "game-option/input-options.h"
 #include "game-option/play-record-options.h"
 #include "game-option/text-display-options.h"
+#include "game-option/map-screen-options.h"
 #include "grid/feature.h"
 #include "grid/grid.h"
 #include "inventory/inventory-slot-types.h"
@@ -161,7 +162,7 @@ void do_cmd_pet_dismiss(player_type *creature_ptr)
             /* HACK : Add the line to message buffer */
             msg_format(_("%s を放した。", "Dismissed %s."), friend_name);
             creature_ptr->update |= (PU_BONUS);
-            creature_ptr->window |= (PW_MESSAGE);
+            creature_ptr->window_flags |= (PW_MESSAGE);
 
             delete_monster_idx(creature_ptr, pet_ctr);
             Dismissed++;
@@ -170,7 +171,7 @@ void do_cmd_pet_dismiss(player_type *creature_ptr)
 
     Term->scr->cu = cu;
     Term->scr->cv = cv;
-    if (need_term_fresh(creature_ptr))
+    if (fresh_after)
         term_fresh();
 
     C_KILL(who, current_world_ptr->max_m_idx, MONSTER_IDX);
index 81ed0ff..73994cc 100644 (file)
@@ -309,5 +309,5 @@ void do_cmd_racial_power(player_type *creature_ptr)
         return;
 
     creature_ptr->redraw |= PR_HP | PR_MANA;
-    creature_ptr->window |= PW_PLAYER | PW_SPELL;
+    creature_ptr->window_flags |= PW_PLAYER | PW_SPELL;
 }
index 53327f9..e827240 100644 (file)
@@ -330,7 +330,7 @@ static int get_spell(player_type *caster_ptr, SPELL_IDX *sn, concptr prompt, OBJ
     flag = FALSE;
     redraw = FALSE;
 
-    caster_ptr->window |= (PW_SPELL);
+    caster_ptr->window_flags |= (PW_SPELL);
     handle_stuff(caster_ptr);
 
     /* Build a prompt (accept all spells) */
@@ -483,7 +483,7 @@ static int get_spell(player_type *caster_ptr, SPELL_IDX *sn, concptr prompt, OBJ
     if (redraw)
         screen_load();
 
-    caster_ptr->window |= (PW_SPELL);
+    caster_ptr->window_flags |= (PW_SPELL);
     handle_stuff(caster_ptr);
 
     /* Abort if needed */
@@ -927,7 +927,7 @@ void do_cmd_study(player_type *caster_ptr)
     update_creature(caster_ptr);
 
     /* Redraw object recall */
-    caster_ptr->window |= (PW_OBJECT);
+    caster_ptr->window_flags |= (PW_OBJECT);
 }
 
 /*!
@@ -1173,7 +1173,7 @@ void do_cmd_cast(player_type *caster_ptr)
             }
 
             gain_exp(caster_ptr, e * s_ptr->slevel);
-            caster_ptr->window |= (PW_OBJECT);
+            caster_ptr->window_flags |= (PW_OBJECT);
 
             switch (realm) {
             case REALM_LIFE:
@@ -1343,6 +1343,6 @@ void do_cmd_cast(player_type *caster_ptr)
         }
     }
 
-    caster_ptr->window |= (PW_PLAYER);
-    caster_ptr->window |= (PW_SPELL);
+    caster_ptr->window_flags |= (PW_PLAYER);
+    caster_ptr->window_flags |= (PW_SPELL);
 }
\ No newline at end of file
index 401f024..6f37a35 100644 (file)
@@ -413,5 +413,5 @@ void do_cmd_building(player_type *player_ptr)
 
        player_ptr->update |= (PU_VIEW | PU_MONSTERS | PU_BONUS | PU_LITE | PU_MON_LITE);
        player_ptr->redraw |= (PR_BASIC | PR_EXTRA | PR_EQUIPPY | PR_MAP);
-       player_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+       player_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 }
index 9e3e53b..200cdf7 100644 (file)
@@ -197,5 +197,5 @@ void do_cmd_store(player_type *player_ptr)
     player_ptr->update |= PU_MONSTERS;
     player_ptr->redraw |= PR_BASIC | PR_EXTRA | PR_EQUIPPY;
     player_ptr->redraw |= PR_MAP;
-    player_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    player_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
 }
index 5386879..06e3714 100644 (file)
@@ -38,7 +38,7 @@ void do_cmd_target(player_type *creature_ptr)
  */
 void do_cmd_look(player_type *creature_ptr)
 {
-    creature_ptr->window |= PW_MONSTER_LIST;
+    creature_ptr->window_flags |= PW_MONSTER_LIST;
     handle_stuff(creature_ptr);
     if (target_set(creature_ptr, TARGET_LOOK))
         msg_print(_("ターゲット決定。", "Target Selected."));
@@ -92,6 +92,6 @@ void do_cmd_locate(player_type *creature_ptr)
     verify_panel(creature_ptr);
     creature_ptr->update |= PU_MONSTERS;
     creature_ptr->redraw |= PR_MAP;
-    creature_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    creature_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     handle_stuff(creature_ptr);
 }
\ No newline at end of file
index 40cdc40..72d54d7 100644 (file)
@@ -511,7 +511,7 @@ void do_cmd_options(player_type *player_ptr)
         case 'W':
         case 'w': {
             do_cmd_options_win(player_ptr);
-            player_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MESSAGE | PW_OVERHEAD | PW_MONSTER | PW_OBJECT | PW_SNAPSHOT | PW_DUNGEON
+            player_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MESSAGE | PW_OVERHEAD | PW_MONSTER | PW_OBJECT | PW_SNAPSHOT | PW_DUNGEON
                 | PW_MONSTER_LIST);
             break;
         }
index 01e9da7..2055089 100644 (file)
@@ -60,7 +60,7 @@ static bool check_destory_item(player_type *creature_ptr, destroy_type *destroy_
     sprintf(destroy_ptr->out_val, _("本当に%sを壊しますか? [y/n/Auto]", "Really destroy %s? [y/n/Auto]"), destroy_ptr->o_name);
     msg_print(NULL);
     message_add(destroy_ptr->out_val);
-    creature_ptr->window |= PW_MESSAGE;
+    creature_ptr->window_flags |= PW_MESSAGE;
     handle_stuff(creature_ptr);
     while (TRUE) {
         prt(destroy_ptr->out_val, 0, 0);
index 0dd7654..427f07a 100644 (file)
@@ -301,7 +301,7 @@ void exe_eat_food(player_type *creature_ptr, INVENTORY_IDX item)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 
     /* Food can feed the player */
     if (is_specific_player_race(creature_ptr, RACE_VAMPIRE) || (creature_ptr->mimic_form == MIMIC_VAMPIRE)) {
@@ -328,7 +328,7 @@ void exe_eat_food(player_type *creature_ptr, INVENTORY_IDX item)
             msg_format(_("この%sにはもう魔力が残っていない。", "The %s has no charges left."), staff);
             o_ptr->ident |= (IDENT_EMPTY);
             creature_ptr->update |= inventory_flags;
-            creature_ptr->window |= (PW_INVEN);
+            creature_ptr->window_flags |= (PW_INVEN);
 
             return;
         }
@@ -370,7 +370,7 @@ void exe_eat_food(player_type *creature_ptr, INVENTORY_IDX item)
             floor_item_charges(creature_ptr->current_floor_ptr, 0 - item);
         }
 
-        creature_ptr->window |= (PW_INVEN | PW_EQUIP);
+        creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
         creature_ptr->update |= inventory_flags;
 
         /* Don't eat a staff/wand itself */
index ebe5800..24da8e8 100644 (file)
@@ -286,7 +286,7 @@ void do_cmd_wield(player_type *creature_ptr)
 
     creature_ptr->update |= PU_BONUS | PU_TORCH | PU_MANA;
     creature_ptr->redraw |= PR_EQUIPPY;
-    creature_ptr->window |= PW_INVEN | PW_EQUIP | PW_PLAYER;
+    creature_ptr->window_flags |= PW_INVEN | PW_EQUIP | PW_PLAYER;
     calc_android_exp(creature_ptr);
 }
 
@@ -319,7 +319,7 @@ void do_cmd_takeoff(player_type *creature_ptr)
             o_ptr->curse_flags = 0L;
             o_ptr->feeling = FEEL_NONE;
             creature_ptr->update |= PU_BONUS;
-            creature_ptr->window |= PW_EQUIP;
+            creature_ptr->window_flags |= PW_EQUIP;
             msg_print(_("呪いを打ち破った。", "You break the curse."));
         } else {
             msg_print(_("装備を外せなかった。", "You couldn't remove the equipment."));
index a5548f3..9758450 100644 (file)
@@ -186,7 +186,7 @@ void do_cmd_uninscribe(player_type *creature_ptr)
     msg_print(_("銘を消した。", "Inscription removed."));
     o_ptr->inscription = 0;
     creature_ptr->update |= (PU_COMBINE);
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
     creature_ptr->update |= (PU_BONUS);
 }
 
@@ -217,7 +217,7 @@ void do_cmd_inscribe(player_type *creature_ptr)
     if (get_string(_("銘: ", "Inscription: "), out_val, 80)) {
         o_ptr->inscription = quark_add(out_val);
         creature_ptr->update |= (PU_COMBINE);
-        creature_ptr->window |= (PW_INVEN | PW_EQUIP);
+        creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
         creature_ptr->update |= (PU_BONUS);
     }
 }
index c81ae44..b5f64eb 100644 (file)
@@ -449,7 +449,7 @@ static void drain_essence(player_type *creature_ptr)
     /* Apply autodestroy/inscription to the drained item */
     autopick_alter_item(creature_ptr, item, TRUE);
     creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-    creature_ptr->window |= (PW_INVEN);
+    creature_ptr->window_flags |= (PW_INVEN);
 }
 
 /*!
@@ -983,7 +983,7 @@ static void add_essence(player_type *creature_ptr, ESSENCE_IDX mode)
     take_turn(creature_ptr, 100);
     _(msg_format("%sに%sの能力を付加しました。", o_name, es_ptr->add_name), msg_format("You have added ability of %s to %s.", es_ptr->add_name, o_name));
     creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-    creature_ptr->window |= (PW_INVEN);
+    creature_ptr->window_flags |= (PW_INVEN);
 }
 
 /*!
@@ -1028,7 +1028,7 @@ static void erase_essence(player_type *creature_ptr)
         o_ptr->pval = 0;
     msg_print(_("エッセンスを取り去った。", "You removed all essence you have added."));
     creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-    creature_ptr->window |= (PW_INVEN);
+    creature_ptr->window_flags |= (PW_INVEN);
 }
 
 /*!
index 28b14a6..fda6432 100644 (file)
@@ -479,7 +479,7 @@ static void process_boomerang_back(player_type *creature_ptr, it_type *it_ptr)
         object_copy(it_ptr->o_ptr, it_ptr->q_ptr);
         creature_ptr->equip_cnt++;
         creature_ptr->update |= PU_BONUS | PU_TORCH | PU_MANA;
-        creature_ptr->window |= PW_EQUIP;
+        creature_ptr->window_flags |= PW_EQUIP;
         it_ptr->do_drop = FALSE;
         return;
     }
index 3ec10d8..948482b 100644 (file)
@@ -354,7 +354,7 @@ void exe_use_staff(player_type *creature_ptr, INVENTORY_IDX item)
         msg_print(_("この杖にはもう魔力が残っていない。", "The staff has no charges left."));
         o_ptr->ident |= (IDENT_EMPTY);
         creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-        creature_ptr->window |= (PW_INVEN);
+        creature_ptr->window_flags |= (PW_INVEN);
 
         return;
     }
@@ -386,7 +386,7 @@ void exe_use_staff(player_type *creature_ptr, INVENTORY_IDX item)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
     creature_ptr->update |= inventory_flags;
 
     /* Hack -- some uses are "free" */
index 914c8b8..d137c81 100644 (file)
@@ -400,7 +400,7 @@ void exe_zap_rod(player_type *creature_ptr, INVENTORY_IDX item)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 }
 
 /*!
index 9528904..e7b9987 100644 (file)
@@ -395,7 +395,7 @@ void exe_aim_wand(player_type *creature_ptr, INVENTORY_IDX item)
         msg_print(_("この魔法棒にはもう魔力が残っていない。", "The wand has no charges left."));
         o_ptr->ident |= (IDENT_EMPTY);
         creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-        creature_ptr->window |= (PW_INVEN);
+        creature_ptr->window_flags |= (PW_INVEN);
 
         return;
     }
@@ -427,7 +427,7 @@ void exe_aim_wand(player_type *creature_ptr, INVENTORY_IDX item)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
     creature_ptr->update |= inventory_flags;
 
     /* Use a single charge */
index 0393f85..5cbf1b1 100644 (file)
@@ -48,8 +48,8 @@ void do_cmd_redraw(player_type *creature_ptr)
 
        creature_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
 
-       creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
-       creature_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
+       creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
+       creature_ptr->window_flags |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
 
        update_playtime();
        handle_stuff(creature_ptr);
index 4d285ca..e001487 100644 (file)
@@ -238,7 +238,7 @@ bool get_check_strict(player_type *player_ptr, concptr prompt, BIT_FLAGS mode)
 {
     char buf[80];
     if (auto_more) {
-        player_ptr->window |= PW_MESSAGE;
+        player_ptr->window_flags |= PW_MESSAGE;
         handle_stuff(player_ptr);
         num_more = 0;
     }
@@ -261,7 +261,7 @@ bool get_check_strict(player_type *player_ptr, concptr prompt, BIT_FLAGS mode)
     prt(buf, 0, 0);
     if (!(mode & CHECK_NO_HISTORY) && player_ptr->playing) {
         message_add(buf);
-        player_ptr->window |= (PW_MESSAGE);
+        player_ptr->window_flags |= (PW_MESSAGE);
         handle_stuff(player_ptr);
     }
 
index 50a2606..42d4196 100644 (file)
@@ -293,7 +293,7 @@ static void generate_world(player_type *player_ptr, bool new_game)
 static void init_io(player_type *player_ptr)
 {
     term_xtra(TERM_XTRA_REACT, 0);
-    player_ptr->window |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT;
+    player_ptr->window_flags |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT;
     handle_stuff(player_ptr);
     if (arg_force_original)
         rogue_like_commands = FALSE;
index a4e906f..1123d5a 100644 (file)
@@ -437,7 +437,7 @@ bool hp_player(player_type *creature_ptr, int num)
         }
 
         creature_ptr->redraw |= (PR_HP);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
         if (num < 5) {
             msg_print(_("少し気分が良くなった。", "You feel a little better."));
         } else if (num < 15) {
index 0d29c8b..3599956 100644 (file)
@@ -46,7 +46,7 @@ void regenhp(player_type *creature_ptr, int percent)
 
     if (old_chp != creature_ptr->chp) {
         creature_ptr->redraw |= (PR_HP);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
         wild_regen = 20;
     }
 }
@@ -103,8 +103,8 @@ void regenmana(player_type *creature_ptr, MANA_POINT upkeep_factor, MANA_POINT r
 
     if (old_csp != creature_ptr->csp) {
         creature_ptr->redraw |= (PR_MANA);
-        creature_ptr->window |= (PW_PLAYER);
-        creature_ptr->window |= (PW_SPELL);
+        creature_ptr->window_flags |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_SPELL);
         wild_regen = 20;
     }
 }
@@ -229,8 +229,8 @@ void regenerate_captured_monsters(player_type *creature_ptr)
 
     if (heal) {
         creature_ptr->update |= (PU_COMBINE);
-        creature_ptr->window |= (PW_INVEN);
-        creature_ptr->window |= (PW_EQUIP);
+        creature_ptr->window_flags |= (PW_INVEN);
+        creature_ptr->window_flags |= (PW_EQUIP);
         wild_regen = 20;
     }
 }
index 144f174..d57bcf4 100644 (file)
@@ -77,7 +77,7 @@ void compact_objects(player_type *player_ptr, int size)
     if (size) {
         msg_print(_("アイテム情報を圧縮しています...", "Compacting objects..."));
         player_ptr->redraw |= PR_MAP;
-        player_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+        player_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     }
 
     floor_type *floor_ptr = player_ptr->current_floor_ptr;
index 363c7c0..04dbaf2 100644 (file)
@@ -11,6 +11,6 @@ void update_output(player_type* player_ptr)
 {
     if (player_ptr->redraw)
         redraw_stuff(player_ptr);
-    if (player_ptr->window)
+    if (player_ptr->window_flags)
         window_stuff(player_ptr);
 }
index aaa13d1..6a3c6a3 100644 (file)
@@ -44,6 +44,7 @@
 #include "system/floor-type-definition.h"
 #include "term/screen-processor.h"
 #include "view/display-messages.h"
+#include "window/display-sub-windows.h"
 #include "world/world-turn-processor.h"
 
 bool load = TRUE;
@@ -125,8 +126,13 @@ void process_player(player_type *creature_ptr)
 
     if (creature_ptr->energy_need > 0)
         return;
-    if (!command_rep)
+    if (!command_rep) {
         print_time(creature_ptr);
+    }
+
+    if (!fresh_after && (continuous_action_running(creature_ptr) || !command_rep)) {
+        stop_term_fresh();
+    }
 
     if (creature_ptr->resting < 0) {
         if (creature_ptr->resting == COMMAND_ARG_REST_FULL_HEALING) {
@@ -236,7 +242,7 @@ void process_player(player_type *creature_ptr)
 
     /*** Handle actual user input ***/
     while (creature_ptr->energy_need <= 0) {
-        creature_ptr->window |= PW_PLAYER;
+        creature_ptr->window_flags |= PW_PLAYER;
         creature_ptr->sutemi = FALSE;
         creature_ptr->counter = FALSE;
         creature_ptr->now_damaged = FALSE;
@@ -283,7 +289,7 @@ void process_player(player_type *creature_ptr)
         } else {
             move_cursor_relative(creature_ptr->y, creature_ptr->x);
 
-            creature_ptr->window |= PW_MONSTER_LIST;
+            creature_ptr->window_flags |= PW_MONSTER_LIST;
             window_stuff(creature_ptr);
 
             can_save = TRUE;
@@ -327,8 +333,8 @@ void process_player(player_type *creature_ptr)
                     if (!monster_is_valid(m_ptr))
                         continue;
 
-                    if (m_ptr->mflag & MFLAG_NICE) {
-                        m_ptr->mflag &= ~(MFLAG_NICE);
+                    if (m_ptr->mflag & MFLAG_PREVENT_MAGIC) {
+                        m_ptr->mflag &= ~(MFLAG_PREVENT_MAGIC);
                     }
 
                     if (m_ptr->mflag2 & MFLAG2_MARK) {
@@ -371,7 +377,7 @@ void process_player(player_type *creature_ptr)
             if (creature_ptr->timewalk && (creature_ptr->energy_need > -1000)) {
                 creature_ptr->redraw |= (PR_MAP);
                 creature_ptr->update |= (PU_MONSTERS);
-                creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+                creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 
                 msg_print(_("「時は動きだす…」", "You feel time flowing around you once more."));
                 msg_print(NULL);
index 50105d5..aded767 100644 (file)
@@ -14,7 +14,7 @@ void handle_stuff(player_type* player_ptr)
         update_creature(player_ptr);
     if (player_ptr->redraw)
         redraw_stuff(player_ptr);
-    if (player_ptr->window)
+    if (player_ptr->window_flags)
         window_stuff(player_ptr);
 }
 
@@ -24,7 +24,7 @@ void handle_stuff(player_type* player_ptr)
 void monster_race_track(player_type *player_ptr, MONRACE_IDX r_idx)
 {
     player_ptr->monster_race_idx = r_idx;
-    player_ptr->window |= (PW_MONSTER);
+    player_ptr->window_flags |= (PW_MONSTER);
 }
 
 /*
@@ -33,7 +33,7 @@ void monster_race_track(player_type *player_ptr, MONRACE_IDX r_idx)
 void object_kind_track(player_type *player_ptr, KIND_OBJECT_IDX k_idx)
 {
     player_ptr->object_kind_idx = k_idx;
-    player_ptr->window |= (PW_OBJECT);
+    player_ptr->window_flags |= (PW_OBJECT);
 }
 
 /*
@@ -54,7 +54,7 @@ void health_track(player_type *player_ptr, MONSTER_IDX m_idx)
 bool update_player(player_type *caster_ptr)
 {
     caster_ptr->update |= PU_COMBINE | PU_REORDER;
-    caster_ptr->window |= PW_INVEN;
+    caster_ptr->window_flags |= PW_INVEN;
     return TRUE;
 }
 
@@ -66,6 +66,6 @@ bool redraw_player(player_type *caster_ptr)
 
     caster_ptr->redraw |= PR_MANA;
     caster_ptr->update |= PU_COMBINE | PU_REORDER;
-    caster_ptr->window |= PW_INVEN;
+    caster_ptr->window_flags |= PW_INVEN;
     return TRUE;
 }
index 08a288b..8515676 100644 (file)
@@ -34,8 +34,8 @@ void redraw_window(void)
     if (!current_world_ptr->character_dungeon)
         return;
 
-    p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
-    p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
+    p_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
+    p_ptr->window_flags |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
 
     handle_stuff(p_ptr);
     term_redraw();
@@ -226,68 +226,63 @@ void redraw_stuff(player_type *creature_ptr)
  */
 void window_stuff(player_type *player_ptr)
 {
-    if (!player_ptr->window)
+    if (!player_ptr->window_flags)
         return;
     
     BIT_FLAGS mask = 0L;
     for (int j = 0; j < 8; j++) {
-        if (angband_term[j])
+        if (angband_term[j] && !angband_term[j]->never_fresh)
             mask |= window_flag[j];
     }
+    BIT_FLAGS window_flags = player_ptr->window_flags & mask;
 
-    player_ptr->window &= mask;
-
-    if (!player_ptr->window)
-        return;
-
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_INVEN)) {
-        player_ptr->window &= ~(PW_INVEN);
+    if (window_flags & (PW_INVEN)) {
+        player_ptr->window_flags &= ~(PW_INVEN);
         fix_inventory(player_ptr, 0); // TODO:2.2.2 まともなtval参照手段を確保
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_EQUIP)) {
-        player_ptr->window &= ~(PW_EQUIP);
+    if (window_flags & (PW_EQUIP)) {
+        player_ptr->window_flags &= ~(PW_EQUIP);
         fix_equip(player_ptr, 0); // TODO:2.2.2 まともなtval参照手段を確保
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_SPELL)) {
-        player_ptr->window &= ~(PW_SPELL);
+    if (window_flags & (PW_SPELL)) {
+        player_ptr->window_flags &= ~(PW_SPELL);
         fix_spell(player_ptr);
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_PLAYER)) {
-        player_ptr->window &= ~(PW_PLAYER);
+    if (window_flags & (PW_PLAYER)) {
+        player_ptr->window_flags &= ~(PW_PLAYER);
         fix_player(player_ptr);
     }
 
-    if (player_ptr->window & (PW_MONSTER_LIST)) {
-        if (need_term_fresh(player_ptr))
-            player_ptr->window &= ~(PW_MONSTER_LIST);
-        fix_monster_list(player_ptr); //need this side-effect for work targetting collect
+    if (window_flags & (PW_MONSTER_LIST)) {
+        player_ptr->window_flags &= ~(PW_MONSTER_LIST);
+        fix_monster_list(player_ptr, FALSE);
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_MESSAGE)) {
-        player_ptr->window &= ~(PW_MESSAGE);
+    if (window_flags & (PW_MESSAGE)) {
+        player_ptr->window_flags &= ~(PW_MESSAGE);
         fix_message();
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_OVERHEAD)) {
-        player_ptr->window &= ~(PW_OVERHEAD);
+    if (window_flags & (PW_OVERHEAD)) {
+        player_ptr->window_flags &= ~(PW_OVERHEAD);
         fix_overhead(player_ptr);
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_DUNGEON)) {
-        player_ptr->window &= ~(PW_DUNGEON);
+    if (window_flags & (PW_DUNGEON)) {
+        player_ptr->window_flags &= ~(PW_DUNGEON);
         fix_dungeon(player_ptr);
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_MONSTER)) {
-        player_ptr->window &= ~(PW_MONSTER);
+    if (window_flags & (PW_MONSTER)) {
+        player_ptr->window_flags &= ~(PW_MONSTER);
         fix_monster(player_ptr);
     }
 
-    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_OBJECT)) {
-        player_ptr->window &= ~(PW_OBJECT);
+    if (window_flags & (PW_OBJECT)) {
+        player_ptr->window_flags &= ~(PW_OBJECT);
         fix_object(player_ptr);
     }
 }
\ No newline at end of file
index 15a1a3b..d909c86 100644 (file)
@@ -93,7 +93,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
     msg_erase();
 
     current_world_ptr->character_xtra = TRUE;
-    player_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MONSTER | PW_OVERHEAD | PW_DUNGEON);
+    player_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MONSTER | PW_OVERHEAD | PW_DUNGEON);
     player_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_EQUIPPY | PR_MAP);
     player_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS | PU_VIEW | PU_LITE | PU_MON_LITE | PU_TORCH | PU_MONSTERS | PU_DISTANCE | PU_FLOW);
     handle_stuff(player_ptr);
@@ -102,7 +102,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
     player_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
     player_ptr->update |= (PU_COMBINE | PU_REORDER);
     handle_stuff(player_ptr);
-    if (need_term_fresh(player_ptr))
+    if (fresh_after)
         term_fresh();
 
     if (quest_num
index ad82305..199cbc7 100644 (file)
@@ -327,9 +327,9 @@ void do_cmd_quest(player_type *player_ptr)
     if (!get_check(_("クエストに入りますか?", "Do you enter? ")))
         return;
     if (is_echizen(player_ptr))
-        msg_print(_("『とにかく入ってみようぜぇ。』", ""));
+        msg_print(_("『とにかく入ってみようぜぇ。』", "\"Let's go in anyway.\""));
     else if (player_ptr->pseikaku == PERSONALITY_CHARGEMAN)
-        msg_print("『全滅してやるぞ!』");
+        msg_print(_("『全滅してやるぞ!』", "\"I'll annihilate THEM!\""));
 
     /* Player enters a new quest */
     player_ptr->oldpy = 0;
index 1adac81..ee87476 100644 (file)
@@ -197,7 +197,7 @@ static void effect_monster_psi_drain_resist(player_type *caster_ptr, effect_mons
        if (caster_ptr->csp < 0) caster_ptr->csp = 0;
 
        caster_ptr->redraw |= PR_MANA;
-       caster_ptr->window |= (PW_SPELL);
+       caster_ptr->window_flags |= (PW_SPELL);
        take_hit(caster_ptr, DAMAGE_ATTACK, em_ptr->dam, em_ptr->killer, -1);
        em_ptr->dam = 0;
 }
@@ -214,7 +214,7 @@ static void effect_monster_psi_drain_change_power(player_type *caster_ptr, effec
        b = MIN(caster_ptr->msp, caster_ptr->csp + b);
        caster_ptr->csp = b;
        caster_ptr->redraw |= PR_MANA;
-       caster_ptr->window |= (PW_SPELL);
+       caster_ptr->window_flags |= (PW_SPELL);
 }
 
 
index a852e5e..345fa12 100644 (file)
@@ -593,7 +593,7 @@ bool affect_monster(
 
     lite_spot(caster_ptr, em_ptr->y, em_ptr->x);
     if ((caster_ptr->monster_race_idx == em_ptr->m_ptr->r_idx) && (em_ptr->seen || !em_ptr->m_ptr->r_idx))
-        caster_ptr->window |= (PW_MONSTER);
+        caster_ptr->window_flags |= (PW_MONSTER);
 
     postprocess_spell(caster_ptr, em_ptr);
     return em_ptr->obvious;
index e738f90..1dc9d21 100644 (file)
@@ -367,7 +367,7 @@ void effect_player_lite(player_type *target_ptr, effect_player_type *ep_ptr)
 
     target_ptr->redraw |= (PR_MAP | PR_STATUS);
     target_ptr->update |= (PU_MONSTERS);
-    target_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    target_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 }
 
 void effect_player_dark(player_type *target_ptr, effect_player_type *ep_ptr)
index a03c9c6..b1dcc0d 100644 (file)
@@ -38,7 +38,7 @@ void effect_player_drain_mana(player_type *target_ptr, effect_player_type *ep_pt
 
     learn_spell(target_ptr, ep_ptr->monspell);
     target_ptr->redraw |= (PR_MANA);
-    target_ptr->window |= (PW_PLAYER | PW_SPELL);
+    target_ptr->window_flags |= (PW_PLAYER | PW_SPELL);
 
     if ((ep_ptr->who <= 0) || (ep_ptr->m_ptr->hp >= ep_ptr->m_ptr->maxhp)) {
         ep_ptr->dam = 0;
index 1d0e3a0..6799bda 100644 (file)
@@ -9,6 +9,7 @@
 #include "floor/cave.h"
 #include "floor/line-of-sight.h"
 #include "game-option/special-options.h"
+#include "game-option/map-screen-options.h"
 #include "grid/feature-flag-types.h"
 #include "io/cursor.h"
 #include "io/screen-util.h"
@@ -542,7 +543,7 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             }
 
             move_cursor_relative(by, bx);
-            if (need_term_fresh(caster_ptr))
+            if (fresh_after)
                 term_fresh();
         }
     }
index d81a586..774da8d 100644 (file)
@@ -108,8 +108,8 @@ static void set_pet_params(player_type *master_ptr, monster_race **r_ptr, const
     m_ptr->mtimed[MTIMED_CSLEEP] = 0;
     m_ptr->hold_o_idx = 0;
     m_ptr->target_y = 0;
-    if (((*r_ptr)->flags1 & RF1_FORCE_SLEEP) && !ironman_nightmare) {
-        m_ptr->mflag |= MFLAG_NICE;
+    if (((*r_ptr)->flags1 & RF1_PREVENT_SUDDEN_MAGIC) && !ironman_nightmare) {
+        m_ptr->mflag |= MFLAG_PREVENT_MAGIC;
         repair_monsters = TRUE;
     }
 }
index 3bdfaed..f6b69b9 100644 (file)
@@ -58,7 +58,7 @@ void day_break(player_type *subject_ptr)
 
     subject_ptr->update |= PU_MONSTERS | PU_MON_LITE;
     subject_ptr->redraw |= PR_MAP;
-    subject_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    subject_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     if (((subject_ptr->special_defense & NINJA_S_STEALTH) != 0) && ((floor_ptr->grid_array[subject_ptr->y][subject_ptr->x].info & CAVE_GLOW) != 0))
         set_superstealth(subject_ptr, FALSE);
 }
@@ -88,7 +88,7 @@ void night_falls(player_type *subject_ptr)
 
     subject_ptr->update |= PU_MONSTERS | PU_MON_LITE;
     subject_ptr->redraw |= PR_MAP;
-    subject_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    subject_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
 
     if (((subject_ptr->special_defense & NINJA_S_STEALTH) != 0) && ((floor_ptr->grid_array[subject_ptr->y][subject_ptr->x].info & CAVE_GLOW) != 0))
         set_superstealth(subject_ptr, FALSE);
index 80a64c0..254ceec 100644 (file)
@@ -620,6 +620,10 @@ void floor_item_describe(player_type *owner_ptr, INVENTORY_IDX item)
 object_type *choose_object(player_type *owner_ptr, OBJECT_IDX *idx, concptr q, concptr s, BIT_FLAGS option, tval_type tval)
 {
     OBJECT_IDX item;
+
+    if (idx)
+        *idx = INVEN_NONE;
+
     if (!get_item(owner_ptr, &item, q, s, option, tval))
         return NULL;
 
index 98fdc4b..209ee18 100644 (file)
@@ -569,7 +569,7 @@ void lite_spot(player_type *player_ptr, POSITION y, POSITION x)
         term_queue_bigchar(panel_col_of(x), y - panel_row_prt, a, c, ta, tc);
 
         /* Update sub-windows */
-        player_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+        player_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     }
 }
 
index 1f378f7..c532ed9 100644 (file)
@@ -93,7 +93,7 @@ concptr r_info_flags1[NUM_R_FLAGS_1] = {
        "ATTR_MULTI",
        "FORCE_DEPTH",
        "FORCE_MAXHP",
-       "FORCE_SLEEP",
+       "PREVENT_SUDDEN_MAGIC",
        "FORCE_EXTRA",
        "ATTR_SEMIRAND",
        "FRIENDS",
index e8d7c35..e96cc35 100644 (file)
@@ -306,7 +306,7 @@ bool get_item_floor(player_type *owner_ptr, COMMAND_CODE *cp, concptr pmt, concp
             fis_ptr->toggle = !fis_ptr->toggle;
         }
 
-        owner_ptr->window |= (PW_INVEN | PW_EQUIP);
+        owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
         handle_stuff(owner_ptr);
         COMMAND_CODE get_item_label = 0;
         if (command_wrk == USE_INVEN) {
@@ -842,7 +842,7 @@ bool get_item_floor(player_type *owner_ptr, COMMAND_CODE *cp, concptr pmt, concp
     if (fis_ptr->toggle)
         toggle_inventory_equipment(owner_ptr);
 
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
     handle_stuff(owner_ptr);
     prt("", 0, 0);
     if (fis_ptr->oops && str)
index 49b093c..6508d76 100644 (file)
@@ -55,7 +55,7 @@ void inven_item_increase(player_type *owner_ptr, INVENTORY_IDX item, ITEM_NUMBER
     owner_ptr->update |= (PU_BONUS);
     owner_ptr->update |= (PU_MANA);
     owner_ptr->update |= (PU_COMBINE);
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
 
     if (o_ptr->number || !owner_ptr->ele_attack)
         return;
@@ -89,8 +89,8 @@ void inven_item_optimize(player_type *owner_ptr, INVENTORY_IDX item)
         owner_ptr->update |= PU_TORCH;
         owner_ptr->update |= PU_MANA;
 
-        owner_ptr->window |= PW_EQUIP;
-        owner_ptr->window |= PW_SPELL;
+        owner_ptr->window_flags |= PW_EQUIP;
+        owner_ptr->window_flags |= PW_SPELL;
         return;
     }
 
@@ -101,8 +101,8 @@ void inven_item_optimize(player_type *owner_ptr, INVENTORY_IDX item)
     }
 
     object_wipe(&owner_ptr->inventory_list[i]);
-    owner_ptr->window |= PW_INVEN;
-    owner_ptr->window |= PW_SPELL;
+    owner_ptr->window_flags |= PW_INVEN;
+    owner_ptr->window_flags |= PW_SPELL;
 }
 
 /*!
@@ -206,7 +206,7 @@ void combine_pack(player_type *owner_ptr)
                     }
                 }
 
-                owner_ptr->window |= (PW_INVEN);
+                owner_ptr->window_flags |= (PW_INVEN);
                 combined = TRUE;
                 break;
             }
@@ -259,7 +259,7 @@ void reorder_pack(player_type *owner_ptr)
         }
 
         object_copy(&owner_ptr->inventory_list[j], q_ptr);
-        owner_ptr->window |= (PW_INVEN);
+        owner_ptr->window_flags |= (PW_INVEN);
     }
 
     if (flag)
@@ -302,7 +302,7 @@ s16b store_item_to_inventory(player_type *owner_ptr, object_type *o_ptr)
             object_absorb(j_ptr, o_ptr);
 
             owner_ptr->update |= (PU_BONUS);
-            owner_ptr->window |= (PW_INVEN);
+            owner_ptr->window_flags |= (PW_INVEN);
             return (j);
         }
     }
@@ -341,7 +341,7 @@ s16b store_item_to_inventory(player_type *owner_ptr, object_type *o_ptr)
 
     owner_ptr->inven_cnt++;
     owner_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
-    owner_ptr->window |= (PW_INVEN);
+    owner_ptr->window_flags |= (PW_INVEN);
 
     return i;
 }
index ba20cee..5295d80 100644 (file)
@@ -16,5 +16,6 @@ typedef enum inventory_slot_type {
     INVEN_FEET = 35, /*!< アイテムスロット…脚部 */
     INVEN_AMMO = 23, /*!< used for get_random_ego()  */
     INVEN_TOTAL = 36, /*!< Total number of inventory_list slots (hard-coded). */
+    INVEN_NONE = 1000, /*!< アイテムスロット非選択状態 */
     INVEN_FORCE = 1111, /*!< inventory_list slot for selecting force (hard-coded). */
 } inventory_slot_type;
index 40f33c1..746f481 100644 (file)
@@ -295,7 +295,7 @@ bool get_item(player_type *owner_ptr, OBJECT_IDX *cp, concptr pmt, concptr str,
             item_selection_ptr->toggle = !item_selection_ptr->toggle;
         }
 
-        owner_ptr->window |= (PW_INVEN | PW_EQUIP);
+        owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
         handle_stuff(owner_ptr);
 
         if (!command_wrk) {
@@ -608,7 +608,7 @@ bool get_item(player_type *owner_ptr, OBJECT_IDX *cp, concptr pmt, concptr str,
     if (item_selection_ptr->toggle)
         toggle_inventory_equipment(owner_ptr);
 
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
     handle_stuff(owner_ptr);
     prt("", 0, 0);
     if (item_selection_ptr->oops && str)
index 9b75396..fa0145e 100644 (file)
@@ -97,7 +97,7 @@ void py_pickup_floor(player_type *owner_ptr, bool pickup)
             msg_format(_(" $%ld の価値がある%sを見つけた。", "You have found %ld gold pieces worth of %s."), (long)o_ptr->pval, o_name);
             owner_ptr->au += o_ptr->pval;
             owner_ptr->redraw |= (PR_GOLD);
-            owner_ptr->window |= (PW_PLAYER);
+            owner_ptr->window_flags |= (PW_PLAYER);
             delete_object_idx(owner_ptr, this_o_idx);
             continue;
         } else if (o_ptr->marked & OM_NOMSG) {
@@ -241,7 +241,7 @@ void carry(player_type *creature_ptr, bool pickup)
     verify_panel(creature_ptr);
     creature_ptr->update |= PU_MONSTERS;
     creature_ptr->redraw |= PR_MAP;
-    creature_ptr->window |= PW_OVERHEAD;
+    creature_ptr->window_flags |= PW_OVERHEAD;
     handle_stuff(creature_ptr);
     grid_type *g_ptr = &creature_ptr->current_floor_ptr->grid_array[creature_ptr->y][creature_ptr->x];
     autopick_pickup_items(creature_ptr, g_ptr);
@@ -265,7 +265,7 @@ void carry(player_type *creature_ptr, bool pickup)
             sound(SOUND_SELL);
             creature_ptr->au += value;
             creature_ptr->redraw |= (PR_GOLD);
-            creature_ptr->window |= (PW_PLAYER);
+            creature_ptr->window_flags |= (PW_PLAYER);
             continue;
         }
 
index 5fdab10..ccb8ad7 100644 (file)
@@ -70,7 +70,7 @@ void recharge_magic_items(player_type *creature_ptr)
     }
 
     if (changed) {
-        creature_ptr->window |= (PW_EQUIP);
+        creature_ptr->window_flags |= (PW_EQUIP);
         wild_regen = 20;
     }
 
@@ -104,7 +104,7 @@ void recharge_magic_items(player_type *creature_ptr)
     }
 
     if (changed) {
-        creature_ptr->window |= (PW_INVEN);
+        creature_ptr->window_flags |= (PW_INVEN);
         wild_regen = 20;
     }
 
index be679a5..ae585cc 100644 (file)
@@ -1,7 +1,8 @@
 #include "io/input-key-acceptor.h"
 #include "cmd-io/macro-util.h"
-#include "game-option/map-screen-options.h"
+#include "core/window-redrawer.h"
 #include "game-option/input-options.h"
+#include "game-option/map-screen-options.h"
 #include "io/signal-handlers.h"
 #include "term/gameterm.h"
 #include "util/string-processor.h"
@@ -201,6 +202,7 @@ char inkey(void)
         }
 
         if (!done && (0 != term_inkey(&kk, FALSE, FALSE))) {
+            start_term_fresh();
             term_activate(old);
             term_fresh();
             term_activate(angband_term[0]);
@@ -395,3 +397,19 @@ int inkey_special(bool numpad_cursor)
     inkey_macro_trigger_string[0] = '\0';
     return (int)((unsigned char)key);
 }
+
+void stop_term_fresh(void)
+{
+    for (int j = 0; j < 8; j++) {
+        if (angband_term[j])
+            angband_term[j]->never_fresh = TRUE;
+    }
+}
+
+void start_term_fresh(void)
+{
+    for (int j = 0; j < 8; j++) {
+        if (angband_term[j])
+            angband_term[j]->never_fresh = FALSE;
+    }
+}
index d385821..9a58253 100644 (file)
@@ -29,3 +29,5 @@ extern concptr inkey_next;
 
 char inkey(void);
 int inkey_special(bool numpad_cursor);
+void start_term_fresh(void);
+void stop_term_fresh(void);
index c385a29..8acf043 100644 (file)
@@ -2,8 +2,10 @@
 #include "cmd-io/cmd-menu-content-table.h"
 #include "cmd-io/macro-util.h"
 #include "core/asking-player.h" // todo 相互依存している、後で何とかする.
+#include "core/player-processor.h"
 #include "game-option/game-play-options.h"
 #include "game-option/input-options.h"
+#include "game-option/map-screen-options.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/cursor.h"
 #include "io/input-key-acceptor.h"
@@ -16,6 +18,7 @@
 #include "util/quarks.h"
 #include "util/string-processor.h"
 #include "view/display-messages.h"
+#include "window/display-sub-windows.h"
 #include "window/main-window-util.h"
 #include "world/world.h"
 
@@ -206,6 +209,11 @@ void request_command(player_type *player_ptr, int shopping)
         if (!macro_running() && !command_new && auto_debug_save) {
             save_player(player_ptr, SAVE_TYPE_DEBUG);
         }
+        if (macro_running() && !fresh_after) {
+            stop_term_fresh();
+        } else {
+            fix_monster_list(player_ptr, TRUE);
+        }
 
         if (command_new) {
             msg_erase();
@@ -215,9 +223,7 @@ void request_command(player_type *player_ptr, int shopping)
             msg_flag = FALSE;
             num_more = 0;
             inkey_flag = TRUE;
-            if (need_term_fresh(player_ptr)) {
-                term_fresh();
-            }
+            term_fresh();
             cmd = inkey();
             if (!shopping && command_menu && ((cmd == '\r') || (cmd == '\n') || (cmd == 'x') || (cmd == 'X')) && !keymap_act[mode][(byte)(cmd)])
                 cmd = inkey_from_menu(player_ptr);
@@ -354,4 +360,4 @@ void request_command(player_type *player_ptr, int shopping)
     }
 
     prt("", 0, 0);
-}
\ No newline at end of file
+}
index 39123aa..a03d687 100644 (file)
@@ -86,7 +86,7 @@ int lore_do_probe(player_type *player_ptr, MONRACE_IDX r_idx)
     r_ptr->r_xtra1 |= MR1_EVOLUTION;
 
     if (player_ptr->monster_race_idx == r_idx) {
-        player_ptr->window |= (PW_MONSTER);
+        player_ptr->window_flags |= (PW_MONSTER);
     }
 
     return n;
@@ -118,5 +118,5 @@ void lore_treasure(player_type *player_ptr, MONSTER_IDX m_idx, ITEM_NUMBER num_i
     if (r_ptr->flags1 & (RF1_DROP_GREAT))
         r_ptr->r_flags1 |= (RF1_DROP_GREAT);
     if (player_ptr->monster_race_idx == m_ptr->r_idx)
-        player_ptr->window |= (PW_MONSTER);
+        player_ptr->window_flags |= (PW_MONSTER);
 }
index 1ec8cb2..21f14ff 100644 (file)
@@ -115,6 +115,7 @@ static unsigned long create_pixel(Display *dpy, byte red, byte green, byte blue)
        xcol.red = xcolour.red;
        xcol.green = xcolour.green;
        xcol.blue = xcolour.blue;
+       xcol.alpha = 0xFFFF;
        if (!XftColorAllocValue(dpy, DefaultVisual(dpy, 0), cmap, &xcol, &color))
        {
                quit_fmt("Couldn't allocate bitmap color '#%02x%02x%02x'\n",
index d50d04f..8420928 100644 (file)
@@ -3222,7 +3222,7 @@ LRESULT PASCAL AngbandListProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara
             term_resize(td->cols, td->rows);
             term_activate(old_term);
             InvalidateRect(td->w, NULL, TRUE);
-            p_ptr->window = 0xFFFFFFFF;
+            p_ptr->window_flags = 0xFFFFFFFF;
             handle_stuff(p_ptr);
         }
 
index 1c66c9f..ecb4802 100644 (file)
@@ -911,7 +911,7 @@ static errr Infofnt_text_std(int x, int y, concptr str, int len)
                char *kanji = malloc(outlen);
                char *sp; char *kp = kanji;
                char sbuf[1024];
-               angband_strcpy(sbuf, str, sizeof(sbuf));
+               memcpy(sbuf, str, (size_t)len);
                sp = sbuf;
                iconv(cd, &sp, &inlen, &kp, &outlen);
                iconv_close(cd);
@@ -1047,7 +1047,8 @@ static x11_selection_type s_ptr[1];
 static void convert_to_euc(char *buf)
 {
        size_t inlen = strlen(buf);
-       size_t outlen = inlen + 1;
+       size_t outlen_orig = inlen + 1;
+       size_t outlen = outlen_orig;
        char tmp[outlen];
 
        iconv_t iconvd = iconv_open("EUC-JP", "UTF-8");
@@ -1056,10 +1057,9 @@ static void convert_to_euc(char *buf)
        iconv(iconvd, &inbuf, &inlen, &outbuf, &outlen);
        iconv_close(iconvd);
 
-       int i, l = strlen(tmp);
-       for (i = 0; i < l; i++)
-               buf[i] = tmp[i];
-       buf[l] = '\0';
+       size_t n = outlen_orig - outlen;
+       memcpy(buf, tmp, n);
+       buf[n] = '\0';
 }
 #endif
 
index 17f7c2a..a57e4d7 100644 (file)
@@ -131,7 +131,7 @@ static void see_arena_poster(player_type *player_ptr)
     msg_format(_("%s に挑戦するものはいないか?", "Do I hear any challenges against: %s"), name);
 
     player_ptr->monster_race_idx = arena_info[player_ptr->arena_number].r_idx;
-    player_ptr->window |= (PW_MONSTER);
+    player_ptr->window_flags |= (PW_MONSTER);
     handle_stuff(player_ptr);
 }
 
index c5493a2..f212d35 100644 (file)
@@ -158,7 +158,7 @@ void building_recharge(player_type *player_ptr)
     msg_format("%^s %s recharged for %d gold.", tmp_str, ((o_ptr->number > 1) ? "were" : "was"), price);
 #endif
     player_ptr->update |= (PU_COMBINE | PU_REORDER);
-    player_ptr->window |= (PW_INVEN);
+    player_ptr->window_flags |= (PW_INVEN);
     player_ptr->au -= price;
 }
 
@@ -268,6 +268,6 @@ void building_recharge_all(player_type *player_ptr)
     msg_format(_("$%d で再充填しました。", "You pay %d gold."), total_cost);
     msg_print(NULL);
     player_ptr->update |= (PU_COMBINE | PU_REORDER);
-    player_ptr->window |= (PW_INVEN);
+    player_ptr->window_flags |= (PW_INVEN);
     player_ptr->au -= total_cost;
 }
index 01688e0..59e0c22 100644 (file)
@@ -110,6 +110,6 @@ bool do_cmd_cast_learned(player_type *caster_ptr)
 
     take_turn(caster_ptr, 100);
     caster_ptr->redraw |= PR_MANA;
-    caster_ptr->window |= PW_PLAYER | PW_SPELL;
+    caster_ptr->window_flags |= PW_PLAYER | PW_SPELL;
     return TRUE;
 }
index d6b9409..17a30fd 100644 (file)
@@ -84,7 +84,7 @@ bool psychometry(player_type *caster_ptr)
     o_ptr->marked |= OM_TOUCHED;
 
     caster_ptr->update |= (PU_COMBINE | PU_REORDER);
-    caster_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    caster_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 
     bool okay = FALSE;
     switch (o_ptr->tval) {
index 0993398..5e9ca2b 100644 (file)
@@ -12,6 +12,7 @@
 #include "effect/spells-effect-util.h"
 #include "floor/cave.h"
 #include "game-option/disturbance-options.h"
+#include "game-option/map-screen-options.h"
 #include "game-option/special-options.h"
 #include "grid/feature.h"
 #include "io/cursor.h"
@@ -168,7 +169,7 @@ bool binding_field(player_type *caster_ptr, HIT_POINT dam)
                         u16b p = bolt_pict(y, x, y, x, GF_MANA);
                         print_rel(caster_ptr, PICT_C(p), PICT_A(p), y, x);
                         move_cursor_relative(y, x);
-                        if (need_term_fresh(caster_ptr)) {
+                        if (fresh_after) {
                             term_fresh();
                             term_xtra(TERM_XTRA_DELAY, msec);
                         }
@@ -542,4 +543,4 @@ bool cast_mirror_spell(player_type *caster_ptr, mind_mirror_master_type spell)
 
     caster_ptr->magic_num1[0] = 0;
     return TRUE;
-}
\ No newline at end of file
+}
index dc8ff95..71913ca 100644 (file)
@@ -68,7 +68,7 @@ bool kawarimi(player_type *caster_ptr, bool success)
         return FALSE;
 
     if (!success && one_in_(3)) {
-        msg_print(_("失æ\95\97ï¼\81é\80\83ã\81\92ã\82\89ã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82", "Failed! You couldn't run away."));
+        msg_print(_("å¤\89ã\82\8fã\82\8a身失æ\95\97ï¼\81é\80\83ã\81\92ã\82\89ã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82", "Kawarimi failed! You couldn't run away."));
         caster_ptr->special_defense &= ~(NINJA_KAWARIMI);
         caster_ptr->redraw |= (PR_STATUS);
         return FALSE;
@@ -88,7 +88,7 @@ bool kawarimi(player_type *caster_ptr, bool success)
     if (success)
         msg_print(_("攻撃を受ける前に素早く身をひるがえした。", "You have turned around just before the attack hit you."));
     else
-        msg_print(_("失æ\95\97ï¼\81æ\94»æ\92\83ã\82\92å\8f\97ã\81\91ã\81¦ã\81\97ã\81¾ã\81£ã\81\9fã\80\82", "Failed! You are hit by the attack."));
+        msg_print(_("å¤\89ã\82\8fã\82\8a身失æ\95\97ï¼\81æ\94»æ\92\83ã\82\92å\8f\97ã\81\91ã\81¦ã\81\97ã\81¾ã\81£ã\81\9fã\80\82", "Kawarimi failed! You are hit by the attack."));
 
     caster_ptr->special_defense &= ~(NINJA_KAWARIMI);
     caster_ptr->redraw |= (PR_STATUS);
@@ -469,4 +469,4 @@ bool cast_ninja_spell(player_type *caster_ptr, mind_ninja_type spell)
         break;
     }
     return TRUE;
-}
\ No newline at end of file
+}
index a725ecd..1cb3e88 100644 (file)
@@ -281,7 +281,7 @@ bool get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool only_browse)
     if (redraw && !only_browse)
         screen_load();
 
-    caster_ptr->window |= PW_SPELL;
+    caster_ptr->window_flags |= PW_SPELL;
     handle_stuff(caster_ptr);
     if (!flag)
         return FALSE;
index 72de8d9..99048ff 100644 (file)
@@ -62,7 +62,7 @@ bool bless_weapon(player_type *caster_ptr)
         o_ptr->ident |= IDENT_SENSE;
         o_ptr->feeling = FEEL_NONE;
         caster_ptr->update |= PU_BONUS;
-        caster_ptr->window |= PW_EQUIP;
+        caster_ptr->window_flags |= PW_EQUIP;
     }
 
     /*
@@ -133,7 +133,7 @@ bool bless_weapon(player_type *caster_ptr)
     }
 
     caster_ptr->update |= PU_BONUS;
-    caster_ptr->window |= PW_EQUIP | PW_PLAYER;
+    caster_ptr->window_flags |= PW_EQUIP | PW_PLAYER;
     calc_android_exp(caster_ptr);
     return TRUE;
 }
index 41a3c11..84b3a88 100644 (file)
@@ -384,7 +384,7 @@ static int get_snipe_power(player_type *sniper_ptr, COMMAND_CODE *sn, bool only_
        }
        if (redraw && !only_browse) screen_load();
 
-       sniper_ptr->window |= (PW_SPELL);
+       sniper_ptr->window_flags |= (PW_SPELL);
        handle_stuff(sniper_ptr);
 
        /* Abort if needed */
@@ -568,8 +568,8 @@ void do_cmd_snipe(player_type *sniper_ptr)
 
        if (!cast) return;
        sniper_ptr->redraw |= (PR_HP | PR_MANA);
-       sniper_ptr->window |= (PW_PLAYER);
-       sniper_ptr->window |= (PW_SPELL);
+       sniper_ptr->window_flags |= (PW_PLAYER);
+       sniper_ptr->window_flags |= (PW_SPELL);
 }
 
 /*!
index 0d03825..6384ba7 100644 (file)
@@ -62,7 +62,7 @@ void process_eat_gold(player_type *target_ptr, monap_type *monap_ptr)
     }
 
     target_ptr->redraw |= (PR_GOLD);
-    target_ptr->window |= (PW_PLAYER);
+    target_ptr->window_flags |= (PW_PLAYER);
     monap_ptr->blinked = TRUE;
 }
 
@@ -190,7 +190,7 @@ void process_eat_lite(player_type *target_ptr, monap_type *monap_ptr)
         monap_ptr->obvious = TRUE;
     }
 
-    target_ptr->window |= (PW_EQUIP);
+    target_ptr->window_flags |= (PW_EQUIP);
 }
 
 /*!
@@ -233,7 +233,7 @@ bool process_un_power(player_type *target_ptr, monap_type *monap_ptr)
 
     monap_ptr->o_ptr->pval = !is_magic_mastery || (monap_ptr->o_ptr->pval == 1) ? 0 : monap_ptr->o_ptr->pval - drain;
     target_ptr->update |= PU_COMBINE | PU_REORDER;
-    target_ptr->window |= PW_INVEN;
+    target_ptr->window_flags |= PW_INVEN;
     return TRUE;
 }
 
index 3c1f67e..bb591c6 100644 (file)
@@ -185,7 +185,7 @@ static bool process_door(player_type *target_ptr, turn_flags *turn_flags_ptr, mo
         cave_alter_feat(target_ptr, ny, nx, FF_BASH);
         if (!monster_is_valid(m_ptr)) {
             target_ptr->update |= (PU_FLOW);
-            target_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            target_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
             if (is_original_ap_and_seen(target_ptr, m_ptr))
                 r_ptr->r_flags2 |= (RF2_BASH_DOOR);
 
@@ -308,7 +308,7 @@ static bool process_post_dig_wall(player_type *target_ptr, turn_flags *turn_flag
 
     if (!monster_is_valid(m_ptr)) {
         target_ptr->update |= (PU_FLOW);
-        target_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+        target_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         if (is_original_ap_and_seen(target_ptr, m_ptr))
             r_ptr->r_flags2 |= (RF2_KILL_WALL);
 
index a829702..5c471db 100644 (file)
@@ -357,8 +357,8 @@ bool place_monster_one(player_type *player_ptr, MONSTER_IDX who, POSITION y, POS
         m_ptr->energy_need = ENERGY_NEED() - (s16b)randint0(100) * 2;
     }
 
-    if ((r_ptr->flags1 & RF1_FORCE_SLEEP) && !ironman_nightmare) {
-        m_ptr->mflag |= (MFLAG_NICE);
+    if ((r_ptr->flags1 & RF1_PREVENT_SUDDEN_MAGIC) && !ironman_nightmare) {
+        m_ptr->mflag |= (MFLAG_PREVENT_MAGIC);
         repair_monsters = TRUE;
     }
 
index 88b3476..205a69d 100644 (file)
@@ -11,7 +11,7 @@ typedef enum race_flags1 {
     RF1_ATTR_MULTI = 0x00000080, /*!< モンスター特性: シンボルカラーがランダムに変化する(基本7色) / Changes color */
     RF1_FORCE_DEPTH = 0x00000100, /*!< モンスター特性: 指定階未満では生成されない / Start at "correct" depth */
     RF1_FORCE_MAXHP = 0x00000200, /*!< モンスター特性: 通常生成時必ずHPがダイス最大値になる / Start with max hitpoints */
-    RF1_FORCE_SLEEP = 0x00000400, /*!< モンスター特性: 通常生成時必ず寝ている / Start out sleeping */
+    RF1_PREVENT_SUDDEN_MAGIC = 0x00000400, /*!< モンスター特性: 生成直後に魔法を使用しない / Start with no-magic */
     RF1_FORCE_EXTRA = 0x00000800, /*!< モンスター特性: (未使用) / Start out something */
     RF1_ATTR_SEMIRAND = 0x00001000, /*!< モンスター特性: シンボルカラーがランダムに変化する(15色) / Color is determined semi-randomly */
     RF1_FRIENDS = 0x00002000, /*!< モンスター特性: 同種の友軍を用意している / Arrive with some friends */
index 8efbfc0..af19511 100644 (file)
@@ -6,7 +6,7 @@ typedef enum monster_flags_type {
     MFLAG_XXX2 = 0x04, /* (unused) */
     MFLAG_ETF = 0x08, /* Monster is entering the field. */
     MFLAG_BORN = 0x10, /* Monster is still being born */
-    MFLAG_NICE = 0x20, /* Monster is still being nice */
+    MFLAG_PREVENT_MAGIC = 0x20, /* Monster is still being no-magic */
 } monster_flags_type;
 
 typedef enum monster_flags2_type {
index ec61826..f32bb8b 100644 (file)
@@ -508,7 +508,7 @@ bool process_monster_fear(player_type *target_ptr, turn_flags *turn_flags_ptr, M
  * during the game turn in which it is created, and we use the "hack_m_idx" to\n
  * determine if the monster is yet to be processed during the game turn.\n
  *\n
- * Note the special "MFLAG_NICE" flag, which allows the player to get one\n
+ * Note the special "MFLAG_PREVENT_MAGIC" flag, which allows the player to get one\n
  * move before any "nasty" monsters get to use their spell attacks.\n
  *\n
  * Note that when the "knowledge" about the currently tracked monster\n
index cc00c1d..6422c3a 100644 (file)
@@ -390,7 +390,7 @@ bool set_monster_timewalk(player_type *target_ptr, int num, MONSTER_IDX who, boo
 
     target_ptr->redraw |= PR_MAP;
     target_ptr->update |= PU_MONSTERS;
-    target_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    target_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     current_world_ptr->timewalk_m_idx = 0;
     if (vs_player || (player_has_los_bold(target_ptr, m_ptr->fy, m_ptr->fx) && projectable(target_ptr, target_ptr->y, target_ptr->x, m_ptr->fy, m_ptr->fx))) {
         msg_print(_("「時は動きだす…」", "You feel time flowing around you once more."));
index c45690f..3157349 100644 (file)
@@ -93,7 +93,7 @@ void update_player_type(player_type *target_ptr, turn_flags *turn_flags_ptr, mon
 {
     if (turn_flags_ptr->do_view) {
         target_ptr->update |= PU_FLOW;
-        target_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+        target_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     }
 
     if (turn_flags_ptr->do_move
@@ -155,7 +155,7 @@ void update_player_window(player_type *target_ptr, old_race_flags *old_race_flag
         || (old_race_flags_ptr->old_r_flagsr != r_ptr->r_flagsr) || (old_race_flags_ptr->old_r_blows0 != r_ptr->r_blows[0])
         || (old_race_flags_ptr->old_r_blows1 != r_ptr->r_blows[1]) || (old_race_flags_ptr->old_r_blows2 != r_ptr->r_blows[2])
         || (old_race_flags_ptr->old_r_blows3 != r_ptr->r_blows[3]) || (old_race_flags_ptr->old_r_cast_spell != r_ptr->r_cast_spell)) {
-        target_ptr->window |= PW_MONSTER;
+        target_ptr->window_flags |= PW_MONSTER;
     }
 }
 
index 17a97be..c4c84ae 100644 (file)
@@ -14,30 +14,30 @@ const monster_power monster_powers[MAX_MONSPELLS] = {
     { 10, 4, 35, 89, 40, A_INT, _("何か", "arrows") },
     { 10, 4, 35, 89, 40, A_INT, _("何か", "missile") },
     { 10, 4, 35, 89, 40, A_INT, _("何か", "missiles") },
-    { 20, 15, 55, 1600, 95, A_CON, _("酸のブレス", "breath acid") },
-    { 20, 15, 55, 1600, 95, A_CON, _("電撃のブレス", "breath lightning") },
-    { 20, 15, 55, 1600, 95, A_CON, _("炎のブレス", "breath fire") },
-    { 20, 15, 55, 1600, 95, A_CON, _("冷気のブレス", "breath cold") },
-    { 20, 15, 55, 800, 95, A_CON, _("毒のブレス", "breath poison") },
-    { 20, 15, 70, 550, 95, A_CON, _("地獄のブレス", "breath nether") },
-    { 20, 16, 70, 400, 95, A_CON, _("閃光のブレス", "breath light") },
-    { 20, 16, 70, 400, 95, A_CON, _("暗黒のブレス", "breath dark") },
-    { 20, 20, 70, 450, 95, A_CON, _("混乱のブレス", "breath confusion") },
-    { 20, 20, 70, 450, 95, A_CON, _("轟音のブレス", "breath sound") },
-    { 20, 20, 70, 600, 95, A_CON, _("カオスのブレス", "breath chaos") },
-    { 20, 16, 70, 500, 95, A_CON, _("劣化のブレス", "breath disenchantment") },
-    { 30, 25, 80, 250, 95, A_CON, _("因果混乱のブレス", "breath nexus") },
-    { 35, 18, 80, 150, 95, A_CON, _("時間逆転のブレス", "breath time") },
-    { 30, 25, 80, 200, 95, A_CON, _("遅鈍のブレス", "breath inertia") },
-    { 30, 28, 90, 200, 95, A_CON, _("重力のブレス", "breath gravity") },
-    { 20, 15, 70, 500, 95, A_CON, _("破片のブレス", "breath shards") },
-    { 35, 15, 80, 150, 95, A_CON, _("プラズマのブレス", "breath plasma") },
-    { 30, 18, 70, 200, 95, A_CON, _("フォースのブレス", "breath force") },
-    { 30, 28, 80, 250, 95, A_CON, _("魔力のブレス", "breath mana") },
+    { 20, 15, 55, 1600, 95, A_CON, _("酸のブレス", "breathe acid") },
+    { 20, 15, 55, 1600, 95, A_CON, _("電撃のブレス", "breathe lightning") },
+    { 20, 15, 55, 1600, 95, A_CON, _("炎のブレス", "breathe fire") },
+    { 20, 15, 55, 1600, 95, A_CON, _("冷気のブレス", "breathe cold") },
+    { 20, 15, 55, 800, 95, A_CON, _("毒のブレス", "breathe poison") },
+    { 20, 15, 70, 550, 95, A_CON, _("地獄のブレス", "breathe nether") },
+    { 20, 16, 70, 400, 95, A_CON, _("閃光のブレス", "breathe light") },
+    { 20, 16, 70, 400, 95, A_CON, _("暗黒のブレス", "breathe dark") },
+    { 20, 20, 70, 450, 95, A_CON, _("混乱のブレス", "breathe confusion") },
+    { 20, 20, 70, 450, 95, A_CON, _("轟音のブレス", "breathe sound") },
+    { 20, 20, 70, 600, 95, A_CON, _("カオスのブレス", "breathe chaos") },
+    { 20, 16, 70, 500, 95, A_CON, _("劣化のブレス", "breathe disenchantment") },
+    { 30, 25, 80, 250, 95, A_CON, _("因果混乱のブレス", "breathe nexus") },
+    { 35, 18, 80, 150, 95, A_CON, _("時間逆転のブレス", "breathe time") },
+    { 30, 25, 80, 200, 95, A_CON, _("遅鈍のブレス", "breathe inertia") },
+    { 30, 28, 90, 200, 95, A_CON, _("重力のブレス", "breathe gravity") },
+    { 20, 15, 70, 500, 95, A_CON, _("破片のブレス", "breathe shards") },
+    { 35, 15, 80, 150, 95, A_CON, _("プラズマのブレス", "breathe plasma") },
+    { 30, 18, 70, 200, 95, A_CON, _("フォースのブレス", "breathe force") },
+    { 30, 28, 80, 250, 95, A_CON, _("魔力のブレス", "breathe mana") },
     { 25, 20, 95, 320, 80, A_INT, _("放射能球", "nuke ball") },
-    { 25, 15, 70, 800, 95, A_CON, _("放射性廃棄物のブレス", "breath nuke") },
+    { 25, 15, 70, 800, 95, A_CON, _("放射性廃棄物のブレス", "breathe nuke") },
     { 30, 32, 85, 400, 80, A_INT, _("純ログルス", "raw Logrus") },
-    { 35, 40, 95, 150, 95, A_CON, _("分解のブレス", "breath disintegrate") },
+    { 35, 40, 95, 150, 95, A_CON, _("分解のブレス", "breathe disintegration") },
     { 18, 13, 55, 630, 80, A_INT, _("アシッド・ボール", "acid ball") },
     { 14, 10, 45, 316, 60, A_INT, _("サンダー・ボール", "lightning ball") },
     { 20, 14, 60, 720, 80, A_INT, _("ファイア・ボール", "fire ball") },
@@ -139,7 +139,7 @@ const concptr monster_powers_short[MAX_MONSPELLS] = {
     _("放射能球", "Nuke"),
     _("放射性廃棄物", "Nuke"),
     _("純ログルス", "Logrus"),
-    _("分解", "Disintergrate"),
+    _("分解", "Disintegration"),
 
     _("酸", "Acid"),
     _("電撃", "Lightning"),
index 3d00cfa..fa3ba27 100644 (file)
@@ -331,7 +331,7 @@ bool make_attack_spell(player_type *target_ptr, MONSTER_IDX m_idx)
         return FALSE;
     }
 
-    if (((msa_ptr->m_ptr->mflag & MFLAG_NICE) != 0) || !is_hostile(msa_ptr->m_ptr)
+    if (((msa_ptr->m_ptr->mflag & MFLAG_PREVENT_MAGIC) != 0) || !is_hostile(msa_ptr->m_ptr)
         || ((msa_ptr->m_ptr->cdis > get_max_range(target_ptr)) && !msa_ptr->m_ptr->target_y))
         return FALSE;
 
index 542ae38..6d28f3e 100644 (file)
@@ -299,24 +299,19 @@ void breath(
  */
 bool spell_is_inate(SPELL_IDX spell)
 {
-    if (spell < 32 * 4) /* Set RF4 */
+    if (32 * 3 <= spell && spell < 32 * 4) /* Set RF4 */
     {
-        if ((1L << (spell - 32 * 3)) & RF4_NOMAGIC_MASK)
-            return TRUE;
+        return ((1UL << (spell - 32 * 3)) & RF4_NOMAGIC_MASK) != 0;
     }
-
-    if (spell < 32 * 5) /* Set RF5 */
+    if (32 * 4 <= spell && spell < 32 * 5) /* Set RF5 */
     {
-        if ((1L << (spell - 32 * 4)) & RF5_NOMAGIC_MASK)
-            return TRUE;
+        return ((1UL << (spell - 32 * 4)) & RF5_NOMAGIC_MASK) != 0;
     }
-
-    if (spell < 32 * 6) /* Set RF6 */
+    if (32 * 5 <= spell && spell < 32 * 6) /* Set RF6 */
     {
-        if ((1L << (spell - 32 * 5)) & RF6_NOMAGIC_MASK)
-            return TRUE;
+        return ((1UL << (spell - 32 * 5)) & RF6_NOMAGIC_MASK) != 0;
     }
 
-    /* This spell is not "inate" */
+    // 無効なモンスタースペルIDが渡されたら FALSE を返す。
     return FALSE;
 }
index 5168495..b24362f 100644 (file)
@@ -93,7 +93,7 @@ static void dispel_player(player_type *creature_ptr)
         creature_ptr->action = ACTION_NONE;
         creature_ptr->update |= (PU_BONUS | PU_HP | PU_MONSTERS);
         creature_ptr->redraw |= (PR_MAP | PR_STATUS | PR_STATE);
-        creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+        creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         creature_ptr->energy_need += ENERGY_NEED();
     }
 }
index 345659b..488038e 100644 (file)
@@ -326,7 +326,7 @@ bool activate_ball_lite(player_type *user_ptr, concptr name)
 bool activate_ball_dark(player_type *user_ptr, concptr name)
 {
     DIRECTION dir;
-    msg_format(_("%sが深い闇に覆われた...", "The %s is coverd in pitch-darkness..."), name);
+    msg_format(_("%sが深い闇に覆われた...", "The %s is covered in pitch-darkness..."), name);
     if (!get_aim_dir(user_ptr, &dir))
         return FALSE;
 
@@ -337,7 +337,7 @@ bool activate_ball_dark(player_type *user_ptr, concptr name)
 bool activate_ball_mana(player_type *user_ptr, concptr name)
 {
     DIRECTION dir;
-    msg_format(_("%sが青白く光った...", "The %s glows pale..."), name);
+    msg_format(_("%sが青白く光った...", "The %s becomes pale..."), name);
     if (!get_aim_dir(user_ptr, &dir))
         return FALSE;
 
index 13ac3bc..6bf353c 100644 (file)
@@ -157,7 +157,7 @@ bool activate_unique_detection(player_type *user_ptr)
             msg_format(_("%s. ", "%s. "), r_name + r_ptr->name);
 
         if (m_ptr->r_idx == MON_DIO)
-            msg_print(_("きさま! 見ているなッ!", "You bastard!, You're watching me, well watch this!"));
+            msg_print(_("きさま! 見ているなッ!", "You bastard! You're watching me, well watch this!"));
     }
 
     return TRUE;
@@ -246,7 +246,7 @@ bool activate_identification(player_type *user_ptr) { return ident_spell(user_pt
 
 bool activate_pesticide(player_type *user_ptr)
 {
-    msg_print(_("あなたは害虫を一掃した。", "You exterminate small life."));
+    msg_print(_("あなたは害虫を一掃した。", "You exterminate some pests."));
     (void)dispel_monsters(user_ptr, 4);
     return TRUE;
 }
index 498b84d..8856ec4 100644 (file)
@@ -40,7 +40,7 @@ const activation_type activation_info[MAX_ACTIVATION_TYPE] = {
     { "BA_STAR", ACT_BA_STAR, 50, 2200, { 25, 0 }, _("巨大スター・ボール(200)", "large star ball (200)") },
     { "BA_DARK", ACT_BA_DARK, 50, 2200, { 30, 0 }, _("暗黒の嵐(250)", "darkness storm (250)") },
     { "BA_MANA", ACT_BA_MANA, 70, 2500, { 30, 0 }, _("魔力の嵐(250)", "a mana storm (250)") },
-    { "PESTICIDE", ACT_PESTICIDE, 10, 500, { 10, 0 }, _("害虫の駆除", "dispel small life") },
+    { "PESTICIDE", ACT_PESTICIDE, 10, 500, { 10, 0 }, _("害虫の駆除", "dispel pests") },
     { "BLINDING_LIGHT", ACT_BLINDING_LIGHT, 30, 5000, { 40, 0 }, _("眩しい光", "blinding light") },
     { "BIZARRE", ACT_BIZARRE, 90, 10000, { 50, 0 }, _("信じ難いこと", "bizarre things") },
     { "CAST_BA_STAR", ACT_CAST_BA_STAR, 70, 7500, { 100, 0 }, _("スター・ボール・ダスト(150)", "cast star balls (150)") },
@@ -95,7 +95,7 @@ const activation_type activation_info[MAX_ACTIVATION_TYPE] = {
     { "WRAITH", ACT_WRAITH, 90, 25000, { 1000, 0 }, _("幽体化(期間 (レベル/2)+d(レベル/2))", "wraith form (dur level/2 + d(level/2))") },
     { "INVULN", ACT_INVULN, 90, 25000, { 1000, 0 }, _("無敵化(期間 8+d8)", "invulnerability (dur 8+d8)") },
     { "HERO", ACT_HERO, 10, 500, { 30, 30 }, _("士気高揚", "heroism") },
-    { "HERO_SPEED", ACT_HERO_SPEED, 30, 20000, { 100, 200 }, _("士気高揚, スピード(期間 50+d50ターン)", "hero and +10 to speed (50)") },
+    { "HERO_SPEED", ACT_HERO_SPEED, 30, 20000, { 100, 200 }, _("士気高揚, スピード(期間 50+d50ターン)", "hero and +10 to speed (dur 50+d50)") },
     { "ACID_BALL_AND_RESISTANCE", ACT_ACID_BALL_AND_RESISTANCE, 20, 2000, { 40, 40 }, _("酸の球と酸への耐性", "acid ball and resist") },
     { "FIRE_BALL_AND_RESITANCE", ACT_FIRE_BALL_AND_RESISTANCE, 20, 2000, { 40, 40 }, _("火炎の球と火炎への耐性", "fire ball and resist") },
     { "COLD_BALL_AND_RESITANCE", ACT_COLD_BALL_AND_RESISTANCE, 20, 2000, { 40, 40 }, _("冷気の球と冷気への耐性", "cold ball and resist") },
@@ -123,8 +123,8 @@ const activation_type activation_info[MAX_ACTIVATION_TYPE] = {
     { "DIM_DOOR", ACT_DIM_DOOR, 50, 10000, { 100, 0 }, _("次元の扉", "dimension door") },
     { "TELEPORT", ACT_TELEPORT, 10, 2000, { 25, 0 }, _("テレポート", "teleport") },
     { "RECALL", ACT_RECALL, 30, 7500, { 200, 0 }, _("帰還の詔", "word of recall") },
-    { "JUDGE", ACT_JUDGE, 90, 50000, { 20, 20 }, _("体力と引き替えに千里眼と帰還", "a telekinesis (500 lb)") },
-    { "TELEKINESIS", ACT_TELEKINESIS, 20, 5500, { 25, 25 }, _("物体を引き寄せる(重量25kgまで)", "clairvoyance and recall, draining you") },
+    { "JUDGE", ACT_JUDGE, 90, 50000, { 20, 20 }, _("体力と引き替えに千里眼と帰還", "clairvoyance and recall, draining you") },
+    { "TELEKINESIS", ACT_TELEKINESIS, 20, 5500, { 25, 25 }, _("物体を引き寄せる(重量25kgまで)", "a telekinesis (50 lb)") },
     { "DETECT_UNIQUE", ACT_DETECT_UNIQUE, 40, 10000, { 200, 0 }, _("この階にいるユニークモンスターを表示", "list of the uniques on the level") },
     { "ESCAPE", ACT_ESCAPE, 10, 3000, { 35, 0 }, _("逃走", "a getaway") },
     { "DISP_CURSE_XTRA", ACT_DISP_CURSE_XTRA, 40, 30000, { 0, 0 }, _("*解呪*と調査", "dispel curse and probing") },
@@ -145,7 +145,7 @@ const activation_type activation_info[MAX_ACTIVATION_TYPE] = {
 
     { "STRAIN_HASTE", ACT_STRAIN_HASTE, 10, 1000, { 120, 100 }, _("体力と引き換えに加速", "haste with strain") },
     { "GRAND_CROSS", ACT_GRAND_CROSS, 30, 15000, { 250, 200 }, _("グランド・クロス", "grand cross") },
-    { "TELEPORT_LEVEL", ACT_TELEPORT_LEVEL, 10, 1500, { 100, 200 }, _("テレポート・レベル", "teleort level") },
+    { "TELEPORT_LEVEL", ACT_TELEPORT_LEVEL, 10, 1500, { 100, 200 }, _("テレポート・レベル", "teleport level") },
     { "ARTS_FALLING_STAR", ACT_FALLING_STAR, 20, 5500, { 30, 50 }, _("魔剣・流れ星", "blade arts 'falling star'") },
     { "ANIM_DEAD", ACT_ANIM_DEAD, 30, 2000, { 10, 10 }, _("死者復活", "animate dead") },
     { "TREE_CREATION", ACT_TREE_CREATION, 50, 25000, { 1000, 0 }, _("森林生成", "tree creation") },
index 36b6f73..275424e 100644 (file)
@@ -13,13 +13,13 @@ const dragonbreath_type dragonbreath_info[] = {
        { TR_RES_POIS, GF_POIS, _("毒", "poison") },
        { TR_RES_LITE, GF_LITE, _("閃光", "light") },
        { TR_RES_DARK, GF_DARK, _("暗黒", "dark") },
-       { TR_RES_SHARDS, GF_SHARDS, _("破片", "shard") },
+       { TR_RES_SHARDS, GF_SHARDS, _("破片", "shards") },
        { TR_RES_CONF, GF_CONFUSION, _("混乱", "confusion") },
        { TR_RES_SOUND, GF_SOUND, _("轟音", "sound") },
        { TR_RES_NEXUS, GF_NEXUS, _("因果混乱", "nexus") },
        { TR_RES_NETHER, GF_NETHER, _("地獄", "nether") },
        { TR_RES_CHAOS, GF_CHAOS, _("カオス", "chaos") },
-       { TR_RES_DISEN, GF_DISENCHANT, _("劣化", "disenchant") },
+       { TR_RES_DISEN, GF_DISENCHANT, _("劣化", "disenchantment") },
        { 0, 0, NULL }
 };
 
index 2a17ee1..d1832d1 100644 (file)
@@ -126,7 +126,7 @@ bool can_player_destroy_object(player_type *player_ptr, object_type *o_ptr)
         o_ptr->feeling = feel;
         o_ptr->ident |= IDENT_SENSE;
         player_ptr->update |= (PU_COMBINE);
-        player_ptr->window |= (PW_INVEN | PW_EQUIP);
+        player_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
         return FALSE;
     }
 
index 2d17c77..e7dcd25 100644 (file)
@@ -576,7 +576,7 @@ void exe_quaff_potion(player_type *creature_ptr, INVENTORY_IDX item)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 
     /* Potions can feed the player */
     switch (creature_ptr->mimic_form) {
index 77be8ea..ed99104 100644 (file)
@@ -510,7 +510,7 @@ void exe_read(player_type *creature_ptr, INVENTORY_IDX item, bool known)
         gain_exp(creature_ptr, (lev + (creature_ptr->lev >> 1)) / creature_ptr->lev);
     }
 
-    creature_ptr->window |= PW_INVEN | PW_EQUIP | PW_PLAYER;
+    creature_ptr->window_flags |= PW_INVEN | PW_EQUIP | PW_PLAYER;
     creature_ptr->update |= inventory_flags;
     if (!used_up)
         return;
index d7e259a..11d319b 100644 (file)
@@ -42,7 +42,7 @@ void reduce_lite_life(player_type* creature_ptr)
 void notice_lite_change(player_type* creature_ptr, object_type* o_ptr)
 {
     if ((o_ptr->xtra4 < 100) || (!(o_ptr->xtra4 % 100))) {
-        creature_ptr->window |= (PW_EQUIP);
+        creature_ptr->window_flags |= (PW_EQUIP);
     }
 
     if (creature_ptr->blind) {
index f11cf88..1b5cd23 100644 (file)
@@ -42,7 +42,7 @@ static concptr item_activation_dragon_breath(player_type *owner_ptr, object_type
     int n = 0;
 
     object_flags(owner_ptr, o_ptr, flgs);
-    strcpy(desc, _("", "breath "));
+    strcpy(desc, _("", "breathe "));
 
     for (int i = 0; dragonbreath_info[i].flag != 0; i++) {
         if (has_flag(flgs, dragonbreath_info[i].flag)) {
@@ -54,7 +54,7 @@ static concptr item_activation_dragon_breath(player_type *owner_ptr, object_type
         }
     }
 
-    strcat(desc, _("のブレス(250)", ""));
+    strcat(desc, _("のブレス(250)", " (250)"));
     return (desc);
 }
 
@@ -76,11 +76,11 @@ static concptr item_activation_aux(player_type *owner_ptr, object_type *o_ptr)
     switch (act_ptr->index) {
     case ACT_BR_FIRE:
         if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_FLAMES))
-            desc = _("火炎のブレス (200) と火への耐性", "breath of fire (200) and resist fire");
+            desc = _("火炎のブレス (200) と火への耐性", "breathe fire (200) and resist fire");
         break;
     case ACT_BR_COLD:
         if ((o_ptr->tval == TV_RING) && (o_ptr->sval == SV_RING_ICE))
-            desc = _("冷気のブレス (200) と冷気への耐性", "breath of cold (200) and resist cold");
+            desc = _("冷気のブレス (200) と冷気への耐性", "breathe cold (200) and resist cold");
         break;
     case ACT_BR_DRAGON:
         desc = item_activation_dragon_breath(owner_ptr, o_ptr);
@@ -105,19 +105,19 @@ static concptr item_activation_aux(player_type *owner_ptr, object_type *o_ptr)
         desc = _("ポイズン・ボール (100) と毒への耐性", "ball of poison (100) and resist elec");
         break;
     case ACT_RESIST_ACID:
-        desc = _("一時的な酸への耐性", "tempral resist acid");
+        desc = _("一時的な酸への耐性", "temporary resist acid");
         break;
     case ACT_RESIST_FIRE:
-        desc = _("一時的な火への耐性", "tempral resist fire");
+        desc = _("一時的な火への耐性", "temporary resist fire");
         break;
     case ACT_RESIST_COLD:
-        desc = _("一時的な冷気への耐性", "tempral resist cold");
+        desc = _("一時的な冷気への耐性", "temporary resist cold");
         break;
     case ACT_RESIST_ELEC:
-        desc = _("一時的な電撃への耐性", "tempral resist elec");
+        desc = _("一時的な電撃への耐性", "temporary resist elec");
         break;
     case ACT_RESIST_POIS:
-        desc = _("一時的な毒への耐性", "tempral resist elec");
+        desc = _("一時的な毒への耐性", "temporary resist elec");
         break;
     }
 
index 8686dab..785ea4b 100644 (file)
@@ -110,7 +110,7 @@ static void sense_inventory_aux(player_type *creature_ptr, INVENTORY_IDX slot, b
 
     autopick_alter_item(creature_ptr, slot, destroy_feeling);
     creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP);
 }
 
 /*!
index 76d3247..5825776 100644 (file)
@@ -158,7 +158,7 @@ bool process_fall_off_horse(player_type *creature_ptr, HIT_POINT dam, bool force
     creature_ptr->update |= (PU_BONUS | PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
     handle_stuff(creature_ptr);
 
-    creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     creature_ptr->redraw |= (PR_EXTRA);
 
     /* Update health track of mount */
index ef5a53a..3489ef3 100644 (file)
@@ -119,7 +119,7 @@ static bool acid_minus_ac(player_type *creature_ptr)
     msg_format(_("%sが酸で腐食した!", "Your %s is corroded!"), o_name);
     o_ptr->to_a--;
     creature_ptr->update |= PU_BONUS;
-    creature_ptr->window |= PW_EQUIP | PW_PLAYER;
+    creature_ptr->window_flags |= PW_EQUIP | PW_PLAYER;
     calc_android_exp(creature_ptr);
     return TRUE;
 }
@@ -342,7 +342,7 @@ int take_hit(player_type *creature_ptr, int damage_type, HIT_POINT damage, concp
     }
 
     creature_ptr->redraw |= PR_HP;
-    creature_ptr->window |= PW_PLAYER;
+    creature_ptr->window_flags |= PW_PLAYER;
 
     if (damage_type != DAMAGE_GENO && creature_ptr->chp == 0) {
         chg_virtue(creature_ptr, V_SACRIFICE, 1);
index 655cf60..772942d 100644 (file)
@@ -157,7 +157,7 @@ bool move_player_effect(player_type *creature_ptr, POSITION ny, POSITION nx, BIT
         }
 
         creature_ptr->update |= PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_DISTANCE;
-        creature_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+        creature_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
         if ((!creature_ptr->blind && !no_lite(creature_ptr)) || !is_trap(creature_ptr, g_ptr->feat))
             g_ptr->info &= ~(CAVE_UNSAFE);
 
index eb7942f..7a96edd 100644 (file)
@@ -451,7 +451,7 @@ void calc_bonuses(player_type *creature_ptr)
     creature_ptr->dis_to_a = calc_to_ac(creature_ptr, FALSE);
 
     if (old_mighty_throw != creature_ptr->mighty_throw) {
-        creature_ptr->window |= PW_INVEN;
+        creature_ptr->window_flags |= PW_INVEN;
     }
 
     if (creature_ptr->telepathy != old_telepathy) {
@@ -475,7 +475,7 @@ void calc_bonuses(player_type *creature_ptr)
 
     if ((creature_ptr->dis_ac != old_dis_ac) || (creature_ptr->dis_to_a != old_dis_to_a)) {
         creature_ptr->redraw |= (PR_ARMOR);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
     }
 
     if (current_world_ptr->character_xtra)
@@ -632,7 +632,7 @@ static void calc_hitpoints(player_type *creature_ptr)
     creature_ptr->mhp = mhp;
 
     creature_ptr->redraw |= PR_HP;
-    creature_ptr->window |= PW_PLAYER;
+    creature_ptr->window_flags |= PW_PLAYER;
 }
 
 /*!
@@ -880,7 +880,7 @@ static void calc_spells(player_type *creature_ptr)
 
     creature_ptr->old_spells = creature_ptr->new_spells;
     creature_ptr->redraw |= PR_STUDY;
-    creature_ptr->window |= PW_OBJECT;
+    creature_ptr->window_flags |= PW_OBJECT;
 }
 
 /*!
@@ -1072,7 +1072,7 @@ static void calc_mana(player_type *creature_ptr)
 #endif
         creature_ptr->msp = msp;
         creature_ptr->redraw |= (PR_MANA);
-        creature_ptr->window |= (PW_PLAYER | PW_SPELL);
+        creature_ptr->window_flags |= (PW_PLAYER | PW_SPELL);
     }
 
     if (current_world_ptr->character_xtra)
@@ -2729,7 +2729,7 @@ static void calc_ind_status(player_type *creature_ptr, int status)
         }
     }
 
-    creature_ptr->window |= (PW_PLAYER);
+    creature_ptr->window_flags |= (PW_PLAYER);
 }
 
 static void calc_use_status(player_type *creature_ptr, int status)
@@ -2746,7 +2746,7 @@ static void calc_use_status(player_type *creature_ptr, int status)
     if (creature_ptr->stat_use[status] != use) {
         creature_ptr->stat_use[status] = (s16b)use;
         creature_ptr->redraw |= (PR_STATS);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
     }
 }
 
@@ -2757,7 +2757,7 @@ static void calc_top_status(player_type *creature_ptr, int status)
     if (creature_ptr->stat_top[status] != top) {
         creature_ptr->stat_top[status] = (s16b)top;
         creature_ptr->redraw |= (PR_STATS);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
     }
 }
 
@@ -2987,14 +2987,14 @@ static s16b calc_to_damage(player_type *creature_ptr, INVENTORY_IDX slot, bool i
             break;
 
         case MELEE_TYPE_WEAPON_DOUBLE:
-            if ((calc_hand == PLAYER_HAND_MAIN)) {
+            if (calc_hand == PLAYER_HAND_MAIN) {
                 if (i == INVEN_MAIN_RING) {
                     damage += (s16b)bonus_to_d;
                 } else if (i != INVEN_SUB_RING) {
                     damage += (bonus_to_d > 0) ? (bonus_to_d + 1) / 2 : bonus_to_d;
                 }
             }
-            if ((calc_hand == PLAYER_HAND_SUB)) {
+            if (calc_hand == PLAYER_HAND_SUB) {
                 if (i == INVEN_SUB_RING) {
                     damage += (s16b)bonus_to_d;
                 } else if (i != INVEN_MAIN_RING) {
@@ -3220,14 +3220,14 @@ static s16b calc_to_hit(player_type *creature_ptr, INVENTORY_IDX slot, bool is_r
             break;
 
         case MELEE_TYPE_WEAPON_DOUBLE:
-            if ((calc_hand == PLAYER_HAND_MAIN)) {
+            if (calc_hand == PLAYER_HAND_MAIN) {
                 if (i == INVEN_MAIN_RING) {
                     hit += (s16b)bonus_to_h;
                 } else if (i != INVEN_SUB_RING) {
                     hit += (bonus_to_h > 0) ? (bonus_to_h + 1) / 2 : bonus_to_h;
                 }
             }
-            if ((calc_hand == PLAYER_HAND_SUB)) {
+            if (calc_hand == PLAYER_HAND_SUB) {
                 if (i == INVEN_SUB_RING) {
                     hit += (s16b)bonus_to_h;
                 } else if (i != INVEN_MAIN_RING) {
@@ -3726,7 +3726,7 @@ void check_experience(player_type *creature_ptr)
         creature_ptr->lev--;
         creature_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
         creature_ptr->redraw |= (PR_LEV | PR_TITLE);
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
         handle_stuff(creature_ptr);
     }
 
@@ -3755,7 +3755,7 @@ void check_experience(player_type *creature_ptr)
         msg_format(_("レベル %d にようこそ。", "Welcome to level %d."), creature_ptr->lev);
         creature_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
         creature_ptr->redraw |= (PR_LEV | PR_TITLE | PR_EXP);
-        creature_ptr->window |= (PW_PLAYER | PW_SPELL | PW_INVEN);
+        creature_ptr->window_flags |= (PW_PLAYER | PW_SPELL | PW_INVEN);
         creature_ptr->level_up_message = TRUE;
         handle_stuff(creature_ptr);
 
@@ -3818,7 +3818,7 @@ void check_experience(player_type *creature_ptr)
 
         creature_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
         creature_ptr->redraw |= (PR_LEV | PR_TITLE);
-        creature_ptr->window |= (PW_PLAYER | PW_SPELL);
+        creature_ptr->window_flags |= (PW_PLAYER | PW_SPELL);
         handle_stuff(creature_ptr);
     }
 
index 402f03b..99cdf88 100644 (file)
@@ -346,7 +346,7 @@ typedef struct player_type {
 
     BIT_FLAGS update; /* Pending Updates */
     BIT_FLAGS redraw; /* Normal Redraws */
-    BIT_FLAGS window; /* Window Redraws */
+    BIT_FLAGS window_flags; /* Window Redraws */
     s16b stat_use[A_MAX]; /* Current modified stats */
     s16b stat_top[A_MAX]; /* Maximal modified stats */
 
index 7231aa6..bffde44 100644 (file)
@@ -357,7 +357,7 @@ bool switch_race_racial_execution(player_type *creature_ptr, const s32b command)
         if (!get_aim_dir(creature_ptr, &dir))
             return FALSE;
 
-        msg_print(_("毒のダーツを投げた。", "You throw a dart of poison."));
+        msg_print(_("毒のダーツを投げた。", "You throw a poisoned dart."));
         (void)fire_bolt(creature_ptr, GF_POIS, dir, creature_ptr->lev);
         return TRUE;
     case RACE_NIBELUNG:
index e4ce2bb..b27e266 100644 (file)
@@ -279,7 +279,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
         if (name)
             return _("解毒", "Cure Poison");
         if (desc)
-            return _("毒を体内から完全に取り除く。", "Cures poison status.");
+            return _("毒を体内から完全に取り除く。", "Cures yourself of any poisons.");
 
         {
             if (cast) {
@@ -498,7 +498,7 @@ concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
         {
             if (cast) {
                 if (!summon_specific(caster_ptr, -1, caster_ptr->y, caster_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET))) {
-                    msg_print(_("エレメンタルは現れなかった。", "No Elementals arrive."));
+                    msg_print(_("エレメンタルは現れなかった。", "No elementals arrive."));
                 }
             }
         }
index a27238a..c0b835c 100644 (file)
@@ -68,7 +68,7 @@ concptr do_chaos_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("トラップ/ドア破壊", "Trap / Door Destruction");
         if (desc)
-            return _("隣接する罠と扉を破壊する。", "Destroys all traps in adjacent squares.");
+            return _("隣接する罠と扉を破壊する。", "Destroys all doors and traps in adjacent squares.");
 
         {
             POSITION rad = 1;
index a2e5687..59743d9 100644 (file)
@@ -435,7 +435,7 @@ concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
                 if (summon_specific(caster_ptr, -1, caster_ptr->y, caster_ptr->x, plev, SUMMON_GOLEM, PM_FORCE_PET)) {
                     msg_print(_("ゴーレムを作った。", "You make a golem."));
                 } else {
-                    msg_print(_("うまくゴーレムを作れなかった。", "No Golems arrive."));
+                    msg_print(_("うまくゴーレムを作れなかった。", "You couldn't make a golem."));
                 }
             }
         }
@@ -464,7 +464,7 @@ concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("装備無力化", "Remove Enchantment");
         if (desc)
-            return _("武器・防具にかけられたあらゆる魔力を完全に解除する。", "Removes all magics completely from any weapon or armor.");
+            return _("武器・防具にかけられたあらゆる魔力を完全に解除する。", "Completely removes all magics from any weapon or armor.");
 
         {
             if (cast) {
@@ -478,7 +478,7 @@ concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("呪い粉砕", "Remove All Curse");
         if (desc)
-            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curse from equipped items.");
+            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curses from equipped items.");
 
         {
             if (cast)
index f52d88a..314e8b0 100644 (file)
@@ -371,7 +371,7 @@ concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
             return _("聖なるオーラ", "Holy Aura");
         if (desc)
             return _("一定時間、邪悪なモンスターを傷つける聖なるオーラを得る。",
-                "Gives aura of holy power that injures evil monsters which attacked you for a while.");
+                "Gives a temporary aura of holy power that injures evil monsters which attack you.");
 
         {
             int base = 20;
@@ -508,7 +508,7 @@ concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mo
         if (name)
             return _("呪い退散", "Dispel Curse");
         if (desc)
-            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curse from equipped items.");
+            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curses from equipped items.");
 
         {
             if (cast)
index 20d0551..107c1b2 100644 (file)
@@ -237,7 +237,7 @@ concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
             return _("エントロピーの球", "Orb of Entropy");
         if (desc)
             return _(
-                "生命のある者のHPと最大HP双方にダメージを与える効果のある球を放つ。", "Fires a ball which damages to both HP and MaxHP of living monsters.");
+                "生命のある者のHPと最大HP双方にダメージを与える効果のある球を放つ。", "Fires a ball which reduces both HP and MaxHP of living monsters.");
 
         {
             DICE_NUMBER dice = 3;
@@ -389,7 +389,7 @@ concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("反魂の術", "Animate dead");
         if (desc)
-            return _("周囲の死体や骨を生き返す。", "Resurrects nearby corpse and skeletons. And makes these your pets.");
+            return _("周囲の死体や骨を生き返す。", "Resurrects nearby corpses and skeletons. And makes these your pets.");
 
         {
             if (cast) {
index 1c4241f..e1c260c 100644 (file)
@@ -171,7 +171,7 @@ concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
         if (name)
             return _("古代の死霊召喚", "Summon Manes");
         if (desc)
-            return _("古代の死霊を召喚する。", "Summons a manes.");
+            return _("古代の死霊を召喚する。", "Summons one or more Manes.");
 
         {
             if (cast) {
@@ -407,7 +407,7 @@ concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
 
     case 18:
         if (name)
-            return _("溶岩流", "The Flow of Lava");
+            return _("溶岩流", "Lava Flow");
         if (desc)
             return _("自分を中心とした炎の球を作り出し、床を溶岩に変える。", "Generates a ball of fire centered on you which transforms floors to magma.");
 
@@ -468,7 +468,7 @@ concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
 
     case 21:
         if (name)
-            return _("地獄の波動", "Nather Wave");
+            return _("地獄の波動", "Nether Wave");
         if (desc)
             return _("視界内の全てのモンスターにダメージを与える。善良なモンスターに特に大きなダメージを与える。",
                 "Damages all monsters in sight. Hurts good monsters greatly.");
@@ -489,7 +489,7 @@ concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
 
     case 22:
         if (name)
-            return _("サキュバスの接吻", "Kiss of Succubus");
+            return _("サキュバスの接吻", "Succubus's Kiss");
         if (desc)
             return _("因果混乱の球を放つ。", "Fires a ball of nexus.");
 
index e992568..ab46b18 100644 (file)
@@ -484,7 +484,7 @@ concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
         if (name)
             return _("防具呪縛", "Curse armor");
         if (desc)
-            return _("装備している防具に呪いをかける。", "Curse a piece of armour that you wielding.");
+            return _("装備している防具に呪いをかける。", "Curse a piece of armour that you are wielding.");
         if (cast) {
             OBJECT_IDX item;
             concptr q, s;
@@ -620,9 +620,9 @@ concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
         if (name)
             return _("反増殖結界", "Anti multiply barrier");
         if (desc)
-            return _("その階の増殖するモンスターの増殖を阻止する。", "Obstructs all multiplying by monsters in entire floor.");
+            return _("その階の増殖するモンスターの増殖を阻止する。", "Obstructs all multiplying by monsters on entire floor.");
         if (cast) {
-            msg_print(_("増殖を阻止する呪いをかけた。", "You feel anyone can not already multiply."));
+            msg_print(_("増殖を阻止する呪いをかけた。", "You feel anyone can not multiply."));
         }
         break;
 
index 6d1501b..b552f49 100644 (file)
@@ -882,7 +882,7 @@ concptr do_hissatsu_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type m
         if (name)
             return _("二重の剣撃", "Twin Slash");
         if (desc)
-            return _("1ターンで2度攻撃を行う。", "double attacks at a time.");
+            return _("1ターンで2度攻撃を行う。", "Attack twice in one turn.");
 
         if (cast) {
             POSITION x, y;
index 5a75242..e64e2d1 100644 (file)
@@ -301,7 +301,7 @@ concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
         if (name)
             return _("*解呪*", "Dispel Curse");
         if (desc)
-            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curse from equipped items.");
+            return _("アイテムにかかった強力な呪いを解除する。", "Removes normal and heavy curses from equipped items.");
         {
             if (cast)
                 (void)remove_all_curse(caster_ptr);
index 2e0793e..019c725 100644 (file)
@@ -495,7 +495,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("フィリエルの歌", "Firiel's Song");
         if (desc)
-            return _("周囲の死体や骨を生き返す。", "Resurrects nearby corpse and skeletons. And makes them your pets.");
+            return _("周囲の死体や骨を生き返す。", "Resurrects nearby corpses and skeletons. And makes them your pets.");
 
         {
             /* Stop singing before start another */
@@ -549,7 +549,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
             stop_singing(caster_ptr);
 
         if (cast) {
-            msg_print(_("粉砕するメロディを奏で始めた...", "You weave a violent pattern of sounds to break wall."));
+            msg_print(_("粉砕するメロディを奏で始めた...", "You weave a violent pattern of sounds to break walls."));
             start_singing(caster_ptr, spell, MUSIC_WALL);
         }
 
@@ -616,7 +616,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
             stop_singing(caster_ptr);
 
         if (cast) {
-            msg_print(_("軽快な歌を口ずさみ始めた...", "You start singing joyful pop song..."));
+            msg_print(_("軽快な歌を口ずさみ始めた...", "You start singing joyful pop song..."));
             start_singing(caster_ptr, spell, MUSIC_SPEED);
         }
 
@@ -916,7 +916,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
 
     case 29:
         if (name)
-            return _("再生の歌", "Goddess' rebirth");
+            return _("再生の歌", "Goddess's rebirth");
         if (desc)
             return _("すべてのステータスと経験値を回復する。", "Restores all stats and experience.");
 
@@ -976,7 +976,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
 
             caster_ptr->redraw |= (PR_MAP);
             caster_ptr->update |= (PU_MONSTERS);
-            caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 
             start_singing(caster_ptr, spell, MUSIC_INVULN);
         }
@@ -987,7 +987,7 @@ concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
 
                 caster_ptr->redraw |= (PR_MAP);
                 caster_ptr->update |= (PU_MONSTERS);
-                caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+                caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
             }
         }
 
index 4414ebe..29c8dfd 100644 (file)
@@ -214,7 +214,7 @@ concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode
         if (name)
             return _("カミカゼのカード", "Trump Kamikaze");
         if (desc)
-            return _("複数の爆発するモンスターを召喚する。", "Summons monsters which explode by itself.");
+            return _("複数の爆発するモンスターを召喚する。", "Summons multiple exploding monsters.");
 
         {
             if (cast || fail) {
index 2deb251..2aa6e6f 100644 (file)
@@ -71,7 +71,7 @@ static void build_bubble_vault(player_type *player_ptr, POSITION x0, POSITION y0
     POSITION xhsize = xsize / 2;
     POSITION yhsize = ysize / 2;
 
-    msg_print_wizard(player_ptr, CHEAT_DUNGEON, _("泡型ランダムVaultを生成しました。", "Room Vault."));
+    msg_print_wizard(player_ptr, CHEAT_DUNGEON, _("泡型ランダムVaultを生成しました。", "Bubble-shaped Vault."));
 
     /* Allocate center of bubbles */
     center[0].x = (byte)randint1(xsize - 3) + 1;
@@ -763,7 +763,7 @@ static void build_target_vault(player_type *player_ptr, POSITION x0, POSITION y0
     h3 = randint1(32);
     h4 = randint1(32) - 16;
 
-    msg_print_wizard(player_ptr, CHEAT_DUNGEON, _("対称形ランダムVaultを生成しました。", "Elemental Vault"));
+    msg_print_wizard(player_ptr, CHEAT_DUNGEON, _("対称形ランダムVaultを生成しました。", "Target Vault"));
 
     /* work out outer radius */
     if (xsize > ysize) {
@@ -1208,7 +1208,7 @@ bool build_type17(player_type *player_ptr, dun_data_type *dd_ptr)
     if (!find_space(player_ptr, dd_ptr, &yval, &xval, abs(y), abs(x)))
         return FALSE;
 
-    msg_format_wizard(player_ptr, CHEAT_DUNGEON, _("特殊固定部屋(%s)を生成しました。", "Special Fix room (%s)."), v_name + v_ptr->name);
+    msg_format_wizard(player_ptr, CHEAT_DUNGEON, _("特殊固定部屋(%s)を生成しました。", "Special Fixed Room (%s)."), v_name + v_ptr->name);
 
     /* Hack -- Build the vault */
     build_vault(player_ptr, yval, xval, v_ptr->hgt, v_ptr->wid, v_text + v_ptr->text, xoffset, yoffset, transno);
index 0b61ed6..4297dde 100644 (file)
@@ -4,7 +4,7 @@
 
 bool activate_toragoroshi(player_type *user_ptr)
 {
-    msg_print(_("あなたは妖刀に魅入られた…", "You are enchanted by cursed blade..."));
+    msg_print(_("あなたは妖刀に魅入られた…", "You are fascinated by the cursed blade..."));
     msg_print(_("「狂ほしく 血のごとき 月はのぼれり 秘めおきし 魔剣 いずこぞや」", "'Behold the blade arts.'"));
     massacre(user_ptr);
     return TRUE;
index 49f91cd..0aa469b 100644 (file)
@@ -339,7 +339,7 @@ bool earthquake(player_type *caster_ptr, POSITION cy, POSITION cx, POSITION r, M
 
     caster_ptr->update |= (PU_UN_VIEW | PU_UN_LITE | PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
     caster_ptr->redraw |= (PR_HEALTH | PR_UHEALTH | PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     if (caster_ptr->special_defense & NINJA_S_STEALTH) {
         if (floor_ptr->grid_array[caster_ptr->y][caster_ptr->x].info & CAVE_GLOW)
             set_superstealth(caster_ptr, FALSE);
index 3575b9b..cec7a79 100644 (file)
@@ -37,7 +37,7 @@ static int exe_curse_removal(player_type *creature_ptr, int all)
         o_ptr->feeling = FEEL_NONE;
 
         creature_ptr->update |= (PU_BONUS);
-        creature_ptr->window |= (PW_EQUIP);
+        creature_ptr->window_flags |= (PW_EQUIP);
         cnt++;
     }
 
index 6bdec9a..7617d2e 100644 (file)
@@ -365,7 +365,7 @@ bool detect_monsters_invis(player_type *caster_ptr, POSITION range)
 
         if (r_ptr->flags2 & RF2_INVISIBLE) {
             if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                caster_ptr->window |= (PW_MONSTER);
+                caster_ptr->window_flags |= (PW_MONSTER);
             }
 
             repair_monsters = TRUE;
@@ -412,7 +412,7 @@ bool detect_monsters_evil(player_type *caster_ptr, POSITION range)
             if (is_original_ap(m_ptr)) {
                 r_ptr->r_flags3 |= (RF3_EVIL);
                 if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                    caster_ptr->window |= (PW_MONSTER);
+                    caster_ptr->window_flags |= (PW_MONSTER);
                 }
             }
 
@@ -454,7 +454,7 @@ bool detect_monsters_nonliving(player_type *caster_ptr, POSITION range)
 
         if (!monster_living(m_ptr->r_idx)) {
             if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                caster_ptr->window |= (PW_MONSTER);
+                caster_ptr->window_flags |= (PW_MONSTER);
             }
 
             repair_monsters = TRUE;
@@ -497,7 +497,7 @@ bool detect_monsters_mind(player_type *caster_ptr, POSITION range)
 
         if (!(r_ptr->flags2 & RF2_EMPTY_MIND)) {
             if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                caster_ptr->window |= (PW_MONSTER);
+                caster_ptr->window_flags |= (PW_MONSTER);
             }
 
             repair_monsters = TRUE;
@@ -541,7 +541,7 @@ bool detect_monsters_string(player_type *caster_ptr, POSITION range, concptr Mat
 
         if (angband_strchr(Match, r_ptr->d_char)) {
             if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                caster_ptr->window |= (PW_MONSTER);
+                caster_ptr->window_flags |= (PW_MONSTER);
             }
 
             repair_monsters = TRUE;
@@ -589,7 +589,7 @@ bool detect_monsters_xxx(player_type *caster_ptr, POSITION range, u32b match_fla
             if (is_original_ap(m_ptr)) {
                 r_ptr->r_flags3 |= (match_flag);
                 if (caster_ptr->monster_race_idx == m_ptr->r_idx) {
-                    caster_ptr->window |= (PW_MONSTER);
+                    caster_ptr->window_flags |= (PW_MONSTER);
                 }
             }
 
index 14aed55..fa51905 100644 (file)
@@ -111,7 +111,7 @@ bool apply_disenchant(player_type *target_ptr, BIT_FLAGS mode)
     chg_virtue(target_ptr, V_HARMONY, 1);
     chg_virtue(target_ptr, V_ENCHANT, -2);
     target_ptr->update |= (PU_BONUS);
-    target_ptr->window |= (PW_EQUIP | PW_PLAYER);
+    target_ptr->window_flags |= (PW_EQUIP | PW_PLAYER);
 
     calc_android_exp(target_ptr);
     return TRUE;
index 06119c8..ab6e884 100644 (file)
@@ -53,7 +53,7 @@ void fetch_item(player_type *caster_ptr, DIRECTION dir, WEIGHT wgt, bool require
 
         g_ptr = &caster_ptr->current_floor_ptr->grid_array[ty][tx];
         if (!g_ptr->o_idx) {
-            msg_print(_("そこには何もありません。", "There is no object at this place."));
+            msg_print(_("そこには何もありません。", "There is no object there."));
             return;
         }
 
index 573f108..7d0634b 100644 (file)
@@ -120,7 +120,7 @@ void wiz_lite(player_type *caster_ptr, bool ninja)
 
     caster_ptr->update |= (PU_MONSTERS);
     caster_ptr->redraw |= (PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 
     if (caster_ptr->special_defense & NINJA_S_STEALTH) {
         if (caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x].info & CAVE_GLOW)
@@ -176,7 +176,7 @@ void wiz_dark(player_type *caster_ptr)
     caster_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE);
     caster_ptr->update |= (PU_MONSTERS);
     caster_ptr->redraw |= (PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 }
 
 /*
@@ -232,7 +232,7 @@ void map_area(player_type *caster_ptr, POSITION range)
     }
 
     caster_ptr->redraw |= (PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 }
 
 /*!
@@ -465,7 +465,7 @@ bool destroy_area(player_type *caster_ptr, POSITION y1, POSITION x1, POSITION r,
     /* Mega-Hack -- Forget the view and lite */
     caster_ptr->update |= (PU_UN_VIEW | PU_UN_LITE | PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
     caster_ptr->redraw |= (PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 
     if (caster_ptr->special_defense & NINJA_S_STEALTH) {
         if (floor_ptr->grid_array[caster_ptr->y][caster_ptr->x].info & CAVE_GLOW)
index b95a333..73bfba3 100644 (file)
@@ -4,6 +4,7 @@
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
 #include "dungeon/quest.h"
+#include "game-option/map-screen-options.h"
 #include "game-option/play-record-options.h"
 #include "game-option/special-options.h"
 #include "grid/grid.h"
@@ -98,9 +99,9 @@ bool genocide_aux(player_type *caster_ptr, MONSTER_IDX m_idx, int power, bool pl
 
     move_cursor_relative(caster_ptr->y, caster_ptr->x);
     caster_ptr->redraw |= (PR_HP);
-    caster_ptr->window |= (PW_PLAYER);
+    caster_ptr->window_flags |= (PW_PLAYER);
     handle_stuff(caster_ptr);
-    if (need_term_fresh(caster_ptr))
+    if (fresh_after)
         term_fresh();
 
     int msec = delay_factor * delay_factor * delay_factor;
@@ -122,7 +123,7 @@ bool symbol_genocide(player_type *caster_ptr, int power, bool player_cast)
     is_special_floor |= caster_ptr->current_floor_ptr->inside_arena;
     is_special_floor |= caster_ptr->phase_out;
     if (is_special_floor) {
-        msg_print(_("何も起きないようだ……", "It seems nothing happen here..."));
+        msg_print(_("何も起きないようだ……", "Nothing seems to happen..."));
         return FALSE;
     }
 
@@ -220,4 +221,4 @@ bool mass_genocide_undead(player_type *caster_ptr, int power, bool player_cast)
     }
 
     return result;
-}
\ No newline at end of file
+}
index 013ca07..e3f5954 100644 (file)
@@ -72,7 +72,7 @@ bool identify_item(player_type *owner_ptr, object_type *o_ptr)
     o_ptr->marked |= OM_TOUCHED;
 
     owner_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 
     strcpy(record_o_name, o_name);
     record_turn = current_world_ptr->game_turn;
index f2377a9..2cda21a 100644 (file)
@@ -6,6 +6,7 @@
 #include "effect/effect-processor.h"
 #include "floor/cave.h"
 #include "game-option/birth-options.h"
+#include "game-option/map-screen-options.h"
 #include "grid/grid.h"
 #include "io/cursor.h"
 #include "io/input-key-acceptor.h"
@@ -375,7 +376,7 @@ bool probing(player_type *caster_ptr)
         prt(buf, 0, 0);
 
         message_add(buf);
-        caster_ptr->window |= (PW_MESSAGE);
+        caster_ptr->window_flags |= (PW_MESSAGE);
         handle_stuff(caster_ptr);
         move_cursor_relative(m_ptr->fy, m_ptr->fx);
         inkey();
@@ -396,7 +397,7 @@ bool probing(player_type *caster_ptr)
 
     Term->scr->cu = cu;
     Term->scr->cv = cv;
-    if (need_term_fresh(caster_ptr))
+    if (fresh_after)
         term_fresh();
 
     if (probe) {
@@ -405,4 +406,4 @@ bool probing(player_type *caster_ptr)
     }
 
     return (probe);
-}
\ No newline at end of file
+}
index c1464fa..60174e1 100644 (file)
@@ -176,7 +176,7 @@ bool vanish_dungeon(player_type *caster_ptr)
 
     caster_ptr->update |= (PU_UN_VIEW | PU_UN_LITE | PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
     caster_ptr->redraw |= (PR_MAP);
-    caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     return TRUE;
 }
 
index 47f5485..6dd0fce 100644 (file)
@@ -179,7 +179,7 @@ void check_hex(player_type *caster_ptr)
             caster_ptr->update |= (PU_BONUS | PU_HP);
             caster_ptr->redraw |= (PR_MAP | PR_STATUS | PR_STATE);
             caster_ptr->update |= (PU_MONSTERS);
-            caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         }
     }
 
index 5a4a661..96db4fa 100644 (file)
@@ -52,7 +52,7 @@ void check_music(player_type *caster_ptr)
             caster_ptr->action = ACTION_SING;
             caster_ptr->update |= (PU_BONUS | PU_HP | PU_MONSTERS);
             caster_ptr->redraw |= (PR_MAP | PR_STATUS | PR_STATE);
-            caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         }
     }
 
index b12fabb..2bdf9e4 100644 (file)
@@ -78,7 +78,7 @@ bool alchemy(player_type *caster_ptr)
 
     caster_ptr->au += price;
     caster_ptr->redraw |= PR_GOLD;
-    caster_ptr->window |= PW_PLAYER;
+    caster_ptr->window_flags |= PW_PLAYER;
     vary_item(caster_ptr, item, -amt);
     return TRUE;
 }
index 1576fa3..1334088 100644 (file)
@@ -260,7 +260,7 @@ bool curse_armor(player_type *owner_ptr)
     /* Break it */
     o_ptr->ident |= (IDENT_BROKEN);
     owner_ptr->update |= (PU_BONUS | PU_MANA);
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
     return TRUE;
 }
 
@@ -315,7 +315,7 @@ bool curse_weapon_object(player_type *owner_ptr, bool force, object_type *o_ptr)
     /* Break it */
     o_ptr->ident |= (IDENT_BROKEN);
     owner_ptr->update |= (PU_BONUS | PU_MANA);
-    owner_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    owner_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
     return TRUE;
 }
 
@@ -530,7 +530,7 @@ bool enchant(player_type *caster_ptr, object_type *o_ptr, int n, int eflag)
     if (!res)
         return FALSE;
     caster_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
-    caster_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    caster_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
 
     calc_android_exp(caster_ptr);
 
index 6909865..665d274 100644 (file)
@@ -199,7 +199,7 @@ bool time_walk(player_type *creature_ptr)
     creature_ptr->energy_need -= 1000 + (100 + creature_ptr->csp - 50) * TURNS_PER_TICK / 10;
     creature_ptr->redraw |= (PR_MAP);
     creature_ptr->update |= (PU_MONSTERS);
-    creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     handle_stuff(creature_ptr);
     return TRUE;
 }
@@ -240,7 +240,7 @@ void roll_hitdice(player_type *creature_ptr, spell_operation options)
     /* Update and redraw hitpoints */
     creature_ptr->update |= (PU_HP);
     creature_ptr->redraw |= (PR_HP);
-    creature_ptr->window |= (PW_PLAYER);
+    creature_ptr->window_flags |= (PW_PLAYER);
 
     if (!(options & SPOP_NO_UPDATE))
         handle_stuff(creature_ptr);
@@ -254,7 +254,7 @@ void roll_hitdice(player_type *creature_ptr, spell_operation options)
         return;
     }
 
-    msg_print(_("体力ランクが変わった。", "Life rate is changed."));
+    msg_print(_("体力ランクが変わった。", "Life rate has changed."));
     creature_ptr->knowledge &= ~(KNOW_HPRATE);
 }
 
@@ -397,7 +397,7 @@ bool restore_mana(player_type *creature_ptr, bool magic_eater)
         }
 
         msg_print(_("頭がハッキリとした。", "You feel your head clear."));
-        creature_ptr->window |= (PW_PLAYER);
+        creature_ptr->window_flags |= (PW_PLAYER);
         return TRUE;
     }
 
@@ -408,8 +408,8 @@ bool restore_mana(player_type *creature_ptr, bool magic_eater)
     creature_ptr->csp_frac = 0;
     msg_print(_("頭がハッキリとした。", "You feel your head clear."));
     creature_ptr->redraw |= (PR_MANA);
-    creature_ptr->window |= (PW_PLAYER);
-    creature_ptr->window |= (PW_SPELL);
+    creature_ptr->window_flags |= (PW_PLAYER);
+    creature_ptr->window_flags |= (PW_SPELL);
     return TRUE;
 }
 
@@ -440,7 +440,7 @@ bool fishing(player_type *creature_ptr)
     POSITION x = creature_ptr->x + ddx[dir];
     creature_ptr->fishing_dir = dir;
     if (!cave_has_flag_bold(creature_ptr->current_floor_ptr, y, x, FF_WATER)) {
-        msg_print(_("そこは水辺ではない。", "There is no fishing place."));
+        msg_print(_("そこは水辺ではない。", "You can't fish here."));
         return FALSE;
     }
 
index 1a359fe..50b85a6 100644 (file)
@@ -152,9 +152,9 @@ bool cast_summon_hound(player_type *creature_ptr, int power)
        if (summon_specific(creature_ptr, (pet ? -1 : 0), creature_ptr->y, creature_ptr->x, power, SUMMON_HOUND, mode))
        {
                if (pet)
-                       msg_print(_("ハウンドがあなたの下僕として出現した。", "A group of hounds appear as your servant."));
+                       msg_print(_("ハウンドがあなたの下僕として出現した。", "A group of hounds appear as your servants."));
                else
-                       msg_print(_("ハウンドはあなたに牙を向けている!", "A group of hounds appear as your enemy!"));
+                       msg_print(_("ハウンドはあなたに牙を向けている!", "A group of hounds appear as your enemies!"));
        }
 
        return TRUE;
@@ -190,9 +190,9 @@ bool cast_summon_octopus(player_type *creature_ptr)
        if (summon_named_creature(creature_ptr, 0, creature_ptr->y, creature_ptr->x, MON_JIZOTAKO, mode))
        {
                if (pet)
-                       msg_print(_("蛸があなたの下僕として出現した。", "A group of octopuses appear as your servant."));
+                       msg_print(_("蛸があなたの下僕として出現した。", "A group of octopuses appear as your servants."));
                else
-                       msg_print(_("蛸はあなたを睨んでいる!", "A group of octopuses appear as your enemy!"));
+                       msg_print(_("蛸はあなたを睨んでいる!", "A group of octopuses appear as your enemies!"));
        }
 
        return TRUE;
index 7fc2b3f..61516d6 100644 (file)
@@ -37,7 +37,7 @@ bool set_blind(player_type *creature_ptr, TIME_EFFECT v)
     if (v) {
         if (!creature_ptr->blind) {
             if (creature_ptr->prace == RACE_ANDROID) {
-                msg_print(_("センサーをやられた!", "You are blind!"));
+                msg_print(_("センサーをやられた!", "The sensor broke!"));
             } else {
                 msg_print(_("目が見えなくなってしまった!", "You are blind!"));
             }
@@ -50,7 +50,7 @@ bool set_blind(player_type *creature_ptr, TIME_EFFECT v)
     else {
         if (creature_ptr->blind) {
             if (creature_ptr->prace == RACE_ANDROID) {
-                msg_print(_("センサーが復旧した。", "You can see again."));
+                msg_print(_("センサーが復旧した。", "The sensor has been restored."));
             } else {
                 msg_print(_("やっと目が見えるようになった。", "You can see again."));
             }
@@ -68,7 +68,7 @@ bool set_blind(player_type *creature_ptr, TIME_EFFECT v)
 
     creature_ptr->update |= (PU_UN_VIEW | PU_UN_LITE | PU_VIEW | PU_LITE | PU_MONSTERS | PU_MON_LITE);
     creature_ptr->redraw |= (PR_MAP);
-    creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     handle_stuff(creature_ptr);
     return TRUE;
 }
@@ -321,7 +321,7 @@ bool set_image(player_type *creature_ptr, TIME_EFFECT v)
 
     creature_ptr->redraw |= (PR_MAP | PR_HEALTH | PR_UHEALTH);
     creature_ptr->update |= (PU_MONSTERS);
-    creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
     handle_stuff(creature_ptr);
     return TRUE;
 }
@@ -562,7 +562,7 @@ bool set_cut(player_type *creature_ptr, TIME_EFFECT v)
         }
     } else if (new_aux < old_aux) {
         if (new_aux == 0) {
-            msg_format(_("やっと%s。", "You are no longer bleeding."), creature_ptr->prace == RACE_ANDROID ? "怪我が直った" : "出血が止まった");
+            msg_format(_("やっと%s。", "You are no longer %s."), creature_ptr->prace == RACE_ANDROID ? _("怪我が直った", "leaking fluid") : _("出血が止まった", "bleeding"));
             if (disturb_state)
                 disturb(creature_ptr, FALSE, FALSE);
         }
index e40d658..d3a2189 100644 (file)
@@ -278,7 +278,7 @@ bool lose_all_info(player_type *creature_ptr)
 
     creature_ptr->update |= (PU_BONUS);
     creature_ptr->update |= (PU_COMBINE | PU_REORDER);
-    creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+    creature_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
     wiz_dark(creature_ptr);
     return TRUE;
 }
index 41d2684..890cb57 100644 (file)
@@ -82,7 +82,7 @@ bool set_invuln(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             creature_ptr->redraw |= (PR_MAP);
             creature_ptr->update |= (PU_MONSTERS);
 
-            creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         }
     } else {
         if (creature_ptr->invuln && !music_singing(creature_ptr, MUSIC_INVULN)) {
@@ -92,7 +92,7 @@ bool set_invuln(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             creature_ptr->redraw |= (PR_MAP);
             creature_ptr->update |= (PU_MONSTERS);
 
-            creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
 
             creature_ptr->energy_need += ENERGY_NEED();
         }
@@ -136,7 +136,7 @@ bool set_tim_regen(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
         }
     } else {
         if (creature_ptr->tim_regen) {
-            msg_print(_("素早く回復する感じがなくなった。", "You feel yourself regenerating slowly."));
+            msg_print(_("素早く回復する感じがなくなった。", "You feel you are no longer regenerating quickly."));
             notice = TRUE;
         }
     }
index 90d1887..41afdc8 100644 (file)
@@ -435,7 +435,7 @@ bool set_wraith_form(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             creature_ptr->redraw |= (PR_MAP);
             creature_ptr->update |= (PU_MONSTERS);
 
-            creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         }
     } else {
         if (creature_ptr->wraith_form) {
@@ -445,7 +445,7 @@ bool set_wraith_form(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             creature_ptr->redraw |= (PR_MAP);
             creature_ptr->update |= (PU_MONSTERS);
 
-            creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+            creature_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
         }
     }
 
index 88665ef..12d7d11 100644 (file)
@@ -55,7 +55,7 @@ void change_race(player_type *creature_ptr, player_race_type new_race, concptr e
 #ifdef JP
     msg_format("あなたは%s%sに変化した!", effect_msg, title);
 #else
-    msg_format("You turn into %s %s%s!", (!effect_msg[0] && is_a_vowel(title[0]) ? "an" : "a"), effect_msg, title);
+    msg_format("You turn into %s %s%s!", (is_a_vowel((effect_msg[0]) ? effect_msg[0] : title[0]) ? "an" : "a"), effect_msg, title);
 #endif
 
     chg_virtue(creature_ptr, V_CHANCE, 2);
index 8f3cf91..a7ccc6e 100644 (file)
@@ -100,14 +100,14 @@ bool set_tim_res_nether(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             if (creature_ptr->tim_res_nether > v)
                 return FALSE;
         } else if (!creature_ptr->tim_res_nether) {
-            msg_print(_("地獄の力に対して耐性がついた気がする!", "You feel nether resistant!"));
+            msg_print(_("地獄の力に対して耐性がついた気がする!", "You feel nether-resistant!"));
             notice = TRUE;
         }
     }
 
     else {
         if (creature_ptr->tim_res_nether) {
-            msg_print(_("地獄の力に対する耐性が薄れた気がする。", "You feel less nether resistant"));
+            msg_print(_("地獄の力に対する耐性が薄れた気がする。", "You feel less nether-resistant"));
             notice = TRUE;
         }
     }
@@ -137,12 +137,12 @@ bool set_tim_res_time(player_type *creature_ptr, TIME_EFFECT v, bool do_dec)
             if (creature_ptr->tim_res_time > v)
                 return FALSE;
         } else if (!creature_ptr->tim_res_time) {
-            msg_print(_("時間逆転の力に対して耐性がついた気がする!", "You feel time resistant!"));
+            msg_print(_("時間逆転の力に対して耐性がついた気がする!", "You feel time-resistant!"));
             notice = TRUE;
         }
     } else {
         if (creature_ptr->tim_res_time) {
-            msg_print(_("時間逆転の力に対する耐性が薄れた気がする。", "You feel less time resistant"));
+            msg_print(_("時間逆転の力に対する耐性が薄れた気がする。", "You feel less time-resistant"));
             notice = TRUE;
         }
     }
index 1c93982..55dde0f 100644 (file)
@@ -131,7 +131,7 @@ bool tgt_pt(player_type *creature_ptr, POSITION *x_ptr, POSITION *y_ptr)
                 verify_panel(creature_ptr);
                 creature_ptr->update |= PU_MONSTERS;
                 creature_ptr->redraw |= PR_MAP;
-                creature_ptr->window |= PW_OVERHEAD;
+                creature_ptr->window_flags |= PW_OVERHEAD;
                 handle_stuff(creature_ptr);
             } else {
                 y = tmp_pos.y[n];
@@ -191,7 +191,7 @@ bool tgt_pt(player_type *creature_ptr, POSITION *x_ptr, POSITION *y_ptr)
     verify_panel(creature_ptr);
     creature_ptr->update |= PU_MONSTERS;
     creature_ptr->redraw |= PR_MAP;
-    creature_ptr->window |= PW_OVERHEAD;
+    creature_ptr->window_flags |= PW_OVERHEAD;
     handle_stuff(creature_ptr);
     *x_ptr = x;
     *y_ptr = y;
index 26f7f74..d020a11 100644 (file)
@@ -109,7 +109,7 @@ void verify_panel(player_type *creature_ptr)
     panel_bounds_center();
     creature_ptr->update |= PU_MONSTERS;
     creature_ptr->redraw |= PR_MAP;
-    creature_ptr->window |= PW_OVERHEAD | PW_DUNGEON;
+    creature_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
 }
 
 /*
index 32fe165..527a1d9 100644 (file)
@@ -202,7 +202,7 @@ static void switch_target_input(player_type *creature_ptr, ts_type *ts_ptr)
         verify_panel(creature_ptr);
         creature_ptr->update |= PU_MONSTERS;
         creature_ptr->redraw |= PR_MAP;
-        creature_ptr->window |= PW_OVERHEAD;
+        creature_ptr->window_flags |= PW_OVERHEAD;
         handle_stuff(creature_ptr);
         target_set_prepare(creature_ptr, ts_ptr->mode);
         ts_ptr->y = creature_ptr->y;
@@ -266,7 +266,7 @@ static void sweep_targets(player_type *creature_ptr, ts_type *ts_ptr)
         panel_bounds_center();
         creature_ptr->update |= PU_MONSTERS;
         creature_ptr->redraw |= PR_MAP;
-        creature_ptr->window |= PW_OVERHEAD;
+        creature_ptr->window_flags |= PW_OVERHEAD;
         handle_stuff(creature_ptr);
         target_set_prepare(creature_ptr, ts_ptr->mode);
         ts_ptr->flag = FALSE;
@@ -352,7 +352,7 @@ static void switch_next_grid_command(player_type *creature_ptr, ts_type *ts_ptr)
         verify_panel(creature_ptr);
         creature_ptr->update |= PU_MONSTERS;
         creature_ptr->redraw |= PR_MAP;
-        creature_ptr->window |= PW_OVERHEAD;
+        creature_ptr->window_flags |= PW_OVERHEAD;
         handle_stuff(creature_ptr);
         target_set_prepare(creature_ptr, ts_ptr->mode);
         ts_ptr->y = creature_ptr->y;
@@ -475,7 +475,14 @@ bool target_set(player_type *creature_ptr, target_type mode)
     verify_panel(creature_ptr);
     creature_ptr->update |= (PU_MONSTERS);
     creature_ptr->redraw |= (PR_MAP);
-    creature_ptr->window |= (PW_OVERHEAD);
+    creature_ptr->window_flags |= (PW_OVERHEAD);
     handle_stuff(creature_ptr);
     return target_who != 0;
 }
+
+void target_clear(player_type *creature_ptr) {
+    ts_type tmp_ts;
+    ts_type *ts_ptr = initialize_target_set_type(creature_ptr, &tmp_ts, TARGET_LOOK);
+    ts_ptr->done = TRUE;
+    tmp_pos.n = 0;
+}
\ No newline at end of file
index 87bffdc..1537ec2 100644 (file)
@@ -4,3 +4,4 @@
 
 typedef enum target_type target_type;
 bool target_set(player_type *creature_ptr, target_type mode);
+void target_clear(player_type *creature_ptr);
\ No newline at end of file
index 3c19667..1c358d2 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include "term/z-term.h"
-#include "core/player-processor.h"
 #include "game-option/map-screen-options.h"
 #include "game-option/runtime-arguments.h"
 #include "game-option/special-options.h"
@@ -251,15 +250,15 @@ void term_queue_char(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta
 
     /* Check for new min/max row info */
     if (y < Term->y1)
-        Term->y1 = (byte)y;
+        Term->y1 = y;
     if (y > Term->y2)
-        Term->y2 = (byte)y;
+        Term->y2 = y;
 
     /* Check for new min/max col info for this row */
     if (x < Term->x1[y])
-        Term->x1[y] = (byte)x;
+        Term->x1[y] = x;
     if (x > Term->x2[y])
-        Term->x2[y] = (byte)x;
+        Term->x2[y] = x;
 
 #ifdef JP
     if (((scrn->a[y][x] & AF_BIGTILE2) == AF_BIGTILE2) || (scrn->a[y][x] & AF_KANJI2))
@@ -399,15 +398,15 @@ void term_queue_line(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR *a, char *c, TERM
     if (x1 >= 0) {
         /* Check for new min/max row info */
         if (y < Term->y1)
-            Term->y1 = (byte)y;
+            Term->y1 = y;
         if (y > Term->y2)
-            Term->y2 = (byte)y;
+            Term->y2 = y;
 
         /* Check for new min/max col info in this row */
         if (x1 < Term->x1[y])
-            Term->x1[y] = (byte)x1;
+            Term->x1[y] = x1;
         if (x2 > Term->x2[y])
-            Term->x2[y] = (byte)x2;
+            Term->x2[y] = x2;
     }
 }
 
@@ -529,15 +528,15 @@ static void term_queue_chars(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR a, concpt
     if (x1 >= 0) {
         /* Check for new min/max row info */
         if (y < Term->y1)
-            Term->y1 = (byte)y;
+            Term->y1 = y;
         if (y > Term->y2)
-            Term->y2 = (byte)y;
+            Term->y2 = y;
 
         /* Check for new min/max col info in this row */
         if (x1 < Term->x1[y])
-            Term->x1[y] = (byte)x1;
+            Term->x1[y] = x1;
         if (x2 > Term->x2[y])
-            Term->x2[y] = (byte)x2;
+            Term->x2[y] = x2;
     }
 }
 
@@ -1029,8 +1028,6 @@ bool macro_running(void)
     return diff < -1 || 1 < diff;
 }
 
-bool need_term_fresh(player_type *player_ptr) { return (!macro_running() && !continuous_action_running(player_ptr)) || fresh_after; }
-
 /*
  * @brief Actually perform all requested changes to the window
  */
@@ -1049,6 +1046,9 @@ errr term_fresh(void)
     if (!old || !scr)
         return 1;
 
+    if (Term->never_fresh)
+        return 1;
+
     /* Do nothing unless "mapped" */
     if (!Term->mapped_flag)
         return 1;
@@ -1198,7 +1198,7 @@ errr term_fresh(void)
                 }
 
                 /* This row is all done */
-                Term->x1[y] = (byte)w;
+                Term->x1[y] = w;
                 Term->x2[y] = 0;
 
                 /* Flush that row (if allowed) */
@@ -1208,7 +1208,7 @@ errr term_fresh(void)
         }
 
         /* No rows are invalid */
-        Term->y1 = (byte)h;
+        Term->y1 = h;
         Term->y2 = 0;
     }
 
@@ -1307,8 +1307,8 @@ errr term_gotoxy(TERM_LEN x, TERM_LEN y)
         return -1;
 
     /* Remember the cursor */
-    Term->scr->cx = (byte)x;
-    Term->scr->cy = (byte)y;
+    Term->scr->cx = x;
+    Term->scr->cy = y;
 
     /* The cursor is not useless */
     Term->scr->cu = 0;
@@ -1466,7 +1466,7 @@ errr term_addstr(int n, TERM_COLOR a, concptr s)
     term_queue_chars(Term->scr->cx, Term->scr->cy, n, a, s);
 
     /* Advance the cursor */
-    Term->scr->cx += (byte)n;
+    Term->scr->cx += n;
 
     /* Notice "Useless" cursor */
     if (res)
@@ -1599,15 +1599,15 @@ errr term_erase(TERM_LEN x, TERM_LEN y, int n)
     if (x1 >= 0) {
         /* Check for new min/max row info */
         if (y < Term->y1)
-            Term->y1 = (byte)y;
+            Term->y1 = y;
         if (y > Term->y2)
-            Term->y2 = (byte)y;
+            Term->y2 = y;
 
         /* Check for new min/max col info in this row */
         if (x1 < Term->x1[y])
-            Term->x1[y] = (byte)x1;
+            Term->x1[y] = x1;
         if (x2 > Term->x2[y])
-            Term->x2[y] = (byte)x2;
+            Term->x2[y] = x2;
     }
 
     return 0;
@@ -1692,14 +1692,14 @@ errr term_redraw_section(TERM_LEN x1, TERM_LEN y1, TERM_LEN x2, TERM_LEN y2)
         x1 = 0;
 
     /* Set y limits */
-    Term->y1 = (byte)y1;
-    Term->y2 = (byte)y2;
+    Term->y1 = y1;
+    Term->y2 = y2;
 
     /* Set the x limits */
     for (int i = Term->y1; i <= Term->y2; i++) {
 #ifdef JP
-        int x1j = x1;
-        int x2j = x2;
+        TERM_LEN x1j = x1;
+        TERM_LEN x2j = x2;
 
         if (x1j > 0) {
             if (Term->scr->a[i][x1j] & AF_KANJI2)
@@ -1711,8 +1711,8 @@ errr term_redraw_section(TERM_LEN x1, TERM_LEN y1, TERM_LEN x2, TERM_LEN y2)
                 x2j++;
         }
 
-        Term->x1[i] = (byte)x1j;
-        Term->x2[i] = (byte)x2j;
+        Term->x1[i] = x1j;
+        Term->x2[i] = x2j;
 
         g_ptr = Term->old->c[i];
 
index 1d97884..a2a0c3a 100644 (file)
@@ -57,6 +57,7 @@ typedef struct term_type {
     bool unused_flag; //!< Flag "unused_flag" Reserved for future use
     bool never_bored; //!< Flag "never_bored" Never call the "TERM_XTRA_BORED" action
     bool never_frosh; //!< Flag "never_frosh" Never call the "TERM_XTRA_FROSH" action
+    bool never_fresh; //!< Flag "never_fresh" Never redraw the Term
 
     byte attr_blank; //!< Value "attr_blank" Use this "attr" value for "blank" grids
     char char_blank; //!< Value "char_blank" Use this "char" value for "blank" grids
@@ -96,8 +97,6 @@ typedef struct term_type {
         concptr tcp); //!< タイル描画実装部 / Hook for drawing a sequence of special attr / char pairs
 } term_type;
 
-typedef struct player_type player_type;
-
 /**** Available Constants ****/
 
 /*
@@ -145,10 +144,7 @@ errr term_xtra(int n, int v);
 
 void term_queue_char(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta, char tc);
 void term_queue_bigchar(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta, char tc);
-
 void term_queue_line(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR *a, char *c, TERM_COLOR *ta, char *tc);
-
-bool need_term_fresh(player_type *player_ptr);
 bool macro_running(void);
 
 errr term_fresh(void);
index fdc0a70..d059bb6 100644 (file)
@@ -420,7 +420,7 @@ void msg_print(concptr msg)
     }
 
     term_putstr(p, 0, n, TERM_WHITE, t);
-    p_ptr->window |= (PW_MESSAGE);
+    p_ptr->window_flags |= (PW_MESSAGE);
     update_output(p_ptr);
 
     msg_flag = TRUE;
index d2d12ec..5425c1d 100644 (file)
@@ -184,10 +184,8 @@ void fix_spell(player_type *player_ptr)
 
         term_activate(angband_term[j]);
         display_spell_list(player_ptr);
-        if (need_term_fresh(player_ptr)) {
-            term_fresh();
-            player_ptr->window &= ~(PW_SPELL);
-        }
+        term_fresh();
+        player_ptr->window_flags &= ~(PW_SPELL);
         term_activate(old);
     }
 }
\ No newline at end of file
index 0bbf4b9..ea0ba84 100644 (file)
@@ -21,6 +21,7 @@
 #include "system/floor-type-definition.h"
 #include "system/monster-type-definition.h"
 #include "target/target-preparation.h"
+#include "target/target-setter.h"
 #include "target/target-types.h"
 #include "term/gameterm.h"
 #include "term/screen-processor.h"
@@ -170,7 +171,7 @@ void print_monster_list(floor_type *floor_ptr, TERM_LEN x, TERM_LEN y, TERM_LEN
  * @param player_ptr プレーヤーへの参照ポインタ
  * @return なし
  */
-void fix_monster_list(player_type *player_ptr)
+void fix_monster_list(player_type *player_ptr, bool force_term_fresh)
 {
     for (int j = 0; j < 8; j++) {
         term_type *old = Term;
@@ -178,15 +179,18 @@ void fix_monster_list(player_type *player_ptr)
             continue;
         if (!(window_flag[j] & PW_MONSTER_LIST))
             continue;
+        if (angband_term[j]->never_fresh && !force_term_fresh)
+            continue;
 
+        angband_term[j]->never_fresh = FALSE;
         term_activate(angband_term[j]);
         int w, h;
         term_get_size(&w, &h);
         term_clear();
         target_set_prepare(player_ptr, TARGET_LOOK);
         print_monster_list(player_ptr->current_floor_ptr, 0, 0, h);
-        if (need_term_fresh(player_ptr))
-            term_fresh();
+        target_clear(player_ptr);
+        term_fresh();
         term_activate(old);
     }
 }
@@ -477,14 +481,14 @@ void toggle_inventory_equipment(player_type *owner_ptr)
         if (window_flag[j] & (PW_INVEN)) {
             window_flag[j] &= ~(PW_INVEN);
             window_flag[j] |= (PW_EQUIP);
-            owner_ptr->window |= (PW_EQUIP);
+            owner_ptr->window_flags |= (PW_EQUIP);
             continue;
         }
 
         if (window_flag[j] & PW_EQUIP) {
             window_flag[j] &= ~(PW_EQUIP);
             window_flag[j] |= PW_INVEN;
-            owner_ptr->window |= PW_INVEN;
+            owner_ptr->window_flags |= PW_INVEN;
         }
     }
 }
index b6ac6b5..6be4ded 100644 (file)
@@ -5,7 +5,7 @@
 
 void fix_inventory(player_type *player_ptr, tval_type item_tester_tval);
 void print_monster_list(floor_type *floor_ptr, TERM_LEN x, TERM_LEN y, TERM_LEN max_lines);
-void fix_monster_list(player_type *player_ptr);
+void fix_monster_list(player_type *player_ptr, bool force_term_fresh);
 void fix_equip(player_type *player_ptr, tval_type item_tester_tval);
 void fix_player(player_type *player_ptr);
 void fix_message(void);
index 7350ed3..287e48c 100644 (file)
@@ -226,8 +226,7 @@ static void wiz_statistics(player_type *caster_ptr, object_type *o_ptr)
                 }
 
                 prt(format(q, i, correct, matches, better, worse, other), 0, 0);
-                if (need_term_fresh(caster_ptr))
-                    term_fresh();
+                term_fresh();
             }
 
             object_type forge;
@@ -351,7 +350,7 @@ static void wiz_reroll_item(player_type *owner_ptr, object_type *o_ptr)
     object_copy(o_ptr, q_ptr);
     owner_ptr->update |= PU_BONUS;
     owner_ptr->update |= PU_COMBINE | PU_REORDER;
-    owner_ptr->window |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER;
+    owner_ptr->window_flags |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER;
 }
 
 /*!
@@ -490,7 +489,7 @@ void wiz_modify_item(player_type *creature_ptr)
         object_copy(o_ptr, q_ptr);
         creature_ptr->update |= PU_BONUS;
         creature_ptr->update |= PU_COMBINE | PU_REORDER;
-        creature_ptr->window |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER;
+        creature_ptr->window_flags |= PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER;
     } else {
         msg_print("Changes ignored.");
     }
index c6089fb..1f9669e 100644 (file)
@@ -460,7 +460,7 @@ void wiz_reset_class(player_type *creature_ptr)
         return;
 
     creature_ptr->pclass = (byte)tmp_int;
-    creature_ptr->window |= PW_PLAYER;
+    creature_ptr->window_flags |= PW_PLAYER;
     creature_ptr->update |= PU_BONUS | PU_HP | PU_MANA | PU_SPELLS;
     handle_stuff(creature_ptr);
 }