Merge branch 'develop'

This commit is contained in:
Gymnasiast 2021-11-21 21:58:39 +01:00
commit 5afae08d94
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
162 changed files with 3585 additions and 3630 deletions

View File

@ -31,7 +31,7 @@ jobs:
- name: Commit and push
working-directory: OpenRCT2
run: |
if [[ $(git status -s) ]]; then
if [[ $(git status --porcelain) ]]; then
echo "Committing and pushing..."
git add .
git config --global user.name "OpenRCT2 git bot"

View File

@ -179,6 +179,7 @@ The following people are not part of the development team, but have been contrib
* Sean Payne (seanmajorpayne)
* Soham Roy (sohamroy19)
* Gaven Rendell (Rendello)
* Christian Haase (chrhaase)
## Toolchain
* (Balletie) - macOS
@ -215,7 +216,7 @@ The following people are not part of the development team, but have been contrib
* Danish - Lars P. Sørensen (LPSGizmo)
* Dutch - Michael Steenbeek (Gymnasiast), Yannic Geurts (xzbobzx), (mrtnptrs), Thomas den Hollander (ThomasdenH), (hostbrute), Marijn van der Werf (marijnvdwerf), Tom Kroes (ThePsionic); reviewing and discussion: Aaron van Geffen (AaronVanGeffen), (Balletie) and Sijmen Schoon (SijmenSchoon).
* Finnish - (DJHasis), (Zode), (TheWing)
* French - (fbourigault), Joël Troch (JoelTroch), Michael Steenbeek (Gymnasiast), Romain Vigier (rvgr), (AziasYur), Hugo Courtial (s0r00t), David Delobel (incyclum), Nicolas Hawrysh (xp4xbox)
* French - (fbourigault), Joël Troch (JoelTroch), Michael Steenbeek (Gymnasiast), Romain Vigier (rmnvgr), (AziasYur), Hugo Courtial (s0r00t), David Delobel (incyclum), Nicolas Hawrysh (xp4xbox)
* German - (danidoedel), (atmaxinger), (Yepoleb), Daniel Kessel (dkessel), Leon (AllGoodNamesAreTaken), (raidcookie)
* Italian - Luca Andrea Rossi (LucaRed), Precious Ugo Abara (48cfu)
* Japanese - Aaron van Geffen (AaronVanGeffen), Haruna Chinzei, Nick Hall (nickhall), (jhako), Harry Lam (daihakken)

View File

@ -3163,56 +3163,56 @@ STR_5930 :تفاصيل المشهد الكبير
STR_5931 :تفاصيل اليافطة
STR_5932 :تفاصيل العناصر الفاسدة
STR_5933 :الخصائص
STR_5934 :{WINDOW_COLOUR_2}Terrain texture: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrain edge: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Land ownership: {BLACK}{STRINGID}
STR_5934 :Terrain texture: {BLACK}{STRINGID}
STR_5935 :Terrain edge: {BLACK}{STRINGID}
STR_5936 :Land ownership: {BLACK}{STRINGID}
STR_5937 :Not owned and not for sale
STR_5938 :{WINDOW_COLOUR_2}Water level: {BLACK}{COMMA16}
STR_5938 :Water level: {BLACK}{COMMA16}
STR_5939 :Remove park fences
STR_5940 :Restore park fences
STR_5941 :{WINDOW_COLOUR_2}ارتفاع القاعدة:
STR_5942 :{WINDOW_COLOUR_2}أسم المسار: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}الإضافات: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}الإضافات: {BLACK}لا شئ
STR_5945 :{WINDOW_COLOUR_2}حواف متصلة:
STR_5946 :{WINDOW_COLOUR_2}نوع الرحلة: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}معرف الرحلة: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}أسم الرحلة: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Chain lift
STR_5950 :{WINDOW_COLOUR_2}Apply changes to entire track piece
STR_5951 :{WINDOW_COLOUR_2}Track piece ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sequence number: {BLACK}{COMMA16}
STR_5941 :ارتفاع القاعدة:
STR_5942 :أسم المسار: {BLACK}{STRINGID}
STR_5943 :الإضافات: {BLACK}{STRINGID}
STR_5944 :الإضافات: {BLACK}لا شئ
STR_5945 :حواف متصلة:
STR_5946 :نوع الرحلة: {BLACK}{STRINGID}
STR_5947 :معرف الرحلة: {BLACK}{COMMA16}
STR_5948 :أسم الرحلة: {BLACK}{STRINGID}
STR_5949 :Chain lift
STR_5950 :Apply changes to entire track piece
STR_5951 :Track piece ID: {BLACK}{COMMA16}
STR_5952 :Sequence number: {BLACK}{COMMA16}
STR_5953 :Sort the map elements on the current tile based on their base height.
STR_5954 :{WINDOW_COLOUR_2}Scenery age: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}وضع حالة رباعي: {BLACK}{STRINGID}
STR_5954 :Scenery age: {BLACK}{COMMA16}
STR_5955 :وضع حالة رباعي: {BLACK}{STRINGID}
STR_5956 :جنوب غرب
STR_5957 :الشمال الغربي
STR_5958 :شمالي شرقي
STR_5959 :الجنوب الشرقي
STR_5960 :{WINDOW_COLOUR_2}وضع حالة رباعي:
STR_5961 :{WINDOW_COLOUR_2}فهرس المدخل: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}كشف التصادم:
STR_5963 :{WINDOW_COLOUR_2}زوايا مرتفعة:
STR_5964 :{WINDOW_COLOUR_2}مائل
STR_5965 :{WINDOW_COLOUR_2}نوع المدخل: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}جزء مدخل الحديقة: {BLACK}{STRINGID}
STR_5960 :وضع حالة رباعي:
STR_5961 :فهرس المدخل: {BLACK}{COMMA16}
STR_5962 :كشف التصادم:
STR_5963 :زوايا مرتفعة:
STR_5964 :مائل
STR_5965 :نوع المدخل: {BLACK}{STRINGID}
STR_5966 :جزء مدخل الحديقة: {BLACK}{STRINGID}
STR_5967 :وسط
STR_5968 :شمال
STR_5969 :يمين
STR_5970 :{WINDOW_COLOUR_2}مُعرف المدخل: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}مُعرف المخرج: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}مُعرف الرحلة: {BLACK}{COMMA16}
STR_5970 :مُعرف المدخل: {BLACK}{COMMA16}
STR_5971 :مُعرف المخرج: {BLACK}{COMMA16}
STR_5972 :مُعرف الرحلة: {BLACK}{COMMA16}
STR_5973 :تسلق إلي الأعلي
STR_5974 :Changes the base- and clearance height so that its at the same as the next element on the current tile. Doing this makes it easier to build on this tile.
STR_5975 :إنحدار:
STR_5976 :مستوي
STR_5977 :الجانب الأيمن الأعلى
STR_5978 :الجانب الأيسر لأعلى
STR_5979 :{WINDOW_COLOUR_2}نوع الحائط: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}كتابة اليافطة: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}ليست يافطة
STR_5982 :{WINDOW_COLOUR_2}نوع المشهد الكبير: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}معرّف قطعة المشاهد الكبيرة: {BLACK}{COMMA16}
STR_5979 :نوع الحائط: {BLACK}{COMMA16}
STR_5980 :كتابة اليافطة: {BLACK}{STRINGID}
STR_5981 :ليست يافطة
STR_5982 :نوع المشهد الكبير: {BLACK}{COMMA16}
STR_5983 :معرّف قطعة المشاهد الكبيرة: {BLACK}{COMMA16}
STR_5984 ::المسارات المقفلة
STR_5985 :مجلد جديد
STR_5986 :.أدخل الأسم للمجلد الجديد
@ -3480,7 +3480,7 @@ STR_6273 :الموسيقي
STR_6274 :…لا يمكن تحديد مخطط اللون
STR_6275 :{WINDOW_COLOUR_2}نمط المحطة
STR_6276 :{RED}{STRINGID} .هل علق الزوار؟ ربما يكون هذا بسبب أفعوانية غير صالحة أو وضع تشغيل غير صالح
STR_6277 :{WINDOW_COLOUR_2} {BLACK}{STRINGID} :فهرسة المحطة
STR_6277 :{BLACK}{STRINGID} :فهرسة المحطة
STR_6278 :عدد ملفات الحفظ التلقائي
STR_6279 :عدد ملفات الحفظ التلقائي التي يجب إبقائها في المرة الواحدة
STR_6280 :الدردشة
@ -3512,9 +3512,9 @@ STR_6315 :{WINDOW_COLOUR_2}هدف مُحدد المسار: {BLACK}{INT32}, {I
STR_6316 :{WINDOW_COLOUR_2}تاريخ مُحدد المسار:
STR_6317 :{BLACK}{INT32}، {INT32}، {INT32} مسار {INT32}
STR_6318 :{STRING} :ملف السجل {NEWLINE}.تم إكتشاف إنفصال عن الشبكة
STR_6319 :{WINDOW_COLOUR_2}مكابح البلوك مغلقة
STR_6320 :{WINDOW_COLOUR_2}غير قابل للتدمير
STR_6321 :{WINDOW_COLOUR_2}الإضافة متضررة
STR_6319 :مكابح البلوك مغلقة
STR_6320 :غير قابل للتدمير
STR_6321 :الإضافة متضررة
STR_6322 :{WINDOW_COLOUR_2} {BLACK}{INT32} :رقم النقش المتحرك
STR_6323 :يُحاكي
STR_6324 :حاكي

View File

@ -3165,56 +3165,56 @@ STR_5930 :Detalls de la decoració gran
STR_5931 :Detalls del cartell
STR_5932 :Detalls de l'element corrupte
STR_5933 :Propietats
STR_5934 :{WINDOW_COLOUR_2}Textura del terreny: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Vora del terreny: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Propietari del terreny: {BLACK}{STRINGID}
STR_5934 :Textura del terreny: {BLACK}{STRINGID}
STR_5935 :Vora del terreny: {BLACK}{STRINGID}
STR_5936 :Propietari del terreny: {BLACK}{STRINGID}
STR_5937 :Sense propietari ni a la venta
STR_5938 :{WINDOW_COLOUR_2}Nivell de l'aigua: {BLACK}{COMMA16}
STR_5938 :Nivell de l'aigua: {BLACK}{COMMA16}
STR_5939 :Treu les tanques del parc
STR_5940 :Restaura les tanques del parc
STR_5941 :{WINDOW_COLOUR_2}Alçada base:
STR_5942 :{WINDOW_COLOUR_2}Nom del camí: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Afegits: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Afegits: {BLACK}cap
STR_5945 :{WINDOW_COLOUR_2}Vores connectades:
STR_5946 :{WINDOW_COLOUR_2}Tipus d'atracció: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Id d'atracció: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nom de l'atracció: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Cadena d'elevació
STR_5950 :{WINDOW_COLOUR_2}Aplica els canvis a la via sencera.
STR_5951 :{WINDOW_COLOUR_2}Id de secció: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Número de seqüència: {BLACK}{COMMA16}
STR_5941 :Alçada base:
STR_5942 :Nom del camí: {BLACK}{STRINGID}
STR_5943 :Afegits: {BLACK}{STRINGID}
STR_5944 :Afegits: {BLACK}cap
STR_5945 :Vores connectades:
STR_5946 :Tipus d'atracció: {BLACK}{STRINGID}
STR_5947 :Id d'atracció: {BLACK}{COMMA16}
STR_5948 :Nom de l'atracció: {BLACK}{STRINGID}
STR_5949 :Cadena d'elevació
STR_5950 :Aplica els canvis a la via sencera.
STR_5951 :Id de secció: {BLACK}{COMMA16}
STR_5952 :Número de seqüència: {BLACK}{COMMA16}
STR_5953 :Ordena els elements del mapa de la casella seleccionada segons la seva alçada base.
STR_5954 :{WINDOW_COLOUR_2}Edat de la decoració: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Posició al quadrant: {BLACK}{STRINGID}
STR_5954 :Edat de la decoració: {BLACK}{COMMA16}
STR_5955 :Posició al quadrant: {BLACK}{STRINGID}
STR_5956 :Sud-oest
STR_5957 :Nord-oest
STR_5958 :Nord-est
STR_5959 :Sud-est
STR_5960 :{WINDOW_COLOUR_2}Posició al quadrant:
STR_5961 :{WINDOW_COLOUR_2}Índex d'entrada: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Detecció de col·lisions:
STR_5963 :{WINDOW_COLOUR_2}Cantonades aixecades:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Tipus d'entrada: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Part de l'entrada al parc: {BLACK}{STRINGID}
STR_5960 :Posició al quadrant:
STR_5961 :Índex d'entrada: {BLACK}{COMMA16}
STR_5962 :Detecció de col·lisions:
STR_5963 :Cantonades aixecades:
STR_5964 :Diagonal
STR_5965 :Tipus d'entrada: {BLACK}{STRINGID}
STR_5966 :Part de l'entrada al parc: {BLACK}{STRINGID}
STR_5967 :Mig
STR_5968 :Esquerra
STR_5969 :Dreta
STR_5970 :{WINDOW_COLOUR_2}Id d'entrada: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Id de sortida: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Id d'atracció: {BLACK}{COMMA16}
STR_5970 :Id d'entrada: {BLACK}{COMMA16}
STR_5971 :Id de sortida: {BLACK}{COMMA16}
STR_5972 :Id d'atracció: {BLACK}{COMMA16}
STR_5973 :Subjecta al següent
STR_5974 :Canvia la base i els límits de funcionament de manera que siguin els mateixos que el proper element d'aquesta casella. Això fa que sigui més fàcil construir en aquesta casella.
STR_5975 :Inclinació:
STR_5976 :plana
STR_5977 :costat dret a dalt
STR_5978 :costat esquerre a dalt
STR_5979 :{WINDOW_COLOUR_2}Tipus de tanca: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Text del cartell: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}No és un cartell
STR_5982 :{WINDOW_COLOUR_2}Tipus de decoració gran: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Id de peça d'escenari gran: {BLACK}{COMMA16}
STR_5979 :Tipus de tanca: {BLACK}{COMMA16}
STR_5980 :Text del cartell: {BLACK}{STRINGID}
STR_5981 :No és un cartell
STR_5982 :Tipus de decoració gran: {BLACK}{COMMA16}
STR_5983 :Id de peça d'escenari gran: {BLACK}{COMMA16}
STR_5984 :Camins blocats:
STR_5985 :Nova carpeta
STR_5986 :Escriviu el nom de la carpeta nova
@ -3486,7 +3486,7 @@ STR_6273 :Música
STR_6274 :No es poden establir els colors…
STR_6275 :{WINDOW_COLOUR_2}Estil d'estació:
STR_6276 :{RED}Hi ha visitants bloquejats en {STRINGID}, probablement a causa d'un tipus d'atracció no vàlid o un mode d'operació incorrecte.
STR_6277 :{WINDOW_COLOUR_2}Índex d'estació: {BLACK}{STRINGID}
STR_6277 :Índex d'estació: {BLACK}{STRINGID}
STR_6278 :Nombre de desades automàtiques:
STR_6279 :Nombre de desades automàtiques que es mantindran.
STR_6280 :Xat
@ -3519,9 +3519,9 @@ STR_6315 :{WINDOW_COLOUR_2}Objectiu de l'encaminador: {BLACK}{INT32}, {INT32}
STR_6316 :{WINDOW_COLOUR_2}Historial de l'encaminador:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :S'ha detectat una dessincronització amb la xarxa.{NEWLINE}Fitxer de registre: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Frens de bloc tancats
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}L'adició està trencada
STR_6319 :Frens de bloc tancats
STR_6320 :Indestructible
STR_6321 :L'adició està trencada
STR_6322 :{WINDOW_COLOUR_2}ID de l'sprite: {BLACK}{INT32}
STR_6323 :S'està simulant
STR_6324 :Simula
@ -3567,7 +3567,7 @@ STR_6363 :S'ha copiat el text al porta-retalls.
STR_6364 :{RED}{COMMA16} persona ha mort en l'accident de {STRINGID}
STR_6365 :Morts en atraccions
STR_6366 :Vehicles parats o avariats
STR_6367 :{WINDOW_COLOUR_2}Fotograma:
STR_6367 :Fotograma:
STR_6368 :Per motius de compatibilitat, no es recomana executar l'OpenRCT2 amb el Wine. L'OpenRCT2 té versions natives per a macOS, Linux, FreeBSD i OpenBSD.
STR_6369 :Permet la construcció de vies a alçades no vàlides
STR_6370 :Permet posar trossos de via en qualsevol alçada.

View File

@ -3161,56 +3161,56 @@ STR_5930 :Detaily velkých kulis
STR_5931 :Detaily banneru
STR_5932 :Detaily poškozených elementů
STR_5933 :Vlastnosti
STR_5934 :{WINDOW_COLOUR_2}Textura terénu: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Hrana terénu: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Pozemková práva: {BLACK}{STRINGID}
STR_5934 :Textura terénu: {BLACK}{STRINGID}
STR_5935 :Hrana terénu: {BLACK}{STRINGID}
STR_5936 :Pozemková práva: {BLACK}{STRINGID}
STR_5937 :Není vlastněno a není na prodej
STR_5938 :{WINDOW_COLOUR_2}Úroveň vody: {BLACK}{COMMA16}
STR_5938 :Úroveň vody: {BLACK}{COMMA16}
STR_5939 :Odebrat plot parku
STR_5940 :Obnovit plot parku
STR_5941 :{WINDOW_COLOUR_2}Základní výška:
STR_5942 :{WINDOW_COLOUR_2}Jméno cesty: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Dodatky: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Dodatky: {BLACK}None
STR_5945 :{WINDOW_COLOUR_2}Připojené hrany:
STR_5946 :{WINDOW_COLOUR_2}Typ atrakce: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID atrakce: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Název atrakce: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Řetězový výtah
STR_5950 :{WINDOW_COLOUR_2}Aplikovat změny pro celou část traťi
STR_5951 :{WINDOW_COLOUR_2}ID části traťi: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Číslo sekvence: {BLACK}{COMMA16}
STR_5941 :Základní výška:
STR_5942 :Jméno cesty: {BLACK}{STRINGID}
STR_5943 :Dodatky: {BLACK}{STRINGID}
STR_5944 :Dodatky: {BLACK}None
STR_5945 :Připojené hrany:
STR_5946 :Typ atrakce: {BLACK}{STRINGID}
STR_5947 :ID atrakce: {BLACK}{COMMA16}
STR_5948 :Název atrakce: {BLACK}{STRINGID}
STR_5949 :Řetězový výtah
STR_5950 :Aplikovat změny pro celou část traťi
STR_5951 :ID části traťi: {BLACK}{COMMA16}
STR_5952 :Číslo sekvence: {BLACK}{COMMA16}
STR_5953 :Seřadit elementy mapy vybrané dlaždice podle jejich základní výšky
STR_5954 :{WINDOW_COLOUR_2}Stáří kulis: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Kvadrant umístění: {BLACK}{STRINGID}
STR_5954 :Stáří kulis: {BLACK}{COMMA16}
STR_5955 :Kvadrant umístění: {BLACK}{STRINGID}
STR_5956 :Jihozápad
STR_5957 :Severozápad
STR_5958 :Severovýchod
STR_5959 :Jihovýchod
STR_5960 :{WINDOW_COLOUR_2}Kvadrant umístění:
STR_5961 :{WINDOW_COLOUR_2}Index vstupu: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Detekce kolizí:
STR_5963 :{WINDOW_COLOUR_2}Zdvihnuté rohy:
STR_5964 :{WINDOW_COLOUR_2}Diagonální
STR_5965 :{WINDOW_COLOUR_2}Typ vstupu: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Část vstupu do parku: {BLACK}{STRINGID}
STR_5960 :Kvadrant umístění:
STR_5961 :Index vstupu: {BLACK}{COMMA16}
STR_5962 :Detekce kolizí:
STR_5963 :Zdvihnuté rohy:
STR_5964 :Diagonální
STR_5965 :Typ vstupu: {BLACK}{STRINGID}
STR_5966 :Část vstupu do parku: {BLACK}{STRINGID}
STR_5967 :Prostředek
STR_5968 :Levý
STR_5969 :Pravý
STR_5970 :{WINDOW_COLOUR_2}ID vstupu: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID východu: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID atrakce: {BLACK}{COMMA16}
STR_5970 :ID vstupu: {BLACK}{COMMA16}
STR_5971 :ID východu: {BLACK}{COMMA16}
STR_5972 :ID atrakce: {BLACK}{COMMA16}
STR_5973 :Omezit dalším
STR_5974 :Nastaví základní a celkovou výšku stejnou, jako je výška dalšího elementu na stejné dlaždici. To usnadní stavění na této dlaždici.
STR_5975 :Sklon:
STR_5976 :Rovina
STR_5977 :Pravá strana
STR_5978 :Levá strana
STR_5979 :{WINDOW_COLOUR_2}Typ plotu: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Text banneru: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}To není banner
STR_5982 :{WINDOW_COLOUR_2}Typ velké kulisy: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID velké kulisy: {BLACK}{COMMA16}
STR_5979 :Typ plotu: {BLACK}{COMMA16}
STR_5980 :Text banneru: {BLACK}{STRINGID}
STR_5981 :To není banner
STR_5982 :Typ velké kulisy: {BLACK}{COMMA16}
STR_5983 :ID velké kulisy: {BLACK}{COMMA16}
STR_5984 :Zablokované cesty:
STR_5985 :Nová složka
STR_5986 :Napiště název nové složky
@ -3482,7 +3482,7 @@ STR_6273 :Hudba
STR_6274 :Nelze nastavit schéma barev…
STR_6275 :{WINDOW_COLOUR_2}Styl stanice:
STR_6276 :{RED}Na atrakci {STRINGID} se zasekávají návštěvníci, zkontrolujte typ atrakce a mód provozu.
STR_6277 :{WINDOW_COLOUR_2}Index stanice: {BLACK}{STRINGID}
STR_6277 :Index stanice: {BLACK}{STRINGID}
STR_6278 :Počet autouložení
STR_6279 :Maximální počet autouložených her
STR_6280 :Chat
@ -3515,9 +3515,9 @@ STR_6315 :{WINDOW_COLOUR_2}Cíl hledání cesty: {BLACK}{INT32}, {INT32}, {IN
STR_6316 :{WINDOW_COLOUR_2}Historie hledání cest:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} směr {INT32}
STR_6318 :Detekována síťová desynchronizace.{NEWLINE}Log: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Uzavřený brzdný blok
STR_6320 :{WINDOW_COLOUR_2}Nezničitelné
STR_6321 :{WINDOW_COLOUR_2}Rozbitá část
STR_6319 :Uzavřený brzdný blok
STR_6320 :Nezničitelné
STR_6321 :Rozbitá část
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Probíhá simulace
STR_6324 :Simulovat
@ -3563,7 +3563,7 @@ STR_6363 :Text zkopírován do schránky
STR_6364 :{RED}{COMMA16} zemřel(a) při nehodě na {STRINGID}
STR_6365 :Oběti atrakce
STR_6366 :Zaseklá vozidla
STR_6367 :{WINDOW_COLOUR_2}Snímek animace:
STR_6367 :Snímek animace:
STR_6368 :Z důvodů kompatibility není doporučeno spuštět OpenRCT2 pod Wine. OpenRCT2 má nativví podporu pro macOS, Linux, FreeBSD a OpenBSD.
STR_6369 :Povolit stavbu trati v jakémkoliv výšce
STR_6370 :Umožní stavět dráhu v neplatné výšce

View File

@ -3162,56 +3162,56 @@ STR_5930 :Stort sceneri detaljer
STR_5931 :Banner detaljer
STR_5932 :Fejl element detaljer
STR_5933 :Egenskaber
STR_5934 :{WINDOW_COLOUR_2}Terræn tekstur: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terræn kant: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Ejendomsret til jord: {BLACK}{STRINGID}
STR_5934 :Terræn tekstur: {BLACK}{STRINGID}
STR_5935 :Terræn kant: {BLACK}{STRINGID}
STR_5936 :Ejendomsret til jord: {BLACK}{STRINGID}
STR_5937 :Ikke ejet, og ikke til salg
STR_5938 :{WINDOW_COLOUR_2}Vandniveau: {BLACK}{COMMA16}
STR_5938 :Vandniveau: {BLACK}{COMMA16}
STR_5939 :Fjern park hegn
STR_5940 :Gendan park hegn
STR_5941 :{WINDOW_COLOUR_2}Basis højde:
STR_5942 :{WINDOW_COLOUR_2}Sti navn: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Tilføjelser: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Tilføjelser: {BLACK}Ingen
STR_5945 :{WINDOW_COLOUR_2}Forbundende kanter:
STR_5946 :{WINDOW_COLOUR_2}Forlystelses type: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Forlystelses ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Forlystelses navn: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Kæde hejs
STR_5950 :{WINDOW_COLOUR_2}Anvend på hele sporstykket
STR_5951 :{WINDOW_COLOUR_2}Sporstykke ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sekvens nummer: {BLACK}{COMMA16}
STR_5941 :Basis højde:
STR_5942 :Sti navn: {BLACK}{STRINGID}
STR_5943 :Tilføjelser: {BLACK}{STRINGID}
STR_5944 :Tilføjelser: {BLACK}Ingen
STR_5945 :Forbundende kanter:
STR_5946 :Forlystelses type: {BLACK}{STRINGID}
STR_5947 :Forlystelses ID: {BLACK}{COMMA16}
STR_5948 :Forlystelses navn: {BLACK}{STRINGID}
STR_5949 :Kæde hejs
STR_5950 :Anvend på hele sporstykket
STR_5951 :Sporstykke ID: {BLACK}{COMMA16}
STR_5952 :Sekvens nummer: {BLACK}{COMMA16}
STR_5953 :Sorter kortelementerne på det aktuelle felt baseret på deres basishøjde.
STR_5954 :{WINDOW_COLOUR_2}alder på sceneri: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Kvadrant placering: {BLACK}{STRINGID}
STR_5954 :alder på sceneri: {BLACK}{COMMA16}
STR_5955 :Kvadrant placering: {BLACK}{STRINGID}
STR_5956 :Sydvest
STR_5957 :Nordvest
STR_5958 :Nordøst
STR_5959 :Sydøst
STR_5960 :{WINDOW_COLOUR_2}Kvadrant placering:
STR_5961 :{WINDOW_COLOUR_2}Indgangsindeks: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Kollisionsdetektering:
STR_5963 :{WINDOW_COLOUR_2}Forhøjede hjørner:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Indgangs type: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park indgangs part: {BLACK}{STRINGID}
STR_5960 :Kvadrant placering:
STR_5961 :Indgangsindeks: {BLACK}{COMMA16}
STR_5962 :Kollisionsdetektering:
STR_5963 :Forhøjede hjørner:
STR_5964 :Diagonal
STR_5965 :Indgangs type: {BLACK}{STRINGID}
STR_5966 :Park indgangs part: {BLACK}{STRINGID}
STR_5967 :Midten
STR_5968 :Venstre
STR_5969 :Højre
STR_5970 :{WINDOW_COLOUR_2}Indgangs ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Udgangs ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Forlystelses ID: {BLACK}{COMMA16}
STR_5970 :Indgangs ID: {BLACK}{COMMA16}
STR_5971 :Udgangs ID: {BLACK}{COMMA16}
STR_5972 :Forlystelses ID: {BLACK}{COMMA16}
STR_5973 :Fastlås til næste
STR_5974 :Ændrer basis- og frigangshøjden, så den er på samme som det næste element på den aktuelle felt. Dette gør det nemmere at bygge videre på dette felt.
STR_5975 :Bakke:
STR_5976 :Flad
STR_5977 :Højre side op
STR_5978 :Venstre side op
STR_5979 :{WINDOW_COLOUR_2}Væg type: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banner tekst: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Ikke et banner
STR_5982 :{WINDOW_COLOUR_2}Stort sceneri type: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Stort sceneri enhed ID: {BLACK}{COMMA16}
STR_5979 :Væg type: {BLACK}{COMMA16}
STR_5980 :Banner tekst: {BLACK}{STRINGID}
STR_5981 :Ikke et banner
STR_5982 :Stort sceneri type: {BLACK}{COMMA16}
STR_5983 :Stort sceneri enhed ID: {BLACK}{COMMA16}
STR_5984 :Blokerede stier:
STR_5985 :Ny mappe
STR_5986 :Angiv navnet på den nye mappe.
@ -3483,7 +3483,7 @@ STR_6273 :Musik
STR_6274 :Kan ikke sætte farveskema…
STR_6275 :{WINDOW_COLOUR_2}Stations stil:
STR_6276 :{RED}{STRINGID} har fastklemte gæster, muligvis på grund af forkert forlystelsetype eller operations tilstand.
STR_6277 :{WINDOW_COLOUR_2}Stations index: {BLACK}{STRINGID}
STR_6277 :Stations index: {BLACK}{STRINGID}
STR_6278 :Autogem mængde
STR_6279 :Antallet af automatisk gemte spil der skal beholdes
STR_6280 :Chat
@ -3516,9 +3516,9 @@ STR_6315 :{WINDOW_COLOUR_2}Stisøger Goal: {BLACK}{INT32}, {INT32}, {INT32} r
STR_6316 :{WINDOW_COLOUR_2}Stisøger historie:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} ret {INT32}
STR_6318 :Netværks synkroniseringsfejl.{NEWLINE}Log fil: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blok Bremse tilkoblet
STR_6320 :{WINDOW_COLOUR_2}Uforgængelig
STR_6321 :{WINDOW_COLOUR_2}Tilføjelse defekt
STR_6319 :Blok Bremse tilkoblet
STR_6320 :Uforgængelig
STR_6321 :Tilføjelse defekt
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Simulérer
STR_6324 :Simulér
@ -3564,7 +3564,7 @@ STR_6363 :Kopierede tekst til udklipsholder
STR_6364 :{RED}{COMMA16} person døde i forlystelsen {STRINGID}
STR_6365 :Forlystelse tilskadekommende
STR_6366 :Fastlåste eller blokerede køretøjer
STR_6367 :{WINDOW_COLOUR_2}Animations billede:
STR_6367 :Animations billede:
STR_6368 :Af kompatibilitetshensyn anbefales det ikke at køre OpenRCT2 med Wine. OpenRCT2 har indbygget understøttelse af macOS, Linux, FreeBSD og OpenBSD.
STR_6369 :Tillad bygning af spor i ugyldige højder
STR_6370 :Gør det muligt at placere sporstykker i ethvert højdeniveau

View File

@ -3159,56 +3159,56 @@ STR_5930 :Details große Szenerie
STR_5931 :Bannerdetails
STR_5932 :Details fehlerhaftes Element
STR_5933 :Eigenschaften
STR_5934 :{WINDOW_COLOUR_2}Geländetextur: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Geländekante: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Landbesitz: {BLACK}{STRINGID}
STR_5934 :Geländetextur: {BLACK}{STRINGID}
STR_5935 :Geländekante: {BLACK}{STRINGID}
STR_5936 :Landbesitz: {BLACK}{STRINGID}
STR_5937 :Nicht in Besitz und nicht zum Verkauf
STR_5938 :{WINDOW_COLOUR_2}Wasserhöhe: {BLACK}{COMMA16}
STR_5938 :Wasserhöhe: {BLACK}{COMMA16}
STR_5939 :Parkzäune entfernen
STR_5940 :Parkzäune wiederherst.
STR_5941 :{WINDOW_COLOUR_2}Basishöhe:
STR_5942 :{WINDOW_COLOUR_2}Wegname: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Zusätze: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Zusätze: {BLACK}Keine
STR_5945 :{WINDOW_COLOUR_2}Verbundene Kanten:
STR_5946 :{WINDOW_COLOUR_2}Attraktionstyp: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Attraktions-ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Attraktionsname: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Kettenlift
STR_5950 :{WINDOW_COLOUR_2}Änderungen auf gesamtes Streckenstück anwenden
STR_5951 :{WINDOW_COLOUR_2}Streckenstück-ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Reihennummer: {BLACK}{COMMA16}
STR_5941 :Basishöhe:
STR_5942 :Wegname: {BLACK}{STRINGID}
STR_5943 :Zusätze: {BLACK}{STRINGID}
STR_5944 :Zusätze: {BLACK}Keine
STR_5945 :Verbundene Kanten:
STR_5946 :Attraktionstyp: {BLACK}{STRINGID}
STR_5947 :Attraktions-ID: {BLACK}{COMMA16}
STR_5948 :Attraktionsname: {BLACK}{STRINGID}
STR_5949 :Kettenlift
STR_5950 :Änderungen auf gesamtes Streckenstück anwenden
STR_5951 :Streckenstück-ID: {BLACK}{COMMA16}
STR_5952 :Reihennummer: {BLACK}{COMMA16}
STR_5953 :Kartenelemente auf aktueller Kachel{NEWLINE}nach ihrer Basishöhe sortieren
STR_5954 :{WINDOW_COLOUR_2}Szeneriealter: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Quadrantplatzierung: {BLACK}{STRINGID}
STR_5954 :Szeneriealter: {BLACK}{COMMA16}
STR_5955 :Quadrantplatzierung: {BLACK}{STRINGID}
STR_5956 :Südwest
STR_5957 :Nordwest
STR_5958 :Nordost
STR_5959 :Südost
STR_5960 :{WINDOW_COLOUR_2}Quadrantplatzierung:
STR_5961 :{WINDOW_COLOUR_2}Eintragsindex: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Kollisionserkennung:
STR_5963 :{WINDOW_COLOUR_2}Angehobene Ecken:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Eingangstyp: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parkeingangsteil: {BLACK}{STRINGID}
STR_5960 :Quadrantplatzierung:
STR_5961 :Eintragsindex: {BLACK}{COMMA16}
STR_5962 :Kollisionserkennung:
STR_5963 :Angehobene Ecken:
STR_5964 :Diagonal
STR_5965 :Eingangstyp: {BLACK}{STRINGID}
STR_5966 :Parkeingangsteil: {BLACK}{STRINGID}
STR_5967 :Mitte
STR_5968 :Links
STR_5969 :Rechts
STR_5970 :{WINDOW_COLOUR_2}Eingangs-ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Ausgangs-ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Attraktions-ID: {BLACK}{COMMA16}
STR_5970 :Eingangs-ID: {BLACK}{COMMA16}
STR_5971 :Ausgangs-ID: {BLACK}{COMMA16}
STR_5972 :Attraktions-ID: {BLACK}{COMMA16}
STR_5973 :An nächsten heften
STR_5974 :Ändert die Basis- und lichte Höhe, sodass{NEWLINE}sie der des nächsten Elements auf der aktuellen Kachel entspricht
STR_5975 :Steigung:
STR_5976 :Flach
STR_5977 :Rechte Seite hoch
STR_5978 :Linke Seite hoch
STR_5979 :{WINDOW_COLOUR_2}Zauntyp: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Bannertext: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Kein Banner
STR_5982 :{WINDOW_COLOUR_2}Großer Szenerietyp: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Großes Szeneriestück-ID: {BLACK}{COMMA16}
STR_5979 :Zauntyp: {BLACK}{COMMA16}
STR_5980 :Bannertext: {BLACK}{STRINGID}
STR_5981 :Kein Banner
STR_5982 :Großer Szenerietyp: {BLACK}{COMMA16}
STR_5983 :Großes Szeneriestück-ID: {BLACK}{COMMA16}
STR_5984 :Blockierte Wege:
STR_5985 :Neuer Ordner
STR_5986 :Name des neuen Ordners eingeben:
@ -3480,7 +3480,7 @@ STR_6273 :Musik
STR_6274 :Farbschema kann nicht gesetzt werden…
STR_6275 :{WINDOW_COLOUR_2}Stil der Station:
STR_6276 :{RED}{STRINGID} hat steckengebliebene Gäste, möglicherweise aufgrund eines ungültigen Streckentyps oder Betriebsmodus.
STR_6277 :{WINDOW_COLOUR_2}Stationsindex: {BLACK}{STRINGID}
STR_6277 :Stationsindex: {BLACK}{STRINGID}
STR_6278 :Autosaveanzahl:
STR_6279 :Anzahl der Autosaves, die{NEWLINE}behalten werden sollen
STR_6280 :Chat
@ -3513,9 +3513,9 @@ STR_6315 :{WINDOW_COLOUR_2}Wegfindungsziel: {BLACK}{INT32}, {INT32}, {INT32}
STR_6316 :{WINDOW_COLOUR_2}Wegfindungshistorie:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} Richtung {INT32}
STR_6318 :Netzwerkdesynchronisation erkannt.{NEWLINE}Logdatei: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blockbremse geschlossen
STR_6320 :{WINDOW_COLOUR_2}Unzerstörbar
STR_6321 :{WINDOW_COLOUR_2}Zusatz ist kaputt
STR_6319 :Blockbremse geschlossen
STR_6320 :Unzerstörbar
STR_6321 :Zusatz ist kaputt
STR_6322 :{WINDOW_COLOUR_2}Sprite-ID: {BLACK}{INT32}
STR_6323 :Simulierend
STR_6324 :Simulieren
@ -3561,7 +3561,7 @@ STR_6363 :Text in die Zwischenablage kopiert
STR_6364 :{RED}{COMMA16} Person starb bei einem Unfall auf {STRINGID}
STR_6365 :Opfer von Fahrgeschäften
STR_6366 :Feststeckende Fahrzeuge
STR_6367 :{WINDOW_COLOUR_2}Animations-Frame:
STR_6367 :Animations-Frame:
STR_6368 :Aus Kompabilitätsgründen wird es nicht empfohlen, OpenRCT2 mit Wine auszuführen. OpenRCT2 funktioniert auf macOS, Linux, FreeBSD und OpenBSD.
STR_6369 :Streckenbau an ungültigen Höhen erlauben
STR_6370 :Erlaubt Platzierung von Streckenteilen an beliebigen Höhenintervallen

