From 93226e98639dd95f7e4e3ed5637a671edd63e984 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 7 Jan 2019 20:45:24 +0100 Subject: Fix rare disappearing of curse scroll when activating without possible target --- TemplePushing.c4s/System.c4g/Curses.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/TemplePushing.c4s/System.c4g/Curses.c b/TemplePushing.c4s/System.c4g/Curses.c index 27f0e9e..07ae7e6 100644 --- a/TemplePushing.c4s/System.c4g/Curses.c +++ b/TemplePushing.c4s/System.c4g/Curses.c @@ -7,23 +7,22 @@ public func Activate(pCaster,pRealcaster) { - var pClonk=pRealcaster; - if(!pClonk) pClonk=pCaster; - if (!pClonk) return(1); - - pCasterClonk = pClonk; // Caster speichern, damit es sich unter keinen Umständen selber wählen kann - // Auswählen wenn möglich - if (pClonk->~DoSpellSelect(this(), 300, pCaster)) return(1); - - var pTarget; - // Clonk kann nicht auswählen: nächsten Gegner verfluchen - while(pTarget=FindObject(0,-300,-300,150,150,OCF_CrewMember,0,0,NoContainer(),pTarget)) - if(SelectorTarget(pTarget)) - return(ActivateTarget(pTarget)); - - // ansonsten geht nich - RemoveObject(); - return(0); + var pClonk=pRealcaster; + if (!pClonk) pClonk = pCaster; + if (!pClonk) return 1; + + pCasterClonk = pClonk; // Caster speichern, damit es sich unter keinen Umständen selber wählen kann + // Auswählen wenn möglich + if (pClonk->~DoSpellSelect(this, 300, pCaster)) return 1; + + // Clonk kann nicht auswählen: nächsten Gegner verfluchen + for (var pTarget in FindObjects(Find_OCF(OCF_CrewMember), Find_Distance(300), Find_NoContainer(), Find_Exclude(pClonk))) + if (SelectorTarget(pTarget)) + return ActivateTarget(pClonk, pTarget); + + // ansonsten geht nich + RemoveObject(); + return 0; } public func ActivateTarget(object pCaller, object pTarget) -- cgit v1.2.3-54-g00ecf