//------------------------------------------------------------------------------ // gosFX::Card__Specification::Card__Specification( Stuff::MemoryStream *stream, int gfx_version ): Singleton__Specification(gosFX::CardClassID, stream, gfx_version) { Check_Pointer(this); Verify(m_class == CardClassID); Verify(gos_GetCurrentHeap() == Heap); m_halfHeight.Load(stream, gfx_version); m_aspectRatio.Load(stream, gfx_version); // //------------------------------------------------------------------- // If we are reading an old version of the card cloud, ignore all the // animation on the UV channels //------------------------------------------------------------------- // if (gfx_version < 10) { m_index.m_ageCurve.SetCurve(0.0f); m_index.m_seedCurve.SetCurve(1.0f); m_index.m_seeded = false; SeededCurveOf<ComplexCurve, LinearCurve,Curve::e_ComplexLinearType> temp; temp.Load(stream, gfx_version); Stuff::Scalar v = temp.ComputeValue(0.0f, 0.0f); m_UOffset.SetCurve(v); temp.Load(stream, gfx_version); v = temp.ComputeValue(0.0f, 0.0f); m_VOffset.SetCurve(v); m_USize.Load(stream, gfx_version); m_VSize.Load(stream, gfx_version); m_animated = false; } // //------------------------------ // Otherwise, read in the curves //------------------------------ // else { m_index.Load(stream, gfx_version); m_UOffset.Load(stream, gfx_version); m_VOffset.Load(stream, gfx_version); m_USize.Load(stream, gfx_version); m_VSize.Load(stream, gfx_version); *stream >> m_animated; } SetWidth(); }
//------------------------------------------------------------------------------ // gosFX::CardCloud__Specification::CardCloud__Specification( std::iostream stream, uint32_t gfx_version) : SpinningCloud__Specification(gosFX::CardCloudClassID, stream, gfx_version) { // Check_Pointer(this); Check_Object(stream); _ASSERT(m_class == CardCloudClassID); // _ASSERT(gos_GetCurrentHeap() == Heap); m_halfHeight.Load(stream, gfx_version); m_aspectRatio.Load(stream, gfx_version); // //------------------------------------------------------------------- // If we are reading an old version of the card cloud, ignore all the // animation on the UV channels //------------------------------------------------------------------- // if (gfx_version < 10) { m_pIndex.m_ageCurve.SetCurve(0.0f); m_pIndex.m_seedCurve.SetCurve(1.0f); m_pIndex.m_seeded = false; SeededCurveOf<ComplexCurve, LinearCurve, Curve::e_ComplexLinearType> temp; temp.Load(stream, gfx_version); float v = temp.ComputeValue(0.0f, 0.0f); m_UOffset.SetCurve(v); temp.Load(stream, gfx_version); v = temp.ComputeValue(0.0f, 0.0f); m_VOffset.SetCurve(v); m_USize.Load(stream, gfx_version); m_VSize.Load(stream, gfx_version); m_animated = false; } // //------------------------------ // Otherwise, read in the curves //------------------------------ // else { m_pIndex.Load(stream, gfx_version); m_UOffset.Load(stream, gfx_version); m_VOffset.Load(stream, gfx_version); m_USize.Load(stream, gfx_version); m_VSize.Load(stream, gfx_version); *stream >> m_animated; } SetWidth(); m_totalParticleSize = gosFX::CardCloud::ParticleSize; m_particleClassSize = sizeof(gosFX::CardCloud::Particle); }