84bbd123 |
1 | /* |
2 | * Elite - The New Kind. |
3 | * |
4 | * Reverse engineered from the BBC disk version of Elite. |
5 | * Additional material by C.J.Pinder. |
6 | * |
7 | * The original Elite code is (C) I.Bell & D.Braben 1984. |
8 | * This version re-engineered in C by C.J.Pinder 1999-2001. |
9 | * |
10 | * email: <christian@newkind.co.uk> |
11 | * |
12 | */ |
13 | |
14 | |
15 | #ifndef SHIPDATA_H |
16 | #define SHIPDATA_H |
17 | |
18 | #include "vector.h" |
19 | |
20 | #define NO_OF_SHIPS 33 |
21 | |
22 | |
23 | |
24 | struct ship_point |
25 | { |
26 | int x; |
27 | int y; |
28 | int z; |
29 | int dist; |
30 | int face1; |
31 | int face2; |
32 | int face3; |
33 | int face4; |
34 | }; |
35 | |
36 | |
37 | struct ship_line |
38 | { |
39 | int dist; |
40 | int face1; |
41 | int face2; |
42 | int start_point; |
43 | int end_point; |
44 | }; |
45 | |
46 | |
47 | struct ship_face_normal |
48 | { |
49 | int dist; |
50 | int x; |
51 | int y; |
52 | int z; |
53 | }; |
54 | |
55 | |
56 | |
57 | struct ship_data |
58 | { |
59 | char name[32]; |
60 | int num_points; |
61 | int num_lines; |
62 | int num_faces; |
63 | int max_loot; |
64 | int scoop_type; |
65 | double size; |
66 | int front_laser; |
67 | int bounty; |
68 | int vanish_point; |
69 | int energy; |
70 | int velocity; |
71 | int missiles; |
72 | int laser_strength; |
73 | struct ship_point *points; |
74 | struct ship_line *lines; |
75 | struct ship_face_normal *normals; |
76 | }; |
77 | |
78 | |
79 | #define SHIP_SUN -2 |
80 | #define SHIP_PLANET -1 |
81 | #define SHIP_MISSILE 1 |
82 | #define SHIP_CORIOLIS 2 |
83 | #define SHIP_ESCAPE_CAPSULE 3 |
84 | #define SHIP_ALLOY 4 |
85 | #define SHIP_CARGO 5 |
86 | #define SHIP_BOULDER 6 |
87 | #define SHIP_ASTEROID 7 |
88 | #define SHIP_ROCK 8 |
89 | #define SHIP_SHUTTLE 9 |
90 | #define SHIP_TRANSPORTER 10 |
91 | #define SHIP_COBRA3 11 |
92 | #define SHIP_PYTHON 12 |
93 | #define SHIP_BOA 13 |
94 | #define SHIP_ANACONDA 14 |
95 | #define SHIP_HERMIT 15 |
96 | #define SHIP_VIPER 16 |
97 | #define SHIP_SIDEWINDER 17 |
98 | #define SHIP_MAMBA 18 |
99 | #define SHIP_KRAIT 19 |
100 | #define SHIP_ADDER 20 |
101 | #define SHIP_GECKO 21 |
102 | #define SHIP_COBRA1 22 |
103 | #define SHIP_WORM 23 |
104 | #define SHIP_COBRA3_LONE 24 |
105 | #define SHIP_ASP2 25 |
106 | #define SHIP_PYTHON_LONE 26 |
107 | #define SHIP_FER_DE_LANCE 27 |
108 | #define SHIP_MORAY 28 |
109 | #define SHIP_THARGOID 29 |
110 | #define SHIP_THARGLET 30 |
111 | #define SHIP_CONSTRICTOR 31 |
112 | #define SHIP_COUGAR 32 |
113 | #define SHIP_DODEC 33 |
114 | |
115 | extern struct ship_data missile_data; |
116 | extern struct ship_data coriolis_data; |
117 | extern struct ship_data esccaps_data; |
118 | extern struct ship_data alloy_data; |
119 | extern struct ship_data cargo_data; |
120 | extern struct ship_data boulder_data; |
121 | extern struct ship_data asteroid_data; |
122 | extern struct ship_data rock_data; |
123 | extern struct ship_data orbit_data; |
124 | extern struct ship_data transp_data; |
125 | extern struct ship_data cobra3a_data; |
126 | extern struct ship_data pythona_data; |
127 | extern struct ship_data boa_data; |
128 | extern struct ship_data anacnda_data; |
129 | extern struct ship_data hermit_data; |
130 | extern struct ship_data viper_data; |
131 | extern struct ship_data sidewnd_data; |
132 | extern struct ship_data mamba_data; |
133 | extern struct ship_data krait_data; |
134 | extern struct ship_data adder_data; |
135 | extern struct ship_data gecko_data; |
136 | extern struct ship_data cobra1_data; |
137 | extern struct ship_data worm_data; |
138 | extern struct ship_data cobra3b_data; |
139 | extern struct ship_data asp2_data; |
140 | extern struct ship_data pythonb_data; |
141 | extern struct ship_data ferdlce_data; |
142 | extern struct ship_data moray_data; |
143 | extern struct ship_data thargoid_data; |
144 | extern struct ship_data thargon_data; |
145 | extern struct ship_data constrct_data; |
146 | extern struct ship_data cougar_data; |
147 | extern struct ship_data dodec_data; |
148 | |
149 | |
150 | #endif |
151 | |