Beispiel #1
0
void FlagStand::OnInitialUpdate(void* pData, DFLOAT fData)
{
	// Set the dims...

	DVector vDims;

	g_pServerDE->GetModelAnimUserDims(m_hObject, &vDims, g_pServerDE->GetModelAnimation(m_hObject));

	if (g_pServerDE->SetObjectDims2(m_hObject, &vDims) == DE_ERROR)
	{
		g_pServerDE->SetObjectDims(m_hObject, &vDims);
	}


	// Move the flag stand to the ground...

	MoveObjectToGround(m_hObject);


	// Create our trigger string if necessary...

	if (!m_hFlagGiveString)
	{
		m_hFlagGiveString = g_pServerDE->CreateString("flaggive");
	}


	// Spawn our flag object...

	SpawnFlag();
}
Beispiel #2
0
void FlagObject::DropToGround()
{
	// Move the flag to the ground...

	MoveObjectToGround(m_hObject);


	// Flag that we are not in our stand...

	m_bInStand    = DFALSE;
	m_bOnGround   = DTRUE;
	m_bWithPlayer = DFALSE;


	// Set our next update so that we'll respawn if we're still on the ground...

	g_pServerDE->SetNextUpdate(m_hObject, 30.0f);
}
Beispiel #3
0
DDWORD PickupObject::EngineMessageFn(DDWORD messageID, void *pData, DFLOAT fData)
{
	if( g_pServerDE )
	{
		switch(messageID)
		{
			case MID_UPDATE:
			{
				Update((DVector *)pData);
				break;
			}

			case MID_TOUCHNOTIFY:
			{
				ObjectTouch((HOBJECT)pData);
				break;
			}

			case MID_PRECREATE:
			{
				DDWORD dwRet = B2BaseClass::EngineMessageFn(messageID, pData, fData);

				if (fData == PRECREATE_WORLDFILE )
					ReadProp((ObjectCreateStruct*)pData);
				if( fData == PRECREATE_STRINGPROP)
				{
					ReadProp((ObjectCreateStruct*)pData);
				}

				PostPropRead((ObjectCreateStruct*)pData);
				return dwRet;
			}

			case MID_INITIALUPDATE:
			{
				if (fData != INITIALUPDATE_SAVEGAME)
				{
					InitialUpdate((DVector *)pData);

				}
				if (fData == INITIALUPDATE_WORLDFILE)
				{
					MoveObjectToGround(m_hObject);
				}
				else if( fData == PRECREATE_STRINGPROP)
				{
					DVector vPos;
					g_pServerDE->GetObjectPos(m_hObject, &vPos);
					SpawnItem( &vPos );
				}

				CacheFiles();
				
				break;
			}

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

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

			default : break;
		}
	}

	return B2BaseClass::EngineMessageFn(messageID, pData, fData);
}