1 /* 2 * Seven Kingdoms: Ancient Adversaries 3 * 4 * Copyright 1997,1998 Enlight Software Ltd. 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 * 19 */ 20 21 // Filename : OFIRMDIE.H 22 // Description : destructing firm 23 24 25 #ifndef __OFIRMDIE_H 26 #define __OFIRMDIE_H 27 28 #include <ODYNARRB.h> 29 #include <ORESDB.h> 30 31 struct FirmBuild; 32 struct FirmBitmap; 33 struct FirmDieBitmap; 34 35 // -------- define class FirmDieRes --------// 36 37 class FirmDieRes 38 { 39 public: 40 short firm_build_count; 41 short firm_bitmap_count; 42 FirmBuild *firm_build_array; 43 FirmDieBitmap *firm_bitmap_array; 44 45 char init_flag; 46 ResourceDb res_bitmap; 47 48 public: 49 FirmDieRes(); 50 ~FirmDieRes(); 51 void init(); 52 void deinit(); 53 54 FirmBuild* get_build(int buildId); 55 FirmDieBitmap* get_bitmap(int bitmapId); 56 57 private: 58 void load_build_info(); 59 void load_bitmap_info(); 60 }; 61 62 // -------- define class FirmDie --------// 63 64 #pragma pack(1) 65 class FirmDie 66 { 67 public: 68 short firm_id; 69 short firm_build_id; 70 short nation_recno; 71 short frame; 72 short frame_delay_count; 73 short loc_x1, loc_y1, loc_x2, loc_y2; 74 75 public: 76 void init(short firmId, short firmBuildId, short nationRecno, 77 short locX1, short locY1, short locX2, short locY2); 78 void init(Firm *firmPtr); 79 void pre_process(); 80 int process(); 81 void draw(int displayLayer); 82 }; 83 #pragma pack() 84 85 // -------- define class FirmDieArray --------// 86 87 #pragma pack(1) 88 class FirmDieArray : public DynArrayB 89 { 90 public: 91 FirmDieArray(); 92 ~FirmDieArray(); 93 void init(); 94 void deinit(); 95 96 int add(FirmDie *r); 97 void del(int i); 98 int is_deleted(int recno); 99 void process(); 100 101 FirmDie *operator[](int recNo); 102 }; 103 #pragma pack() 104 105 extern FirmDieRes firm_die_res; 106 extern FirmDieArray firm_die_array; 107 108 #endif 109