(svn r10911) [NewGRF_ports] -Change: restored opntitle.dat by adding basic International airport functionality. NewGRF_ports
authorrichk
Wed, 15 Aug 2007 23:07:06 +0000
branchNewGRF_ports
changeset 6828 8de7a4609b33
parent 6827 3274ed92c5d5
child 6829 44422a5fcc6c
(svn r10911) [NewGRF_ports] -Change: restored opntitle.dat by adding basic International airport functionality.
Please note: motion on International is not debugged, and it will not work properly. It is sufficient that it loads for now.
bin/data/airportsextended.grf
bin/data/opntitle.dat
bin/data/opntitle.datold
bin/data/sprites/airportsextended.nfo
src/newgrf_config.cpp
src/openttd.cpp
Binary file bin/data/airportsextended.grf has changed
Binary file bin/data/opntitle.dat has changed
Binary file bin/data/opntitle.datold has changed
--- a/bin/data/sprites/airportsextended.nfo	Wed Aug 15 22:33:37 2007 +0000
+++ b/bin/data/sprites/airportsextended.nfo	Wed Aug 15 23:07:06 2007 +0000
@@ -1,7 +1,7 @@
 // Automatically generated by GRFCODEC. Do not modify!
 // (Info version 7)
 // Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
-    0 * 4	 7C 00 00 00
+    0 * 4	 82 00 00 00
 
 // Length of GRF in sprites
 // if version of TTDPatch higher than X, skip two sprites
@@ -667,7 +667,7 @@
 			06 06 16
 				  00 01 02 01 01 03
 				  04 05 06 07 08 09
-				  0A 0B 0C 0D 0E 0F
+				  0A 0B 0C 0D 08 0F
 				  10 08 08 08 08 11
 				  12 13 13 13 13 12
 				  14 15 15 15 15 14
@@ -687,10 +687,11 @@
 
 	// Metropolitan Airport : Position 01
 	\w85 \w27 \w0 00 \wx0000 42
-		04
+		05
 			40 00 00 00
 			02 42 00 06
 			03 42 00 06
+			41 42 00 06
 			00 42 00 07
 
 	// Metropolitan Airport : Position 02
@@ -718,18 +719,19 @@
 			40 42 00 05
 
 	// Metropolitan Airport : Position 05
-	\w70 \w6 \w0 00 \wx0000 42
+	\w72 \w6 \w0 00 \wx0000 42
 		03
 			02 02 42 03
 			03 03 42 04
 			00 42 00 06
 
 	// Metropolitan Airport : Position 06
-	\w70 \w33 \w0 00 \wx0000 42
-		04
+	\w72 \w33 \w0 00 \wx0000 42
+		05
 			02 42 00 05
 			03 42 00 05
 			40 42 00 01
+			41 00 42 08
 			00 42 00 07
 
 	// Metropolitan Airport : Position 07
@@ -875,17 +877,489 @@
 	// Use graphics ID (1 station, ID 0, 0 cargo specific graphics, default cargo = 0)
   118 * 7	 03 0D 01 01 00 06 00
 
