bool inputOutput(int INwaited) { #ifdef DEBUG_STREAM printf("inputOutput - start"); #endif //INPUT //INPUT SDL_Event test_event; while (SDL_PollEvent(&test_event)) //GET INPUT { switch (test_event.type) //WHICH EVENT { case SDL_KEYDOWN: //KEYDOWN if (!paused) //IF NOT PAUSED { switch (test_event.key.keysym.sym) //WHICH KEY { #ifdef ARROW_KEYS //HARD DROP case SDLK_SPACE: #else case SDLK_KP8: #endif lockDelay=waitLock; drop=dropHard; break; #ifdef ARROW_KEYS //SOFT DROP case SDLK_DOWN: #else case SDLK_KP2: #endif if (lockDelay<waitLock) { //lockDelay=0; drop=dropSoft; } break; #ifdef ARROW_KEYS //HOLD PIECE case SDLK_c: #else case SDLK_KP0: #endif if (!usedHoldPiece) { usedHoldPiece=true; pieceCreate(HOLD); } break; #ifdef ARROW_KEYS //ROTATE LEFT case SDLK_z: #else case SDLK_KP3: case SDLK_KP7: #endif if (rotate(lft) && lockDelay<waitLock) { lockDelay=0; } break; #ifdef ARROW_KEYS //ROTATE RIGHT case SDLK_UP: case SDLK_x: #else case SDLK_KP1: case SDLK_KP5: case SDLK_KP9: #endif if (rotate(rht) && lockDelay<waitLock) { lockDelay=0; } break; #ifdef ARROW_KEYS //MOVE LEFT case SDLK_LEFT: #else case SDLK_KP4: #endif if (move(lft,tetUD) && lockDelay<waitLock) { //lockDelay=0; tetLR--; } break; #ifdef ARROW_KEYS //MOVE RIGHT case SDLK_RIGHT: #else case SDLK_KP6: #endif if (move(rht,tetUD) && lockDelay<waitLock) { //lockDelay=0; tetLR++; } break; } } //IF NOT PAUSED switch (test_event.key.keysym.sym) //WHICH KEY { case SDLK_p: paused = !paused; break; case SDLK_ESCAPE: exit(0); break; } //WHICH KEY break; //IF KEY DOWN case SDL_KEYUP: switch (test_event.key.keysym.sym) { #ifdef ARROW_KEYS //SOFT DROP END case SDLK_DOWN: #else case SDLK_KP2: #endif drop=0; break; } break; case SDL_QUIT: //IF EXIT exit(0); break; //IF EXIT } //WHICH EVENT } //GET INPUT //OUTPUT //OUTPUT char temppiecemoving=true; //return this if (!paused) //Gravity and Drop { if (drop==dropHard) //HARD DROP { char tempLoop=true; while (tempLoop) { if (move(dwn,tetUD)) { tetUD++; score+=2; } else { tempLoop=false; temppiecemoving=false; } } drop=0; } if (INwaited==0 || drop==dropSoft) //SOFT DROP or GRAVITY { if (move(dwn,tetUD)) { if (drop==dropSoft) score++; tetUD++; lockDelay=0; } else { if (drop!=dropSoft) lockDelay++; } if (lockDelay>=waitLock) { temppiecemoving=false; lockDelay=0; } //drop=0; } prevWaited=INwaited; /*if (score>readHigh(accesshigh)) { writeHigh(accesshigh,score); highMade=true; }*/ } #ifdef DEBUG_STREAM printf(" - moving:%s - end\n",temppiecemoving?"yes":"no"); #endif return temppiecemoving; //THIS LINE WAS ADDED LATER }
void debug(int INmode) { ClearScreen(); SDL_Flip(screen); selectGame(1); gameResetVars(); if (INmode==2) //ClearFullRows() { for (int i=0; i<AREA_HEIGHT+2; i++) { for (int j=0; j<AREA_WIDTH; j++) { area[j][i] = (rand()%15)-EMPTY_AREA; if (area[j][i]>EMPTY_AREA) area[j][i]=area[j][i]%3+1; } } drawBoard(); SDL_Delay(5000); clearFullRows(); SDL_Delay(250); drawBoard(); SDL_Delay(5000); } else if (INmode==3) //drawTetromino() { int tets,angl; for (tets=0; tets<7; tets++) { for (angl=0; angl<4; angl++) { ClearScreen(); drawTetromino(tets,(angl+2)%4,0,0,REAL_TET); SDL_Flip(screen); SDL_Delay(600); } } } else if (INmode==4) //peiceSetinto() { pieceCreate(COMING); tetUD=10; drawTetromino(currentPiece,currentRotate,tetLR,tetUD,REAL_TET); SDL_Delay(3000); drawBoard(); SDL_Delay(3000); pieceSetInto(currentPiece); drawBoard(); SDL_Delay(3000); debugInfo(0); } else if (INmode==5) //peiceCreate() { for (int i=0; i<10; i++) { pieceCreate(COMING); ClearScreen(); printf("c%d n%d n%d n%d\n",currentPiece,nextPiece[0],nextPiece[1],nextPiece[2]); SDL_Delay(100); } } else if (INmode==6) //gravity { pieceCreate(COMING); while(tetUD<AREA_HEIGHT) //off by 2? { ClearScreen(); //drawBoard(true); drawTetromino(currentPiece,currentRotate,tetLR,tetUD,REAL_TET); printf("y=%d",tetUD); SDL_Delay(1000); tetUD++; } } }