From 1204eeacfeaf0177d1513d71c8eb318778c8d8c3 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Tue, 24 Oct 2006 12:56:14 +0000 Subject: [PATCH] (svn r6922) -Feature: Add proper cloning sprites and cursors, different for each vehicle. Big thanks to MB for the initial design and skidd13 for the iconified version(s). -Codechange: Change the autorenew sprites from recycle to upgrade (skidd13) -Codechange: Change the shared orders icon (MeusH) -Add missing table/files.h file to VS project file. --- data/openttd.grf | Bin 28153 -> 30378 bytes depot_gui.c | 7 ++++++- gfxinit.c | 4 ++-- openttd.vcproj | 3 +++ openttd_vs80.vcproj | 4 ++++ order_gui.c | 13 ++----------- table/files.h | 2 +- table/sprites.h | 15 ++++++++++----- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/data/openttd.grf b/data/openttd.grf index 5674a4b387511c95e1c2175c62dae3ae57fffcb0..f6cebe73ca60a1409e788536bc96eae9cb5b8aa5 100644 GIT binary patch delta 4107 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 diff --git a/depot_gui.c b/depot_gui.c index f4a91dc326..3df450308c 100644 --- a/depot_gui.c +++ b/depot_gui.c @@ -692,8 +692,13 @@ static void DepotWndProc(Window *w, WindowEvent *e) ToggleWidgetLoweredState(w, DEPOT_WIDGET_CLONE); if (IsWindowWidgetLowered(w, DEPOT_WIDGET_CLONE)) { + static const CursorID clone_icons[] = { + SPR_CURSOR_CLONE_TRAIN, SPR_CURSOR_CLONE_ROADVEH, + SPR_CURSOR_CLONE_SHIP, SPR_CURSOR_CLONE_AIRPLANE + }; + _place_clicked_vehicle = NULL; - SetObjectToPlaceWnd(SPR_CURSOR_CLONE, VHM_RECT, w); + SetObjectToPlaceWnd(clone_icons[WP(w, depot_d).type - VEH_Train], VHM_RECT, w); } else { ResetObjectToPlace(); } diff --git a/gfxinit.c b/gfxinit.c index beab3b08de..f862bdc648 100644 --- a/gfxinit.c +++ b/gfxinit.c @@ -281,7 +281,7 @@ static const SpriteID _openttd_grf_indexes[] = { 616, 616, // nordic char: Æ 666, 666, // nordic char: ø 634, 634, // nordic char: Ø - SPR_PIN_UP, SPR_CURSOR_CLONE, // more icons + SPR_PIN_UP, SPR_CURSOR_CLONE_TRAIN, // more icons 382, 383, // ¼ ½ tiny 158, 159, // ¼ ½ medium 606, 607, // ¼ ½ large @@ -314,7 +314,7 @@ static const SpriteID _openttd_grf_indexes[] = { 594, 597, // ° ± ² ³ large 633, 633, // × large 665, 665, // ÷ large - SPR_SELL_TRAIN, SPR_SELL_CHAIN_TRAIN, + SPR_SELL_TRAIN, SPR_SHARED_ORDERS_ICON, END }; diff --git a/openttd.vcproj b/openttd.vcproj index 70e77455ef..6ff5dc66aa 100644 --- a/openttd.vcproj +++ b/openttd.vcproj @@ -859,6 +859,9 @@ + + diff --git a/openttd_vs80.vcproj b/openttd_vs80.vcproj index ebb717b9f0..b0bad38d4e 100644 --- a/openttd_vs80.vcproj +++ b/openttd_vs80.vcproj @@ -1443,6 +1443,10 @@ RelativePath=".\table\engines.h" > + + diff --git a/order_gui.c b/order_gui.c index bf53ff958d..d80f70280f 100644 --- a/order_gui.c +++ b/order_gui.c @@ -63,15 +63,6 @@ static void DrawOrdersWindow(Window *w) v = GetVehicle(w->window_number); not_localplayer = v->owner != _local_player; - if (v->type != VEH_Train) { - switch (v->type) { - case VEH_Road: w->widget[11].data = STR_LORRY; break; - case VEH_Ship: w->widget[11].data = STR_SHIP; break; - case VEH_Aircraft: w->widget[11].data = STR_PLANE; break; - default: NOT_REACHED(); break; - } - } - shared_orders = IsOrderListShared(v); SetVScrollCount(w, v->num_orders + 1); @@ -572,7 +563,7 @@ static const Widget _orders_train_widgets[] = { { WWT_PUSHTXTBTN, RESIZE_TB, 14, 212, 264, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 265, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 372, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, -{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 373, 386, 76, 87, STR_TRAIN, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, +{ WWT_PUSHIMGBTN, RESIZE_TB, 14, 373, 386, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 372, 76, 87, STR_REFIT, STR_REFIT_TIP}, { WWT_PANEL, RESIZE_RTB, 14, 387, 386, 76, 87, 0x0, STR_NULL}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 387, 398, 76, 87, 0x0, STR_RESIZE_BUTTON}, @@ -599,7 +590,7 @@ static const Widget _orders_widgets[] = { { WWT_PUSHTXTBTN, RESIZE_TB, 14, 193, 256, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 257, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 383, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, -{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 384, 397, 76, 87, STR_EMPTY, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, +{ WWT_PUSHIMGBTN, RESIZE_TB, 14, 384, 397, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 383, 76, 87, STR_REFIT, STR_REFIT_TIP}, { WWT_PANEL, RESIZE_RTB, 14, 397, 396, 76, 87, 0x0, STR_NULL}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 398, 409, 76, 87, 0x0, STR_RESIZE_BUTTON}, diff --git a/table/files.h b/table/files.h index 2ec2cfe08b..7bcbf64bfd 100644 --- a/table/files.h +++ b/table/files.h @@ -60,6 +60,6 @@ static MD5File files_openttd[] = { { "autorail.grf", { 0xed, 0x44, 0x7f, 0xbb, 0x19, 0x44, 0x48, 0x4c, 0x07, 0x8a, 0xb1, 0xc1, 0x5c, 0x12, 0x3a, 0x60 } }, { "canalsw.grf", { 0x13, 0x9c, 0x98, 0xcf, 0xb8, 0x7c, 0xd7, 0x1f, 0xca, 0x34, 0xa5, 0x6b, 0x65, 0x31, 0xec, 0x0f } }, { "elrailsw.grf", { 0x4f, 0xf9, 0xac, 0x79, 0x50, 0x28, 0x9b, 0xe2, 0x15, 0x30, 0xa8, 0x1e, 0xd5, 0xfd, 0xe1, 0xda } }, - { "openttd.grf", { 0x3c, 0x9f, 0x90, 0xb1, 0xf2, 0x45, 0xc3, 0xb4, 0xb5, 0xbb, 0xed, 0x30, 0xec, 0x07, 0x95, 0x9e } }, + { "openttd.grf", { 0xd9, 0x68, 0xb3, 0x59, 0xd9, 0xfe, 0x39, 0xdc, 0x23, 0xe9, 0xe9, 0x3e, 0xf1, 0x65, 0x55, 0x09 } }, { "trkfoundw.grf", { 0x12, 0x33, 0x3f, 0xa3, 0xd1, 0x86, 0x8b, 0x04, 0x53, 0x18, 0x9c, 0xee, 0xf9, 0x2d, 0xf5, 0x95 } }, }; diff --git a/table/sprites.h b/table/sprites.h index 3af1804429..9406de8263 100644 --- a/table/sprites.h +++ b/table/sprites.h @@ -48,7 +48,7 @@ enum Sprites { SPR_ASCII_SPACE_BIG = 450, /* Extra graphic spritenumbers */ - OPENTTD_SPRITES_COUNT = 109, // number of gfx-sprites in openttd.grf + OPENTTD_SPRITES_COUNT = 116, // number of gfx-sprites in openttd.grf SPR_CANALS_BASE = 5382, SPR_SLOPES_BASE = SPR_CANALS_BASE + 70, SPR_AUTORAIL_BASE = SPR_SLOPES_BASE + 78, @@ -71,10 +71,10 @@ enum Sprites { SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 91, /* Clone vehicles stuff */ - SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 92, - SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 92, - SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 92, SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 92, + SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 109, + SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 111, + SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 113, SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 96, SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 97, @@ -90,6 +90,8 @@ enum Sprites { SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 107, SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 108, + SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 115, + /* Network GUI sprites */ SPR_SQUARE = SPR_OPENTTD_BASE + 20, // colored square (used for newgrf compatibility) SPR_LOCK = SPR_OPENTTD_BASE + 19, // lock icon (for password protected servers) @@ -1186,7 +1188,10 @@ typedef enum CursorSprites { SPR_CURSOR_TRUCK_STATION = 2726, SPR_CURSOR_ROAD_TUNNEL = 2433, - SPR_CURSOR_CLONE = SPR_OPENTTD_BASE + 93, + SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 93, + SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 110, + SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112, + SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 114, } CursorSprite; /// Animation macro in table/animcursors.h (_animcursors[])