diff options
author | peter1138 <peter1138@openttd.org> | 2006-12-02 09:54:49 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-12-02 09:54:49 +0000 |
commit | 6a4d8fdd33de84ef691caa29ea77c21ff2b8d6c4 (patch) | |
tree | cade1f6a922cf31544c6a8ab37bae8a09b9dc5e0 | |
parent | 0d5b0eb4f7cba920fef7713c61bbcb08e4d817ee (diff) | |
download | openttd-6a4d8fdd33de84ef691caa29ea77c21ff2b8d6c4.tar.xz |
(svn r7325) -Feature: Add support for action 5 type 0x0D, coast sprites.
-rw-r--r-- | newgrf.c | 10 | ||||
-rw-r--r-- | newgrf.h | 1 | ||||
-rw-r--r-- | water_cmd.c | 7 |
3 files changed, 17 insertions, 1 deletions
@@ -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 @@ static void GraphicsNew(byte *buf, int len) 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 @@ static void ResetNewGRFData(void) _traininfo_vehicle_width = 29; _have_2cc = false; _signal_base = 0; + _coast_base = 0; InitializeSoundPool(); InitializeSpriteGroupPool(); @@ -61,6 +61,7 @@ typedef struct GRFConfig { extern GRFConfig *_first_grfconfig; extern SpriteID _signal_base; +extern SpriteID _coast_base; extern bool _have_2cc; void LoadNewGRF(uint load_index, uint file_index); diff --git a/water_cmd.c b/water_cmd.c index 5603d6787..8af293b95 100644 --- a/water_cmd.c +++ b/water_cmd.c @@ -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 @@ static void DrawTile_Water(TileInfo *ti) 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: { |