-// Name
+
+//-------------------------
+// International Airport
+//-------------------------
+
+// 12 properties to change, 1 station to change, station id = 02
+  119 * 1356	 00 0D 0C 01 02
+
+// Class ID
+	08 "INTL"
+ //Sprite layout
+		09 10
+// tilelayout:00   was 88 = 0x58 :
+			59 0A 00 00
+					00 00 00 10 01 06 68 8A 00 80
+				80
+
+// tilelayout:01   was 89 = 0x59 :
+			56 0A 00 00
+					00 00 00 10 01 06 68 8A 00 80
+				80
+
+// tilelayout:02   was 51 = 0x33 :
+			8D 0F 00 00
+					07 07 00 02 02 46 29 0A 00 80
+					00 00 00 01 10 06 67 8A 00 80
+				80
+
+// tilelayout:03   was 8 = 0x08 :
+			4A 0A 00 00
+				80
+
+// tilelayout:04   was 32 = 0x20 :
+			4A 0A 00 00
+					0E 00 00 02 10 1C 5F 8A 00 80
+					00 00 00 02 10 1C 60 0A 00 80
+				80
+
+// tilelayout:05   was 30 = 0x1E :
+			4A 0A 00 00
+					03 03 00 0A 0B 23 5D 8A 00 80
+				80
+
+// tilelayout:06   was 11 = 0x0B :
+			4B 0A 00 00
+				80
+
+// tilelayout:07   was 27 = 0x1B :
+			4A 0A 00 00
+					02 00 00 0B 10 28 5A 8A 00 80
+				80
+
+// tilelayout:08   was 10 = 0x0A :
+			4A 0A 00 00
+					0F 00 00 01 10 06 67 8A 00 80
+				80
+
+// tilelayout:09   was 114 = 0x72 :
+			4A 0A 00 00
+					0A 06 00 00 00 00 22 17 00 80
+					0F 00 00 01 10 06 67 8A 00 80
+				80
+
+// tilelayout:0A   was 87 = 0x57 :
+			4A 0A 00 00
+					00 00 00 01 10 06 67 8A 00 80
+				80
+
+// tilelayout:0B   was 85 = 0x55 :
+			4A 0A 00 00
+					03 03 00 0A 0A 3C 5B 8A 00 80
+				80
+
+// tilelayout:0C   was 90 = 0x5A :
+			4A 0A 00 00
+					07 07 00 02 02 08 78 0A 00 80
+					0F 00 00 01 10 06 67 8A 00 80
+				80
+
+// tilelayout:0D   was 26 = 0x1A :
+			59 0A 00 00
+					00 0F 00 10 01 06 68 8A 00 80
+				80
+
+// tilelayout:0E   was 23 = 0x17 :
+			56 0A 00 00
+					00 0F 00 10 01 06 68 8A 00 80
+				80
+
+// 0F International Airport mini pic
+			8E 04 00 08
+				80
+
+// 0F sprites defined
+// Prop0B Callbacks
+		0B 01 //Availability
+
+// Define custom layouts
+		0E 01
+			01
+			07 07 0F
+				  00 01 01 01 01 01 00
+				  02 03 03 03 03 03 04
+				  05 03 06 07 06 03 08
+				  04 03 06 07 06 03 09
+				  0A 03 06 0B 06 03 09
+				  0A 03 03 03 03 03 0C
+				  0D 0E 0E 0E 0E 0E 0D
+
+// Prop19 Vehicle Type
+		19 03 //Air
+
+// Define Finite State Machine
+		1A 33  // positions 00-32
+
+	// International Airport : Position 00
+	\w7 \w55 \w0 40 \wx0007 00  // HANGAR
+		05
+			40 45 00 02
+			7E 00 46 00 02
+			7E 01 49 00 02
+			51 25 00 02
+			41 46 00 02
+
+	// International Airport : Position 01
+	\w100 \w21 \w0 40 \wx0007 00  // HANGAR
+		05
+			40 48 00 03
+			7E 01 48 00 03
+			7E 00 48 00 03
+			51 7E 26 48 7F 00 03
+			41 48 00 03
+
+	// International Airport : Position 02
+	\w7 \w70 \w0 00 \wx0000 45
+		08
+			40 00 00 00
+			04 00 00 0C
+			05 00 00 0C
+			06 00 00 0C
+			25 00 00 0C
+			26 00 00 0C
+			51 00 00 0C
+			00 00 00 17
+
+	// International Airport : Position 03
+	\w100 \w36 \w0 00 \wx0000 48
+		02
+			40 00 00 01
+			00 00 00 12
+
+	// International Airport : Position 04
+	\w38 \w70 \w0 01 \wx000B 00  // TERM1
+		03
+			01 00 00 17
+			40 45 00 17
+			00 00 00 17
+
+	// International Airport : Position 05
+	\w38 \w54 \w0 02 \wx000B 02  // TERM2
+		03
+			02 02 00 18
+			40 45 00 18
+			00 00 00 18
+
+	// International Airport : Position 06
+	\w38 \w38 \w0 03 \wx000B 03  // TERM3
+		03
+			03 03 00 19
+			40 45 00 19
+			00 00 00 19
+
+	// International Airport : Position 07
+	\w70 \w70 \w0 04 \wx0003 04  // TERM4
+		03
+			04 04 00 10
+			40 48 00 10
+			00 00 00 10
+
+	// International Airport : Position 08
+	\w70 \w54 \w0 05 \wx0003 05  // TERM5
+		03
+			05 05 00 11
+			40 48 00 11
+			00 00 00 11
+
+	// International Airport : Position 09
+	\w70 \w38 \w0 06 \wx0003 06  // TERM6
+		03
+			06 06 00 12
+			40 48 00 12
+			00 00 00 12
+
+	// International Airport : Position 0A
+	\w104 \w71 \w0 25 \wx0003 25  // HELIPAD1
+		03
+			25 25 00 0A
+			40 48 00 10
+			51 00 00 2F
+
+	// International Airport : Position 0B
+	\w104 \w55 \w0 26 \wx0003 26  // HELIPAD2
+		03
+			26 26 00 0B
+			40 48 00 11
+			51 00 00 30
+
+	// International Airport : Position 0C
+	\w22 \w87 \w0 00 \wx0000 49
+		01
+			00 49 00 0D
+
+	// International Airport : Position 0D
+	\w60 \w87 \w0 00 \wx0000 49
+		01
+			00 49 00 0E
+
+	// International Airport : Position 0E
+	\w66 \w87 \w0 00 \wx0000 4A
+		01
+			00 4A 00 0F
+
+	// International Airport : Position 0F
+	\w86 \w87 \w0 00 \wx000F 4A
+		01
+			00 4A 00 10
+
+	// International Airport : Position 10
+	\w86 \w70 \w0 00 \wx0000 47
+		04
+			04 04 00 07
+			25 25 00 0A
+			51 25 00 0A
+			00 00 00 11
+
+	// International Airport : Position 11
+	\w86 \w54 \w0 00 \wx0000 47
+		06
+			05 05 00 08
+			04 00 00 10
+			25 00 00 10
+			26 26 00 0B
+			51 26 00 0B
+			00 00 00 12
+
+	// International Airport : Position 12
+	\w86 \w38 \w0 00 \wx0000 47
+		04
+			06 06 00 09
+			41 00 00 13
+			40 48 00 03
+			00 00 00 11
+
+	// International Airport : Position 13
+	\w86 \w22 \w0 00 \wx0000 4B
+		01
+			00 4B 00 14
+
+	// International Airport : Position 14
+	\w66 \w22 \w0 00 \wx0000 4B
+		01
+			00 4B 00 15
+
+	// International Airport : Position 15
+	\w60 \w22 \w0 00 \wx0000 4C
+		01
+			00 4C 00 16
+
+	// International Airport : Position 16
+	\w38 \w22 \w0 00 \wx0000 4C
+		01
+			00 4C 00 1A
+
+	// International Airport : Position 17
+	\w22 \w70 \w0 00 \wx0000 46
+		03
+			01 00 00 04
+			40 45 00 02
+			00 00 00 18
+
+	// International Airport : Position 18
+	\w22 \w58 \w0 00 \wx0000 46
+		04
+			02 02 00 05
+			01 00 00 17
+			40 00 00 17
+			00 00 00 19
+
+	// International Airport : Position 19
+	\w22 \w38 \w0 00 \wx0000 46
+		03
+			03 03 00 06
+			41 00 00 1A
+			00 00 00 18
+
+	// International Airport : Position 1A
+	\w22 \w22 \w0 00 \wx000F 42
+		02
+			41 00 00 1B
+			00 00 00 19
+
+	// International Airport : Position 1B
+	\w22 \w6 \w0 00 \wx0000 43
+		01
+			00 43 00 1C
+
+	// International Airport : Position 1C
+	\w3 \w6 \w0 41 \wx000B 43  // TAKEOFF
+		01
+			00 43 00 1D
+
+	// International Airport : Position 1D
+	\w60 \w6 \w0 00 \wx0010 41
+		01
+			00 41 00 1E
+
+	// International Airport : Position 1E
+	\w105 \w6 \w0 42 \wx0010 00  // STARTTAKEOFF
+		01
+			00 00 00 1F
+
+	// International Airport : Position 1F
+	\w190 \w6 \w80 43 \wx0010 00  // ENDTAKEOFF
+		01
+			00 00 00 00
+
+	// International Airport : Position 20
+	\w193 \w104 \w80 7F \wx0030 00  // FLYING
+		03
+			7F 00 00 25
+			44 40 00 21
+			54 00 00 29
+
+	// International Airport : Position 21
+	\w105 \w104 \w0 44 \wx0010 40  // LANDING
+		01
+			00 40 00 22
+
+	// International Airport : Position 22
+	\w3 \w104 \w0 00 \wx0050 40
+		01
+			00 40 00 23
+
+	// International Airport : Position 23
+	\w12 \w104 \w0 00 \wx0020 40
+		01
+			00 40 40 24
+
+	// International Airport : Position 24
+	\w7 \w84 \w0 45 \wx0000 44  // ENDLANDING
+		07
+			45 44 00 24
+			7E 00 46 00 0C
+			7E 01 49 00 0C
+			04 00 00 0C
+			05 00 00 0C
+			06 00 00 0C
+			00 00 00 02
+
+	// International Airport : Position 25
+	\wxFFE1 \w209 \w80 00 \wx0030 00
+		01
+			00 00 00 26
+
+	// International Airport : Position 26
+	\w1 \w6 \w80 00 \wx0030 00
+		01
+			00 00 00 27
+
+	// International Airport : Position 27
+	\w273 \w6 \w80 00 \wx0030 00
+		01
+			00 00 00 28
+
+	// International Airport : Position 28
+	\w305 \w81 \w80 00 \wx0030 00
+		01
+			00 00 00 20
+
+	// International Airport : Position 29
+	\w128 \w80 \w0 54 \wx0030 4D  // HELILANDING
+		01
+			54 4D 00 2A
+
+	// International Airport : Position 2A
+	\w128 \w80 \w0 55 \wx0030 4D  // HELIENDLANDING
+		04
+			55 4D 00 2A
+			25 00 00 2B
+			26 00 00 2C
+			40 00 00 31
+
+	// International Airport : Position 2B
+	\w96 \w71 \w0 00 \wx0030 00
+		01
+			00 00 00 2D
+
+	// International Airport : Position 2C
+	\w96 \w55 \w0 00 \wx0030 00
+		01
+			00 00 00 2E
+
+	// International Airport : Position 2D
+	\w96 \w71 \w0 00 \wx0000 00
+		01
+			25 25 00 0A
+
+	// International Airport : Position 2E
+	\w96 \w55 \w0 00 \wx0000 00
+		01
+			26 26 00 0B
+
+	// International Airport : Position 2F
+	\w104 \w71 \w80 51 \wx0000 00  // HELITAKEOFF
+		01
+			51 00 00 00
+
+	// International Airport : Position 30
+	\w104 \w55 \w80 51 \wx0000 00  // HELITAKEOFF
+		01
+			51 00 00 00
+
+	// International Airport : Position 31
+	\w104 \w32 \w0 00 \wx0030 48
+		01
+			00 48 00 32
+
+	// International Airport : Position 32
+	\w104 \w32 \w0 00 \wx0000 48
+		01
+			00 48 00 03
+
+// Prop1C Vehicle Entry Points
+		1C 25 25 25 25
+
+// Prop1D Hangar/Depot Locations
+		1D 02 00 03 01 06 01 02
+
+// Prop1E Terminal Groups
+		1E 02 03 03
+
+// Prop1F Helipad Groups
+		1F 01 02
+
+// Prop20 Port Subtype
+		20 03
+
+// Prop22 Catchment Area
+		22 08
+
+//availability date varaction2
+//International Airport available from 1994 (1920+74) to 2175 (1920+255)
+  120 * 14	 02 0D
+		06 // ID
+		81 01 // Variable 01 (current date)
+		00 FF
+		01
+		01 FF 4A FF  //1951-2175
+		00 FF
+
+//!!Error (164): Offset 10: 13 is not a valid callback for this feature.
+  121 * 14	 02 0D
+		07 // ID
+		81 0C // Check variable 0C (callback id)
+		00 FF
+		01
+		06 00 13 13 // Jump to action 2 ID 02 if this is callback 13
+		00 00 // Otherwise return the real sprites
+
+	// Use graphics ID (1 station, ID 2, 0 cargo specific graphics, default cargo = 0)
+  122 * 7	 03 0D 01 02 00 07 00
+
 
 // Name
 // Set the name of the station; all languages, 1 string, offset of CD 00, because 'generic strings' flag is set it's a word.
