summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/directn.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-03 09:49:19 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-03 09:49:19 +0000
commit1e6c29fcdad466fe9bbae6326ef19bcad8e73707 (patch)
treed4600a8098234fc850c34323ac212e403e31a4b8 /crawl-ref/source/directn.cc
parentbc72da21789d32c6c7cce104f51c50348997b58a (diff)
downloadcrawl-ref-1e6c29fcdad466fe9bbae6326ef19bcad8e73707.tar.gz
crawl-ref-1e6c29fcdad466fe9bbae6326ef19bcad8e73707.zip
Bug/FR 1947001: For damaging cards add "You draw card xy" to the prompt,
so you can reread it while targetting, and add a targetting subcommand "show prompt" that'll do just that. (Though you can already do that by looking at the help.) Fix plain coloured items highlighted in grey in prompts, and add two new colouring prefixes: evil_item (/draining, necromancy books, etc.) and evil_eating (cannibalism, intelligent being) that only apply for the good gods. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5455 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r--crawl-ref/source/directn.cc70
1 files changed, 38 insertions, 32 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index 23ce7b0b1a..feb805e7dc 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -484,10 +484,10 @@ void direction(dist& moves, targeting_type restricts,
bool found_autotarget = false;
bool target_unshifted = Options.target_unshifted_dirs;
- // Find a default target
+ // Find a default target.
if (Options.default_target && mode == TARG_ENEMY)
{
- skip_iter = true; // skip first iteration...XXX mega-hack
+ skip_iter = true; // Skip first iteration...XXX mega-hack
if (you.prev_targ != MHITNOT && you.prev_targ != MHITYOU)
{
const monsters *montarget = &menv[you.prev_targ];
@@ -534,12 +534,12 @@ void direction(dist& moves, targeting_type restricts,
command_type key_command;
- if ( skip_iter )
+ if (skip_iter)
{
- if ( found_autotarget )
+ if (found_autotarget)
key_command = CMD_NO_CMD;
else
- key_command = CMD_TARGET_CYCLE_FORWARD; // find closest enemy
+ key_command = CMD_TARGET_CYCLE_FORWARD; // Find closest target.
}
else
{
@@ -550,9 +550,9 @@ void direction(dist& moves, targeting_type restricts,
}
#ifdef USE_TILE
- // if a mouse command, update location to mouse position...
- if ( key_command == CMD_TARGET_MOUSE_MOVE
- || key_command == CMD_TARGET_MOUSE_SELECT )
+ // If a mouse command, update location to mouse position.
+ if (key_command == CMD_TARGET_MOUSE_MOVE
+ || key_command == CMD_TARGET_MOUSE_SELECT)
{
coord_def gc;
if (gui_get_mouse_grid_pos(gc))
@@ -585,9 +585,10 @@ void direction(dist& moves, targeting_type restricts,
target_unshifted = false;
}
- if ( key_command == CMD_TARGET_MAYBE_PREV_TARGET )
+
+ if (key_command == CMD_TARGET_MAYBE_PREV_TARGET)
{
- if ( moves.tx == you.x_pos && moves.ty == you.y_pos )
+ if (moves.tx == you.x_pos && moves.ty == you.y_pos)
key_command = CMD_TARGET_PREV_TARGET;
else
key_command = CMD_TARGET_SELECT;
@@ -602,7 +603,7 @@ void direction(dist& moves, targeting_type restricts,
int i, mid;
- switch ( key_command )
+ switch (key_command)
{
// standard movement
case CMD_TARGET_DOWN_LEFT:
@@ -631,16 +632,16 @@ void direction(dist& moves, targeting_type restricts,
if (restricts != DIR_TARGET)
{
// A direction is allowed, and we've selected it.
- moves.dx = Compass[i].x;
- moves.dy = Compass[i].y;
+ moves.dx = Compass[i].x;
+ moves.dy = Compass[i].y;
// Needed for now...eventually shouldn't be necessary
- moves.tx = you.x_pos + moves.dx;
- moves.ty = you.y_pos + moves.dy;
- moves.isValid = true;
+ moves.tx = you.x_pos + moves.dx;
+ moves.ty = you.y_pos + moves.dy;
+ moves.isValid = true;
moves.isTarget = false;
- show_beam = false;
+ show_beam = false;
moves.choseRay = false;
- loop_done = true;
+ loop_done = true;
}
else
{
@@ -659,6 +660,11 @@ void direction(dist& moves, targeting_type restricts,
}
break;
+ case CMD_TARGET_SHOW_PROMPT:
+ mprf(MSGCH_PROMPT, "%s (%s)", prompt? prompt : "Aim",
+ target_mode_help_text(restricts));
+ break;
+
#ifdef WIZARD
case CMD_TARGET_CYCLE_BEAM:
show_beam = find_ray(you.x_pos, you.y_pos, moves.tx, moves.ty,
@@ -734,7 +740,7 @@ void direction(dist& moves, targeting_type restricts,
break;
}
- // we have a valid previous target (maybe)
+ // We have a valid previous target (maybe).
{
const monsters *montarget = &menv[you.prev_targ];
@@ -746,12 +752,12 @@ void direction(dist& moves, targeting_type restricts,
}
else
{
- // We have all the information we need
- moves.isValid = true;
+ // We have all the information we need.
+ moves.isValid = true;
moves.isTarget = true;
- moves.tx = montarget->x;
- moves.ty = montarget->y;
- if ( !just_looking )
+ moves.tx = montarget->x;
+ moves.ty = montarget->y;
+ if (!just_looking)
{
// We have to turn off show_beam, because
// when jumping to a previous target we don't
@@ -778,14 +784,14 @@ void direction(dist& moves, targeting_type restricts,
}
moves.isValid = true;
moves.isTarget = true;
- loop_done = true;
+ loop_done = true;
you.prev_grd_targ = coord_def(0, 0);
- // maybe we should except just_looking here?
+ // Maybe we should except just_looking here?
mid = mgrd[moves.tx][moves.ty];
- if ( mid != NON_MONSTER )
+ if (mid != NON_MONSTER)
you.prev_targ = mid;
else if (moves.tx == you.x_pos && moves.ty == you.y_pos)
you.prev_targ = MHITYOU;
@@ -822,7 +828,6 @@ void direction(dist& moves, targeting_type restricts,
}
else if (!skip_iter)
flush_input_buffer(FLUSH_ON_FAILURE);
-
break;
case CMD_TARGET_CANCEL:
@@ -929,12 +934,12 @@ void direction(dist& moves, targeting_type restricts,
break;
}
- if ( loop_done == true )
+ if (loop_done == true)
{
// This is where we either finalize everything, or else
// decide that we're not really done and continue looping.
- if ( just_looking ) // easy out
+ if (just_looking) // easy out
break;
// A bunch of confirmation tests; if we survive them all,
@@ -955,12 +960,12 @@ void direction(dist& moves, targeting_type restricts,
mpr("Sorry, you can't target what you can't see.",
MSGCH_EXAMINE_FILTER);
}
- // Ask for confirmation if we're quitting for some odd reason
+ // Ask for confirmation if we're quitting for some odd reason.
else if ( moves.isValid || moves.isCancel
|| yesno("Are you sure you want to fizzle?", false, 'n') )
{
// Finalize whatever is inside the loop
- // (moves-internal finalizations can be done later)
+ // (moves-internal finalizations can be done later).
moves.choseRay = show_beam;
moves.ray = ray;
break;
@@ -2493,6 +2498,7 @@ command_type targeting_behaviour::get_command(int key)
case 'v': return CMD_TARGET_DESCRIBE;
case '?': return CMD_TARGET_HELP;
case ' ': return just_looking? CMD_TARGET_CANCEL : CMD_TARGET_SELECT;
+ case CONTROL('P'): return CMD_TARGET_SHOW_PROMPT;
#ifdef WIZARD
case CONTROL('C'): return CMD_TARGET_CYCLE_BEAM;
#endif