void CAISensorCounterMelee::Load(ILTMessage_Read *pMsg)
{
	super::Load( pMsg );
	
	LOAD_bool( m_bBlockOpportunity );
	LOAD_bool( m_bDodgeOpportunity );
}
Beispiel #2
0
void CAISensorMgr::Load(ILTMessage_Read *pMsg)
{
	LOAD_COBJECT(m_pAI, CAI);

	int nSensorCount = 0;
	LOAD_INT(nSensorCount);
	{for (int n = 0; n < nSensorCount; ++n)
	{
		EnumAISensorType eSensor;
		LOAD_INT_CAST(eSensor, EnumAISensorType);
		CAISensorAbstract* pSensor = AI_FACTORY_NEW_Sensor( eSensor );
		pSensor->Load(pMsg);

		m_lstAISensors.push_back(pSensor);
	}}

	LOAD_bool(m_bSensorDeleted);
	LOAD_INT(m_iSensorToUpdate);
	LOAD_bool(m_bDoneProcessingStimuli);
	LOAD_TIME( m_fStimulusListNewIterationTime );

	int nProcessedStimuli = 0;
	LOAD_INT(nProcessedStimuli);
	{for (int n = 0; n < nProcessedStimuli; ++n)
	{
		EnumAIStimulusID eStimulusID;
		LOAD_INT_CAST(eStimulusID, EnumAIStimulusID);
		m_lstProcessedStimuli.push_back(eStimulusID);
	}}

	LOAD_INT(m_cIntersectSegmentCount);
}
Beispiel #3
0
void PlayerNodeGoto::OnLoad( ILTMessage_Read *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg )
		return;

	LOAD_STDSTRING( m_sArrivalCommand );
	LOAD_bool( m_bFaceForwardPitch );
	LOAD_bool( m_bFaceForwardYaw );
	LOAD_bool( m_bAlignPitch );
	LOAD_bool( m_bAlignYaw );
}
void AINavMeshLinkAbstract::Load(ILTMessage_Read *pMsg)
{
	LOAD_STDSTRING(m_strName);

	LOAD_INT_CAST(m_eNMLinkID, ENUM_NMLinkID);
	LOAD_INT_CAST(m_eNMPolyID, ENUM_NMPolyID);

	std::string strSmartObject;
	LOAD_STDSTRING( strSmartObject );
	m_nSmartObjectID = g_pAIDB->GetAISmartObjectRecordID( strSmartObject.c_str() );

	LOAD_bool(m_bLinkActive);
	LOAD_bool(m_bLinkEnabled);
	LOAD_bool(m_bTraversalTimedOut);
	LOAD_TIME(m_fNextTraversalTime);
	LOAD_TIME(m_fNextPreferredTime);
	LOAD_FLOAT(m_fPreferredDelay);
	LOAD_DWORD_CAST(m_eEnabledAwarenessMod, EnumAIAwarenessMod);
	LOAD_DWORD_CAST(m_eMinEnabledAwareness, EnumAIAwareness);
	LOAD_DWORD_CAST(m_eMaxEnabledAwareness, EnumAIAwareness);
	LOAD_DWORD_CAST(m_eMinActiveAwareness, EnumAIAwareness);
	LOAD_DWORD_CAST(m_eMaxActiveAwareness, EnumAIAwareness);

	// Don't load:
	// m_cLinkBounds
	// m_pvLinkBounds;

	LOAD_VECTOR(m_vLinkEdgeA0);
	LOAD_VECTOR(m_vLinkEdgeA1);
	LOAD_VECTOR(m_vMidPtLinkEdgeA);

	LOAD_VECTOR(m_vLinkEdgeB0);
	LOAD_VECTOR(m_vLinkEdgeB1);
	LOAD_VECTOR(m_vMidPtLinkEdgeB);

	LOAD_VECTOR(m_vLinkDirXZ);
	LOAD_FLOAT(m_fLinkDistXZ);

	LOAD_FLOAT(m_fEntryOffsetDistA);
	LOAD_FLOAT(m_fEntryOffsetDistB);

	LOAD_FLOAT(m_fExitOffsetDistA);
	LOAD_FLOAT(m_fExitOffsetDistB);

	LOAD_FLOAT(m_fFloorTop);
	LOAD_FLOAT(m_fFloorBottom);

	LOAD_HOBJECT(m_hReservingAI);

	if( g_pAINavMesh )
	{
		g_pAINavMesh->AddAINavMeshLink( this );
	}
}
Beispiel #5
0
void CAIGoalGoto::Load(ILTMessage_Read *pMsg)
{
	super::Load(pMsg);

	LOAD_DWORD_CAST( m_NodeCurrent.eFactID, ENUM_FactID );
	LOAD_HOBJECT( m_NodeCurrent.hNode );
	LOAD_bool( m_NodeCurrent.bTaskIsScripted );

	LOAD_DWORD_CAST( m_NodePending.eFactID, ENUM_FactID );
	LOAD_HOBJECT( m_NodePending.hNode );
	LOAD_bool( m_NodePending.bTaskIsScripted );
}
Beispiel #6
0
void CAIWeaponAbstract::Load(ILTMessage_Read *pMsg)
{
	HOBJECT hOwner = NULL;
	HWEAPON hWeapon = NULL;

	LOAD_HOBJECT(hOwner);
	LOAD_HRECORD( hWeapon, g_pWeaponDB->GetWeaponsCategory() );
	LOAD_STDSTRING(m_szFireSocketName);
	LOAD_INT_CAST(m_eFiringState, ENUM_AIFiringState);
	LOAD_DWORD(m_iAnimRandomSeed);
	LOAD_TIME(m_fRandomSeedSelectionTime);
	LOAD_FLOAT(m_flWeaponContextInaccuracyScalar);
	LOAD_DWORD(m_hWeaponSocket);
	LOAD_bool(m_bCanDropWeapon);

	ASSERT(IsAI(hOwner));
	CAI* pAI = (CAI*)g_pLTServer->HandleToObject(hOwner);

	ASSERT(pAI->GetArsenal());
	if (pAI)
	{
		ASSERT(pAI->GetArsenal());
		if (CArsenal* pArsenal = pAI->GetArsenal())
		{
			m_pWeapon = pArsenal->GetWeapon(hWeapon);
		}
	}

	if( m_pWeapon )
	{
		m_pAIWeaponRecord = AIWeaponUtils::GetAIWeaponRecord( 
			m_pWeapon->GetWeaponRecord(), 
			pAI->GetAIBlackBoard()->GetBBAIWeaponOverrideSet() );
	}
}
Beispiel #7
0
void PickupItem::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
	if (!pMsg) return;

	LOAD_HOBJECT(m_hPlayerObj);
    LOAD_FLOAT(m_fRespawnDelay);
    LOAD_BOOL(m_bRotate);
    LOAD_BOOL(m_bBounce);
	LOAD_BOOL(m_bRespawn);
    LOAD_DWORD(m_dwUserFlags);
    LOAD_DWORD(m_dwFlags);
    LOAD_HSTRING(m_hstrPickupCommand);
    LOAD_HSTRING(m_hstrSoundFile);
    LOAD_HSTRING(m_hstrRespawnSoundFile);
	LOAD_HSTRING(m_hstrModelOverride);
    LOAD_VECTOR(m_vScale);
	LOAD_BOOL(m_bTouchPickup);
	LOAD_BOOL(m_bActivatePickup);
	LOAD_bool(m_bWasPickedUp);

	char szString[1024] = {0};
	LOAD_CHARSTRING( szString, ARRAY_LEN( szString ));
	m_sWorldAniName = szString;

	if( g_pVersionMgr->GetCurrentSaveVersion( ) > CVersionMgr::kSaveVersion__1_2 )
	{
		LOAD_BYTE(m_nTeamId);
	}
}
Beispiel #8
0
void GunMount::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
	if( !pMsg )
		return;

	char szString[256];

	LOAD_CHARSTRING( szString, ARRAY_LEN( szString ));
	m_sWeapon = szString;

	LOAD_DWORD_CAST( m_nRoundsToFire, int32 );
	LOAD_BYTE_CAST( m_eFiringState, FiringState );
	LOAD_bool( m_bVisible );

	// Restart the firing state.
	switch( m_eFiringState )
	{
		case eNotFiring:
		case ePostFiring:
			StartNotFiring( );
			break;
		case ePreFiring:
		case eFiring:
			StartPreFiring( );
			break;
	}
}
Beispiel #9
0
void ExitTrigger::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
	if (!pMsg) return;

    LOAD_FLOAT(m_fFadeOutTime);
    LOAD_bool(m_bExitMission);
}
Beispiel #10
0
void CAIWeaponThrown::Load(ILTMessage_Read *pMsg)
{
	super::Load(pMsg);

	LOAD_bool( m_bHidden );
	m_hLastUserAnimation = pMsg->ReadHMODELANIM();
}
Beispiel #11
0
void CAISensorPassTarget::Load(ILTMessage_Read *pMsg)
{
	super::Load( pMsg );

	LOAD_bool( m_bHoldingPosition );
	LOAD_HOBJECT( m_hVerifiedNode );
}
Beispiel #12
0
void SpecialFX::OnLoad(ILTMessage_Read *pMsg, uint32 dwFlags)
{
	LOAD_CHARSTRING(m_sFxName, 128);
	LOAD_DWORD(m_dwFxFlags);
	LOAD_bool(m_bStartOn);
	LOAD_bool(m_bLoop);
	LOAD_bool(m_bIsOn);
	LOAD_bool(m_bOneTime);
	LOAD_HSTRING(m_hstrTargetName);
	LOAD_HOBJECT(m_hTargetObj);
	LOAD_bool(m_bRemoveTarget);

	if (!m_bLoop)
	{
		g_pCommonLT->SetObjectFlags(m_hObject, OFT_Flags, 0, FLAGMASK_ALL);
		SetNextUpdate(UPDATE_NEVER);
	}
}
Beispiel #13
0
void PlayerVehicle::Load(ILTMessage_Read *pMsg)
{
	if (!pMsg) return;

	LOAD_VECTOR(m_vOriginalPos);
	LOAD_VECTOR(m_vOriginalDims);
	LOAD_ROTATION(m_rOriginalRot);
 	LOAD_FLOAT(m_fRespawnTime);
	LOAD_BYTE_CAST(m_ePPhysicsModel, PlayerPhysicsModel);
	LOAD_bool( m_bLocked );
	LOAD_bool( m_bRidden );
	LOAD_HSTRING( m_hstrLockedCommand );
	LOAD_DWORD(m_dwSavedFlags);
	LOAD_TIME( m_fLastRideTime );
	LOAD_bool( m_bVirgin );

	m_RespawnTimer.Load(pMsg);
}
Beispiel #14
0
void CCharacterHitBox::Load(ILTMessage_Read *pMsg)
{
	AIASSERT( pMsg, m_hObject, "Load with no pMsg" );
	if (!pMsg)
	{
		return;
	}

	LOAD_HOBJECT(m_hModel);
	LOAD_VECTOR(m_vOffset);
	LOAD_BOOL(m_bCanActivate);
	LOAD_bool( m_bAnimControlsDims );
	LOAD_bool( m_bAnimControlsOffset );
	LOAD_bool( m_bFollowVisNode );
	LOAD_DWORD_CAST( m_hControllingAnim, HMODELANIM );

	m_pHitBoxUser = dynamic_cast<IHitBoxUser*>(g_pLTServer->HandleToObject(m_hModel));
	AIASSERT( m_pHitBoxUser, m_hModel, "Unable to get the HitBoxUser interface from m_hModel." );
}
Beispiel #15
0
void LightGroup::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
 	if (!pMsg) return;

	LOAD_bool(m_bOn);
	LOAD_VECTOR(m_vColor);

	m_bClientNeedsUpdate = true;
	SetNextUpdate(m_hObject, UPDATE_NEXT_FRAME);
}
Beispiel #16
0
void CAIStateAnimate::Load( ILTMessage_Read *pMsg )
{
	super::Load(pMsg);

	LOAD_BOOL(m_bLoop);
	LOAD_INT_CAST(m_eSpecialType, AISPECIAL_ANIMATION_TYPE);
	m_animProps.Load(pMsg);

	LOAD_bool( m_bCheckDepartedNode ); 
	LOAD_VECTOR( m_vInitialPos );
}
Beispiel #17
0
void DecisionObject::Load(ILTMessage_Read *pMsg)
{
	if (!pMsg) return;

	for (int i=0; i < MAX_DECISION_CHOICES; i++)
	{
		m_ChoiceData[i].Load(pMsg);
	}

	LOAD_HSTRING(m_hstrAbortCmd);

	LTBOOL bVisible;
	LOAD_bool(bVisible);
	LOAD_bool(m_bRemoveAfterChoice);
	LOAD_FLOAT(m_fRadius);
	LOAD_bool( m_bLock );

	if (bVisible)
		Show(true,true);

}
Beispiel #18
0
void CAISensorDamageFX::Load(ILTMessage_Read *pMsg)
{
	super::Load(pMsg);

	LOAD_bool( m_bDamageFXInitialized );
	LOAD_FLOAT( m_fFullHealth );
	LOAD_DWORD_CAST( m_eDamageFXState, EnumAIDamageFXState );

	// Create FX that should exist after a load.

	CreateDamageFX( m_eDamageFXState );
}
bool CDoomsDayMissionMgr::Load( ILTMessage_Read& msg, uint32 dwSaveFlags )
{
	if( !CServerMissionMgr::Load( msg, dwSaveFlags ))
		return false;

	ILTMessage_Read* pMsg = &msg;

	LOAD_BYTE( m_nActivatingTeam );
	LOAD_bool( m_bNextRound );

	return true;
}
Beispiel #20
0
void SpinningWorldModel::OnLoad( ILTMessage_Read *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg ) return;

	// Send to base class

	ActiveWorldModel::OnLoad( pMsg, dwSaveFlags );

	LOAD_VECTOR( m_vVelocity );
	LOAD_VECTOR( m_vFinalVelocity );
	LOAD_bool( m_bUpdateSpin );
	LOAD_TIME( m_fLastTime );
}
Beispiel #21
0
void CAIWeaponMelee::Load(ILTMessage_Read *pMsg)
{
	super::Load(pMsg);

	LOAD_DOUBLE(m_fBurstInterval);
	LOAD_INT(m_nBurstShots);

	LOAD_INT(m_Context.m_cHits);
	LOAD_INT(m_Context.m_cMisses);
	LOAD_INT(m_Context.m_iHit);
	LOAD_INT(m_Context.m_iMiss);

	LOAD_bool(m_bForceHit);

	m_hLastUserAnimation = pMsg->ReadHMODELANIM();
}
Beispiel #22
0
void Door::OnLoad( ILTMessage_Read *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg ) return;

	// Load base vars first

	ActiveWorldModel::OnLoad( pMsg, dwSaveFlags );

	LOAD_STDSTRING( m_sDoorLink );
	LOAD_bool( m_bSectorsActive );
	LOAD_DWORD_CAST( m_eNMLinkID, ENUM_NMLinkID );

	for(uint32 nCurrSector = 0; nCurrSector < knNumSectors; nCurrSector++)
		LOAD_STDSTRING( m_sSectorName[nCurrSector] );

	UpdateSector( m_bSectorsActive );
}
Beispiel #23
0
void CommandObject::Load( ILTMessage_Read *pMsg )
{
	GameBaseLite::Load( pMsg );

	m_Timer.Load( pMsg );

	LOAD_FLOAT( m_fTotalTime );
	LOAD_HSTRING( m_hstrFinishedCmd );
	LOAD_bool( m_bLocked );
	LOAD_INT( m_nNumActivations );
	LOAD_INT( m_nNumTimesActivated );
	
	// Free any event commands we already have...

	EVENT_CMD_LIST::iterator iter;
	EVENT_CMD_STRUCT	*pEvntCmdStruct = LTNULL;

	for( iter = m_lstEventCmds.begin(); iter != m_lstEventCmds.end(); ++iter )
	{
		pEvntCmdStruct = *iter;

		FREE_HSTRING( pEvntCmdStruct->m_hstrCommand );
		debug_delete( pEvntCmdStruct );
		pEvntCmdStruct = LTNULL;
	}

	m_lstEventCmds.clear();

	// Load all event commands...

	int nNumEventCmds = 0;
	LOAD_INT( nNumEventCmds );

	for( int i = 0; i < nNumEventCmds; ++i )
	{
		pEvntCmdStruct = debug_new( EVENT_CMD_STRUCT );
		m_lstEventCmds.push_back( pEvntCmdStruct );

		LOAD_FLOAT( pEvntCmdStruct->m_fTime );
		LOAD_BOOL( pEvntCmdStruct->m_bProcessed );
		LOAD_HSTRING( pEvntCmdStruct->m_hstrCommand );
	}

}
Beispiel #24
0
void Camera::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
	if (!pMsg) return;

	LOAD_INT		( sm_nActiveCamera );
	LOAD_bool		( m_bOn );
	LOAD_bool		( m_bIsListener );
	LOAD_bool		( m_bAllowPlayerMovement );
	LOAD_bool		( m_bOneTime );
	LOAD_BYTE		( m_nCameraType);
	LOAD_bool		( m_bStartActive );
	LOAD_FLOAT		( m_fActiveTime );
	LOAD_TIME		( m_fTurnOffTime );
	LOAD_bool		( m_bCanSkip );
	LOAD_bool		( m_bOnSkipCleanupOnly );
	LOAD_STDSTRING	( m_sCleanupCmd );
	LOAD_FLOAT		( m_fFovY );
	LOAD_FLOAT		( m_fFovAspectScale );
}
Beispiel #25
0
void AINodeValidatorEnabled::Load(ILTMessage_Read *pMsg)
{
	LOAD_bool( m_bNodeEnabled );
}
Beispiel #26
0
void Prop::Load(ILTMessage_Read *pMsg, uint32 dwLoadFlags)
{
	if (!pMsg) return;

	m_ActivateTypeHandler.Load( pMsg );

	LOAD_FLOAT(m_fAlpha);
    LOAD_BOOL(m_bMoveToFloor);
    LOAD_BOOL(m_bFirstUpdate);
	LOAD_bool( m_bCanDeactivate );
    LOAD_VECTOR(m_vScale);
    LOAD_VECTOR(m_vObjectColor);

	m_damage.Load(pMsg, dwLoadFlags);
	LOAD_BOOL(m_bTouchable);
	LOAD_DWORD_CAST(m_eState, EnumAIStateType);

/* THESE SHOULD NOT NEED TO BE SAVED - THEY ARE USED FOR INITIALIZING THE OBJECT ONLY!!!
// 8/4/02 - Remove after testing
	LOAD_DWORD(m_dwUsrFlgs);
	LOAD_DWORD(m_dwFlags);
	LOAD_DWORD(m_dwFlags2);
*/

	HMODELANIM hWorldAnim;
	uint32 cWorldAnims;
	LOAD_DWORD(cWorldAnims);
	for( uint32 iWorldAnim = 0; iWorldAnim < cWorldAnims; ++iWorldAnim )
	{
		LOAD_DWORD(hWorldAnim);
		m_lstWorldAnims.push_back(hWorldAnim);
	}

	if (pMsg->Readbool())
	{
		if(m_pDisturb == LTNULL)
		{
			m_pDisturb = debug_new(PropDisturbStruct);
		}
		m_pDisturb->Load(pMsg);
	}

	LOAD_bool( m_bActivatedOn );

	char szString[1024];

	LOAD_CHARSTRING( szString, ARRAY_LEN( szString ));
	m_sActivateOnCommand = szString;

	LOAD_CHARSTRING( szString, ARRAY_LEN( szString ));
	m_sActivateOffCommand = szString;

	LOAD_bool( m_bAttachmentShotOff );
	LOAD_HOBJECT( m_hAttachmentOwner );
	
	LOAD_FLOAT( m_fPitch );
	LOAD_FLOAT( m_fYaw );
	LOAD_FLOAT( m_fRoll );
	LOAD_FLOAT( m_fPitchVel );
	LOAD_FLOAT( m_fYawVel );
	LOAD_FLOAT( m_fRollVel );
	LOAD_bool( m_bRotatedToRest );
	LOAD_bool( m_bRotating );

	LOAD_bool( m_bFading );
	LOAD_FLOAT( m_fFadeStartTime );
	LOAD_FLOAT( m_fFadeDuration );
	LOAD_FLOAT( m_fStartAlpha );
	LOAD_FLOAT( m_fEndAlpha );
	LOAD_bool( m_bFadeRemoveWhenDone );

	LOAD_bool( m_bCanTransition );

	// We must remove aggregates before sending the message to the base classs...

	if( !m_bCanTransition )
	{
		// Disallow transitioning of this object through TransAMs...

		DestroyTransitionAggregate();
	}
}
Beispiel #27
0
void WorldModel::OnLoad( ILTMessage_Read *pMsg, uint32 dwSaveFlags )
{
	ASSERT( pMsg != NULL );

	m_ActivateTypeHandler.Load( pMsg );

	LOAD_bool( m_bIsKeyframed );
	LOAD_bool( m_bStartHidden );
	LOAD_HSTRING( m_hstrAttachments );
	LOAD_BOOL( m_bRemoveAttachments );
	LOAD_VECTOR( m_vAttachDir );
	LOAD_HOBJECT( m_hAttachDirObj );
	LOAD_ROTATION( m_hackInitialRot );
	LOAD_FLOAT( m_fStimRadius );
	LOAD_HOBJECT( m_hActivateParent );
	LOAD_bool( m_bCanActivate );

	// Load the object lists last...
	uint8	nObjsInList = 0;

	// First the Attachment list
	LOAD_BYTE( nObjsInList );
	m_AttachmentList.clear( );
	if( nObjsInList > 0 )
	{
		LTObjRefNotifier ref( *this );
		for( uint8 i = 0; i < nObjsInList; ++i )
		{
			LOAD_HOBJECT( ref );
			if( ref )
			{
				m_AttachmentList.push_back( ref );
			}
		}
	}

	// Then the other attachment list
	LOAD_BYTE( nObjsInList );
	m_AttachMsgObjList.clear( );
	if( nObjsInList > 0 )
	{
		LTObjRefNotifier ref( *this );
		for( uint8 i = 0; i < nObjsInList; ++i )
		{
			LOAD_HOBJECT( ref );
			if( ref )
			{
				m_AttachMsgObjList.push_back( ref );
			}
		}
	}

	// Then the Mark list
	LOAD_BYTE( nObjsInList );
	m_MarkList.clear( );
	if( nObjsInList > 0 )
	{
		LTObjRefNotifier ref( *this );
		for( uint8 i = 0; i < nObjsInList; ++i )
		{
			LOAD_HOBJECT( ref );
			if( ref )
			{
				m_MarkList.push_back( ref );
			}
		}
	}
}