View File

@ -3162,56 +3162,56 @@ STR_5930 :Large scenery details
STR_5931 :Banner details
STR_5932 :Corrupt element details
STR_5933 :Properties
STR_5934 :{WINDOW_COLOUR_2}Terrain texture: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrain edge: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Land ownership: {BLACK}{STRINGID}
STR_5934 :Terrain texture: {BLACK}{STRINGID}
STR_5935 :Terrain edge: {BLACK}{STRINGID}
STR_5936 :Land ownership: {BLACK}{STRINGID}
STR_5937 :Not owned and not for sale
STR_5938 :{WINDOW_COLOUR_2}Water level: {BLACK}{COMMA16}
STR_5938 :Water level: {BLACK}{COMMA16}
STR_5939 :Remove park fences
STR_5940 :Restore park fences
STR_5941 :{WINDOW_COLOUR_2}Base height:
STR_5942 :{WINDOW_COLOUR_2}Path name: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Additions: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Additions: {BLACK}None
STR_5945 :{WINDOW_COLOUR_2}Connected edges:
STR_5946 :{WINDOW_COLOUR_2}Ride type: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Ride name: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Chain lift
STR_5950 :{WINDOW_COLOUR_2}Apply changes to entire track piece
STR_5951 :{WINDOW_COLOUR_2}Track piece ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sequence number: {BLACK}{COMMA16}
STR_5941 :Base height:
STR_5942 :Path name: {BLACK}{STRINGID}
STR_5943 :Additions: {BLACK}{STRINGID}
STR_5944 :Additions: {BLACK}None
STR_5945 :Connected edges:
STR_5946 :Ride type: {BLACK}{STRINGID}
STR_5947 :Ride ID: {BLACK}{COMMA16}
STR_5948 :Ride name: {BLACK}{STRINGID}
STR_5949 :Chain lift
STR_5950 :Apply changes to entire track piece
STR_5951 :Track piece ID: {BLACK}{COMMA16}
STR_5952 :Sequence number: {BLACK}{COMMA16}
STR_5953 :Sort the map elements on the current tile based on their base height.
STR_5954 :{WINDOW_COLOUR_2}Scenery age: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Quadrant placement: {BLACK}{STRINGID}
STR_5954 :Scenery age: {BLACK}{COMMA16}
STR_5955 :Quadrant placement: {BLACK}{STRINGID}
STR_5956 :Southwest
STR_5957 :Northwest
STR_5958 :Northeast
STR_5959 :Southeast
STR_5960 :{WINDOW_COLOUR_2}Quadrant placement:
STR_5961 :{WINDOW_COLOUR_2}Entry index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Collision detection:
STR_5963 :{WINDOW_COLOUR_2}Raised Corners:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Entrance type: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park entrance part: {BLACK}{STRINGID}
STR_5960 :Quadrant placement:
STR_5961 :Entry index: {BLACK}{COMMA16}
STR_5962 :Collision detection:
STR_5963 :Raised Corners:
STR_5964 :Diagonal
STR_5965 :Entrance type: {BLACK}{STRINGID}
STR_5966 :Park entrance part: {BLACK}{STRINGID}
STR_5967 :Middle
STR_5968 :Left
STR_5969 :Right
STR_5970 :{WINDOW_COLOUR_2}Entrance ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Exit ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
STR_5970 :Entrance ID: {BLACK}{COMMA16}
STR_5971 :Exit ID: {BLACK}{COMMA16}
STR_5972 :Ride ID: {BLACK}{COMMA16}
STR_5973 :Clamp to next
STR_5974 :Changes the base- and clearance height so that its at the same as the next element on the current tile. Doing this makes it easier to build on this tile.
STR_5975 :Slope:
STR_5976 :Flat
STR_5977 :Right side up
STR_5978 :Left side up
STR_5979 :{WINDOW_COLOUR_2}Wall type: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banner text: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Not a banner
STR_5982 :{WINDOW_COLOUR_2}Large scenery type: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Large scenery piece ID: {BLACK}{COMMA16}
STR_5979 :Wall type: {BLACK}{COMMA16}
STR_5980 :Banner text: {BLACK}{STRINGID}
STR_5981 :Not a banner
STR_5982 :Large scenery type: {BLACK}{COMMA16}
STR_5983 :Large scenery piece ID: {BLACK}{COMMA16}
STR_5984 :Blocked paths:
STR_5985 :New folder
STR_5986 :Type the name of the new folder.
@ -3483,7 +3483,7 @@ STR_6273 :Music
STR_6274 :Cant set colour scheme…
STR_6275 :{WINDOW_COLOUR_2}Station style:
STR_6276 :{RED}{STRINGID} has guests getting stuck, possibly due to invalid ride type or operating mode.
STR_6277 :{WINDOW_COLOUR_2}Station index: {BLACK}{STRINGID}
STR_6277 :Station index: {BLACK}{STRINGID}
STR_6278 :Autosave amount
STR_6279 :Number of autosaves that should be kept
STR_6280 :Chat
@ -3516,9 +3516,9 @@ STR_6315 :{WINDOW_COLOUR_2}Pathfind Goal: {BLACK}{INT32}, {INT32}, {INT32} di
STR_6316 :{WINDOW_COLOUR_2}Pathfind history:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Network desync detected.{NEWLINE}Log file: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Block Brake Closed
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}Addition is broken
STR_6319 :Block Brake Closed
STR_6320 :Indestructible
STR_6321 :Addition is broken
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Simulating
STR_6324 :Simulate
@ -3564,7 +3564,7 @@ STR_6363 :Copied text to clipboard
STR_6364 :{RED}{COMMA16} person has died in an accident on {STRINGID}
STR_6365 :Ride casualties
STR_6366 :Stuck or stalled vehicles
STR_6367 :{WINDOW_COLOUR_2}Animation frame:
STR_6367 :Animation frame:
STR_6368 :For compatibility reasons, it is not recommended to run OpenRCT2 with Wine. OpenRCT2 has native support for macOS, Linux, FreeBSD and OpenBSD.
STR_6369 :Allow building track at invalid heights
STR_6370 :Allows placing track pieces at any height interval
@ -3656,6 +3656,8 @@ STR_6455 :Cant rename sign…
STR_6456 :Giant Screenshot
STR_6457 :Report a bug on GitHub
STR_6458 :Follow this on Main View
STR_6460 :D
STR_6461 :Direction
#############
# Scenarios #

View File

@ -3162,56 +3162,56 @@ STR_5930 :Detaloj de granda pejzaĵo
STR_5931 :Detaloj de rubando
STR_5932 :Detaloj de difektita elemento
STR_5933 :Ecoj
STR_5934 :{WINDOW_COLOUR_2}Teksturo de tereno: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Flanko de tereno: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Proprieto de bieno: {BLACK}{STRINGID}
STR_5934 :Teksturo de tereno: {BLACK}{STRINGID}
STR_5935 :Flanko de tereno: {BLACK}{STRINGID}
STR_5936 :Proprieto de bieno: {BLACK}{STRINGID}
STR_5937 :Ne estas posedata kaj ne aĉetebla
STR_5938 :{WINDOW_COLOUR_2}Akvonivelo: {BLACK}{COMMA16}
STR_5938 :Akvonivelo: {BLACK}{COMMA16}
STR_5939 :Forigi parkobarilojn
STR_5940 :Restaŭri parkobarilojn
STR_5941 :{WINDOW_COLOUR_2}Baza alteco:
STR_5942 :{WINDOW_COLOUR_2}Dosierindiko: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Adicioj: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Adicioj: {BLACK}Neniu
STR_5945 :{WINDOW_COLOUR_2}Kunligitaj randoj:
STR_5946 :{WINDOW_COLOUR_2}Tipo de atrakcio: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Identigilo de atrakcio: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nomo de atrakcio: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Ĉenlifto
STR_5950 :{WINDOW_COLOUR_2}Apliki ŝanĝojn al tuta trakoparto
STR_5951 :{WINDOW_COLOUR_2}Identigilo de trakoparto: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sinsekvonumero: {BLACK}{COMMA16}
STR_5941 :Baza alteco:
STR_5942 :Dosierindiko: {BLACK}{STRINGID}
STR_5943 :Adicioj: {BLACK}{STRINGID}
STR_5944 :Adicioj: {BLACK}Neniu
STR_5945 :Kunligitaj randoj:
STR_5946 :Tipo de atrakcio: {BLACK}{STRINGID}
STR_5947 :Identigilo de atrakcio: {BLACK}{COMMA16}
STR_5948 :Nomo de atrakcio: {BLACK}{STRINGID}
STR_5949 :Ĉenlifto
STR_5950 :Apliki ŝanĝojn al tuta trakoparto
STR_5951 :Identigilo de trakoparto: {BLACK}{COMMA16}
STR_5952 :Sinsekvonumero: {BLACK}{COMMA16}
STR_5953 :Ordigi la mapelementojn sur la nuna bloko laŭ iliaj bazaj altecoj.
STR_5954 :{WINDOW_COLOUR_2}Aĝo de pejzaĵo: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Lokado de kvadranto: {BLACK}{STRINGID}
STR_5954 :Aĝo de pejzaĵo: {BLACK}{COMMA16}
STR_5955 :Lokado de kvadranto: {BLACK}{STRINGID}
STR_5956 :Sudokcidento
STR_5957 :Nordokcidento
STR_5958 :Nordoriento
STR_5959 :Sudoriento
STR_5960 :{WINDOW_COLOUR_2}Lokado de kvadranto:
STR_5961 :{WINDOW_COLOUR_2}Eniga indekso: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Koliziditektado:
STR_5963 :{WINDOW_COLOUR_2}Altitaj anguloj:
STR_5964 :{WINDOW_COLOUR_2}Diagonala
STR_5965 :{WINDOW_COLOUR_2}Tipo de enirejo: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parto de parkenirejo: {BLACK}{STRINGID}
STR_5960 :Lokado de kvadranto:
STR_5961 :Eniga indekso: {BLACK}{COMMA16}
STR_5962 :Koliziditektado:
STR_5963 :Altitaj anguloj:
STR_5964 :Diagonala
STR_5965 :Tipo de enirejo: {BLACK}{STRINGID}
STR_5966 :Parto de parkenirejo: {BLACK}{STRINGID}
STR_5967 :Meza
STR_5968 :Maldekstra
STR_5969 :Dekstra
STR_5970 :{WINDOW_COLOUR_2}Identigilo de enirejo: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Identigilo de elirejo: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Identigilo de atrakcio: {BLACK}{COMMA16}
STR_5970 :Identigilo de enirejo: {BLACK}{COMMA16}
STR_5971 :Identigilo de elirejo: {BLACK}{COMMA16}
STR_5972 :Identigilo de atrakcio: {BLACK}{COMMA16}
STR_5973 :Krampi al sekva
STR_5974 :Ŝanĝas la bazan kaj interspacan altecojn tiel, ke ili samu kun la sekva elemento sur la nuna bloko. Ĉi tio faciligas konstruon sur ĉi tiu bloko.
STR_5975 :Dekliveco:
STR_5976 :Plata
STR_5977 :Dekstra flanko supren
STR_5978 :Maldekstra flanko supren
STR_5979 :{WINDOW_COLOUR_2}Tipo de muro: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Teksto de rubando: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Ne estas rubando
STR_5982 :{WINDOW_COLOUR_2}Tipo de granda pejzaĝo: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Parto-identigilo de granda pejzaĝo: {BLACK}{COMMA16}
STR_5979 :Tipo de muro: {BLACK}{COMMA16}
STR_5980 :Teksto de rubando: {BLACK}{STRINGID}
STR_5981 :Ne estas rubando
STR_5982 :Tipo de granda pejzaĝo: {BLACK}{COMMA16}
STR_5983 :Parto-identigilo de granda pejzaĝo: {BLACK}{COMMA16}
STR_5984 :Blokitaj trotuaroj:
STR_5985 :Nova dosierujo
STR_5986 :Tajpu la nomon de la nova dosierujo.
@ -3483,7 +3483,7 @@ STR_6273 :Muziko
STR_6274 :Ne eblas agordi kolorskemon…
STR_6275 :{WINDOW_COLOUR_2}Staciostilo:
STR_6276 :{RED}{STRINGID} havas gastojn staŭlitajn, eble pro nevalida atrakciotipo aŭ reĝimo de funkciiado.
STR_6277 :{WINDOW_COLOUR_2}Stacioindekso: {BLACK}{STRINGID}
STR_6277 :Stacioindekso: {BLACK}{STRINGID}
STR_6278 :Kiomo por aŭtokonservi
STR_6279 :Nombro de aŭtokonservaĵoj por konservi
STR_6280 :Por babili
@ -3516,9 +3516,9 @@ STR_6315 :{WINDOW_COLOUR_2}Celo de vojotrovo: {BLACK}{INT32}, {INT32}, {INT32
STR_6316 :{WINDOW_COLOUR_2}Historio de vojotrovo:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Dissinkronigo de reto detektita.{NEWLINE}Protokolo-dosiero: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Bremso de Blokparto Fermita
STR_6320 :{WINDOW_COLOUR_2}Nemalkonstruebla
STR_6321 :{WINDOW_COLOUR_2}Aldonaĵo difektas
STR_6319 :Bremso de Blokparto Fermita
STR_6320 :Nemalkonstruebla
STR_6321 :Aldonaĵo difektas
STR_6322 :{WINDOW_COLOUR_2}Identigilo de rastrumeto: {BLACK}{INT32}
STR_6323 :Simulas
STR_6324 :Simuli
@ -3564,7 +3564,7 @@ STR_6363 :Teksto kopiita al tondujo
STR_6364 :{RED}{COMMA16} homo mortis pro akcidento sur {STRINGID}
STR_6365 :Mortoj sur atrakcio
STR_6366 :Veturiloj staŭlitaj
STR_6367 :{WINDOW_COLOUR_2}Kadro de animacio:
STR_6367 :Kadro de animacio:
STR_6368 :Por kialoj de kongruo, ne estas rekomendita por lanĉi OpenRCT2 per Wine. OpenRCT2 funkciigas indiĝene sur macOS, Linukso, FreeBSD kaj OpenBSD.
STR_6369 :Permesi konstruadon de trako al nevalidaj altecoj
STR_6370 :Permesas metadon de trakpartoj al iu ajn intervalo de altecoj
@ -3656,6 +3656,8 @@ STR_6455 :Ne povas renomi surskribaĵon…
STR_6456 :Giganta Ekrankopio
STR_6457 :Raporti cimon sur GitHub
STR_6458 :Sekvi ĉi tion en Ĉefa Vido
STR_6460 :D
STR_6461 :Direkto
#############
# Scenarios #

View File

@ -3167,56 +3167,56 @@ STR_5930 :Detalles de Escenario Grande
STR_5931 :Detalles de Bandera
STR_5932 :Detalles de Elemento Corrupto
STR_5933 :Propiedades
STR_5934 :{WINDOW_COLOUR_2}Textura de Terreno: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Borde del Terreno: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Dueño de la Tierra: {BLACK}{STRINGID}
STR_5934 :Textura de Terreno: {BLACK}{STRINGID}
STR_5935 :Borde del Terreno: {BLACK}{STRINGID}
STR_5936 :Dueño de la Tierra: {BLACK}{STRINGID}
STR_5937 :Sin dueño y no a la venta
STR_5938 :{WINDOW_COLOUR_2}Nivel de Agua: {BLACK}{COMMA16}
STR_5938 :Nivel de Agua: {BLACK}{COMMA16}
STR_5939 :Remover vallas parque
STR_5940 :Restaurar vallas parque
STR_5941 :{WINDOW_COLOUR_2}Altura Base:
STR_5942 :{WINDOW_COLOUR_2}Nombre Sendero: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Adiciones: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Adiciones: {BLACK}Nada
STR_5945 :{WINDOW_COLOUR_2}Bordes conectados:
STR_5946 :{WINDOW_COLOUR_2}Tipo de Atracción: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID de Atracción: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nombre de Atracción: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Cadena de Elevación
STR_5950 :{WINDOW_COLOUR_2}Aplicar cambios a la vía entera
STR_5951 :{WINDOW_COLOUR_2}ID Pieza de Vía: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Número de secuencia: {BLACK}{COMMA16}
STR_5941 :Altura Base:
STR_5942 :Nombre Sendero: {BLACK}{STRINGID}
STR_5943 :Adiciones: {BLACK}{STRINGID}
STR_5944 :Adiciones: {BLACK}Nada
STR_5945 :Bordes conectados:
STR_5946 :Tipo de Atracción: {BLACK}{STRINGID}
STR_5947 :ID de Atracción: {BLACK}{COMMA16}
STR_5948 :Nombre de Atracción: {BLACK}{STRINGID}
STR_5949 :Cadena de Elevación
STR_5950 :Aplicar cambios a la vía entera
STR_5951 :ID Pieza de Vía: {BLACK}{COMMA16}
STR_5952 :Número de secuencia: {BLACK}{COMMA16}
STR_5953 :Clasificar los elementos del mapa en el mosaico actual en función de su altura base.
STR_5954 :{WINDOW_COLOUR_2}Antigüedad del Escenario: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Colocación Cuadrante: {BLACK}{STRINGID}
STR_5954 :Antigüedad del Escenario: {BLACK}{COMMA16}
STR_5955 :Colocación Cuadrante: {BLACK}{STRINGID}
STR_5956 :Suroeste
STR_5957 :Noroeste
STR_5958 :Nordeste
STR_5959 :Sudeste
STR_5960 :{WINDOW_COLOUR_2}Colocación Cuadrante:
STR_5961 :{WINDOW_COLOUR_2}Índice Entrada: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Detección de Colisión:
STR_5963 :{WINDOW_COLOUR_2}Esquinas levantadas:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Tipo Entrada: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parte Entrada del Parque: {BLACK}{STRINGID}
STR_5960 :Colocación Cuadrante:
STR_5961 :Índice Entrada: {BLACK}{COMMA16}
STR_5962 :Detección de Colisión:
STR_5963 :Esquinas levantadas:
STR_5964 :Diagonal
STR_5965 :Tipo Entrada: {BLACK}{STRINGID}
STR_5966 :Parte Entrada del Parque: {BLACK}{STRINGID}
STR_5967 :Medio
STR_5968 :Izquierda
STR_5969 :Derecha
STR_5970 :{WINDOW_COLOUR_2}ID Entrada: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID Salida: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID Atracción: {BLACK}{COMMA16}
STR_5970 :ID Entrada: {BLACK}{COMMA16}
STR_5971 :ID Salida: {BLACK}{COMMA16}
STR_5972 :ID Atracción: {BLACK}{COMMA16}
STR_5973 :Sujetar al siguiente
STR_5974 :Cambia la altura base y el aclaramiento de modo que sea al mismo como el siguiente elemento en el mosaico actual. Hacer esto hace que sea más fácil de construir en esta cuadricula.
STR_5975 :Pendiente:
STR_5976 :Plano
STR_5977 :Lado derecho hacia arriba
STR_5978 :Lado izquierdo hacia arriba
STR_5979 :{WINDOW_COLOUR_2}Tipo de valla: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Texto de bandera: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}No es una bandera
STR_5982 :{WINDOW_COLOUR_2}Tipo de escenario grande: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID pieza de escenario grande: {BLACK}{COMMA16}
STR_5979 :Tipo de valla: {BLACK}{COMMA16}
STR_5980 :Texto de bandera: {BLACK}{STRINGID}
STR_5981 :No es una bandera
STR_5982 :Tipo de escenario grande: {BLACK}{COMMA16}
STR_5983 :ID pieza de escenario grande: {BLACK}{COMMA16}
STR_5984 :Caminos Bloqueados:
STR_5985 :Nueva Carpeta
STR_5986 :Escribe el nombre de la nueva carpeta
@ -3488,7 +3488,7 @@ STR_6273 :Música
STR_6274 :No se puede establecer colores…
STR_6275 :{WINDOW_COLOUR_2}Estilo de estación:
STR_6276 :{RED}{STRINGID} tiene visitantes trabados, posiblemente por tipo de atracción o modo de operación inválidos.
STR_6277 :{WINDOW_COLOUR_2}Índice de estación: {BLACK}{STRINGID}
STR_6277 :Índice de estación: {BLACK}{STRINGID}
STR_6278 :Cantidad de Autoguardados
STR_6279 :Número de archivos de autoguardado a mantener
STR_6280 :Chat
@ -3521,9 +3521,9 @@ STR_6315 :{WINDOW_COLOUR_2}Pathfind objetivo: {BLACK}{INT32}, {INT32}, {INT32
STR_6316 :{WINDOW_COLOUR_2}Pathfind historial:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Desincronización detectada.{NEWLINE}Log: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Bloque de frenado cerrado
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}Agregado está roto
STR_6319 :Bloque de frenado cerrado
STR_6320 :Indestructible
STR_6321 :Agregado está roto
STR_6322 :{WINDOW_COLOUR_2}Id sprite: {BLACK}{INT32}
STR_6323 :Simulando
STR_6324 :Simular
@ -3569,7 +3569,7 @@ STR_6363 :Copiar texto al portapapeles
STR_6364 :{RED}{COMMA16} persona ha muerto en un accidente a bordo de {STRINGID}
STR_6365 :Fallecimientos en la atracción
STR_6366 :Vehiculos trabados o parados
STR_6367 :{WINDOW_COLOUR_2}Cuadro de animación:
STR_6367 :Cuadro de animación:
STR_6368 :Por razones de compatibilidad, no se recomienda correr OpenRCT2 sobre Wine. OpenRCT2 tiene soporte nativo para macOS, Linux, FreeBSD y OpenBSD.
STR_6369 :Permitir construir en alturas inválidas
STR_6370 :Permite construir rieles y piezas en cualquier intervalo de alturas
@ -3623,6 +3623,8 @@ STR_6455 :No se puede cambiar el nombre del señal…
STR_6456 :Captura de pantalla gigante
STR_6457 :Informar un error en GitHub
STR_6458 :Siga esto en la Vista Principal
STR_6460 :D
STR_6461 :Dirección
##############
# Escenarios #

View File

@ -3169,56 +3169,56 @@ STR_5930 :Suurmaisemoinnin tiedot
STR_5931 :Bannerin tiedot
STR_5932 :Vioittuneen elementin tiedot
STR_5933 :Ominaisuudet
STR_5934 :{WINDOW_COLOUR_2}Maastokuviointi: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Maaston sivu: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Maan omistajuus: {BLACK}{STRINGID}
STR_5934 :Maastokuviointi: {BLACK}{STRINGID}
STR_5935 :Maaston sivu: {BLACK}{STRINGID}
STR_5936 :Maan omistajuus: {BLACK}{STRINGID}
STR_5937 :Ei omistettu eikä myynnissä
STR_5938 :{WINDOW_COLOUR_2}Veden taso: {BLACK}{COMMA16}
STR_5938 :Veden taso: {BLACK}{COMMA16}
STR_5939 :Poista puiston aidat
STR_5940 :Palauta puiston aidat
STR_5941 :{WINDOW_COLOUR_2}Pohjakorkeus:
STR_5942 :{WINDOW_COLOUR_2}Polun nimi: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Lisäosat: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Lisäosat: {BLACK}Ei mitään
STR_5945 :{WINDOW_COLOUR_2}Yhdistetyt reunat:
STR_5946 :{WINDOW_COLOUR_2}Laitetyyppi: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Laitetunnus: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Laitteen nimi: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Nostomäki
STR_5950 :{WINDOW_COLOUR_2}Sovella muutokset koko rataosaan
STR_5951 :{WINDOW_COLOUR_2}Rataosatunnus: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Jaksonumero: {BLACK}{COMMA16}
STR_5941 :Pohjakorkeus:
STR_5942 :Polun nimi: {BLACK}{STRINGID}
STR_5943 :Lisäosat: {BLACK}{STRINGID}
STR_5944 :Lisäosat: {BLACK}Ei mitään
STR_5945 :Yhdistetyt reunat:
STR_5946 :Laitetyyppi: {BLACK}{STRINGID}
STR_5947 :Laitetunnus: {BLACK}{COMMA16}
STR_5948 :Laitteen nimi: {BLACK}{STRINGID}
STR_5949 :Nostomäki
STR_5950 :Sovella muutokset koko rataosaan
STR_5951 :Rataosatunnus: {BLACK}{COMMA16}
STR_5952 :Jaksonumero: {BLACK}{COMMA16}
STR_5953 :Järjestä tasoelementit nykyisessä ruudussa korkeuksiensa mukaan.
STR_5954 :{WINDOW_COLOUR_2}Maisemoinnin ikä: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Sijoituksen neljäsosa: {BLACK}{STRINGID}
STR_5954 :Maisemoinnin ikä: {BLACK}{COMMA16}
STR_5955 :Sijoituksen neljäsosa: {BLACK}{STRINGID}
STR_5956 :Lounas
STR_5957 :Luode
STR_5958 :Koillinen
STR_5959 :Kaakko
STR_5960 :{WINDOW_COLOUR_2}Sijoituksen neljäsosa:
STR_5961 :{WINDOW_COLOUR_2}Indeksi: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Törmäystunnistus:
STR_5963 :{WINDOW_COLOUR_2}Nostetut kulmat:
STR_5964 :{WINDOW_COLOUR_2}Viisto
STR_5965 :{WINDOW_COLOUR_2}Sisäänkäynnin tyyppi: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Puistosisäänkäynnin osa: {BLACK}{STRINGID}
STR_5960 :Sijoituksen neljäsosa:
STR_5961 :Indeksi: {BLACK}{COMMA16}
STR_5962 :Törmäystunnistus:
STR_5963 :Nostetut kulmat:
STR_5964 :Viisto
STR_5965 :Sisäänkäynnin tyyppi: {BLACK}{STRINGID}
STR_5966 :Puistosisäänkäynnin osa: {BLACK}{STRINGID}
STR_5967 :Keski
STR_5968 :Vasen
STR_5969 :Oikea
STR_5970 :{WINDOW_COLOUR_2}Sisäänkäyntitunnus: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Uloskäyntitunnus: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Laitetunnus: {BLACK}{COMMA16}
STR_5970 :Sisäänkäyntitunnus: {BLACK}{COMMA16}
STR_5971 :Uloskäyntitunnus: {BLACK}{COMMA16}
STR_5972 :Laitetunnus: {BLACK}{COMMA16}
STR_5973 :Kiinnitä seuraavaan
STR_5974 :Muuttaa perus- ja vapaakorkeuden samaan tasoon kuin tämän ruudun seuraava elementti. Tämä tekee tälle ruudulle rakentamisesta helpompaa.
STR_5975 :Mäki:
STR_5976 :Tasainen
STR_5977 :Oikea puoli ylös
STR_5978 :Vasen puoli ylös
STR_5979 :{WINDOW_COLOUR_2}Seinän tyyppi: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Bannerin teksti: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Ei banneri
STR_5982 :{WINDOW_COLOUR_2}Suurmaisemoinnin tyyppi: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Suurmaisemoinnin tunnus: {BLACK}{COMMA16}
STR_5979 :Seinän tyyppi: {BLACK}{COMMA16}
STR_5980 :Bannerin teksti: {BLACK}{STRINGID}
STR_5981 :Ei banneri
STR_5982 :Suurmaisemoinnin tyyppi: {BLACK}{COMMA16}
STR_5983 :Suurmaisemoinnin tunnus: {BLACK}{COMMA16}
STR_5984 :Estetyt polut:
STR_5985 :Uusi kansio
STR_5986 :Anna nimi uudelle kansiolle.
@ -3490,7 +3490,7 @@ STR_6273 :Musiikki
STR_6274 :Väriskeemaa ei voi valita…
STR_6275 :{WINDOW_COLOUR_2}Aseman tyyli:
STR_6276 :{RED}Kävijät juuttuvat kohteeseen {STRINGID}, mahdollisesti väärän laitetyypin tai toimintatilan johdosta.
STR_6277 :{WINDOW_COLOUR_2}Aseman numero: {BLACK}{STRINGID}
STR_6277 :Aseman numero: {BLACK}{STRINGID}
STR_6278 :Tallennuksien määrä
STR_6279 :Kuinka monta automaattista tallennusta tulisi pitää
STR_6280 :Keskustelu
@ -3523,9 +3523,9 @@ STR_6315 :{WINDOW_COLOUR_2}Polunetsintä: {BLACK}{INT32}, {INT32}, {INT32} su
STR_6316 :{WINDOW_COLOUR_2}Polunetsinnän historia:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} suunta {INT32}
STR_6318 :Verkkopelin epätahdistus havaittu.{NEWLINE}Lokitiedosto: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Lohkojarru kiinni
STR_6320 :{WINDOW_COLOUR_2}Hajoutumaton
STR_6321 :{WINDOW_COLOUR_2}Lisäosa on hajonnut
STR_6319 :Lohkojarru kiinni
STR_6320 :Hajoutumaton
STR_6321 :Lisäosa on hajonnut
STR_6322 :{WINDOW_COLOUR_2}Spritetunnus: {BLACK}{INT32}
STR_6323 :Simuloidaan
STR_6324 :Simuloi
@ -3571,7 +3571,7 @@ STR_6363 :Kopioitu leikepöydälle
STR_6364 :{RED}{COMMA16} henkilö on kuollut laitteen {STRINGID} onnettomuudessa
STR_6365 :Laitteen uhrit
STR_6366 :Juuttuneet vaunut
STR_6367 :{WINDOW_COLOUR_2}Animaatiokehys:
STR_6367 :Animaatiokehys:
STR_6368 :Yhteensopivuussyistä emme suosittele että käytät OpenRCT2:ta Winen kautta. OpenRCT2 tukee natiivisti macOSia, Linuxia, FreeBSD:tä ja OpenBSD:tä.
STR_6369 :Salli radan rakennus vääriin korkeuksiin
STR_6370 :Sallii radan sijoituksen mihin tahansa korkeuteen

View File

