more conbuf API
[dd2d.git] / data / scripts / switch / press.dacs
blobca646f183f03b67e3f2871a3dc5553e514708b4f
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 switchPress is "switch" "Press";
20 import apiActor;
21 import apiMap;
22 import apiSwitch;
23 import stdlib;
26 // setup actor properties
27 public void initialize (Actor me) {
28   //me.flags = /*AF_NOCOLLISION|*/AF_NOGRAVITY|/*AF_NOONTOUCH|*/AF_NODRAW|/*AF_NOLIGHT|*/AF_NOANIMATE;
29   me.flags &= ~AF_NOLIGHT;
30   // add attached light
31   me.attLightXOfs = 0;
32   me.attLightYOfs = -8;
33   me.attachedLightRGBX(0, 0, 255, 124);
34   writeln("*** PRESS SWITCH ***");
38 void action (Actor me) {
39   auto toucher = me.switchWhoTouched();
40   if (toucher) {
41     me.atm = 9; // cooldown time
42     if (me.target.dead) {
43       int a = me.switchGetA();
44       int b = me.switchGetB();
45       me.target = actorSpawn("switch", "DummyPressActor", a*8+4, b*8+12, ACTOR_DIR_LEFT);
46       me.target.atm = 2; // 1: act; 0: die
47       me.target.invitems = toucher.invitems; // so keys will work
48     }
49   }
53 // thinker
54 public void think (Actor me) {
55   me.switchThink(&action);