1
1
forked from 0ad/0ad
0ad/source/simulation/EventHandlers.cpp
Ykkrosh c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00

157 lines
5.4 KiB
C++

/* Copyright (C) 2009 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* 0 A.D. is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
*/
#include "precompiled.h"
#include "EventHandlers.h"
#include "Entity.h"
CEventContactAction::CEventContactAction( CEntity* target, int action ) : CScriptEvent( L"contactAction", EVENT_CONTACT_ACTION, true)
{
m_target = target;
m_action = action;
AddLocalProperty( L"target", &m_target );
AddLocalProperty( L"action", &m_action );
}
CEventTargetExhausted::CEventTargetExhausted( CEntity* target, int action ) : CScriptEvent( L"targetExhausted", EVENT_TARGET_EXHAUSTED, true)
{
m_target = target;
m_action = action;
AddLocalProperty( L"target", &m_target );
AddLocalProperty( L"action", &m_action );
}
CEventStartConstruction::CEventStartConstruction( CEntity* target ) : CScriptEvent( L"startConstruction", EVENT_START_CONSTRUCTION, true)
{
m_target = target;
AddLocalProperty( L"target", &m_target );
}
CEventStartProduction::CEventStartProduction( int productionType, const CStrW& name )
: CScriptEvent( L"startProduction", EVENT_START_PRODUCTION, true)
{
m_productionType = productionType;
m_name = name;
m_time = -1;
AddLocalProperty( L"productionType", &m_productionType );
AddLocalProperty( L"name", &m_name );
AddLocalProperty( L"time", &m_time );
}
CEventFinishProduction::CEventFinishProduction( int productionType, const CStrW& name )
: CScriptEvent( L"finishProduction", EVENT_FINISH_PRODUCTION, true)
{
m_productionType = productionType;
m_name = name;
AddLocalProperty( L"productionType", &m_productionType );
AddLocalProperty( L"name", &m_name );
}
CEventCancelProduction::CEventCancelProduction( int productionType, const CStrW& name )
: CScriptEvent( L"cancelProduction", EVENT_CANCEL_PRODUCTION, true)
{
m_productionType = productionType;
m_name = name;
AddLocalProperty( L"productionType", &m_productionType );
AddLocalProperty( L"name", &m_name );
}
CEventTargetChanged::CEventTargetChanged( CEntity* target ) : CScriptEvent( L"targetChanged", EVENT_TARGET_CHANGED, false )
{
m_target = target;
m_defaultOrder = -1;
m_defaultAction = 0;
m_defaultCursor = L"arrow-default";
m_secondaryOrder = -1;
m_secondaryAction = 0;
m_secondaryCursor = L"arrow-default";
AddLocalProperty( L"target", &m_target, true );
AddLocalProperty( L"defaultOrder", &m_defaultOrder );
AddLocalProperty( L"defaultAction", &m_defaultAction );
AddLocalProperty( L"defaultCursor", &m_defaultCursor );
AddLocalProperty( L"secondaryOrder", &m_secondaryOrder );
AddLocalProperty( L"secondaryCursor", &m_secondaryCursor );
AddLocalProperty( L"secondaryAction", &m_secondaryAction );
}
CEventPrepareOrder::CEventPrepareOrder( CEntity* target, int orderType, int action, const CStrW& name)
: CScriptEvent( L"prepareOrder", EVENT_PREPARE_ORDER, true )
{
m_target = target;
m_orderType = orderType;
m_action = action;
m_name = name;
AddLocalProperty( L"target", &m_target, true );
AddLocalProperty( L"orderType", &m_orderType, true );
AddLocalProperty( L"action", &m_action );
AddLocalProperty( L"name", &m_name );
AddLocalProperty( L"notifyType", &m_notifyType );
AddLocalProperty( L"notifySource", &m_notifySource );
}
CEventOrderTransition::CEventOrderTransition( int orderPrevious, int orderCurrent, CEntity* target, CVector3D& worldPosition )
: CScriptEvent( L"orderTransition", EVENT_ORDER_TRANSITION, true )
{
m_orderPrevious = orderPrevious;
m_orderCurrent = orderCurrent;
if(target) {
m_target = target->me;
}
else {
m_target = HEntity();
}
m_worldPosition = worldPosition;
AddLocalProperty( L"orderPrevious", &m_orderPrevious, true );
AddLocalProperty( L"orderCurrent", &m_orderCurrent );
AddLocalProperty( L"target", &m_target );
AddLocalProperty( L"position", &m_worldPosition );
}
CEventNotification::CEventNotification( const CEntityOrder& order, int notifyType ) : CScriptEvent( L"notification", EVENT_NOTIFICATION, true )
{
m_notifyType = notifyType;
m_target = order.m_target_entity;
CVector3D convert( order.m_target_location.x, 0.0f, order.m_target_location.y );
m_location = convert;
AddLocalProperty( L"notifyType", &m_notifyType );
AddLocalProperty( L"target", &m_target );
AddLocalProperty( L"location", &m_location );
}
CFormationEvent::CFormationEvent( int type ) : CScriptEvent( L"formationEvent", EVENT_FORMATION, true )
{
(int&) m_formationEvent = type;
AddLocalProperty( L"formationEvent", &m_formationEvent );
}
CIdleEvent::CIdleEvent( const CEntityOrder& order, int notifyType ) : CScriptEvent( L"idleEvent", EVENT_IDLE, false )
{
m_notifyType = notifyType;
m_orderType = order.m_type;
m_target = order.m_target_entity;
CVector3D convert( order.m_target_location.x, 0.0f, order.m_target_location.y );
m_location = convert;
AddLocalProperty( L"notifyType", &m_notifyType );
AddLocalProperty( L"orderType", &m_orderType );
AddLocalProperty( L"target", &m_target );
AddLocalProperty( L"location", &m_location );
}