From fc7418d19d831e7ebc0e7c5b5651d58e76158fe0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 24 Jun 2007 22:42:11 +0000 Subject: (svn r10314) -Codechange: Refer to vehicle names by index --- src/aircraft_gui.cpp | 10 ++++------ src/autoreplace_cmd.cpp | 4 +++- src/lang/english.txt | 6 ++++-- src/order_cmd.cpp | 4 +++- src/order_gui.cpp | 3 +-- src/roadveh_gui.cpp | 10 ++++------ src/ship_gui.cpp | 10 ++++------ src/strgen/strgen.cpp | 2 +- src/strings.cpp | 11 +++++++++++ src/table/control_codes.h | 1 + src/timetable_gui.cpp | 3 +-- src/train_gui.cpp | 10 ++++------ src/vehicle_gui.cpp | 5 ++--- 13 files changed, 43 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index 5ddea35fd..85ba43443 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -80,8 +80,7 @@ static void AircraftDetailsWndProc(Window *w, WindowEvent *e) SetWindowWidgetDisabledState(w, 5, !_patches.servint_aircraft); SetWindowWidgetDisabledState(w, 6, !_patches.servint_aircraft); - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); /* Draw running cost */ @@ -173,8 +172,8 @@ static void AircraftDetailsWndProc(Window *w, WindowEvent *e) switch (e->we.click.widget) { case 2: /* rename */ v = GetVehicle(w->window_number); - SetDParam(0, v->unitnumber); - ShowQueryString(v->string_id, STR_A030_NAME_AIRCRAFT, 31, 150, w, CS_ALPHANUMERAL); + SetDParam(0, v->index); + ShowQueryString(STR_VEHICLE_NAME, STR_A030_NAME_AIRCRAFT, 31, 150, w, CS_ALPHANUMERAL); break; case 5: /* increase int */ mod = _ctrl_pressed? 5 : 10; @@ -272,8 +271,7 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e) /* draw widgets & caption */ - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); if (v->vehstatus & VS_CRASHED) { diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index 88df05c5c..ede105d9f 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -17,6 +17,7 @@ #include "aircraft.h" #include "cargotype.h" #include "group.h" +#include "strings.h" /* @@ -241,7 +242,8 @@ static CommandCost ReplaceVehicle(Vehicle **w, byte flags, Money total_cost) if (!IsCustomName(old_v->string_id)) { vehicle_name[0] = '\0'; } else { - GetName(vehicle_name, old_v->string_id & 0x7FF, lastof(vehicle_name)); + SetDParam(0, old_v->index); + GetString(vehicle_name, STR_VEHICLE_NAME, lastof(vehicle_name)); } } else { // flags & DC_EXEC not set CommandCost tmp_move; diff --git a/src/lang/english.txt b/src/lang/english.txt index 410889c90..372b2e518 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -495,7 +495,7 @@ STR_01A7_OWNER :{BLACK}Owner: { STR_01A8_LOCAL_AUTHORITY :{BLACK}Local authority: {LTBLUE}{STRING1} STR_01A9_NONE :None STR_01AA_NAME :{BLACK}Name -STR_01AB :{BLACK}{TINYFONT}{STRING} +STR_01AB :{BLACK}{TINYFONT}{VEHICLE} ############ range for days starts STR_01AC_1ST :1st @@ -2594,7 +2594,7 @@ STR_8107_MAGLEV_LOCOMOTIVE :maglev locomoti ##id 0x8800 STR_8800_TRAIN_DEPOT :{WHITE}{TOWN} Train Depot STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First train arrives at {STATION}! -STR_8802_DETAILS :{WHITE}{STRING1} (Details) +STR_8802_DETAILS :{WHITE}{VEHICLE} (Details) STR_8803_TRAIN_IN_THE_WAY :{WHITE}Train in the way STR_8804 :{SETX 10}{COMMA}: {STRING1} {STRING1} STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING1} {STRING1} @@ -3340,4 +3340,6 @@ STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLAC STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit this year: {GREEN}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK}) STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit this year: {RED}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK}) +STR_VEHICLE_NAME :{VEHICLE} + ######## diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 7b14f912f..13f16ef8f 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -18,6 +18,7 @@ #include "saveload.h" #include "vehicle_gui.h" #include "cargotype.h" +#include "strings.h" /** * Called if a new block is added to the order-pool @@ -974,7 +975,8 @@ void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *bak) if (!IsCustomName(v->string_id)) { bak->name[0] = '\0'; } else { - GetName(bak->name, v->string_id & 0x7FF, lastof(bak->name)); + SetDParam(0, v->index); + GetString(bak->name, STR_VEHICLE_NAME, lastof(bak->name)); } /* If we have shared orders, store it on a special way */ diff --git a/src/order_gui.cpp b/src/order_gui.cpp index d769162f9..ac08f9538 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -176,8 +176,7 @@ static void DrawOrdersWindow(Window *w) } } - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); y = 15; diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index d97b20dbb..ab94fb855 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -80,8 +80,7 @@ static void RoadVehDetailsWndProc(Window *w, WindowEvent *e) SetWindowWidgetDisabledState(w, 5, !_patches.servint_roadveh); SetWindowWidgetDisabledState(w, 6, !_patches.servint_roadveh); - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); /* Draw running cost */ @@ -199,8 +198,8 @@ static void RoadVehDetailsWndProc(Window *w, WindowEvent *e) switch (e->we.click.widget) { case 2: /* rename */ v = GetVehicle(w->window_number); - SetDParam(0, v->unitnumber); - ShowQueryString(v->string_id, STR_902C_NAME_ROAD_VEHICLE, 31, 150, w, CS_ALPHANUMERAL); + SetDParam(0, v->index); + ShowQueryString(STR_VEHICLE_NAME, STR_902C_NAME_ROAD_VEHICLE, 31, 150, w, CS_ALPHANUMERAL); break; case 5: /* increase int */ @@ -283,8 +282,7 @@ static void RoadVehViewWndProc(Window *w, WindowEvent *e) _engine_info[v->engine_type].refit_mask == 0); /* draw widgets & caption */ - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); if (v->u.road.crashed_ctr != 0) { diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp index 53eee6784..68e2acb17 100644 --- a/src/ship_gui.cpp +++ b/src/ship_gui.cpp @@ -38,8 +38,7 @@ static void ShipDetailsWndProc(Window *w, WindowEvent *e) SetWindowWidgetDisabledState(w, 5, !_patches.servint_ships); SetWindowWidgetDisabledState(w, 6, !_patches.servint_ships); - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); /* Draw running cost */ @@ -113,8 +112,8 @@ static void ShipDetailsWndProc(Window *w, WindowEvent *e) switch (e->we.click.widget) { case 2: /* rename */ v = GetVehicle(w->window_number); - SetDParam(0, v->unitnumber); - ShowQueryString(v->string_id, STR_9831_NAME_SHIP, 31, 150, w, CS_ALPHANUMERAL); + SetDParam(0, v->index); + ShowQueryString(STR_VEHICLE_NAME, STR_9831_NAME_SHIP, 31, 150, w, CS_ALPHANUMERAL); break; case 5: /* increase int */ mod = _ctrl_pressed? 5 : 10; @@ -208,8 +207,7 @@ static void ShipViewWndProc(Window *w, WindowEvent *e) SetWindowWidgetDisabledState(w, 11, !is_localplayer); /* draw widgets & caption */ - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); if (v->breakdown_ctr == 1) { diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 2433f7394..e6be06104 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -465,7 +465,6 @@ static const CmdStruct _cmd_structs[] = { // The first string includes the second string. {"COMPANY", EmitSingleChar, SCC_STRING1, 2, 0}, {"PLAYERNAME", EmitSingleChar, SCC_STRING1, 1, 0}, - {"VEHICLE", EmitSingleChar, SCC_STRING1, 1, 0}, {"STRING1", EmitSingleChar, SCC_STRING1, 1, C_CASE}, // included string that consumes ONE argument {"STRING2", EmitSingleChar, SCC_STRING2, 2, C_CASE}, // included string that consumes TWO arguments @@ -505,6 +504,7 @@ static const CmdStruct _cmd_structs[] = { {"STATION", EmitSingleChar, SCC_STATION_NAME, 1, 0}, {"TOWN", EmitSingleChar, SCC_TOWN_NAME, 1, 0}, {"GROUP", EmitSingleChar, SCC_GROUP_NAME, 1, 0}, + {"VEHICLE", EmitSingleChar, SCC_VEHICLE_NAME, 1, 0}, // 0x9D is used for the pseudo command SETCASE // 0x9E is used for case switching diff --git a/src/strings.cpp b/src/strings.cpp index bb97c899c..2b1c5bb44 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -29,6 +29,7 @@ #include "group.h" #include "debug.h" #include "newgrf_townname.h" +#include "vehicle.h" /* for opendir/readdir/closedir */ # include "fios.h" @@ -861,6 +862,16 @@ static char* FormatString(char* buff, const char* str, const int64* argv, uint c break; } + case SCC_VEHICLE_NAME: { // {VEHICLE} + const Vehicle *v = GetVehicle(GetInt32(&argv)); + + int64 args[1]; + args[0] = v->unitnumber; + + buff = GetStringWithArgs(buff, v->string_id, args, last); + break; + } + case SCC_SETCASE: { // {SETCASE} /* This is a pseudo command, it's outputted when someone does {STRING.ack} * The modifier is added to all subsequent GetStringWithArgs that accept the modifier. */ diff --git a/src/table/control_codes.h b/src/table/control_codes.h index eb24f5766..8eb737f40 100644 --- a/src/table/control_codes.h +++ b/src/table/control_codes.h @@ -27,6 +27,7 @@ enum { SCC_STATION_NAME, SCC_TOWN_NAME, SCC_GROUP_NAME, + SCC_VEHICLE_NAME, SCC_CURRENCY_COMPACT, SCC_CURRENCY, diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 5b3d2f99f..02a8436da 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -73,8 +73,7 @@ static void DrawTimetableWindow(Window *w) DisableWindowWidget(w, 8); } - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); int y = 15; diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 095e51739..78b48bbe0 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -169,8 +169,7 @@ static void TrainViewWndProc(Window *w, WindowEvent *e) } /* draw widgets & caption */ - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); if (v->u.rail.crash_anim_pos != 0) { @@ -412,8 +411,7 @@ static void DrawTrainDetailsWindow(Window *w) SetWindowWidgetDisabledState(w, 6, !_patches.servint_trains); SetWindowWidgetDisabledState(w, 7, !_patches.servint_trains); - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); SetDParam(1, v->age / 366); @@ -520,8 +518,8 @@ static void TrainDetailsWndProc(Window *w, WindowEvent *e) switch (e->we.click.widget) { case 2: /* name train */ v = GetVehicle(w->window_number); - SetDParam(0, v->unitnumber); - ShowQueryString(v->string_id, STR_8865_NAME_TRAIN, 31, 150, w, CS_ALPHANUMERAL); + SetDParam(0, v->index); + ShowQueryString(STR_VEHICLE_NAME, STR_8865_NAME_TRAIN, 31, 150, w, CS_ALPHANUMERAL); break; case 6: /* inc serv interval */ mod = _ctrl_pressed? 5 : 10; diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index b9bd7bb31..a2c3d6936 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -331,8 +331,7 @@ static void VehicleRefitWndProc(Window *w, WindowEvent *e) SetVScrollCount(w, WP(w, refit_d).list->num_lines); - SetDParam(0, v->string_id); - SetDParam(1, v->unitnumber); + SetDParam(0, v->index); DrawWindowWidgets(w); WP(w, refit_d).cargo = DrawVehicleRefitWindow(WP(w, refit_d).list, WP(w, refit_d).sel, w->vscroll.pos, w->vscroll.cap, w->resize.step_height); @@ -1017,7 +1016,7 @@ static void DrawVehicleListWindow(Window *w) (v->type == VEH_AIRCRAFT && v->string_id != STR_SV_AIRCRAFT_NAME)) { /* The vehicle got a name so we will print it */ - SetDParam(0, v->string_id); + SetDParam(0, v->index); DrawString(x + 19, y, STR_01AB, 0); } -- cgit v1.2.3-54-g00ecf