changeset 7056:f004782ed538 draft

(svn r10321) -Codechange: refer to sign text by index
author peter1138 <peter1138@openttd.org>
date Mon, 25 Jun 2007 10:40:56 +0000
parents 1511234872f5
children 9120898eaf3b
files src/lang/english.txt src/main_gui.cpp src/signs.cpp src/signs_gui.cpp src/strgen/strgen.cpp src/strings.cpp src/table/control_codes.h src/viewport.cpp
diffstat 8 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -1681,7 +1681,7 @@
 STR_TOWN_LABEL                                                  :{WHITE}{TOWN}
 STR_TOWN_LABEL_TINY_BLACK                                       :{TINYFONT}{BLACK}{TOWN}
 STR_TOWN_LABEL_TINY_WHITE                                       :{TINYFONT}{WHITE}{TOWN}
-STR_2002                                                        :{TINYFONT}{BLACK}{STRING1}
+STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Building must be demolished first
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Population: {ORANGE}{COMMA}{BLACK}  Houses: {ORANGE}{COMMA}
@@ -1785,7 +1785,7 @@
 STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...tree already here
 STR_2804_SITE_UNSUITABLE                                        :{WHITE}...site unsuitable
 STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Can't plant tree here...
-STR_2806                                                        :{WHITE}{STRING}
+STR_2806                                                        :{WHITE}{SIGN}
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...too many signs
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Can't place sign here...
 STR_280A_SIGN                                                   :Sign
@@ -3340,6 +3340,7 @@
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Profit this year: {RED}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK})
 
 STR_GROUP_NAME                                                  :{GROUP}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
 ########
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -346,7 +346,8 @@
 {
 	_rename_id = si->index;
 	_rename_what = 0;
-	ShowQueryString(si->str, STR_280B_EDIT_SIGN_TEXT, 30, 180, NULL, CS_ALPHANUMERAL);
+	SetDParam(0, si->index);
+	ShowQueryString(STR_SIGN_NAME, STR_280B_EDIT_SIGN_TEXT, 30, 180, NULL, CS_ALPHANUMERAL);
 }
 
 void ShowRenameWaypointWindow(const Waypoint *wp)
--- a/src/signs.cpp
+++ b/src/signs.cpp
@@ -39,7 +39,7 @@
 static void UpdateSignVirtCoords(Sign *si)
 {
 	Point pt = RemapCoords(si->x, si->y, si->z);
-	SetDParam(0, si->str);
+	SetDParam(0, si->index);
 	UpdateViewportSignPos(&si->sign, pt.x, pt.y - 6, STR_2806);
 }
 
--- a/src/signs_gui.cpp
+++ b/src/signs_gui.cpp
@@ -88,7 +88,8 @@
 				if (si->owner != OWNER_NONE)
 					DrawPlayerIcon(si->owner, 4, y + 1);
 
-				DrawString(22, y, si->str, 8);
+				SetDParam(0, si->index);
+				DrawString(22, y, STR_SIGN_NAME, 8);
 				y += 10;
 			}
 		}
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -504,6 +504,7 @@
 	{"STATION",  EmitSingleChar, SCC_STATION_NAME,  1, 0},
 	{"TOWN",     EmitSingleChar, SCC_TOWN_NAME,     1, 0},
 	{"GROUP",    EmitSingleChar, SCC_GROUP_NAME,    1, 0},
+	{"SIGN",     EmitSingleChar, SCC_SIGN_NAME,     1, 0},
 	{"VEHICLE",  EmitSingleChar, SCC_VEHICLE_NAME,  1, 0},
 
 	// 0x9D is used for the pseudo command SETCASE
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -29,6 +29,7 @@
 #include "group.h"
 #include "debug.h"
 #include "newgrf_townname.h"
+#include "signs.h"
 #include "vehicle.h"
 
 /* for opendir/readdir/closedir */
@@ -873,6 +874,12 @@
 				break;
 			}
 
+			case SCC_SIGN_NAME: { // {SIGN}
+				const Sign *si = GetSign(GetInt32(&argv));
+				buff = GetString(buff, si->str, 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. */
--- a/src/table/control_codes.h
+++ b/src/table/control_codes.h
@@ -28,6 +28,7 @@
 	SCC_TOWN_NAME,
 	SCC_GROUP_NAME,
 	SCC_VEHICLE_NAME,
+	SCC_SIGN_NAME,
 
 	SCC_CURRENCY_COMPACT,
 	SCC_CURRENCY,
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -939,7 +939,7 @@
 {
 	StringSpriteToDraw *sstd;
 
-	sstd = (StringSpriteToDraw*)AddStringToDraw(si->sign.left + 1, si->sign.top + 1, str, si->str, 0);
+	sstd = (StringSpriteToDraw*)AddStringToDraw(si->sign.left + 1, si->sign.top + 1, str, si->index, 0);
 	if (sstd != NULL) {
 		sstd->color = (si->owner == OWNER_NONE) ? 14 : _player_colors[si->owner];
 		sstd->width = width;