mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r7009) - Fix (r1323, r1326): In the replace vehicle window, the left vehicle list was not drawn when an engine was not selected.
This commit is contained in:
parent
8b12e25468
commit
2d8708bde1
117
vehicle_gui.c
117
vehicle_gui.c
@ -939,22 +939,21 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int
|
|||||||
int num = NUM_ROAD_ENGINES;
|
int num = NUM_ROAD_ENGINES;
|
||||||
const Engine* e = GetEngine(ROAD_ENGINES_INDEX);
|
const Engine* e = GetEngine(ROAD_ENGINES_INDEX);
|
||||||
EngineID engine_id = ROAD_ENGINES_INDEX;
|
EngineID engine_id = ROAD_ENGINES_INDEX;
|
||||||
byte cargo;
|
|
||||||
|
|
||||||
if (selected_id[0] >= ROAD_ENGINES_INDEX && selected_id[0] < SHIP_ENGINES_INDEX) {
|
do {
|
||||||
cargo = RoadVehInfo(selected_id[0])->cargo_type;
|
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
||||||
|
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
||||||
do {
|
DrawString(x+59, y+2, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
||||||
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
DrawRoadVehEngine(x+29, y+6, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
||||||
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
SetDParam(0, p->num_engines[engine_id]);
|
||||||
DrawString(x+59, y+2, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
DrawStringRightAligned(213, y+5, STR_TINY_BLACK, 0);
|
||||||
DrawRoadVehEngine(x+29, y+6, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
y += 14;
|
||||||
SetDParam(0, p->num_engines[engine_id]);
|
|
||||||
DrawStringRightAligned(213, y+5, STR_TINY_BLACK, 0);
|
|
||||||
y += 14;
|
|
||||||
}
|
|
||||||
sel[0]--;
|
|
||||||
}
|
}
|
||||||
|
sel[0]--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selected_id[0] != INVALID_ENGINE) {
|
||||||
|
byte cargo = RoadVehInfo(selected_id[0])->cargo_type;
|
||||||
|
|
||||||
if (RoadVehInfo(engine_id)->cargo_type == cargo && HASBIT(e->player_avail, _local_player)) {
|
if (RoadVehInfo(engine_id)->cargo_type == cargo && HASBIT(e->player_avail, _local_player)) {
|
||||||
if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0) && RoadVehInfo(engine_id)->cargo_type == cargo) {
|
if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0) && RoadVehInfo(engine_id)->cargo_type == cargo) {
|
||||||
@ -964,8 +963,8 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int
|
|||||||
}
|
}
|
||||||
sel[1]--;
|
sel[1]--;
|
||||||
}
|
}
|
||||||
} while (++engine_id, ++e,--num);
|
}
|
||||||
}
|
} while (++engine_id, ++e,--num);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -973,57 +972,57 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int
|
|||||||
int num = NUM_SHIP_ENGINES;
|
int num = NUM_SHIP_ENGINES;
|
||||||
const Engine* e = GetEngine(SHIP_ENGINES_INDEX);
|
const Engine* e = GetEngine(SHIP_ENGINES_INDEX);
|
||||||
EngineID engine_id = SHIP_ENGINES_INDEX;
|
EngineID engine_id = SHIP_ENGINES_INDEX;
|
||||||
byte cargo, refittable;
|
|
||||||
|
|
||||||
if (selected_id[0] != INVALID_ENGINE) {
|
do {
|
||||||
cargo = ShipVehInfo(selected_id[0])->cargo_type;
|
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
||||||
refittable = ShipVehInfo(selected_id[0])->refittable;
|
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
||||||
|
DrawString(x+75, y+7, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
||||||
|
DrawShipEngine(x+35, y+10, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
||||||
|
SetDParam(0, p->num_engines[engine_id]);
|
||||||
|
DrawStringRightAligned(213, y+15, STR_TINY_BLACK, 0);
|
||||||
|
y += 24;
|
||||||
|
}
|
||||||
|
sel[0]--;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
if (selected_id[0] != INVALID_ENGINE) {
|
||||||
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
CargoID cargo = ShipVehInfo(selected_id[0])->cargo_type;
|
||||||
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
bool refittable = ShipVehInfo(selected_id[0])->refittable;
|
||||||
DrawString(x+75, y+7, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
|
||||||
DrawShipEngine(x+35, y+10, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
if (HASBIT(e->player_avail, _local_player) && ( cargo == ShipVehInfo(engine_id)->cargo_type || refittable & ShipVehInfo(engine_id)->refittable)) {
|
||||||
SetDParam(0, p->num_engines[engine_id]);
|
if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0)) {
|
||||||
DrawStringRightAligned(213, y+15, STR_TINY_BLACK, 0);
|
DrawString(x2+75, y2+7, GetCustomEngineName(engine_id), sel[1]==0 ? 0xC : 0x10);
|
||||||
y += 24;
|
DrawShipEngine(x2+35, y2+10, engine_id, GetEnginePalette(engine_id, _local_player));
|
||||||
|
y2 += 24;
|
||||||
}
|
}
|
||||||
sel[0]--;
|
sel[1]--;
|
||||||
}
|
}
|
||||||
if (selected_id[0] != INVALID_ENGINE) {
|
}
|
||||||
if (HASBIT(e->player_avail, _local_player) && ( cargo == ShipVehInfo(engine_id)->cargo_type || refittable & ShipVehInfo(engine_id)->refittable)) {
|
} while (++engine_id, ++e, --num);
|
||||||
if (IS_INT_INSIDE(--pos2, -w->vscroll.cap, 0)) {
|
|
||||||
DrawString(x2+75, y2+7, GetCustomEngineName(engine_id), sel[1]==0 ? 0xC : 0x10);
|
|
||||||
DrawShipEngine(x2+35, y2+10, engine_id, GetEnginePalette(engine_id, _local_player));
|
|
||||||
y2 += 24;
|
|
||||||
}
|
|
||||||
sel[1]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while (++engine_id, ++e,--num);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
} //end of ship
|
} //end of ship
|
||||||
|
|
||||||
case VEH_Aircraft: {
|
case VEH_Aircraft: {
|
||||||
if (selected_id[0] != INVALID_ENGINE) {
|
int num = NUM_AIRCRAFT_ENGINES;
|
||||||
int num = NUM_AIRCRAFT_ENGINES;
|
const Engine* e = GetEngine(AIRCRAFT_ENGINES_INDEX);
|
||||||
const Engine* e = GetEngine(AIRCRAFT_ENGINES_INDEX);
|
EngineID engine_id = AIRCRAFT_ENGINES_INDEX;
|
||||||
EngineID engine_id = AIRCRAFT_ENGINES_INDEX;
|
|
||||||
byte subtype = AircraftVehInfo(selected_id[0])->subtype;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
if (p->num_engines[engine_id] > 0 || EngineHasReplacementForPlayer(p, engine_id)) {
|
||||||
if (sel[0] == 0) selected_id[0] = engine_id;
|
if (sel[0] == 0) selected_id[0] = engine_id;
|
||||||
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
if (IS_INT_INSIDE(--pos, -w->vscroll.cap, 0)) {
|
||||||
DrawString(x+62, y+7, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
DrawString(x+62, y+7, GetCustomEngineName(engine_id), sel[0]==0 ? 0xC : 0x10);
|
||||||
DrawAircraftEngine(x+29, y+10, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
DrawAircraftEngine(x+29, y+10, engine_id, p->num_engines[engine_id] > 0 ? GetEnginePalette(engine_id, _local_player) : PALETTE_CRASH);
|
||||||
SetDParam(0, p->num_engines[engine_id]);
|
SetDParam(0, p->num_engines[engine_id]);
|
||||||
DrawStringRightAligned(213, y+15, STR_TINY_BLACK, 0);
|
DrawStringRightAligned(213, y+15, STR_TINY_BLACK, 0);
|
||||||
y += 24;
|
y += 24;
|
||||||
}
|
|
||||||
sel[0]--;
|
|
||||||
}
|
}
|
||||||
|
sel[0]--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selected_id[0] != INVALID_ENGINE) {
|
||||||
|
byte subtype = AircraftVehInfo(selected_id[0])->subtype;
|
||||||
|
|
||||||
if ((subtype & AIR_CTOL) == (AircraftVehInfo(engine_id)->subtype & AIR_CTOL) &&
|
if ((subtype & AIR_CTOL) == (AircraftVehInfo(engine_id)->subtype & AIR_CTOL) &&
|
||||||
HASBIT(e->player_avail, _local_player)) {
|
HASBIT(e->player_avail, _local_player)) {
|
||||||
if (sel[1] == 0) selected_id[1] = engine_id;
|
if (sel[1] == 0) selected_id[1] = engine_id;
|
||||||
@ -1034,8 +1033,8 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int
|
|||||||
}
|
}
|
||||||
sel[1]--;
|
sel[1]--;
|
||||||
}
|
}
|
||||||
} while (++engine_id, ++e,--num);
|
}
|
||||||
}
|
} while (++engine_id, ++e,--num);
|
||||||
break;
|
break;
|
||||||
} // end of aircraft
|
} // end of aircraft
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user