View Issue Details

IDProjectCategoryView StatusLast Update
0002800Spring engineLuapublic2012-06-24 18:07
ReporteroRRoSpike Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionwon't fix 
Product Version84.0 
Summary0002800: Spring.GiveOrderToUnit cann't be called
DescriptionThe method Spring.GiveOrderToUnit cann't be called in the Methods UnitCreated and UnitDestroyed.
The reason which I found was to exclude recursion. But thats is more or less not true.
My preferred code means is unitCreated and the UnitDefId is a Builder help an other Builder. Here is Spring.GiveOrderToUnit used.
Here is no recursion to find. After thinking a time about a recursion*, i can not find a behavior of the game that a UnitCreated/UnitDestroyed is called with the same unitId

* I know what recursion is
if C# Senior == me then
  To understand recursion you should understand recursion
Additional Informationlook at http://springrts.com/phpbb/viewtopic.php?t=24728&p=463494
There is only one difference, i get no error message, only the code is not executed
TagsNo tags attached.
Checked infolog.txt for Errors

Activities

zerver

2012-06-24 18:07

reporter   ~0008833

What happens is probably that one GiveOrderToUnit issued a build order, that in turn triggered UnitCreated. Therefore GiveOrderToUnit means recursion. This is hard to fix and I don't think we will do it.

At least I have no other explanation, the engine source code seems correct wrt these recursion checks.

Issue History

Date Modified Username Field Change
2011-12-01 20:48 oRRoSpike New Issue
2012-06-24 18:07 zerver Note Added: 0008833
2012-06-24 18:07 zerver Status new => closed
2012-06-24 18:07 zerver Resolution open => won't fix