diff arogue7/command.c @ 152:0c775afe0072

arogue7, xrogue: fix command repetition. In both games, command() loops and calls the action function twice for each command: once to schedule it by setting player.t_action and player.t_no_move, and again, to actually do it, once player.t_no_move has been reduced to 0. Each loop decremented count, so repeated commands were only repeated half the number of times the player typed. count is now decremented only when ch has been set to the repeated command.
author John "Elwin" Edwards
date Thu, 28 May 2015 11:08:03 -0400
parents 1a64fd0bfea6
children a0a57cf42810
line wrap: on
line diff
--- a/arogue7/command.c	Thu May 28 10:21:43 2015 -0400
+++ b/arogue7/command.c	Thu May 28 11:08:03 2015 -0400
@@ -192,7 +192,7 @@
 		/*
 		 * execute a command
 		 */
-		if (count && !running)
+		if (count && !running && player.t_action == A_NIL)
 		    count--;
 		switch (ch) {
 		    case '!' : shell();