keys: separate method to format key letters
[sheet.git] / nethack.eng.inc.pl
index e4ef3b3a28d39310cda34f8f58f6e08879f74349..e54a6390a097ab0f7420c28e8bb030fe25c77d08 100644 (file)
 use utf8;
-{
 
+{
 key => {
-       'b' => ["step left down",  'numpad 1'],
-       'j' => ["step down",       'numpad 2'],
-       'n' => ["step right down", 'numpad 3'],
-       'h' => ["step left",       'numpad 4'],
-       'l' => ["step right",      'numpad 6'],
-       'y' => ["step left up",    'numpad 7'],
-       'k' => ["step up",         'numpad 8'],
-       'u' => ["step right up",   'numpad 9'],
-
-       'B' => ["go left down",    'shift numpad 1'],
-       'J' => ["go down",         'shift numpad 2'],
-       'N' => ["go right down",   'shift numpad 3'],
-       'H' => ["go left",         'shift numpad 4'],
-       'L' => ["go right",        'shift numpad 6'],
-       'Y' => ["go left up",      'shift numpad 7'],
-       'K' => ["go up",           'shift numpad 8'],
-       'U' => ["go right up",     'shift numpad 9'],
-
-       '^b'=> ["run left down",   'numpad 5 1'],
-       '^j'=> ["run down",        'numpad 5 2'],
-       '^n'=> ["run right down",  'numpad 5 3'],
-       '^h'=> ["run left",        'numpad 5 4'],
-       '^l'=> ["run right",       'numpad 5 6'],
-       '^y'=> ["run left up",     'numpad 5 7'],
-       '^k'=> ["run up",          'numpad 5 8'],
-       '^u'=> ["run right up",    'numpad 5 9'],
-
-       'g' => ["run until interest"],
-       'm' => ["m$sign{_}ove blind", 'no pickup'],
-       'G' => ["g any$sign{_}where", "follow branches"],
-
-       '?' => ["help menu"],
-       '+?'=> ["more help"],
-       '/' => ["explain symbol"],
-       '&' => ["tell com$sign{_}m$sign{_}and"],
-       '<' => ["climb up ladder"],
-       '>' => ["desc$sign{_}ent ladder"],
-       '.' => ["rest (noop)"],
-       '_' => ["travel to"],
-
-       '+2'=> ["two$sign{_}weapon toggle"],
-       'a' => ["apply tool"],
-       'A' => ["remove all armor"],
-       '^a'=> ["redo comm$sign{_}and", 'Again'],
-       '+a'=> ["adjust inv$sign{_}ent$sign{_}ory"],
-       'c' => ["close door"],
-       'C' => ["call monster"],
-       '+c'=> ["chat"],
-       'd' => ["drop item"],
-       'D' => ["drop items"],
-       '^d'=> ["kick"],
-       '+d'=> ["dip"],
-       'e' => ["eat food"],
-       'E' => ["en$sign{_}grave"],
-       '+e'=> ["weapon skills", 'Enhance'],
-       'f' => ["fire quiver"],
-       'F' => ["fight monster"],
-       '+f'=> ["force lock"],
-       'i' => ["invent$sign{_}ory"],
-       'I' => ["invent$sign{_}ory part"],
-       '+i'=> ["invoke object"],
-       '+j'=> ["jump"],
-       '+l'=> ["loot"],
-       '+m'=> ["mons$sign{_}ter abil$sign{_}ity"],
-       '+n'=> ["name item$sign{_}(s)"],
-       'o' => ["open door"],
-       'O' => ["options"],
-       '+o'=> ["offer sacrifice"],
-       'p' => ["pay bill"],
-       'P' => ["put on"],
-       '^p'=> ["repeat message"],
-       '+p'=> ["pray"],
-       'q' => ["drink", 'Quaff'],
-       'Q' => ["quiver ammo"],
-       '+q'=> ["exit game", 'Quit'],
-       'r' => ["read scroll"],
-       'R' => ["put off", 'Remove accessory'],
-       '^r'=> ["redraw"],
-       '+r'=> ["rub object"],
-       's' => ["search secrets"],
-       'S' => ["save game"],
-       '+s'=> ["sit down"],
-       't' => ["throw$sign{_}/shoot"],
-       'T' => ["remove armor"],
-       '^t'=> ["teleport"],
-       '+t'=> ["turn undead"],
-       '+u'=> ["untrap"],
-       'v' => ["version"],
-       'V' => ["verbose version"],
-       '+v'=> ["compile details"],
-       'w' => ["wield weap$sign{_}on"],
-       'W' => ["wear armor"],
-       '+w'=> ["wipe face"],
-       'x' => ["swap weapons", 'Xchange'],
-       'X' => ["explore mode"],
-       '^x'=> ["show stats"],
-       'z' => ["zap wand"],
-       'Z' => ["cast spell"],
-       '^z'=> ["suspend game"],
-
-       ':' => ["look here"],
-       ';' => ["look else$sign{_}where"],
-       ',' => ["pick up"],
-       '@' => ["toggle pick$sign{_}up"],
-       '^' => ["show trap"],
-       ')' => ["show weapon"],
-       '[' => ["show armor"],
-       '=' => ["show rings"],
-       '"' => ["show amulet"],
-       '(' => ["show tools"],
-       '*' => ["show equip$sign{_}ment"],
-       '$' => ["count gold"],
-       '+' => ["list spells"],
-       '\\'=> ["discover$sign{_}ed obj$sign{_}ects"],
-       '!' => ["shell escape"],
-       '#' => ["more comm$sign{_}ands"],
-
-       'DB' => ['drop blessed'],
-       'DU' => ['drop uncursed'],
-       'DC' => ['drop cursed'],
-       'DX' => ['drop unknown'],
-       'Da' => ['drop all'],
-       'Di' => ["invent$sign{_}ory"],
-       'Du' => ['drop unpaid'],
-       'Dm' => ['drop any'],
-       'D%' => ['drop more'],
-
-       'I*' => ['list gems'],
-       'Iu' => ['list unpaid'],
-       'Ix' => ['list billed'],
-       'I$' => ['count money'],
+       'b' =>   "step left down\nnumpad 1",
+       'j' =>        "step down\nnumpad 2",
+       'n' =>  "step right down\nnumpad 3",
+       'h' =>        "step left\nnumpad 4",
+       'l' =>       "step right\nnumpad 6",
+       'y' =>     "step left up\nnumpad 7",
+       'k' =>          "step up\nnumpad 8",
+       'u' =>    "step right up\nnumpad 9",
+
+       'B' =>     "go left down\nshift numpad 1",
+       'J' =>          "go down\nshift numpad 2",
+       'N' =>    "go right down\nshift numpad 3",
+       'H' =>          "go left\nshift numpad 4",
+       'L' =>         "go right\nshift numpad 6",
+       'Y' =>       "go left up\nshift numpad 7",
+       'K' =>            "go up\nshift numpad 8",
+       'U' =>      "go right up\nshift numpad 9",
+
+       '^b'=>    "run left down\nnumpad 5 1",
+       '^j'=>         "run down\nnumpad 5 2",
+       '^n'=>   "run right down\nnumpad 5 3",
+       '^h'=>         "run left\nnumpad 5 4",
+       '^l'=>        "run right\nnumpad 5 6",
+       '^y'=>      "run left up\nnumpad 5 7",
+       '^k'=>           "run up\nnumpad 5 8",
+       '^u'=>     "run right up\nnumpad 5 9",
+
+       'g' => "run until interest",
+       'm' => "m<>ove blind\nno pickup",
+       'G' => "g any<>where\nfollow branches",
+
+       '?' => "help menu",
+       '+?'=> "more help",
+       '/' => "explain symbol",
+       '&' => "tell com<>m<>and",
+       '<' => "climb up ladder",
+       '>' => "desc<>ent ladder",
+       '.' => "rest (noop)",
+       '_' => "travel to",
+
+       '+2'=> "two<>weapon toggle",
+       'a' => "apply tool",
+       'A' => "remove all armor",
+       '^a'=> "redo comm<>and\nAgain",
+       '+a'=> "adjust inv<>ent<>ory",
+       'c' => "close door",
+       'C' => "call monster",
+       '+c'=> "chat",
+       'd' => "drop item",
+       'D' => "drop items",
+       '^d'=> "kick",
+       '+d'=> "dip",
+       'e' => "eat food",
+       'E' => "en<>grave",
+       '+e'=> "weapon skills\nEnhance",
+       'f' => "fire quiver",
+       'F' => "fight monster",
+       '+f'=> "force lock",
+       'i' => "invent<>ory",
+       'I' => "invent<>ory part",
+       '+i'=> "invoke object",
+       '+j'=> "jump",
+       '+l'=> "loot",
+       '+m'=> "mons<>ter abil<>ity",
+       '+n'=> "name item<>(s)",
+       'o' => "open door",
+       'O' => "options",
+       '+o'=> "offer sacrifice",
+       'p' => "pay bill",
+       'P' => "put on",
+       '^p'=> "repeat message",
+       '+p'=> "pray",
+       'q' => "drink\nQuaff",
+       'Q' => "quiver ammo",
+       '+q'=> "exit game\nQuit",
+       'r' => "read scroll",
+       'R' => "put off\nRemove accessory",
+       '^r'=> "redraw",
+       '+r'=> "rub object",
+       's' => "search secrets",
+       'S' => "save game",
+       '+s'=> "sit down",
+       't' => "throw<>/shoot",
+       'T' => "remove armor",
+       '^t'=> "teleport",
+       '+t'=> "turn undead",
+       '+u'=> "untrap",
+       'v' => "version",
+       'V' => "verbose version",
+       '+v'=> "compile details",
+       'w' => "wield weap<>on",
+       'W' => "wear armor",
+       '+w'=> "wipe face",
+       'x' => "swap weapons\nXchange",
+       'X' => "explore mode",
+       '^x'=> "show stats",
+       'z' => "zap wand",
+       'Z' => "cast spell",
+       '^z'=> "suspend game",
+
+       ':' => "look here",
+       ';' => "look else<>where",
+       ',' => "pick up",
+       '@' => "toggle pick<>up",
+       '^' => "show trap",
+       ')' => "show weapon",
+       '[' => "show armor",
+       '=' => "show rings",
+       '"' => "show amulet",
+       '(' => "show tools",
+       '*' => "show equip<>ment",
+       '$' => "count gold",
+       '+' => "list spells",
+       '\\'=> "discover<>ed obj<>ects",
+       '!' => "shell escape",
+       '#' => "more comm<>ands",
+
+       'DB' => 'drop blessed',
+       'DU' => 'drop uncursed',
+       'DC' => 'drop cursed',
+       'DX' => 'drop unknown',
+       'Da' => 'drop all',
+       'Di' => "invent<>ory",
+       'Du' => 'drop unpaid',
+       'Dm' => 'drop any',
+       'D%' => 'drop more',
+
+       'I*' => 'list gems',
+       'Iu' => 'list unpaid',
+       'Ix' => 'list billed',
+       'I$' => 'count money',
 },
 
 mode => {
@@ -140,16 +140,155 @@ mode => {
 },
 
 flag => {
-       pm => [direction => "Direction to move to or target a command ($sign{motion})."],
-       po => [move      => "Other character movement."],
-       co => [act       => "Direct action command: takes a turn."],
-       mi => [info      => "Informational command: shows/does something without ending the turn."],
-       mo => [invertory => "Display invertory menu."],
-       mv => [menu      => "Enters some other menu."],
-
-       arg  => ["key$sign{arg}"  => "Commands with a dot need at least one argument afterwards."],
-       argi => ["key$sign{argi}" => "Asks for an inventory item."],
-       argm => ["key$sign{argm}" => "Requires a direction afterwards."],
+       g2 => [direction => "Direction to move to or target a command (<motion>)."],
+       g3 => [move      => "Other character movement."],
+       g4 => [act       => "Direct action command: takes a turn."],
+       g6 => [info      => "Informational command: shows/does something without ending the turn."],
+       g7 => [invertory => "Display invertory menu."],
+       g8 => [menu      => "Enters some other menu."],
+
+       arg  => ["key<arg>"  => "Commands with a dot need at least one argument afterwards."],
+       argi => ["key<argi>" => "Asks for an inventory item."],
+       argm => ["key<argm>" => "Requires a direction afterwards."],
 },
 
+def => {
+       '' => {
+               'b' => 'g2',
+               'j' => 'g2',
+               'n' => 'g2',
+               'h' => 'g2',
+               'l' => 'g2',
+               'y' => 'g2',
+               'k' => 'g2',
+               'u' => 'g2',
+
+               'B' => 'g3',
+               'J' => 'g3',
+               'N' => 'g3',
+               'H' => 'g3',
+               'L' => 'g3',
+               'Y' => 'g3',
+               'K' => 'g3',
+               'U' => 'g3',
+
+               '^b'=> 'g3',
+               '^j'=> 'g3',
+               '^n'=> 'g3',
+               '^h'=> 'g3',
+               '^l'=> 'g3',
+               '^y'=> 'g3',
+               '^k'=> 'g3',
+               '^u'=> 'g3',
+
+               'g' => 'g3 argm',
+               'm' => 'g3 argm',
+               'G' => 'g3 argm',
+
+               '?' => 'g8 mode?', #help
+               '+?'=> 'g8',
+               '/' => 'g6 arg mode/', #whatis
+               '&' => 'g6 arg',
+               '<' => 'g2', #up
+               '>' => 'g2', #down
+               '.' => 'g2', #rest
+               '_' => 'g3 argM', #travel
+
+               '+2'=> 'g4', #twoweapon
+               'a' => 'g4 argi', #apply
+               'A' => 'g4', #armor
+               '^a'=> 'g4', #again
+               '+a'=> 'g6', #adjust
+               'c' => 'g4 argm', #close
+               'C' => 'g4 arg', #call
+               '+c'=> 'g4 arg', #chat
+               'd' => 'g4 argi', #drop
+               'D' => 'g4 arg modeD', #Drop
+               '^d'=> 'g4 argm', #kick
+               '+d'=> 'g4 argi', #dip
+               'e' => 'g4 argi', #eat
+               'E' => 'g4 argi', #engrave
+               '+e'=> 'g4', #enhance
+               'f' => 'g4 argm', #fire
+               'F' => 'g4 argm', #fight
+               '+f'=> 'g4', #force
+               'i' => 'g7', #invent
+               'I' => 'g7 arg modeI', #Invent
+               '+i'=> 'g4 argi', #invoke
+               '+j'=> 'g4', #jump
+               '+l'=> 'g4', #loot
+               '+m'=> 'g4', #monster
+               '+n'=> 'g7 arg', #name
+               'o' => 'g4 argm', #open
+               'O' => 'g8 modeO', #options
+               '+o'=> 'g4 argi', #offer
+               'p' => 'g4', #pay
+               'P' => 'g4 argi', #puton
+               '^p'=> 'g6', #prevmsg
+               '+p'=> 'g4 arg', #pray
+               'q' => 'g4 argi', #quaff
+               'Q' => 'g4 argi', #quiver
+               '+q'=> 'g6', #quit
+               'r' => 'g4 argi', #read
+               'R' => 'g4 argi', #remove
+               '^r'=> 'g6', #redraw
+               '+r'=> 'g4 argi', #rub
+               's' => 'g4', #search
+               'S' => 'g6', #save
+               '+s'=> 'g4', #sit
+               't' => 'g4 argm', #throw
+               'T' => 'g4 argi', #takeoff
+               '^t'=> 'g4', #'port
+               '+t'=> 'g4', #turn
+               '+u'=> 'g4', #untrap
+               'v' => 'g6',
+               'V' => 'g6', #history
+               '+v'=> 'g6', #version
+               'w' => 'g4 argi', #wield
+               'W' => 'g4 argi', #wear
+               '+w'=> 'g4', #wipe
+               'x' => 'g4', #xchange
+               'X' => 'g6', #explore
+               '^x'=> 'g6', #show
+               'z' => 'g4 argm', #zap
+               'Z' => 'g4 argi', #Zap
+               '^z'=> 'g6', #suspend
+
+               ':' => 'g6', #look
+               ';' => 'g6 argM', #farlook
+               ',' => 'g4', #pickup
+               '@' => 'g6',
+               '^' => 'g6 argm', #trap_id
+               ')' => 'g7',
+               '[' => 'g7',
+               '=' => 'g7',
+               '"' => 'g7',
+               '(' => 'g7',
+               '*' => 'g7',
+               '$' => 'g6', #gold
+               '+' => 'g7', #spells
+               '\\'=> 'g7', #known
+               '!' => 'g6', #sh
+               '#' => 'g8',
+       },
+
+       'D' => {
+               'B' => 'g4',
+               'U' => 'g4',
+               'C' => 'g4',
+               'X' => 'g4',
+               'a' => 'g4',
+               'i' => 'g6',
+               'u' => 'g4',
+               'm' => 'g4 argi',
+               '%' => 'g4 arg',
+       },
+
+       'I' => {
+               '*' => 'g6',
+               'u' => 'g6',
+               'x' => 'g6',
+               '$' => 'g6',
+       },
+},
 }