/* weapons.h - ship weapons and other equipment Copyright (C) 2006 Mark boyd This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be fun to play, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef WEAPONS_H #define WEAPONS_H #include #include "sound.h" #include "etc.h" class mover; enum weapon_id { WT_NOTHING, WT_PEASHOOTER, WT_RAPISHOOTER, WT_SHOVER, WT_ROCKET, WT_FLAKKER, WT_PLASMOID, WT_SCATTER, }; struct weapon_mount { float loc_x; float loc_y; float angle; const char *name; int reload; weapon_id type; }; struct weapon_type { const char *name; int cost; float exit_speed; float ttl; int damage; const char *image_file; float recoil; int reload; detonation_fn_t *det_fn; expiration_fn_t *exp_fn; const char *shop_graphic; int mass; float energy_cost; sound::snd_id sound_effect; const char *description; }; const std::vector &weapon_types(); //Engines are not really weapons //(maybe this file should be called "equipment.h") enum engine_id { //No "empty" value this time because the ship must always have an engine ET_PIFFLER, ET_THRUSTER, ET_STREAKER }; struct engine_type { const char *name; int cost; float thrust; int mass; const char *description; }; const std::vector &engine_types(); //systems aren't weapons either :/ enum system_id { ST_EMPTY, ST_GENERATOR, ST_BATTERY, ST_LEAD, ST_SUPERGENERATOR, //better battery/generator? //shield regenerator? //defence systems? //tractor imporovements? }; struct system_type { const char *name; int cost; int mass; const char *shop_graphic; const char *description; }; const std::vector &system_types(); #endif