1 /**
2  * @file
3  * @brief XML tag constants for savegame.
4  */
5 
6 /*
7 Copyright (C) 2002-2011 UFO: Alien Invasion.
8 
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 as published by the Free Software Foundation; either version 2
12 of the License, or (at your option) any later version.
13 
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 
18 See the GNU General Public License for more details.
19 
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23 */
24 
25 #pragma once
26 
27 #define SAVE_AIRCRAFT_UFOS "UFOs"
28 #define SAVE_AIRCRAFT_PHALANX "aircraft"
29 #define SAVE_AIRCRAFT_NUMAIRCRAFT "numAircraft"
30 
31 #define SAVE_AIRCRAFT_AIRCRAFT "craft"
32 #define SAVE_AIRCRAFT_ID "id"
33 #define SAVE_AIRCRAFT_NAME "name"
34 #define SAVE_AIRCRAFT_IDX "idx"
35 
36 #define SAVE_AIRCRAFT_STATUS "status"
37 #define SAVE_AIRCRAFT_HOMEBASE "homebase"
38 
39 #define SAVE_AIRCRAFT_FUEL "fuel"
40 #define SAVE_AIRCRAFT_DAMAGE "damage"
41 #define SAVE_AIRCRAFT_POS "pos"
42 #define SAVE_AIRCRAFT_DIRECTION "direction"
43 #define SAVE_AIRCRAFT_POINT "point"
44 #define SAVE_AIRCRAFT_TIME "time"
45 
46 #define SAVE_AIRCRAFT_MISSIONID "missionid"
47 #define SAVE_AIRCRAFT_DETECTIONIDX "detectionIDX"
48 #define SAVE_AIRCRAFT_LASTSPOTTED_DATE "lastSpottedDate"
49 
50 #define SAVE_AIRCRAFT_AIRCRAFTTARGET "aircraftTarget"
51 
52 #define SAVE_AIRCRAFT_AIRSTATS "airstats"
53 #define SAVE_AIRCRAFT_AIRSTAT "stat"
54 #define SAVE_AIRCRAFT_AIRSTATID "id"
55 #define SAVE_AIRCRAFT_VAL "val"
56 
57 #define SAVE_AIRCRAFT_DETECTED "detected"
58 #define SAVE_AIRCRAFT_LANDED "landed"
59 
60 #define SAVE_AIRCRAFT_AIRCRAFTTEAM "aircraftTeam"
61 #define SAVE_AIRCRAFT_MEMBER "member"
62 #define SAVE_AIRCRAFT_TEAM_UCN "ucn"
63 
64 #define SAVE_AIRCRAFT_PILOTUCN "pilotUCN"
65 
66 #define SAVE_AIRCRAFT_CARGO "cargo"
67 
68 #define SAVE_AIRCRAFT_ITEM "item"
69 #define SAVE_AIRCRAFT_ITEMID "itemid"
70 #define SAVE_AIRCRAFT_AMOUNT "amount"
71 
72 #define SAVE_AIRCRAFT_ALIENCARGO "alienCargo"
73 
74 #define SAVE_AIRCRAFT_ROUTE "route"
75 #define SAVE_AIRCRAFT_ROUTE_DISTANCE "distance"
76 #define SAVE_AIRCRAFT_ROUTE_POINT "point"
77 
78 #define SAVE_AIRCRAFT_WEAPONS "weapons"
79 #define SAVE_AIRCRAFT_SHIELDS "shields"
80 #define SAVE_AIRCRAFT_ELECTRONICS "electronics"
81 #define SAVE_AIRCRAFT_SLOT "slot"
82 
83 #define SAVE_AIRCRAFT_PROJECTILES "projectiles"
84 
85 #define SAVE_AIRCRAFTSTATUS_NAMESPACE "saveAircraftStatus"
86 #define SAVE_AIRCRAFTSTAT_NAMESPACE "saveAircraftStat"
87 static const constListEntry_t saveAircraftConstants[] = {
88 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::none", AIR_NONE},
89 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::refuel", AIR_REFUEL},
90 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::home", AIR_HOME},
91 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::idle", AIR_IDLE},
92 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::transit", AIR_TRANSIT},
93 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::mission", AIR_MISSION},
94 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::ufo", AIR_UFO},
95 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::drop", AIR_DROP},
96 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::intercept", AIR_INTERCEPT},
97 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::transfer", AIR_TRANSFER},
98 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::returning", AIR_RETURNING},
99 	{SAVE_AIRCRAFTSTATUS_NAMESPACE"::crashed", AIR_CRASHED},
100 
101 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::speed", AIR_STATS_SPEED},
102 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::maxspeed", AIR_STATS_MAXSPEED},
103 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::shield", AIR_STATS_SHIELD},
104 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::ecm", AIR_STATS_ECM},
105 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::damage", AIR_STATS_DAMAGE},
106 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::accuracy", AIR_STATS_ACCURACY},
107 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::fuelsize", AIR_STATS_FUELSIZE},
108 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::weaponrange", AIR_STATS_WRANGE},
109 	{SAVE_AIRCRAFTSTAT_NAMESPACE"::antimatter", AIR_STATS_ANTIMATTER},
110 
111 	{nullptr, -1}
112 };
113 
114 /*
115 DTD:
116 
117 <!ELEMENT aircraft craft*>
118 <!ELEMENT UFOs craft*>
119 <!ELEMENT craft >
120 <!ATTLIST craft (pos direction weapons shields electronics route lastSpottedDate? airstats aircraftTeam cargo alienCargo)
121 	id					CDATA	#REQUIRED
122 	name				CDATA	#IMPLIED
123 	status		(none,refuel,home,idle,
124 				transit,mission,ufo,
125 				drop,intercept,transfer,
126 				returning)		#REQUIRED
127 	homebase			CDATA	#IMPLIED
128 	fuel				CDATA	'0'
129 	damage				CDATA	'0'
130 	point				CDATA	'0'
131 	time				CDATA	'0'
132 	missionid			CDATA	#IMPLIED
133 	detectionIDX		CDATA	#IMPLIED
134 	detected			CDATA	'false'
135 	landed				CDATA	'false'
136 	aircraftTarget		CDATA	#IMPLIED
137 
138 	idx					CDATA	#REQUIRED
139 	pilotUCN			CDATA	#IMPLIED
140 
141 	radarRange			CDATA	'0'
142 	radarTrackingRange	CDATA	'0'
143 >
144 ** Note: idx is required for Phalanx crafts only
145 
146 <!ELEMENT pos EMPTY>
147 <!ATTLIST pos
148 	x					CDATA	'0.0'
149 	y					CDATA	'0.0'
150 	z					CDATA	'0.0'
151 >
152 
153 <!ELEMENT direction EMPTY>
154 <!ATTLIST direction
155 	x					CDATA	'0.0'
156 	y					CDATA	'0.0'
157 	z					CDATA	'0.0'
158 >
159 
160 <!ELEMENT route point*>
161 <!ATTLIST route
162 	distance			CDATA	'0.0'
163 >
164 
165 <!ELEMENT point EMPTY>
166 <!ATTLIST point
167 	x					CDATA	'0.0'
168 	y					CDATA	'0.0'
169 >
170 
171 <!ELEMENT lastSpottedDate EMPTY>
172 <!ATTLIST lastSpottedDate
173 	day					CDATA	'0'
174 	sec					CDATA	'0'
175 >
176 
177 <!ELEMENT weapons slot*>
178 <!ELEMENT shields slot>
179 <!ELEMENT electronics slot*>
180 <!ELEMENT slot EMPTY>
181 **Note: ATTLIST of slot is defined in save_fightequip.h
182 
183 <!ELEMENT airstats airstat*>
184 <!ELEMENT airstat EMPTY>
185 <!ATTLIST airstat
186 	id		(speed,maxspeed,shield,
187 			ecm,damage,accuracy,
188 			fuelsize,weaponrange,
189 			antimatter)			#REQUIRED
190 	val					CDATA	'0'
191 >
192 
193 <!ELEMENT aircraftTeam member*>
194 <!ELEMENT member EMPTY>
195 <!ATTLIST member
196 	ucn					CDATA	#IMPLIED
197 >
198 
199 <!ELEMENT cargo item*>
200 <!ELEMENT item EMPTY>
201 <!ATTLIST item
202 	itemid				CDATA	#REQUIRED
203 	amount				CDATA	'0'
204 >
205 
206 <!ELEMENT alienCargo cargo*>
207 <!ELEMENT cargo EMPTY>
208 <!ATTLIST cargo
209 	teamdefid			CDATA	#REQUIRED
210 	alive				CDATA	'0'
211 	dead				CDATA	'0'
212 >
213 
214 <!ELEMENT projectiles projectile*>
215 **Note: projectile is defined in save_airfight.h
216 
217 */
218