@ -1,6 +1,8 @@
# STR_XXXX part is read and XXXX becomes the string id number.
# Everything after the colon and before the new line will be saved as the string.
# Use # at the beginning of a line to leave a comment.
# Follow the translation guidelines here:
# https://github.com/OpenRCT2/Localisation/wiki/Translator-guidelines:-fr_FR
STR_0000 :
STR_0001 :{STRINGID} {COMMA16}
STR_0002 :Montagnes russes en spirales
@ -3169,56 +3171,56 @@ STR_5930 :Détails du grand décor
STR_5931 :Détails de la bannière
STR_5932 :Détails de lélément corrompu
STR_5933 :Propriétés
STR_5934 :{WINDOW_COLOUR_2}Texture du terrain : {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Bords du terrain : {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Propriété du terrain : {BLACK}{STRINGID}
STR_5934 :Texture du terrain : {BLACK}{STRINGID}
STR_5935 :Bords du terrain : {BLACK}{STRINGID}
STR_5936 :Propriété du terrain : {BLACK}{STRINGID}
STR_5937 :Pas acquis et pas à vendre
STR_5938 :{WINDOW_COLOUR_2}Niveau de leau : {BLACK}{COMMA16}
STR_5938 :Niveau de leau : {BLACK}{COMMA16}
STR_5939 :Suppr. clôtures du parc
STR_5940 :Restaur. clôtures du parc
STR_5941 :{WINDOW_COLOUR_2}Hauteur de base :
STR_5942 :{WINDOW_COLOUR_2}Nom de lallée : {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Ajouts : {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Ajouts : {BLACK}aucun
STR_5945 :{WINDOW_COLOUR_2}Côtés connectés :
STR_5946 :{WINDOW_COLOUR_2}Type dattraction : {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID de lattraction : {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nom de lattraction : {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Remontée à chaîne
STR_5950 :{WINDOW_COLOUR_2}Appliquer les changements à tout lélément de voie
STR_5951 :{WINDOW_COLOUR_2}ID de lélément de voie : {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Numéro de séquence : {BLACK}{COMMA16}
STR_5941 :Hauteur de base :
STR_5942 :Nom de lallée : {BLACK}{STRINGID}
STR_5943 :Ajouts : {BLACK}{STRINGID}
STR_5944 :Ajouts : {BLACK}aucun
STR_5945 :Côtés connectés :
STR_5946 :Type dattraction : {BLACK}{STRINGID}
STR_5947 :ID de lattraction : {BLACK}{COMMA16}
STR_5948 :Nom de lattraction : {BLACK}{STRINGID}
STR_5949 :Remontée à chaîne
STR_5950 :Appliquer les changements à tout lélément de voie
STR_5951 :ID de lélément de voie : {BLACK}{COMMA16}
STR_5952 :Numéro de séquence : {BLACK}{COMMA16}
STR_5953 :Trier les éléments sur la case actuelle en fonction de leur hauteur de base
STR_5954 :{WINDOW_COLOUR_2}Âge du décor : {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Placement sur la case : {BLACK}{STRINGID}
STR_5954 :Âge du décor : {BLACK}{COMMA16}
STR_5955 :Placement sur la case : {BLACK}{STRINGID}
STR_5956 :Sud-Ouest
STR_5957 :Nord-Ouest
STR_5958 :Nord-Est
STR_5959 :Sud-Est
STR_5960 :{WINDOW_COLOUR_2}Placement sur la case :
STR_5961 :{WINDOW_COLOUR_2}Index : {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Détection de collision :
STR_5963 :{WINDOW_COLOUR_2}Coins relevés :
STR_5964 :{WINDOW_COLOUR_2}Diagonale
STR_5965 :{WINDOW_COLOUR_2}Type dentrée : {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Partie de lentrée : {BLACK}{STRINGID}
STR_5960 :Placement sur la case :
STR_5961 :Index : {BLACK}{COMMA16}
STR_5962 :Détection de collision :
STR_5963 :Coins relevés :
STR_5964 :Diagonale
STR_5965 :Type dentrée : {BLACK}{STRINGID}
STR_5966 :Partie de lentrée : {BLACK}{STRINGID}
STR_5967 :milieu
STR_5968 :gauche
STR_5969 :droite
STR_5970 :{WINDOW_COLOUR_2}ID de lentrée : {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID de la sortie : {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID de lattraction : {BLACK}{COMMA16}
STR_5970 :ID de lentrée : {BLACK}{COMMA16}
STR_5971 :ID de la sortie : {BLACK}{COMMA16}
STR_5972 :ID de lattraction : {BLACK}{COMMA16}
STR_5973 :Attacher au suivant
STR_5974 :Change les hauteurs de base et de collision pour quelles soient les mêmes que lélément suivant sur la case. Rend la construction plus facile sur cette case.
STR_5975 :Pente :
STR_5976 :plat
STR_5977 :côté droit vers le haut
STR_5978 :côté gauche vers le haut
STR_5979 :{WINDOW_COLOUR_2}Type de clôture : {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Texte de bannière : {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Pas une bannière
STR_5982 :{WINDOW_COLOUR_2}Type de grand décor : {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID de la pièce de grand décor : {BLACK}{COMMA16}
STR_5979 :Type de clôture : {BLACK}{COMMA16}
STR_5980 :Texte de bannière : {BLACK}{STRINGID}
STR_5981 :Pas une bannière
STR_5982 :Type de grand décor : {BLACK}{COMMA16}
STR_5983 :ID de la pièce de grand décor : {BLACK}{COMMA16}
STR_5984 :Allées bloquées :
STR_5985 :Nv. dossier
STR_5986 :Entrez le nom du nouveau dossier :
@ -3490,7 +3492,7 @@ STR_6273 :Musique
STR_6274 :Impossible de définir la palette de couleurs…
STR_6275 :{WINDOW_COLOUR_2}Style de quai :
STR_6276 :{RED}{STRINGID} a des visiteurs coincés, probablement à cause dun type dattraction invalide ou du mode dopération
STR_6277 :{WINDOW_COLOUR_2}Index du quai : {BLACK}{STRINGID}
STR_6277 :Index du quai : {BLACK}{STRINGID}
STR_6278 :Nombre de sauv. auto. :
STR_6279 :Nombre de sauvegardes automatiques à conserver
STR_6280 :Chat
@ -3523,9 +3525,9 @@ STR_6315 :{WINDOW_COLOUR_2}Objectif recherche chemin : {BLACK}{INT32}, {INT3
STR_6316 :{WINDOW_COLOUR_2}Historique recherche chemin :
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Desynchronisation réseau détectée.{NEWLINE}Fichier journal : {STRING}
STR_6319 :{WINDOW_COLOUR_2}Bloc de frein fermé
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}Lajout est cassé
STR_6319 :Bloc de frein fermé
STR_6320 :Indestructible
STR_6321 :Lajout est cassé
STR_6322 :{WINDOW_COLOUR_2}Identifiant image-objet : {BLACK}{INT32}
STR_6323 :Simulation
STR_6324 :Simuler
@ -3571,7 +3573,7 @@ STR_6363 :Texte copié dans le presse-papier
STR_6364 :{RED}{COMMA16} personne sont décédées dans un accident sur {STRINGID}
STR_6365 :Victimes de lattraction
STR_6366 :Véhicules coincés ou au point mort
STR_6367 :{WINDOW_COLOUR_2}Image de lanimation :
STR_6367 :Image de lanimation :
STR_6368 :Pour des raisons de compatibilité, il nest pas recommandé dexécuter OpenRCT2 avec Wine. OpenRCT2 supporte nativement macOS, Linux, FreeBSD et OpenBSD.
STR_6369 :Autoriser la construction de voies {NEWLINE}à des hauteurs invalides
STR_6370 :Autorise le placement de morceaux de voie à nimporte quelle hauteur
@ -3663,6 +3665,8 @@ STR_6455 :Impossible de renommer le panneau…
STR_6456 :Capture décran géante
STR_6457 :Signaler un bug sur GitHub
STR_6458 :Suivre sur la vue principale
STR_6460 :O
STR_6461 :Orientation
#############
# Scenarios #

View File

@ -3129,56 +3129,56 @@ STR_5930 :Nagy díszlet részletei
STR_5931 :Hirdetőtábla részletei
STR_5932 :Sérült elem részletei
STR_5933 :Tulajdonságok
STR_5934 :{WINDOW_COLOUR_2}Terep textúrája: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terep széle: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Földtulajdon: {BLACK}{STRINGID}
STR_5934 :Terep textúrája: {BLACK}{STRINGID}
STR_5935 :Terep széle: {BLACK}{STRINGID}
STR_5936 :Földtulajdon: {BLACK}{STRINGID}
STR_5937 :Nincs tulajdonban és nem eladó
STR_5938 :{WINDOW_COLOUR_2}Vízszint: {BLACK}{COMMA16}
STR_5938 :Vízszint: {BLACK}{COMMA16}
STR_5939 :Park kerítésének eltávolítása
STR_5940 :Park kerítésének visszaállítása
STR_5941 :{WINDOW_COLOUR_2}Alapmagasság:
STR_5942 :{WINDOW_COLOUR_2}Út neve: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Extrák: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Extrák: {BLACK}Semmi
STR_5945 :{WINDOW_COLOUR_2}Összekapcsolt szélek:
STR_5946 :{WINDOW_COLOUR_2}Játék típusa: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Játék ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Játék neve: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Láncos felvonó
STR_5950 :{WINDOW_COLOUR_2}Változtatások alkalmazása a teljes pályaelemre
STR_5951 :{WINDOW_COLOUR_2}Pályaelem ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sorszám: {BLACK}{COMMA16}
STR_5941 :Alapmagasság:
STR_5942 :Út neve: {BLACK}{STRINGID}
STR_5943 :Extrák: {BLACK}{STRINGID}
STR_5944 :Extrák: {BLACK}Semmi
STR_5945 :Összekapcsolt szélek:
STR_5946 :Játék típusa: {BLACK}{STRINGID}
STR_5947 :Játék ID: {BLACK}{COMMA16}
STR_5948 :Játék neve: {BLACK}{STRINGID}
STR_5949 :Láncos felvonó
STR_5950 :Változtatások alkalmazása a teljes pályaelemre
STR_5951 :Pályaelem ID: {BLACK}{COMMA16}
STR_5952 :Sorszám: {BLACK}{COMMA16}
STR_5953 :A jelenlegi mező térképelemeinek alapmagasság szerinti rendezése.
STR_5954 :{WINDOW_COLOUR_2}Díszlet kora: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Kvadráns helyzet: {BLACK}{STRINGID}
STR_5954 :Díszlet kora: {BLACK}{COMMA16}
STR_5955 :Kvadráns helyzet: {BLACK}{STRINGID}
STR_5956 :Délnyugat
STR_5957 :Északnyugat
STR_5958 :Északkelet
STR_5959 :Délkelet
STR_5960 :{WINDOW_COLOUR_2}Kvadráns helyzet:
STR_5961 :{WINDOW_COLOUR_2}Belépési index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Ütközésérzékelés:
STR_5963 :{WINDOW_COLOUR_2}Megemelt sarkok:
STR_5964 :{WINDOW_COLOUR_2}Átlós
STR_5965 :{WINDOW_COLOUR_2}Bejárat típusa: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parkbejárat része: {BLACK}{STRINGID}
STR_5960 :Kvadráns helyzet:
STR_5961 :Belépési index: {BLACK}{COMMA16}
STR_5962 :Ütközésérzékelés:
STR_5963 :Megemelt sarkok:
STR_5964 :Átlós
STR_5965 :Bejárat típusa: {BLACK}{STRINGID}
STR_5966 :Parkbejárat része: {BLACK}{STRINGID}
STR_5967 :Középső
STR_5968 :Bal
STR_5969 :Jobb
STR_5970 :{WINDOW_COLOUR_2}Bejárat ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Kijárat ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Játék ID: {BLACK}{COMMA16}
STR_5970 :Bejárat ID: {BLACK}{COMMA16}
STR_5971 :Kijárat ID: {BLACK}{COMMA16}
STR_5972 :Játék ID: {BLACK}{COMMA16}
STR_5973 :Következőhöz erősítés
STR_5974 :Megváltoztatja az alap- és az űrszelvénymagasságot, hogy megegyezzen a jelenlegi mező következő elemével. Ez megkönnyíti az építkezést ezen a mezőn
STR_5975 :Elhajlás:
STR_5976 :Egyenes
STR_5977 :Jobbról felfelé
STR_5978 :Balról felfelé
STR_5979 :{WINDOW_COLOUR_2}Fal típusa: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Hirdetőtábla szövege: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Nem hirdetőtábla
STR_5982 :{WINDOW_COLOUR_2}Nagy díszlet típusa: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Nagy díszletelem ID: {BLACK}{COMMA16}
STR_5979 :Fal típusa: {BLACK}{COMMA16}
STR_5980 :Hirdetőtábla szövege: {BLACK}{STRINGID}
STR_5981 :Nem hirdetőtábla
STR_5982 :Nagy díszlet típusa: {BLACK}{COMMA16}
STR_5983 :Nagy díszletelem ID: {BLACK}{COMMA16}
STR_5984 :Blokkolt utak:
STR_5985 :Új mappa
STR_5986 :Írd be az új mappa nevét.
@ -3445,7 +3445,7 @@ STR_6273 :Zene
STR_6274 :Nem állítható be színséma…
STR_6275 :{WINDOW_COLOUR_2}Állomás stílusa:
STR_6276 :A vendégek beragadnak itt: {RED}{STRINGID}. Lehet, hogy érvénytelen játéktípus vagy működési mód okozza.
STR_6277 :{WINDOW_COLOUR_2}Állomás index: {BLACK}{STRINGID}
STR_6277 :Állomás index: {BLACK}{STRINGID}
STR_6278 :Automentések száma
STR_6279 :A megőrzendő automentések száma
STR_6280 :Chat
@ -3478,9 +3478,9 @@ STR_6315 :{WINDOW_COLOUR_2}Útkeresési cél: {BLACK}{INT32}, {INT32}, {INT32
STR_6316 :{WINDOW_COLOUR_2}Útkeresési előzmények:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} irány {INT32}
STR_6318 :Hálózati szinkronizációs hiba észlelve.{NEWLINE}Naplófájl: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blokkolófék zárva
STR_6320 :{WINDOW_COLOUR_2}Elpusztíthatatlan
STR_6321 :{WINDOW_COLOUR_2}Törött hozzáadott elem
STR_6319 :Blokkolófék zárva
STR_6320 :Elpusztíthatatlan
STR_6321 :Törött hozzáadott elem
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Szimuláció folyamatban
STR_6324 :Szimulálás
@ -3526,7 +3526,7 @@ STR_6363 :A szöveg a vágólapra másolva
STR_6364 :{RED}{STRINGID} balesete közben {COMMA16} ember meghalt
STR_6365 :Játékok áldozatai
STR_6366 :Beragadt vagy elakadt járművek
STR_6367 :{WINDOW_COLOUR_2}Animációs képkocka:
STR_6367 :Animációs képkocka:
STR_6368 :Kompatibilitási okok miatt nem javasolt az OpenRCT2 Wine-al történő futtatása. Az OpenRCT2 natív macOS, Linux, FreeBSD és OpenBSD támogatással rendelkezik.
STR_6369 :Pályaépítés érvénytelen magasságokban
STR_6370 :Lehetővé teszi, hogy bármely köztes magasságban lehessen pályarészeket elhelyezni

View File

@ -3168,57 +3168,57 @@ STR_5930 :Dettagli scenario grande
STR_5931 :Dettagli cartelli
STR_5932 :Dettagli elemento corrotto
STR_5933 :Proprietà
STR_5934 :{WINDOW_COLOUR_2}Texture terreno: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Bordo terreno: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Proprietà terreno: {BLACK}{STRINGID}
STR_5934 :Texture terreno: {BLACK}{STRINGID}
STR_5935 :Bordo terreno: {BLACK}{STRINGID}
STR_5936 :Proprietà terreno: {BLACK}{STRINGID}
STR_5937 :Non posseduto e non in vendita
STR_5938 :{WINDOW_COLOUR_2}Livello acqua: {BLACK}{COMMA16}
STR_5938 :Livello acqua: {BLACK}{COMMA16}
STR_5939 :Rimuovi recinzione parco
STR_5940 :Ripristina recinzione parco
STR_5941 :{WINDOW_COLOUR_2}Altezza della base:
STR_5942 :{WINDOW_COLOUR_2}Nome sentiero: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Aggiunte: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Aggiunte: {BLACK}Nessuna
STR_5945 :{WINDOW_COLOUR_2}Spigoli connessi:
STR_5946 :{WINDOW_COLOUR_2}Tipo percorso: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID percorso: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nome attrazione: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Catena di traino
STR_5950 :{WINDOW_COLOUR_2}Applica cambiamenti a tutto il pezzo di percorso
STR_5951 :{WINDOW_COLOUR_2}ID pezzo di percorso: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Numero sequenza: {BLACK}{COMMA16}
STR_5941 :Altezza della base:
STR_5942 :Nome sentiero: {BLACK}{STRINGID}
STR_5943 :Aggiunte: {BLACK}{STRINGID}
STR_5944 :Aggiunte: {BLACK}Nessuna
STR_5945 :Spigoli connessi:
STR_5946 :Tipo percorso: {BLACK}{STRINGID}
STR_5947 :ID percorso: {BLACK}{COMMA16}
STR_5948 :Nome attrazione: {BLACK}{STRINGID}
STR_5949 :Catena di traino
STR_5950 :Applica cambiamenti a tutto il pezzo di percorso
STR_5951 :ID pezzo di percorso: {BLACK}{COMMA16}
STR_5952 :Numero sequenza: {BLACK}{COMMA16}
STR_5953 :Ordina gli elementi della mappa nell'attuale cella in ordine di altezza della loro base.
STR_5954 :{WINDOW_COLOUR_2}Età scenario: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Posizione quadrante: {BLACK}{STRINGID}
STR_5954 :Età scenario: {BLACK}{COMMA16}
STR_5955 :Posizione quadrante: {BLACK}{STRINGID}
STR_5956 :Sud-ovest
STR_5957 :Nord-ovest
STR_5958 :Nord-est
STR_5959 :Sud-est
STR_5960 :{WINDOW_COLOUR_2}Posizione quadrante:
STR_5960 :Posizione quadrante:
# TODO da rivedere la seguente stringa
STR_5961 :{WINDOW_COLOUR_2}Indice elemento: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Rilevamento collisioni:
STR_5963 :{WINDOW_COLOUR_2}Angoli rialzati:
STR_5964 :{WINDOW_COLOUR_2}Diagonale
STR_5965 :{WINDOW_COLOUR_2}Tipo entrata: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parte ingresso del parco: {BLACK}{STRINGID}
STR_5961 :Indice elemento: {BLACK}{COMMA16}
STR_5962 :Rilevamento collisioni:
STR_5963 :Angoli rialzati:
STR_5964 :Diagonale
STR_5965 :Tipo entrata: {BLACK}{STRINGID}
STR_5966 :Parte ingresso del parco: {BLACK}{STRINGID}
STR_5967 :Centro
STR_5968 :Sinistra
STR_5969 :Destra
STR_5970 :{WINDOW_COLOUR_2}ID ingresso: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID uscita: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID percorso: {BLACK}{COMMA16}
STR_5970 :ID ingresso: {BLACK}{COMMA16}
STR_5971 :ID uscita: {BLACK}{COMMA16}
STR_5972 :ID percorso: {BLACK}{COMMA16}
STR_5973 :Attacca al successivo
STR_5974 :Cambia l'altezza di base e dei margini affinché sia la stessa del successivo elemento sull'attuale cella. Ciò permette di costruire più facilmente su questa cella.
STR_5975 :Inclinazione:
STR_5976 :Piatto
STR_5977 :Lato destro su
STR_5978 :Lato sinistro su
STR_5979 :{WINDOW_COLOUR_2}Tipo recinzione: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Testo cartello: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Non è un cartello
STR_5982 :{WINDOW_COLOUR_2}Tipo scenario grande: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID pezzo di scenario grande: {BLACK}{COMMA16}
STR_5979 :Tipo recinzione: {BLACK}{COMMA16}
STR_5980 :Testo cartello: {BLACK}{STRINGID}
STR_5981 :Non è un cartello
STR_5982 :Tipo scenario grande: {BLACK}{COMMA16}
STR_5983 :ID pezzo di scenario grande: {BLACK}{COMMA16}
STR_5984 :Sentieri bloccati:
STR_5985 :Nuova cartella
STR_5986 :Inserire il nome della nuova cartella.
@ -3491,7 +3491,7 @@ STR_6273 :Musica
STR_6274 :Impossibile impostare schema colore…
STR_6275 :{WINDOW_COLOUR_2}Stile stazione:
STR_6276 :{RED}{STRINGID} ha ospiti bloccati, probabilmente a causa di un errato tipo di attrazione o modalità operativa.
STR_6277 :{WINDOW_COLOUR_2}Indice stazione: {BLACK}{STRINGID}
STR_6277 :Indice stazione: {BLACK}{STRINGID}
STR_6278 :Numero autosalvataggi
STR_6279 :Numero di autosalvataggi da mantenere
STR_6280 :Chat
@ -3524,9 +3524,9 @@ STR_6315 :{WINDOW_COLOUR_2}Obiettivo Pathfind: {BLACK}{INT32}, {INT32}, {INT3
STR_6316 :{WINDOW_COLOUR_2}Storico Pathfind:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Network desync rilevato.{NEWLINE}File log: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blocco freno chiuso
STR_6320 :{WINDOW_COLOUR_2}Indistruttibile
STR_6321 :{WINDOW_COLOUR_2}L'aggiunta è rotta
STR_6319 :Blocco freno chiuso
STR_6320 :Indistruttibile
STR_6321 :L'aggiunta è rotta
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Simulazione
STR_6324 :Simula
@ -3572,7 +3572,7 @@ STR_6363 :Testo copiato negli appunti
STR_6365 :Vittime attrazioni
STR_6366 :Veicoli fermi o incastrati
STR_6364 :{RED}{COMMA16} persona rimasta uccisa in un incidente su {STRINGID}
STR_6367 :{WINDOW_COLOUR_2}Fotogramma animazione:
STR_6367 :Fotogramma animazione:
STR_6368 :Per motivi di compatibilità, non è consigliato eseguire OpenRCT2 tramite Wine. OpenRCT2 offre supporto nativo per macOS, Linux, FreeBSD and OpenBSD.
STR_6369 :Permetti costruzione percorsi ad altezze non valide
STR_6370 :Permette di collocare pezzi di percorso a qualsiasi intervallo di altezza

View File

@ -3158,56 +3158,56 @@ STR_5930 :大景色物ディテール
STR_5931 :バナー・ディテール
STR_5932 :破損要素ディテール
STR_5933 :Properties
STR_5934 :{WINDOW_COLOUR_2}Terrain texture: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrain edge: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Land ownership: {BLACK}{STRINGID}
STR_5934 :Terrain texture: {BLACK}{STRINGID}
STR_5935 :Terrain edge: {BLACK}{STRINGID}
STR_5936 :Land ownership: {BLACK}{STRINGID}
STR_5937 :Not owned and not for sale
STR_5938 :{WINDOW_COLOUR_2}Water level: {BLACK}{COMMA16}
STR_5938 :Water level: {BLACK}{COMMA16}
STR_5939 :Remove park fences
STR_5940 :Restore park fences
STR_5941 :{WINDOW_COLOUR_2}Base height:
STR_5942 :{WINDOW_COLOUR_2}Path name: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Additions: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Additions: {BLACK}None
STR_5945 :{WINDOW_COLOUR_2}Connected edges:
STR_5946 :{WINDOW_COLOUR_2}Ride type: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Ride name: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Chain lift
STR_5950 :{WINDOW_COLOUR_2}Apply changes to entire track piece
STR_5951 :{WINDOW_COLOUR_2}Track piece ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sequence number: {BLACK}{COMMA16}
STR_5941 :Base height:
STR_5942 :Path name: {BLACK}{STRINGID}
STR_5943 :Additions: {BLACK}{STRINGID}
STR_5944 :Additions: {BLACK}None
STR_5945 :Connected edges:
STR_5946 :Ride type: {BLACK}{STRINGID}
STR_5947 :Ride ID: {BLACK}{COMMA16}
STR_5948 :Ride name: {BLACK}{STRINGID}
STR_5949 :Chain lift
STR_5950 :Apply changes to entire track piece
STR_5951 :Track piece ID: {BLACK}{COMMA16}
STR_5952 :Sequence number: {BLACK}{COMMA16}
STR_5953 :Sort the map elements on the current tile based on their base height.
STR_5954 :{WINDOW_COLOUR_2}Scenery age: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Quadrant placement: {BLACK}{STRINGID}
STR_5954 :Scenery age: {BLACK}{COMMA16}
STR_5955 :Quadrant placement: {BLACK}{STRINGID}
STR_5956 :南西
STR_5957 :北西
STR_5958 :北東
STR_5959 :南東
STR_5960 :{WINDOW_COLOUR_2}Quadrant placement:
STR_5961 :{WINDOW_COLOUR_2}Entry index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Collision detection:
STR_5963 :{WINDOW_COLOUR_2}Raised Corners:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Entrance type: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park entrance part: {BLACK}{STRINGID}
STR_5960 :Quadrant placement:
STR_5961 :Entry index: {BLACK}{COMMA16}
STR_5962 :Collision detection:
STR_5963 :Raised Corners:
STR_5964 :Diagonal
STR_5965 :Entrance type: {BLACK}{STRINGID}
STR_5966 :Park entrance part: {BLACK}{STRINGID}
STR_5967 :中
STR_5968 :左
STR_5969 :右
STR_5970 :{WINDOW_COLOUR_2}入口のID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}出口のID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ライドのID: {BLACK}{COMMA16}
STR_5970 :入口のID: {BLACK}{COMMA16}
STR_5971 :出口のID: {BLACK}{COMMA16}
STR_5972 :ライドのID: {BLACK}{COMMA16}
STR_5973 :Clamp to next
STR_5974 :Changes the base- and clearance height so that it's at the same as the next element on the current tile. Doing this makes it easier to build on this tile.
STR_5975 :Slope:
STR_5976 :Flat
STR_5977 :Right side up
STR_5978 :Left side up
STR_5979 :{WINDOW_COLOUR_2}Wall type: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banner text: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Not a banner
STR_5982 :{WINDOW_COLOUR_2}Large scenery type: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Large scenery piece ID: {BLACK}{COMMA16}
STR_5979 :Wall type: {BLACK}{COMMA16}
STR_5980 :Banner text: {BLACK}{STRINGID}
STR_5981 :Not a banner
STR_5982 :Large scenery type: {BLACK}{COMMA16}
STR_5983 :Large scenery piece ID: {BLACK}{COMMA16}
STR_5984 :Blocked paths:
STR_5985 :新しいフォルダ
STR_5986 :新しいフォルダの名を入力して下さい。
@ -3479,7 +3479,7 @@ STR_6273 :音楽
STR_6274 :配色の設定できません…
STR_6275 :{WINDOW_COLOUR_2}乗り場スタイル:
STR_6276 :{RED}{STRINGID}には来客が行き詰まっています。無効な配車タイプまたは操作モードが原因である可能性があります。
STR_6277 :{WINDOW_COLOUR_2}乗り場インデックス: {BLACK}{STRINGID}
STR_6277 :乗り場インデックス: {BLACK}{STRINGID}
STR_6278 :自動保存量
STR_6279 :保たれるべきで自動保存の数
STR_6280 :チャット
@ -3512,9 +3512,9 @@ STR_6315 :{WINDOW_COLOUR_2}経路探索の目標: {BLACK}{INT32}, {INT32}, {I
STR_6316 :{WINDOW_COLOUR_2}経路探索の歴史:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} 方 {INT32}
STR_6318 :Network desync detected.{NEWLINE}Log file: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Block Brake Closed
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}Addition is broken
STR_6319 :Block Brake Closed
STR_6320 :Indestructible
STR_6321 :Addition is broken
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :シミュレーション中
STR_6324 :シミュレーション

View File

@ -3165,56 +3165,56 @@ STR_5930 :대형 풍경 상세정보
STR_5931 :팻말 상세정보
STR_5932 :손상된 요소 상세정보
STR_5933 :속성
STR_5934 :{WINDOW_COLOUR_2}지형 표면: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}지형 절벽: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}땅 소유 정보: {BLACK}{STRINGID}
STR_5934 :지형 표면: {BLACK}{STRINGID}
STR_5935 :지형 절벽: {BLACK}{STRINGID}
STR_5936 :땅 소유 정보: {BLACK}{STRINGID}
STR_5937 :소유주 없음, 판매 중이지 않음
STR_5938 :{WINDOW_COLOUR_2}수면 고도: {BLACK}{COMMA16}
STR_5938 :수면 고도: {BLACK}{COMMA16}
STR_5939 :공원 울타리 제거
STR_5940 :공원 울타리 복구
STR_5941 :{WINDOW_COLOUR_2}기본 높이:
STR_5942 :{WINDOW_COLOUR_2}보도 이름: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}기물: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}기물: {BLACK}없음
STR_5945 :{WINDOW_COLOUR_2}연결된 면:
STR_5946 :{WINDOW_COLOUR_2}놀이기구 종류: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}놀이기구 ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}놀이기구 이름: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}체인 리프트
STR_5950 :{WINDOW_COLOUR_2}전체 트랙 조각에 변경사항 적용
STR_5951 :{WINDOW_COLOUR_2}트랙 조각 ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}시퀀스 번호: {BLACK}{COMMA16}
STR_5941 :기본 높이:
STR_5942 :보도 이름: {BLACK}{STRINGID}
STR_5943 :기물: {BLACK}{STRINGID}
STR_5944 :기물: {BLACK}없음
STR_5945 :연결된 면:
STR_5946 :놀이기구 종류: {BLACK}{STRINGID}
STR_5947 :놀이기구 ID: {BLACK}{COMMA16}
STR_5948 :놀이기구 이름: {BLACK}{STRINGID}
STR_5949 :체인 리프트
STR_5950 :전체 트랙 조각에 변경사항 적용
STR_5951 :트랙 조각 ID: {BLACK}{COMMA16}
STR_5952 :시퀀스 번호: {BLACK}{COMMA16}
STR_5953 :현재 칸 위의 맵 요소를 기본 높이 순으로 정렬합니다.
STR_5954 :{WINDOW_COLOUR_2}풍경 나이: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}1/4칸 위치: {BLACK}{STRINGID}
STR_5954 :풍경 나이: {BLACK}{COMMA16}
STR_5955 :1/4칸 위치: {BLACK}{STRINGID}
STR_5956 :남서
STR_5957 :북서
STR_5958 :북동
STR_5959 :남동
STR_5960 :{WINDOW_COLOUR_2}1/4칸 위치:
STR_5961 :{WINDOW_COLOUR_2}엔트리 인덱스: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}겹침 탐지:
STR_5963 :{WINDOW_COLOUR_2}올라간 구석:
STR_5964 :{WINDOW_COLOUR_2}대각선
STR_5965 :{WINDOW_COLOUR_2}입구 종류: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}공원 입구 조각: {BLACK}{STRINGID}
STR_5960 :1/4칸 위치:
STR_5961 :엔트리 인덱스: {BLACK}{COMMA16}
STR_5962 :겹침 탐지:
STR_5963 :올라간 구석:
STR_5964 :대각선
STR_5965 :입구 종류: {BLACK}{STRINGID}
STR_5966 :공원 입구 조각: {BLACK}{STRINGID}
STR_5967 :중간
STR_5968 :왼쪽
STR_5969 :오른쪽
STR_5970 :{WINDOW_COLOUR_2}입구 ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}출구 ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}놀이기구 ID: {BLACK}{COMMA16}
STR_5970 :입구 ID: {BLACK}{COMMA16}
STR_5971 :출구 ID: {BLACK}{COMMA16}
STR_5972 :놀이기구 ID: {BLACK}{COMMA16}
STR_5973 :다음 요소로
STR_5974 :기본 높이와 객체 높이를 변경하여 현재 칸 위에 있는 다음 요소와 같은 높이로 만듭니다. 이 작업은 이 칸에서의 건설 행위를 더욱 쉽게 만들어줍니다.
STR_5975 :경사:
STR_5976 :평평함
STR_5977 :우측이 올라감
STR_5978 :좌측이 올라감
STR_5979 :{WINDOW_COLOUR_2}울타리 종류: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}팻말 문구: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}팻말이 아님
STR_5982 :{WINDOW_COLOUR_2}대형 풍경 종류: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}대형 풍경 조각 ID: {BLACK}{COMMA16}
STR_5979 :울타리 종류: {BLACK}{COMMA16}
STR_5980 :팻말 문구: {BLACK}{STRINGID}
STR_5981 :팻말이 아님
STR_5982 :대형 풍경 종류: {BLACK}{COMMA16}
STR_5983 :대형 풍경 조각 ID: {BLACK}{COMMA16}
STR_5984 :막힌 보도:
STR_5985 :새 폴더
STR_5986 :새 폴더의 이름을 입력하세요.
@ -3486,7 +3486,7 @@ STR_6273 :음악
STR_6274 :색상을 지정할 수 없습니다…
STR_6275 :{WINDOW_COLOUR_2}정거장 스타일:
STR_6276 :{RED}{STRINGID}의 손님이 올바르지 않은 놀이기구 종류나 운행 모드로 인해 끼었습니다.
STR_6277 :{WINDOW_COLOUR_2}정거장 번호: {BLACK}{STRINGID}
STR_6277 :정거장 번호: {BLACK}{STRINGID}
STR_6278 :자동 저장 개수
STR_6279 :보관되는 자동 저장 파일의 개수입니다.
STR_6280 :채팅
@ -3519,9 +3519,9 @@ STR_6315 :{WINDOW_COLOUR_2}경로탐색 목표: {BLACK}{INT32}, {INT32}, {INT
STR_6316 :{WINDOW_COLOUR_2}경로탐색 기록:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} 방향 {INT32}
STR_6318 :네트워크 비동기화가 감지되었습니다.{NEWLINE}로그 파일: {STRING}
STR_6319 :{WINDOW_COLOUR_2}블록 브레이크 닫기
STR_6320 :{WINDOW_COLOUR_2}파괴 불가
STR_6321 :{WINDOW_COLOUR_2}기물 부서짐
STR_6319 :블록 브레이크 닫기
STR_6320 :파괴 불가
STR_6321 :기물 부서짐
STR_6322 :{WINDOW_COLOUR_2}스프라이트 ID: {BLACK}{INT32}
STR_6323 :가상 운행 중
STR_6324 :가상 운행
@ -3567,7 +3567,7 @@ STR_6363 :텍스트를 클립보드에 복사하였습니다
STR_6364 :{RED}{COMMA16}명의 손님이 {STRINGID} 사고로 사망하였습니다!
STR_6365 :놀이기구 사상자
STR_6366 :끼거나 움직이지 않는 놀이기구
STR_6367 :{WINDOW_COLOUR_2}애니메이션 프레임:
STR_6367 :애니메이션 프레임:
STR_6368 :호환성의 이유로, OpenRCT2를 Wine에서 실행하는 것을 권장하지 않습니다. OpenRCT2는 macOS, Linux, FreeBSD, OpenBSD에서 실행하는 것을 기본적으로 지원합니다.
STR_6369 :올바르지 않은 높이에 트랙 짓기 허용
STR_6370 :어떤 높이에나 트랙 조각을 놓을 수 있게 됩니다
@ -3659,6 +3659,8 @@ STR_6455 :팻말 이름을 변경할 수 없습니다…
STR_6456 :초대형 스크린 샷
STR_6457 :GitHub에 버그 제보
STR_6458 :따라가기
STR_6460 :D
STR_6461 :방향
#############
# Scenarios #

View File

