Files
@ r8802:3a3f8a172f6c
Branch filter:
Location: cpp/openttd-patchpack/source/src/roadveh_gui.cpp - annotation
r8802:3a3f8a172f6c
3.5 KiB
text/x-c
(svn r12542) -Fix [Makefile]: Don't install scenarios into the current user's homedir when running 'make install', that is silly. Simply always install scenarios system wide instead.
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 134 135 136 | r5584:545d748cc681 r5584:545d748cc681 r6393:f9322fdf4c2c r6393:f9322fdf4c2c r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r8107:82461791b7a2 r8224:194097dc7288 r8224:194097dc7288 r8116:df67d3c5e4fd r5584:545d748cc681 r5584:545d748cc681 r5584:545d748cc681 r8114:866ed489ed98 r8144:1432edd15267 r8214:9a3935f9ef4e r8784:f3d6ba8eb078 r5584:545d748cc681 r8264:d493cb51fe8a r8264:d493cb51fe8a 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 "gui.h"
#include "window_gui.h"
#include "viewport_func.h"
#include "gfx_func.h"
#include "command_func.h"
#include "depot.h"
#include "vehicle_gui.h"
#include "newgrf_engine.h"
#include "strings_func.h"
#include "vehicle_func.h"
#include "string_func.h"
#include "order_func.h"
#include "table/sprites.h"
#include "table/strings.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);
}
|