really compiles! ;-)
[dd2d.git] / data / scripts / switch / doorclose.dacs
blob0885ff7afea55add2d82a86b6af2fec5fa514fd8
1 /* DooM2D: Midnight on the Firing Line
2  * coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
3  * Understanding is not required. Only obedience.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 module switchDoorclose is "switch" "DoorClose";
20 import apiActor;
21 import apiMap;
22 import apiSwitch;
23 import stdlib;
26 // setup actor properties
27 public void initialize (Actor me) {
31 void action (Actor me) {
32   auto toucher = me.switchWhoTouched();
33   if (toucher) {
34     int a = me.switchGetA();
35     int b = me.switchGetB();
36     if (mapGetTypeTile(a, b) != TILE_DOORO) return;
37     if (me.switchShutDoor) {
38       me.atm = 1; // cooldown time
39       me.switchSetD(0);
40     } else {
41       //if (!swsnd) swsnd = Z_sound(sndnoway, 128);
42       me.switchSetD(2);
43     }
44   }
48 // thinker
49 public void think (Actor me) {
50   me.switchDoorCloseCooldown;
51   if (me.dead) return; // just in case
52   me.switchThink(&action);