X-Git-Url: http://git.shiar.nl/netris.git/blobdiff_plain/029b3987ced68ca6a86c3da7bdfb536c5789590a..c7eeb8f0c70c3d6538b7199f0e2094967413d35d:/game.c diff --git a/game.c b/game.c index 21e70b7..7537fc4 100644 --- a/game.c +++ b/game.c @@ -122,59 +122,59 @@ void WriteConf(void) void HandleOption(char tag, char *value) { switch (tag) { - case 'a': //ascii - if (value && !strcasecmp(value, "0")) Sets.ascii = 0; - else Sets.ascii = 1; - break; - case 'c': //connect - game = GT_classicTwo; - hostStr = value; - break; - case 'p': //port - port = atoi(value); - break; - case 'i': //speed (of level 1) - Game.initspeed = atof(value) * 1e6; - break; - case 'l': //level - if ((Players[0].score.level = atof(value)) < 1) - Players[0].score.level = 1; - if (Players[0].score.level > 15) - Players[0].score.level = 15; - break; - case 'n': //nick - memcpy(Players[0].name, value, strlen(value) + 1); - break; - case 't': //team - Players[0].team = atoi(value); - break; - case 'd': //dropmode - Sets.dropmode = atoi(value); - break; - case 'C': //color - if (value && !strcasecmp(value, "1")) Sets.color = 1; - else Sets.color = 0; - break; - case 'S': //slowterm - if (value && !strcasecmp(value, "1")) Sets.standout = 1; - else Sets.standout = 0; - break; - case 'k': //keys - MapKeys(value); - break; - case 'H': //info - Header(); - DistInfo(); - exit(0); - case 'R': //rules - Rules(); - exit(0); - case 'h': //help - Usage(); - exit(0); - default: - Usage(); - exit(1); + case 'a': //ascii + if (value && !strcasecmp(value, "0")) Sets.ascii = 0; + else Sets.ascii = 1; + break; + case 'c': //connect + game = GT_classicTwo; + hostStr = value; + break; + case 'p': //port + port = atoi(value); + break; + case 'i': //speed (of level 1) + Game.initspeed = atof(value) * 1e6; + break; + case 'l': //level + if ((Players[0].score.level = atof(value)) < 1) + Players[0].score.level = 1; + if (Players[0].score.level > 15) + Players[0].score.level = 15; + break; + case 'n': //nick + memcpy(Players[0].name, value, strlen(value) + 1); + break; + case 't': //team + Players[0].team = atoi(value); + break; + case 'd': //dropmode + Sets.dropmode = atoi(value); + break; + case 'C': //color + if (value && !strcasecmp(value, "1")) Sets.color = 1; + else Sets.color = 0; + break; + case 'S': //slowterm + if (value && !strcasecmp(value, "1")) Sets.standout = 1; + else Sets.standout = 0; + break; + case 'k': //keys + MapKeys(value); + break; + case 'H': //info + Header(); + DistInfo(); + exit(0); + case 'R': //rules + Rules(); + exit(0); + case 'h': //help + Usage(); + exit(0); + default: + Usage(); + exit(1); } } @@ -351,69 +351,69 @@ void OneGame(void) if (Players[me].alive <= 0 && key != KT_quit) return; if (paused && key < KT_pause) return; switch (key) { - case KT_left: - if (MovePiece(me, 0, -1) && spied) SendPacket(me, NP_left, 0, NULL); - break; - case KT_right: - if (MovePiece(me, 0, 1) && spied) SendPacket(me, NP_right, 0, NULL); - break; - case KT_rotleft: - if (RotatePiece(me, -1) && spied) SendPacket(me, NP_rotleft, 0, NULL); - break; - case KT_rotright: - if (RotatePiece(me, 1) && spied) SendPacket(me, NP_rotright, 0, NULL); - break; - case KT_down: - SetITimer(Game.speed, Game.speed); - if (MovePiece(me, -1, 0)) { - if (spied) SendPacket(me, NP_down, 0, NULL); - } //move one down - else - gameStatus = 1; //completely dropped - break; - case KT_drop: - SetITimer(Game.speed, Game.speed); - if (DropPiece(me)) { - if (spied) SendPacket(me, NP_drop, 0, NULL); - if (!Sets.dropmode) gameStatus = 1; //instadrop - } - else gameStatus = 1; //dropped - dropMode = Sets.dropmode > 1; - break; - case KT_faster: - if (game != GT_onePlayer) break; - if ((Game.speed /= SPEEDINC) < SPEEDMINIMUM) - Game.speed = SPEEDMINIMUM; - SetITimer(Game.speed, SetITimer(0, 0)); - Players[me].score.level++; - 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; + case KT_left: + if (MovePiece(me, 0, -1) && spied) SendPacket(me, NP_left, 0, NULL); + break; + case KT_right: + if (MovePiece(me, 0, 1) && spied) SendPacket(me, NP_right, 0, NULL); + break; + case KT_rotleft: + if (RotatePiece(me, -1) && spied) SendPacket(me, NP_rotleft, 0, NULL); + break; + case KT_rotright: + if (RotatePiece(me, 1) && spied) SendPacket(me, NP_rotright, 0, NULL); + break; + case KT_down: + SetITimer(Game.speed, Game.speed); + if (MovePiece(me, -1, 0)) { + if (spied) SendPacket(me, NP_down, 0, NULL); + } //move one down + else + gameStatus = 1; //completely dropped + break; + case KT_drop: + SetITimer(Game.speed, Game.speed); + if (DropPiece(me)) { + if (spied) SendPacket(me, NP_drop, 0, NULL); + if (!Sets.dropmode) gameStatus = 1; //instadrop + } + else gameStatus = 1; //dropped + dropMode = Sets.dropmode > 1; + break; + case KT_faster: + if (game != GT_onePlayer) break; + if ((Game.speed /= SPEEDINC) < SPEEDMINIMUM) + Game.speed = SPEEDMINIMUM; + SetITimer(Game.speed, SetITimer(0, 0)); + Players[me].score.level++; + 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); @@ -662,21 +662,21 @@ GameLoop: if (playercount < 1) gameStatus = 0; } switch (WaitMyEvent(&event, EM_any)) { - case E_alarm: - if (!paused && Players[me].alive > 0) - if (!MovePiece(me, -1, 0)) //move down - gameStatus = 1; //new piece - else - if (spied) SendPacket(me, NP_down, 0, NULL); - break; - case E_key: - GameKey(event.u.key); - break; - case E_net: - GameNet(event.u.net); - break; - case E_lostConn: - goto gameOver; + case E_alarm: + if (!paused && Players[me].alive > 0) + if (!MovePiece(me, -1, 0)) //move down + gameStatus = 1; //new piece + else + if (spied) SendPacket(me, NP_down, 0, NULL); + break; + case E_key: + GameKey(event.u.key); + break; + case E_net: + GameNet(event.u.net); + break; + case E_lostConn: + goto gameOver; } //handle event if (paused != oldPaused) { if (paused) {