@ -3163,56 +3163,56 @@ STR_5930 :Stor pynt-detaljer
STR_5931 :Bannerdetaljer
STR_5932 :Korrupt element-detaljer
STR_5933 :Egenskaper
STR_5934 :{WINDOW_COLOUR_2}Terrengtekstur: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrengkant: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Landeierskap: {BLACK}{STRINGID}
STR_5934 :Terrengtekstur: {BLACK}{STRINGID}
STR_5935 :Terrengkant: {BLACK}{STRINGID}
STR_5936 :Landeierskap: {BLACK}{STRINGID}
STR_5937 :Ikke eid og ikke til salgs
STR_5938 :{WINDOW_COLOUR_2}Vannivå: {BLACK}{COMMA16}
STR_5938 :Vannivå: {BLACK}{COMMA16}
STR_5939 :Fjern parkgjerder
STR_5940 :Gjenopprett parkgjerder
STR_5941 :{WINDOW_COLOUR_2}Grunnhøyde:
STR_5942 :{WINDOW_COLOUR_2}Navn på gangsti: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Tillegg: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Tillegg: {BLACK}Ingen
STR_5945 :{WINDOW_COLOUR_2}Tilliggende kanter:
STR_5946 :{WINDOW_COLOUR_2}Attraksjonstype: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Attraksjons-ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Attraksonsnavn: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Trekk
STR_5950 :{WINDOW_COLOUR_2}Påfør endringer på banedel
STR_5951 :{WINDOW_COLOUR_2}Baneeleent-ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sekvensnummer: {BLACK}{COMMA16}
STR_5941 :Grunnhøyde:
STR_5942 :Navn på gangsti: {BLACK}{STRINGID}
STR_5943 :Tillegg: {BLACK}{STRINGID}
STR_5944 :Tillegg: {BLACK}Ingen
STR_5945 :Tilliggende kanter:
STR_5946 :Attraksjonstype: {BLACK}{STRINGID}
STR_5947 :Attraksjons-ID: {BLACK}{COMMA16}
STR_5948 :Attraksonsnavn: {BLACK}{STRINGID}
STR_5949 :Trekk
STR_5950 :Påfør endringer på banedel
STR_5951 :Baneeleent-ID: {BLACK}{COMMA16}
STR_5952 :Sekvensnummer: {BLACK}{COMMA16}
STR_5953 :Sorter elementer på denne ruten basert på grunnhøyde.
STR_5954 :{WINDOW_COLOUR_2}Pyntalder: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Kvadrantposisjon: {BLACK}{STRINGID}
STR_5954 :Pyntalder: {BLACK}{COMMA16}
STR_5955 :Kvadrantposisjon: {BLACK}{STRINGID}
STR_5956 :Sørvest
STR_5957 :Nordvest
STR_5958 :Nordøst
STR_5959 :Sørøst
STR_5960 :{WINDOW_COLOUR_2}Kvadrantposisjon:
STR_5961 :{WINDOW_COLOUR_2}Oppføringsindeks: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Kollisjonsdeteksjon:
STR_5963 :{WINDOW_COLOUR_2}Opphøyde hjørner:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Inngangstype: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parkinngangsdel: {BLACK}{STRINGID}
STR_5960 :Kvadrantposisjon:
STR_5961 :Oppføringsindeks: {BLACK}{COMMA16}
STR_5962 :Kollisjonsdeteksjon:
STR_5963 :Opphøyde hjørner:
STR_5964 :Diagonal
STR_5965 :Inngangstype: {BLACK}{STRINGID}
STR_5966 :Parkinngangsdel: {BLACK}{STRINGID}
STR_5967 :Midten
STR_5968 :Venstre
STR_5969 :Høyre
STR_5970 :{WINDOW_COLOUR_2}Inngangs-ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Utgangs-ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Attraksjons-ID: {BLACK}{COMMA16}
STR_5970 :Inngangs-ID: {BLACK}{COMMA16}
STR_5971 :Utgangs-ID: {BLACK}{COMMA16}
STR_5972 :Attraksjons-ID: {BLACK}{COMMA16}
STR_5973 :Fest til neste
STR_5974 :Endrer grunn- og klareringshøyden til å være lik neste element på denne ruten. Dette gjør det enklere å bygge på ruten.
STR_5975 :Helning:
STR_5976 :Vannrett
STR_5977 :Høyre side opp
STR_5978 :Venstre side opp
STR_5979 :{WINDOW_COLOUR_2}Gjerdetype: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Bannertekst: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Ikke et banner
STR_5982 :{WINDOW_COLOUR_2}Stor pynt-type: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Stor pynt-element-ID: {BLACK}{COMMA16}
STR_5979 :Gjerdetype: {BLACK}{COMMA16}
STR_5980 :Bannertekst: {BLACK}{STRINGID}
STR_5981 :Ikke et banner
STR_5982 :Stor pynt-type: {BLACK}{COMMA16}
STR_5983 :Stor pynt-element-ID: {BLACK}{COMMA16}
STR_5984 :Blokkerte gangstier:
STR_5985 :Ny mappe
STR_5986 :Skriv inn navnet på den nye mappen.
@ -3486,7 +3486,7 @@ STR_6273 :Musikk
STR_6274 :Kan ikke sette fargevalg…
STR_6275 :{WINDOW_COLOUR_2}Stasjon-stil:
STR_6276 :{RED}Gjester sitter fast i {STRINGID}, mulig grunnet ugyldig attraksjonstype eller operasjonsmodus.
STR_6277 :{WINDOW_COLOUR_2}Stasjonsindeks: {BLACK}{STRINGID}
STR_6277 :Stasjonsindeks: {BLACK}{STRINGID}
STR_6278 :Antall autolagringer
STR_6279 :Antall automatiske lagringer som blir beholdt
STR_6280 :Chat
@ -3520,9 +3520,9 @@ STR_6315 :{WINDOW_COLOUR_2}Stifinner: {BLACK}{INT32}, {INT32}, {INT32} retnin
STR_6316 :{WINDOW_COLOUR_2}Stifinnerhistorie:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} retning {INT32}
STR_6318 :Mistet synkronisering med server.{NEWLINE}Loggfil: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blokkbremser stengt
STR_6320 :{WINDOW_COLOUR_2}Kan ikke ødelegges
STR_6321 :{WINDOW_COLOUR_2}Gangstitillegg er ødelagt
STR_6319 :Blokkbremser stengt
STR_6320 :Kan ikke ødelegges
STR_6321 :Gangstitillegg er ødelagt
STR_6322 :{WINDOW_COLOUR_2}Sprite-ID: {BLACK}{INT32}
STR_6323 :Simulerer
STR_6324 :Simuler

View File

@ -3161,56 +3161,56 @@ STR_5930 :Details groot decor
STR_5931 :Details lichtkrant
STR_5932 :Details ongeldig element
STR_5933 :Eigenschappen
STR_5934 :{WINDOW_COLOUR_2}Terreinoppervlak: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Zijkant terrein: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Landeigendom: {BLACK}{STRINGID}
STR_5934 :Terreinoppervlak: {BLACK}{STRINGID}
STR_5935 :Zijkant terrein: {BLACK}{STRINGID}
STR_5936 :Landeigendom: {BLACK}{STRINGID}
STR_5937 :Niet in bezit en niet te koop
STR_5938 :{WINDOW_COLOUR_2}Waterniveau: {BLACK}{COMMA16}
STR_5938 :Waterniveau: {BLACK}{COMMA16}
STR_5939 :Parkafscheiding verwijderen
STR_5940 :Parkafscheiding herstellen
STR_5941 :{WINDOW_COLOUR_2}Hoogte onderkant:
STR_5942 :{WINDOW_COLOUR_2}Naam pad: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Extras: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Extras: {BLACK}Geen
STR_5945 :{WINDOW_COLOUR_2}Verbonden randen:
STR_5946 :{WINDOW_COLOUR_2}Attractietype: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Attractie-ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Attractienaam: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Ketting
STR_5950 :{WINDOW_COLOUR_2}Wijzigingen op hele baanonderdeel doorvoeren
STR_5951 :{WINDOW_COLOUR_2}Baanonderdeel-ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Volgnummer: {BLACK}{COMMA16}
STR_5941 :Hoogte onderkant:
STR_5942 :Naam pad: {BLACK}{STRINGID}
STR_5943 :Extras: {BLACK}{STRINGID}
STR_5944 :Extras: {BLACK}Geen
STR_5945 :Verbonden randen:
STR_5946 :Attractietype: {BLACK}{STRINGID}
STR_5947 :Attractie-ID: {BLACK}{COMMA16}
STR_5948 :Attractienaam: {BLACK}{STRINGID}
STR_5949 :Ketting
STR_5950 :Wijzigingen op hele baanonderdeel doorvoeren
STR_5951 :Baanonderdeel-ID: {BLACK}{COMMA16}
STR_5952 :Volgnummer: {BLACK}{COMMA16}
STR_5953 :Elementen op het huidige vakje sorteren op de hoogte van de onderkant.
STR_5954 :{WINDOW_COLOUR_2}Decorleeftijd: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Gekozen hoek: {BLACK}{STRINGID}
STR_5954 :Decorleeftijd: {BLACK}{COMMA16}
STR_5955 :Gekozen hoek: {BLACK}{STRINGID}
STR_5956 :Zuidwest
STR_5957 :Noordwest
STR_5958 :Noordoost
STR_5959 :Zuidoost
STR_5960 :{WINDOW_COLOUR_2}Gekozen hoek:
STR_5961 :{WINDOW_COLOUR_2}Volgnummer: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Botsingsdetectie:
STR_5963 :{WINDOW_COLOUR_2}Verhoogde hoeken:
STR_5964 :{WINDOW_COLOUR_2}Diagonaal
STR_5965 :{WINDOW_COLOUR_2}Ingangsype: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Gedeelte parkingang: {BLACK}{STRINGID}
STR_5960 :Gekozen hoek:
STR_5961 :Volgnummer: {BLACK}{COMMA16}
STR_5962 :Botsingsdetectie:
STR_5963 :Verhoogde hoeken:
STR_5964 :Diagonaal
STR_5965 :Ingangsype: {BLACK}{STRINGID}
STR_5966 :Gedeelte parkingang: {BLACK}{STRINGID}
STR_5967 :Midden
STR_5968 :Links
STR_5969 :Rechts
STR_5970 :{WINDOW_COLOUR_2}Ingang-ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Uitgang-ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Attractie-ID: {BLACK}{COMMA16}
STR_5970 :Ingang-ID: {BLACK}{COMMA16}
STR_5971 :Uitgang-ID: {BLACK}{COMMA16}
STR_5972 :Attractie-ID: {BLACK}{COMMA16}
STR_5973 :Tegen volgend element plaatsen
STR_5974 :Wijzigt de hoogte van de onderkant en bovenkant zodat die aansluit op het volgende element op dit vakje. Dit maakt het makkelijker om op dit vakje te bouwen.
STR_5975 :Helling:
STR_5976 :Vlak
STR_5977 :Rechterkant omhoog
STR_5978 :Linkerkant omhoog
STR_5979 :{WINDOW_COLOUR_2}Muurtype: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Tekst op lichtkrant: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Geen lichtkrant
STR_5982 :{WINDOW_COLOUR_2}Type groot decor: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID groot decorstuk: {BLACK}{COMMA16}
STR_5979 :Muurtype: {BLACK}{COMMA16}
STR_5980 :Tekst op lichtkrant: {BLACK}{STRINGID}
STR_5981 :Geen lichtkrant
STR_5982 :Type groot decor: {BLACK}{COMMA16}
STR_5983 :ID groot decorstuk: {BLACK}{COMMA16}
STR_5984 :Geblokkeerde paden:
STR_5985 :Nieuwe map
STR_5986 :Naam voor de nieuwe map:
@ -3482,7 +3482,7 @@ STR_6273 :Muziek
STR_6274 :Kan kleurenschema niet instellen…
STR_6275 :{WINDOW_COLOUR_2}Stationsstijl:
STR_6276 :{RED}Bezoekers komen vast te zitten in {STRINGID}, mogelijk door een ongeldig attractietype of ongeldige bedrijfsmodus.
STR_6277 :{WINDOW_COLOUR_2}Stationsindex: {BLACK}{STRINGID}
STR_6277 :Stationsindex: {BLACK}{STRINGID}
STR_6278 :Aantal autosaves
STR_6279 :Het aantal autosaves dat moet worden bewaard.
STR_6280 :Chat
@ -3515,9 +3515,9 @@ STR_6315 :{WINDOW_COLOUR_2}Pathfind-doel: {BLACK}{INT32}, {INT32}, {INT32} ri
STR_6316 :{WINDOW_COLOUR_2}Pathfind-geschiedenis:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} richting {INT32}
STR_6318 :Netwerkdesynchronisatie gedetecteerd.{NEWLINE}Logbestand: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blokrem is gesloten
STR_6320 :{WINDOW_COLOUR_2}Mag niet worden verwijderd
STR_6321 :{WINDOW_COLOUR_2}Straatmeubel is kapot
STR_6319 :Blokrem is gesloten
STR_6320 :Mag niet worden verwijderd
STR_6321 :Straatmeubel is kapot
STR_6322 :{WINDOW_COLOUR_2}Sprite-id: {BLACK}{INT32}
STR_6323 :Simulatie
STR_6324 :Simuleren
@ -3563,7 +3563,7 @@ STR_6363 :Tekst is naar het klembord gekopieerd.
STR_6364 :{RED}{COMMA16} persoon is om het leven gekomen bij een ongeluk in {STRINGID}
STR_6365 :Slachtoffers bij ongelukken in attracties
STR_6366 :Vastgelopen of afgeslagen voertuigen
STR_6367 :{WINDOW_COLOUR_2}Animatieframe:
STR_6367 :Animatieframe:
STR_6368 :Om compatibiliteitsredenen wordt het afgeraden om OpenRCT2 te draaien via Wine. OpenRCT2 heeft eigen versies voor macOS, Linux, FreeBSD en OpenBSD.
STR_6369 :Sta bouwen van attracties op ongeldige hoogtes toe
STR_6370 :Maakt het mogelijk om attracties te bouwen op “tussenhoogtes”.
@ -3655,6 +3655,8 @@ STR_6455 :Kan de tekst van dit bord niet veranderen…
STR_6456 :Reuzenscreenshot
STR_6457 :Bug rapporteren op GitHub
STR_6458 :Volgen in het hoofdvenster
STR_6460 :R
STR_6461 :Richting
#############
# Scenarios #

View File

@ -3162,56 +3162,56 @@ STR_5930 :Szczegóły dużej scenerii
STR_5931 :Szczegóły banneru
STR_5932 :Szczegóły uszkodzonych elementów
STR_5933 :Właściwości
STR_5934 :{WINDOW_COLOUR_2}Tekstura terenu: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Krawędź terenu: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Własność terenu: {BLACK}{STRINGID}
STR_5934 :Tekstura terenu: {BLACK}{STRINGID}
STR_5935 :Krawędź terenu: {BLACK}{STRINGID}
STR_5936 :Własność terenu: {BLACK}{STRINGID}
STR_5937 :Nie zakupione i nie na sprzedaż
STR_5938 :{WINDOW_COLOUR_2}Poziom wody: {BLACK}{COMMA16}
STR_5938 :Poziom wody: {BLACK}{COMMA16}
STR_5939 :Usuń ogrodzenie parku
STR_5940 :Przywróć ogrodzenie parku
STR_5941 :{WINDOW_COLOUR_2}Bazowa wysokość:
STR_5942 :{WINDOW_COLOUR_2}Adres ścieżki: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Dodatki: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Dodatki: {BLACK}Brak
STR_5945 :{WINDOW_COLOUR_2}Połączone krawędzie:
STR_5946 :{WINDOW_COLOUR_2}Typ przejażdżki: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID przejażdżki: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nazwa przejażdżki: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Wyciągarka
STR_5950 :{WINDOW_COLOUR_2}Zastosuj zmiany dla całego elementu trasy
STR_5951 :{WINDOW_COLOUR_2}ID elementu trasy: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Numer sekwencji: {BLACK}{COMMA16}
STR_5941 :Bazowa wysokość:
STR_5942 :Adres ścieżki: {BLACK}{STRINGID}
STR_5943 :Dodatki: {BLACK}{STRINGID}
STR_5944 :Dodatki: {BLACK}Brak
STR_5945 :Połączone krawędzie:
STR_5946 :Typ przejażdżki: {BLACK}{STRINGID}
STR_5947 :ID przejażdżki: {BLACK}{COMMA16}
STR_5948 :Nazwa przejażdżki: {BLACK}{STRINGID}
STR_5949 :Wyciągarka
STR_5950 :Zastosuj zmiany dla całego elementu trasy
STR_5951 :ID elementu trasy: {BLACK}{COMMA16}
STR_5952 :Numer sekwencji: {BLACK}{COMMA16}
STR_5953 :Posortuj elementy mapy na podstawie ich wysokości.
STR_5954 :{WINDOW_COLOUR_2}Wiek scenografii: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Umiejscowienie ćwiartki: {BLACK}{STRINGID}
STR_5954 :Wiek scenografii: {BLACK}{COMMA16}
STR_5955 :Umiejscowienie ćwiartki: {BLACK}{STRINGID}
STR_5956 :Południowy-zachód
STR_5957 :Północny-zachód
STR_5958 :Północny-wschód
STR_5959 :Południowy-wschód
STR_5960 :{WINDOW_COLOUR_2}Umiejscowienie ćwiartki:
STR_5961 :{WINDOW_COLOUR_2}Indeks wejścia: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Wykrycie kolizji:
STR_5963 :{WINDOW_COLOUR_2}Raised Corners:
STR_5964 :{WINDOW_COLOUR_2}Przekątna
STR_5965 :{WINDOW_COLOUR_2}Typ wejścia: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Typ wejścia do parku: {BLACK}{STRINGID}
STR_5960 :Umiejscowienie ćwiartki:
STR_5961 :Indeks wejścia: {BLACK}{COMMA16}
STR_5962 :Wykrycie kolizji:
STR_5963 :Raised Corners:
STR_5964 :Przekątna
STR_5965 :Typ wejścia: {BLACK}{STRINGID}
STR_5966 :Typ wejścia do parku: {BLACK}{STRINGID}
STR_5967 :Pośrodku
STR_5968 :Lewo
STR_5969 :Prawo
STR_5970 :{WINDOW_COLOUR_2}ID Wejścia: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID wyjścia: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID Tras: {BLACK}{COMMA16}
STR_5970 :ID Wejścia: {BLACK}{COMMA16}
STR_5971 :ID wyjścia: {BLACK}{COMMA16}
STR_5972 :ID Tras: {BLACK}{COMMA16}
STR_5973 :Zaczep z następnym
STR_5974 :Zmienia wysokość podstawy i prześwitu tak, aby znajdowały się one na tym samym poziomie co następny element na bieżącej platformie. Ułatwia to budowę na tej samej platformie.
STR_5975 :Nachylenie:
STR_5976 :Płaszczyzna
STR_5977 :Prawą stroną do góry
STR_5978 :Lewą stroną do góry
STR_5979 :{WINDOW_COLOUR_2}Typ muru: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Tekst baneru: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}To nie jest baner
STR_5982 :{WINDOW_COLOUR_2}Rodzaj dużej scenerii: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID elementu dużej scenerii: {BLACK}{COMMA16}
STR_5979 :Typ muru: {BLACK}{COMMA16}
STR_5980 :Tekst baneru: {BLACK}{STRINGID}
STR_5981 :To nie jest baner
STR_5982 :Rodzaj dużej scenerii: {BLACK}{COMMA16}
STR_5983 :ID elementu dużej scenerii: {BLACK}{COMMA16}
STR_5984 :Zablokowane ścieżki:
STR_5985 :Nowy katalog
STR_5986 :Wprowadź nazwę nowego katalogu.
@ -3483,7 +3483,7 @@ STR_6273 :Muzyka
STR_6274 :Nie można ustawić schematu koloru…
STR_6275 :{WINDOW_COLOUR_2}Styl stacji:
STR_6276 :Na {RED}{STRINGID} utykają goście, prawdopodobnie z powodu nieprawidłowego typu atrakcji albo trybu operowania.
STR_6277 :{WINDOW_COLOUR_2}Numer stacji: {BLACK}{STRINGID}
STR_6277 :Numer stacji: {BLACK}{STRINGID}
STR_6278 :Liczba autozapisów
STR_6279 :Liczba autozapisów powinna zostać zachowana
STR_6280 :Czat
@ -3516,9 +3516,9 @@ STR_6315 :{WINDOW_COLOUR_2}Cel wykrywania ścieżki: {BLACK}{INT32}, {INT32},
STR_6316 :{WINDOW_COLOUR_2}Historia wykrywania ścieżki:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} folder {INT32}
STR_6318 :Desynchronizacja sieci.{NEWLINE}Plik z logami: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Hamulec blokowy zamknięty
STR_6320 :{WINDOW_COLOUR_2}Niezniszczalne
STR_6321 :{WINDOW_COLOUR_2}Dodatek jest uszkodzony
STR_6319 :Hamulec blokowy zamknięty
STR_6320 :Niezniszczalne
STR_6321 :Dodatek jest uszkodzony
STR_6322 :{WINDOW_COLOUR_2}Identyfikator sprite'a: {BLACK}{INT32}
STR_6323 :Symulowanie
STR_6324 :Symuluj
@ -3564,7 +3564,7 @@ STR_6363 :Tekst skopiowany do schowka
STR_6364 :{RED}{COMMA16} osoba zmarła w wypadku na {STRINGID}
STR_6365 :Ofiary atrakcji
STR_6366 :Zablokowane pojazdy
STR_6367 :{WINDOW_COLOUR_2}Klatka animacji:
STR_6367 :Klatka animacji:
STR_6368 :Z powodów kompatybilności nie zaleca się uruchamiania OpenRCT2 na Wine. OpenRCT2 działa poprawnie na macOS, Linux, FreeBSD i OpenBSD.
STR_6369 :Zezwól na budowanie torów na dowolnych wysokościach
STR_6370 :Zezwala na ustawianie fragmentów torów na dowolnych interwałach wysokościowych

View File

@ -3162,56 +3162,56 @@ STR_5930 :Detalhes de cenário grande
STR_5931 :Detalhes de banner
STR_5932 :Detalhes de elemento corrompido
STR_5933 :Propriedades
STR_5934 :{WINDOW_COLOUR_2}Textura do terreno: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Borda do terreno: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Posse de terra: {BLACK}{STRINGID}
STR_5934 :Textura do terreno: {BLACK}{STRINGID}
STR_5935 :Borda do terreno: {BLACK}{STRINGID}
STR_5936 :Posse de terra: {BLACK}{STRINGID}
STR_5937 :Não comprado e não está à venda
STR_5938 :{WINDOW_COLOUR_2}Nível da água: {BLACK}{COMMA16}
STR_5938 :Nível da água: {BLACK}{COMMA16}
STR_5939 :Remover cercas do parque
STR_5940 :Restaurar cercas do parque
STR_5941 :{WINDOW_COLOUR_2}Altura da base:
STR_5942 :{WINDOW_COLOUR_2}Nome do caminho: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Adições: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Adições: {BLACK}Nenhuma
STR_5945 :{WINDOW_COLOUR_2}Bordas conectadas:
STR_5946 :{WINDOW_COLOUR_2}Tipo de atração: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID da atração: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Nome da atração: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Corrente de elevação
STR_5950 :{WINDOW_COLOUR_2}Aplicar mudanças para a pista toda
STR_5951 :{WINDOW_COLOUR_2}ID do pedaço de pista: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Número sequencial: {BLACK}{COMMA16}
STR_5941 :Altura da base:
STR_5942 :Nome do caminho: {BLACK}{STRINGID}
STR_5943 :Adições: {BLACK}{STRINGID}
STR_5944 :Adições: {BLACK}Nenhuma
STR_5945 :Bordas conectadas:
STR_5946 :Tipo de atração: {BLACK}{STRINGID}
STR_5947 :ID da atração: {BLACK}{COMMA16}
STR_5948 :Nome da atração: {BLACK}{STRINGID}
STR_5949 :Corrente de elevação
STR_5950 :Aplicar mudanças para a pista toda
STR_5951 :ID do pedaço de pista: {BLACK}{COMMA16}
STR_5952 :Número sequencial: {BLACK}{COMMA16}
STR_5953 :Sortear os elementos do mapa no azulejo atual baseado em sua altura base.
STR_5954 :{WINDOW_COLOUR_2}Idade do cenário: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Posicionamento em quadrante: {BLACK}{STRINGID}
STR_5954 :Idade do cenário: {BLACK}{COMMA16}
STR_5955 :Posicionamento em quadrante: {BLACK}{STRINGID}
STR_5956 :Sudoeste
STR_5957 :Noroeste
STR_5958 :Nordeste
STR_5959 :Sudeste
STR_5960 :{WINDOW_COLOUR_2}Posicionamento em quadrante:
STR_5961 :{WINDOW_COLOUR_2}Índice de entrada: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Detecção de colisão:
STR_5963 :{WINDOW_COLOUR_2}Cantos elevados:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Tipo de entrada: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parte de entrada do parque: {BLACK}{STRINGID}
STR_5960 :Posicionamento em quadrante:
STR_5961 :Índice de entrada: {BLACK}{COMMA16}
STR_5962 :Detecção de colisão:
STR_5963 :Cantos elevados:
STR_5964 :Diagonal
STR_5965 :Tipo de entrada: {BLACK}{STRINGID}
STR_5966 :Parte de entrada do parque: {BLACK}{STRINGID}
STR_5967 :Meio
STR_5968 :Esquerda
STR_5969 :Direita
STR_5970 :{WINDOW_COLOUR_2}ID da entrada: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}ID da saída: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}ID da atração: {BLACK}{COMMA16}
STR_5970 :ID da entrada: {BLACK}{COMMA16}
STR_5971 :ID da saída: {BLACK}{COMMA16}
STR_5972 :ID da atração: {BLACK}{COMMA16}
STR_5973 :Prender ao próximo
STR_5974 :Muda a base e a altura de segurança para que sejam as mesmas que o próximo elemento no azulejo atual. Fazendo isto fica mais fácil de construir neste azulejo.
STR_5975 :Inclinação:
STR_5976 :Reto
STR_5977 :Direita para cima
STR_5978 :Esquerda para cima
STR_5979 :{WINDOW_COLOUR_2}Tipo de cerca: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Texto do banner: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Não é um banner
STR_5982 :{WINDOW_COLOUR_2}Tipo de cenário grande: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}ID da peça de cenário grande: {BLACK}{COMMA16}
STR_5979 :Tipo de cerca: {BLACK}{COMMA16}
STR_5980 :Texto do banner: {BLACK}{STRINGID}
STR_5981 :Não é um banner
STR_5982 :Tipo de cenário grande: {BLACK}{COMMA16}
STR_5983 :ID da peça de cenário grande: {BLACK}{COMMA16}
STR_5984 :Caminhos bloqueados:
STR_5985 :Nova pasta
STR_5986 :Insira o nome da nova pasta.
@ -3483,7 +3483,7 @@ STR_6273 :Música
STR_6274 :Impossível definir esquema de cor…
STR_6275 :{WINDOW_COLOUR_2}Estilo da estação:
STR_6276 :{RED}{STRINGID} está deixando visitantes presos, possivelmente por um tipo de brinquedo ou modo de operação inválido.
STR_6277 :{WINDOW_COLOUR_2}Índice de estação: {BLACK}{STRINGID}
STR_6277 :Índice de estação: {BLACK}{STRINGID}
STR_6278 :Quantidade de Autosave
STR_6279 :Número de autosaves que devem ser guardados
STR_6280 :Bate-papo
@ -3516,9 +3516,9 @@ STR_6315 :{WINDOW_COLOUR_2}Objetivo de Desbravamento: {BLACK}{INT32}, {INT32}
STR_6316 :{WINDOW_COLOUR_2}Histórico de Desbravamento:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Assincronia de rede detectada.{NEWLINE}Arquivo de registro: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Freios Bloqueadores Fechados
STR_6320 :{WINDOW_COLOUR_2}Indestrutível
STR_6321 :{WINDOW_COLOUR_2}Adição quebrada
STR_6319 :Freios Bloqueadores Fechados
STR_6320 :Indestrutível
STR_6321 :Adição quebrada
STR_6322 :{WINDOW_COLOUR_2}Id da Sprite: {BLACK}{INT32}
STR_6323 :Simulando
STR_6324 :Simular
@ -3564,7 +3564,7 @@ STR_6363 :Texto copiado para a área de transferência
STR_6364 :{RED}{COMMA16} pessoa morreu em um acidente em {STRINGID}
STR_6365 :Acidentes em atrações
STR_6366 :Veículos presos ou parados
STR_6367 :{WINDOW_COLOUR_2}Quadro de animação:
STR_6367 :Quadro de animação:
STR_6368 :Por questão de compatibilidade, não é recomendado executar o OpenRCT2 com Wine. O OpenRCT2 tem suporte nativo a macOS, Linux, FreeBSD e OpenBSD.
STR_6369 :Permitir construção de trilhos em alturas inválidas
STR_6370 :Permite a construção de trilhos em qualquer intervalo de altura

View File

@ -3165,56 +3165,56 @@ STR_5930 :Information om stora dekorationer
STR_5931 :Banderollinformation
STR_5932 :Information om korrupt element
STR_5933 :Egenskaper
STR_5934 :{WINDOW_COLOUR_2}Terrängtextur: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrängkant: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Ägd mark: {BLACK}{STRINGID}
STR_5934 :Terrängtextur: {BLACK}{STRINGID}
STR_5935 :Terrängkant: {BLACK}{STRINGID}
STR_5936 :Ägd mark: {BLACK}{STRINGID}
STR_5937 :Inte ägd och inte till salu
STR_5938 :{WINDOW_COLOUR_2}Vattennivå: {BLACK}{COMMA16}
STR_5938 :Vattennivå: {BLACK}{COMMA16}
STR_5939 :Ta bort parkstängsel
STR_5940 :Återställ parkstängsel
STR_5941 :{WINDOW_COLOUR_2}Bashöjd:
STR_5942 :{WINDOW_COLOUR_2}Gångnamn: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Tillägg: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Tillägg: {BLACK}Ingen
STR_5945 :{WINDOW_COLOUR_2}Anslutna kanter:
STR_5946 :{WINDOW_COLOUR_2}Åktur typ: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Åktursidentifikation: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Åktursnamn: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Kedjelyft
STR_5950 :{WINDOW_COLOUR_2}Verkställ ändringar för hela spåret
STR_5951 :{WINDOW_COLOUR_2}Spårdels-ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sekvensnummer: {BLACK}{COMMA16}
STR_5941 :Bashöjd:
STR_5942 :Gångnamn: {BLACK}{STRINGID}
STR_5943 :Tillägg: {BLACK}{STRINGID}
STR_5944 :Tillägg: {BLACK}Ingen
STR_5945 :Anslutna kanter:
STR_5946 :Åktur typ: {BLACK}{STRINGID}
STR_5947 :Åktursidentifikation: {BLACK}{COMMA16}
STR_5948 :Åktursnamn: {BLACK}{STRINGID}
STR_5949 :Kedjelyft
STR_5950 :Verkställ ändringar för hela spåret
STR_5951 :Spårdels-ID: {BLACK}{COMMA16}
STR_5952 :Sekvensnummer: {BLACK}{COMMA16}
STR_5953 :Sortera element på den valda rutan baserat på deras höjd.
STR_5954 :{WINDOW_COLOUR_2}Dekorationens ålder: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Placering i väderstreck: {BLACK}{STRINGID}
STR_5954 :Dekorationens ålder: {BLACK}{COMMA16}
STR_5955 :Placering i väderstreck: {BLACK}{STRINGID}
STR_5956 :Sydväst
STR_5957 :Nordväst
STR_5958 :Nordost
STR_5959 :Sydost
STR_5960 :{WINDOW_COLOUR_2}Placering i väderstreck:
STR_5961 :{WINDOW_COLOUR_2}Entré-index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Kollisionsdetektering:
STR_5963 :{WINDOW_COLOUR_2}Upphöjda hörn:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Entrétyp: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Parkentré-del: {BLACK}{STRINGID}
STR_5960 :Placering i väderstreck:
STR_5961 :Entré-index: {BLACK}{COMMA16}
STR_5962 :Kollisionsdetektering:
STR_5963 :Upphöjda hörn:
STR_5964 :Diagonal
STR_5965 :Entrétyp: {BLACK}{STRINGID}
STR_5966 :Parkentré-del: {BLACK}{STRINGID}
STR_5967 :Mitten
STR_5968 :Vänster
STR_5969 :Höger
STR_5970 :{WINDOW_COLOUR_2}Entré-id: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Utgångs-id: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Åkturs-id: {BLACK}{COMMA16}
STR_5970 :Entré-id: {BLACK}{COMMA16}
STR_5971 :Utgångs-id: {BLACK}{COMMA16}
STR_5972 :Åkturs-id: {BLACK}{COMMA16}
STR_5973 :Fäst till nästa
STR_5974 :Ändra bas- och frihöjd så det är samma som nästa element på den valda rutan. Genom att göra detta blir det lättare bygga på denna ruta.
STR_5975 :Backe:
STR_5976 :Plan
STR_5977 :Höger sida upp
STR_5978 :Vänster sida upp
STR_5979 :{WINDOW_COLOUR_2}Stängsel typ: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banderoll text: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Inte en banderoll
STR_5982 :{WINDOW_COLOUR_2}Stor dekoration typ: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Stor dekorationsdels-id: {BLACK}{COMMA16}
STR_5979 :Stängsel typ: {BLACK}{COMMA16}
STR_5980 :Banderoll text: {BLACK}{STRINGID}
STR_5981 :Inte en banderoll
STR_5982 :Stor dekoration typ: {BLACK}{COMMA16}
STR_5983 :Stor dekorationsdels-id: {BLACK}{COMMA16}
STR_5984 :Blockerade gångar:
STR_5985 :Ny mapp
STR_5986 :Skriv in namnet på den nya mappen.
@ -3486,7 +3486,7 @@ STR_6273 :Musik
STR_6274 :Kan inte välja färgschema…
STR_6275 :{WINDOW_COLOUR_2}Stationsstil:
STR_6276 :{RED}{STRINGID} har besökare som sitter fast, troligen på grund av ogiltig typ av åktur eller felaktigt körläge.
STR_6277 :{WINDOW_COLOUR_2}Stationsindex: {BLACK}{STRINGID}
STR_6277 :Stationsindex: {BLACK}{STRINGID}
STR_6278 :Antal autosparningar
STR_6279 :Antal automatiska sparningar att behålla
STR_6280 :Chatt
@ -3519,9 +3519,9 @@ STR_6315 :{WINDOW_COLOUR_2}Sök efter mål: {BLACK}{INT32}, {INT32}, {INT32}
STR_6316 :{WINDOW_COLOUR_2}Sök efter historik:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} riktning {INT32}
STR_6318 :Synkroniseringsfel upptäckt över nätverket.{NEWLINE}Loggfil: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Blockera Bromsa Stängd
STR_6320 :{WINDOW_COLOUR_2}Oförstörbar
STR_6321 :{WINDOW_COLOUR_2}Addition fungerar inte
STR_6319 :Blockera Bromsa Stängd
STR_6320 :Oförstörbar
STR_6321 :Addition fungerar inte
STR_6322 :{WINDOW_COLOUR_2}Sprite-id: {BLACK}{INT32}
STR_6323 :Simulerar
STR_6324 :Simulera
@ -3567,7 +3567,7 @@ STR_6363 :Text kopierad till urklipp
STR_6364 :{RED}{COMMA16} person omkom i en olycka på {STRINGID}
STR_6365 :Omkomna
STR_6366 :Vagnar som fastnat eller stannat upp
STR_6367 :{WINDOW_COLOUR_2}Animationsruta:
STR_6367 :Animationsruta:
STR_6368 :Av kompatibilitetsskäl är det inte rekommenderat att köra OpenRCT2 med Wine. OpenRCT2 har direkt stöd för macOS, Linux, FreeBSD och OpenBSD.
STR_6369 :Tillåt spårbygge på ogiltiga höjder
STR_6370 :Tillåter bygge av spårdelar på alla höjdintervall

View File

