From e95563e10d8c906cf4a09a1e2ff773f345a17c44 Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Wed, 13 Mar 2013 21:08:17 -0500
Subject: MAINT-2410 Remove unused particle packing code and fix integration
 test to work without a packer.

---
 indra/llmessage/llpartdata.cpp            |  45 ------
 indra/llmessage/llpartdata.h              |   5 +-
 indra/llmessage/tests/llpartdata_test.cpp | 256 +++++++++++-------------------
 3 files changed, 98 insertions(+), 208 deletions(-)

(limited to 'indra')

diff --git a/indra/llmessage/llpartdata.cpp b/indra/llmessage/llpartdata.cpp
index 0f33a94295..41a0310ce0 100644
--- a/indra/llmessage/llpartdata.cpp
+++ b/indra/llmessage/llpartdata.cpp
@@ -66,40 +66,6 @@ bool LLPartData::hasBlendFunc() const
 	return mBlendFuncSource != LLPartData::LL_PART_BF_SOURCE_ALPHA || mBlendFuncDest != LLPartData::LL_PART_BF_ONE_MINUS_SOURCE_ALPHA;
 }
 
-LLSD LLPartData::asLLSD() const
-{
-	LLSD sd = LLSD();
-	sd["pdflags"] = ll_sd_from_U32(mFlags);
-	sd["pdmaxage"] = mMaxAge;
-	sd["pdstartcolor"] = ll_sd_from_color4(mStartColor);
-	sd["pdendcolor"] = ll_sd_from_color4(mEndColor);
-	sd["pdstartscale"] = ll_sd_from_vector2(mStartScale);
-	sd["pdendscale"] = ll_sd_from_vector2(mEndScale);
-	sd["pdstartglow"] =	mStartGlow;
-	sd["pdendglow"] = mEndGlow;
-	sd["pdblendsource"] = (S32)mBlendFuncSource;
-	sd["pdblenddest"] = (S32)mBlendFuncDest;
-
-	return sd;
-}
-
-bool LLPartData::fromLLSD(LLSD& sd)
-{
-	mFlags = ll_U32_from_sd(sd["pdflags"]);
-	mMaxAge = (F32)sd["pdmaxage"].asReal();
-	mStartColor = ll_color4_from_sd(sd["pdstartcolor"]);
-	mEndColor = ll_color4_from_sd(sd["pdendcolor"]);
-	mStartScale = ll_vector2_from_sd(sd["pdstartscale"]);
-	mEndScale = ll_vector2_from_sd(sd["pdendscale"]);
-
-	mStartGlow = sd.has("pdstartglow") ? sd["pdstartglow"].asReal() : 0.f;
-	mEndGlow = sd.has("pdendglow") ? sd["pdendglow"].asReal() : 0.f;
-	mBlendFuncSource = sd.has("pdblendsource") ? (U8)sd["pdblendsource"].asInteger() : LL_PART_BF_SOURCE_ALPHA;
-	mBlendFuncDest = sd.has("pdblenddest") ? (U8)sd["pdblenddest"].asInteger() : LL_PART_BF_ONE_MINUS_SOURCE_ALPHA;
-
-	return true;
-}
-
 S32 LLPartData::getSize() const
 {
 	S32 size = PS_LEGACY_PART_DATA_BLOCK_SIZE;
@@ -126,17 +92,6 @@ BOOL LLPartData::unpackLegacy(LLDataPacker &dp)
 	dp.unpackFixed(mEndScale.mV[0], "pdendscalex", FALSE, 3, 5);
 	dp.unpackFixed(mEndScale.mV[1], "pdendscaley", FALSE, 3, 5);
 
-	/*if (dp.hasNext())
-	{
-		U8 tmp_glow = 0;
-		dp.unpackU8(tmp_glow,"pdstartglow");
-		mStartGlow = tmp_glow / 255.f;
-		dp.unpackU8(tmp_glow,"pdendglow");
-		mEndGlow = tmp_glow / 255.f;
-		dp.unpackU8(mBlendFuncSource,"pdblendsource");
-		dp.unpackU8(mBlendFuncDest,"pdblenddest");
-	}*/
-	
 	mStartGlow = 0.f;
 	mEndGlow = 0.f;
 	mBlendFuncSource = LLPartData::LL_PART_BF_SOURCE_ALPHA;
diff --git a/indra/llmessage/llpartdata.h b/indra/llmessage/llpartdata.h
index 80a52b79dd..ed5c1a6ac7 100644
--- a/indra/llmessage/llpartdata.h
+++ b/indra/llmessage/llpartdata.h
@@ -92,10 +92,7 @@ public:
 	BOOL unpack(LLDataPacker &dp);
 
 	BOOL pack(LLDataPacker &dp);
-	LLSD asLLSD() const;
-	operator LLSD() const {return asLLSD(); }
-	bool fromLLSD(LLSD& sd);
-
+	
 	bool hasGlow() const;
 	bool hasBlendFunc() const;
 
diff --git a/indra/llmessage/tests/llpartdata_test.cpp b/indra/llmessage/tests/llpartdata_test.cpp
index 9123bd06c7..de81e0bbb2 100644
--- a/indra/llmessage/tests/llpartdata_test.cpp
+++ b/indra/llmessage/tests/llpartdata_test.cpp
@@ -38,10 +38,34 @@
 
 namespace tut
 {
+
+	//bunch of sniffed data that *should* be a valid particle system
+	static U8 msg[] = { 
+		0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 
+		0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x80, 0x00, 0x80, 
+		0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x5e, 0x12, 0x0b, 0xa1, 0x58, 0x05, 0xdc, 0x57, 0x66, 
+		0xb7, 0xf5, 0xac, 0x4b, 0xd1, 0x8f, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x05, 0x02, 0x00, 0x00, 0x0a, 0xff, 
+		0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x7e, 0xc6, 0x81, 0xdc, 0x7e, 0xc6, 0x81, 0xdc, 0x77, 0xcf, 0xef, 0xd4, 0xce, 0x64, 0x1a, 0x7e, 
+		0x26, 0x87, 0x55, 0x7f, 0xdd, 0x65, 0x22, 0x7f, 0xdd, 0x65, 0x22, 0x7f, 0x77, 0xcf, 0x98, 0xa3, 0xab, 
+		0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf2, 
+		0xf1, 0x65, 0x32, 0x1b, 0xef, 0x18, 0x70, 0x66, 0xba, 0x30, 0xa0, 0x11, 0xaa, 0x2f, 0xb0, 0xab, 0xd0, 
+		0x30, 0x7d, 0xbd, 0x01, 0x00, 0xf8, 0x0d, 0xb8, 0x30, 0x01, 0x00, 0x00, 0x00, 0xce, 0xc6, 0x81, 0xdc, 
+		0xce, 0xc6, 0x81, 0xdc, 0xc7, 0xcf, 0xef, 0xd4, 0x75, 0x65, 0x1a, 0x7f, 0x62, 0x6f, 0x55, 0x7f, 0x6d, 
+		0x65, 0x22, 0x7f, 0x6d, 0x65, 0x22, 0x7f, 0xc7, 0xcf, 0x98, 0xa3, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 
+		0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0xf2, 0xf1, 0x62, 0x12, 0x1b, 0xef, 
+		0x18, 0x7e, 0xbd, 0x01, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+		0x00, 0x00, 0x00, 0x00, 0x7c, 0xac, 0x28, 0x03, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 
+		0xe0, 0xb9, 0x30, 0x03, 0xe1, 0xb9, 0x30, 0xbb, 0x00, 0x00, 0x00, 0x48, 0xe0, 0xb9, 0x30, 0x36, 0xd9, 
+		0x81, 0xdc, 0x36, 0xd9, 0x81, 0xdc, 0x3f, 0xd0, 0xef, 0xd4, 0xa5, 0x7a, 0x72, 0x7f, 0x26, 0x30, 0x55, 
+		0x7f, 0x95, 0x7a, 0x22, 0x7f, 0x95, 0x7a, 0x22, 0x7f, 0x3f, 0xd0, 0x98, 0xa3, 0xab, 0xab, 0xab, 0xab, 
+		0xab, 0xab, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00 };
 	
 	struct partdata_test
 	{
 	};
+
 	typedef test_group<partdata_test> partdata_test_t;
 	typedef partdata_test_t::object partdata_test_object_t;
 	tut::partdata_test_t tut_partdata_test("LLPartData");
@@ -49,168 +73,82 @@ namespace tut
 	template<> template<>
 	void partdata_test_object_t::test<1>()
 	{
-		LLPartData llpdata,llpdata1;
-		U8 pkbuf[128];
-
-		llpdata.setFlags(LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK |
-		LLPartData::LL_PART_BOUNCE_MASK | LLPartData::LL_PART_WIND_MASK | LLPartData::LL_PART_FOLLOW_SRC_MASK |
-		LLPartData::LL_PART_FOLLOW_VELOCITY_MASK | LLPartData::LL_PART_TARGET_POS_MASK | LLPartData::LL_PART_TARGET_LINEAR_MASK |
-		LLPartData::LL_PART_EMISSIVE_MASK | LLPartData::LL_PART_BEAM_MASK | LLPartData::LL_PART_DEAD_MASK);
-
-		llpdata.setMaxAge(29.3f);
-
-		LLVector3 llvec1(1.0f, .5f, .25f);
-		llpdata.setStartColor(llvec1);
-		llpdata.setStartAlpha(.7f);
-
-		LLVector3 llvec2(.2f, .3f, 1.0f);
-		llpdata.setEndColor(llvec2);
-		llpdata.setEndAlpha(1.0f);
+		LLPartSysData llpsysdata;
+		LLDataPackerBinaryBuffer dp1(msg, sizeof(msg));
 
-		llpdata.setStartScale(3.23f, 4.0f);
-		llpdata.setEndScale(2.4678f, 1.0f);
+		ensure("LLPartSysData::unpack failed.", llpsysdata.unpack(dp1));
 
-		LLDataPackerBinaryBuffer dp((U8*)pkbuf, 128);
-		llpdata.pack(dp);
 		
-		S32 cur_size = dp.getCurrentSize();
-		
-		LLDataPackerBinaryBuffer dp1((U8*)pkbuf, cur_size);
-		llpdata1.unpack(dp1);
-
-		ensure("1.mFlags values are different after unpacking", llpdata1.mFlags == llpdata.mFlags);
-		ensure_approximately_equals("2.mMaxAge values are different after unpacking", llpdata1.mMaxAge, llpdata.mMaxAge, 8);
-
-		ensure_approximately_equals("3.mStartColor[0] values are different after unpacking", llpdata1.mStartColor.mV[0], llpdata.mStartColor.mV[0], 8);
-		ensure_approximately_equals("4.mStartColor[1] values are different after unpacking", llpdata1.mStartColor.mV[1], llpdata.mStartColor.mV[1], 8);
-		ensure_approximately_equals("5.mStartColor[2] values are different after unpacking", llpdata1.mStartColor.mV[2], llpdata.mStartColor.mV[2], 8);
-		ensure_approximately_equals("6.mStartColor[3] values are different after unpacking", llpdata1.mStartColor.mV[3], llpdata.mStartColor.mV[3], 8);
-
-		ensure_approximately_equals("7.mEndColor[0] values are different after unpacking", llpdata1.mEndColor.mV[0], llpdata.mEndColor.mV[0], 8);
-		ensure_approximately_equals("8.mEndColor[1] values are different after unpacking", llpdata1.mEndColor.mV[1], llpdata.mEndColor.mV[1], 8);
-		ensure_approximately_equals("9.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[2], llpdata.mEndColor.mV[2], 8);
-		ensure_approximately_equals("10.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[3], llpdata.mEndColor.mV[3], 8);
-
-		ensure_approximately_equals("11.mStartScale[0] values are different after unpacking", llpdata1.mStartScale.mV[0], llpdata.mStartScale.mV[0], 5);
-		ensure_approximately_equals("12.mStartScale[1] values are different after unpacking", llpdata1.mStartScale.mV[1], llpdata.mStartScale.mV[1], 5);
-
-		ensure_approximately_equals("13.mEndScale[0] values are different after unpacking", llpdata1.mEndScale.mV[0], llpdata.mEndScale.mV[0], 5);
-		ensure_approximately_equals("14.mEndScale[1] values are different after unpacking", llpdata1.mEndScale.mV[1], llpdata.mEndScale.mV[1], 5);
-	}
-
-
-	template<> template<>
-	void partdata_test_object_t::test<2>()
-	{
-		LLPartData llpdata,llpdata1;
-
-		llpdata.setFlags(LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK |
-		LLPartData::LL_PART_BOUNCE_MASK | LLPartData::LL_PART_WIND_MASK | LLPartData::LL_PART_FOLLOW_SRC_MASK |
-		LLPartData::LL_PART_FOLLOW_VELOCITY_MASK | LLPartData::LL_PART_TARGET_POS_MASK | LLPartData::LL_PART_TARGET_LINEAR_MASK |
-		LLPartData::LL_PART_EMISSIVE_MASK | LLPartData::LL_PART_BEAM_MASK | LLPartData::LL_PART_DEAD_MASK);
-		
-		llpdata.setMaxAge(29.3f);
-
-		LLVector3 llvec1(1.0f, .5f, .25f);
-		llpdata.setStartColor(llvec1);
-		llpdata.setStartAlpha(.7f);
-
-		LLVector3 llvec2(.2f, .3f, 1.0f);
-		llpdata.setEndColor(llvec2);
-		llpdata.setEndAlpha(1.0f);
-
-		llpdata.setStartScale(3.23f, 4.0f);
-		llpdata.setEndScale(2.4678f, 1.0f);
-
-		LLSD llsd = llpdata.asLLSD();
-
-		llpdata1.fromLLSD(llsd);
-
-		ensure("1.mFlags values are different after unpacking", llpdata1.mFlags == llpdata.mFlags);
-		ensure_approximately_equals("2.mMaxAge values are different after unpacking", llpdata1.mMaxAge, llpdata.mMaxAge, 8);
-
-		ensure_approximately_equals("3.mStartColor[0] values are different after unpacking", llpdata1.mStartColor.mV[0], llpdata.mStartColor.mV[0], 8);
-		ensure_approximately_equals("4.mStartColor[1] values are different after unpacking", llpdata1.mStartColor.mV[1], llpdata.mStartColor.mV[1], 8);
-		ensure_approximately_equals("5.mStartColor[2] values are different after unpacking", llpdata1.mStartColor.mV[2], llpdata.mStartColor.mV[2], 8);
-		ensure_approximately_equals("6.mStartColor[3] values are different after unpacking", llpdata1.mStartColor.mV[3], llpdata.mStartColor.mV[3], 8);
-
-		ensure_approximately_equals("7.mEndColor[0] values are different after unpacking", llpdata1.mEndColor.mV[0], llpdata.mEndColor.mV[0], 8);
-		ensure_approximately_equals("8.mEndColor[1] values are different after unpacking", llpdata1.mEndColor.mV[1], llpdata.mEndColor.mV[1], 8);
-		ensure_approximately_equals("9.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[2], llpdata.mEndColor.mV[2], 8);
-		ensure_approximately_equals("10.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[3], llpdata.mEndColor.mV[3], 8);
-
-		ensure_approximately_equals("11.mStartScale[0] values are different after unpacking", llpdata1.mStartScale.mV[0], llpdata.mStartScale.mV[0], 5);
-		ensure_approximately_equals("12.mStartScale[1] values are different after unpacking", llpdata1.mStartScale.mV[1], llpdata.mStartScale.mV[1], 5);
-
-		ensure_approximately_equals("13.mEndScale[0] values are different after unpacking", llpdata1.mEndScale.mV[0], llpdata.mEndScale.mV[0], 5);
-		ensure_approximately_equals("14.mEndScale[1] values are different after unpacking", llpdata1.mEndScale.mV[1], llpdata.mEndScale.mV[1], 5);
-	}
-
-
-//*********llpartsysdata***********
-
-	template<> template<>
-	void partdata_test_object_t::test<3>()
-	{
-		LLPartSysData llpsysdata, llpsysdata1;
-		U8 pkbuf[256];
-		llpsysdata.setBurstSpeedMin(33.33f);
-		ensure("1.mBurstSpeedMin coudnt be set", 33.33f == llpsysdata.mBurstSpeedMin);
-
-		llpsysdata.setBurstSpeedMax(44.44f); 
-		ensure("2.mBurstSpeedMax coudnt be set", 44.44f == llpsysdata.mBurstSpeedMax);
-
-		llpsysdata.setBurstRadius(45.55f);
-		ensure("3.mBurstRadius coudnt be set", 45.55f == llpsysdata.mBurstRadius);
-
-		LLVector3 llvec(44.44f, 111.11f, -40.4f);
-		llpsysdata.setPartAccel(llvec);
-
-		llpsysdata.mCRC = 0xFFFFFFFF;
-		llpsysdata.mFlags = 0x20;
-
-		llpsysdata.mPattern = LLPartSysData::LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY;
-
-		llpsysdata.mMaxAge = 99.99f;
-		llpsysdata.mStartAge = 18.5f;
-		llpsysdata.mInnerAngle = 4.234f;
-		llpsysdata.mOuterAngle = 7.123f;
-		llpsysdata.mBurstRate  = 245.53f;
-		llpsysdata.mBurstPartCount = 0xFF;
-		llpsysdata.mAngularVelocity = llvec;
-
-		llpsysdata.mPartImageID.generate();
-		llpsysdata.mTargetUUID.generate();
+		//mCRC	1	unsigned int
+		ensure("mCRC different after unpacking", llpsysdata.mCRC == (U32) 1);
+		//mFlags	0	unsigned int
+		ensure ("mFlags different after unpacking", llpsysdata.mFlags == (U32) 0);
+		//mPattern	1 ''	unsigned char
+		ensure ("mPattern different after unpacking", llpsysdata.mPattern == (U8) 1);
+		//mInnerAngle	0.00000000	float
+		ensure_approximately_equals("mInnerAngle different after unpacking", llpsysdata.mInnerAngle, 0.f, 8);
+		//mOuterAngle	0.00000000	float
+		ensure_approximately_equals("mOuterAngle different after unpacking", llpsysdata.mOuterAngle, 0.f, 8);
+		//mAngularVelocity	0,0,0
+		ensure_approximately_equals("mAngularVelocity.mV[0] different after unpacking", llpsysdata.mAngularVelocity.mV[0], 0.f, 8);
+		ensure_approximately_equals("mAngularVelocity.mV[0] different after unpacking", llpsysdata.mAngularVelocity.mV[1], 0.f, 8);
+		ensure_approximately_equals("mAngularVelocity.mV[0] different after unpacking", llpsysdata.mAngularVelocity.mV[2], 0.f, 8);
+		//mBurstRate	0.097656250	float
+		ensure_approximately_equals("mBurstRate different after unpacking", llpsysdata.mBurstRate, 0.097656250f, 8);
+		//mBurstPartCount	1 ''	unsigned char
+		ensure("mBurstPartCount different after unpacking", llpsysdata.mBurstPartCount == (U8) 1);
+		//mBurstRadius	0.00000000	float
+		ensure_approximately_equals("mBurstRadius different after unpacking", llpsysdata.mBurstRadius, 0.f, 8);
+		//mBurstSpeedMin	1.0000000	float
+		ensure_approximately_equals("mBurstSpeedMin different after unpacking", llpsysdata.mBurstSpeedMin, 1.f, 8);
+		//mBurstSpeedMax	1.0000000	float
+		ensure_approximately_equals("mBurstSpeedMax different after unpacking", llpsysdata.mBurstSpeedMax, 1.f, 8);
+		//mMaxAge	0.00000000	float
+		ensure_approximately_equals("mMaxAge different after unpacking", llpsysdata.mMaxAge, 0.f, 8);
+		//mStartAge	0.00000000	float
+		ensure_approximately_equals("mStartAge different after unpacking", llpsysdata.mStartAge, 0.f, 8);
+		//mPartAccel	<0,0,0>
+		ensure_approximately_equals("mPartAccel.mV[0] different after unpacking", llpsysdata.mPartAccel.mV[0], 0.f, 7);
+		ensure_approximately_equals("mPartAccel.mV[1] different after unpacking", llpsysdata.mPartAccel.mV[1], 0.f, 7);
+		ensure_approximately_equals("mPartAccel.mV[2] different after unpacking", llpsysdata.mPartAccel.mV[2], 0.f, 7);
+
+		//mPartData
+		LLPartData& data = llpsysdata.mPartData;
+
+		//mFlags	132354	unsigned int
+		ensure ("mPartData.mFlags different after unpacking", data.mFlags == (U32) 132354);
+		//mMaxAge	10.000000	float
+		ensure_approximately_equals("mPartData.mMaxAge different after unpacking", data.mMaxAge, 10.f, 8); 
+		//mStartColor	<1,1,1,1>
+		ensure_approximately_equals("mPartData.mStartColor.mV[0] different after unpacking", data.mStartColor.mV[0], 1.f, 8);
+		ensure_approximately_equals("mPartData.mStartColor.mV[1] different after unpacking", data.mStartColor.mV[1], 1.f, 8);
+		ensure_approximately_equals("mPartData.mStartColor.mV[2] different after unpacking", data.mStartColor.mV[2], 1.f, 8);
+		ensure_approximately_equals("mPartData.mStartColor.mV[3] different after unpacking", data.mStartColor.mV[3], 1.f, 8);
+		//mEndColor	<1,1,0,0>
+		ensure_approximately_equals("mPartData.mEndColor.mV[0] different after unpacking", data.mEndColor.mV[0], 1.f, 8);
+		ensure_approximately_equals("mPartData.mEndColor.mV[1] different after unpacking", data.mEndColor.mV[1], 1.f, 8);
+		ensure_approximately_equals("mPartData.mEndColor.mV[2] different after unpacking", data.mEndColor.mV[2], 0.f, 8);
+		ensure_approximately_equals("mPartData.mEndColor.mV[3] different after unpacking", data.mEndColor.mV[3], 0.f, 8);
+		//mStartScale	<1,1>
+		ensure_approximately_equals("mPartData.mStartScale.mV[0] different after unpacking", data.mStartScale.mV[0], 1.f, 8);
+		ensure_approximately_equals("mPartData.mStartScale.mV[1] different after unpacking", data.mStartScale.mV[1], 1.f, 8);
+		//mEndScale	<0,0>
+		ensure_approximately_equals("mPartData.mEndScale.mV[0] different after unpacking", data.mEndScale.mV[0], 0.f, 8);
+		ensure_approximately_equals("mPartData.mEndScale.mV[1] different after unpacking", data.mEndScale.mV[1], 0.f, 8);
+		//mPosOffset	<0,0,0>
+		ensure_approximately_equals("mPartData.mPosOffset.mV[0] different after unpacking", data.mPosOffset.mV[0], 0.f, 8);
+		ensure_approximately_equals("mPartData.mPosOffset.mV[1] different after unpacking", data.mPosOffset.mV[1], 0.f, 8);
+		ensure_approximately_equals("mPartData.mPosOffset.mV[2] different after unpacking", data.mPosOffset.mV[2], 0.f, 8);
+		//mParameter	0.00000000	float
+		ensure_approximately_equals("mPartData.mParameter different after unpacking", data.mParameter, 0.f, 8);
 		
-		LLDataPackerBinaryBuffer dp((U8*)pkbuf, 256);
-		llpsysdata.pack(dp);
-		S32 cur_size = dp.getCurrentSize();
-		LLDataPackerBinaryBuffer dp1((U8*)pkbuf, cur_size);
-		llpsysdata1.unpack(dp1);
-
-		ensure("1.mCRC's not equal", llpsysdata.mCRC == llpsysdata1.mCRC);
-		ensure("2.mFlags's not equal", llpsysdata.mFlags == llpsysdata1.mFlags);
-		ensure("3.mPattern's not equal", llpsysdata.mPattern == llpsysdata1.mPattern);
-		ensure_approximately_equals("4.mMaxAge's not equal", llpsysdata.mMaxAge , llpsysdata1.mMaxAge, 8);
-		ensure_approximately_equals("5.mStartAge's not equal", llpsysdata.mStartAge, llpsysdata1.mStartAge, 8);
-		ensure_approximately_equals("6.mOuterAngle's not equal", llpsysdata.mOuterAngle, llpsysdata1.mOuterAngle, 5);
-		ensure_approximately_equals("7.mInnerAngles's not equal", llpsysdata.mInnerAngle, llpsysdata1.mInnerAngle, 5);
-		ensure_approximately_equals("8.mBurstRate's not equal", llpsysdata.mBurstRate, llpsysdata1.mBurstRate, 8);
-		ensure("9.mBurstPartCount's not equal", llpsysdata.mBurstPartCount == llpsysdata1.mBurstPartCount);
-
-		ensure_approximately_equals("10.mBurstSpeedMin's not equal", llpsysdata.mBurstSpeedMin, llpsysdata1.mBurstSpeedMin, 8);
-		ensure_approximately_equals("11.mBurstSpeedMax's not equal", llpsysdata.mBurstSpeedMax, llpsysdata1.mBurstSpeedMax, 8);
-
-		ensure_approximately_equals("12.mAngularVelocity's not equal", llpsysdata.mAngularVelocity.mV[0], llpsysdata1.mAngularVelocity.mV[0], 7);
-		ensure_approximately_equals("13.mAngularVelocity's not equal", llpsysdata.mAngularVelocity.mV[1], llpsysdata1.mAngularVelocity.mV[1], 7);
-		ensure_approximately_equals("14.mAngularVelocity's not equal", llpsysdata.mAngularVelocity.mV[2], llpsysdata1.mAngularVelocity.mV[2], 7);
-			
-		ensure_approximately_equals("15.mPartAccel's not equal", llpsysdata.mPartAccel.mV[0], llpsysdata1.mPartAccel.mV[0], 7);
-		ensure_approximately_equals("16.mPartAccel's not equal", llpsysdata.mPartAccel.mV[1], llpsysdata1.mPartAccel.mV[1], 7);
-		ensure_approximately_equals("17.mPartAccel's not equal", llpsysdata.mPartAccel.mV[2], llpsysdata1.mPartAccel.mV[2], 7);
-
-		ensure("18.mPartImageID's not equal", llpsysdata.mPartImageID == llpsysdata1.mPartImageID);
-		ensure("19.mTargetUUID's not equal", llpsysdata.mTargetUUID == llpsysdata1.mTargetUUID);
-		ensure_approximately_equals("20.mBurstRadius's not equal", llpsysdata.mBurstRadius, llpsysdata1.mBurstRadius, 8);
+		//mStartGlow	0.00000000	float
+		ensure_approximately_equals("mPartData.mStartGlow different after unpacking", data.mStartGlow, 0.f, 8);
+		//mEndGlow	0.00000000	float
+		ensure_approximately_equals("mPartData.mEndGlow different after unpacking", data.mEndGlow, 0.f, 8);
+		//mBlendFuncSource	2 ''	unsigned char
+		ensure("mPartData.mBlendFuncSource different after unpacking", data.mBlendFuncSource == (U8) 2);
+		//mBlendFuncDest	1 ''	unsigned char 
+		ensure("mPartData.mBlendFuncDest different after unpacking", data.mBlendFuncDest == (U8) 1);
 	}
 }
-- 
cgit v1.2.3