(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
authorDarkvater
Wed, 13 Apr 2005 23:03:31 +0000
changeset 1688 787400219027
parent 1687 2265b1f3de0b
child 1689 3a216d52183d
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
- I also changed an order of strings from On, Off to Off, On, so this can be used ingame with the WWT_4 widget type.
- Since the newssettings now take 2 bits per setting (off/summary/on) _news_display_opt is widened to 32 bits and the settings code changed slightly to accomodate for a maximum of 16 message-types.
functions.h
lang/american.txt
lang/brazilian_portuguese.txt
lang/catalan.txt
lang/czech.txt
lang/danish.txt
lang/dutch.txt
lang/english.txt
lang/finnish.txt
lang/french.txt
lang/galician.txt
lang/german.txt
lang/hungarian.txt
lang/icelandic.txt
lang/italian.txt
lang/latvian.txt
lang/lithuanian.txt
lang/norwegian.txt
lang/polish.txt
lang/portuguese.txt
lang/romanian.txt
lang/slovak.txt
lang/spanish.txt
lang/swedish.txt
lang/unfinished/estonian.txt
main_gui.c
news_gui.c
settings.c
ttd.c
variables.h
vehicle_gui.c
--- a/functions.h	Wed Apr 13 18:36:29 2005 +0000
+++ b/functions.h	Wed Apr 13 23:03:31 2005 +0000
@@ -258,6 +258,7 @@
 
 void LoadFromConfig(void);
 void SaveToConfig(void);
+void CheckConfig(void);
 int ttd_main(int argc, char* argv[]);
 byte GetOSVersion(void);
 
--- a/lang/american.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/american.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -719,8 +719,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Show last message or news report
-STR_02B8_SUMMARY                                                :{BLACK}Summary
-STR_02B9_FULL                                                   :{BLACK}Full
+STR_SUMMARY                                                     :Summary
+STR_FULL                                                        :Full
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Town directory
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Vehicle design names
@@ -766,8 +766,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :About 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Display subsidies
 STR_02DD_SUBSIDIES                                              :Subsidies
 STR_02DE_MAP_OF_WORLD                                           :Map of world
--- a/lang/brazilian_portuguese.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/brazilian_portuguese.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Mostrar a última mensagem ou notícia
-STR_02B8_SUMMARY                                                :{BLACK}Resumo
-STR_02B9_FULL                                                   :{BLACK}Completo
+STR_SUMMARY                                                     :Resumo
+STR_FULL                                                        :Completo
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Lista de cidades
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nomes dos veículos
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Sobre o OpenTTD...
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Mostrar subsídios
 STR_02DD_SUBSIDIES                                              :Subsídios
 STR_02DE_MAP_OF_WORLD                                           :Mapa do mundo
--- a/lang/catalan.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/catalan.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Mostra el darrer missatge o notícia
-STR_02B8_SUMMARY                                                :{BLACK}Resum
-STR_02B9_FULL                                                   :{BLACK}Complet
+STR_SUMMARY                                                     :Resum
+STR_FULL                                                        :Complet
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Directori de Poblacions
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Noms de dissenys de vehicles
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Quant a 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Inactiu
 STR_02DA_ON                                                     :{BLACK}Actiu
-STR_02DB_OFF                                                    :{BLACK}Inactiu
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Mostrar subvencions
 STR_02DD_SUBSIDIES                                              :Subvencions
 STR_02DE_MAP_OF_WORLD                                           :Mapa del món
--- a/lang/czech.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/czech.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Ukázat poslední zprávu nebo clanek
-STR_02B8_SUMMARY                                                :{BLACK}Shrnutí
-STR_02B9_FULL                                                   :{BLACK}Plná
+STR_SUMMARY                                                     :Shrnutí
+STR_FULL                                                        :Plná
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Seznam mest
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Názvy dopravních prostredku
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :O 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Vypnuto
 STR_02DA_ON                                                     :{BLACK}Zapnuto
-STR_02DB_OFF                                                    :{BLACK}Vypnuto
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Zobrazit nabidky dotaci
 STR_02DD_SUBSIDIES                                              :Dotace
 STR_02DE_MAP_OF_WORLD                                           :Mapa sveta
--- a/lang/danish.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/danish.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Vis sidste besked eller nyheds rapport
-STR_02B8_SUMMARY                                                :{BLACK}Resume
-STR_02B9_FULL                                                   :{BLACK}Fuldt
+STR_SUMMARY                                                     :Resume
+STR_FULL                                                        :Fuldt
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Byoversigt
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Køretøjsdesignnavne
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Om 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Fra
 STR_02DA_ON                                                     :{BLACK}Til
-STR_02DB_OFF                                                    :{BLACK}Fra
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Vis specialaftaler
 STR_02DD_SUBSIDIES                                              :Specialaftaler
 STR_02DE_MAP_OF_WORLD                                           :Kort over verden
--- a/lang/dutch.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/dutch.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING} - {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Laat laatste (nieuws)bericht zien
-STR_02B8_SUMMARY                                                :{BLACK}Kort
-STR_02B9_FULL                                                   :{BLACK}Volledig
+STR_SUMMARY                                                     :Kort
+STR_FULL                                                        :Volledig
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Stedenlijst
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Voertuignamen
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Over OpenTTD
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Uit
 STR_02DA_ON                                                     :{BLACK}Aan
-STR_02DB_OFF                                                    :{BLACK}Uit
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Toon subsidies
 STR_02DD_SUBSIDIES                                              :Subsidies
 STR_02DE_MAP_OF_WORLD                                           :Kaart
--- a/lang/english.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/english.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -565,7 +565,7 @@
 STR_020D_CHANGES_OF_CARGO_ACCEPTANCE                            :{YELLOW}Changes to cargo acceptance
 STR_020E_SUBSIDIES                                              :{YELLOW}Subsidies
 STR_020F_GENERAL_INFORMATION                                    :{YELLOW}General information
-STR_MESSAGES_ALL                                                :{YELLOW}Setting for all messagetypes (on/off/summary)
+STR_MESSAGES_ALL                                                :{YELLOW}Setting for all messagetypes (off/summary/full)
 STR_MESSAGE_SOUND                                               :{YELLOW}Play sound for summarized newsmessages
 STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO                       :{WHITE}...too far from previous destination
 STR_0211_TOP_COMPANIES_WHO_REACHED                              :{BIGFONT}{BLACK}Top companies who reached {NUMU16}{}({STRING} Level)
@@ -723,8 +723,9 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Show last message or news report
-STR_02B8_SUMMARY                                                :{BLACK}Summary
-STR_02B9_FULL                                                   :{BLACK}Full
+STR_OFF                                                         :Off
+STR_SUMMARY                                                     :Summary
+STR_FULL                                                        :Full
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Town directory
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Vehicle design names
@@ -770,8 +771,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :About 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Display subsidies
 STR_02DD_SUBSIDIES                                              :Subsidies
 STR_02DE_MAP_OF_WORLD                                           :Map of world
--- a/lang/finnish.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/finnish.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Näytä viimeisin viesti tai uutisraportti
-STR_02B8_SUMMARY                                                :{BLACK}Tiivistetty
-STR_02B9_FULL                                                   :{BLACK}Täysi
+STR_SUMMARY                                                     :Tiivistetty
+STR_FULL                                                        :Täysi
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Kaupunkihakemisto
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Ajoneuvojen mallinimet
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Tietoja 'OpenTTD:stä'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Pois
 STR_02DA_ON                                                     :{BLACK}Päällä
-STR_02DB_OFF                                                    :{BLACK}Pois
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Näytä alennukset
 STR_02DD_SUBSIDIES                                              :Alennukset
 STR_02DE_MAP_OF_WORLD                                           :Maailmankartta
--- a/lang/french.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/french.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Afficher le dernier message ou bulletin de nouvelles
-STR_02B8_SUMMARY                                                :{BLACK}Sommaire
-STR_02B9_FULL                                                   :{BLACK}Complet
+STR_SUMMARY                                                     :Sommaire
+STR_FULL                                                        :Complet
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Annuaire des villes
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Noms de conception des Véhicules
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :À Propos de 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Désactivé
 STR_02DA_ON                                                     :{BLACK}Activé
-STR_02DB_OFF                                                    :{BLACK}Désactivé
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Afficher les subventions
 STR_02DD_SUBSIDIES                                              :Subventions
 STR_02DE_MAP_OF_WORLD                                           :Carte du monde
--- a/lang/galician.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/galician.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -719,8 +719,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Amosa-la última mesaxe ou noticia
-STR_02B8_SUMMARY                                                :{BLACK}Sumario
-STR_02B9_FULL                                                   :{BLACK}Completo
+STR_SUMMARY                                                     :Sumario
+STR_FULL                                                        :Completo
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Directorio de cidades
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nomes dos deseños dos vehículos
@@ -766,8 +766,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Acerca de 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Amosa-los subsidios
 STR_02DD_SUBSIDIES                                              :Subsidios
 STR_02DE_MAP_OF_WORLD                                           :Mapa do Mundo
--- a/lang/german.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/german.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Letzte Nachricht oder letzten Bericht anzeigen
-STR_02B8_SUMMARY                                                :{BLACK}Ticker
-STR_02B9_FULL                                                   :{BLACK}Zeitung
+STR_SUMMARY                                                     :Ticker
+STR_FULL                                                        :Zeitung
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Städteverzeichnis
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Fahrzeugnamen
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Über 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}aus
 STR_02DA_ON                                                     :{BLACK}an
