summaryrefslogtreecommitdiffstats
path: root/Targets.c4d/System.c4g/CannonTower.c
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2017-01-02 19:33:41 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2017-01-05 16:31:26 +0100
commitfa5403dccd986022b2a849e2078f043c3225348a (patch)
tree223fac13363b078720cd6e0d04d6adf53edc5dc9 /Targets.c4d/System.c4g/CannonTower.c
downloadDTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.tar.gz
DTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.zip
Initial
Diffstat (limited to 'Targets.c4d/System.c4g/CannonTower.c')
-rw-r--r--Targets.c4d/System.c4g/CannonTower.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/Targets.c4d/System.c4g/CannonTower.c b/Targets.c4d/System.c4g/CannonTower.c
new file mode 100644
index 0000000..6d7d2ce
--- /dev/null
+++ b/Targets.c4d/System.c4g/CannonTower.c
@@ -0,0 +1,41 @@
+#strict 2
+#appendto CTW0
+
+func IsRemoteControllable() { return true; }
+
+func RemoteControlMap()
+{
+ var ret = _inherited(...);
+ ret[GetLength(ret)] = [RC7I_Control_T, "Shoot", "$CTW0_DirectShoot$"];
+ return ret;
+}
+
+func GetNextAmmo()
+{
+ if(cannon)
+ {
+ for(var i = 0, content; content = Contents(i); ++i)
+ {
+ if(GetID(content) != GUNP && cannon->~CannonAmmo(content))
+ {
+ return content;
+ }
+ }
+ }
+}
+
+func Shoot(object caller)
+{
+ if(cannon)
+ {
+ if(cannon->~IsDirectShoot())
+ {
+ return ContainedDig(caller);
+ }
+ else
+ {
+ var ammo = GetNextAmmo();
+ return ammo && cannon->~Shoot(GetID(ammo), ammo, caller);
+ }
+ }
+}