コード例 #1
0
LLPartSysCompressedPacket::LLPartSysCompressedPacket()
{
    // default constructor for mDefaults called implicitly/automatically here
    for(int i = 0; i < MAX_PART_SYS_PACKET_SIZE; i++)
    {
        mData[i] = '\0';
    }

    gSetInitDataDefaults(&mDefaults);
}
コード例 #2
0
BOOL LLPartSysCompressedPacket::toLLPartInitData(LLPartInitData *out, U32 *bytesUsed)
{
	U32 currByte = 4;

	gSetInitDataDefaults(out);

	if(mData[0] & PART_SYS_KILL_P_MASK)
	{
		currByte = readKill_p(out, currByte);
	}
	
	if(mData[0] & PART_SYS_BOUNCE_P_MASK)
	{
		currByte = readBounce_p(out, currByte);
	}
	
	if(mData[0] & PART_SYS_BOUNCE_B_MASK)
	{
		currByte = readBounce_b(out, currByte);
	}
	
	if(mData[0] & PART_SYS_ALPHA_SCALE_DIFF_MASK)
	{
		currByte = readAlphaScaleDiffEqn_range(out, currByte);
	}
	
	if(mData[0] & PART_SYS_SCALE_RANGE_MASK)
	{
		currByte = readScale_range(out, currByte);
	}
	
	if(mData[0] & PART_SYS_VEL_OFFSET_MASK)
	{
		currByte = readVelocityOffset(out, currByte);
	}
	
	if(mData[0] & PART_SYS_M_IMAGE_UUID_MASK)
	{
		currByte = readUUID(out, currByte);
	}
	

	if(mData[3] & PART_SYS_BYTE_SPAWN_MASK)
	{
		currByte = readSpawn(out, currByte);
	}
	
	if(mData[3] & PART_SYS_BYTE_ENVIRONMENT_MASK)
	{
		currByte = readEnvironment(out, currByte);
	}
	
	if(mData[3] & PART_SYS_BYTE_LIFESPAN_MASK)
	{
		currByte = readLifespan(out, currByte);
	}
	
	if(mData[3] & PART_SYS_BYTE_DECAY_DAMP_MASK)
	{
		currByte = readDecayDamp(out, currByte);
	}
	
	if(mData[3] & PART_SYS_BYTE_WIND_DIFF_MASK)
	{
		currByte = readWindDiffusionFactor(out, currByte);
	}
	
	if(mData[2] & PART_SYS_BYTE_3_ALPHA_MASK)
	{
		currByte = readAlpha_range(out, currByte);
	}

	out->maxParticles = mData[currByte++];
	out->initialParticles = mData[currByte++];

	U32 flagFlag = 1; // flag indicating which flag bytes are non-zero
	//                   yeah, I know, the name sounds funny
	for(U32 i = 0; i < 8; i++)
	{
		flagFlag = 1<<i;
	
		if((mData[1] & flagFlag))
		{
			out->mFlags[i] = mData[currByte++];
		}
	}

	*bytesUsed = currByte;
	return TRUE;
}