From 54abe03d86f8f7783c741b0249c710a8d08ec1cf Mon Sep 17 00:00:00 2001 From: Titus Tscharntke Date: Thu, 10 Jun 2010 21:33:50 +0000 Subject: [PATCH] megacpu bug hunting --- source/glest_game/ai/ai_rule.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/source/glest_game/ai/ai_rule.cpp b/source/glest_game/ai/ai_rule.cpp index 8e3ff1e9..5c443abf 100644 --- a/source/glest_game/ai/ai_rule.cpp +++ b/source/glest_game/ai/ai_rule.cpp @@ -530,15 +530,22 @@ void AiRuleProduce::produceSpecific(const ProduceTask *pt){ int currentCommandCount=0; for(unsigned int i=randomstart; i= producers.size()) { + currentProducerIndex=producers[i - producers.size()]; + } + else { + currentProducerIndex=producers[i]; + } + if(currentProducerIndex >= aiInterface->getMyUnitCount()) { char szBuf[1024]=""; + printf("In [%s::%s Line: %d] currentProducerIndex >= aiInterface->getMyUnitCount(), currentProducerIndex = %d, aiInterface->getMyUnitCount() = %d, i = %d,producers.size() = %d\n",__FILE__,__FUNCTION__,__LINE__,currentProducerIndex,aiInterface->getMyUnitCount(),i,producers.size()); sprintf(szBuf,"In [%s::%s Line: %d] currentProducerIndex >= aiInterface->getMyUnitCount(), currentProducerIndex = %d, aiInterface->getMyUnitCount() = %d, i = %d,producers.size() = %d",__FILE__,__FUNCTION__,__LINE__,currentProducerIndex,aiInterface->getMyUnitCount(),i,producers.size()); throw runtime_error(szBuf); } if(currentProducerIndex >= producers.size()) { char szBuf[1024]=""; + printf("In [%s::%s Line: %d] currentProducerIndex >= producers.size(), currentProducerIndex = %d, i = %d,producers.size() = %d \n",__FILE__,__FUNCTION__,__LINE__,currentProducerIndex,i,producers.size()); sprintf(szBuf,"In [%s::%s Line: %d] currentProducerIndex >= producers.size(), currentProducerIndex = %d, i = %d,producers.size() = %d",__FILE__,__FUNCTION__,__LINE__,currentProducerIndex,i,producers.size()); throw runtime_error(szBuf); } @@ -594,8 +601,14 @@ void AiRuleProduce::produceSpecific(const ProduceTask *pt){ int bestIndex=-1; int currentCommandCount=0; for(unsigned int i=randomstart; i= backupProducers.size()) { + currentProducerIndex=backupProducers[i - backupProducers.size()]; + } + else { + currentProducerIndex=backupProducers[i]; + } + currentCommandCount=aiInterface->getMyUnit(currentProducerIndex)->getCommandSize(); if( currentCommandCount==1 && aiInterface->getMyUnit(currentProducerIndex)->getCurrCommand()->getCommandType()->getClass()==ccStop)