gitextract_aj92w71a/ ├── .appveyor.yml ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.yml │ │ └── compile-fail-report.yml │ ├── ci-helper/ │ │ ├── .gitignore │ │ ├── create-dmg.sh │ │ ├── pack-game-macos.sh │ │ ├── pack-game.sh │ │ ├── support/ │ │ │ ├── dmg-license.py │ │ │ ├── dmg-license3.py │ │ │ └── template.applescript │ │ ├── translate_patcher.py │ │ ├── translate_sync_assets.sh │ │ ├── translate_sync_to_stable.sh │ │ └── translate_update.sh │ └── workflows/ │ ├── 16m-ci.yml │ ├── 3ds-ci.yml │ ├── android-ci.yml │ ├── android-fdroid-ci.yml │ ├── blocksds-ci.yml │ ├── emscripten.yml │ ├── flatpak.yml │ ├── homebrew-assets-ci.yml │ ├── macos-ci.yml │ ├── portmaster-ci.yml │ ├── regression-testing-ci.yaml │ ├── switch-ci.yml │ ├── sync-langs.yml │ ├── ubuntu-deb-ci.yml │ ├── ubuntu-tar-ci.yml │ ├── vita-ci.yml │ ├── wii-ci.yml │ ├── wiiu-ci.yml │ └── windows-ci.yml ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── PORTING.md ├── README.ESP.md ├── README.RUS.md ├── README.md ├── android-project/ │ ├── .gitignore │ ├── build.gradle │ ├── build_init.sh │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── thextech/ │ ├── build.gradle │ ├── icon/ │ │ ├── debug/ │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── values/ │ │ │ └── ic_launcher_background.xml │ │ ├── devel/ │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── values/ │ │ │ └── ic_launcher_background.xml │ │ └── main/ │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ └── values/ │ │ └── ic_launcher_background.xml │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ └── buttons/ │ │ └── Credits.txt │ ├── generate_patternPath.sh │ ├── java/ │ │ ├── javautil/ │ │ │ ├── FileUtils.java │ │ │ └── README.md │ │ ├── org/ │ │ │ └── libsdl/ │ │ │ └── app/ │ │ │ ├── HIDDevice.java │ │ │ ├── HIDDeviceBLESteamController.java │ │ │ ├── HIDDeviceManager.java │ │ │ ├── HIDDeviceUSB.java │ │ │ ├── SDL.java │ │ │ ├── SDLActivity.java │ │ │ ├── SDLAudioManager.java │ │ │ ├── SDLControllerManager.java │ │ │ └── SDLSurface.java │ │ └── ru/ │ │ └── wohlsoft/ │ │ └── thextech/ │ │ ├── GameSettings.java │ │ ├── IniFile.java │ │ ├── Launcher.java │ │ ├── OpenFileDialog.java │ │ ├── UIUpdater.java │ │ └── thextechActivity.java │ └── res/ │ ├── layout/ │ │ ├── activity_launcher.xml │ │ └── settings_activity.xml │ ├── values/ │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-bg/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-de/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-es-rES/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-fr/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-hu/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-it/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-ja/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-ko/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-nb-rNO/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-pl/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-pt/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-pt-rBR/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-ru-rRU/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-ta/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-tr/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-uk/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-zh-rCN/ │ │ ├── arrays.xml │ │ └── strings.xml │ ├── values-zh-rTW/ │ │ ├── arrays.xml │ │ └── strings.xml │ └── xml/ │ └── root_preferences.xml ├── changelog.txt ├── cmake/ │ ├── TargetArch.cmake │ ├── build_props.cmake │ ├── ci_linux_gcc_toolchain_arm64.cmake │ ├── ci_linux_gcc_toolchain_armhf.cmake │ ├── ci_linux_gcc_toolchain_x32.cmake │ ├── ci_windows_mingw_toolchain_x32.cmake │ ├── ci_windows_mingw_toolchain_x64.cmake │ ├── ci_windows_msvc_toolchain_arm64.cmake │ ├── deploy.cmake │ ├── git_info.cmake │ ├── git_version.cmake │ ├── git_version_update.cmake │ ├── icon.desktop.in │ ├── library_FreeImage.cmake │ ├── library_FreeType.cmake │ ├── library_HarfBuzz.cmake │ ├── library_SDLMixerX.cmake │ ├── library_discord_rpc.cmake │ ├── library_glew.cmake │ ├── library_luabind.cmake │ ├── library_luajit.cmake │ ├── library_syslibs.cmake │ ├── library_zlib.cmake │ ├── ndk-stl-config.cmake │ ├── overlays-16m.ld │ ├── package_switch.cmake │ ├── package_vita.cmake │ └── vita_buildprops.cmake ├── debian/ │ ├── changelog │ ├── control │ ├── copyright │ └── rules ├── docs/ │ ├── README_3DS.md │ ├── README_DSI.md │ ├── README_SWITCH.md │ ├── README_VITA.ESP.md │ ├── README_VITA.RUS.md │ ├── README_VITA.md │ ├── README_WII.md │ ├── README_WIIU.md │ └── editor.ini ├── fastlane/ │ └── metadata/ │ └── android/ │ ├── en-GB/ │ │ ├── changelogs/ │ │ │ ├── 1030700.txt │ │ │ └── 1030701.txt │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ └── ru/ │ ├── full_description.txt │ └── short_description.txt ├── lib/ │ ├── Allocator/ │ │ ├── Allocator.h │ │ ├── LICENSE │ │ ├── LinearAllocator.cpp │ │ ├── LinearAllocator.h │ │ ├── PoolAllocator.cpp │ │ ├── PoolAllocator.h │ │ ├── README.md │ │ ├── StackLinkedList.h │ │ ├── StackLinkedListImpl.h │ │ ├── Utils.h │ │ ├── linear-allocator.cmake │ │ └── pool-allocator.cmake │ ├── AppPath/ │ │ ├── app_path.cmake │ │ ├── app_path.h │ │ └── private/ │ │ ├── app_path.cpp │ │ ├── app_path_16m.cpp │ │ ├── app_path_3ds.cpp │ │ ├── app_path_android.cpp │ │ ├── app_path_emscripten.cpp │ │ ├── app_path_macos.cpp │ │ ├── app_path_macos_dirs.h │ │ ├── app_path_macos_dirs.m │ │ ├── app_path_old.cpp │ │ ├── app_path_private.h │ │ ├── app_path_skeleton.cpp │ │ ├── app_path_switch.cpp │ │ ├── app_path_unix.cpp │ │ ├── app_path_vita.cpp │ │ ├── app_path_wii.cpp │ │ ├── app_path_wiiu.cpp │ │ └── app_path_win32.cpp │ ├── Archives/ │ │ ├── archives.h │ │ ├── archives_dir.cpp │ │ ├── archives_mount.cpp │ │ ├── archives_priv.h │ │ └── archives_rwops.cpp │ ├── CrashHandler/ │ │ ├── StackWalker/ │ │ │ ├── StackWalker.cmake │ │ │ ├── StackWalker.cpp │ │ │ └── StackWalker.h │ │ ├── backtrace.h.in │ │ ├── crash_handler.cpp │ │ └── crash_handler.h │ ├── FixPointCS/ │ │ ├── Fixed64.h │ │ └── FixedUtil.h │ ├── Graphics/ │ │ ├── PGEString.h │ │ ├── bitmask2rgba.c │ │ ├── bitmask2rgba.cmake │ │ ├── bitmask2rgba.h │ │ ├── graphics_funcs.cpp │ │ ├── graphics_funcs.h │ │ ├── image_size.cpp │ │ ├── image_size.h │ │ ├── size.cpp │ │ ├── size.h │ │ └── xt_qoi.cpp │ ├── Integrator/ │ │ ├── int_discorcrpc.cpp │ │ ├── int_discorcrpc.h │ │ ├── integrator.cpp │ │ └── integrator.h │ ├── InterProcess/ │ │ ├── editor_pipe.cpp │ │ ├── editor_pipe.h │ │ ├── intproc.cpp │ │ └── intproc.h │ ├── Logger/ │ │ ├── logger.cmake │ │ ├── logger.h │ │ ├── logger_level.h │ │ └── private/ │ │ ├── logger.cpp │ │ ├── logger_android.cpp │ │ ├── logger_desktop.cpp │ │ ├── logger_dummy.cpp │ │ ├── logger_emscripten.cpp │ │ ├── logger_min.cpp │ │ ├── logger_private.h │ │ ├── logger_sets.h │ │ ├── logger_vita.cpp │ │ └── logger_wiiu.cpp │ ├── Utf8Main/ │ │ ├── utf8main.cmake │ │ ├── utf8main.h │ │ └── utf8main_win32.cpp │ ├── Utils/ │ │ ├── Utils.cmake │ │ ├── UtilsSDL.cmake │ │ ├── dir_list_ci.cpp │ │ ├── dir_list_ci.h │ │ ├── elapsed_timer.cpp │ │ ├── elapsed_timer.h │ │ ├── files.cpp │ │ ├── files.h │ │ ├── files_ini.h │ │ ├── openUrl.cmake │ │ ├── open_url.cpp │ │ ├── open_url.h │ │ ├── strings.cpp │ │ ├── strings.h │ │ └── vptrlist.h │ ├── fixed_point.cpp │ ├── fixed_point.h │ ├── floating_point.cpp │ ├── floating_point.h │ ├── fmt/ │ │ ├── CMakeLists.txt │ │ ├── CONTRIBUTING.rst │ │ ├── LICENSE.rst │ │ ├── README.rst │ │ ├── README.txt │ │ ├── fmt.cmake │ │ ├── fmt_container.h │ │ ├── fmt_format.cpp │ │ ├── fmt_format.h │ │ ├── fmt_ostream.cpp │ │ ├── fmt_ostream.h │ │ ├── fmt_posix.cpp │ │ ├── fmt_posix.h │ │ ├── fmt_printf.cpp │ │ ├── fmt_printf.h │ │ ├── fmt_qformat.h │ │ ├── fmt_string.h │ │ ├── fmt_time.h │ │ ├── orig/ │ │ │ ├── CMakeLists.txt │ │ │ ├── container.h │ │ │ ├── format.cc │ │ │ ├── format.h │ │ │ ├── ostream.cc │ │ │ ├── ostream.h │ │ │ ├── posix.cc │ │ │ ├── posix.h │ │ │ ├── printf.cc │ │ │ ├── printf.h │ │ │ ├── string.h │ │ │ └── time.h │ │ └── update.sh │ ├── fmt_format_ne.h │ ├── fmt_impl.cpp │ ├── fmt_time_ne.h │ ├── forced_int.h │ ├── gif.h │ ├── gif_writer.h │ ├── json/ │ │ ├── LICENSE.MIT │ │ ├── README.md │ │ ├── json.hpp │ │ └── json_rwops_input.hpp │ ├── md5/ │ │ ├── LICENSE │ │ ├── README │ │ ├── md5.cmake │ │ ├── md5.cpp │ │ ├── md5.h │ │ ├── md5_loc.h │ │ ├── md5tools.cpp │ │ └── md5tools.hpp │ ├── numeric_types.h │ ├── pcg/ │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── pcg_extras.hpp │ │ ├── pcg_random.hpp │ │ └── pcg_uint128.hpp │ ├── pge_cpu_arch.h │ ├── pge_delay.h │ ├── pge_tonearest.h │ ├── pge_video_rec/ │ │ ├── pge-video-rec.cmake │ │ ├── pge_record_gif.cpp │ │ ├── pge_record_vp8.cpp │ │ ├── pge_video_rec.h │ │ └── pge_video_sink.cpp │ ├── sdl_proxy/ │ │ ├── 16m/ │ │ │ └── std_16m.cpp │ │ ├── 3ds/ │ │ │ ├── 3ds-audio-lib.cpp │ │ │ ├── 3ds-audio-lib.h │ │ │ ├── mixer_3ds.cpp │ │ │ └── std_3ds.cpp │ │ ├── _trash/ │ │ │ ├── mixer_mixerx.cpp │ │ │ ├── sdl_assert.h │ │ │ ├── sdl_atomic.h │ │ │ ├── sdl_head.h │ │ │ ├── sdl_stdinc.h │ │ │ └── sdl_timer.h │ │ ├── base/ │ │ │ └── std_base.cpp │ │ ├── mixer.h │ │ ├── null/ │ │ │ ├── mixer_null.cpp │ │ │ ├── sdl_null.h │ │ │ └── std_null.cpp │ │ ├── sdl_assert.h │ │ ├── sdl_atomic.h │ │ ├── sdl_audio.h │ │ ├── sdl_common.h │ │ ├── sdl_filesystem.h │ │ ├── sdl_head.h │ │ ├── sdl_proxy.cmake │ │ ├── sdl_stdinc.h │ │ ├── sdl_timer.h │ │ ├── sdl_types.h │ │ └── wii/ │ │ └── std_wii.cpp │ ├── sdl_proxy_rwops/ │ │ ├── CMakeLists.txt │ │ ├── include/ │ │ │ └── SDL2/ │ │ │ ├── SDL_rwops.h │ │ │ └── _priv_rwops_funcs.h │ │ ├── sdl_proxy_rwops.c │ │ └── sdl_proxy_rwops_file.c │ ├── sorting/ │ │ ├── pdqsort.h │ │ └── tinysort.h │ ├── tclap/ │ │ ├── Arg.h │ │ ├── ArgContainer.h │ │ ├── ArgException.h │ │ ├── ArgGroup.h │ │ ├── ArgTraits.h │ │ ├── CmdLine.h │ │ ├── CmdLineInterface.h │ │ ├── CmdLineOutput.h │ │ ├── Constraint.h │ │ ├── DeferDelete.h │ │ ├── DocBookOutput.h │ │ ├── HelpVisitor.h │ │ ├── IgnoreRestVisitor.h │ │ ├── MultiArg.h │ │ ├── MultiSwitchArg.h │ │ ├── OptionalUnlabeledTracker.h │ │ ├── README │ │ ├── StandardTraits.h │ │ ├── StdOutput.h │ │ ├── SwitchArg.h │ │ ├── UnlabeledMultiArg.h │ │ ├── UnlabeledValueArg.h │ │ ├── ValueArg.h │ │ ├── ValuesConstraint.h │ │ ├── VersionVisitor.h │ │ ├── Visitor.h │ │ ├── sstream.h │ │ └── tclap.cmake │ ├── util.cpp │ └── util.h ├── pge_version.h ├── repo.sh ├── resources/ │ ├── PkgInfo │ ├── _concepts/ │ │ ├── tv-banner-label.xcf │ │ └── tv-banner.xcf │ ├── _dev_scripts/ │ │ ├── snd_id_2_enum.sh │ │ ├── snd_id_sed.sh │ │ └── xserver.py │ ├── emscripten/ │ │ ├── manifest.json.in │ │ ├── shell_minimal.html │ │ └── sw.js.in │ ├── file_icons/ │ │ ├── file_lvl.icns │ │ ├── file_lvlx.icns │ │ ├── file_wld.icns │ │ └── file_wldx.icns │ ├── flatpak/ │ │ ├── appdata.xml.in │ │ └── build.yml │ ├── haiku/ │ │ ├── PackageInfo.in │ │ ├── icon.hvif │ │ └── icon.rdef │ ├── icon/ │ │ ├── make_icns.sh │ │ └── make_icns_linux.sh │ ├── icon_dev_android/ │ │ └── thextech_512.xcf │ ├── languages/ │ │ ├── assets_bg.json │ │ ├── assets_de.json │ │ ├── assets_en.json │ │ ├── assets_es.json │ │ ├── assets_fr.json │ │ ├── assets_hu.json │ │ ├── assets_it.json │ │ ├── assets_ja.json │ │ ├── assets_ko.json │ │ ├── assets_nb-no.json │ │ ├── assets_pl.json │ │ ├── assets_pt-br.json │ │ ├── assets_pt.json │ │ ├── assets_ru.json │ │ ├── assets_ta.json │ │ ├── assets_tr.json │ │ ├── assets_uk.json │ │ ├── assets_zh-cn.json │ │ ├── assets_zh-tw.json │ │ ├── thextech_bg.json │ │ ├── thextech_de.json │ │ ├── thextech_en.json │ │ ├── thextech_es.json │ │ ├── thextech_fr.json │ │ ├── thextech_hu.json │ │ ├── thextech_it.json │ │ ├── thextech_ja.json │ │ ├── thextech_ko.json │ │ ├── thextech_nb-no.json │ │ ├── thextech_pl.json │ │ ├── thextech_pt-br.json │ │ ├── thextech_pt.json │ │ ├── thextech_ru.json │ │ ├── thextech_ta.json │ │ ├── thextech_tr.json │ │ ├── thextech_uk.json │ │ ├── thextech_zh-cn.json │ │ └── thextech_zh-tw.json │ ├── switch/ │ │ ├── Important.txt │ │ └── thextech-logo.xcf │ ├── thextech.icns │ ├── thextech.plist.in │ ├── thextech.plist.tiger.in │ ├── thextech.rc │ ├── tiger/ │ │ ├── TheXTechRun.in │ │ └── thextech.icns │ ├── vita/ │ │ ├── frag.cgf │ │ ├── sce_sys/ │ │ │ └── livearea/ │ │ │ └── contents/ │ │ │ └── template.xml.in │ │ └── vert.cgv │ ├── wii/ │ │ ├── icon.xcf │ │ └── meta.xml.in │ └── wiiu/ │ ├── icon.xcf │ └── meta.xml.in ├── script/ │ ├── CMakeLists.txt │ ├── include/ │ │ └── xtech_lua_main.h │ └── src/ │ └── xtech_lua_main.cpp ├── src/ │ ├── blk_id.h │ ├── blocks.cpp │ ├── blocks.h │ ├── capabilities.cpp │ ├── capabilities.h │ ├── change_res.cpp │ ├── change_res.h │ ├── cmd_line_setup.h │ ├── collision.cpp │ ├── collision.h │ ├── compat.cpp │ ├── compat.h │ ├── config/ │ │ ├── config_base.cpp │ │ ├── config_base.hpp │ │ ├── config_hooks.cpp │ │ ├── config_hooks.h │ │ ├── config_impl.hpp │ │ ├── config_legacy_compat.cpp │ │ └── config_main.cpp │ ├── config.h │ ├── control/ │ │ ├── con_control.h │ │ ├── controls.cpp │ │ ├── controls_methods.h │ │ ├── controls_strings.h │ │ ├── duplicate.cpp │ │ ├── duplicate.h │ │ ├── input_16m.cpp │ │ ├── input_16m.h │ │ ├── input_3ds.cpp │ │ ├── input_3ds.h │ │ ├── input_wii.cpp │ │ ├── input_wii.h │ │ ├── input_wii_gc.cpp │ │ ├── input_wii_gc.h │ │ ├── joystick.cpp │ │ ├── joystick.h │ │ ├── keyboard.cpp │ │ ├── keyboard.h │ │ ├── touchscreen.cpp │ │ ├── touchscreen.h │ │ └── touchscreen.txt │ ├── control_types.h │ ├── controls.h │ ├── custom.cpp │ ├── custom.h │ ├── draw_planes.h │ ├── editor/ │ │ ├── editor.cpp │ │ ├── editor_custom.cpp │ │ ├── editor_custom.h │ │ ├── editor_strings.cpp │ │ ├── editor_strings.h │ │ ├── magic_block.cpp │ │ ├── magic_block.h │ │ ├── new_editor.cpp │ │ ├── new_editor.h │ │ ├── write_common.cpp │ │ ├── write_common.h │ │ ├── write_level.cpp │ │ ├── write_level.h │ │ ├── write_world.cpp │ │ └── write_world.h │ ├── editor.h │ ├── eff_id.h │ ├── effect.cpp │ ├── effect.h │ ├── fontman/ │ │ ├── crop_info.h │ │ ├── font_engine_base.h │ │ ├── font_manager.cpp │ │ ├── font_manager.h │ │ ├── font_manager_private.cpp │ │ ├── font_manager_private.h │ │ ├── hardcoded_font.cpp │ │ ├── hardcoded_font.h │ │ ├── legacy_font.cpp │ │ ├── legacy_font.h │ │ ├── raster_font.cpp │ │ ├── raster_font.h │ │ ├── ttf_font.cpp │ │ ├── ttf_font.h │ │ └── utf8_helpers.cpp │ ├── frame_timer.cpp │ ├── frame_timer.h │ ├── frm_main.cpp │ ├── frm_main.h │ ├── game_main.cpp │ ├── game_main.h │ ├── gfx.cpp │ ├── gfx.h │ ├── global_constants.h │ ├── global_dirs.cpp │ ├── global_dirs.h │ ├── global_strings.cpp │ ├── global_strings.h │ ├── globals.cpp │ ├── globals.h │ ├── graphics/ │ │ ├── gfx_background.cpp │ │ ├── gfx_camera.cpp │ │ ├── gfx_camera.h │ │ ├── gfx_credits.cpp │ │ ├── gfx_draw_player.cpp │ │ ├── gfx_editor.cpp │ │ ├── gfx_enter_screen.cpp │ │ ├── gfx_frame.cpp │ │ ├── gfx_frame.h │ │ ├── gfx_hud.cpp │ │ ├── gfx_keyhole.cpp │ │ ├── gfx_keyhole.h │ │ ├── gfx_marquee.cpp │ │ ├── gfx_marquee.h │ │ ├── gfx_message.cpp │ │ ├── gfx_print.cpp │ │ ├── gfx_screen.cpp │ │ ├── gfx_special_frames.cpp │ │ ├── gfx_special_frames.h │ │ ├── gfx_update.cpp │ │ ├── gfx_update.h │ │ ├── gfx_update2.cpp │ │ ├── gfx_world.cpp │ │ └── gfx_world.h │ ├── graphics.cpp │ ├── graphics.h │ ├── layers.cpp │ ├── layers.h │ ├── load_gfx.cpp │ ├── load_gfx.h │ ├── location.h │ ├── logic/ │ │ ├── object_graph.cpp │ │ └── object_graph.h │ ├── main/ │ │ ├── asset_pack.cpp │ │ ├── asset_pack.h │ │ ├── block_table.cpp │ │ ├── block_table.h │ │ ├── block_table.hpp │ │ ├── cheat_code.cpp │ │ ├── cheat_code.h │ │ ├── client.cpp │ │ ├── client.h │ │ ├── client_methods.cpp │ │ ├── client_methods.h │ │ ├── game_globals.h │ │ ├── game_info.cpp │ │ ├── game_info.h │ │ ├── game_loop.cpp │ │ ├── game_loop_interrupt.h │ │ ├── game_save.cpp │ │ ├── game_strings.cpp │ │ ├── game_strings.h │ │ ├── gameplay_timer.cpp │ │ ├── gameplay_timer.h │ │ ├── hints.cpp │ │ ├── hints.h │ │ ├── level_file.cpp │ │ ├── level_file.h │ │ ├── level_medals.cpp │ │ ├── level_medals.h │ │ ├── level_save_info.cpp │ │ ├── level_save_info.h │ │ ├── main_config.cpp │ │ ├── menu_controls.cpp │ │ ├── menu_controls.h │ │ ├── menu_loop.cpp │ │ ├── menu_main.cpp │ │ ├── menu_main.h │ │ ├── outro_loop.cpp │ │ ├── outro_loop.h │ │ ├── player_frames.cpp │ │ ├── record.cpp │ │ ├── record.h │ │ ├── screen_asset_pack.cpp │ │ ├── screen_asset_pack.h │ │ ├── screen_connect.cpp │ │ ├── screen_connect.h │ │ ├── screen_content.cpp │ │ ├── screen_content.h │ │ ├── screen_options.cpp │ │ ├── screen_options.h │ │ ├── screen_pause.cpp │ │ ├── screen_pause.h │ │ ├── screen_progress.cpp │ │ ├── screen_progress.h │ │ ├── screen_prompt.cpp │ │ ├── screen_prompt.h │ │ ├── screen_quickreconnect.cpp │ │ ├── screen_quickreconnect.h │ │ ├── screen_textentry.cpp │ │ ├── screen_textentry.h │ │ ├── setup_physics.cpp │ │ ├── setup_vars.cpp │ │ ├── speedrunner.cpp │ │ ├── speedrunner.h │ │ ├── translate/ │ │ │ ├── tr_level.h │ │ │ ├── tr_script.h │ │ │ ├── tr_title.h │ │ │ └── tr_world.h │ │ ├── translate.cpp │ │ ├── translate.h │ │ ├── translate_episode.cpp │ │ ├── translate_episode.h │ │ ├── trees.cpp │ │ ├── trees.h │ │ ├── world_file.cpp │ │ ├── world_file.h │ │ ├── world_globals.h │ │ └── world_loop.cpp │ ├── main.cpp │ ├── message.cpp │ ├── message.h │ ├── npc/ │ │ ├── npc_activation.cpp │ │ ├── npc_activation.h │ │ ├── npc_bonus.cpp │ │ ├── npc_cockpit_bits.h │ │ ├── npc_frames.cpp │ │ ├── npc_hit.cpp │ │ ├── npc_kill.cpp │ │ ├── npc_queues.cpp │ │ ├── npc_queues.h │ │ ├── npc_update/ │ │ │ ├── npc_block_logic.cpp │ │ │ ├── npc_collide.cpp │ │ │ ├── npc_effects.cpp │ │ │ ├── npc_generator.cpp │ │ │ ├── npc_movement_logic.cpp │ │ │ ├── npc_special_maybe_held.cpp │ │ │ ├── npc_update_priv.h │ │ │ └── npc_walking_logic.cpp │ │ ├── npc_update.cpp │ │ ├── safe_set.hpp │ │ ├── section_overlap.cpp │ │ └── section_overlap.h │ ├── npc.cpp │ ├── npc.h │ ├── npc_constant_traits.h │ ├── npc_effect.h │ ├── npc_id.h │ ├── npc_special_data.h │ ├── npc_traits.h │ ├── phys_env.cpp │ ├── phys_env.h │ ├── phys_id.h │ ├── pinched_info.h │ ├── player/ │ │ ├── player_action_logic.cpp │ │ ├── player_block_logic.cpp │ │ ├── player_char5_logic.cpp │ │ ├── player_death_logic.cpp │ │ ├── player_effect.h │ │ ├── player_fairy_logic.cpp │ │ ├── player_movement_logic.cpp │ │ ├── player_npc_logic.cpp │ │ ├── player_pinched_logic.cpp │ │ ├── player_screen_logic.cpp │ │ ├── player_update.cpp │ │ ├── player_update_priv.h │ │ ├── player_vehicle_logic.cpp │ │ ├── player_vine_logic.cpp │ │ └── player_warp_logic.cpp │ ├── player.cpp │ ├── player.h │ ├── pseudo_vb.h │ ├── rand.cpp │ ├── rand.h │ ├── range_arr.hpp │ ├── ref_type.h │ ├── saved_layers.cpp │ ├── saved_layers.h │ ├── screen.cpp │ ├── screen.h │ ├── screen_fader.cpp │ ├── screen_fader.h │ ├── script/ │ │ ├── luau/ │ │ │ ├── test.cpp │ │ │ └── test.h │ │ ├── luna/ │ │ │ ├── autocode.cpp │ │ │ ├── autocode.h │ │ │ ├── autocode_manager.cpp │ │ │ ├── autocode_manager.h │ │ │ ├── csprite.cpp │ │ │ ├── csprite.h │ │ │ ├── hitbox.cpp │ │ │ ├── hitbox.h │ │ │ ├── levels/ │ │ │ │ ├── Docopoper-AbstractAssault.cpp │ │ │ │ ├── Docopoper-AbstractAssault.h │ │ │ │ ├── Docopoper-Calleoca.cpp │ │ │ │ ├── Docopoper-Calleoca.h │ │ │ │ ├── Docopoper-TheFloorisLava.cpp │ │ │ │ ├── Docopoper-TheFloorisLava.h │ │ │ │ ├── KilArmoryCode.cpp │ │ │ │ ├── KilArmoryCode.h │ │ │ │ ├── README.txt │ │ │ │ ├── SAJewers-QraestoliaCaverns.cpp │ │ │ │ ├── SAJewers-QraestoliaCaverns.h │ │ │ │ ├── SAJewers-Snowboardin.cpp │ │ │ │ ├── SAJewers-Snowboardin.h │ │ │ │ ├── Talkhaus-Science_Final_Battle.cpp │ │ │ │ └── Talkhaus-Science_Final_Battle.h │ │ │ ├── luna.cpp │ │ │ ├── luna.h │ │ │ ├── lunablock.cpp │ │ │ ├── lunablock.h │ │ │ ├── lunacounter.cpp │ │ │ ├── lunacounter.h │ │ │ ├── lunacounter_record.cpp │ │ │ ├── lunacounter_record.h │ │ │ ├── lunacounter_util.h │ │ │ ├── lunadefs.h │ │ │ ├── lunaglobals.cpp │ │ │ ├── lunaimgbox.cpp │ │ │ ├── lunaimgbox.h │ │ │ ├── lunainput.cpp │ │ │ ├── lunainput.h │ │ │ ├── lunalayer.cpp │ │ │ ├── lunalayer.h │ │ │ ├── lunalevel.cpp │ │ │ ├── lunalevel.h │ │ │ ├── lunalevels.cpp │ │ │ ├── lunalevels.h │ │ │ ├── lunamisc.cpp │ │ │ ├── lunamisc.h │ │ │ ├── lunanpc.cpp │ │ │ ├── lunanpc.h │ │ │ ├── lunaplayer.cpp │ │ │ ├── lunaplayer.h │ │ │ ├── lunarender.cpp │ │ │ ├── lunarender.h │ │ │ ├── lunaspriteman.cpp │ │ │ ├── lunaspriteman.h │ │ │ ├── lunavarbank.cpp │ │ │ ├── lunavarbank.h │ │ │ ├── mememu.cpp │ │ │ ├── mememu.h │ │ │ ├── renderop.h │ │ │ ├── renderop_bitmap.cpp │ │ │ ├── renderop_bitmap.h │ │ │ ├── renderop_effect.cpp │ │ │ ├── renderop_effect.h │ │ │ ├── renderop_rect.cpp │ │ │ ├── renderop_rect.h │ │ │ ├── renderop_string.cpp │ │ │ ├── renderop_string.h │ │ │ ├── sprite_component.cpp │ │ │ ├── sprite_component.h │ │ │ ├── sprite_funcs.cpp │ │ │ └── sprite_funcs.h │ │ ├── msg_macros.cpp │ │ ├── msg_macros.h │ │ ├── msg_preprocessor.cpp │ │ └── msg_preprocessor.h │ ├── sorting.cpp │ ├── sorting.h │ ├── sound/ │ │ ├── fx/ │ │ │ ├── fx_common.hpp │ │ │ ├── fx_format.h │ │ │ ├── reverb.cpp │ │ │ ├── reverb.h │ │ │ ├── spc_echo.cpp │ │ │ └── spc_echo.h │ │ ├── snd-src/ │ │ │ ├── message.mid │ │ │ └── sm-glass.mid │ │ ├── sound_msgsnd.cpp │ │ └── sound_msgsnd.h │ ├── sound.cpp │ ├── sound.h │ ├── sound_spatial.cpp │ ├── sound_thread.cpp │ ├── sound_thread.h │ ├── std_picture.cpp │ ├── std_picture.h │ ├── video.h │ └── xt_color.h ├── test/ │ ├── CI-tests.py │ ├── CMakeLists.txt │ ├── common/ │ │ ├── catch_amalgamated.cpp │ │ └── catch_amalgamated.hpp │ ├── levels/ │ │ ├── Beech kick 1.lvl │ │ ├── Beech kick 2.lvl │ │ ├── Conveyor hell.lvl │ │ ├── Exits test.lvl │ │ ├── Fall test.lvl │ │ ├── Fence climb Move.lvl │ │ ├── Fence climb.lvl │ │ ├── Player clip - min.lvl │ │ ├── Player clip.lvl │ │ ├── Player through block.lvl │ │ ├── Pockey test.lvl │ │ ├── Raft ride.lvl │ │ ├── Shelf surf.lvl │ │ ├── Shell on spring.lvl │ │ ├── Skull raft 2.lvl │ │ ├── Slope test.lvl │ │ ├── Veggies shoot.lvl │ │ ├── compat.ini │ │ └── doors test.lvl │ ├── test_msg_macro/ │ │ ├── CMakeLists.txt │ │ └── test_msg_macro.cpp │ └── worlds/ │ └── speedrun-unit-test/ │ ├── unit-test.lvlx │ └── unit-test.wldx ├── utils/ │ ├── convertkit/ │ │ ├── GIFs2PNG/ │ │ │ ├── CMakeLists.txt │ │ │ ├── _resources/ │ │ │ │ ├── cat_gif2png/ │ │ │ │ │ └── make_icns.sh │ │ │ │ ├── cat_gif2png.icns │ │ │ │ ├── gifs2png.qrc │ │ │ │ └── gifs2png.rc │ │ │ ├── common_features/ │ │ │ │ ├── config_manager.cpp │ │ │ │ └── config_manager.h │ │ │ ├── gifs2png.cpp │ │ │ ├── version.cmake │ │ │ └── version.h │ │ ├── assets-convert-homebrew.py │ │ ├── audio_convert_16m.py │ │ ├── convert_plr.py │ │ ├── dist/ │ │ │ ├── gameinfo.ini │ │ │ ├── gfx-convert-lin.sh │ │ │ ├── gfx-convert-win.cmd │ │ │ ├── music.ini │ │ │ ├── sounds.ini │ │ │ └── thextech.ini │ │ ├── exe2ui/ │ │ │ ├── exe2ui.c │ │ │ └── exe2ui_build.sh │ │ ├── gfx-convert-16m.py │ │ ├── gfx-convert-3ds.py │ │ └── gfx-convert-wii.py │ ├── submodule-update.sh │ └── update-copyright.sh ├── version.cmake └── version.h