[Avida-cvs] [avida-svn] r877 - in development/source: actions event

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Sat Aug 19 14:37:35 PDT 2006


Author: brysonda
Date: 2006-08-19 17:37:35 -0400 (Sat, 19 Aug 2006)
New Revision: 877

Modified:
   development/source/actions/EnvironmentActions.cc
   development/source/event/cEventManager.cc
Log:
Transition reaction events into actions framework.

Modified: development/source/actions/EnvironmentActions.cc
===================================================================
--- development/source/actions/EnvironmentActions.cc	2006-08-19 21:29:36 UTC (rev 876)
+++ development/source/actions/EnvironmentActions.cc	2006-08-19 21:37:35 UTC (rev 877)
@@ -91,7 +91,7 @@
     if (largs.GetSize()) m_res_percent = largs.PopWord().AsDouble();
   }
   
-  const cString GetDescription() { return "OutflowScaledResource <string res_name> <double res_count>"; }
+  const cString GetDescription() { return "OutflowScaledResource <string res_name> <double res_percent>"; }
   
   void Process(cAvidaContext& ctx)
   {
@@ -134,17 +134,94 @@
 };
 
 
+class cActionSetReactionValue : public cAction
+{
+private:
+  cString m_name;
+  double m_value;
+  
+public:
+  cActionSetReactionValue(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_value(0.0)
+  {
+    cString largs(args);
+    if (largs.GetSize()) m_name = largs.PopWord();
+    if (largs.GetSize()) m_value = largs.PopWord().AsDouble();
+  }
+  
+  const cString GetDescription() { return "SetReactionValue <string reaction_name> <double value>"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetEnvironment().SetReactionValue(m_name, m_value);
+  }
+};
 
+
+class cActionSetReactionValueMult : public cAction
+{
+private:
+  cString m_name;
+  double m_value;
+  
+public:
+  cActionSetReactionValueMult(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_value(0.0)
+  {
+    cString largs(args);
+    if (largs.GetSize()) m_name = largs.PopWord();
+    if (largs.GetSize()) m_value = largs.PopWord().AsDouble();
+  }
+  
+  const cString GetDescription() { return "SetReactionValueMult <string reaction_name> <double value>"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetEnvironment().SetReactionValueMult(m_name, m_value);
+  }
+};
+
+
+class cActionSetReactionInst : public cAction
+{
+private:
+  cString m_name;
+  cString m_inst;
+  
+public:
+  cActionSetReactionInst(cWorld* world, const cString& args) : cAction(world, args), m_name(""), m_inst("")
+  {
+    cString largs(args);
+    if (largs.GetSize()) m_name = largs.PopWord();
+    if (largs.GetSize()) m_inst = largs.PopWord();
+  }
+  
+  const cString GetDescription() { return "SetReactionInst <string reaction_name> <string inst>"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetEnvironment().SetReactionInst(m_name, m_inst);
+  }
+};
+
+
+
 void RegisterEnvironmentActions(cActionLibrary* action_lib)
 {
   action_lib->Register<cActionInjectResource>("InjectResource");
   action_lib->Register<cActionInjectScaledResource>("InjectScaledResource");
   action_lib->Register<cActionOutflowScaledResource>("OutflowScaledResource");
   action_lib->Register<cActionSetResource>("SetResource");
-  
+
+  action_lib->Register<cActionSetReactionValue>("SetReactionValue");
+  action_lib->Register<cActionSetReactionValueMult>("SetReactionValueMult");
+  action_lib->Register<cActionSetReactionInst>("SetReactionInst");
+
   // @DMB - The following actions are DEPRECATED aliases - These will be removed in 2.7.
   action_lib->Register<cActionInjectResource>("inject_resource");
   action_lib->Register<cActionInjectScaledResource>("inject_scaled_resource");
   action_lib->Register<cActionOutflowScaledResource>("outflow_scaled_resource");
   action_lib->Register<cActionSetResource>("set_resource");
+
+  action_lib->Register<cActionSetReactionValue>("set_reaction_value");
+  action_lib->Register<cActionSetReactionValueMult>("set_reaction_value_mult");
+  action_lib->Register<cActionSetReactionInst>("set_reaction_inst");
 }

Modified: development/source/event/cEventManager.cc
===================================================================
--- development/source/event/cEventManager.cc	2006-08-19 21:29:36 UTC (rev 876)
+++ development/source/event/cEventManager.cc	2006-08-19 21:37:35 UTC (rev 877)
@@ -526,91 +526,6 @@
 };
 
 
-
-
-///// set_reaction_value /////
-
-/**
-* Set the value associated with a reaction to a specific level
- **/
-class cEvent_set_reaction_value : public cEvent {
-private:
-  cString reaction_name;
-  double reaction_value;
-public:
-    const cString GetName() const { return "set_reaction_value"; }
-  const cString GetDescription() const { return "set_reaction_value  <cString reaction_name> <double reaction_value>"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world;
-    m_args = in_args;
-    cString args(in_args);
-    reaction_name = args.PopWord();
-    reaction_value = args.PopWord().AsDouble();
-  }
-  void Process()
-  {
-    m_world->GetEnvironment().SetReactionValue(reaction_name, reaction_value);
-  }
-};
-
-
-///// set_reaction_value_mult /////
-
-/**
-* Change the value of the reaction by multiplying it with the imput number
- **/
-class cEvent_set_reaction_value_mult : public cEvent {
-private:
-  cString reaction_name;
-  double value_mult;
-public:
-    const cString GetName() const { return "set_reaction_value_mult"; }
-  const cString GetDescription() const { return "set_reaction_value_mult  <cString reaction_name> <double value_mult>"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world;
-    m_args = in_args;
-    cString args(in_args);
-    reaction_name = args.PopWord();
-    value_mult = args.PopWord().AsDouble();
-  }
-  void Process()
-  {
-    m_world->GetEnvironment().SetReactionValueMult(reaction_name, value_mult);
-  }
-};
-
-
-///// set_reaction_inst /////
-
-/**
-* Change the instruction triggered by the task
- **/
-class cEvent_set_reaction_inst : public cEvent {
-private:
-  cString reaction_name;
-  cString inst_name;
-public:
-    const cString GetName() const { return "set_reaction_inst"; }
-  const cString GetDescription() const { return "set_reaction_inst <cString reaction_name> <cString inst_name>"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world;
-    m_args = in_args;
-    cString args(in_args);
-    reaction_name = args.PopWord();
-    inst_name = args.PopWord();
-  }
-  void Process()
-  {
-    m_world->GetEnvironment().SetReactionInst(reaction_name, inst_name);
-  }
-};
-
 class cEventAction : public cEvent
 {
 private:
@@ -650,11 +565,6 @@
   REGISTER(join_grid_row);
   REGISTER(connect_cells);
   REGISTER(disconnect_cells);
-  
-  // Environment events --> Environment Action
-  REGISTER(set_reaction_value);
-  REGISTER(set_reaction_value_mult);
-  REGISTER(set_reaction_inst);
 }
 
 cEvent* cEventManager::ConstructEvent(const cString name, const cString& args)




More information about the Avida-cvs mailing list