-STR_02DB_OFF                                                    :{BLACK}aus
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Subventionen anzeigen
 STR_02DD_SUBSIDIES                                              :Subventionen
 STR_02DE_MAP_OF_WORLD                                           :Weltkarte
--- a/lang/hungarian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/hungarian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Utolsó üzenet vagy újsághír megmutatása
-STR_02B8_SUMMARY                                                :{BLACK}Kivonat
-STR_02B9_FULL                                                   :{BLACK}Teljes
+STR_SUMMARY                                                     :Kivonat
+STR_FULL                                                        :Teljes
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Városlista
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Jármûvek márkanevei
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Az  'OpenTTD'-ról
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Ki
 STR_02DA_ON                                                     :{BLACK}Be
-STR_02DB_OFF                                                    :{BLACK}Ki
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Állami támogatások
 STR_02DD_SUBSIDIES                                              :Támogatások
 STR_02DE_MAP_OF_WORLD                                           :Világtérkép
--- a/lang/icelandic.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/icelandic.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Sýna seinustu skilaboð eða fréttatilkynningu
-STR_02B8_SUMMARY                                                :{BLACK}Úrtak
-STR_02B9_FULL                                                   :{BLACK}Allt
+STR_SUMMARY                                                     :Úrtak
+STR_FULL                                                        :Allt
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Bæjarmappa
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Hönnunarnöfn farartækja
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Um 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Af
 STR_02DA_ON                                                     :{BLACK}Á
