[Avida-cvs] [avida-svn] r945 - in development: Avida.xcodeproj source source/drivers source/main source/targets/avida source/targets/avida-viewer support/config

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Mon Sep 11 20:17:18 PDT 2006


Author: brysonda
Date: 2006-09-11 23:17:18 -0400 (Mon, 11 Sep 2006)
New Revision: 945

Added:
   development/source/main/cEventList.cc
   development/source/main/cEventList.h
Removed:
   development/source/event/
   development/source/main/cAvidaTriggers.h
Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/CMakeLists.txt
   development/source/SConscript
   development/source/drivers/cDefaultRunDriver.cc
   development/source/main/CMakeLists.txt
   development/source/main/SConscript
   development/source/main/cAvidaConfig.h
   development/source/main/cWorld.cc
   development/source/main/cWorld.h
   development/source/targets/avida-viewer/CMakeLists.txt
   development/source/targets/avida-viewer/SConscript
   development/source/targets/avida-viewer/cOptionsScreen.cc
   development/source/targets/avida-viewer/cTextViewerDriver.cc
   development/source/targets/avida/CMakeLists.txt
   development/source/targets/avida/SConscript
   development/support/config/avida.cfg
Log:
Consolidate cEventList implementation details into the class itself.   Move cEventList into source/main/, removing old event directory.

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2006-09-12 00:36:14 UTC (rev 944)
+++ development/Avida.xcodeproj/project.pbxproj	2006-09-12 03:17:18 UTC (rev 945)
@@ -97,6 +97,9 @@
 		708051BB0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
 		708051BC0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
 		708051BD0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
+		708BF2FE0AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
+		708BF2FF0AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
+		708BF3000AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
 		709D924C0A5D950D00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
 		709D924D0A5D950E00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
 		709D924E0A5D950E00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
@@ -221,10 +224,6 @@
 		70C1F03608C3C71300F50912 /* cHeadCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02608C3C71300F50912 /* cHeadCPU.cc */; };
 		70C1F03808C3C71300F50912 /* cTestCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02808C3C71300F50912 /* cTestCPU.cc */; };
 		70C1F03908C3C71300F50912 /* cTestUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02908C3C71300F50912 /* cTestUtil.cc */; };
-		70C1F19408C6A11100F50912 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
-		70C1F19608C6A11100F50912 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
-		70C1F19908C6A11100F50912 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
-		70C1F19B08C6A11100F50912 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
 		70C5BC6509059A970028A785 /* cWorld.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BC6309059A970028A785 /* cWorld.cc */; };
 		70C5BC6709059A970028A785 /* cWorld.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BC6309059A970028A785 /* cWorld.cc */; };
 		70C5BD6B0905CE5F0028A785 /* cHardwareManager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BD690905CE5F0028A785 /* cHardwareManager.cc */; };
@@ -271,8 +270,6 @@
 		70DCACB0097AF7CC002F8733 /* cHeadCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02608C3C71300F50912 /* cHeadCPU.cc */; };
 		70DCACB2097AF7CC002F8733 /* cTestCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02808C3C71300F50912 /* cTestCPU.cc */; };
 		70DCACB3097AF7CC002F8733 /* cTestUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02908C3C71300F50912 /* cTestUtil.cc */; };
-		70DCACB4097AF7CC002F8733 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
-		70DCACB5097AF7CC002F8733 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
 		70DCACB6097AF7CC002F8733 /* cEnvironment.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4EFC08DA5341007BA469 /* cEnvironment.cc */; };
 		70DCACB7097AF7CC002F8733 /* cPopulationInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4EFD08DA5341007BA469 /* cPopulationInterface.cc */; };
 		70DCACB8097AF7CC002F8733 /* cBirthChamber.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */; };
@@ -463,7 +460,6 @@
 		702D4EF608DA5328007BA469 /* cPopulationInterface.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cPopulationInterface.h; sourceTree = "<group>"; };
 		702D4EFC08DA5341007BA469 /* cEnvironment.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEnvironment.cc; sourceTree = "<group>"; };
 		702D4EFD08DA5341007BA469 /* cPopulationInterface.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cPopulationInterface.cc; sourceTree = "<group>"; };
-		702D4F3808DA61E2007BA469 /* cAvidaTriggers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cAvidaTriggers.h; sourceTree = "<group>"; };
 		702D4F3908DA61E2007BA469 /* cBirthChamber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cBirthChamber.h; sourceTree = "<group>"; };
 		702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cBirthChamber.cc; sourceTree = "<group>"; };
 		702F52A70992F8F600B2B507 /* cSymbolTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSymbolTable.h; sourceTree = "<group>"; };
@@ -471,7 +467,6 @@
 		702F52DE0992FD8000B2B507 /* cScriptObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cScriptObject.h; sourceTree = "<group>"; };
 		702F52DF0992FD8000B2B507 /* cScriptObject.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cScriptObject.cc; sourceTree = "<group>"; };
 		703CA36D0A50729700AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
-		703CA36E0A5072A600AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
 		703CA36F0A5072B700AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
 		703CA3700A5072E600AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
 		703CA3710A50734500AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
@@ -591,6 +586,8 @@
 		708051A70A1F65FE00CBB8B6 /* SaveLoadActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaveLoadActions.h; sourceTree = "<group>"; };
 		708051A80A1F65FE00CBB8B6 /* SaveLoadActions.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SaveLoadActions.cc; sourceTree = "<group>"; };
 		708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cActionLibrary.cc; sourceTree = "<group>"; };
+		708BF2FD0AB65DC700A923BF /* cEventList.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventList.cc; sourceTree = "<group>"; };
+		708BF3010AB65DD300A923BF /* cEventList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventList.h; sourceTree = "<group>"; };
 		70920C1C0A9CCE2C00757CDB /* analyze_samples.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = analyze_samples.html; sourceTree = "<group>"; };
 		70920C1D0A9CCE2C00757CDB /* code_c++_intro.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = "code_c++_intro.html"; sourceTree = "<group>"; };
 		70920C1E0A9CCE2C00757CDB /* code_death_birth.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = code_death_birth.html; sourceTree = "<group>"; };
@@ -792,13 +789,6 @@
 		70C1F02808C3C71300F50912 /* cTestCPU.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestCPU.cc; sourceTree = "<group>"; };
 		70C1F02908C3C71300F50912 /* cTestUtil.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestUtil.cc; sourceTree = "<group>"; };
 		70C1F0A808C3FF1800F50912 /* nHardware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nHardware.h; sourceTree = "<group>"; };
-		70C1F18608C6A0FA00F50912 /* cEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEvent.h; sourceTree = "<group>"; };
-		70C1F18808C6A0FA00F50912 /* cEventList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventList.h; sourceTree = "<group>"; };
-		70C1F18908C6A0FA00F50912 /* cEventListEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventListEntry.h; sourceTree = "<group>"; };
-		70C1F18A08C6A0FA00F50912 /* cEventListIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventListIterator.h; sourceTree = "<group>"; };
-		70C1F18B08C6A0FA00F50912 /* cEventTriggers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventTriggers.h; sourceTree = "<group>"; };
-		70C1F18F08C6A11100F50912 /* cEventList.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventList.cc; sourceTree = "<group>"; };
-		70C1F19108C6A11100F50912 /* cEventTriggers.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventTriggers.cc; sourceTree = "<group>"; };
 		70C5BC6209059A970028A785 /* cWorld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cWorld.h; sourceTree = "<group>"; };
 		70C5BC6309059A970028A785 /* cWorld.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cWorld.cc; sourceTree = "<group>"; };
 		70C5BD690905CE5F0028A785 /* cHardwareManager.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareManager.cc; sourceTree = "<group>"; };
@@ -883,7 +873,6 @@
 		DCC30F7B0762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
 		DCC30FA90762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
 		DCC30FCF0762539D008F7A48 /* Doxyfile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Doxyfile; sourceTree = "<group>"; };
-		DCC30FEB0762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
 		DCC3109C0762539E008F7A48 /* avida.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = avida.cc; sourceTree = "<group>"; };
 		DCC310A90762539E008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
 		DCC31345076253A0008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
@@ -1335,7 +1324,6 @@
 				70F7D8C8092546DC009E311D /* classification */,
 				DCC30F7C0762539D008F7A48 /* cpu */,
 				701D9115094B770B008B845F /* drivers */,
