From 5f8ccd51156e1a7535f044e8e7b028749bacbf58 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Fri, 18 Oct 2013 18:16:09 +0000 Subject: [PATCH] tracking down oos --- source/glest_game/world/unit_updater.cpp | 12 ++++++++++-- .../sources/platform/common/platform_common.cpp | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/source/glest_game/world/unit_updater.cpp b/source/glest_game/world/unit_updater.cpp index 9ae5afbe..0446e836 100644 --- a/source/glest_game/world/unit_updater.cpp +++ b/source/glest_game/world/unit_updater.cpp @@ -2254,7 +2254,7 @@ void UnitUpdater::damage(Unit *attacker, const AttackSkillType* ast, Unit *attac //compute damage //damage += random.randRange(-var, var); - damage += attacker->getRandom()->randRange(-var, var, string(__FILE__) + intToStr(__LINE__)); + damage += attacker->getRandom()->randRange(-var, var, extractFileFromDirectoryPath(__FILE__) + intToStr(__LINE__)); damage /= distance+1; damage -= armor; damage *= damageMultiplier; @@ -2550,6 +2550,8 @@ bool UnitUpdater::unitOnRange(Unit *unit, int range, Unit **rangedPtr, bool isUltra= controlType == ctCpuUltra || controlType == ctNetworkCpuUltra; bool isMega= controlType == ctCpuMega || controlType == ctNetworkCpuMega; + string randomInfoData = "enemies.size() = " + intToStr(enemies.size()); + //printf("unit %d has control:%d\n",unit->getId(),controlType); for(int i = 0; i< enemies.size(); ++i) { Unit *enemy = enemies[i]; @@ -2562,10 +2564,14 @@ bool UnitUpdater::unitOnRange(Unit *unit, int range, Unit **rangedPtr, result = true; } + randomInfoData += " i = " + intToStr(i) + " alive = true result = " + intToStr(result); + // Attackers get first priority if(enemy->getType()->hasSkillClass(scAttack) == true) { float currentDist = unit->getCenteredPos().dist(enemy->getCenteredPos()); + randomInfoData += " currentDist = " + floatToStr(currentDist); + // Select closest attacking unit if(distToUnit < 0 || currentDist< distToUnit) { distToUnit = currentDist; @@ -2587,7 +2593,9 @@ bool UnitUpdater::unitOnRange(Unit *unit, int range, Unit **rangedPtr, } if(evalMode == false && (isUltra || isMega)) { - if( attackingEnemySeen!=NULL && unit->getRandom()->randRange(0,2,string(__FILE__) + intToStr(__LINE__)) != 2 ) { + unit->getRandom()->addLastCaller(randomInfoData); + + if( attackingEnemySeen!=NULL && unit->getRandom()->randRange(0,2,extractFileFromDirectoryPath(__FILE__) + intToStr(__LINE__)) != 2 ) { *rangedPtr = attackingEnemySeen; enemySeen = attackingEnemySeen; //printf("Da hat er wen gefunden:%s\n",enemySeen->getType()->getName(false).c_str()); diff --git a/source/shared_lib/sources/platform/common/platform_common.cpp b/source/shared_lib/sources/platform/common/platform_common.cpp index 531a86d5..92326480 100644 --- a/source/shared_lib/sources/platform/common/platform_common.cpp +++ b/source/shared_lib/sources/platform/common/platform_common.cpp @@ -726,7 +726,7 @@ pair hasCachedFileCRCValue(string crcCacheFile, uint32 &value) { string readSvnVer = Shared::PlatformByteOrder::fromCommonEndian(string(svnVer)); string readActualFilePath = Shared::PlatformByteOrder::fromCommonEndian(string(actualFilePath)); - printf("CRC readGameVer [%s] [%s]\n%s\n",readGameVer.c_str(),readSvnVer.c_str(),readActualFilePath.c_str()); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("CRC readGameVer [%s] [%s]\n%s\n",readGameVer.c_str(),readSvnVer.c_str(),readActualFilePath.c_str()); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) { SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] Line: %d for Cache file [%s] readbytes = %d\n",__FILE__,__FUNCTION__,__LINE__,crcCacheFile.c_str(),readbytes);