For some reason the code below throws a stack overflow error if the else statement gets executed too many times. I am trying to have the scene.targeting function select a target from the objTable passed in the params, but only targets with a .tgtFlag == false are valid selections. If the function selects a target that has a .tgtFlag == true, it recalls the scene.targeting function passing in the same set of params.
The line that breaks is “local theTarget = params.objTable[math.random( 1, #params.objTable )]” but only after “else scene.targeting(params) end” is called several times.
Any help would be greatly appreciated.
- function scene.targeting( params ) – Targeting functions
- function animateTarget( target )
- if target.savedFlag == false then
- transition.to( target, {time = 100, y = target.y - 15} )
- transition.to( target, {time = 100, delay = 150, y = target.y, onComplete = animateTarget} )
- end
- end
- – something is broken on line 79 or line 84. Getting a stack overflow whene else statement gets executed repeatedly.
- local theTarget = params.objTable[math.random( 1, #params.objTable )]
- if theTarget.tgtFlag == false then
- theTarget.tgtFlag = true
- animateTarget(theTarget)
- else
- scene.targeting(params)
- end
- end