コード例 #1
0
	virtual void ProcessEvent( EFlowEvent event, SActivationInfo *pActInfo )
	{
		switch (event)
		{
		case eFE_Activate:
			{
				if (pActInfo->pEntity == 0)
					return;
				CPlayer* pPlayer = GetPlayer(pActInfo->pEntity->GetId());
				if (pPlayer == 0)
					return;
				int8 newState = -1;
				if(IsPortActive(pActInfo, EIP_Open))
					newState = 2;
				else if(IsPortActive(pActInfo, EIP_Close))
					newState = 1;
				else if(IsPortActive(pActInfo, EIP_Remove))
				{
					newState = 0;
					pPlayer->EnableParachute(false);
				}
	
				if (newState != -1)
					pPlayer->ChangeParachuteState(newState);

				if (IsPortActive(pActInfo, EIP_FreeFall))
					pPlayer->ForceFreeFall();

			}
			break;
		}
	}