-STR_02DB_OFF                                                    :{BLACK}Af
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Sýna samstarfssamninga
 STR_02DD_SUBSIDIES                                              :Samstarfssamningar
 STR_02DE_MAP_OF_WORLD                                           :Heimskort
--- a/lang/italian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/italian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -720,8 +720,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Mostra ultimo messaggio o un report
-STR_02B8_SUMMARY                                                :{BLACK}Sommario
-STR_02B9_FULL                                                   :{BLACK}Completo
+STR_SUMMARY                                                     :Sommario
+STR_FULL                                                        :Completo
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Elenco Città
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nomi veicoli
@@ -767,8 +767,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Info su 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Mostra sussidi
 STR_02DD_SUBSIDIES                                              :Sussidi
 STR_02DE_MAP_OF_WORLD                                           :Mappa del mondo
--- a/lang/latvian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/latvian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -720,8 +720,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Show last message or news report
-STR_02B8_SUMMARY                                                :{BLACK}Summary
-STR_02B9_FULL                                                   :{BLACK}Full
+STR_SUMMARY                                                     :Summary
+STR_FULL                                                        :Full
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Town directory
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Vehicle design names
@@ -767,8 +767,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Par 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Display subsidies
 STR_02DD_SUBSIDIES                                              :Subsidies
 STR_02DE_MAP_OF_WORLD                                           :Pasaules Karte
--- a/lang/lithuanian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/lithuanian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -722,8 +722,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Parodyti paskutine zinute ar spaudos pranesima
-STR_02B8_SUMMARY                                                :{BLACK}Santrauka
-STR_02B9_FULL                                                   :{BLACK}Pilnas
+STR_SUMMARY                                                     :Santrauka
+STR_FULL                                                        :Pilnas
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Miestu katalogas
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Tr. priemoniu pavadinimai
@@ -769,8 +769,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Apie 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Isjungta
 STR_02DA_ON                                                     :{BLACK}Ijungta
-STR_02DB_OFF                                                    :{BLACK}Isjungta
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Rodyti subsidijas
 STR_02DD_SUBSIDIES                                              :Subsidijos
 STR_02DE_MAP_OF_WORLD                                           :Zemelapis
--- a/lang/norwegian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/norwegian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Vis siste melding eller nyhetsrapport
-STR_02B8_SUMMARY                                                :{BLACK}Sammendrag
-STR_02B9_FULL                                                   :{BLACK}Fullt
+STR_SUMMARY                                                     :Sammendrag
+STR_FULL                                                        :Fullt
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Byoversikt
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Navn på kjøretøy
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Om 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Av
 STR_02DA_ON                                                     :{BLACK}På
-STR_02DB_OFF                                                    :{BLACK}Av
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Vis subsidier
 STR_02DD_SUBSIDIES                                              :Subsidier
 STR_02DE_MAP_OF_WORLD                                           :Verdenskart
--- a/lang/polish.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/polish.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Pokaz ostatnia wiadomosc lub ogloszenie
-STR_02B8_SUMMARY                                                :{BLACK}Sumarycznie
-STR_02B9_FULL                                                   :{BLACK}Pelne
+STR_SUMMARY                                                     :Sumarycznie
+STR_FULL                                                        :Pelne
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Lista miast
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nazwy pojazdow
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Info o 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Wyl.
 STR_02DA_ON                                                     :{BLACK}Wla.
-STR_02DB_OFF                                                    :{BLACK}Wyl.
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Wyswietl subsydia
 STR_02DD_SUBSIDIES                                              :Subsydia
 STR_02DE_MAP_OF_WORLD                                           :Mapa swiata
