}//Add(Trigger)

		/// <summary>
		/// Adds the trigger. 
		/// For smoothly "Remove trigger" execute "ATrigger.Repeat = 0;"
		/// Because that is a Remove, which can occur within trigger 
		/// execution. Otherwise you get an error.
		/// </summary>
		/// <param name="newTrigger">New trigger.</param>
		public void Add(string gameName, ATrigger trigger)
		{
			Log.Info("-------------- Add trigger to game:" + gameName);
			
			//if a gamename not specified use the current active one
			GMGame game = (GMGame)gameList[gameName];

			if(game == null)
			{
				Log.Error("Game not exist:"+gameName);
				Log.Error("Games :"+gameList.Count);
				for(int i =0; i < gameList.Count; i++)
					Log.Info("i:"+gameList[i]);
				
			}

			game.AddTrigger(trigger);
		}//Add(gameName, Trigger)
 /// <summary>
 /// Removes the trigger.
 /// </summary>
 /// <param name="oldTrigger">Old trigger.</param>
 public void RemoveTrigger(ATrigger oldTrigger)
 {
     triggerListToRemove.Add(oldTrigger);
 }
		}//Update()

		/// <summary>
		/// Adds the trigger to the current game.
		/// For smoothly "Remove trigger" execute "ATrigger.Repeat = 0;"
		/// Because that is a Remove, which can occur within trigger 
		/// execution. Otherwise you get an error.
		/// </summary>
		/// <param name="newTrigger">New trigger.</param>
		public void Add(ATrigger trigger)
		{
			Add(DialogGame.Name, trigger);
		}//Add(Trigger)
 /// <summary>
 /// Add one trigger.
 /// </summary>
 /// <param name="newTrigger">New trigger.</param>
 public void AddTrigger(ATrigger newTrigger)
 {
     //dont use triggerList directly, because this could cause
     //problems when a trigger try to add another trigger.
     triggerListToAdd.Add(newTrigger);
     //sort it by priority
     //triggerList = (from t in triggerList orderby t.Priority descending select t).ToList();
 }