-				DCC30FD00762539D008F7A48 /* event */,
 				DCC310040762539D008F7A48 /* main */,
 				70DCF4FF09CF81E400924128 /* platform */,
 				70DCAD1E097AF81A002F8733 /* script */,
@@ -1393,31 +1381,16 @@
 			path = cpu;
 			sourceTree = "<group>";
 		};
-		DCC30FD00762539D008F7A48 /* event */ = {
-			isa = PBXGroup;
-			children = (
-				703CA36E0A5072A600AB4DB4 /* SConscript */,
-				70C1F18608C6A0FA00F50912 /* cEvent.h */,
-				70C1F18F08C6A11100F50912 /* cEventList.cc */,
-				70C1F18808C6A0FA00F50912 /* cEventList.h */,
-				70C1F18908C6A0FA00F50912 /* cEventListEntry.h */,
-				70C1F18A08C6A0FA00F50912 /* cEventListIterator.h */,
-				70C1F19108C6A11100F50912 /* cEventTriggers.cc */,
-				70C1F18B08C6A0FA00F50912 /* cEventTriggers.h */,
-				DCC30FEB0762539D008F7A48 /* CMakeLists.txt */,
-			);
-			path = event;
-			sourceTree = "<group>";
-		};
 		DCC310040762539D008F7A48 /* main */ = {
 			isa = PBXGroup;
 			children = (
+				708BF3010AB65DD300A923BF /* cEventList.h */,
+				708BF2FD0AB65DC700A923BF /* cEventList.cc */,
 				703CA36F0A5072B700AB4DB4 /* SConscript */,
 				DCC3109C0762539E008F7A48 /* avida.cc */,
 				70B086BE08F5D86100FC65FE /* avida.h */,
 				7013846009028B3E0087ED2E /* cAvidaConfig.cc */,
 				7013845F09028B3E0087ED2E /* cAvidaConfig.h */,
-				702D4F3808DA61E2007BA469 /* cAvidaTriggers.h */,
 				702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */,
 				702D4F3908DA61E2007BA469 /* cBirthChamber.h */,
 				702D4EFC08DA5341007BA469 /* cEnvironment.cc */,
@@ -1901,8 +1874,6 @@
 				70C1F03608C3C71300F50912 /* cHeadCPU.cc in Sources */,
 				70C1F03808C3C71300F50912 /* cTestCPU.cc in Sources */,
 				70C1F03908C3C71300F50912 /* cTestUtil.cc in Sources */,
-				70C1F19908C6A11100F50912 /* cEventList.cc in Sources */,
-				70C1F19B08C6A11100F50912 /* cEventTriggers.cc in Sources */,
 				702D4F0608DA5341007BA469 /* cEnvironment.cc in Sources */,
 				702D4F0708DA5341007BA469 /* cPopulationInterface.cc in Sources */,
 				702D4F4B08DA61FE007BA469 /* cBirthChamber.cc in Sources */,
@@ -2007,6 +1978,7 @@
 				7049F2DB0A66859F00640512 /* cHardwareTransSMT.cc in Sources */,
 				704ADBC80A6EEFC300666970 /* DriverActions.cc in Sources */,
 				705ABB3E0A8A6B4400A6A80E /* EnvironmentActions.cc in Sources */,
+				708BF3000AB65DC700A923BF /* cEventList.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2039,8 +2011,6 @@
 				70DCACB0097AF7CC002F8733 /* cHeadCPU.cc in Sources */,
 				70DCACB2097AF7CC002F8733 /* cTestCPU.cc in Sources */,
 				70DCACB3097AF7CC002F8733 /* cTestUtil.cc in Sources */,
-				70DCACB4097AF7CC002F8733 /* cEventList.cc in Sources */,
-				70DCACB5097AF7CC002F8733 /* cEventTriggers.cc in Sources */,
 				70DCACB6097AF7CC002F8733 /* cEnvironment.cc in Sources */,
 				70DCACB7097AF7CC002F8733 /* cPopulationInterface.cc in Sources */,
 				70DCACB8097AF7CC002F8733 /* cBirthChamber.cc in Sources */,
@@ -2137,6 +2107,7 @@
 				7049F2DA0A66859B00640512 /* cHardwareTransSMT.cc in Sources */,
 				704ADBC60A6EEFC300666970 /* DriverActions.cc in Sources */,
 				705ABB3D0A8A6B4100A6A80E /* EnvironmentActions.cc in Sources */,
+				708BF2FF0AB65DC700A923BF /* cEventList.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2156,8 +2127,6 @@
 				70C1F02E08C3C71300F50912 /* cHeadCPU.cc in Sources */,
 				70C1F03008C3C71300F50912 /* cTestCPU.cc in Sources */,
 				70C1F03108C3C71300F50912 /* cTestUtil.cc in Sources */,
-				70C1F19408C6A11100F50912 /* cEventList.cc in Sources */,
-				70C1F19608C6A11100F50912 /* cEventTriggers.cc in Sources */,
 				702D4F0108DA5341007BA469 /* cEnvironment.cc in Sources */,
 				702D4F0208DA5341007BA469 /* cPopulationInterface.cc in Sources */,
 				702D4F4508DA61FE007BA469 /* cBirthChamber.cc in Sources */,
@@ -2248,6 +2217,7 @@
 				7049F2D90A66859700640512 /* cHardwareTransSMT.cc in Sources */,
 				704ADBF90A6EF3A300666970 /* DriverActions.cc in Sources */,
 				705ABB3C0A8A6B3D00A6A80E /* EnvironmentActions.cc in Sources */,
+				708BF2FE0AB65DC700A923BF /* cEventList.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: development/source/CMakeLists.txt
===================================================================
--- development/source/CMakeLists.txt	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/CMakeLists.txt	2006-09-12 03:17:18 UTC (rev 945)
@@ -1,5 +1,5 @@
 
-SUBDIRS(actions analyze classification cpu drivers event main platform targets third-party tools utils/task_events)
+SUBDIRS(actions analyze classification cpu drivers main platform targets third-party tools utils/task_events)
 IF(AVD_SERIALIZATION)
   SUBDIRS(archive)
 ENDIF(AVD_SERIALIZATION)

Modified: development/source/SConscript
===================================================================
--- development/source/SConscript	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/SConscript	2006-09-12 03:17:18 UTC (rev 945)
@@ -8,7 +8,6 @@
   'classification/SConscript',
   'cpu/SConscript',
   'drivers/SConscript',
-  'event/SConscript',
   'main/SConscript',
   'platform/SConscript',
   'targets/SConscript',

Modified: development/source/drivers/cDefaultRunDriver.cc
===================================================================
--- development/source/drivers/cDefaultRunDriver.cc	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/drivers/cDefaultRunDriver.cc	2006-09-12 03:17:18 UTC (rev 945)
@@ -58,7 +58,7 @@
       change_list->Reset();
     }
     
-    m_world->GetEvents();
+    m_world->GetEvents(ctx);
     if (m_done == true) break;
     
     // Increment the Update.

Modified: development/source/main/CMakeLists.txt
===================================================================
--- development/source/main/CMakeLists.txt	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/CMakeLists.txt	2006-09-12 03:17:18 UTC (rev 945)
@@ -5,6 +5,7 @@
   cAvidaConfig.cc
   cBirthChamber.cc
   cEnvironment.cc
+  cEventList.cc
   cFitnessMatrix.cc
   cGenome.cc
   cGenomeUtil.cc

Modified: development/source/main/SConscript
===================================================================
--- development/source/main/SConscript	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/SConscript	2006-09-12 03:17:18 UTC (rev 945)
@@ -7,9 +7,9 @@
   'avida.h',
   'cAvidaConfig.h',
   'cAvidaContext.h',
-  'cAvidaTriggers.h',
   'cBirthChamber.h',
   'cEnvironment.h',
+  'cEventList.h',
   'cFitnessMatrix.h',
   'cGenome.h',
   'cGenomeUtil.h',
@@ -59,6 +59,7 @@
   'cAvidaConfig.cc',
   'cBirthChamber.cc',
   'cEnvironment.cc',
+  'cEventList.cc',
   'cFitnessMatrix.cc',
   'cGenome.cc',
   'cGenomeUtil.cc',

Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cAvidaConfig.h	2006-09-12 03:17:18 UTC (rev 945)
@@ -157,9 +157,6 @@
   CONFIG_ADD_VAR(VERBOSITY, int, 1, "Control output verbosity");
   
   CONFIG_ADD_GROUP(ARCH_GROUP, "Architecture Variables");
-  CONFIG_ADD_VAR(MAX_UPDATES, int, -1, "Maximum updates to run experiment (-1 = no limit)");
-  CONFIG_ADD_VAR(MAX_GENERATIONS, int, -1, "Maximum generations to run experiment (-1 = no limit)");
-  CONFIG_ADD_VAR(END_CONDITION_MODE, int, 0, "End run when ...\n0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached\n1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached");
   CONFIG_ADD_VAR(WORLD_X, int, 100, "Width of the Avida world");
   CONFIG_ADD_VAR(WORLD_Y, int, 100, "Height of the Avida world");
   CONFIG_ADD_VAR(WORLD_GEOMETRY, int, 2, "1 = Bounded Grid\n2 = Torus");

Deleted: development/source/main/cAvidaTriggers.h
===================================================================
--- development/source/main/cAvidaTriggers.h	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cAvidaTriggers.h	2006-09-12 03:17:18 UTC (rev 945)
@@ -1,54 +0,0 @@
-/*
- *  cAvidaTriggers.h
- *  Avida
- *
- *  Called "avida_trigggers.hh" prior to 12/2/05.
- *  Copyright 2005-2006 Michigan State University. All rights reserved.
- *  Copyright 1993-2003 California Institute of Technology.
- *
- */
-
-#ifndef cAvidaTriggers_h
-#define cAvidaTriggers_h
-
-#ifndef cEventTriggers_h
-#include "cEventTriggers.h"
-#endif
-#ifndef cStats_h
-#include "cStats.h"
-#endif
-
-/**
- * A small class that determines the correct triggers for the event list.
- * Needed in order to separate the event business from the rest.
- */
-class cAvidaTriggers : public cEventTriggers
-{
-private:
-  cStats& m_stats;
-
-  
-  cAvidaTriggers(); // @not_implemented
-  cAvidaTriggers(const cAvidaTriggers&); // @not_implemented
-  cAvidaTriggers& operator=(const cAvidaTriggers&); // @not_implemented
-
-public:
-  cAvidaTriggers(cStats& stats) : m_stats(stats) { ; }
-
-  double GetUpdate() const { return (double) m_stats.GetUpdate(); }
-  double GetGeneration() const { return m_stats.SumGeneration().Average(); }
-};
-
-
-#ifdef ENABLE_UNIT_TESTS
-namespace nAvidaTriggers {
-  /**
-   * Run unit tests
-   *
-   * @param full Run full test suite; if false, just the fast tests.
-   **/
-  void UnitTests(bool full = false);
-}
-#endif  
-
-#endif

Copied: development/source/main/cEventList.cc (from rev 944, development/source/event/cEventList.cc)
===================================================================
--- development/source/event/cEventList.cc	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cEventList.cc	2006-09-12 03:17:18 UTC (rev 945)
@@ -0,0 +1,345 @@
+/*
+ *  cEventList.cc
+ *  Avida
+ *
+ *  Called "event_list.cc" prior to 12/2/05.
+ *  Copyright 2005-2006 Michigan State University. All rights reserved.
+ *  Copyright 1993-2003 California Institute of Technology.
+ *
+ */
+
+#include "cEventList.h"
+
+#include "defs.h"
+#include "cActionLibrary.h"
+#include "cInitFile.h"
+#include "cStats.h"
+#include "cString.h"
+#include "cWorld.h"
+
+#include <float.h>           // for DBL_MIN
+#include <iostream>
+
+using namespace std;
+
+
+const double cEventList::TRIGGER_BEGIN = DBL_MIN;
+const double cEventList::TRIGGER_END = DBL_MAX;
+const double cEventList::TRIGGER_ALL = 0.0;
+const double cEventList::TRIGGER_ONCE = DBL_MAX;
+
+
+cEventList::~cEventList()
+{
+  cEventListEntry* current = NULL;
+  while (m_head != NULL) {
+    current = m_head;
+    m_head = m_head->GetNext();
+    delete current;
+  }
+}
+
+
+bool cEventList::AddEvent(eTriggerType trigger, double start, double interval,
+                          double stop, const cString& name, const cString& args)
+{
+  cAction* action = m_world->GetActionLibrary().Create(name, m_world, args);
+  
+  if (action != NULL) {
+    cEventListEntry* entry = new cEventListEntry(action, name, trigger, start, interval, stop);
+    
+    // If there are no events in the list yet.
+    if (m_tail == NULL) {
+      assert(m_head == NULL);
+      m_head = entry;
+      m_tail = entry;
+    } else {
+      // Add to the end of the list
+      m_tail->SetNext(entry);
+      entry->SetPrev(m_tail);
+      m_tail = entry;
+    }
+    
+    SyncEvent(entry);
+    ++m_num_events;
+    return true;
+  }
+  
+  return false;
+}
+
+void cEventList::LoadEventFile(const cString& filename)
+{
+  cInitFile event_file(filename);
+  
+  // Load in the proper event list and set it up.
+  event_file.Load();
+  event_file.Compress();
+  
+  // Loop through the line_list and change the lines to events.
+  for (int line_id = 0; line_id < event_file.GetNumLines(); line_id++) {
+    AddEventFileFormat(event_file.GetLine(line_id));
+  }
+}
+
+
+void cEventList::Delete(cEventListEntry* entry) 
+{
+  assert(entry != NULL);
+  
+  if (entry->GetPrev() != NULL) {
+    entry->GetPrev()->SetNext(entry->GetNext());
+  } else {
+    assert(entry == m_head);
+    m_head = entry->GetNext();
+  }
+  
+  if (entry->GetNext() != NULL) {
+    entry->GetNext()->SetPrev(entry->GetPrev());
+  } else {
+    assert(entry == m_tail);
+    m_tail = entry->GetPrev();
+  }
+  
+  delete entry;
+}
+
+double cEventList::GetTriggerValue(eTriggerType trigger) const
+{
+  // Returns TRIGGER_END if invalid, TRIGGER_BEGIN for IMMEDIATE
+  double t_val = TRIGGER_END;
+  switch (trigger) {
+    case IMMEDIATE:
+      t_val = TRIGGER_BEGIN;
+      break;
+    case UPDATE:
+      t_val = m_world->GetStats().GetUpdate();
+      break;
+    case GENERATION:
+      t_val = m_world->GetStats().SumGeneration().Average();
+      break;
+  }
+  return t_val;
+}
+
+
+void cEventList::Process(cAvidaContext& ctx)
+{
+  double t_val = 0; // trigger value
+  
+  // Iterate through all entrys in event list
+  cEventListEntry* entry = m_head;
+  while (entry != NULL) {
+    cEventListEntry* next_entry = entry->GetNext();
+    
+    // Check trigger condition
+    
+    // IMMEDIATE Events always happen and are always deleted
+    if (entry->GetTrigger() == IMMEDIATE) {
+      entry->GetAction()->Process(ctx);
+      Delete(entry);
+    } else {
+      // Get the value of the appropriate trigger variable
+      t_val = GetTriggerValue(entry->GetTrigger());
+      
+      if (t_val != DBL_MAX &&
+          (t_val >= entry->GetStart() || entry->GetStart() == TRIGGER_BEGIN) &&
+          (t_val <= entry->GetStop() || entry->GetStop() == TRIGGER_END)) {
+
+        // Process the Action
+        entry->GetAction()->Process(ctx);
+        
+        // Handle Interval Adjustment
+        if (entry->GetInterval() == TRIGGER_ALL) {
+          // Do Nothing
+        } else if (entry->GetInterval() == TRIGGER_ONCE) {
+          // If it is a onetime thing, remove it...
+          Delete(entry);
+          entry = NULL;
+        } else {
+          // There is an interval.. so add it
+          entry->NextInterval();
+        }
+        
+        // If the event can never happen now... excize it
+        if (entry != NULL && entry->GetStop() != TRIGGER_END &&
+            ((entry->GetStart() > entry->GetStop() && entry->GetInterval() > 0) ||
+             (entry->GetStart() < entry->GetStop() && entry->GetInterval() < 0)))
+            Delete(entry);
+      }
+    }  // end condition to do event
+    
+    entry = next_entry;
+  }
+}
+
+
+void cEventList::Sync()
+{
+  cEventListEntry* entry = m_head;
+  cEventListEntry* next_entry;
+  while (entry != NULL) {
+    next_entry = entry->GetNext();
+    SyncEvent(entry);
+    entry = next_entry;
+  }
+}
+
+
+void cEventList::SyncEvent(cEventListEntry* entry)
+{
+  // Ignore events that are immdeiate
+  if (entry->GetTrigger() == IMMEDIATE) return;
+  
+  double t_val = GetTriggerValue(entry->GetTrigger());
+  
+  // If t_val has past the end, remove (even if it is TRIGGER_ALL)
+  if (t_val > entry->GetStop()) {
+    Delete(entry);
+    return;
+  }
+  
+  // If it is a trigger once and has passed, remove
+  if (t_val > entry->GetStart() && entry->GetInterval() == TRIGGER_ONCE) {
+    Delete(entry);
+    return;
+  }
+  
+  // If for some reason t_val has been reset or soemthing, rewind
+  if (t_val + entry->GetInterval() <= entry->GetStart()) {
+    entry->Reset();
+  }
+  
+  // Can't fast forward events that are Triger All
+  if (entry->GetInterval() == TRIGGER_ALL) return;
+  
+  // Keep adding interval to start until we are caught up
+  while (t_val > entry->GetStart()) entry->NextInterval();
+}
+
+
+void cEventList::PrintEventList(ostream& os)
+{
+  cEventListEntry* entry = m_head;
+  cEventListEntry* next_entry;
+  while (entry != NULL) {
+    next_entry = entry->GetNext();
+    switch (entry->GetTrigger()) {
+      case UPDATE:
+        os << "update ";
+        break;
+      case GENERATION:
+        os << "generation ";
+        break;
+      case IMMEDIATE:
+        os << "immediate ";
+        break;
+      default:
+        os << "undefined ";
+    }
+    if (entry->GetTrigger() != IMMEDIATE) {
+      if (entry->GetStart() == TRIGGER_BEGIN) os << "begin";
+      else os << entry->GetStart();
+
+      os << ":";
+      
+      if (entry->GetInterval() == TRIGGER_ONCE) os << "once";
+      else if (entry->GetInterval() == TRIGGER_ALL) os << "all";
+      else os << entry->GetInterval();
+      
+      os << ":";
+      
+      if (entry->GetStop() == TRIGGER_END) os << "end";
+      else os << entry->GetStop();
+      
+      os << " ";
+    }
+    os << entry->GetName() << " " << entry->GetArgs() << endl;
+    entry = next_entry;
+  }
+}
+
+
+//// Parsing Event List File Format ////
+bool cEventList::AddEventFileFormat(const cString& in_line)
+{
+  cString cur_line = in_line;
+  
+  // Timing
+  eTriggerType trigger = UPDATE;
+  double start = TRIGGER_BEGIN;
+  double interval = TRIGGER_ONCE;
+  double stop = TRIGGER_END;
+  
+  cString name;
+  cString arg_list;
+  
+  cString tmp;
+  
+  cString cur_word = cur_line.PopWord();
+  
+  // Get the trigger variable if there
+  if (cur_word == "i" || cur_word == "immediate") {
+    trigger = IMMEDIATE;
+    name = cur_line.PopWord();
+    return AddEvent(name, cur_line); // If event is IMMEDIATE shortcut
+  } else if (cur_word == "u" || cur_word == "update") {
+    trigger = UPDATE;
+    cur_word = cur_line.PopWord();
+  } else if( cur_word == "g" || cur_word == "generation") {
+    trigger = GENERATION;
+    cur_word = cur_line.PopWord();
+  } else {
+    // If Trigger is skipped so assume IMMEDIATE
+    trigger = IMMEDIATE;
+  }
+  
+  // Do we now have timing specified?
+  // Parse the Timing
+  cString timing_str = cur_word;
+  
+  // Get the start:interval:stop
+  tmp = timing_str.Pop(':');
+  
+  // If first value is valid, we are getting a timing.
+  if (tmp.IsNumber() || tmp == "begin") {
+    
+    // First number is start
+    if (tmp == "begin") start = TRIGGER_BEGIN;
+    else start = tmp.AsDouble();
+    
+    // If no other words... is "start" syntax
+    if (timing_str.GetSize() == 0) {
+      interval = TRIGGER_ONCE;
+      stop = TRIGGER_END;
+    } else {
+      // Second word is interval
+      tmp = timing_str.Pop(':');
+      if (tmp == "all") interval = TRIGGER_ALL;
+      else if (tmp == "once") interval = TRIGGER_ONCE;
+      else interval = tmp.AsDouble();
+
+      // If no other words... is "start:interval" syntax
+      if (timing_str.GetSize() == 0) stop = TRIGGER_END;
+      else {
+        // We have "start:interval:stop" syntax
+        tmp = timing_str;
+        if (tmp == "end") stop = TRIGGER_END;
+        else stop = tmp.AsDouble();
+      }
+    }
+    cur_word = cur_line.PopWord(); // timing provided, so get next word
+    
+  } else { // We don't have timing, so assume IMMEDIATE
+    trigger = IMMEDIATE;
+    start = TRIGGER_BEGIN;
+    interval = TRIGGER_ONCE;
+    stop = TRIGGER_END;
+  }
+  
+  // Get the rest of the info
+  name = cur_word;
+  arg_list = cur_line;
+  
+  return AddEvent(trigger, start, interval, stop, name, arg_list);
+}

Copied: development/source/main/cEventList.h (from rev 944, development/source/event/cEventList.h)
===================================================================
--- development/source/event/cEventList.h	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cEventList.h	2006-09-12 03:17:18 UTC (rev 945)
@@ -0,0 +1,169 @@
+/*
+ *  cEventList.h
+ *  Avida
+ *
+ *  Called "event_list.hh" prior to 12/2/05.
+ *  Copyright 2005-2006 Michigan State University. All rights reserved.
+ *  Copyright 1993-2003 California Institute of Technology.
+ *
+ */
+
+#ifndef cEventList_h
+#define cEventList_h
+
+#ifndef cAction_h
+#include "cAction.h"
+#endif
+
+class cAvidaContext;
+class cString;
+class cWorld;
+
+
+// This is the fundamental class for event management. It holds a list of all
+// events, and provides methods to add new events and to process existing
+// events.
+
+class cEventList
+{
+public:
+  enum eTriggerType { UPDATE, GENERATION, IMMEDIATE, UNDEFINED };
+  
+  static const double TRIGGER_BEGIN;
+  static const double TRIGGER_END;
+  static const double TRIGGER_ALL;
+  static const double TRIGGER_ONCE;
+
+
+private:
+  
+  class cEventListEntry
+  {
+  private:
+    cAction* m_action;
+    cString m_name;
+    
+    eTriggerType m_trigger;
+    double m_start;
+    double m_interval;
+    double m_stop;
+    double m_original_start;
+    
+    cEventListEntry* m_prev;
+    cEventListEntry* m_next;
+    
+  public:
+    cEventListEntry(cAction* action, const cString& name, eTriggerType trigger = UPDATE, double start = TRIGGER_BEGIN,
+                    double interval = TRIGGER_ONCE, double stop = TRIGGER_END, cEventListEntry* prev = NULL,
+                    cEventListEntry* next = NULL) :
+      m_action(action), m_name(name), m_trigger(trigger), m_start(start), m_interval(interval), m_stop(stop),
+      m_original_start(start), m_prev(prev), m_next(next)
+    {
+    }
+    
+    virtual ~cEventListEntry() { delete m_action; }
+    
+    void SetPrev(cEventListEntry* prev) { m_prev = prev; }
+    void SetNext(cEventListEntry* next) { m_next = next; }
+    
+    void NextInterval() { m_start += m_interval; }
+    void Reset() { m_start = m_original_start; }
+    
+    // accessors
+    cAction* GetAction() const { assert(m_action != NULL); return m_action; }
+    
+    const cString GetName() const { assert(m_action != NULL); return m_name; }
+    const cString& GetArgs() const { assert(m_action != NULL); return m_action->GetArgs(); }
+    
+    eTriggerType GetTrigger() const { return m_trigger; }
+    double GetStart() const { return m_start; }
+    double GetInterval() const { return m_interval; }
+    double GetStop() const { return m_stop; }
+    
+    cEventListEntry* GetPrev() const { return m_prev; }
+    cEventListEntry* GetNext() const { return m_next; }
+  };
+  
+  
+  cWorld* m_world;
+  cEventListEntry* m_head;
+  cEventListEntry* m_tail;
+  int m_num_events;
+
+
+  void SyncEvent(cEventListEntry* event);
+  double GetTriggerValue(eTriggerType trigger) const;
+  void Delete(cEventListEntry* entry);
+
+  cEventList(); // @not_implemented
+  cEventList(const cEventList&); // @not_implemented
+  cEventList& operator=(const cEventList&); // @not_implemented
+
+  
+public:
+  /**
+   * The cEventList assumes ownership of triggers and destroys it when done.
+   *
+   * @param triggers A trigger object. The event list needs a trigger object
+   * to determine what events to call when.
+   **/
+  cEventList(cWorld* world) : m_world(world), m_head(NULL), m_tail(NULL), m_num_events(0) { ; }
+  ~cEventList();
+    
+
+  /**
+   * Adds an event with given name and argument list. The event will be of
+   * type immediate, i.e. it is processed only once, and then deleted.
+   *
+   * @param name The name of the event.
+   * @param args The argument list.
+   **/
+  bool AddEvent(const cString& name, const cString& args)
+  {
+    return AddEvent(IMMEDIATE, TRIGGER_BEGIN, TRIGGER_ONCE, TRIGGER_END, name, args);
+  }
+
+
+  /**
+   * Adds an event with specified trigger type.
+   *
+   * @param trigger The type of the trigger.
+   * @param start The start value of the trigger variable.
+   * @param interval The length of the interval between one processing
+   * and the next.
+   * @param stop The value of the trigger variable at which the event should
+   * be deleted.
+   * @param name The name of the even.
+   * @param args The argument list.
+   **/
+  bool AddEvent(eTriggerType trigger, double start, double interval, double stop, const cString &name, const cString& args);
+
+  /**
+   * This function adds an event that is given in the event list file format.
+   * In other words, it can be used to parse one line from an event list file,
+   * and construct the appropriate event.
+   **/
+  bool AddEventFileFormat(const cString& line);
+
+
+  void LoadEventFile(const cString& filename);
+
+  void Process(cAvidaContext& ctx);   // Go through list executing appropriate events.
+  void Sync(); // Get all events caught up.
+
+  void PrintEventList(std::ostream& os = std::cout);
+};
+
+
+#ifdef ENABLE_UNIT_TESTS
+namespace nEventList {
+  /**
+   * Run unit tests
+   *
+   * @param full Run full test suite; if false, just the fast tests.
+   **/
+  void UnitTests(bool full = false);
+}
+#endif  
+
+#endif

Modified: development/source/main/cWorld.cc
===================================================================
--- development/source/main/cWorld.cc	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cWorld.cc	2006-09-12 03:17:18 UTC (rev 945)
@@ -11,12 +11,10 @@
 
 #include "avida.h"
 #include "cAnalyze.h"
-#include "cAvidaTriggers.h"
 #include "cClassificationManager.h"
 #include "cEnvironment.h"
 #include "cEventList.h"
 #include "cHardwareManager.h"
-#include "cInitFile.h"
 #include "cPopulation.h"
 #include "cStats.h"
 #include "cTestCPU.h"
@@ -74,9 +72,8 @@
   m_pop = new cPopulation(this);
 
   // Setup Event List
-  m_event_list = new cEventList(this, new cAvidaTriggers(*m_stats));
-  
-  ReadEventListFile(m_conf->EVENT_FILE.Get());
+  m_event_list = new cEventList(this);
+  m_event_list->LoadEventFile(m_conf->EVENT_FILE.Get());
     
   const bool revert_fatal = m_conf->REVERT_FATAL.Get() > 0.0;
   const bool revert_neg = m_conf->REVERT_DETRIMENTAL.Get() > 0.0;
@@ -98,59 +95,13 @@
   return *m_analyze;
 }
 
-void cWorld::ReadEventListFile(const cString & filename)
-{
-  cInitFile event_file(filename);
-  
-  // Load in the proper event list and set it up.
-  event_file.Load();
-  event_file.Compress();
-  
-  // Loop through the line_list and change the lines to events.
-  for (int line_id = 0; line_id < event_file.GetNumLines(); line_id++) {
-    m_event_list->AddEventFileFormat(event_file.GetLine(line_id));
-  }
-  
-  ////////// Adding events from the Genesis file //////////
-  // Max Updates and/or Max Generations
-  if(m_conf->END_CONDITION_MODE.Get() == 0 ){
-    if(m_conf->MAX_UPDATES.Get() >= 0 ){
-      m_event_list->AddEvent( cEventTriggers::UPDATE, m_conf->MAX_UPDATES.Get(),
-                            cEventTriggers::TRIGGER_ONCE,
-                            cEventTriggers::TRIGGER_END, "exit", "");
-    }
-    if(m_conf->MAX_GENERATIONS.Get() >= 0 ){
-      m_event_list->AddEvent( cEventTriggers::GENERATION,
-                            m_conf->MAX_GENERATIONS.Get(),
-                            cEventTriggers::TRIGGER_ONCE,
-                            cEventTriggers::TRIGGER_END, "exit", "");
-    }
-  }else{
-    if(m_conf->MAX_UPDATES.Get() >= 0 && m_conf->MAX_GENERATIONS.Get() >= 0 ){
-      cString max_gen_str;
-      max_gen_str.Set("%d", m_conf->MAX_GENERATIONS.Get());
-      cString max_update_str;
-      max_update_str.Set("%d", m_conf->MAX_UPDATES.Get());
-      m_event_list->AddEvent( cEventTriggers::UPDATE, m_conf->MAX_UPDATES.Get(),
-                            1, cEventTriggers::TRIGGER_END,
-                            "exit_if_generation_greater_than", max_gen_str);
-      m_event_list->AddEvent( cEventTriggers::GENERATION,
-                            m_conf->MAX_GENERATIONS.Get(),
-                            .01, cEventTriggers::TRIGGER_END,
-                            "exit_if_update_greater_than", max_update_str);
-    }
-  }
-}
-
-void cWorld::SyncEventList() { m_event_list->Sync(); }
-
-void cWorld::GetEvents()
+void cWorld::GetEvents(cAvidaContext& ctx)
 {  
   if (m_pop->GetSyncEvents() == true) {
-    SyncEventList();
+    m_event_list->Sync();
     m_pop->SetSyncEvents(false);
   }
-  m_event_list->Process();
+  m_event_list->Process(ctx);
 }
 
 int cWorld::GetNumInstructions()

Modified: development/source/main/cWorld.h
===================================================================
--- development/source/main/cWorld.h	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cWorld.h	2006-09-12 03:17:18 UTC (rev 945)
@@ -103,9 +103,7 @@
   inline void SetVerbosity(int v) { m_conf->VERBOSITY.Set(v); }
 
   // @DMB - Inherited from cAvidaDriver heritage
-  void GetEvents();
-  void ReadEventListFile(const cString & filename);
-  void SyncEventList();
+  void GetEvents(cAvidaContext& ctx);
 
   // Save to archive 
   template<class Archive>

Modified: development/source/targets/avida/CMakeLists.txt
===================================================================
--- development/source/targets/avida/CMakeLists.txt	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida/CMakeLists.txt	2006-09-12 03:17:18 UTC (rev 945)
@@ -3,7 +3,7 @@
 ADD_EXECUTABLE(avida primitive.cc)
 
 SET(avida_target_link_libs
-  main classification cpu event analyze drivers cpu tools actions analyze
+  main classification cpu analyze drivers cpu tools actions analyze
 )
 
 IF(NOT MSVC)

Modified: development/source/targets/avida/SConscript
===================================================================
--- development/source/targets/avida/SConscript	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida/SConscript	2006-09-12 03:17:18 UTC (rev 945)
@@ -12,7 +12,6 @@
     'main',
     'classification',
     'cpu',
-    'event',
     'analyze',
     'drivers',
     'cpu',

Modified: development/source/targets/avida-viewer/CMakeLists.txt
===================================================================
--- development/source/targets/avida-viewer/CMakeLists.txt	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/CMakeLists.txt	2006-09-12 03:17:18 UTC (rev 945)
@@ -26,7 +26,7 @@
 ADD_EXECUTABLE(avida-viewer viewer.cc)
 
 SET(avida_viewer_target_link_libs
-  cursesviewer main classification cpu event analyze drivers cpu tools trio actions analyze ${NCURSES_LIBRARY}
+  cursesviewer main classification cpu analyze drivers cpu tools trio actions analyze ${NCURSES_LIBRARY}
 )
 
 

Modified: development/source/targets/avida-viewer/SConscript
===================================================================
--- development/source/targets/avida-viewer/SConscript	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/SConscript	2006-09-12 03:17:18 UTC (rev 945)
@@ -25,7 +25,6 @@
     'main',
     'classification',
     'cpu',
-    'event',
     'analyze',
     'drivers',
     'cpu',

Modified: development/source/targets/avida-viewer/cOptionsScreen.cc
===================================================================
--- development/source/targets/avida-viewer/cOptionsScreen.cc	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/cOptionsScreen.cc	2006-09-12 03:17:18 UTC (rev 945)
@@ -79,7 +79,6 @@
   Box(0, Height() - 5, Width(), 5);
 
   SetBoldColor(COLOR_CYAN);
-  Print(5, 15, "%d", info.GetConfig().MAX_UPDATES.Get());
   Print(6, 15, "%dx%d", info.GetPopulation().GetWorldX(),
 	info.GetPopulation().GetWorldY());
   Print(7, 15, "%d", info.GetRandom().GetSeed());

Modified: development/source/targets/avida-viewer/cTextViewerDriver.cc
===================================================================
--- development/source/targets/avida-viewer/cTextViewerDriver.cc	2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/cTextViewerDriver.cc	2006-09-12 03:17:18 UTC (rev 945)
@@ -61,7 +61,7 @@
       change_list->Reset();
     }
     
