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.
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.
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.
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/>.
18 // this actor is used in "press other switch" switch types
19 module miscBubble is "misc" "Bubble";
27 // setup actor animations
28 public void initializeAnim () {
29 animClearFrames("misc", "Bubble", "sleep");
30 //animAddFrame("misc", "Bubble", "sleep", ACTOR_DIR_LEFT, "sprites/items/ammoa0.vga");
34 // setup actor properties
35 public void initialize (Actor me) {
38 me.flags = AF_NOCOLLISION|AF_NOGRAVITY|AF_NOONTOUCH|AF_NOLIGHT|AF_NOANIMATE|AF_PIXEL;
39 me.actorSetAnimation("sleep");
44 me.attachedLightRGBX(255, 0, 255, 8);
50 public void think (Actor me) {
52 me.xv = Z_dec(me.xv, 20);
55 auto b = mapGetTypeTile(me.vx>>11, me.vy>>11);
56 if (b != TILE_WATER && b != TILE_ACID1 && b != TILE_ACID2) {
65 public void spawn (int x, int y, int xv, int yv, int n) {
68 Z_sound(bsnd[my1randbit()], 128);
73 auto me = actorSpawn("misc", "Bubble", x, y, ACTOR_DIR_LEFT);
74 me.s = 0xC0+syncrandu31%4;
75 me.vx = (x<<8)+(syncrandu31%513)-256;
76 me.vy = (y<<8)+(syncrandu31%513)-256;
78 me.yv = yv-(syncrandu31%256)-768;
81 //writeln("bubble spawned at (", me.x, ",", me.y, ")");
86 public void spawn (int x, int y, int xv, int yv) { spawn(x, y, xv, yv, 1); }