--- a/lang/portuguese.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/portuguese.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -720,8 +720,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Mostrar a última mensagem ou notícia
-STR_02B8_SUMMARY                                                :{BLACK}Resumo
-STR_02B9_FULL                                                   :{BLACK}Completo
+STR_SUMMARY                                                     :Resumo
+STR_FULL                                                        :Completo
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Lista de cidades
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nomes dos veículos
@@ -767,8 +767,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Sobre o OpenTTD...
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DA_ON                                                     :{BLACK}On
-STR_02DB_OFF                                                    :{BLACK}Off
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Mostrar subsídios
 STR_02DD_SUBSIDIES                                              :Subsídios
 STR_02DE_MAP_OF_WORLD                                           :Mapa do mundo
--- a/lang/romanian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/romanian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Re-afiseazã ultimul mesaj
-STR_02B8_SUMMARY                                                :{BLACK}Pe scurt
-STR_02B9_FULL                                                   :{BLACK}Pe larg
+STR_SUMMARY                                                     :Pe scurt
+STR_FULL                                                        :Pe larg
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Lista oraselor (F5)
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Numele vehiculelor si modelelor
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Despre 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}inactiv
 STR_02DA_ON                                                     :{BLACK}activ
-STR_02DB_OFF                                                    :{BLACK}inactiv
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Afiseazã subventiile (F6)
 STR_02DD_SUBSIDIES                                              :Subventii (F6)
 STR_02DE_MAP_OF_WORLD                                           :Harta lumii (F4)
--- a/lang/slovak.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/slovak.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -720,8 +720,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Zobraz poslednu spravu alebo novinku
-STR_02B8_SUMMARY                                                :{BLACK}Obsah
-STR_02B9_FULL                                                   :{BLACK}Plne
+STR_SUMMARY                                                     :Obsah
+STR_FULL                                                        :Plne
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Zoznam miest
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nazvy vozidiel
@@ -767,8 +767,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :O hre 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Vyp.
 STR_02DA_ON                                                     :{BLACK}Zap.
-STR_02DB_OFF                                                    :{BLACK}Vyp.
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Zobrazit Dotacie
 STR_02DD_SUBSIDIES                                              :Dotacie
 STR_02DE_MAP_OF_WORLD                                           :Mapa sveta
--- a/lang/spanish.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/spanish.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Mostrar último mensaje/noticia
-STR_02B8_SUMMARY                                                :{BLACK}Resumen
-STR_02B9_FULL                                                   :{BLACK}Completo
+STR_SUMMARY                                                     :Resumen
+STR_FULL                                                        :Completo
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Directorio de poblaciones
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Nombres de diseño de vehículos
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Acerca de 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Apagado
 STR_02DA_ON                                                     :{BLACK}Encendido
-STR_02DB_OFF                                                    :{BLACK}Apagado
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Mostras subvenciones
 STR_02DD_SUBSIDIES                                              :Subvenciones
 STR_02DE_MAP_OF_WORLD                                           :Mapa del mundo
--- a/lang/swedish.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/swedish.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -723,8 +723,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Visa senaste meddelande eller nyhet
-STR_02B8_SUMMARY                                                :{BLACK}Summering
-STR_02B9_FULL                                                   :{BLACK}Full
+STR_SUMMARY                                                     :Summering
+STR_FULL                                                        :Full
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Lista av städer
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Fordonens modellnamn
@@ -770,8 +770,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :Om 'OpenTTD'
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Av
 STR_02DA_ON                                                     :{BLACK}På
-STR_02DB_OFF                                                    :{BLACK}Av
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Visa subventioner
 STR_02DD_SUBSIDIES                                              :Subventioner
 STR_02DE_MAP_OF_WORLD                                           :Världskarta
--- a/lang/unfinished/estonian.txt	Wed Apr 13 18:36:29 2005 +0000
+++ b/lang/unfinished/estonian.txt	Wed Apr 13 23:03:31 2005 +0000
@@ -719,8 +719,8 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Näitab viimast teadet
-STR_02B8_SUMMARY                                                :{BLACK}Lühike
-STR_02B9_FULL                                                   :{BLACK}Täielik
+STR_SUMMARY                                                     :Lühike
+STR_FULL                                                        :Täielik
 STR_02BA                                                        :{SILVER}- -  {STRING}  - -
 STR_02BB_TOWN_DIRECTORY                                         :Linnade nimistu
 STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Sõidukite disaini nimed
@@ -766,8 +766,8 @@
 STR_02D9_ABOUT_OPENTTD                                          :'OpenTTD' kohta
 ############ range ends	here
 
+STR_02DB_OFF                                                    :{BLACK}Väljas
 STR_02DA_ON                                                     :{BLACK}Sees