-    m_world->GetEvents();
+    m_world->GetEvents(ctx);
     if (m_done == true) break;
     
     // Increment the Update.

Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg	2006-09-12 00:36:14 UTC (rev 944)
+++ development/support/config/avida.cfg	2006-09-12 03:17:18 UTC (rev 945)
@@ -7,39 +7,34 @@
 
 ### GENERAL_GROUP ###
 # General Settings
-ANALYZE_MODE 0     # 0 = Disabled
-                   # 1 = Enabled
-                   # 2 = Interactive
-VIEW_MODE 0        # Initial viewer screen
-CLONE_FILE -       # Clone file to load
-MT_CONCURRENCY 1   # Number of concurrent analyze threads
-VERBOSITY 1        # Control output verbosity
+ANALYZE_MODE 0    # 0 = Disabled
+                  # 1 = Enabled
+                  # 2 = Interactive
+VIEW_MODE 0       # Initial viewer screen
+CLONE_FILE -      # Clone file to load
+MT_CONCURRENCY 1  # Number of concurrent analyze threads
+VERBOSITY 1       # Control output verbosity
 
 ### ARCH_GROUP ###
 # Architecture Variables
-MAX_UPDATES -1        # Maximum updates to run experiment (-1 = no limit)
-MAX_GENERATIONS -1    # Maximum generations to run experiment (-1 = no limit)
-END_CONDITION_MODE 0  # End run when ...
-                      # 0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached
-                      # 1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached
-WORLD_X 60            # Width of the Avida world
-WORLD_Y 60            # Height of the Avida world
-WORLD_GEOMETRY 2      # 1 = Bounded Grid
-                      # 2 = Torus
-NUM_DEMES 0           # Number of independed groups in the population; 0=off
-RANDOM_SEED 0         # Random number seed (0 for based on time)
-HARDWARE_TYPE 0       # 0 = Original CPUs
-                      # 1 = New SMT CPUs
-                      # 2 = Transitional SMT
+WORLD_X 100       # Width of the Avida world
+WORLD_Y 100       # Height of the Avida world
+WORLD_GEOMETRY 2  # 1 = Bounded Grid
+                  # 2 = Torus
+NUM_DEMES 0       # Number of independed groups in the population; 0=off
+RANDOM_SEED 0     # Random number seed (0 for based on time)
+HARDWARE_TYPE 0   # 0 = Original CPUs
+                  # 1 = New SMT CPUs
+                  # 2 = Transitional SMT
 
 ### CONFIG_FILE_GROUP ###
 # Configuration Files
