You've already forked OpenRCT2-Unity
mirror of
https://github.com/izzy2lost/OpenRCT2-Unity.git
synced 2026-03-10 12:38:22 -07:00
Merge branch 'develop'
This commit is contained in:
@@ -16,7 +16,7 @@ AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: false
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
|
||||
193
.github/workflows/ci.yml
vendored
193
.github/workflows/ci.yml
vendored
@@ -31,20 +31,50 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
get_artifact_name:
|
||||
build_variables:
|
||||
name: Get version info
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
name: ${{ steps.ghd.outputs.describe }}
|
||||
name: ${{ steps.artifact-name.outputs.name }}
|
||||
describe: ${{ steps.ghd.outputs.describe }}
|
||||
short-sha: ${{ steps.ghd.outputs.short-sha }}
|
||||
distance: ${{ steps.ghd.outputs.distance }}
|
||||
tag: ${{ steps.ghd.outputs.tag }}
|
||||
push: ${{ steps.setenv.outputs.push }}
|
||||
steps:
|
||||
# We need to fetch entire repo to get the tags and correctly run `describe`
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
# We cannot use proudust/gh-describe, as it reports incorrect (too short) short-sha
|
||||
- name: Git describe
|
||||
id: ghd
|
||||
uses: proudust/gh-describe@v2
|
||||
run: |
|
||||
TAG=$(git describe --abbrev=0)
|
||||
DESCRIBE=$(git describe)
|
||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
||||
DISTANCE=$(git rev-list --count $TAG..HEAD)
|
||||
echo "tag=$TAG"
|
||||
echo "describe=$DESCRIBE"
|
||||
echo "short-sha=$SHORT_SHA"
|
||||
echo "distance=$DISTANCE"
|
||||
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
||||
echo "describe=$DESCRIBE" >> $GITHUB_OUTPUT
|
||||
echo "short-sha=$SHORT_SHA" >> $GITHUB_OUTPUT
|
||||
echo "distance=$DISTANCE" >> $GITHUB_OUTPUT
|
||||
- name: Set env
|
||||
id: setenv
|
||||
run: |
|
||||
. scripts/setenv
|
||||
echo "push=$OPENRCT2_PUSH"
|
||||
echo "push=$OPENRCT2_PUSH" >> $GITHUB_OUTPUT
|
||||
# Name now uses the same format as "describe"
|
||||
- name: Get artifact name
|
||||
id: artifact-name
|
||||
run: |
|
||||
echo "name=${{ steps.ghd.outputs.describe }}"
|
||||
echo "name=${{ steps.ghd.outputs.describe }}" >> $GITHUB_OUTPUT
|
||||
lint-commit:
|
||||
name: Lint Commit Message
|
||||
if: github.event_name == 'pull_request'
|
||||
@@ -86,7 +116,7 @@ jobs:
|
||||
g2dat:
|
||||
name: g2.dat
|
||||
runs-on: ubuntu-latest
|
||||
needs: get_artifact_name
|
||||
needs: build_variables
|
||||
steps:
|
||||
- name: Checkout OpenRCT2
|
||||
uses: actions/checkout@v4
|
||||
@@ -104,12 +134,12 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: g2-${{ needs.get_artifact_name.outputs.name }}.dat
|
||||
name: g2-${{ needs.build_variables.outputs.name }}.dat
|
||||
path: g2.dat
|
||||
windows:
|
||||
name: Windows
|
||||
runs-on: windows-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
needs: [check-code-formatting, build_variables]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -139,26 +169,26 @@ jobs:
|
||||
build-installer -i
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv artifacts/openrct2-portable-*.zip artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-portable-$PLATFORM.zip
|
||||
mv artifacts/openrct2-installer-*.exe artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-installer-$PLATFORM.exe
|
||||
mv artifacts/openrct2-symbols-*.zip artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-symbols-$PLATFORM.zip
|
||||
mv artifacts/openrct2-portable-*.zip artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-portable-$PLATFORM.zip
|
||||
mv artifacts/openrct2-installer-*.exe artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-installer-$PLATFORM.exe
|
||||
mv artifacts/openrct2-symbols-*.zip artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-symbols-$PLATFORM.zip
|
||||
- name: Upload portable artifact (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-portable-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-portable-${{ matrix.platform }}.zip
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-portable-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-portable-${{ matrix.platform }}.zip
|
||||
if-no-files-found: error
|
||||
- name: Upload installer artifact (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-installer-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-installer-${{ matrix.platform }}.exe
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-installer-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-installer-${{ matrix.platform }}.exe
|
||||
if-no-files-found: error
|
||||
- name: Upload symbols artifact (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-symbols-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-symbols-${{ matrix.platform }}.zip
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-symbols-${{ matrix.platform }}
|
||||
path: artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-symbols-${{ matrix.platform }}.zip
|
||||
if-no-files-found: error
|
||||
- name: Run Tests
|
||||
if: matrix.platform != 'arm64'
|
||||
@@ -168,21 +198,18 @@ jobs:
|
||||
with:
|
||||
paths: "artifacts/test-**.xml"
|
||||
if: matrix.platform != 'arm64'
|
||||
- name: Upload artifacts (openrct2.org)
|
||||
- name: Upload symbols (backtrace.io)
|
||||
run: |
|
||||
. scripts/setenv
|
||||
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-portable-$PLATFORM.zip "windows-portable-$PLATFORM.zip" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-installer-$PLATFORM.exe "windows-installer-$PLATFORM.exe" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-symbols-$PLATFORM.zip "windows-symbols-$PLATFORM.zip" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
upload-backtrace-symbols artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-windows-symbols-*.zip
|
||||
upload-backtrace-symbols artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-windows-symbols-*.zip
|
||||
else
|
||||
echo 'Not going to push build'
|
||||
echo 'Not going to push build'
|
||||
fi
|
||||
windows-mingw:
|
||||
name: Windows (${{ matrix.platform_name }}) using mingw
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
needs: [check-code-formatting, build_variables]
|
||||
container: openrct2/openrct2-build:14-mingw
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -212,7 +239,7 @@ jobs:
|
||||
if: matrix.platform == 'NT5.1'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-Windows-mingw-${{ matrix.platform }}
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-Windows-mingw-${{ matrix.platform }}
|
||||
path: bin/openrct2.exe
|
||||
if-no-files-found: error
|
||||
macos-cmake:
|
||||
@@ -278,7 +305,7 @@ jobs:
|
||||
macos-universal:
|
||||
name: macOS universal app bundle
|
||||
runs-on: macos-14
|
||||
needs: [macos-cmake, get_artifact_name]
|
||||
needs: [macos-cmake, build_variables]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -306,25 +333,17 @@ jobs:
|
||||
mv macos_universal/OpenRCT2-universal.app artifacts/OpenRCT2.app
|
||||
echo -e "\033[0;36mCompressing OpenRCT2.app...\033[0m"
|
||||
cd artifacts
|
||||
zip -rqy OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-macos-universal.zip OpenRCT2.app
|
||||
zip -rqy OpenRCT2-${{ needs.build_variables.outputs.name }}-macos-universal.zip OpenRCT2.app
|
||||
- name: Upload artifacts (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-universal
|
||||
path: artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-macos-universal.zip
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-universal
|
||||
path: artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-macos-universal.zip
|
||||
if-no-files-found: error
|
||||
- name: Upload artifacts (openrct2.org)
|
||||
run: |
|
||||
. scripts/setenv
|
||||
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-macos-universal.zip macos-universal.zip $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
else
|
||||
echo 'Not going to push build'
|
||||
fi
|
||||
linux-portable:
|
||||
name: ${{ matrix.distro }} Linux (${{ matrix.release }}, ${{ matrix.platform }}, portable)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
needs: [check-code-formatting, build_variables]
|
||||
container: ${{ matrix.image }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -357,29 +376,20 @@ jobs:
|
||||
. scripts/setenv -q && build -DWITH_TESTS=on -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DPORTABLE=ON ${{ matrix.build_flags }}
|
||||
strip bin/install/usr/bin/libopenrct2.so
|
||||
- name: Build artifacts
|
||||
run: . scripts/setenv -q && build-portable artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-${{ matrix.release }}-${{ matrix.platform }}.tar.gz bin/install/usr
|
||||
run: . scripts/setenv -q && build-portable artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-${{ matrix.release }}-${{ matrix.platform }}.tar.gz bin/install/usr
|
||||
- name: Upload artifacts (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-${{ matrix.release }}-${{ matrix.platform }}
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-${{ matrix.release }}-${{ matrix.platform }}
|
||||
path: artifacts
|
||||
if-no-files-found: error
|
||||
- name: Run Tests
|
||||
run: . scripts/setenv -q && run-tests
|
||||
- name: Upload artifacts (openrct2.org)
|
||||
run: |
|
||||
# Build identification code: https://github.com/Limetric/OpenRCT2.org/blob/e5b738f3dadcc5a3b78e8dfd434756ff31eaa1d3/src/misc/releaseAsset.js#L94-L116
|
||||
. scripts/setenv -q
|
||||
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-${{ matrix.release }}-${{ matrix.platform }}.tar.gz linux-${{ matrix.platform }}-${{ matrix.distro }}.tar.gz $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
else
|
||||
echo 'Not going to push build'
|
||||
fi
|
||||
linux-appimage:
|
||||
name: Ubuntu Linux (AppImage, x86_64)
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
container: openrct2/openrct2-build:16-noble
|
||||
needs: [check-code-formatting, build_variables]
|
||||
container: openrct2/openrct2-build:14-jammy
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -387,31 +397,24 @@ jobs:
|
||||
uses: hendrikmuhs/ccache-action@v1.2.13
|
||||
with:
|
||||
key: linux-appimage
|
||||
- name: Install Clang 15
|
||||
run: apt update && apt install -y clang-15
|
||||
- name: Get pre-reqs
|
||||
run: . scripts/setenv -q && get-discord-rpc
|
||||
- name: Build OpenRCT2
|
||||
run: |
|
||||
. scripts/setenv -q && build -DCMAKE_BUILD_TYPE=Release -DAPPIMAGE=ON -DOPENRCT2_USE_CCACHE=on
|
||||
. scripts/setenv -q && build -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 -DCMAKE_BUILD_TYPE=Release -DAPPIMAGE=ON -DOPENRCT2_USE_CCACHE=on
|
||||
strip bin/install/usr/bin/openrct2
|
||||
- name: Build AppImage
|
||||
env:
|
||||
APPIMAGE_FILE_NAME: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-linux-x86_64.AppImage
|
||||
APPIMAGE_FILE_NAME: OpenRCT2-${{ needs.build_variables.outputs.name }}-linux-x86_64.AppImage
|
||||
run: . scripts/setenv -q && build-appimage
|
||||
- name: Upload artifacts (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-AppImage
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-AppImage
|
||||
path: artifacts
|
||||
if-no-files-found: error
|
||||
- name: Upload artifacts (openrct2.org)
|
||||
run: |
|
||||
# Build identification code: https://github.com/Limetric/OpenRCT2.org/blob/e5b738f3dadcc5a3b78e8dfd434756ff31eaa1d3/src/misc/releaseAsset.js#L94-L116
|
||||
. scripts/setenv -q
|
||||
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-linux-x86_64.AppImage linux.AppImage $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
else
|
||||
echo 'Not going to push build'
|
||||
fi
|
||||
linux-docker:
|
||||
name: Ubuntu Linux (Docker)
|
||||
needs: check-code-formatting
|
||||
@@ -456,7 +459,7 @@ jobs:
|
||||
linux-clang-tests:
|
||||
name: Ubuntu Linux (debug) using clang, coverage enabled
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
needs: [check-code-formatting, build_variables]
|
||||
container: openrct2/openrct2-build:16-noble
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -488,7 +491,7 @@ jobs:
|
||||
- name: Upload artifacts (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-${{ runner.os }}-coverage
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-${{ runner.os }}-coverage
|
||||
path: |
|
||||
bin/*profdata*
|
||||
bin/coverage.json*
|
||||
@@ -497,7 +500,7 @@ jobs:
|
||||
android:
|
||||
name: Android
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-code-formatting, get_artifact_name]
|
||||
needs: [check-code-formatting, build_variables]
|
||||
container: openrct2/openrct2-build:14-android
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -515,27 +518,23 @@ jobs:
|
||||
./gradlew app:assembleRelease
|
||||
popd
|
||||
mkdir -p artifacts
|
||||
mv src/openrct2-android/app/build/outputs/apk/release/app-release.apk artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-android-arm.apk
|
||||
mv src/openrct2-android/app/build/outputs/apk/release/app-release.apk artifacts/OpenRCT2-${{ needs.build_variables.outputs.name }}-android-arm.apk
|
||||
- name: Upload artifacts (CI)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-Android
|
||||
name: OpenRCT2-${{ needs.build_variables.outputs.name }}-Android
|
||||
path: artifacts
|
||||
if-no-files-found: error
|
||||
- name: Upload artifacts (openrct2.org)
|
||||
run: |
|
||||
. scripts/setenv -q
|
||||
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
||||
upload-build artifacts/OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-android-arm.apk android-arm.apk $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
||||
else
|
||||
echo 'Not going to push build'
|
||||
fi
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [get_artifact_name, linux-portable, android, linux-appimage, macos-universal, windows]
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
needs: [build_variables, linux-portable, android, linux-appimage, macos-universal, windows]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
sparse-checkout: |
|
||||
distribution/changelog.txt
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
@@ -544,21 +543,51 @@ jobs:
|
||||
run: |
|
||||
ls -lR
|
||||
pushd ${{ github.workspace }}
|
||||
sha1sum OpenRCT2-* > openrct2-${{ needs.get_artifact_name.outputs.name }}-sha1sums.txt
|
||||
sha1sum OpenRCT2-* > OpenRCT2-${{ needs.build_variables.outputs.name }}-sha1sums.txt
|
||||
popd
|
||||
- name: Create release notes
|
||||
run: |
|
||||
# Print all the lines until an empty line
|
||||
sed -n '1,/^$/p' distribution/changelog.txt >> release_notes.txt
|
||||
echo "" >> release_notes.txt
|
||||
|
||||
echo "SHA1 checksums:" >> release_notes.txt
|
||||
echo "\`\`\`" >> release_notes.txt
|
||||
cat openrct2-${{ needs.get_artifact_name.outputs.name }}-sha1sums.txt >> release_notes.txt
|
||||
cat OpenRCT2-${{ needs.build_variables.outputs.name }}-sha1sums.txt >> release_notes.txt
|
||||
echo "\`\`\`" >> release_notes.txt
|
||||
echo "" >> release_notes.txt
|
||||
- name: Create release
|
||||
# Only upload tagged releases, mark them as draft for manual verification
|
||||
- name: Create tagged release
|
||||
uses: softprops/action-gh-release@v2
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
with:
|
||||
draft: true
|
||||
files: |
|
||||
openrct2-${{ needs.get_artifact_name.outputs.name }}-sha1sums.txt
|
||||
OpenRCT2-${{ needs.get_artifact_name.outputs.name }}-*
|
||||
OpenRCT2-${{ needs.build_variables.outputs.name }}-sha1sums.txt
|
||||
OpenRCT2-${{ needs.build_variables.outputs.name }}-*
|
||||
body_path: release_notes.txt
|
||||
tag_name: ${{ needs.get_artifact_name.outputs.tag }}
|
||||
tag_name: ${{ needs.build_variables.outputs.tag }}
|
||||
# The upload to binaries repository is done from develop only
|
||||
- name: Create tag for binaries repository
|
||||
uses: actions/github-script@v5
|
||||
if: ${{ needs.build_variables.outputs.push }}
|
||||
with:
|
||||
github-token: ${{ secrets.OPENRCT2_BINARIES_CI_UPLOAD }}
|
||||
script: |
|
||||
github.rest.git.createRef({
|
||||
owner: 'OpenRCT2',
|
||||
repo: 'OpenRCT2-binaries',
|
||||
ref: 'refs/tags/${{ needs.build_variables.outputs.name }}',
|
||||
sha: '2032e1601f3b35d07f088758d34bedbb84868616'
|
||||
})
|
||||
- name: Create release in binaries repo
|
||||
uses: softprops/action-gh-release@v2
|
||||
if: ${{ needs.build_variables.outputs.push }}
|
||||
with:
|
||||
repository: OpenRCT2/OpenRCT2-binaries
|
||||
token: ${{ secrets.OPENRCT2_BINARIES_CI_UPLOAD }}
|
||||
files: |
|
||||
openrct2-${{ needs.build_variables.outputs.name }}-sha1sums.txt
|
||||
OpenRCT2-${{ needs.build_variables.outputs.name }}-*
|
||||
body_path: release_notes.txt
|
||||
tag_name: ${{ needs.build_variables.outputs.name }}
|
||||
|
||||
@@ -68,9 +68,9 @@ set(TITLE_SEQUENCE_VERSION "0.4.14")
|
||||
set(TITLE_SEQUENCE_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
|
||||
set(TITLE_SEQUENCE_SHA1 "6c04781b959b468e1f65ec2d2f21f5aaa5e5724d")
|
||||
|
||||
set(OBJECTS_VERSION "1.4.8")
|
||||
set(OBJECTS_VERSION "1.4.10")
|
||||
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
|
||||
set(OBJECTS_SHA1 "405aef518945e617b2750be9128796daa70dba19")
|
||||
set(OBJECTS_SHA1 "e4953075d8dbe13ef48e8c4e87621cf3503a9d23")
|
||||
|
||||
set(OPENSFX_VERSION "1.0.5")
|
||||
set(OPENSFX_URL "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${OPENSFX_VERSION}/opensound.zip")
|
||||
@@ -80,9 +80,9 @@ set(OPENMSX_VERSION "1.6")
|
||||
set(OPENMSX_URL "https://github.com/OpenRCT2/OpenMusic/releases/download/v${OPENMSX_VERSION}/openmusic.zip")
|
||||
set(OPENMSX_SHA1 "ba170fa6d777b309c15420f4b6eb3fa25082a9d1")
|
||||
|
||||
set(REPLAYS_VERSION "0.0.80")
|
||||
set(REPLAYS_VERSION "0.0.83")
|
||||
set(REPLAYS_URL "https://github.com/OpenRCT2/replays/releases/download/v${REPLAYS_VERSION}/replays.zip")
|
||||
set(REPLAYS_SHA1 "76C977E1B5CA5A87798E98D489247C766F129D89")
|
||||
set(REPLAYS_SHA1 "FFC98C36AFEC68DC6A48E863413D4E2364A202B3")
|
||||
|
||||
option(FORCE32 "Force 32-bit build. It will add `-m32` to compiler flags.")
|
||||
option(WITH_TESTS "Build tests")
|
||||
@@ -110,6 +110,8 @@ option(DISABLE_HTTP "Disable HTTP support.")
|
||||
option(DISABLE_NETWORK "Disable multiplayer functionality. Mainly for testing.")
|
||||
option(DISABLE_TTF "Disable support for TTF provided by freetype2.")
|
||||
option(ENABLE_SCRIPTING "Enable script / plugin support." ON)
|
||||
option(ENABLE_ASAN "Enable the AddressSanitizer.")
|
||||
option(ENABLE_UBSAN "Enable the UndefinedBehaviourSanitizer.")
|
||||
|
||||
option(DISABLE_GUI "Don't build GUI. (Headless only.)")
|
||||
|
||||
@@ -396,6 +398,14 @@ endif ()
|
||||
if (ENABLE_SCRIPTING)
|
||||
target_compile_options(libopenrct2 PUBLIC -DENABLE_SCRIPTING)
|
||||
endif ()
|
||||
if (ENABLE_ASAN)
|
||||
target_compile_options(libopenrct2 PUBLIC -fsanitize=address)
|
||||
target_link_options(libopenrct2 PUBLIC -fsanitize=address)
|
||||
endif ()
|
||||
if (ENABLE_UBSAN)
|
||||
target_compile_options(libopenrct2 PUBLIC -fsanitize=undefined)
|
||||
target_link_options(libopenrct2 PUBLIC -fsanitize=undefined)
|
||||
endif ()
|
||||
|
||||
|
||||
# g2
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3597,302 +3597,3 @@ STR_6524 :Zvýšit prioritu zvoleného balíčku doplňků.
|
||||
STR_6525 :Znovu načítat všechny doplňky ve hře se zapnutými balíčkami doplňků.
|
||||
STR_6526 :(základní grafika, hudba a zvukové efekty)
|
||||
STR_6527 :Soutěže
|
||||
|
||||
###############################################################################
|
||||
## RCT2 Scenarios
|
||||
###############################################################################
|
||||
<Alpine Adventures>
|
||||
STR_SCNR :Alpine Adventures
|
||||
STR_PARK :Alpine Adventures
|
||||
STR_DTLS :Přestavte malý horský ski-resort na sněžný zábavní park
|
||||
|
||||
<Amity Airfield>
|
||||
STR_SCNR :Amity Airfield
|
||||
STR_PARK :Amity Airfield
|
||||
STR_DTLS :Postavte letecky-orientovaný zábavní park na tomto opuštěném letišti
|
||||
|
||||
<Botany Breakers>
|
||||
STR_SCNR :Botany Breakers
|
||||
STR_PARK :Botany Breakers
|
||||
STR_DTLS :Vaším úkolem je postavit vysoce výnosný zábavní park na tomto rajském ostrově
|
||||
|
||||
<Build your own Six Flags Belgium>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags Belgium
|
||||
STR_PARK :Six Flags Belgium
|
||||
STR_DTLS :Postavte si svou vlastní verzi tohoto evropského Six Flags zábavního parku
|
||||
|
||||
<Build your own Six Flags Great Adventure>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags Great Adventure
|
||||
STR_PARK :Six Flags Great Adventure
|
||||
STR_DTLS :Využijte svých návrhářských dovedností a vytvořte tento Six Flags zábavní park
|
||||
|
||||
<Build your own Six Flags Holland>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags Holland
|
||||
STR_PARK :Six Flags Holland
|
||||
STR_DTLS :Postavte tento evropský Six Flags zábavní park tak, jak jen budete chtít
|
||||
|
||||
<Build your own Six Flags Magic Mountain>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags Magic Mountain
|
||||
STR_PARK :Six Flags Magic Mountain
|
||||
STR_DTLS :Postavte si svou vlastní verzi tohoto masivního Six Flags zábavního parku
|
||||
|
||||
<Build your own Six Flags over Texas>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags over Texas
|
||||
STR_PARK :Six Flags over Texas
|
||||
STR_DTLS :Postavte atrakce tohoto Six Flags zábavního parku na zelené louce
|
||||
|
||||
<Build your own Six Flags Park>
|
||||
STR_SCNR :Postavte si svůj vlastní Six Flags Park
|
||||
STR_PARK :Six Flags
|
||||
STR_DTLS :Postavte si svůj vlastní návrh Six Flags zábavního parku - použijte buď atrakce z jiných Six Flags parků, nebo si navrhněte vlastní
|
||||
|
||||
<Bumbly Bazaar>
|
||||
STR_SCNR :Bumbly Bazaar
|
||||
STR_PARK :Bumbly Bazaar
|
||||
STR_DTLS :Začínáte s malým bazarem, přičemž vaším úkolem je zvýšit zisky z obchodů a stánků stavbou nových atrakcí k přilákání nových zákazníků
|
||||
|
||||
<Crazy Castle>
|
||||
STR_SCNR :Crazy Castle
|
||||
STR_PARK :Crazy Castle
|
||||
STR_DTLS :Zdědili jste velký hrad - a vaším úkolem je přeměnit ho na malý zábavní park
|
||||
|
||||
<Dusty Greens>
|
||||
STR_SCNR :Dusty Greens
|
||||
STR_PARK :Dusty Greens
|
||||
STR_DTLS :Poblíž pouštního dálničního křížení představuje Dusty Greens možnost přestavět malý golfový resort na vzkvétající zábavní park
|
||||
|
||||
<Electric Fields>
|
||||
STR_SCNR :Electric Fields
|
||||
STR_PARK :Electric Fields
|
||||
STR_DTLS :Zdědili jste malou farmu - a vaším úkolem je postavit malý zábavní park mezi poli a farmářskými budovami
|
||||
|
||||
<Extreme Heights>
|
||||
STR_SCNR :Extreme Heights
|
||||
STR_PARK :Extreme Heights
|
||||
STR_DTLS :Bez finančních omezení - vaším úkolem je rozšířit tento pouštní zábavní park pro přilákání většího počtu návštěvníků, vyhledávajících pořádnou dávku adrenalinu
|
||||
|
||||
<Factory Capers>
|
||||
STR_SCNR :Factory Capers
|
||||
STR_PARK :Factory Capers
|
||||
STR_DTLS :Opuštěný tovární komplex nabízí možnost postavit mechanicky-zaměřený zábavní park
|
||||
|
||||
<Fungus Woods>
|
||||
STR_SCNR :Fungus Woods
|
||||
STR_PARK :Fungus Woods
|
||||
STR_DTLS :Omezeni pouze na starší, dřevěné, dráhy, postavte vzkvétající zábavní park ve Fungus Woods
|
||||
|
||||
<Ghost Town>
|
||||
STR_SCNR :Ghost Town
|
||||
STR_PARK :Ghost Town
|
||||
STR_DTLS :Velký řetěze zábavních parků si vás najal, abyste postavili obrovský zábavní park plný horských drah v okolí opuštěného důlního městečka
|
||||
|
||||
<Gravity Gardens>
|
||||
STR_SCNR :Gravity Gardens
|
||||
STR_PARK :Gravity Gardens
|
||||
STR_DTLS :Postavte zábavní park s horskými drahami v nádherných Gravity Gardens - Jen horské dráhy, nic jiného!
|
||||
|
||||
<Infernal Views>
|
||||
STR_SCNR :Infernal Views
|
||||
STR_PARK :Infernal Views
|
||||
STR_DTLS :Zábavní park, postavený na úpatní neklidné sopky
|
||||
|
||||
<Lucky Lake>
|
||||
STR_SCNR :Lucky Lake
|
||||
STR_PARK :Lucky Lake
|
||||
STR_DTLS :S neomezenými financemi v nesnadném terénu okolo jezera - bude obtížné zábavní park dále rozšiřovat
|
||||
|
||||
<Rainbow Summit>
|
||||
STR_SCNR :Rainbow Summit
|
||||
STR_PARK :Rainbow Summit
|
||||
STR_DTLS :Zábavní park vybudovaný na straně kopce má zakázány výškové stavby. Dokážete i přes to park rozšířit a dosáhnout úspěchu?
|
||||
|
||||
<Six Flags Belgium>
|
||||
STR_SCNR :Six Flags Belgium
|
||||
STR_PARK :Six Flags Belgium
|
||||
STR_DTLS :Vyzkoušejte si provoz a vylepšování tohoto Six Flags zábavního parku
|
||||
|
||||
<Six Flags Great Adventure>
|
||||
STR_SCNR :Six Flags Great Adventure
|
||||
STR_PARK :Six Flags Great Adventure
|
||||
STR_DTLS :Postavte chybějící Six Flags atrakce, nebo vytvořte své vlastní! Nezapomeňte ale na hlavní cíl - přilákat co nejvíce návštěvníků!
|
||||
|
||||
<Six Flags Holland>
|
||||
STR_SCNR :Six Flags Holland
|
||||
STR_PARK :Six Flags Holland
|
||||
STR_DTLS :Vyzkoušejte si provoz a vylepšování tohoto Six Flags zábavního parku
|
||||
|
||||
<Six Flags Magic Mountain>
|
||||
STR_SCNR :Six Flags Magic Mountain
|
||||
STR_PARK :Six Flags Magic Mountain
|
||||
STR_DTLS :Postavte chybějící Six Flags atrakce, nebo vytvořte své vlastní! Nezapomeňte ale na hlavní cíl - vyrovnat dluhy bez propadu hodnoty parku!
|
||||
|
||||
<Six Flags over Texas>
|
||||
STR_SCNR :Six Flags over Texas
|
||||
STR_PARK :Six Flags over Texas
|
||||
STR_DTLS :Postavte chybějící Six Flags atrakce, nebo vytvořte své vlastní! Nezapomeňte ale na hlavní cíl - přilákat co nejvíce návštěvníků!
|
||||
|
||||
###############################################################################
|
||||
## Wacky Worlds Scenarios
|
||||
###############################################################################
|
||||
<Africa - African Diamond Mine>
|
||||
STR_SCNR :Mines of Africa
|
||||
STR_PARK :Mines of Africa
|
||||
STR_DTLS :Zdědili jste diamantový důl mimo provoz a nalezli hodnotný diamant. Rozhodli jste se tedy investovat peníze do stavby světoznámého zábavního parku.
|
||||
|
||||
<Africa - Oasis>
|
||||
STR_SCNR :Mirage Madness
|
||||
STR_PARK :Mirage Madness
|
||||
STR_DTLS :Byla objevena pouštní oáza, která nabízí nádherné místo pro zábavní park. Přeprava do oázy zajištěna.
|
||||
|
||||
<Africa - Victoria Falls>
|
||||
STR_SCNR :Over The Edge
|
||||
STR_PARK :Over The Edge
|
||||
STR_DTLS :Postavená přehrada zajišťuje velké množství levné hydroelektrické energie pro váš zábavní park. Dosáhněte vysokého hodnocení parku, abyste snáze splatili půjčku na přehradu.
|
||||
|
||||
<Antarctic - Ecological Salvage>
|
||||
STR_SCNR :Icy Adventures
|
||||
STR_PARK :Icy Adventures
|
||||
STR_DTLS :Obrátili se na vás ochranáři životního prostředí s prosbou, abyste přeměnili neekologickou rafinerii na vysoce navštěvovanou turistickou destinací. Pozemky jsou levné, ale úrok z půjčky vysoký. Zkuste prodat staré budovy.
|
||||
|
||||
<Asia - Great Wall of China Tourism Enhancement>
|
||||
STR_SCNR :Great Wall of China
|
||||
STR_PARK :Great Wall of China
|
||||
STR_DTLS :Místní správa se rozhodla podpořit cestovní ruch a vytvořit Velkou zeď stavbou přilehlého zábavního parku. Peníze nehrají roli.
|
||||
|
||||
<Asia - Japanese Coastal Reclaim>
|
||||
STR_SCNR :Okinawa Coast
|
||||
STR_PARK :Okinawa Coast
|
||||
STR_DTLS :Současnému zábavnímu parku došlo místo. Jedinou možností je začít stavět na moři, takže budete potřebovat velkou půjčku. V této oblasti jsou častá zemětřesení, proto nesmíte stavět vysoké budovy.
|
||||
|
||||
<Asia - Maharaja Palace>
|
||||
STR_SCNR :Park Maharaja
|
||||
STR_PARK :Park Maharaja
|
||||
STR_DTLS :Mahárádža vás vybral, abyste přinesli zábavu pro místní velkou populaci. Postavte zábavní park inspirovaný Mahárádžovým palácem
|
||||
|
||||
<Australasia - Ayers Rock>
|
||||
STR_SCNR :Ayers Adventure
|
||||
STR_PARK :Ayers Adventure
|
||||
STR_DTLS :Pomáháte domorodcům postavit zábavní park pro upozornění na jejich kulturu. Musíte poučit co nejvíce lidí o unikátní kultuře domorodých obyvatel.
|
||||
|
||||
<Australasia - Fun at the Beach>
|
||||
STR_SCNR :Beach Barbecue Blast
|
||||
STR_PARK :Beach Barbecue Blast
|
||||
STR_DTLS :Místní mořský svět bankrotoval a vy jste ho odkoupili. Vám už ale jeden malý park patří - postavte tedy ze dvou malých parků jeden obrovský!
|
||||
|
||||
<Europe - European Cultural Festival>
|
||||
STR_SCNR :European Extravaganza
|
||||
STR_PARK :European Extravaganza
|
||||
STR_DTLS :Byli jste přizváni, abyste převzali kontrolu nad Evropskou Kulturní Návštěvnickou Atrakcí a musíte zajistit nárůst návštěvnosti, jinak nebudete moci zaplatit za EU dotaci do konce vládního období.
|
||||
|
||||
<Europe - Renovation>
|
||||
STR_SCNR :From The Ashes
|
||||
STR_PARK :From The Ashes
|
||||
STR_DTLS :Evropská Unie vám dala grant, abyste zajistil obnovu starého, neudržovaného zábavního parku a přinesl zpět jeho tehdejší slávu. Musíte celý park renovovat a splatit grant.
|
||||
|
||||
<N. America - Extreme Hawaiian Island>
|
||||
STR_SCNR :Wacky Waikiki
|
||||
STR_PARK :Wacky Waikiki
|
||||
STR_DTLS :Havajané jsou znudění ze surfování a chtějí zažít něco adrenalinovějšího. Postavte zábavní park a nezapomeňte na to - pomůže vám to s dosažením dobrého hodnocení parku.
|
||||
|
||||
<North America - Grand Canyon>
|
||||
STR_SCNR :Canyon Calamities
|
||||
STR_PARK :Canyon Calamities
|
||||
STR_DTLS :Omezený terén vás nutí vybudovat zábavní park po stranách národní památky. Můžete ale od Indiánů nakupovat pozemky. Abyste si udrželi hodnocení místní správy, splňte cíl!
|
||||
|
||||
<North America - Rollercoaster Heaven>
|
||||
STR_SCNR :Rollercoaster Heaven
|
||||
STR_PARK :Rollercoaster Heaven
|
||||
STR_DTLS :Jste úspěšný obchodní magnát, který si přeje přetvořit městský park v místo nebeských horských drah. Peníze nehrají žádnou roli!
|
||||
|
||||
<South America - Inca Lost City>
|
||||
STR_SCNR :Lost City Founder
|
||||
STR_PARK :Lost City Founder
|
||||
STR_DTLS :Abyste zvýšili počet místních turistů, musíte postavit zábavní park, který zapadá do okolí a nemá žádné výškové budovy.
|
||||
|
||||
<South America - Rain Forest Plateau>
|
||||
STR_SCNR :Rainforest Romp
|
||||
STR_PARK :Rainforest Romp
|
||||
STR_DTLS :Prostor je limitovaný drahocenným deštným pralesem - musíte toho namáčknout co nejvíce do dosavadních pozemků, abyste mohli konkurovat místním dřevorubeckým společnostem.
|
||||
|
||||
<South America - Rio Carnival>
|
||||
STR_SCNR :Sugarloaf Shores
|
||||
STR_PARK :Sugarloaf Shores
|
||||
STR_DTLS :Provozujete malý zábavní park poblíž Ria, ale banka chce vrátit půjčku. Musíte rychle zvýšit vaše příjmy, abyste mohli dluh splatit.
|
||||
|
||||
###############################################################################
|
||||
## Time Twister Scenarios
|
||||
###############################################################################
|
||||
<Dark Age - Castle>
|
||||
STR_SCNR :Cliffside Castle
|
||||
STR_PARK :Cliffside Castle
|
||||
STR_DTLS :Členové místní skupiny pro rekonstrukci historických bitev berou své hobby trochu moc vážně. Svěřili vám stavbu starověkého zábavního parku na území Cliffside Castle.
|
||||
|
||||
<Dark Age - Robin Hood>
|
||||
STR_SCNR :Sherwood Forest
|
||||
STR_PARK :Sherwood Forest
|
||||
STR_DTLS :Abyste mohli brát bohatým a dávat chudým, rozhodli jste se postavit zábavní park v Sherwood Forest.
|
||||
|
||||
<Future - First Encounters>
|
||||
STR_SCNR :Extraterrestrial Extravaganza
|
||||
STR_PARK :Extraterrestrial Extravaganza
|
||||
STR_DTLS :Byl objeven život na vzdálené planetě. Postavte mimozemsky zaměřený zábavní park, abyste se svezli na vlně nového nepředvídaného zájmu.
|
||||
|
||||
<Future - Future World>
|
||||
STR_SCNR :Gemini City
|
||||
STR_PARK :Gemini City
|
||||
STR_DTLS :Ukažte svou vynalézavou, utopickou vizi budoucnosti - přijďte s futuristickým zábavním parkem, který zahrnuje ty nejnovější atrakce.
|
||||
|
||||
<Mythological - Animatronic Film Set>
|
||||
STR_SCNR :Animatronic Antics
|
||||
STR_PARK :Animatronic Antics
|
||||
STR_DTLS :Byl vám zadán úkol správy a vylepšování stávajícího zábavního parku, který byl postaven na starém filmařském místě. Vybudujte odkaz průkopníkům-animátorům, kteří poprvé přinesli mýtické postavy k životu na stříbrném plátně.
|
||||
|
||||
<Mythological - Cradle of Civilisation>
|
||||
STR_SCNR :Mythological Madness
|
||||
STR_PARK :Mythological Madness
|
||||
STR_DTLS :Vlastníte ostrov velké archeologické hodnoty. Rozhodli jste se podpořit jeho zachování vybudováním zábavního parku založeném na mytologii tohoto místa.
|
||||
|
||||
<Prehistoric - After the Asteroid>
|
||||
STR_SCNR :Crater Carnage
|
||||
STR_PARK :Crater Carnage
|
||||
STR_DTLS :Vlastníte velký kráter a jakožto opravdový průkopník jste se rozhodl vybudovat zábavní park ve stylu asteroidů a přeměnit tuto zdánlivě bezcennou půdu v profitující a vyhledávanou oblast.
|
||||
|
||||
<Prehistoric - Jurassic Safari>
|
||||
STR_SCNR :Coastersaurus
|
||||
STR_PARK :Coastersaurus
|
||||
STR_DTLS :Byli jste zaúkolováni stavbou zábavního parku ve stylu období Jura. Pro zlepšení přístupu návštěvníků k exotickým rostlinám a zvířatům budete muset postavit mosty do a přes údolí.
|
||||
|
||||
<Prehistoric - Stone Age>
|
||||
STR_SCNR :Rocky Rambles
|
||||
STR_PARK :Rocky Rambles
|
||||
STR_DTLS :Abyste se vyhnuli stavbě dálnice a zachovali mysteriózní prehistorické kamenné kruhy, budete muset postavit zábavní park ve stylu doby kamenné a začít vydělávat. Nicméně přilákat návštěvníky bude těžké, protože terén je opravdu nehostinný.
|
||||
|
||||
<Roaring Twenties - Prison Island>
|
||||
STR_SCNR :Alcatraz
|
||||
STR_PARK :Alcatraz
|
||||
STR_DTLS :Nechvalně proslavená ostrovní věznice - jejíž populace jednou překypovala pašeráky a vyděrači - je nyní na prodej. Rozhodli jste se jí přetvořit na velkou turistickou atrakci - na peníze berte ohled!
|
||||
|
||||
<Roaring Twenties - Schneider Cup>
|
||||
STR_SCNR :Schneider Shores
|
||||
STR_PARK :Schneider Shores
|
||||
STR_DTLS :75. leté výročí výhry Schneider Cup vašeho dědečka se blíží a zbývá už jen pár let. Poctíte jeho úspěch stavbou zábavního parku založeném na proslulém závodu hydroplánů.
|
||||
|
||||
<Roaring Twenties - Skyscrapers>
|
||||
STR_SCNR :Metropolis
|
||||
STR_PARK :Metropolis
|
||||
STR_DTLS :Vlastníte volný pozemek v městské oblasti téměř bez růstu. Abyste vymačkali co nejvíce z vaší nemovitosti, postavíte mrakodrap-zábavní park inspirovaný architekturou dvacátých let.
|
||||
|
||||
<Rock 'n' Roll - Flower Power>
|
||||
STR_SCNR :Woodstock
|
||||
STR_PARK :Woodstock
|
||||
STR_DTLS :Obrovský každoroční hudební festival se bude konat na vašem pozemku. Postavte pořádný park, abyste zabavili návštěvníky.
|
||||
|
||||
<Rock 'n' Roll - Rock 'n' Roll>
|
||||
STR_SCNR :Rock ’n’ Roll Revival
|
||||
STR_PARK :Rock ’n’ Roll Revival
|
||||
STR_DTLS :Tento stárnoucí zábavní park už viděl lepší dny. Pomozte majiteli dát parku retro rock ’n’ roll vzhled a udělat z něho vyhledávané místo.
|
||||
|
||||
<Panda World>
|
||||
STR_SCNR :Panda World
|
||||
STR_PARK :Panda World
|
||||
STR_DTLS :Přidejte další atrakce a přilákejte více lidí do pandího zábavního parku.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user