예제 #1
0
void SJointBreakParticleRec::SerializeWith(TSerialize ser)
{
	LOGBREAK("SJointBreakParticleRec");
	CBitArray array(&ser);
	SerializeDirVector(array, vel, 20.f, 8, 8, 8);
	if (ser.IsWriting()) array.WriteToSerializer();
}
예제 #2
0
void SJointBreakRec::SerializeWith(TSerialize ser)
{
	LOGBREAK("SJointBreakRec, %s", ser.IsReading() ? "Reading:" : "Writing");

	ser.Value("ref", idxRef);
	ser.Value("id", id);
#if BREAK_HIERARCHICAL_TRACKING
	ser.Value("frame", frame);
#endif
	ser.Value("epicenter", epicenter);
}
void SDeclareExplosiveObjectState::SerializeWith( TSerialize ser )
{
	LOGBREAK("SDeclareExplosiveObjectState: %s", ser.IsReading() ? "Reading:" : "Writing");

	ser.Value("breakId", breakId, 'brId');
	ser.Value("isEnt", isEnt);
	if (isEnt)
	{
		if (ser.IsWriting())
			CRY_ASSERT(CCryAction::GetCryAction()->GetGameContext()->GetNetContext()->IsBound(entId));
		ser.Value("entid", entId, 'eid');
		ser.Value("entpos", entPos);
		ser.Value("entrot", entRot);
		ser.Value("entscale", entScale);
	}
	else
	{
		ser.Value("eventPos", eventPos);
		ser.Value("hash", hash);
	}
}
void SDeformingBreakParams::SerializeWith( TSerialize ser )
{
	LOGBREAK("SDeformingBreakParams: %s", ser.IsReading() ? "Reading:" : "Writing");

	ser.Value("breakId", breakId, 'brId');
	bool isEnt = breakEvent.itype == PHYS_FOREIGN_ID_ENTITY;
	ser.Value("isEnt", isEnt, 'bool');
	breakEvent.itype = isEnt? PHYS_FOREIGN_ID_ENTITY : PHYS_FOREIGN_ID_STATIC;
	if (isEnt)
	{
		ser.Value("ent", breakEvent.idEnt, 'eid');
		ser.Value("pos", breakEvent.pos);
		ser.Value("rot", breakEvent.rot);
		ser.Value("scale", breakEvent.scale);
	}
	else
	{
		ser.Value("eventPos", breakEvent.eventPos);
		ser.Value("hash", breakEvent.hash);
	}
	ser.Value("pt", breakEvent.pt);
	ser.Value("n", breakEvent.n);
	ser.Value("energy", breakEvent.energy);
}