comparison 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
comparison
equal deleted inserted replaced
151:cadff8f047a1 152:0c775afe0072
190 newcount = FALSE; 190 newcount = FALSE;
191 191
192 /* 192 /*
193 * execute a command 193 * execute a command
194 */ 194 */
195 if (count && !running) 195 if (count && !running && player.t_action == A_NIL)
196 count--; 196 count--;
197 switch (ch) { 197 switch (ch) {
198 case '!' : shell(); 198 case '!' : shell();
199 when 'h' : do_move(0, -1); 199 when 'h' : do_move(0, -1);
200 when 'j' : do_move(1, 0); 200 when 'j' : do_move(1, 0);