├── desktop_version ├── .dockerignore ├── android-project │ ├── app │ │ ├── jni │ │ │ ├── root │ │ │ ├── Android.mk │ │ │ └── Application.mk │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ └── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ └── java │ │ │ │ ├── io │ │ │ │ └── github │ │ │ │ │ └── v6cord │ │ │ │ │ └── vvvvvvce │ │ │ │ │ └── VCEActivity.java │ │ │ │ └── org │ │ │ │ └── libsdl │ │ │ │ └── app │ │ │ │ └── HIDDevice.java │ │ └── proguard-rules.pro │ ├── settings.gradle │ ├── .gitignore │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── build.gradle │ ├── gradle.properties │ └── android-project.iml ├── resources.rc ├── .clang-format ├── icon.jpg ├── data │ ├── leo.ogg │ ├── pop.wav │ ├── VVVVVV.png │ ├── graphics │ │ ├── font.png │ │ ├── sprites.png │ │ └── font.txt │ └── VVVVVV-CE.desktop ├── v6cord.ico ├── cpack.sh ├── cmake │ ├── toolchain.cmake │ └── version.cmake ├── .gitignore ├── download-data.sh ├── src │ ├── MakeAndPlay.h │ ├── Labclass.h │ ├── Spacestation2.h │ ├── Enums.h │ ├── WarpClass.h │ ├── Finalclass.h │ ├── preloader.h │ ├── Logic.h │ ├── Render.h │ ├── GOGNetwork.c │ ├── Input.h │ ├── Network.h │ ├── Maths.h │ ├── LuaScript.h │ ├── Tower.h │ ├── BlockV.h │ ├── Otherlevel.h │ ├── Screen.h │ ├── trace.c │ ├── Textbox.h │ ├── SoundSystem.h │ ├── GraphicsResources.h │ ├── Ent.h │ ├── BlockV.cpp │ ├── FileSystemUtils.h │ ├── BinaryBlob.h │ ├── Utilities.h │ ├── Music.h │ ├── battery_apple.m │ └── UtilityClass.h ├── wine-gdb.sh ├── pinned-cmake.sh ├── android-build.sh ├── run.sh ├── CONTRIBUTORS.txt ├── debug.sh ├── windres.patch ├── Dockerfile.switch └── build.sh ├── third_party ├── cparse │ ├── .gitignore │ ├── logo-cparse.png │ ├── builtin-features.cpp │ ├── catch.cpp │ ├── .gitrepo │ ├── .travis.yml │ ├── Makefile │ ├── LICENSE.mit │ ├── builtin-features.inc │ ├── shunting-yard-exceptions.h │ ├── functions.h │ └── builtin-features │ │ └── reservedWords.inc ├── libpng-1.6.37.tar.xz ├── lua-5.3.5 │ ├── doc │ │ ├── logo.gif │ │ ├── osi-certified-72x60.png │ │ ├── index.css │ │ └── manual.css │ ├── README │ └── src │ │ ├── lua.hpp │ │ ├── lapi.h │ │ ├── lundump.h │ │ ├── lprefix.h │ │ ├── lualib.h │ │ ├── ldebug.h │ │ ├── lstring.h │ │ ├── lzio.c │ │ ├── lzio.h │ │ ├── lfunc.h │ │ ├── linit.c │ │ ├── ltm.h │ │ ├── lctype.h │ │ ├── ldo.h │ │ ├── ltable.h │ │ └── lctype.c ├── mingw-std-threads │ ├── utility_scripts │ │ ├── generate_std_like_headers.bat │ │ └── generate_std_like_headers_interactive.bat │ ├── .gitrepo │ ├── cmake_stdheaders_generator │ │ └── template.cpp │ ├── tests │ │ └── CMakeLists.txt │ ├── LICENSE │ └── CMakeLists.txt ├── physfs │ ├── README.txt │ └── LICENSE.txt ├── androidenv │ ├── cmake.nix │ ├── lldb.nix │ ├── querypackages.sh │ ├── platform-tools.nix │ ├── generate.sh │ ├── default.nix │ ├── build-tools.nix │ ├── emulator.nix │ ├── tools.nix │ ├── tools │ │ ├── 26.nix │ │ └── 25.nix │ ├── deploy-androidpackage.nix │ ├── convertsystemimages.xsl │ ├── build-app.nix │ ├── ndk-bundle │ │ ├── default.nix │ │ └── make_standalone_toolchain.py_18.patch │ └── generated │ │ └── system-images-android-wear-cn.nix ├── tinyxml2 │ └── LICENSE.txt └── utfcpp │ └── LICENSE ├── .github ├── libs │ ├── SDL2.dll │ ├── zlib1.dll │ ├── libogg-0.dll │ ├── libstdc++-6.dll │ ├── libvorbis-0.dll │ ├── libgcc_s_sjlj-1.dll │ ├── libvorbisenc-2.dll │ └── libvorbisfile-3.dll ├── resources │ ├── vce.icns │ └── Info.plist └── workflows │ └── ci-android.yml ├── .gitattributes ├── tools ├── editors │ ├── World Mapping Editor │ │ ├── minimap.png │ │ ├── areamapin.txt │ │ ├── areamap.txt │ │ └── main.cpp │ ├── World Map Fork (for Eurogamer) │ │ ├── minimap.png │ │ ├── areamapin.txt │ │ ├── areamap.txt │ │ └── main.cpp │ ├── Screenshot Outputting Map Editor │ │ ├── screens │ │ │ ├── lab │ │ │ │ ├── x48y52.png │ │ │ │ ├── x48y53.png │ │ │ │ ├── x49y51.png │ │ │ │ ├── x49y52.png │ │ │ │ ├── x49y53.png │ │ │ │ ├── x49y54.png │ │ │ │ ├── x49y55.png │ │ │ │ ├── x50y50.png │ │ │ │ ├── x50y51.png │ │ │ │ ├── x50y53.png │ │ │ │ ├── x50y54.png │ │ │ │ ├── x50y55.png │ │ │ │ ├── x51y50.png │ │ │ │ ├── x51y51.png │ │ │ │ ├── x51y52.png │ │ │ │ ├── x51y53.png │ │ │ │ ├── x51y54.png │ │ │ │ ├── x51y55.png │ │ │ │ ├── x52y50.png │ │ │ │ ├── x52y51.png │ │ │ │ ├── x52y52.png │ │ │ │ ├── x52y53.png │ │ │ │ ├── x52y54.png │ │ │ │ ├── x52y55.png │ │ │ │ ├── x53y50.png │ │ │ │ ├── x53y51.png │ │ │ │ ├── x53y54.png │ │ │ │ ├── x54y50.png │ │ │ │ ├── x54y51.png │ │ │ │ ├── x54y54.png │ │ │ │ ├── x55y50.png │ │ │ │ ├── x55y51.png │ │ │ │ ├── x55y52.png │ │ │ │ ├── x55y53.png │ │ │ │ └── x55y54.png │ │ │ ├── warp │ │ │ │ ├── x49y49.png │ │ │ │ ├── x50y49.png │ │ │ │ ├── x50y50.png │ │ │ │ ├── x51y49.png │ │ │ │ ├── x51y50.png │ │ │ │ ├── x51y51.png │ │ │ │ ├── x52y49.png │ │ │ │ ├── x52y50.png │ │ │ │ ├── x52y51.png │ │ │ │ ├── x52y52.png │ │ │ │ ├── x53y49.png │ │ │ │ ├── x53y50.png │ │ │ │ ├── x53y51.png │ │ │ │ ├── x53y52.png │ │ │ │ ├── x54y49.png │ │ │ │ ├── x54y50.png │ │ │ │ ├── x54y51.png │ │ │ │ ├── x54y52.png │ │ │ │ ├── x55y49.png │ │ │ │ ├── x55y50.png │ │ │ │ ├── x55y51.png │ │ │ │ └── x55y52.png │ │ │ ├── final │ │ │ │ ├── x53y48.png │ │ │ │ ├── x53y49.png │ │ │ │ ├── x53y50.png │ │ │ │ ├── x53y51.png │ │ │ │ ├── x53y52.png │ │ │ │ └── x54y50.png │ │ │ ├── intermission │ │ │ │ ├── x41y56.png │ │ │ │ ├── x42y56.png │ │ │ │ ├── x43y56.png │ │ │ │ ├── x44y56.png │ │ │ │ ├── x45y56.png │ │ │ │ ├── x46y56.png │ │ │ │ ├── x47y56.png │ │ │ │ ├── x48y56.png │ │ │ │ ├── x49y56.png │ │ │ │ ├── x50y56.png │ │ │ │ ├── x51y56.png │ │ │ │ ├── x52y56.png │ │ │ │ ├── x53y56.png │ │ │ │ └── x54y56.png │ │ │ └── spacestation2 │ │ │ │ └── x51y41.png │ │ └── imports │ │ │ ├── final │ │ │ ├── x47y54.txt │ │ │ └── x53y50.txt │ │ │ └── lab │ │ │ ├── x52y57.txt │ │ │ ├── x55y51.txt │ │ │ ├── x52y51.txt │ │ │ ├── x54y54.txt │ │ │ ├── x55y50.txt │ │ │ ├── x53y50.txt │ │ │ ├── x55y52.txt │ │ │ └── x52y56.txt │ ├── Final Level Editor │ │ └── imports │ │ │ └── final │ │ │ ├── x47y54.txt │ │ │ └── x53y50.txt │ └── Level Mapping Editor │ │ ├── warpzone │ │ └── output.txt │ │ ├── output.txt │ │ └── lab │ │ └── output.txt └── readme.MD ├── .gitignore ├── mobile_version ├── readme.MD └── src │ ├── tmap.as │ ├── saveclass.as │ ├── edentitiesclass.as │ ├── platformclass.as │ ├── EditorDataclass.as │ ├── edlevelclass.as │ ├── blockclass.as │ ├── LevelMetaData.as │ └── device.as ├── README.md └── LICENSE.md /desktop_version/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !Dockerfile 3 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/jni/root: -------------------------------------------------------------------------------- 1 | ../../../../ -------------------------------------------------------------------------------- /desktop_version/resources.rc: -------------------------------------------------------------------------------- 1 | AppIcon ICON "./v6cord.ico" 2 | -------------------------------------------------------------------------------- /third_party/cparse/.gitignore: -------------------------------------------------------------------------------- 1 | test-shunting-yard 2 | *.o 3 | -------------------------------------------------------------------------------- /desktop_version/android-project/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /desktop_version/.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Google 2 | IndentWidth: 4 3 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/jni/Android.mk: -------------------------------------------------------------------------------- 1 | include $(call all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /.github/libs/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/SDL2.dll -------------------------------------------------------------------------------- /.github/libs/zlib1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/zlib1.dll -------------------------------------------------------------------------------- /.github/libs/libogg-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libogg-0.dll -------------------------------------------------------------------------------- /desktop_version/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/icon.jpg -------------------------------------------------------------------------------- /.github/libs/libstdc++-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libstdc++-6.dll -------------------------------------------------------------------------------- /.github/libs/libvorbis-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libvorbis-0.dll -------------------------------------------------------------------------------- /.github/resources/vce.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/resources/vce.icns -------------------------------------------------------------------------------- /desktop_version/data/leo.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/data/leo.ogg -------------------------------------------------------------------------------- /desktop_version/data/pop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/data/pop.wav -------------------------------------------------------------------------------- /desktop_version/v6cord.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/v6cord.ico -------------------------------------------------------------------------------- /.github/libs/libgcc_s_sjlj-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libgcc_s_sjlj-1.dll -------------------------------------------------------------------------------- /.github/libs/libvorbisenc-2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libvorbisenc-2.dll -------------------------------------------------------------------------------- /.github/libs/libvorbisfile-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/.github/libs/libvorbisfile-3.dll -------------------------------------------------------------------------------- /desktop_version/data/VVVVVV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/data/VVVVVV.png -------------------------------------------------------------------------------- /third_party/libpng-1.6.37.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/third_party/libpng-1.6.37.tar.xz -------------------------------------------------------------------------------- /third_party/cparse/logo-cparse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/third_party/cparse/logo-cparse.png -------------------------------------------------------------------------------- /third_party/lua-5.3.5/doc/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/third_party/lua-5.3.5/doc/logo.gif -------------------------------------------------------------------------------- /desktop_version/data/graphics/font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/data/graphics/font.png -------------------------------------------------------------------------------- /desktop_version/data/graphics/sprites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/data/graphics/sprites.png -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.as linguist-language=ActionScript 2 | mobile_version/* linguist-vendored 3 | third_party/* linguist-vendored linguist-generated 4 | -------------------------------------------------------------------------------- /tools/editors/World Mapping Editor/minimap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/World Mapping Editor/minimap.png -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | VVVVVV-CE 3 | 4 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/doc/osi-certified-72x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/third_party/lua-5.3.5/doc/osi-certified-72x60.png -------------------------------------------------------------------------------- /third_party/mingw-std-threads/utility_scripts/generate_std_like_headers.bat: -------------------------------------------------------------------------------- 1 | powershell -NonInteractive -ExecutionPolicy ByPass -File %~dp0Generate-StdLikeHeaders.ps1 %* -------------------------------------------------------------------------------- /tools/editors/World Map Fork (for Eurogamer)/minimap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/World Map Fork (for Eurogamer)/minimap.png -------------------------------------------------------------------------------- /third_party/mingw-std-threads/utility_scripts/generate_std_like_headers_interactive.bat: -------------------------------------------------------------------------------- 1 | powershell -ExecutionPolicy ByPass -File %~dp0Generate-StdLikeHeaders.ps1 -Interactive -------------------------------------------------------------------------------- /desktop_version/android-project/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | app/.externalNativeBuild/* 4 | app/src/main/assets/data.zip 5 | local.properties 6 | *.jks 7 | keystore.properties 8 | -------------------------------------------------------------------------------- /desktop_version/android-project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x48y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x48y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x48y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x48y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x49y55.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x50y55.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x51y55.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x52y55.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x53y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x54y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y53.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/lab/x55y54.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x49y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x49y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x50y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x50y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x50y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x50y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x51y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x52y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x53y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x54y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/warp/x55y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x53y48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x53y48.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x53y49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x53y49.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x53y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x53y50.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x53y51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x53y51.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x53y52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x53y52.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/final/x54y50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/final/x54y50.png -------------------------------------------------------------------------------- /third_party/lua-5.3.5/README: -------------------------------------------------------------------------------- 1 | 2 | This is Lua 5.3.5, released on 26 Jun 2018. 3 | 4 | For installation instructions, license details, and 5 | further information about Lua, see doc/readme.html. 6 | 7 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x41y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x41y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x42y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x42y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x43y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x43y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x44y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x44y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x45y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x45y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x46y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x46y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x47y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x47y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x48y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x48y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x49y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x49y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x50y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x50y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x51y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x51y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x52y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x52y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x53y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x53y56.png -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/intermission/x54y56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/intermission/x54y56.png -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/desktop_version/android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /third_party/cparse/builtin-features.cpp: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Force the Startup classes to run 4 | * at static initialization time: 5 | */ 6 | #define STATIC_CPARSE_STARTUP 7 | #include "./builtin-features.inc" 8 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/screens/spacestation2/x51y41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/v6cord/VVVVVV-CE/HEAD/tools/editors/Screenshot Outputting Map Editor/screens/spacestation2/x51y41.png -------------------------------------------------------------------------------- /desktop_version/data/VVVVVV-CE.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Version=1.0.0-pre.1 4 | Type=Application 5 | Terminal=false 6 | Exec=VVVVVV-CE 7 | Name=VVVVVV-CE 8 | Icon=v6ce 9 | Categories=Game 10 | -------------------------------------------------------------------------------- /desktop_version/cpack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd "$(dirname "$0")" 3 | set -- -DDATA_ZIP_PATH="/usr/share/vvvvvv/data.zip" 4 | source ./build.sh 5 | ln -s data-zip/data.zip data.zip || true 6 | cpack 7 | mv -v VVVVVV-CE-*-Linux.deb VVVVVV-CE.deb 8 | -------------------------------------------------------------------------------- /third_party/physfs/README.txt: -------------------------------------------------------------------------------- 1 | 2 | PhysicsFS; a portable, flexible file i/o abstraction. 3 | 4 | https://icculus.org/physfs/ 5 | 6 | Please see the docs directory for documentation. 7 | 8 | Please see LICENSE.txt for licensing information. 9 | 10 | -------------------------------------------------------------------------------- /desktop_version/cmake/toolchain.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME Windows) 2 | set(CMAKE_SYSTEM_PROCESSOR x86_64) 3 | 4 | set(CMAKE_C_COMPILER x86_64-pc-mingw32-gcc) 5 | set(CMAKE_CXX_COMPILER x86_64-pc-mingw32-g++) 6 | set(CMAKE_RC_COMPILER x86_64-pc-mingw32-windres) 7 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lua.hpp: -------------------------------------------------------------------------------- 1 | // lua.hpp 2 | // Lua header files for C++ 3 | // <> not supplied automatically because Lua also compiles as C++ 4 | 5 | extern "C" { 6 | #include "lua.h" 7 | #include "lualib.h" 8 | #include "lauxlib.h" 9 | } 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | desktop_version/build/ 2 | SDL2_mixer-2.0.4/ 3 | SDL2-2.0.10/ 4 | *.o 5 | .vs/ 6 | data.zip 7 | desktop_version/flibitBuild/ 8 | .vscode 9 | Thumbs.db 10 | desktop_version/*.elf 11 | desktop_version/*.nacp 12 | desktop_version/*.nro 13 | libpng-1.2.37-lib/ 14 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /desktop_version/.gitignore: -------------------------------------------------------------------------------- 1 | # Build objects 2 | build* 3 | !build.sh 4 | !build.gradle 5 | flibitBuild/ 6 | CMakeCache.txt 7 | CMakeFiles/ 8 | cmake_install.cmake 9 | Makefile 10 | VVVVVV.exe 11 | VVVVVV 12 | *.a 13 | *.gch 14 | !tests/**/* 15 | 16 | # Game data 17 | data.zip 18 | leo.ogg 19 | -------------------------------------------------------------------------------- /third_party/cparse/catch.cpp: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_RUNNER 2 | #include "catch.hpp" 3 | 4 | // Defined on test-shunting-yard.cpp 5 | void PREPARE_ENVIRONMENT(); 6 | 7 | int main(int argc, char** argv) { 8 | PREPARE_ENVIRONMENT(); 9 | return Catch::Session().run(argc, argv); 10 | } 11 | -------------------------------------------------------------------------------- /desktop_version/download-data.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | if [[ ! -f data-zip/data.zip && ! -f data.zip ]]; then 3 | mkdir -p data-zip 4 | wget -O data-zip/data.zip https://thelettervsixtim.es/makeandplay/data.zip 5 | fi 6 | if [ ! -f data.zip ]; then 7 | ln -s data-zip/data.zip data.zip 8 | fi 9 | -------------------------------------------------------------------------------- /desktop_version/android-project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Oct 23 13:51:26 PDT 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip 7 | -------------------------------------------------------------------------------- /desktop_version/src/MakeAndPlay.h: -------------------------------------------------------------------------------- 1 | #ifndef MAKEANDPLAY_H 2 | #define MAKEANDPLAY_H 3 | 4 | /* This is a cheap way to deal with the MAKEANDPLAY def when recompiling. 5 | * It's heaps faster than rebuilding everything, so here we are. 6 | * -flibit 7 | */ 8 | #define MAKEANDPLAY 9 | 10 | #endif /* MAKEANDPLAY_H */ 11 | -------------------------------------------------------------------------------- /desktop_version/src/Labclass.h: -------------------------------------------------------------------------------- 1 | #ifndef LABCLASS_H 2 | #define LABCLASS_H 3 | 4 | #include "Game.h" 5 | #include "Entity.h" 6 | 7 | 8 | class labclass 9 | { 10 | public: 11 | const int* loadlevel(int rx, int ry); 12 | 13 | std::string roomname; 14 | int coin, rcol = 0; 15 | }; 16 | #endif /* LABCLASS_H */ 17 | -------------------------------------------------------------------------------- /desktop_version/src/Spacestation2.h: -------------------------------------------------------------------------------- 1 | #ifndef SPACESTATION2_H 2 | #define SPACESTATION2_H 3 | 4 | #include "Game.h" 5 | #include "Entity.h" 6 | 7 | #include 8 | 9 | class spacestation2class 10 | { 11 | public: 12 | const int* loadlevel(int rx, int ry); 13 | std::string roomname; 14 | }; 15 | 16 | #endif /* SPACESTATION2_H */ 17 | -------------------------------------------------------------------------------- /desktop_version/src/Enums.h: -------------------------------------------------------------------------------- 1 | #ifndef ENUMGAME_H 2 | #define ENUMGAME_H 3 | 4 | enum 5 | { 6 | 7 | GAMEMODE, TITLEMODE, CLICKTOSTART, FOCUSMODE, MAPMODE, TELEPORTERMODE, GAMECOMPLETE, GAMECOMPLETE2, EDITORMODE, PRELOADER 8 | 9 | }; 10 | 11 | enum input_type : int { 12 | swipeinput, holdinput 13 | }; 14 | 15 | #endif /* ENUMGAME_H */ 16 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/jni/Application.mk: -------------------------------------------------------------------------------- 1 | 2 | # Uncomment this if you're using STL in your project 3 | # You can find more information here: 4 | # https://developer.android.com/ndk/guides/cpp-support 5 | # APP_STL := c++_shared 6 | 7 | APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 8 | 9 | # Min runtime API level 10 | APP_PLATFORM=android-16 11 | -------------------------------------------------------------------------------- /desktop_version/wine-gdb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This is a small wrapper to append arguments to winedbg's gdb invocation. 4 | # file VVVVVV-CE.exe loads symbols, tb SDL_main sets a one-time breakpoint at 5 | # VVVVVV-CE's entrypoint, and c continues to there. 6 | exec gdb "$@" -ex 'set confirm off' -ex 'file VVVVVV-CE.exe' -ex 'tb SDL_main' -ex 'c' -ex 'set confirm on' 7 | -------------------------------------------------------------------------------- /desktop_version/src/WarpClass.h: -------------------------------------------------------------------------------- 1 | #ifndef WARPCLASS_H 2 | #define WARPCLASS_H 3 | 4 | #include "Game.h" 5 | #include "Entity.h" 6 | 7 | #include 8 | 9 | class warpclass 10 | { 11 | public: 12 | const int* loadlevel(int rx, int ry); 13 | std::string roomname; 14 | int coin, rcol = 0; 15 | bool warpx, warpy = 0; 16 | }; 17 | 18 | #endif /* WARPCLASS_H */ 19 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/doc/index.css: -------------------------------------------------------------------------------- 1 | ul { 2 | list-style-type: none ; 3 | } 4 | 5 | ul.contents { 6 | padding: 0 ; 7 | } 8 | 9 | table { 10 | border: none ; 11 | border-spacing: 0 ; 12 | border-collapse: collapse ; 13 | } 14 | 15 | td { 16 | vertical-align: top ; 17 | padding: 0 ; 18 | text-align: left ; 19 | line-height: 1.25 ; 20 | width: 15% ; 21 | } 22 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/doc/manual.css: -------------------------------------------------------------------------------- 1 | h3 code { 2 | font-family: inherit ; 3 | font-size: inherit ; 4 | } 5 | 6 | pre, code { 7 | font-size: 12pt ; 8 | } 9 | 10 | span.apii { 11 | color: gray ; 12 | float: right ; 13 | font-family: inherit ; 14 | font-style: normal ; 15 | font-size: small ; 16 | } 17 | 18 | h2:before { 19 | content: "" ; 20 | padding-right: 0em ; 21 | } 22 | -------------------------------------------------------------------------------- /desktop_version/src/Finalclass.h: -------------------------------------------------------------------------------- 1 | #ifndef FINALCLASS_H 2 | #define FINALCLASS_H 3 | 4 | #include "Game.h" 5 | #include "Entity.h" 6 | 7 | #include 8 | 9 | class finalclass 10 | { 11 | public: 12 | const int* loadlevel(int rx, int ry); 13 | 14 | std::string roomname; 15 | int coin, rcol = 0; 16 | bool warpx, warpy = false; 17 | }; 18 | 19 | #endif /* FINALCLASS_H */ 20 | -------------------------------------------------------------------------------- /desktop_version/src/preloader.h: -------------------------------------------------------------------------------- 1 | #ifndef PRELOADER_H 2 | #define PRELOADER_H 3 | 4 | #include "Graphics.h" 5 | #include "Game.h" 6 | #include "UtilityClass.h" 7 | #include 8 | 9 | void preloaderrender(); 10 | void preloaderloop(); 11 | extern std::atomic_int pre_fakepercent; 12 | extern std::atomic_bool pre_quickend; 13 | 14 | void preloaderlogic(); 15 | 16 | #endif /* PRELOADER_H */ 17 | -------------------------------------------------------------------------------- /third_party/androidenv/cmake.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}: 2 | 3 | deployAndroidPackage { 4 | inherit package os; 5 | buildInputs = [ autoPatchelfHook ] 6 | ++ lib.optional (os == "linux") [ pkgs.stdenv.glibc pkgs.stdenv.cc.cc ]; 7 | patchInstructions = lib.optionalString (os == "linux") '' 8 | autoPatchelf $packageBaseDir/bin 9 | ''; 10 | } 11 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/java/io/github/v6cord/vvvvvvce/VCEActivity.java: -------------------------------------------------------------------------------- 1 | package io.github.v6cord.vvvvvvce; 2 | 3 | import org.libsdl.app.SDLActivity; 4 | 5 | public class VCEActivity extends SDLActivity { 6 | @Override 7 | protected String[] getLibraries() { 8 | return new String[] { 9 | "hidapi", 10 | "main" 11 | }; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /desktop_version/src/Logic.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGIC_H 2 | #define LOGIC_H 3 | 4 | #include "Graphics.h" 5 | #include "Game.h" 6 | #include "Entity.h" 7 | #include "UtilityClass.h" 8 | #include "Music.h" 9 | #include "Map.h" 10 | 11 | void titleupdatetextcol(); 12 | 13 | void titlelogic(); 14 | 15 | void maplogic(); 16 | 17 | void gamecompletelogic(); 18 | 19 | void gamecompletelogic2(); 20 | 21 | void gamelogic(); 22 | 23 | #endif /* LOGIC_H */ 24 | -------------------------------------------------------------------------------- /desktop_version/src/Render.h: -------------------------------------------------------------------------------- 1 | #ifndef RENDER_H 2 | #define RENDER_H 3 | 4 | #include "Graphics.h" 5 | #include "UtilityClass.h" 6 | #include "Maths.h" 7 | #include "Entity.h" 8 | #include "Map.h" 9 | #include "Script.h" 10 | 11 | void titlerender(); 12 | 13 | void gamerender(); 14 | 15 | void maprender(); 16 | 17 | void teleporterrender(); 18 | 19 | void gamecompleterender(); 20 | 21 | void gamecompleterender2(); 22 | 23 | #endif /* RENDER_H */ 24 | -------------------------------------------------------------------------------- /mobile_version/readme.MD: -------------------------------------------------------------------------------- 1 | This is the source code for the adobe air mobile version of VVVVVV, which is forked from the original flash source code. 2 | 3 | The mobile version needs a different data.zip folder, which [can be downloaded from here](https://thelettervsixtim.es/makeandplay/). Just like the asset contents from the C++ version, the contents of this folder are still under a proprietary license. 4 | 5 | Requires Adobe AIR, targeting SWF version 36. 6 | -------------------------------------------------------------------------------- /third_party/cparse/.gitrepo: -------------------------------------------------------------------------------- 1 | ; DO NOT EDIT (unless you know what you are doing) 2 | ; 3 | ; This subdirectory is a git "subrepo", and this file is maintained by the 4 | ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme 5 | ; 6 | [subrepo] 7 | remote = https://github.com/cparse/cparse.git 8 | branch = master 9 | commit = 85673cee67f12637bfe41a19de6157e1e9d34c45 10 | parent = 1daacf0d8c873960b6bef6a024ca9b4aeb6956a7 11 | method = merge 12 | cmdver = 0.4.0 13 | -------------------------------------------------------------------------------- /desktop_version/src/GOGNetwork.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /* Totally unimplemented right now! */ 4 | 5 | int32_t GOG_init() 6 | { 7 | return 0; 8 | } 9 | 10 | void GOG_shutdown() 11 | { 12 | } 13 | 14 | void GOG_update() 15 | { 16 | } 17 | 18 | void GOG_unlockAchievement(const char *name) 19 | { 20 | } 21 | 22 | int32_t GOG_getAchievementProgress(const char *name) 23 | { 24 | return 0; 25 | } 26 | 27 | void GOG_setAchievementProgress(const char *name, int32_t stat) 28 | { 29 | } 30 | -------------------------------------------------------------------------------- /desktop_version/src/Input.h: -------------------------------------------------------------------------------- 1 | #ifndef INPUT_H 2 | #define INPUT_H 3 | 4 | #include "KeyPoll.h" 5 | #include "Graphics.h" 6 | #include "Game.h" 7 | #include "Entity.h" 8 | #include "UtilityClass.h" 9 | #include "Music.h" 10 | #include "Map.h" 11 | 12 | void changeloginput(); 13 | 14 | void titleinput(); 15 | 16 | void gameinput(); 17 | 18 | void mapinput(); 19 | 20 | void teleporterinput(); 21 | 22 | void gamecompleteinput(); 23 | 24 | void gamecompleteinput2(); 25 | 26 | #endif /* INPUT_H */ 27 | -------------------------------------------------------------------------------- /third_party/mingw-std-threads/.gitrepo: -------------------------------------------------------------------------------- 1 | ; DO NOT EDIT (unless you know what you are doing) 2 | ; 3 | ; This subdirectory is a git "subrepo", and this file is maintained by the 4 | ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme 5 | ; 6 | [subrepo] 7 | remote = https://github.com/meganz/mingw-std-threads.git 8 | branch = master 9 | commit = bee085c0a6cb32c59f0b55c7bba976fe6dcfca7f 10 | parent = f728054fde9c9fb23cd744296c6006a341316528 11 | method = merge 12 | cmdver = 0.4.0 13 | -------------------------------------------------------------------------------- /desktop_version/src/Network.h: -------------------------------------------------------------------------------- 1 | #ifndef VNETWORK_H 2 | #define VNETWORK_H 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | int32_t NETWORK_init(); 11 | 12 | void NETWORK_shutdown(); 13 | 14 | void NETWORK_update(); 15 | 16 | void NETWORK_unlockAchievement(const char *name); 17 | 18 | int32_t NETWORK_getAchievementProgress(const char *name); 19 | 20 | void NETWORK_setAchievementProgress(const char *name, int32_t stat); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif /* VNETWORK_H */ 27 | -------------------------------------------------------------------------------- /desktop_version/pinned-cmake.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | if [ ! -d .github/resources/cmake ]; then 5 | mkdir -p .github/resources/cmake 6 | 7 | wget https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4-Linux-x86_64.sh \ 8 | -q -O /tmp/cmake-install.sh 9 | 10 | chmod u+x /tmp/cmake-install.sh 11 | mkdir -p /usr/local/ 12 | /tmp/cmake-install.sh --skip-license --prefix=.github/resources/cmake 13 | rm /tmp/cmake-install.sh 14 | fi 15 | 16 | echo "::add-path::.github/resources/cmake/bin" 17 | -------------------------------------------------------------------------------- /mobile_version/src/tmap.as: -------------------------------------------------------------------------------- 1 | package { 2 | public class tmap { 3 | public static function init():void { 4 | for (var i:int = 0; i < 30; i++) { 5 | contents.push(""); 6 | } 7 | 8 | index = 0; 9 | } 10 | 11 | public static function reset():void { 12 | index = 0; 13 | } 14 | 15 | public static function push(t:String):void { 16 | contents[index] = t; 17 | index++; 18 | } 19 | 20 | public static var contents:Vector. = new Vector.; 21 | public static var index:int; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /third_party/mingw-std-threads/cmake_stdheaders_generator/template.cpp: -------------------------------------------------------------------------------- 1 | #ifdef MINGW_STDTHREADS_DETECTING_SYSTEM_HEADER 2 | #include MINGW_STDTHREADS_DETECTING_SYSTEM_HEADER 3 | static_assert(false, "Prevent compilation") 4 | #else 5 | #pragma once 6 | // both system header and mignw-stdthreads header should already have include 7 | // guards. But we still add a #pragma once just to be safe. 8 | 9 | #include "${mingw_stdthreads_headers_generator_system_header}" 10 | #include "${mingw_stdthreads_headers_generator_library_header}" 11 | #endif -------------------------------------------------------------------------------- /third_party/cparse/.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | addons: 3 | apt: 4 | update: true 5 | sources: 6 | - ubuntu-toolchain-r-test # For gcc 4.8. 7 | packages: 8 | - cppcheck 9 | - python-pip 10 | - g++-4.8 11 | - gcc-4.8 12 | before_install: 13 | - sudo pip install cpplint 14 | install: 15 | - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi 16 | script: 17 | - make && make test 18 | - cpplint --filter=-whitespace/line_length,-legal/copyright,-runtime/explicit *.cpp *.h 19 | - cppcheck --suppress='*:catch.hpp' . --force 20 | -------------------------------------------------------------------------------- /third_party/androidenv/lldb.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}: 2 | 3 | deployAndroidPackage { 4 | inherit package os; 5 | buildInputs = [ autoPatchelfHook ] 6 | ++ [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.zlib pkgs.openssl.out pkgs.openssl pkgs.ncurses5 ]; 7 | patchInstructions = lib.optionalString (os == "linux") '' 8 | addAutoPatchelfSearchPath $packageBaseDir/lib 9 | addAutoPatchelfSearchPath ${pkgs.openssl.out}/lib 10 | autoPatchelf $packageBaseDir/lib || true 11 | autoPatchelf $packageBaseDir/bin || true 12 | ''; 13 | } 14 | -------------------------------------------------------------------------------- /desktop_version/src/Maths.h: -------------------------------------------------------------------------------- 1 | #ifndef MATHGAME_H 2 | #define MATHGAME_H 3 | 4 | #include 5 | #include 6 | #include "Utilities.h" 7 | 8 | //// This header holds Maths functions that emulate the functionality of flash's 9 | 10 | 11 | //random 12 | //Returns 0..1 13 | float inline fRandom() 14 | { 15 | return std::ldexp(float(xoshiro_next()), -64); 16 | } 17 | 18 | inline int clamp(int x, int a, int b) 19 | { 20 | return x < a ? a : (x > b ? b : x); 21 | } 22 | 23 | struct point 24 | { 25 | int x = 0; 26 | int y = 0; 27 | }; 28 | 29 | #endif /* MATHGAME_H */ 30 | -------------------------------------------------------------------------------- /mobile_version/src/saveclass.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class saveclass extends Sprite { 8 | public function saveclass():void { 9 | } 10 | 11 | public var explored:Array;// = new Array(); 12 | public var flags:Array;// = new Array(); 13 | public var crewstats:Array;// = new Array(); 14 | public var collect:Array;// = new Array(); 15 | public var customcollect:Array;// = new Array(); 16 | public var moods:Array;// = new Array(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /mobile_version/src/edentitiesclass.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class edentitiesclass { 8 | public function edentitiesclass():void { 9 | clear(); 10 | } 11 | 12 | public function clear():void{ 13 | x = 0; y = 0; t = 0; 14 | p1 = 0; p2 = 0; p3 = 0; p4 = 0; p5 = 0; p6 = 0; 15 | scriptname = ""; 16 | } 17 | 18 | public var x:int, y:int, t:int; 19 | public var scriptname:String; 20 | public var p1:int, p2:int, p3:int, p4:int, p5:int, p6:int; 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /third_party/androidenv/querypackages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | if [ "$1" = "" ] 4 | then 5 | echo "Please select a package set: 'packages', 'addons', 'system-images'" >&2 6 | exit 1 7 | fi 8 | 9 | if [ "$2" = "" ] 10 | then 11 | echo "Please select a package group:" >&2 12 | ( cat < app/v6cord-release.jks 9 | fi 10 | cat << EOF > keystore.properties 11 | storePassword=$V6CORD_RELEASE_PASSWORD 12 | keyPassword=$V6CORD_RELEASE_PASSWORD 13 | keyAlias=v6cord 14 | storeFile=v6cord-release.jks 15 | EOF 16 | sha256sum keystore.properties app/v6cord-release.jks || true 17 | ./gradlew assembleRelease 18 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lapi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lapi.h,v 2.9.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Auxiliary functions from Lua API 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lapi_h 8 | #define lapi_h 9 | 10 | 11 | #include "llimits.h" 12 | #include "lstate.h" 13 | 14 | #define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ 15 | "stack overflow");} 16 | 17 | #define adjustresults(L,nres) \ 18 | { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } 19 | 20 | #define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ 21 | "not enough elements in the stack") 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /desktop_version/android-project/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | google() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.2.0' 10 | 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | jcenter() 19 | google() 20 | } 21 | } 22 | 23 | task clean(type: Delete) { 24 | delete rootProject.buildDir 25 | } 26 | -------------------------------------------------------------------------------- /desktop_version/src/LuaScript.h: -------------------------------------------------------------------------------- 1 | #ifndef LUASCRIPT_H 2 | #define LUASCRIPT_H 3 | 4 | #define SOL_ALL_SAFETIES_ON 1 5 | 6 | #include 7 | #include 8 | 9 | class lua_script { 10 | sol::state lua; 11 | sol::thread thread; 12 | sol::coroutine coroutine; 13 | std::string text; 14 | 15 | void add_functions(); 16 | 17 | public: 18 | unsigned int delay = 0; 19 | bool endtext = false; 20 | 21 | lua_script(std::string name, std::vector contents); 22 | bool run(); 23 | static void load(std::string name, std::vector contents); 24 | 25 | lua_script(lua_script&& x) = delete; 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /desktop_version/src/Tower.h: -------------------------------------------------------------------------------- 1 | #ifndef TOWER_H 2 | #define TOWER_H 3 | 4 | #include 5 | 6 | class towerclass 7 | { 8 | public: 9 | towerclass(); 10 | 11 | int backat(int xp, int yp, int yoff); 12 | 13 | int at(int xp, int yp, int yoff); 14 | 15 | int miniat(int xp, int yp, int yoff); 16 | 17 | void loadminitower1(); 18 | 19 | void loadminitower2(); 20 | 21 | void loadbackground(); 22 | 23 | void loadmap(); 24 | 25 | int back[40 * 120]; 26 | int contents[40 * 700]; 27 | std::vector minitower; 28 | std::vector vmult; 29 | 30 | bool minitowermode = false; 31 | }; 32 | 33 | 34 | 35 | 36 | 37 | #endif /* TOWER_H */ 38 | -------------------------------------------------------------------------------- /desktop_version/src/BlockV.h: -------------------------------------------------------------------------------- 1 | #ifndef BLOCKV_H 2 | #define BLOCKV_H 3 | 4 | #include 5 | #include 6 | 7 | class blockclass 8 | { 9 | public: 10 | blockclass(); 11 | 12 | void rectset(const int xi, const int yi, const int wi, const int hi); 13 | 14 | void setblockcolour(std::string col); 15 | public: 16 | //Fundamentals 17 | SDL_Rect rect = {0}; 18 | int type = 0; 19 | int trigger = 0; 20 | int xp, yp, wp, hp = 0; 21 | std::string script, prompt; 22 | int r, g, b = 0; 23 | 24 | //These would come from the sprite in the flash 25 | float x = 0.0; 26 | float y = 0.0; 27 | 28 | bool onetime = false; 29 | }; 30 | 31 | #endif /* BLOCKV_H */ 32 | -------------------------------------------------------------------------------- /mobile_version/src/platformclass.as: -------------------------------------------------------------------------------- 1 | //Non gamecenter/steam platform specific specific code belongs here 2 | package { 3 | //import com.sticksports.nativeExtensions.SilentSwitch; 4 | import flash.events.*; 5 | import flash.media.SoundMixer; 6 | import flash.media.AudioPlaybackMode; 7 | 8 | public class platformclass { 9 | public function init():void { 10 | //SilentSwitch.apply(); 11 | SoundMixer.audioPlaybackMode = AudioPlaybackMode.AMBIENT; 12 | } 13 | 14 | public function callonwake():void { 15 | //SilentSwitch.apply(); 16 | wakeupcall = 1; 17 | } 18 | 19 | public function callonsleep():void { 20 | 21 | } 22 | 23 | public var wakeupcall:int; 24 | } 25 | } -------------------------------------------------------------------------------- /mobile_version/src/EditorDataclass.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class EditorDataclass{ 8 | public function EditorDataclass():void { 9 | clear(); 10 | } 11 | 12 | public function clear():void { 13 | numedentities = 0; 14 | title = ""; 15 | creator = ""; 16 | modifier = ""; 17 | timeCreated = ""; 18 | timeModified = ""; 19 | } 20 | 21 | public var numedentities:int; 22 | public var title:String; 23 | public var creator:String; 24 | public var modifier:String; 25 | public var timeCreated:String; 26 | public var timeModified:String; 27 | } 28 | }; -------------------------------------------------------------------------------- /.github/resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleExecutable 6 | VVVVVV-CE 7 | CFBundleSignature 8 | V6CE 9 | CFBundlePackageType 10 | APPL 11 | CFBundleVersion 12 | 1.0.0 13 | CFBundleIdentifier 14 | io.github.v6cord 15 | CFBundleDisplayName 16 | VVVVVV-CE 17 | CFBundleName 18 | VVVVVV-CE 19 | 20 | 21 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in [sdk]/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /third_party/androidenv/platform-tools.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}: 2 | 3 | deployAndroidPackage { 4 | inherit package os; 5 | buildInputs = [ autoPatchelfHook ] 6 | ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 ]; 7 | patchInstructions = lib.optionalString (os == "linux") '' 8 | addAutoPatchelfSearchPath $packageBaseDir/lib64 9 | autoPatchelf --no-recurse $packageBaseDir/lib64 10 | autoPatchelf --no-recurse $packageBaseDir 11 | 12 | mkdir -p $out/bin 13 | cd $out/bin 14 | find $out/libexec/android-sdk/platform-tools -type f -executable -mindepth 1 -maxdepth 1 -not -name sqlite3 | while read i 15 | do 16 | ln -s $i 17 | done 18 | ''; 19 | } 20 | -------------------------------------------------------------------------------- /desktop_version/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java: -------------------------------------------------------------------------------- 1 | package org.libsdl.app; 2 | 3 | import android.hardware.usb.UsbDevice; 4 | 5 | interface HIDDevice 6 | { 7 | public int getId(); 8 | public int getVendorId(); 9 | public int getProductId(); 10 | public String getSerialNumber(); 11 | public int getVersion(); 12 | public String getManufacturerName(); 13 | public String getProductName(); 14 | public UsbDevice getDevice(); 15 | public boolean open(); 16 | public int sendFeatureReport(byte[] report); 17 | public int sendOutputReport(byte[] report); 18 | public boolean getFeatureReport(byte[] report); 19 | public void setFrozen(boolean frozen); 20 | public void close(); 21 | public void shutdown(); 22 | } 23 | -------------------------------------------------------------------------------- /desktop_version/run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | cd "$(dirname "$0")" 5 | 6 | ARGS=("$@") 7 | set -- 8 | 9 | if [ -z "$debug" ]; then 10 | debug=1 11 | fi 12 | 13 | source build.sh # source build.sh so we get its argument parsing for free! 14 | 15 | export DISPLAY="${DISPLAY:-:0}" # if you're developing over ssh, set $DISPLAY 16 | 17 | if [[ "$windows" == "1" ]]; then 18 | if command -v wine >&/dev/null; then 19 | exec wine ./VVVVVV-CE.exe "${ARGS[@]}" # use wine if we have it 20 | else 21 | exec ./VVVVVV-CE.exe "${ARGS[@]}" # assume we can execute PEs if we don't (either we're on Windows or the user has binfmt-misc set up) 22 | fi 23 | else 24 | exec ./VVVVVV-CE "${ARGS[@]}" # if we're not on windows, we can run it directly 25 | fi 26 | -------------------------------------------------------------------------------- /desktop_version/src/Otherlevel.h: -------------------------------------------------------------------------------- 1 | #ifndef OTHERLEVEL_H 2 | #define OTHERLEVEL_H 3 | 4 | #include "Game.h" 5 | #include "Entity.h" 6 | 7 | #include 8 | #include 9 | 10 | struct Roomtext 11 | { 12 | int x, y, subx, suby; 13 | std::string text; 14 | }; 15 | 16 | class otherlevelclass 17 | { 18 | public: 19 | enum 20 | { 21 | BLOCK = 0, 22 | TRIGGER, 23 | DAMAGE, 24 | DIRECTIONAL, 25 | SAFE, 26 | ACTIVITY 27 | }; 28 | 29 | void addline(std::string t); 30 | const int* loadlevel(int rx, int ry); 31 | 32 | std::string roomname; 33 | 34 | int roomtileset = 0; 35 | 36 | // roomtext thing in other level 37 | bool roomtexton = false; 38 | std::vector roomtext; 39 | }; 40 | 41 | #endif /* OTHERLEVEL_H */ 42 | -------------------------------------------------------------------------------- /third_party/androidenv/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | # Convert base packages 4 | curl https://dl.google.com/android/repository/repository2-1.xml -o xml/repository2-1.xml 5 | xsltproc convertpackages.xsl xml/repository2-1.xml > generated/packages.nix 6 | 7 | # Convert system images 8 | for img in android android-tv android-wear android-wear-cn google_apis google_apis_playstore 9 | do 10 | curl https://dl.google.com/android/repository/sys-img/$img/sys-img2-1.xml -o xml/$img-sys-img2-1.xml 11 | xsltproc --stringparam imageType $img convertsystemimages.xsl xml/$img-sys-img2-1.xml > generated/system-images-$img.nix 12 | done 13 | 14 | # Convert system addons 15 | curl https://dl.google.com/android/repository/addon2-1.xml -o xml/addon2-1.xml 16 | xsltproc convertaddons.xsl xml/addon2-1.xml > generated/addons.nix 17 | -------------------------------------------------------------------------------- /desktop_version/CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | Contributors 2 | ------------ 3 | 4 | (Ordered alphabetically by last name.) 5 | 6 | * Matt "Fußmatte" Aaldenberg 7 | * AlexApps99 (@AlexApps99) 8 | * Christoph Böhmwalder (@chrboe) 9 | * Charlie Bruce (@charliebruce) 10 | * Brian Callahan (@ibara) 11 | * Dav999 (Dav999-v) 12 | * Allison Fleischer (AllisonFleischer) 13 | * Daniel Lee (@ddm999) 14 | * Fredrik Ljungdahl (@FredrIQ) 15 | * Matt Penny (@mwpenny) 16 | * Elliott Saltar (@eboyblue3) 17 | * Marvin Scholz (@ePirat) 18 | * Keith Stellyes (@keithstellyes) 19 | * Elijah Stone 20 | * Thomas Sänger (@HorayNarea) 21 | * Info Teddy (@InfoTeddy) 22 | * Alexandra Tildea (@AllyTally) 23 | * Pierre-Alain TORET (@daftaupe) 24 | * leo60228 (@leo60228) 25 | * Emmanuel Vadot (@evadot) 26 | * Rémi Verschelde (@akien-mga) 27 | * viri (viri.me) 28 | * Wouter (Xesxen) 29 | -------------------------------------------------------------------------------- /desktop_version/android-project/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /third_party/androidenv/default.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs ? import {} 2 | , pkgs_i686 ? import { system = "i686-linux"; } 3 | , licenseAccepted ? config.android_sdk.accept_license or false 4 | }: 5 | 6 | rec { 7 | composeAndroidPackages = import ./compose-android-packages.nix { 8 | inherit (pkgs) requireFile autoPatchelfHook; 9 | inherit pkgs pkgs_i686 licenseAccepted; 10 | }; 11 | 12 | buildApp = import ./build-app.nix { 13 | inherit (pkgs) stdenv lib jdk ant gnumake gawk; 14 | inherit composeAndroidPackages; 15 | }; 16 | 17 | emulateApp = import ./emulate-app.nix { 18 | inherit (pkgs) stdenv lib; 19 | inherit composeAndroidPackages; 20 | }; 21 | 22 | androidPkgs_9_0 = composeAndroidPackages { 23 | platformVersions = [ "28" ]; 24 | abiVersions = [ "x86" "x86_64"]; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /desktop_version/debug.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | cd "$(dirname "$0")" 5 | 6 | export WINE_GDB="$(realpath wine-gdb.sh)" # we have to do this before build.sh or we'll be in the wrong directory 7 | if [ -z "$debug" ]; then 8 | export debug=1 9 | elif [ "$debug" == "0" ]; then 10 | unset debug 11 | fi 12 | 13 | source build.sh # source build.sh so we get its argument parsing for free! 14 | 15 | export DISPLAY="${DISPLAY:-:0}" # if you're developing over ssh, set $DISPLAY 16 | 17 | if [[ "$windows" == "1" ]] && command -v wine >&/dev/null ; then # if we're on wine 18 | exec winedbg --gdb "VVVVVV-CE.exe" "$@" # use winedbg to automatically setup a gdb server. this doesn't work great, but it's better than nothing 19 | else 20 | exec gdb --args ./VVVVVV-CE "$@" # if we're not on wine, we can run gdb directly 21 | fi 22 | -------------------------------------------------------------------------------- /desktop_version/data/graphics/font.txt: -------------------------------------------------------------------------------- 1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©«­®°²³»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџאבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ׳״—‘’“”€←↑→↓↔↕↖↗↘↙↰↱↲↳↶↷↺↻↼↽↾↿⇀⇁⇂⇃⇅⇆─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳╴╵╶╷╸╹╺╻╼╽╾╿▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕▖▗▘▙▚▛▜▝▞▟■□▢▲△▶▷▼▽◀◁⁰ȘȚșț¹⁴⁵⁶⁷⁸⁹⥢⥤⥣⥥⇋⇌⥦⥨⥧⥩⥪⥬⥫⥭⥮⥯…☺☻♀♂⚥⚦⚠⛄♥★☆ẞ♩♪♫⚡☣☢☠☜☝☞☟♠♣♦⚐⚑✓❌👑ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ᛫᛬᛭ᛮᛯᛰ;™„🔋 2 | -------------------------------------------------------------------------------- /desktop_version/windres.patch: -------------------------------------------------------------------------------- 1 | diff --git a/configure.in b/configure.in 2 | index 240a322..00ae516 100644 3 | --- a/configure.in 4 | +++ b/configure.in 5 | @@ -710,10 +710,10 @@ DEPENDS=`echo "$DEPENDS" | sed 's,\\$,\\\\$,g'` 6 | 7 | VERSION_OBJECTS=`echo $VERSION_SOURCES` 8 | VERSION_DEPENDS=`echo $VERSION_SOURCES` 9 | -VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'` 10 | +VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.lo,g'` 11 | VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed 's,\([[^ ]]*\)/\([[^ ]]*\)\.rc,\\ 12 | -$(objects)/\2.o: \1/\2.rc\\ 13 | - \$(WINDRES) \$< \$@,g'` 14 | +$(objects)/\2.lo: \1/\2.rc\\ 15 | + \$(LIBTOOL) --mode=compile \$(WINDRES) \$< -o \$@,g'` 16 | VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed 's,\\$,\\\\$,g'` 17 | 18 | PLAYWAVE_SOURCES="$srcdir/playwave.c" 19 | -------------------------------------------------------------------------------- /desktop_version/Dockerfile.switch: -------------------------------------------------------------------------------- 1 | # vi: set ft=dockerfile: 2 | FROM devkitpro/devkita64:20190720 3 | 4 | RUN dkp-pacman -Syyu --noconfirm 5 | 6 | RUN wget https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4-Linux-x86_64.sh \ 7 | -q -O /tmp/cmake-install.sh \ 8 | && chmod u+x /tmp/cmake-install.sh \ 9 | && mkdir -p /usr/local/ \ 10 | && /tmp/cmake-install.sh --skip-license --prefix=/usr/local/ \ 11 | && rm /tmp/cmake-install.sh 12 | 13 | RUN wget -qO- https://github.com/vbe0201/switch-cmake/archive/c5b5441d956e23d801089260a84199bc6def82b3.tar.gz | \ 14 | tar --transform 's/^switch-cmake-c5b5441d956e23d801089260a84199bc6def82b3/switch-cmake/' \ 15 | -xzv -C /usr/local/share/ 16 | 17 | RUN apt-get update && apt-get install -y ninja-build zip && rm -rf /var/lib/apt/lists/* 18 | 19 | ENV VVVVVV_CE_SWITCH_BUILD=1 20 | 21 | -------------------------------------------------------------------------------- /third_party/tinyxml2/LICENSE.txt: -------------------------------------------------------------------------------- 1 | This software is provided 'as-is', without any express or implied 2 | warranty. In no event will the authors be held liable for any 3 | damages arising from the use of this software. 4 | 5 | Permission is granted to anyone to use this software for any 6 | purpose, including commercial applications, and to alter it and 7 | redistribute it freely, subject to the following restrictions: 8 | 9 | 1. The origin of this software must not be misrepresented; you must 10 | not claim that you wrote the original software. If you use this 11 | software in a product, an acknowledgment in the product documentation 12 | would be appreciated but is not required. 13 | 14 | 2. Altered source versions must be plainly marked as such, and 15 | must not be misrepresented as being the original software. 16 | 17 | 3. This notice may not be removed or altered from any source 18 | distribution. 19 | -------------------------------------------------------------------------------- /mobile_version/src/edlevelclass.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class edlevelclass{ 8 | public function edlevelclass():void { 9 | clear(); 10 | } 11 | 12 | public function clear():void { 13 | tileset = 0; tilecol = 0; 14 | roomname = ""; 15 | warpdir = 0; 16 | platx1 = 0; platy1 = 0; platx2 = 320; platy2 = 240; platv = 4; 17 | enemyx1 = 0; enemyy1 = 0; enemyx2 = 320; enemyy2 = 240; enemytype = 0; 18 | directmode = 0; 19 | } 20 | 21 | public var tileset:int, tilecol:int; 22 | public var roomname:String; 23 | public var warpdir:int; 24 | public var platx1:int, platy1:int, platx2:int, platy2:int, platv:int; 25 | public var enemyx1:int, enemyy1:int, enemyx2:int, enemyy2:int, enemytype:int; 26 | public var directmode:int; 27 | } 28 | }; -------------------------------------------------------------------------------- /desktop_version/src/Screen.h: -------------------------------------------------------------------------------- 1 | #ifndef SCREEN_H 2 | #define SCREEN_H 3 | 4 | #include 5 | 6 | class Screen 7 | { 8 | public: 9 | void init(); 10 | 11 | void ResizeScreen(int x, int y); 12 | void ResizeToNearestMultiple(); 13 | void GetWindowSize(int* x, int* y); 14 | 15 | void UpdateScreen(SDL_Surface* buffer, SDL_Rect* rect); 16 | void FlipScreen(); 17 | 18 | const SDL_PixelFormat* GetFormat(); 19 | 20 | void toggleFullScreen(); 21 | void toggleStretchMode(); 22 | void toggleLinearFilter(); 23 | void resetRendererWorkaround(); 24 | 25 | bool isWindowed = false; 26 | bool isFiltered = false; 27 | bool badSignalEffect = false; 28 | bool initialized = false; 29 | int stretchMode = 0; 30 | bool vsync = false; 31 | 32 | SDL_Window *m_window; 33 | SDL_Renderer *m_renderer; 34 | SDL_Texture *m_screenTexture; 35 | SDL_Surface* m_screen; 36 | 37 | SDL_Rect filterSubrect; 38 | }; 39 | 40 | #endif /* SCREEN_H */ 41 | -------------------------------------------------------------------------------- /third_party/androidenv/build-tools.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgs_i686}: 2 | 3 | deployAndroidPackage { 4 | inherit package os; 5 | buildInputs = [ autoPatchelfHook makeWrapper ] ++ 6 | lib.optional (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 ]; 7 | patchInstructions = '' 8 | ${lib.optionalString (os == "linux") '' 9 | set +e 10 | addAutoPatchelfSearchPath $packageBaseDir/lib 11 | addAutoPatchelfSearchPath $packageBaseDir/lib64 12 | autoPatchelf --no-recurse $packageBaseDir/lib64 13 | autoPatchelf --no-recurse $packageBaseDir 14 | ''} 15 | 16 | wrapProgram $PWD/mainDexClasses \ 17 | --prefix PATH : ${pkgs.jdk8}/bin 18 | ''; 19 | noAuditTmpdir = true; # The checker script gets confused by the build-tools path that is incorrectly identified as a reference to /build 20 | } 21 | -------------------------------------------------------------------------------- /tools/editors/World Mapping Editor/areamapin.txt: -------------------------------------------------------------------------------- 1 | 1 2 2 2 2 2 2 2 1 3 1 1 1 4 4 4 4 4 4 4 2 | 1 2 2 2 2 2 2 1 1 3 1 1 1 1 4 4 4 4 4 4 3 | 1 1 1 1 2 1 1 1 1 3 1 1 1 1 4 4 4 4 4 4 4 | 1 1 1 1 2 1 0 1 1 3 1 1 5 5 5 5 4 4 4 4 5 | 1 1 2 2 2 1 1 1 1 3 3 3 5 5 5 5 1 1 1 1 6 | 1 1 1 1 1 1 1 1 1 3 5 5 5 5 5 5 1 1 1 1 7 | 1 1 1 1 0 1 1 1 1 3 5 5 5 5 5 5 5 1 1 1 8 | 1 0 0 1 1 1 1 1 1 3 5 5 5 5 5 5 5 5 5 1 9 | 1 1 1 1 0 1 1 1 1 3 1 1 1 5 5 5 5 5 5 0 10 | 1 1 1 1 1 1 1 1 3 3 1 1 1 5 5 5 5 5 5 1 11 | 1 1 1 1 1 1 1 1 1 3 1 1 1 5 5 5 5 5 5 1 12 | 1 1 1 1 1 1 1 1 1 3 1 5 5 5 5 5 5 5 5 1 13 | 1 1 1 1 1 1 1 0 1 3 1 5 5 5 5 5 5 1 5 1 14 | 1 1 1 1 1 1 1 0 1 3 1 5 5 5 5 5 5 1 5 1 15 | 1 1 1 1 1 1 1 1 1 3 1 5 5 1 1 1 1 1 5 1 16 | 1 1 1 1 1 1 1 2 1 3 1 0 0 1 0 0 0 1 1 1 17 | 1 1 2 2 2 2 2 2 1 3 1 1 1 1 1 1 0 1 0 1 18 | 1 2 2 2 2 2 2 2 1 3 1 1 1 1 1 1 1 1 1 1 19 | 2 2 2 2 2 1 1 2 1 3 1 1 1 1 1 1 0 1 0 1 20 | 2 2 2 2 2 1 1 2 1 3 1 1 1 1 1 1 1 1 1 1 21 | -------------------------------------------------------------------------------- /tools/readme.MD: -------------------------------------------------------------------------------- 1 | This folder contains the source code to small, custom level editing tools that I used when originally creating VVVVVV! They're included here for the sake of completeness. 2 | 3 | These are the tool that exported levels as source code for use in the game. The different versions were quick copy and paste forks for different areas in the game - they're mostly the same, but some versions had slight changes made for situations unique to those areas. 4 | 5 | These tools were never meant to be used by anybody else, and I don't recommend wasting too much time with them. If you're interested in further development with VVVVVV, a more promising and future facing direction to explore is the built in level editor and the external .vvvvvv level file format, originally added in 2011 for the C++ port. 6 | 7 | If you do want to compile them, you'll need Allegro v4.3 and probably a lot of patience and trial and error to figure out how they all work. Good luck! -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![CI](https://github.com/v6cord/VVVVVV-CE/workflows/CI/badge.svg) 2 | 3 | This is a fork of Terry Cavanagh's flippy platformer game named VVVVVV that's focused on adding more tools for custom levels to use. We focus exclusively on the C++ version of the game. We make sure to always keep up with upstream. 4 | 5 | The original repository for VVVVVV is located at [TerryCavanagh/VVVVVV](https://github.com/TerryCavanagh/VVVVVV). 6 | 7 | The features that this version includes, along with a list of who has contributed, is located in [FEATURES.md](FEATURES.md). 8 | 9 | Most of our discussion is concentrated in [the VVVVVV Discord server](https://discord.gg/Zf7Nzea). 10 | 11 | [Terry Cavanagh has granted us an exception to VVVVVV's custom license](https://github.com/TerryCavanagh/VVVVVV/blob/master/License%20exceptions.md), letting us distribute our fork with `data.zip` included, provided we do not distribute any of the original main game levels. 12 | -------------------------------------------------------------------------------- /tools/editors/World Map Fork (for Eurogamer)/areamapin.txt: -------------------------------------------------------------------------------- 1 | 1 2 2 2 2 2 2 2 1 3 1 1 1 4 4 4 4 4 4 4 2 | 1 2 2 2 2 2 2 1 1 3 1 1 1 1 4 4 4 4 4 4 3 | 1 1 1 1 2 1 1 1 1 3 1 1 1 1 4 4 4 4 4 4 4 | 1 1 1 1 2 1 0 1 1 3 1 1 5 5 5 5 4 4 4 4 5 | 1 1 2 2 2 1 1 1 1 3 3 3 5 5 5 5 1 1 1 1 6 | 1 1 1 1 1 1 1 1 1 3 5 5 5 5 5 5 0 1 1 1 7 | 1 1 1 1 1 1 1 1 1 3 5 5 5 5 5 5 5 0 0 0 8 | 1 0 0 1 1 1 1 1 1 3 5 5 5 5 5 5 5 5 5 0 9 | 1 1 1 1 0 1 1 1 1 3 1 1 1 5 5 5 5 5 5 0 10 | 1 1 1 1 1 1 1 1 3 3 1 1 1 5 5 5 5 5 5 1 11 | 1 1 1 1 1 1 1 1 1 3 1 1 1 5 5 5 5 5 5 1 12 | 1 1 1 1 1 1 1 1 1 3 1 5 5 5 5 5 5 5 5 1 13 | 1 1 1 1 1 1 1 1 1 3 1 5 5 5 5 5 5 1 5 1 14 | 1 1 1 1 1 1 1 0 1 3 1 5 5 5 5 5 5 1 5 1 15 | 1 1 1 0 1 1 1 1 1 3 1 5 5 1 1 1 1 1 5 1 16 | 1 1 1 1 1 1 1 2 1 3 1 0 0 1 0 0 0 1 1 1 17 | 1 1 2 2 2 2 2 2 1 3 1 1 1 1 1 1 0 1 0 1 18 | 1 2 2 2 2 2 2 2 1 3 1 1 1 1 1 1 1 1 1 1 19 | 2 2 2 2 2 1 1 2 1 3 1 1 1 1 1 1 0 1 0 1 20 | 2 2 2 2 2 1 1 2 1 3 1 1 1 1 1 1 1 1 1 1 21 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lundump.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lundump.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** load precompiled Lua chunks 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lundump_h 8 | #define lundump_h 9 | 10 | #include "llimits.h" 11 | #include "lobject.h" 12 | #include "lzio.h" 13 | 14 | 15 | /* data to catch conversion errors */ 16 | #define LUAC_DATA "\x19\x93\r\n\x1a\n" 17 | 18 | #define LUAC_INT 0x5678 19 | #define LUAC_NUM cast_num(370.5) 20 | 21 | #define MYINT(s) (s[0]-'0') 22 | #define LUAC_VERSION (MYINT(LUA_VERSION_MAJOR)*16+MYINT(LUA_VERSION_MINOR)) 23 | #define LUAC_FORMAT 0 /* this is the official format */ 24 | 25 | /* load one chunk; from lundump.c */ 26 | LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name); 27 | 28 | /* dump one chunk; from ldump.c */ 29 | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, 30 | void* data, int strip); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /desktop_version/android-project/android-project.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /third_party/mingw-std-threads/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(stdthreadtest) 2 | cmake_minimum_required(VERSION 3.0) 3 | 4 | string(CONCAT mingw_stdthreads_tests_compile_options_docstring 5 | "Compiler flags used to compile mingw-stdthreads's tests. By default " 6 | "it's -std=c++11 -Wall -Wextra") 7 | set(MINGW_STDTHREADS_TESTS_COMPILE_OPTIONS "-std=c++11;-Wall;-Wextra" 8 | CACHE STRING ${mingw_stdthreads_tests_compile_options_docstring}) 9 | 10 | set(MINGW_STDTHREADS_TESTS_ADDITIONAL_LINKER_FLAGS "" CACHE STRING 11 | "Optional linker flags to be passed when linking mingw-stdthreads's tests") 12 | 13 | add_executable(${PROJECT_NAME} tests.cpp) 14 | target_compile_options(${PROJECT_NAME} PRIVATE 15 | ${MINGW_STDTHREADS_TESTS_COMPILE_OPTIONS}) 16 | target_link_libraries(${PROJECT_NAME} PRIVATE mingw_stdthreads) 17 | target_link_libraries(${PROJECT_NAME} PRIVATE 18 | ${MINGW_STDTHREADS_TESTS_ADDITIONAL_LINKER_FLAGS}) -------------------------------------------------------------------------------- /third_party/cparse/Makefile: -------------------------------------------------------------------------------- 1 | EXE = test-shunting-yard 2 | CORE_SRC = shunting-yard.cpp packToken.cpp functions.cpp containers.cpp 3 | SRC = $(EXE).cpp $(CORE_SRC) builtin-features.cpp catch.cpp 4 | OBJ = $(SRC:.cpp=.o) 5 | 6 | LD ?= ld 7 | CXX ?= g++ 8 | CFLAGS = -std=c++11 -Wall -pedantic -Wmissing-field-initializers -Wuninitialized 9 | DEBUG = -g #-DDEBUG 10 | 11 | release: $(CORE_SRC:.cpp=.o) builtin-features.cpp; 12 | $(CXX) -c -O3 $(CFLAGS) builtin-features.cpp 13 | $(LD) -r -O1 $(CORE_SRC:.cpp=.o) -o core-shunting-yard.o 14 | 15 | all: $(EXE) release 16 | 17 | $(EXE): $(OBJ); $(CXX) $(CFLAGS) $(DEBUG) $(OBJ) -o $(EXE) 18 | %.o: %.cpp *.h %/*; $(CXX) $(CFLAGS) $(DEBUG) -c $< -o $@ $(DEBUG) 19 | %.o: %.cpp *.h; $(CXX) $(CFLAGS) $(DEBUG) -c $< -o $@ $(DEBUG) 20 | 21 | again: clean all 22 | 23 | test: $(EXE); ./$(EXE) $(args) 24 | 25 | check: $(EXE); valgrind --leak-check=full ./$(EXE) $(args) 26 | 27 | simul: $(EXE); cgdb --args ./$(EXE) $(args) 28 | 29 | clean: ; rm -f $(EXE) $(OBJ) core-shunting-yard.o full-shunting-yard.o 30 | -------------------------------------------------------------------------------- /third_party/physfs/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2001-2019 Ryan C. Gordon and others. 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from 6 | the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software in a 14 | product, an acknowledgment in the product documentation would be 15 | appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source distribution. 21 | 22 | Ryan C. Gordon 23 | 24 | -------------------------------------------------------------------------------- /mobile_version/src/blockclass.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class blockclass extends Sprite { 8 | public function blockclass():void { 9 | rect = new Rectangle(); 10 | clear(); 11 | } 12 | 13 | public function clear():void{ 14 | active = false; 15 | type = 0; trigger=0; 16 | 17 | xp = 0; yp = 0; wp = 0; hp = 0; 18 | rect.x = xp; rect.y = yp; rect.width = wp; rect.height = hp; 19 | 20 | prompt = ""; script = ""; r = 0; g = 0; b = 0; 21 | } 22 | 23 | public function rectset(xi:int, yi:int, wi:int, hi:int):void { 24 | rect.x = xi; rect.y = yi; rect.width = wi; rect.height = hi; 25 | } 26 | 27 | //Fundamentals 28 | public var active:Boolean; 29 | public var rect:Rectangle; 30 | public var type:int; 31 | public var trigger:int; 32 | public var xp:int, yp:int, wp:int, hp:int; 33 | public var script:String, prompt:String; 34 | public var r:int, g:int, b:int; 35 | } 36 | }; 37 | -------------------------------------------------------------------------------- /desktop_version/src/trace.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | static FILE *fp_trace; 6 | #ifdef __SWITCH__ 7 | extern char __code_start; 8 | 9 | uintptr_t base(void) { 10 | return (uintptr_t) &__code_start; 11 | } 12 | #else 13 | uintptr_t base(void) { 14 | return 0; 15 | } 16 | #endif 17 | 18 | void __attribute__ ((constructor)) trace_begin (void) 19 | { 20 | fp_trace = fopen("trace.out", "w"); 21 | } 22 | 23 | void __attribute__ ((destructor)) trace_end (void) 24 | { 25 | if(fp_trace != NULL) { 26 | fclose(fp_trace); 27 | } 28 | } 29 | 30 | void __cyg_profile_func_enter (void *func, void *caller) { 31 | if(fp_trace != NULL) { 32 | fprintf(fp_trace, "e 0x%"PRIxPTR" 0x%"PRIxPTR"\n", ((uintptr_t) func) - base(), ((uintptr_t) caller) - base()); 33 | } 34 | } 35 | 36 | void __cyg_profile_func_exit (void *func, void *caller) { 37 | if(fp_trace != NULL) { 38 | fprintf(fp_trace, "x 0x%"PRIxPTR" 0x%"PRIxPTR"\n", ((uintptr_t) func) - base(), ((uintptr_t) caller) - base()); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /desktop_version/src/Textbox.h: -------------------------------------------------------------------------------- 1 | #ifndef TEXTBOX_H 2 | #define TEXTBOX_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include "Game.h" 8 | 9 | class textboxclass 10 | { 11 | public: 12 | textboxclass(); 13 | 14 | void centerx(int centerline = 160); 15 | 16 | void centery(int centerline = 120); 17 | 18 | void adjust(); 19 | 20 | void initcol(int rr, int gg, int bb); 21 | 22 | void setcol(int rr, int gg, int bb); 23 | 24 | void update(); 25 | 26 | void remove(); 27 | 28 | void removefast(); 29 | 30 | void resize(); 31 | 32 | void addline(std::string t); 33 | 34 | void createfast(); 35 | public: 36 | //Fundamentals 37 | std::vector line; 38 | int xp, yp, lw, w, h = 0; 39 | int x,y = 0; 40 | int r,g,b = 0; 41 | int tr,tg,tb = 0; 42 | SDL_Rect textrect = {0}; 43 | int timer = 0; 44 | 45 | float tl = 0.0; 46 | float prev_tl = 0.0; 47 | int tm = 0; 48 | 49 | int max = 0; 50 | 51 | bool allowspecial; 52 | 53 | }; 54 | 55 | #endif /* TEXTBOX_H */ 56 | -------------------------------------------------------------------------------- /mobile_version/src/LevelMetaData.as: -------------------------------------------------------------------------------- 1 | package { 2 | import flash.display.*; 3 | import flash.geom.*; 4 | import flash.events.*; 5 | import flash.net.*; 6 | 7 | public class LevelMetaData{ 8 | public function LevelMetaData():void { 9 | clear(); 10 | } 11 | 12 | public function clear():void { 13 | title = ""; 14 | creator = ""; 15 | Desc1 = ""; 16 | Desc2 = ""; 17 | Desc3 = ""; 18 | website = ""; 19 | filename = ""; 20 | file_num = 0; 21 | modifier = ""; 22 | timeCreated = ""; 23 | timeModified = ""; 24 | version = 0; 25 | } 26 | 27 | 28 | public var title:String; 29 | public var creator:String; 30 | public var Desc1:String; 31 | public var Desc2:String; 32 | public var Desc3:String; 33 | public var website:String; 34 | public var filename:String; 35 | public var file_num:int; 36 | public var modifier:String; 37 | public var timeCreated:String; 38 | public var timeModified:String; 39 | 40 | public var version:int; 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lprefix.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lprefix.h,v 1.2.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Definitions for Lua code that must come before any other header file 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lprefix_h 8 | #define lprefix_h 9 | 10 | 11 | /* 12 | ** Allows POSIX/XSI stuff 13 | */ 14 | #if !defined(LUA_USE_C89) /* { */ 15 | 16 | #if !defined(_XOPEN_SOURCE) 17 | #define _XOPEN_SOURCE 600 18 | #elif _XOPEN_SOURCE == 0 19 | #undef _XOPEN_SOURCE /* use -D_XOPEN_SOURCE=0 to undefine it */ 20 | #endif 21 | 22 | /* 23 | ** Allows manipulation of large files in gcc and some other compilers 24 | */ 25 | #if !defined(LUA_32BITS) && !defined(_FILE_OFFSET_BITS) 26 | #define _LARGEFILE_SOURCE 1 27 | #define _FILE_OFFSET_BITS 64 28 | #endif 29 | 30 | #endif /* } */ 31 | 32 | 33 | /* 34 | ** Windows stuff 35 | */ 36 | #if defined(_WIN32) /* { */ 37 | 38 | #if !defined(_CRT_SECURE_NO_WARNINGS) 39 | #define _CRT_SECURE_NO_WARNINGS /* avoid warnings about ISO C functions */ 40 | #endif 41 | 42 | #endif /* } */ 43 | 44 | #endif 45 | 46 | -------------------------------------------------------------------------------- /desktop_version/src/SoundSystem.h: -------------------------------------------------------------------------------- 1 | #ifndef SOUNDSYSTEM_H 2 | #define SOUNDSYSTEM_H 3 | 4 | #ifdef __EMSCRIPTEN__ 5 | // SDL2 is builtin to the Emscripten compiler so we can't do this in CMake :( 6 | #include 7 | #else 8 | #include 9 | #endif 10 | 11 | class MusicTrack 12 | { 13 | public: 14 | MusicTrack(const char* fileName); 15 | MusicTrack(SDL_RWops *rw); 16 | MusicTrack(MusicTrack&& moved); 17 | MusicTrack& operator=(const MusicTrack& other) = default; 18 | ~MusicTrack(); 19 | Mix_Music *m_music; 20 | bool m_isValid = false; 21 | }; 22 | 23 | class SoundTrack 24 | { 25 | public: 26 | SoundTrack(const char* fileName); 27 | SoundTrack(SoundTrack&& moved); 28 | SoundTrack& operator=(const SoundTrack& other) = default; 29 | SoundTrack() = default; 30 | ~SoundTrack(); 31 | Mix_Chunk *sound; 32 | bool isValid = false; 33 | }; 34 | 35 | class SoundSystem 36 | { 37 | public: 38 | SoundSystem(); 39 | void init(); 40 | void playMusic(MusicTrack* music); 41 | }; 42 | 43 | #endif /* SOUNDSYSTEM_H */ 44 | -------------------------------------------------------------------------------- /third_party/androidenv/emulator.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgs_i686}: 2 | 3 | deployAndroidPackage { 4 | inherit package os; 5 | buildInputs = [ autoPatchelfHook makeWrapper ] 6 | ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXext pkgs.xlibs.libXdamage pkgs.xlibs.libXfixes pkgs.xlibs.libxcb pkgs.libGL pkgs.libpulseaudio pkgs.zlib pkgs.ncurses5 pkgs.stdenv.cc.cc pkgs_i686.glibc ]; 7 | patchInstructions = lib.optionalString (os == "linux") '' 8 | addAutoPatchelfSearchPath $packageBaseDir/lib 9 | addAutoPatchelfSearchPath $packageBaseDir/lib64 10 | addAutoPatchelfSearchPath $packageBaseDir/lib64/qt/lib 11 | autoPatchelf $out 12 | 13 | # Wrap emulator so that it can load libdbus-1.so at runtime and it no longer complains about XKB keymaps 14 | wrapProgram $out/libexec/android-sdk/emulator/emulator \ 15 | --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.dbus ]} \ 16 | --set QT_XKB_CONFIG_ROOT ${pkgs.xkeyboard_config}/share/X11/xkb \ 17 | --set QTCOMPOSE ${pkgs.xorg.libX11.out}/share/X11/locale 18 | ''; 19 | dontMoveLib64 = true; 20 | } 21 | -------------------------------------------------------------------------------- /third_party/cparse/LICENSE.mit: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Brandon Amos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /tools/editors/World Mapping Editor/areamap.txt: -------------------------------------------------------------------------------- 1 | tmap = new Array(); 2 | tmap.push("1,2,2,2,2,2,2,2,1,3,1,1,1,4,4,4,4,4,4,4"); 3 | tmap.push("1,2,2,2,2,2,2,1,1,3,1,1,1,1,4,4,4,4,4,4"); 4 | tmap.push("1,1,1,1,2,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4"); 5 | tmap.push("1,1,1,1,2,1,0,1,1,3,1,1,5,5,5,5,4,4,4,4"); 6 | tmap.push("1,1,2,2,2,1,1,1,1,3,3,3,5,5,5,5,1,1,1,1"); 7 | tmap.push("1,1,1,1,1,1,1,1,1,3,5,5,5,5,5,5,1,1,1,1"); 8 | tmap.push("1,1,1,1,0,1,1,1,1,3,5,5,5,5,5,5,5,1,1,1"); 9 | tmap.push("1,0,0,1,1,1,1,1,1,3,5,5,5,5,5,5,5,5,5,1"); 10 | tmap.push("1,1,1,1,0,1,1,1,1,3,1,1,1,5,5,5,5,5,5,0"); 11 | tmap.push("1,1,1,1,1,1,1,1,3,3,1,1,1,5,5,5,5,5,5,1"); 12 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,1,1,5,5,5,5,5,5,1"); 13 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,5,5,5,5,5,5,5,5,1"); 14 | tmap.push("1,1,1,1,1,1,1,0,1,3,1,5,5,5,5,5,5,1,5,1"); 15 | tmap.push("1,1,1,1,1,1,1,0,1,3,1,5,5,5,5,5,5,1,5,1"); 16 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,5,5,1,1,1,1,1,5,1"); 17 | tmap.push("1,1,1,1,1,1,1,2,1,3,1,0,0,1,0,0,0,1,1,1"); 18 | tmap.push("1,1,2,2,2,2,2,2,1,3,1,1,1,1,1,1,0,1,0,1"); 19 | tmap.push("1,2,2,2,2,2,2,2,1,3,1,1,1,1,1,1,1,1,1,1"); 20 | tmap.push("2,2,2,2,2,1,1,2,1,3,1,1,1,1,1,1,0,1,0,1"); 21 | tmap.push("2,2,2,2,2,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1"); 22 | -------------------------------------------------------------------------------- /tools/editors/World Map Fork (for Eurogamer)/areamap.txt: -------------------------------------------------------------------------------- 1 | tmap = new Array(); 2 | tmap.push("1,2,2,2,2,2,2,2,1,3,1,1,1,4,4,4,4,4,4,4"); 3 | tmap.push("1,2,2,2,2,2,2,1,1,3,1,1,1,1,4,4,4,4,4,4"); 4 | tmap.push("1,1,1,1,2,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4"); 5 | tmap.push("1,1,1,1,2,1,0,1,1,3,1,1,5,5,5,5,4,4,4,4"); 6 | tmap.push("1,1,2,2,2,1,1,1,1,3,3,3,5,5,5,5,1,1,1,1"); 7 | tmap.push("1,1,1,1,1,1,1,1,1,3,5,5,5,5,5,5,0,1,1,1"); 8 | tmap.push("1,1,1,1,1,1,1,1,1,3,5,5,5,5,5,5,5,0,0,0"); 9 | tmap.push("1,0,0,1,1,1,1,1,1,3,5,5,5,5,5,5,5,5,5,0"); 10 | tmap.push("1,1,1,1,0,1,1,1,1,3,1,1,1,5,5,5,5,5,5,0"); 11 | tmap.push("1,1,1,1,1,1,1,1,3,3,1,1,1,5,5,5,5,5,5,1"); 12 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,1,1,5,5,5,5,5,5,1"); 13 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,5,5,5,5,5,5,5,5,1"); 14 | tmap.push("1,1,1,1,1,1,1,1,1,3,1,5,5,5,5,5,5,1,5,1"); 15 | tmap.push("1,1,1,1,1,1,1,0,1,3,1,5,5,5,5,5,5,1,5,1"); 16 | tmap.push("1,1,1,0,1,1,1,1,1,3,1,5,5,1,1,1,1,1,5,1"); 17 | tmap.push("1,1,1,1,1,1,1,2,1,3,1,0,0,1,0,0,0,1,1,1"); 18 | tmap.push("1,1,2,2,2,2,2,2,1,3,1,1,1,1,1,1,0,1,0,1"); 19 | tmap.push("1,2,2,2,2,2,2,2,1,3,1,1,1,1,1,1,1,1,1,1"); 20 | tmap.push("2,2,2,2,2,1,1,2,1,3,1,1,1,1,1,1,0,1,0,1"); 21 | tmap.push("2,2,2,2,2,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1"); 22 | -------------------------------------------------------------------------------- /third_party/cparse/builtin-features.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include // For tolower() and toupper() 9 | 10 | #include "./shunting-yard.h" 11 | #include "./shunting-yard-exceptions.h" 12 | 13 | /* * * * * Built-in Features: * * * * */ 14 | 15 | /** 16 | * Force the Startup classes to run 17 | * at static initialization time: 18 | */ 19 | #ifdef STATIC_CPARSE_STARTUP 20 | #define __CPARSE_STARTUP __Startup__ 21 | #else 22 | #define __CPARSE_STARTUP 23 | #endif 24 | 25 | #include "./builtin-features/functions.inc" 26 | 27 | #include "./builtin-features/operations.inc" 28 | 29 | #include "./builtin-features/reservedWords.inc" 30 | 31 | #include "./builtin-features/typeSpecificFunctions.inc" 32 | 33 | /** 34 | * If STATIC_CPARSE_STARTUP is undefined 35 | * declare a startup function to initialize 36 | * all built-in features: 37 | */ 38 | #ifndef STATIC_CPARSE_STARTUP 39 | 40 | void cparse_startup() { 41 | builtin_functions::Startup(); 42 | builtin_operations::Startup(); 43 | builtin_reservedWords::Startup(); 44 | builtin_typeSpecificFunctions::Startup(); 45 | } 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /tools/editors/World Mapping Editor/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | using namespace std; 7 | 8 | volatile int speed_counter=0; 9 | void increment_speed_counter(){speed_counter++;} 10 | END_OF_FUNCTION(increment_speed_counter); 11 | 12 | #include "misc.hpp" 13 | #include "map.hpp" 14 | #include "logic.hpp" 15 | #include "render.hpp" 16 | #include "input.hpp" 17 | 18 | int main(){ 19 | init(); 20 | 21 | //state=1; 22 | 23 | //Starting main loop: 24 | while(!key[KEY_ESC]){ 25 | xp=mouse_x/16; yp=mouse_y/16; 26 | switch(state){ 27 | case 0: //Map Edit 28 | //Render 29 | mapeditrender(); 30 | //Input 31 | mapeditinput(); 32 | //Logic 33 | break; //World Edit 34 | case 1: 35 | //Render 36 | arearender(); 37 | //Input 38 | areainput(); 39 | //Logic 40 | break; 41 | } 42 | 43 | /*if(key[KEY_F1]) currentarea="otherlevel"; 44 | if(key[KEY_F2]) currentarea="spacestation"; 45 | if(key[KEY_F3]) currentarea="lab";*/ 46 | gt++; 47 | while(speed_counter<1) rest(1); speed_counter = 0; 48 | } 49 | 50 | return 0; 51 | } 52 | END_OF_MAIN() 53 | -------------------------------------------------------------------------------- /tools/editors/World Map Fork (for Eurogamer)/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | using namespace std; 7 | 8 | volatile int speed_counter=0; 9 | void increment_speed_counter(){speed_counter++;} 10 | END_OF_FUNCTION(increment_speed_counter); 11 | 12 | #include "misc.hpp" 13 | #include "map.hpp" 14 | #include "logic.hpp" 15 | #include "render.hpp" 16 | #include "input.hpp" 17 | 18 | int main(){ 19 | init(); 20 | 21 | //state=1; 22 | 23 | //Starting main loop: 24 | while(!key[KEY_ESC]){ 25 | xp=mouse_x/16; yp=mouse_y/16; 26 | switch(state){ 27 | case 0: //Map Edit 28 | //Render 29 | mapeditrender(); 30 | //Input 31 | mapeditinput(); 32 | //Logic 33 | break; //World Edit 34 | case 1: 35 | //Render 36 | arearender(); 37 | //Input 38 | areainput(); 39 | //Logic 40 | break; 41 | } 42 | 43 | /*if(key[KEY_F1]) currentarea="otherlevel"; 44 | if(key[KEY_F2]) currentarea="spacestation"; 45 | if(key[KEY_F3]) currentarea="lab";*/ 46 | gt++; 47 | while(speed_counter<1) rest(1); speed_counter = 0; 48 | } 49 | 50 | return 0; 51 | } 52 | END_OF_MAIN() 53 | -------------------------------------------------------------------------------- /third_party/androidenv/tools.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, requireFile, lib, packages, toolsVersion, autoPatchelfHook, makeWrapper, os, pkgs, pkgs_i686, postInstall ? ""}: 2 | 3 | if toolsVersion == "26.0.1" then import ./tools/26.nix { 4 | inherit deployAndroidPackage lib autoPatchelfHook makeWrapper os pkgs pkgs_i686 postInstall; 5 | package = { 6 | name = "tools"; 7 | path = "tools"; 8 | revision = "26.0.1"; 9 | archives = { 10 | linux = requireFile { 11 | url = https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip; 12 | sha256 = "185yq7qwxflw24ccm5d6zziwlc9pxmsm3f54pm9p7xm0ik724kj4"; 13 | }; 14 | macosx = requireFile { 15 | url = https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip; 16 | sha256 = "1ycx9gzdaqaw6n19yvxjawywacavn1jc6sadlz5qikhgfr57b0aa"; 17 | }; 18 | }; 19 | }; 20 | } else if toolsVersion == "26.1.1" then import ./tools/26.nix { 21 | inherit deployAndroidPackage lib autoPatchelfHook makeWrapper os pkgs pkgs_i686 postInstall; 22 | package = packages.tools.${toolsVersion}; 23 | } else import ./tools/25.nix { 24 | inherit deployAndroidPackage lib autoPatchelfHook makeWrapper os pkgs pkgs_i686 postInstall; 25 | package = packages.tools.${toolsVersion}; 26 | } 27 | -------------------------------------------------------------------------------- /desktop_version/src/GraphicsResources.h: -------------------------------------------------------------------------------- 1 | #ifndef GRAPHICSRESOURCES_H 2 | #define GRAPHICSRESOURCES_H 3 | 4 | #include 5 | 6 | #include 7 | 8 | SDL_Surface* LoadImage(const char *filename, bool noBlend = true, bool noAlpha = false, bool optional = false); 9 | 10 | class GraphicsResources 11 | { 12 | public: 13 | void init(void); 14 | ~GraphicsResources(void); 15 | 16 | SDL_Surface* im_tiles; 17 | SDL_Surface* im_tiles2; 18 | SDL_Surface* im_tiles3; 19 | SDL_Surface* im_entcolours; 20 | SDL_Surface* im_sprites; 21 | SDL_Surface* im_flipsprites; 22 | SDL_Surface* im_bfont; 23 | SDL_Surface* im_unifont; 24 | SDL_Surface* im_wideunifont; 25 | SDL_Surface* im_teleporter; 26 | SDL_Surface* im_image0; 27 | SDL_Surface* im_image1; 28 | SDL_Surface* im_image2; 29 | SDL_Surface* im_image3; 30 | SDL_Surface* im_image4; 31 | SDL_Surface* im_image5; 32 | SDL_Surface* im_image6; 33 | SDL_Surface* im_image7; 34 | SDL_Surface* im_image8; 35 | SDL_Surface* im_image9; 36 | SDL_Surface* im_image10; 37 | SDL_Surface* im_image11; 38 | SDL_Surface* im_image12; 39 | 40 | std::map im_customtiles; 41 | std::map im_customsprites; 42 | }; 43 | 44 | #endif /* GRAPHICSRESOURCES_H */ 45 | -------------------------------------------------------------------------------- /desktop_version/src/Ent.h: -------------------------------------------------------------------------------- 1 | #ifndef ENT_H 2 | #define ENT_H 3 | 4 | #include "Graphics.h" 5 | 6 | #define rn( rx, ry) ((rx) + ((ry) * 100)) 7 | 8 | class entclass 9 | { 10 | public: 11 | entclass(); 12 | 13 | bool outside(); 14 | 15 | void setenemy(int t); 16 | 17 | void setenemyroom(int rx, int ry); 18 | 19 | void settreadmillcolour(int rx, int ry); 20 | 21 | void updatecolour(); 22 | 23 | public: 24 | //Fundamentals 25 | bool invis = false; 26 | int type, size, tile, rule = 0; 27 | int state, statedelay = 0; 28 | int behave, animate = 0; 29 | float para = 0.0; 30 | int life, colour = 0; 31 | 32 | //Position and velocity 33 | int oldxp, oldyp = 0; 34 | float ax, ay, vx, vy = 0.0; 35 | int cx, cy, w, h = 0; 36 | float newxp, newyp = 0.0; 37 | bool isplatform = false; 38 | int x1,y1,x2,y2 = false; 39 | //Collision Rules 40 | int onentity = false; 41 | bool harmful = 0; 42 | int onwall, onxwall, onywall = 0; 43 | 44 | //Platforming specific 45 | bool jumping = false; 46 | bool gravity = false; 47 | int onground, onroof = 0; 48 | int jumpframe = 0; 49 | //Animation 50 | int framedelay, drawframe, walkingframe, dir, actionframe = 0; 51 | int yp, xp = 0; 52 | int flipped = 0; 53 | int flippedsize = 0; 54 | 55 | long long realcol = 0; 56 | }; 57 | 58 | #endif /* ENT_H */ 59 | -------------------------------------------------------------------------------- /desktop_version/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | if [ -z "$VVVVVV_CE_OUT_OF_TREE_BUILD" ]; then 5 | cd "$(dirname "$0")" 6 | fi 7 | 8 | if [ ! -z "$VVVVVV_CE_ANDROID_BUILD" ]; then 9 | exec ./android-build.sh 10 | fi 11 | 12 | CC="${CC:-cc}" 13 | if [ ! -z "$VVVVVV_CE_SWITCH_BUILD" ]; then 14 | CC="aarch64-none-elf-gcc" 15 | fi 16 | if echo $'#ifdef _WIN32\nyes\n#endif' | $CC -E - | tail -n1 | grep -q yes; then 17 | windows=1 18 | fi 19 | 20 | if [ ! -d "build.$CC" ]; then 21 | rm -rf build 22 | fi 23 | 24 | mkdir -pv build.$CC/ 25 | ln -sfvn build.$CC build 26 | cd build/ 27 | 28 | timestamp_ref="$(mktemp)" 29 | function finish { 30 | rm -f "$timestamp_ref" 31 | } 32 | trap finish EXIT 33 | 34 | if [ -e vce.zip.c ]; then 35 | cp -a vce.zip.c "$timestamp_ref" 36 | fi 37 | 38 | cmake -G Ninja \ 39 | ${debug:+-DCMAKE_BUILD_TYPE=Debug} \ 40 | ${debug:--DCMAKE_BUILD_TYPE=RelWithDebInfo} \ 41 | ${windows:+-DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain.cmake -DCMAKE_MODULE_PATH="$CMAKE_MODULE_PATH"} \ 42 | ${VVVVVV_CE_SWITCH_BUILD:+-DCMAKE_TOOLCHAIN_FILE=/usr/local/share/switch-cmake/DevkitA64Libnx.cmake} \ 43 | ${VVVVVV_CE_SWITCH_BUILD:+-DCMAKE_MODULE_PATH=/usr/local/share/switch-cmake/cmake} \ 44 | "$@" \ 45 | .. 46 | 47 | if cmp -s "$timestamp_ref" vce.zip.c; then 48 | touch -r "$timestamp_ref" vce.zip.c 49 | fi 50 | 51 | ninja ${verbose:+-v} 52 | -------------------------------------------------------------------------------- /third_party/mingw-std-threads/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Mega Limited 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /third_party/cparse/shunting-yard-exceptions.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef SHUNTING_YARD_EXCEPTIONS_H_ 3 | #define SHUNTING_YARD_EXCEPTIONS_H_ 4 | 5 | #include "./shunting-yard.h" 6 | 7 | #include 8 | #include 9 | 10 | class msg_exception : public std::exception { 11 | protected: 12 | const std::string msg; 13 | public: 14 | msg_exception(const std::string& msg) : msg(msg) {} 15 | ~msg_exception() throw() {} 16 | const char* what() const throw() { 17 | return msg.c_str(); 18 | } 19 | }; 20 | 21 | struct bad_cast : public msg_exception { 22 | bad_cast(const std::string& msg) : msg_exception(msg) {} 23 | }; 24 | 25 | struct syntax_error : public msg_exception { 26 | syntax_error(const std::string& msg) : msg_exception(msg) {} 27 | }; 28 | 29 | struct type_error : public msg_exception { 30 | type_error(const std::string& msg) : msg_exception(msg) {} 31 | }; 32 | 33 | struct undefined_operation : public msg_exception { 34 | undefined_operation(const std::string& op, const TokenBase* left, const TokenBase* right) 35 | : undefined_operation(op, packToken(left->clone()), packToken(right->clone())) {} 36 | undefined_operation(const std::string& op, const packToken& left, const packToken& right) 37 | : msg_exception("Unexpected operation with operator '" + op + "' and operands: " + left.str() + " and " + right.str() + ".") {} 38 | }; 39 | 40 | #endif // SHUNTING_YARD_EXCEPTIONS_H_ 41 | -------------------------------------------------------------------------------- /third_party/utfcpp/LICENSE: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /third_party/cparse/functions.h: -------------------------------------------------------------------------------- 1 | #ifndef FUNCTIONS_H_ 2 | #define FUNCTIONS_H_ 3 | 4 | #include 5 | #include 6 | 7 | typedef std::list args_t; 8 | 9 | class Function : public TokenBase { 10 | public: 11 | static packToken call(packToken _this, const Function* func, 12 | TokenList* args, TokenMap scope); 13 | public: 14 | Function() : TokenBase(FUNC) {} 15 | virtual ~Function() {} 16 | 17 | public: 18 | virtual const std::string name() const = 0; 19 | virtual const args_t args() const = 0; 20 | virtual packToken exec(TokenMap scope) const = 0; 21 | virtual TokenBase* clone() const = 0; 22 | }; 23 | 24 | class CppFunction : public Function { 25 | public: 26 | packToken (*func)(TokenMap); 27 | args_t _args; 28 | std::string _name; 29 | 30 | CppFunction(packToken (*func)(TokenMap), const args_t args, 31 | std::string name = ""); 32 | CppFunction(packToken (*func)(TokenMap), unsigned int nargs, 33 | const char** args, std::string name = ""); 34 | CppFunction(packToken (*func)(TokenMap), std::string name = ""); 35 | 36 | virtual const std::string name() const { return _name; } 37 | virtual const args_t args() const { return _args; } 38 | virtual packToken exec(TokenMap scope) const { return func(scope); } 39 | 40 | virtual TokenBase* clone() const { 41 | return new CppFunction(static_cast(*this)); 42 | } 43 | }; 44 | 45 | #endif // FUNCTIONS_H_ 46 | -------------------------------------------------------------------------------- /desktop_version/src/BlockV.cpp: -------------------------------------------------------------------------------- 1 | #include "BlockV.h" 2 | 3 | blockclass::blockclass() 4 | { 5 | type = 0; 6 | trigger = 0; 7 | 8 | xp = 0; 9 | yp = 0; 10 | wp = 0; 11 | hp = 0; 12 | rect.x = xp; 13 | rect.y = yp; 14 | rect.w = wp; 15 | rect.h = hp; 16 | 17 | prompt = ""; 18 | script = ""; 19 | r = 0; 20 | g = 0; 21 | b = 0; 22 | } 23 | 24 | void blockclass::rectset(const int xi, const int yi, const int wi, const int hi) 25 | { 26 | rect.x = xi; 27 | rect.y = yi; 28 | rect.w = wi; 29 | rect.h = hi; 30 | } 31 | 32 | void blockclass::setblockcolour( std::string col ) 33 | { 34 | if (col == "cyan") 35 | { 36 | r = 164; 37 | g = 164; 38 | b = 255; 39 | } 40 | else if (col == "red") 41 | { 42 | r = 255; 43 | g = 60; 44 | b = 60; 45 | } 46 | else if (col == "green") 47 | { 48 | r = 144; 49 | g = 255; 50 | b = 144; 51 | } 52 | else if (col == "yellow") 53 | { 54 | r = 255; 55 | g = 255; 56 | b = 134; 57 | } 58 | else if (col == "blue") 59 | { 60 | r = 95; 61 | g = 95; 62 | b = 255; 63 | } 64 | else if (col == "purple") 65 | { 66 | r = 255; 67 | g = 134; 68 | b = 255; 69 | } 70 | else if (col == "white") 71 | { 72 | r = 244; 73 | g = 244; 74 | b = 244; 75 | } 76 | else if (col == "gray") 77 | { 78 | r = 174; 79 | g = 174; 80 | b = 174; 81 | } 82 | else if (col == "orange") 83 | { 84 | r = 255; 85 | g = 130; 86 | b = 20; 87 | } 88 | else 89 | { 90 | //use a gray 91 | r = 174; 92 | g = 174; 93 | b = 174; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /third_party/androidenv/tools/26.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgs_i686, postInstall ? ""}: 2 | 3 | deployAndroidPackage { 4 | name = "androidsdk"; 5 | inherit os package; 6 | buildInputs = [ autoPatchelfHook makeWrapper ] 7 | ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXrender pkgs.xlibs.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.xlibs.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ]; 8 | 9 | patchInstructions = '' 10 | ${lib.optionalString (os == "linux") '' 11 | # Auto patch all binaries 12 | autoPatchelf . 13 | ''} 14 | 15 | # Wrap all scripts that require JAVA_HOME 16 | for i in bin 17 | do 18 | find $i -maxdepth 1 -type f -executable | while read program 19 | do 20 | if grep -q "JAVA_HOME" $program 21 | then 22 | wrapProgram $PWD/$program --prefix PATH : ${pkgs.jdk8}/bin 23 | fi 24 | done 25 | done 26 | 27 | # Wrap monitor script 28 | wrapProgram $PWD/monitor \ 29 | --prefix PATH : ${pkgs.jdk8}/bin \ 30 | --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]} 31 | 32 | # Patch all script shebangs 33 | patchShebangs . 34 | 35 | cd .. 36 | ${postInstall} 37 | ''; 38 | 39 | meta.licenses = lib.licenses.unfree; 40 | } 41 | -------------------------------------------------------------------------------- /third_party/mingw-std-threads/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(mingw_stdthreads) 2 | cmake_minimum_required(VERSION 3.0) 3 | 4 | option(MINGW_STDTHREADS_BUILD_TEST "Build tests") 5 | option(MINGW_STDTHREADS_GENERATE_STDHEADERS "Generate std-like headers") 6 | 7 | string(CONCAT mingw_stdthreads_dir_docstring 8 | "Optional. When generating std-like headers , this variable can be set" 9 | "to manually specify the path to mingw-stdthreads directory containing" 10 | "original library headers.") 11 | set(MINGW_STDTHREADS_DIR "${PROJECT_SOURCE_DIR}" 12 | CACHE PATH ${mingw_stdthreads_dir_docstring}) 13 | 14 | # mingw-stdthreads is a header-only library, so make it a INTERFACE target 15 | add_library(${PROJECT_NAME} INTERFACE) 16 | target_include_directories(${PROJECT_NAME} INTERFACE "${PROJECT_SOURCE_DIR}") 17 | 18 | if(MINGW_STDTHREADS_GENERATE_STDHEADERS) 19 | # Check if we are using gcc or clang 20 | if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") 21 | # Add as dependency and generate std headers 22 | add_subdirectory(cmake_stdheaders_generator) 23 | target_link_libraries(${PROJECT_NAME} INTERFACE 24 | cmake_stdheaders_generator) 25 | else() 26 | message(WARNING "Cannot generate std headers with this compiler: " 27 | ${CMAKE_CXX_COMPILER_ID} ". " 28 | "Please fall back to #include ") 29 | endif() 30 | endif() 31 | 32 | # Build tests.exe 33 | if(MINGW_STDTHREADS_BUILD_TEST) 34 | add_subdirectory(tests) 35 | endif() -------------------------------------------------------------------------------- /desktop_version/cmake/version.cmake: -------------------------------------------------------------------------------- 1 | execute_process(COMMAND git log --pretty=format:'%h' -n 1 2 | OUTPUT_VARIABLE GIT_REV 3 | ERROR_QUIET) 4 | 5 | # Check whether we got any revision (which isn't 6 | # always the case, e.g. when someone downloaded a zip 7 | # file from Github instead of a checkout) 8 | if ("${GIT_REV}" STREQUAL "") 9 | set(GIT_REV "N/A") 10 | set(GIT_DIFF "") 11 | set(GIT_TAG "N/A") 12 | set(GIT_BRANCH "N/A") 13 | else() 14 | execute_process( 15 | COMMAND bash -c "git diff --quiet --exit-code || echo +" 16 | OUTPUT_VARIABLE GIT_DIFF) 17 | execute_process( 18 | COMMAND git describe --exact-match --tags 19 | OUTPUT_VARIABLE GIT_TAG ERROR_QUIET) 20 | execute_process( 21 | COMMAND git rev-parse --abbrev-ref HEAD 22 | OUTPUT_VARIABLE GIT_BRANCH) 23 | 24 | string(STRIP "${GIT_REV}" GIT_REV) 25 | string(SUBSTRING "${GIT_REV}" 1 7 GIT_REV) 26 | string(STRIP "${GIT_DIFF}" GIT_DIFF) 27 | string(STRIP "${GIT_TAG}" GIT_TAG) 28 | string(STRIP "${GIT_BRANCH}" GIT_BRANCH) 29 | endif() 30 | 31 | set(VERSION "const char* git_rev=\"${GIT_REV}${GIT_DIFF}\"; 32 | const char* git_tag=\"${GIT_TAG}\"; 33 | const char* git_branch=\"${GIT_BRANCH}\";") 34 | 35 | if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp) 36 | file(READ ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp VERSION_) 37 | else() 38 | set(VERSION_ "") 39 | endif() 40 | 41 | if (NOT "${VERSION}" STREQUAL "${VERSION_}") 42 | file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp "${VERSION}") 43 | endif() 44 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lualib.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lualib.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Lua standard libraries 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | 8 | #ifndef lualib_h 9 | #define lualib_h 10 | 11 | #include "lua.h" 12 | 13 | 14 | /* version suffix for environment variable names */ 15 | #define LUA_VERSUFFIX "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR 16 | 17 | 18 | LUAMOD_API int (luaopen_base) (lua_State *L); 19 | 20 | #define LUA_COLIBNAME "coroutine" 21 | LUAMOD_API int (luaopen_coroutine) (lua_State *L); 22 | 23 | #define LUA_TABLIBNAME "table" 24 | LUAMOD_API int (luaopen_table) (lua_State *L); 25 | 26 | #define LUA_IOLIBNAME "io" 27 | LUAMOD_API int (luaopen_io) (lua_State *L); 28 | 29 | #define LUA_OSLIBNAME "os" 30 | LUAMOD_API int (luaopen_os) (lua_State *L); 31 | 32 | #define LUA_STRLIBNAME "string" 33 | LUAMOD_API int (luaopen_string) (lua_State *L); 34 | 35 | #define LUA_UTF8LIBNAME "utf8" 36 | LUAMOD_API int (luaopen_utf8) (lua_State *L); 37 | 38 | #define LUA_BITLIBNAME "bit32" 39 | LUAMOD_API int (luaopen_bit32) (lua_State *L); 40 | 41 | #define LUA_MATHLIBNAME "math" 42 | LUAMOD_API int (luaopen_math) (lua_State *L); 43 | 44 | #define LUA_DBLIBNAME "debug" 45 | LUAMOD_API int (luaopen_debug) (lua_State *L); 46 | 47 | #define LUA_LOADLIBNAME "package" 48 | LUAMOD_API int (luaopen_package) (lua_State *L); 49 | 50 | 51 | /* open all previous libraries */ 52 | LUALIB_API void (luaL_openlibs) (lua_State *L); 53 | 54 | 55 | 56 | #if !defined(lua_assert) 57 | #define lua_assert(x) ((void)0) 58 | #endif 59 | 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/ldebug.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ldebug.h,v 2.14.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Auxiliary functions from Debug Interface module 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ldebug_h 8 | #define ldebug_h 9 | 10 | 11 | #include "lstate.h" 12 | 13 | 14 | #define pcRel(pc, p) (cast(int, (pc) - (p)->code) - 1) 15 | 16 | #define getfuncline(f,pc) (((f)->lineinfo) ? (f)->lineinfo[pc] : -1) 17 | 18 | #define resethookcount(L) (L->hookcount = L->basehookcount) 19 | 20 | 21 | LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o, 22 | const char *opname); 23 | LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1, 24 | const TValue *p2); 25 | LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1, 26 | const TValue *p2, 27 | const char *msg); 28 | LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1, 29 | const TValue *p2); 30 | LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1, 31 | const TValue *p2); 32 | LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...); 33 | LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg, 34 | TString *src, int line); 35 | LUAI_FUNC l_noret luaG_errormsg (lua_State *L); 36 | LUAI_FUNC void luaG_traceexec (lua_State *L); 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /desktop_version/src/FileSystemUtils.h: -------------------------------------------------------------------------------- 1 | #ifndef FILESYSTEMUTILS_H 2 | #define FILESYSTEMUTILS_H 3 | 4 | #include 5 | #include 6 | #include "Game.h" 7 | 8 | // Forward declaration, including the entirety of tinyxml2.h across all files this file is included in is unnecessary 9 | namespace tinyxml2 { class XMLDocument; } 10 | 11 | int FILESYSTEM_init(char *argvZero, char *baseDir, char* assetsPath); 12 | int FILESYSTEM_initCore(char *argvZero, char *baseDir, char* assetsPath); 13 | void FILESYSTEM_deinit(); 14 | 15 | char *FILESYSTEM_getUserSaveDirectory(); 16 | char *FILESYSTEM_getUserLevelDirectory(); 17 | 18 | bool FILESYSTEM_directoryExists(const char *fname); 19 | void FILESYSTEM_mount(const char *fname); 20 | extern bool FILESYSTEM_assetsmounted; 21 | void FILESYSTEM_mountassets(const char *path); 22 | void FILESYSTEM_unmountassets(); 23 | bool FILESYSTEM_loadFileToMemory(const char *name, unsigned char **mem, 24 | size_t *len, bool addnull = false); 25 | void FILESYSTEM_freeMemory(unsigned char **mem); 26 | bool FILESYSTEM_saveTiXml2Document(const char *name, tinyxml2::XMLDocument& doc); 27 | bool FILESYSTEM_loadTiXml2Document(const char *name, tinyxml2::XMLDocument& doc); 28 | 29 | std::vector FILESYSTEM_getLevelDirFileNames(); 30 | 31 | bool FILESYSTEM_openDirectory(const char *dname); 32 | 33 | std::vector FILESYSTEM_getGraphicsDirFileNames(); 34 | 35 | bool FILESYSTEM_openDirectoryEnabled(); 36 | bool FILESYSTEM_openDirectory(const char *dname); 37 | 38 | bool FILESYSTEM_delete(const char *name); 39 | 40 | void FILESYSTEM_flushSave(); 41 | 42 | #endif /* FILESYSTEMUTILS_H */ 43 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lstring.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lstring.h,v 1.61.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** String table (keep all strings handled by Lua) 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lstring_h 8 | #define lstring_h 9 | 10 | #include "lgc.h" 11 | #include "lobject.h" 12 | #include "lstate.h" 13 | 14 | 15 | #define sizelstring(l) (sizeof(union UTString) + ((l) + 1) * sizeof(char)) 16 | 17 | #define sizeludata(l) (sizeof(union UUdata) + (l)) 18 | #define sizeudata(u) sizeludata((u)->len) 19 | 20 | #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ 21 | (sizeof(s)/sizeof(char))-1)) 22 | 23 | 24 | /* 25 | ** test whether a string is a reserved word 26 | */ 27 | #define isreserved(s) ((s)->tt == LUA_TSHRSTR && (s)->extra > 0) 28 | 29 | 30 | /* 31 | ** equality for short strings, which are always internalized 32 | */ 33 | #define eqshrstr(a,b) check_exp((a)->tt == LUA_TSHRSTR, (a) == (b)) 34 | 35 | 36 | LUAI_FUNC unsigned int luaS_hash (const char *str, size_t l, unsigned int seed); 37 | LUAI_FUNC unsigned int luaS_hashlongstr (TString *ts); 38 | LUAI_FUNC int luaS_eqlngstr (TString *a, TString *b); 39 | LUAI_FUNC void luaS_resize (lua_State *L, int newsize); 40 | LUAI_FUNC void luaS_clearcache (global_State *g); 41 | LUAI_FUNC void luaS_init (lua_State *L); 42 | LUAI_FUNC void luaS_remove (lua_State *L, TString *ts); 43 | LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s); 44 | LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); 45 | LUAI_FUNC TString *luaS_new (lua_State *L, const char *str); 46 | LUAI_FUNC TString *luaS_createlngstrobj (lua_State *L, size_t l); 47 | 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lzio.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lzio.c,v 1.37.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Buffered streams 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #define lzio_c 8 | #define LUA_CORE 9 | 10 | #include "lprefix.h" 11 | 12 | 13 | #include 14 | 15 | #include "lua.h" 16 | 17 | #include "llimits.h" 18 | #include "lmem.h" 19 | #include "lstate.h" 20 | #include "lzio.h" 21 | 22 | 23 | int luaZ_fill (ZIO *z) { 24 | size_t size; 25 | lua_State *L = z->L; 26 | const char *buff; 27 | lua_unlock(L); 28 | buff = z->reader(L, z->data, &size); 29 | lua_lock(L); 30 | if (buff == NULL || size == 0) 31 | return EOZ; 32 | z->n = size - 1; /* discount char being returned */ 33 | z->p = buff; 34 | return cast_uchar(*(z->p++)); 35 | } 36 | 37 | 38 | void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { 39 | z->L = L; 40 | z->reader = reader; 41 | z->data = data; 42 | z->n = 0; 43 | z->p = NULL; 44 | } 45 | 46 | 47 | /* --------------------------------------------------------------- read --- */ 48 | size_t luaZ_read (ZIO *z, void *b, size_t n) { 49 | while (n) { 50 | size_t m; 51 | if (z->n == 0) { /* no bytes in buffer? */ 52 | if (luaZ_fill(z) == EOZ) /* try to read more */ 53 | return n; /* no more input; return number of missing bytes */ 54 | else { 55 | z->n++; /* luaZ_fill consumed first byte; put it back */ 56 | z->p--; 57 | } 58 | } 59 | m = (n <= z->n) ? n : z->n; /* min. between n and z->n */ 60 | memcpy(b, z->p, m); 61 | z->n -= m; 62 | z->p += m; 63 | b = (char *)b + m; 64 | n -= m; 65 | } 66 | return 0; 67 | } 68 | 69 | -------------------------------------------------------------------------------- /third_party/androidenv/deploy-androidpackage.nix: -------------------------------------------------------------------------------- 1 | {stdenv, unzip}: 2 | {package, os ? null, buildInputs ? [], patchInstructions ? "", meta ? {}, ...}@args: 3 | 4 | let 5 | extraParams = removeAttrs args [ "package" "os" "buildInputs" "patchInstructions" ]; 6 | in 7 | stdenv.mkDerivation ({ 8 | name = package.name + "-" + package.revision; 9 | src = if os != null && builtins.hasAttr os package.archives then package.archives.${os} else package.archives.all; 10 | buildInputs = [ unzip ] ++ buildInputs; 11 | preferLocalBuild = true; 12 | 13 | # Most Android Zip packages have a root folder, but some don't. We unpack 14 | # the zip file in a folder and we try to discover whether it has a single root 15 | # folder. If this is the case, we adjust the current working folder. 16 | unpackPhase = '' 17 | mkdir extractedzip 18 | cd extractedzip 19 | unpackFile "$src" 20 | if [ "$(find . -mindepth 1 -maxdepth 1 -type d | wc -l)" -eq 1 ] 21 | then 22 | cd "$(find . -mindepth 1 -maxdepth 1 -type d)" 23 | fi 24 | sourceRoot="$PWD" 25 | ''; 26 | 27 | installPhase = '' 28 | packageBaseDir=$out/libexec/android-sdk/${package.path} 29 | mkdir -p $packageBaseDir 30 | cd $packageBaseDir 31 | cp -av $sourceRoot/* . 32 | ${patchInstructions} 33 | ''; 34 | 35 | # We never attempt to strip. This is not required since we're doing binary 36 | # deployments. Moreover, some executables that have been patched with patchelf 37 | # may not work any longer after they have been stripped. 38 | dontStrip = true; 39 | dontPatchELF = true; 40 | dontAutoPatchelf = true; 41 | 42 | meta = { 43 | description = package.displayName; 44 | } // meta; 45 | } // extraParams) 46 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lzio.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lzio.h,v 1.31.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Buffered streams 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | 8 | #ifndef lzio_h 9 | #define lzio_h 10 | 11 | #include "lua.h" 12 | 13 | #include "lmem.h" 14 | 15 | 16 | #define EOZ (-1) /* end of stream */ 17 | 18 | typedef struct Zio ZIO; 19 | 20 | #define zgetc(z) (((z)->n--)>0 ? cast_uchar(*(z)->p++) : luaZ_fill(z)) 21 | 22 | 23 | typedef struct Mbuffer { 24 | char *buffer; 25 | size_t n; 26 | size_t buffsize; 27 | } Mbuffer; 28 | 29 | #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) 30 | 31 | #define luaZ_buffer(buff) ((buff)->buffer) 32 | #define luaZ_sizebuffer(buff) ((buff)->buffsize) 33 | #define luaZ_bufflen(buff) ((buff)->n) 34 | 35 | #define luaZ_buffremove(buff,i) ((buff)->n -= (i)) 36 | #define luaZ_resetbuffer(buff) ((buff)->n = 0) 37 | 38 | 39 | #define luaZ_resizebuffer(L, buff, size) \ 40 | ((buff)->buffer = luaM_reallocvchar(L, (buff)->buffer, \ 41 | (buff)->buffsize, size), \ 42 | (buff)->buffsize = size) 43 | 44 | #define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) 45 | 46 | 47 | LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, 48 | void *data); 49 | LUAI_FUNC size_t luaZ_read (ZIO* z, void *b, size_t n); /* read next n bytes */ 50 | 51 | 52 | 53 | /* --------- Private Part ------------------ */ 54 | 55 | struct Zio { 56 | size_t n; /* bytes still unread */ 57 | const char *p; /* current position in buffer */ 58 | lua_Reader reader; /* reader function */ 59 | void *data; /* additional data */ 60 | lua_State *L; /* Lua state (for reader) */ 61 | }; 62 | 63 | 64 | LUAI_FUNC int luaZ_fill (ZIO *z); 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /desktop_version/src/BinaryBlob.h: -------------------------------------------------------------------------------- 1 | #ifndef BINARYBLOB_H 2 | #define BINARYBLOB_H 3 | 4 | #include 5 | 6 | /* Laaaazyyyyyyy -flibit */ 7 | // #define VVV_COMPILEMUSIC 8 | 9 | #define TRACK_NAMES \ 10 | FOREACH_TRACK("data/music/0levelcomplete.ogg") \ 11 | FOREACH_TRACK("data/music/1pushingonwards.ogg") \ 12 | FOREACH_TRACK("data/music/2positiveforce.ogg") \ 13 | FOREACH_TRACK("data/music/3potentialforanything.ogg") \ 14 | FOREACH_TRACK("data/music/4passionforexploring.ogg") \ 15 | FOREACH_TRACK("data/music/5intermission.ogg") \ 16 | FOREACH_TRACK("data/music/6presentingvvvvvv.ogg") \ 17 | FOREACH_TRACK("data/music/7gamecomplete.ogg") \ 18 | FOREACH_TRACK("data/music/8predestinedfate.ogg") \ 19 | FOREACH_TRACK("data/music/9positiveforcereversed.ogg") \ 20 | FOREACH_TRACK("data/music/10popularpotpourri.ogg") \ 21 | FOREACH_TRACK("data/music/11pipedream.ogg") \ 22 | FOREACH_TRACK("data/music/12pressurecooker.ogg") \ 23 | FOREACH_TRACK("data/music/13pacedenergy.ogg") \ 24 | FOREACH_TRACK("data/music/14piercingthesky.ogg") \ 25 | FOREACH_TRACK("data/music/predestinedfatefinallevel.ogg") 26 | 27 | struct resourceheader 28 | { 29 | char name[48]; 30 | int start_UNUSED = 0; 31 | int size = 0; 32 | bool valid = false; 33 | }; 34 | 35 | class binaryBlob 36 | { 37 | public: 38 | binaryBlob(); 39 | 40 | #ifdef VVV_COMPILEMUSIC 41 | void AddFileToBinaryBlob(const char* _path); 42 | 43 | void writeBinaryBlob(const char* _name); 44 | #endif 45 | 46 | bool unPackBinary(const char* _name); 47 | 48 | int getIndex(const char* _name); 49 | 50 | int getSize(int _index); 51 | 52 | std::vector getExtra(); 53 | 54 | char* getAddress(int _index); 55 | 56 | private: 57 | int numberofHeaders = 0; 58 | resourceheader m_headers[128]; 59 | char* m_memblocks[128]; 60 | }; 61 | 62 | 63 | #endif /* BINARYBLOB_H */ 64 | -------------------------------------------------------------------------------- /desktop_version/src/Utilities.h: -------------------------------------------------------------------------------- 1 | #ifndef UTILITIES_H 2 | #define UTILITIES_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | uint64_t splitmix64(uint64_t& x); 12 | void seed_xoshiro(uint64_t s1, uint64_t s2, uint64_t s3, uint64_t s4); 13 | inline void seed_xoshiro_64(uint64_t s) { 14 | auto s1 = splitmix64(s); 15 | auto s2 = splitmix64(s); 16 | auto s3 = splitmix64(s); 17 | auto s4 = splitmix64(s); 18 | seed_xoshiro(s1, s2, s3, s4); 19 | } 20 | uint64_t xoshiro_next(void); 21 | 22 | size_t bsd_strlcpy(char *dst, const char *src, size_t dsize); 23 | 24 | int battery_level(); 25 | bool on_battery(); 26 | 27 | // source: https://randomascii.wordpress.com/2013/04/03/stop-using-strncpy-already/ 28 | template 29 | void strcpy_safe(char (&output)[charCount], const char* pSrc) { 30 | bsd_strlcpy(output, pSrc, charCount); 31 | } 32 | 33 | struct free_delete { 34 | void operator()(void* x); 35 | }; 36 | 37 | std::string hhmmss_time(); 38 | std::chrono::system_clock::rep unix_time(); 39 | 40 | template 41 | T string_cast(U val) { 42 | std::stringstream stream; 43 | T ret; 44 | stream << val; 45 | stream >> ret; 46 | return ret; 47 | } 48 | 49 | std::string dtos(double val); 50 | 51 | void log_init(); 52 | void log_close(); 53 | bool log_default(); 54 | 55 | void handle_exception(const std::exception& ex); 56 | 57 | struct script_exception : public std::exception { 58 | std::string message; 59 | 60 | const char* what() const noexcept override; 61 | 62 | script_exception(const std::exception& ex); 63 | script_exception(const char* message, bool raw = false); 64 | script_exception(std::string message, bool raw = false); 65 | }; 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lfunc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lfunc.h,v 2.15.1.1 2017/04/19 17:39:34 roberto Exp $ 3 | ** Auxiliary functions to manipulate prototypes and closures 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lfunc_h 8 | #define lfunc_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | #define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \ 15 | cast(int, sizeof(TValue)*((n)-1))) 16 | 17 | #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ 18 | cast(int, sizeof(TValue *)*((n)-1))) 19 | 20 | 21 | /* test whether thread is in 'twups' list */ 22 | #define isintwups(L) (L->twups != L) 23 | 24 | 25 | /* 26 | ** maximum number of upvalues in a closure (both C and Lua). (Value 27 | ** must fit in a VM register.) 28 | */ 29 | #define MAXUPVAL 255 30 | 31 | 32 | /* 33 | ** Upvalues for Lua closures 34 | */ 35 | struct UpVal { 36 | TValue *v; /* points to stack or to its own value */ 37 | lu_mem refcount; /* reference counter */ 38 | union { 39 | struct { /* (when open) */ 40 | UpVal *next; /* linked list */ 41 | int touched; /* mark to avoid cycles with dead threads */ 42 | } open; 43 | TValue value; /* the value (when closed) */ 44 | } u; 45 | }; 46 | 47 | #define upisopen(up) ((up)->v != &(up)->u.value) 48 | 49 | 50 | LUAI_FUNC Proto *luaF_newproto (lua_State *L); 51 | LUAI_FUNC CClosure *luaF_newCclosure (lua_State *L, int nelems); 52 | LUAI_FUNC LClosure *luaF_newLclosure (lua_State *L, int nelems); 53 | LUAI_FUNC void luaF_initupvals (lua_State *L, LClosure *cl); 54 | LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); 55 | LUAI_FUNC void luaF_close (lua_State *L, StkId level); 56 | LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); 57 | LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, 58 | int pc); 59 | 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /third_party/androidenv/convertsystemimages.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | https://dl.google.com/android/repository/sys-img// 19 | 20 | 21 | 22 | 23 | 24 | {fetchurl}: 25 | 26 | { 27 | 28 | 29 | -- 30 | 31 | 32 | "".."" = { 33 | name = "system-image-"; 34 | path = ""; 35 | revision = ""; 36 | displayName = ""; 37 | archives.all = fetchurl { 38 | 39 | url = ; 40 | sha1 = ""; 41 | 42 | }; 43 | }; 44 | 45 | } 46 | 47 | 48 | -------------------------------------------------------------------------------- /third_party/androidenv/build-app.nix: -------------------------------------------------------------------------------- 1 | { composeAndroidPackages, stdenv, lib, ant, jdk, gnumake, gawk }: 2 | 3 | { name 4 | , release ? false, keyStore ? null, keyAlias ? null, keyStorePassword ? null, keyAliasPassword ? null 5 | , antFlags ? "" 6 | , ... 7 | }@args: 8 | 9 | assert release -> keyStore != null && keyAlias != null && keyStorePassword != null && keyAliasPassword != null; 10 | 11 | let 12 | androidSdkFormalArgs = builtins.functionArgs composeAndroidPackages; 13 | androidArgs = builtins.intersectAttrs androidSdkFormalArgs args; 14 | androidsdk = (composeAndroidPackages androidArgs).androidsdk; 15 | 16 | extraArgs = removeAttrs args ([ "name" ] ++ builtins.attrNames androidSdkFormalArgs); 17 | in 18 | stdenv.mkDerivation ({ 19 | name = lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot 20 | ANDROID_HOME = "${androidsdk}/libexec/android-sdk"; 21 | buildInputs = [ jdk ant ]; 22 | buildPhase = '' 23 | ${lib.optionalString release '' 24 | # Provide key singing attributes 25 | ( echo "key.store=${keyStore}" 26 | echo "key.alias=${keyAlias}" 27 | echo "key.store.password=${keyStorePassword}" 28 | echo "key.alias.password=${keyAliasPassword}" 29 | ) >> ant.properties 30 | ''} 31 | 32 | export ANDROID_SDK_HOME=`pwd` # Key files cannot be stored in the user's home directory. This overrides it. 33 | 34 | ${lib.optionalString (args ? includeNDK && args.includeNDK) '' 35 | export GNUMAKE=${gnumake}/bin/make 36 | export NDK_HOST_AWK=${gawk}/bin/gawk 37 | ${androidsdk}/libexec/android-sdk/ndk-bundle/ndk-build 38 | ''} 39 | ant ${antFlags} ${if release then "release" else "debug"} 40 | ''; 41 | installPhase = '' 42 | mkdir -p $out 43 | mv bin/*-${if release then "release" else "debug"}.apk $out 44 | 45 | mkdir -p $out/nix-support 46 | echo "file binary-dist \"$(echo $out/*.apk)\"" > $out/nix-support/hydra-build-products 47 | ''; 48 | } // extraArgs) 49 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/linit.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: linit.c,v 1.39.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Initialization of libraries for lua.c and other clients 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | 8 | #define linit_c 9 | #define LUA_LIB 10 | 11 | /* 12 | ** If you embed Lua in your program and need to open the standard 13 | ** libraries, call luaL_openlibs in your program. If you need a 14 | ** different set of libraries, copy this file to your project and edit 15 | ** it to suit your needs. 16 | ** 17 | ** You can also *preload* libraries, so that a later 'require' can 18 | ** open the library, which is already linked to the application. 19 | ** For that, do the following code: 20 | ** 21 | ** luaL_getsubtable(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE); 22 | ** lua_pushcfunction(L, luaopen_modname); 23 | ** lua_setfield(L, -2, modname); 24 | ** lua_pop(L, 1); // remove PRELOAD table 25 | */ 26 | 27 | #include "lprefix.h" 28 | 29 | 30 | #include 31 | 32 | #include "lua.h" 33 | 34 | #include "lualib.h" 35 | #include "lauxlib.h" 36 | 37 | 38 | /* 39 | ** these libs are loaded by lua.c and are readily available to any Lua 40 | ** program 41 | */ 42 | static const luaL_Reg loadedlibs[] = { 43 | {"_G", luaopen_base}, 44 | {LUA_LOADLIBNAME, luaopen_package}, 45 | {LUA_COLIBNAME, luaopen_coroutine}, 46 | {LUA_TABLIBNAME, luaopen_table}, 47 | {LUA_IOLIBNAME, luaopen_io}, 48 | {LUA_OSLIBNAME, luaopen_os}, 49 | {LUA_STRLIBNAME, luaopen_string}, 50 | {LUA_MATHLIBNAME, luaopen_math}, 51 | {LUA_UTF8LIBNAME, luaopen_utf8}, 52 | {LUA_DBLIBNAME, luaopen_debug}, 53 | #if defined(LUA_COMPAT_BITLIB) 54 | {LUA_BITLIBNAME, luaopen_bit32}, 55 | #endif 56 | {NULL, NULL} 57 | }; 58 | 59 | 60 | LUALIB_API void luaL_openlibs (lua_State *L) { 61 | const luaL_Reg *lib; 62 | /* "require" functions from 'loadedlibs' and set results to global table */ 63 | for (lib = loadedlibs; lib->func; lib++) { 64 | luaL_requiref(L, lib->name, lib->func, 1); 65 | lua_pop(L, 1); /* remove lib */ 66 | } 67 | } 68 | 69 | -------------------------------------------------------------------------------- /desktop_version/src/Music.h: -------------------------------------------------------------------------------- 1 | #ifndef MUSIC_H 2 | #define MUSIC_H 3 | 4 | #include "SoundSystem.h" 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define musicroom(rx, ry) ((rx) + ((ry) * 20)) 11 | 12 | class musicclass 13 | { 14 | public: 15 | void init(); 16 | 17 | void play(int t, const double position_sec = 0.0, const int fadein_ms = 3000); 18 | void play(int t, int fadeintime); 19 | void resume(const int fadein_ms = 0); 20 | void haltdasmusik(); 21 | void silencedasmusik(); 22 | void fadeMusicVolumeIn(int ms); 23 | void fadeout(); 24 | void fadein(); 25 | void processmusicfadein(); 26 | void processmusic(); 27 | void niceplay(int t); 28 | 29 | void changemusicarea(int x, int y); 30 | 31 | int currentsong = 0; 32 | int resumesong = false; 33 | 34 | void playfile(const char* t, std::string track, int loops, bool internal = false); 35 | void stopfile(std::string track); 36 | 37 | void playef(int t); 38 | 39 | std::vector soundTracks; 40 | std::vector musicTracks; 41 | SoundSystem soundSystem; 42 | bool safeToProcessMusic = true; 43 | 44 | int nicechange = 0; 45 | int nicefade = 0; 46 | 47 | bool m_doFadeInVol = false; 48 | int FadeVolAmountPerFrame = 0; 49 | int musicVolume = 0; 50 | 51 | int fadeoutqueuesong = -1; // -1 if no song queued 52 | bool dontquickfade = false; 53 | 54 | // MMMMMM mod settings 55 | bool mmmmmm = false; 56 | bool usingmmmmmm = false; 57 | bool loaded = false; 58 | 59 | int num_pppppp_tracks = 0; 60 | int num_mmmmmm_tracks = 0; 61 | 62 | Uint64 songStart = 0; 63 | Uint64 songEnd = 0; 64 | 65 | std::unordered_map custom_files; 66 | std::unordered_map custom_file_channels; 67 | std::unordered_map custom_channel_paths; 68 | std::unordered_map custom_file_paths; 69 | std::unordered_map custom_file_loops; 70 | }; 71 | 72 | extern musicclass music; 73 | 74 | #endif /* MUSIC_H */ 75 | -------------------------------------------------------------------------------- /third_party/androidenv/ndk-bundle/default.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, platform-tools}: 2 | 3 | let 4 | runtime_paths = lib.makeBinPath [ pkgs.coreutils pkgs.file pkgs.findutils pkgs.gawk pkgs.gnugrep pkgs.gnused pkgs.jdk pkgs.python3 pkgs.which ] + ":${platform-tools}/platform-tools"; 5 | in 6 | deployAndroidPackage { 7 | inherit package os; 8 | buildInputs = [ autoPatchelfHook makeWrapper pkgs.python2 ] 9 | ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out ]; 10 | patchInstructions = lib.optionalString (os == "linux") '' 11 | patchShebangs . 12 | 13 | #patch -p1 \ 14 | # --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch} 15 | wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}" 16 | 17 | # TODO: allow this stuff 18 | rm -rf docs tests 19 | 20 | # Patch the executables of the toolchains, but not the libraries -- they are needed for crosscompiling 21 | 22 | addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64 23 | find toolchains -type d -name bin | while read dir 24 | do 25 | autoPatchelf "$dir" 26 | done 27 | 28 | # fix ineffective PROGDIR / MYNDKDIR determination 29 | for i in ndk-build 30 | do 31 | sed -i -e 's|^PROGDIR=`dirname $0`|PROGDIR=`dirname $(readlink -f $(which $0))`|' $i 32 | done 33 | 34 | # Patch executables 35 | autoPatchelf prebuilt/linux-x86_64 36 | 37 | # wrap 38 | for i in ndk-build 39 | do 40 | wrapProgram "$(pwd)/$i" --prefix PATH : "${runtime_paths}" 41 | done 42 | 43 | # make some executables available in PATH 44 | mkdir -p $out/bin 45 | for i in ndk-build 46 | do 47 | ln -sf ../libexec/android-sdk/ndk-bundle/$i $out/bin/$i 48 | done 49 | ''; 50 | noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script 51 | } 52 | -------------------------------------------------------------------------------- /desktop_version/src/battery_apple.m: -------------------------------------------------------------------------------- 1 | /* vi: set ft=objc */ 2 | 3 | #import 4 | #import 5 | #import 6 | 7 | int battery_level() { 8 | int percentage = 100; 9 | 10 | CFTypeRef powerSourceInfo = IOPSCopyPowerSourcesInfo(); 11 | CFArrayRef powerSources = IOPSCopyPowerSourcesList(powerSourceInfo); 12 | 13 | long numberOfSources = CFArrayGetCount(powerSources); 14 | if(numberOfSources != 0) { 15 | CFDictionaryRef powerSource = IOPSGetPowerSourceDescription(powerSourceInfo, CFArrayGetValueAtIndex(powerSources, 0)); 16 | 17 | const void *psValue; 18 | int curCapacity = 0; 19 | int maxCapacity = 0; 20 | 21 | psValue = CFDictionaryGetValue(powerSource, @kIOPSCurrentCapacityKey); 22 | CFNumberGetValue((CFNumberRef)psValue, kCFNumberSInt32Type, &curCapacity); 23 | 24 | psValue = CFDictionaryGetValue(powerSource, @kIOPSMaxCapacityKey); 25 | CFNumberGetValue((CFNumberRef)psValue, kCFNumberSInt32Type, &maxCapacity); 26 | 27 | percentage = (int)((double)curCapacity/(double)maxCapacity * 100); 28 | } 29 | 30 | CFRelease(powerSourceInfo); 31 | CFRelease(powerSources); 32 | 33 | return percentage; 34 | } 35 | 36 | _Bool on_battery() { 37 | _Bool onBattery = 0; 38 | 39 | CFTypeRef powerSourceInfo = IOPSCopyPowerSourcesInfo(); 40 | CFArrayRef powerSources = IOPSCopyPowerSourcesList(powerSourceInfo); 41 | 42 | CFDictionaryRef powerSource = NULL; 43 | 44 | long numberOfSources = CFArrayGetCount(powerSources); 45 | if(numberOfSources != 0) { 46 | powerSource = IOPSGetPowerSourceDescription(powerSourceInfo, CFArrayGetValueAtIndex(powerSources, 0)); 47 | 48 | NSString str = CFDictionaryGetValue(powerSource, @kIOPSPowerSourceStateKey); 49 | 50 | if ([str isEqualToString:@kIOPSBatteryPowerValue]) { 51 | onBattery = 1; 52 | } 53 | } 54 | 55 | CFRelease(powerSourceInfo); 56 | CFRelease(powerSources); 57 | 58 | return onBattery; 59 | } 60 | -------------------------------------------------------------------------------- /.github/workflows/ci-android.yml: -------------------------------------------------------------------------------- 1 | name: CI (Android) 2 | 3 | # Trigger this workflow on push or pull request 4 | on: push 5 | 6 | env: 7 | SRC_DIR_PATH: desktop_version 8 | 9 | jobs: 10 | build-android: 11 | name: Build (Android) 12 | 13 | runs-on: ubuntu-18.04 14 | 15 | env: 16 | VVVVVV_CE_ANDROID_BUILD: 1 17 | 18 | steps: 19 | - uses: actions/checkout@v1 20 | 21 | - name: Set up JDK 1.8 22 | uses: actions/setup-java@v1 23 | with: 24 | java-version: 1.8 25 | 26 | - name: Cache data.zip 27 | uses: actions/cache@v1 28 | with: 29 | path: .github/resources/data-zip 30 | key: data-zip-folder 31 | 32 | - name: Cache CMake 33 | uses: actions/cache@v1 34 | with: 35 | path: .github/resources/cmake 36 | key: cmake-3-16-4-resources 37 | 38 | - name: Install pinned CMake 39 | run: ${SRC_DIR_PATH}/pinned-cmake.sh 40 | 41 | - name: Install dependencies 42 | run: sudo apt-get install -y ninja-build tree 43 | 44 | - name: Copy data.zip 45 | run: | 46 | cd .github/resources/ 47 | ../../desktop_version/download-data.sh 48 | (cd ../../desktop_version/data && zip -r ../../.github/resources/data-zip/data.zip graphics/) 49 | mkdir -p ../../${SRC_DIR_PATH}/android-project/app/src/main/assets/ 50 | cp -v data-zip/data.zip ../../${SRC_DIR_PATH}/android-project/app/src/main/assets/data.zip 51 | 52 | - name: Show project before build 53 | run: tree ${SRC_DIR_PATH}/android-project 54 | 55 | - name: Build 56 | run: cd ${SRC_DIR_PATH} && ./build.sh 57 | env: 58 | V6CORD_RELEASE: ${{ secrets.V6CORD_RELEASE }} 59 | V6CORD_RELEASE_PASSWORD: ${{ secrets.V6CORD_RELEASE_PASSWORD }} 60 | 61 | - name: Show project after build 62 | run: tree ${SRC_DIR_PATH}/android-project 63 | 64 | - name: Upload artifacts 65 | uses: actions/upload-artifact@v1 66 | with: 67 | name: VVVVVV-CE-Android 68 | path: desktop_version/android-project/app/build/outputs/apk 69 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/ltm.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ltm.h,v 2.22.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Tag methods 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ltm_h 8 | #define ltm_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | /* 15 | * WARNING: if you change the order of this enumeration, 16 | * grep "ORDER TM" and "ORDER OP" 17 | */ 18 | typedef enum { 19 | TM_INDEX, 20 | TM_NEWINDEX, 21 | TM_GC, 22 | TM_MODE, 23 | TM_LEN, 24 | TM_EQ, /* last tag method with fast access */ 25 | TM_ADD, 26 | TM_SUB, 27 | TM_MUL, 28 | TM_MOD, 29 | TM_POW, 30 | TM_DIV, 31 | TM_IDIV, 32 | TM_BAND, 33 | TM_BOR, 34 | TM_BXOR, 35 | TM_SHL, 36 | TM_SHR, 37 | TM_UNM, 38 | TM_BNOT, 39 | TM_LT, 40 | TM_LE, 41 | TM_CONCAT, 42 | TM_CALL, 43 | TM_N /* number of elements in the enum */ 44 | } TMS; 45 | 46 | 47 | 48 | #define gfasttm(g,et,e) ((et) == NULL ? NULL : \ 49 | ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e])) 50 | 51 | #define fasttm(l,et,e) gfasttm(G(l), et, e) 52 | 53 | #define ttypename(x) luaT_typenames_[(x) + 1] 54 | 55 | LUAI_DDEC const char *const luaT_typenames_[LUA_TOTALTAGS]; 56 | 57 | 58 | LUAI_FUNC const char *luaT_objtypename (lua_State *L, const TValue *o); 59 | 60 | LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename); 61 | LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, 62 | TMS event); 63 | LUAI_FUNC void luaT_init (lua_State *L); 64 | 65 | LUAI_FUNC void luaT_callTM (lua_State *L, const TValue *f, const TValue *p1, 66 | const TValue *p2, TValue *p3, int hasres); 67 | LUAI_FUNC int luaT_callbinTM (lua_State *L, const TValue *p1, const TValue *p2, 68 | StkId res, TMS event); 69 | LUAI_FUNC void luaT_trybinTM (lua_State *L, const TValue *p1, const TValue *p2, 70 | StkId res, TMS event); 71 | LUAI_FUNC int luaT_callorderTM (lua_State *L, const TValue *p1, 72 | const TValue *p2, TMS event); 73 | 74 | 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /mobile_version/src/device.as: -------------------------------------------------------------------------------- 1 | package { 2 | public class device { 3 | public static var DESKTOP:int = 0; 4 | public static var MOBILE:int = 1; 5 | public static var CONSOLE:int = 2; 6 | 7 | public static var IPHONE:int = 1; 8 | public static var IPHONERETINA:int = 2; 9 | public static var IPAD:int = 3; 10 | public static var IPADRETINA:int = 4; 11 | public static var IPHONE5:int = 5; 12 | public static var ANDROID:int = 6; 13 | public static var OUYA:int = 7; 14 | 15 | public static function init(t:int, r:int):void { 16 | for (var i:int = 0; i < 20; i++) devicetext.push(""); 17 | if (t == 0) { // PC/MAC DESKTOP 18 | devicetext[0] = "BACK - MENU"; 19 | devicetext[1] = "PRESS ACTION TO START"; 20 | devicetext[2] = "ACTION - STAGE SELECT"; 21 | devicetext[3] = "PRESS LEFT AND RIGHT KEYS"; 22 | devicetext[4] = "TO MOVE AROUND THE HEXAGON"; 23 | devicetext[5] = "PRESS ACTION TO CONTINUE"; 24 | devicetext[6] = "PRESS LEFT OR RIGHT TO RETRY"; 25 | devicetext[7] = "BACK - CREDITS"; 26 | devicetext[8] = "BACK - CANCEL"; 27 | devicetext[9] = "PRESS ACTION TO CONFIRM"; 28 | devicetext[10] = "C - CLEAR RECORDS"; 29 | 30 | devicetype = DESKTOP; 31 | deviceresolution = DESKTOP; 32 | }else if (t == 1) { //Mobile 33 | devicetext[0] = "MAIN MENU"; 34 | devicetext[1] = "TAP TO START"; 35 | devicetext[2] = "STAGE SELECT"; 36 | devicetext[3] = "TOUCH THE LEFT AND RIGHT"; 37 | devicetext[4] = "SIDES OF THE SCREEN TO MOVE"; 38 | devicetext[5] = "TAP TO CONTINUE"; 39 | devicetext[6] = "TAP THE SCREEN TO RETRY"; 40 | devicetext[7] = "CREDITS"; 41 | devicetext[8] = "CANCEL"; 42 | devicetext[9] = "TAP TO CONFIRM"; 43 | devicetext[10] = "CLEAR RECORDS"; 44 | 45 | devicetype = MOBILE; 46 | deviceresolution = r; 47 | } 48 | 49 | } 50 | 51 | public static var devicetext:Vector. = new Vector.; 52 | public static var devicetype:int; 53 | 54 | public static var deviceresolution:int; 55 | public static var xres:int, yres:int; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /desktop_version/src/UtilityClass.h: -------------------------------------------------------------------------------- 1 | #ifndef UTILITYCLASS_H 2 | #define UTILITYCLASS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | // always return positive modulo result if modulus is positive 9 | template 10 | N mod(const N &num, const N &mod) { 11 | return (num % mod + mod) % mod; 12 | } 13 | 14 | int ss_toi(std::string _s); 15 | int relativepos(int original, std::string parsethis); 16 | void relativepos(int* original, std::string parsethis); 17 | bool relativebool(bool original, std::string parsethis); 18 | void relativebool(bool* original, std::string parsethis); 19 | 20 | bool is_number(const std::string& s); 21 | 22 | bool parsebool(std::string parsethis); 23 | 24 | bool is_positive_num(const std::string& str, bool hex); 25 | 26 | bool endsWith(const std::string& str, const std::string& suffix); 27 | 28 | std::vector split(const std::string &s, char delim, std::vector &elems); 29 | 30 | std::vector split(const std::string &s, char delim); 31 | 32 | #define INBOUNDS(index, vector) ((int) index >= 0 && (int) index < (int) vector.size()) 33 | #define INBOUNDS_ARR(index, array) ((int) index >= 0 && (int) index < (int) SDL_arraysize(array)) 34 | 35 | #define WHINE_ONCE(message) \ 36 | static bool whine = true; \ 37 | if (whine) \ 38 | { \ 39 | whine = false; \ 40 | puts(message); \ 41 | } 42 | 43 | 44 | //helperClass 45 | class UtilityClass 46 | { 47 | public: 48 | UtilityClass(); 49 | 50 | static std::string String(int _v); 51 | 52 | static std::string GCString(std::vector buttons); 53 | 54 | std::string twodigits(int t); 55 | 56 | std::string timestring(int t); 57 | 58 | std::string number(int _t); 59 | 60 | 61 | static bool intersects( SDL_Rect A, SDL_Rect B ); 62 | 63 | void updateglow(); 64 | 65 | std::string getmusicname(int num); 66 | 67 | int glow = 0; 68 | bool freezeglow = false; 69 | int slowsine = 0; 70 | int glowdir = 0; 71 | int splitseconds[30]; 72 | }; 73 | 74 | extern UtilityClass help; 75 | 76 | #endif /* UTILITYCLASS_H */ 77 | -------------------------------------------------------------------------------- /third_party/androidenv/ndk-bundle/make_standalone_toolchain.py_18.patch: -------------------------------------------------------------------------------- 1 | diff -Naur android-ndk-r18b/build/tools/make_standalone_toolchain.py android-ndk-r18b-new/build/tools/make_standalone_toolchain.py 2 | --- android-ndk-r18b/build/tools/make_standalone_toolchain.py 2018-10-11 12:49:38.000000000 +0200 3 | +++ android-ndk-r18b-new/build/tools/make_standalone_toolchain.py 2018-11-20 21:55:52.689991420 +0100 4 | @@ -30,7 +30,7 @@ 5 | import sys 6 | import tempfile 7 | import textwrap 8 | - 9 | +import subprocess 10 | 11 | THIS_DIR = os.path.realpath(os.path.dirname(__file__)) 12 | NDK_DIR = os.path.realpath(os.path.join(THIS_DIR, '../..')) 13 | @@ -173,6 +173,7 @@ 14 | logger().debug('Copying %s', src_file) 15 | shutil.copy2(src_file, dst_dir) 16 | 17 | + subprocess.check_call(["chmod", "-R", "+w", dst]) 18 | 19 | def make_clang_scripts(install_dir, triple, api, windows): 20 | """Creates Clang wrapper scripts. 21 | @@ -365,6 +366,7 @@ 22 | install_headers = os.path.join(install_sysroot, 'usr/include') 23 | os.makedirs(os.path.dirname(install_headers)) 24 | shutil.copytree(headers, install_headers) 25 | + subprocess.check_call(["chmod", "-R", "+w", install_path]) 26 | 27 | arch_headers = os.path.join(sysroot, 'usr/include', triple) 28 | copy_directory_contents(arch_headers, os.path.join(install_headers)) 29 | @@ -375,6 +377,7 @@ 30 | install_sysroot, 'usr/lib{}'.format(lib_suffix)) 31 | if os.path.exists(lib_path): 32 | shutil.copytree(lib_path, lib_install) 33 | + subprocess.check_call(["chmod", "-R", "+w", install_path]) 34 | 35 | static_lib_path = os.path.join(sysroot, 'usr/lib', triple) 36 | static_lib_install = os.path.join(install_sysroot, 'usr/lib') 37 | @@ -389,6 +392,7 @@ 38 | NDK_DIR, 'prebuilt', 'android-' + arch, 'gdbserver') 39 | gdbserver_install = os.path.join(install_path, 'share', 'gdbserver') 40 | shutil.copytree(gdbserver_path, gdbserver_install) 41 | + subprocess.check_call(["chmod", "-R", "+w", install_path]) 42 | 43 | toolchain_lib_dir = os.path.join(gcc_path, 'lib/gcc', triple) 44 | dirs = os.listdir(toolchain_lib_dir) 45 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lctype.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lctype.h,v 1.12.1.1 2013/04/12 18:48:47 roberto Exp $ 3 | ** 'ctype' functions for Lua 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lctype_h 8 | #define lctype_h 9 | 10 | #include "lua.h" 11 | 12 | 13 | /* 14 | ** WARNING: the functions defined here do not necessarily correspond 15 | ** to the similar functions in the standard C ctype.h. They are 16 | ** optimized for the specific needs of Lua 17 | */ 18 | 19 | #if !defined(LUA_USE_CTYPE) 20 | 21 | #if 'A' == 65 && '0' == 48 22 | /* ASCII case: can use its own tables; faster and fixed */ 23 | #define LUA_USE_CTYPE 0 24 | #else 25 | /* must use standard C ctype */ 26 | #define LUA_USE_CTYPE 1 27 | #endif 28 | 29 | #endif 30 | 31 | 32 | #if !LUA_USE_CTYPE /* { */ 33 | 34 | #include 35 | 36 | #include "llimits.h" 37 | 38 | 39 | #define ALPHABIT 0 40 | #define DIGITBIT 1 41 | #define PRINTBIT 2 42 | #define SPACEBIT 3 43 | #define XDIGITBIT 4 44 | 45 | 46 | #define MASK(B) (1 << (B)) 47 | 48 | 49 | /* 50 | ** add 1 to char to allow index -1 (EOZ) 51 | */ 52 | #define testprop(c,p) (luai_ctype_[(c)+1] & (p)) 53 | 54 | /* 55 | ** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_' 56 | */ 57 | #define lislalpha(c) testprop(c, MASK(ALPHABIT)) 58 | #define lislalnum(c) testprop(c, (MASK(ALPHABIT) | MASK(DIGITBIT))) 59 | #define lisdigit(c) testprop(c, MASK(DIGITBIT)) 60 | #define lisspace(c) testprop(c, MASK(SPACEBIT)) 61 | #define lisprint(c) testprop(c, MASK(PRINTBIT)) 62 | #define lisxdigit(c) testprop(c, MASK(XDIGITBIT)) 63 | 64 | /* 65 | ** this 'ltolower' only works for alphabetic characters 66 | */ 67 | #define ltolower(c) ((c) | ('A' ^ 'a')) 68 | 69 | 70 | /* two more entries for 0 and -1 (EOZ) */ 71 | LUAI_DDEC const lu_byte luai_ctype_[UCHAR_MAX + 2]; 72 | 73 | 74 | #else /* }{ */ 75 | 76 | /* 77 | ** use standard C ctypes 78 | */ 79 | 80 | #include 81 | 82 | 83 | #define lislalpha(c) (isalpha(c) || (c) == '_') 84 | #define lislalnum(c) (isalnum(c) || (c) == '_') 85 | #define lisdigit(c) (isdigit(c)) 86 | #define lisspace(c) (isspace(c)) 87 | #define lisprint(c) (isprint(c)) 88 | #define lisxdigit(c) (isxdigit(c)) 89 | 90 | #define ltolower(c) (tolower(c)) 91 | 92 | #endif /* } */ 93 | 94 | #endif 95 | 96 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/ldo.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ldo.h,v 2.29.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** Stack and Call structure of Lua 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ldo_h 8 | #define ldo_h 9 | 10 | 11 | #include "lobject.h" 12 | #include "lstate.h" 13 | #include "lzio.h" 14 | 15 | 16 | /* 17 | ** Macro to check stack size and grow stack if needed. Parameters 18 | ** 'pre'/'pos' allow the macro to preserve a pointer into the 19 | ** stack across reallocations, doing the work only when needed. 20 | ** 'condmovestack' is used in heavy tests to force a stack reallocation 21 | ** at every check. 22 | */ 23 | #define luaD_checkstackaux(L,n,pre,pos) \ 24 | if (L->stack_last - L->top <= (n)) \ 25 | { pre; luaD_growstack(L, n); pos; } else { condmovestack(L,pre,pos); } 26 | 27 | /* In general, 'pre'/'pos' are empty (nothing to save) */ 28 | #define luaD_checkstack(L,n) luaD_checkstackaux(L,n,(void)0,(void)0) 29 | 30 | 31 | 32 | #define savestack(L,p) ((char *)(p) - (char *)L->stack) 33 | #define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) 34 | 35 | 36 | /* type of protected functions, to be ran by 'runprotected' */ 37 | typedef void (*Pfunc) (lua_State *L, void *ud); 38 | 39 | LUAI_FUNC int luaD_protectedparser (lua_State *L, ZIO *z, const char *name, 40 | const char *mode); 41 | LUAI_FUNC void luaD_hook (lua_State *L, int event, int line); 42 | LUAI_FUNC int luaD_precall (lua_State *L, StkId func, int nresults); 43 | LUAI_FUNC void luaD_call (lua_State *L, StkId func, int nResults); 44 | LUAI_FUNC void luaD_callnoyield (lua_State *L, StkId func, int nResults); 45 | LUAI_FUNC int luaD_pcall (lua_State *L, Pfunc func, void *u, 46 | ptrdiff_t oldtop, ptrdiff_t ef); 47 | LUAI_FUNC int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, 48 | int nres); 49 | LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); 50 | LUAI_FUNC void luaD_growstack (lua_State *L, int n); 51 | LUAI_FUNC void luaD_shrinkstack (lua_State *L); 52 | LUAI_FUNC void luaD_inctop (lua_State *L); 53 | 54 | LUAI_FUNC l_noret luaD_throw (lua_State *L, int errcode); 55 | LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); 56 | 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /third_party/androidenv/generated/system-images-android-wear-cn.nix: -------------------------------------------------------------------------------- 1 | 2 | {fetchurl}: 3 | 4 | { 5 | 6 | 7 | "25".android-wear."armeabi-v7a" = { 8 | name = "system-image-25-android-wear-armeabi-v7a"; 9 | path = "system-images/android-25/android-wear-cn/armeabi-v7a"; 10 | revision = "25-android-wear-armeabi-v7a"; 11 | displayName = "China version of Android Wear ARM EABI v7a System Image"; 12 | archives.all = fetchurl { 13 | 14 | url = 15 | https://dl.google.com/android/repository/sys-img/android-wear-cn/armeabi-v7a-25_r04.zip; 16 | sha1 = "02d7bc86df054d1e89fe5856b3af1d2c142cab41"; 17 | 18 | }; 19 | }; 20 | 21 | 22 | "25".android-wear."x86" = { 23 | name = "system-image-25-android-wear-x86"; 24 | path = "system-images/android-25/android-wear-cn/x86"; 25 | revision = "25-android-wear-x86"; 26 | displayName = "China version of Android Wear Intel x86 Atom System Image"; 27 | archives.all = fetchurl { 28 | 29 | url = 30 | https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-25_r04.zip; 31 | sha1 = "73eab14c7cf2f6941e1fee61e0038ead7a2c7f4d"; 32 | 33 | }; 34 | }; 35 | 36 | 37 | "26".android-wear."x86" = { 38 | name = "system-image-26-android-wear-x86"; 39 | path = "system-images/android-26/android-wear-cn/x86"; 40 | revision = "26-android-wear-x86"; 41 | displayName = "China version of Android Wear Intel x86 Atom System Image"; 42 | archives.all = fetchurl { 43 | 44 | url = 45 | https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-26_r04.zip; 46 | sha1 = "fdc8a313f889a2d6522de1fbc00ee9e13547d096"; 47 | 48 | }; 49 | }; 50 | 51 | 52 | "28".android-wear."x86" = { 53 | name = "system-image-28-android-wear-x86"; 54 | path = "system-images/android-28/android-wear-cn/x86"; 55 | revision = "28-android-wear-x86"; 56 | displayName = "China version of Wear OS Intel x86 Atom System Image"; 57 | archives.all = fetchurl { 58 | 59 | url = 60 | https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-28_r03.zip; 61 | sha1 = "2099d87709c5e064273925dbf2cf1fd081bf0262"; 62 | 63 | }; 64 | }; 65 | 66 | } 67 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/ltable.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ltable.h,v 2.23.1.2 2018/05/24 19:39:05 roberto Exp $ 3 | ** Lua tables (hash) 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ltable_h 8 | #define ltable_h 9 | 10 | #include "lobject.h" 11 | 12 | 13 | #define gnode(t,i) (&(t)->node[i]) 14 | #define gval(n) (&(n)->i_val) 15 | #define gnext(n) ((n)->i_key.nk.next) 16 | 17 | 18 | /* 'const' to avoid wrong writings that can mess up field 'next' */ 19 | #define gkey(n) cast(const TValue*, (&(n)->i_key.tvk)) 20 | 21 | /* 22 | ** writable version of 'gkey'; allows updates to individual fields, 23 | ** but not to the whole (which has incompatible type) 24 | */ 25 | #define wgkey(n) (&(n)->i_key.nk) 26 | 27 | #define invalidateTMcache(t) ((t)->flags = 0) 28 | 29 | 30 | /* true when 't' is using 'dummynode' as its hash part */ 31 | #define isdummy(t) ((t)->lastfree == NULL) 32 | 33 | 34 | /* allocated size for hash nodes */ 35 | #define allocsizenode(t) (isdummy(t) ? 0 : sizenode(t)) 36 | 37 | 38 | /* returns the key, given the value of a table entry */ 39 | #define keyfromval(v) \ 40 | (gkey(cast(Node *, cast(char *, (v)) - offsetof(Node, i_val)))) 41 | 42 | 43 | LUAI_FUNC const TValue *luaH_getint (Table *t, lua_Integer key); 44 | LUAI_FUNC void luaH_setint (lua_State *L, Table *t, lua_Integer key, 45 | TValue *value); 46 | LUAI_FUNC const TValue *luaH_getshortstr (Table *t, TString *key); 47 | LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key); 48 | LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key); 49 | LUAI_FUNC TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key); 50 | LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key); 51 | LUAI_FUNC Table *luaH_new (lua_State *L); 52 | LUAI_FUNC void luaH_resize (lua_State *L, Table *t, unsigned int nasize, 53 | unsigned int nhsize); 54 | LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize); 55 | LUAI_FUNC void luaH_free (lua_State *L, Table *t); 56 | LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); 57 | LUAI_FUNC lua_Unsigned luaH_getn (Table *t); 58 | 59 | 60 | #if defined(LUA_DEBUG) 61 | LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); 62 | LUAI_FUNC int luaH_isdummy (const Table *t); 63 | #endif 64 | 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | VVVVVV Source Code License v1.0 2 | ------- 3 | Last updated on January 7th, 2020. 4 | 5 | This repo contains the source code for VVVVVV, including all level content and text from the game. It does not, however, contain any of the icons, art, graphics or music for the game, which are still under a proprietary license. For personal use, you can find these assets for free in the [Make and Play Edition](https://thelettervsixtim.es/makeandplay/). 6 | 7 | If you are interested in distributing work that falls outside the terms in the licence below, or if you are interested in distributing work that includes using any part of VVVVVV not included in this repo then please get in touch - we can discuss granting a licence for that on a case by case basis. The purpose of making the contents of this repo available is for others to learn from, to inspire new work, and to allow the creation of new tools and modifications for VVVVVV. 8 | 9 | This software available from here is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any claim, damages or other liability arising from the use or in connection with this software. All materials in the repo, with the exception of the contents of the "third_party" directory, are copyright of Terry Cavanagh © 2010-2020. 10 | 11 | Permission is granted to anyone to use this software and to alter it and redistribute it freely, subject to the following restrictions: 12 | 13 | - You may not alter or redistribute this software in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. This includes, but is not limited to, selling altered or unaltered versions of this software, or including advertisements of any kind in altered or unaltered versions of this software. 14 | - The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, you are required to include an acknowledgement in the product that this software is the copyright of Terry Cavanagh and is based on the VVVVVV source code. 15 | - Altered source/binary versions must be plainly marked as such, and must not be misrepresented as being the original software. 16 | - You must not distribute any materials from the game which are not included in this repo unless approved by us in writing. 17 | - This notice may not be removed or altered from any source/binary distribution. 18 | -------------------------------------------------------------------------------- /tools/editors/Final Level Editor/imports/final/x47y54.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 31 | -------------------------------------------------------------------------------- /tools/editors/Final Level Editor/imports/final/x53y50.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/final/x47y54.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/final/x53y50.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x52y57.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 15 15 15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 7 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 8 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 9 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 10 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 12 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 13 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 14 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 15 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 16 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 17 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 18 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 19 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 20 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 21 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 22 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 23 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 24 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 25 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 26 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 27 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 28 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 29 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 30 | 0 31 | -------------------------------------------------------------------------------- /third_party/androidenv/tools/25.nix: -------------------------------------------------------------------------------- 1 | {deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgs_i686, postInstall ? ""}: 2 | 3 | deployAndroidPackage { 4 | name = "androidsdk"; 5 | buildInputs = [ autoPatchelfHook makeWrapper ] 6 | ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXext pkgs.xlibs.libXdamage pkgs.xlibs.libxcb pkgs.xlibs.libXfixes pkgs.xlibs.libXrender pkgs.fontconfig.lib pkgs.freetype pkgs.libGL pkgs.zlib pkgs.ncurses5 pkgs.libpulseaudio pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.fontconfig pkgs_i686.freetype pkgs_i686.zlib ]; 7 | inherit package os; 8 | 9 | patchInstructions = '' 10 | ${lib.optionalString (os == "linux") '' 11 | # Auto patch all binaries 12 | addAutoPatchelfSearchPath $PWD/lib64 13 | addAutoPatchelfSearchPath $PWD/lib64/libstdc++ 14 | addAutoPatchelfSearchPath $PWD/lib64/qt/lib 15 | addAutoPatchelfSearchPath $PWD/lib 16 | addAutoPatchelfSearchPath $PWD/lib/libstdc++ 17 | autoPatchelf . 18 | ''} 19 | 20 | # Wrap all scripts that require JAVA_HOME 21 | for i in bin 22 | do 23 | find $i -maxdepth 1 -type f -executable | while read program 24 | do 25 | if grep -q "JAVA_HOME" $program 26 | then 27 | wrapProgram $PWD/$program --prefix PATH : ${pkgs.jdk8}/bin 28 | fi 29 | done 30 | done 31 | 32 | # Wrap programs that require java 33 | for i in draw9patch jobb lint screenshot2 34 | do 35 | wrapProgram $PWD/$i \ 36 | --prefix PATH : ${pkgs.jdk8}/bin 37 | done 38 | 39 | # Wrap programs that require java and SWT 40 | for i in android ddms hierarchyviewer monitor monkeyrunner traceview uiautomatorviewer 41 | do 42 | wrapProgram $PWD/$i \ 43 | --prefix PATH : ${pkgs.jdk8}/bin \ 44 | --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]} 45 | done 46 | 47 | ${lib.optionalString (os == "linux") '' 48 | wrapProgram $PWD/emulator \ 49 | --prefix PATH : ${pkgs.file}/bin:${pkgs.glxinfo}/bin:${pkgs.pciutils}/bin \ 50 | --set QT_XKB_CONFIG_ROOT ${pkgs.xkeyboard_config}/share/X11/xkb \ 51 | --set QTCOMPOSE ${pkgs.xorg.libX11.out}/share/X11/locale 52 | ''} 53 | 54 | # Patch all script shebangs 55 | patchShebangs . 56 | 57 | cd .. 58 | ${postInstall} 59 | ''; 60 | 61 | meta.licenses = lib.licenses.unfree; 62 | } 63 | -------------------------------------------------------------------------------- /tools/editors/Level Mapping Editor/warpzone/output.txt: -------------------------------------------------------------------------------- 1 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 11 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,10,5,1,9,11,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,11,9,8,6,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,4,9,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,6,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 22 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x55y51.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 8 1 1 1 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 0 0 0 0 0 0 1 1 1 1 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 0 0 0 0 0 0 1 1 1 1 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 0 0 0 0 0 0 1 1 1 1 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 0 0 0 0 0 0 1 1 1 1 26 | 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 0 0 0 0 0 0 1 1 1 1 27 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 28 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 29 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 30 | 1 31 | 0 22 11 224 32 | -------------------------------------------------------------------------------- /tools/editors/Level Mapping Editor/output.txt: -------------------------------------------------------------------------------- 1 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0 11 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,9,12,12,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,6,14,14,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,4,6,11,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,10,14,10,8,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,12,12,12,12,12,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,14,14,16,14,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 22 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x52y51.txt: -------------------------------------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 1 1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 27 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 28 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 29 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 30 | 1 31 | 10 22 11 248 32 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x54y54.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 9 9 9 9 9 9 9 9 9 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 1 1 1 1 1 1 1 1 1 30 | 2 31 | 0 7 11 328 32 | 0 21 11 328 33 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x55y50.txt: -------------------------------------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 1 1 1 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 30 | 1 31 | 0 3 11 296 32 | -------------------------------------------------------------------------------- /third_party/cparse/builtin-features/reservedWords.inc: -------------------------------------------------------------------------------- 1 | 2 | namespace builtin_reservedWords { 3 | 4 | // Literal Tokens: True, False and None: 5 | packToken trueToken = packToken(true); 6 | packToken falseToken = packToken(false); 7 | packToken noneToken = packToken::None(); 8 | 9 | void True(const char* expr, const char** rest, rpnBuilder* data) { 10 | data->handle_token(trueToken->clone()); 11 | } 12 | 13 | void False(const char* expr, const char** rest, rpnBuilder* data) { 14 | data->handle_token(falseToken->clone()); 15 | } 16 | 17 | void None(const char* expr, const char** rest, rpnBuilder* data) { 18 | data->handle_token(noneToken->clone()); 19 | } 20 | 21 | void LineComment(const char* expr, const char** rest, rpnBuilder* data) { 22 | while (*expr && *expr != '\n') ++expr; 23 | *rest = expr; 24 | } 25 | 26 | void SlashStarComment(const char* expr, const char** rest, rpnBuilder* data) { 27 | while (*expr && !(expr[0] == '*' && expr[1] == '/')) ++expr; 28 | if (*expr == '\0') { 29 | throw syntax_error("Unexpected end of file after '/*' comment!"); 30 | } 31 | // Drop the characters `*/`: 32 | expr += 2; 33 | *rest = expr; 34 | } 35 | 36 | void KeywordOperator(const char* expr, const char** rest, rpnBuilder* data) { 37 | // Convert any STuple like `a : 10` to `'a': 10`: 38 | if (data->rpn.back()->type == VAR) { 39 | data->rpn.back()->type = STR; 40 | } 41 | data->handle_op(":"); 42 | } 43 | 44 | void DotOperator(const char* expr, const char** rest, rpnBuilder* data) { 45 | data->handle_op("."); 46 | 47 | while (*expr && isspace(*expr)) ++expr; 48 | 49 | // If it did not find a valid variable name after it: 50 | if (!rpnBuilder::isvarchar(*expr)) { 51 | throw syntax_error("Expected variable name after '.' operator"); 52 | } 53 | 54 | // Parse the variable name and save it as a string: 55 | std::string key = rpnBuilder::parseVar(expr, rest); 56 | data->handle_token(new Token(key, STR)); 57 | } 58 | 59 | struct Startup { 60 | Startup() { 61 | parserMap_t& parser = calculator::Default().parserMap; 62 | parser.add("True", &True); 63 | parser.add("False", &False); 64 | parser.add("None", &None); 65 | parser.add("#", &LineComment); 66 | parser.add("//", &LineComment); 67 | parser.add("/*", &SlashStarComment); 68 | parser.add(":", &KeywordOperator); 69 | parser.add(':', &KeywordOperator); 70 | parser.add(".", &DotOperator); 71 | parser.add('.', &DotOperator); 72 | } 73 | } __CPARSE_STARTUP; 74 | 75 | } // namespace builtin_reservedWords 76 | -------------------------------------------------------------------------------- /tools/editors/Level Mapping Editor/lab/output.txt: -------------------------------------------------------------------------------- 1 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0 11 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,9,12,12,12,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,6,14,14,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,4,6,11,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,10,14,10,8,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,12,12,12,12,12,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,14,14,16,14,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 18 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,10,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 22 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 24 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 25 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 26 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 27 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 29 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x53y50.txt: -------------------------------------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 8 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 1 1 1 49 0 0 0 0 0 0 0 0 0 0 30 | 1 31 | 0 3 11 328 32 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x55y52.txt: -------------------------------------------------------------------------------- 1 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 2 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 3 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 4 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 5 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 6 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 7 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 8 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 9 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 10 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 11 | 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 12 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 13 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 14 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 15 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 16 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 17 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 18 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 19 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 20 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 21 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 22 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 23 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 24 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 25 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 26 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 27 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 28 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 29 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 49 0 0 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 1 1 1 1 30 | 2 31 | 4 8 9 32 | 15 9 10 1 33 | -------------------------------------------------------------------------------- /third_party/lua-5.3.5/src/lctype.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lctype.c,v 1.12.1.1 2017/04/19 17:20:42 roberto Exp $ 3 | ** 'ctype' functions for Lua 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #define lctype_c 8 | #define LUA_CORE 9 | 10 | #include "lprefix.h" 11 | 12 | 13 | #include "lctype.h" 14 | 15 | #if !LUA_USE_CTYPE /* { */ 16 | 17 | #include 18 | 19 | LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = { 20 | 0x00, /* EOZ */ 21 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */ 22 | 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 23 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1. */ 24 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 25 | 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, /* 2. */ 26 | 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 27 | 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /* 3. */ 28 | 0x16, 0x16, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 29 | 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 4. */ 30 | 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 31 | 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 5. */ 32 | 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, 33 | 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 6. */ 34 | 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 35 | 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */ 36 | 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, 37 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8. */ 38 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 39 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9. */ 40 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 41 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* a. */ 42 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 43 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* b. */ 44 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 45 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* c. */ 46 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 47 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* d. */ 48 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 49 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* e. */ 50 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 51 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* f. */ 52 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 53 | }; 54 | 55 | #endif /* } */ 56 | -------------------------------------------------------------------------------- /tools/editors/Screenshot Outputting Map Editor/imports/lab/x52y56.txt: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 49 0 0 0 0 0 50 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 31 | --------------------------------------------------------------------------------