-STR_02DB_OFF                                                    :{BLACK}Väljas
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Kuvab subsiidiumite akna
 STR_02DD_SUBSIDIES                                              :Subsiidiumid
 STR_02DE_MAP_OF_WORLD                                           :Maailmakaart
--- a/main_gui.c	Wed Apr 13 18:36:29 2005 +0000
+++ b/main_gui.c	Wed Apr 13 23:03:31 2005 +0000
@@ -2238,6 +2238,9 @@
 				DrawStringCentered(320, 1,	STR_02BA, 0);
 			}
 		}
+
+		if (WP(w, def_d).data_2 > 0)
+			DrawSprite(SPR_BLOT | PALETTE_TO_RED, 489, 2);
 		break;
 
 	case WE_CLICK:
@@ -2251,10 +2254,20 @@
 		break;
 
 	case WE_TICK: {
-		if (_pause || WP(w,def_d).data_1 <= -1280)
-			return;
-		WP(w,def_d).data_1 -= 2;
-		InvalidateWidget(w, 1);
+		if (_pause) return;
+
+		if (WP(w, def_d).data_1 > -1280) { /* Scrolling text */
+			WP(w, def_d).data_1 -= 2;
+			InvalidateWidget(w, 1);
+		}
+
+		if (WP(w, def_d).data_2 > 0) { /* Red blot to show there are new unread newsmessages */
+			WP(w, def_d).data_2 -= 2;
+		} else if (WP(w, def_d).data_2 < 0) {
+			WP(w, def_d).data_2 = 0;
+			InvalidateWidget(w, 1);
+		}
+
 		break;
 	}
 	}
--- a/news_gui.c	Wed Apr 13 18:36:29 2005 +0000
+++ b/news_gui.c	Wed Apr 13 23:03:31 2005 +0000
@@ -1,6 +1,7 @@
 #include "stdafx.h"
 #include "ttd.h"
 #include "strings.h"
+#include "table/sprites.h"
 #include "table/strings.h"
 #include "window.h"
 #include "gui.h"
@@ -340,6 +341,31 @@
 	0
 };
 
+/** Get the value of an item of the news-display settings. This is
+ * a little tricky since on/off/summary must use 2 bits to store the value
+ * @param item the item whose value is requested
+ * @return return the found value which is between 0-2
+ */
+static inline byte GetNewsDisplayValue(byte item)
+{
+	assert(item < 10 && ((_news_display_opt >> (item * 2)) & 0x3) <= 2);
+	return (_news_display_opt >> (item * 2)) & 0x3;
+}
+
+/** Set the value of an item in the news-display settings. This is
+ * a little tricky since on/off/summary must use 2 bits to store the value
+ * @param item the item whose value is being set
+ * @param val new value
+ */
+static inline void SetNewsDisplayValue(byte item, byte val)
+{
+	assert(item < 10 && val <= 2);
+	item *= 2;
+	CLRBIT(_news_display_opt, item);
+	CLRBIT(_news_display_opt, item + 1);
+	_news_display_opt |= val << item;
+}
+
 // open up an own newspaper window for the news item
 static void ShowNewspaper(NewsItem *ni)
 {
@@ -392,7 +418,8 @@
 {
 	Window *w;
 
-	SndPlayFx(SND_16_MORSE);
+	if (_news_ticker_sound) SndPlayFx(SND_16_MORSE);
+
 	_statusbar_news_item = *ni;
 	w = FindWindowById(WC_STATUS_BAR, 0);
 	if (w != NULL)
@@ -448,11 +475,24 @@
 		if ( ni->isValid != NULL && !ni->isValid(ni->data_a, ni->data_b) )
 			return;
 
-		// show newspaper or send to ticker?
-		if (!HASBIT(_news_display_opt, ni->type) && !(ni->flags & NF_FORCE_BIG))
-			ShowTicker(ni);
-		else
-			ShowNewspaper(ni);
+  	switch (GetNewsDisplayValue(ni->type)) {
+  	case 0: { /* Off - show nothing only a small reminder in the status bar */
+  		Window *w = FindWindowById(WC_STATUS_BAR, 0);
+			if (w != NULL) {
+				WP(w, def_d).data_2 = 91;
+				SetWindowDirty(w);
+			}
+  	} break;
+  	case 1: /* Summary - show ticker, but if forced big, cascade to full */
+  		if (!(ni->flags & NF_FORCE_BIG)) {
+  			ShowTicker(ni);
+  			break;
+  		}
+  		/* Fallthrough */
+  	case 2: /* Full - show newspaper*/
+  		ShowNewspaper(ni);
+  		break;
+  	}
 	}
 }
 
@@ -664,92 +704,173 @@
 	}
 }
 