-DATA_DIR data                      # Directory in which config files are found
-INST_SET -                         # File containing instruction set
-EVENT_FILE events.cfg              # File containing list of events during run
-ANALYZE_FILE analyze.cfg           # File used for analysis mode
-ENVIRONMENT_FILE environment.cfg   # File that describes the environment
-START_CREATURE default-classic.org # Organism to seed the soup
+DATA_DIR data                       # Directory in which config files are found
+INST_SET -                          # File containing instruction set
+EVENT_FILE events.cfg               # File containing list of events during run
+ANALYZE_FILE analyze.cfg            # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg    # File that describes the environment
+START_CREATURE default-classic.org  # Organism to seed the soup
 
 ### REPRODUCTION_GROUP ###
 # Birth and Death
@@ -50,7 +45,7 @@
                          # 4 = Replace random from population (Mass Action)
                          # 5 = Replace oldest in entire population (like Tierra)
                          # 6 = Replace random within deme
-PREFER_EMPTY 1           # Are empty cells given preference in offsping placement?
+PREFER_EMPTY 1           # Give empty cells preference in offsping placement?
 DEATH_METHOD 2           # 0 = Never die of old age.
                          # 1 = Die when inst executed = AGE_LIMIT (+deviation)
                          # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
@@ -61,8 +56,10 @@
                          # 1 = Set to section of dead genome (Necrophilia)
                          # 2 = Allocated space is set to random instruction.
 DIVIDE_METHOD 1          # 0 = Divide leaves state of mother untouched.
