bool PongHighScores::enterCharacter( unsigned char character ) { #ifndef USE_VKB return true; #endif if (!textInputEnabled) { pongApp->getEngine()->sendEvent( GF::VIRTUAL_KEYBOARD, 0); return false; } if (newScorePos<0) return false; // no new score requires a name. int curlength = strlen( scoreTags[ newScorePos ] ); if (curlength<SCORE_TAG_CHARACTERS-1) { if (character == 13 || character == 10) { textInputEnabled = false; pongApp->getEngine()->sendEvent( GF::VIRTUAL_KEYBOARD, 0); return false; } else if(character==8 || character==127 && curlength>0) // backspace or delete { scoreTags[newScorePos][ curlength-1 ] = 0; buildScreen(); } else // Enter new character into the string and rebuild the screen. { scoreTags[newScorePos][ curlength ] = character; scoreTags[newScorePos][ curlength+1 ] = 0; buildScreen(); } } }
PongHighScores::PongHighScores( PongApp *app, unsigned int new_score_entry ) { // initialize new entry pongApp = app; createDisplayGrid(); fade = 0; visible = true; angle = 0.0f; textInputEnabled = false; char fileOut[1024]; // Load the highscore data FILE *file = fopen(pongApp->getGameEngine()->adjustPath("configdata:qtepong.dat", fileOut, 1024), "rb"); //FILE *file = 0; if (file) { fread( scoreTags, sizeof(char),SCORE_TAG_CHARACTERS*NOF_HIGH_SCORES, file ); fread( scores, sizeof (unsigned int), NOF_HIGH_SCORES, file ); fclose(file); } else { for (int f=0; f<NOF_HIGH_SCORES; f++) { sprintf( scoreTags[f], "beatme%d", f+1 ); scores[f] = 20+f*f*300; }; }; orderScores(-1); // For debug purposes,.. override highscores //new_score_entry = scores[0]+100; if (new_score_entry>0 && new_score_entry>scores[0]) { scores[0] = new_score_entry; #ifndef USE_VKB app->getGameEngine()->queryTextInput("Enter Your Name", scoreTags[0], SCORE_TAG_CHARACTERS ); #else app->getEngine()->sendEvent( GF::VIRTUAL_KEYBOARD, 1); strcpy( scoreTags[0], ""); textInputEnabled = true; #endif // PREPROCESS QUERIED TEXT. for (int f=0; f<SCORE_TAG_CHARACTERS; f++) { // drop to low-case if (scoreTags[0][f]>='A' && scoreTags[0][f]<='Z') scoreTags[0][f] = scoreTags[0][f] - 'A' + 'a'; }; newScorePos = 0; } else newScorePos = -1; // DONT TRACK IT. newScorePos = orderScores(newScorePos); buildScreen(); }
void AmazonRoom::reloadRoom1() { if (_vm->_player->_roomNumber == 29 || _vm->_player->_roomNumber == 31 || _vm->_player->_roomNumber == 42 || _vm->_player->_roomNumber == 44) { Resource *spriteData = _vm->_files->loadFile("MAYA.LZ"); _game->_inactive._altSpritesPtr = new SpriteResource(_vm, spriteData); delete spriteData; _vm->_currentCharFlag = false; } _selectCommand = -1; _vm->_events->setNormalCursor(CURSOR_CROSSHAIRS); _vm->_mouseMode = 0; _vm->_boxSelect = true; _vm->_player->_playerOff = false; _vm->_screen->fadeOut(); _vm->_screen->clearScreen(); roomSet(); if (_roomFlag != 1 && (_vm->_player->_roomNumber != 61 || !_antOutFlag)) { _vm->_player->load(); _vm->_player->calcManScale(); } if (_vm->_player->_roomNumber != 20 && _vm->_player->_roomNumber != 24 && _vm->_player->_roomNumber != 33 && _vm->_player->_roomNumber != 45) { roomMenu(); } _vm->_screen->setBufferScan(); setupRoom(); setWallCodes(); buildScreen(); if (!_vm->_screen->_vesaMode) { _vm->copyBF2Vid(); } else if (_vm->_player->_roomNumber != 20 && _vm->_player->_roomNumber != 24 && _vm->_player->_roomNumber != 33) { _vm->_screen->setPalette(); _vm->copyBF2Vid(); } // Stop player moving _vm->_player->_playerMove = false; _vm->_player->_frame = 0; // Clear any dirty rects from the old scene _vm->_oldRects.clear(); _vm->_newRects.clear(); }
/** Runs the dialog. */ int CADialog::run() { if( CA_APP->debug ) std::cout << "CADialog::run() begin" << std::endl; //CL_Input::chain_button_release.push_back( this ); //slot = CL_Input::sig_button_release.connect(thCreateSlot(this, &CADialog::on_button_release)); //slot = CL_Input::sig_button_press.connect(this, &CADialog::on_button_release); slot = CL_Keyboard::sig_key_up().connect(this, &CADialog::on_key_released); //if( !modal ) CA_APP->fadeScreen( true, this ); done = false; cancel = false; // Dialog loop: // while( !done ) { CA_APP->measureFrameTime( true ); if( modal && screen ) screen->buildScreen(); buildScreen(); // Play background sound: CASoundEffect::playBackgroundMelody(); CL_Display::flip(); // Copy framebufer to screen CL_System::keep_alive(); // VERY VITAL for the system! CA_APP->measureFrameTime( false ); } //if( !modal ) CA_APP->fadeScreen( false, this ); CA_APP->waitForSilence(); //CL_Input::chain_button_release.remove( this ); if( CA_APP->debug ) std::cout << "CADialog::run() end" << std::endl; CL_Keyboard::sig_key_up().disconnect(slot); return (int)(!cancel); }
/** Runs the screen. */ int CAChampionshipScreen::run() { //CL_Input::chain_button_release.push_back( this ); //slot = CL_Input::sig_button_release.connect(thCreateSlot(this, &CAChampionshipScreen::on_button_release)); //slot = CL_Input::sig_button_press.connect(this, &CAChampionshipScreen::on_button_release); slot = CA_APP->keyboard.sig_key_up().connect(this, &CAChampionshipScreen::on_key_released); CA_APP->fadeScreen( true, this ); done = false; cancel = false; // Screen loop: // while( !done ) { CA_APP->measureFrameTime( true ); buildScreen(); // Play background sound: CASoundEffect::playBackgroundMelody(); CA_APP->display_window->flip(); // Copy framebufer to screen CL_KeepAlive::process(); // VERY VITAL for the system! CA_APP->measureFrameTime( false ); } CA_APP->fadeScreen( false, this ); CA_APP->waitForSilence(); //CL_Input::chain_button_release.remove( this ); if (m_player[0] == m_humanPlayer) return 0; else return 1; }
/** Runs the screen. */ int CASignUpScreen::run() { slot = CA_APP->keyboard.sig_key_up().connect(this, &CASignUpScreen::on_key_released); CA_APP->fadeScreen( true, this ); done = false; cancel = false; // Screen loop: // while( !done ) { CA_APP->measureFrameTime( true ); buildScreen(); // Play background sound: CASoundEffect::playBackgroundMelody(); CA_APP->display_window->flip(); // Copy framebuffer to screen CL_KeepAlive::process(); // VERY VITAL for the system! CA_APP->measureFrameTime( false ); } CA_APP->fadeScreen( false, this ); CA_APP->waitForSilence(); //CL_Input::chain_button_release.remove( this ); std::vector<std::string>::const_iterator it = std::find(CA_APP->trackList.begin(), CA_APP->trackList.end(), m_trackList[cursor]); //return (cancel ? -1 : cursor+offset); return (cancel ? -1 : it-CA_APP->trackList.begin()); }