Ticket #1168: message.patch

File message.patch, 44.1 KB (added by Tomas Dedorson <twilight_forest@…>, 10 years ago)
  • lib/pref/message.prf

     
    99# 
    1010# Format: 
    1111# M:<message-type>:<color> 
    12 # 
    13 # Possible colors: 
    14 # d = Black 
    15 # w = White 
    16 # s = Gray 
    17 # o = Orange 
    18 # r = Red 
    19 # g = Green 
    20 # b = Blue 
    21 # u = Brown 
    22 # D = Dark Gray 
    23 # W = Light Gray 
    24 # v = Violet 
    25 # y = Yellow 
    26 # R = Light Red 
    27 # G = Light Green 
    28 # B = Light Blue 
    29 # U = Light Brown 
    3012 
     13# d - 0  - Black         w - 1  - White         s - 2  - Slate 
     14# o - 3  - Orange        r - 4  - Red           g - 5  - Green 
     15# b - 6  - Blue          u - 7  - Umber         D - 8  - Light Dark 
     16# W - 9  - Light Slate   P - 10 - Light Purple  y - 11 - yellow 
     17# R - 12 - Light Red     G - 13 - Light Green   B - 14 - Light Blue 
     18# U - 15 - Light Umber   p - 16 - Purple        v - 17 - Violet 
     19# t - 18 - Teal          m - 19 - Mud           Y - 20 - Light Yellow 
     20# i - 21 - Magenta-Pink  T - 22 - Light Teal    V - 23 - Light Violet 
     21# I - 24 - Light Pink    M - 25 - Mustard       z - 26 - Blue Slate 
     22# Z - 27 - Deep Light Blue 
    3123 
     24# I included all possible message types here for future-proofing,  
     25# although some of them are only used as sound-effects at the moment.  
     26# sound.cfg can be found in /lib/extra/sound (Twilight). 
     27 
    3228# MSG_GENERIC 
    3329M:0:w 
    3430 
     
    4137# MSG_FLEE 
    4238M:3:w 
    4339 
    44 # MSG_DROP 
     40# MSG_DROP (sound only) 
    4541M:4:w 
    4642 
    4743# MSG_KILL 
     
    5652# MSG_STUDY 
    5753M:8:w 
    5854 
    59 # MSG_TELEPORT 
     55# MSG_TELEPORT (sound only) 
    6056M:9:w 
    6157 
    62 # MSG_SHOOT 
     58# MSG_SHOOT (sound only) 
    6359M:10:w 
    6460 
    65 # MSG_QUAFF 
     61# MSG_QUAFF (sound only) 
    6662M:11:w 
    6763 
    68 # MSG_ZAP 
     64# MSG_ZAP_ROD (sound only) 
    6965M:12:w 
    7066 
    71 # MSG_WALK 
     67# MSG_WALK (unused) 
    7268M:13:w 
    7369 
    74 # MSG_TPOTHER 
     70# MSG_TPOTHER (sound only) 
    7571M:14:w 
    7672 
    7773# MSG_HITWALL 
    7874M:15:w 
    7975 
    80 # MSG_EAT 
     76# MSG_EAT (sound only) 
    8177M:16:w 
    8278 
    8379# MSG_STORE1 
     
    9288# MSG_STORE4 
    9389M:20:w 
    9490 
    95 # MSG_DIG 
     91# MSG_DIG (sound only) 
    9692M:21:w 
    9793 
    9894# MSG_OPENDOOR 
    9995M:22:w 
    10096 
    101 # MSG_SHUTDOOR 
     97# MSG_SHUTDOOR (sound only) 
    10298M:23:w 
    10399 
    104100# MSG_TPLEVEL 
     
    113109# MSG_LOCKPICK_FAIL 
    114110M:27:w 
    115111 
    116 # MSG_STAIRS 
     112# MSG_STAIRS_DOWN 
    117113M:28:w 
    118114 
    119115# MSG_HITPOINT_WARN 
    120116M:29:o 
    121117 
     118# MSG_ACT_ARTIFACT 
     119M:30:w 
     120 
     121# MSG_USE_STAFF (sound only) 
     122M:31:w 
     123 
     124# MSG_DESTROY 
     125M:32:w 
     126 
     127# MSG_MON_HIT 
     128M:33:w 
     129 
     130# MSG_MON_TOUCH 
     131M:34:w 
     132 
     133# MSG_MON_PUNCH 
     134M:35:w 
     135 
     136# MSG_MON_KICK 
     137M:36:w 
     138 
     139# MSG_MON_CLAW 
     140M:37:w 
     141 
     142# MSG_MON_BITE 
     143M:38:w 
     144 
     145# MSG_MON_STING 
     146M:39:w 
     147 
     148# MSG_MON_BUTT  
     149M:40:w 
     150 
     151# MSG_MON_CRUSH 
     152M:41:w 
     153 
     154# MSG_MON_ENGULF 
     155M:42:w 
     156 
     157# MSG_MON_CRAWL 
     158M:43:w 
     159 
     160# MSG_MON_DROOL 
     161M:44:w 
     162 
     163# MSG_MON_SPIT 
     164M:45:w 
     165 
     166# MSG_MON_GAZE 
     167M:46:w 
     168 
     169# MSG_MON_WAIL 
     170M:47:w 
     171 
     172# MSG_MON_SPORE 
     173M:48:w 
     174 
     175# MSG_MON_BEG 
     176M:49:w 
     177 
     178# MSG_MON_INSULT 
     179M:50:w 
     180 
     181# MSG_MON_MOAN 
     182M:51:w 
     183 
     184# MSG_RECOVER 
     185M:52:w 
     186 
     187# MSG_BLIND 
     188M:53:w 
     189 
     190# MSG_CONFUSED 
     191M:54:w 
     192 
     193# MSG_POISONED 
     194M:55:w 
     195 
    122196# MSG_AFRAID 
    123197M:56:o 
    124198 
     199# MSG_PARALYZED 
     200M:57:w 
     201 
     202# MSG_DRUGGED 
     203M:58:w 
     204 
     205# MSG_SPEED 
     206M:59:w 
     207 
     208# MSG_SLOW 
     209M:60:w 
     210 
     211# MSG_SHIELD 
     212M:61:w 
     213 
     214# MSG_BLESSED 
     215M:62:w 
     216 
     217# MSG_HERO 
     218M:63:w 
     219 
     220# MSG_BERSERK 
     221M:64:w 
     222 
     223# MSG_PROT_EVIL 
     224M:65:w 
     225 
     226# MSG_INVULN 
     227M:66:w 
     228 
     229# MSG_SEE_INVIS 
     230M:67:w 
     231 
     232# MSG_INFRARED 
     233M:68:w 
     234 
     235# MSG_RES_ACID 
     236M:69:w 
     237 
     238# MSG_RES_ELEC 
     239M:70:w 
     240 
     241# MSG_RES_FIRE 
     242M:71:w 
     243 
     244# MSG_RES_COLD 
     245M:72:w 
     246 
     247# MSG_RES_POIS 
     248M:73:w 
     249 
     250# MSG_STUN 
     251M:74:w 
     252 
     253# MSG_CUT 
     254M:75:w 
     255 
     256# MSG_STAIRS_UP 
     257M:76:w 
     258 
     259# MSG_STORE_ENTER (unused) 
     260M:77:w 
     261 
     262# MSG_STORE_LEAVE (unused) 
     263M:78:w 
     264 
     265# MSG_STORE_HOME (unused) 
     266M:79:w 
     267 
     268# MSG_MONEY1 
     269M:80:w 
     270 
     271# MSG_MONEY2 
     272M:81:w 
     273 
     274# MSG_MONEY3 
     275M:82:w 
     276 
     277# MSG_SHOOT_HIT 
     278M:83:w 
     279 
     280# MSG_STORE5 
     281M:84:w 
     282 
     283# MSG_LOCKPICK 
     284M:85:w 
     285 
     286# MSG_DISARM 
     287M:86:w 
     288 
     289# MSG_IDENT_BAD 
     290M:87:w 
     291 
     292# MSG_IDENT_EGO 
     293M:88:w 
     294 
     295# MSG_IDENT_ART 
     296M:89:w 
     297 
     298# MSG_BR_ELEMENTS 
     299# This is used as a generic breath.Another message type should be defined. 
     300M:90:w 
     301 
     302# MSG_BR_FROST 
     303M:91:w 
     304 
     305# MSG_BR_ELEC 
     306M:92:w 
     307 
     308# MSG_BR_ACID 
     309M:93:w 
     310 
     311# MSG_BR_GAS 
     312M:94:w 
     313 
     314# MSG_BR_FIRE 
     315M:95:w 
     316 
     317# MSG_BR_CONF 
     318M:96:w 
     319 
     320# MSG_BR_DISENCHANT 
     321M:97:w 
     322 
     323# MSG_BR_CHAOS 
     324M:98:w 
     325 
     326# MSG_BR_SHARDS 
     327M:99:w 
     328 
     329# MSG_BR_SOUND 
     330M:100:w 
     331 
     332# MSG_BR_LIGHT 
     333M:101:w 
     334 
     335# MSG_BR_DARK 
     336M:102:w 
     337 
     338# MSG_BR_NETHER 
     339M:103:w 
     340 
     341# MSG_BR_NEXUS 
     342M:104:w 
     343 
     344# MSG_BR_TIME 
     345M:105:w 
     346 
     347# MSG_BR_INERTIA 
     348M:106:w 
     349 
     350# MSG_BR_GRAVITY 
     351M:107:w 
     352 
     353# MSG_BR_PLASMA 
     354M:108:w 
     355 
     356# MSG_BR_FORCE 
     357M:109:w 
     358 
     359# MSG_SUM_MONSTER 
     360M:110:w 
     361 
     362# MSG_SUM_ANGEL 
     363M:111:w 
     364 
     365# MSG_SUM_UNDEAD 
     366M:112:w 
     367 
     368# MSG_SUM_ANIMAL 
     369M:113:w 
     370 
     371# MSG_SUM_SPIDER 
     372M:114:w 
     373 
     374# MSG_SUM_HOUND 
     375M:115:w 
     376 
     377# MSG_SUM_HYDRA 
     378M:116:w 
     379 
     380# MSG_SUM_DEMON 
     381M:117:w 
     382 
     383# MSG_SUM_DRAGON 
     384M:118:w 
     385 
     386# MSG_SUM_HI_UNDEAD 
     387M:119:w 
     388 
     389# MSG_SUM_HI_DRAGON 
     390M:120:w 
     391 
     392# MSG_SUM_HI_DEMON 
     393M:121:w 
     394 
     395# MSG_SUM_WRAITH 
     396M:122:w 
     397 
     398# MSG_SUM_UNIQUE 
     399M:123:w 
     400 
     401# MSG_WIELD 
     402M:124:w 
     403 
     404# MSG_CURSED 
     405M:125:w 
     406 
     407# MSG_PSEUDOID 
     408M:126:w 
     409 
     410# MSG_HUNGRY 
     411M:127:w 
     412 
     413# MSG_NOTICE 
     414M:128:w 
     415 
     416# MSG_AMBIENT_DAY (sound only) 
     417M:129:w 
     418 
     419# MSG_AMBIENT_NITE (sound only) 
     420M:130:w 
     421 
     422# MSG_AMBIENT_DNG1 (sound only) 
     423M:131:w 
     424 
     425# MSG_AMBIENT_DNG2 (sound only) 
     426M:132:w 
     427 
     428# MSG_AMBIENT_DNG3 (sound only) 
     429M:133:w 
     430 
     431# MSG_AMBIENT_DNG4 (sound only) 
     432M:134:w 
     433 
     434# MSG_AMBIENT_DNG5 (sound only) 
     435M:135:w 
     436 
     437# MSG_CREATE_TRAP 
     438M:136:w 
     439 
     440# MSG_SHRIEK 
     441M:137:w 
     442 
     443# MSG_CAST_FEAR 
     444M:138:w 
     445 
     446# MSG_HIT_GOOD 
     447M:139:w 
     448 
     449# MSG_HIT_GREAT 
     450M:140:w 
     451 
     452# MSG_HIT_SUPERB 
     453M:141:w 
     454 
     455# MSG_HIT_HI_GREAT 
     456M:142:w 
     457 
     458# MSG_HIT_HI_SUPERB 
     459M:143:w 
     460 
     461# MSG_SPELL (sound only) 
     462M:144:w 
     463 
     464# MSG_PRAYER (unused) 
     465M:145:w 
     466 
     467# MSG_KILL_UNIQUE 
     468M:146:w 
     469 
     470# MSG_KILL_KING 
     471M:147:w 
     472 
     473# MSG_DRAIN_STAT 
     474M:148:w 
     475 
     476# MSG_MULTIPLY (sound only) 
     477M:149:w 
     478 
     479# MSG_MAX 150 
     480 
    125481?:1 
    126  
  • src/attack.c

     
    8888 * Critical hits (from objects thrown by player) 
    8989 * Factor in item weight, total plusses, and player level. 
    9090 */ 
    91 static int critical_shot(int weight, int plus, int dam) 
     91static int critical_shot(int weight, int plus, int dam, u32b *msg_type) 
    9292{ 
    9393        int i, k; 
    9494 
     
    102102 
    103103                if (k < 500) 
    104104                { 
    105                         msg_print("It was a good hit!"); 
     105                        *msg_type = MSG_HIT_GOOD; 
    106106                        dam = 2 * dam + 5; 
    107107                } 
    108108                else if (k < 1000) 
    109109                { 
    110                         msg_print("It was a great hit!"); 
     110                        *msg_type = MSG_HIT_GREAT; 
    111111                        dam = 2 * dam + 10; 
    112112                } 
    113113                else 
    114114                { 
    115                         msg_print("It was a superb hit!"); 
     115                        *msg_type = MSG_HIT_SUPERB; 
    116116                        dam = 3 * dam + 15; 
    117117                } 
    118118        } 
     
    127127 * 
    128128 * Factor in weapon weight, total plusses, player level. 
    129129 */ 
    130 static int critical_norm(int weight, int plus, int dam, const char **crit_msg) 
     130static int critical_norm(int weight, int plus, int dam, u32b *msg_type) 
    131131{ 
    132132        int i, k; 
    133133 
     
    141141 
    142142                if (k < 400) 
    143143                { 
    144                         sound(MSG_HIT_GOOD); 
    145                         *crit_msg = "It was a good hit!"; 
     144                        *msg_type = MSG_HIT_GOOD; 
    146145                        dam = 2 * dam + 5; 
    147146                } 
    148147                else if (k < 700) 
    149148                { 
    150                         sound(MSG_HIT_GREAT); 
    151                         *crit_msg = "It was a great hit!"; 
     149                        *msg_type = MSG_HIT_GREAT; 
    152150                        dam = 2 * dam + 10; 
    153151                } 
    154152                else if (k < 900) 
    155153                { 
    156                         sound(MSG_HIT_SUPERB); 
    157                         *crit_msg = "It was a superb hit!"; 
     154                        *msg_type = MSG_HIT_SUPERB; 
    158155                        dam = 3 * dam + 15; 
    159156                } 
    160157                else if (k < 1300) 
    161158                { 
    162                         sound(MSG_HIT_HI_GREAT); 
    163                         *crit_msg = "It was a *GREAT* hit!"; 
     159                        *msg_type = MSG_HIT_HI_GREAT; 
    164160                        dam = 3 * dam + 20; 
    165161                } 
    166162                else 
    167163                { 
    168                         sound(MSG_HIT_HI_SUPERB); 
    169                         *crit_msg = "It was a *SUPERB* hit!"; 
     164                        *msg_type = MSG_HIT_HI_SUPERB; 
    170165                        dam = ((7 * dam) / 2) + 25; 
    171166                } 
    172167        } 
    173168        else 
    174         { 
    175                 sound(MSG_HIT); 
    176         } 
     169                *msg_type = MSG_HIT; 
    177170 
    178171        return dam; 
    179172} 
     
    264257 
    265258        bool do_quake = FALSE; 
    266259 
    267         const char *crit_msg = NULL; 
     260        u32b msg_type = 0; 
    268261 
    269262 
    270263        /* Disturb the player */ 
     
    338331                                        do_quake = TRUE; 
    339332 
    340333                                k += o_ptr->to_d; 
    341                                 k = critical_norm(o_ptr->weight, o_ptr->to_h, k, &crit_msg); 
     334                                k = critical_norm(o_ptr->weight, o_ptr->to_h, k, &msg_type); 
    342335 
    343336                                /* Learn by use for the weapon */ 
    344337                                object_notice_attack_plusses(o_ptr); 
     
    361354                        } 
    362355 
    363356                        /* Tell the player what happened */ 
    364                         message_format(MSG_GENERIC, m_ptr->r_idx, "You %s %s.", hit_verb, m_name); 
    365                         if (crit_msg) msg_print(crit_msg); 
     357                        if (msg_type == MSG_HIT) 
     358                                message_format(MSG_HIT, m_ptr->r_idx, "You %s %s.", hit_verb, m_name); 
     359                        else 
     360                        { 
     361                                if (msg_type == MSG_HIT_GOOD) 
     362                                { 
     363                                        message_format(MSG_HIT_GOOD, m_ptr->r_idx, "You %s %s. %s", hit_verb, m_name, 
     364                                                                   "It was a good hit!"); 
     365                                } 
     366                                else if (msg_type == MSG_HIT_GREAT) 
     367                                { 
     368                                        message_format(MSG_HIT_GREAT, m_ptr->r_idx, "You %s %s. %s", hit_verb, m_name, 
     369                                                                   "It was a great hit!"); 
     370                                } 
     371                                else if (msg_type == MSG_HIT_SUPERB) 
     372                                { 
     373                                        message_format(MSG_HIT_SUPERB, m_ptr->r_idx, "You %s %s. %s", hit_verb, m_name, 
     374                                                                   "It was a superb hit!"); 
     375                                } 
     376                                else if (msg_type == MSG_HIT_HI_GREAT) 
     377                                { 
     378                                        message_format(MSG_HIT_HI_GREAT, m_ptr->r_idx, "You %s %s. %s", hit_verb, m_name, 
     379                                                                   "It was a *GREAT* hit!"); 
     380                                } 
     381                                else if (msg_type == MSG_HIT_HI_SUPERB) 
     382                                { 
     383                                        message_format(MSG_HIT_HI_SUPERB, m_ptr->r_idx, "You %s %s. %s", hit_verb, m_name, 
     384                                                                   "It was a *SUPERB* hit!"); 
     385                                } 
     386                        } 
    366387 
    367388                        /* Complex message */ 
    368389                        if (p_ptr->wizard) 
     
    469490 
    470491        char o_name[80]; 
    471492 
     493        u32b msg_type = 0; 
     494 
    472495        int path_n; 
    473496        u16b path_g[256]; 
    474497 
     
    628651                                        note_dies = " is destroyed."; 
    629652                                } 
    630653 
     654                                /* Apply damage: multiplier, slays, criticals, bonuses */ 
     655                                tdam = damroll(o_ptr->dd, o_ptr->ds); 
     656                                tdam += o_ptr->to_d + j_ptr->to_d; 
     657                                tdam *= p_ptr->state.ammo_mult; 
     658                                tdam *= (best_s_ptr == NULL) ? 1 : best_s_ptr->mult; 
     659                                tdam = critical_shot(o_ptr->weight, o_ptr->to_h, tdam, &msg_type); 
    631660 
     661                                object_notice_attack_plusses(o_ptr); 
     662                                object_notice_attack_plusses(&inventory[INVEN_BOW]); 
     663 
     664                                /* No negative damage; change verb if no damage done */ 
     665                                if (tdam <= 0) 
     666                                { 
     667                                        tdam = 0; 
     668                                        hit_verb = "fail to harm"; 
     669                                } 
     670 
    632671                                /* Handle unseen monster */ 
    633672                                if (!visible) 
    634673                                { 
     
    644683                                        /* Get "the monster" or "it" */ 
    645684                                        monster_desc(m_name, sizeof(m_name), m_ptr, 0); 
    646685 
    647                                         /* Message */ 
    648                                         message_format(MSG_SHOOT_HIT, 0, "The %s %s %s.", o_name, hit_verb, m_name); 
    649  
     686                                        /* Tell the player what happened */ 
     687                                        if (msg_type == MSG_SHOOT_HIT) 
     688                                                message_format(MSG_SHOOT_HIT, 0, "The %s %s %s.", o_name, hit_verb, m_name); 
     689                                        else 
     690                                        { 
     691                                                if (msg_type == MSG_HIT_GOOD) 
     692                                                { 
     693                                                        message_format(MSG_HIT_GOOD, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     694                                                                                   "It was a good hit!"); 
     695                                                } 
     696                                                else if (msg_type == MSG_HIT_GREAT) 
     697                                                { 
     698                                                        message_format(MSG_HIT_GREAT, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     699                                                                                   "It was a great hit!"); 
     700                                                } 
     701                                                else if (msg_type == MSG_HIT_SUPERB) 
     702                                                { 
     703                                                        message_format(MSG_HIT_SUPERB, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     704                                                                                   "It was a superb hit!"); 
     705                                                } 
     706                                        } 
    650707                                        /* Hack -- Track this monster race */ 
    651708                                        if (m_ptr->ml) monster_race_track(m_ptr->r_idx); 
    652709 
    653710                                        /* Hack -- Track this monster */ 
    654711                                        if (m_ptr->ml) health_track(cave_m_idx[y][x]); 
     712 
    655713                                } 
    656714 
    657                                 /* Apply damage: multiplier, slays, criticals, bonuses */ 
    658                                 tdam = damroll(o_ptr->dd, o_ptr->ds); 
    659                                 tdam += o_ptr->to_d + j_ptr->to_d; 
    660                                 tdam *= p_ptr->state.ammo_mult; 
    661                                 tdam *= (best_s_ptr == NULL) ? 1 : best_s_ptr->mult; 
    662                                 tdam = critical_shot(o_ptr->weight, o_ptr->to_h, tdam); 
    663  
    664                                 object_notice_attack_plusses(o_ptr); 
    665                                 object_notice_attack_plusses(&inventory[INVEN_BOW]); 
    666  
    667                                 /* No negative damage */ 
    668                                 if (tdam < 0) tdam = 0; 
    669  
    670715                                /* Complex message */ 
    671716                                if (p_ptr->wizard) 
    672717                                { 
     
    846891 
    847892        char o_name[80]; 
    848893 
     894        u32b msg_type = 0; 
     895 
    849896        int path_n; 
    850897        u16b path_g[256]; 
    851898 
     
    10261073                                        tdam *= best_s_ptr->mult; 
    10271074                                        hit_verb = best_s_ptr->range_verb; 
    10281075                                } 
     1076                                /* Apply special damage XXX XXX XXX */ 
     1077                                tdam = critical_shot(i_ptr->weight, i_ptr->to_h, tdam, &msg_type); 
    10291078 
     1079                                /* No negative damage; change verb if no damage done */ 
     1080                                if (tdam <= 0) 
     1081                                { 
     1082                                        tdam = 0; 
     1083                                        hit_verb = "fail to harm"; 
     1084                                } 
     1085 
    10301086                                /* Handle unseen monster */ 
    10311087                                if (!visible) 
    10321088                                { 
     
    10421098                                        /* Get "the monster" or "it" */ 
    10431099                                        monster_desc(m_name, sizeof(m_name), m_ptr, 0); 
    10441100 
    1045                                         /* Message */ 
    1046                                         msg_format("The %s %s %s.", o_name, hit_verb, m_name); 
    1047  
     1101                                        /* Tell the player what happened */ 
     1102                                        if (msg_type == MSG_SHOOT_HIT) 
     1103                                                message_format(MSG_SHOOT_HIT, 0, "The %s %s %s.", o_name, hit_verb, m_name); 
     1104                                        else 
     1105                                        { 
     1106                                                if (msg_type == MSG_HIT_GOOD) 
     1107                                                { 
     1108                                                        message_format(MSG_HIT_GOOD, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     1109                                                                                   "It was a good hit!"); 
     1110                                                } 
     1111                                                else if (msg_type == MSG_HIT_GREAT) 
     1112                                                { 
     1113                                                        message_format(MSG_HIT_GREAT, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     1114                                                                                   "It was a great hit!"); 
     1115                                                } 
     1116                                                else if (msg_type == MSG_HIT_SUPERB) 
     1117                                                { 
     1118                                                        message_format(MSG_HIT_SUPERB, 0, "The %s %s %s. %s", o_name, hit_verb, m_name, 
     1119                                                                                   "It was a superb hit!"); 
     1120                                                } 
     1121                                        } 
    10481122                                        /* Hack -- Track this monster race */ 
    10491123                                        if (m_ptr->ml) monster_race_track(m_ptr->r_idx); 
    10501124 
     
    10521126                                        if (m_ptr->ml) health_track(cave_m_idx[y][x]); 
    10531127                                } 
    10541128 
    1055                                 /* Apply special damage XXX XXX XXX */ 
    1056                                 tdam = critical_shot(i_ptr->weight, i_ptr->to_h, tdam); 
    1057  
    1058                                 /* No negative damage */ 
    1059                                 if (tdam < 0) tdam = 0; 
    1060  
    10611129                                /* Learn the bonuses */ 
    10621130                                /* XXX Eddie This is messed up, better done for firing, */ 
    10631131                                /* should use that method [split last] instead */ 
     
    11221190 
    11231191        if (item >= INVEN_WIELD && item < QUIVER_START) 
    11241192        { 
    1125                 msg_print("You have cannot throw wielded items."); 
     1193                msg_print("You cannot throw wielded items."); 
    11261194                return; 
    11271195        } 
    11281196 
  • src/cmd-obj.c

     
    517517                } 
    518518 
    519519                use = USE_CHARGE; 
    520                 snd = MSG_ZAP_ROD; 
     520                snd = MSG_USE_STAFF; 
    521521                items_allowed = USE_INVEN | USE_FLOOR; 
    522522        } 
    523523        else if (obj_is_food(o_ptr)) 
  • src/cmd3.c

     
    199199        object_desc(o_name, sizeof(o_name), o_ptr, ODESC_PREFIX | ODESC_FULL); 
    200200 
    201201        /* Message */ 
    202         sound(MSG_WIELD); 
    203         msg_format(fmt, o_name, index_to_label(slot)); 
     202        message_format(MSG_WIELD, 0, fmt, o_name, index_to_label(slot)); 
    204203 
    205204        /* Cursed! */ 
    206205        if (cursed_p(o_ptr)) 
    207206        { 
    208207                /* Warn the player */ 
    209                 sound(MSG_CURSED); 
    210                 msg_print("Oops! It feels deathly cold!"); 
     208                message_format(MSG_CURSED, 0, "Oops! It feels deathly cold!"); 
    211209 
    212210                /* Sense the object */ 
    213211                object_notice_curses(o_ptr); 
  • src/dungeon.c

     
    793793                        /* Disturbing! */ 
    794794                        disturb(0, 0); 
    795795 
    796                         /* Sound */ 
    797                         sound(MSG_TPLEVEL); 
    798  
    799796                        /* Determine the level */ 
    800797                        if (p_ptr->depth) 
    801798                        { 
    802                                 msg_print("You feel yourself yanked upwards!"); 
     799                                message_format(MSG_TPLEVEL, 0, "You feel yourself yanked upwards!"); 
    803800                                dungeon_change_level(0); 
    804801                        } 
    805802                        else 
    806803                        { 
    807                                 msg_print("You feel yourself yanked downwards!"); 
     804                                message_format(MSG_TPLEVEL, 0, "You feel yourself yanked downwards!"); 
    808805 
    809806                                /* New depth - back to max depth or 1, whichever is deeper */ 
    810807                                dungeon_change_level(p_ptr->max_depth < 1 ? 1: p_ptr->max_depth); 
  • src/effects.c

     
    18421842                case EF_DRAGON_BLUE: 
    18431843                { 
    18441844                        dam = 100 * (100 + boost) / 100; 
    1845                         sound(MSG_BR_ELEC); 
    1846                         msg_print("You breathe lightning."); 
     1845                        message_format(MSG_BR_ELEC, 0, "You breathe lightning."); 
    18471846                        fire_ball(GF_ELEC, dir, dam, 2); 
    18481847                        return TRUE; 
    18491848                } 
     
    18511850                case EF_DRAGON_GREEN: 
    18521851                { 
    18531852                        dam = 150 * (100 + boost) / 100; 
    1854                         sound(MSG_BR_GAS); 
    1855                         msg_print("You breathe poison gas."); 
     1853                        message_format(MSG_BR_GAS, 0, "You breathe poison gas."); 
    18561854                        fire_ball(GF_POIS, dir, dam, 2); 
    18571855                        return TRUE; 
    18581856                } 
     
    18601858                case EF_DRAGON_RED: 
    18611859                { 
    18621860                        dam = 200 * (100 + boost) / 100; 
    1863                         sound(MSG_BR_FIRE); 
    1864                         msg_print("You breathe fire."); 
     1861                        message_format(MSG_BR_FIRE, 0, "You breathe fire."); 
    18651862                        fire_ball(GF_FIRE, dir, dam, 2); 
    18661863                        return TRUE; 
    18671864                } 
     
    18701867                { 
    18711868                        static const struct 
    18721869                        { 
    1873                                 int sound; 
     1870                                int msg_sound; 
    18741871                                const char *msg; 
    18751872                                int typ; 
    18761873                        } mh[] = 
     
    18841881 
    18851882                        int chance = randint0(5); 
    18861883                        dam = 250 * (100 + boost) / 100; 
    1887                         sound(mh[chance].sound); 
    1888                         msg_format("You breathe %s.", mh[chance].msg); 
     1884                        message_format(mh[chance].msg_sound, 0, "You breathe %s.", mh[chance].msg); 
    18891885                        fire_ball(mh[chance].typ, dir, dam, 2); 
    18901886                        return TRUE; 
    18911887                } 
     
    18931889                case EF_DRAGON_BRONZE: 
    18941890                { 
    18951891                        dam = 120 * (100 + boost) / 100; 
    1896                         sound(MSG_BR_CONF); 
    1897                         msg_print("You breathe confusion."); 
     1892                        message_format(MSG_BR_CONF, 0, "You breathe confusion."); 
    18981893                        fire_ball(GF_CONFUSION, dir, dam, 2); 
    18991894                        return TRUE; 
    19001895                } 
     
    19021897                case EF_DRAGON_GOLD: 
    19031898                { 
    19041899                        dam = 130 * (100 + boost) / 100; 
    1905                         sound(MSG_BR_SOUND); 
    1906                         msg_print("You breathe sound."); 
     1900                        message_format(MSG_BR_SOUND, 0, "You breathe sound."); 
    19071901                        fire_ball(GF_SOUND, dir, dam, 2); 
    19081902                        return TRUE; 
    19091903                } 
     
    19121906                { 
    19131907                        dam = 220 * (100 + boost) / 100; 
    19141908                        chance = randint0(2); 
    1915                         sound(((chance == 1 ? MSG_BR_CHAOS : MSG_BR_DISENCHANT))); 
    1916                         msg_format("You breathe %s.", 
    1917                                    ((chance == 1 ? "chaos" : "disenchantment"))); 
     1909                        message_format((chance == 1 ? MSG_BR_CHAOS : MSG_BR_DISENCHANT), 0, 
     1910                                        "You breathe %s.", 
     1911                                        ((chance == 1 ? "chaos" : "disenchantment"))); 
    19181912                        fire_ball((chance == 1 ? GF_CHAOS : GF_DISENCHANT), 
    19191913                                  dir, dam, 2); 
    19201914                        return TRUE; 
     
    19241918                { 
    19251919                        dam = 230 * (100 + boost) / 100; 
    19261920                        chance = randint0(2); 
    1927                         sound(((chance == 1 ? MSG_BR_SOUND : MSG_BR_SHARDS))); 
    1928                         msg_format("You breathe %s.", 
     1921                        message_format((chance == 1 ? MSG_BR_SOUND : MSG_BR_SHARDS), 0, "You breathe %s.", 
    19291922                                   ((chance == 1 ? "sound" : "shards"))); 
    19301923                        fire_ball((chance == 1 ? GF_SOUND : GF_SHARD), 
    19311924                                  dir, dam, 2); 
     
    19511944                { 
    19521945                        dam = 200 * (100 + boost) / 100; 
    19531946                        chance = randint0(2); 
    1954                         sound(((chance == 0 ? MSG_BR_LIGHT : MSG_BR_DARK))); 
    1955                         msg_format("You breathe %s.", 
     1947                        message_format((chance == 0 ? MSG_BR_LIGHT : MSG_BR_DARK), 0, "You breathe %s.", 
    19561948                                ((chance == 0 ? "light" : "darkness"))); 
    19571949                        fire_ball((chance == 0 ? GF_LIGHT : GF_DARK), dir, dam, 
    19581950                                2); 
     
    19621954                case EF_DRAGON_POWER: 
    19631955                { 
    19641956                        dam = 300 * (100 + boost) / 100; 
    1965                         sound(MSG_BR_ELEMENTS); 
    1966                         msg_print("You breathe the elements."); 
     1957                        message_format(MSG_BR_ELEMENTS, 0, "You breathe the elements."); 
    19671958                        fire_ball(GF_MISSILE, dir, dam, 2); 
    19681959                        return TRUE; 
    19691960                } 
  • src/spells2.c

     
    33033303{ 
    33043304        char o_name[80]; 
    33053305 
     3306        u32b msg_type = 0; 
     3307 
    33063308        /* Identify it */ 
    33073309        object_flavor_aware(o_ptr); 
    33083310        object_notice_everything(o_ptr); 
     
    33253327        /* Description */ 
    33263328        object_desc(o_name, sizeof(o_name), o_ptr, ODESC_PREFIX | ODESC_FULL); 
    33273329 
    3328         /* Possibly play a sound depending on object quality. */ 
     3330        /* Determine the message type. */ 
    33293331        if (o_ptr->pval < 0) 
    33303332        { 
    33313333                /* This is a bad item. */ 
    3332                 sound(MSG_IDENT_BAD); 
     3334                msg_type = MSG_IDENT_BAD; 
    33333335        } 
    33343336        else if (o_ptr->name1 != 0) 
    33353337        { 
    33363338                /* We have a good artifact. */ 
    3337                 sound(MSG_IDENT_ART); 
     3339                msg_type = MSG_IDENT_ART; 
    33383340        } 
    33393341        else if (o_ptr->name2 != 0) 
    33403342        { 
    33413343                /* We have a good ego item. */ 
    3342                 sound(MSG_IDENT_EGO); 
     3344                msg_type = MSG_IDENT_EGO; 
    33433345        } 
     3346        else 
     3347        { 
     3348                msg_type = MSG_GENERIC; 
     3349        } 
    33443350 
    33453351        /* Log artifacts to the history list. */ 
    33463352        if (artifact_p(o_ptr)) 
     
    33493355        /* Describe */ 
    33503356        if (item >= INVEN_WIELD) 
    33513357        { 
    3352                 msg_format("%^s: %s (%c).", 
     3358                message_format(msg_type, 0, "%^s: %s (%c).", 
    33533359                          describe_use(item), o_name, index_to_label(item)); 
    33543360        } 
    33553361        else if (item >= 0) 
    33563362        { 
    3357                 msg_format("In your pack: %s (%c).", 
     3363                message_format(msg_type, 0, "In your pack: %s (%c).", 
    33583364                          o_name, index_to_label(item)); 
    33593365        } 
    33603366        else 
    33613367        { 
    3362                 msg_format("On the ground: %s.", o_name); 
     3368                message_format(msg_type, 0, "On the ground: %s.", o_name); 
    33633369        } 
    33643370} 
  • src/monster/melee2.c

     
    767767                { 
    768768                        if (!direct) break; 
    769769                        disturb(1, 0); 
    770                         sound(MSG_SHRIEK); 
    771                         msg_format("%^s makes a high pitched shriek.", m_name); 
     770                        message_format(MSG_SHRIEK, 0, "%^s makes a high pitched shriek.", m_name); 
    772771                        aggravate_monsters(m_idx); 
    773772                        break; 
    774773                } 
     
    840839                case RSF_BR_ACID: 
    841840                { 
    842841                        disturb(1, 0); 
    843                         sound(MSG_BR_ACID); 
    844                         if (blind) msg_format("%^s breathes.", m_name); 
    845                         else msg_format("%^s breathes acid.", m_name); 
     842                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     843                        else message_format(MSG_BR_ACID, 0, "%^s breathes acid.", m_name); 
    846844                        breath(m_idx, GF_ACID, 
    847845                               ((m_ptr->hp / BR_ACID_DIVISOR) > BR_ACID_MAX ? BR_ACID_MAX : (m_ptr->hp / BR_ACID_DIVISOR))); 
    848846                        update_smart_learn(m_idx, DRS_RES_ACID); 
     
    852850                case RSF_BR_ELEC: 
    853851                { 
    854852                        disturb(1, 0); 
    855                         sound(MSG_BR_ELEC); 
    856                         if (blind) msg_format("%^s breathes.", m_name); 
    857                         else msg_format("%^s breathes lightning.", m_name); 
     853                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     854                        else message_format(MSG_BR_ELEC, 0, "%^s breathes lightning.", m_name); 
    858855                        breath(m_idx, GF_ELEC, 
    859856                               ((m_ptr->hp / BR_ELEC_DIVISOR) > BR_ELEC_MAX ? BR_ELEC_MAX : (m_ptr->hp / BR_ELEC_DIVISOR))); 
    860857                        update_smart_learn(m_idx, DRS_RES_ELEC); 
     
    864861                case RSF_BR_FIRE: 
    865862                { 
    866863                        disturb(1, 0); 
    867                         sound(MSG_BR_FIRE); 
    868                         if (blind) msg_format("%^s breathes.", m_name); 
    869                         else msg_format("%^s breathes fire.", m_name); 
     864                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     865                        else message_format(MSG_BR_FIRE, 0, "%^s breathes fire.", m_name); 
    870866                        breath(m_idx, GF_FIRE, 
    871867                               ((m_ptr->hp / BR_FIRE_DIVISOR) > BR_FIRE_MAX ? BR_FIRE_MAX : (m_ptr->hp / BR_FIRE_DIVISOR))); 
    872868                        update_smart_learn(m_idx, DRS_RES_FIRE); 
     
    876872                case RSF_BR_COLD: 
    877873                { 
    878874                        disturb(1, 0); 
    879                         sound(MSG_BR_FROST); 
    880                         if (blind) msg_format("%^s breathes.", m_name); 
    881                         else msg_format("%^s breathes frost.", m_name); 
     875                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     876                        else message_format(MSG_BR_FROST, 0, "%^s breathes frost.", m_name); 
    882877                        breath(m_idx, GF_COLD, 
    883878                               ((m_ptr->hp / BR_COLD_DIVISOR) > BR_COLD_MAX ? BR_COLD_MAX : (m_ptr->hp / BR_COLD_DIVISOR))); 
    884879                        update_smart_learn(m_idx, DRS_RES_COLD); 
     
    888883                case RSF_BR_POIS: 
    889884                { 
    890885                        disturb(1, 0); 
    891                         sound(MSG_BR_GAS); 
    892                         if (blind) msg_format("%^s breathes.", m_name); 
    893                         else msg_format("%^s breathes gas.", m_name); 
     886                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     887                        else message_format(MSG_BR_GAS, 0, "%^s breathes gas.", m_name); 
    894888                        breath(m_idx, GF_POIS, 
    895889                               ((m_ptr->hp / BR_POIS_DIVISOR) > BR_POIS_MAX ? BR_POIS_MAX : (m_ptr->hp / BR_POIS_DIVISOR))); 
    896890                        update_smart_learn(m_idx, DRS_RES_POIS); 
     
    900894                case RSF_BR_NETH: 
    901895                { 
    902896                        disturb(1, 0); 
    903                         sound(MSG_BR_NETHER); 
    904                         if (blind) msg_format("%^s breathes.", m_name); 
    905                         else msg_format("%^s breathes nether.", m_name); 
     897                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     898                        else message_format(MSG_BR_NETHER, 0, "%^s breathes nether.", m_name); 
    906899                        breath(m_idx, GF_NETHER, 
    907900                               ((m_ptr->hp / BR_NETH_DIVISOR) > BR_NETH_MAX ? BR_NETH_MAX : (m_ptr->hp / BR_NETH_DIVISOR))); 
    908901                        update_smart_learn(m_idx, DRS_RES_NETHR); 
     
    912905                case RSF_BR_LIGHT: 
    913906                { 
    914907                        disturb(1, 0); 
    915                         sound(MSG_BR_LIGHT); 
    916                         if (blind) msg_format("%^s breathes.", m_name); 
    917                         else msg_format("%^s breathes light.", m_name); 
     908                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     909                        else message_format(MSG_BR_LIGHT, 0, "%^s breathes light.", m_name); 
    918910                        breath(m_idx, GF_LIGHT, 
    919911                               ((m_ptr->hp / BR_LIGHT_DIVISOR) > BR_LIGHT_MAX ? BR_LIGHT_MAX : (m_ptr->hp / BR_LIGHT_DIVISOR))); 
    920912                        update_smart_learn(m_idx, DRS_RES_LIGHT); 
     
    924916                case RSF_BR_DARK: 
    925917                { 
    926918                        disturb(1, 0); 
    927                         sound(MSG_BR_DARK); 
    928                         if (blind) msg_format("%^s breathes.", m_name); 
    929                         else msg_format("%^s breathes darkness.", m_name); 
     919                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     920                        else message_format(MSG_BR_DARK, 0, "%^s breathes darkness.", m_name); 
    930921                        breath(m_idx, GF_DARK, 
    931922                               ((m_ptr->hp / BR_DARK_DIVISOR) > BR_DARK_MAX ? BR_DARK_MAX : (m_ptr->hp / BR_DARK_DIVISOR))); 
    932923                        update_smart_learn(m_idx, DRS_RES_DARK); 
     
    936927                case RSF_BR_CONF: 
    937928                { 
    938929                        disturb(1, 0); 
    939                         sound(MSG_BR_CONF); 
    940                         if (blind) msg_format("%^s breathes.", m_name); 
    941                         else msg_format("%^s breathes confusion.", m_name); 
     930                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     931                        else message_format(MSG_BR_CONF, 0, "%^s breathes confusion.", m_name); 
    942932                        breath(m_idx, GF_CONFUSION, 
    943933                               ((m_ptr->hp / BR_CONF_DIVISOR) > BR_CONF_MAX ? BR_CONF_MAX : (m_ptr->hp / BR_CONF_DIVISOR))); 
    944934                        update_smart_learn(m_idx, DRS_RES_CONFU); 
     
    948938                case RSF_BR_SOUN: 
    949939                { 
    950940                        disturb(1, 0); 
    951                         sound(MSG_BR_SOUND); 
    952                         if (blind) msg_format("%^s breathes.", m_name); 
    953                         else msg_format("%^s breathes sound.", m_name); 
     941                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     942                        else message_format(MSG_BR_SOUND, 0, "%^s breathes sound.", m_name); 
    954943                        breath(m_idx, GF_SOUND, 
    955944                               ((m_ptr->hp / BR_SOUN_DIVISOR) > BR_SOUN_MAX ? BR_SOUN_MAX : (m_ptr->hp / BR_SOUN_DIVISOR))); 
    956945                        update_smart_learn(m_idx, DRS_RES_SOUND); 
     
    960949                case RSF_BR_CHAO: 
    961950                { 
    962951                        disturb(1, 0); 
    963                         sound(MSG_BR_CHAOS); 
    964                         if (blind) msg_format("%^s breathes.", m_name); 
    965                         else msg_format("%^s breathes chaos.", m_name); 
     952                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     953                        else message_format(MSG_BR_CHAOS, 0, "%^s breathes chaos.", m_name); 
    966954                        breath(m_idx, GF_CHAOS, 
    967955                               ((m_ptr->hp / BR_CHAO_DIVISOR) > BR_CHAO_MAX ? BR_CHAO_MAX : (m_ptr->hp / BR_CHAO_DIVISOR))); 
    968956                        update_smart_learn(m_idx, DRS_RES_CHAOS); 
     
    972960                case RSF_BR_DISE: 
    973961                { 
    974962                        disturb(1, 0); 
    975                         sound(MSG_BR_DISENCHANT); 
    976                         if (blind) msg_format("%^s breathes.", m_name); 
    977                         else msg_format("%^s breathes disenchantment.", m_name); 
     963                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     964                        else message_format(MSG_BR_DISENCHANT, 0, "%^s breathes disenchantment.", m_name); 
    978965                        breath(m_idx, GF_DISENCHANT, 
    979966                               ((m_ptr->hp / BR_DISE_DIVISOR) > BR_DISE_MAX ? BR_DISE_MAX : (m_ptr->hp / BR_DISE_DIVISOR))); 
    980967                        update_smart_learn(m_idx, DRS_RES_DISEN); 
     
    984971                case RSF_BR_NEXU: 
    985972                { 
    986973                        disturb(1, 0); 
    987                         sound(MSG_BR_NEXUS); 
    988                         if (blind) msg_format("%^s breathes.", m_name); 
    989                         else msg_format("%^s breathes nexus.", m_name); 
     974                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     975                        else message_format(MSG_BR_NEXUS, 0, "%^s breathes nexus.", m_name); 
    990976                        breath(m_idx, GF_NEXUS, 
    991977                               ((m_ptr->hp / BR_NEXU_DIVISOR) > BR_NEXU_MAX ? BR_NEXU_MAX : (m_ptr->hp / BR_NEXU_DIVISOR))); 
    992978                        update_smart_learn(m_idx, DRS_RES_NEXUS); 
     
    996982                case RSF_BR_TIME: 
    997983                { 
    998984                        disturb(1, 0); 
    999                         sound(MSG_BR_TIME); 
    1000                         if (blind) msg_format("%^s breathes.", m_name); 
    1001                         else msg_format("%^s breathes time.", m_name); 
     985                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     986                        else message_format(MSG_BR_TIME, 0, "%^s breathes time.", m_name); 
    1002987                        breath(m_idx, GF_TIME, 
    1003988                               ((m_ptr->hp / BR_TIME_DIVISOR) > BR_TIME_MAX ? BR_TIME_MAX : (m_ptr->hp / BR_TIME_DIVISOR))); 
    1004989                        break; 
     
    1007992                case RSF_BR_INER: 
    1008993                { 
    1009994                        disturb(1, 0); 
    1010                         sound(MSG_BR_INERTIA); 
    1011                         if (blind) msg_format("%^s breathes.", m_name); 
    1012                         else msg_format("%^s breathes inertia.", m_name); 
     995                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     996                        else message_format(MSG_BR_INERTIA, 0, "%^s breathes inertia.", m_name); 
    1013997                        breath(m_idx, GF_INERTIA, 
    1014998                               ((m_ptr->hp / BR_INER_DIVISOR) > BR_INER_MAX ? BR_INER_MAX : (m_ptr->hp / BR_INER_DIVISOR))); 
    1015999                        break; 
     
    10181002                case RSF_BR_GRAV: 
    10191003                { 
    10201004                        disturb(1, 0); 
    1021                         sound(MSG_BR_GRAVITY); 
    1022                         if (blind) msg_format("%^s breathes.", m_name); 
    1023                         else msg_format("%^s breathes gravity.", m_name); 
     1005                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     1006                        else message_format(MSG_BR_GRAVITY, 0, "%^s breathes gravity.", m_name); 
    10241007                        breath(m_idx, GF_GRAVITY, 
    10251008                               ((m_ptr->hp / BR_GRAV_DIVISOR) > BR_GRAV_MAX ? BR_GRAV_MAX : (m_ptr->hp / BR_GRAV_DIVISOR))); 
    10261009                        break; 
     
    10291012                case RSF_BR_SHAR: 
    10301013                { 
    10311014                        disturb(1, 0); 
    1032                         sound(MSG_BR_SHARDS); 
    1033                         if (blind) msg_format("%^s breathes.", m_name); 
    1034                         else msg_format("%^s breathes shards.", m_name); 
     1015                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     1016                        else message_format(MSG_BR_SHARDS, 0, "%^s breathes shards.", m_name); 
    10351017                        breath(m_idx, GF_SHARD, 
    10361018                               ((m_ptr->hp / BR_SHAR_DIVISOR) > BR_SHAR_MAX ? BR_SHAR_MAX : (m_ptr->hp / BR_SHAR_DIVISOR))); 
    10371019                        update_smart_learn(m_idx, DRS_RES_SHARD); 
     
    10411023                case RSF_BR_PLAS: 
    10421024                { 
    10431025                        disturb(1, 0); 
    1044                         sound(MSG_BR_PLASMA); 
    1045                         if (blind) msg_format("%^s breathes.", m_name); 
    1046                         else msg_format("%^s breathes plasma.", m_name); 
     1026                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     1027                        else message_format(MSG_BR_PLASMA, 0, "%^s breathes plasma.", m_name); 
    10471028                        breath(m_idx, GF_PLASMA, 
    10481029                               ((m_ptr->hp / BR_PLAS_DIVISOR) > BR_PLAS_MAX ? BR_PLAS_MAX : (m_ptr->hp / BR_PLAS_DIVISOR))); 
    10491030                        break; 
     
    10521033                case RSF_BR_WALL: 
    10531034                { 
    10541035                        disturb(1, 0); 
    1055                         sound(MSG_BR_FORCE); 
    1056                         if (blind) msg_format("%^s breathes.", m_name); 
    1057                         else msg_format("%^s breathes force.", m_name); 
     1036                        if (blind) message_format(MSG_BR_ELEMENTS, 0, "%^s breathes.", m_name); 
     1037                        else message_format(MSG_BR_FORCE, 0, "%^s breathes force.", m_name); 
    10581038                        breath(m_idx, GF_FORCE, 
    10591039                               ((m_ptr->hp / BR_FORC_DIVISOR) > BR_FORC_MAX ? BR_FORC_MAX : (m_ptr->hp / BR_FORC_DIVISOR))); 
    10601040                        break; 
     
    14861466                { 
    14871467                        if (!direct) break; 
    14881468                        disturb(1, 0); 
    1489                         sound(MSG_CAST_FEAR); 
    1490                         if (blind) msg_format("%^s mumbles, and you hear scary noises.", m_name); 
    1491                         else msg_format("%^s casts a fearful illusion.", m_name); 
     1469                        if (blind) message_format(MSG_CAST_FEAR, 0, "%^s mumbles, and you hear scary noises.", m_name); 
     1470                        else message_format(MSG_CAST_FEAR, 0, "%^s casts a fearful illusion.", m_name); 
    14921471                        if (p_ptr->state.resist_fear) 
    14931472                        { 
    14941473                                msg_print("You refuse to be frightened."); 
     
    17621741                { 
    17631742                        if (!direct) break; 
    17641743                        disturb(1, 0); 
    1765                         sound(MSG_CREATE_TRAP); 
    1766                         if (blind) msg_format("%^s mumbles, and then cackles evilly.", m_name); 
    1767                         else msg_format("%^s casts a spell and cackles evilly.", m_name); 
     1744                        if (blind) message_format(MSG_CREATE_TRAP, 0, "%^s mumbles, and then cackles evilly.", m_name); 
     1745                        else message_format(MSG_CREATE_TRAP, 0, "%^s casts a spell and cackles evilly.", m_name); 
    17681746                        (void)trap_creation(); 
    17691747                        break; 
    17701748                } 
     
    17861764                case RSF_S_KIN: 
    17871765                { 
    17881766                        disturb(1, 0); 
    1789                         sound(MSG_SUM_MONSTER); 
    1790                         if (blind) msg_format("%^s mumbles.", m_name); 
    1791                         else msg_format("%^s magically summons %s %s.", m_name, m_poss, 
     1767                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1768                        else message_format(MSG_SUM_MONSTER, 0, "%^s magically summons %s %s.", m_name, m_poss, 
    17921769                                        (rf_has(r_ptr->flags, RF_UNIQUE) ? 
    17931770                                         "minions" : "kin")); 
    17941771 
     
    18001777                        } 
    18011778                        if (blind && count) 
    18021779                        { 
    1803                                 msg_print("You hear many things appear nearby."); 
     1780                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    18041781                        } 
    18051782                        break; 
    18061783                } 
     
    18081785                case RSF_S_HI_DEMON: 
    18091786                { 
    18101787                        disturb(1, 0); 
    1811                         sound(MSG_SUM_HI_DEMON); 
    1812                         if (blind) msg_format("%^s mumbles.", m_name); 
    1813                         else msg_format("%^s magically summons greater demons!", m_name); 
     1788                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1789                        else message_format(MSG_SUM_HI_DEMON, 0, "%^s magically summons greater demons!", m_name); 
    18141790                        for (k = 0; k < 8; k++) 
    18151791                        { 
    18161792                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_HI_DEMON, 0); 
    18171793                        } 
    18181794                        if (blind && count) 
    18191795                        { 
    1820                                 msg_print("You hear many evil things appear nearby."); 
     1796                                /* The message is distinct, hence a specific message type. */ 
     1797                                message_format(MSG_SUM_HI_DEMON, 0, "You hear many evil things appear nearby."); 
    18211798                        } 
    18221799                        break; 
    18231800                } 
     
    18251802                case RSF_S_MONSTER: 
    18261803                { 
    18271804                        disturb(1, 0); 
    1828                         sound(MSG_SUM_MONSTER); 
    1829                         if (blind) msg_format("%^s mumbles.", m_name); 
    1830                         else msg_format("%^s magically summons help!", m_name); 
     1805                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1806                        else message_format(MSG_SUM_MONSTER, 0, "%^s magically summons help!", m_name); 
    18311807                        for (k = 0; k < 1; k++) 
    18321808                        { 
    18331809                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_MONSTER, 0); 
    18341810                        } 
    18351811                        if (blind && count) 
    18361812                        { 
    1837                                 msg_print("You hear something appear nearby."); 
     1813                                message_format(MSG_SUM_MONSTER, 0, "You hear something appear nearby."); 
    18381814                        } 
    18391815                        break; 
    18401816                } 
     
    18421818                case RSF_S_MONSTERS: 
    18431819                { 
    18441820                        disturb(1, 0); 
    1845                         sound(MSG_SUM_MONSTER); 
    1846                         if (blind) msg_format("%^s mumbles.", m_name); 
    1847                         else msg_format("%^s magically summons monsters!", m_name); 
     1821                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1822                        else message_format(MSG_SUM_MONSTER, 0, "%^s magically summons monsters!", m_name); 
    18481823                        for (k = 0; k < 8; k++) 
    18491824                        { 
    18501825                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_MONSTERS, 0); 
    18511826                        } 
    18521827                        if (blind && count) 
    18531828                        { 
    1854                                 msg_print("You hear many things appear nearby."); 
     1829                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    18551830                        } 
    18561831                        break; 
    18571832                } 
     
    18591834                case RSF_S_ANIMAL: 
    18601835                { 
    18611836                        disturb(1, 0); 
    1862                         sound(MSG_SUM_ANIMAL); 
    1863                         if (blind) msg_format("%^s mumbles.", m_name); 
    1864                         else msg_format("%^s magically summons animals.", m_name); 
     1837                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1838                        else message_format(MSG_SUM_ANIMAL, 0, "%^s magically summons animals.", m_name); 
    18651839                        for (k = 0; k < 6; k++) 
    18661840                        { 
    18671841                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_ANIMAL, 0); 
    18681842                        } 
    18691843                        if (blind && count) 
    18701844                        { 
    1871                                 msg_print("You hear many things appear nearby."); 
     1845                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    18721846                        } 
    18731847                        break; 
    18741848                } 
     
    18761850                case RSF_S_SPIDER: 
    18771851                { 
    18781852                        disturb(1, 0); 
    1879                         sound(MSG_SUM_SPIDER); 
    1880                         if (blind) msg_format("%^s mumbles.", m_name); 
    1881                         else msg_format("%^s magically summons spiders.", m_name); 
     1853                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1854                        else message_format(MSG_SUM_SPIDER, 0, "%^s magically summons spiders.", m_name); 
    18821855                        for (k = 0; k < 6; k++) 
    18831856                        { 
    18841857                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_SPIDER, 0); 
    18851858                        } 
    18861859                        if (blind && count) 
    18871860                        { 
    1888                                 msg_print("You hear many things appear nearby."); 
     1861                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    18891862                        } 
    18901863                        break; 
    18911864                } 
     
    18931866                case RSF_S_HOUND: 
    18941867                { 
    18951868                        disturb(1, 0); 
    1896                         sound(MSG_SUM_HOUND); 
    1897                         if (blind) msg_format("%^s mumbles.", m_name); 
    1898                         else msg_format("%^s magically summons hounds.", m_name); 
     1869                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1870                        else message_format(MSG_SUM_HOUND, 0, "%^s magically summons hounds.", m_name); 
    18991871                        for (k = 0; k < 6; k++) 
    19001872                        { 
    19011873                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_HOUND, 0); 
    19021874                        } 
    19031875                        if (blind && count) 
    19041876                        { 
    1905                                 msg_print("You hear many things appear nearby."); 
     1877                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    19061878                        } 
    19071879                        break; 
    19081880                } 
     
    19101882                case RSF_S_HYDRA: 
    19111883                { 
    19121884                        disturb(1, 0); 
    1913                         sound(MSG_SUM_HYDRA); 
    1914                         if (blind) msg_format("%^s mumbles.", m_name); 
    1915                         else msg_format("%^s magically summons hydras.", m_name); 
     1885                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1886                        else message_format(MSG_SUM_HYDRA, 0, "%^s magically summons hydras.", m_name); 
    19161887                        for (k = 0; k < 6; k++) 
    19171888                        { 
    19181889                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_HYDRA, 0); 
    19191890                        } 
    19201891                        if (blind && count) 
    19211892                        { 
    1922                                 msg_print("You hear many things appear nearby."); 
     1893                                message_format(MSG_SUM_MONSTER, 0, "You hear many things appear nearby."); 
    19231894                        } 
    19241895                        break; 
    19251896                } 
     
    19271898                case RSF_S_ANGEL: 
    19281899                { 
    19291900                        disturb(1, 0); 
    1930                         sound(MSG_SUM_ANGEL); 
    1931                         if (blind) msg_format("%^s mumbles.", m_name); 
    1932                         else msg_format("%^s magically summons an angel!", m_name); 
     1901                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1902                        else message_format(MSG_SUM_ANGEL, 0, "%^s magically summons an angel!", m_name); 
    19331903                        for (k = 0; k < 1; k++) 
    19341904                        { 
    19351905                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_ANGEL, 0); 
    19361906                        } 
    19371907                        if (blind && count) 
    19381908                        { 
    1939                                 msg_print("You hear something appear nearby."); 
     1909                                message_format(MSG_SUM_MONSTER, 0, "You hear something appear nearby."); 
    19401910                        } 
    19411911                        break; 
    19421912                } 
     
    19441914                case RSF_S_DEMON: 
    19451915                { 
    19461916                        disturb(1, 0); 
    1947                         sound(MSG_SUM_DEMON); 
    1948                         if (blind) msg_format("%^s mumbles.", m_name); 
    1949                         else msg_format("%^s magically summons a hellish adversary!", m_name); 
     1917                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1918                        else message_format(MSG_SUM_DEMON, 0, "%^s magically summons a hellish adversary!", m_name); 
    19501919                        for (k = 0; k < 1; k++) 
    19511920                        { 
    19521921                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_DEMON, 0); 
    19531922                        } 
    19541923                        if (blind && count) 
    19551924                        { 
    1956                                 msg_print("You hear something appear nearby."); 
     1925                                message_format(MSG_SUM_MONSTER, 0, "You hear something appear nearby."); 
    19571926                        } 
    19581927                        break; 
    19591928                } 
     
    19611930                case RSF_S_UNDEAD: 
    19621931                { 
    19631932                        disturb(1, 0); 
    1964                         sound(MSG_SUM_UNDEAD); 
    1965                         if (blind) msg_format("%^s mumbles.", m_name); 
    1966                         else msg_format("%^s magically summons an undead adversary!", m_name); 
     1933                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1934                        else message_format(MSG_SUM_UNDEAD, 0, "%^s magically summons an undead adversary!", m_name); 
    19671935                        for (k = 0; k < 1; k++) 
    19681936                        { 
    19691937                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_UNDEAD, 0); 
    19701938                        } 
    19711939                        if (blind && count) 
    19721940                        { 
    1973                                 msg_print("You hear something appear nearby."); 
     1941                                message_format(MSG_SUM_MONSTER, 0, "You hear something appear nearby."); 
    19741942                        } 
    19751943                        break; 
    19761944                } 
     
    19781946                case RSF_S_DRAGON: 
    19791947                { 
    19801948                        disturb(1, 0); 
    1981                         sound(MSG_SUM_DRAGON); 
    1982                         if (blind) msg_format("%^s mumbles.", m_name); 
    1983                         else msg_format("%^s magically summons a dragon!", m_name); 
     1949                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1950                        else message_format(MSG_SUM_DRAGON, 0, "%^s magically summons a dragon!", m_name); 
    19841951                        for (k = 0; k < 1; k++) 
    19851952                        { 
    19861953                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_DRAGON, 0); 
    19871954                        } 
    19881955                        if (blind && count) 
    19891956                        { 
    1990                                 msg_print("You hear something appear nearby."); 
     1957                                message_format(MSG_SUM_MONSTER, 0, "You hear something appear nearby."); 
    19911958                        } 
    19921959                        break; 
    19931960                } 
     
    19951962                case RSF_S_HI_UNDEAD: 
    19961963                { 
    19971964                        disturb(1, 0); 
    1998                         sound(MSG_SUM_HI_UNDEAD); 
    1999                         if (blind) msg_format("%^s mumbles.", m_name); 
    2000                         else msg_format("%^s magically summons greater undead!", m_name); 
     1965                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1966                        else message_format(MSG_SUM_HI_UNDEAD, 0, "%^s magically summons greater undead!", m_name); 
    20011967                        for (k = 0; k < 8; k++) 
    20021968                        { 
    20031969                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_HI_UNDEAD, 0); 
    20041970                        } 
    20051971                        if (blind && count) 
    20061972                        { 
    2007                                 msg_print("You hear many creepy things appear nearby."); 
     1973                                /* We don't know which kind of creepy things appear while blind. */ 
     1974                                message_format(MSG_SUM_HI_UNDEAD, 0, "You hear many creepy things appear nearby."); 
    20081975                        } 
    20091976                        break; 
    20101977                } 
     
    20121979                case RSF_S_HI_DRAGON: 
    20131980                { 
    20141981                        disturb(1, 0); 
    2015                         sound(MSG_SUM_HI_DRAGON); 
    2016                         if (blind) msg_format("%^s mumbles.", m_name); 
    2017                         else msg_format("%^s magically summons ancient dragons!", m_name); 
     1982                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     1983                        else message_format(MSG_SUM_HI_DRAGON, 0, "%^s magically summons ancient dragons!", m_name); 
    20181984                        for (k = 0; k < 8; k++) 
    20191985                        { 
    20201986                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_HI_DRAGON, 0); 
    20211987                        } 
    20221988                        if (blind && count) 
    20231989                        { 
    2024                                 msg_print("You hear many powerful things appear nearby."); 
     1990                                /* This should be a more general message type. */ 
     1991                                message_format(MSG_SUM_HI_DRAGON, 0, "You hear many powerful things appear nearby."); 
    20251992                        } 
    20261993                        break; 
    20271994                } 
     
    20291996                case RSF_S_WRAITH: 
    20301997                { 
    20311998                        disturb(1, 0); 
    2032                         sound(MSG_SUM_WRAITH); 
    2033                         if (blind) msg_format("%^s mumbles.", m_name); 
    2034                         else msg_format("%^s magically summons mighty undead opponents!", m_name); 
     1999                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     2000                        else message_format(MSG_SUM_WRAITH, 0, "%^s magically summons mighty undead opponents!", m_name); 
    20352001                        for (k = 0; k < 8; k++) 
    20362002                        { 
    20372003                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_WRAITH, 0); 
     
    20422008                        } 
    20432009                        if (blind && count) 
    20442010                        { 
    2045                                 msg_print("You hear many creepy things appear nearby."); 
     2011                                /* We don't know which kind of creepy things appear while blind. */ 
     2012                                message_format(MSG_SUM_HI_UNDEAD, 0, "You hear many creepy things appear nearby."); 
    20462013                        } 
    20472014                        break; 
    20482015                } 
     
    20502017                case RSF_S_UNIQUE: 
    20512018                { 
    20522019                        disturb(1, 0); 
    2053                         sound(MSG_SUM_UNIQUE); 
    2054                         if (blind) msg_format("%^s mumbles.", m_name); 
    2055                         else msg_format("%^s magically summons special opponents!", m_name); 
     2020                        if (blind) message_format(MSG_GENERIC, 0, "%^s mumbles.", m_name); 
     2021                        else message_format(MSG_SUM_UNIQUE, 0, "%^s magically summons special opponents!", m_name); 
    20562022                        for (k = 0; k < 8; k++) 
    20572023                        { 
    20582024                                count += summon_specific(m_ptr->fy, m_ptr->fx, rlev, SUMMON_UNIQUE, 0); 
     
    20632029                        } 
    20642030                        if (blind && count) 
    20652031                        { 
    2066                                 msg_print("You hear many powerful things appear nearby."); 
     2032                                /* This should be a more general message type. */ 
     2033                                message_format(MSG_SUM_UNIQUE, 0, "You hear many powerful things appear nearby."); 
    20672034                        } 
    20682035                        break; 
    20692036                } 
  • src/object/obj-util.c

     
    29352935        slot = inven_carry(i_ptr); 
    29362936 
    29372937        /* Message */ 
    2938         sound(MSG_WIELD); 
    2939         msg_format("%s %s (%c).", act, o_name, index_to_label(slot)); 
     2938        message_format(MSG_WIELD, 0, "%s %s (%c).", act, o_name, index_to_label(slot)); 
    29402939 
    29412940        p_ptr->notice |= PN_SQUELCH; 
    29422941 
  • src/player/timed.c

     
    753753                        /* Fainting / Starving */ 
    754754                        case 0: 
    755755                        { 
    756                                 sound(MSG_NOTICE); 
    757                                 msg_print("You are getting faint from hunger!"); 
     756                                message_format(MSG_NOTICE, 0, "You are getting faint from hunger!"); 
    758757                                break; 
    759758                        } 
    760759 
    761760                        /* Weak */ 
    762761                        case 1: 
    763762                        { 
    764                                 sound(MSG_NOTICE); 
    765                                 msg_print("You are getting weak from hunger!"); 
     763                                message_format(MSG_NOTICE, 0, "You are getting weak from hunger!"); 
    766764                                break; 
    767765                        } 
    768766 
    769767                        /* Hungry */ 
    770768                        case 2: 
    771769                        { 
    772                                 sound(MSG_HUNGRY); 
    773                                 msg_print("You are getting hungry."); 
     770                                message_format(MSG_HUNGRY, 0, "You are getting hungry."); 
    774771                                break; 
    775772                        } 
    776773 
    777774                        /* Normal */ 
    778775                        case 3: 
    779776                        { 
    780                                 sound(MSG_NOTICE); 
    781                                 msg_print("You are no longer full."); 
     777                                message_format(MSG_NOTICE, 0, "You are no longer full."); 
    782778                                break; 
    783779                        } 
    784780 
    785781                        /* Full */ 
    786782                        case 4: 
    787783                        { 
    788                                 sound(MSG_NOTICE); 
    789                                 msg_print("You are no longer gorged."); 
     784                                message_format(MSG_NOTICE, 0, "You are no longer gorged."); 
    790785                                break; 
    791786                        } 
    792787                }