@ -3157,56 +3157,56 @@ STR_5930 :Büyük dekorasyon bilgileri
STR_5931 :Banner bilgileri
STR_5932 :Arızalı madde bilgileri
STR_5933 :Özellikler
STR_5934 :{WINDOW_COLOUR_2}Zemin türü: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Duvar türü: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Arazi durumu: {BLACK}{STRINGID}
STR_5934 :Zemin türü: {BLACK}{STRINGID}
STR_5935 :Duvar türü: {BLACK}{STRINGID}
STR_5936 :Arazi durumu: {BLACK}{STRINGID}
STR_5937 :Hazine malı ve satılık değil
STR_5938 :{WINDOW_COLOUR_2}Su seviyesi: {BLACK}{COMMA16}
STR_5938 :Su seviyesi: {BLACK}{COMMA16}
STR_5939 :Park sınırını kaldır
STR_5940 :Park sınırını geri ekle
STR_5941 :{WINDOW_COLOUR_2}Yükseklik seviyesi:
STR_5942 :{WINDOW_COLOUR_2}Yol türü: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Eklenti: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Eklenti: {BLACK}Yok
STR_5945 :{WINDOW_COLOUR_2}Bağlantı noktaları:
STR_5946 :{WINDOW_COLOUR_2}Tür: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Isim: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Tırmanma zinciri
STR_5950 :{WINDOW_COLOUR_2}Değişiklikleri tüm raylara uygula
STR_5951 :{WINDOW_COLOUR_2}Parça ID'si: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Seviye sıralama numarası: {BLACK}{COMMA16}
STR_5941 :Yükseklik seviyesi:
STR_5942 :Yol türü: {BLACK}{STRINGID}
STR_5943 :Eklenti: {BLACK}{STRINGID}
STR_5944 :Eklenti: {BLACK}Yok
STR_5945 :Bağlantı noktaları:
STR_5946 :Tür: {BLACK}{STRINGID}
STR_5947 :ID: {BLACK}{COMMA16}
STR_5948 :Isim: {BLACK}{STRINGID}
STR_5949 :Tırmanma zinciri
STR_5950 :Değişiklikleri tüm raylara uygula
STR_5951 :Parça ID'si: {BLACK}{COMMA16}
STR_5952 :Seviye sıralama numarası: {BLACK}{COMMA16}
STR_5953 :Maddeleri yükseklik seviyesine göre sırala
STR_5954 :{WINDOW_COLOUR_2}Dekorasyon yaşı: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Kare içindeki pozisyonu: {BLACK}{STRINGID}
STR_5954 :Dekorasyon yaşı: {BLACK}{COMMA16}
STR_5955 :Kare içindeki pozisyonu: {BLACK}{STRINGID}
STR_5956 :Güneybatı
STR_5957 :Kuzeybatı
STR_5958 :Kuzeydoğu
STR_5959 :Güneydoğu
STR_5960 :{WINDOW_COLOUR_2}Kare içindeki pozisyonu:
STR_5961 :{WINDOW_COLOUR_2}Kayıt endeksi: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Çarpışma tespidi:
STR_5963 :{WINDOW_COLOUR_2}Kenar yükseltme:
STR_5964 :{WINDOW_COLOUR_2}Eğimli
STR_5965 :{WINDOW_COLOUR_2}Giriş türü: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park girişi yönü: {BLACK}{STRINGID}
STR_5960 :Kare içindeki pozisyonu:
STR_5961 :Kayıt endeksi: {BLACK}{COMMA16}
STR_5962 :Çarpışma tespidi:
STR_5963 :Kenar yükseltme:
STR_5964 :Eğimli
STR_5965 :Giriş türü: {BLACK}{STRINGID}
STR_5966 :Park girişi yönü: {BLACK}{STRINGID}
STR_5967 :Orta
STR_5968 :Sol
STR_5969 :Sağ
STR_5970 :{WINDOW_COLOUR_2}Giriş ID'si: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Çıkış ID'si: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Alet ID'si: {BLACK}{COMMA16}
STR_5970 :Giriş ID'si: {BLACK}{COMMA16}
STR_5971 :Çıkış ID'si: {BLACK}{COMMA16}
STR_5972 :Alet ID'si: {BLACK}{COMMA16}
STR_5973 :Bir sonrakine yapıştır
STR_5974 :Arızalı maddenin taban ve açıklık yükseğini seçdiğiniz maddeden kopyalayıp arızalı maddeye ekleyiniz
STR_5975 :Eğim:
STR_5976 :Düz
STR_5977 :Sağ taraf yukarı
STR_5978 :Sol taraf yukarı
STR_5979 :{WINDOW_COLOUR_2}Duvar türü: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banner metni: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Banner değil
STR_5982 :{WINDOW_COLOUR_2}Büyük dekorasyon türü: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Büyük dekorasyon ID'si: {BLACK}{COMMA16}
STR_5979 :Duvar türü: {BLACK}{COMMA16}
STR_5980 :Banner metni: {BLACK}{STRINGID}
STR_5981 :Banner değil
STR_5982 :Büyük dekorasyon türü: {BLACK}{COMMA16}
STR_5983 :Büyük dekorasyon ID'si: {BLACK}{COMMA16}
STR_5984 :Blocked paths:
STR_5985 :Yeni klasör
STR_5986 :Yeni klasör ismi giriniz

View File

@ -3164,56 +3164,56 @@ STR_5930 :Large scenery details
STR_5931 :Banner details
STR_5932 :Corrupt element details
STR_5933 :Properties
STR_5934 :{WINDOW_COLOUR_2}Terrain texture: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}Terrain edge: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}Land ownership: {BLACK}{STRINGID}
STR_5934 :Terrain texture: {BLACK}{STRINGID}
STR_5935 :Terrain edge: {BLACK}{STRINGID}
STR_5936 :Land ownership: {BLACK}{STRINGID}
STR_5937 :Not owned and not for sale
STR_5938 :{WINDOW_COLOUR_2}Water level: {BLACK}{COMMA16}
STR_5938 :Water level: {BLACK}{COMMA16}
STR_5939 :Remove park fences
STR_5940 :Restore park fences
STR_5941 :{WINDOW_COLOUR_2}Base height:
STR_5942 :{WINDOW_COLOUR_2}Path name: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}Additions: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}Additions: {BLACK}None
STR_5945 :{WINDOW_COLOUR_2}Connected edges:
STR_5946 :{WINDOW_COLOUR_2}Ride type: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}Ride name: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}Chain lift
STR_5950 :{WINDOW_COLOUR_2}Apply changes to entire track piece
STR_5951 :{WINDOW_COLOUR_2}Track piece ID: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}Sequence number: {BLACK}{COMMA16}
STR_5941 :Base height:
STR_5942 :Path name: {BLACK}{STRINGID}
STR_5943 :Additions: {BLACK}{STRINGID}
STR_5944 :Additions: {BLACK}None
STR_5945 :Connected edges:
STR_5946 :Ride type: {BLACK}{STRINGID}
STR_5947 :Ride ID: {BLACK}{COMMA16}
STR_5948 :Ride name: {BLACK}{STRINGID}
STR_5949 :Chain lift
STR_5950 :Apply changes to entire track piece
STR_5951 :Track piece ID: {BLACK}{COMMA16}
STR_5952 :Sequence number: {BLACK}{COMMA16}
STR_5953 :Sort the map elements on the current tile based on their base height.
STR_5954 :{WINDOW_COLOUR_2}Scenery age: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Quadrant placement: {BLACK}{STRINGID}
STR_5954 :Scenery age: {BLACK}{COMMA16}
STR_5955 :Quadrant placement: {BLACK}{STRINGID}
STR_5956 :Southwest
STR_5957 :Northwest
STR_5958 :Northeast
STR_5959 :Southeast
STR_5960 :{WINDOW_COLOUR_2}Quadrant placement:
STR_5961 :{WINDOW_COLOUR_2}Entry index: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}Collision detection:
STR_5963 :{WINDOW_COLOUR_2}Raised Corners:
STR_5964 :{WINDOW_COLOUR_2}Diagonal
STR_5965 :{WINDOW_COLOUR_2}Entrance type: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}Park entrance part: {BLACK}{STRINGID}
STR_5960 :Quadrant placement:
STR_5961 :Entry index: {BLACK}{COMMA16}
STR_5962 :Collision detection:
STR_5963 :Raised Corners:
STR_5964 :Diagonal
STR_5965 :Entrance type: {BLACK}{STRINGID}
STR_5966 :Park entrance part: {BLACK}{STRINGID}
STR_5967 :Middle
STR_5968 :Left
STR_5969 :Right
STR_5970 :{WINDOW_COLOUR_2}Entrance ID: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}Exit ID: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}Ride ID: {BLACK}{COMMA16}
STR_5970 :Entrance ID: {BLACK}{COMMA16}
STR_5971 :Exit ID: {BLACK}{COMMA16}
STR_5972 :Ride ID: {BLACK}{COMMA16}
STR_5973 :Clamp to next
STR_5974 :Changes the base- and clearance height so that its at the same as the next element on the current tile. Doing this makes it easier to build on this tile.
STR_5975 :Slope:
STR_5976 :Flat
STR_5977 :Right side up
STR_5978 :Left side up
STR_5979 :{WINDOW_COLOUR_2}Wall type: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}Banner text: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}Not a banner
STR_5982 :{WINDOW_COLOUR_2}Large scenery type: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}Large scenery piece ID: {BLACK}{COMMA16}
STR_5979 :Wall type: {BLACK}{COMMA16}
STR_5980 :Banner text: {BLACK}{STRINGID}
STR_5981 :Not a banner
STR_5982 :Large scenery type: {BLACK}{COMMA16}
STR_5983 :Large scenery piece ID: {BLACK}{COMMA16}
STR_5984 :Blocked paths:
STR_5985 :New folder
STR_5986 :Type the name of the new folder.
@ -3485,7 +3485,7 @@ STR_6273 :Music
STR_6274 :Cant set colour scheme…
STR_6275 :{WINDOW_COLOUR_2}Station style:
STR_6276 :{RED}{STRINGID} has guests getting stuck, possibly due to invalid ride type or operating mode.
STR_6277 :{WINDOW_COLOUR_2}Station index: {BLACK}{STRINGID}
STR_6277 :Station index: {BLACK}{STRINGID}
STR_6278 :Autosave amount
STR_6279 :Number of autosaves that should be kept
STR_6280 :Chat
@ -3518,9 +3518,9 @@ STR_6315 :{WINDOW_COLOUR_2}Pathfind Goal: {BLACK}{INT32}, {INT32}, {INT32} di
STR_6316 :{WINDOW_COLOUR_2}Pathfind history:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} dir {INT32}
STR_6318 :Network desync detected.{NEWLINE}Log file: {STRING}
STR_6319 :{WINDOW_COLOUR_2}Block Brake Closed
STR_6320 :{WINDOW_COLOUR_2}Indestructible
STR_6321 :{WINDOW_COLOUR_2}Addition is broken
STR_6319 :Block Brake Closed
STR_6320 :Indestructible
STR_6321 :Addition is broken
STR_6322 :{WINDOW_COLOUR_2}Sprite Id: {BLACK}{INT32}
STR_6323 :Simulating
STR_6324 :Simulate
@ -3566,7 +3566,7 @@ STR_6363 :Copied text to clipboard
STR_6364 :{RED}{COMMA16} person has died in an accident on {STRINGID}
STR_6365 :Ride casualties
STR_6366 :Stuck or stalled vehicles
STR_6367 :{WINDOW_COLOUR_2}Animation frame:
STR_6367 :Animation frame:
STR_6368 :For compatibility reasons, it is not recommended to run OpenRCT2 with Wine. OpenRCT2 has native support for macOS, Linux, FreeBSD and OpenBSD.
STR_6369 :Allow building track at invalid heights
STR_6370 :Allows placing track pieces at any height interval

View File

@ -3169,56 +3169,56 @@ STR_5930 :巨型景物详情
STR_5931 :横幅详情
STR_5932 :已毁坏元素详情
STR_5933 :属性
STR_5934 :{WINDOW_COLOUR_2}地型素材:{BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}地型边缘:{BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}土地拥有权:{BLACK}{STRINGID}
STR_5934 :地型素材:{BLACK}{STRINGID}
STR_5935 :地型边缘:{BLACK}{STRINGID}
STR_5936 :土地拥有权:{BLACK}{STRINGID}
STR_5937 :未拥有且不可购买
STR_5938 :{WINDOW_COLOUR_2}水位:{BLACK}{COMMA16}
STR_5938 :水位:{BLACK}{COMMA16}
STR_5939 :移除乐园边界
STR_5940 :还原乐园边界
STR_5941 :{WINDOW_COLOUR_2}地面高度:
STR_5942 :{WINDOW_COLOUR_2}道路名称:{BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}附加物品:{BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}附加物品:{BLACK}暂无
STR_5945 :{WINDOW_COLOUR_2}已连接的边缘:
STR_5946 :{WINDOW_COLOUR_2}游乐设施种类:{BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}游乐设施ID:{BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}游乐设施名称:{BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}提升坡
STR_5950 :{WINDOW_COLOUR_2}将改变应用于整个轨道组件中
STR_5951 :{WINDOW_COLOUR_2}轨道组件ID:{BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}编号:{BLACK}{COMMA16}
STR_5941 :地面高度:
STR_5942 :道路名称:{BLACK}{STRINGID}
STR_5943 :附加物品:{BLACK}{STRINGID}
STR_5944 :附加物品:{BLACK}暂无
STR_5945 :已连接的边缘:
STR_5946 :游乐设施种类:{BLACK}{STRINGID}
STR_5947 :游乐设施ID:{BLACK}{COMMA16}
STR_5948 :游乐设施名称:{BLACK}{STRINGID}
STR_5949 :提升坡
STR_5950 :将改变应用于整个轨道组件中
STR_5951 :轨道组件ID:{BLACK}{COMMA16}
STR_5952 :编号:{BLACK}{COMMA16}
STR_5953 :以底部高度排序目前网格上的地图元素
STR_5954 :{WINDOW_COLOUR_2}景物年龄:{BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}四角放置:{BLACK}{STRINGID}
STR_5954 :景物年龄:{BLACK}{COMMA16}
STR_5955 :四角放置:{BLACK}{STRINGID}
STR_5956 :西南
STR_5957 :西北
STR_5958 :东北
STR_5959 :东南
STR_5960 :{WINDOW_COLOUR_2}四角放置:
STR_5961 :{WINDOW_COLOUR_2}入口编号:{BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}碰撞检测:
STR_5963 :{WINDOW_COLOUR_2}已升起的角:
STR_5964 :{WINDOW_COLOUR_2}斜角
STR_5965 :{WINDOW_COLOUR_2}入口类型:{BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}游乐园入口部份:{BLACK}{STRINGID}
STR_5960 :四角放置:
STR_5961 :入口编号:{BLACK}{COMMA16}
STR_5962 :碰撞检测:
STR_5963 :已升起的角:
STR_5964 :斜角
STR_5965 :入口类型:{BLACK}{STRINGID}
STR_5966 :游乐园入口部份:{BLACK}{STRINGID}
STR_5967 :中间
STR_5968 :左
STR_5969 :右
STR_5970 :{WINDOW_COLOUR_2}入口编号:{BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}出口编号:{BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}游乐设施编号:{BLACK}{COMMA16}
STR_5970 :入口编号:{BLACK}{COMMA16}
STR_5971 :出口编号:{BLACK}{COMMA16}
STR_5972 :游乐设施编号:{BLACK}{COMMA16}
STR_5973 :与下一地图元素并列
STR_5974 :将此元素的基准和净高度与下一元素调整一致. 这可以让在网格上建造变得更加容易.
STR_5975 :坡道:
STR_5976 :平坦
STR_5977 :右边向上
STR_5978 :左边向上
STR_5979 :{WINDOW_COLOUR_2}围栏类型:{BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}横幅文字:{BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}不是横幅
STR_5982 :{WINDOW_COLOUR_2}巨型景物类型:{BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}巨型景物组件编号:{BLACK}{COMMA16}
STR_5979 :围栏类型:{BLACK}{COMMA16}
STR_5980 :横幅文字:{BLACK}{STRINGID}
STR_5981 :不是横幅
STR_5982 :巨型景物类型:{BLACK}{COMMA16}
STR_5983 :巨型景物组件编号:{BLACK}{COMMA16}
STR_5984 :被挡住的道路:
STR_5985 :新建文件夹
STR_5986 :请输入新文件夹的名字
@ -3490,7 +3490,7 @@ STR_6273 :音乐
STR_6274 :无法设置配色主题…
STR_6275 :{WINDOW_COLOUR_2}车站类型:
STR_6276 :{RED}{STRINGID} 有游客被困住了,这可能是因为无效的设施类型或者运行模式
STR_6277 :{WINDOW_COLOUR_2}车站编号: {BLACK}{STRINGID}
STR_6277 :车站编号: {BLACK}{STRINGID}
STR_6278 :自动保存数量
STR_6279 :应该保留的自动保存数量
STR_6293 :B

View File

@ -3167,56 +3167,56 @@ STR_5930 :巨型景物詳情
STR_5931 :橫額詳情
STR_5932 :已毀壞元素詳情
STR_5933 :屬性
STR_5934 :{WINDOW_COLOUR_2}地型素材: {BLACK}{STRINGID}
STR_5935 :{WINDOW_COLOUR_2}地型邊緣: {BLACK}{STRINGID}
STR_5936 :{WINDOW_COLOUR_2}土地擁有權: {BLACK}{STRINGID}
STR_5934 :地型素材: {BLACK}{STRINGID}
STR_5935 :地型邊緣: {BLACK}{STRINGID}
STR_5936 :土地擁有權: {BLACK}{STRINGID}
STR_5937 :並未擁有亦並不可買
STR_5938 :{WINDOW_COLOUR_2}水位: {BLACK}{COMMA16}
STR_5938 :水位: {BLACK}{COMMA16}
STR_5939 :移除樂園邊界
STR_5940 :還原樂園邊界
STR_5941 :{WINDOW_COLOUR_2}地面高度:
STR_5942 :{WINDOW_COLOUR_2}道路名稱: {BLACK}{STRINGID}
STR_5943 :{WINDOW_COLOUR_2}附加物品: {BLACK}{STRINGID}
STR_5944 :{WINDOW_COLOUR_2}附加物品: {BLACK}暫無
STR_5945 :{WINDOW_COLOUR_2}已連接的邊緣:
STR_5946 :{WINDOW_COLOUR_2}遊樂設施種類: {BLACK}{STRINGID}
STR_5947 :{WINDOW_COLOUR_2}遊樂設施編號: {BLACK}{COMMA16}
STR_5948 :{WINDOW_COLOUR_2}遊樂設施名稱: {BLACK}{STRINGID}
STR_5949 :{WINDOW_COLOUR_2}鏈條坡道
STR_5950 :{WINDOW_COLOUR_2}將改變應用於整個軌道組件中
STR_5951 :{WINDOW_COLOUR_2}軌道組件編號: {BLACK}{COMMA16}
STR_5952 :{WINDOW_COLOUR_2}次序數目: {BLACK}{COMMA16}
STR_5941 :地面高度:
STR_5942 :道路名稱: {BLACK}{STRINGID}
STR_5943 :附加物品: {BLACK}{STRINGID}
STR_5944 :附加物品: {BLACK}暫無
STR_5945 :已連接的邊緣:
STR_5946 :遊樂設施種類: {BLACK}{STRINGID}
STR_5947 :遊樂設施編號: {BLACK}{COMMA16}
STR_5948 :遊樂設施名稱: {BLACK}{STRINGID}
STR_5949 :鏈條坡道
STR_5950 :將改變應用於整個軌道組件中
STR_5951 :軌道組件編號: {BLACK}{COMMA16}
STR_5952 :次序數目: {BLACK}{COMMA16}
STR_5953 :以底部高度排序目前網格上的地圖元素
STR_5954 :{WINDOW_COLOUR_2}景物年齡: {BLACK}{COMMA16}
STR_5955 :{WINDOW_COLOUR_2}Quadrant放置: {BLACK}{STRINGID}
STR_5954 :景物年齡: {BLACK}{COMMA16}
STR_5955 :Quadrant放置: {BLACK}{STRINGID}
STR_5956 :西南
STR_5957 :西北
STR_5958 :東北
STR_5959 :東南
STR_5960 :{WINDOW_COLOUR_2}Quadrant放置:
STR_5961 :{WINDOW_COLOUR_2}入口編號: {BLACK}{COMMA16}
STR_5962 :{WINDOW_COLOUR_2}衝突檢測:
STR_5963 :{WINDOW_COLOUR_2}已升起的角落:
STR_5964 :{WINDOW_COLOUR_2}斜角
STR_5965 :{WINDOW_COLOUR_2}入口類型: {BLACK}{STRINGID}
STR_5966 :{WINDOW_COLOUR_2}樂園入口部份: {BLACK}{STRINGID}
STR_5960 :Quadrant放置:
STR_5961 :入口編號: {BLACK}{COMMA16}
STR_5962 :衝突檢測:
STR_5963 :已升起的角落:
STR_5964 :斜角
STR_5965 :入口類型: {BLACK}{STRINGID}
STR_5966 :樂園入口部份: {BLACK}{STRINGID}
STR_5967 :中間
STR_5968 :左
STR_5969 :右
STR_5970 :{WINDOW_COLOUR_2}入口編號: {BLACK}{COMMA16}
STR_5971 :{WINDOW_COLOUR_2}出口編號: {BLACK}{COMMA16}
STR_5972 :{WINDOW_COLOUR_2}遊樂設施編號: {BLACK}{COMMA16}
STR_5970 :入口編號: {BLACK}{COMMA16}
STR_5971 :出口編號: {BLACK}{COMMA16}
STR_5972 :遊樂設施編號: {BLACK}{COMMA16}
STR_5973 :與下一地圖元素並列
STR_5974 :將此元素的底部及清空高度與下一元素調整成一致. 此舉會讓於此網格上建造得更加容易.
STR_5975 :坡道:
STR_5976 :平坦
STR_5977 :右邊向上
STR_5978 :左邊向上
STR_5979 :{WINDOW_COLOUR_2}圍欄類型: {BLACK}{COMMA16}
STR_5980 :{WINDOW_COLOUR_2}橫額文字: {BLACK}{STRINGID}
STR_5981 :{WINDOW_COLOUR_2}不是橫額
STR_5982 :{WINDOW_COLOUR_2}巨型景物類型: {BLACK}{COMMA16}
STR_5983 :{WINDOW_COLOUR_2}巨型景物組件編號: {BLACK}{COMMA16}
STR_5979 :圍欄類型: {BLACK}{COMMA16}
STR_5980 :橫額文字: {BLACK}{STRINGID}
STR_5981 :不是橫額
STR_5982 :巨型景物類型: {BLACK}{COMMA16}
STR_5983 :巨型景物組件編號: {BLACK}{COMMA16}
STR_5984 :被擋住的道路:
STR_5985 :建立新文件夾
STR_5986 :請輸入新文件夾的名字
@ -3491,7 +3491,7 @@ STR_6273 :音樂
STR_6274 :無法設置色彩選配…
STR_6275 :{WINDOW_COLOUR_2}車站風格:
STR_6276 :{RED}有遊客於{STRINGID}中卡住, 可能因為使用了非法的遊樂設施種類或運作模式.
STR_6277 :{WINDOW_COLOUR_2}車站索引: {BLACK}{COMMA16}
STR_6277 :車站索引: {BLACK}{COMMA16}
STR_6278 :自動存檔數量
STR_6279 :設置該保留的自動存檔數量
STR_6280 :聊天
@ -3524,9 +3524,9 @@ STR_6315 :{WINDOW_COLOUR_2}尋路目標: {BLACK}{INT32}, {INT32}, {INT32} 方
STR_6316 :{WINDOW_COLOUR_2}尋路歷史:
STR_6317 :{BLACK}{INT32}, {INT32}, {INT32} 方向 {INT32}
STR_6318 :檢測到網絡不同步.{NEWLINE}記錄檔: {STRING}
STR_6319 :{WINDOW_COLOUR_2}關閉區域煞車
STR_6320 :{WINDOW_COLOUR_2}永不損壞
STR_6321 :{WINDOW_COLOUR_2}附加物品已損壞
STR_6319 :關閉區域煞車
STR_6320 :永不損壞
STR_6321 :附加物品已損壞
STR_6322 :{WINDOW_COLOUR_2}元素ID: {BLACK}{INT32}
STR_6323 :模擬運作中
STR_6324 :模擬
@ -3572,7 +3572,7 @@ STR_6363 :複製文字到剪貼簿
STR_6364 :{RED}{COMMA16}人已於{STRINGID}的意外中喪生
STR_6365 :於遊樂設施中發生的傷亡
STR_6366 :卡住或被停止了的車輛
STR_6367 :{WINDOW_COLOUR_2}動畫影格:
STR_6367 :動畫影格:
STR_6368 :因為兼容性原因, 不建議以Wine上運行OpenRCT2. OpenRCT2能原生支援macOS, Linux, FreeBSD及OpenBSD.
STR_6369 :允許在不合理的高度上建造軌道
STR_6370 :{SMALLFONT}{BLACK}允許在任何高度上放置軌道選項

File diff suppressed because it is too large Load Diff

View File

@ -392,9 +392,10 @@ namespace OpenRCT2::Ui
{
filtersb << ' ';
}
else if (isalpha(c))
else if (isalpha(static_cast<unsigned char>(c)))
{
filtersb << '[' << static_cast<char>(tolower(c)) << static_cast<char>(toupper(c)) << ']';
auto uc = static_cast<unsigned char>(c);
filtersb << '[' << static_cast<char>(tolower(uc)) << static_cast<char>(toupper(uc)) << ']';
}
else
{

View File

@ -385,7 +385,7 @@ private:
{
ReadCentrePixel(&_pixelAfterOverlay);
// Detect an active Steam overlay by checking if the centre pixel is changed by the gray fade.
// Detect an active Steam overlay by checking if the centre pixel is changed by the grey fade.
// Will not be triggered by applications rendering to corners, like FRAPS, MSI Afterburner and Friends popups.
bool newOverlayActive = _pixelBeforeOverlay != _pixelAfterOverlay;

View File

@ -148,7 +148,7 @@ validate_global_widx(WC_EDITOR_OBJECT_SELECTION, WIDX_TAB_1);
static bool _window_editor_object_selection_widgets_initialised;
static std::vector<rct_widget> _window_editor_object_selection_widgets = {
WINDOW_SHIM(WINDOW_TITLE, WW, WH),
MakeWidget({ 0, 43}, {600, 357}, WindowWidgetType::Resize, WindowColour::Secondary ),
MakeWidget({ 0, 43}, {WW, 357}, WindowWidgetType::Resize, WindowColour::Secondary ),
MakeWidget({470, 22}, {122, 14}, WindowWidgetType::Button, WindowColour::Primary, STR_OBJECT_SELECTION_ADVANCED, STR_OBJECT_SELECTION_ADVANCED_TIP),
MakeWidget({ 4, 60}, {288, 327}, WindowWidgetType::Scroll, WindowColour::Secondary, SCROLL_VERTICAL ),
MakeWidget({391, 45}, {114, 115}, WindowWidgetType::FlatBtn, WindowColour::Secondary ),
@ -384,7 +384,7 @@ rct_window* window_editor_object_selection_open()
reset_selected_object_count_and_size();
window = WindowCreateCentred(
600, 400, &window_editor_object_selection_events, WC_EDITOR_OBJECT_SELECTION, WF_10 | WF_RESIZABLE);
WW, WH, &window_editor_object_selection_events, WC_EDITOR_OBJECT_SELECTION, WF_10 | WF_RESIZABLE);
window->widgets = _window_editor_object_selection_widgets.data();
window->widgets[WIDX_FILTER_TEXT_BOX].string = _filter_string;
@ -404,8 +404,8 @@ rct_window* window_editor_object_selection_open()
window->selected_tab = 0;
window->selected_list_item = -1;
window->object_entry = nullptr;
window->min_width = 600;
window->min_height = 400;
window->min_width = WW;
window->min_height = WH;
window->max_width = 1200;
window->max_height = 1000;
@ -566,7 +566,7 @@ static void window_editor_object_selection_mouseup(rct_window* w, rct_widgetinde
static void window_editor_object_selection_resize(rct_window* w)
{
window_set_resize(w, 600, 400, 1200, 1000);
window_set_resize(w, WW, WH, 1200, 1000);
}
void window_editor_object_selection_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget)
@ -886,8 +886,8 @@ static void window_editor_object_selection_invalidate(rct_window* w)
}
w->widgets[WIDX_FILTER_DROPDOWN].type = WindowWidgetType::Button;
w->widgets[WIDX_LIST].right = w->width - (600 - 587) - x;
w->widgets[WIDX_PREVIEW].left = w->width - (600 - 537) - (x / 2);
w->widgets[WIDX_LIST].right = w->width - (WW - 587) - x;
w->widgets[WIDX_PREVIEW].left = w->width - (WW - 537) - (x / 2);
w->widgets[WIDX_PREVIEW].right = w->widgets[WIDX_PREVIEW].left + 113;
w->widgets[WIDX_FILTER_RIDE_TAB_FRAME].right = w->widgets[WIDX_LIST].right;
@ -1485,30 +1485,16 @@ static bool filter_string(const ObjectRepositoryItem* item)
// Get ride type
const char* rideTypeName = language_get_string(get_ride_type_string_id(item));
// Get object name (ride/vehicle for rides) and type name (rides only)
char name_lower[MAX_PATH];
char type_lower[MAX_PATH];
char object_path[MAX_PATH];
char filter_lower[sizeof(_filter_string)];
safe_strcpy(name_lower, item->Name.c_str(), MAX_PATH);
safe_strcpy(type_lower, rideTypeName, MAX_PATH);
safe_strcpy(object_path, item->Path.c_str(), MAX_PATH);
safe_strcpy(filter_lower, _filter_string, sizeof(_filter_string));
// Make use of lowercase characters only
for (int32_t i = 0; name_lower[i] != '\0'; i++)
name_lower[i] = static_cast<char>(tolower(name_lower[i]));
for (int32_t i = 0; type_lower[i] != '\0'; i++)
type_lower[i] = static_cast<char>(tolower(type_lower[i]));
for (int32_t i = 0; object_path[i] != '\0'; i++)
object_path[i] = static_cast<char>(tolower(object_path[i]));
for (int32_t i = 0; filter_lower[i] != '\0'; i++)
filter_lower[i] = static_cast<char>(tolower(filter_lower[i]));
// Get object name (ride/vehicle for rides) and type name (rides only) in uppercase
const auto nameUpper = String::ToUpper(item->Name);
const auto typeUpper = String::ToUpper(rideTypeName);
const auto pathUpper = String::ToUpper(item->Path);
const auto filterUpper = String::ToUpper(_filter_string);
// Check if the searched string exists in the name, ride type, or filename
bool inName = strstr(name_lower, filter_lower) != nullptr;
bool inRideType = (item->ObjectEntry.GetType() == ObjectType::Ride) && strstr(type_lower, filter_lower) != nullptr;
bool inPath = strstr(object_path, filter_lower) != nullptr;
bool inName = nameUpper.find(filterUpper) != std::string::npos;
bool inRideType = (item->ObjectEntry.GetType() == ObjectType::Ride) && typeUpper.find(filterUpper) != std::string::npos;
bool inPath = pathUpper.find(filterUpper) != std::string::npos;
return inName || inRideType || inPath;
}

View File