+/** Setup the disabled/enabled buttons in the message window
+ * If the value is 'off' disable the [<] widget, and enable the [>] one
+ * Same-wise for all the others. Starting value of 3 is the first widget
+ * group. These are grouped as [<][>] .. [<][>], etc.
+ */
+static void SetMessageButtonStates(Window *w, byte value, int element)
+{
+	element *= 2;
+	switch (value) {
+	case 0: /* Off */
+		SETBIT(w->disabled_state, element + 3);
+		CLRBIT(w->disabled_state, element + 3 + 1);
+		break;
+	case 1: /* Summary */
+		CLRBIT(w->disabled_state, element + 3);
+		CLRBIT(w->disabled_state, element + 3 + 1);
+		break;
+	case 2: /* Full */
+		SETBIT(w->disabled_state, element + 3 + 1);
+		CLRBIT(w->disabled_state, element + 3);
+		break;
+	default: NOT_REACHED();
+	}
+}
 
 static void MessageOptionsWndProc(Window *w, WindowEvent *e)
 {
+	static const StringID message_opt[] = {STR_OFF, STR_SUMMARY, STR_FULL, INVALID_STRING_ID};
+	static const uint32 message_val[] = {0x0, 0x55555555, 0xAAAAAAAA}; // 0x555.. = 01010101010101010101 (all summary), 286.. 1010... (full)
+	static const uint32 message_dis[] = {
+		(1 << 3) | (1 << 5) | (1 << 7) | (1 << 9)  | (1 << 11) | (1 << 13) | (1 << 15) | (1 << 17) | (1 << 19) | (1 << 21),
+		0,
+		(1 << 4) | (1 << 6) | (1 << 8) | (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16) | (1 << 18) | (1 << 20) | (1 << 22),
+	};
+
+	/* WP(w, def_d).data_1 are stores the clicked state of the fake widgets
+	 * WP(w, def_d).data_2 stores state of the ALL on/off/summary button */
 	switch (e->event) {
+	case WE_CREATE: {
+		uint32 val = _news_display_opt;
+		int i;
+		WP(w, def_d).data_1 = WP(w, def_d).data_2 = 0;
+
+		// Set up the initial disabled buttons in the case of 'off' or 'full'
+		for (i = 0; i != 10; i++, val >>= 2) SetMessageButtonStates(w, val & 0x3, i);
+	} break;
+
 	case WE_PAINT: {
-		uint16 x = _news_display_opt;
-		uint32 cs = 0;
+		uint32 val = _news_display_opt;
+		int click_state = WP(w, def_d).data_1;
 		int i, y;
 
-		for (i = 3; i != 23; i += 2) {
-			cs |= 1 << (i + (x & 1));
-			x >>= 1;
-		}
-		cs |= (w->click_state >> 23) << 23;
-
-		w->click_state = cs;
+		if (_news_ticker_sound) SETBIT(w->click_state, 25);
 		DrawWindowWidgets(w);
-
 		DrawStringCentered(185, 15, STR_0205_MESSAGE_TYPES, 0);
 
-		y = 27;
-		for (i = STR_0206_ARRIVAL_OF_FIRST_VEHICLE; i <= STR_020F_GENERAL_INFORMATION; i++) {
-			DrawString(124, y, i, 0);
-			y += 12;
+		/* XXX - Draw the fake widgets-buttons. Can't add these to the widget-desc since
+		 * openttd currently can only handle 32 widgets. So hack it *g* */
+		for (i = 0, y = 26; i != 10; i++, y += 12, click_state >>= 1, val >>= 2) {
+			bool clicked = !!(click_state & 1);
+
+			DrawFrameRect(13, y, 89, 11 + y, 3, (clicked) ? 0x20 : 0);
+			DrawStringCentered(((13 + 89 + 1) >> 1) + clicked, ((y + 11 + y + 1) >> 1) - 5 + clicked, message_opt[val & 0x3], 0x10);
+			DrawString(103, y + 1, i + STR_0206_ARRIVAL_OF_FIRST_VEHICLE, 0);
 		}
 
-		break;
-	}
+		DrawString(  8, y + 9, message_opt[WP(w, def_d).data_2], 0x10);
+		DrawString(103, y + 9, STR_MESSAGES_ALL, 0);
+		DrawString(103, y + 9 + 12, STR_MESSAGE_SOUND, 0);
 
-	case WE_CLICK: {
-		int wid;
-		if ((uint)(wid = e->click.widget - 3) < 20) {
-			if (!(wid & 1))
-				_news_display_opt &= ~(1 << (wid / 2));
-			else
-				_news_display_opt |= (1 << (wid / 2));
-			SetWindowDirty(w);
-			// XXX: write settings
-		}
-		if (e->click.widget == 23) {
-			_news_display_opt = 0;
-			HandleButtonClick(w, 23);
-			SetWindowDirty(w);
-		}
-		if (e->click.widget == 24) {
-			_news_display_opt = ~0;
-			HandleButtonClick(w, 24);
-			SetWindowDirty(w);
-		}
 	} break;
+
+	case WE_CLICK:
+		switch (e->click.widget) {
+		case 2: /* Clicked on any of the fake widgets */
+			if (e->click.pt.x > 13 && e->click.pt.x < 89 && e->click.pt.y > 26 && e->click.pt.y < 146) {
+				int element = (e->click.pt.y - 26) / 12;
+				byte val = (GetNewsDisplayValue(element) + 1) % 3;
+
+				SetMessageButtonStates(w, val, element);
+				SetNewsDisplayValue(element, val);
+
+				WP(w, def_d).data_1 |= (1 << element);
+				w->flags4 |= 5 << WF_TIMEOUT_SHL; // XXX - setup unclick (fake widget)
+				SetWindowDirty(w);
+			}
+			break;
+		case 23: case 24: /* Dropdown menu for all settings */
+			ShowDropDownMenu(w, message_opt, WP(w, def_d).data_2, 24, 0, 0);
+			break;
+		case 25: /* Change ticker sound on/off */
+			_news_ticker_sound ^= 1;
+			TOGGLEBIT(w->click_state, e->click.widget);
+			InvalidateWidget(w, e->click.widget);
+			break;
+		default: { /* Clicked on the [<] .. [>] widgets */
+			int wid = e->click.widget;
+			if (wid > 2 && wid < 23) {
+				int element = (wid - 3) / 2;
+				byte val = (GetNewsDisplayValue(element) + ((wid & 1) ? -1 : 1)) % 3;
+
+				SetMessageButtonStates(w, val, element);
+				SetNewsDisplayValue(element, val);
+				SetWindowDirty(w);
+			}
+		} break;
+		} break;
+
+	case WE_DROPDOWN_SELECT: /* Select all settings for newsmessages */
+		WP(w, def_d).data_2 = e->dropdown.index;
+		_news_display_opt = message_val[WP(w, def_d).data_2];
+		w->disabled_state = message_dis[WP(w, def_d).data_2];
+		SetWindowDirty(w);
+		break;
+
+	case WE_TIMEOUT: /* XXX - Hack to animate 'fake' buttons */
+		WP(w, def_d).data_1 = 0;
+		SetWindowDirty(w);
+		break;
+
 	}
 }
 
 static const Widget _message_options_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,    13,    11,   369,     0,    13, STR_0204_MESSAGE_OPTIONS,STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,    13,     0,   369,    14,   172, 0x0,											STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    26,    37, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    26,    37, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    38,    49, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    38,    49, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    50,    61, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    50,    61, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    62,    73, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    62,    73, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    74,    85, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    74,    85, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    86,    97, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    86,    97, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,    98,   109, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,    98,   109, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,   110,   121, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,   110,   121, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,   122,   133, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,   122,   133, STR_02B9_FULL,						STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,     2,    61,   134,   145, STR_02B8_SUMMARY,				STR_NULL},
