コード例 #1
0
ファイル: CommandObject.cpp プロジェクト: emoose/lithtech
void CommandObject::Save( ILTMessage_Write *pMsg )
{
	GameBaseLite::Save( pMsg );

	m_Timer.Save( pMsg );
	
	SAVE_FLOAT( m_fTotalTime );
	SAVE_HSTRING( m_hstrFinishedCmd );
	SAVE_bool( m_bLocked );
	SAVE_INT( m_nNumActivations );
	SAVE_INT( m_nNumTimesActivated );

	// Save every Event command struct...

	SAVE_INT( (int32)(m_lstEventCmds.size()) );

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

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

		SAVE_FLOAT( pEvntCmdStruct->m_fTime );
		SAVE_BOOL( pEvntCmdStruct->m_bProcessed );
		SAVE_HSTRING( pEvntCmdStruct->m_hstrCommand );

	}
}
コード例 #2
0
void Breakable::Save(HMESSAGEWRITE hWrite)
{
	if (!hWrite) return;

	SAVE_HOBJECT(m_hBreakObj);
	SAVE_BOOL(m_bStarted);
	SAVE_BOOL(m_bFalling);
	SAVE_BOOL(m_bDestroyOnImpact);
	SAVE_BOOL(m_bDestroyAfterBreak);
	SAVE_BOOL(m_bCrushObjects);
	SAVE_BOOL(m_bTouchActivate);
	SAVE_FLOAT(m_fBreakTime);
	SAVE_FLOAT(m_fBreakSoundRadius);
	SAVE_FLOAT(m_fImpactSoundRadius);
	SAVE_FLOAT(m_fRotVel);
	SAVE_HSTRING(m_hstrBreakSound);
	SAVE_HSTRING(m_hstrImpactSound);
	SAVE_VECTOR(m_vStartingPitchYawRoll);
	SAVE_VECTOR(m_vPitchYawRoll);
	SAVE_VECTOR(m_vTotalDelta);
	SAVE_VECTOR(m_vDelta);
	SAVE_VECTOR(m_vSign);
	SAVE_VECTOR(m_vFinalPos);
	SAVE_VECTOR(m_vShakeAmount);
	SAVE_VECTOR(m_vAdjust);
	SAVE_VECTOR(m_vVel);

	m_BreakTimer.Save(hWrite);
}
コード例 #3
0
ファイル: DisplayTimer.cpp プロジェクト: emoose/lithtech
void DisplayTimer::Save(ILTMessage_Write *pMsg)
{
	if (!pMsg) return;

	SAVE_HSTRING(m_hstrStartCmd);
	SAVE_HSTRING(m_hstrEndCmd);
	SAVE_BOOL(m_bRemoveWhenDone);

	m_Timer.Save(pMsg);

	SAVE_BYTE( m_nTeamId );
}
コード例 #4
0
ファイル: ScaleSprite.cpp プロジェクト: rickyharis39/nolf2
void ScaleSprite::Save(ILTMessage_Write *pMsg, uint32 dwSaveFlags)
{
	if (!pMsg) return;

	SAVE_VECTOR(m_vScale);
    SAVE_VECTOR(m_vColor);
    SAVE_FLOAT(m_fAlpha);
    SAVE_BOOL(m_bFlushWithWorld);
    SAVE_BOOL(m_bRotatable);
    SAVE_BOOL(m_bStartOn);
    SAVE_DWORD(m_dwAdditionalFlags);
    SAVE_HSTRING(m_hstrDamagedFile);
    SAVE_HSTRING(m_hstrDestroyedFile);
}
コード例 #5
0
ファイル: AIState.cpp プロジェクト: Arc0re/lithtech
void CAIState::Save(ILTMessage_Write *pMsg)
{
	SAVE_DWORD(m_eStateStatus);
	SAVE_BOOL(m_bNoCinematics);
	SAVE_FLOAT(m_fElapsedTime);
	SAVE_BOOL(m_bFirstUpdate);
	SAVE_BOOL(m_bPlayFirstSound);
	SAVE_HSTRING(m_hstrReturn);
	SAVE_HSTRING(m_hstrFirst);
	SAVE_INT(m_cNexts);
	for ( int iNext = 0 ; iNext < kMaxNexts ; iNext++ )
	{
		SAVE_HSTRING(m_ahstrNexts[iNext]);
	}
}
コード例 #6
0
ファイル: AIState.cpp プロジェクト: Arc0re/lithtech
void CAIState::Save(HMESSAGEREAD hWrite)
{
	SAVE_BOOL(m_bAlert);
	SAVE_BOOL(m_bNoCinematics);
	SAVE_FLOAT(m_fElapsedTime);
	SAVE_BOOL(m_bFirstUpdate);
	SAVE_BOOL(m_bPlayFirstSound);
	SAVE_HSTRING(m_hstrReturn);
	SAVE_HSTRING(m_hstrFirst);
	SAVE_INT(m_cNexts);
	for ( int iNext = 0 ; iNext < kMaxNexts ; iNext++ )
	{
		SAVE_HSTRING(m_ahstrNexts[iNext]);
	}
}
コード例 #7
0
ファイル: AINodeGuard.cpp プロジェクト: Arc0re/lithtech
void AINodeGuard::Save(ILTMessage_Write *pMsg)
{
	super::Save(pMsg);

	// Save guarded node names.

	HSTRING hstrNodeName;
	HSTRING_LIST::iterator hstr_it;
	SAVE_DWORD( m_lstGuardedNodeNames.size() );
	for ( hstr_it = m_lstGuardedNodeNames.begin(); hstr_it != m_lstGuardedNodeNames.end(); ++hstr_it )
	{
		hstrNodeName = *hstr_it;
		SAVE_HSTRING( hstrNodeName );
	}

	// Save guarded nodes.

	HOBJECT hNode;
	HOBJECT_LIST::iterator h_it;
	SAVE_DWORD( m_lstGuardedNodes.size() );
	for ( h_it = m_lstGuardedNodes.begin(); h_it != m_lstGuardedNodes.end(); ++h_it )
	{
		hNode = *h_it;
		SAVE_HOBJECT( hNode );
	}
}
コード例 #8
0
ファイル: AIHelicopter.cpp プロジェクト: Arc0re/lithtech
void AI_Helicopter::Save(HMESSAGEWRITE hWrite, uint32 dwSaveFlags)
{
	CAIVehicle::Save(hWrite, dwSaveFlags);

	// Save state...

    uint32 dwState = (uint32)-1;
	if (m_pHelicopterState)
	{
        dwState = (uint32) m_pHelicopterState->GetType();
	}

	SAVE_DWORD(dwState);

	if (m_pHelicopterState)
	{
		m_pHelicopterState->Save(hWrite);
	}

	SAVE_FLOAT(m_fSpeed);
	SAVE_FLOAT(m_fFlySpeed);
	SAVE_ROTATION(m_rRotSearchlight);
	SAVE_VECTOR(m_vPosSearchlight);
	SAVE_INT(m_iObjectSearchLight);
	SAVE_ROTATION(m_rRotGunner);
	SAVE_VECTOR(m_vPosGunner);
	SAVE_INT(m_iObjectGunner);

	SAVE_BOOL(m_bWantsRightDoorOpened);
	SAVE_BOOL(m_bWantsRightDoorClosed);
	SAVE_BOOL(m_bRightDoorOpened);
	SAVE_BOOL(m_bWantsLeftDoorOpened);
	SAVE_BOOL(m_bWantsLeftDoorClosed);
	SAVE_BOOL(m_bLeftDoorOpened);

	SAVE_FLOAT(m_fDeathDelay);
	SAVE_HSTRING(m_hstrDeathMessage);
	SAVE_HSTRING(m_hstrDeath2_3rdMessage);
	SAVE_HSTRING(m_hstrDeath1_3rdMessage);
	SAVE_HSTRING(m_hstrDeath0_3rdMessage);
	SAVE_BOOL(m_bExploded);
}
コード例 #9
0
ファイル: Door.cpp プロジェクト: Arc0re/lithtech
void Door::OnSave( ILTMessage_Write *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg ) return;

	// Save base vars first

	ActiveWorldModel::OnSave( pMsg, dwSaveFlags );

	SAVE_HSTRING( m_hstrDoorLink );
	SAVE_HOBJECT( m_hAIUser );
}
コード例 #10
0
ファイル: Group.cpp プロジェクト: Arc0re/lithtech
void Group::Save(ILTMessage_Write *pMsg)
{
	GameBaseLite::Save( pMsg );
	
	SAVE_DWORD(m_nNumTargets);

	for (uint32 i=0; i < m_nNumTargets; i++)
	{
		SAVE_HSTRING(m_hstrObjectNames[i]);
	}
}
コード例 #11
0
void RelationTraits::CIDValue::Save(ILTMessage_Write *pMsg)
{
    char szValue[256];
    UBER_ASSERT( m_Value.length() < sizeof(szValue)-1, "Attempted to save CIDValue with a length greater than 255" );

    // Convert the std::string to an HSTRING, and save it
    strcpy( szValue, m_Value.c_str() );
    HSTRING hValue = g_pLTServer->CreateString( szValue );
    SAVE_HSTRING( hValue );
    FREE_HSTRING( hValue );
}
コード例 #12
0
void CDestructibleModel::Save(ILTMessage_Write *pMsg, uint32 dwSaveFlags)
{
	if (!g_pLTServer || !pMsg) return;

	SAVE_BYTE( m_nDebrisId );
	SAVE_BOOL( m_bCreatedDebris );
	SAVE_BOOL( m_bCreateExplosion );
	SAVE_BYTE( m_nExplosionWeaponId );
	SAVE_BOOL( m_bFireAlongForward );
	SAVE_FLOAT( m_fDamageFactor );
	SAVE_BOOL( m_bRemoveOnDeath );
	SAVE_HSTRING( m_hstrSpawn );
	SAVE_HSTRING( m_hstrSurfaceOverride );
	SAVE_DWORD( m_dwOriginalFlags );
	SAVE_BOOL( m_bSaveNeverDestroy );
	SAVE_BOOL( m_bSaveCanDamage );
	SAVE_DWORD( m_eStimID );
	SAVE_FLOAT( m_fStimRadius );
	SAVE_DWORD( m_nDestroyAlarmLevel );
}
コード例 #13
0
ファイル: AIBrain.cpp プロジェクト: Arc0re/lithtech
void CAIBrain::Save(HMESSAGEWRITE hWrite)
{
	SAVE_DWORD(m_eRangeStatusLast);
	SAVE_FLOAT(m_fRangeStatusCheckTime);

	SAVE_DWORD(m_eDodgeStatusLast);
	SAVE_FLOAT(m_fDodgeStatusCheckTimeVector);
	SAVE_FLOAT(m_fDodgeStatusCheckTimeProjectile);
	SAVE_HSTRING(m_hstrDodgeProjectileName);
	SAVE_VECTOR(m_vDodgeProjectilePosition);
	SAVE_FLOAT(m_fGrenadeStatusCheckTime);
}
コード例 #14
0
ファイル: ServerSpecialFX.cpp プロジェクト: emoose/lithtech
void SpecialFX::OnSave(ILTMessage_Write *pMsg, uint32 dwFlags)
{
	SAVE_CHARSTRING(m_sFxName);
	SAVE_DWORD(m_dwFxFlags);
	SAVE_bool(m_bStartOn);
	SAVE_bool(m_bLoop);
	SAVE_bool(m_bIsOn);
	SAVE_bool(m_bOneTime);
	SAVE_HSTRING(m_hstrTargetName);
	SAVE_HOBJECT(m_hTargetObj);
	SAVE_bool(m_bRemoveTarget);
}
コード例 #15
0
ファイル: AIRegion.cpp プロジェクト: rickyharis39/nolf2
void AIRegion::Save(ILTMessage_Write *pMsg)
{
	SAVE_HSTRING(m_hstrName);
	SAVE_DWORD(m_cSearchNodes);
	SAVE_DWORD(m_cSearchers);
	SAVE_DWORD(m_cPostSearchMsgs);
	
	SAVE_DWORD(m_lstVolumes.size());

	AIVolume* pVolume;
	AIREGION_VOLUME_LIST::iterator it;
	for ( it = m_lstVolumes.begin() ; it != m_lstVolumes.end() ; ++it )
	{
		pVolume = *it;
		SAVE_COBJECT(pVolume);
	}

	for ( uint32 iNode = 0 ; iNode < kMaxSearchNodes ; iNode++ )
	{
		SAVE_COBJECT(m_apSearchNodes[iNode]);
	}

	for ( uint32 iPostSearchMsg = 0 ; iPostSearchMsg < kMaxPostSearchMsgs ; iPostSearchMsg++ )
	{
		SAVE_HSTRING(m_ahstrPostSearchMsgs[iPostSearchMsg]);
	}

	SAVE_VECTOR(m_vExtentsMin);
	SAVE_VECTOR(m_vExtentsMax);

	// Permission sets
	pMsg->Writeuint8(m_bPSets[0]);
	pMsg->Writeuint8(m_bPSets[1]);
	pMsg->Writeuint8(m_bPSets[2]);
	pMsg->Writeuint8(m_bPSets[3]);
	pMsg->Writeuint8(m_bPSets[4]);
	pMsg->Writeuint8(m_bPSets[5]);
	pMsg->Writeuint8(m_bPSets[6]);
	pMsg->Writeuint8(m_bPSets[7]);
}
コード例 #16
0
ファイル: Alarm.cpp プロジェクト: emoose/lithtech
void Alarm::Save(ILTMessage_Write *pMsg)
{
	if (!g_pLTServer || !pMsg) return;

    SAVE_DWORD(m_eState);
	SAVE_BOOL(m_bPlayerUsable);
	SAVE_BOOL(m_bLocked);
	SAVE_FLOAT(m_fAlarmSoundTime);
	SAVE_HSTRING(m_hstrPlayerActivateCommand);

	SAVE_HSTRING(m_hstrAlertRegions);
	SAVE_HSTRING(m_hstrRespondRegions);
	SAVE_HSTRING(m_hstrSearchRegions);

	AIREGION_LIST::iterator it;

	SAVE_DWORD( (uint32)(m_lstAlertRegions.size()) );
	for( it = m_lstAlertRegions.begin(); it != m_lstAlertRegions.end(); ++it )
	{
		SAVE_HOBJECT( *it );
	}

	SAVE_DWORD( (uint32)(m_lstRespondRegions.size()) );
	for( it = m_lstRespondRegions.begin(); it != m_lstRespondRegions.end(); ++it )
	{
		SAVE_HOBJECT( *it );
	}

	SAVE_DWORD( (uint32)(m_lstSearchRegions.size()) );
	for( it = m_lstSearchRegions.begin(); it != m_lstSearchRegions.end(); ++it )
	{
		SAVE_HOBJECT( *it );
	}

	SAVE_VECTOR( m_vRegionsGroupExtentsMin );
	SAVE_VECTOR( m_vRegionsGroupExtentsMax );
	SAVE_VECTOR( m_vRegionsGroupCenter );
	SAVE_FLOAT(	m_fRegionsGroupRadius );
}
コード例 #17
0
ファイル: PickupItem.cpp プロジェクト: Arc0re/lithtech
void PickupItem::Save(ILTMessage_Write *pMsg, uint32 dwSaveFlags)
{
	if (!pMsg) return;

	SAVE_HOBJECT(m_hPlayerObj);

	SAVE_FLOAT(m_fRespawnDelay);
	SAVE_BOOL(m_bRotate);
	SAVE_BOOL(m_bBounce);
	SAVE_BOOL(m_bRespawn);
	SAVE_DWORD(m_dwUserFlags);
	SAVE_DWORD(m_dwFlags);
	SAVE_HSTRING(m_hstrPickupCommand);
    SAVE_HSTRING(m_hstrSoundFile);
    SAVE_HSTRING(m_hstrRespawnSoundFile);
	SAVE_HSTRING(m_hstrModelOverride);
	SAVE_VECTOR(m_vScale);
	SAVE_BOOL(m_bTouchPickup);
	SAVE_BOOL(m_bActivatePickup);
	SAVE_bool(m_bWasPickedUp);
	SAVE_CHARSTRING(m_sWorldAniName.c_str());
	SAVE_BYTE(m_nTeamId);
}
コード例 #18
0
ファイル: AIGoalTalk.cpp プロジェクト: Arc0re/lithtech
void CAIGoalTalk::Save(ILTMessage_Write *pMsg)
{
	super::Save(pMsg);

	SAVE_DWORD(m_eMood);
	SAVE_DWORD(m_eMovement);
	SAVE_HSTRING(m_hstrGesture);
	SAVE_FLOAT(m_fFaceTime);
	SAVE_BOOL(m_bStartedDialog);
	SAVE_BOOL(m_bInTalkPosition);
	SAVE_BOOL(m_bRetriggerDialogue);
	SAVE_BOOL(m_bDisposableDialogue);
	SAVE_BOOL(m_bTalking);
	SAVE_HOBJECT(m_hDialogue);
}
コード例 #19
0
ファイル: DecisionObject.cpp プロジェクト: Arc0re/lithtech
void DecisionObject::Save(ILTMessage_Write *pMsg)
{
	if (!pMsg) return;


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

	SAVE_HSTRING(m_hstrAbortCmd);
	SAVE_bool(m_bVisible);
	SAVE_bool(m_bRemoveAfterChoice);
	SAVE_FLOAT(m_fRadius);
	SAVE_bool( m_bLock );
}
コード例 #20
0
ファイル: DestructibleModel.cpp プロジェクト: Arc0re/lithtech
void CDestructibleModel::Save(HMESSAGEWRITE hWrite, uint32 dwSaveFlags)
{
	if (!g_pLTServer || !hWrite) return;

	SAVE_HSTRING(m_hstrSurfaceOverride);
	g_pLTServer->WriteToMessageHString(hWrite, m_hstrSpawn);
	g_pLTServer->WriteToMessageFloat(hWrite, m_fDamageFactor);
	g_pLTServer->WriteToMessageByte(hWrite, m_bCreatedDebris);
	g_pLTServer->WriteToMessageByte(hWrite, m_nDebrisId);
	g_pLTServer->WriteToMessageByte(hWrite, m_bFireAlongForward);
	g_pLTServer->WriteToMessageByte(hWrite, m_bCreateExplosion);
	g_pLTServer->WriteToMessageByte(hWrite, m_nExplosionWeaponId);
	g_pLTServer->WriteToMessageByte(hWrite, m_bSaveCanDamage);
	g_pLTServer->WriteToMessageByte(hWrite, m_bSaveNeverDestroy);
	g_pLTServer->WriteToMessageDWord(hWrite, m_dwOriginalFlags);
}
コード例 #21
0
ファイル: PlayerVehicle.cpp プロジェクト: Arc0re/lithtech
void PlayerVehicle::Save(ILTMessage_Write *pMsg)
{
	if (!pMsg) return;

	SAVE_VECTOR(m_vOriginalPos);
	SAVE_VECTOR(m_vOriginalDims);
	SAVE_ROTATION(m_rOriginalRot);
 	SAVE_FLOAT(m_fRespawnTime);
	SAVE_BYTE((uint8)m_ePPhysicsModel);
	SAVE_bool( m_bLocked );
	SAVE_bool( m_bRidden );
	SAVE_HSTRING( m_hstrLockedCommand );
	SAVE_DWORD(m_dwSavedFlags);
	SAVE_TIME( m_fLastRideTime );
	SAVE_bool( m_bVirgin );

	m_RespawnTimer.Save(pMsg);
}
コード例 #22
0
ファイル: WorldModel.cpp プロジェクト: rickyharis39/nolf2
void WorldModel::OnSave( ILTMessage_Write *pMsg, uint32 dwSaveFlags )
{
	ASSERT( pMsg != NULL );
	
	m_ActivateTypeHandler.Save( pMsg );

	SAVE_bool( m_bIsKeyframed );
	SAVE_bool( m_bStartHidden );
	SAVE_HSTRING( m_hstrAttachments );
	SAVE_BOOL( m_bRemoveAttachments );
	SAVE_VECTOR( m_vAttachDir );
	SAVE_HOBJECT( m_hAttachDirObj );
	SAVE_ROTATION( m_hackInitialRot );
	SAVE_FLOAT( m_fStimRadius );
	SAVE_HOBJECT( m_hActivateParent );
	SAVE_bool( m_bCanActivate );

	// Save the object lists last...
	ObjRefNotifierList::iterator iter;

	// First the Attachment List
	SAVE_BYTE( m_AttachmentList.size( ));
	for( iter = m_AttachmentList.begin( ); iter != m_AttachmentList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}
	
	SAVE_BYTE( m_AttachMsgObjList.size( ));
	for( iter = m_AttachMsgObjList.begin( ); iter != m_AttachMsgObjList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}

	// Then the Mark List
	SAVE_BYTE( m_MarkList.size( ));
	for( iter = m_MarkList.begin( ); iter != m_MarkList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}
}
コード例 #23
0
void CAIVolume::Save(HMESSAGEWRITE hWrite)
{
	SAVE_HSTRING(m_hstrName);
	SAVE_INT(m_iVolume);
	SAVE_DWORD(m_iRegion);
	SAVE_VECTOR(m_vFrontTopLeft);
	SAVE_VECTOR(m_vFrontTopRight);
	SAVE_VECTOR(m_vBackTopLeft);
	SAVE_VECTOR(m_vBackTopRight);
	SAVE_VECTOR(m_vFrontBottomLeft);
	SAVE_VECTOR(m_vFrontBottomRight);
	SAVE_VECTOR(m_vBackBottomLeft);
	SAVE_VECTOR(m_vBackBottomRight);
	SAVE_INT(m_cNeighbors);
	SAVE_BOOL(m_bHadDoors);
	SAVE_INT(m_cDoors);
	SAVE_HOBJECT(m_hLift);
	SAVE_BOOL(m_bStairs);
	SAVE_BOOL(m_bLedge);
	SAVE_BOOL(m_bVertical);
	SAVE_VECTOR(m_vStairsDir);
	SAVE_VECTOR(m_vLedgeDir);

	for ( uint32 iNeighbor = 0 ; iNeighbor < m_cNeighbors ; iNeighbor++ )
	{
		m_aNeighbors[iNeighbor].Save(hWrite);
	}

	for ( uint32 iDoor = 0 ; iDoor < cm_nMaxDoors ; iDoor++ )
	{
		SAVE_HOBJECT(m_ahDoors[iDoor]);
	}

	for ( uint32 iViewNode = 0 ; iViewNode < kMaxViewNodes ; iViewNode++ )
	{
		SAVE_DWORD(m_adwViewNodes[iViewNode]);
	}
}
コード例 #24
0
void GameBase::Save(HMESSAGEWRITE hWrite)
{
    g_pLTServer->WriteToMessageDWord(hWrite, m_dwOriginalFlags);

	// Save the number of marks in the list...

    uint8 nNumInList = m_pMarkList ? m_pMarkList->m_nInList : 0;
    g_pLTServer->WriteToMessageByte(hWrite, nNumInList);

	// Save the objects marks...

	if (m_pMarkList && nNumInList)
	{
		ObjectLink* pLink = m_pMarkList->m_pFirstLink;
		while (pLink)
		{
            g_pLTServer->WriteToLoadSaveMessageObject(hWrite, pLink->m_hObject);
			pLink = pLink->m_pNext;
		}
	}

	SAVE_DWORD(m_nSaveVersion);
	SAVE_HSTRING(m_hstrSave);
}