[Avida-SVN] r1420 - branches/collect/source/main

blwalker at myxo.css.msu.edu blwalker at myxo.css.msu.edu
Wed Mar 21 20:08:38 PDT 2007


Author: blwalker
Date: 2007-03-21 23:08:37 -0400 (Wed, 21 Mar 2007)
New Revision: 1420

Modified:
   branches/collect/source/main/cEnvironment.cc
   branches/collect/source/main/cReactionResult.cc
   branches/collect/source/main/cReactionResult.h
Log:
changed cReactionResult::Consume() to take an extra argument.  This is a boolean flag to tell Consume whether the resource was environmental (normal Avida) or from an organism's internal resource bin.

added the new argument to the call of Consume() in cEnvironment::DoProcesses().  Compilation proceeds without a problem; I conclude that Consume() is not called anywhere else so I don't need to do other modifications.


Modified: branches/collect/source/main/cEnvironment.cc
===================================================================
--- branches/collect/source/main/cEnvironment.cc	2007-03-21 18:25:49 UTC (rev 1419)
+++ branches/collect/source/main/cEnvironment.cc	2007-03-22 03:08:37 UTC (rev 1420)
@@ -832,7 +832,7 @@
     // Mark this task as performed...
     result.MarkTask(task_id, task_quality);
 
-    // And lets process it!
+    // And let's process it!
     DoProcesses(ctx, cur_reaction->GetProcesses(), resource_count, task_quality, task_cnt, i, result);
     
     // Mark this reaction as occuring...
@@ -931,6 +931,7 @@
       consumed *= cur_process->GetMaxFraction();
       
       // @blw TODO check for internal use here; set flag
+      bool using_rbins = false;
       
       // Make sure we're not above the maximum consumption.
       if (consumed > max_consumed) consumed = max_consumed;
@@ -944,8 +945,7 @@
       if (consumed == 0.0) continue;
       
       // Mark in the results the resource consumed.
-      // @blw TODO needs an extra bool flag to say whether consumed is internal or external
-      result.Consume(res_id, consumed);
+      result.Consume(res_id, consumed, !using_rbins);
     }
     
     // Calculate the bonus

Modified: branches/collect/source/main/cReactionResult.cc
===================================================================
--- branches/collect/source/main/cReactionResult.cc	2007-03-21 18:25:49 UTC (rev 1419)
+++ branches/collect/source/main/cReactionResult.cc	2007-03-22 03:08:37 UTC (rev 1420)
@@ -63,10 +63,10 @@
 }
 
 
-void cReactionResult::Consume(int id, double num)
+void cReactionResult::Consume(int id, double num, bool is_env_resource)
 {
   ActivateReaction();
-  resources_consumed[id] += num;
+  if(is_env_resource) {resources_consumed[id] += num;}
 }
 
 

Modified: branches/collect/source/main/cReactionResult.h
===================================================================
--- branches/collect/source/main/cReactionResult.h	2007-03-21 18:25:49 UTC (rev 1419)
+++ branches/collect/source/main/cReactionResult.h	2007-03-22 03:08:37 UTC (rev 1420)
@@ -57,7 +57,7 @@
 
   bool GetActive() { return active_reaction; }
 
-  void Consume(int id, double num);
+  void Consume(int id, double num, bool is_env_resource);
   void Produce(int id, double num);
   void Detect(int id, double num);
   void Lethal(bool flag);




More information about the Avida-cvs mailing list