Mercurial > hg > openttd
diff src/newgrf_station.cpp @ 14287:5b16d3caeef6 draft
(svn r18839) -Codechange: Detriplicate drawing of spritelayouts in the GUI.
author | frosch <frosch@openttd.org> |
---|---|
date | Sat, 16 Jan 2010 22:44:03 +0000 |
parents | a899d4e5ee1a |
children | 9a47b3371031 |
line wrap: on
line diff
--- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -11,7 +11,6 @@ #include "stdafx.h" #include "variables.h" -#include "landscape.h" #include "debug.h" #include "station_base.h" #include "waypoint_base.h" @@ -28,7 +27,6 @@ #include "animated_tile_func.h" #include "functions.h" #include "tunnelbridge_map.h" -#include "spritecache.h" #include "newgrf.h" #include "core/random_func.hpp" @@ -880,17 +878,14 @@ { const StationSpec *statspec; const DrawTileSprites *sprites; - const DrawTileSeqStruct *seq; const RailtypeInfo *rti = GetRailTypeInfo(railtype); - SpriteID relocation; - SpriteID image; SpriteID palette = COMPANY_SPRITE_COLOUR(_local_company); uint tile = 2; statspec = GetCustomStationSpec(sclass, station); if (statspec == NULL) return false; - relocation = GetCustomStationRelocation(statspec, NULL, INVALID_TILE); + uint relocation = GetCustomStationRelocation(statspec, NULL, INVALID_TILE); if (HasBit(statspec->callback_mask, CBM_STATION_SPRITE_LAYOUT)) { uint16 callback = GetStationCallback(CBID_STATION_SPRITE_LAYOUT, 0x2110000, 0, statspec, NULL, INVALID_TILE); @@ -903,7 +898,7 @@ sprites = &statspec->renderdata[(tile < statspec->tiles) ? tile + axis : (uint)axis]; } - image = sprites->ground.sprite; + SpriteID image = sprites->ground.sprite; SpriteID pal = sprites->ground.pal; if (HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { image += GetCustomStationGroundRelocation(statspec, NULL, INVALID_TILE); @@ -914,30 +909,7 @@ DrawSprite(image, GroundSpritePaletteTransform(image, pal, palette), x, y); - Point child_offset = {0, 0}; - - foreach_draw_tile_seq(seq, sprites->seq) { - image = seq->image.sprite; - if (HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { - image += rti->total_offset; - } else { - image += relocation; - } - - pal = SpriteLayoutPaletteTransform(image, seq->image.pal, palette); - - if ((byte)seq->delta_z != 0x80) { - Point pt = RemapCoords(seq->delta_x, seq->delta_y, seq->delta_z); - DrawSprite(image, pal, x + pt.x, y + pt.y); - - const Sprite *spr = GetSprite(image & SPRITE_MASK, ST_NORMAL); - child_offset.x = pt.x + spr->x_offs; - child_offset.y = pt.y + spr->y_offs; - } else { - /* For stations and original spritelayouts delta_x and delta_y are signed */ - DrawSprite(image, pal, x + child_offset.x + seq->delta_x, y + child_offset.y + seq->delta_y); - } - } + DrawCommonTileSeqInGUI(x, y, sprites, rti->total_offset, relocation, palette); return true; }