-  119 * 21	 04 0D FF 01 00 CD "Small airports" 00
-  120 * 25	 04 0D 9F 01 00 CD "Kleine vliegvelden" 00
-  121 * 23	 04 0D FF 01 00 CE "Commuter airport" 00
-  122 * 22	 04 0D 9F 01 00 CE "Pendelvliegveld" 00
-  123 * 21	 04 0D FF 01 01 CD "Large airports" 00
-  124 * 27	 04 0D FF 01 01 CE "Metropolitan Airport" 00
-//	117 * 29	 04 0D FF 01 02 CD "International airports" 00
+  123 * 21	 04 0D FF 01 00 CD "Small airports" 00
+  124 * 25	 04 0D 9F 01 00 CD "Kleine vliegvelden" 00
+  125 * 23	 04 0D FF 01 00 CE "Commuter airport" 00
+  126 * 22	 04 0D 9F 01 00 CE "Pendelvliegveld" 00
+  127 * 21	 04 0D FF 01 01 CD "Large airports" 00
+  128 * 27	 04 0D FF 01 01 CE "Metropolitan Airport" 00
+  129 * 29	 04 0D FF 01 02 CD "International airports" 00
+  130 * 28	 04 0D FF 01 02 CE "International Airport" 00
 //	118 * 16	 04 0D FF 01 03 CD "Heliports" 00
 
 // The Fence Layouts
