comparison xrogue/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 9aa9b9a2e159
children 23fff8f7b303
comparison
equal deleted inserted replaced
151:cadff8f047a1 152:0c775afe0072
183 newcount = FALSE; 183 newcount = FALSE;
184 184
185 /* 185 /*
186 * execute a command 186 * execute a command
187 */ 187 */
188 if (count && !running) 188 if (count && !running && player.t_action == A_NIL)
189 count--; 189 count--;
190 190
191 switch (ch) { 191 switch (ch) {
192 case '!' : shell(); 192 case '!' : shell();
193 case KEY_LEFT : do_move(0, -1); 193 case KEY_LEFT : do_move(0, -1);