void GameplayState::Update(StateEngine* state, double dt) { characters[DAVE]->Update(dt); characters[MANDY]->Update(dt); if (!m_isThrowing) characters[NIGEL]->Update(dt); ScrollCranes(dt); CheckInterations(state); for (int i = 0; i <3; i++) { CheckObjects(i); CheckCollisions(i); } m_Cam->SetPosition( CIwSVec2(static_cast<int16>(-characters[m_CharacterIndex]->GetPosition().x + (screenWidth /2)), static_cast<int16>(-characters[m_CharacterIndex]->GetPosition().y + (screenHeight - characters[m_CharacterIndex]->GetHeight() - 32)))); if (s3eKeyboardGetState(s3eKeySpace) == 4) m_SpacePressed = false; if (s3ePointerGetState(S3E_POINTER_BUTTON_LEFTMOUSE) == 4) { m_MouseClicked = false; m_ClickLocation = CIwFVec2(0,0); m_TerminalSound->ResetCounter(); } }
void LifeFungus::Update(list<Object*>* staObjs,list<Object*>* dynObjs,Input* input, float TPF) { if(state==IS_ATE) return; switch(state) { case IS_IDLE: CheckObjects(staObjs); break; case IS_ACTIVING: if(y<container->y-TILE_SIZE-1) ChangeState(IS_MOVING); x+=vx*TPF; y+=vy*TPF+1/2*ay*TPF*TPF; break; case IS_MOVING: Move(TPF,staObjs,dynObjs); break; } ResetRect(); }
// -------------------------------------------------------------------------- // // Function // Name: BackupStoreCheck::Check() // Purpose: Perform the check on the given account. You need to // hold a lock on the account before calling this! // Created: 21/4/04 // // -------------------------------------------------------------------------- void BackupStoreCheck::Check() { if(mFixErrors) { std::string writeLockFilename; StoreStructure::MakeWriteLockFilename(mStoreRoot, mDiscSetNumber, writeLockFilename); ASSERT(FileExists(writeLockFilename)); } if(!mQuiet && mFixErrors) { BOX_INFO("Will fix errors encountered during checking."); } BackupStoreAccountDatabase::Entry account(mAccountID, mDiscSetNumber); mapNewRefs = BackupStoreRefCountDatabase::Create(account); // Phase 1, check objects if(!mQuiet) { BOX_INFO("Checking store account ID " << BOX_FORMAT_ACCOUNT(mAccountID) << "..."); BOX_INFO("Phase 1, check objects..."); } CheckObjects(); // Phase 2, check directories if(!mQuiet) { BOX_INFO("Phase 2, check directories..."); } CheckDirectories(); // Phase 3, check root if(!mQuiet) { BOX_INFO("Phase 3, check root..."); } CheckRoot(); // Phase 4, check unattached objects if(!mQuiet) { BOX_INFO("Phase 4, fix unattached objects..."); } CheckUnattachedObjects(); // Phase 5, fix bad info if(!mQuiet) { BOX_INFO("Phase 5, fix unrecovered inconsistencies..."); } FixDirsWithWrongContainerID(); FixDirsWithLostDirs(); // Phase 6, regenerate store info if(!mQuiet) { BOX_INFO("Phase 6, regenerate store info..."); } WriteNewStoreInfo(); try { std::auto_ptr<BackupStoreRefCountDatabase> apOldRefs = BackupStoreRefCountDatabase::Load(account, false); mNumberErrorsFound += mapNewRefs->ReportChangesTo(*apOldRefs); } catch(BoxException &e) { BOX_WARNING("Reference count database was missing or " "corrupted, cannot check it for errors."); mNumberErrorsFound++; } // force file to be saved and closed before releasing the lock below if(mFixErrors) { mapNewRefs->Commit(); } else { mapNewRefs->Discard(); } mapNewRefs.reset(); if(mNumberErrorsFound > 0) { BOX_WARNING("Finished checking store account ID " << BOX_FORMAT_ACCOUNT(mAccountID) << ": " << mNumberErrorsFound << " errors found"); if(!mFixErrors) { BOX_WARNING("No changes to the store account " "have been made."); } if(!mFixErrors && mNumberErrorsFound > 0) { BOX_WARNING("Run again with fix option to " "fix these errors"); } if(mFixErrors && mNumberErrorsFound > 0) { BOX_WARNING("You should now use bbackupquery " "on the client machine to examine the store."); if(mLostAndFoundDirectoryID != 0) { BOX_WARNING("A lost+found directory was " "created in the account root.\n" "This contains files and directories " "which could not be matched to " "existing directories.\n"\ "bbackupd will delete this directory " "in a few days time."); } } } else { BOX_NOTICE("Finished checking store account ID " << BOX_FORMAT_ACCOUNT(mAccountID) << ": " "no errors found"); } }