@ -81,7 +81,7 @@ static void window_install_track_design(rct_window* w);
*/
rct_window* window_install_track_open(const utf8* path)
{
_trackDesign = track_design_open(path);
_trackDesign = TrackDesignImport(path);
if (_trackDesign == nullptr)
{
context_show_error(STR_UNABLE_TO_LOAD_FILE, STR_NONE, {});
@ -422,7 +422,7 @@ static void window_install_track_text_input(rct_window* w, rct_widgetindex widge
static void window_install_track_update_preview()
{
track_design_draw_preview(_trackDesign.get(), _trackDesignPreviewPixels.data());
TrackDesignDrawPreview(_trackDesign.get(), _trackDesignPreviewPixels.data());
}
static void window_install_track_design(rct_window* w)

View File

@ -1394,7 +1394,13 @@ rct_window* window_ride_open_track(TileElement* tileElement)
*/
rct_window* window_ride_open_vehicle(Vehicle* vehicle)
{
if (vehicle == nullptr)
return nullptr;
Vehicle* headVehicle = vehicle->TrainHead();
if (headVehicle == nullptr)
return nullptr;
uint16_t headVehicleSpriteIndex = headVehicle->sprite_index;
auto ride = headVehicle->GetRide();
if (ride == nullptr)
@ -2832,10 +2838,10 @@ static OpenRCT2String window_ride_vehicle_tooltip(
auto ft = Formatter();
ft.Increment(16);
ft.Add<uint16_t>(std::max(uint8_t(1), ride->GetMaxCarsPerTrain()) - rideEntry->zero_cars);
ft.Add<uint16_t>(std::max(uint8_t(1), ride->MaxCarsPerTrain) - rideEntry->zero_cars);
rct_string_id stringId = GetRideComponentName(RideComponentType::Car).singular;
if (ride->GetMaxCarsPerTrain() - rideEntry->zero_cars > 1)
if (ride->MaxCarsPerTrain - rideEntry->zero_cars > 1)
{
stringId = GetRideComponentName(RideComponentType::Car).plural;
}
@ -5325,7 +5331,8 @@ static void window_ride_measurements_design_save(rct_window* w)
if (gTrackDesignSaveMode)
{
auto errMessage = _trackDesign->CreateTrackDesignScenery();
TrackDesignState tds{};
auto errMessage = _trackDesign->CreateTrackDesignScenery(tds);
if (errMessage != STR_NONE)
{
context_show_error(STR_CANT_SAVE_TRACK_DESIGN, errMessage, {});
@ -6213,7 +6220,7 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi
const bool previousMeasurement = x > measurement->current_item;
// Draw the current line in gray.
// Draw the current line in grey.
gfx_fill_rect(dpi, { { x, top }, { x, bottom } }, previousMeasurement ? PALETTE_INDEX_17 : PALETTE_INDEX_21);
// Draw red over extreme values (if supported by graph type).

File diff suppressed because it is too large Load Diff

View File

@ -76,6 +76,7 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX
WIDX_COLUMN_TYPE,
WIDX_COLUMN_BASEHEIGHT,
WIDX_COLUMN_CLEARANCEHEIGHT,
WIDX_COLUMN_DIRECTION,
WIDX_COLUMN_GHOSTFLAG,
WIDX_COLUMN_LASTFLAG,
WIDX_GROUPBOX_DETAILS,
@ -180,199 +181,207 @@ constexpr int32_t MIN_WH = 130;
constexpr int32_t MAX_WH = 800;
// Button space for top buttons
constexpr int32_t BW = WW - 5; // Button's right side
constexpr int32_t BX = BW - 23; // Button's left side
constexpr int32_t BY = 17; // Button's Top
constexpr int32_t BH = BY + 23; // Button's Bottom
constexpr int32_t BS = 24;
constexpr auto ToolbarButtonAnchor = ScreenCoordsXY{ WW - 27, 17 };
constexpr auto ToolbarButtonSize = ScreenSize{ 24, 24 };
constexpr auto ToolbarButtonHalfSize = ScreenSize{ 24, 12 };
constexpr auto ToolbarButtonOffsetX = ScreenSize{ -24, 0 };
// Column offsets for the table headers
constexpr int32_t COL_X_TYPE = 3; // Type
constexpr int32_t COL_X_BH = COL_X_TYPE + 312; // Base height
constexpr int32_t COL_X_CH = COL_X_BH + 20; // Clearance height
constexpr int32_t COL_X_GF = COL_X_CH + 20; // Ghost flag
constexpr int32_t COL_X_LF = COL_X_GF + 12; // Last for tile flag
// List's column offsets
constexpr auto TypeColumnXY = ScreenCoordsXY{ 3, 42 };
constexpr auto TypeColumnSize = ScreenSize{ 272, 14 };
constexpr auto BaseHeightColumnXY = TypeColumnXY + ScreenSize{ TypeColumnSize.width, 0 };
constexpr auto BaseHeightColumnSize = ScreenSize{ 30, 14 };
constexpr auto ClearanceHeightColumnXY = BaseHeightColumnXY + ScreenCoordsXY{ BaseHeightColumnSize.width, 0 };
constexpr auto ClearanceHeightColumnSize = ScreenSize{ 30, 14 };
constexpr auto DirectionColumnXY = ClearanceHeightColumnXY + ScreenCoordsXY{ ClearanceHeightColumnSize.width, 0 };
constexpr auto DirectionColumnSize = ScreenSize{ 15, 14 };
constexpr auto GhostFlagColumnXY = DirectionColumnXY + ScreenCoordsXY{ DirectionColumnSize.width, 0 };
constexpr auto GhostFlagColumnSize = ScreenSize{ 15, 14 };
constexpr auto LastFlagColumnXY = GhostFlagColumnXY + ScreenCoordsXY{ GhostFlagColumnSize.width, 0 };
constexpr auto LastFlagColumnSize = ScreenSize{ 32, 14 };
constexpr int32_t PADDING_BOTTOM = 15;
constexpr int32_t GROUPBOX_PADDING = 6;
constexpr int32_t HORIZONTAL_GROUPBOX_PADDING = 5;
constexpr int32_t VERTICAL_GROUPBOX_PADDING = 4;
constexpr int32_t BUTTONW = 130;
constexpr int32_t BUTTONH = 17;
constexpr auto PropertyButtonSize = ScreenSize{ 130, 18 };
constexpr auto PropertyFullWidth = ScreenSize{ 370, 18 };
constexpr ScreenCoordsXY PropertyRowCol(ScreenCoordsXY anchor, int32_t row, int32_t column)
{
return anchor
+ ScreenCoordsXY{ column * (PropertyButtonSize.width + HORIZONTAL_GROUPBOX_PADDING),
row * (PropertyButtonSize.height + VERTICAL_GROUPBOX_PADDING) };
}
constexpr ScreenCoordsXY CheckboxGroupOffset(
ScreenCoordsXY anchorPoint, int16_t horizontalMultiplier, int16_t verticalMultiplier)
{
return anchorPoint + ScreenCoordsXY{ 14 * horizontalMultiplier, 7 * verticalMultiplier };
}
// clang-format off
// Calculates the .left, .right, .top and .bottom for buttons in a group box.
// Buttons are used as reference points for all other widgets in the group boxes.
#define GBBL(col) (12 + col * (BUTTONW + HORIZONTAL_GROUPBOX_PADDING))
#define GBBR(col) (GBBL(col) + BUTTONW)
#define GBBT(GROUPTOP, row) ((GROUPTOP) + 14 + row * (BUTTONH + VERTICAL_GROUPBOX_PADDING))
#define GBBB(GROUPTOP, row) (GBBT((GROUPTOP), row) + BUTTONH)
#define GBB(GROUPTOP, col, row) GBBL(col), GBBR(col), GBBT((GROUPTOP), row), GBBB((GROUPTOP), row)
#define GBBF(GROUPTOP, col, row)GBBL(col), WW - 10, GBBT((GROUPTOP), row), GBBB((GROUPTOP), row) // Full width
// Dropdowns use the buttons as a reference
#define GBD(GBT, col, row) GBBL(col), GBBR(col), GBBT(GBT, row) + 3, GBBB(GBT, row) - 3 // Group box dropdown field
#define GBDB(GBT, col, row) GBBR(col) - 11, GBBR(col) - 1, GBBT(GBT, row) + 4, GBBB(GBT, row) - 4 // Group box dropdown button
// Checkbox - given topleft corner
#define CHK(x, y) x, x + 13, y + 2, y + 15
// Macros for easily obtaining the top and bottom of a widget inside a properties group box
#define GBBT(GROUPTOP, row) ((GROUPTOP) + 14 + row * (PropertyButtonSize.height + VERTICAL_GROUPBOX_PADDING))
#define GBBB(GROUPTOP, row) (GBBT((GROUPTOP), row) + PropertyButtonSize.height)
#define MAIN_TILE_INSPECTOR_WIDGETS \
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
{ WindowWidgetType::Scroll, 1, 3, WW - 4, 57, WH - PADDING_BOTTOM, 2, STR_NONE }, /* Element list */ \
SPINNER_WIDGETS (1, 20, 70, 23, 34, STR_NONE, STR_NONE), /* Spinner X (3 widgets) */ \
SPINNER_WIDGETS (1, 90, 140, 23, 34, STR_NONE, STR_NONE), /* Spinner Y (3 widgets) */ \
/* Buttons */ \
{ WindowWidgetType::FlatBtn, 1, BX, BW, BY, BH, SPR_MAP, STR_INSERT_CORRUPT_TIP }, /* Insert corrupt button */ \
{ WindowWidgetType::FlatBtn, 1, BX - BS * 1, BW - BS * 1, BY, BH, SPR_DEMOLISH, STR_REMOVE_SELECTED_ELEMENT_TIP }, /* Remove button */ \
{ WindowWidgetType::Button, 1, BX - BS * 2, BW - BS * 2, BY, BY + 11, STR_UP, STR_MOVE_SELECTED_ELEMENT_UP_TIP }, /* Move up */ \
{ WindowWidgetType::Button, 1, BX - BS * 2, BW - BS * 2, BH - 11, BH, STR_DOWN, STR_MOVE_SELECTED_ELEMENT_DOWN_TIP }, /* Move down */ \
{ WindowWidgetType::FlatBtn, 1, BX - BS * 3, BW - BS * 3, BY, BH, SPR_ROTATE_ARROW, STR_ROTATE_SELECTED_ELEMENT_TIP }, /* Rotate button */ \
{ WindowWidgetType::FlatBtn, 1, BX - BS * 4, BW - BS * 4, BY, BH, SPR_G2_SORT, STR_TILE_INSPECTOR_SORT_TIP }, /* Sort button */ \
{ WindowWidgetType::FlatBtn, 1, BX - BS * 5, BW - BS * 5, BY, BH, SPR_G2_PASTE, STR_TILE_INSPECTOR_PASTE_TIP }, /* Paste button */ \
{ WindowWidgetType::FlatBtn, 1, BX - BS * 6, BW - BS * 6, BY, BH, SPR_G2_COPY, STR_TILE_INSPECTOR_COPY_TIP }, /* Copy button */ \
/* Column headers */ \
{ WindowWidgetType::TableHeader, 1, COL_X_TYPE, COL_X_BH - 1, 42, 42 + 13, STR_NONE, STR_NONE }, /* Type */ \
{ WindowWidgetType::TableHeader, 1, COL_X_BH, COL_X_CH - 1, 42, 42 + 13, STR_NONE, STR_TILE_INSPECTOR_BASE_HEIGHT }, /* Base height */ \
{ WindowWidgetType::TableHeader, 1, COL_X_CH, COL_X_GF - 1, 42, 42 + 13, STR_NONE, STR_TILE_INSPECTOR_CLEARANCE_HEIGHT }, /* Clearance height */ \
{ WindowWidgetType::TableHeader, 1, COL_X_GF, COL_X_LF - 1, 42, 42 + 13, STR_NONE, STR_TILE_INSPECTOR_FLAG_GHOST }, /* Ghost flag */ \
{ WindowWidgetType::TableHeader, 1, COL_X_LF, WW - 3, 42, 42 + 13, STR_NONE, STR_TILE_INSPECTOR_FLAG_LAST }, /* Last of tile flag */ \
{ WindowWidgetType::Groupbox, 1, 6, WW - 6, -1, -1, STR_NONE, STR_NONE }, /* Details group box */ \
{ WindowWidgetType::Groupbox, 1, 6, WW - 6, -1, -1, STR_TILE_INSPECTOR_GROUPBOX_PROPERTIES, STR_NONE } /* Properties group box */
MakeWidget({3, 57}, {WW - 6, WH - PADDING_BOTTOM - 58}, WindowWidgetType::Scroll, WindowColour::Secondary, SCROLL_VERTICAL), /* Element list */ \
/* X and Y spinners */ \
MakeSpinnerWidgets({20, 23}, {51, 12}, WindowWidgetType::Spinner, WindowColour::Secondary), /* Spinner X (3 widgets) */ \
MakeSpinnerWidgets({90, 23}, {51, 12}, WindowWidgetType::Spinner, WindowColour::Secondary), /* Spinner Y (3 widgets) */ \
/* Top buttons */ \
MakeWidget(ToolbarButtonAnchor, ToolbarButtonSize, WindowWidgetType::FlatBtn , WindowColour::Secondary, SPR_MAP, STR_INSERT_CORRUPT_TIP), /* Insert corrupt button */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 1, ToolbarButtonSize, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_DEMOLISH, STR_REMOVE_SELECTED_ELEMENT_TIP ), /* Remove button */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 2, ToolbarButtonHalfSize, WindowWidgetType::Button, WindowColour::Secondary, STR_UP, STR_MOVE_SELECTED_ELEMENT_UP_TIP), /* Move up */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 2 + ScreenSize{0, 12}, ToolbarButtonHalfSize, WindowWidgetType::Button, WindowColour::Secondary, STR_DOWN, STR_MOVE_SELECTED_ELEMENT_DOWN_TIP), /* Move down */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 3, ToolbarButtonSize, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_ROTATE_ARROW, STR_ROTATE_SELECTED_ELEMENT_TIP), /* Rotate button */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 4, ToolbarButtonSize, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_SORT, STR_TILE_INSPECTOR_SORT_TIP), /* Sort button */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 5, ToolbarButtonSize, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_PASTE, STR_TILE_INSPECTOR_PASTE_TIP), /* Paste button */ \
MakeWidget(ToolbarButtonAnchor + ToolbarButtonOffsetX * 6, ToolbarButtonSize, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_COPY, STR_TILE_INSPECTOR_COPY_TIP), /* Copy button */ \
/* Column headers */ \
MakeWidget(TypeColumnXY, TypeColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_ELEMENT_TYPE), /* Type */ \
MakeWidget(BaseHeightColumnXY, BaseHeightColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT, STR_TILE_INSPECTOR_BASE_HEIGHT), /* Base height */ \
MakeWidget(ClearanceHeightColumnXY, ClearanceHeightColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT, STR_TILE_INSPECTOR_CLEARANCE_HEIGHT), /* Clearance height */ \
MakeWidget(DirectionColumnXY, DirectionColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_DIRECTION_SHORT, STR_TILE_INSPECTOR_DIRECTION), /* Direction */ \
MakeWidget(GhostFlagColumnXY, GhostFlagColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_FLAG_GHOST_SHORT, STR_TILE_INSPECTOR_FLAG_GHOST), /* Ghost flag */ \
MakeWidget(LastFlagColumnXY, LastFlagColumnSize, WindowWidgetType::TableHeader, WindowColour::Secondary, STR_TILE_INSPECTOR_FLAG_LAST_SHORT, STR_TILE_INSPECTOR_FLAG_LAST), /* Last of tile flag */ \
/* Group boxes */ \
MakeWidget({6, 0}, {WW - 12, 0}, WindowWidgetType::Groupbox, WindowColour::Secondary, STR_NONE, STR_NONE ), /* Details group box */ \
MakeWidget({6, 0}, {WW - 12, 0}, WindowWidgetType::Groupbox, WindowColour::Secondary, STR_TILE_INSPECTOR_GROUPBOX_PROPERTIES, STR_NONE ) /* Properties group box */
static rct_widget DefaultWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
WIDGETS_END,
};
// Group boxes .top and .bottom for a given window height offsets from the bottom
constexpr int32_t SUR_GBPB = PADDING_BOTTOM; // Surface group box properties bottom
constexpr int32_t SUR_GBPT = SUR_GBPB + 16 + 4 * 21; // Surface group box properties top
constexpr int32_t SUR_GBDB = SUR_GBPT + GROUPBOX_PADDING; // Surface group box details bottom
constexpr int32_t SUR_GBDT = SUR_GBDB + 20 + 4 * 11; // Surface group box details top
constexpr int32_t NumSurfaceProperties = 4;
constexpr int32_t NumSurfaceDetails = 4;
constexpr int32_t SurfacePropertiesHeight = 16 + NumSurfaceProperties * 21;
constexpr int32_t SurfaceDetailsHeight = 20 + NumSurfaceDetails * 11;
static rct_widget SurfaceWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - SUR_GBPT, 0) + 3, GBBB(WH - SUR_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_SURFACE_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Button, 1, GBB(WH - SUR_GBPT, 0, 1), STR_TILE_INSPECTOR_SURFACE_REMOVE_FENCES, STR_NONE }, // WIDX_SURFACE_BUTTON_REMOVE_FENCES
{ WindowWidgetType::Button, 1, GBB(WH - SUR_GBPT, 1, 1), STR_TILE_INSPECTOR_SURFACE_RESTORE_FENCES, STR_NONE }, // WIDX_SURFACE_BUTTON_RESTORE_FENCES
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SUR_GBPT, 2) + 7 * 0), STR_NONE, STR_NONE }, // WIDX_SURFACE_CHECK_CORNER_N
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 2, GBBT(WH - SUR_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SURFACE_CHECK_CORNER_E
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SUR_GBPT, 2) + 7 * 2), STR_NONE, STR_NONE }, // WIDX_SURFACE_CHECK_CORNER_S
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 0, GBBT(WH - SUR_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SURFACE_CHECK_CORNER_W
{ WindowWidgetType::Checkbox, 1, GBBF(WH - SUR_GBPT, 0, 4), STR_TILE_INSPECTOR_SURFACE_DIAGONAL, STR_NONE }, // WIDX_SURFACE_CHECK_DIAGONAL
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_SURFACE_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 0), PropertyButtonSize, WindowWidgetType::Button, WindowColour::Secondary, STR_TILE_INSPECTOR_SURFACE_REMOVE_FENCES), // WIDX_SURFACE_BUTTON_REMOVE_FENCES
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 1), PropertyButtonSize, WindowWidgetType::Button, WindowColour::Secondary, STR_TILE_INSPECTOR_SURFACE_RESTORE_FENCES), // WIDX_SURFACE_BUTTON_RESTORE_FENCES
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 1, 0), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SURFACE_CHECK_CORNER_N
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 2, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SURFACE_CHECK_CORNER_E
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 1, 2), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SURFACE_CHECK_CORNER_S
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 0, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SURFACE_CHECK_CORNER_W
MakeWidget(PropertyRowCol({ 12, 0 }, 4, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_SURFACE_DIAGONAL), // WIDX_SURFACE_CHECK_DIAGONAL
WIDGETS_END,
};
constexpr int32_t PAT_GBPB = PADDING_BOTTOM; // Path group box properties bottom
constexpr int32_t PAT_GBPT = PAT_GBPB + 16 + 5 * 21; // Path group box properties top
constexpr int32_t PAT_GBDB = PAT_GBPT + GROUPBOX_PADDING; // Path group box info bottom
constexpr int32_t PAT_GBDT = PAT_GBDB + 20 + 2 * 11; // Path group box info top
constexpr int32_t NumPathProperties = 5;
constexpr int32_t NumPathDetails = 2;
constexpr int32_t PathPropertiesHeight = 16 + NumPathProperties * 21;
constexpr int32_t PathDetailsHeight = 20 + NumPathDetails * 11;
static rct_widget PathWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - PAT_GBPT, 0) + 3, GBBB(WH - PAT_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_PATH_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Checkbox, 1, GBBF(WH - PAT_GBPT, 0, 1), STR_TILE_INSPECTOR_PATH_BROKEN, STR_NONE }, // WIDX_PATH_CHECK_BROKEN
{ WindowWidgetType::Checkbox, 1, GBBF(WH - PAT_GBPT, 0, 2), STR_TILE_INSPECTOR_PATH_SLOPED, STR_NONE }, // WIDX_PATH_CHECK_SLOPED
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 3, GBBT(WH - PAT_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_NE
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 4, GBBT(WH - PAT_GBPT, 2) + 7 * 2), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_E
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 3, GBBT(WH - PAT_GBPT, 2) + 7 * 3), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_SE
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 2, GBBT(WH - PAT_GBPT, 2) + 7 * 4), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_S
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - PAT_GBPT, 2) + 7 * 3), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_SW
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 0, GBBT(WH - PAT_GBPT, 2) + 7 * 2), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_W
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - PAT_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_NW
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 2, GBBT(WH - PAT_GBPT, 2) + 7 * 0), STR_NONE, STR_NONE }, // WIDX_PATH_CHECK_EDGE_N
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_PATH_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_PATH_BROKEN), // WIDX_PATH_CHECK_BROKEN
MakeWidget(PropertyRowCol({ 12, 0 }, 2, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_PATH_SLOPED), // WIDX_PATH_CHECK_SLOPED
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 3, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_NE
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 4, 2), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_E
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 3, 3), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_SE
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 2, 4), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_S
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 1, 3), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_SW
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 0, 2), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_W
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 1, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_NW
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 3, 1), 2, 0), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_PATH_CHECK_EDGE_N
WIDGETS_END,
};
constexpr int32_t TRA_GBPB = PADDING_BOTTOM; // Track group box properties bottom
constexpr int32_t TRA_GBPT = TRA_GBPB + 16 + 5 * 21; // Track group box properties top
constexpr int32_t TRA_GBDB = TRA_GBPT + GROUPBOX_PADDING; // Track group box info bottom
constexpr int32_t TRA_GBDT = TRA_GBDB + 20 + 7 * 11; // Track group box info top
constexpr int32_t NumTrackProperties = 5;
constexpr int32_t NumTrackDetails = 7;
constexpr int32_t TrackPropertiesHeight = 16 + NumTrackProperties * 21;
constexpr int32_t TrackDetailsHeight = 20 + NumTrackDetails * 11;
static rct_widget TrackWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
{ WindowWidgetType::Checkbox, 1, GBBF(WH - TRA_GBPT, 0, 0), STR_TILE_INSPECTOR_TRACK_ENTIRE_TRACK_PIECE, STR_NONE }, // WIDX_TRACK_CHECK_APPLY_TO_ALL
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - TRA_GBPT, 1) + 3, GBBB(WH - TRA_GBPT, 1) - 3, STR_NONE, STR_NONE), // WIDX_TRACK_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Checkbox, 1, GBBF(WH - TRA_GBPT, 0, 2), STR_TILE_INSPECTOR_TRACK_CHAIN_LIFT, STR_NONE }, // WIDX_TRACK_CHECK_CHAIN_LIFT
{ WindowWidgetType::Checkbox, 1, GBBF(WH - TRA_GBPT, 0, 3), STR_TILE_INSPECTOR_TRACK_BLOCK_BRAKE, STR_NONE }, // WIDX_PATH_CHECK_BLOCK_BRAKE_CLOSED
{ WindowWidgetType::Checkbox, 1, GBBF(WH - TRA_GBPT, 0, 4), STR_TILE_INSPECTOR_TRACK_IS_INDESTRUCTIBLE, STR_NONE }, // WIDX_PATH_CHECK_IS_INDESTRUCTIBLE
MakeWidget(PropertyRowCol({ 12, 0}, 0, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_TRACK_ENTIRE_TRACK_PIECE), // WIDX_TRACK_CHECK_APPLY_TO_ALL
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 1, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_TRACK_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(PropertyRowCol({ 12, 0}, 2, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_TRACK_CHAIN_LIFT), // WIDX_TRACK_CHECK_CHAIN_LIFT
MakeWidget(PropertyRowCol({ 12, 0}, 3, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_TRACK_BLOCK_BRAKE), // WIDX_TRACK_CHECK_BLOCK_BRAKE_CLOSED
MakeWidget(PropertyRowCol({ 12, 0}, 4, 0), PropertyFullWidth, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_TILE_INSPECTOR_TRACK_IS_INDESTRUCTIBLE), // WIDX_TRACK_CHECK_IS_INDESTRUCTIBLE
WIDGETS_END,
};
constexpr int32_t SCE_GBPB = PADDING_BOTTOM; // Scenery group box properties bottom
constexpr int32_t SCE_GBPT = SCE_GBPB + 16 + 4 * 21; // Scenery group box properties top
constexpr int32_t SCE_GBDB = SCE_GBPT + GROUPBOX_PADDING; // Scenery group box info bottom
constexpr int32_t SCE_GBDT = SCE_GBDB + 20 + 3 * 11; // Scenery group box info top
constexpr int32_t NumSceneryProperties = 4; // The checkbox groups both count for 2 rows
constexpr int32_t NumSceneryDetails = 4;
constexpr int32_t SceneryPropertiesHeight = 16 + NumSceneryProperties * 21;
constexpr int32_t SceneryDetailsHeight = 20 + NumSceneryDetails * 11;
static rct_widget SceneryWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - SCE_GBPT, 0) + 3, GBBB(WH - SCE_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_SCENERY_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SCE_GBPT, 1) + 7 * 0), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_QUARTER_N
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 2, GBBT(WH - SCE_GBPT, 1) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_QUARTER_E
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SCE_GBPT, 1) + 7 * 2), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_QUARTER_S
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 0, GBBT(WH - SCE_GBPT, 1) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_QUARTER_W
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SCE_GBPT, 2) + 7 * 0), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_COLLISION_N
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 2, GBBT(WH - SCE_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_COLLISION_E
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - SCE_GBPT, 2) + 7 * 2), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_COLLISION_S
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 0, GBBT(WH - SCE_GBPT, 2) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_SCENERY_CHECK_COLLISION_W
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_SCENERY_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 1, 0), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_QUARTER_N
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 2, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_QUARTER_E
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 1, 2), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_QUARTER_S
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 0, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_QUARTER_W
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 2, 1), 1, 0), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_COLLISION_N
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 2, 1), 2, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_COLLISION_E
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 2, 1), 1, 2), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_COLLISION_S
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 2, 1), 0, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_SCENERY_CHECK_COLLISION_W
WIDGETS_END,
};
constexpr int32_t ENT_GBPB = PADDING_BOTTOM; // Entrance group box properties bottom
constexpr int32_t ENT_GBPT = ENT_GBPB + 16 + 2 * 21; // Entrance group box properties top
constexpr int32_t ENT_GBDB = ENT_GBPT + GROUPBOX_PADDING; // Entrance group box info bottom
constexpr int32_t ENT_GBDT = ENT_GBDB + 20 + 4 * 11; // Entrance group box info top
constexpr int32_t NumEntranceProperties = 2;
constexpr int32_t NumEntranceDetails = 4;
constexpr int32_t EntrancePropertiesHeight = 16 + NumEntranceProperties * 21;
constexpr int32_t EntranceDetailsHeight = 20 + NumEntranceDetails * 11;
static rct_widget EntranceWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - ENT_GBPT, 0) + 3, GBBB(WH - ENT_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_ENTRANCE_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Button, 1, GBB(WH - ENT_GBPT, 0, 1), STR_TILE_INSPECTOR_ENTRANCE_MAKE_USABLE, STR_TILE_INSPECTOR_ENTRANCE_MAKE_USABLE_TIP }, // WIDX_ENTRANCE_BUTTON_MAKE_USABLE
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_ENTRANCE_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 0), PropertyButtonSize, WindowWidgetType::Button, WindowColour::Secondary, STR_TILE_INSPECTOR_ENTRANCE_MAKE_USABLE, STR_TILE_INSPECTOR_ENTRANCE_MAKE_USABLE_TIP), // WIDX_ENTRANCE_BUTTON_MAKE_USABLE
WIDGETS_END,
};
constexpr int32_t WALL_GBPB = PADDING_BOTTOM; // Wall group box properties bottom
constexpr int32_t WALL_GBPT = WALL_GBPB + 16 + 3 * 21; // Wall group box properties top
constexpr int32_t WALL_GBDB = WALL_GBPT + GROUPBOX_PADDING; // Wall group box info bottom
constexpr int32_t WALL_GBDT = WALL_GBDB + 20 + 2 * 11; // Wall group box info top
constexpr int32_t NumWallProperties = 3;
constexpr int32_t NumWallDetails = 2;
constexpr int32_t WallPropertiesHeight = 16 + NumWallProperties * 21;
constexpr int32_t WallDetailsHeight = 20 + NumWallDetails * 11;
static rct_widget WallWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - WALL_GBPT, 0) + 3, GBBB(WH - WALL_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_WALL_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::DropdownMenu, 1, GBD(WH - WALL_GBPT, 1, 1), STR_NONE, STR_NONE }, // WIDX_WALL_DROPDOWN_SLOPE
{ WindowWidgetType::Button, 1, GBDB(WH - WALL_GBPT, 1, 1), STR_DROPDOWN_GLYPH, STR_NONE }, // WIDX_WALL_DROPDOWN_SLOPE_BUTTON
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - WALL_GBPT, 2) + 3, GBBB(WH - WALL_GBPT, 2) - 3, STR_NONE, STR_NONE), // WIDX_WALL_SPINNER_ANIMATION_FRAME{,_INCREASE,_DECREASE}
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_WALL_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 1), PropertyButtonSize, WindowWidgetType::DropdownMenu, WindowColour::Secondary), // WIDX_WALL_DROPDOWN_SLOPE
MakeWidget(PropertyRowCol({ 12 + PropertyButtonSize.width - 12, 0 }, 1, 1), { 11, 12}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH), // WIDX_WALL_DROPDOWN_SLOPE_BUTTON
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 2, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_WALL_SPINNER_ANIMATION_FRAME{,_INCREASE,_DECREASE}
WIDGETS_END,
};
constexpr int32_t LAR_GBPB = PADDING_BOTTOM; // Large scenery group box properties bottom
constexpr int32_t LAR_GBPT = LAR_GBPB + 16 + 1 * 21; // Large scenery group box properties top
constexpr int32_t LAR_GBDB = LAR_GBPT + GROUPBOX_PADDING; // Large scenery group box info bottom
constexpr int32_t LAR_GBDT = LAR_GBDB + 20 + 3 * 11; // Large scenery group box info top
constexpr int32_t NumLargeSceneryProperties = 1;
constexpr int32_t NumLargeSceneryDetails = 3;
constexpr int32_t LargeSceneryPropertiesHeight = 16 + NumLargeSceneryProperties * 21;
constexpr int32_t LargeSceneryDetailsHeight = 20 + NumLargeSceneryDetails * 11;
static rct_widget LargeSceneryWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - LAR_GBPT, 0) + 3, GBBB(WH - LAR_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_LARGE_SCENERY_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_LARGE_SCENERY_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
WIDGETS_END,
};
constexpr int32_t BAN_GBPB = PADDING_BOTTOM; // Banner group box properties bottom
constexpr int32_t BAN_GBPT = BAN_GBPB + 16 + 3 * 21; // Banner group box properties top
constexpr int32_t BAN_GBDB = BAN_GBPT + GROUPBOX_PADDING; // Banner group box info bottom
constexpr int32_t BAN_GBDT = BAN_GBDB + 20 + 1 * 11; // Banner group box info top
constexpr int32_t NumBannerProperties = 3;
constexpr int32_t NumBannerDetails = 1;
constexpr int32_t BannerPropertiesHeight = 16 + NumBannerProperties * 21;
constexpr int32_t BannerDetailsHeight = 20 + NumBannerDetails * 11;
static rct_widget BannerWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - BAN_GBPT, 0) + 3, GBBB(WH - BAN_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_BANNER_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 3, GBBT(WH - BAN_GBPT, 1) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_BANNER_CHECK_BLOCK_NE
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 3, GBBT(WH - BAN_GBPT, 1) + 7 * 3), STR_NONE, STR_NONE }, // WIDX_BANNER_CHECK_BLOCK_SE
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - BAN_GBPT, 1) + 7 * 3), STR_NONE, STR_NONE }, // WIDX_BANNER_CHECK_BLOCK_SW
{ WindowWidgetType::Checkbox, 1, CHK(GBBL(1) + 14 * 1, GBBT(WH - BAN_GBPT, 1) + 7 * 1), STR_NONE, STR_NONE }, // WIDX_BANNER_CHECK_BLOCK_NW
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_BANNER_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 3, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_BANNER_CHECK_BLOCK_NE
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 3, 3), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_BANNER_CHECK_BLOCK_SE
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 1, 3), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_BANNER_CHECK_BLOCK_SW
MakeWidget(CheckboxGroupOffset(PropertyRowCol({ 12, 0 }, 1, 1), 1, 1), { 12, 12 }, WindowWidgetType::Checkbox, WindowColour::Secondary), // WIDX_BANNER_CHECK_BLOCK_NW
WIDGETS_END,
};
constexpr int32_t COR_GBPB = PADDING_BOTTOM; // Corrupt element group box properties bottom
constexpr int32_t COR_GBPT = COR_GBPB + 16 + 2 * 21; // Corrupt element group box properties top
constexpr int32_t COR_GBDB = COR_GBPT + GROUPBOX_PADDING; // Corrupt element group box info bottom
constexpr int32_t COR_GBDT = COR_GBDB + 20 + 0 * 11; // Corrupt element group box info top
constexpr int32_t NumCorruptProperties = 2;
constexpr int32_t NumCorruptDetails = 0;
constexpr int32_t CorruptPropertiesHeight = 16 + NumCorruptProperties * 21;
constexpr int32_t CorruptDetailsHeight = 20 + NumCorruptDetails * 11;
static rct_widget CorruptWidgets[] = {
MAIN_TILE_INSPECTOR_WIDGETS,
SPINNER_WIDGETS (1, GBBL(1), GBBR(1), GBBT(WH - COR_GBPT, 0) + 3, GBBB(WH - COR_GBPT, 0) - 3, STR_NONE, STR_NONE), // WIDX_CORRUPT_SPINNER_HEIGHT{,_INCREASE,_DECREASE}
{ WindowWidgetType::Button, 1, GBB(WH - SUR_GBPT, 0, 1), STR_TILE_INSPECTOR_CLAMP_TO_NEXT, STR_TILE_INSPECTOR_CLAMP_TO_NEXT_TIP }, // WIDX_CORRUPT_BUTTON_CLAMP
MakeSpinnerWidgets(PropertyRowCol({ 12, 0 }, 0, 1), PropertyButtonSize, WindowWidgetType::Spinner, WindowColour::Secondary), // WIDX_CORRUPT_SPINNER_HEIGHT
MakeWidget(PropertyRowCol({ 12, 0 }, 1, 0), PropertyButtonSize, WindowWidgetType::Button, WindowColour::Secondary,STR_TILE_INSPECTOR_CLAMP_TO_NEXT, STR_TILE_INSPECTOR_CLAMP_TO_NEXT_TIP ), // WIDX_CORRUPT_BUTTON_CLAMP
WIDGETS_END,
};
@ -390,23 +399,38 @@ static rct_widget *PageWidgets[] = {
};
// clang-format on
static struct
struct TileInspectorGroupboxSettings
{
// Offsets from the bottom of the window
int16_t details_top_offset, details_bottom_offset;
int16_t properties_top_offset, properties_bottom_offset;
// String to be displayed in the details groupbox
rct_string_id string_id;
} PageGroupBoxSettings[] = {
{ SUR_GBDT, SUR_GBDB, SUR_GBPT, SUR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_SURFACE_INFO },
{ PAT_GBDT, PAT_GBDB, PAT_GBPT, PAT_GBPB, STR_TILE_INSPECTOR_GROUPBOX_PATH_INFO },
{ TRA_GBDT, TRA_GBDB, TRA_GBPT, TRA_GBPB, STR_TILE_INSPECTOR_GROUPBOX_TRACK_INFO },
{ SCE_GBDT, SCE_GBDB, SCE_GBPT, SCE_GBPB, STR_TILE_INSPECTOR_GROUPBOX_SCENERY_INFO },
{ ENT_GBDT, ENT_GBDB, ENT_GBPT, ENT_GBPB, STR_TILE_INSPECTOR_GROUPBOX_ENTRANCE_INFO },
{ WALL_GBDT, WALL_GBDB, WALL_GBPT, WALL_GBPB, STR_TILE_INSPECTOR_GROUPBOX_WALL_INFO },
{ LAR_GBDT, LAR_GBDB, LAR_GBPT, LAR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_LARGE_SCENERY_INFO },
{ BAN_GBDT, BAN_GBDB, BAN_GBPT, BAN_GBPB, STR_TILE_INSPECTOR_GROUPBOX_BANNER_INFO },
{ COR_GBDT, COR_GBDB, COR_GBPT, COR_GBPB, STR_TILE_INSPECTOR_GROUPBOX_CORRUPT_INFO },
};
static constexpr TileInspectorGroupboxSettings MakeGroupboxSettings(
int16_t detailsHeight, int16_t propertiesHeight, rct_string_id stringId)
{
TileInspectorGroupboxSettings settings{};
decltype(settings.properties_bottom_offset) offsetSum = 0;
settings.properties_bottom_offset = (offsetSum += PADDING_BOTTOM);
settings.properties_top_offset = (offsetSum += propertiesHeight);
settings.details_bottom_offset = (offsetSum += GROUPBOX_PADDING);
settings.details_top_offset = (offsetSum += detailsHeight);
settings.string_id = stringId;
return settings;
}
static constexpr TileInspectorGroupboxSettings PageGroupBoxSettings[] = {
MakeGroupboxSettings(SurfaceDetailsHeight, SurfacePropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_SURFACE_INFO),
MakeGroupboxSettings(PathDetailsHeight, PathPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_PATH_INFO),
MakeGroupboxSettings(TrackDetailsHeight, TrackPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_TRACK_INFO),
MakeGroupboxSettings(SceneryDetailsHeight, SceneryPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_SCENERY_INFO),
MakeGroupboxSettings(EntranceDetailsHeight, EntrancePropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_ENTRANCE_INFO),
MakeGroupboxSettings(WallDetailsHeight, WallPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_WALL_INFO),
MakeGroupboxSettings(LargeSceneryDetailsHeight, LargeSceneryPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_BANNER_INFO),
MakeGroupboxSettings(BannerDetailsHeight, BannerPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_BANNER_INFO),
MakeGroupboxSettings(CorruptDetailsHeight, CorruptPropertiesHeight, STR_TILE_INSPECTOR_GROUPBOX_CORRUPT_INFO),
};
static constexpr int32_t ViewportInteractionFlags = EnumsToFlags(
@ -973,8 +997,6 @@ static void window_tile_inspector_mouseup(rct_window* w, rct_widgetindex widgetI
static void window_tile_inspector_resize(rct_window* w)
{
w->min_width = WW;
w->min_height = MIN_WH;
if (w->width < w->min_width)
{
w->Invalidate();
@ -1745,60 +1767,27 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
{
WindowDrawWidgets(w, dpi);
// Draw column headers
rct_widget* widget;
if ((widget = &w->widgets[WIDX_COLUMN_TYPE])->type != WindowWidgetType::Empty)
{
DrawTextEllipsised(
dpi, { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width(),
STR_TILE_INSPECTOR_ELEMENT_TYPE, {}, { w->colours[1] });
}
if ((widget = &w->widgets[WIDX_COLUMN_BASEHEIGHT])->type != WindowWidgetType::Empty)
{
DrawTextEllipsised(
dpi, { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width(),
STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT, {}, { w->colours[1] });
}
if ((widget = &w->widgets[WIDX_COLUMN_CLEARANCEHEIGHT])->type != WindowWidgetType::Empty)
{
DrawTextEllipsised(
dpi, { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width(),
STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT, {}, { w->colours[1] });
}
if ((widget = &w->widgets[WIDX_COLUMN_GHOSTFLAG])->type != WindowWidgetType::Empty)
{
DrawTextEllipsised(
dpi, { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width(),
STR_TILE_INSPECTOR_FLAG_GHOST_SHORT, {}, { w->colours[1] });
}
if ((widget = &w->widgets[WIDX_COLUMN_LASTFLAG])->type != WindowWidgetType::Empty)
{
DrawTextEllipsised(
dpi, { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width(),
STR_TILE_INSPECTOR_FLAG_LAST_SHORT, {}, { w->colours[1] });
}
ScreenCoordsXY screenCoords(w->windowPos.x, w->windowPos.y);
// Draw coordinates
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(5, 24), "X:", { COLOUR_WHITE });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(74, 24), "Y:", { COLOUR_WHITE });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(5, 24), "X:", { w->colours[1] });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(74, 24), "Y:", { w->colours[1] });
if (windowTileInspectorTileSelected)
{
auto tileCoords = TileCoordsXY{ windowTileInspectorToolMap };
auto ft = Formatter();
ft.Add<int32_t>(tileCoords.x);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 43, 24 }, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE, TextAlignment::RIGHT });
dpi, screenCoords + ScreenCoordsXY{ 43, 24 }, STR_FORMAT_INTEGER, ft, { w->colours[1], TextAlignment::RIGHT });
ft = Formatter();
ft.Add<int32_t>(tileCoords.y);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 113, 24 }, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE, TextAlignment::RIGHT });
dpi, screenCoords + ScreenCoordsXY{ 113, 24 }, STR_FORMAT_INTEGER, ft, { w->colours[1], TextAlignment::RIGHT });
}
else
{
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(43 - 7, 24), "-", { COLOUR_WHITE });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(113, 24), "-", { COLOUR_WHITE });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(43 - 7, 24), "-", { w->colours[1] });
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(113 - 7, 24), "-", { w->colours[1] });
}
if (windowTileInspectorSelectedIndex != -1)
@ -1826,7 +1815,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
}
auto ft = Formatter();
ft.Add<rct_string_id>(terrainNameId);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SURFACE_TERAIN, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SURFACE_TERAIN, ft, { w->colours[1] });
// Edge texture name
rct_string_id terrainEdgeNameId = STR_EMPTY;
@ -1838,7 +1827,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(terrainEdgeNameId);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SURFACE_EDGE, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SURFACE_EDGE, ft, { w->colours[1] });
// Land ownership
rct_string_id landOwnership;
@ -1855,30 +1844,30 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(landOwnership);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_SURFACE_OWNERSHIP, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_SURFACE_OWNERSHIP, ft, { w->colours[1] });
// Water level
ft = Formatter();
ft.Add<uint32_t>(tileElement->AsSurface()->GetWaterHeight());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_SURFACE_WATER_LEVEL, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_SURFACE_WATER_LEVEL, ft, { w->colours[1] });
// Properties
// Raise / lower label
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7, w->widgets[WIDX_SURFACE_SPINNER_HEIGHT].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_SURFACE_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
// Raised corners
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7, w->widgets[WIDX_SURFACE_CHECK_CORNER_E].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SURFACE_CORNERS, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SURFACE_CORNERS, {}, { w->colours[1] });
break;
}
@ -1888,7 +1877,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Path name
auto ft = Formatter();
ft.Add<rct_string_id>(tileElement->AsPath()->GetSurfaceDescriptor()->Name);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_PATH_NAME, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_PATH_NAME, ft, { w->colours[1] });
// Path addition
if (tileElement->AsPath()->HasAddition())
@ -1901,29 +1890,29 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(additionNameId);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_PATH_ADDITIONS, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_PATH_ADDITIONS, ft, { w->colours[1] });
}
else
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_PATH_ADDITIONS_NONE, {},
{ COLOUR_WHITE });
{ w->colours[1] });
// Properties
// Raise / lower label
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7, w->widgets[WIDX_PATH_SPINNER_HEIGHT].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_PATH_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
// Path connections
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7, w->widgets[WIDX_PATH_CHECK_EDGE_W].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_PATH_CONNECTED_EDGES, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_PATH_CONNECTED_EDGES, {}, { w->colours[1] });
break;
}
@ -1936,7 +1925,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Ride ID
auto ft = Formatter();
ft.Add<int16_t>(rideId);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_TRACK_RIDE_ID, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_TRACK_RIDE_ID, ft, { w->colours[1] });
// Ride name
if (ride != nullptr)
@ -1944,7 +1933,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ride->FormatNameTo(ft);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_TRACK_RIDE_NAME, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_TRACK_RIDE_NAME, ft, { w->colours[1] });
}
// Ride type. Individual pieces may be of a different ride type from the ride it belongs to.
@ -1952,18 +1941,18 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(rtd.Naming.Name);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_TRACK_RIDE_TYPE, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_TRACK_RIDE_TYPE, ft, { w->colours[1] });
// Track
ft = Formatter();
ft.Add<track_type_t>(trackElement->GetTrackType());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_TRACK_PIECE_ID, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_TRACK_PIECE_ID, ft, { w->colours[1] });
ft = Formatter();
ft.Add<track_type_t>(trackElement->GetSequenceIndex());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 44 }, STR_TILE_INSPECTOR_TRACK_SEQUENCE, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 44 }, STR_TILE_INSPECTOR_TRACK_SEQUENCE, ft, { w->colours[1] });
if (trackElement->IsStation())
{
int16_t stationIndex = trackElement->GetStationIndex();
@ -1971,7 +1960,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft.Add<rct_string_id>(STR_COMMA16);
ft.Add<int16_t>(stationIndex);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
}
else
{
@ -1980,24 +1969,24 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft.Add<rct_string_id>(STR_STRING);
ft.Add<char*>(stationNone);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
}
ft = Formatter();
ft.Add<rct_string_id>(ColourSchemeNames[trackElement->GetColourScheme()]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 66 }, STR_TILE_INSPECTOR_COLOUR_SCHEME, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 66 }, STR_TILE_INSPECTOR_COLOUR_SCHEME, ft, { w->colours[1] });
// Properties
// Raise / lower label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_TRACK_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_TRACK_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
break;
}
@ -2007,7 +1996,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Age
auto ft = Formatter();
ft.Add<int16_t>(tileElement->AsSmallScenery()->GetAge());
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SCENERY_AGE, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SCENERY_AGE, ft, { w->colours[1] });
// Quadrant value
const auto* sceneryEntry = tileElement->AsSmallScenery()->GetEntry();
@ -2023,35 +2012,36 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(quadrant_string_idx[quadrant]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SCENERY_QUADRANT, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SCENERY_QUADRANT, ft,
{ w->colours[1] });
}
// Scenery ID
ft = Formatter();
ft.Add<ObjectEntryIndex>(tileElement->AsSmallScenery()->GetEntryIndex());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_SCENERY_ENTRY_IDX, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_SCENERY_ENTRY_IDX, ft, { w->colours[1] });
// Properties
// Raise / Lower
screenCoords.y = w->windowPos.y + w->widgets[WIDX_SCENERY_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_SCENERY_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
// Quarter tile
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7,
w->widgets[WIDX_SCENERY_CHECK_QUARTER_E].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SCENERY_QUADRANT_LABEL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SCENERY_QUADRANT_LABEL, {}, { w->colours[1] });
// Collision
screenCoords.y = w->windowPos.y + w->widgets[WIDX_SCENERY_CHECK_COLLISION_E].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_COLLISSION, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_COLLISSION, {}, { w->colours[1] });
break;
}
@ -2061,7 +2051,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Entrance type
auto ft = Formatter();
ft.Add<rct_string_id>(EntranceTypeStringIds[tileElement->AsEntrance()->GetEntranceType()]);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_ENTRANCE_TYPE, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_ENTRANCE_TYPE, ft, { w->colours[1] });
if (tileElement->AsEntrance()->GetEntranceType() == ENTRANCE_TYPE_PARK_ENTRANCE)
{
@ -2070,7 +2060,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft.Add<rct_string_id>(park_entrance_get_index({ windowTileInspectorToolMap, tileElement->GetBaseZ() }));
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
}
else
{
@ -2081,14 +2071,14 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Ride entrance ID
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
}
else
{
// Ride exit ID
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRANCE_EXIT_ID, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
}
}
@ -2098,7 +2088,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<rct_string_id>(ParkEntrancePartStringIds[tileElement->AsEntrance()->GetSequenceIndex()]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRANCE_PART, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRANCE_PART, ft, { w->colours[1] });
}
else
{
@ -2106,26 +2096,27 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
ft.Add<ride_id_t>(tileElement->AsEntrance()->GetRideIndex());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRANCE_RIDE_ID, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRANCE_RIDE_ID, ft,
{ w->colours[1] });
// Station index
int16_t stationIndex = tileElement->AsEntrance()->GetStationIndex();
ft = Formatter();
ft.Add<rct_string_id>(STR_COMMA16);
ft.Add<int16_t>(stationIndex);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { COLOUR_WHITE });
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
}
// Properties
// Raise / Lower
screenCoords.y = w->windowPos.y + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_ENTRANCE_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
break;
}
@ -2135,7 +2126,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Type
auto ft = Formatter();
ft.Add<ObjectEntryIndex>(tileElement->AsWall()->GetEntryIndex());
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_TYPE, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_TYPE, ft, { w->colours[1] });
// Banner info
auto banner = tileElement->AsWall()->GetBanner();
@ -2145,37 +2136,37 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
banner->FormatTextTo(ft);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRY_BANNER_TEXT, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
}
else
{
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRY_BANNER_NONE, {},
{ COLOUR_WHITE });
{ w->colours[1] });
}
// Properties
// Raise / lower label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_WALL_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_WALL_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
// Slope label
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_GROUPBOX_DETAILS].left + 7, w->widgets[WIDX_WALL_DROPDOWN_SLOPE].top };
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_SLOPE, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_SLOPE, {}, { w->colours[1] });
// Animation frame label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_WALL_SPINNER_ANIMATION_FRAME].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_ANIMATION_FRAME, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_WALL_ANIMATION_FRAME, {}, { w->colours[1] });
// Current animation frame
colour_t colour = COLOUR_WHITE;
colour_t colour = w->colours[1];
if (WidgetIsDisabled(w, WIDX_WALL_SPINNER_ANIMATION_FRAME))
{
colour = w->colours[0] | COLOUR_FLAG_INSET;
@ -2195,14 +2186,14 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
ObjectEntryIndex largeSceneryType = sceneryElement->GetEntryIndex();
auto ft = Formatter();
ft.Add<ObjectEntryIndex>(largeSceneryType);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_LARGE_SCENERY_TYPE, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_LARGE_SCENERY_TYPE, ft, { w->colours[1] });
// Part ID
ft = Formatter();
ft.Add<int16_t>(sceneryElement->GetSequenceIndex());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_LARGE_SCENERY_PIECE_ID, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
// Banner info
auto* largeSceneryEntry = get_large_scenery_entry(largeSceneryType);
@ -2215,26 +2206,26 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
banner->FormatTextTo(ft);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRY_BANNER_TEXT, ft,
{ COLOUR_WHITE });
{ w->colours[1] });
}
}
else
{
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRY_BANNER_NONE, {},
{ COLOUR_WHITE });
{ w->colours[1] });
}
// Properties
// Raise / lower label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_LARGE_SCENERY_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_LARGE_SCENERY_SPINNER_HEIGHT].left + 3;
ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
break;
}
@ -2247,24 +2238,24 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
{
Formatter ft;
banner->FormatTextTo(ft);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_ENTRY_BANNER_TEXT, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_ENTRY_BANNER_TEXT, ft, { w->colours[1] });
}
// Properties
// Raise / lower label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_BANNER_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_BANNER_SPINNER_HEIGHT].left + 3;
auto ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
// Blocked paths
screenCoords.y += 28;
screenCoords.x = w->windowPos.x + w->widgets[WIDX_GROUPBOX_DETAILS].left + 7;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BANNER_BLOCKED_PATHS, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BANNER_BLOCKED_PATHS, {}, { w->colours[1] });
break;
}
@ -2273,13 +2264,13 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Properties
// Raise / lower label
screenCoords.y = w->windowPos.y + w->widgets[WIDX_CORRUPT_SPINNER_HEIGHT].top;
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_BASE_HEIGHT_FULL, {}, { w->colours[1] });
// Current base height
screenCoords.x = w->windowPos.x + w->widgets[WIDX_CORRUPT_SPINNER_HEIGHT].left + 3;
auto ft = Formatter();
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { COLOUR_WHITE });
DrawTextBasic(dpi, screenCoords, STR_FORMAT_INTEGER, ft, { w->colours[1] });
break;
}
@ -2387,24 +2378,29 @@ static void window_tile_inspector_scrollpaint(rct_window* w, rct_drawpixelinfo*
const rct_string_id stringFormat = (selectedRow || hoveredRow) ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID;
// Undo relative scroll offset, but keep the 3 pixel padding
screenCoords.x = -w->widgets[WIDX_LIST].left;
// Element name
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<char*>(typeName);
DrawTextEllipsised(dpi, screenCoords + ScreenCoordsXY{ COL_X_TYPE + 3, 0 }, COL_X_BH, stringFormat, ft); // 3px padding
DrawTextEllipsised(dpi, screenCoords + ScreenCoordsXY{ TypeColumnXY.x, 0 }, TypeColumnSize.width, stringFormat, ft);
// Base height
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ COL_X_BH, 0 }, stringFormat, ft);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ BaseHeightColumnXY.x, 0 }, stringFormat, ft);
// Clearance height
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(clearanceHeight);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ COL_X_CH, 0 }, stringFormat, ft);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ ClearanceHeightColumnXY.x, 0 }, stringFormat, ft);
// Direction
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(tileElement->GetDirection());
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ DirectionColumnXY.x, 0 }, stringFormat, ft);
// Checkmarks for ghost and last for tile
ft = Formatter();
@ -2412,11 +2408,11 @@ static void window_tile_inspector_scrollpaint(rct_window* w, rct_drawpixelinfo*
ft.Add<char*>(CheckBoxMarkString);
if (ghost)
{
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ COL_X_GF, 0 }, stringFormat, ft);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ GhostFlagColumnXY.x, 0 }, stringFormat, ft);
}
if (last)
{
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ COL_X_LF, 0 }, stringFormat, ft);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ LastFlagColumnXY.x, 0 }, stringFormat, ft);
}
screenCoords.y -= SCROLLABLE_ROW_HEIGHT;

