Also, fixing issue where cancelling the level map help screen in tiles wouldn't go back to viewing the dungeon.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7957 c06c8d41-db1a-0410-9941-cceddc491573
DNAZ35MX7CF3D53NHBU4YOL4UI5CT3VECTI3WRXXOAODXEXDAMWQC
3LTY5TSD2KRHJA666DQ4DTVP66IXEYJ2ZCGNYG2A3GNGUAKJNOWQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
KCEQH65NZXFROENETT7U3XWM3VGONENEORO5G32SNEGR22D3FWJAC
XNYPQTF74HLRSKTEVLTNCDB43YHWOFTQL5TVSNO6WWPAJGZSCYKQC
IIN7AVA6JYRBXH6ZYRR7BY7TV6PW7ANAQ2A3PD55FKBKKQFEEF2AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
AJJ6D6JRV6ZAZOAUHYUM2IQG42V6PBALOD4KEMNKSVVAOJXAUCPQC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
L57WEZMVIHTFRLWVIPWOIOWHCF2I53TVUVYJ2V6IZ64R56FVTZZAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
62QFUV3PSEEXKEFGARMAYALNWY6KJVLGWGKV7JIXRBE37AMC64FQC
75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC
MUTWHW6LSJKATZA6LMVXT2K3UMMYJLUQRDSRXTGUBDAGOA6JO4LQC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
SWE3F3BLKHYMJEJLXNFH3MR2E6VDEYXJ6DL7QLPP47BJEKEUCAMAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
NS3KXJXQSN33UQSOBDK3WXXKA3KY5YOUJL67NBZKGQAJYDYZ2COQC
3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC
getty = unmangle_direction_keys(getchm(KC_LEVELMAP), KC_LEVELMAP,
false, false);
#ifdef USE_TILE
if (getty == CK_MOUSE_B4)
getty = '-';
else if (getty == CK_MOUSE_B5)
getty = '+';
#endif
int key = unmangle_direction_keys(getchm(KC_LEVELMAP), KC_LEVELMAP,
false, false);
command_type cmd = key_to_command(key, KC_LEVELMAP);
if (cmd < CMD_MIN_OVERMAP || cmd > CMD_MAX_OVERMAP)
cmd = CMD_NO_CMD;
if (key == CK_MOUSE_CLICK)
{
const c_mouse_event cme = get_mouse_event();
const coord_def curp(start_x + curs_x - 1, start_y + curs_y - 1);
const coord_def grdp =
cme.pos + coord_def(start_x - 1, start_y - top);
if (cme.left_clicked() && in_bounds(grdp))
{
spec_place = grdp;
map_alive = false;
}
else if (cme.scroll_up())
scroll_y = -block_step;
else if (cme.scroll_down())
scroll_y = block_step;
else if (cme.right_clicked())
{
const coord_def delta = grdp - curp;
move_y = delta.y;
move_x = delta.x;
}
}
case '<':
case '>':
case '@':
case '\t':
case '^':
case '_':
case 'E':
case 'F':
case 'W':
case 'I':
case '*':
case '/':
case '\'':
case CMD_MAP_FIND_YOU:
move_x = you.pos().x - (start_x + curs_x - 1);
move_y = you.pos().y - (start_y + curs_y - 1);
break;
case CMD_MAP_FIND_UPSTAIR:
case CMD_MAP_FIND_DOWNSTAIR:
case CMD_MAP_FIND_PORTAL:
case CMD_MAP_FIND_TRAP:
case CMD_MAP_FIND_ALTAR:
case CMD_MAP_FIND_EXCLUDED:
case CMD_MAP_FIND_F:
case CMD_MAP_FIND_WAYPOINT:
case CMD_MAP_FIND_STASH:
case CMD_MAP_FIND_STASH_REVERSE:
if (getty == '/' || getty == ';')
forward = false;
if (getty == '/' || getty == '*' || getty == ';' || getty == '\'')
int getty;
switch (cmd)
{
case CMD_MAP_FIND_UPSTAIR:
getty = '<';
break;
case CMD_MAP_FIND_DOWNSTAIR:
getty = '>';
break;
case CMD_MAP_FIND_PORTAL:
getty = '\t';
break;
case CMD_MAP_FIND_TRAP:
getty = '^';
break;
case CMD_MAP_FIND_ALTAR:
getty = '_';
break;
case CMD_MAP_FIND_EXCLUDED:
getty = 'E';
break;
case CMD_MAP_FIND_F:
getty = 'F';
break;
case CMD_MAP_FIND_WAYPOINT:
getty = 'W';
break;
default:
case CMD_MAP_FIND_STASH:
case CMD_MAP_FIND_STASH_REVERSE:
const c_mouse_event cme = get_mouse_event();
const coord_def curp(start_x + curs_x - 1, start_y + curs_y - 1);
const coord_def grdp =
cme.pos + coord_def(start_x - 1, start_y - top);
if (cme.left_clicked() && in_bounds(grdp))
{
spec_place = grdp;
map_alive = false;
}
else if (cme.scroll_up())
scroll_y = -block_step;
else if (cme.scroll_down())
scroll_y = block_step;
else if (cme.right_clicked())
{
const coord_def delta = grdp - curp;
move_y = delta.y;
move_x = delta.x;
}
break;
}
case '.':
case '\r':
case 'S':
case ',':
case ';':
{
{'?', CMD_MAP_HELP},
{CONTROL('C'), CMD_MAP_CLEAR_MAP},
{CONTROL('F'), CMD_MAP_FORGET},
{CONTROL('W'), CMD_MAP_ADD_WAYPOINT},
{'e', CMD_MAP_EXCLUDE_AREA},
{CONTROL('E'), CMD_MAP_CLEAR_EXCLUDES},
{'b', CMD_MAP_MOVE_DOWN_LEFT},
{'h', CMD_MAP_MOVE_LEFT},
{'j', CMD_MAP_MOVE_DOWN},
{'k', CMD_MAP_MOVE_UP},
{'l', CMD_MAP_MOVE_RIGHT},
{'n', CMD_MAP_MOVE_DOWN_RIGHT},
{'u', CMD_MAP_MOVE_UP_RIGHT},
{'y', CMD_MAP_MOVE_UP_LEFT},
{CK_END, CMD_MAP_MOVE_DOWN_LEFT},
{CK_LEFT, CMD_MAP_MOVE_LEFT},
{CK_DOWN, CMD_MAP_MOVE_DOWN},
{CK_UP, CMD_MAP_MOVE_UP},
{CK_RIGHT, CMD_MAP_MOVE_RIGHT},
{CK_PGDN, CMD_MAP_MOVE_DOWN_RIGHT},
{CK_PGUP, CMD_MAP_MOVE_UP_RIGHT},
{CK_HOME, CMD_MAP_MOVE_UP_LEFT},
{'B', CMD_MAP_JUMP_DOWN_LEFT},
{'H', CMD_MAP_JUMP_LEFT},
{'J', CMD_MAP_JUMP_DOWN},
{'K', CMD_MAP_JUMP_UP},
{'L', CMD_MAP_JUMP_RIGHT},
{'N', CMD_MAP_JUMP_DOWN_RIGHT},
{'U', CMD_MAP_JUMP_UP_RIGHT},
{'Y', CMD_MAP_JUMP_UP_LEFT},
{CK_SHIFT_END, CMD_MAP_JUMP_DOWN_LEFT},
{CK_SHIFT_LEFT, CMD_MAP_JUMP_LEFT},
{CK_SHIFT_DOWN, CMD_MAP_JUMP_DOWN},
{CK_SHIFT_UP, CMD_MAP_JUMP_UP},
{CK_SHIFT_RIGHT, CMD_MAP_JUMP_RIGHT},
{CK_SHIFT_PGDN, CMD_MAP_JUMP_DOWN_RIGHT},
{CK_SHIFT_PGUP, CMD_MAP_JUMP_UP_RIGHT},
{CK_SHIFT_HOME, CMD_MAP_JUMP_UP_LEFT},
{'+', CMD_MAP_SCROLL_DOWN},
{CK_MOUSE_B5, CMD_MAP_SCROLL_DOWN},
{'-', CMD_MAP_SCROLL_UP},
{CK_MOUSE_B4, CMD_MAP_SCROLL_UP},
{'<', CMD_MAP_FIND_UPSTAIR},
{'>', CMD_MAP_FIND_DOWNSTAIR},
{'@', CMD_MAP_FIND_YOU},
{'\t', CMD_MAP_FIND_PORTAL},
{'^', CMD_MAP_FIND_TRAP},
{'_', CMD_MAP_FIND_ALTAR},
{'E', CMD_MAP_FIND_EXCLUDED},
{'F', CMD_MAP_FIND_F},
{'W', CMD_MAP_FIND_WAYPOINT},
{'I', CMD_MAP_FIND_STASH},
{'*', CMD_MAP_FIND_STASH},
{'/', CMD_MAP_FIND_STASH_REVERSE},
{'\'', CMD_MAP_FIND_STASH},
{'.', CMD_MAP_GOTO_TARGET},
{'\r', CMD_MAP_GOTO_TARGET},
{'S', CMD_MAP_GOTO_TARGET},
{',', CMD_MAP_GOTO_TARGET},
{';', CMD_MAP_GOTO_TARGET},
{ESCAPE, CMD_MAP_EXIT_MAP},
#ifdef WIZARD
{'T', CMD_MAP_WIZARD_TELEPORT},
#endif