diff options
| author | Jan <> | 2015-07-10 18:11:22 +0200 |
|---|---|---|
| committer | Jan <_> | 2015-07-10 18:47:01 +0200 |
| commit | f1ece16c08d8c01e1d49a25f0314a96c021e73cb (patch) | |
| tree | 9bc9f547f2524dee8e62f168f317df465a6cbcdd /TemplePushing.c4s/System.c4g/Aimer.c | |
| parent | 80b15646d73587f4e15a2897314692b58aa1a47f (diff) | |
| download | tempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.tar.gz tempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.zip | |
r0.921
Diffstat (limited to 'TemplePushing.c4s/System.c4g/Aimer.c')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/Aimer.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/Aimer.c b/TemplePushing.c4s/System.c4g/Aimer.c new file mode 100644 index 0000000..30a30e9 --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Aimer.c @@ -0,0 +1,47 @@ +/*-- Aimer appendto --*/ + +#strict 2 +#appendto AIMR + +local targetDir; + +private func DoDirControl(int iDir) +{ + // Abbruch, wenn das Zielobjekt weg ist + if (!pTargetObject) return(Abort()); + // Richtungsänderung? + if (iDir != targetDir) + { + iAngle=-iAngle; + if(GetAction(pTargetObject) != "Scale") + { + pTargetObject->SetDir(iDir); + } + pArrow->UpdateAngle(iAngle); + pTargetObject->~AimingAngle(iAngle); + targetDir = iDir; + } + else + // Tastendruck in Zielrichtung: Zaubern! + DoEnter(); + return(1); +} + +private func DoUpDownControl(int iByChange) +{ + // Abbruch, wenn das Zielobjekt weg ist + if (!pTargetObject) return(Abort()); + // Zielrichtung ändern + iAngle = BoundBy(Abs(iAngle) + iByChange, 0, 180); + if (!targetDir) iAngle *= -1; + pArrow->UpdateAngle(iAngle); + pTargetObject->~AimingAngle(iAngle); + return(1); +} + +public func Create(object pCommandObject, object pMenuObj, int iStartAngle) +{ + var ret = _inherited(pCommandObject, pMenuObj, iStartAngle); + targetDir = pTargetObject->GetDir(); + return ret; +}
\ No newline at end of file |
