(svn r7325) -Feature: Add support for action 5 type 0x0D, coast sprites.
authorpeter1138
Sat, 02 Dec 2006 09:54:49 +0000
changeset 5210 dc52acfad05c
parent 5209 fa3ad39e2fa7
child 5211 651c9272ad22
(svn r7325) -Feature: Add support for action 5 type 0x0D, coast sprites.
newgrf.c
newgrf.h
water_cmd.c
--- a/newgrf.c	Sat Dec 02 09:52:34 2006 +0000
+++ b/newgrf.c	Sat Dec 02 09:54:49 2006 +0000
@@ -43,6 +43,7 @@
 static int _skip_sprites; // XXX
 static uint _file_index; // XXX
 SpriteID _signal_base;
+SpriteID _coast_base;
 
 static GRFFile *_cur_grffile;
 GRFFile *_first_grffile;
@@ -2159,6 +2160,14 @@
 			replace = SPR_CANALS_BASE + 5;
 			break;
 
+		case 0x0D: /* Coast graphics */
+			if (num != 16) {
+				grfmsg(GMS_WARN, "GraphicsNews: Coast graphics sprite count must be 16, skipping.");
+				return;
+			}
+			_coast_base = _cur_spriteid;
+			break;
+
 		default:
 			grfmsg(GMS_NOTICE, "GraphicsNew: Custom graphics (type 0x%02X) sprite block of length %u (unimplemented, ignoring).\n",
 					type, num);
@@ -3326,6 +3335,7 @@
 	_traininfo_vehicle_width = 29;
 	_have_2cc = false;
 	_signal_base = 0;
+	_coast_base = 0;
 
 	InitializeSoundPool();
 	InitializeSpriteGroupPool();
--- a/newgrf.h	Sat Dec 02 09:52:34 2006 +0000
+++ b/newgrf.h	Sat Dec 02 09:54:49 2006 +0000
@@ -61,6 +61,7 @@
 
 extern GRFConfig *_first_grfconfig;
 extern SpriteID _signal_base;
+extern SpriteID _coast_base;
 extern bool _have_2cc;
 
 void LoadNewGRF(uint load_index, uint file_index);
--- a/water_cmd.c	Sat Dec 02 09:52:34 2006 +0000
+++ b/water_cmd.c	Sat Dec 02 09:54:49 2006 +0000
@@ -19,6 +19,7 @@
 #include "vehicle_gui.h"
 #include "train.h"
 #include "water_map.h"
+#include "newgrf.h"
 
 const SpriteID _water_shore_sprites[15] = {
 	0,
@@ -452,7 +453,11 @@
 
 		case WATER_COAST:
 			assert(!IsSteepSlope(ti->tileh));
-			DrawGroundSprite(_water_shore_sprites[ti->tileh]);
+			if (_coast_base != 0) {
+				DrawGroundSprite(_coast_base + ti->tileh);
+			} else {
+				DrawGroundSprite(_water_shore_sprites[ti->tileh]);
+			}
 			break;
 
 		case WATER_LOCK: {