Exemplo n.º 1
0
DBOOL ClientLightFX::InitialUpdate(DVector *pMovement)
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE) return DFALSE;

	m_damage.Init(m_hObject);
	m_damage.SetMaxHitPoints(m_fHitPts);
	m_damage.SetHitPoints(m_fHitPts);

    // Set Next update (randomize it if this object was loaded from the
	// level - so we don't have all the lights updating on the same frame)...
	
	DFLOAT fOffset = 0.0f;
	if (!m_bDynamic) fOffset = pServerDE->Random(0.01f, 0.5f);

	if (m_bOn)
	{
		pServerDE->SetNextUpdate(m_hObject, UPDATE_DELTA + fOffset);
	}

	Init();

	SendEffectMessage();

	return DTRUE;
}
Exemplo n.º 2
0
LTBOOL ClientLightFX::InitialUpdate(LTVector *pMovement)
{
 	m_damage.Init(m_hObject);
	m_damage.SetMaxHitPoints(m_fHitPts);
	m_damage.SetHitPoints(m_fHitPts);

    // Set Next update (randomize it if this object was loaded from the
	// level - so we don't have all the lights updating on the same frame)...

    LTFLOAT fOffset = 0.0f;
	if (!m_bDynamic) fOffset = g_pLTServer->Random(0.01f, 0.5f);

	if (m_bStartOn && m_fLifeTime > 0)
	{
		SetNextUpdate(UPDATE_DELTA + fOffset);
	}
	else
	{
		SetNextUpdate(0.0f);
	}

	Init();

	SendEffectMessage();

    return LTTRUE;
}
Exemplo n.º 3
0
void Rain::TriggerMsg(HOBJECT hSender, HSTRING hMsg)
{
    CServerDE* pServerDE = GetServerDE();
    HSTRING hstr;

    hstr = pServerDE->CreateString(g_szTriggerOn);
    if (pServerDE->CompareStringsUpper(hMsg, hstr))
        SendEffectMessage();
    pServerDE->FreeString(hstr);
}
Exemplo n.º 4
0
DBOOL PickupObject::InitialUpdate(DVector* pMovement)
{
	if (m_bBouncing)
	{
		g_pServerDE->SetNextUpdate(m_hObject, 0.001f);
	}
	else
	{
		g_pServerDE->SetNextUpdate(m_hObject, 0.0f);
	}

	// Mark this object as savable
	DDWORD dwFlags = g_pServerDE->GetObjectUserFlags(m_hObject);
	dwFlags |= USRFLG_SAVEABLE | USERFLG_NIGHTGOGGLESGLOW;

	// If we are a rotator, set a flag
	if(m_bRotate)
		dwFlags |= USRFLG_PICKUPOBJ_ROTATE;
	
	g_pServerDE->SetObjectUserFlags(m_hObject, dwFlags);

	// Set some minimum dims, and make sure x and z are the same.
	DVector vDims;
	g_pServerDE->GetModelAnimUserDims(m_hObject, &vDims, g_pServerDE->GetModelAnimation(m_hObject));
	if (vDims.x < 10.0f)
		vDims.x = 10.0f;
	if (vDims.x > vDims.z)
		vDims.z = vDims.x;
//	g_pServerDE->BPrint("Setting PU dims %f,%f,%f", VEC_EXPAND(vDims));
	if (g_pServerDE->SetObjectDims2(m_hObject, &vDims) == DE_ERROR)
		g_pServerDE->SetObjectDims(m_hObject, &vDims);

	SendEffectMessage();

	g_pServerDE->SetDeactivationTime(m_hObject, 1.0f);

	if( m_hstrDisplayName )
		g_pServerDE->FreeString( m_hstrDisplayName );

	// Get the name from the resources if there is one, otherwise use the object name
	if(m_nNameID)
	{
//		g_pServerDE->FreeString(m_hstrObjectName);
		m_hstrDisplayName = g_pServerDE->FormatString(m_nNameID);
	}
	else
		m_hstrDisplayName = g_pServerDE->CopyString( m_hstrObjectName );

	return DTRUE;
}
Exemplo n.º 5
0
void Rain::InitialUpdate(DVector *pMovement)
{
    CServerDE* pServerDE = GetServerDE();
    if (!pServerDE) return;

    DVector vPos;
    pServerDE->GetObjectPos(m_hObject, &vPos);

    // Mark this object as savable
    DDWORD dwFlags = pServerDE->GetObjectUserFlags(m_hObject);
    dwFlags |= USRFLG_SAVEABLE;
    pServerDE->SetObjectUserFlags(m_hObject, dwFlags);

    // Tell the clients about the Rain
    if (!m_bTriggered)
        SendEffectMessage();
}
Exemplo n.º 6
0
void Rain::Setup(DFLOAT fDensity, DVector vDims, DFLOAT fLifeTime, DVector vDir, DBOOL bGravity, DFLOAT fScale,
                 DFLOAT fSpread, DVector vColor1, DVector vColor2, DFLOAT fTimeLimit, DFLOAT fPulse)
{
    m_fDensity = fDensity;
    VEC_COPY(m_vDims,vDims);
    m_fLifetime = fLifeTime;
    m_bGravity = bGravity;
    m_fParticleScale = fScale;
    m_fSpread = fSpread;
    VEC_COPY(m_vDirection,vDir);
    VEC_COPY(m_vColor1,vColor1);
    VEC_COPY(m_vColor2,vColor2);
    m_fTimeLimit = fTimeLimit;
    m_fPulse = fPulse;

    SendEffectMessage();

    return;
}
Exemplo n.º 7
0
void Rain::Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags)
{
    CServerDE* pServerDE = GetServerDE();
    if (!pServerDE || !hRead) return;

    m_dwFlags		= pServerDE->ReadFromMessageDWord(hRead);
    m_fDensity		= pServerDE->ReadFromMessageFloat(hRead);
    m_fLifetime		= pServerDE->ReadFromMessageFloat(hRead);
    m_bGravity		= pServerDE->ReadFromMessageByte(hRead);
    m_fParticleScale= pServerDE->ReadFromMessageFloat(hRead);
    m_fSpread		= pServerDE->ReadFromMessageFloat(hRead);
    m_bTriggered	= pServerDE->ReadFromMessageByte(hRead);
    pServerDE->ReadFromMessageVector(hRead, &m_vDims);
    pServerDE->ReadFromMessageVector(hRead, &m_vDirection);
    pServerDE->ReadFromMessageVector(hRead, &m_vColor1);
    pServerDE->ReadFromMessageVector(hRead, &m_vColor2);
    m_fTimeLimit	= pServerDE->ReadFromMessageFloat(hRead);
    m_fPulse		= pServerDE->ReadFromMessageFloat(hRead);

    // Tell the clients about the Rain
    if (!m_bTriggered)
        SendEffectMessage();
}