├── .gitmodules ├── res_src ├── open_msx │ ├── tttheme2.mp3 │ ├── moo_redfarn.mp3 │ ├── relax_song.mp3 │ ├── busy_schedule.mp3 │ ├── chemistry_lab.mp3 │ ├── chuggachugga.mp3 │ ├── coconut_run2.mp3 │ ├── harp_harmony.mp3 │ ├── linns_basket.mp3 │ ├── modern_motion.mp3 │ ├── the_fast_route.mp3 │ ├── ultimate_run.mp3 │ ├── wood_whistles.mp3 │ ├── 5432gone_redfarn.mp3 │ ├── flying_scotsman.mp3 │ ├── mighty_giant_run.mp3 │ ├── say_what_redfarn.mp3 │ ├── the_hobo_redfarn.mp3 │ ├── ttsong_iii_imuh3.mp3 │ ├── ttsong_iv_imuh3.mp3 │ ├── be_sharp_bw_redfarn.mp3 │ ├── city_blues_redfarn.mp3 │ ├── midnight_snow_run.mp3 │ ├── mosey_along_redfarn.mp3 │ ├── run_for_your_life.mp3 │ ├── slow_neasy_redfarn.mp3 │ ├── boogi_marabi_redfarn.mp3 │ ├── careless_perc_redfarn.mp3 │ ├── no_work_song_redfarn.mp3 │ ├── big_man_boogie_redfarn.mp3 │ └── train_filled_with_cash.mp3 ├── open_sfx │ ├── osfx_00.mp3 │ ├── osfx_01.mp3 │ ├── osfx_02.mp3 │ ├── osfx_03.mp3 │ ├── osfx_04.mp3 │ ├── osfx_05.mp3 │ ├── osfx_06.mp3 │ ├── osfx_07.mp3 │ ├── osfx_08.mp3 │ ├── osfx_09.mp3 │ ├── osfx_10.mp3 │ ├── osfx_11.mp3 │ ├── osfx_12.mp3 │ ├── osfx_13.mp3 │ ├── osfx_14.mp3 │ ├── osfx_15.mp3 │ ├── osfx_16.mp3 │ ├── osfx_17.mp3 │ ├── osfx_18.mp3 │ ├── osfx_19.mp3 │ ├── osfx_20.mp3 │ ├── osfx_21.mp3 │ ├── osfx_22.mp3 │ ├── osfx_23.mp3 │ ├── osfx_24.mp3 │ ├── osfx_25.mp3 │ ├── osfx_26.mp3 │ ├── osfx_27.mp3 │ ├── osfx_28.mp3 │ ├── osfx_29.mp3 │ ├── osfx_30.mp3 │ ├── osfx_31.mp3 │ ├── osfx_32.mp3 │ ├── osfx_33.mp3 │ ├── osfx_34.mp3 │ ├── osfx_35.mp3 │ ├── osfx_36.mp3 │ ├── osfx_37.mp3 │ ├── osfx_38.mp3 │ ├── osfx_39.mp3 │ ├── osfx_40.mp3 │ ├── osfx_41.mp3 │ ├── osfx_42.mp3 │ ├── osfx_43.mp3 │ ├── osfx_44.mp3 │ ├── osfx_45.mp3 │ ├── osfx_46.mp3 │ ├── osfx_47.mp3 │ ├── osfx_48.mp3 │ ├── osfx_49.mp3 │ ├── osfx_50.mp3 │ ├── osfx_51.mp3 │ ├── osfx_52.mp3 │ ├── osfx_53.mp3 │ ├── osfx_54.mp3 │ ├── osfx_55.mp3 │ ├── osfx_56.mp3 │ ├── osfx_57.mp3 │ ├── osfx_58.mp3 │ ├── osfx_59.mp3 │ ├── osfx_60.mp3 │ ├── osfx_61.mp3 │ ├── osfx_62.mp3 │ ├── osfx_63.mp3 │ ├── osfx_64.mp3 │ ├── osfx_65.mp3 │ ├── osfx_66.mp3 │ ├── osfx_67.mp3 │ ├── osfx_68.mp3 │ ├── osfx_69.mp3 │ ├── osfx_70.mp3 │ ├── osfx_71.mp3 │ └── osfx_72.mp3 └── README.md ├── .gitignore ├── README.md ├── src ├── js-dos-ttd.patch └── emmidi.cpp └── CMakeLists.txt /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "OpenTTD"] 2 | path = OpenTTD 3 | url = https://github.com/OpenTTD/OpenTTD 4 | -------------------------------------------------------------------------------- /res_src/open_msx/tttheme2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/tttheme2.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_00.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_00.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_01.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_02.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_03.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_03.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_04.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_04.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_05.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_05.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_06.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_06.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_07.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_07.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_08.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_08.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_09.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_09.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_10.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_10.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_11.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_11.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_12.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_12.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_13.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_13.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_14.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_14.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_15.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_15.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_16.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_16.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_17.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_17.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_18.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_18.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_19.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_19.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_20.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_20.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_21.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_21.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_22.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_22.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_23.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_23.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_24.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_24.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_25.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_25.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_26.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_26.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_27.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_27.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_28.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_28.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_29.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_29.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_30.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_30.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_31.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_31.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_32.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_32.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_33.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_33.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_34.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_34.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_35.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_35.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_36.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_36.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_37.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_37.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_38.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_38.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_39.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_39.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_40.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_40.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_41.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_41.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_42.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_42.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_43.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_43.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_44.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_44.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_45.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_45.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_46.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_46.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_47.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_47.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_48.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_48.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_49.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_49.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_50.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_50.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_51.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_51.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_52.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_52.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_53.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_53.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_54.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_54.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_55.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_55.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_56.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_56.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_57.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_57.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_58.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_58.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_59.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_59.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_60.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_60.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_61.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_61.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_62.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_62.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_63.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_63.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_64.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_64.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_65.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_65.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_66.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_66.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_67.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_67.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_68.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_68.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_69.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_69.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_70.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_70.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_71.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_71.mp3 -------------------------------------------------------------------------------- /res_src/open_sfx/osfx_72.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_sfx/osfx_72.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/moo_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/moo_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/relax_song.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/relax_song.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/busy_schedule.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/busy_schedule.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/chemistry_lab.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/chemistry_lab.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/chuggachugga.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/chuggachugga.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/coconut_run2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/coconut_run2.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/harp_harmony.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/harp_harmony.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/linns_basket.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/linns_basket.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/modern_motion.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/modern_motion.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/the_fast_route.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/the_fast_route.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/ultimate_run.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/ultimate_run.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/wood_whistles.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/wood_whistles.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/5432gone_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/5432gone_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/flying_scotsman.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/flying_scotsman.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/mighty_giant_run.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/mighty_giant_run.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/say_what_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/say_what_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/the_hobo_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/the_hobo_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/ttsong_iii_imuh3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/ttsong_iii_imuh3.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/ttsong_iv_imuh3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/ttsong_iv_imuh3.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/be_sharp_bw_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/be_sharp_bw_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/city_blues_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/city_blues_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/midnight_snow_run.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/midnight_snow_run.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/mosey_along_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/mosey_along_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/run_for_your_life.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/run_for_your_life.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/slow_neasy_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/slow_neasy_redfarn.mp3 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | build 3 | cmake-build-debug 4 | cmake-build-release 5 | res_linux 6 | res_gen 7 | res_src/baseset 8 | native-build -------------------------------------------------------------------------------- /res_src/open_msx/boogi_marabi_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/boogi_marabi_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/careless_perc_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/careless_perc_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/no_work_song_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/no_work_song_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/big_man_boogie_redfarn.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/big_man_boogie_redfarn.mp3 -------------------------------------------------------------------------------- /res_src/open_msx/train_filled_with_cash.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-dos/js-dos-ttd/HEAD/res_src/open_msx/train_filled_with_cash.mp3 -------------------------------------------------------------------------------- /res_src/README.md: -------------------------------------------------------------------------------- 1 | Download and extract open resources in the `baseset `folder. 2 | At the end content should be like this: 3 | ``` 4 | res_src/baseset/opengfx-0.6.0.tar 5 | ``` 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **The project is archived. 2 | Nowdays orignal game works fine in js-dos https://dos.zone/transport-tycoon-deluxe-1995/ and OpenTTD itself have a support for emscripten.** 3 | 4 | # How to build 5 | 6 | 1. Build `host` version: 7 | ```shell 8 | mkdir build-host 9 | cd build-host 10 | cmake ../OpenTTD 11 | make openttd 12 | ``` 13 | 14 | 2. Build `emscripten` version: 15 | ```shell 16 | mkdir emscripten 17 | cd emscripten 18 | emcmake cmake ../OpenTTD 19 | make 20 | ``` 21 | -------------------------------------------------------------------------------- /src/js-dos-ttd.patch: -------------------------------------------------------------------------------- 1 | From fe4667ad3d752300b018e29ae8f397378d6b8d0d Mon Sep 17 00:00:00 2001 2 | From: Alexander Guryanov 3 | Date: Mon, 22 Mar 2021 13:43:59 +0700 4 | Subject: [PATCH] js-dos-ttd patch 5 | 6 | --- 7 | src/base_media_func.h | 13 ++++++++++--- 8 | 1 file changed, 10 insertions(+), 3 deletions(-) 9 | 10 | diff --git a/src/base_media_func.h b/src/base_media_func.h 11 | index 8491f0e51..e82e6d148 100644 12 | --- a/src/base_media_func.h 13 | +++ b/src/base_media_func.h 14 | @@ -140,9 +140,16 @@ bool BaseSet::FillSetDetails(IniFile *ini, const 15 | this->found_files++; 16 | break; 17 | 18 | - case MD5File::CR_NO_FILE: 19 | - DEBUG(grf, 1, "The file %s specified in %s is missing", filename, full_filename); 20 | - break; 21 | + case MD5File::CR_NO_FILE: { 22 | + // @caiiiycuk: Workaround for async sounds & music 23 | + if (std::string(filename).find(".mid") != std::string::npos) { 24 | + file->check_result = MD5File::CR_MATCH; 25 | + this->valid_files++; 26 | + this->found_files++; 27 | + } else { 28 | + DEBUG(grf, 1, "The file %s specified in %s is missing", filename, full_filename); 29 | + } 30 | + } break; 31 | } 32 | } 33 | 34 | -- 35 | 2.26.2 36 | 37 | -------------------------------------------------------------------------------- /src/emmidi.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by caiiiycuk on 22.03.2021. 3 | // 4 | #include "stdafx.h" 5 | #include "music/extmidi.h" 6 | #include "base_media_base.h" 7 | 8 | static FMusicDriver_ExtMidi iFMusicDriver_ExtMidi; 9 | 10 | #ifdef EMSCRIPTEN 11 | #include 12 | EM_JS(void, start, (), { 13 | Module.audio = document.createElement("audio"); 14 | Module.audio.setAttribute("autoplay", "true"); 15 | 16 | var fixSounds = function(event) { 17 | if (Module.audio.src !== "" && Module.audio.paused) { 18 | Module.audio.play(); 19 | } 20 | }; 21 | 22 | var bindOptions = { 23 | capture: true, 24 | passive: true, 25 | }; 26 | window.addEventListener("touchstart", fixSounds, bindOptions); 27 | window.addEventListener("mousedown", fixSounds, bindOptions); 28 | }); 29 | 30 | EM_JS(void, stop, (), { 31 | Module.audio.src = ""; 32 | }); 33 | 34 | EM_JS(void, play, (const char* ptr), { 35 | var file = UTF8ToString(ptr); 36 | var idx = file.indexOf("/"); 37 | Module.audio.src = "async/open_msx/" + file.substr(idx + 1).replace(".mid", ".mp3"); 38 | }); 39 | 40 | EM_JS(bool, isPlaying, (), { 41 | return Module.audio.src !== "" && !Module.audio.paused; 42 | }); 43 | 44 | EM_JS(void, setVolume, (double volume), { 45 | Module.audio.volume = Math.min(1, volume); 46 | }); 47 | #endif 48 | 49 | const char *MusicDriver_ExtMidi::Start(const StringList &parm) { 50 | #ifdef EMSCRIPTEN 51 | start(); 52 | #endif 53 | return nullptr; 54 | } 55 | 56 | void MusicDriver_ExtMidi::Stop() { 57 | #ifdef EMSCRIPTEN 58 | stop(); 59 | #endif 60 | } 61 | 62 | void MusicDriver_ExtMidi::PlaySong(const MusicSongInfo &song) { 63 | #ifdef EMSCRIPTEN 64 | play(song.filename); 65 | #endif 66 | } 67 | 68 | void MusicDriver_ExtMidi::StopSong() { 69 | #ifdef EMSCRIPTEN 70 | stop(); 71 | #endif 72 | } 73 | 74 | bool MusicDriver_ExtMidi::IsSongPlaying() { 75 | #ifdef EMSCRIPTEN 76 | return isPlaying(); 77 | #endif 78 | return false; 79 | } 80 | 81 | void MusicDriver_ExtMidi::SetVolume(byte vol) { 82 | #ifdef EMSCRIPTEN 83 | setVolume(vol / 128.0); 84 | #endif 85 | } 86 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | set(CMAKE_CXX_STANDARD 17) 4 | set(CMAKE_CXX_STANDARD_REQUIRED YES) 5 | set(CMAKE_CXX_EXTENSIONS NO) 6 | 7 | add_compile_options( 8 | -W 9 | -Wall 10 | -Wcast-qual 11 | -Wextra 12 | -Wsign-compare 13 | -Wundef 14 | -Wpointer-arith 15 | -Wwrite-strings 16 | -Wredundant-decls 17 | -Wformat-security 18 | -Wformat=2 19 | -Winit-self 20 | -Wnon-virtual-dtor 21 | 22 | # Often parameters are unused, which is fine. 23 | -Wno-unused-parameter 24 | # We use 'ABCD' multichar for SaveLoad chunks identifiers 25 | -Wno-multichar 26 | 27 | # Compilers complains about that we break strict-aliasing. 28 | # On most places we don't see how to fix it, and it doesn't 29 | # break anything. So disable strict-aliasing to make the 30 | # compiler all happy. 31 | -fno-strict-aliasing 32 | ) 33 | 34 | if(${EMSCRIPTEN}) 35 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Oz -s USE_SDL=2") 36 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Oz -s USE_SDL=2") 37 | set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ 38 | -Oz -s USE_SDL=2 \ 39 | --emit-symbol-map \ 40 | -s ASSERTIONS=0 \ 41 | -s SAFE_HEAP=0 \ 42 | -s WASM_MEM_MAX=134217728 \ 43 | -s TOTAL_MEMORY=134217728 \ 44 | -s ALLOW_MEMORY_GROWTH=0 \ 45 | -s INVOKE_RUN=1 \ 46 | -s EXPORTED_FUNCTIONS='[\"_main\", \"_em_openttd_add_server\"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"cwrap\"]' \ 47 | -s NO_EXIT_RUNTIME=1 \ 48 | -s FORCE_FILESYSTEM=1 \ 49 | -s DISABLE_EXCEPTION_CATCHING=0 \ 50 | -s ERROR_ON_UNDEFINED_SYMBOLS=1") 51 | 52 | add_definitions(-DNDEBUG) 53 | else() 54 | set(CMAKE_C_COMPILER "/usr/bin/clang") 55 | set(CMAKE_CXX_COMPILER "/usr/bin/clang++") 56 | 57 | add_definitions(-D_DEBUG) 58 | endif() 59 | 60 | 61 | # -D_FORTIFY_SOURCE=2 62 | # -DPERSONAL_DIR=\".openttd\" 63 | # -DGLOBAL_DATA_DIR=\"/usr/local/share/games/openttd\" 64 | # -DWITH_PERSONAL_DIR 65 | # -DWITH_PNG 66 | # -DWITH_ZLIB 67 | add_definitions( 68 | -DNO_THREADS 69 | -DTTD_ENDIAN=TTD_LITTLE_ENDIAN 70 | -DUNIX 71 | -DWITH_SDL2 72 | ) 73 | 74 | include_directories( 75 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src" 76 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/include" 77 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script" 78 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api" 79 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/ai" 80 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/game" 81 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/template" 82 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated" 83 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated/script" 84 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated/script/api" 85 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated/script/api/ai" 86 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated/script/api/game" 87 | "${CMAKE_CURRENT_LIST_DIR}/build-host/generated/script/api/template" 88 | ) 89 | 90 | set(SOURCES_F_EXCEPTIONS 91 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_controller.cpp" 92 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_execmode.cpp" 93 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_object.cpp" 94 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_priorityqueue.cpp" 95 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_testmode.cpp" 96 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_text.cpp" 97 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/script_info.cpp" 98 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/script_instance.cpp" 99 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/script_scanner.cpp" 100 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/squirrel.cpp" 101 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/strgen/strgen_base.cpp" 102 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqapi.cpp" 103 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqcompiler.cpp" 104 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqvm.cpp" 105 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqbaselib.cpp" 106 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqclass.cpp" 107 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqobject.cpp" 108 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqstate.cpp" 109 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_text.cpp" 110 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc/countedobj.cpp" 111 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/oldloader.cpp" 112 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/oldloader_sl.cpp" 113 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/saveload.cpp" 114 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/crashlog.cpp" 115 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/genworld.cpp" 116 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf.cpp" 117 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/spritecache.cpp" 118 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/openttd.cpp" 119 | 120 | # easy to fix 121 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_info.cpp" 122 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_instance.cpp" 123 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_scanner.cpp" 124 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_instance.cpp" 125 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_scanner.cpp" 126 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_info.cpp" 127 | ) 128 | 129 | set(SOURCES_F_NO_EXCEPTIONS 130 | "${CMAKE_CURRENT_LIST_DIR}/build/generated/rev.cpp" 131 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_accounting.cpp" 132 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_admin.cpp" 133 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_airport.cpp" 134 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_base.cpp" 135 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_basestation.cpp" 136 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_bridge.cpp" 137 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_bridgelist.cpp" 138 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_cargo.cpp" 139 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_cargolist.cpp" 140 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_cargomonitor.cpp" 141 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_client.cpp" 142 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_clientlist.cpp" 143 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_company.cpp" 144 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_companymode.cpp" 145 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_date.cpp" 146 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_depotlist.cpp" 147 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_engine.cpp" 148 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_enginelist.cpp" 149 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_error.cpp" 150 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_event.cpp" 151 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_event_types.cpp" 152 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_game.cpp" 153 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_gamesettings.cpp" 154 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_goal.cpp" 155 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_group.cpp" 156 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_grouplist.cpp" 157 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_industry.cpp" 158 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_industrylist.cpp" 159 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_industrytype.cpp" 160 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_industrytypelist.cpp" 161 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_infrastructure.cpp" 162 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_list.cpp" 163 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_log.cpp" 164 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_map.cpp" 165 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_marine.cpp" 166 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_news.cpp" 167 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_order.cpp" 168 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_rail.cpp" 169 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_railtypelist.cpp" 170 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_road.cpp" 171 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_roadtypelist.cpp" 172 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_sign.cpp" 173 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_signlist.cpp" 174 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_station.cpp" 175 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_stationlist.cpp" 176 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_story_page.cpp" 177 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_storypagelist.cpp" 178 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_storypageelementlist.cpp" 179 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_subsidy.cpp" 180 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_subsidylist.cpp" 181 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_tile.cpp" 182 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_tilelist.cpp" 183 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_town.cpp" 184 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_townlist.cpp" 185 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_tunnel.cpp" 186 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_vehicle.cpp" 187 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_vehiclelist.cpp" 188 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_viewport.cpp" 189 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_waypoint.cpp" 190 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_waypointlist.cpp" 191 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/api/script_window.cpp" 192 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/script_config.cpp" 193 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/script_info_dummy.cpp" 194 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/script/squirrel_std.cpp" 195 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/md5/md5.cpp" 196 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp" 197 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp" 198 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqdebug.cpp" 199 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqfuncstate.cpp" 200 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqlexer.cpp" 201 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqmem.cpp" 202 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/3rdparty/squirrel/squirrel/sqtable.cpp" 203 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_config.cpp" 204 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_core.cpp" 205 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ai/ai_gui.cpp" 206 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/32bpp_anim.cpp" 207 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/32bpp_base.cpp" 208 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/32bpp_optimized.cpp" 209 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/32bpp_simple.cpp" 210 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/8bpp_base.cpp" 211 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/8bpp_optimized.cpp" 212 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/8bpp_simple.cpp" 213 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/blitter/null.cpp" 214 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/alloc_func.cpp" 215 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/bitmath_func.cpp" 216 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/geometry_func.cpp" 217 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/math_func.cpp" 218 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/pool_func.cpp" 219 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/core/random_func.cpp" 220 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_config.cpp" 221 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/game/game_core.cpp" 222 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/demands.cpp" 223 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/flowmapper.cpp" 224 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/linkgraph.cpp" 225 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/linkgraph_gui.cpp" 226 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/linkgraphjob.cpp" 227 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/linkgraphschedule.cpp" 228 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/mcf.cpp" 229 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/linkgraph/refresh.cpp" 230 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc/dbg_helpers.cpp" 231 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc/getoptdata.cpp" 232 | # "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/music/extmidi.cpp" 233 | # "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/music/midifile.cpp" 234 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/music/null_m.cpp" 235 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/address.cpp" 236 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/core.cpp" 237 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/host.cpp" 238 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/packet.cpp" 239 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp.cpp" 240 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp_admin.cpp" 241 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp_connect.cpp" 242 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp_content.cpp" 243 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp_game.cpp" 244 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/tcp_http.cpp" 245 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/core/udp.cpp" 246 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network.cpp" 247 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_admin.cpp" 248 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_chat_gui.cpp" 249 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_client.cpp" 250 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_command.cpp" 251 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_content.cpp" 252 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_content_gui.cpp" 253 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_gamelist.cpp" 254 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_gui.cpp" 255 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_server.cpp" 256 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/network/network_udp.cpp" 257 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/os/unix/crashlog_unix.cpp" 258 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/os/unix/unix.cpp" 259 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/npf/aystar.cpp" 260 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/npf/npf.cpp" 261 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/npf/queue.cpp" 262 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/yapf/yapf_rail.cpp" 263 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/yapf/yapf_road.cpp" 264 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pathfinder/yapf/yapf_ship.cpp" 265 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/afterload.cpp" 266 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/ai_sl.cpp" 267 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/airport_sl.cpp" 268 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/animated_tile_sl.cpp" 269 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/autoreplace_sl.cpp" 270 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/cargomonitor_sl.cpp" 271 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/cargopacket_sl.cpp" 272 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/cheat_sl.cpp" 273 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/company_sl.cpp" 274 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/depot_sl.cpp" 275 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/economy_sl.cpp" 276 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/engine_sl.cpp" 277 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/game_sl.cpp" 278 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/gamelog_sl.cpp" 279 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/goal_sl.cpp" 280 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/group_sl.cpp" 281 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/industry_sl.cpp" 282 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/labelmaps_sl.cpp" 283 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/linkgraph_sl.cpp" 284 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/map_sl.cpp" 285 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/misc_sl.cpp" 286 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/newgrf_sl.cpp" 287 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/object_sl.cpp" 288 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/order_sl.cpp" 289 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/signs_sl.cpp" 290 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/station_sl.cpp" 291 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/storage_sl.cpp" 292 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/strings_sl.cpp" 293 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/story_sl.cpp" 294 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/subsidy_sl.cpp" 295 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/town_sl.cpp" 296 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/vehicle_sl.cpp" 297 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/saveload/waypoint_sl.cpp" 298 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/sound/sdl2_s.cpp" 299 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/sound/null_s.cpp" 300 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/spriteloader/grf.cpp" 301 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/video/sdl2_v.cpp" 302 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/video/sdl2_default_v.cpp" 303 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/video/dedicated_v.cpp" 304 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/video/null_v.cpp" 305 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/video/video_driver.cpp" 306 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/widgets/dropdown.cpp" 307 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/aircraft_cmd.cpp" 308 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/aircraft_gui.cpp" 309 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/airport.cpp" 310 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/airport_gui.cpp" 311 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/animated_tile.cpp" 312 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/articulated_vehicles.cpp" 313 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/autoreplace.cpp" 314 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/autoreplace_cmd.cpp" 315 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/autoreplace_gui.cpp" 316 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/base_consist.cpp" 317 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/bmp.cpp" 318 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/bootstrap_gui.cpp" 319 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/bridge_gui.cpp" 320 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/bridge_map.cpp" 321 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/build_vehicle_gui.cpp" 322 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cargoaction.cpp" 323 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cargomonitor.cpp" 324 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cargopacket.cpp" 325 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cargotype.cpp" 326 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cheat.cpp" 327 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cheat_gui.cpp" 328 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/clear_cmd.cpp" 329 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/command.cpp" 330 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/company_cmd.cpp" 331 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/company_gui.cpp" 332 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/console.cpp" 333 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/console_cmds.cpp" 334 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/console_gui.cpp" 335 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/cpu.cpp" 336 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/currency.cpp" 337 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/date.cpp" 338 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/date_gui.cpp" 339 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/debug.cpp" 340 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/dedicated.cpp" 341 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/depot.cpp" 342 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/depot_cmd.cpp" 343 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/depot_gui.cpp" 344 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/disaster_vehicle.cpp" 345 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/dock_gui.cpp" 346 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/driver.cpp" 347 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/economy.cpp" 348 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/effectvehicle.cpp" 349 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/elrail.cpp" 350 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/engine.cpp" 351 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/engine_gui.cpp" 352 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/error_gui.cpp" 353 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/fileio.cpp" 354 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/fios.cpp" 355 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/fios_gui.cpp" 356 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/fontcache.cpp" 357 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/framerate_gui.cpp" 358 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/gamelog.cpp" 359 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/genworld_gui.cpp" 360 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/gfx.cpp" 361 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/gfx_layout.cpp" 362 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/gfxinit.cpp" 363 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/goal.cpp" 364 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/goal_gui.cpp" 365 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/graph_gui.cpp" 366 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ground_vehicle.cpp" 367 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/group_cmd.cpp" 368 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/group_gui.cpp" 369 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/heightmap.cpp" 370 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/highscore.cpp" 371 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/highscore_gui.cpp" 372 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/hotkeys.cpp" 373 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/industry_cmd.cpp" 374 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/industry_gui.cpp" 375 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ini.cpp" 376 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ini_load.cpp" 377 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/intro_gui.cpp" 378 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/landscape.cpp" 379 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/main_gui.cpp" 380 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/map.cpp" 381 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc.cpp" 382 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc_cmd.cpp" 383 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/misc_gui.cpp" 384 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/mixer.cpp" 385 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/music.cpp" 386 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/music_gui.cpp" 387 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_airport.cpp" 388 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_airporttiles.cpp" 389 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_canal.cpp" 390 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_cargo.cpp" 391 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_commons.cpp" 392 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_config.cpp" 393 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_debug_gui.cpp" 394 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_engine.cpp" 395 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_generic.cpp" 396 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_gui.cpp" 397 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_house.cpp" 398 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_industries.cpp" 399 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_industrytiles.cpp" 400 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_object.cpp" 401 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_profiling.cpp" 402 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_railtype.cpp" 403 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_roadtype.cpp" 404 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_sound.cpp" 405 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_spritegroup.cpp" 406 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_station.cpp" 407 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_storage.cpp" 408 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_text.cpp" 409 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_town.cpp" 410 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/newgrf_townname.cpp" 411 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/news_gui.cpp" 412 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/object_cmd.cpp" 413 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/object_gui.cpp" 414 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/order_backup.cpp" 415 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/order_cmd.cpp" 416 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/order_gui.cpp" 417 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/osk_gui.cpp" 418 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/pbs.cpp" 419 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/progress.cpp" 420 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/rail.cpp" 421 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/rail_cmd.cpp" 422 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/rail_gui.cpp" 423 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/road.cpp" 424 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/road_cmd.cpp" 425 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/road_gui.cpp" 426 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/road_map.cpp" 427 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/roadstop.cpp" 428 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/roadveh_cmd.cpp" 429 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/roadveh_gui.cpp" 430 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/screenshot_gui.cpp" 431 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/screenshot.cpp" 432 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/settings.cpp" 433 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/settings_gui.cpp" 434 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ship_cmd.cpp" 435 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/ship_gui.cpp" 436 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/signal.cpp" 437 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/signs.cpp" 438 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/signs_cmd.cpp" 439 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/signs_gui.cpp" 440 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/smallmap_gui.cpp" 441 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/sound.cpp" 442 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/sprite.cpp" 443 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/station.cpp" 444 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/station_cmd.cpp" 445 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/station_gui.cpp" 446 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/statusbar_gui.cpp" 447 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/story.cpp" 448 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/story_gui.cpp" 449 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/string.cpp" 450 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/stringfilter.cpp" 451 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/strings.cpp" 452 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/subsidy.cpp" 453 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/subsidy_gui.cpp" 454 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/terraform_cmd.cpp" 455 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/terraform_gui.cpp" 456 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/textbuf.cpp" 457 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/texteff.cpp" 458 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/textfile_gui.cpp" 459 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tgp.cpp" 460 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tile_map.cpp" 461 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tilearea.cpp" 462 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/timetable_cmd.cpp" 463 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/timetable_gui.cpp" 464 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/toolbar_gui.cpp" 465 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/town_cmd.cpp" 466 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/town_gui.cpp" 467 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/townname.cpp" 468 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/train_cmd.cpp" 469 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/train_gui.cpp" 470 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/transparency_gui.cpp" 471 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tree_cmd.cpp" 472 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tree_gui.cpp" 473 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tunnel_map.cpp" 474 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/tunnelbridge_cmd.cpp" 475 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/vehicle.cpp" 476 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/vehicle_cmd.cpp" 477 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/vehicle_gui.cpp" 478 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/vehiclelist.cpp" 479 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/viewport.cpp" 480 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/viewport_gui.cpp" 481 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/void_cmd.cpp" 482 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/water_cmd.cpp" 483 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/waypoint.cpp" 484 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/waypoint_cmd.cpp" 485 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/waypoint_gui.cpp" 486 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/widget.cpp" 487 | "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/src/window.cpp" 488 | ) 489 | 490 | set(SOURCES_OVERRIDES 491 | "${CMAKE_CURRENT_LIST_DIR}/src/emmidi.cpp" 492 | ) 493 | 494 | if(${EMSCRIPTEN}) 495 | set_source_files_properties(${SOURCES_F_NO_EXCEPTIONS} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -s DISABLE_EXCEPTION_CATCHING=1") 496 | set_source_files_properties(${SOURCES_F_EXCEPTIONS} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -s DISABLE_EXCEPTION_CATCHING=0") 497 | else() 498 | set_source_files_properties(${SOURCES_F_NO_EXCEPTIONS} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions") 499 | set_source_files_properties(${SOURCES_F_EXCEPTIONS} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}") 500 | endif() 501 | 502 | set(SOURCES ${SOURCES_F_NO_EXCEPTIONS} ${SOURCES_F_EXCEPTIONS} ${SOURCES_OVERRIDES}) 503 | 504 | if(${EMSCRIPTEN}) 505 | add_custom_target(data 506 | COMMAND rm -rf "${CMAKE_CURRENT_LIST_DIR}/res_gen" 507 | COMMAND rm -rf "${CMAKE_CURRENT_LIST_DIR}/res_linux" 508 | COMMAND rm -rf "${CMAKE_CURRENT_LIST_DIR}/emscripten/async" 509 | COMMAND mkdir "${CMAKE_CURRENT_LIST_DIR}/res_gen" 510 | COMMAND mkdir "${CMAKE_CURRENT_LIST_DIR}/res_gen/lang" 511 | COMMAND mkdir -p "${CMAKE_CURRENT_LIST_DIR}/emscripten/async" 512 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/res_src/baseset" "${CMAKE_CURRENT_LIST_DIR}/res_gen/baseset" 513 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/bin/ai" "${CMAKE_CURRENT_LIST_DIR}/res_gen/ai" 514 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/OpenTTD/bin/game" "${CMAKE_CURRENT_LIST_DIR}/res_gen/game" 515 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/build/lang/english.lng" "${CMAKE_CURRENT_LIST_DIR}/res_gen/lang/english.lng" 516 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/res_src/open_msx" "${CMAKE_CURRENT_LIST_DIR}/emscripten/async/open_msx" 517 | 518 | COMMAND cp -r "${CMAKE_CURRENT_LIST_DIR}/res_gen" "${CMAKE_CURRENT_LIST_DIR}/res_linux" 519 | COMMAND python "${EMSCRIPTEN_ROOT_PATH}/tools/file_packager.py" bin.data._.js --no-heap-copy --from-emcc --preload "${CMAKE_CURRENT_LIST_DIR}/res_gen@" --js-output=bin.data.js) 520 | 521 | add_library(bin-obj OBJECT ${SOURCES}) 522 | 523 | add_executable(wbin $) 524 | set_target_properties(wbin PROPERTIES SUFFIX .js) 525 | set_target_properties(wbin PROPERTIES LINK_FLAGS "-s WASM=1") 526 | 527 | add_executable(hbin $) 528 | set_target_properties(hbin PROPERTIES SUFFIX .html) 529 | set_target_properties(hbin PROPERTIES LINK_FLAGS "-s WASM=1 --preload-file ${CMAKE_CURRENT_LIST_DIR}/res_gen@") 530 | else() 531 | add_executable(bin ${SOURCES}) 532 | target_link_libraries(bin SDL2) 533 | endif() 534 | --------------------------------------------------------------------------------