(svn r1290) Added type to typedef struct Engine and filled in the same data as in type in vehicle
authorbjarni
Tue, 28 Dec 2004 17:18:46 +0000
changeset 819 02e9296ccdca
parent 818 906f21e653b2
child 820 9d311999f866
(svn r1290) Added type to typedef struct Engine and filled in the same data as in type in vehicle
it was kind of lame that you should use AircraftVehInfo(), ShipVehInfo() etc. if you wanted to know what type the engine is
engine.c
engine.h
--- a/engine.c	Tue Dec 28 12:11:34 2004 +0000
+++ b/engine.c	Tue Dec 28 17:18:46 2004 +0000
@@ -119,12 +119,12 @@
 {
 	Engine *e;
 	const EngineInfo *ei;
-	uint32 r;
+	uint32 r, counter = 0;
 
 	SetupEngineNames();
 
 
-	for(e=_engines, ei=_engine_info; e != endof(_engines); e++,ei++) {
+	for(e=_engines, ei=_engine_info; e != endof(_engines); e++, ei++, counter++) {
 		e->age = 0;
 		e->railtype = ei->railtype_climates >> 4;
 		e->flags = 0;
@@ -164,6 +164,25 @@
 			e->flags |= ENGINE_AVAILABLE;
 			e->player_avail = 0;
 		}
+		
+		/* This sets up type for the engine
+		   It is needed if you want to ask the engine what type it is
+		   It should hopefully be the same as when you ask a vehicle what it is
+		   but using this, you can ask what type an engine number is
+		   even if it is not a vehicle (yet)*/
+		e->type = VEH_Train;
+		if 	(counter >= ROAD_ENGINES_INDEX) {
+			e->type = VEH_Road;
+			if 	(counter >= SHIP_ENGINES_INDEX) {
+				e->type = VEH_Ship;
+				if 	(counter >= AIRCRAFT_ENGINES_INDEX) {
+					e->type = VEH_Aircraft;
+					if 	(counter >= TOTAL_NUM_ENGINES) {
+						e->type = VEH_Special;
+					}
+				}
+			}
+		}
 	}
 
 	AdjustAvailAircraft();
--- a/engine.h	Tue Dec 28 12:11:34 2004 +0000
+++ b/engine.h	Tue Dec 28 17:18:46 2004 +0000
@@ -70,6 +70,7 @@
 	byte preview_wait;
 	byte railtype;
 	byte player_avail;
+	byte type;				// type, ie VEH_Road, VEH_Train, etc. Same as in vehicle.h
 } Engine;