Changeset 3664
- Timestamp:
- 03/05/10 20:57:59 (6 months ago)
- Location:
- development/source/main
- Files:
-
- 2 modified
-
cAvidaConfig.h (modified) (1 diff)
-
cOrganism.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
development/source/main/cAvidaConfig.h
r3641 r3664 378 378 CONFIG_ADD_VAR(IMMUNITY_TASK, int, -1, "Task providing immunity from the required task."); 379 379 CONFIG_ADD_VAR(REQUIRED_REACTION, int, -1, "Reaction ID required for successful divide."); 380 CONFIG_ADD_VAR(IMMUNITY_REACTION, int, -1, "Reaction ID that provides immunity for successful divide."); 380 381 CONFIG_ADD_VAR(REQUIRED_BONUS, double, 0.0, "Required bonus to divide."); 381 382 CONFIG_ADD_VAR(REQUIRE_EXACT_COPY, int, 0, "Require offspring to be an exact copy (only divide mutations allowed)."); -
development/source/main/cOrganism.cc
r3618 r3664 740 740 741 741 if (required_task != -1 && m_phenotype.GetCurTaskCount()[required_task] == 0) { 742 if (immunity_task==-1 ||m_phenotype.GetCurTaskCount()[immunity_task] == 0) {742 if (immunity_task==-1 && m_phenotype.GetCurTaskCount()[immunity_task] == 0) { 743 743 Fault(FAULT_LOC_DIVIDE, FAULT_TYPE_ERROR, 744 744 cStringUtil::Stringf("Lacks required task (%d)", required_task)); … … 750 750 751 751 const int required_reaction = m_world->GetConfig().REQUIRED_REACTION.Get(); 752 if (required_reaction != -1 && m_phenotype.GetCurReactionCount()[required_reaction] == 0) { 753 Fault(FAULT_LOC_DIVIDE, FAULT_TYPE_ERROR, 752 const int immunity_reaction = m_world->GetConfig().IMMUNITY_REACTION.Get(); 753 if (required_reaction != -1 && m_phenotype.GetCurReactionCount()[required_reaction] == 0) { 754 if (immunity_reaction != -1 && m_phenotype.GetCurReactionCount()[immunity_reaction] == 0) { 755 Fault(FAULT_LOC_DIVIDE, FAULT_TYPE_ERROR, 754 756 cStringUtil::Stringf("Lacks required reaction (%d)", required_reaction)); 755 return false; // (divide fails) 757 return false; // (divide fails) 758 } 756 759 } 757 760