Files
@ r8183:fea1570ac2b1
Branch filter:
Location: cpp/openttd-patchpack/source/src/roadveh_gui.cpp - annotation
r8183:fea1570ac2b1
3.4 KiB
text/x-c
(svn r11746) -Fix(r11727): Make sure that action 0A does follow the same new ordering of shore sprites. It was not considered in the missing shore patch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | r5584:545d748cc681 r5584:545d748cc681 r6393:f9322fdf4c2c r6393:f9322fdf4c2c r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r8107:82461791b7a2 r5584:545d748cc681 r8116:df67d3c5e4fd r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r8114:866ed489ed98 r8144:1432edd15267 r5584:545d748cc681 r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7824:e4e35ff9ee2c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r7530:8eaeedf8b40c r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r8144:1432edd15267 r5584:545d748cc681 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r7530:8eaeedf8b40c r7530:8eaeedf8b40c r6857:1e07df806ef1 r7134:b101dff10042 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r6857:1e07df806ef1 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r7653:8b8bc2df3a7d r5584:545d748cc681 r7486:610eee847f11 r5584:545d748cc681 | /* $Id$ */
/** @file roadveh_gui.cpp */
#include "stdafx.h"
#include "openttd.h"
#include "debug.h"
#include "roadveh.h"
#include "table/sprites.h"
#include "table/strings.h"
#include "gui.h"
#include "window_gui.h"
#include "viewport.h"
#include "command_func.h"
#include "depot.h"
#include "vehicle_gui.h"
#include "newgrf_engine.h"
#include "strings_func.h"
#include "vehicle_func.h"
void DrawRoadVehDetails(const Vehicle *v, int x, int y)
{
uint y_offset = RoadVehHasArticPart(v) ? 15 :0;
StringID str;
SetDParam(0, v->engine_type);
SetDParam(1, v->build_year);
SetDParam(2, v->value);
DrawString(x, y + y_offset, STR_9011_BUILT_VALUE, TC_FROMSTRING);
if (RoadVehHasArticPart(v)) {
AcceptedCargo max_cargo;
char capacity[512];
memset(max_cargo, 0, sizeof(max_cargo));
for (const Vehicle *u = v; u != NULL; u = u->Next()) {
max_cargo[u->cargo_type] += u->cargo_cap;
}
GetString(capacity, STR_ARTICULATED_RV_CAPACITY, lastof(capacity));
bool first = true;
for (CargoID i = 0; i < NUM_CARGO; i++) {
if (max_cargo[i] > 0) {
char buffer[128];
SetDParam(0, i);
SetDParam(1, max_cargo[i]);
GetString(buffer, STR_BARE_CARGO, lastof(buffer));
if (!first) strecat(capacity, ", ", lastof(capacity));
strecat(capacity, buffer, lastof(capacity));
first = false;
}
}
SetDParamStr(0, capacity);
DrawStringTruncated(x, y + 10 + y_offset, STR_JUST_STRING, TC_BLUE, 380 - x);
for (const Vehicle *u = v; u != NULL; u = u->Next()) {
str = STR_8812_EMPTY;
if (!u->cargo.Empty()) {
SetDParam(0, u->cargo_type);
SetDParam(1, u->cargo.Count());
SetDParam(2, u->cargo.Source());
str = STR_8813_FROM;
}
DrawString(x, y + 21 + y_offset, str, TC_FROMSTRING);
y_offset += 11;
}
y_offset -= 11;
} else {
SetDParam(0, v->cargo_type);
SetDParam(1, v->cargo_cap);
DrawString(x, y + 10 + y_offset, STR_9012_CAPACITY, TC_FROMSTRING);
str = STR_8812_EMPTY;
if (!v->cargo.Empty()) {
SetDParam(0, v->cargo_type);
SetDParam(1, v->cargo.Count());
SetDParam(2, v->cargo.Source());
str = STR_8813_FROM;
}
DrawString(x, y + 21 + y_offset, str, TC_FROMSTRING);
}
/* Draw Transfer credits text */
SetDParam(0, v->cargo.FeederShare());
DrawString(x, y + 33 + y_offset, STR_FEEDER_CARGO_VALUE, TC_FROMSTRING);
}
static inline int RoadVehLengthToPixels(int length)
{
return (length * 28) / 8;
}
void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection, int count)
{
/* Road vehicle lengths are measured in eighths of the standard length, so
* count is the number of standard vehicles that should be drawn. If it is
* 0, we draw enough vehicles for 10 standard vehicle lengths. */
int max_length = (count == 0) ? 80 : count * 8;
for (int dx = 0 ; v != NULL && dx < max_length ; dx += v->u.road.cached_veh_length, v = v->Next()) {
if (dx + v->u.road.cached_veh_length > 0 && dx <= max_length) {
SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
DrawSprite(v->GetImage(DIR_W), pal, x + 14 + RoadVehLengthToPixels(dx), y + 6);
if (v->index == selection) {
DrawFrameRect(x - 1, y - 1, x + 28, y + 12, 15, FR_BORDERONLY);
}
}
}
}
void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2)
{
const Vehicle *v;
if (!success) return;
v = GetVehicle(_new_vehicle_id);
if (v->tile == _backup_orders_tile) {
_backup_orders_tile = 0;
RestoreVehicleOrders(v);
}
ShowVehicleViewWindow(v);
}
|