1 /* 2 * XGalaga-SDL - a SDL port of XGalaga, clone of the game Galaga 3 * Copyright (c) 1995-1998 Joe Rumsey (mrogre@mediaone.net) 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License as 7 * published by the Free Software Foundation; either version 2 of the 8 * License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * 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, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18 * 02110-1301, USA. 19 */ 20 21 #ifndef STRUCT_H 22 #define STRUCT_H 23 24 struct torp { 25 struct torp *next, *prev; 26 int alive, frame; 27 int x, y; 28 int xspeed, yspeed; 29 }; 30 31 struct star { 32 int x, y; 33 int speed; 34 Uint32 pixel; /* pixel color */ 35 }; 36 37 struct alien { 38 int x, y; 39 int dir; 40 int steer; 41 int alive; 42 int dying; 43 int path, path_pos; 44 int escorting; 45 int entering, enterdelay; 46 struct W_Image *shape; 47 }; 48 49 struct explosion { 50 struct explosion *next, *prev; 51 int x, y; 52 int frame; 53 struct W_Image *shape; 54 }; 55 56 struct score_bubble { 57 struct score_bubble *next, *prev; 58 int x, y; 59 int count; 60 struct W_Image *shape; 61 }; 62 63 struct js_state { 64 signed short but; 65 signed long dir; 66 }; 67 68 struct FNT_fixed { 69 int width, height; 70 unsigned char data[]; 71 }; 72 73 enum gstate { 74 INTRO, /* Main screen */ 75 PLAYING, /* Playing */ 76 PAUSED, /* Paused (playing) */ 77 GETTING_NAME, /* Game over, getting name for new highscore */ 78 }; 79 80 #endif 81