F:RES_DARK
N:179:ËâÆ»»Õ¤Î
-E:of Wizard
+E:of Wizardry
X:26:10
W:30:0:0:1500
C:0:0:0:0
N:180:µæ¶Ë̵Ũ¶ä²ÏºÇ¶¯¤Î
-E:of the Strongest in the Galaxy
+E:of the Mightiest in the Galaxy
X:26:30
W:100:0:0:50000
C:0:0:15:0
ZAngband Jap ver.: Mitsuhiro Itakera < m-itakura@geocities.co.jp >
- Hengband: Mr.hoge (echizen @ s5.xrea.com) & Meny others
- http://echizen.s5.xrea.com/heng/
-
- Hengband is running on UNIX/X11, Windows, Macintosh.
- Please report bugs at BBS "http://echizen.s5.xrea.com/heng/eng-hengband/".
+ Hengband: Mr.Hoge (echizen @ s5.xrea.com) & Many others
+ http://echizen.s5.xrea.com/heng/
+ Send bug report to "echizen @ s5.xrea.com"
+ or "mogami @ het.ph.tsukuba.ac.jp".
ÁÇé¬é¯¤·¤¤
N:*:Default
-40
+39
¡Ø¤¤é¤á¤´Ý¡Ù
¡Ø¥×¥ë¥È¥Ë¥¦¥à¡Ù
¡Ø¥ï¥ó¥À¡¼¥¹¥ï¥ó¥À¡¼¡Ù
#
+#
+# Macro Trigger configuration
+#
+# T:<trigger template>:<modifiers>:<modifier name1>:<modifier name2>:....
+# '&' in <trigger template> specifies location of modifier character.
+# '#' in <trigger template> specifies location of key code.
+#
+# If <trigger template> is null string, all trigger difinition will be cleared.
+
+T:&#:CSOX:control-:shift-:option-:command-
+
+# T:<trigger name>:<keycode>:<keycode with shiftkey>
+# '\' in <trigger name> is escape character.
+
+T:KP_Period:1
+T:KP_Star:3
+T:KP_Plus:5
+T:KP_Clear:7
+T:KP_Slash:11
+T:KP_Enter:12
+T:KP_Minus:14
+T:KP_Equal:17
+T:KP_0:18
+T:KP_1:19
+T:KP_2:20
+T:KP_3:21
+T:KP_4:22
+T:KP_5:23
+T:KP_6:24
+T:KP_7:25
+T:KP_8:27
+T:KP_9:28
+T:F5:32
+T:F6:33
+T:F7:34
+T:F3:35
+T:F8:36
+T:F10:37
+T:F11:39
+T:F13:41
+T:F14:43
+T:F9:45
+T:F12:47
+T:F15:49
+T:Help:50
+T:Home:51
+T:PgUp:52
+T:Del:53
+T:F4:54
+T:End:55
+T:F2:56
+T:PgDn:57
+T:F1:58
+T:Left:59
+T:Right:60
+T:Down:61
+T:Up:62
+
+
+
##### Simple Macros #####
#
+# Macro Trigger configuration
+#
+# T:<trigger template>:<modifiers>:<modifier name1>:<modifier name2>:....
+# '&' in <trigger template> specifies location of modifier character.
+# '#' in <trigger template> specifies location of key code.
+#
+# If <trigger template> is null string, all trigger difinition will be cleared.
+
+T:&x#:CSA:control-:shift-:alt-
+
+# T:<trigger name>:<keycode>:<keycode with shiftkey>
+# '\' in <trigger name> is escape character.
+
+# These keycodes are actually direct keyboard scan code taken from the 'dinput.h'.
+
+?:[EQU $KEYBOARD JAPAN]
+# For Japanese keyboard.
+T:-:0C
+T:^:0D
+T:@:1A
+T:[:1B
+T:;:27
+T:\::28
+T:]:2B
+T:,:33
+T:.:34
+T:\/:35
+T:_:73
+?:1
+
+?:[EQU $KEYBOARD 0]
+# For US keyboard.
+T:-:0C
+T:=:0D
+T:[:1A
+T:]:1B
+T:;:27
+T:\':28
+T:`:29
+T:\\:2B
+T:,:33
+T:.:34
+T:\/:35
+?:1
+
+############
+# Common keycodes (except NEC PC-98x1)
+
+?:[NOT [EQU $KEYBOARD NEC98]]
+T:1:02
+T:2:03
+T:3:04
+T:4:05
+T:5:06
+T:6:07
+T:7:08
+T:8:09
+T:9:0A
+T:0:0B
+T:Backspace:0E
+T:Q:10
+T:W:11
+T:E:12
+T:R:13
+T:T:14
+T:Y:15
+T:U:16
+T:I:17
+T:O:18
+T:P:19
+T:Enter:1C
+T:A:1E
+T:S:1F
+T:D:20
+T:F:21
+T:G:22
+T:H:23
+T:J:24
+T:K:25
+T:L:26
+T:Zenkaku_Hankaku:29
+T:Z:2C
+T:X:2D
+T:C:2E
+T:V:2F
+T:B:30
+T:N:31
+T:M:32
+T:Multiply:37
+T:CapsLock:3A
+T:F1:3B
+T:F2:3C
+T:F3:3D
+T:F4:3E
+T:F5:3F
+T:F6:40
+T:F7:41
+T:F8:42
+T:F9:43
+T:F10:44
+T:Numlock:45
+T:Scroll:46
+#T:KP_7:47
+T:Home:47
+#T:KP_8:48
+T:Up:48
+#T:KP_9:49
+T:Page_UP:49
+T:Subtract:4A
+#T:KP_4:4B
+T:Left:4B
+T:KP_5:4C
+#T:KP_6:4D
+T:Right:4D
+T:Add:4E
+#T:KP_1:4F
+T:End:4F
+#T:KP_2:50
+T:Down:50
+#T:KP_3:51
+T:Page_DOWN:51
+#T:KP_0:52
+T:Insert:52
+#T:Decimal:53
+T:Delete:53
+T:Oem_102:56
+T:F11:57
+T:F12:58
+T:Menu:5D
+T:F13:64
+T:F14:65
+T:F15:66
+T:Hiragana_Katakana:70
+T:Abnt_C1:73
+T:Henkan:79
+T:Muhenkan:7B
+T:Yen:7D
+T:Abnt_C2:7E
+T:KP_equals:8D
+T:Prevtrack:90
+T:Kanji:94
+T:Stop:95
+T:Ax:96
+T:Unlabeled:97
+T:Nexttrack:99
+T:KP_enter:9C
+T:Mute:A0
+T:Calculator:A1
+T:Playpause:A2
+T:Mediastop:A4
+T:Volumedown:AE
+T:Volumeup:B0
+T:Webhome:B2
+T:KP_comma:B3
+T:Divide:B5
+T:Sysrq:B7
+T:Pause:C5
+#T:Home:C7
+#T:Up:C8
+#T:Prior:C9
+#T:Left:CB
+#T:Right:CD
+#T:End:CF
+#T:Down:D0
+#T:Next:D1
+#T:Insert:D2
+#T:Delete:D3
+T:Lwin:DB
+T:Rwin:DC
+T:Apps:DD
+T:Power:DE
+T:Sleep:DF
+T:Wake:E3
+T:Websearch:E5
+T:Webfavorites:E6
+T:Webrefresh:E7
+T:Webstop:E8
+T:Webforward:E9
+T:Webback:EA
+T:Mycomputer:EB
+T:Mail:EC
+T:Mediaselect:ED
+?:1
+
+
+######################
+# For NEC PC-98x1
+
+?:[EQU $KEYBOARD NEC98]
+T:1:01
+T:2:02
+T:3:03
+T:4:04
+T:5:05
+T:6:06
+T:7:07
+T:8:08
+T:9:09
+T:0:0A
+T:-:0B
+T:^:0C
+T:Yen:0D
+T:Backspace:0E
+T:Q:10
+T:W:11
+T:E:12
+T:R:13
+T:T:14
+T:Y:15
+T:U:16
+T:I:17
+T:O:18
+T:P:19
+T:@:1a
+T:[:1b
+T:Enter:1C
+T:A:1D
+T:S:1E
+T:D:1F
+T:F:20
+T:G:21
+T:H:22
+T:J:23
+T:K:24
+T:L:25
+T:;:26
+T:\::27
+T:[:28
+T:Z:29
+T:X:2A
+T:C:2B
+T:V:2C
+T:B:2D
+T:N:2E
+T:M:2F
+T:,:30
+T:.:31
+T:\/:32
+T:_:33
+T:Henkan:35
+T:Page_down:36
+T:Page_up:37
+T:Insert:38
+T:Delete:39
+T:Up:3A
+T:Left:3B
+T:Right:3C
+T:Down:3D
+T:Home:3E
+T:End:3F
+T:Subtract:40
+T:Divide:41
+T:KP_7:42
+T:KP_8:43
+T:KP_9:44
+T:Multiply:45
+T:KP_4:46
+T:KP_5:47
+T:KP_6:48
+T:Add:49
+T:KP_1:4A
+T:KP_2:4B
+T:KP_3:4C
+T:Equal:4D
+T:KP_0:4E
+T:KP_comma:4F
+T:Decimal:50
+T:Muhenkan:51
+T:F11:52
+T:F12:53
+T:F13:54
+T:F14:55
+T:F15:56
+T:Pause:60
+T:F1:62
+T:F2:63
+T:F3:64
+T:F4:65
+T:F5:66
+T:F6:67
+T:F7:68
+T:F8:69
+T:F9:6A
+T:F10:6B
+T:CapsLock:71
+T:Hiragana_Katakana:72
+T:Menu:79
+
+?:[NOT [EQU $KEYBOARD NEC98]]
+
+
+#
# Hack -- Some foreign keyboards have a special key on the keyboard, which
# is used to generate the "<", ">", and "|" keys (alone, shifted, alt-ed).
#
#
+#
+# Macro Trigger configuration
+#
+# T:<trigger template>:<modifiers>:<modifier name1>:<modifier name2>:....
+# '&' in <trigger template> specifies location of modifier character.
+# '#' in <trigger template> specifies location of key code.
+#
+# If <trigger template> is null string, all trigger difinition will be cleared.
+
+T:&_#:NSOM:control-:shift-:alt-:mod2-
+
+# T:<trigger name>:<keycode>:<keycode with shiftkey>
+# '\' in <trigger name> is escape character.
+
+T:Clear:FF0B
+T:Pause:FF13
+T:Scroll_Lock:FF14
+T:Sys_Req:FF15
+T:Escape:FF1B
+T:Delete:FFFF
+T:Multi_key:FF20
+T:Codeinput:FF37
+T:SingleCandidate:FF3C
+T:MultipleCandidate:FF3D
+T:PreviousCandidate:FF3E
+T:Kanji:FF21
+T:Muhenkan:FF22
+T:Henkan_Mode:FF23
+T:Henkan:FF23
+T:Romaji:FF24
+T:Hiragana:FF25
+T:Katakana:FF26
+T:Hiragana_Katakana:FF27
+T:Zenkaku:FF28
+T:Hankaku:FF29
+T:Zenkaku_Hankaku:FF2A
+T:Touroku:FF2B
+T:Massyo:FF2C
+T:Kana_Lock:FF2D
+T:Kana_Shift:FF2E
+T:Eisu_Shift:FF2F
+T:Eisu_toggle:FF30
+T:Kanji_Bangou:FF37
+T:Zen_Koho:FF3D
+T:Mae_Koho:FF3E
+T:Home:FF50
+T:Left:FF51
+T:Up:FF52
+T:Right:FF53
+T:Down:FF54
+T:Page_Up:FF55
+T:Page_Down:FF56
+T:End:FF57
+T:Begin:FF58
+T:Select:FF60
+T:Print:FF61
+T:Execute:FF62
+T:Insert:FF63
+T:Undo:FF65
+T:Redo:FF66
+T:Menu:FF67
+T:Find:FF68
+T:Cancel:FF69
+T:Help:FF6A
+T:Break:FF6B
+T:Mode_switch:FF7E
+T:Num_Lock:FF7F
+T:KP_Space:FF80
+T:KP_Tab:FF89
+T:KP_Enter:FF8D
+T:KP_F1:FF91
+T:KP_F2:FF92
+T:KP_F3:FF93
+T:KP_F4:FF94
+T:KP_Home:FF95
+T:KP_Left:FF96
+T:KP_Up:FF97
+T:KP_Right:FF98
+T:KP_Down:FF99
+T:KP_Prior:FF9A
+T:KP_Page_Up:FF9A
+T:KP_Next:FF9B
+T:KP_Page_Down:FF9B
+T:KP_End:FF9C
+T:KP_Begin:FF9D
+T:KP_Insert:FF9E
+T:KP_Delete:FF9F
+T:KP_Equal:FFBD
+T:KP_Multiply:FFAA
+T:KP_Add:FFAB
+T:KP_Separator:FFAC
+T:KP_Subtract:FFAD
+T:KP_Decimal:FFAE
+T:KP_Divide:FFAF
+T:KP_0:FFB0
+T:KP_1:FFB1
+T:KP_2:FFB2
+T:KP_3:FFB3
+T:KP_4:FFB4
+T:KP_5:FFB5
+T:KP_6:FFB6
+T:KP_7:FFB7
+T:KP_8:FFB8
+T:KP_9:FFB9
+T:F1:FFBE
+T:F2:FFBF
+T:F3:FFC0
+T:F4:FFC1
+T:F5:FFC2
+T:F6:FFC3
+T:F7:FFC4
+T:F8:FFC5
+T:F9:FFC6
+T:F10:FFC7
+T:F11:FFC8
+T:F12:FFC9
+T:F13:FFCA
+T:F14:FFCB
+T:F15:FFCC
+T:F16:FFCD
+T:F17:FFCE
+T:F18:FFCF
+T:F19:FFD0
+T:F20:FFD1
+T:F21:FFD2
+T:F22:FFD3
+T:F23:FFD4
+T:F24:FFD5
+T:F25:FFD6
+T:F26:FFD7
+T:F27:FFD8
+T:F28:FFD9
+T:F29:FFDA
+T:F30:FFDB
+T:F31:FFDC
+T:F32:FFDD
+T:F33:FFDE
+T:F34:FFDF
+T:F35:FFE0
+
+T:\::3A:2A
+T:*:3A:2A
+T:;:3B:2B
+T:+:3B:2B
+T:,:2C:3C
+T:<:2C:3C
+T:-:2D:3D
+T:=:2D:3D
+T:.:2E:3E
+T:>:2E:3E
+T:\/:2F:3F
+T:?:2F:3F
+T:0:30:7E
+T:~:30:7E
+T:1:31:21
+T:!:31:21
+T:2:32:22
+T:":32:22
+T:3:33:23
+T:#:33:23
+T:4:34:24
+T:$:34:24
+T:5:35:25
+T:%:35:25
+T:6:36:26
+T:&:36:26
+T:7:37:27
+T:\':37:27
+T:8:38:28
+T:(:38:28
+T:9:39:29
+T:):39:29
+T:@:40:60
+T:`:40:60
+T:A:61:41
+T:B:62:42
+T:C:63:43
+T:D:64:44
+T:E:65:45
+T:F:66:46
+T:G:67:47
+T:H:68:48
+T:I:69:49
+T:J:6A:4A
+T:K:6B:4B
+T:L:6C:4C
+T:M:6D:4D
+T:N:6E:4E
+T:O:6F:4F
+T:P:70:50
+T:Q:71:51
+T:R:72:52
+T:S:73:53
+T:T:74:54
+T:U:75:55
+T:V:76:56
+T:W:77:57
+T:X:78:58
+T:Y:79:59
+T:Z:7A:5A
+T:[:5B:7B
+T:{:5B:7B
+T:\\:5C:5F
+T:_:5C:5F
+T:]:5D:7D
+T:}:5D:7D
+T:^:5E:7E
+T:~:5E:7E
+T:|:A5:7C
+
+
+
# Keypad (0-9)
char dummy_name[80];
strcpy(dummy_name, "");
(void)identify_fully_aux(o_ptr);
-// o_ptr->ident |= IDENT_STOREB; /* This will be used later on... */
+
#ifdef JP
if (!(get_string("¤³¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤ò²¿¤È̾ÉÕ¤±¤Þ¤¹¤«¡©", dummy_name, 80)))
#else
do_cmd_options_aux(6, "½é´ü¥ª¥×¥·¥ç¥ó((*)¤Ï¥¹¥³¥¢¤Ë±Æ¶Á)");
#else
do_cmd_options_aux(6, "Startup Opts((*)s effect score)");
-// do_cmd_options_aux(6, "Startup Options");
#endif
screen_load();
/* Select the first realm */
while (1)
{
- unsigned char temp[80*8];
+ char temp[80*8];
cptr t;
p_ptr->realm1 = REALM_NONE;
/* Select the second realm */
while (1)
{
- unsigned char temp[80*8];
+ char temp[80*8];
cptr t;
count = 0;
while ((n > 0) && (s[n-1] == ' ')) s[--n] = '\0';
{
- unsigned char temp[64*4];
+ char temp[64*4];
roff_to_buf(s, 60, temp);
t = temp;
for(i=0 ; i<4 ; i++){
object_aware(q_ptr);
object_known(q_ptr);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
#ifdef USE_SCRIPT
q_ptr->python = object_create_callback(q_ptr);
#endif /* USE_SCRIPT */
object_aware(q_ptr);
object_known(q_ptr);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
#ifdef USE_SCRIPT
q_ptr->python = object_create_callback(q_ptr);
#endif /* USE_SCRIPT */
object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
q_ptr->number = (byte)rand_range(15, 20);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
/* Hack -- Give the player some arrows */
object_prep(q_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
q_ptr->number = (byte)rand_range(15, 20);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
q_ptr->number = 1;
q_ptr->pval = (byte)rand_range(25, 30);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(i, 0));
q_ptr->number = 1;
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
q_ptr->number = (byte)rand_range(15, 20);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
q_ptr->number = (byte)rand_range(2, 4);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
q_ptr->number = (byte)rand_range(2, 4);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
q_ptr->number = (byte)rand_range(1, 3);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
q_ptr->number = (byte)rand_range(2, 4);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
q_ptr->number = (byte)rand_range(2, 4);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
object_prep(q_ptr, lookup_kind(TV_SPIKE, 0));
q_ptr->number = (byte)rand_range(15, 20);
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
q_ptr->name2 = EGO_BRAND_POIS;
}
- /* These objects are "storebought" */
-// q_ptr->ident |= IDENT_STOREB;
-
object_aware(q_ptr);
object_known(q_ptr);
while(1)
{
- unsigned char temp[80*9];
+ char temp[80*9];
cptr t;
/* Choose the players race */
/* Choose the players class */
while(1)
{
- unsigned char temp[80*9];
+ char temp[80*9];
cptr t;
/* Choose the players race */
/* Choose the players seikaku */
while(1)
{
- unsigned char temp[80*8];
+ char temp[80*8];
cptr t;
/* Choose the players race */
void dump_yourself(FILE *fff)
{
- unsigned char temp[80*8];
+ char temp[80*8];
int i;
cptr t;
prt(tmp_str, 21, 2);
/* Prevent savefile-scumming of the casino */
-// Rand_quick = TRUE;
+/* Rand_quick = TRUE; */
Rand_value = time(NULL);
do
monster_race *r_ptr = &r_info[r_idx];
/* Decline town monsters */
-// if (!monster_dungeon(r_idx)) return FALSE;
+/* if (!monster_dungeon(r_idx)) return FALSE; */
/* Decline unique monsters */
-// if (r_ptr->flags1 & (RF1_UNIQUE)) return (FALSE);
-// if (r_ptr->flags7 & (RF7_UNIQUE_7)) return (FALSE);
+/* if (r_ptr->flags1 & (RF1_UNIQUE)) return (FALSE); */
+/* if (r_ptr->flags7 & (RF7_UNIQUE_7)) return (FALSE); */
if (r_ptr->flags1 & (RF1_NEVER_MOVE)) return (FALSE);
if (r_ptr->flags2 & (RF2_MULTIPLY)) return (FALSE);
msg_print(NULL);
return FALSE;
}
-// msg_print(NULL);
return TRUE;
}
msg_print("The barkeep gives you some gruel and a beer.");
#endif
-// msg_print(NULL);
(void)set_food(PY_FOOD_MAX - 1);
break;
msg_print("Sorry, but don't want anyone dying in here.");
#endif
-// return (FALSE);
}
else
{
#endif
}
-// msg_print(NULL);
p_ptr->leftbldg = TRUE;
}
}
msg_print("The rooms are available only at night.");
#endif
-// msg_print(NULL);
return (FALSE);
}
break;
#endif
msg_format("%s", Rumor);
-// msg_print(NULL);
break;
}
}
msg_format("You collect %d gold pieces", i);
#endif
-// msg_print(NULL);
p_ptr->au += i;
}
msg_format("Your quest: kill %d %s", q_ptr->max_num, name);
#endif
-// msg_print(NULL);
}
else
{
msg_format("You do not have the gold to improve %s!", tmp_str);
#endif
-// msg_print(NULL);
return (FALSE);
}
msg_format("Improved %s for %d gold.", tmp_str, cost * o_ptr->number);
#endif
-// msg_print(NULL);
-
/* Charge the money */
p_ptr->au -= (cost * o_ptr->number);
msg_format("That doesn't need to be recharged.");
#endif
-// msg_print(NULL);
return;
}
}
msg_print("This wand is already fully charged.");
#endif
}
-// msg_print(NULL);
return;
}
else if (o_ptr->tval == TV_STAFF && o_ptr->pval >= k_ptr->pval)
msg_print("This staff is already fully charged.");
#endif
}
-// msg_print(NULL);
return;
}
msg_format("You need %d gold to recharge %s!", price, tmp_str);
#endif
-// msg_print(NULL);
return;
}
msg_format("%^s %s recharged for %d gold.", tmp_str, ((o_ptr->number > 1) ? "were" : "was"), price);
#endif
-// msg_print(NULL);
-
/* Combine / Reorder the pack (later) */
p_ptr->notice |= (PN_COMBINE | PN_REORDER);
#else
msg_print("You have no right to choose that!");
#endif
-
-// msg_print(NULL);
return;
}
#else
msg_print("You do not have the gold!");
#endif
-
-// msg_print(NULL);
return;
}
#else
msg_print("You just had your daily allowance!");
#endif
-
-// msg_print(NULL);
}
break;
case BACT_ENCHANT_ARROWS:
static void display_shortened_item_name(object_type *o_ptr, int y)
{
- unsigned char buf[MAX_NLEN];
+ char buf[MAX_NLEN];
char *c = buf;
int len = 0;
}
}
*c='\0';
-// put_str(buf,y,0);
Term_putstr(0, y, 12, tval_to_attr[o_ptr->tval % 128], buf);
}
display_shortened_item_name(autopick_obj, y);
#else
{
- unsigned char buf[13] = "\0";
+ char buf[13] = "\0";
strncpy(buf,autopick_name[match_autopick],12);
buf[12] = '\0';
put_str(buf,y,0);
sndCall.addr.len = sizeof(InetAddress);
sndCall.addr.buf = (unsigned char*) &inAddr;
- sndCall.opt.buf = nil; // no connection options
+ sndCall.opt.buf = nil; /* no connection options */
sndCall.opt.len = 0;
- sndCall.udata.buf = nil; // no connection data
+ sndCall.udata.buf = nil; /* no connection data */
sndCall.udata.len = 0;
- sndCall.sequence = 0; // ignored by OTConnect
+ sndCall.sequence = 0; /* ignored by OTConnect */
err = OTConnect(ep, &sndCall, NULL);
int is_autopick(object_type *o_ptr)
{
int i;
- unsigned char o_name[MAX_NLEN];
+ char o_name[MAX_NLEN];
cptr str;
#ifdef JP
static char kanji_colon[] = "¡§";
energy_use = 0;
/* Hack -- Enter building */
- command_new = ']';
+ command_new = 254;
}
/* Handle quest areas -KMW- */
energy_use = 0;
/* Hack -- Enter quest level */
-// command_new = '[';
command_new = 255;
}
if ((cave[y][x].feat >= FEAT_BLDG_HEAD) &&
(cave[y][x].feat <= FEAT_BLDG_TAIL)) return (FALSE);
-// if (cave[y][x].feat == FEAT_TREES) return (FALSE);
+/* if (cave[y][x].feat == FEAT_TREES) return (FALSE); */
/* Must be known to the player */
if (!(cave[y][x].info & (CAVE_MARK))) return (FALSE);
}
/* Analyze unknown grids and floors */
-// if (inv || cave_floor_bold(row, col) ||
-// (cave[row][col].feat == FEAT_TREES))
+/* if (inv || cave_floor_bold(row, col) || */
+/* (cave[row][col].feat == FEAT_TREES)) */
if (inv || cave_floor_bold(row, col))
{
/* Looking for open area */
energy_use = 0;
/* Hack -- enter building */
- command_new = ']';
+ command_new = 254;
}
/* Exit a quest if reach the quest exit */
static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr,
int *j, byte tval, char *where)
{
- unsigned char o_name[MAX_NLEN];
+ char o_name[MAX_NLEN];
u32b f[3];
if (!o_ptr->k_idx)return;
int i=0;
int j=0;
- unsigned char where[32];
+ char where[32];
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
#ifdef JP
show_file(TRUE, file_name, "Éð´ï¤Î·Ð¸³ÃÍ", 0, 0);
#else
- show_file(TRUE, file_name, "Weapon Experiment", 0, 0);
+ show_file(TRUE, file_name, "Weapon Proficiency", 0, 0);
#endif
#ifdef JP
show_file(TRUE, file_name, "ËâË¡¤Î·Ð¸³ÃÍ", 0, 0);
#else
- show_file(TRUE, file_name, "Spell Experiment", 0, 0);
+ show_file(TRUE, file_name, "Spell Proficiency", 0, 0);
#endif
#ifdef JP
char skill_name[3][17]={"¥Þ¡¼¥·¥ã¥ë¥¢¡¼¥Ä", "ÆóÅáή ", "¾èÇÏ "};
#else
- char skill_name[3][20]={"martial arts ", "dual wielding ", "riding "};
+ char skill_name[3][20]={"Martial Arts ", "Dual Wielding ", "Riding "};
#endif
/* Open a new file */
#ifdef JP
show_file(TRUE, file_name, "µ»Ç½¤Î·Ð¸³ÃÍ", 0, 0);
#else
- show_file(TRUE, file_name, "Skill Experiment", 0, 0);
+ show_file(TRUE, file_name, "Miscellaneous Proficiency", 0, 0);
#endif
#else
if (p_ptr->align > 150) disp_align = "lawful";
else if (p_ptr->align > 50) disp_align = "good";
- else if (p_ptr->align > 10) disp_align = "nutral good";
- else if (p_ptr->align > -11) disp_align = "nutral";
- else if (p_ptr->align > -51) disp_align = "nutral evil";
+ else if (p_ptr->align > 10) disp_align = "neutral good";
+ else if (p_ptr->align > -11) disp_align = "neutral";
+ else if (p_ptr->align > -51) disp_align = "neutral evil";
else if (p_ptr->align > -151) disp_align = "evil";
else disp_align = "chaotic";
fprintf(fff, "Your alighnment : %s\n", disp_align);
prt("(7) Display current pets", 10, 5);
prt("(8) Display current quests", 11, 5);
prt("(9) Display virtues", 12, 5);
- prt("(a) Display weapon experiment", 13, 5);
- prt("(b) Display spell experiment", 14, 5);
- prt("(c) Display skill experiment", 15, 5);
+ prt("(a) Display weapon proficiency", 13, 5);
+ prt("(b) Display spell proficiency", 14, 5);
+ prt("(c) Display misc. proficiency", 15, 5);
prt("(d) Display wanted monsters", 16, 5);
prt("(e) Display home inventory", 17, 5);
prt("(f) Display *identifyed* equip.", 18, 5);
char out_val[160];
cptr p;
#ifdef JP
- unsigned char jverb_buf[128];
+ char jverb_buf[128];
#endif
int menu_line = (use_menu ? 1 : 0);
#ifdef JP
if (!get_check("ÊѿȤ·¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©")) return FALSE;
#else
- if (!get_check("You will polymorph yourself. Are you sure?")) return FALSE;
+ if (!get_check("You will polymorph yourself. Are you sure? ")) return FALSE;
#endif
do_poly_self();
break;
*/
static bool item_tester_hook_eatable(object_type *o_ptr)
{
-// if ((o_ptr->tval==TV_FOOD) || ((o_ptr->tval==TV_CORPSE) && o_ptr->sval)) return (TRUE);
+/* if ((o_ptr->tval==TV_FOOD) || ((o_ptr->tval==TV_CORPSE) && o_ptr->sval)) return (TRUE); */
if (o_ptr->tval==TV_FOOD) return (TRUE);
/* Assume not */
break;
}
-// case SV_WAND_ANNIHILATION:
case SV_WAND_DISINTEGRATE:
{
fire_ball(GF_DISINTEGRATE, dir, 200 + randint(p_ptr->lev * 2), 2);
#ifdef JP
msg_print("¥¢¥ß¥å¥ì¥Ã¥È¤¬¿¼¤¤°Ç¤Ëʤ¤ï¤ì¤¿...");
#else
- msg_print("nanka.");
+ msg_print("Your amulet is coverd in pitch-darkness...");
#endif
if (!get_aim_dir(&dir)) return;
fire_ball(GF_DARK, dir, 250, 4);
#define ROW_RACE 1
#define COL_RACE 0 /* <race name> */
-//#define ROW_CLASS 2
-//#define COL_CLASS 0 /* <class name> */
+/*#define ROW_CLASS 2 */
+/*#define COL_CLASS 0 */ /* <class name> */
#define ROW_TITLE 2
#define COL_TITLE 0 /* <title> or <mode> */
-//#define ROW_SEIKAKU 4
-//#define COL_SEIKAKU 0 /* <seikaku> */
+/*#define ROW_SEIKAKU 4 */
+/*#define COL_SEIKAKU 0*/ /* <seikaku> */
#define ROW_DAY 21
#define COL_DAY 0 /* day */
#define HTTP_PROXY "" /* Default proxy url */
#define HTTP_PROXY_PORT 0 /* Default proxy port */
#define HTTP_TIMEOUT 20 /* Timeout length (second) */
-#define SCORE_SERVER "www.kmc.kyoto-u.ac.jp" /* Default score server url */
+#define SCORE_SERVER "www.kmc.gr.jp" /* Default score server url */
#define SCORE_PORT 80 /* Default score server port */
+
+#define MAX_MACRO_MOD 12
+#define MAX_MACRO_TRIG 200
upkeep_factor = calculate_upkeep();
/* Regenerate the mana */
-// if (p_ptr->csp < p_ptr->msp)
+/* if (p_ptr->csp < p_ptr->msp) */
{
if (upkeep_factor)
{
/* Enter debug mode */
if (enter_debug_mode())
{
-// if (!p_ptr->wild_mode) do_cmd_debug();
do_cmd_debug();
}
break;
}
/* Enter building -KMW- */
- case ']':
+ case 254:
{
if (!p_ptr->wild_mode) do_cmd_bldg();
break;
}
/* Enter quest level -KMW- */
-// case '[':
case 255:
{
if (!p_ptr->wild_mode) do_cmd_quest();
{
p_ptr->oldpx = px;
p_ptr->oldpy = py;
-// py = p_ptr->wilderness_y;
-// px = p_ptr->wilderness_x;
}
}
}
/* Place the cursor on the player */
move_cursor_relative(py, px);
- command_cmd = ']';
+ command_cmd = 254;
/* Process the command */
process_command();
/* Healing needed */
if (p_ptr->chp < p_ptr->mhp)
{
-// chg_virtue(V_CHANCE, -1);
if ((num > 0) && (p_ptr->chp < (p_ptr->mhp/3)))
chg_virtue(V_TEMPERANCE, 1);
/* Gain hitpoints */
do_cmd_rerate(FALSE);
-// p_ptr->max_plv = p_ptr->lev;
-
p_ptr->redraw |= (PR_BASIC);
p_ptr->update |= (PU_BONUS);
* Automatically generated "variable" declarations
*/
+extern int max_macrotrigger;
+extern char *macro_template;
+extern char *macro_modifier_chr;
+extern char *macro_modifier_name[MAX_MACRO_MOD];
+extern char *macro_trigger_name[MAX_MACRO_TRIG];
+extern char *macro_trigger_keycode[2][MAX_MACRO_TRIG];
+
+
/* ÆüËܸìÈǵ¡Ç½ÄɲäǻȤ¦ */
extern int level_up;
extern int max_autopick;
-extern unsigned char *autopick_name[MAX_AUTOPICK];
-extern unsigned char *autopick_insc[MAX_AUTOPICK];
+extern char *autopick_name[MAX_AUTOPICK];
+extern char *autopick_insc[MAX_AUTOPICK];
extern s16b autopick_action[MAX_AUTOPICK];
/* tables.c */
extern char *d_name;
extern char *d_text;
extern cptr ANGBAND_SYS;
+extern cptr ANGBAND_KEYBOARD;
extern cptr ANGBAND_GRAF;
extern cptr ANGBAND_DIR;
extern cptr ANGBAND_DIR_APEX;
#ifdef JP
/* japanese.c */
-extern unsigned char *sindarin_to_kana(unsigned char *sindarin);
extern void jverb1( const char *in , char *out);
extern void jverb2( const char *in , char *out);
extern void jverb3( const char *in , char *out);
*
* Specify the set of colors to use when drawing a zapped spell
* Z:<type>:<str>
+ *
+ * Specify a macro trigger template and macro trigger names.
+ * T:<template>:<modifier chr>:<modifier name1>:<modifier name2>:...
+ * T:<trigger>:<keycode>:<shift-keycode>
+ *
*/
+
errr process_pref_file_command(char *buf)
{
int i, j, n1, n2;
}
}
}
+ /* set macro trigger names and a template */
+ /* Process "T:<trigger>:<keycode>:<shift-keycode>" */
+ /* Process "T:<template>:<modifier chr>:<modifier name>:..." */
+ else if (buf[0] == 'T')
+ {
+ int len, tok;
+ tok = tokenize(buf+2, 2+MAX_MACRO_MOD, zz, 0);
+ if (tok >= 4)
+ {
+ int i;
+ int num;
+
+ if (macro_template != NULL)
+ {
+ free(macro_template);
+ macro_template = NULL;
+ for (i = 0; i < max_macrotrigger; i++)
+ free(macro_trigger_name[i]);
+ max_macrotrigger = 0;
+ }
+
+ if (*zz[0] == '\0') return 0; /* clear template */
+ num = strlen(zz[1]);
+ if (2 + num != tok) return 1; /* error */
+
+ len = strlen(zz[0])+1+num+1;
+ for (i = 0; i < num; i++)
+ len += strlen(zz[2+i])+1;
+ macro_template = malloc(len);
+
+ strcpy(macro_template, zz[0]);
+ macro_modifier_chr =
+ macro_template + strlen(macro_template) + 1;
+ strcpy(macro_modifier_chr, zz[1]);
+ macro_modifier_name[0] =
+ macro_modifier_chr + strlen(macro_modifier_chr) + 1;
+ for (i = 0; i < num; i++)
+ {
+ strcpy(macro_modifier_name[i], zz[2+i]);
+ macro_modifier_name[i+1] = macro_modifier_name[i] +
+ strlen(macro_modifier_name[i]) + 1;
+ }
+ }
+ else if (tok >= 2)
+ {
+ int m;
+ char *t, *s;
+ if (max_macrotrigger >= MAX_MACRO_TRIG)
+ {
+#ifdef JP
+ msg_print("¥Þ¥¯¥í¥È¥ê¥¬¡¼¤ÎÀßÄ꤬¿¤¹¤®¤Þ¤¹!");
+#else
+ msg_print("Too many macro triggers!");
+#endif
+ return 1;
+ }
+ m = max_macrotrigger;
+ max_macrotrigger++;
+
+ len = strlen(zz[0]) + 1 + strlen(zz[1]) + 1;
+ if (tok == 3)
+ len += strlen(zz[2]) + 1;
+ macro_trigger_name[m] = malloc(len);
+
+ t = macro_trigger_name[m];
+ s = zz[0];
+ while (*s)
+ {
+ if ('\\' == *s) s++;
+ *t++ = *s++;
+ }
+ *t = '\0';
+ macro_trigger_keycode[0][m] = macro_trigger_name[m] +
+ strlen(macro_trigger_name[m]) + 1;
+ strcpy(macro_trigger_keycode[0][m], zz[1]);
+ if (tok == 3)
+ {
+ macro_trigger_keycode[1][m] = macro_trigger_keycode[0][m] +
+ strlen(macro_trigger_keycode[0][m]) + 1;
+ strcpy(macro_trigger_keycode[1][m], zz[2]);
+ }
+ else
+ {
+ macro_trigger_keycode[1][m] = macro_trigger_keycode[0][m];
+ }
+ }
+ return 0;
+ }
/* Failure */
return (1);
v = ANGBAND_SYS;
}
+ else if (streq(b+1, "KEYBOARD"))
+ {
+ v = ANGBAND_KEYBOARD;
+ }
+
/* Graphics */
else if (streq(b+1, "GRAF"))
{
*/
static void display_player_flag_aux(int row, int col, char *header,
int n, u32b flag1, u32b flag2,
- s32b im_f[], s32b vul_f)
+ u32b im_f[], u32b vul_f)
{
int i;
u32b f[3];
#else
if (p_ptr->align > 150) disp_align = "lawful";
else if (p_ptr->align > 50) disp_align = "good";
- else if (p_ptr->align > 10) disp_align = "nutral good";
- else if (p_ptr->align > -11) disp_align = "nutral";
- else if (p_ptr->align > -51) disp_align = "nutral evil";
+ else if (p_ptr->align > 10) disp_align = "neutral good";
+ else if (p_ptr->align > -11) disp_align = "neutral";
+ else if (p_ptr->align > -51) disp_align = "neutral evil";
else if (p_ptr->align > -151) disp_align = "evil";
else disp_align = "chaotic";
fprintf(fff, "Your alighnment : %s\n", disp_align);
#ifdef JP
strcpy(o_name, "(Éð´ï¤òξ¼ê»ý¤Á)");
#else
- strcpy(o_name, "(wielding a weapon with two-handed.)");
+ strcpy(o_name, "(wielding with two-hands)");
#endif
fprintf(fff, "%c%s %s\n",
index_to_label(i), paren, o_name);
char buf[1024];
bool do_send = TRUE;
-// cptr p = "[i:¥¥ã¥é¥¯¥¿¤Î¾ðÊó, f:¥Õ¥¡¥¤¥ë½ñ¤½Ð¤·, t:¥¹¥³¥¢, x:*´ÕÄê*, ESC:¥²¡¼¥à½ªÎ»]";
+/* cptr p = "[i:¥¥ã¥é¥¯¥¿¤Î¾ðÊó, f:¥Õ¥¡¥¤¥ë½ñ¤½Ð¤·, t:¥¹¥³¥¢, x:*´ÕÄê*, ESC:¥²¡¼¥à½ªÎ»]"; */
/* Handle stuff */
handle_stuff();
{
FILE *fp;
- unsigned char buf[1024] , *s, *s2, isnew;
+ char buf[1024] , *s, *s2, isnew;
int i;
num++;
/* Skip "empty" lines */
- if (buf[0]<32) continue;
-
- /* Skip "blank" lines */
- if (isspace(buf[0])) continue;
+ if (buf[0] == '\0') continue;
/* Skip comments */
if (buf[0] == '#') continue;
}
/* Nuke illegal char */
- for(i=0 ; buf[i]>31 ; i++){/* Do nothing */} buf[i]=0;
+ for(i=0 ; buf[i]; i++)
+ {
+#ifdef JP
+ if (iskanji(buf[i]))
+ {
+ i++;
+ continue;
+ }
+#endif
+ if (isspace(buf[i]) && buf[i] != ' ')
+ break;
+ }
+ buf[i]=0;
s = buf;
/* Skip '!','~' */
strcpy(temp, quark_str(o_ptr->art_name));
/* MEGA HACK by ita*/
if ( strncmp( temp , "¡Ø" , 2 ) == 0 ) t=object_desc_str(t, temp);else
-// if( strcmp(temp,"'Stormbringer'")==0 ) t=object_desc_str(t,"¡Ø¥¹¥È¡¼¥à¥Ö¥ê¥ó¥¬¡¼¡Ù");else
if( temp[0]=='\'' ) { itemp=strlen(temp);temp[itemp-1]=0;
t=object_desc_str(t,"¡Ø");
t=object_desc_str(t,&temp[1]);
#else
if ((o_ptr->tval > TV_CAPTURE) && o_ptr->xtra3)
{
- t = object_desc_str(t,format(" of %s, the smith",player_name));
+ t = object_desc_str(t,format(" of %s the smith",player_name));
}
/* Hack -- Append "Artifact" or "Special" names */
sndCall.addr.len = sizeof(InetAddress);
sndCall.addr.buf = (unsigned char*) &inAddr;
- sndCall.opt.buf = nil; // no connection options
+ sndCall.opt.buf = nil; /* no connection options */
sndCall.opt.len = 0;
- sndCall.udata.buf = nil; // no connection data
+ sndCall.udata.buf = nil; /* no connection data */
sndCall.udata.len = 0;
- sndCall.sequence = 0; // ignored by OTConnect
+ sndCall.sequence = 0; /* ignored by OTConnect */
err = OTConnect(ep, &sndCall, NULL);
#ifdef JP
#undef strchr
-char* _strchr(unsigned char* ptr, unsigned char ch)
+char* _strchr(char* ptr, char ch)
{
int k_flag = 0;
/* Scan for the values */
if (10 != sscanf(buf+2, "%d:%d:%d:%d:%d:%d:%d:%d:%x:%x",
- &min_lev, &max_lev, &min_plev, &mode, &min_alloc, &max_chance, &obj_good, &obj_great, &pit, &nest)) return (1);
+ &min_lev, &max_lev, &min_plev, &mode, &min_alloc, &max_chance, &obj_good, &obj_great, (unsigned int *)&pit, (unsigned int *)&nest)) return (1);
/* Save the values */
d_ptr->mindepth = min_lev;
#ifdef JP
-typedef struct sindarin2j sindarin2j;
-
-struct sindarin2j {
- char *sindarin;
- char *kana;
-};
-
-static const sindarin2j s2j_table[]= {
-{"mb","nb"},{"mp","np"},{"mv","nv"},{"mm","nm"},
-{"x","ks"},
-{"ar$","a-ru$"},{"ir$","ia$"},{"or$","o-ru$"},
-{"ra","¥é"},{"ri","¥ê"},{"ru","¥ë"},{"re","¥ì"},{"ro","¥í"},
-{"ir","ia"},{"ur","ua"},{"er","ea"},
-{"ar","a¥ë"},
-{"sha","¥·¥ã"},{"shi","¥·"},{"shu","¥·¥å"},{"she","¥·¥§"},{"sho","¥·¥ç"},
-{"tha","¥µ"},{"thi","¥·"},{"thu","¥¹"},{"the","¥»"},{"tho","¥½"},
-{"cha","¥Ï"},{"chi","¥Ò"},{"chu","¥Õ"},{"che","¥Ø"},{"cho","¥Û"},
-{"dha","¥¶"},{"dhi","¥¸"},{"dhu","¥º"},{"dhe","¥¼"},{"dho","¥¾"},
-{"ba","¥Ð"},{"bi","¥Ó"},{"bu","¥Ö"},{"be","¥Ù"},{"bo","¥Ü"},
-{"ca","¥«"},{"ci","¥"},{"cu","¥¯"},{"ce","¥±"},{"co","¥³"},
-{"da","¥À"},{"di","¥Ç¥£"},{"du","¥É¥¥"},{"de","¥Ç"},{"do","¥É"},
-{"fa","¥Õ¥¡"},{"fi","¥Õ¥£"},{"fu","¥Õ"},{"fe","¥Õ¥§"},{"fo","¥Õ¥©"},
-{"ga","¥¬"},{"gi","¥®"},{"gu","¥°"},{"ge","¥²"},{"go","¥´"},
-{"ha","¥Ï"},{"hi","¥Ò"},{"hu","¥Õ"},{"he","¥Ø"},{"ho","¥Û"},
-{"ja","¥¸¥ã"},{"ji","¥¸"},{"ju","¥¸¥å"},{"je","¥¸¥§"},{"jo","¥¸¥ç"},
-{"ka","¥«"},{"ki","¥"},{"ku","¥¯"},{"ke","¥±"},{"ko","¥³"},
-{"la","¥é"},{"li","¥ê"},{"lu","¥ë"},{"le","¥ì"},{"lo","¥í"},
-{"ma","¥Þ"},{"mi","¥ß"},{"mu","¥à"},{"me","¥á"},{"mo","¥â"},
-{"na","¥Ê"},{"ni","¥Ë"},{"nu","¥Ì"},{"ne","¥Í"},{"no","¥Î"},
-{"pa","¥Ñ"},{"pi","¥Ô"},{"pu","¥×"},{"pe","¥Ú"},{"po","¥Ý"},
-{"qu","¥¯"},
-{"sa","¥µ"},{"si","¥·"},{"su","¥¹"},{"se","¥»"},{"so","¥½"},
-{"ta","¥¿"},{"ti","¥Æ¥£"},{"tu","¥È¥¥"},{"te","¥Æ"},{"to","¥È"},
-{"va","¥ô¥¡"},{"vi","¥ô¥£"},{"vu","¥ô"},{"ve","¥ô¥§"},{"vo","¥ô¥©"},
-{"wa","¥ï"},{"wi","¥¦¥£"},{"wu","¥¦"},{"we","¥¦¥§"},{"wo","¥¦¥©"},
-{"ya","¥ä"},{"yu","¥æ"},{"yo","¥è"},
-{"za","¥¶"},{"zi","¥¸"},{"zu","¥º"},{"ze","¥¼"},{"zo","¥¾"},
-{"dh","¥º"},
-{"ch","¥Õ"},
-{"th","¥¹"},
-{"b","¥Ö"},
-{"c","¥¯"},
-{"d","¥É"},
-{"f","¥Õ"},
-{"g","¥°"},
-{"h","¥Õ"},
-{"j","¥¸¥å"},
-{"k","¥¯"},
-{"l","¥ë"},
-{"m","¥à"},
-{"n","¥ó"},
-{"p","¥×"},
-{"q","¥¯"},
-{"r","¥ë"},
-{"s","¥¹"},
-{"t","¥È"},
-{"v","¥ô"},
-{"w","¥¦"},
-{"y","¥¤"},
-{"a","¥¢"},
-{"i","¥¤"},
-{"u","¥¦"},
-{"e","¥¨"},
-{"o","¥ª"},
-{"-","¡¼"},
-{NULL,NULL}
-};
-
-unsigned char *sindarin_to_kana( unsigned char *sindarin ){
-static unsigned char buf1[256], buf2[256];
-int idx;
-
-sprintf(buf1,"%s$",sindarin);
-for(idx=0;buf1[idx];idx++) if( isupper(buf1[idx]))buf1[idx]=tolower(buf1[idx]);
-
-for(idx=0; s2j_table[idx].sindarin != NULL;idx++){
- unsigned char *pat1 = s2j_table[idx].sindarin;
- unsigned char *pat2 = s2j_table[idx].kana;
- int len=strlen(pat1);
- unsigned char *dest = buf2;
- unsigned char *src = buf1;
-
- for( ; *src ; ){
- if( strncmp( src, pat1, len)==0 ){
- strcpy( dest, pat2 );
- src+=len;
- dest+= strlen(pat2);
- }
- else
- if( iskanji(*src) ){
- *dest = *src;
- dest++; src++;
- *dest=*src;
- dest++; src++;
- }
- else{
- *dest=*src;
- dest++; src++;
- }
- }
- *dest=0;
- strcpy(buf1,buf2);
-}
-idx=0;
-while( buf1[idx] != '$' ) idx++;
-buf1[idx]=0;
-return(buf1);
-}
-
/*ÆüËܸìÆ°»ì³èÍÑ (ÂǤġäÂǤäÆ,ÂǤÁ etc) */
#define CMPTAIL(y) strncmp(&in[l-strlen(y)],y,strlen(y))
tmp[i] = c1;
}
tmp[l] = 0;
- strcpy(str, tmp);
+ strcpy(str, (char *)tmp);
}
#endif
cheat_know = (c & 0x1000) ? TRUE : FALSE;
cheat_live = (c & 0x2000) ? TRUE : FALSE;
- rd_byte(&autosave_l);
- rd_byte(&autosave_t);
+ rd_byte((byte *)&autosave_l);
+ rd_byte((byte *)&autosave_t);
rd_s16b(&autosave_freq);
rd_byte(&tmp8u);
if (tmp8u) p_ptr->action = ACTION_LEARN;
}
- rd_byte(&preserve_mode);
- rd_byte(&wait_report_score);
+ rd_byte((byte *)&preserve_mode);
+ rd_byte((byte *)&wait_report_score);
/* Future use */
for (i = 0; i < 48; i++) rd_byte(&tmp8u);
}
if (z_older_than(10, 3, 7)) p_ptr->wild_mode = FALSE;
- else rd_byte(&p_ptr->wild_mode);
+ else rd_byte((byte *)&p_ptr->wild_mode);
if (z_older_than(10, 3, 7)) ambush_flag = FALSE;
- else rd_byte(&ambush_flag);
+ else rd_byte((byte *)&ambush_flag);
/* Size of the wilderness */
rd_s32b(&wild_x_size);
GDHandle saveGDevice;*/
GWorldPtr tempGWorld;
Rect pictRect;
-// short depth;
-// GDHandle theGDH;
+/* short depth; */
+/* GDHandle theGDH; */
tempGWorld = NULL;
*pictGWorld = NULL;
/* Get depth */
-// depth = td->pixelDepth;
+/* depth = td->pixelDepth; */
/* Get GDH */
-// theGDH = td->theGDH;
+/* theGDH = td->theGDH; */
/* Obtain size rectangle */
pictRect.left = 0;
*pictGWorld = tempGWorld;
/* Save GWorld */
-// GetGWorld(&saveGWorld, &saveGDevice);
+/* GetGWorld(&saveGWorld, &saveGDevice); */
/* Activate */
-// SetGWorld(tempGWorld, nil);
+/* SetGWorld(tempGWorld, nil); */
/* Dump the pict into the GWorld */
-// (void)LockPixels(GetGWorldPixMap(tempGWorld));
-// EraseRect(&pictRect);
- //DrawPicture(pictH, &pictRect);
-// UnlockPixels(GetGWorldPixMap(tempGWorld));
+/* (void)LockPixels(GetGWorldPixMap(tempGWorld)); */
+/* EraseRect(&pictRect); */
+/* DrawPicture(pictH, &pictRect); */
+/* UnlockPixels(GetGWorldPixMap(tempGWorld)); */
/* Restore GWorld */
-// SetGWorld(saveGWorld, saveGDevice);
+/* SetGWorld(saveGWorld, saveGDevice); */
return (0);
}
static OSErr XDDSWUpDateGWorldFromPict( term_data *td )
{
-// GWorldPtr saveGWorld;
-// GDHandle saveGDevice;
+/* GWorldPtr saveGWorld; */
+/* GDHandle saveGDevice; */
Rect pictRect;
-// short depth;
-// GDHandle theGDH;
+/* short depth; */
+/* GDHandle theGDH; */
GWorldFlags errflag;
if( td->bufferPort == NULL )
return;
/* Get depth */
-// depth = td->pixelDepth;
+/* depth = td->pixelDepth; */
/* Get GDH */
-// theGDH = td->theGDH;
+/* theGDH = td->theGDH; */
/* Obtain size rectangle */
pictRect.top = 0;
}
/* Save GWorld */
-// GetGWorld(&saveGWorld, &saveGDevice);
+/* GetGWorld(&saveGWorld, &saveGDevice); */
/* Activate */
-// SetGWorld(td->bufferPort, nil);
+/* SetGWorld(td->bufferPort, nil); */
/* Dump the pict into the GWorld */
-// (void)LockPixels(GetGWorldPixMap(td->bufferPort));
-// EraseRect(&td->bufferPort->portRect);
+/* (void)LockPixels(GetGWorldPixMap(td->bufferPort)); */
+/* EraseRect(&td->bufferPort->portRect); */
-// UnlockPixels(GetGWorldPixMap(td->bufferPort));
+/* UnlockPixels(GetGWorldPixMap(td->bufferPort)); */
/* Restore GWorld */
-// SetGWorld(saveGWorld, saveGDevice);
+/* SetGWorld(saveGWorld, saveGDevice); */
}
#endif
if (TRUE)
{
EnableItem(m, 7);
-// EnableItem(m, 8);
+/* EnableItem(m, 8); */
}
setup_menus();
/* Mega-Hack -- allow easy exit if nothing to save */
-// if (!character_generated && (ch=='Q' || ch=='q')) ch = 'e';
+/* if (!character_generated && (ch=='Q' || ch=='q')) ch = 'e'; */
/* Run the Menu-Handler */
menu(MenuKey(ch));
* Hack -- define which keys are "special"
*/
static bool special_key[256];
+static bool ignore_key[256];
+#if 1
+/*
+ * Hack -- initialization list for "special_key"
+ */
+static byte special_key_list[] = {
+VK_CLEAR,VK_PAUSE,VK_CAPITAL,VK_KANA,VK_JUNJA,VK_FINAL,VK_KANJI,
+VK_CONVERT,VK_NONCONVERT,VK_ACCEPT,VK_MODECHANGE,
+VK_PRIOR,VK_NEXT,VK_END,VK_HOME,VK_LEFT,VK_UP,VK_RIGHT,VK_DOWN,
+VK_SELECT,VK_PRINT,VK_EXECUTE,VK_SNAPSHOT,VK_INSERT,VK_DELETE,
+VK_HELP,VK_APPS,
+VK_F1,VK_F2,VK_F3,VK_F4,VK_F5,VK_F6,VK_F7,VK_F8,VK_F9,VK_F10,
+VK_F11,VK_F12,VK_F13,VK_F14,VK_F15,VK_F16,VK_F17,VK_F18,VK_F19,VK_F20,
+VK_F21,VK_F22,VK_F23,VK_F24,VK_NUMLOCK,VK_SCROLL,
+VK_ATTN,VK_CRSEL,VK_EXSEL,VK_EREOF,VK_PLAY,VK_ZOOM,VK_NONAME,
+VK_PA1,0
+};
+
+static byte ignore_key_list[] = {
+VK_ESCAPE,VK_TAB,VK_SPACE,
+'F','W','O','H', /* these are menu characters.*/
+VK_SHIFT,VK_CONTROL,VK_MENU,VK_LWIN,VK_RWIN,
+VK_LSHIFT,VK_RSHIFT,VK_LCONTROL,VK_RCONTROL,VK_LMENU,VK_RMENU,0
+};
+
+#else
/*
* Hack -- initialization list for "special_key"
*
0
};
+#endif
/* bg */
static void delete_bg()
if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
/* Handle "special" keys */
- if (special_key[(byte)(wParam)])
+ if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
{
/* Begin the macro trigger */
Term_keypress(31);
if (GetKeyState(VK_MENU) & 0x8000) ma = TRUE;
/* Handle "special" keys */
- if (special_key[(byte)(wParam)])
+ if (special_key[(byte)(wParam)] || (ma && !ignore_key[(byte)(wParam)]) )
{
/* Begin the macro trigger */
Term_keypress(31);
{
special_key[special_key_list[i]] = TRUE;
}
+ /* Initialize the keypress analyzer */
+ for (i = 0; ignore_key_list[i]; ++i)
+ {
+ ignore_key[ignore_key_list[i]] = TRUE;
+ }
/* Determine if display is 16/256/true color */
hdc = GetDC(NULL);
/* Set the system suffix */
ANGBAND_SYS = "win";
+ /* Set the keyboard suffix */
+ if (7 != GetKeyboardType(0))
+ ANGBAND_KEYBOARD = "0";
+ else
+ {
+ /* Japanese keyboard */
+ switch (GetKeyboardType(1))
+ {
+ case 0x0D01: case 0x0D02:
+ case 0x0D03: case 0x0D04:
+ case 0x0D05: case 0x0D06:
+ /* NEC PC-98x1 */
+ ANGBAND_KEYBOARD = "NEC98";
+ break;
+ default:
+ /* PC/AT */
+ ANGBAND_KEYBOARD = "JAPAN";
+ }
+ }
+
+
/* Initialize */
init_angband();
XNextEvent(Metadpy->dpy, xev);
#ifdef USE_XIM
-// #define DEBUG_EVENT
+/* #define DEBUG_EVENT */
#ifdef DEBUG_EVENT
{
printf("event: type=%d", xev->type);
if(iwin->xic){
XUnsetICFocus(iwin->xic);
}
- // Focuswin = NULL;
+ /* Focuswin = NULL;*/
break;
}
#endif
#endif
{
char *current_locale = setlocale(LC_ALL, NULL);
-// printf("set locale to \"%s\"\n", current_locale);
+/* printf("set locale to \"%s\"\n", current_locale); */
if(!strcmp(current_locale, "C")){
printf("WARNING: Locale is not supported. Non-english font may be displayed incorrectly.\n");
}
if(!p || !*p){
p = XSetLocaleModifiers("@im=");
}
-// printf("XMODIFIERS=\"%s\"\n", p);
+/* printf("XMODIFIERS=\"%s\"\n", p); */
}
XRegisterIMInstantiateCallback(Metadpy->dpy, NULL, NULL, NULL, IMInstantiateCallback, NULL);
#endif
$(LINKER) -aa -x $(OBJ) c0w32.obj, $(EXE_FILE),, cw32.lib import32.lib,, angband.res
angband.res: $(ANGBAND_RC)
- $(RC) -r $(ANGBAND_RC)
+ $(RC) -r -foangband.res $(ANGBAND_RC)
########################### Implicit Rules ########################
.c.obj:
save_mem = *r_ptr;
/* Hack -- Maximal kills */
-// r_ptr->r_tkills = MAX_SHORT;
+/* r_ptr->r_tkills = MAX_SHORT; */
/* Hack -- Maximal info */
r_ptr->r_wake = r_ptr->r_ignore = MAX_UCHAR;
}
/* Some dungeon types restrict the possible monsters */
-// if(!restrict_monster_to_dungeon(r_ptr) && dun_level) continue;
+/* if(!restrict_monster_to_dungeon(r_ptr) && dun_level) continue; */
}
/* Accept */
if (r_ptr->flags1 & RF1_UNIQUE)
{
if (r_ptr->level > p_ptr->lev + 30)
+#ifdef JP
color = "¹õ¤¯";
+#else
+ color = "black";
+#endif
else if (r_ptr->level > p_ptr->lev + 15)
+#ifdef JP
color = "»ç¿§¤Ë";
+#else
+ color = "perple";
+#endif
else if (r_ptr->level > p_ptr->lev + 5)
+#ifdef JP
color = "¥ë¥Ó¡¼¿§¤Ë";
+#else
+ color = "deep red";
+#endif
else if (r_ptr->level > p_ptr->lev - 5)
+#ifdef JP
color = "ÀÖ¤¯";
+#else
+ color = "red";
+#endif
else if (r_ptr->level > p_ptr->lev - 15)
+#ifdef JP
color = "¥Ô¥ó¥¯¿§¤Ë";
+#else
+ color = "pink";
+#endif
else
+#ifdef JP
color = "Çò¤¯";
+#else
+ color = "white";
+#endif
+#ifdef JP
msg_format("»ØÎؤÏ%s¸÷¤Ã¤¿¡£",color);
+#else
+ msg_format("Your ring glows %s.",color);
+#endif
}
}
bool alloc_horde(int y, int x)
{
monster_race *r_ptr = NULL;
- int r_idx;
+ int r_idx = 0;
int m_idx;
int attempts = 1000;
int cy = y;
case MUT1_POLYMORPH:
if (racial_aux(18, 20, A_CON, 18))
{
+#ifdef JP
if (!get_check("ÊѿȤ·¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©")) return;
+#else
+ if (!get_check("You will polymorph your self. Are you sure? ")) return;
+#endif
do_poly_self();
}
break;
#ifdef JP
strcpy(o_name, "(Éð´ï¤òξ¼ê»ý¤Á)");
#else
- strcpy(o_name, "(wielding a weapon with two-handed.)");
+ strcpy(o_name, "(wielding with two-hands)");
#endif
attr = 1;
}
#ifdef JP
(void)strcpy(out_desc[k],"(Éð´ï¤òξ¼ê»ý¤Á)");
#else
- (void)strcpy(out_desc[k],"(wielding a weapon with two-handed.)");
+ (void)strcpy(out_desc[k],"(wielding with two-hands)");
#endif
out_color[k] = 1;
}
int dec = 4;
bool observe = FALSE;
int old_ds, old_dd, old_to_h, old_to_d, old_ac, old_to_a, old_pval, old_name2;
- s32b old_f1, old_f2, old_f3, new_f1, new_f2, new_f3;
+ u32b old_f1, old_f2, old_f3, new_f1, new_f2, new_f3;
object_type *o_ptr;
cptr q, s;
byte iy, ix, marked;
cptr q, s;
object_type *o_ptr;
char o_name[MAX_NLEN];
- s32b f1, f2, f3;
+ u32b f1, f2, f3;
item_tester_hook = item_tester_hook_kaji;
#endif
/* for debug */
-//#define SCORE_PATH "http://www.kmc.gr.jp/~habu/local/scoretest/score.cgi"
+/*#define SCORE_PATH "http://www.kmc.gr.jp/~habu/local/scoretest/score.cgi" */
/*
simple buffer library
buf_sprintf(score, "realm1: %s\n", realm_names[p_ptr->realm1]);
buf_sprintf(score, "realm2: %s\n", realm_names[p_ptr->realm2]);
buf_sprintf(score, "killer: %s\n", died_from);
- strftime(date, 9, "%y/%m/%d", localtime(&ct));
+ strftime(date, 9, "%Y/%m/%d", localtime(&ct));
buf_sprintf(score, "date: %s\n", date);
buf_sprintf(score, "-----charcter dump-----\n");
{
/* affect boundary */
cave[j][i].info |= CAVE_ICKY;
-// return;
+/* return; */
}
/* If within bounds */
int old_score;
if (highscore_read(&the_score)) return (i);
old_score = atoi(the_score.pts);
-// if (strcmp(the_score.pts, score->pts) < 0) return (i);
+/* if (strcmp(the_score.pts, score->pts) < 0) return (i); */
if (my_score > old_score) return (i);
}
/* Dump some info */
#ifdef JP
-//sprintf(out_val, "%3d.%9s %s%s%s¤È¤¤¤¦Ì¾¤Î%s¤Î%s (¥ì¥Ù¥ë %d)",
+/*sprintf(out_val, "%3d.%9s %s%s%s¤È¤¤¤¦Ì¾¤Î%s¤Î%s (¥ì¥Ù¥ë %d)", */
sprintf(out_val, "%3d.%9s %s%s%s - %s%s (¥ì¥Ù¥ë %d)",
place, the_score.pts,
seikaku_info[pa].title, (seikaku_info[pa].no ? "¤Î" : ""),
(void)sprintf(the_score.day, "%-.6s %-.2s", ctime(&ct) + 4, ctime(&ct) + 22);
#else
/* Save the date in standard form (8 chars) */
-// (void)strftime(the_score.day, 9, "%m/%d/%y", localtime(&ct));
+/* (void)strftime(the_score.day, 9, "%m/%d/%y", localtime(&ct)); */
/* Save the date in standard encoded form (9 chars) */
strftime(the_score.day, 10, "@%Y%m%d", localtime(&ct));
#endif
}
/* Ripple outwards */
-// mmove2(&by, &bx, y1, x1, y2, x2);
+/* mmove2(&by, &bx, y1, x1, y2, x2); */
by = GRID_Y(path_g[bdis]);
bx = GRID_X(path_g[bdis]);
#else
if (p_ptr->align > 150) disp_align = "lawful";
else if (p_ptr->align > 50) disp_align = "good";
- else if (p_ptr->align > 10) disp_align = "nutral good";
- else if (p_ptr->align > -11) disp_align = "nutral";
- else if (p_ptr->align > -51) disp_align = "nutral evil";
+ else if (p_ptr->align > 10) disp_align = "neutral good";
+ else if (p_ptr->align > -11) disp_align = "neutral";
+ else if (p_ptr->align > -51) disp_align = "neutral evil";
else if (p_ptr->align > -151) disp_align = "evil";
else disp_align = "chaotic";
sprintf(Dummy, "Your alighnment : %s(%ld)", disp_align, p_ptr->align);
for (i = 1; i < m_max; i++)
{
monster_type *m_ptr = &m_list[i];
-// monster_race *r_ptr = &r_info[m_ptr->r_idx];
+/* monster_race *r_ptr = &r_info[m_ptr->r_idx]; */
/* Paranoia -- Skip dead monsters */
if (!m_ptr->r_idx) continue;
c_ptr = &cave[yy][xx];
/* Paranoia -- never affect player */
-// if ((yy == py) && (xx == px)) continue;
+/* if ((yy == py) && (xx == px)) continue; */
/* Destroy location (if valid) */
if (cave_valid_bold(yy, xx))
cave_type *c_ptr;
/* Verify */
-// if (!in_bounds(y, x)) return;
+/* if (!in_bounds(y, x)) return; */
/* Get the grid */
c_ptr = &cave[y][x];
},
{
- "gives improved infla-vision for a while.",
+ "gives infravision for a while.",
"gives regeneration ability for a while.",
"satisfis hunger.",
"gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.",
#ifdef JP
{ "¥Õ¥ì¥ó¥É¥ê¡¼¤Ê¥Ó¥ë¥Ü", 200, 170, 108, 5, 15, RACE_HOBBIT},
-// { "²±É¼ԥ饹¥È¥ê¥ó", 200, 175, 108, 4, 12, RACE_HUMAN},
+/* { "²±É¼ԥ饹¥È¥ê¥ó", 200, 175, 108, 4, 12, RACE_HUMAN}, */
{ "²±É¼ԥê¥ó¥¹¥¦¥£¥ó¥É", 200, 175, 108, 4, 12, RACE_HUMAN},
{ "ÇؤÎÄ㤤¥µ¥ë¥¿¥ó", 300, 170, 107, 5, 15, RACE_GNOME},
{ "¥Ï¥ó¥µ¥à¤Ê¥é¥¤¥¢=¥¨¥ë", 300, 165, 107, 6, 18, RACE_ELF},
#else
{ "Bilbo the Friendly", 200, 170, 108, 5, 15, RACE_HOBBIT},
-// { "Raistlin the Chicken", 200, 175, 108, 4, 12, RACE_HUMAN},
+/* { "Raistlin the Chicken", 200, 175, 108, 4, 12, RACE_HUMAN}, */
{ "Rincewind the Chicken", 200, 175, 108, 4, 12, RACE_HUMAN},
{ "Sultan the Midget", 300, 170, 107, 5, 15, RACE_GNOME},
{ "Lyar-el the Comely", 300, 165, 107, 6, 18, RACE_ELF},
{ 48, 120, 90, 0, 50, A_INT, "¥¢¥ó¥Ð¡¼¤Î²¦¤Î¾¤´" , "summon amberites"},
{ 50, 150, 95, 0, 50, A_INT, "¥æ¥Ë¡¼¥¯¥â¥ó¥¹¥¿¡¼¤Î¾¤´" , "summon unique"},
#else
-//...shouryaku.
{ 1, 1, 10, 0, 15, A_CON, "shriek"},
{ 10, 4, 35, 89, 40, A_INT, "XXX1"},
{ 40, 35, 85, 0, 40, A_INT, "dispel magic"},
}
+static int my_stricmp(cptr a, cptr b)
+{
+ cptr s1, s2;
+ char z1, z2;
+
+ /* Scan the strings */
+ for (s1 = a, s2 = b; TRUE; s1++, s2++)
+ {
+ z1 = FORCEUPPER(*s1);
+ z2 = FORCEUPPER(*s2);
+ if (z1 < z2) return (-1);
+ if (z1 > z2) return (1);
+ if (!z1) return (0);
+ }
+}
+
+static int my_strnicmp(cptr a, cptr b, int n)
+{
+ cptr s1, s2;
+ char z1, z2;
+
+ /* Scan the strings */
+ for (s1 = a, s2 = b; n > 0; s1++, s2++, n--)
+ {
+ z1 = FORCEUPPER(*s1);
+ z2 = FORCEUPPER(*s2);
+ if (z1 < z2) return (-1);
+ if (z1 > z2) return (1);
+ if (!z1) return (0);
+ }
+ return 0;
+}
+
+
+static void trigger_text_to_ascii(char **bufptr, cptr *strptr)
+{
+ char *s = *bufptr;
+ cptr str = *strptr;
+ bool mod_status[MAX_MACRO_MOD];
+
+ int i, len = 0;
+ int shiftstatus = 0;
+ cptr key_code;
+
+ if (macro_template == NULL)
+ return;
+
+ for (i = 0; macro_modifier_chr[i]; i++)
+ mod_status[i] = FALSE;
+ str++;
+
+ /* Examine modifier keys */
+ while (1)
+ {
+ for (i=0; macro_modifier_chr[i]; i++)
+ {
+ len = strlen(macro_modifier_name[i]);
+
+ if(!my_strnicmp(str, macro_modifier_name[i], len))
+ break;
+ }
+ if (!macro_modifier_chr[i]) break;
+ str += len;
+ mod_status[i] = TRUE;
+ if ('S' == macro_modifier_chr[i])
+ shiftstatus = 1;
+ }
+ for (i = 0; i < max_macrotrigger; i++)
+ {
+ len = strlen(macro_trigger_name[i]);
+ if (!my_strnicmp(str, macro_trigger_name[i], len) && ']' == str[len])
+ {
+ /* a trigger name found */
+ break;
+ }
+ }
+ if (i == max_macrotrigger)
+ return;
+ key_code = macro_trigger_keycode[shiftstatus][i];
+ str += len;
+
+ *s++ = (char)31;
+ for (i = 0; macro_template[i]; i++)
+ {
+ char ch = macro_template[i];
+ int j;
+
+ switch(ch)
+ {
+ case '&':
+ for (j = 0; macro_modifier_chr[j]; j++) {
+ if (mod_status[j])
+ *s++ = macro_modifier_chr[j];
+ }
+ break;
+ case '#':
+ strcpy(s, key_code);
+ s += strlen(key_code);
+ break;
+ default:
+ *s++ = ch;
+ break;
+ }
+ }
+ *s++ = (char)13;
+
+ *bufptr = s;
+ *strptr = str; /* where **strptr == ']' */
+ return;
+}
+
+
/*
* Hack -- convert a printable string into real ascii
*
/* Skip the backslash */
str++;
+ /* Macro Trigger */
+ if (*str == '[')
+ {
+ trigger_text_to_ascii(&s, &str);
+ }
+ else
+
/* Hex-mode XXX */
if (*str == 'x')
{
}
+bool trigger_ascii_to_text(char **bufptr, cptr *strptr)
+{
+ char *s = *bufptr;
+ cptr str = *strptr;
+ char key_code[100];
+ int i;
+ cptr tmp;
+
+ if (macro_template == NULL)
+ return FALSE;
+
+ *s++ = '\\';
+ *s++ = '[';
+
+ for (i = 0; macro_template[i]; i++)
+ {
+ int j;
+ char ch = macro_template[i];
+
+ switch(ch)
+ {
+ case '&':
+ while ((tmp = strchr(macro_modifier_chr, *str)))
+ {
+ j = (int)(tmp - macro_modifier_chr);
+ tmp = macro_modifier_name[j];
+ while(*tmp) *s++ = *tmp++;
+ str++;
+ }
+ break;
+ case '#':
+ for (j = 0; *str && *str != (char)13; j++)
+ key_code[j] = *str++;
+ key_code[j] = '\0';
+ break;
+ default:
+ if (ch != *str) return FALSE;
+ str++;
+ }
+ }
+ if (*str++ != (char)13) return FALSE;
+
+ for (i = 0; i < max_macrotrigger; i++)
+ {
+ if (!my_stricmp(key_code, macro_trigger_keycode[0][i])
+ || !my_stricmp(key_code, macro_trigger_keycode[1][i]))
+ break;
+ }
+ if (i == max_macrotrigger)
+ return FALSE;
+
+ tmp = macro_trigger_name[i];
+ while (*tmp) *s++ = *tmp++;
+
+ *s++ = ']';
+
+ *bufptr = s;
+ *strptr = str;
+ return TRUE;
+}
+
+
/*
* Hack -- convert a string into a printable form
*/
{
byte i = (byte)(*str++);
+ /* Macro Trigger */
+ if (i == 31)
+ {
+ if(!trigger_ascii_to_text(&s, &str))
+ {
+ *s++ = '^';
+ *s++ = '_';
+ }
+ }
+ else
+
if (i == ESCAPE)
{
*s++ = '\\';
/* Treat back-quote as escape */
-// if (ch == '`') ch = ESCAPE;
+/* if (ch == '`') ch = ESCAPE; */
/* End "macro trigger" */
while (TRUE)
{
i = inkey();
-// if (quick_messages) break;
+/* if (quick_messages) break; */
if (i == ESCAPE) break;
if (strchr("YyNn", i)) break;
bell();
{
/* Get a real command */
#ifdef JP
- if (!get_com("¥³¥Þ¥ó¥É: ", &cmd, FALSE))
+ if (!get_com("¥³¥Þ¥ó¥É: ", (char *)&cmd, FALSE))
#else
- if (!get_com("Command: ", &cmd, FALSE))
+ if (!get_com("Command: ", (char *)&cmd, FALSE))
#endif
{
{
/* Get a real command */
#ifdef JP
- (void)get_com("¥³¥Þ¥ó¥É: ", &cmd, FALSE);
+ (void)get_com("¥³¥Þ¥ó¥É: ", (char *)&cmd, FALSE);
#else
- (void)get_com("Command: ", &cmd, FALSE);
+ (void)get_com("Command: ", (char *)&cmd, FALSE);
#endif
{
/* Get a new command and controlify it */
#ifdef JP
- if (get_com("CTRL: ", &cmd, FALSE)) cmd = KTRL(cmd);
+ if (get_com("CTRL: ", (char *)&cmd, FALSE)) cmd = KTRL(cmd);
#else
- if (get_com("Control: ", &cmd, FALSE)) cmd = KTRL(cmd);
+ if (get_com("Control: ", (char *)&cmd, FALSE)) cmd = KTRL(cmd);
#endif
}
ch[0] = ' ';
#endif
- if (line_len >= maxlen || str[read_pt] == '\n')
+ if (line_len >= maxlen - 1 || str[read_pt] == '\n')
{
int word_len;
word_punct = read_pt;
#ifdef JP
if (kanji &&
- strcmp(ch, "¡£") != 0 && strcmp(ch, "¡¢") != 0 &&
- strcmp(ch, "¥£") != 0 && strcmp(ch, "¡¼") != 0)
+ strcmp((char *)ch, "¡£") != 0 && strcmp((char *)ch, "¡¢") != 0 &&
+ strcmp((char *)ch, "¥£") != 0 && strcmp((char *)ch, "¡¼") != 0)
word_punct = read_pt;
#endif
tbuf[write_pt++] = ch[0];
};
+int max_macrotrigger = 0;
+char *macro_template = NULL;
+char *macro_modifier_chr;
+char *macro_modifier_name[MAX_MACRO_MOD];
+char *macro_trigger_name[MAX_MACRO_TRIG];
+char *macro_trigger_keycode[2][MAX_MACRO_TRIG];
+
/* ¥ì¥Ù¥ë¥¢¥Ã¥×¤Î»þ¤Ë¾å¾ºÎ̤òɽ¼¨¤¹¤ë¤Î¤Ë»È¤¦ */
int level_up = 0;
int max_autopick=0;
-unsigned char *autopick_name[MAX_AUTOPICK];
-unsigned char *autopick_insc[MAX_AUTOPICK];
+char *autopick_name[MAX_AUTOPICK];
+char *autopick_insc[MAX_AUTOPICK];
s16b autopick_action[MAX_AUTOPICK];
/*
cptr ANGBAND_SYS = "xxx";
/*
+ * Hack -- The special Angband "Keyboard Suffix"
+ * This variable is used to choose an appropriate macro-trigger definition
+ */
+#ifdef JP
+cptr ANGBAND_KEYBOARD = "JAPAN";
+#else
+cptr ANGBAND_KEYBOARD = "0";
+#endif
+
+/*
* Hack -- The special Angband "Graphics Suffix"
* This variable is used to choose an appropriate "graf-xxx" file
*/
player_place(p_ptr->oldpy, p_ptr->oldpx);
p_ptr->leftbldg = FALSE;
- // p_ptr->leaving_dungeon = FALSE;
+ /* p_ptr->leaving_dungeon = FALSE;*/
lim = (generate_encounter==TRUE)?40:MIN_M_ALLOC_TN;
{ TR3_TELEPATHY, "¥Æ¥ì¥Ñ¥·¡¼" },
{ TR3_SLOW_DIGEST, "Ãپò½" },
{ TR3_REGEN, "µÞ®²óÉü" },
-// { TR3_XTRA_MIGHT, "¶¯Îϼͷâ" },
+/* { TR3_XTRA_MIGHT, "¶¯Îϼͷâ" }, */
{ TR3_XTRA_SHOTS, "Äɲüͷâ" }, /* always +1? */
{ TR3_DRAIN_EXP, "·Ð¸³Ã͵ۼý" },
{ TR3_AGGRAVATE, "È¿´¶" },
{ TR3_TELEPATHY, "ESP" },
{ TR3_SLOW_DIGEST, "Slow Digestion" },
{ TR3_REGEN, "Regeneration" },
-// { TR3_XTRA_MIGHT, "Extra Might" },
+/* { TR3_XTRA_MIGHT, "Extra Might" }, */
{ TR3_XTRA_SHOTS, "+1 Extra Shot" }, /* always +1? */
{ TR3_DRAIN_EXP, "Drains Experience" },
{ TR3_AGGRAVATE, "Aggravates" },
* being "lightly cursed".
*/
-// if (cursed_p(o_ptr))
+/* if (cursed_p(o_ptr)) */
if (1)
{
if (f3 & TR3_TY_CURSE)
*misc_list++ = "Heavily Cursed";
#endif
}
-// else
+/* else */
else if (f3 & TR3_CURSED)
{
#ifdef JP
if (r_ptr->flags7 & (RF7_KAGE)) continue;
/* Get the "name" */
-// if (r_ptr->flags1 & (RF1_QUESTOR))
+/* if (r_ptr->flags1 & (RF1_QUESTOR)) */
if (0)
{
sprintf(nam, "[Q] %s", name);
byte color;
/* ¥¿¥¤¥È¥ë */
-// put_str(" £È£Ð¡¦£Í£Ð", ROW_HPMP, COL_HPMP);
+/* put_str(" £È£Ð¡¦£Í£Ð", ROW_HPMP, COL_HPMP); */
put_str("HP", ROW_CURHP, COL_CURHP);
if (!mp_ptr->spell_book) return;
/* ¥¿¥¤¥È¥ë */
-// put_str(" £Í£Ð / ºÇÂç", ROW_MAXSP, COL_MAXSP);
+/* put_str(" £Í£Ð / ºÇÂç", ROW_MAXSP, COL_MAXSP); */
#ifdef JP
put_str("MP", ROW_CURSP, COL_CURSP);
prt_field(mimic_info[p_ptr->mimic_form].title, ROW_RACE, COL_RACE);
else
prt_field(rp_ptr->title, ROW_RACE, COL_RACE);
-// prt_field(cp_ptr->title, ROW_CLASS, COL_CLASS);
-// prt_field(ap_ptr->title, ROW_SEIKAKU, COL_SEIKAKU);
+/* prt_field(cp_ptr->title, ROW_CLASS, COL_CLASS); */
+/* prt_field(ap_ptr->title, ROW_SEIKAKU, COL_SEIKAKU); */
/* Title */
k++;
}
if (k>32) k = 32;
- if ((p_ptr->new_spells > k) && (mp_ptr->spell_book == TV_LIFE_BOOK)) p_ptr->new_spells = k;
+ if ((p_ptr->new_spells > k) && ((mp_ptr->spell_book == TV_LIFE_BOOK) || (mp_ptr->spell_book == TV_HISSATSU_BOOK))) p_ptr->new_spells = k;
}
if (p_ptr->new_spells < 0) p_ptr->new_spells = 0;
{
p_ptr->redraw &= ~(PR_MISC);
prt_field(rp_ptr->title, ROW_RACE, COL_RACE);
-// prt_field(cp_ptr->title, ROW_CLASS, COL_CLASS);
+/* prt_field(cp_ptr->title, ROW_CLASS, COL_CLASS); */
}
/* Verify */
if (!(*dp == 5 && !target_okay()))
{
-// return (TRUE);
+/* return (TRUE); */
dir = *dp;
}
}
#ifdef ALLOW_REPEAT /* TNB */
-// repeat_push(dir);
+/* repeat_push(dir); */
repeat_push(command_dir);
#endif /* ALLOW_REPEAT -- TNB */
if (repeat_pull(dp))
{
dir = *dp;
-// return (TRUE);
+/* return (TRUE); */
}
#endif /* ALLOW_REPEAT -- TNB */
#ifdef ALLOW_REPEAT /* TNB */
-// repeat_push(dir);
+/* repeat_push(dir); */
repeat_push(command_dir);
#endif /* ALLOW_REPEAT -- TNB */
if (repeat_pull(dp))
{
dir = *dp;
-// return (TRUE);
+/* return (TRUE); */
}
#endif /* ALLOW_REPEAT -- TNB */
#ifdef ALLOW_REPEAT /* TNB */
-// repeat_push(dir);
+/* repeat_push(dir); */
repeat_push(command_dir);
#endif /* ALLOW_REPEAT -- TNB */
byte *scr_aa = Term->scr->a[y];
#ifdef JP
- unsigned char *scr_cc = Term->scr->c[y];
+ unsigned char *scr_cc = (unsigned char *)Term->scr->c[y];
#ifdef USE_TRANSPARENCY
byte *scr_taa = Term->scr->ta[y];