X-Git-Url: http://git.shiar.nl/netris.git/blobdiff_plain/7098b3a509b56f28e31d67fe4344e900521b1914..7314868989ef0df88c44603419a4d50e94682fd8:/game.c diff --git a/game.c b/game.c index 32c85db..64acecc 100644 --- a/game.c +++ b/game.c @@ -123,8 +123,7 @@ void HandleOption(char tag, char *value) { switch (tag) { case 'a': //ascii - if (value && !strcasecmp(value, "0")) Sets.ascii = 0; - else Sets.ascii = 1; + Sets.ascii = value && !strcasecmp(value, "0") ? 0 : 1; Sets.drawstyle &= ~Sets.ascii; break; case 'c': //connect @@ -147,15 +146,13 @@ void HandleOption(char tag, char *value) Players[0].team = atoi(value); break; case 'd': //dropmode - Sets.dropmode = atoi(value); + Sets.dropmode = value ? atoi(value) : 1; break; case 'C': //color - if (value && !strcasecmp(value, "1")) Sets.color = 1; - else Sets.color = 0; + Sets.color = value && strcasecmp(value, "0") ? 1 : 0; break; case 'S': //slowterm - if (value && !strcasecmp(value, "1")) Sets.standout = 1; - else Sets.standout = 0; + Sets.standout = value && !strcasecmp(value, "0") ? 1 : 0; break; case 'k': //keys MapKeys(value); @@ -349,14 +346,44 @@ void OneGame(void) // global actions (always possible, even if not playing) switch (key) { + case KT_redraw: + clear(); + InitFields(); +// ScheduleFullRedraw(); + refresh(); + return; case KT_say: chatMode = 1; Messagetype(key, strlen(chatText) - 1, chatText); - break; + return; + case KT_quit: + ShowPause(me); + refresh(); + gameStatus = 0; + return; } - if (Players[me].alive <= 0 && key != KT_quit) return; - if (paused && key < KT_pause) return; + if (Players[me].alive <= 0) return; + // actions available while in game + switch (key) { + case KT_pause: + Players[me].flags ^= SCF_paused; + if (Game.started > 1) + Message(Players[me].flags & SCF_paused + ? "You paused the game" : "You unpaused the game"); + else + Message(Players[me].flags & SCF_paused + ? "You are not ready" : "You are ready"); + checkPaused(); + if (game == GT_classicTwo) + SendPacket(me, NP_pause, 0, NULL); + ShowPause(me); + changed = 1; + return; + } + + if (paused) return; + // actions only available while actually playing switch (key) { case KT_left: if (MovePiece(me, 0, -1) && spied) SendPacket(me, NP_left, 0, NULL); @@ -396,32 +423,8 @@ void OneGame(void) ShowScore(me, Players[me].score); changed = 1; break; - case KT_pause: - Players[me].flags ^= SCF_paused; - if (Game.started > 1) - Message(Players[me].flags & SCF_paused - ? "You paused the game" : "You unpaused the game"); - else - Message(Players[me].flags & SCF_paused - ? "You are not ready" : "You are ready"); - checkPaused(); - if (game == GT_classicTwo) - SendPacket(me, NP_pause, 0, NULL); - ShowPause(me); - changed = 1; - break; - case KT_redraw: - clear(); - InitFields(); -// ScheduleFullRedraw(); - refresh(); - break; - case KT_quit: - ShowPause(me); - refresh(); - gameStatus = 0; - break; - } //E_key + } + if (dropMode && DropPiece(me) > 0) { SetITimer(Game.speed, Game.speed); if (spied) SendPacket(me, NP_drop, 0, NULL);