int CMqlx::GenLxQuotes(CPtrArray &pArrayQuote) { INT_PTR nCount ; nCount = m_pCvt.GetCount ( ) ; for ( int i=0; i<nCount; i++ ) { CPtrArray pAQ2; if (0==i){ GetQuotes((CvtDate *)m_pCvt[i], pAQ2 ); pArrayQuote.Append( pAQ2 ); m_AdjustValue = 0.0 ; m_AdjustValue1 = 0.0 ; GetLowestClose(pArrayQuote); } else { GetAdjustValue((CvtDate *)m_pCvt[i-1],(CvtDate *)m_pCvt[i]); GetQuotes((CvtDate *)m_pCvt[i], pAQ2 ); AdjustQuotes(pAQ2); pArrayQuote.Append( pAQ2 ); } } EndAdjustQuotes(pArrayQuote); return 0 ; }
void CWorld::UpdateSpawns() { int i; CSpawnObject* obj; CPtrArray<CObject> spawnObjects; for (i = 0; i < m_objects[OT_CTRL].GetSize(); i++) { obj = (CSpawnObject*)m_objects[OT_CTRL].GetAt(i); if (obj->m_world && obj->m_isReal && obj->m_isRespawn) spawnObjects.Append(obj); } for (i = 0; i < m_objects[OT_ITEM].GetSize(); i++) { obj = (CSpawnObject*)m_objects[OT_ITEM].GetAt(i); if (obj->m_world && obj->m_isReal && obj->m_isRespawn) spawnObjects.Append(obj); } for (i = 0; i < m_objects[OT_MOVER].GetSize(); i++) { obj = (CSpawnObject*)m_objects[OT_MOVER].GetAt(i); if (obj->m_world && obj->m_isReal && obj->m_isRespawn) spawnObjects.Append(obj); } for (i = 0; i < spawnObjects.GetSize(); i++) SpawnObject(spawnObjects[i], g_global3D.spawnAllMovers); }
bool CSfxModel::_nextFrame() { bool ret = false; m_currentFrame += m_perSlerp; const ushort frame = (ushort)m_currentFrame; ushort startFrame, endFrame; CPtrArray<Particle>* particles; Particle* particle; int j; for (int i = 0; i < m_particles.GetSize(); i++) { if (m_particles[i]) { const CSfxPartParticle* part = (CSfxPartParticle*)m_sfx->m_parts[i]; particles = m_particles[i]; for (j = 0; j < particles->GetSize(); j++) { particle = particles->GetAt(j); particle->pos += particle->speed; particle->speed += part->m_particleAccel; if (!part->m_repeatScal) particle->scale += part->m_scaleSpeed; particle->frame++; if (particle->frame >= part->m_particleFrameDisappear) { Delete(particle); particles->RemoveAt(j); j--; } } startFrame = 0; endFrame = 0; if (part->GetFirstKey()) { startFrame = part->GetFirstKey()->frame; endFrame = part->GetLastKey()->frame; } if (frame >= startFrame && frame <= endFrame - part->m_particleFrameDisappear) { if ((part->m_particleCreate == 0 && frame == startFrame) || (part->m_particleCreate != 0 && (frame - startFrame) % part->m_particleCreate == 0) ) { const float rand1 = (rand() % 50000) / 50000.0f; const float rand2 = (rand() % 50000) / 50000.0f; const float rand3 = (rand() % 50000) / 50000.0f; for (j = 0; j < part->m_particleCreateNum; j++) { particle = new Particle(); particle->frame = 0; const float angle = ((rand() % 50000) / 50000.0f) * 360.0f; particle->pos = D3DXVECTOR3( sin(angle) * part->m_particleStartPosVar, rand1 * part->m_particleStartPosVarY, cos(angle) * part->m_particleStartPosVar ); const float factor = part->m_particleXZLow + rand2 * (part->m_particleXZHigh - part->m_particleXZLow); particle->speed = D3DXVECTOR3( sin(angle) * factor, part->m_particleYLow + rand2 * (part->m_particleYHigh - part->m_particleYLow), cos(angle) * factor ); particle->scaleStart = particle->scale = part->m_scale; particle->rotation = D3DXVECTOR3(part->m_rotationLow.x + rand1 * (part->m_rotationHigh.x - part->m_rotationLow.x), part->m_rotationLow.y + rand3 * (part->m_rotationHigh.y - part->m_rotationLow.y), part->m_rotationLow.z + rand2 * (part->m_rotationHigh.z - part->m_rotationLow.z)); particle->swScal = false; particle->scaleEnd = part->m_scaleEnd; particle->scaleSpeed = D3DXVECTOR3(part->m_scalSpeedXLow + rand3 * (part->m_scalSpeedXHigh - part->m_scalSpeedXLow), part->m_scalSpeedYLow + rand2 * (part->m_scalSpeedYHigh - part->m_scalSpeedYLow), part->m_scalSpeedZLow + rand1 * (part->m_scalSpeedZHigh - part->m_scalSpeedZLow)); particles->Append(particle); } } } if (particles->GetSize() > 0 || frame < startFrame) ret = true; #ifndef SFX_EDITOR if (part->m_repeat) { if (endFrame >= 0) { const float f = m_currentFrame / (float)endFrame; if (f >= 0.65f) m_currentFrame = (float)endFrame * 0.6f; } } #endif // SFX_EDITOR } else { if (m_sfx->m_parts[i]->GetNextKey(frame)) ret = true; } } return ret; }