Index: build/premake/premake4.lua =================================================================== --- build/premake/premake4.lua +++ build/premake/premake4.lua @@ -1121,7 +1121,6 @@ "ScenarioEditor/Sections/Object", "ScenarioEditor/Sections/Player", "ScenarioEditor/Sections/Terrain", - "ScenarioEditor/Sections/Trigger", "ScenarioEditor/Tools", "ScenarioEditor/Tools/Common", } Index: source/tools/atlas/GameInterface/Handlers/TriggerHandler.cpp =================================================================== --- source/tools/atlas/GameInterface/Handlers/TriggerHandler.cpp +++ /dev/null @@ -1,373 +0,0 @@ -/* 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 . - */ - -#include "precompiled.h" - -#include "MessageHandler.h" -#include "../CommandProc.h" -#include "../Shareable.h" - -#include "ps/Game.h" -#include "graphics/GameView.h" -#include "graphics/CinemaManager.h" -#include "simulation2/Simulation2.h" - -namespace AtlasMessage { - -/* -sTriggerSpec TriggerSpecToAtlas(const CTriggerSpec& spec) -{ - sTriggerSpec atlasSpec; - std::vector< sTriggerParameter > atlasParameters; - const std::set& parameters = spec.GetParameters(); - - for ( std::set::const_iterator it=parameters.begin(); it!=parameters.end(); ++it ) - { - sTriggerParameter atlasParam; - atlasParam.column = it->column; - atlasParam.inputType = it->inputType; - atlasParam.name = it->name; - atlasParam.parameterOrder = it->parameterOrder; - atlasParam.row = it->row; - - atlasParam.windowType = it->windowType; - atlasParam.xPos = it->xPos; - atlasParam.yPos = it->yPos; - atlasParam.xSize = it->xSize; - atlasParam.ySize = it->ySize; - atlasParameters.push_back(atlasParam); - } - atlasSpec.functionName = spec.functionName; - atlasSpec.displayName = spec.displayName; - atlasSpec.parameters = atlasParameters; - return atlasSpec; -} - -sTrigger TriggerToAtlas(const MapTrigger& trigger) -{ - sTrigger atlasTrigger; - atlasTrigger.active = trigger.active; - atlasTrigger.timeValue = trigger.timeValue; - atlasTrigger.maxRuns = trigger.maxRunCount; - atlasTrigger.group = trigger.groupName; - atlasTrigger.name = trigger.name; - - std::vector atlasNots; - std::vector atlasBlocks, atlasBlockEnds; - - for ( std::set::const_iterator it = trigger.logicBlocks.begin(); - it != trigger.logicBlocks.end(); ++it ) - { - atlasBlocks.push_back( (int)it->index ); - atlasNots.push_back( it->negated ); - } - for ( std::set::const_iterator it = trigger.logicBlockEnds.begin(); - it != trigger.logicBlockEnds.end(); ++it ) - { - atlasBlockEnds.push_back( (int)*it ); - } - atlasTrigger.logicNots = atlasNots; - atlasTrigger.logicBlocks = atlasBlocks; - atlasTrigger.logicBlockEnds = atlasBlockEnds; - - std::vector atlasConditions; - std::vector atlasEffects; - - for ( std::list::const_iterator it = trigger.conditions.begin(); - it != trigger.conditions.end(); ++it ) - { - sTriggerCondition atlasCondition; - atlasCondition.linkLogic = it->linkLogic; - atlasCondition.name = it->name; - atlasCondition.functionName = it->functionName; - atlasCondition.displayName = it->displayName; - atlasCondition.negated = it->negated; - std::vector parameters; - - for ( std::list::const_iterator it2=it->parameters.begin(); - it2 != it->parameters.end(); ++it2 ) - { - parameters.push_back( std::wstring(it2->c_str()) ); - } - - atlasCondition.parameters = parameters; - atlasConditions.push_back(atlasCondition); - } - - for ( std::list::const_iterator it = trigger.effects.begin(); - it != trigger.effects.end(); ++it ) - { - sTriggerEffect atlasEffect; - std::vector parameters; - atlasEffect.name = it->name; - atlasEffect.functionName = it->functionName; - atlasEffect.displayName = it->displayName; - - for ( std::list::const_iterator it2 = it->parameters.begin(); - it2 != it->parameters.end(); ++it2 ) - { - parameters.push_back( std::wstring(it2->c_str()) ); - } - atlasEffect.parameters = parameters; - atlasEffects.push_back( atlasEffect ); - } - - atlasTrigger.conditions = atlasConditions; - atlasTrigger.effects = atlasEffects; - return atlasTrigger; -} - -sTriggerGroup GroupToAtlas(const MapTriggerGroup& group) -{ - sTriggerGroup atlasGroup; - atlasGroup.parentName = group.parentName; - atlasGroup.name = group.name; - - std::vector atlasTriggers; - std::vector atlasChildren; - for ( std::list::const_iterator it = group.triggers.begin(); - it != group.triggers.end(); ++it ) - { - atlasTriggers.push_back( TriggerToAtlas(*it) ); - } - for ( std::list::const_iterator it = group.childGroups.begin(); - it != group.childGroups.end(); ++it ) - { - atlasChildren.push_back( std::wstring(it->c_str()) ); - } - - atlasGroup.triggers = atlasTriggers; - atlasGroup.children = atlasChildren; - return atlasGroup; -} - -MapTrigger AtlasToTrigger(const sTrigger& trigger) -{ - MapTrigger engineTrigger; - - engineTrigger.active = trigger.active; - engineTrigger.groupName = *trigger.group; - - std::vector blockEnds = *trigger.logicBlockEnds, blocks = *trigger.logicBlocks; - std::copy( blockEnds.begin(), blockEnds.end(), inserter(engineTrigger.logicBlockEnds, engineTrigger.logicBlockEnds.begin()) ); - std::copy( blocks.begin(), blocks.end(), inserter(engineTrigger.logicBlocks, engineTrigger.logicBlocks.begin()) ); - - engineTrigger.maxRunCount = trigger.maxRuns; - engineTrigger.name = *trigger.name; - engineTrigger.timeValue = trigger.timeValue; - - std::vector conditions = *trigger.conditions; - std::vector effects = *trigger.effects; - - for ( std::vector::const_iterator it = conditions.begin(); it != conditions.end(); ++it ) - { - engineTrigger.conditions.push_back( MapTriggerCondition() ); - MapTriggerCondition* cond = &engineTrigger.conditions.back(); - - cond->functionName = *it->functionName; - cond->displayName = *it->displayName; - cond->linkLogic = it->linkLogic; - cond->name = *it->name; - cond->negated = it->negated; - - std::vector parameters = *it->parameters; - for ( std::vector::const_iterator it2 = parameters.begin(); it2 != parameters.end(); ++it2 ) - { - cond->parameters.push_back( CStrW(*it2) ); - } - } - - for ( std::vector::const_iterator it = effects.begin(); it != effects.end(); ++it ) - { - engineTrigger.effects.push_back( MapTriggerEffect() ); - MapTriggerEffect* effect = &engineTrigger.effects.back(); - - effect->functionName = *it->functionName; - effect->displayName = *it->displayName; - effect->name = *it->name; - std::vector parameters = *it->parameters; - - for ( std::vector::const_iterator it2 = parameters.begin(); it2 != parameters.end(); ++it2 ) - { - effect->parameters.push_back( CStrW(*it2) ); - } - } - - return engineTrigger; -} - - -MapTriggerGroup AtlasToGroup(const sTriggerGroup& group) -{ - MapTriggerGroup engineGroup; - engineGroup.parentName = *group.parentName; - engineGroup.name = *group.name; - - std::list engineTriggers; - std::vector atlasChildren = *group.children; - std::vector atlasTriggers = *group.triggers; - - for ( std::vector::const_iterator it = atlasTriggers.begin(); - it != atlasTriggers.end(); ++it ) - { - engineTriggers.push_back( AtlasToTrigger(*it) ); - } - for ( std::vector::const_iterator it = atlasChildren.begin(); it != atlasChildren.end(); ++it ) - engineGroup.childGroups.push_back(*it); - - engineGroup.triggers = engineTriggers; - return engineGroup; -} - -std::vector GetCurrentTriggers() -{ - return std::vector(); - - const std::list& groups = g_TriggerManager.GetAllTriggerGroups(); - std::vector atlasGroups; - - for ( std::list::const_iterator it = groups.begin(); it != groups.end(); ++it ) - atlasGroups.push_back( GroupToAtlas(*it) ); - return atlasGroups; -} - -void SetCurrentTriggers(const std::vector& groups) -{ - std::list engineGroups; - for ( std::vector::const_iterator it = groups.begin(); it != groups.end(); ++it ) - engineGroups.push_back( AtlasToGroup(*it) ); - g_TriggerManager.SetAllGroups(engineGroups); -} -*/ - -QUERYHANDLER(GetTriggerData) -{ - UNUSED2(msg); -/* - const std::list& conditions = g_TriggerManager.GetAllConditions(); - const std::list& effects = g_TriggerManager.GetAllEffects(); - std::vector atlasConditions; - std::vector atlasEffects; - - for ( std::list::const_iterator it=conditions.begin(); it!=conditions.end(); ++it ) - atlasConditions.push_back( TriggerSpecToAtlas(*it) ); - for ( std::list::const_iterator it=effects.begin(); it!=effects.end(); ++it ) - atlasEffects.push_back( TriggerSpecToAtlas(*it) ); - - msg->conditions = atlasConditions; - msg->effects = atlasEffects; - msg->groups = GetCurrentTriggers(); -*/ -} - -QUERYHANDLER(GetTriggerChoices) -{ - UNUSED2(msg); -/* - CStrW selectedName(*msg->name); - std::vector choices = g_TriggerManager.GetTriggerChoices(selectedName); - std::vector translations = g_TriggerManager.GetTriggerTranslations(selectedName); - - if ( choices.empty() ) - return; - - //If a special list (i.e. uses engine data) - if ( choices.size() == 1 ) - { - - if ( choices[0] == std::wstring(L"ATLAS_CINEMA_LIST") ) - { - choices.clear(); - const std::map& paths = g_Game->GetView()->GetCinema()->GetAllPaths(); - for ( std::map::const_iterator it = paths.begin(); it != paths.end(); ++it ) - { - choices.push_back(it->first); - translations.push_back( L"\"" + it->first + L"\"" ); //Strings need quotes in JS - } - } - else if ( choices[0] == std::wstring(L"ATLAS_TRIGGER_LIST") ) - { - choices.clear(); - const std::list& groups = g_TriggerManager.GetAllTriggerGroups(); - for ( std::list::const_iterator it = groups.begin(); - it != groups.end(); ++it ) - { - for ( std::list::const_iterator it2 = it->triggers.begin(); - it2 != it->triggers.end(); ++it2 ) - { - choices.push_back(it2->name); - translations.push_back( L"\"" + it2->name + L"\"" ); - } - } - } - else if ( choices[0] == std::wstring(L"ATLAS_TRIG_GROUP_LIST") ) - { - choices.clear(); - const std::list& groups = g_TriggerManager.GetAllTriggerGroups(); - for ( std::list::const_iterator it = groups.begin(); - it != groups.end(); ++it ) - { - choices.push_back(it->name); - translations.push_back( L"\"" + it->name + L"\"" ); - } - } - else - debug_warn(L"Invalid special choice list for trigger specification parameter"); - } - msg->choices = choices; - msg->translations = translations; -*/ -} - -QUERYHANDLER(GetWorldPosition) -{ - Position pos; - pos.type1.x = msg->x; - pos.type1.y = msg->y; - CVector3D worldPos = pos.GetWorldSpace(); - Position ret(worldPos.X, worldPos.Y, worldPos.Z); - msg->position = ret; -} -BEGIN_COMMAND(SetAllTriggers) -{ -// std::vector m_oldGroups, m_newGroups; - - void Do() - { -// m_oldGroups = GetCurrentTriggers(); -// m_newGroups = *msg->groups; -// Redo(); - } - void Redo() - { -// SetCurrentTriggers(m_newGroups); - } - void Undo() - { -// SetCurrentTriggers(m_oldGroups); - } -}; -END_COMMAND(SetAllTriggers) - - -MESSAGEHANDLER(TriggerToggleSelector) -{ - //TODO: Draw stuff - UNUSED2(msg); -} - -} Index: source/tools/atlas/GameInterface/Messages.h =================================================================== --- source/tools/atlas/GameInterface/Messages.h +++ source/tools/atlas/GameInterface/Messages.h @@ -704,43 +704,6 @@ ////////////////////////////////////////////////////////////////////////// -enum eTriggerListType -{ - CINEMA_LIST, - TRIGGER_LIST, - TRIG_GROUP_LIST //list of trigger groups - // [Eventually include things like entities and areas as the editor progresses...] -}; - - -QUERY(GetTriggerData, - , //no inputs - ((std::vector, groups)) - ((std::vector, conditions)) - ((std::vector, effects)) - ); - -QUERY(GetTriggerChoices, - ((std::wstring, name)), - ((std::vector, choices)) - ((std::vector, translations)) - ); - -COMMAND(SetAllTriggers, NOMERGE, - ((std::vector, groups)) - ); - -QUERY(GetWorldPosition, - ((int, x)) - ((int, y)), - ((Position, position)) - ); - -MESSAGE(TriggerToggleSelector, - ((bool, enable)) - ((Position, position)) - ); - QUERY(GetSelectedObjectsTemplateNames, ((std::vector, ids)) , Index: source/tools/atlas/GameInterface/SharedTypes.h =================================================================== --- source/tools/atlas/GameInterface/SharedTypes.h +++ source/tools/atlas/GameInterface/SharedTypes.h @@ -144,120 +144,6 @@ }; SHAREABLE_STRUCT(sCameraInfo); - -//******Triggers***** - - -struct sTriggerParameter -{ - Shareable row, column, xPos, yPos, xSize, ySize, parameterOrder; - Shareable name, inputType, windowType; -}; -SHAREABLE_STRUCT(sTriggerParameter); - -struct sTriggerSpec -{ - Shareable > parameters; - Shareable displayName, functionName; - - bool operator== ( const std::wstring& name) const - { - return ( *displayName == name ); - } -}; -SHAREABLE_STRUCT(sTriggerSpec); - - -struct sTriggerCondition -{ - sTriggerCondition() : linkLogic(1), negated(false) {} - sTriggerCondition(const std::wstring& _name) : linkLogic(1), negated(false), name(_name) {} - - //displayName is used for selecting choice items in Atlas - Shareable name, functionName, displayName; - Shareable< std::vector > parameters; - - //0 = none, 1 = and, 2 = or - Shareable linkLogic; - Shareable negated; - - bool operator== ( const std::wstring& _name ) const - { - return (*name == _name); - } -}; - -SHAREABLE_STRUCT(sTriggerCondition); - -struct sTriggerEffect -{ - sTriggerEffect() {} - sTriggerEffect(const std::wstring& _name) : name(_name) {} - - Shareable name, functionName, displayName; - Shareable< std::vector > parameters; - //Shareable loop; - - bool operator== ( const std::wstring& _name ) - { - return (*name == _name); - } -}; -SHAREABLE_STRUCT(sTriggerEffect); - -struct sTrigger -{ - Shareable name, group; - Shareable< std::vector > conditions; - Shareable< std::vector > effects; - - //For beginnings, the index of the term it comes before. For ends, the index it comes after - Shareable< std::vector > logicBlocks, logicBlockEnds; - Shareable< std::vector > logicNots; //true if logicBlocks are not-ed - Shareable timeValue; - Shareable maxRuns; - Shareable active; - - sTrigger() : timeValue(0), maxRuns(-1), active(0) {} - sTrigger(const std::wstring& _name) : name(_name), timeValue(0), maxRuns(0), active(true) {} - bool operator== (const sTrigger& trigger) - { - return (*name == *trigger.name); - } - bool operator!= (const sTrigger& trigger) - { - return (*name != *trigger.name); - } -}; -SHAREABLE_STRUCT(sTrigger); - - -struct sTriggerGroup -{ - Shareable name, parentName; - Shareable< std::vector > children; - Shareable< std::vector > triggers; - - sTriggerGroup() { } - sTriggerGroup(const std::wstring& _name) : name(_name) { } - - bool operator== (const sTriggerGroup& group) const - { - return (*name == *group.name); - } - bool operator== (const std::wstring& _name) const - { - return (*name == _name); - } - /*bool operator!= (const sTriggerGroup& group) - { - return (*name != *group.name); - }*/ -}; - -SHAREABLE_STRUCT(sTriggerGroup); - - } #endif // INCLUDED_SHAREDTYPES