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