-                         # 1 = Divide resets state of mother (after the divide, we have 2 children)
-                         # 2 = Divide resets state of current thread only(does not touch possible parasite threads)
+                         # 1 = Divide resets state of mother
+                         #     (after the divide, we have 2 children)
+                         # 2 = Divide resets state of current thread only
+                         #     (does not touch possible parasite threads)
 GENERATION_INC_METHOD 1  # 0 = Only the generation of the child is
                          #     increased on divide.
                          # 1 = Both the generation of the mother and child are
@@ -70,22 +67,23 @@
 
 ### RECOMBINATION_GROUP ###
 # Sexual Recombination and Modularity
-RECOMBINATION_PROB 1.0   # probability that recombination will happen when div-sex is used
-MAX_BIRTH_WAIT_TIME -1   # Updates incipiant orgs can wait for crossover
-MODULE_NUM 0             # number of modules in the genome
-CONT_REC_REGS 1          # are (modular) recombination regions continuous
-CORESPOND_REC_REGS 1     # are (modular) recombination regions swapped at random or with corresponding ones, by location
-TWO_FOLD_COST_SEX 0      # 1 = only one recombined offspring is born.
-                         # 2 = both offspring are born
-SAME_LENGTH_SEX 0        # 0 = recombine with any genome
-                         # 1 = only recombine w/ same length
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0            # number of modules in the genome
+CONT_REC_REGS 1         # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
+                        #  or with corresponding positions?
+TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
+                        # 2 = both offspring are born
+SAME_LENGTH_SEX 0       # 0 = recombine with any genome
+                        # 1 = only recombine w/ same length
 
 ### DIVIDE_GROUP ###
 # Divide Restrictions
 CHILD_SIZE_RANGE 2.0  # Maximal differential between child and parent sizes.
 MIN_COPIED_LINES 0.5  # Code fraction which must be copied before divide.
 MIN_EXE_LINES 0.5     # Code fraction which must be executed before divide.