-{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    62,   121,   134,   145, STR_02B9_FULL,						STR_NULL},
+{   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,   10,     0,    13, STR_00C5,             STR_018B_CLOSE_WINDOW},
+{    WWT_CAPTION,   RESIZE_NONE,    13,    11,  409,     0,    13, STR_0204_MESSAGE_OPTIONS, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{      WWT_PANEL,   RESIZE_NONE,    13,     0,  409,    14,   184, STR_NULL,             STR_NULL},
 
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    15,   170,   154,   165, STR_MESSAGES_DISABLE_ALL,STR_NULL },
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,     3,   200,   355,   154,   165, STR_MESSAGES_ENABLE_ALL,	STR_NULL },
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    26,    37, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    26,    37, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    38,    49, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    38,    49, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    50,    61, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    50,    61, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    62,    73, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    62,    73, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    74,    85, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    74,    85, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    86,    97, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    86,    97, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    98,   109, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    98,   109, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   110,   121, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   110,   121, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   122,   133, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   122,   133, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   134,   145, SPR_ARROW_LEFT,       STR_HSCROLL_BAR_SCROLLS_LIST},
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   134,   145, SPR_ARROW_RIGHT,      STR_HSCROLL_BAR_SCROLLS_LIST},
+
+{      WWT_PANEL,   RESIZE_NONE,     3,     4,   86,   154,   165, STR_NULL,             STR_NULL},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     3,    87,   98,   154,   165, STR_0225,             STR_NULL},
+{          WWT_4,   RESIZE_NONE,     3,     4,   98,   166,   177, STR_02DB_OFF,         STR_NULL},
 
 {   WIDGETS_END},
 };
 
 static const WindowDesc _message_options_desc = {
-	270, 22, 370, 173,
+	270, 22, 410, 185,
 	WC_GAME_OPTIONS, 0,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 	_message_options_widgets,
--- a/settings.c	Wed Apr 13 18:36:29 2005 +0000
+++ b/settings.c	Wed Apr 13 23:03:31 2005 +0000
@@ -485,12 +485,12 @@
 
 static const void *string_to_val(const SettingDesc *desc, const char *str)
 {
-	unsigned long val;
+	uint32 val;
 	char *end;
 
 	switch(desc->flags & 0xF) {
 	case SDT_INTX:
-		val = strtol(str, &end, 0);
+		val = strtoul(str, &end, 0);
 		if (*end != 0) ShowInfoF("ini: trailing characters at end of setting '%s'", desc->name);
 		return (void*)val;
 	case SDT_ONEOFMANY: {
@@ -599,7 +599,7 @@
 	IniItem *item;
 	const void *p;
 	void *ptr;
-	int i = 0;
+	uint32 i = 0;
 	char buf[512]; // setting buffer
 	const char *s;
 
@@ -679,7 +679,7 @@
 			}
 			switch(desc->flags & 0xF) {
 			case SDT_INTX:
-				sprintf(buf, "%d", i);
+				sprintf(buf, "%u", i);
 				break;
 			case SDT_ONEOFMANY:
 				make_oneofmany(buf, (const char*)desc->b, i);
@@ -742,7 +742,8 @@
 
 static const SettingDesc misc_settings[] = {
 	{"display_opt",				SDT_MANYOFMANY | SDT_UINT8, (void*)(DO_SHOW_TOWN_NAMES|DO_SHOW_STATION_NAMES|DO_SHOW_SIGNS|DO_FULL_ANIMATION|DO_FULL_DETAIL|DO_TRANS_BUILDINGS|DO_WAYPOINTS), &_display_opt, "SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|TRANS_BUILDINGS|FULL_DETAIL|WAYPOINTS"},
-	{"news_display_opt",	SDT_UINT16,		(void*)-1,		&_news_display_opt,		NULL},
+	{"news_display_opt",	SDT_UINT32,		"0xAAAAAAAA",		&_news_display_opt,		NULL}, // default to all full messages: 10101010101010101010 = 0xAAAAAAAA
+	{"news_ticker_sound", SDT_BOOL,     (void*)true, &_news_ticker_sound,   NULL},
 	{"fullscreen",				SDT_BOOL,			(void*)false, &_fullscreen,					NULL},
 	{"videodriver",				SDT_STRINGBUF | (lengthof(_ini_videodriver)<<16) | SDT_NOSAVE,NULL,			_ini_videodriver,				NULL},
 	{"musicdriver",				SDT_STRINGBUF | (lengthof(_ini_musicdriver)<<16) | SDT_NOSAVE,NULL,			_ini_musicdriver,				NULL},
@@ -1051,3 +1052,16 @@
 	ini_save(_config_file, ini);
 	ini_free(ini);
 }
+
+void CheckConfig(void)
+{
+	// fix up news_display_opt from old to new
+	int i;
+	uint32 tmp;
+	for (i = 0, tmp = _news_display_opt; i != 10; i++, tmp >>= 1) {
+		if ((tmp & 0x3) == 0x3) { // old settings
+			_news_display_opt = 0xAAAAAAAA; // set all news-messages to full 1010101010...
+			break;
+		}
+	}
+}
--- a/ttd.c	Wed Apr 13 18:36:29 2005 +0000
+++ b/ttd.c	Wed Apr 13 23:03:31 2005 +0000
@@ -601,6 +601,7 @@
 #endif
 
 	LoadFromConfig();
+	CheckConfig();
 	LoadFromHighScore();
 
 	// override config?
--- a/variables.h	Wed Apr 13 18:36:29 2005 +0000
+++ b/variables.h	Wed Apr 13 23:03:31 2005 +0000
@@ -269,7 +269,8 @@
 VARDEF byte _display_opt;
 VARDEF byte _pause;
 VARDEF int _caret_timer;
-VARDEF uint16 _news_display_opt;
+VARDEF uint32 _news_display_opt;
+VARDEF bool _news_ticker_sound;
 VARDEF byte _game_mode;
 
 VARDEF StringID _error_message;
--- a/vehicle_gui.c	Wed Apr 13 18:36:29 2005 +0000
+++ b/vehicle_gui.c	Wed Apr 13 23:03:31 2005 +0000
@@ -155,14 +155,14 @@
 
 	// draw profit-based colored icons
 	if(v->age <= 365 * 2)
-		ormod = 0x3158000; // grey
+		ormod = PALETTE_TO_GREY;
 	else if(v->profit_last_year < 0)
-		ormod = 0x30b8000; //red
+		ormod = PALETTE_TO_RED;
 	else if(v->profit_last_year < 10000)
-		ormod = 0x30a8000; // yellow
+		ormod = PALETTE_TO_YELLOW;
 	else
-		ormod = 0x30d8000; // green
-	DrawSprite((SPR_BLOT) | ormod, x, y);
+		ormod = PALETTE_TO_GREEN;
+	DrawSprite(SPR_BLOT | ormod, x, y);
 }
 
 /************ Sorter functions *****************/