mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 03:53:07 +01:00
Merge remote-tracking branch 'upstream/master' into scenery-window
This commit is contained in:
@@ -42,7 +42,7 @@ STR_0040 :Attractie
|
||||
STR_0041 :Attractie
|
||||
STR_0042 :Attractie
|
||||
STR_0043 :Attractie
|
||||
STR_0044 :Omgekeerde vrijvalachtbaan
|
||||
STR_0044 :Omgekeerde vrijevalachtbaan
|
||||
STR_0045 :Lift
|
||||
STR_0046 :Attractie
|
||||
STR_0047 :Attractie
|
||||
@@ -836,7 +836,7 @@ STR_0834 :{SMALLFONT}{BLACK}Schijf- en spelopties
|
||||
STR_0835 :Kan het spel niet initialiseren
|
||||
STR_0836 :Kan het spel niet in geminimaliseerde toestand starten
|
||||
STR_0837 :Kan het grafisch systeem niet starten
|
||||
STR_0838 :CD-code {INT32} is niet geldig voor deze CD van RollerCoaster Tycoon 2 CD!{WINDOW_COLOUR_1}{WINDOW_COLOUR_1}Deïnstalleer RollerCoaster Tycoon 2% en installeer het opnieuw met de correcte CD-code
|
||||
STR_0838 :CD-code {INT32} is niet geldig voor deze CD van RollerCoaster Tycoon 2!{WINDOW_COLOUR_1}{WINDOW_COLOUR_1}Deïnstalleer RollerCoaster Tycoon 2% en installeer het opnieuw met de correcte CD-code
|
||||
STR_0839 :{UINT16} x {UINT16}
|
||||
STR_0840 :{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{UINT16} x {UINT16}
|
||||
STR_0841 :Bureaubladvenster
|
||||
@@ -1031,7 +1031,7 @@ STR_1029 :Kan niet gedeeltelijk boven en onder water bouwen!
|
||||
STR_1030 :Dit kan alleen onder water worden gebouwd!
|
||||
STR_1031 :Dit kan niet onder water worden gebouwd!
|
||||
STR_1032 :Dit kan alleen op water worden gebouwd!
|
||||
STR_1033 :Dit kan alleen bouwen de grond worden gebouwd!
|
||||
STR_1033 :Dit kan alleen boven de grond worden gebouwd!
|
||||
STR_1034 :Dit kan alleen op land worden gebouwd!
|
||||
STR_1035 :De gemeente staat geen constructies boven boomniveau toe!
|
||||
STR_1036 :Spel laden
|
||||
@@ -1060,7 +1060,7 @@ STR_1058 :Voer een nieuwe naam in voor deze attractie:
|
||||
STR_1059 :Kan deze attractienaam geen andere naam geven...
|
||||
STR_1060 :Ongeldige attractienaam
|
||||
STR_1061 :Normale stand
|
||||
STR_1062 :Continu circuit
|
||||
STR_1062 :Voortdurend circuit
|
||||
STR_1063 :Lancering via achterwaartse optakeling
|
||||
STR_1064 :Lancering
|
||||
STR_1065 :Shuttlestand
|
||||
@@ -1093,7 +1093,7 @@ STR_1091 :Circusmodus
|
||||
STR_1092 :Neerwaartse lancering
|
||||
STR_1093 :Crooked housestand
|
||||
STR_1094 :Vrijevalmodus
|
||||
STR_1095 :Continuous circuit met blokken
|
||||
STR_1095 :Voortdurend circuit met blokken
|
||||
STR_1096 :Lancering
|
||||
STR_1097 :Lancering met blokken
|
||||
STR_1098 :Gaat naar het einde van {POP16}{STRINGID}
|
||||
@@ -1197,11 +1197,11 @@ STR_1195 :Testrit
|
||||
STR_1196 :Open
|
||||
STR_1197 :Defect
|
||||
STR_1198 :Neergestort!
|
||||
STR_1199 :{COMMA16} persoon aan boord
|
||||
STR_1200 :{COMMA16} mensen aan boord
|
||||
STR_1199 :{COMMA16} passagier
|
||||
STR_1200 :{COMMA16} passagiers
|
||||
STR_1201 :Niemand in de wachtrij
|
||||
STR_1202 :1 persoon in de wachtrij
|
||||
STR_1203 :{COMMA16} mensen in de wachtrij
|
||||
STR_1202 :1 bezoeker in de wachtrij
|
||||
STR_1203 :{COMMA16} bezoekers in de wachtrij
|
||||
STR_1204 :{COMMA16} minuut wachttijd
|
||||
STR_1205 :{COMMA16} minuten wachttijd
|
||||
STR_1206 :{WINDOW_COLOUR_2}Wacht op:
|
||||
@@ -1558,7 +1558,7 @@ STR_1556 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een paraplu van {
|
||||
STR_1557 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor frisdrank van {STRINGID}{ENDQUOTES}
|
||||
STR_1558 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een hamburger {STRINGID}{ENDQUOTES}
|
||||
STR_1559 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor frietjes van {STRINGID}{ENDQUOTES}
|
||||
STR_1560 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een ijstje van {STRINGID}{ENDQUOTES}
|
||||
STR_1560 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een ijsje van {STRINGID}{ENDQUOTES}
|
||||
STR_1561 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een suikerspin van {STRINGID}{ENDQUOTES}
|
||||
STR_1562 :
|
||||
STR_1563 :
|
||||
@@ -1590,13 +1590,13 @@ STR_1588 :{SMALLFONT}{OPENQUOTES}Deze warme chocolademelk van {STRINGID} is e
|
||||
STR_1589 :{SMALLFONT}{OPENQUOTES}Deze ijsthee van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1590 :{SMALLFONT}{OPENQUOTES}Deze funnel cake van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1591 :{SMALLFONT}{OPENQUOTES}Deze zonnebril van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1592 :{SMALLFONT}{OPENQUOTES}These beef noodles van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1593 :{SMALLFONT}{OPENQUOTES}These fried rice noodles van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1594 :{SMALLFONT}{OPENQUOTES}This wonton soup van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1595 :{SMALLFONT}{OPENQUOTES}This meatball soup van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1592 :{SMALLFONT}{OPENQUOTES}Deze rundernoedels van {STRINGID} zijn erg goedkoop{ENDQUOTES}
|
||||
STR_1593 :{SMALLFONT}{OPENQUOTES}Deze rijstnoedels van {STRINGID} zijn erg goedkoop{ENDQUOTES}
|
||||
STR_1594 :{SMALLFONT}{OPENQUOTES}Deze wantansoep van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1595 :{SMALLFONT}{OPENQUOTES}Deze soep met balletjes van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1596 :{SMALLFONT}{OPENQUOTES}Dit sap van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1597 :{SMALLFONT}{OPENQUOTES}Deze sojamelk van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1598 :{SMALLFONT}{OPENQUOTES}This sujongkwa van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1598 :{SMALLFONT}{OPENQUOTES}Deze sujeonggwa van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1599 :{SMALLFONT}{OPENQUOTES}Dit broodje van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1600 :{SMALLFONT}{OPENQUOTES}Dit koekje van {STRINGID} is erg goedkoop{ENDQUOTES}
|
||||
STR_1601 :
|
||||
@@ -1622,13 +1622,13 @@ STR_1620 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor warme chocolademe
|
||||
STR_1621 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor ijsthee van {STRINGID}{ENDQUOTES}
|
||||
STR_1622 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een funnel cake van {STRINGID}{ENDQUOTES}
|
||||
STR_1623 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een zonnebril van {STRINGID}{ENDQUOTES}
|
||||
STR_1624 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor beef noodles van {STRINGID}{ENDQUOTES}
|
||||
STR_1625 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor fried rice noodles van {STRINGID}{ENDQUOTES}
|
||||
STR_1626 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor wonton soup van {STRINGID}{ENDQUOTES}
|
||||
STR_1627 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor meatball soup van {STRINGID}{ENDQUOTES}
|
||||
STR_1624 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor rundernoedels van {STRINGID}{ENDQUOTES}
|
||||
STR_1625 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor rijstnoedels van {STRINGID}{ENDQUOTES}
|
||||
STR_1626 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor wantansoep van {STRINGID}{ENDQUOTES}
|
||||
STR_1627 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor soep met balletjes van {STRINGID}{ENDQUOTES}
|
||||
STR_1628 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor sap van {STRINGID}{ENDQUOTES}
|
||||
STR_1629 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor sojamelk van {STRINGID}{ENDQUOTES}
|
||||
STR_1630 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor sujongkwa van {STRINGID}{ENDQUOTES}
|
||||
STR_1630 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor sujeonggwa van {STRINGID}{ENDQUOTES}
|
||||
STR_1631 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een broodje van {STRINGID}{ENDQUOTES}
|
||||
STR_1632 :{SMALLFONT}{OPENQUOTES}Zoveel betaal ik niet voor een koekje van {STRINGID}{ENDQUOTES}
|
||||
STR_1633 :
|
||||
@@ -1766,9 +1766,9 @@ STR_1764 :Balkendrempels
|
||||
STR_1765 :Actiefoto-installatie
|
||||
STR_1766 :Draaischijf
|
||||
STR_1767 :Draaiende tunnel
|
||||
STR_1768 :Can't change number of swings...
|
||||
STR_1769 :{WINDOW_COLOUR_2}Number of swings:
|
||||
STR_1770 :{SMALLFONT}{BLACK}Number of complete swings
|
||||
STR_1768 :Kan het aantal schommelingen niet aanpassen...
|
||||
STR_1769 :{WINDOW_COLOUR_2}Aantal schommelingen:
|
||||
STR_1770 :{SMALLFONT}{BLACK}Aantal complete schommelingen
|
||||
STR_1771 :{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{COMMA16}
|
||||
STR_1772 :{COMMA16}
|
||||
STR_1773 :Een attractie mag maar één actiefoto-installatie hebben
|
||||
@@ -1790,8 +1790,8 @@ STR_1788 :{INLINE_SPRITE}{07}{20}{00}{00} Sheriffkostuum
|
||||
STR_1789 :{INLINE_SPRITE}{08}{20}{00}{00} Piratenpak
|
||||
STR_1790 :{SMALLFONT}{BLACK}Selecteer de uniformkleur voor dit type werknemer
|
||||
STR_1791 :{WINDOW_COLOUR_2}Uniformkleur:
|
||||
STR_1792 :Gaat naar {STRINGID} voor een reparatie
|
||||
STR_1793 :Gaat naar {STRINGID} voor een inspectie
|
||||
STR_1792 :Gaat {STRINGID} repareren
|
||||
STR_1793 :Gaat {STRINGID} inspecteren
|
||||
STR_1794 :Repareert {STRINGID}
|
||||
STR_1795 :Beantwoordt radio-oproep
|
||||
STR_1796 :Is defect en moet worden gerepareerd
|
||||
@@ -1814,16 +1814,16 @@ STR_1812 :{SMALLFONT}{BLACK}{STRINGID}
|
||||
STR_1813 :Overige objecten
|
||||
STR_1814 :Acties
|
||||
STR_1815 :Gedachten
|
||||
STR_1816 :{SMALLFONT}{BLACK}Select information type to show in guest list
|
||||
STR_1816 :{SMALLFONT}{BLACK}Selecteer het type informatie dat je in de gastenlijst wilt zien
|
||||
STR_1817 :({COMMA16})
|
||||
STR_1818 :{WINDOW_COLOUR_2}Alle bezoekers
|
||||
STR_1819 :{WINDOW_COLOUR_2}Alle bezoekers (samengevat)
|
||||
STR_1820 :{WINDOW_COLOUR_2}Guests {STRINGID}
|
||||
STR_1821 :{WINDOW_COLOUR_2}Guests thinking {STRINGID}
|
||||
STR_1822 :{WINDOW_COLOUR_2}Guests thinking about {POP16}{STRINGID}
|
||||
STR_1823 :{SMALLFONT}{BLACK}Show guests' thoughts about this ride/attraction
|
||||
STR_1824 :{SMALLFONT}{BLACK}Show guests on this ride/attraction
|
||||
STR_1825 :{SMALLFONT}{BLACK}Show guests queuing for this ride/attraction
|
||||
STR_1820 :{WINDOW_COLOUR_2}Bezoekers die {STRINGID}
|
||||
STR_1821 :{WINDOW_COLOUR_2}Bezoekers die {STRINGID} denken
|
||||
STR_1822 :{WINDOW_COLOUR_2}Bezoekers met gedachten over {POP16}{STRINGID}
|
||||
STR_1823 :{SMALLFONT}{BLACK}Toon de gedachten van bezoekers over deze attractie
|
||||
STR_1824 :{SMALLFONT}{BLACK}Toon de bezoekers in deze attractie
|
||||
STR_1825 :{SMALLFONT}{BLACK}Toon de bezoekers die in de rij staan voor deze attractie
|
||||
STR_1826 :Status
|
||||
STR_1827 :Populariteit
|
||||
STR_1828 :Voldoening
|
||||
@@ -1842,15 +1842,15 @@ STR_1840 :Stilstandtijd: {COMMA16}%
|
||||
STR_1841 :Winst: {CURRENCY} per uur
|
||||
STR_1842 :Favoriete attractie van: {COMMA16} bezoeker
|
||||
STR_1843 :Favoriete attractie van: {COMMA16} bezoekers
|
||||
STR_1844 :{SMALLFONT}{BLACK}Select information type to show in ride/attraction list
|
||||
STR_1844 :{SMALLFONT}{BLACK}Selecteer het type informatie dat je in de attractielijst wilt zien
|
||||
STR_1845 :{MONTHYEAR}
|
||||
STR_1846 :{COMMA16} bezoekers
|
||||
STR_1847 :{INLINE_SPRITE}{11}{20}{00}{00}{COMMA16} bezoekers
|
||||
STR_1848 :{INLINE_SPRITE}{10}{20}{00}{00}{COMMA16} bezoekers
|
||||
STR_1849 :{WINDOW_COLOUR_2}Draai muziek
|
||||
STR_1850 :{SMALLFONT}{BLACK}Select whether music should be played for this ride
|
||||
STR_1851 :{WINDOW_COLOUR_2}Running cost: {BLACK}{CURRENCY2DP} per hour
|
||||
STR_1852 :{WINDOW_COLOUR_2}Running cost: {BLACK}Unknown
|
||||
STR_1850 :{SMALLFONT}{BLACK}Selecteer of er in deze attractie muziek moet worden gedraaid
|
||||
STR_1851 :{WINDOW_COLOUR_2}Bedrijfskosten: {BLACK}{CURRENCY2DP} per uur
|
||||
STR_1852 :{WINDOW_COLOUR_2}Bedrijfskosten: {BLACK}Onbekend
|
||||
STR_1853 :{WINDOW_COLOUR_2}Bouw: {BLACK}dit jaar
|
||||
STR_1854 :{WINDOW_COLOUR_2}Bouw: {BLACK}vorig jaar
|
||||
STR_1855 :{WINDOW_COLOUR_2}Bouw: {BLACK}{COMMA16} jaar geleden
|
||||
@@ -1867,15 +1867,15 @@ STR_1865 :Bewaker
|
||||
STR_1866 :Entertainer
|
||||
STR_1867 :{BLACK}{COMMA16} {STRINGID}
|
||||
STR_1868 :Kan het aantal rotaties niet aanpassen...
|
||||
STR_1869 :{WINDOW_COLOUR_2}Number of rotations:
|
||||
STR_1870 :{SMALLFONT}{BLACK}Number of complete rotations
|
||||
STR_1869 :{WINDOW_COLOUR_2}Aantal rotaties:
|
||||
STR_1870 :{SMALLFONT}{BLACK}Aantal complete rotaties
|
||||
STR_1871 :{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{POP16}{COMMA16}
|
||||
STR_1872 :{COMMA16}
|
||||
STR_1873 :{WINDOW_COLOUR_2}Inkomsten: {BLACK}{CURRENCY} per uur
|
||||
STR_1874 :{WINDOW_COLOUR_2}Winst: {BLACK}{CURRENCY} per uur
|
||||
STR_1875 :{BLACK} {SPRITE}{BLACK} {STRINGID}
|
||||
STR_1876 :{WINDOW_COLOUR_2}{INLINE_SPRITE}{251}{19}{00}{00}Inspect Rides
|
||||
STR_1877 :{WINDOW_COLOUR_2}{INLINE_SPRITE}{252}{19}{00}{00}Fix Rides
|
||||
STR_1876 :{WINDOW_COLOUR_2}{INLINE_SPRITE}{251}{19}{00}{00}Attracties inspecteren
|
||||
STR_1877 :{WINDOW_COLOUR_2}{INLINE_SPRITE}{252}{19}{00}{00}Attracties repareren
|
||||
STR_1878 :{WINDOW_COLOUR_2}Inspectie:
|
||||
STR_1879 :Elke 10 minuten
|
||||
STR_1880 :Elke 20 minutes
|
||||
@@ -1884,16 +1884,16 @@ STR_1882 :Elke 45 minutes
|
||||
STR_1883 :Elk uur
|
||||
STR_1884 :Elke 2 uur
|
||||
STR_1885 :Nooit
|
||||
STR_1886 :Inspecting {STRINGID}
|
||||
STR_1887 :{WINDOW_COLOUR_2}Time since last inspection: {BLACK}{COMMA16} minutes
|
||||
STR_1888 :{WINDOW_COLOUR_2}Time since last inspection: {BLACK}more than 4 hours
|
||||
STR_1886 :Inspecteert {STRINGID}
|
||||
STR_1887 :{WINDOW_COLOUR_2}Tijd sinds laatste inspectie: {BLACK}{COMMA16} minuten
|
||||
STR_1888 :{WINDOW_COLOUR_2}Tijd sinds laatste inspectie: {BLACK}meer dan 4 uur
|
||||
STR_1889 :{WINDOW_COLOUR_2}Stilstandtijd: {MOVE_X}{255}{BLACK}{COMMA16}%
|
||||
STR_1890 :{SMALLFONT}{BLACK}Select how often a mechanic should check this ride
|
||||
STR_1891 :No {STRINGID} in park yet!
|
||||
STR_1890 :{SMALLFONT}{BLACK}Selecteer hoe vaak een monteur deze attractie moet inspecteren
|
||||
STR_1891 :Nog geen {STRINGID} in het park!
|
||||
STR_1892 :RollerCoaster Tycoon 2
|
||||
STR_1893 :Please insert your RollerCoaster Tycoon 2 CD in the folLaaging drive:-
|
||||
STR_1893 :Voer je CD van RollerCoaster Tycoon 2 in het volgende stationCD in the folLaaging drive:
|
||||
STR_1894 :{WINDOW_COLOUR_2}{STRINGID} verkocht: {BLACK}{COMMA32}
|
||||
STR_1895 :{SMALLFONT}{BLACK}Build new ride/attraction
|
||||
STR_1895 :{SMALLFONT}{BLACK}Nieuwe attractie bouwen
|
||||
STR_1896 :{WINDOW_COLOUR_2}Uitgaven/Inkomsten
|
||||
STR_1897 :{WINDOW_COLOUR_2}Attractiebouw
|
||||
STR_1898 :{WINDOW_COLOUR_2}Attractiebedrijf
|
||||
@@ -1935,18 +1935,18 @@ STR_1933 :{STRINGID} is nu in {STRINGID}
|
||||
STR_1934 :{STRINGID} heeft {STRINGID} verlaten
|
||||
STR_1935 :{STRINGID} heeft het park verlaten
|
||||
STR_1936 :{STRINGID} heeft {STRINGID} gekocht
|
||||
STR_1937 :{SMALLFONT}{BLACK}Show information about the subject of this message
|
||||
STR_1938 :{SMALLFONT}{BLACK}Show view of guest
|
||||
STR_1939 :{SMALLFONT}{BLACK}Show view of staff member
|
||||
STR_1940 :{SMALLFONT}{BLACK}Show happiness, energy, hunger etc. for this guest
|
||||
STR_1941 :{SMALLFONT}{BLACK}Show which rides this guest has been on
|
||||
STR_1942 :{SMALLFONT}{BLACK}Show financial information about this guest
|
||||
STR_1943 :{SMALLFONT}{BLACK}Show guest's recent thoughts
|
||||
STR_1944 :{SMALLFONT}{BLACK}Show items guest is carrying
|
||||
STR_1945 :{SMALLFONT}{BLACK}Show orders and options for this staff member
|
||||
STR_1946 :{SMALLFONT}{BLACK}Select costume for this entertainer
|
||||
STR_1947 :{SMALLFONT}{BLACK}Show areas patrolled by selected staff type, and locate the nearest staff member
|
||||
STR_1948 :{SMALLFONT}{BLACK}Hire a new staff member of the selected type
|
||||
STR_1937 :{SMALLFONT}{BLACK}Informatie tonen over het onderwerp van dit bericht
|
||||
STR_1938 :{SMALLFONT}{BLACK}Beeld van bezoeker tonen
|
||||
STR_1939 :{SMALLFONT}{BLACK}Beeld van werknemer tonen
|
||||
STR_1940 :{SMALLFONT}{BLACK}Stemming, energie, hongerniveau e.d. van deze bezoeker tonen
|
||||
STR_1941 :{SMALLFONT}{BLACK}Tonen in welke attracties deze bezoeker is geweest
|
||||
STR_1942 :{SMALLFONT}{BLACK}Financiële informatie over deze bezoeker tonen
|
||||
STR_1943 :{SMALLFONT}{BLACK}Recente gedachten van deze bezoeker tonen
|
||||
STR_1944 :{SMALLFONT}{BLACK}Toon de dingen die de gast bij zich heeft
|
||||
STR_1945 :{SMALLFONT}{BLACK}Orders en opties voor deze werknemer tonen
|
||||
STR_1946 :{SMALLFONT}{BLACK}Kostuum van deze entertainer selecteren
|
||||
STR_1947 :{SMALLFONT}{BLACK}Werkgebieden van het geselecteerde type werknemer weergeven, en de dichtstbijzijnde werknemer localiseren
|
||||
STR_1948 :{SMALLFONT}{BLACK}Nieuwe werknemer van het geselecteerde type aannemen
|
||||
STR_1949 :Samenvatting financiën
|
||||
STR_1950 :Grafiek financiën
|
||||
STR_1951 :Grafiek van parkwaardering
|
||||
@@ -2015,25 +2015,25 @@ STR_2013 :Limonade
|
||||
STR_2014 :Lege doos
|
||||
STR_2015 :Lege fles
|
||||
STR_2016 :Ballonnen
|
||||
STR_2017 :Cuddly Toys
|
||||
STR_2018 :Park Maps
|
||||
STR_2017 :Knuffels
|
||||
STR_2018 :Parkplattegronden
|
||||
STR_2019 :Actiefoto's
|
||||
STR_2020 :Umbrellas
|
||||
STR_2021 :Drinks
|
||||
STR_2022 :Burgers
|
||||
STR_2023 :Fries
|
||||
STR_2024 :Ice Creams
|
||||
STR_2025 :Cotton Candy
|
||||
STR_2026 :Empty Cans
|
||||
STR_2027 :Rubbish
|
||||
STR_2028 :Empty Burger Boxes
|
||||
STR_2029 :Pizzas
|
||||
STR_2030 :Vouchers
|
||||
STR_2031 :Popcorn
|
||||
STR_2032 :Hot Dogs
|
||||
STR_2033 :Tentacles
|
||||
STR_2034 :Hats
|
||||
STR_2035 :Candy Apples
|
||||
STR_2020 :Paraplu's
|
||||
STR_2021 :Blikjes frisdrank
|
||||
STR_2022 :Hamburgers
|
||||
STR_2023 :Zakjes fries
|
||||
STR_2024 :IJsjes
|
||||
STR_2025 :Suikerspinnen
|
||||
STR_2026 :Lege blikjes
|
||||
STR_2027 :Stuks rommel
|
||||
STR_2028 :Lege hamburgerdozen
|
||||
STR_2029 :Pizza's
|
||||
STR_2030 :Bonnen
|
||||
STR_2031 :Bakjes popcorn
|
||||
STR_2032 :Hotdogs
|
||||
STR_2033 :Tentakels
|
||||
STR_2034 :Hoeden
|
||||
STR_2035 :Toffeeappels
|
||||
STR_2036 :T-shirts
|
||||
STR_2037 :Donuts
|
||||
STR_2038 :Kopjes koffie
|
||||
@@ -2106,13 +2106,13 @@ STR_2104 :{WINDOW_COLOUR_2}Prijs warme chocolademelk:
|
||||
STR_2105 :{WINDOW_COLOUR_2}Prijs ijsthee:
|
||||
STR_2106 :{WINDOW_COLOUR_2}Prijs funnel cake:
|
||||
STR_2107 :{WINDOW_COLOUR_2}Prijs zonnebril:
|
||||
STR_2108 :{WINDOW_COLOUR_2}Beef Noodles price:
|
||||
STR_2109 :{WINDOW_COLOUR_2}Fried Rice Noodles price:
|
||||
STR_2110 :{WINDOW_COLOUR_2}Wonton Soup price:
|
||||
STR_2111 :{WINDOW_COLOUR_2}Meatball Soup price:
|
||||
STR_2108 :{WINDOW_COLOUR_2}Prijs rundernoedels:
|
||||
STR_2109 :{WINDOW_COLOUR_2}Prijs rijstnoedels:
|
||||
STR_2110 :{WINDOW_COLOUR_2}Prijs wantansoep:
|
||||
STR_2111 :{WINDOW_COLOUR_2}Prijs soep met balletjes:
|
||||
STR_2112 :{WINDOW_COLOUR_2}Prijs sap:
|
||||
STR_2113 :{WINDOW_COLOUR_2}Prijs sojamelk:
|
||||
STR_2114 :{WINDOW_COLOUR_2}Sujongkwa price:
|
||||
STR_2114 :{WINDOW_COLOUR_2}Prijs sujeonggwa:
|
||||
STR_2115 :{WINDOW_COLOUR_2}Prijs broodje:
|
||||
STR_2116 :{WINDOW_COLOUR_2}Prijs koekje:
|
||||
STR_2117 :{WINDOW_COLOUR_2}
|
||||
@@ -2128,13 +2128,13 @@ STR_2126 :Warme chocolademelk
|
||||
STR_2127 :IJsthee
|
||||
STR_2128 :Funnel cake
|
||||
STR_2129 :Zonnebril
|
||||
STR_2130 :Beef Noodles
|
||||
STR_2131 :Fried Rice Noodles
|
||||
STR_2132 :Wonton Soup
|
||||
STR_2133 :Meatball Soup
|
||||
STR_2130 :Rundernoedels
|
||||
STR_2131 :Rijstnoedels
|
||||
STR_2132 :Wantansoep
|
||||
STR_2133 :Soep met balletjes
|
||||
STR_2134 :Sap
|
||||
STR_2135 :Sojamelk
|
||||
STR_2136 :Sujongkwa
|
||||
STR_2136 :Sujeonggwa
|
||||
STR_2137 :Broodje
|
||||
STR_2138 :Koekje
|
||||
STR_2139 :Lege kom
|
||||
@@ -2148,22 +2148,22 @@ STR_2146 :Actiefoto's
|
||||
STR_2147 :Krakelingen
|
||||
STR_2148 :Warme chocolademelk
|
||||
STR_2149 :IJsthee
|
||||
STR_2150 :Funnel Cakes
|
||||
STR_2151 :Sunglasses
|
||||
STR_2152 :Beef Noodles
|
||||
STR_2153 :Fried Rice Noodles
|
||||
STR_2154 :Wonton Soups
|
||||
STR_2155 :Meatball Soups
|
||||
STR_2150 :Funnel cakes
|
||||
STR_2151 :Zonnebrillen
|
||||
STR_2152 :Rundernoedels
|
||||
STR_2153 :Rijstnoedels
|
||||
STR_2154 :Kommen wantansoep
|
||||
STR_2155 :Kommen soep met balletjes
|
||||
STR_2156 :Sap
|
||||
STR_2157 :Sojamelk
|
||||
STR_2158 :Sujongkwa
|
||||
STR_2158 :Sujeonggwa
|
||||
STR_2159 :Broodjes
|
||||
STR_2160 :Koekjes
|
||||
STR_2161 :Lege kommen
|
||||
STR_2162 :Empty Drink Cartons
|
||||
STR_2163 :Empty Juice cups
|
||||
STR_2164 :gebraden worsts
|
||||
STR_2165 :Empty Bowls
|
||||
STR_2162 :Lege drinkkartons
|
||||
STR_2163 :Lege sapbekers
|
||||
STR_2164 :gebraden worsten
|
||||
STR_2165 :Lege kommen
|
||||
STR_2166 :een actiefoto
|
||||
STR_2167 :een actiefoto
|
||||
STR_2168 :een actiefoto
|
||||
@@ -2172,41 +2172,41 @@ STR_2170 :warme chocolademelk
|
||||
STR_2171 :ijsthee
|
||||
STR_2172 :een funnel cake
|
||||
STR_2173 :een zonnebril
|
||||
STR_2174 :some Beef Noodles
|
||||
STR_2175 :some Fried Rice Noodles
|
||||
STR_2176 :some Wonton Soup
|
||||
STR_2177 :some Meatball Soup
|
||||
STR_2174 :rundernoedels
|
||||
STR_2175 :rijstnoedels
|
||||
STR_2176 :wantansoep
|
||||
STR_2177 :soep met balletjes
|
||||
STR_2178 :sap
|
||||
STR_2179 :sojamelk
|
||||
STR_2180 :some Sujongkwa
|
||||
STR_2180 :sujeonggwa
|
||||
STR_2181 :een broodje
|
||||
STR_2182 :een koekje
|
||||
STR_2183 :an Empty Bowl
|
||||
STR_2184 :an Empty Drink Carton
|
||||
STR_2185 :an Empty Juice Cup
|
||||
STR_2186 :a gebraden worst
|
||||
STR_2187 :an Empty Bowl
|
||||
STR_2183 :een lege kom
|
||||
STR_2184 :een leeg drinkarton
|
||||
STR_2185 :een lege sapbeker
|
||||
STR_2186 :een gebraden worst
|
||||
STR_2187 :een lege kom
|
||||
STR_2188 :Actiefoto van {STRINGID}
|
||||
STR_2189 :Actiefoto van {STRINGID}
|
||||
STR_2190 :Actiefoto van {STRINGID}
|
||||
STR_2191 :krakeling
|
||||
STR_2192 :warme chocolademelk
|
||||
STR_2193 :ijsthee
|
||||
STR_2191 :Krakeling
|
||||
STR_2192 :Warme chocolademelk
|
||||
STR_2193 :IJsthee
|
||||
STR_2194 :Funnel cake
|
||||
STR_2195 :Zonnebril
|
||||
STR_2196 :Beef Noodles
|
||||
STR_2197 :Fried Rice Noodles
|
||||
STR_2198 :Wonton Soup
|
||||
STR_2199 :Meatball Soup
|
||||
STR_2200 :sap
|
||||
STR_2201 :sojamelk
|
||||
STR_2202 :Sujongkwa
|
||||
STR_2203 :Sub Sandwich
|
||||
STR_2204 :Cookie
|
||||
STR_2205 :Empty Bowl
|
||||
STR_2206 :Empty Drink Carton
|
||||
STR_2207 :Empty Juice Cup
|
||||
STR_2208 :gebraden worst
|
||||
STR_2196 :Rundernoedels
|
||||
STR_2197 :Rijstnoedels
|
||||
STR_2198 :Wantansoep
|
||||
STR_2199 :Soep met balletjes
|
||||
STR_2200 :Sap
|
||||
STR_2201 :Sojamelk
|
||||
STR_2202 :Sujeonggwa
|
||||
STR_2203 :Broodje
|
||||
STR_2204 :Koekje
|
||||
STR_2205 :Lege kom
|
||||
STR_2206 :Leeg drinkkarton
|
||||
STR_2207 :Lege sapbeker
|
||||
STR_2208 :Gebraden worst
|
||||
STR_2209 :Lege kom
|
||||
STR_2210 :{SMALLFONT}{BLACK}Toon lijst van klusjesmannen in het park
|
||||
STR_2211 :{SMALLFONT}{BLACK}Toon lijst van monteurs in het park
|
||||
@@ -2227,7 +2227,7 @@ STR_2225 :{WINDOW_COLOUR_2}Contant: {RED}{CURRENCY2DP}
|
||||
STR_2226 :{WINDOW_COLOUR_2}Parkwaarde: {BLACK}{CURRENCY}
|
||||
STR_2227 :{WINDOW_COLOUR_2}Bedrijfswaarde: {BLACK}{CURRENCY}
|
||||
STR_2228 :{WINDOW_COLOUR_2}Inkomsten horeca en merchandise{NEWLINE}vorige maand: {BLACK}{CURRENCY}
|
||||
STR_2229 :Helling omhoog naar vertical
|
||||
STR_2229 :Helling omhoog naar verticaal
|
||||
STR_2230 :Verticale baan
|
||||
STR_2231 :Vasthoudrem voor afdaling
|
||||
STR_2232 :Kabelliftheuvel
|
||||
@@ -2247,10 +2247,10 @@ STR_2245 :oktober
|
||||
STR_2246 :november
|
||||
STR_2247 :december
|
||||
STR_2248 :Kan deze attractie niet afbreken...
|
||||
STR_2249 :{BABYBLUE}New ride/attraction now available:-{NEWLINE}{STRINGID}
|
||||
STR_2250 :{BABYBLUE}New scenery/themeing now available:-{NEWLINE}{STRINGID}
|
||||
STR_2251 :Can only be built on paths!
|
||||
STR_2252 :Can only be built across paths!
|
||||
STR_2249 :{BABYBLUE}Nieuwe attractie is nu beschikbaar:{NEWLINE}{STRINGID}
|
||||
STR_2250 :{BABYBLUE}Nieuw decor/thema is nu beschikbaar:{NEWLINE}{STRINGID}
|
||||
STR_2251 :Kan alleen op paden worden gebouwd!
|
||||
STR_2252 :Kan alleen over paden worden gebouwd!
|
||||
STR_2253 :Transportattracties
|
||||
STR_2254 :Rustige attracties
|
||||
STR_2255 :Achtbanen
|
||||
@@ -2272,9 +2272,9 @@ STR_2270 :{WINDOW_COLOUR_2}Voortgang: {BLACK}{STRINGID}
|
||||
STR_2271 :{WINDOW_COLOUR_2}Verwacht: {BLACK}{STRINGID}
|
||||
STR_2272 :{WINDOW_COLOUR_2}Attractie:{NEWLINE}{BLACK}{STRINGID}
|
||||
STR_2273 :{WINDOW_COLOUR_2}Decor/thema:{NEWLINE}{BLACK}{STRINGID}
|
||||
STR_2274 :{SMALLFONT}{BLACK}Show details of this invention or development
|
||||
STR_2275 :{SMALLFONT}{BLACK}Show funding and options for research & development
|
||||
STR_2276 :{SMALLFONT}{BLACK}Show research & development status
|
||||
STR_2274 :{SMALLFONT}{BLACK}Details van deze uitvinding of ontwikkeling tonen
|
||||
STR_2275 :{SMALLFONT}{BLACK}Budget en opties voor onderzoek en ontwikkeling tonen
|
||||
STR_2276 :{SMALLFONT}{BLACK}Status van onderzoek en ontwikkeling tonen
|
||||
STR_2277 :Onbekend
|
||||
STR_2278 :Transportattractie
|
||||
STR_2279 :Rustige attractie
|
||||
@@ -2289,26 +2289,26 @@ STR_2287 :Ontwerp voltooien
|
||||
STR_2288 :Onbekend
|
||||
STR_2289 :{STRINGID} {STRINGID}
|
||||
STR_2290 :{SMALLFONT}{BLACK}{STRINGID} {STRINGID}
|
||||
STR_2291 :Select scenario for new game
|
||||
STR_2292 :{WINDOW_COLOUR_2}Rides been on:
|
||||
STR_2291 :Selecteer een scenario voor een nieuw spel
|
||||
STR_2292 :{WINDOW_COLOUR_2}Bezochte attracties:
|
||||
STR_2293 :{BLACK} Geen
|
||||
STR_2294 :{SMALLFONT}{BLACK}Change base land style
|
||||
STR_2295 :{SMALLFONT}{BLACK}Change vertical edges of land
|
||||
STR_2296 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} paid to enter park
|
||||
STR_2297 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} ride
|
||||
STR_2298 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} rides
|
||||
STR_2299 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} item of food
|
||||
STR_2300 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} items of food
|
||||
STR_2301 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} drink
|
||||
STR_2302 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} drinks
|
||||
STR_2303 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} souvenir
|
||||
STR_2304 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} spent on {BLACK}{COMMA16} souvenirs
|
||||
STR_2305 :Track design files
|
||||
STR_2306 :Save track design
|
||||
STR_2307 :Select {STRINGID} design
|
||||
STR_2308 :{STRINGID} Track Designs
|
||||
STR_2309 :Install New Track Design
|
||||
STR_2310 :Build custom design
|
||||
STR_2294 :{SMALLFONT}{BLACK}Bovenkant land aanpassen
|
||||
STR_2295 :{SMALLFONT}{BLACK}Zijkant land aanpassen
|
||||
STR_2296 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} betaald voor entree
|
||||
STR_2297 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgeven aan {BLACK}{COMMA16} attractie
|
||||
STR_2298 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} attracties
|
||||
STR_2299 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} stuk voedsel
|
||||
STR_2300 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} stuks voedsel
|
||||
STR_2301 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} drankjr
|
||||
STR_2302 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} drankjes
|
||||
STR_2303 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} souvenir
|
||||
STR_2304 :{BLACK}{CURRENCY2DP}{WINDOW_COLOUR_2} uitgegeven aan {BLACK}{COMMA16} souvenirs
|
||||
STR_2305 :Baantontwerpbestanden
|
||||
STR_2306 :Baanontwerp opslaan
|
||||
STR_2307 :Ontwerp voor {STRINGID} selecteren
|
||||
STR_2308 :Baanontwerpen voor {STRINGID}
|
||||
STR_2309 :Nieuw baanontwerp installeren
|
||||
STR_2310 :Eigen ontwerp bouwen
|
||||
STR_2311 :{WINDOW_COLOUR_2}Spanningswaarde: {BLACK}{COMMA2DP32} (ongeveer)
|
||||
STR_2312 :{WINDOW_COLOUR_2}Intensiteitswaarde: {BLACK}{COMMA2DP32} (ongeveer)
|
||||
STR_2313 :{WINDOW_COLOUR_2}Misselheidswaarde: {BLACK}{COMMA2DP32} (ongeveer)
|
||||
@@ -2376,82 +2376,82 @@ STR_2374 :Hoog
|
||||
STR_2375 :Zeer hoog
|
||||
STR_2376 :Extreem
|
||||
STR_2377 :Ultra-extreem
|
||||
STR_2378 :{SMALLFONT}{BLACK}Adjust smaller area of land
|
||||
STR_2379 :{SMALLFONT}{BLACK}Adjust larger area of land
|
||||
STR_2380 :{SMALLFONT}{BLACK}Adjust smaller area of water
|
||||
STR_2381 :{SMALLFONT}{BLACK}Adjust larger area of water
|
||||
STR_2378 :{SMALLFONT}{BLACK}Kleiner stuk land aanpassen
|
||||
STR_2379 :{SMALLFONT}{BLACK}Groter stuk land aanpassen
|
||||
STR_2380 :{SMALLFONT}{BLACK}Kleiner stuk water aanpassen
|
||||
STR_2381 :{SMALLFONT}{BLACK}Groter stuk water aanpassen
|
||||
STR_2382 :Land
|
||||
STR_2383 :Water
|
||||
STR_2384 :{WINDOW_COLOUR_2}Je doel:
|
||||
STR_2385 :{BLACK}Geen
|
||||
STR_2386 :{BLACK}Om minstens {COMMA16} bezoekers in je park toe hebben aan het einde van {MONTHYEAR}, met een parkwaardering van ten minste 600
|
||||
STR_2387 :{BLACK}To achieve a park value of at least {POP16}{POP16}{CURRENCY} at the end of {PUSH16}{PUSH16}{PUSH16}{MONTHYEAR}
|
||||
STR_2387 :{BLACK}Om een parkwaarde van minstens {POP16}{POP16}{CURRENCY} te hebben aan het einde van {PUSH16}{PUSH16}{PUSH16}{MONTHYEAR}
|
||||
STR_2388 :{BLACK}Om plezier te hebben!
|
||||
STR_2389 :{BLACK}Build the best {STRINGID} you can!
|
||||
STR_2390 :{BLACK}To have 10 different types of roller coasters operating in your park, each with an excitement value of at least 6.00
|
||||
STR_2391 :{BLACK}To have at least {COMMA16} guests in your park. You must not let the park rating drop beLaag 700 at any time!
|
||||
STR_2392 :{BLACK}To achieve a monthly income from ride tickets of at least {POP16}{POP16}{CURRENCY}
|
||||
STR_2393 :{BLACK}To have 10 different types of roller coasters operating in your park, each with a minimum length of {LENGTH}, and an excitement rating of at least 7.00
|
||||
STR_2394 :{BLACK}To finish building all 5 of the partially built roller coasters in this park, designing them to achieve excitement ratings of at least {POP16}{POP16}{COMMA2DP32} each
|
||||
STR_2395 :{BLACK}To repay your loan and achieve a park value of at least {POP16}{POP16}{CURRENCY}
|
||||
STR_2396 :{BLACK}To achieve a monthly profit from food, drink and merchandise sales of at least {POP16}{POP16}{CURRENCY}
|
||||
STR_2389 :{BLACK}Om de beste {STRINGID} te bouwen!
|
||||
STR_2390 :{BLACK}Om 10 verschillende typen achtbanen in je park te hebben, elk met een spanningswaarde van minstens 6,00
|
||||
STR_2391 :{BLACK}Om minstens {COMMA16} bezoekers in je park te hebben. Je parkwaardering mag geen moment onder de 700 komen!
|
||||
STR_2392 :{BLACK}Om in één maand minstens {POP16}{POP16}{CURRENCY} aan attractiekaartjes te verdienen
|
||||
STR_2393 :{BLACK}Om 10 verschillende typen achtbanen in je park te hebben, elk met een lengte van minstens {LENGTH}, en een spanningswaarde van minstens 7,00
|
||||
STR_2394 :{BLACK}Om alle 5 deels gebouwde achtbanen in je park af te maken, ek met een spanningswaarde van minstens {POP16}{POP16}{COMMA2DP32}
|
||||
STR_2395 :{BLACK}Om je lening terug te betalen en een parkwaarde van minstens {POP16}{POP16}{CURRENCY} te bereiken
|
||||
STR_2396 :{BLACK}Om in één maand minstens {POP16}{POP16}{CURRENCY} aan de verkoop van eten, drinken en merchandise te verdienen
|
||||
STR_2397 :Geen
|
||||
STR_2398 :Number of guests at a given date
|
||||
STR_2399 :Park value at a given date
|
||||
STR_2400 :Have fun
|
||||
STR_2401 :Build the best ride you can
|
||||
STR_2402 :Build 10 roller coasters
|
||||
STR_2403 :Number of guests in park
|
||||
STR_2404 :Monthly income from ride tickets
|
||||
STR_2405 :Build 10 roller coasters of a given length
|
||||
STR_2406 :Finish building 5 roller coasters
|
||||
STR_2407 :Repay loan and achieve a given park value
|
||||
STR_2408 :Monthly profit from food/merchandise
|
||||
STR_2409 :{WINDOW_COLOUR_2}Marketing campaigns in operation
|
||||
STR_2398 :Aantal bezoekers op een bepaalde datum
|
||||
STR_2399 :Parkwaarde op een bepaalde datum
|
||||
STR_2400 :Plezier hebben
|
||||
STR_2401 :De beste attractie te bouwen
|
||||
STR_2402 :10 achtbanen bouwen
|
||||
STR_2403 :Aantal bezoekers in het park
|
||||
STR_2404 :Maandelijks inkomen van attractiekaartjes
|
||||
STR_2405 :10 achtbanen van een bepaalde lengte bouwen
|
||||
STR_2406 :5 achtbanen afmaken
|
||||
STR_2407 :Lening terugbetalen en een bepaalde parkwaarde bereiken
|
||||
STR_2408 :Maandelijks inkomen van voedsel/merchandise
|
||||
STR_2409 :{WINDOW_COLOUR_2}Lopende marketingcampagnes
|
||||
STR_2410 :{BLACK}Geen
|
||||
STR_2411 :{WINDOW_COLOUR_2}Marketing campaigns available
|
||||
STR_2412 :{SMALLFONT}{BLACK}Start this marketing campaign
|
||||
STR_2411 :{WINDOW_COLOUR_2}Beschikbare marketingcampagnes
|
||||
STR_2412 :{SMALLFONT}{BLACK}Deze marketingcampagne starten
|
||||
STR_2413 :{BLACK}({CURRENCY2DP} per week)
|
||||
STR_2414 :(Not Selected)
|
||||
STR_2415 :{WINDOW_COLOUR_2}Ride:
|
||||
STR_2414 :(niet geselecteerd)
|
||||
STR_2415 :{WINDOW_COLOUR_2}Attractie:
|
||||
STR_2416 :{WINDOW_COLOUR_2}Item:
|
||||
STR_2417 :{WINDOW_COLOUR_2}Length of time:
|
||||
STR_2417 :{WINDOW_COLOUR_2}Tijdsduur:
|
||||
STR_2418 :Gratis entree voor {STRINGID}
|
||||
STR_2419 :Gratis toegang tot {STRINGID}
|
||||
STR_2420 :Half-price entry to {STRINGID}
|
||||
STR_2420 :50% korting op entree voor {STRINGID}
|
||||
STR_2421 :Gratis {STRINGID}
|
||||
STR_2422 :Advertentiecampagne voor {STRINGID}
|
||||
STR_2423 :Advertentiecampagne voor {STRINGID}
|
||||
STR_2424 :{WINDOW_COLOUR_2}Vouchers for free entry to the park
|
||||
STR_2425 :{WINDOW_COLOUR_2}Vouchers for free rides on a particular ride
|
||||
STR_2426 :{WINDOW_COLOUR_2}Vouchers for half-price entry to the park
|
||||
STR_2427 :{WINDOW_COLOUR_2}Vouchers for free food or drink
|
||||
STR_2428 :{WINDOW_COLOUR_2}Advertising campaign for the park
|
||||
STR_2429 :{WINDOW_COLOUR_2}Advertising campaign for a particular ride
|
||||
STR_2430 :{BLACK}Vouchers for free entry to {STRINGID}
|
||||
STR_2431 :{BLACK}Vouchers for free ride on {STRINGID}
|
||||
STR_2432 :{BLACK}Vouchers for half-price entry to {STRINGID}
|
||||
STR_2433 :{BLACK}Vouchers for free {STRINGID}
|
||||
STR_2434 :{BLACK}Advertising campaign for {STRINGID}
|
||||
STR_2435 :{BLACK}Advertising campaign for {STRINGID}
|
||||
STR_2424 :{WINDOW_COLOUR_2}Bonnen voor gratis entree
|
||||
STR_2425 :{WINDOW_COLOUR_2}Bonnen voor gratis ritten op een bepaalde attractie
|
||||
STR_2426 :{WINDOW_COLOUR_2}Bonnen voor 50% korting op de entreeprijs
|
||||
STR_2427 :{WINDOW_COLOUR_2}Bonnen voor gratis eten of drinken
|
||||
STR_2428 :{WINDOW_COLOUR_2}Advertentiecampagne voor het park
|
||||
STR_2429 :{WINDOW_COLOUR_2}Advertentiecampagne voor een bepaalde attractie
|
||||
STR_2430 :{BLACK}Bonnen voor gratis entree voor {STRINGID}
|
||||
STR_2431 :{BLACK}Bonnen voor een gratis rit in {STRINGID}
|
||||
STR_2432 :{BLACK}Bonnen voor 50% korting op entree voor {STRINGID}
|
||||
STR_2433 :{BLACK}Bonnen voor gratis {STRINGID}
|
||||
STR_2434 :{BLACK}Advertentiecampagne voor {STRINGID}
|
||||
STR_2435 :{BLACK}Advertentiecampagne voor {STRINGID}
|
||||
STR_2436 :1 week
|
||||
STR_2437 :2 weken
|
||||
STR_2438 :3 weken
|
||||
STR_2439 :4 weken
|
||||
STR_2440 :5 weken
|
||||
STR_2441 :6 weken
|
||||
STR_2442 :{BLACK}({STRINGID} remaining)
|
||||
STR_2443 :{WINDOW_COLOUR_2}Cost per week: {BLACK}{CURRENCY2DP}
|
||||
STR_2444 :{WINDOW_COLOUR_2}Total cost: {BLACK}{CURRENCY2DP}
|
||||
STR_2445 :Start this marketing campaign
|
||||
STR_2442 :{BLACK}({STRINGID} resterend)
|
||||
STR_2443 :{WINDOW_COLOUR_2}Kosten per week: {BLACK}{CURRENCY2DP}
|
||||
STR_2444 :{WINDOW_COLOUR_2}Totale kosten: {BLACK}{CURRENCY2DP}
|
||||
STR_2445 :Start deze marketingcampagne
|
||||
STR_2446 :{YELLOW}Your marketing campaign for free entry to the park has finished
|
||||
STR_2447 :{YELLOW}Your marketing campaign for free rides on {STRINGID} has finished
|
||||
STR_2448 :{YELLOW}Your marketing campaign for half-price entry to the park has finished
|
||||
STR_2449 :{YELLOW}Your marketing campaign for free {STRINGID} has finished
|
||||
STR_2450 :{YELLOW}Your advertising campaign for the park has finished
|
||||
STR_2451 :{YELLOW}Your advertising campaign for {STRINGID} has finished
|
||||
STR_2452 :{WINDOW_COLOUR_2}Cash (less loan): {BLACK}{CURRENCY2DP}
|
||||
STR_2453 :{WINDOW_COLOUR_2}Cash (less loan): {RED}{CURRENCY2DP}
|
||||
STR_2452 :{WINDOW_COLOUR_2}Saldo (zonder lening): {BLACK}{CURRENCY2DP}
|
||||
STR_2453 :{WINDOW_COLOUR_2}Saldo (zonder lening): {RED}{CURRENCY2DP}
|
||||
STR_2454 :{SMALLFONT}{BLACK}{CURRENCY2DP} -
|
||||
STR_2455 :{SMALLFONT}{BLACK}+{CURRENCY2DP} -
|
||||
STR_2456 :{SMALLFONT}{BLACK}{CURRENCY2DP} -
|
||||
|
||||
@@ -540,4 +540,12 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* rct2: 0x00698827
|
||||
* returns 1 on pickup (CF not set)
|
||||
*/
|
||||
int peep_can_be_picked_up(rct_peep* peep){
|
||||
return RCT2_ADDRESS(0x982004, uint8)[peep->state] & 1;
|
||||
}
|
||||
@@ -437,6 +437,7 @@ typedef struct {
|
||||
if (peep->type == PEEP_TYPE_STAFF)
|
||||
|
||||
int peep_get_staff_count();
|
||||
int peep_can_be_picked_up(rct_peep* peep);
|
||||
void peep_update_all();
|
||||
void peep_problem_warnings_update();
|
||||
void peep_update_crowd_noise();
|
||||
|
||||
@@ -54,7 +54,7 @@ typedef struct {
|
||||
uint8 status; // 0x049
|
||||
uint16 var_04A;
|
||||
uint32 var_04C;
|
||||
uint16 overall_view; // 0x050
|
||||
uint16 overall_view; // 0x050 00XX = X, XX00 = Y (* 32 + 16)
|
||||
uint16 station_starts[4]; // 0x052
|
||||
uint8 station_heights[4]; // 0x05A
|
||||
uint8 pad_05E[0xC];
|
||||
@@ -103,10 +103,13 @@ typedef struct {
|
||||
uint8 pad_14E[0x06];
|
||||
uint32 var_154;
|
||||
uint16 var_158;
|
||||
uint8 pad_15A[0x26];
|
||||
uint8 pad_15A;
|
||||
uint8 num_riders; // 0x15B
|
||||
uint8 pad_15C[0x24];
|
||||
uint16 build_date;
|
||||
sint16 upkeep_cost; // 0x182
|
||||
uint8 pad_184[0x12];
|
||||
uint16 race_winner; // 0x184
|
||||
uint8 pad_186[0x10];
|
||||
uint16 var_196;
|
||||
// used in computing excitement, nausea, etc
|
||||
uint8 var_198;
|
||||
|
||||
@@ -134,6 +134,8 @@ enum {
|
||||
enum {
|
||||
STR_NONE = -1,
|
||||
|
||||
STR_GUEST = 767,
|
||||
|
||||
STR_DATE_DAY_1 = 779,
|
||||
STR_DATE_DAY_2 = STR_DATE_DAY_1 + 1,
|
||||
STR_DATE_DAY_3 = STR_DATE_DAY_1 + 2,
|
||||
@@ -294,6 +296,8 @@ enum {
|
||||
STR_OPEN = 1196,
|
||||
STR_BROKEN_DOWN = 1197,
|
||||
STR_CRASHED = 1198,
|
||||
STR_PERSON_ON_RIDE = 1199,
|
||||
STR_PEOPLE_ON_RIDE = 1200,
|
||||
|
||||
STR_QUEUE_EMPTY = 1201,
|
||||
STR_QUEUE_ONE_PERSON = 1202,
|
||||
@@ -371,6 +375,9 @@ enum {
|
||||
STR_CANT_OPEN_PARK = 1723,
|
||||
STR_CANT_CLOSE_PARK = 1724,
|
||||
|
||||
STR_RACE_WON_BY_GUEST = 1739,
|
||||
STR_RACE_WON_BY = 1740,
|
||||
|
||||
STR_INDIVIDUAL_GUESTS_TIP = 1752,
|
||||
STR_SUMMARISED_GUESTS_TIP = 1753,
|
||||
STR_ADMISSION_PRICE = 1756,
|
||||
|
||||
@@ -41,4 +41,7 @@ typedef struct {
|
||||
|
||||
void vehicle_update_all();
|
||||
|
||||
/** Helper macro until rides are stored in this module. */
|
||||
#define GET_VEHICLE(sprite_index) &(g_sprite_list[sprite_index].vehicle)
|
||||
|
||||
#endif
|
||||
@@ -162,7 +162,7 @@ void viewport_create(rct_window *w, int x, int y, int width, int height, int zoo
|
||||
viewport->width = width;
|
||||
viewport->height = height;
|
||||
|
||||
if (!(flags & (1 << 0))){
|
||||
if (!(flags & VIEWPORT_FOCUS_TYPE_COORDINATE)){
|
||||
zoom = 0;
|
||||
}
|
||||
|
||||
@@ -171,12 +171,12 @@ void viewport_create(rct_window *w, int x, int y, int width, int height, int zoo
|
||||
viewport->zoom = zoom;
|
||||
viewport->flags = 0;
|
||||
|
||||
if (RCT2_GLOBAL(0x9AAC7A, uint8) & 1){
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_KEYBOARD_SHORTCUTS, uint8) & 1){
|
||||
viewport->flags |= VIEWPORT_FLAG_GRIDLINES;
|
||||
}
|
||||
w->viewport = viewport;
|
||||
|
||||
if (flags & (1<<1)){
|
||||
if (flags & VIEWPORT_FOCUS_TYPE_SPRITE){
|
||||
w->viewport_target_sprite = sprite;
|
||||
rct_sprite* center_sprite = &g_sprite_list[sprite];
|
||||
center_x = center_sprite->unknown.x;
|
||||
|
||||
40
src/window.c
40
src/window.c
@@ -27,6 +27,7 @@
|
||||
#include "widget.h"
|
||||
#include "window.h"
|
||||
#include "viewport.h"
|
||||
#include "sprite.h"
|
||||
|
||||
#define RCT2_FIRST_WINDOW (RCT2_ADDRESS(RCT2_ADDRESS_WINDOW_LIST, rct_window))
|
||||
#define RCT2_LAST_WINDOW (RCT2_GLOBAL(RCT2_ADDRESS_NEW_WINDOW_PTR, rct_window*) - 1)
|
||||
@@ -394,11 +395,11 @@ rct_window *window_create(int x, int y, int width, int height, uint32 *event_han
|
||||
w->disabled_widgets = 0;
|
||||
w->pressed_widgets = 0;
|
||||
w->var_020 = 0;
|
||||
w->var_480 = 0;
|
||||
w->var_482 = 0;
|
||||
w->var_484 = 0;
|
||||
w->var_486 = 0;
|
||||
w->var_488 = 0;
|
||||
w->viewport_focus_coordinates.var_480 = 0;
|
||||
w->viewport_focus_coordinates.x = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->viewport_focus_coordinates.z = 0;
|
||||
w->viewport_focus_coordinates.rotation = 0;
|
||||
w->page = 0;
|
||||
w->var_48C = 0;
|
||||
w->frame_no = 0;
|
||||
@@ -885,6 +886,35 @@ rct_window *window_get_main()
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Based on
|
||||
* rct2: 0x696ee9 & 0x66842F
|
||||
*
|
||||
*/
|
||||
void window_scroll_to_viewport(rct_window *w)
|
||||
{
|
||||
int x, y, z;
|
||||
rct_window *mainWindow;
|
||||
// In original checked to make sure x and y were not -1 as well.
|
||||
if (w->viewport == NULL || w->viewport_focus_coordinates.y == -1)
|
||||
return;
|
||||
|
||||
if (w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_SPRITE) {
|
||||
rct_sprite *sprite = &(g_sprite_list[w->viewport_focus_sprite.sprite_id]);
|
||||
x = sprite->unknown.x;
|
||||
y = sprite->unknown.y;
|
||||
z = sprite->unknown.z;
|
||||
} else {
|
||||
x = w->viewport_focus_coordinates.x;
|
||||
y = w->viewport_focus_coordinates.y & VIEWPORT_FOCUS_Y_MASK;
|
||||
z = w->viewport_focus_coordinates.z;
|
||||
}
|
||||
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != NULL)
|
||||
window_scroll_to_location(mainWindow, x, y, z);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006E7C9C
|
||||
|
||||
79
src/window.h
79
src/window.h
@@ -93,6 +93,69 @@ typedef struct {
|
||||
sint16 v_thumb_bottom; // 0x10
|
||||
} rct_scroll;
|
||||
|
||||
/**
|
||||
* Viewport focus structure.
|
||||
* size: 0xA
|
||||
* Use sprite.type to work out type.
|
||||
*/
|
||||
typedef struct{
|
||||
sint16 var_480;
|
||||
sint16 x; //0x482
|
||||
sint16 y; //0x484 & VIEWPORT_FOCUS_Y_MASK
|
||||
sint16 z; //0x486
|
||||
uint8 rotation;//0x488
|
||||
uint8 pad_489;
|
||||
} coordinate_focus;
|
||||
|
||||
// Type is viewport_target_sprite_id & 0x80000000 != 0
|
||||
typedef struct{
|
||||
sint16 var_480;
|
||||
uint16 sprite_id; //0x482
|
||||
uint8 pad_484;
|
||||
uint8 type; //0x485 & VIEWPORT_FOCUS_TYPE_MASK
|
||||
uint16 pad_486;
|
||||
uint8 rotation; //0x488
|
||||
uint8 pad_489;
|
||||
} sprite_focus;
|
||||
|
||||
#define VIEWPORT_FOCUS_TYPE_MASK 0xC0
|
||||
enum{
|
||||
VIEWPORT_FOCUS_TYPE_COORDINATE = (1<<6),
|
||||
VIEWPORT_FOCUS_TYPE_SPRITE = (1<<7)
|
||||
};
|
||||
#define VIEWPORT_FOCUS_Y_MASK 0x3FFF;
|
||||
|
||||
|
||||
typedef struct{
|
||||
sint16 campaign_type;
|
||||
sint16 no_weeks; //0x482
|
||||
uint16 ride_id; //0x484
|
||||
uint32 pad_486;
|
||||
} campaign_variables;
|
||||
|
||||
typedef struct{
|
||||
sint16 selected_ride_id; //0x480
|
||||
sint16 highlighted_ride_id; //0x482
|
||||
uint16 pad_484;
|
||||
uint16 pad_486;
|
||||
uint16 selected_ride_countdown; //488
|
||||
} new_ride_variables;
|
||||
|
||||
typedef struct{
|
||||
sint16 var_480;
|
||||
sint16 var_482;
|
||||
uint16 var_484;
|
||||
uint16 var_486;
|
||||
uint16 var_488;
|
||||
} news_variables;
|
||||
|
||||
typedef struct{
|
||||
sint16 rotation;
|
||||
sint16 var_482;
|
||||
uint16 var_484;
|
||||
uint16 var_486;
|
||||
uint16 var_488;
|
||||
}map_variables;
|
||||
/**
|
||||
* Window structure
|
||||
* size: 0x4C0
|
||||
@@ -122,11 +185,14 @@ typedef struct rct_window {
|
||||
sint16 selected_list_item; // 0x47A -1 for none selected
|
||||
sint16 pad_47C;
|
||||
sint16 pad_47E;
|
||||
sint16 var_480;
|
||||
sint16 var_482; // viewport target x
|
||||
sint16 var_484; // viewport target y
|
||||
sint16 var_486; // viewport target z
|
||||
sint16 var_488; // viewport rotation << 8
|
||||
union{
|
||||
coordinate_focus viewport_focus_coordinates;
|
||||
sprite_focus viewport_focus_sprite;
|
||||
campaign_variables campaign;
|
||||
new_ride_variables new_ride;
|
||||
news_variables news;
|
||||
map_variables map;
|
||||
};
|
||||
sint16 page; // 0x48A
|
||||
sint16 var_48C;
|
||||
sint16 frame_no; // 0x48E updated every tic for motion in windows sprites
|
||||
@@ -326,6 +392,7 @@ void window_push_others_below(rct_window *w1);
|
||||
|
||||
rct_window *window_get_main();
|
||||
|
||||
void window_scroll_to_viewport(rct_window *w);
|
||||
void window_scroll_to_location(rct_window *w, int x, int y, int z);
|
||||
void window_rotate_camera(rct_window *w);
|
||||
void window_zoom_in(rct_window *w);
|
||||
@@ -374,7 +441,7 @@ void window_park_objective_open();
|
||||
void window_park_rating_open();
|
||||
void window_finances_open();
|
||||
void window_finances_research_open();
|
||||
void window_new_campaign_open(int campaignType);
|
||||
void window_new_campaign_open(sint16 campaignType);
|
||||
void window_ride_list_open();
|
||||
void window_new_ride_open();
|
||||
void window_banner_open();
|
||||
|
||||
@@ -162,7 +162,7 @@ void window_map_open()
|
||||
w->var_020 |= 0x300;
|
||||
|
||||
window_init_scroll_widgets(w);
|
||||
w->var_480 = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint16);
|
||||
w->map.rotation = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint16);
|
||||
|
||||
window_map_init_map();
|
||||
RCT2_GLOBAL(0x00F64F05, uint8) = 0;
|
||||
|
||||
@@ -128,7 +128,7 @@ int ride_name_compare(const void *a, const void *b)
|
||||
*
|
||||
* rct2: 0x0069E16F
|
||||
*/
|
||||
void window_new_campaign_open(int campaignType)
|
||||
void window_new_campaign_open(sint16 campaignType)
|
||||
{
|
||||
// RCT2_CALLPROC_X(0x0069E16F, campaignType, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
@@ -138,7 +138,7 @@ void window_new_campaign_open(int campaignType)
|
||||
|
||||
w = window_bring_to_front_by_id(WC_NEW_CAMPAIGN, 0);
|
||||
if (w != NULL) {
|
||||
if (w->var_480 == campaignType)
|
||||
if (w->campaign.campaign_type == campaignType)
|
||||
return;
|
||||
|
||||
window_close(w);
|
||||
@@ -162,13 +162,13 @@ void window_new_campaign_open(int campaignType)
|
||||
window_new_campaign_widgets[WIDX_TITLE].image = STR_MARKETING_VOUCHERS_FOR_FREE_ENTRY_TO_THE_PARK + campaignType;
|
||||
|
||||
// Campaign type
|
||||
w->var_480 = campaignType;
|
||||
w->campaign.campaign_type = campaignType;
|
||||
|
||||
// Number of weeks
|
||||
w->var_482 = 2;
|
||||
w->campaign.no_weeks = 2;
|
||||
|
||||
// Currently selected ride
|
||||
w->var_484 = SELECTED_RIDE_UNDEFINED;
|
||||
w->campaign.ride_id = SELECTED_RIDE_UNDEFINED;
|
||||
|
||||
// Get all applicable rides
|
||||
numApplicableRides = 0;
|
||||
@@ -234,7 +234,7 @@ static void window_new_campaign_mouseup()
|
||||
break;
|
||||
case WIDX_START_BUTTON:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_START_MARKETING_CAMPAIGN;
|
||||
game_do_command(0, (w->var_482 << 8) | 1, 0, (w->var_484 << 8) | w->var_480, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0);
|
||||
game_do_command(0, (w->campaign.no_weeks << 8) | 1, 0, (w->campaign.ride_id << 8) | w->campaign.campaign_type, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0);
|
||||
window_close(w);
|
||||
break;
|
||||
}
|
||||
@@ -252,7 +252,7 @@ static void window_new_campaign_mousedown(int widgetIndex, rct_window *w, rct_wi
|
||||
case WIDX_RIDE_DROPDOWN_BUTTON:
|
||||
dropdownWidget = widget - 1;
|
||||
|
||||
if (w->var_480 == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
|
||||
if (w->campaign.campaign_type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
|
||||
window_new_campaign_get_shop_items();
|
||||
if (window_new_campaign_shop_items[0] != 255) {
|
||||
int numItems = 0;
|
||||
@@ -305,11 +305,11 @@ static void window_new_campaign_mousedown(int widgetIndex, rct_window *w, rct_wi
|
||||
}
|
||||
break;
|
||||
case WIDX_WEEKS_INCREASE_BUTTON:
|
||||
w->var_482 = min(w->var_482 + 1, 6);
|
||||
w->campaign.no_weeks = min(w->campaign.no_weeks + 1, 6);
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_WEEKS_DECREASE_BUTTON:
|
||||
w->var_482 = max(w->var_482 - 1, 2);
|
||||
w->campaign.no_weeks = max(w->campaign.no_weeks - 1, 2);
|
||||
window_invalidate(w);
|
||||
break;
|
||||
}
|
||||
@@ -329,13 +329,13 @@ static void window_new_campaign_dropdown()
|
||||
if (widgetIndex != WIDX_RIDE_DROPDOWN_BUTTON)
|
||||
return;
|
||||
|
||||
if (w->var_480 == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
|
||||
if (w->campaign.campaign_type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
|
||||
rct_string_id itemStringId = (uint16)gDropdownItemsArgs[dropdownIndex] - 2016;
|
||||
if (itemStringId >= 32)
|
||||
itemStringId -= 96;
|
||||
w->var_484 = itemStringId;
|
||||
w->campaign.ride_id = itemStringId;
|
||||
} else {
|
||||
w->var_484 = window_new_campaign_rides[dropdownIndex];
|
||||
w->campaign.ride_id = window_new_campaign_rides[dropdownIndex];
|
||||
}
|
||||
|
||||
window_invalidate(w);
|
||||
@@ -355,15 +355,15 @@ static void window_new_campaign_invalidate()
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_EMPTY;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_EMPTY;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = STR_MARKETING_NOT_SELECTED;
|
||||
switch (w->var_480) {
|
||||
switch (w->campaign.campaign_type) {
|
||||
case ADVERTISING_CAMPAIGN_RIDE_FREE:
|
||||
case ADVERTISING_CAMPAIGN_RIDE:
|
||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].type = WWT_24;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON;
|
||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_RIDE;
|
||||
if (w->var_484 != SELECTED_RIDE_UNDEFINED) {
|
||||
rct_ride *ride = GET_RIDE(w->var_484);
|
||||
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) {
|
||||
rct_ride *ride = GET_RIDE(w->campaign.ride_id);
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ride->var_04A;
|
||||
RCT2_GLOBAL(0x013CE952, uint32) = ride->var_04C;
|
||||
}
|
||||
@@ -373,8 +373,8 @@ static void window_new_campaign_invalidate()
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON;
|
||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_ITEM;
|
||||
if (w->var_484 != SELECTED_RIDE_UNDEFINED) {
|
||||
rct_string_id itemStringId = w->var_484 + 2016;
|
||||
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) {
|
||||
rct_string_id itemStringId = w->campaign.ride_id + 2016;
|
||||
if (itemStringId >= 2048)
|
||||
itemStringId += 96;
|
||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = itemStringId;
|
||||
@@ -383,11 +383,11 @@ static void window_new_campaign_invalidate()
|
||||
}
|
||||
|
||||
// Set current number of weeks spinner
|
||||
window_new_campaign_widgets[WIDX_WEEKS_SPINNER].image = (STR_MARKETING_1_WEEK - 1) + w->var_482;
|
||||
window_new_campaign_widgets[WIDX_WEEKS_SPINNER].image = (STR_MARKETING_1_WEEK - 1) + w->campaign.no_weeks;
|
||||
|
||||
// Enable / disable start button based on ride dropdown
|
||||
w->disabled_widgets &= ~(1 << WIDX_START_BUTTON);
|
||||
if (window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type == WWT_DROPDOWN && w->var_484 == SELECTED_RIDE_UNDEFINED)
|
||||
if (window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type == WWT_DROPDOWN && w->campaign.ride_id == SELECTED_RIDE_UNDEFINED)
|
||||
w->disabled_widgets |= 1 << WIDX_START_BUTTON;
|
||||
}
|
||||
|
||||
@@ -409,11 +409,11 @@ static void window_new_campaign_paint()
|
||||
y = w->y + 60;
|
||||
|
||||
// Price per week
|
||||
money32 pricePerWeek = AdvertisingCampaignPricePerWeek[w->var_480];
|
||||
money32 pricePerWeek = AdvertisingCampaignPricePerWeek[w->campaign.campaign_type];
|
||||
gfx_draw_string_left(dpi, STR_MARKETING_COST_PER_WEEK, &pricePerWeek, 0, x, y);
|
||||
y += 13;
|
||||
|
||||
// Total price
|
||||
money32 totalPrice = AdvertisingCampaignPricePerWeek[w->var_480] * w->var_482;
|
||||
money32 totalPrice = AdvertisingCampaignPricePerWeek[w->campaign.campaign_type] * w->campaign.no_weeks;
|
||||
gfx_draw_string_left(dpi, STR_MARKETING_TOTAL_COST, &totalPrice, 0, x, y);
|
||||
}
|
||||
@@ -431,16 +431,16 @@ void window_new_ride_open()
|
||||
w->colours[0] = 24;
|
||||
w->colours[1] = 26;
|
||||
w->colours[2] = 26;
|
||||
w->var_480 = -1;
|
||||
w->var_482 = -1;
|
||||
w->new_ride.selected_ride_countdown = -1;
|
||||
w->new_ride.highlighted_ride_id = -1;
|
||||
_lastTrackDesignCountRideType.type = 255;
|
||||
_lastTrackDesignCountRideType.entry_index = 255;
|
||||
|
||||
window_new_ride_populate_list();
|
||||
|
||||
w->var_482 = RCT2_ADDRESS(0x00F43825, sint16)[_window_new_ride_current_tab];
|
||||
if (w->var_482 == -1)
|
||||
w->var_482 = RCT2_GLOBAL(0x00F43523, sint16);
|
||||
w->new_ride.highlighted_ride_id = RCT2_ADDRESS(0x00F43825, sint16)[_window_new_ride_current_tab];
|
||||
if (w->new_ride.highlighted_ride_id == -1)
|
||||
w->new_ride.highlighted_ride_id = RCT2_GLOBAL(0x00F43523, sint16);
|
||||
|
||||
w->width = 1;
|
||||
window_new_ride_refresh_widget_sizing(w);
|
||||
@@ -577,13 +577,13 @@ static void window_new_ride_mousedown(int widgetIndex, rct_window *w, rct_widget
|
||||
|
||||
_window_new_ride_current_tab = page;
|
||||
w->frame_no = 0;
|
||||
w->var_482 = -1;
|
||||
w->var_480 = -1;
|
||||
w->new_ride.highlighted_ride_id = -1;
|
||||
w->new_ride.selected_ride_countdown = -1;
|
||||
window_new_ride_populate_list();
|
||||
if (page < WINDOW_NEW_RIDE_PAGE_RESEARCH) {
|
||||
w->var_482 = RCT2_ADDRESS(0x00F43825, sint16)[page];
|
||||
if (w->var_482 == -1)
|
||||
w->var_482 = RCT2_GLOBAL(0x00F43523, sint16);
|
||||
w->new_ride.highlighted_ride_id = RCT2_ADDRESS(0x00F43825, sint16)[page];
|
||||
if (w->new_ride.highlighted_ride_id == -1)
|
||||
w->new_ride.highlighted_ride_id = RCT2_GLOBAL(0x00F43523, sint16);
|
||||
}
|
||||
|
||||
window_new_ride_refresh_widget_sizing(w);
|
||||
@@ -603,7 +603,7 @@ static void window_new_ride_update(rct_window *w)
|
||||
|
||||
widget_invalidate(w->classification, w->number, WIDX_TAB_1 + _window_new_ride_current_tab);
|
||||
|
||||
if (w->var_480 != -1 && w->var_488-- == 0)
|
||||
if (w->new_ride.selected_ride_countdown != -1 && w->new_ride.selected_ride_countdown-- == 0)
|
||||
window_new_ride_select(w);
|
||||
}
|
||||
|
||||
@@ -645,21 +645,22 @@ static void window_new_ride_scrollmousedown()
|
||||
{
|
||||
short x, y;
|
||||
rct_window *w;
|
||||
ride_list_item item;
|
||||
|
||||
window_scrollmouse_get_registers(w, x, y);
|
||||
|
||||
if (RCT2_GLOBAL(0x009DEA6E, uint8) != 0)
|
||||
return;
|
||||
|
||||
ride_list_item item = window_new_ride_scroll_get_ride_list_item_at(w, x, y);
|
||||
item = window_new_ride_scroll_get_ride_list_item_at(w, x, y);
|
||||
if (item.type == 255 && item.entry_index == 255)
|
||||
return;
|
||||
|
||||
RCT2_ADDRESS(0x00F43825, ride_list_item)[_window_new_ride_current_tab] = item;
|
||||
w->var_480 = *((sint16*)&item);
|
||||
w->new_ride.selected_ride_countdown = *((sint16*)&item);
|
||||
|
||||
sound_play_panned(SOUND_CLICK_1, w->x + (w->width / 2));
|
||||
w->var_488 = 8;
|
||||
w->new_ride.selected_ride_countdown = 8;
|
||||
window_invalidate(w);
|
||||
}
|
||||
|
||||
@@ -671,17 +672,18 @@ static void window_new_ride_scrollmouseover()
|
||||
{
|
||||
short x, y;
|
||||
rct_window *w;
|
||||
ride_list_item item;
|
||||
|
||||
window_scrollmouse_get_registers(w, x, y);
|
||||
|
||||
if (w->var_480 != -1)
|
||||
if (w->new_ride.selected_ride_countdown != -1)
|
||||
return;
|
||||
|
||||
ride_list_item item = window_new_ride_scroll_get_ride_list_item_at(w, x, y);
|
||||
if (w->var_482 == *((sint16*)&item))
|
||||
item = window_new_ride_scroll_get_ride_list_item_at(w, x, y);
|
||||
if (w->new_ride.highlighted_ride_id == *((sint16*)&item))
|
||||
return;
|
||||
|
||||
w->var_482 = *((sint16*)&item);
|
||||
w->new_ride.highlighted_ride_id = *((sint16*)&item);
|
||||
RCT2_ADDRESS(0x00F43825, ride_list_item)[_window_new_ride_current_tab] = item;
|
||||
window_invalidate(w);
|
||||
}
|
||||
@@ -737,7 +739,7 @@ static void window_new_ride_paint()
|
||||
window_new_ride_draw_tab_images(dpi, w);
|
||||
|
||||
if (_window_new_ride_current_tab != WINDOW_NEW_RIDE_PAGE_RESEARCH) {
|
||||
ride_list_item item = *((ride_list_item*)&w->var_482);
|
||||
ride_list_item item = *((ride_list_item*)&w->new_ride.highlighted_ride_id);
|
||||
if (item.type == 255 && item.entry_index == 255)
|
||||
return;
|
||||
|
||||
@@ -827,15 +829,16 @@ static void window_new_ride_scrollpaint()
|
||||
int y = 1;
|
||||
ride_list_item *listItem = (ride_list_item*)0x00F43523;
|
||||
while (listItem->type != 255 || listItem->entry_index != 255) {
|
||||
uint8 *rideEntry;
|
||||
// Draw flat button rectangle
|
||||
int flags = 0;
|
||||
if (w->var_480 == *((sint16*)listItem))
|
||||
if (w->new_ride.selected_ride_countdown == *((sint16*)listItem))
|
||||
flags |= 0x20;
|
||||
if (w->var_482 == *((sint16*)listItem) || flags != 0)
|
||||
if (w->new_ride.highlighted_ride_id == *((sint16*)listItem) || flags != 0)
|
||||
gfx_fill_rect_inset(dpi, x, y, x + 115, y + 115, w->colours[1], 0x80 | flags);
|
||||
|
||||
// Draw ride image
|
||||
uint8 *rideEntry = rideEntries[listItem->entry_index];
|
||||
rideEntry = rideEntries[listItem->entry_index];
|
||||
int unk = RCT2_GLOBAL(rideEntry + 4, uint32);
|
||||
if (listItem->type != RCT2_GLOBAL(rideEntry + 12, uint8)) {
|
||||
unk++;
|
||||
@@ -970,7 +973,7 @@ static void window_new_ride_paint_ride_information(rct_window *w, rct_drawpixeli
|
||||
*/
|
||||
static void window_new_ride_select(rct_window *w)
|
||||
{
|
||||
ride_list_item item = *((ride_list_item*)&w->var_480);
|
||||
ride_list_item item = *((ride_list_item*)&w->new_ride.selected_ride_countdown);
|
||||
if (item.type == 255)
|
||||
return;
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ void window_news_open()
|
||||
window->colours[0] = 1;
|
||||
window->colours[1] = 1;
|
||||
window->colours[2] = 0;
|
||||
window->var_480 = -1;
|
||||
window->news.var_480 = -1;
|
||||
}
|
||||
|
||||
// sub_66E4BA:
|
||||
@@ -144,17 +144,17 @@ static void window_news_update(rct_window *w)
|
||||
int i, j, x, y, z;
|
||||
rct_news_item *newsItems;
|
||||
|
||||
if (w->var_480 == -1)
|
||||
if (w->news.var_480 == -1)
|
||||
return;
|
||||
if (--w->var_484 != 0)
|
||||
if (--w->news.var_484 != 0)
|
||||
return;
|
||||
|
||||
window_invalidate(w);
|
||||
sound_play_panned(SOUND_CLICK_2, w->x + (w->width / 2));
|
||||
|
||||
newsItems = RCT2_ADDRESS(RCT2_ADDRESS_NEWS_ITEM_LIST, rct_news_item);
|
||||
j = w->var_480;
|
||||
w->var_480 = -1;
|
||||
j = w->news.var_480;
|
||||
w->news.var_480 = -1;
|
||||
for (i = 11; i < 61; i++) {
|
||||
if (newsItems[i].type == NEWS_ITEM_NULL)
|
||||
return;
|
||||
@@ -162,10 +162,11 @@ static void window_news_update(rct_window *w)
|
||||
if (j == 0) {
|
||||
if (newsItems[i].flags & 1)
|
||||
return;
|
||||
if (w->var_482 == 1) {
|
||||
if (w->news.var_482 == 1) {
|
||||
news_item_open_subject(newsItems[i].type, newsItems[i].assoc);
|
||||
return;
|
||||
} else if (w->var_482 > 1) {
|
||||
}
|
||||
else if (w->news.var_482 > 1) {
|
||||
news_item_get_subject_location(newsItems[i].type, newsItems[i].assoc, &x, &y, &z);
|
||||
if (x != SPRITE_LOCATION_NULL)
|
||||
if ((w = window_get_main()) != NULL)
|
||||
@@ -250,9 +251,9 @@ static void window_news_scrollmousedown()
|
||||
}
|
||||
|
||||
if (buttonIndex != 0) {
|
||||
w->var_480 = i - 11;
|
||||
w->var_482 = buttonIndex;
|
||||
w->var_484 = 4;
|
||||
w->news.var_480 = i - 11;
|
||||
w->news.var_482 = buttonIndex;
|
||||
w->news.var_484 = 4;
|
||||
window_invalidate(w);
|
||||
sound_play_panned(SOUND_CLICK_1, w->x + (w->width / 2));
|
||||
}
|
||||
@@ -318,7 +319,7 @@ static void window_news_scrollpaint()
|
||||
// Item text
|
||||
char sz[400];// = (char*)0x09B5F2C;
|
||||
char* args[1];
|
||||
args[0] = &sz;
|
||||
args[0] = (char*)&sz;
|
||||
sprintf(sz, "%c%c%s", newsItem->colour, FORMAT_SMALLFONT, newsItem->text);
|
||||
gfx_draw_string_left_wrapped(dpi, args, 2, y + 10, 325, 1170, 14);
|
||||
|
||||
@@ -328,9 +329,9 @@ static void window_news_scrollpaint()
|
||||
yy = y + 14;
|
||||
|
||||
press = 0;
|
||||
if (w->var_480 != -1) {
|
||||
newsItem2 = &newsItems[11 + w->var_480];
|
||||
if (newsItem == newsItem2 && w->var_482 == 1)
|
||||
if (w->news.var_480 != -1) {
|
||||
newsItem2 = &newsItems[11 + w->news.var_480];
|
||||
if (newsItem == newsItem2 && w->news.var_482 == 1)
|
||||
press = 0x20;
|
||||
}
|
||||
gfx_fill_rect_inset(dpi, x, yy, x + 23, yy + 23, w->colours[2], press);
|
||||
@@ -369,9 +370,9 @@ static void window_news_scrollpaint()
|
||||
yy = y + 14;
|
||||
|
||||
press = 0;
|
||||
if (w->var_480 != -1) {
|
||||
newsItem2 = &newsItems[11 + w->var_480];
|
||||
if (newsItem == newsItem2 && w->var_482 == 2)
|
||||
if (w->news.var_480 != -1) {
|
||||
newsItem2 = &newsItems[11 + w->news.var_480];
|
||||
if (newsItem == newsItem2 && w->news.var_482 == 2)
|
||||
press = 0x20;
|
||||
}
|
||||
gfx_fill_rect_inset(dpi, x, yy, x + 23, yy + 23, w->colours[2], press);
|
||||
|
||||
@@ -574,7 +574,6 @@ static uint32 window_park_page_enabled_widgets[] = {
|
||||
#pragma endregion
|
||||
|
||||
static void window_park_init_viewport(rct_window *w);
|
||||
static void window_park_scroll_to_viewport(rct_window *w);
|
||||
static void window_park_set_page(rct_window *w, int page);
|
||||
static void window_park_anchor_border_widgets(rct_window *w);
|
||||
static void window_park_align_tabs(rct_window *w);
|
||||
@@ -594,7 +593,7 @@ rct_window *window_park_open()
|
||||
w->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_ENTRANCE];
|
||||
w->number = 0;
|
||||
w->page = WINDOW_PARK_PAGE_ENTRANCE;
|
||||
w->var_482 = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->frame_no = 0;
|
||||
w->list_information_type = -1;
|
||||
w->var_48C = -1;
|
||||
@@ -620,8 +619,8 @@ void window_park_entrance_open()
|
||||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->var_482 = -1;
|
||||
window->var_484 = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
}
|
||||
|
||||
window->page = WINDOW_PARK_PAGE_ENTRANCE;
|
||||
@@ -680,7 +679,7 @@ static void window_park_entrance_mouseup()
|
||||
RCT2_CALLPROC_X(0x00668393, 0, 0, 0, widgetIndex, (int)w, 0, 0);
|
||||
break;
|
||||
case WIDX_LOCATE:
|
||||
window_park_scroll_to_viewport(w);
|
||||
window_scroll_to_viewport(w);
|
||||
break;
|
||||
case WIDX_RENAME:
|
||||
RCT2_GLOBAL(0x013CE962, uint32) = RCT2_GLOBAL(0x013573D8, uint32);
|
||||
@@ -1022,10 +1021,11 @@ static void window_park_init_viewport(rct_window *w)
|
||||
// Call invalidate event
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_INVALIDATE], 0, 0, 0, 0, (int)w, 0, 0);
|
||||
|
||||
w->var_482 = x;
|
||||
w->var_484 = y;
|
||||
w->var_486 = z;
|
||||
w->var_488 = r << 8;
|
||||
w->viewport_focus_coordinates.x = x;
|
||||
w->viewport_focus_coordinates.y = y;
|
||||
w->viewport_focus_sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
w->viewport_focus_coordinates.z = z;
|
||||
w->viewport_focus_coordinates.rotation = r;
|
||||
|
||||
if (zr != 0xFFFF) {
|
||||
// Create viewport
|
||||
@@ -1037,11 +1037,11 @@ static void window_park_init_viewport(rct_window *w)
|
||||
w->y + viewportWidget->top + 1,
|
||||
(viewportWidget->right - viewportWidget->left) - 2,
|
||||
(viewportWidget->bottom - viewportWidget->top) - 2,
|
||||
zr&0xFF,
|
||||
0,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
xy&0xC0000000 >> 30,
|
||||
w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_MASK,
|
||||
-1
|
||||
);
|
||||
w->flags |= (1 << 2);
|
||||
@@ -1054,30 +1054,6 @@ static void window_park_init_viewport(rct_window *w)
|
||||
window_invalidate(w);
|
||||
}
|
||||
|
||||
static void window_park_scroll_to_viewport(rct_window *w)
|
||||
{
|
||||
int x, y, z;
|
||||
rct_window *mainWindow;
|
||||
|
||||
if (w->viewport == NULL || *((sint32*)&w->var_482) == -1)
|
||||
return;
|
||||
|
||||
if (*((uint32*)&w->var_486) & 0x80000000) {
|
||||
rct_sprite *sprite = &(g_sprite_list[w->var_482]);
|
||||
x = sprite->unknown.x;
|
||||
y = sprite->unknown.y;
|
||||
z = sprite->unknown.z;
|
||||
} else {
|
||||
x = w->var_482;
|
||||
y = w->var_484;
|
||||
z = w->var_486;
|
||||
}
|
||||
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != NULL)
|
||||
window_scroll_to_location(mainWindow, x, y, z);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Rating page
|
||||
@@ -1093,8 +1069,8 @@ void window_park_rating_open()
|
||||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->var_482 = -1;
|
||||
window->var_484 = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
@@ -1227,8 +1203,8 @@ void window_park_guests_open()
|
||||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->var_482 = -1;
|
||||
window->var_484 = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
@@ -1633,8 +1609,8 @@ void window_park_objective_open()
|
||||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->var_482 = -1;
|
||||
window->var_484 = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
@@ -1796,8 +1772,8 @@ void window_park_awards_open()
|
||||
window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0);
|
||||
if (window == NULL) {
|
||||
window = window_park_open();
|
||||
window->var_482 = -1;
|
||||
window->var_484 = -1;
|
||||
window->viewport_focus_coordinates.x = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3))
|
||||
|
||||
@@ -20,10 +20,13 @@
|
||||
|
||||
#include "addresses.h"
|
||||
#include "game.h"
|
||||
#include "map.h"
|
||||
#include "ride.h"
|
||||
#include "peep.h"
|
||||
#include "string_ids.h"
|
||||
#include "sprite.h"
|
||||
#include "sprites.h"
|
||||
#include "viewport.h"
|
||||
#include "widget.h"
|
||||
#include "window.h"
|
||||
#include "window_dropdown.h"
|
||||
@@ -48,6 +51,14 @@ enum WINDOW_PEEP_WIDGET_IDX {
|
||||
WIDX_TAB_4,
|
||||
WIDX_TAB_5,
|
||||
WIDX_TAB_6,
|
||||
|
||||
WIDX_MARQUEE = 10,
|
||||
WIDX_VIEWPORT,
|
||||
WIDX_ACTION_LBL,
|
||||
WIDX_PICKUP,
|
||||
WIDX_RENAME,
|
||||
WIDX_LOCATE,
|
||||
WIDX_TRACK
|
||||
};
|
||||
|
||||
void window_peep_emptysub(){};
|
||||
@@ -66,21 +77,36 @@ rct_widget window_peep_overview_widgets[] = {
|
||||
{ WWT_12, 1, 3, 166, 45, 56, 0x0FFFFFFFF, STR_NONE}, // Label Thought marquee
|
||||
{ WWT_VIEWPORT, 1, 3, 166, 57, 143, 0x0FFFFFFFF, STR_NONE }, // Viewport
|
||||
{ WWT_12, 1, 3, 166, 144, 154, 0x0FFFFFFFF, STR_NONE}, // Label Action
|
||||
{ WWT_FLATBTN, 1, 167, 190, 45, 68, SPR_RENAME, 1706}, // Rename Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 69, 92, 0x1430, 1055}, // Pickup Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 45, 68, SPR_RENAME, 1706}, // Pickup Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 69, 92, 0x1430, 1055}, // Rename Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 93, 116, SPR_LOCATE, STR_LOCATE_SUBJECT_TIP},// Locate Button
|
||||
{ WWT_FLATBTN, 1, 167, 190, 117, 140, SPR_TRACK_PEEP, 1930}, // Track Button
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
//0x981D0C
|
||||
rct_widget *window_peep_page_widgets[] = {
|
||||
window_peep_overview_widgets
|
||||
window_peep_overview_widgets,
|
||||
(rct_widget *)0x9AC45C,
|
||||
(rct_widget *)0x9ac500,
|
||||
(rct_widget *)0x9ac5b4,
|
||||
(rct_widget *)0x9ac658,
|
||||
(rct_widget *)0x9ac6FC
|
||||
};
|
||||
|
||||
void window_peep_set_page(rct_window* w, int page);
|
||||
void window_peep_disable_widgets(rct_window* w);
|
||||
void window_peep_viewport_init(rct_window* w);
|
||||
|
||||
void window_peep_close();
|
||||
void window_peep_resize();
|
||||
void window_peep_overview_mouse_up();
|
||||
void window_peep_overview_paint();
|
||||
|
||||
static void* window_peep_overview_events[] = {
|
||||
(void*)0x696A75,
|
||||
(void*)0x696A06,
|
||||
(void*)0x696FBE,
|
||||
window_peep_close,
|
||||
window_peep_overview_mouse_up,
|
||||
window_peep_resize,
|
||||
window_peep_emptysub,
|
||||
window_peep_emptysub,
|
||||
window_peep_emptysub,
|
||||
@@ -104,15 +130,67 @@ static void* window_peep_overview_events[] = {
|
||||
window_peep_emptysub,
|
||||
window_peep_emptysub,
|
||||
(void*)0x696749, //Invalidate
|
||||
(void*)0x696887, //Paint
|
||||
window_peep_overview_paint, //Paint
|
||||
(void*)0x69707C
|
||||
};
|
||||
|
||||
//0x981D24
|
||||
void* window_peep_page_events[] = {
|
||||
window_peep_overview_events
|
||||
window_peep_overview_events,
|
||||
(void*)0x982468,
|
||||
(void*)0x9824d8,
|
||||
(void*)0x982548,
|
||||
(void*)0x9825b8,
|
||||
(void*)0x982628
|
||||
};
|
||||
|
||||
//0x981D3C
|
||||
uint32 window_peep_page_enabled_widgets[] = {
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
(1 << WIDX_TAB_3) |
|
||||
(1 << WIDX_TAB_4) |
|
||||
(1 << WIDX_TAB_5) |
|
||||
(1 << WIDX_TAB_6) |
|
||||
(1 << WIDX_RENAME)|
|
||||
(1 << WIDX_PICKUP)|
|
||||
(1 << WIDX_LOCATE)|
|
||||
(1 << WIDX_TRACK),
|
||||
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
(1 << WIDX_TAB_3) |
|
||||
(1 << WIDX_TAB_4) |
|
||||
(1 << WIDX_TAB_5) |
|
||||
(1 << WIDX_TAB_6),
|
||||
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
(1 << WIDX_TAB_3) |
|
||||
(1 << WIDX_TAB_4) |
|
||||
(1 << WIDX_TAB_5) |
|
||||
(1 << WIDX_TAB_6), //|
|
||||
//(1 << WIDX_?),
|
||||
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
(1 << WIDX_TAB_3) |
|
||||
(1 << WIDX_TAB_4) |
|
||||
(1 << WIDX_TAB_5) |
|
||||
(1 << WIDX_TAB_6),
|
||||
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
(1 << WIDX_TAB_3) |
|
||||
(1 << WIDX_TAB_4) |
|
||||
(1 << WIDX_TAB_5) |
|
||||
(1 << WIDX_TAB_6),
|
||||
|
||||
(1 << WIDX_CLOSE) |
|
||||
(1 << WIDX_TAB_1) |
|
||||
(1 << WIDX_TAB_2) |
|
||||
@@ -142,12 +220,12 @@ void window_peep_open(rct_peep* peep){
|
||||
window->enabled_widgets = window_peep_page_enabled_widgets[0];
|
||||
window->number = peep->sprite_index;
|
||||
window->page = 0;
|
||||
window->var_482 = 0;
|
||||
window->viewport_focus_coordinates.y = 0;
|
||||
window->frame_no = 0;
|
||||
window->list_information_type = 0;
|
||||
window->var_492 = 0;
|
||||
window->var_494 = 0;
|
||||
RCT2_CALLPROC_X(0x006987A6, 0, 0, 0, 0, (int)window, 0, 0);
|
||||
window_peep_disable_widgets(window);
|
||||
window->min_width = 192;
|
||||
window->min_height = 157;
|
||||
window->max_width = 500;
|
||||
@@ -158,19 +236,286 @@ void window_peep_open(rct_peep* peep){
|
||||
window->colours[0] = 1;
|
||||
window->colours[1] = 15;
|
||||
window->colours[2] = 15;
|
||||
window->var_482 = -1;
|
||||
window->viewport_focus_coordinates.y = -1;
|
||||
}
|
||||
|
||||
window->page = 0;
|
||||
window_invalidate(window);
|
||||
|
||||
window->widgets = RCT2_GLOBAL(0x981D0C, rct_widget*);
|
||||
window->enabled_widgets = RCT2_GLOBAL(0x981D3C,uint32);
|
||||
window->widgets = window_peep_page_widgets[WINDOW_PEEP_OVERVIEW];
|
||||
window->enabled_widgets = window_peep_page_enabled_widgets[WINDOW_PEEP_OVERVIEW];
|
||||
window->var_020 = RCT2_GLOBAL(0x981D54,uint32);
|
||||
window->event_handlers = RCT2_GLOBAL(0x981D24,uint32*);
|
||||
window->event_handlers = window_peep_page_events[WINDOW_PEEP_OVERVIEW];
|
||||
window->pressed_widgets = 0;
|
||||
|
||||
RCT2_CALLPROC_X(0x006987A6, 0, 0, 0, 0, (int)window, 0, 0);
|
||||
window_peep_disable_widgets(window);
|
||||
window_init_scroll_widgets(window);
|
||||
RCT2_CALLPROC_X(0x0069883C, 0, 0, 0, 0, (int)window, 0, 0);
|
||||
window_peep_viewport_init(window);
|
||||
}
|
||||
|
||||
/* rct2: 0x006987A6
|
||||
* Disables the finance tab when no money.
|
||||
* Disables peep pickup when in certain no pickup states.
|
||||
*/
|
||||
void window_peep_disable_widgets(rct_window* w){
|
||||
rct_peep* peep = &g_sprite_list[w->number].peep;
|
||||
uint64 disabled_widgets = 0;
|
||||
|
||||
if (peep_can_be_picked_up(peep)){
|
||||
if (w->disabled_widgets & (1 << WIDX_PICKUP))
|
||||
window_invalidate(w);
|
||||
}
|
||||
else{
|
||||
disabled_widgets = (1 << WIDX_PICKUP);
|
||||
if (!(w->disabled_widgets & (1 << WIDX_PICKUP)))
|
||||
window_invalidate(w);
|
||||
}
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_11){
|
||||
disabled_widgets |= (1 << WIDX_TAB_4); //Disable finance tab if no money
|
||||
}
|
||||
w->disabled_widgets = disabled_widgets;
|
||||
}
|
||||
|
||||
/* rct2: 0x00696A75 */
|
||||
void window_peep_close(){
|
||||
rct_window* w;
|
||||
|
||||
window_get_register(w);
|
||||
|
||||
if (RCT2_GLOBAL(0x9DE518,uint32) & (1<<3)){
|
||||
if (w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS,rct_windowclass) &&
|
||||
w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER,rct_windownumber))
|
||||
tool_cancel();
|
||||
}
|
||||
}
|
||||
|
||||
/* rct2: 0x00696FBE */
|
||||
void window_peep_resize(){
|
||||
rct_window* w;
|
||||
|
||||
window_get_register(w);
|
||||
|
||||
window_peep_disable_widgets(w);
|
||||
RCT2_CALLPROC_EBPSAFE(w->event_handlers[WE_INVALIDATE]);
|
||||
|
||||
window_invalidate_by_id(0xA97, w->number);
|
||||
|
||||
window_set_resize(w, 192, 159, 500, 450);
|
||||
|
||||
rct_viewport* view = w->viewport;
|
||||
|
||||
if (view){
|
||||
if ((w->width - 30) == view->width){
|
||||
if ((w->height - 72) == view->height){
|
||||
window_peep_viewport_init(w);
|
||||
return;
|
||||
}
|
||||
}
|
||||
uint8 zoom_amount = 1 << view->zoom;
|
||||
view->width = w->width - 30;
|
||||
view->height = w->height - 72;
|
||||
view->view_width = view->width / zoom_amount;
|
||||
view->view_height = view->height / zoom_amount;
|
||||
}
|
||||
window_peep_viewport_init(w);
|
||||
}
|
||||
|
||||
/* rct2: 0x00696A06 */
|
||||
void window_peep_overview_mouse_up(){
|
||||
short widgetIndex;
|
||||
rct_window* w;
|
||||
window_widget_get_registers(w, widgetIndex);
|
||||
|
||||
switch(widgetIndex){
|
||||
case WIDX_CLOSE:
|
||||
window_close(w);
|
||||
break;
|
||||
case WIDX_TAB_1:
|
||||
case WIDX_TAB_2:
|
||||
case WIDX_TAB_3:
|
||||
case WIDX_TAB_4:
|
||||
case WIDX_TAB_5:
|
||||
case WIDX_TAB_6:
|
||||
window_peep_set_page(w, widgetIndex - WIDX_TAB_1);
|
||||
break;
|
||||
case WIDX_PICKUP:
|
||||
//696ba6
|
||||
break;
|
||||
case WIDX_RENAME:
|
||||
//696e4d
|
||||
break;
|
||||
case WIDX_LOCATE:
|
||||
window_scroll_to_viewport(w);
|
||||
break;
|
||||
case WIDX_TRACK:
|
||||
g_sprite_list[w->number].peep.flags ^= PEEP_FLAGS_TRACKING;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void window_peep_set_page(rct_window* w, int page){
|
||||
if (RCT2_GLOBAL(0x9DE518,uint32) & (1 << 3))
|
||||
{
|
||||
if(w->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER, rct_windownumber) &&
|
||||
w->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, rct_windowclass))
|
||||
tool_cancel();
|
||||
|
||||
}
|
||||
int listen = 0;
|
||||
if ( page == WINDOW_PEEP_OVERVIEW && w->page==WINDOW_PEEP_OVERVIEW && w->viewport){
|
||||
if(!(w->viewport->flags & VIEWPORT_FLAG_SOUND_ON))
|
||||
listen = 1;
|
||||
}
|
||||
|
||||
|
||||
w->page = page;
|
||||
w->frame_no = 0;
|
||||
w->no_list_items = 0;
|
||||
w->selected_list_item = -1;
|
||||
|
||||
rct_viewport* viewport = w->viewport;
|
||||
w->viewport = 0;
|
||||
if (viewport){
|
||||
viewport->width = 0;
|
||||
}
|
||||
|
||||
w->enabled_widgets = window_peep_page_enabled_widgets[page];
|
||||
w->var_020 = RCT2_ADDRESS(0x981D54,uint32)[page];
|
||||
w->event_handlers = window_peep_page_events[page];
|
||||
w->pressed_widgets = 0;
|
||||
w->widgets = window_peep_page_widgets[page];
|
||||
window_peep_disable_widgets(w);
|
||||
window_invalidate(w);
|
||||
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_RESIZE], 0, 0, 0, 0, (int)w, 0, 0);
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_INVALIDATE], 0, 0, 0, 0, (int)w, 0, 0);
|
||||
|
||||
window_init_scroll_widgets(w);
|
||||
window_invalidate(w);
|
||||
|
||||
if (listen && w->viewport) w->viewport->flags |= VIEWPORT_FLAG_SOUND_ON;
|
||||
}
|
||||
|
||||
/* rct2: 0x0069883C */
|
||||
void window_peep_viewport_init(rct_window* w){
|
||||
if (w->page != WINDOW_PEEP_OVERVIEW) return;
|
||||
|
||||
union{
|
||||
sprite_focus sprite;
|
||||
coordinate_focus coordinate;
|
||||
} focus; //The focus will be either a sprite or a coordinate.
|
||||
|
||||
focus.sprite.sprite_id = w->number;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
|
||||
if (peep->state == PEEP_STATE_PICKED){
|
||||
focus.sprite.sprite_id = -1;
|
||||
}
|
||||
else{
|
||||
uint8 final_check = 1;
|
||||
if (peep->state == PEEP_STATE_ON_RIDE
|
||||
|| peep->state == PEEP_STATE_ENTERING_RIDE
|
||||
|| (peep->state == PEEP_STATE_LEAVING_RIDE && peep->x == SPRITE_LOCATION_NULL)){
|
||||
|
||||
rct_ride* ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride]);
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK){
|
||||
rct_vehicle* train = GET_VEHICLE(ride->train_car_map[peep->current_train]);
|
||||
int car = peep->current_car;
|
||||
|
||||
for (; car != 0; car--){
|
||||
train = GET_VEHICLE(train->next_vehicle_on_train);
|
||||
}
|
||||
|
||||
focus.sprite.sprite_id = train->sprite_index;
|
||||
final_check = 0;
|
||||
}
|
||||
}
|
||||
if (peep->x == SPRITE_LOCATION_NULL && final_check){
|
||||
rct_ride* ride = &(RCT2_ADDRESS(RCT2_ADDRESS_RIDE_LIST, rct_ride)[peep->current_ride]);
|
||||
int x = ride->overall_view & 0xFF * 32 + 16;
|
||||
int y = (ride->overall_view >> 8) * 32 + 16;
|
||||
int height = map_element_height(x, y);
|
||||
height += 32;
|
||||
focus.coordinate.x = x;
|
||||
focus.coordinate.y = y;
|
||||
focus.coordinate.z = height;
|
||||
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
}
|
||||
else{
|
||||
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_SPRITE | VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
focus.sprite.pad_486 &= 0xFFFF;
|
||||
}
|
||||
focus.coordinate.rotation = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint8);
|
||||
}
|
||||
|
||||
uint16 viewport_flags;
|
||||
|
||||
if (w->viewport){
|
||||
//Check all combos, for now skipping y and rot
|
||||
if (focus.coordinate.x == w->viewport_focus_coordinates.x &&
|
||||
focus.coordinate.y == w->viewport_focus_coordinates.y &&
|
||||
focus.coordinate.z == w->viewport_focus_coordinates.z &&
|
||||
focus.coordinate.rotation == w->viewport_focus_coordinates.rotation)
|
||||
return;
|
||||
|
||||
viewport_flags = w->viewport->flags;
|
||||
w->viewport->width = 0;
|
||||
w->viewport = 0;
|
||||
|
||||
viewport_update_pointers();
|
||||
}
|
||||
else{
|
||||
viewport_flags = 0;
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_FLAGS, uint8) & 0x1)
|
||||
viewport_flags |= VIEWPORT_FLAG_GRIDLINES;
|
||||
}
|
||||
|
||||
RCT2_CALLPROC_X(w->event_handlers[WE_INVALIDATE], 0, 0, 0, 0, (int)w, 0, 0);
|
||||
|
||||
w->viewport_focus_coordinates.x = focus.coordinate.x;
|
||||
w->viewport_focus_coordinates.y = focus.coordinate.y;
|
||||
w->viewport_focus_coordinates.z = focus.coordinate.z;
|
||||
w->viewport_focus_coordinates.rotation = focus.coordinate.rotation;
|
||||
|
||||
if (peep->state != PEEP_STATE_PICKED){
|
||||
if (!(w->viewport)){
|
||||
rct_widget* view_widget = &w->widgets[WIDX_VIEWPORT];
|
||||
|
||||
int x = view_widget->left + 1 + w->x;
|
||||
int y = view_widget->top + 1 + w->y;
|
||||
int width = view_widget->right - view_widget->left - 1;
|
||||
int height = view_widget->bottom - view_widget->top - 1;
|
||||
|
||||
viewport_create(w, x, y, width, height, 0, focus.coordinate.x, focus.coordinate.y, focus.coordinate.z, focus.sprite.type & VIEWPORT_FOCUS_TYPE_MASK, focus.sprite.sprite_id);
|
||||
w->flags |= WF_2;
|
||||
window_invalidate(w);
|
||||
}
|
||||
}
|
||||
|
||||
if (w->viewport)
|
||||
w->viewport->flags = viewport_flags;
|
||||
window_invalidate(w);
|
||||
}
|
||||
|
||||
/* rct2: 0x696887 */
|
||||
void window_peep_overview_paint(){
|
||||
rct_window *w;
|
||||
rct_drawpixelinfo *dpi;
|
||||
rct_widget *labelWidget;
|
||||
|
||||
window_paint_get_registers(w, dpi);
|
||||
RCT2_CALLPROC_X(0x696887, 0, 0, 0, 0, w, dpi, 0);
|
||||
return;
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
//6983dd
|
||||
//698597
|
||||
//6985d8
|
||||
//69861f
|
||||
//69869b
|
||||
//698661
|
||||
if (w->viewport){
|
||||
window_draw_viewport(dpi, w);
|
||||
}
|
||||
}
|
||||
@@ -346,7 +346,7 @@ static void window_research_development_paint()
|
||||
if (RCT2_GLOBAL(rideEntry + 8, uint32) & 0x1000)
|
||||
stringId = RCT2_GLOBAL(rideEntry, uint16);
|
||||
else
|
||||
stringId = (typeId & 0xFF00) + 2;
|
||||
stringId = ((typeId >> 8) & 0xFF) + 2;
|
||||
} else {
|
||||
uint8 *sceneryEntry = RCT2_GLOBAL(0x009ADA90 + (typeId & 0xFFFF) * 4, uint8*);
|
||||
stringId = RCT2_GLOBAL(sceneryEntry, uint16);
|
||||
@@ -382,10 +382,10 @@ static void window_research_development_paint()
|
||||
if (typeId != 0xFFFFFFFF) {
|
||||
if (typeId >= 0x10000) {
|
||||
uint8 *rideEntry = RCT2_GLOBAL(0x009ACFA4 + (typeId & 0xFF) * 4, uint8*);
|
||||
if (RCT2_GLOBAL(rideEntry + 8, uint32) & 0x1000)
|
||||
stringId = RCT2_GLOBAL(rideEntry, uint16);
|
||||
else
|
||||
stringId = (typeId & 0xFF00) + 2;
|
||||
if (RCT2_GLOBAL(rideEntry + 8, uint32) & 0x1000)
|
||||
stringId = RCT2_GLOBAL(rideEntry, uint16);
|
||||
else
|
||||
stringId = ((typeId >> 8) & 0xFF) + 2;
|
||||
|
||||
lastDevelopmentFormat = STR_RESEARCH_RIDE_LABEL;
|
||||
} else {
|
||||
@@ -394,7 +394,7 @@ static void window_research_development_paint()
|
||||
lastDevelopmentFormat = STR_RESEARCH_SCENERY_LABEL;
|
||||
}
|
||||
gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 266, lastDevelopmentFormat, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "game.h"
|
||||
#include "ride.h"
|
||||
#include "string_ids.h"
|
||||
#include "sprite.h"
|
||||
#include "sprites.h"
|
||||
#include "widget.h"
|
||||
#include "window.h"
|
||||
@@ -437,11 +438,44 @@ static void window_ride_list_paint()
|
||||
*/
|
||||
static void ride_get_status(int rideIndex, int *formatSecondary, int *argument)
|
||||
{
|
||||
int eax = 0, ebx = 0, ecx = 0, edx, esi = 0, edi = 0, ebp = 0;
|
||||
edx = rideIndex;
|
||||
RCT2_CALLFUNC_X(0x006AF561, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||
*formatSecondary = ebx & 0xFFFF;
|
||||
*argument = eax;
|
||||
rct_ride *ride = &g_ride_list[rideIndex];
|
||||
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_CRASHED) {
|
||||
*formatSecondary = STR_CRASHED;
|
||||
return;
|
||||
}
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) {
|
||||
*formatSecondary = STR_BROKEN_DOWN;
|
||||
return;
|
||||
}
|
||||
if (ride->status == RIDE_STATUS_CLOSED) {
|
||||
*formatSecondary = STR_CLOSED;
|
||||
return;
|
||||
}
|
||||
if (ride->status == RIDE_STATUS_TESTING) {
|
||||
*formatSecondary = STR_TEST_RUN;
|
||||
return;
|
||||
}
|
||||
rct_peep *peep = GET_PEEP(ride->race_winner);
|
||||
if (ride->mode == RIDE_MODE_RACE && !(ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) && ride->race_winner != 0xFFFF && peep->sprite_identifier == SPRITE_IDENTIFIER_PEEP) {
|
||||
if (peep->name_string_idx == STR_GUEST) {
|
||||
*argument = peep->id;
|
||||
*formatSecondary = STR_RACE_WON_BY_GUEST;
|
||||
} else {
|
||||
*argument = peep->name_string_idx;
|
||||
*formatSecondary = STR_RACE_WON_BY;
|
||||
}
|
||||
} else {
|
||||
if (!(RCT2_GLOBAL(RCT2_ADDRESS_RIDE_FLAGS + ride->type * 8, uint32) & 0x20000)) {
|
||||
*argument = ride->num_riders;
|
||||
*formatSecondary = STR_PERSON_ON_RIDE;
|
||||
if(*argument != 1)
|
||||
*formatSecondary = STR_PEOPLE_ON_RIDE;
|
||||
|
||||
} else {
|
||||
*formatSecondary = STR_OPEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -186,7 +186,7 @@ rct_window* sub_6BEF1B(rct_peep* peep)
|
||||
w->enabled_widgets = RCT2_GLOBAL(0x9929B0, uint32);
|
||||
w->number = peep->sprite_index;
|
||||
w->page = 0;
|
||||
w->var_482 = 0;
|
||||
w->viewport_focus_coordinates.y = 0;
|
||||
w->frame_no = 0;
|
||||
|
||||
RCT2_GLOBAL((int*)w + 0x496, uint16) = 0; // missing, var_494 should perhaps be uint16?
|
||||
|
||||
@@ -128,7 +128,7 @@ void window_scenarioselect_open()
|
||||
window->colours[0] = 1;
|
||||
window->colours[1] = 26;
|
||||
window->colours[2] = 26;
|
||||
window->var_480 = -1;
|
||||
window->viewport_focus_coordinates.var_480 = -1;
|
||||
window->var_494 = 0;
|
||||
|
||||
window_scenarioselect_init_tabs();
|
||||
|
||||
Reference in New Issue
Block a user