-REQUIRE_ALLOCATE 1    # (Origianl CPU Only) Is a an allocate required before a divide? (0/1)
+REQUIRE_ALLOCATE 1    # (Original CPU Only) Require allocate before divide?
 REQUIRED_TASK -1      # Task ID required for successful divide.
 IMMUNITY_TASK -1      # Task providing immunity from the required task.
 REQUIRED_REACTION -1  # Reaction ID required for successful divide.
@@ -120,6 +118,8 @@
 STERILIZE_BENEFICIAL 0.0   # 
 FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
                            # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness to be considered neutral.
 
 ### TIME_GROUP ###
 # Time Slicing
@@ -134,16 +134,17 @@
                          # 4 = Merit prop. to min of executed or copied size
                          # 5 = Merit prop. to sqrt of the minimum size
 MAX_CPU_THREADS 1        # Number of Threads a CPU can spawn
-THREAD_SLICING_METHOD 0  # Formula for and organism's thread slicing -> 1 + (num_organism_threads-1) * THREAD_SLICING_METHOD.
+THREAD_SLICING_METHOD 0  # Formula for and organism's thread slicing
+                         #   (num_threads-1) * THREAD_SLICING_METHOD + 1
                          # 0 = One thread executed per time slice.
                          # 1 = All threads executed each time slice.
 MAX_LABEL_EXE_SIZE 1     # Max nops marked as executed when labels are used
 BASE_SIZE_MERIT 100      # Base merit when size is *not* used
-DEFAULT_BONUS 1.0        # The bonus an organism gets before it has completed any tasks
+DEFAULT_BONUS 1.0        # The bonus an organism gets before any tasks
 MERIT_GIVEN 0.0          # Fraction of merit donated with 'donate' command
 MERIT_RECEIVED 0.0       # Multiplier of merit given with 'donate' command
 MAX_DONATE_KIN_DIST -1   # Limit on distance of relation for donate; -1=no max
-MAX_DONATE_EDIT_DIST -1  # Limit on genetic (edit) distance for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1  # Limit on edit distance for donate; -1=no max
 MAX_DONATES 1000000      # Limit on number of donates organisms are allowed.
 
 ### GENEOLOGY_GROUP ###
@@ -197,3 +198,9 @@
 NET_MUT_PROB 0.0   # Message corruption probability
 NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
 NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell




More information about the Avida-cvs mailing list