Ejemplo n.º 1
0
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 ;

}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
0
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;
}