look around ('x'), message history (Control-P) and suspend game (Control-Z).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8408 c06c8d41-db1a-0410-9941-cceddc491573
FSJKED4U2SOUP64DTHF2NEGAYY7EUMSIDKC2SATEXAXEVOCNL3CAC
3HBQJBTXTMATEKEZ7ANDLAXVKS4F45YS647KYWNKQE32GQW22S3AC
JWM4MKSWWQH7QFNUEC5JVTK5YNVY7VGWD46YTNIAP7MQP2HK3OOQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
PKXXBHS3LWLPZI2QVRX22MSQ4R2626IXRSNHFFYHXYTLJJQU54LQC
75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
ZGZVOMRXLVC42FV67RBTLBOZWFYRL4UHL54A365BR76OUIYRWQXAC
O54EMWS7CT7OOK7PEFY5A32DNOL5VJBHFDSCP4AE2OZCQY3ZO3QQC
QLV7Y2LTDKTVMYFLM7UCNRUXU6PC5535XV6UE27N56AHHIGXEIWAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
LW4N5EHKL776DURXZMAM6JEW3JPWWX5BSNP7TCZHTLCDOQTTGFCAC
4PBRMB7TK2TXL7VSDKMUQMT4QFK3SGRU4TUVMEM7V2VS7KKKILAQC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
6ME4TYV7ITXCAUMNVB27LRRHB72J2FVVZMJNS34IMAN57R37AE2QC
Y5RFQ6KNJCBQUSV2T6WDR7TPZLZYLOAWBVMUTHDXGOZQDZ2U423AC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
WGM77XP66ZEIRWAOKAJDICJ4ZBEUKGAEY6MZQQJ2LUWG5PCG722QC
PKENI7REL6MQ5KKGSBIOVMPJKITY6OLQRXHVD4Z6PU7HMS23XM7AC
R32CQ6FQJTQLB35P3HENIDCBDT3UWXBBCDAAUWHUQO6G6NKEDPKQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
CK7CT5TUFUL2AQY7FUHB5JI3FC2KSPWUWHXC6VEUJJ7G4OWUQFTAC
YAAJ6PTN6QUSWE52URI5AENOGD366FIHOIFUOXFUJLVZYE4OG6HQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
TPPJRQ2NTCV3GI2VRHEXQJREDERPJODCJWUG5WCOQGN4REPPPAMAC
PZ3XLK6F2H6OZU462GNYVHNICLQ6JOGNF5GYDBJBWXNNPAYIT6YQC
HAIAZ6XVHKMUAQBV67DR54CMWRGRFAW6VY3S4BBUWS32XAWC2JIQC
map_stat_gen(false), arena(false), unicode_ok(false), glyph2strfn(NULL),
multibyte_strlen(NULL), terminal_resize_handler(NULL),
terminal_resize_check(NULL), doing_prev_cmd_again(false),
prev_cmd(CMD_NO_CMD), repeat_cmd(CMD_NO_CMD), cmd_repeat_count(0),
cmd_repeat_goal(0), prev_repetition_turn(0),
cmd_repeat_started_unsafe(false), input_line_curr(0),
level_annotation_shown(false)
map_stat_gen(false), arena(false), arena_suspended(false),
unicode_ok(false), glyph2strfn(NULL), multibyte_strlen(NULL),
terminal_resize_handler(NULL), terminal_resize_check(NULL),
doing_prev_cmd_again(false), prev_cmd(CMD_NO_CMD),
repeat_cmd(CMD_NO_CMD), cmd_repeat_count(0), cmd_repeat_goal(0),
prev_repetition_turn(0), cmd_repeat_started_unsafe(false),
input_line_curr(0), level_annotation_shown(false)
}
}
void handle_keypress(int ch)
{
if (ch == ESCAPE || tolower(ch) == 'q' || ch == CONTROL('G'))
{
contest_canceled = true;
mpr("Canceled contest at user request");
return;
}
const command_type cmd = key_to_command(ch, KC_DEFAULT);
// We only allow a short list of commands to be used in the arena.
switch(cmd)
{
case CMD_LOOK_AROUND:
case CMD_SUSPEND_GAME:
case CMD_REPLAY_MESSAGES:
break;
default:
return;
if (file != NULL)
fflush(file);
cursor_control coff(true);
unwind_bool ar (crawl_state.arena, false);
unwind_bool ar_susp(crawl_state.arena_suspended, true);
unwind_var<coord_def> pos(you.position);
coord_def yplace(dgn_find_feature_marker(DNGN_ESCAPE_HATCH_UP));
you.moveto(yplace);
process_command(cmd);
if (ch == ESCAPE || tolower(ch) == 'q' ||
ch == CONTROL('G'))
{
contest_canceled = true;
mpr("Canceled contest at user request");
handle_keypress(ch);
ASSERT(crawl_state.arena && !crawl_state.arena_suspended);
if (contest_canceled)
Commands
------------------------------------------------------------------------------
There are a very limited number of command you can issue to the arena:
* You can stop the arena simulation early by pressing Escape, 'q' or
Control-G.
* You can look at the message history like in a normal game (Control-P).
* You can look around the arena like in a normal game ('x').
* You can suspended the arena like in a normal game (Control-Z).