Ejemplo n.º 1
0
DDWORD Gabriel::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
	switch(messageID)
	{
		case MID_PRECREATE:
		{
			DDWORD dwRet = MajorCharacter::EngineMessageFn(messageID, pData, fData);
			
			if (fData == PRECREATE_WORLDFILE || fData == PRECREATE_STRINGPROP)
			{
				ObjectCreateStruct* pStruct = (ObjectCreateStruct*)pData;
				if (pStruct)
				{
					SAFE_STRCPY(pStruct->m_Name, "Gabriel");
				}
			}
			return dwRet;
			break;
		}

		case MID_INITIALUPDATE:
		{
			if (fData != INITIALUPDATE_SAVEGAME)
			{
				CreateShield();
			}
		}
		break;

		case MID_SAVEOBJECT:
		{
			Save((HMESSAGEWRITE)pData, (DDWORD)fData);
		}
		break;

		case MID_LOADOBJECT:
		{
			Load((HMESSAGEREAD)pData, (DDWORD)fData);
		}
		break;

		default : break;
	}

	return MajorCharacter::EngineMessageFn(messageID, pData, fData);
}
//-----------------------------------------------------------------------------
// Purpose: Play beeping sounds until the charge explode
//-----------------------------------------------------------------------------
void CShieldGrenade::BeepThink( void )
{
	if (!IsInWorld())
	{
		UTIL_Remove( this );
		return;
	}

	if (m_flDetonateTime <= gpGlobals->curtime)
	{
		// Here we must project the shield
		CreateShield();
		SetThink( ShieldActiveThink );
		m_flDetonateTime = gpGlobals->curtime + m_ShieldLifetime;

		// Get the EMP state correct
		CheckEMPDamageFinish();
		ComputeActiveThinkTime();
	}
	else
	{
		SetNextThink( gpGlobals->curtime + 1.0f );
	}
}