void GraphicsEngine::Render() { while (DoCycle() && PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } if (DoCycle()) { // Clear the backbuffer to a black color m_pDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 0 ), 1.0f, 0 ); m_pDevice->Clear( 0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0 ); // Begin the scene if( SUCCEEDED( m_pDevice->BeginScene() ) ) { m_scene.Update(); m_scene.Render(); // End the scene m_pDevice->EndScene(); } // Present the backbuffer contents to the display m_pDevice->Present( NULL, NULL, NULL, NULL ); } }
void MissileLauncher::StopCycle(bool abort) { // Do one last cycle: DoCycle(); Notify_OnGodmaShipEffect shipEff; shipEff.itemID = m_Item->itemID(); shipEff.effectID = effectMissileLaunching; shipEff.when = Win32TimeNow(); shipEff.start = 0; shipEff.active = 0; PyList* env = new PyList; env->AddItem(new PyInt(shipEff.itemID)); env->AddItem(new PyInt(m_Ship->ownerID())); env->AddItem(new PyInt(m_Ship->itemID())); env->AddItem(new PyInt(m_targetID)); env->AddItem(new PyNone); env->AddItem(new PyNone); env->AddItem(new PyInt(shipEff.effectID)); shipEff.environment = env; shipEff.startTime = shipEff.when; shipEff.duration = 1.0; //m_ActiveModuleProc->GetRemainingCycleTimeMS(); // At least, I'm assuming this is the remaining time left in the cycle shipEff.repeat = new PyInt(0); shipEff.randomSeed = new PyNone; shipEff.error = new PyNone; PyList* events = new PyList; events->AddItem(shipEff.Encode()); Notify_OnMultiEvent multi; multi.events = events; PyTuple* tmp = multi.Encode(); m_Ship->GetOperator()->SendDogmaNotification("OnMultiEvent", "clientID", &tmp); // Create Special Effect: m_Ship->GetOperator()->GetDestiny()->SendSpecialEffect ( m_Ship, m_Item->itemID(), m_Item->typeID(), m_targetID, m_chargeRef->itemID(), "effects.MissileDeployment", 1, 0, 0, 1.0, 0 ); m_ActiveModuleProc->DeactivateCycle(); }
double sdgEngine::DoOptimize() { float dist_pace = sdg_params::SDG_DIST_TEMP; float vol_pace = sdg_params::SDG_VOL_TEMP; if (_nDist == 0) { return 0; } unsigned int i, j; double score; double *d = new double[_distances.size()]; double *v = new double[_volumes.size()]; for (i = 0; i < _distances.size(); ++i) { d[i] = _distances[i].Measure(); } for (i = 0; i < _volumes.size(); ++i) { v[i] = _volumes[i].Measure(); } for (int i = 0; i < sdg_params::SDG_NCYCLES; ++i) { DoCycle(dist_pace, vol_pace); score = 0; for (j = 0; j < _distances.size(); ++j) { d[j] = _distances[j].Measure(); score += _distances[j].Score(); } for (j = 0; j < _volumes.size(); ++j) { v[j] = _volumes[j].Measure(); } dist_pace -= sdg_params::SDG_ANNEAL_DIST; vol_pace -= sdg_params::SDG_ANNEAL_VOL; } delete[] d; delete[] v; return score; }