X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_tetris.qc;h=63e498bfc36075512a8d0f0581e44d8d0f9dd3c4;hb=117fa45380851579df9e6c465a207d733f6ca748;hp=00daebf635f7dfc999e44da46306064e631d437a;hpb=7d31226bcb7eb09c889f3a817562270573f32c66;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_tetris.qc b/qcsrc/server/g_tetris.qc index 00daebf63..63e498bfc 100644 --- a/qcsrc/server/g_tetris.qc +++ b/qcsrc/server/g_tetris.qc @@ -1,3 +1,10 @@ +#if defined(CSQC) +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../dpdefs/dpextensions.qh" + #include "autocvars.qh" +#endif + /* Installation: @@ -250,31 +257,31 @@ void PieceMinsMaxs(float rot, float pc) // 2 = 2..3 // 3 = 1..3 // 4 = 1..4 - tet_piecemins_x = floor(3.0 - sz.x * 0.5); - tet_piecemaxs_x = floor(2.0 + sz.x * 0.5); - if(sz_y == 1) + tet_piecemins.x = floor(3.0 - sz.x * 0.5); + tet_piecemaxs.x = floor(2.0 + sz.x * 0.5); + if(sz.y == 1) { // special case for "I" - tet_piecemins_y = tet_piecemaxs_y = 2; + tet_piecemins.y = tet_piecemaxs.y = 2; } else { - tet_piecemins_y = 1; - tet_piecemaxs_y = sz.y; + tet_piecemins.y = 1; + tet_piecemaxs.y = sz.y; } //printf("ce%v sz%v mi%v ma%v\n", ce, sz, tet_piecemins, tet_piecemaxs); if (rot == 1) // 90 degrees { t = tet_piecemins.y; - tet_piecemins_y = -tet_piecemins.x + ce.y + ce.x; - tet_piecemins_x = t - ce.y + ce.x; + tet_piecemins.y = -tet_piecemins.x + ce.y + ce.x; + tet_piecemins.x = t - ce.y + ce.x; t = tet_piecemaxs.y; - tet_piecemaxs_y = -tet_piecemaxs.x + ce.y + ce.x; - tet_piecemaxs_x = t - ce.y + ce.x; + tet_piecemaxs.y = -tet_piecemaxs.x + ce.y + ce.x; + tet_piecemaxs.x = t - ce.y + ce.x; // swap mins_y, maxs_y t = tet_piecemins.y; - tet_piecemins_y = tet_piecemaxs.y; - tet_piecemaxs_y = t; + tet_piecemins.y = tet_piecemaxs.y; + tet_piecemaxs.y = t; // TODO OPTIMIZE } else if (rot == 2)//180 @@ -286,15 +293,15 @@ void PieceMinsMaxs(float rot, float pc) else if (rot == 3) // 270 { t = tet_piecemins.y; - tet_piecemins_y = tet_piecemins.x - ce.x + ce.y; - tet_piecemins_x = -t + ce.x + ce.y; + tet_piecemins.y = tet_piecemins.x - ce.x + ce.y; + tet_piecemins.x = -t + ce.x + ce.y; t = tet_piecemaxs.y; - tet_piecemaxs_y = tet_piecemaxs.x - ce.x + ce.y; - tet_piecemaxs_x = -t + ce.x + ce.y; + tet_piecemaxs.y = tet_piecemaxs.x - ce.x + ce.y; + tet_piecemaxs.x = -t + ce.x + ce.y; // swap mins_x, maxs_x t = tet_piecemins.x; - tet_piecemins_x = tet_piecemaxs.x; - tet_piecemaxs_x = t; + tet_piecemins.x = tet_piecemaxs.x; + tet_piecemaxs.x = t; // TODO OPTIMIZE } #ifdef VERIFY @@ -312,10 +319,10 @@ void PieceMinsMaxs(float rot, float pc) for(j = 1; j <= 4; ++j) if(PieceMetric(i, j, rot, pc)) { - realmins_x = min(realmins.x, i); - realmins_y = min(realmins.y, j); - realmaxs_x = max(realmaxs.x, i); - realmaxs_y = max(realmaxs.y, j); + realmins.x = min(realmins.x, i); + realmins.y = min(realmins.y, j); + realmaxs.x = max(realmaxs.x, i); + realmaxs.y = max(realmaxs.y, j); } if(realmins != tet_piecemins || realmaxs != tet_piecemaxs) error(sprintf("incorrect mins/maxs: %v %v in %d rot %d mins %v maxs %v\n", realmins, realmaxs, rot, pc, tet_piecemins, tet_piecemaxs)); @@ -894,7 +901,7 @@ void CompletedLines() cleared = 0; y = TET_LINES; - for(0;;) + for (;;) { ln = GetLine(y); if(strstrofs(ln, "0", 0) < 0) @@ -1001,33 +1008,33 @@ void HandleGame(float keyss) nudge = 0; if (keyss & TETKEY_RIGHT) { - check_pos_x = check_pos.x + 1; + check_pos.x = check_pos.x + 1; tetsnd("tetmove"); } else if (keyss & TETKEY_LEFT) { - check_pos_x = check_pos.x - 1; + check_pos.x = check_pos.x - 1; tetsnd("tetmove"); } else if (keyss & TETKEY_ROTRIGHT) { - check_pos_z = check_pos.z + 1; + check_pos.z = check_pos.z + 1; piece_data = PieceShape(self.piece_type); nudge = 1; tetsnd("tetrot"); } else if (keyss & TETKEY_ROTLEFT) { - check_pos_z = check_pos.z - 1; + check_pos.z = check_pos.z - 1; piece_data = PieceShape(self.piece_type); nudge = 1; tetsnd("tetrot"); } // bounds check if (check_pos.z > 3) - check_pos_z = 0; + check_pos.z = 0; else if (check_pos.z < 0) - check_pos_z = 3; + check_pos.z = 3; // reality check if (CheckMetrics(self.piece_type, check_pos.x, check_pos.y, check_pos.z)) @@ -1063,12 +1070,12 @@ void HandleGame(float keyss) } else if (keyss & TETKEY_DOWN) { - check_pos_y = check_pos.y + 1; + check_pos.y = check_pos.y + 1; self.tet_autodown = time + 2 / (1 + Tetris_Level()); } else if (self.tet_autodown < time) { - check_pos_y = check_pos.y + 1; + check_pos.y = check_pos.y + 1; self.tet_autodown = time + 2 / (1 + Tetris_Level()); } if (CheckMetrics(self.piece_type, check_pos.x, check_pos.y, check_pos.z))