View File

@ -133,7 +133,7 @@ static void window_track_place_clear_mini_preview()
*/
rct_window* window_track_place_open(const track_design_file_ref* tdFileRef)
{
_trackDesign = track_design_open(tdFileRef->path);
_trackDesign = TrackDesignImport(tdFileRef->path);
if (_trackDesign == nullptr)
{
return nullptr;
@ -197,7 +197,7 @@ static void window_track_place_mouseup(rct_window* w, rct_widgetindex widgetInde
window_track_place_draw_mini_preview(_trackDesign.get());
break;
case WIDX_MIRROR:
track_design_mirror(_trackDesign.get());
TrackDesignMirror(_trackDesign.get());
_currentTrackPieceDirection = (0 - _currentTrackPieceDirection) & 3;
w->Invalidate();
_windowTrackPlaceLast.SetNull();
@ -268,8 +268,7 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI
// Check if tool map position has changed since last update
if (mapCoords == _windowTrackPlaceLast)
{
place_virtual_track(
_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(PreviewRideId), { mapCoords, 0 });
TrackDesignPreviewDrawOutlines(_trackDesign.get(), GetOrAllocateRide(PreviewRideId), { mapCoords, 0 });
return;
}
@ -309,7 +308,7 @@ static void window_track_place_toolupdate(rct_window* w, rct_widgetindex widgetI
widget_invalidate(w, WIDX_PRICE);
}
place_virtual_track(_trackDesign.get(), PTD_OPERATION_DRAW_OUTLINES, true, GetOrAllocateRide(PreviewRideId), trackLoc);
TrackDesignPreviewDrawOutlines(_trackDesign.get(), GetOrAllocateRide(PreviewRideId), trackLoc);
}
/**
@ -413,7 +412,7 @@ static void window_track_place_clear_provisional()
auto ride = get_ride(_window_track_place_ride_index);
if (ride != nullptr)
{
place_virtual_track(_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride, _windowTrackPlaceLastValid);
TrackDesignPreviewRemoveGhosts(_trackDesign.get(), ride, _windowTrackPlaceLastValid);
_window_track_place_last_was_valid = false;
}
}
@ -426,7 +425,7 @@ void TrackPlaceClearProvisionalTemporarily()
auto ride = get_ride(_window_track_place_ride_index);
if (ride != nullptr)
{
place_virtual_track(_trackDesign.get(), PTD_OPERATION_REMOVE_GHOST, true, ride, _windowTrackPlaceLastValid);
TrackDesignPreviewRemoveGhosts(_trackDesign.get(), ride, _windowTrackPlaceLastValid);
}
}
}
@ -471,9 +470,7 @@ static int32_t window_track_place_get_base_z(const CoordsXY& loc)
if (surfaceElement->GetWaterHeight() > 0)
z = std::max(z, surfaceElement->GetWaterHeight());
return z
+ place_virtual_track(
_trackDesign.get(), PTD_OPERATION_GET_PLACE_Z, true, GetOrAllocateRide(PreviewRideId), { loc, z });
return z + TrackDesignGetZPlacement(_trackDesign.get(), GetOrAllocateRide(PreviewRideId), { loc, z });
}
/**

View File

@ -89,21 +89,14 @@ private:
return;
}
// Convert filter to lowercase
utf8 filterStringLower[sizeof(_filterString)];
String::Set(filterStringLower, sizeof(filterStringLower), _filterString);
for (int32_t i = 0; filterStringLower[i] != '\0'; i++)
filterStringLower[i] = static_cast<utf8>(tolower(filterStringLower[i]));
// Convert filter to uppercase
const auto filterStringUpper = String::ToUpper(_filterString);
// Fill the set with indices for tracks that match the filter
for (uint16_t i = 0; i < _trackDesigns.size(); i++)
{
utf8 trackNameLower[USER_STRING_MAX_LENGTH];
String::Set(trackNameLower, sizeof(trackNameLower), _trackDesigns[i].name);
for (int32_t j = 0; trackNameLower[j] != '\0'; j++)
trackNameLower[j] = static_cast<utf8>(tolower(trackNameLower[j]));
if (strstr(trackNameLower, filterStringLower) != nullptr)
const auto trackNameUpper = String::ToUpper(_trackDesigns[i].name);
if (trackNameUpper.find(filterStringUpper) != std::string::npos)
{
_filteredTrackIds.push_back(i);
}
@ -193,10 +186,10 @@ private:
bool LoadDesignPreview(utf8* path)
{
_loadedTrackDesign = track_design_open(path);
_loadedTrackDesign = TrackDesignImport(path);
if (_loadedTrackDesign != nullptr)
{
track_design_draw_preview(_loadedTrackDesign.get(), _trackDesignPreviewPixels.data());
TrackDesignDrawPreview(_loadedTrackDesign.get(), _trackDesignPreviewPixels.data());
return true;
}
return false;

View File

@ -18,10 +18,6 @@ struct rct_s6_data;
enum class GameCommand : int32_t
{
PasswordlessLogin = -3,
ToggleSceneryCluster = -2,
Chat = -1,
SetRideAppearance, // GA
SetLandHeight, // GA
TogglePause, // GA

View File

@ -15,7 +15,7 @@
#include <set>
#include <string>
struct GameAction;
class GameAction;
namespace OpenRCT2
{

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(BalloonPressAction, GameCommand::BalloonPress, GameActions::Result)
class BalloonPressAction final : public GameActionBase<GameCommand::BalloonPress>
{
uint16_t _spriteIndex{ SPRITE_INDEX_NULL };
@ -19,11 +19,11 @@ public:
BalloonPressAction() = default;
BalloonPressAction(uint16_t spriteIndex);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -16,7 +16,7 @@ struct BannerPlaceActionResult
BannerIndex bannerId = BANNER_INDEX_NULL;
};
DEFINE_GAME_ACTION(BannerPlaceAction, GameCommand::PlaceBanner, GameActions::Result)
class BannerPlaceAction final : public GameActionBase<GameCommand::PlaceBanner>
{
private:
CoordsXYZD _loc;
@ -27,11 +27,11 @@ public:
BannerPlaceAction() = default;
BannerPlaceAction(const CoordsXYZD& loc, ObjectEntryIndex bannerType, colour_t primaryColour);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(BannerRemoveAction, GameCommand::RemoveBanner, GameActions::Result)
class BannerRemoveAction final : public GameActionBase<GameCommand::RemoveBanner>
{
private:
CoordsXYZD _loc;
@ -20,11 +20,11 @@ public:
BannerRemoveAction() = default;
BannerRemoveAction(const CoordsXYZD& loc);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(BannerSetColourAction, GameCommand::SetBannerColour, GameActions::Result)
class BannerSetColourAction final : public GameActionBase<GameCommand::SetBannerColour>
{
private:
CoordsXYZD _loc;
@ -21,11 +21,11 @@ public:
BannerSetColourAction() = default;
BannerSetColourAction(const CoordsXYZD& loc, uint8_t primaryColour);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(BannerSetNameAction, GameCommand::SetBannerName, GameActions::Result)
class BannerSetNameAction final : public GameActionBase<GameCommand::SetBannerName>
{
private:
BannerIndex _bannerIndex{ BANNER_INDEX_NULL };
@ -21,11 +21,11 @@ public:
BannerSetNameAction() = default;
BannerSetNameAction(BannerIndex bannerIndex, const std::string& name);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -21,7 +21,7 @@ enum class BannerSetStyleType : uint8_t
Count
};
DEFINE_GAME_ACTION(BannerSetStyleAction, GameCommand::SetBannerStyle, GameActions::Result)
class BannerSetStyleAction final : public GameActionBase<GameCommand::SetBannerStyle>
{
private:
BannerSetStyleType _type{ BannerSetStyleType::Count };
@ -32,11 +32,11 @@ public:
BannerSetStyleAction() = default;
BannerSetStyleAction(BannerSetStyleType type, uint8_t bannerIndex, uint8_t parameter);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -12,16 +12,16 @@
#include "../world/Map.h"
#include "GameAction.h"
DEFINE_GAME_ACTION(ChangeMapSizeAction, GameCommand::ChangeMapSize, GameActions::Result)
class ChangeMapSizeAction final : public GameActionBase<GameCommand::ChangeMapSize>
{
public:
ChangeMapSizeAction() = default;
ChangeMapSizeAction(const int32_t targetSize);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -24,7 +24,7 @@ namespace CLEARABLE_ITEMS
constexpr ClearableItems SCENERY_FOOTPATH = 1 << 2;
} // namespace CLEARABLE_ITEMS
DEFINE_GAME_ACTION(ClearAction, GameCommand::ClearScenery, GameActions::Result)
class ClearAction final : public GameActionBase<GameCommand::ClearScenery>
{
private:
MapRange _range;
@ -34,7 +34,7 @@ public:
ClearAction() = default;
ClearAction(MapRange range, ClearableItems itemsToClear);
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -12,7 +12,7 @@
#include "../world/Climate.h"
#include "GameAction.h"
DEFINE_GAME_ACTION(ClimateSetAction, GameCommand::SetClimate, GameActions::Result)
class ClimateSetAction final : public GameActionBase<GameCommand::SetClimate>
{
private:
ClimateType _climate{};
@ -21,11 +21,11 @@ public:
ClimateSetAction() = default;
ClimateSetAction(ClimateType climate);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -13,7 +13,7 @@
# include "GameAction.h"
DEFINE_GAME_ACTION(CustomAction, GameCommand::Custom, GameActions::Result)
class CustomAction final : public GameActionBase<GameCommand::Custom>
{
private:
std::string _id;
@ -28,7 +28,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(FootpathAdditionPlaceAction, GameCommand::PlaceFootpathAddition, GameActions::Result)
class FootpathAdditionPlaceAction final : public GameActionBase<GameCommand::PlaceFootpathAddition>
{
private:
CoordsXYZ _loc;
@ -21,11 +21,11 @@ public:
FootpathAdditionPlaceAction() = default;
FootpathAdditionPlaceAction(const CoordsXYZ& loc, ObjectEntryIndex pathItemType);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(FootpathAdditionRemoveAction, GameCommand::RemoveFootpathAddition, GameActions::Result)
class FootpathAdditionRemoveAction final : public GameActionBase<GameCommand::RemoveFootpathAddition>
{
private:
CoordsXYZ _loc;
@ -20,11 +20,11 @@ public:
FootpathAdditionRemoveAction() = default;
FootpathAdditionRemoveAction(const CoordsXYZ& loc);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -12,7 +12,7 @@
#include "../world/Footpath.h"
#include "GameAction.h"
DEFINE_GAME_ACTION(FootpathPlaceAction, GameCommand::PlacePath, GameActions::Result)
class FootpathPlaceAction final : public GameActionBase<GameCommand::PlacePath>
{
private:
CoordsXYZ _loc;
@ -27,21 +27,21 @@ public:
FootpathPlaceAction(
const CoordsXYZ& loc, uint8_t slope, ObjectEntryIndex type, ObjectEntryIndex railingsType,
Direction direction = INVALID_DIRECTION, PathConstructFlags constructFlags = 0);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
GameActions::Result::Ptr ElementUpdateQuery(PathElement * pathElement, GameActions::Result::Ptr res) const;
GameActions::Result::Ptr ElementUpdateExecute(PathElement * pathElement, GameActions::Result::Ptr res) const;
GameActions::Result::Ptr ElementUpdateQuery(PathElement* pathElement, GameActions::Result::Ptr res) const;
GameActions::Result::Ptr ElementUpdateExecute(PathElement* pathElement, GameActions::Result::Ptr res) const;
GameActions::Result::Ptr ElementInsertQuery(GameActions::Result::Ptr res) const;
GameActions::Result::Ptr ElementInsertExecute(GameActions::Result::Ptr res) const;
void AutomaticallySetPeepSpawn() const;
void RemoveIntersectingWalls(PathElement * pathElement) const;
void RemoveIntersectingWalls(PathElement* pathElement) const;
PathElement* map_get_footpath_element_slope(const CoordsXYZ& footpathPos, int32_t slope) const;
bool IsSameAsPathElement(const PathElement* pathElement) const;
bool IsSameAsEntranceElement(const EntranceElement& entranceElement) const;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(FootpathPlaceFromTrackAction, GameCommand::PlacePathFromTrack, GameActions::Result)
class FootpathPlaceFromTrackAction final : public GameActionBase<GameCommand::PlacePathFromTrack>
{
private:
CoordsXYZ _loc;
@ -29,7 +29,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -12,7 +12,7 @@
#include "../management/Finance.h"
#include "GameAction.h"
DEFINE_GAME_ACTION(FootpathRemoveAction, GameCommand::RemovePath, GameActions::Result)
class FootpathRemoveAction final : public GameActionBase<GameCommand::RemovePath>
{
private:
CoordsXYZ _loc;
@ -21,16 +21,16 @@ public:
FootpathRemoveAction() = default;
FootpathRemoveAction(const CoordsXYZ& location);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
TileElement* GetFootpathElement() const;
money32 GetRefundPrice(TileElement * footpathElement) const;
money32 GetRefundPrice(TileElement* footpathElement) const;
GameActions::Result::Ptr RemoveBannersAtElement(const CoordsXY& loc, TileElement* tileElement) const;
};

View File

@ -60,31 +60,10 @@ namespace GameActions
}
};
static GameActionFactory _actions[EnumValue(GameCommand::Count)];
static std::multiset<QueuedGameAction> _actionQueue;
static uint32_t _nextUniqueId = 0;
static bool _suspended = false;
GameActionFactory Register(GameCommand id, GameActionFactory factory)
{
const auto idx = static_cast<size_t>(id);
Guard::Assert(idx < std::size(_actions));
Guard::ArgumentNotNull(factory);
_actions[idx] = factory;
return factory;
}
bool IsValidId(uint32_t id)
{
if (id < std::size(_actions))
{
return _actions[id] != nullptr;
}
return false;
}
void SuspendQueue()
{
_suspended = true;
@ -179,38 +158,6 @@ namespace GameActions
_actionQueue.clear();
}
void Initialize()
{
static bool initialized = false;
if (initialized)
return;
Register();
initialized = true;
}
std::unique_ptr<GameAction> Create(GameCommand id)
{
Initialize();
const auto idx = static_cast<size_t>(id);
GameAction* result = nullptr;
if (idx < std::size(_actions))
{
GameActionFactory factory = _actions[idx];
if (factory != nullptr)
{
result = factory();
}
}
#ifdef _DEBUG
Guard::ArgumentNotNull(result, "Attempting to create unregistered gameaction: %u", id);
#endif
return std::unique_ptr<GameAction>(result);
}
GameAction::Ptr Clone(const GameAction* action)
{
std::unique_ptr<GameAction> ga = GameActions::Create(action->GetType());
@ -516,6 +463,11 @@ namespace GameActions
}
} // namespace GameActions
const char* GameAction::GetName() const
{
return GameActions::GetName(_type);
}
bool GameAction::LocationValid(const CoordsXY& coords) const
{
auto result = map_is_location_valid(coords);

View File

@ -92,11 +92,11 @@ public:
}
};
struct GameAction
class GameAction
{
public:
using Ptr = std::unique_ptr<GameAction>;
using Callback_t = std::function<void(const struct GameAction*, const GameActions::Result*)>;
using Callback_t = std::function<void(const class GameAction*, const GameActions::Result*)>;
private:
GameCommand const _type;
@ -114,7 +114,7 @@ public:
virtual ~GameAction() = default;
virtual const char* GetName() const = 0;
const char* GetName() const;
virtual void AcceptParameters(GameActionParameterVisitor&)
{
@ -235,11 +235,9 @@ template<GameCommand TId> struct GameActionNameQuery
{
};
template<GameCommand TType, typename TResultType> struct GameActionBase : GameAction
template<GameCommand TType> struct GameActionBase : GameAction
{
public:
using Result = TResultType;
static constexpr GameCommand TYPE = TType;
GameActionBase()
@ -247,22 +245,10 @@ public:
{
}
virtual const char* GetName() const override
{
return GameActionNameQuery<TType>::Name();
}
void SetCallback(std::function<void(const struct GameAction*, const TResultType*)> typedCallback)
{
GameAction::SetCallback([typedCallback](const GameAction* ga, const GameActions::Result* result) {
typedCallback(ga, static_cast<const TResultType*>(result));
});
}
protected:
template<class... TTypes> static constexpr std::unique_ptr<TResultType> MakeResult(TTypes&&... args)
template<class... TTypes> static std::unique_ptr<GameActions::Result> MakeResult(TTypes&&... args)
{
return std::make_unique<TResultType>(std::forward<TTypes>(args)...);
return std::make_unique<GameActions::Result>(std::forward<TTypes>(args)...);
}
};
@ -270,9 +256,8 @@ namespace GameActions
{
using GameActionFactory = GameAction* (*)();
void Initialize();
void Register();
bool IsValidId(uint32_t id);
const char* GetName(GameCommand id);
// Halts the queue processing until ResumeQueue is called, any calls to ProcessQueue
// will have no effect during suspension. It has no effect of actions that will not
@ -298,25 +283,4 @@ namespace GameActions
GameActions::Result::Ptr QueryNested(const GameAction* action);
GameActions::Result::Ptr ExecuteNested(const GameAction* action);
GameActionFactory Register(GameCommand id, GameActionFactory action);
template<typename T> static GameActionFactory Register()
{
GameActionFactory factory = []() -> GameAction* { return new T(); };
Register(T::TYPE, factory);
return factory;
}
// clang-format off
#define DEFINE_GAME_ACTION(cls, id, res) \
template<> struct GameActionNameQuery<id> \
{ \
static const char* Name() \
{ \
return #cls; \
} \
}; \
struct cls final : public GameActionBase<id, res>
// clang-format on
} // namespace GameActions

View File

@ -1,181 +0,0 @@
/*****************************************************************************
* Copyright (c) 2014-2020 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#include "BalloonPressAction.h"
#include "BannerPlaceAction.h"
#include "BannerRemoveAction.h"
#include "BannerSetColourAction.h"
#include "BannerSetNameAction.h"
#include "BannerSetStyleAction.h"
#include "ChangeMapSizeAction.h"
#include "ClearAction.h"
#include "ClimateSetAction.h"
#include "CustomAction.h"
#include "FootpathAdditionPlaceAction.h"
#include "FootpathAdditionRemoveAction.h"
#include "FootpathPlaceAction.h"
#include "FootpathPlaceFromTrackAction.h"
#include "FootpathRemoveAction.h"
#include "GameAction.h"
#include "GuestSetFlagsAction.h"
#include "GuestSetNameAction.h"
#include "LandBuyRightsAction.h"
#include "LandLowerAction.h"
#include "LandRaiseAction.h"
#include "LandSetHeightAction.h"
#include "LandSetRightsAction.h"
#include "LandSmoothAction.h"
#include "LargeSceneryPlaceAction.h"
#include "LargeSceneryRemoveAction.h"
#include "LargeScenerySetColourAction.h"
#include "LoadOrQuitAction.h"
#include "MazePlaceTrackAction.h"
#include "MazeSetTrackAction.h"
#include "NetworkModifyGroupAction.h"
#include "ParkEntranceRemoveAction.h"
#include "ParkMarketingAction.h"
#include "ParkSetDateAction.h"
#include "ParkSetLoanAction.h"
#include "ParkSetNameAction.h"
#include "ParkSetParameterAction.h"
#include "ParkSetResearchFundingAction.h"
#include "PauseToggleAction.h"
#include "PeepPickupAction.h"
#include "PlaceParkEntranceAction.h"
#include "PlacePeepSpawnAction.h"
#include "PlayerKickAction.h"
#include "PlayerSetGroupAction.h"
#include "RideCreateAction.h"
#include "RideDemolishAction.h"
#include "RideEntranceExitPlaceAction.h"
#include "RideEntranceExitRemoveAction.h"
#include "RideSetAppearanceAction.h"
#include "RideSetColourSchemeAction.h"
#include "RideSetNameAction.h"
#include "RideSetPriceAction.h"
#include "RideSetSettingAction.h"
#include "RideSetStatusAction.h"
#include "RideSetVehicleAction.h"
#include "ScenarioSetSettingAction.h"
#include "SetCheatAction.h"
#include "SetParkEntranceFeeAction.h"
#include "SignSetNameAction.h"
#include "SignSetStyleAction.h"
#include "SmallSceneryPlaceAction.h"
#include "SmallSceneryRemoveAction.h"
#include "SmallScenerySetColourAction.h"
#include "StaffFireAction.h"
#include "StaffHireNewAction.h"
#include "StaffSetColourAction.h"
#include "StaffSetCostumeAction.h"
#include "StaffSetNameAction.h"
#include "StaffSetOrdersAction.h"
#include "StaffSetPatrolAreaAction.h"
#include "SurfaceSetStyleAction.h"
#include "TileModifyAction.h"
#include "TrackDesignAction.h"
#include "TrackPlaceAction.h"
#include "TrackRemoveAction.h"
#include "TrackSetBrakeSpeedAction.h"
#include "WallPlaceAction.h"
#include "WallRemoveAction.h"
#include "WallSetColourAction.h"
#include "WaterLowerAction.h"
#include "WaterRaiseAction.h"
#include "WaterSetHeightAction.h"
namespace GameActions
{
void Register()
{
Register<BalloonPressAction>();
Register<BannerPlaceAction>();
Register<BannerRemoveAction>();
Register<BannerSetColourAction>();
Register<BannerSetNameAction>();
Register<BannerSetStyleAction>();
Register<ClimateSetAction>();
Register<FootpathPlaceAction>();
Register<FootpathPlaceFromTrackAction>();
Register<FootpathRemoveAction>();
Register<FootpathAdditionPlaceAction>();
Register<FootpathAdditionRemoveAction>();
Register<GuestSetNameAction>();
Register<MazePlaceTrackAction>();
Register<MazeSetTrackAction>();
Register<NetworkModifyGroupAction>();
Register<ParkMarketingAction>();
Register<ParkEntranceRemoveAction>();
Register<ParkSetLoanAction>();
Register<ParkSetNameAction>();
Register<ParkSetParameterAction>();
Register<ParkSetResearchFundingAction>();
Register<PeepPickupAction>();
Register<PlaceParkEntranceAction>();
Register<PlacePeepSpawnAction>();
Register<PlayerKickAction>();
Register<PlayerSetGroupAction>();
Register<RideCreateAction>();
Register<RideDemolishAction>();
Register<RideEntranceExitPlaceAction>();
Register<RideEntranceExitRemoveAction>();
Register<RideSetColourSchemeAction>();
Register<RideSetNameAction>();
Register<RideSetPriceAction>();
Register<RideSetStatusAction>();
Register<RideSetAppearanceAction>();
Register<RideSetVehicleAction>();
Register<RideSetSettingAction>();
Register<ScenarioSetSettingAction>();
Register<SetParkEntranceFeeAction>();
Register<SignSetNameAction>();
Register<SignSetStyleAction>();
Register<StaffFireAction>();
Register<StaffHireNewAction>();
Register<StaffSetColourAction>();
Register<StaffSetNameAction>();
Register<StaffSetOrdersAction>();
Register<StaffSetCostumeAction>();
Register<StaffSetPatrolAreaAction>();
Register<SurfaceSetStyleAction>();
Register<WallPlaceAction>();
Register<WallRemoveAction>();
Register<WallSetColourAction>();
Register<SmallSceneryPlaceAction>();
Register<SmallSceneryRemoveAction>();
Register<SmallScenerySetColourAction>();
Register<LargeSceneryPlaceAction>();
Register<LargeSceneryRemoveAction>();
Register<LargeScenerySetColourAction>();
Register<LandBuyRightsAction>();
Register<LandLowerAction>();
Register<LandRaiseAction>();
Register<LandSetHeightAction>();
Register<LandSetRightsAction>();
Register<LandSmoothAction>();
Register<TileModifyAction>();
Register<TrackDesignAction>();
Register<TrackPlaceAction>();
Register<TrackRemoveAction>();
Register<TrackSetBrakeSpeedAction>();
Register<ClearAction>();
Register<PauseToggleAction>();
Register<LoadOrQuitAction>();
Register<WaterSetHeightAction>();
Register<WaterLowerAction>();
Register<WaterRaiseAction>();
Register<GuestSetFlagsAction>();
Register<ParkSetDateAction>();
Register<SetCheatAction>();
Register<ChangeMapSizeAction>();
#ifdef ENABLE_SCRIPTING
Register<CustomAction>();
#endif
}
} // namespace GameActions

View File

@ -0,0 +1,252 @@
/*****************************************************************************
* Copyright (c) 2014-2021 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#include "BalloonPressAction.h"
#include "BannerPlaceAction.h"
#include "BannerRemoveAction.h"
#include "BannerSetColourAction.h"
#include "BannerSetNameAction.h"
#include "BannerSetStyleAction.h"
#include "ChangeMapSizeAction.h"
#include "ClearAction.h"
#include "ClimateSetAction.h"
#include "CustomAction.h"
#include "FootpathAdditionPlaceAction.h"
#include "FootpathAdditionRemoveAction.h"
#include "FootpathPlaceAction.h"
#include "FootpathPlaceFromTrackAction.h"
#include "FootpathRemoveAction.h"
#include "GameAction.h"
#include "GuestSetFlagsAction.h"
#include "GuestSetNameAction.h"
#include "LandBuyRightsAction.h"
#include "LandLowerAction.h"
#include "LandRaiseAction.h"
#include "LandSetHeightAction.h"
#include "LandSetRightsAction.h"
#include "LandSmoothAction.h"
#include "LargeSceneryPlaceAction.h"
#include "LargeSceneryRemoveAction.h"
#include "LargeScenerySetColourAction.h"
#include "LoadOrQuitAction.h"
#include "MazePlaceTrackAction.h"
#include "MazeSetTrackAction.h"
#include "NetworkModifyGroupAction.h"
#include "ParkEntranceRemoveAction.h"
#include "ParkMarketingAction.h"
#include "ParkSetDateAction.h"
#include "ParkSetLoanAction.h"
#include "ParkSetNameAction.h"
#include "ParkSetParameterAction.h"
#include "ParkSetResearchFundingAction.h"
#include "PauseToggleAction.h"
#include "PeepPickupAction.h"
#include "PlaceParkEntranceAction.h"
#include "PlacePeepSpawnAction.h"
#include "PlayerKickAction.h"
#include "PlayerSetGroupAction.h"
#include "RideCreateAction.h"
#include "RideDemolishAction.h"
#include "RideEntranceExitPlaceAction.h"
#include "RideEntranceExitRemoveAction.h"
#include "RideSetAppearanceAction.h"
#include "RideSetColourSchemeAction.h"
#include "RideSetNameAction.h"
#include "RideSetPriceAction.h"
#include "RideSetSettingAction.h"
#include "RideSetStatusAction.h"
#include "RideSetVehicleAction.h"
#include "ScenarioSetSettingAction.h"
#include "SetCheatAction.h"
#include "SetParkEntranceFeeAction.h"
#include "SignSetNameAction.h"
#include "SignSetStyleAction.h"
#include "SmallSceneryPlaceAction.h"
#include "SmallSceneryRemoveAction.h"
#include "SmallScenerySetColourAction.h"
#include "StaffFireAction.h"
#include "StaffHireNewAction.h"
#include "StaffSetColourAction.h"
#include "StaffSetCostumeAction.h"
#include "StaffSetNameAction.h"
#include "StaffSetOrdersAction.h"
#include "StaffSetPatrolAreaAction.h"
#include "SurfaceSetStyleAction.h"
#include "TileModifyAction.h"
#include "TrackDesignAction.h"
#include "TrackPlaceAction.h"
#include "TrackRemoveAction.h"
#include "TrackSetBrakeSpeedAction.h"
#include "WallPlaceAction.h"
#include "WallRemoveAction.h"
#include "WallSetColourAction.h"
#include "WaterLowerAction.h"
#include "WaterRaiseAction.h"
#include "WaterSetHeightAction.h"
#include <array>
namespace GameActions
{
struct GameActionEntry
{
GameActionFactory factory{};
const char* name{};
};
using GameActionRegistry = std::array<GameActionEntry, EnumValue(GameCommand::Count)>;
template<GameCommand TId>
static constexpr void Register(GameActionRegistry& registry, GameActionFactory factory, const char* name)
{
constexpr auto idx = static_cast<size_t>(TId);
static_assert(idx < EnumValue(GameCommand::Count));
registry[idx] = { factory, name };
}
template<typename T> static constexpr void Register(GameActionRegistry& registry, const char* name)
{
GameActionFactory factory = []() -> GameAction* { return new T(); };
Register<T::TYPE>(registry, factory, name);
}
static constexpr GameActionRegistry BuildRegistry()
{
GameActionRegistry registry{};
#define REGISTER_ACTION(type) Register<type>(registry, #type)
REGISTER_ACTION(BalloonPressAction);
REGISTER_ACTION(BannerPlaceAction);
REGISTER_ACTION(BannerRemoveAction);
REGISTER_ACTION(BannerSetColourAction);
REGISTER_ACTION(BannerSetNameAction);
REGISTER_ACTION(BannerSetStyleAction);
REGISTER_ACTION(ClimateSetAction);
REGISTER_ACTION(FootpathPlaceAction);
REGISTER_ACTION(FootpathPlaceFromTrackAction);
REGISTER_ACTION(FootpathRemoveAction);
REGISTER_ACTION(FootpathAdditionPlaceAction);
REGISTER_ACTION(FootpathAdditionRemoveAction);
REGISTER_ACTION(GuestSetNameAction);
REGISTER_ACTION(MazePlaceTrackAction);
REGISTER_ACTION(MazeSetTrackAction);
REGISTER_ACTION(NetworkModifyGroupAction);
REGISTER_ACTION(ParkMarketingAction);
REGISTER_ACTION(ParkEntranceRemoveAction);
REGISTER_ACTION(ParkSetLoanAction);
REGISTER_ACTION(ParkSetNameAction);
REGISTER_ACTION(ParkSetParameterAction);
REGISTER_ACTION(ParkSetResearchFundingAction);
REGISTER_ACTION(PeepPickupAction);
REGISTER_ACTION(PlaceParkEntranceAction);
REGISTER_ACTION(PlacePeepSpawnAction);
REGISTER_ACTION(PlayerKickAction);
REGISTER_ACTION(PlayerSetGroupAction);
REGISTER_ACTION(RideCreateAction);
REGISTER_ACTION(RideDemolishAction);
REGISTER_ACTION(RideEntranceExitPlaceAction);
REGISTER_ACTION(RideEntranceExitRemoveAction);
REGISTER_ACTION(RideSetColourSchemeAction);
REGISTER_ACTION(RideSetNameAction);
REGISTER_ACTION(RideSetPriceAction);
REGISTER_ACTION(RideSetStatusAction);
REGISTER_ACTION(RideSetAppearanceAction);
REGISTER_ACTION(RideSetVehicleAction);
REGISTER_ACTION(RideSetSettingAction);
REGISTER_ACTION(ScenarioSetSettingAction);
REGISTER_ACTION(SetParkEntranceFeeAction);
REGISTER_ACTION(SignSetNameAction);
REGISTER_ACTION(SignSetStyleAction);
REGISTER_ACTION(StaffFireAction);
REGISTER_ACTION(StaffHireNewAction);
REGISTER_ACTION(StaffSetColourAction);
REGISTER_ACTION(StaffSetNameAction);
REGISTER_ACTION(StaffSetOrdersAction);
REGISTER_ACTION(StaffSetCostumeAction);
REGISTER_ACTION(StaffSetPatrolAreaAction);
REGISTER_ACTION(SurfaceSetStyleAction);
REGISTER_ACTION(WallPlaceAction);
REGISTER_ACTION(WallRemoveAction);
REGISTER_ACTION(WallSetColourAction);
REGISTER_ACTION(SmallSceneryPlaceAction);
REGISTER_ACTION(SmallSceneryRemoveAction);
REGISTER_ACTION(SmallScenerySetColourAction);
REGISTER_ACTION(LargeSceneryPlaceAction);
REGISTER_ACTION(LargeSceneryRemoveAction);
REGISTER_ACTION(LargeScenerySetColourAction);
REGISTER_ACTION(LandBuyRightsAction);
REGISTER_ACTION(LandLowerAction);
REGISTER_ACTION(LandRaiseAction);
REGISTER_ACTION(LandSetHeightAction);
REGISTER_ACTION(LandSetRightsAction);
REGISTER_ACTION(LandSmoothAction);
REGISTER_ACTION(TileModifyAction);
REGISTER_ACTION(TrackDesignAction);
REGISTER_ACTION(TrackPlaceAction);
REGISTER_ACTION(TrackRemoveAction);
REGISTER_ACTION(TrackSetBrakeSpeedAction);
REGISTER_ACTION(ClearAction);
REGISTER_ACTION(PauseToggleAction);
REGISTER_ACTION(LoadOrQuitAction);
REGISTER_ACTION(WaterSetHeightAction);
REGISTER_ACTION(WaterLowerAction);
REGISTER_ACTION(WaterRaiseAction);
REGISTER_ACTION(GuestSetFlagsAction);
REGISTER_ACTION(ParkSetDateAction);
REGISTER_ACTION(SetCheatAction);
REGISTER_ACTION(ChangeMapSizeAction);
#ifdef ENABLE_SCRIPTING
REGISTER_ACTION(CustomAction);
#endif
#undef REGISTER_ACTION
return registry;
}
static constexpr GameActionRegistry _registry = BuildRegistry();
const char* GetName(GameCommand id)
{
const auto idx = static_cast<size_t>(id);
Guard::IndexInRange(idx, _registry);
return _registry[idx].name;
}
std::unique_ptr<GameAction> Create(GameCommand id)
{
const auto idx = static_cast<size_t>(id);
GameAction* result = nullptr;
if (idx < std::size(_registry))
{
GameActionFactory factory = _registry[idx].factory;
if (factory != nullptr)
{
result = factory();
}
}
Guard::ArgumentNotNull(result, "Attempting to create unregistered game action: %u", id);
return std::unique_ptr<GameAction>(result);
}
bool IsValidId(uint32_t id)
{
if (id < std::size(_registry))
{
return _registry[id].factory != nullptr;
}
return false;
}
} // namespace GameActions

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(GuestSetFlagsAction, GameCommand::GuestSetFlags, GameActions::Result)
class GuestSetFlagsAction final : public GameActionBase<GameCommand::GuestSetFlags>
{
private:
uint16_t _peepId{ SPRITE_INDEX_NULL };
@ -21,11 +21,11 @@ public:
GuestSetFlagsAction() = default;
GuestSetFlagsAction(uint16_t peepId, uint32_t flags);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(GuestSetNameAction, GameCommand::SetGuestName, GameActions::Result)
class GuestSetNameAction final : public GameActionBase<GameCommand::SetGuestName>
{
private:
uint16_t _spriteIndex{ SPRITE_INDEX_NULL };
@ -24,11 +24,11 @@ public:
uint16_t GetSpriteIndex() const;
std::string GetGuestName() const;
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -18,7 +18,7 @@ enum class LandBuyRightSetting : uint8_t
Count
};
DEFINE_GAME_ACTION(LandBuyRightsAction, GameCommand::BuyLandRights, GameActions::Result)
class LandBuyRightsAction final : public GameActionBase<GameCommand::BuyLandRights>
{
private:
MapRange _range;
@ -36,7 +36,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LandLowerAction, GameCommand::LowerLand, GameActions::Result)
class LandLowerAction final : public GameActionBase<GameCommand::LowerLand>
{
private:
CoordsXY _coords;
@ -24,7 +24,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LandRaiseAction, GameCommand::RaiseLand, GameActions::Result)
class LandRaiseAction final : public GameActionBase<GameCommand::RaiseLand>
{
private:
CoordsXY _coords;
@ -24,7 +24,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LandSetHeightAction, GameCommand::SetLandHeight, GameActions::Result)
class LandSetHeightAction final : public GameActionBase<GameCommand::SetLandHeight>
{
private:
CoordsXY _coords;
@ -24,7 +24,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
@ -34,16 +34,16 @@ private:
money32 GetSmallSceneryRemovalCost() const;
void SmallSceneryRemoval() const;
rct_string_id CheckRideSupports() const;
TileElement* CheckFloatingStructures(TileElement * surfaceElement, uint8_t zCorner) const;
TileElement* CheckUnremovableObstructions(TileElement * surfaceElement, uint8_t zCorner) const;
money32 GetSurfaceHeightChangeCost(SurfaceElement * surfaceElement) const;
void SetSurfaceHeight(TileElement * surfaceElement) const;
TileElement* CheckFloatingStructures(TileElement* surfaceElement, uint8_t zCorner) const;
TileElement* CheckUnremovableObstructions(TileElement* surfaceElement, uint8_t zCorner) const;
money32 GetSurfaceHeightChangeCost(SurfaceElement* surfaceElement) const;
void SetSurfaceHeight(TileElement* surfaceElement) const;
/**
*
* rct2: 0x00663CB9
*/
static int32_t map_set_land_height_clear_func(
TileElement * *tile_element, [[maybe_unused]] const CoordsXY& coords, [[maybe_unused]] uint8_t flags,
TileElement** tile_element, [[maybe_unused]] const CoordsXY& coords, [[maybe_unused]] uint8_t flags,
[[maybe_unused]] money32* price);
};

View File

@ -21,7 +21,7 @@ enum class LandSetRightSetting : uint8_t
Count
};
DEFINE_GAME_ACTION(LandSetRightsAction, GameCommand::SetLandOwnership, GameActions::Result)
class LandSetRightsAction final : public GameActionBase<GameCommand::SetLandOwnership>
{
private:
MapRange _range;
@ -35,7 +35,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LandSmoothAction, GameCommand::EditLandSmooth, GameActions::Result)
class LandSmoothAction final : public GameActionBase<GameCommand::EditLandSmooth>
{
private:
CoordsXY _coords;
@ -30,7 +30,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -20,7 +20,7 @@ struct LargeSceneryPlaceActionResult
BannerIndex bannerId = BANNER_INDEX_NULL;
};
DEFINE_GAME_ACTION(LargeSceneryPlaceAction, GameCommand::PlaceLargeScenery, GameActions::Result)
class LargeSceneryPlaceAction final : public GameActionBase<GameCommand::PlaceLargeScenery>
{
private:
CoordsXYZD _loc;
@ -34,17 +34,17 @@ public:
LargeSceneryPlaceAction(
const CoordsXYZD& loc, ObjectEntryIndex sceneryType, uint8_t primaryColour, uint8_t secondaryColour);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
int16_t GetTotalNumTiles(rct_large_scenery_tile * tiles) const;
bool CheckMapCapacity(rct_large_scenery_tile * tiles, int16_t numTiles) const;
int16_t GetMaxSurfaceHeight(rct_large_scenery_tile * tiles) const;
void SetNewLargeSceneryElement(LargeSceneryElement & sceneryElement, uint8_t tileNum) const;
int16_t GetTotalNumTiles(rct_large_scenery_tile* tiles) const;
bool CheckMapCapacity(rct_large_scenery_tile* tiles, int16_t numTiles) const;
int16_t GetMaxSurfaceHeight(rct_large_scenery_tile* tiles) const;
void SetNewLargeSceneryElement(LargeSceneryElement& sceneryElement, uint8_t tileNum) const;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LargeSceneryRemoveAction, GameCommand::RemoveLargeScenery, GameActions::Result)
class LargeSceneryRemoveAction final : public GameActionBase<GameCommand::RemoveLargeScenery>
{
private:
CoordsXYZD _loc;
@ -21,11 +21,11 @@ public:
LargeSceneryRemoveAction() = default;
LargeSceneryRemoveAction(const CoordsXYZD& location, uint16_t tileIndex);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(LargeScenerySetColourAction, GameCommand::SetLargeSceneryColour, GameActions::Result)
class LargeScenerySetColourAction final : public GameActionBase<GameCommand::SetLargeSceneryColour>
{
private:
CoordsXYZD _loc;
@ -25,7 +25,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -17,7 +17,7 @@ enum class LoadOrQuitModes : uint8_t
CloseSavePrompt
};
DEFINE_GAME_ACTION(LoadOrQuitAction, GameCommand::LoadOrQuit, GameActions::Result)
class LoadOrQuitAction final : public GameActionBase<GameCommand::LoadOrQuit>
{
private:
LoadOrQuitModes _mode{};
@ -29,7 +29,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -10,7 +10,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(MazePlaceTrackAction, GameCommand::PlaceMazeDesign, GameActions::Result)
class MazePlaceTrackAction final : public GameActionBase<GameCommand::PlaceMazeDesign>
{
private:
CoordsXYZ _loc;
@ -21,8 +21,8 @@ public:
MazePlaceTrackAction() = default;
MazePlaceTrackAction(const CoordsXYZ& location, NetworkRideId_t rideIndex, uint16_t mazeEntry);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void Serialise(DataSerialiser & stream) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -37,7 +37,7 @@ static constexpr const uint8_t byte_993D0C[] = {
};
// clang-format on
DEFINE_GAME_ACTION(MazeSetTrackAction, GameCommand::SetMazeTrack, GameActions::Result)
class MazeSetTrackAction final : public GameActionBase<GameCommand::SetMazeTrack>
{
private:
CoordsXYZD _loc;
@ -49,8 +49,8 @@ public:
MazeSetTrackAction() = default;
MazeSetTrackAction(const CoordsXYZD& location, bool initialPlacement, NetworkRideId_t rideIndex, uint8_t mode);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void Serialise(DataSerialiser & stream) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -29,7 +29,7 @@ enum class PermissionState : uint8_t
Count
};
DEFINE_GAME_ACTION(NetworkModifyGroupAction, GameCommand::ModifyGroups, GameActions::Result)
class NetworkModifyGroupAction final : public GameActionBase<GameCommand::ModifyGroups>
{
private:
ModifyGroupType _type{ ModifyGroupType::Count };
@ -46,7 +46,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkEntranceRemoveAction, GameCommand::RemoveParkEntrance, GameActions::Result)
class ParkEntranceRemoveAction final : public GameActionBase<GameCommand::RemoveParkEntrance>
{
private:
CoordsXYZ _loc;
@ -22,7 +22,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkMarketingAction, GameCommand::StartMarketingCampaign, GameActions::Result)
class ParkMarketingAction final : public GameActionBase<GameCommand::StartMarketingCampaign>
{
private:
int32_t _type{};
@ -22,11 +22,11 @@ public:
ParkMarketingAction() = default;
ParkMarketingAction(int32_t type, int32_t item, int32_t numWeeks);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkSetDateAction, GameCommand::SetDate, GameActions::Result)
class ParkSetDateAction final : public GameActionBase<GameCommand::SetDate>
{
private:
int32_t _year{};
@ -22,11 +22,11 @@ public:
ParkSetDateAction() = default;
ParkSetDateAction(int32_t year, int32_t month, int32_t day);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkSetLoanAction, GameCommand::SetCurrentLoan, GameActions::Result)
class ParkSetLoanAction final : public GameActionBase<GameCommand::SetCurrentLoan>
{
private:
money32 _value{ MONEY32_UNDEFINED };
@ -20,11 +20,11 @@ public:
ParkSetLoanAction() = default;
ParkSetLoanAction(money32 value);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkSetNameAction, GameCommand::SetParkName, GameActions::Result)
class ParkSetNameAction final : public GameActionBase<GameCommand::SetParkName>
{
private:
std::string _name;
@ -20,11 +20,11 @@ public:
ParkSetNameAction() = default;
ParkSetNameAction(const std::string& name);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -19,7 +19,7 @@ enum class ParkParameter : uint8_t
Count
};
DEFINE_GAME_ACTION(ParkSetParameterAction, GameCommand::SetParkOpen, GameActions::Result)
class ParkSetParameterAction final : public GameActionBase<GameCommand::SetParkOpen>
{
private:
ParkParameter _parameter{ ParkParameter::Count };
@ -38,7 +38,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(ParkSetResearchFundingAction, GameCommand::SetResearchFunding, GameActions::Result)
class ParkSetResearchFundingAction final : public GameActionBase<GameCommand::SetResearchFunding>
{
private:
// TODO change to std::optional when C++17
@ -24,7 +24,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -13,7 +13,7 @@
// Clang format is broken for small game actions
// clang-format off
DEFINE_GAME_ACTION(PauseToggleAction, GameCommand::TogglePause, GameActions::Result)
class PauseToggleAction final : public GameActionBase<GameCommand::TogglePause>
{
public:
PauseToggleAction() = default;

View File

@ -19,7 +19,7 @@ enum class PeepPickupType : uint8_t
Count
};
DEFINE_GAME_ACTION(PeepPickupAction, GameCommand::PickupGuest, GameActions::Result)
class PeepPickupAction final : public GameActionBase<GameCommand::PickupGuest>
{
private:
PeepPickupType _type{ PeepPickupType::Count };
@ -33,10 +33,10 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
void CancelConcurrentPickups(Peep * pickedPeep) const;
void CancelConcurrentPickups(Peep* pickedPeep) const;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(PlaceParkEntranceAction, GameCommand::PlaceParkEntrance, GameActions::Result)
class PlaceParkEntranceAction final : public GameActionBase<GameCommand::PlaceParkEntrance>
{
private:
CoordsXYZD _loc;
@ -23,7 +23,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(PlacePeepSpawnAction, GameCommand::PlacePeepSpawn, GameActions::Result)
class PlacePeepSpawnAction final : public GameActionBase<GameCommand::PlacePeepSpawn>
{
private:
CoordsXYZD _location;
@ -22,7 +22,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(PlayerKickAction, GameCommand::KickPlayer, GameActions::Result)
class PlayerKickAction final : public GameActionBase<GameCommand::KickPlayer>
{
private:
NetworkPlayerId_t _playerId{ -1 };
@ -23,7 +23,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(PlayerSetGroupAction, GameCommand::SetPlayerGroup, GameActions::Result)
class PlayerSetGroupAction final : public GameActionBase<GameCommand::SetPlayerGroup>
{
private:
NetworkPlayerId_t _playerId{ -1 };
@ -23,7 +23,7 @@ public:
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -292,8 +292,8 @@ GameActions::Result::Ptr RideCreateAction::Execute() const
ride->num_circuits = 1;
ride->mode = ride->GetDefaultMode();
ride->SetMinCarsPerTrain(rideEntry->min_cars_in_train);
ride->SetMaxCarsPerTrain(rideEntry->max_cars_in_train);
ride->MinCarsPerTrain = rideEntry->min_cars_in_train;
ride->MaxCarsPerTrain = rideEntry->max_cars_in_train;
ride_set_vehicle_colours_to_random_preset(ride, _colour2);
window_invalidate_by_class(WC_RIDE_LIST);

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideCreateAction, GameCommand::CreateRide, GameActions::Result)
class RideCreateAction final : public GameActionBase<GameCommand::CreateRide>
{
private:
ObjectEntryIndex _rideType{ OBJECT_ENTRY_INDEX_NULL };
@ -23,13 +23,13 @@ public:
RideCreateAction() = default;
RideCreateAction(int32_t rideType, ObjectEntryIndex subType, int32_t colour1, int32_t colour2);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
int32_t GetRideType() const;
int32_t GetRideObject() const;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideDemolishAction, GameCommand::DemolishRide, GameActions::Result)
class RideDemolishAction final : public GameActionBase<GameCommand::DemolishRide>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -21,19 +21,19 @@ public:
RideDemolishAction() = default;
RideDemolishAction(ride_id_t rideIndex, uint8_t modifyType);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint32_t GetCooldownTime() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
GameActions::Result::Ptr DemolishRide(Ride * ride) const;
GameActions::Result::Ptr DemolishRide(Ride* ride) const;
money32 MazeRemoveTrack(const CoordsXYZD& coords) const;
money32 DemolishTracks() const;
GameActions::Result::Ptr RefurbishRide(Ride * ride) const;
GameActions::Result::Ptr RefurbishRide(Ride* ride) const;
money32 GetRefurbishPrice(const Ride* ride) const;
money32 GetRefundPrice(const Ride* ride) const;
};

View File

@ -12,7 +12,7 @@
#include "../world/Entrance.h"
#include "GameAction.h"
DEFINE_GAME_ACTION(RideEntranceExitPlaceAction, GameCommand::PlaceRideEntranceOrExit, GameActions::Result)
class RideEntranceExitPlaceAction final : public GameActionBase<GameCommand::PlaceRideEntranceOrExit>
{
private:
CoordsXY _loc;
@ -26,11 +26,11 @@ public:
RideEntranceExitPlaceAction(
const CoordsXY& loc, Direction direction, ride_id_t rideIndex, StationIndex stationNum, bool isExit);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideEntranceExitRemoveAction, GameCommand::RemoveRideEntranceOrExit, GameActions::Result)
class RideEntranceExitRemoveAction final : public GameActionBase<GameCommand::RemoveRideEntranceOrExit>
{
private:
CoordsXY _loc;
@ -23,11 +23,11 @@ public:
RideEntranceExitRemoveAction() = default;
RideEntranceExitRemoveAction(const CoordsXY& loc, ride_id_t rideIndex, StationIndex stationNum, bool isExit);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -24,7 +24,7 @@ enum class RideSetAppearanceType : uint8_t
EntranceStyle
};
DEFINE_GAME_ACTION(RideSetAppearanceAction, GameCommand::SetRideAppearance, GameActions::Result)
class RideSetAppearanceAction final : public GameActionBase<GameCommand::SetRideAppearance>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -36,11 +36,11 @@ public:
RideSetAppearanceAction() = default;
RideSetAppearanceAction(ride_id_t rideIndex, RideSetAppearanceType type, uint16_t value, uint32_t index);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideSetColourSchemeAction, GameCommand::SetColourScheme, GameActions::Result)
class RideSetColourSchemeAction final : public GameActionBase<GameCommand::SetColourScheme>
{
private:
CoordsXYZD _loc;
@ -22,11 +22,11 @@ public:
RideSetColourSchemeAction() = default;
RideSetColourSchemeAction(const CoordsXYZD& location, track_type_t trackType, uint16_t newColourScheme);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideSetNameAction, GameCommand::SetRideName, GameActions::Result)
class RideSetNameAction final : public GameActionBase<GameCommand::SetRideName>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -21,11 +21,11 @@ public:
RideSetNameAction() = default;
RideSetNameAction(ride_id_t rideIndex, const std::string& name);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideSetPriceAction, GameCommand::SetRidePrice, GameActions::Result)
class RideSetPriceAction final : public GameActionBase<GameCommand::SetRidePrice>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -22,11 +22,11 @@ public:
RideSetPriceAction() = default;
RideSetPriceAction(ride_id_t rideIndex, money16 price, bool primaryPrice);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -26,7 +26,7 @@ enum class RideSetSetting : uint8_t
RideType,
};
DEFINE_GAME_ACTION(RideSetSettingAction, GameCommand::SetRideSetting, GameActions::Result)
class RideSetSettingAction final : public GameActionBase<GameCommand::SetRideSetting>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -37,18 +37,18 @@ public:
RideSetSettingAction() = default;
RideSetSettingAction(ride_id_t rideIndex, RideSetSetting setting, uint8_t value);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
bool ride_is_mode_valid(Ride * ride) const;
bool ride_is_valid_lift_hill_speed(Ride * ride) const;
bool ride_is_mode_valid(Ride* ride) const;
bool ride_is_valid_lift_hill_speed(Ride* ride) const;
bool ride_is_valid_num_circuits() const;
bool ride_is_valid_operation_option(Ride * ride) const;
rct_string_id GetOperationErrorMessage(Ride * ride) const;
bool ride_is_valid_operation_option(Ride* ride) const;
rct_string_id GetOperationErrorMessage(Ride* ride) const;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(RideSetStatusAction, GameCommand::SetRideStatus, GameActions::Result)
class RideSetStatusAction final : public GameActionBase<GameCommand::SetRideStatus>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -21,11 +21,11 @@ public:
RideSetStatusAction() = default;
RideSetStatusAction(ride_id_t rideIndex, RideStatus status);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -19,7 +19,7 @@ enum class RideSetVehicleType : uint8_t
Count,
};
DEFINE_GAME_ACTION(RideSetVehicleAction, GameCommand::SetRideVehicles, GameActions::Result)
class RideSetVehicleAction final : public GameActionBase<GameCommand::SetRideVehicles>
{
private:
NetworkRideId_t _rideIndex{ RIDE_ID_NULL };
@ -31,14 +31,14 @@ public:
RideSetVehicleAction() = default;
RideSetVehicleAction(ride_id_t rideIndex, RideSetVehicleType type, uint8_t value, uint8_t colour = 0);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
private:
bool ride_is_vehicle_type_valid(Ride * ride) const;
bool ride_is_vehicle_type_valid(Ride* ride) const;
};

View File

@ -38,7 +38,7 @@ enum class ScenarioSetSetting : uint8_t
Count
};
DEFINE_GAME_ACTION(ScenarioSetSettingAction, GameCommand::EditScenarioOptions, GameActions::Result)
class ScenarioSetSettingAction final : public GameActionBase<GameCommand::EditScenarioOptions>
{
private:
ScenarioSetSetting _setting{ ScenarioSetSetting::Count };
@ -57,7 +57,7 @@ public:
return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused;
}
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(SetCheatAction, GameCommand::Cheat, GameActions::Result)
class SetCheatAction final : public GameActionBase<GameCommand::Cheat>
{
using ParametersRange = std::pair<std::pair<int32_t, int32_t>, std::pair<int32_t, int32_t>>;
@ -24,11 +24,11 @@ public:
SetCheatAction() = default;
SetCheatAction(CheatType cheatType, int32_t param1 = 0, int32_t param2 = 0);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(SetParkEntranceFeeAction, GameCommand::SetParkEntranceFee, GameActions::Result)
class SetParkEntranceFeeAction final : public GameActionBase<GameCommand::SetParkEntranceFee>
{
private:
money16 _fee{ MONEY16_UNDEFINED };
@ -20,11 +20,11 @@ public:
SetParkEntranceFeeAction() = default;
SetParkEntranceFeeAction(money16 fee);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

View File

@ -11,7 +11,7 @@
#include "GameAction.h"
DEFINE_GAME_ACTION(SignSetNameAction, GameCommand::SetSignName, GameActions::Result)
class SignSetNameAction final : public GameActionBase<GameCommand::SetSignName>
{
private:
BannerIndex _bannerIndex{ BANNER_INDEX_NULL };
@ -21,11 +21,11 @@ public:
SignSetNameAction() = default;
SignSetNameAction(BannerIndex bannerIndex, const std::string& name);
void AcceptParameters(GameActionParameterVisitor & visitor) override;
void AcceptParameters(GameActionParameterVisitor& visitor) override;
uint16_t GetActionFlags() const override;
void Serialise(DataSerialiser & stream) override;
void Serialise(DataSerialiser& stream) override;
GameActions::Result::Ptr Query() const override;
GameActions::Result::Ptr Execute() const override;
};

Some files were not shown because too many files have changed in this diff Show More