(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.
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;
}