--- a/src/newgrf_config.cpp	Wed Aug 15 22:33:37 2007 +0000
+++ b/src/newgrf_config.cpp	Wed Aug 15 23:07:06 2007 +0000
@@ -114,6 +114,21 @@
 	*config = NULL;
 }
 
+/* Adds a GRF from the global _all_grfs list to the list for the current game.
+ * Useful for adding compulsory grfs to older games.
+ */
+void AddGRFTToGameListByGRFid(uint32 grfid)
+{
+	/* Copy GRF details from scanned list */
+	GRFConfig *c = CallocT<GRFConfig>(1);
+	const GRFConfig *src = FindGRFConfig(grfid, NULL);  // OAPD - airportsbasic.grf
+	*c = *src;
+	c->filename = strdup(src->filename);
+	if (src->name != NULL) c->name = strdup(src->name);
+	if (src->info != NULL) c->info = strdup(src->info);
+	c->next = NULL;
+	AppendToGRFConfigList(&_grfconfig, c);
+}
 
 /** Copy a GRF Config list
  * @param dst pointer to destination list
@@ -208,6 +223,8 @@
 void ResetGRFConfig(bool defaults)
 {
 	CopyGRFConfigList(&_grfconfig, _grfconfig_newgame, !defaults);
+	AddGRFTToGameListByGRFid(0x4450414F);  // OAPD - airportsbasic.grf
+	AddGRFTToGameListByGRFid(0x5850414F);  // OAPX - airportsextended.grf
 	AppendStaticGRFConfigs(&_grfconfig);
 }
 
@@ -480,22 +497,6 @@
 	}
 }
 
-/* Adds a GRF from the global _all_grfs list to the list for the current game.
- * Useful for adding compulsory grfs to older games.
- */
-void AddGRFTToGameListByGRFid(uint32 grfid)
-{
-	/* Copy GRF details from scanned list */
-	GRFConfig *c = CallocT<GRFConfig>(1);
-	const GRFConfig *src = FindGRFConfig(grfid, NULL);  // OAPD - airportsbasic.grf
-	*c = *src;
-	c->filename = strdup(src->filename);
-	if (src->name != NULL) c->name = strdup(src->name);
-	if (src->info != NULL) c->info = strdup(src->info);
-	c->next = NULL;
-	AppendToGRFConfigList(&_grfconfig, c);
-}
-
 static void Load_NGRF()
 {
 	ClearGRFConfigList(&_grfconfig);
--- a/src/openttd.cpp	Wed Aug 15 22:33:37 2007 +0000
+++ b/src/openttd.cpp	Wed Aug 15 23:07:06 2007 +0000
@@ -1520,6 +1520,11 @@
 										ResetAirportToNewGRFSpec(t, st, 0x5850414F, 1);
 									}
 									break;
+								case AT_INTERNATIONAL:
+									{
+										ResetAirportToNewGRFSpec(t, st, 0x5850414F, 2);
+									}
+									break;
 								default:
 									break;
 							}