From 5ed1329d2ede44cb269f9da5e9b08486d567896f Mon Sep 17 00:00:00 2001 From: douwe Date: Tue, 12 Aug 2025 23:56:10 +0200 Subject: [PATCH] Basic setup for Cpp based screeping. --- .gitmodules | 6 + .vscode/settings.json | 13 + CMakeCache.txt | 369 ++++++++++ CMakeFiles/3.28.3/CMakeCXXCompiler.cmake | 85 +++ CMakeFiles/3.28.3/CMakeSystem.cmake | 15 + CMakeFiles/CMakeConfigureLog.yaml | 12 + CMakeFiles/CMakeDirectoryInformation.cmake | 16 + CMakeFiles/Makefile.cmake | 44 ++ CMakeFiles/Makefile2 | 155 +++++ CMakeFiles/TargetDirectories.txt | 6 + CMakeFiles/app.dir/DependInfo.cmake | 24 + CMakeFiles/app.dir/build.make | 135 ++++ CMakeFiles/app.dir/cmake_clean.cmake | 13 + CMakeFiles/app.dir/compiler_depend.internal | 280 ++++++++ CMakeFiles/app.dir/compiler_depend.make | 636 ++++++++++++++++++ CMakeFiles/app.dir/compiler_depend.ts | 2 + CMakeFiles/app.dir/depend.make | 2 + CMakeFiles/app.dir/flags.make | 10 + CMakeFiles/app.dir/includes_CXX.rsp | 1 + CMakeFiles/app.dir/link.txt | 1 + CMakeFiles/app.dir/linkLibs.rsp | 1 + CMakeFiles/app.dir/objects1.rsp | 1 + CMakeFiles/app.dir/progress.make | 4 + CMakeFiles/app.dir/src/loop.cpp.o | Bin 0 -> 38423 bytes CMakeFiles/app.dir/src/loop.cpp.o.d | 178 +++++ CMakeFiles/app.dir/src/spawn.cpp.o | Bin 0 -> 38107 bytes CMakeFiles/app.dir/src/spawn.cpp.o.d | 97 +++ CMakeFiles/app.dir/src/structures/spawn.cpp.o | Bin 0 -> 37500 bytes .../app.dir/src/structures/spawn.cpp.o.d | 92 +++ CMakeFiles/cmake.check_cache | 1 + CMakeFiles/progress.marks | 1 + CMakeLists.txt | 39 ++ Commands.js | 61 -- CreepClass.js | 45 -- JobBuilder.js | 94 --- JobCleaner.js | 81 --- JobMiner.js | 25 - JobSupplier.js | 90 --- JobUpgrader.js | 28 - Makefile | 222 ++++++ Math.js | 7 - RoomClass.js | 44 -- Structure.js | 21 - StructureSpawnClass.js | 64 -- app.js | 22 + app.wasm | Bin 0 -> 299357 bytes cmake_install.cmake | 54 ++ dist/app_loader.js | 22 + dist/app_module.wasm | Bin 0 -> 299357 bytes dist/main.js | 14 + dist/wasm_loader.js | 24 + emsdk | 1 + include/structures/spawn.hpp | 10 + js/main.js | 14 + js/wasm_loader.js | 24 + main.js | 44 -- running notes.txt | 15 + screepsxx | 1 + src/loop.cpp | 29 + src/spawn.cpp | 18 + 60 files changed, 2709 insertions(+), 604 deletions(-) create mode 100644 .gitmodules create mode 100644 CMakeCache.txt create mode 100644 CMakeFiles/3.28.3/CMakeCXXCompiler.cmake create mode 100644 CMakeFiles/3.28.3/CMakeSystem.cmake create mode 100644 CMakeFiles/CMakeConfigureLog.yaml create mode 100644 CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 CMakeFiles/Makefile.cmake create mode 100644 CMakeFiles/Makefile2 create mode 100644 CMakeFiles/TargetDirectories.txt create mode 100644 CMakeFiles/app.dir/DependInfo.cmake create mode 100644 CMakeFiles/app.dir/build.make create mode 100644 CMakeFiles/app.dir/cmake_clean.cmake create mode 100644 CMakeFiles/app.dir/compiler_depend.internal create mode 100644 CMakeFiles/app.dir/compiler_depend.make create mode 100644 CMakeFiles/app.dir/compiler_depend.ts create mode 100644 CMakeFiles/app.dir/depend.make create mode 100644 CMakeFiles/app.dir/flags.make create mode 100644 CMakeFiles/app.dir/includes_CXX.rsp create mode 100644 CMakeFiles/app.dir/link.txt create mode 100644 CMakeFiles/app.dir/linkLibs.rsp create mode 100644 CMakeFiles/app.dir/objects1.rsp create mode 100644 CMakeFiles/app.dir/progress.make create mode 100644 CMakeFiles/app.dir/src/loop.cpp.o create mode 100644 CMakeFiles/app.dir/src/loop.cpp.o.d create mode 100644 CMakeFiles/app.dir/src/spawn.cpp.o create mode 100644 CMakeFiles/app.dir/src/spawn.cpp.o.d create mode 100644 CMakeFiles/app.dir/src/structures/spawn.cpp.o create mode 100644 CMakeFiles/app.dir/src/structures/spawn.cpp.o.d create mode 100644 CMakeFiles/cmake.check_cache create mode 100644 CMakeFiles/progress.marks create mode 100644 CMakeLists.txt delete mode 100644 Commands.js delete mode 100644 CreepClass.js delete mode 100644 JobBuilder.js delete mode 100644 JobCleaner.js delete mode 100644 JobMiner.js delete mode 100644 JobSupplier.js delete mode 100644 JobUpgrader.js create mode 100644 Makefile delete mode 100644 Math.js delete mode 100644 RoomClass.js delete mode 100644 Structure.js delete mode 100644 StructureSpawnClass.js create mode 100644 app.js create mode 100644 app.wasm create mode 100644 cmake_install.cmake create mode 100644 dist/app_loader.js create mode 100644 dist/app_module.wasm create mode 100644 dist/main.js create mode 100644 dist/wasm_loader.js create mode 160000 emsdk create mode 100644 include/structures/spawn.hpp create mode 100644 js/main.js create mode 100644 js/wasm_loader.js delete mode 100644 main.js create mode 100644 running notes.txt create mode 160000 screepsxx create mode 100644 src/loop.cpp create mode 100644 src/spawn.cpp diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..34e391c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "emsdk"] + path = emsdk + url = git@github.com:emscripten-core/emsdk.git +[submodule "screepsxx"] + path = screepsxx + url = git@github.com:DouweRavers/screepsxx.git diff --git a/.vscode/settings.json b/.vscode/settings.json index 44addcb..91367a8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,18 @@ ".*": true, "LICENSE": true, "*.md": true + }, + "files.associations": { + "__bit_reference": "cpp", + "__hash_table": "cpp", + "__string": "cpp", + "__tree": "cpp", + "algorithm": "cpp", + "map": "cpp", + "set": "cpp", + "string": "cpp", + "string_view": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp" } } \ No newline at end of file diff --git a/CMakeCache.txt b/CMakeCache.txt new file mode 100644 index 0000000..80863bb --- /dev/null +++ b/CMakeCache.txt @@ -0,0 +1,369 @@ +# This is the CMakeCache file. +# For build in directory: /home/douwe/Projects/Screeps +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Emscripten ar +CMAKE_AR:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//Path to the emulator for the target system. +CMAKE_CROSSCOMPILING_EMULATOR:FILEPATH=/usr/bin/nodejs + +//Emscripten ar +CMAKE_CXX_COMPILER_AR:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emar + +//`clang-scan-deps` dependency scanner +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-NOTFOUND + +//Emscripten ranlib +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emranlib + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Emscripten-overridden CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-DNDEBUG -Os + +//Emscripten-overridden CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -O2 + +//Emscripten-overridden CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 + +//Emscripten ar +CMAKE_C_COMPILER_AR:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emar + +//Emscripten ranlib +CMAKE_C_COMPILER_RANLIB:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emranlib + +//Emscripten-overridden CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL:STRING=-DNDEBUG -Os + +//Emscripten-overridden CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -O2 + +//Emscripten-overridden CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=-Os + +//Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=-O2 + +//Emscripten-overridden CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=-O2 -g + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/douwe/Projects/Screeps/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=-Os + +//Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=-O2 + +//Emscripten-overridden CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=-O2 -g + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=example + +//Emscripten ranlib +CMAKE_RANLIB:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=-Os + +//Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=-O2 + +//Emscripten-overridden CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=-O2 -g + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//If true, we are targeting Emscripten output. +EMSCRIPTEN:BOOL=1 + +//Force C/C++ compiler +EMSCRIPTEN_FORCE_COMPILERS:BOOL=ON + +//If set, static library targets generate LLVM bitcode files (.bc). +// If disabled (default), UNIX ar archives (.a) are generated. +EMSCRIPTEN_GENERATE_BITCODE_STATIC_LIBRARIES:BOOL=OFF + +//Path to a program. +NODE_JS_EXECUTABLE:FILEPATH=/usr/bin/nodejs + +//Enable precompiled headers +SCREEPSXX_ENABLE_PCH:BOOL=ON + +//Value Computed by CMake +example_BINARY_DIR:STATIC=/home/douwe/Projects/Screeps + +//Value Computed by CMake +example_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +example_SOURCE_DIR:STATIC=/home/douwe/Projects/Screeps + +//Value Computed by CMake +screepsxx_BINARY_DIR:STATIC=/home/douwe/Projects/Screeps/screepsxx + +//Value Computed by CMake +screepsxx_IS_TOP_LEVEL:STATIC=OFF + +//Value Computed by CMake +screepsxx_SOURCE_DIR:STATIC=/home/douwe/Projects/Screeps/screepsxx + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/douwe/Projects/Screeps +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=28 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS +CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/douwe/Projects/Screeps +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.28 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake b/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..886e344 --- /dev/null +++ b/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake @@ -0,0 +1,85 @@ +set(CMAKE_CXX_COMPILER "/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "12.0.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") +set(CMAKE_CXX23_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "emscripten") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emar") +set(CMAKE_CXX_COMPILER_AR "/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emar") +set(CMAKE_RANLIB "/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/emranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED ) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "") +set(CMAKE_CXX_BYTE_ORDER "") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/CMakeFiles/3.28.3/CMakeSystem.cmake b/CMakeFiles/3.28.3/CMakeSystem.cmake new file mode 100644 index 0000000..99b320d --- /dev/null +++ b/CMakeFiles/3.28.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.11.0-26-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.11.0-26-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake") + +set(CMAKE_SYSTEM "Emscripten-1") +set(CMAKE_SYSTEM_NAME "Emscripten") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "x86") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/CMakeFiles/CMakeConfigureLog.yaml b/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..d8dbdd7 --- /dev/null +++ b/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,12 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:228 (message)" + - "CMakeLists.txt:3 (project)" + message: | + The target system is: Emscripten - 1 - x86 + The host system is: Linux - 6.11.0-26-generic - x86_64 +... diff --git a/CMakeFiles/CMakeDirectoryInformation.cmake b/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..c0075f8 --- /dev/null +++ b/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/douwe/Projects/Screeps") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/douwe/Projects/Screeps") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/CMakeFiles/Makefile.cmake b/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..2d0cf9a --- /dev/null +++ b/CMakeFiles/Makefile.cmake @@ -0,0 +1,44 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.28.3/CMakeCXXCompiler.cmake" + "CMakeFiles/3.28.3/CMakeSystem.cmake" + "CMakeLists.txt" + "emsdk/upstream/emscripten/cmake/Modules/CMakeSystemSpecificInformation.cmake" + "emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" + "screepsxx/CMakeLists.txt" + "/usr/share/cmake-3.28/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.28/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.28/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Clang-CXX.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/Clang.cmake" + "/usr/share/cmake-3.28/Modules/Compiler/GNU.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + "screepsxx/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/app.dir/DependInfo.cmake" + "screepsxx/CMakeFiles/screepsxx.dir/DependInfo.cmake" + ) diff --git a/CMakeFiles/Makefile2 b/CMakeFiles/Makefile2 new file mode 100644 index 0000000..a7d3462 --- /dev/null +++ b/CMakeFiles/Makefile2 @@ -0,0 +1,155 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/douwe/Projects/Screeps + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/douwe/Projects/Screeps + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/app.dir/all +all: screepsxx/all +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: screepsxx/preinstall +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/app.dir/clean +clean: screepsxx/clean +.PHONY : clean + +#============================================================================= +# Directory level rules for directory screepsxx + +# Recursive "all" directory target. +screepsxx/all: screepsxx/CMakeFiles/screepsxx.dir/all +.PHONY : screepsxx/all + +# Recursive "preinstall" directory target. +screepsxx/preinstall: +.PHONY : screepsxx/preinstall + +# Recursive "clean" directory target. +screepsxx/clean: screepsxx/CMakeFiles/screepsxx.dir/clean +.PHONY : screepsxx/clean + +#============================================================================= +# Target rules for target CMakeFiles/app.dir + +# All Build rule for target. +CMakeFiles/app.dir/all: screepsxx/CMakeFiles/screepsxx.dir/all + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/douwe/Projects/Screeps/CMakeFiles --progress-num=1,2,3 "Built target app" +.PHONY : CMakeFiles/app.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/app.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles 36 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/app.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles 0 +.PHONY : CMakeFiles/app.dir/rule + +# Convenience name for target. +app: CMakeFiles/app.dir/rule +.PHONY : app + +# clean rule for target. +CMakeFiles/app.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/clean +.PHONY : CMakeFiles/app.dir/clean + +#============================================================================= +# Target rules for target screepsxx/CMakeFiles/screepsxx.dir + +# All Build rule for target. +screepsxx/CMakeFiles/screepsxx.dir/all: + $(MAKE) $(MAKESILENT) -f screepsxx/CMakeFiles/screepsxx.dir/build.make screepsxx/CMakeFiles/screepsxx.dir/depend + $(MAKE) $(MAKESILENT) -f screepsxx/CMakeFiles/screepsxx.dir/build.make screepsxx/CMakeFiles/screepsxx.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/douwe/Projects/Screeps/CMakeFiles --progress-num=4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 "Built target screepsxx" +.PHONY : screepsxx/CMakeFiles/screepsxx.dir/all + +# Build rule for subdir invocation for target. +screepsxx/CMakeFiles/screepsxx.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles 33 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 screepsxx/CMakeFiles/screepsxx.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles 0 +.PHONY : screepsxx/CMakeFiles/screepsxx.dir/rule + +# Convenience name for target. +screepsxx: screepsxx/CMakeFiles/screepsxx.dir/rule +.PHONY : screepsxx + +# clean rule for target. +screepsxx/CMakeFiles/screepsxx.dir/clean: + $(MAKE) $(MAKESILENT) -f screepsxx/CMakeFiles/screepsxx.dir/build.make screepsxx/CMakeFiles/screepsxx.dir/clean +.PHONY : screepsxx/CMakeFiles/screepsxx.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/CMakeFiles/TargetDirectories.txt b/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..caa7968 --- /dev/null +++ b/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,6 @@ +/home/douwe/Projects/Screeps/CMakeFiles/app.dir +/home/douwe/Projects/Screeps/CMakeFiles/edit_cache.dir +/home/douwe/Projects/Screeps/CMakeFiles/rebuild_cache.dir +/home/douwe/Projects/Screeps/screepsxx/CMakeFiles/screepsxx.dir +/home/douwe/Projects/Screeps/screepsxx/CMakeFiles/edit_cache.dir +/home/douwe/Projects/Screeps/screepsxx/CMakeFiles/rebuild_cache.dir diff --git a/CMakeFiles/app.dir/DependInfo.cmake b/CMakeFiles/app.dir/DependInfo.cmake new file mode 100644 index 0000000..adc931b --- /dev/null +++ b/CMakeFiles/app.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/douwe/Projects/Screeps/src/loop.cpp" "CMakeFiles/app.dir/src/loop.cpp.o" "gcc" "CMakeFiles/app.dir/src/loop.cpp.o.d" + "/home/douwe/Projects/Screeps/src/spawn.cpp" "CMakeFiles/app.dir/src/spawn.cpp.o" "gcc" "CMakeFiles/app.dir/src/spawn.cpp.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/CMakeFiles/app.dir/build.make b/CMakeFiles/app.dir/build.make new file mode 100644 index 0000000..3b8c034 --- /dev/null +++ b/CMakeFiles/app.dir/build.make @@ -0,0 +1,135 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/douwe/Projects/Screeps + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/douwe/Projects/Screeps + +# Include any dependencies generated for this target. +include CMakeFiles/app.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include CMakeFiles/app.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/app.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/app.dir/flags.make + +CMakeFiles/app.dir/src/loop.cpp.o: CMakeFiles/app.dir/flags.make +CMakeFiles/app.dir/src/loop.cpp.o: CMakeFiles/app.dir/includes_CXX.rsp +CMakeFiles/app.dir/src/loop.cpp.o: src/loop.cpp +CMakeFiles/app.dir/src/loop.cpp.o: CMakeFiles/app.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/douwe/Projects/Screeps/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/app.dir/src/loop.cpp.o" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/app.dir/src/loop.cpp.o -MF CMakeFiles/app.dir/src/loop.cpp.o.d -o CMakeFiles/app.dir/src/loop.cpp.o -c /home/douwe/Projects/Screeps/src/loop.cpp + +CMakeFiles/app.dir/src/loop.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/app.dir/src/loop.cpp.i" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/douwe/Projects/Screeps/src/loop.cpp > CMakeFiles/app.dir/src/loop.cpp.i + +CMakeFiles/app.dir/src/loop.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/app.dir/src/loop.cpp.s" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/douwe/Projects/Screeps/src/loop.cpp -o CMakeFiles/app.dir/src/loop.cpp.s + +CMakeFiles/app.dir/src/spawn.cpp.o: CMakeFiles/app.dir/flags.make +CMakeFiles/app.dir/src/spawn.cpp.o: CMakeFiles/app.dir/includes_CXX.rsp +CMakeFiles/app.dir/src/spawn.cpp.o: src/spawn.cpp +CMakeFiles/app.dir/src/spawn.cpp.o: CMakeFiles/app.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/douwe/Projects/Screeps/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/app.dir/src/spawn.cpp.o" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/app.dir/src/spawn.cpp.o -MF CMakeFiles/app.dir/src/spawn.cpp.o.d -o CMakeFiles/app.dir/src/spawn.cpp.o -c /home/douwe/Projects/Screeps/src/spawn.cpp + +CMakeFiles/app.dir/src/spawn.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/app.dir/src/spawn.cpp.i" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/douwe/Projects/Screeps/src/spawn.cpp > CMakeFiles/app.dir/src/spawn.cpp.i + +CMakeFiles/app.dir/src/spawn.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/app.dir/src/spawn.cpp.s" + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/douwe/Projects/Screeps/src/spawn.cpp -o CMakeFiles/app.dir/src/spawn.cpp.s + +# Object files for target app +app_OBJECTS = \ +"CMakeFiles/app.dir/src/loop.cpp.o" \ +"CMakeFiles/app.dir/src/spawn.cpp.o" + +# External object files for target app +app_EXTERNAL_OBJECTS = + +app.js: CMakeFiles/app.dir/src/loop.cpp.o +app.js: CMakeFiles/app.dir/src/spawn.cpp.o +app.js: CMakeFiles/app.dir/build.make +app.js: screepsxx/libscreepsxx.a +app.js: CMakeFiles/app.dir/linkLibs.rsp +app.js: CMakeFiles/app.dir/objects1.rsp +app.js: CMakeFiles/app.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/douwe/Projects/Screeps/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable app.js" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/app.dir/link.txt --verbose=$(VERBOSE) + /usr/bin/cmake -E copy /home/douwe/Projects/Screeps/app.wasm /home/douwe/Projects/Screeps/dist/app_module.wasm + /usr/bin/cmake -E copy /home/douwe/Projects/Screeps/app.js /home/douwe/Projects/Screeps/dist/app_loader.js + /usr/bin/cmake -E copy /home/douwe/Projects/Screeps/js/main.js /home/douwe/Projects/Screeps/dist/main.js + /usr/bin/cmake -E copy /home/douwe/Projects/Screeps/js/wasm_loader.js /home/douwe/Projects/Screeps/dist/wasm_loader.js + +# Rule to build all files generated by this target. +CMakeFiles/app.dir/build: app.js +.PHONY : CMakeFiles/app.dir/build + +CMakeFiles/app.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/app.dir/cmake_clean.cmake +.PHONY : CMakeFiles/app.dir/clean + +CMakeFiles/app.dir/depend: + cd /home/douwe/Projects/Screeps && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/douwe/Projects/Screeps /home/douwe/Projects/Screeps /home/douwe/Projects/Screeps /home/douwe/Projects/Screeps /home/douwe/Projects/Screeps/CMakeFiles/app.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : CMakeFiles/app.dir/depend + diff --git a/CMakeFiles/app.dir/cmake_clean.cmake b/CMakeFiles/app.dir/cmake_clean.cmake new file mode 100644 index 0000000..07c0ff4 --- /dev/null +++ b/CMakeFiles/app.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "CMakeFiles/app.dir/src/loop.cpp.o" + "CMakeFiles/app.dir/src/loop.cpp.o.d" + "CMakeFiles/app.dir/src/spawn.cpp.o" + "CMakeFiles/app.dir/src/spawn.cpp.o.d" + "app.js" + "app.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/app.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/CMakeFiles/app.dir/compiler_depend.internal b/CMakeFiles/app.dir/compiler_depend.internal new file mode 100644 index 0000000..8e98093 --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.internal @@ -0,0 +1,280 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +CMakeFiles/app.dir/src/loop.cpp.o + /home/douwe/Projects/Screeps/src/loop.cpp + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/stdarg.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/time.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/xlocale.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/bind.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_asm.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_js.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_macros.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/emscripten.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/val.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/wire.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/alloca.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/assert.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/errno.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/features.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/locale.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/nl_types.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/pthread.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/sched.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdarg.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stddef.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdint.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdio.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/strings.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/time.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__bit_reference + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__bsd_locale_fallbacks.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__config + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__debug + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__errc + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__functional_base + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__hash_table + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__locale + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__mutex_base + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__node_handle + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__nullptr + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__split_buffer + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__string + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__threading_support + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tree + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tuple + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__undef_macros + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/algorithm + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/array + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/atomic + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/bit + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/bitset + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cassert + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cctype + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cerrno + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/chrono + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/climits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/clocale + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cmath + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdarg + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstddef + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdint + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdio + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdlib + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstring + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ctime + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwchar + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwctype + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/errno.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/exception + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/forward_list + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/functional + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/initializer_list + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ios + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iosfwd + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/istream + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iterator + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/locale + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/locale.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/map + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/memory + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/mutex + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/new + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/numeric + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/optional + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ostream + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ratio + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stddef.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdexcept + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdint.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdio.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/streambuf + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string_view + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/system_error + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/tuple + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/type_traits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/typeinfo + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/unordered_map + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/utility + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/valarray + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/vector + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/version + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/wasi/api.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/errno.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h + /home/douwe/Projects/Screeps/include/structures/spawn.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Constants.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Context.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Creep.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Game.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/JS.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/JSON.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Memory.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Object.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/OwnedStructure.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/PathFinder.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/RawMemory.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/RoomObject.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Structure.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/StructureSpawn.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/adl_serializer.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/byte_container_with_subtype.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/conversions/from_json.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/conversions/to_chars.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/conversions/to_json.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/exceptions.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/hash.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/binary_reader.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/input_adapters.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/json_sax.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/lexer.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/parser.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/input/position_t.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/internal_iterator.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/iter_impl.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/iteration_proxy.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/iterator_traits.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/json_reverse_iterator.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/iterators/primitive_iterator.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/json_pointer.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/json_ref.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/macro_scope.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/macro_unscope.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/meta/cpp_future.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/meta/detected.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/meta/is_sax.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/meta/type_traits.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/meta/void_t.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/output/binary_writer.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/output/output_adapters.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/output/serializer.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/detail/value_t.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/json.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/json_fwd.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/ordered_map.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/thirdparty/hedley/hedley.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/thirdparty/hedley/hedley_undef.hpp + +CMakeFiles/app.dir/src/spawn.cpp.o + /home/douwe/Projects/Screeps/src/spawn.cpp + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_asm.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_js.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/em_macros.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/emscripten.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/val.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/wire.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/alloca.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/features.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/pthread.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stddef.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdint.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdio.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/strings.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__bit_reference + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__config + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__debug + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__functional_base + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__node_handle + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__nullptr + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__split_buffer + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__string + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tree + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tuple + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__undef_macros + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/algorithm + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/array + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/atomic + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/bit + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cctype + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/climits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstddef + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdint + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdio + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdlib + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstring + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwchar + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwctype + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/exception + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/functional + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/initializer_list + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iosfwd + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iterator + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/map + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/math.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/memory + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/new + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/optional + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stddef.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdexcept + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdint.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdio.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdlib.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string_view + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/tuple + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/type_traits + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/typeinfo + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/utility + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/vector + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/version + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wchar.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wctype.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/wasi/api.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h + /home/douwe/Projects/Screeps/include/structures/spawn.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Constants.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Game.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/JS.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Object.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/OwnedStructure.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Room.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/RoomObject.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Structure.hpp + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/StructureSpawn.hpp + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/json_fwd.hpp + diff --git a/CMakeFiles/app.dir/compiler_depend.make b/CMakeFiles/app.dir/compiler_depend.make new file mode 100644 index 0000000..34f55be --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.make @@ -0,0 +1,636 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +CMakeFiles/app.dir/src/loop.cpp.o: src/loop.cpp \ + emsdk/upstream/emscripten/system/include/compat/ctype.h \ + emsdk/upstream/emscripten/system/include/compat/math.h \ + emsdk/upstream/emscripten/system/include/compat/stdarg.h \ + emsdk/upstream/emscripten/system/include/compat/stdlib.h \ + emsdk/upstream/emscripten/system/include/compat/string.h \ + emsdk/upstream/emscripten/system/include/compat/time.h \ + emsdk/upstream/emscripten/system/include/compat/wchar.h \ + emsdk/upstream/emscripten/system/include/compat/wctype.h \ + emsdk/upstream/emscripten/system/include/compat/xlocale.h \ + emsdk/upstream/emscripten/system/include/emscripten.h \ + emsdk/upstream/emscripten/system/include/emscripten/bind.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_asm.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_js.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_macros.h \ + emsdk/upstream/emscripten/system/include/emscripten/emscripten.h \ + emsdk/upstream/emscripten/system/include/emscripten/val.h \ + emsdk/upstream/emscripten/system/include/emscripten/wire.h \ + emsdk/upstream/emscripten/system/include/libc/alloca.h \ + emsdk/upstream/emscripten/system/include/libc/assert.h \ + emsdk/upstream/emscripten/system/include/libc/ctype.h \ + emsdk/upstream/emscripten/system/include/libc/errno.h \ + emsdk/upstream/emscripten/system/include/libc/features.h \ + emsdk/upstream/emscripten/system/include/libc/limits.h \ + emsdk/upstream/emscripten/system/include/libc/locale.h \ + emsdk/upstream/emscripten/system/include/libc/math.h \ + emsdk/upstream/emscripten/system/include/libc/nl_types.h \ + emsdk/upstream/emscripten/system/include/libc/pthread.h \ + emsdk/upstream/emscripten/system/include/libc/sched.h \ + emsdk/upstream/emscripten/system/include/libc/stdarg.h \ + emsdk/upstream/emscripten/system/include/libc/stddef.h \ + emsdk/upstream/emscripten/system/include/libc/stdint.h \ + emsdk/upstream/emscripten/system/include/libc/stdio.h \ + emsdk/upstream/emscripten/system/include/libc/stdlib.h \ + emsdk/upstream/emscripten/system/include/libc/string.h \ + emsdk/upstream/emscripten/system/include/libc/strings.h \ + emsdk/upstream/emscripten/system/include/libc/time.h \ + emsdk/upstream/emscripten/system/include/libc/wchar.h \ + emsdk/upstream/emscripten/system/include/libc/wctype.h \ + emsdk/upstream/emscripten/system/include/libcxx/__bit_reference \ + emsdk/upstream/emscripten/system/include/libcxx/__bsd_locale_fallbacks.h \ + emsdk/upstream/emscripten/system/include/libcxx/__config \ + emsdk/upstream/emscripten/system/include/libcxx/__debug \ + emsdk/upstream/emscripten/system/include/libcxx/__errc \ + emsdk/upstream/emscripten/system/include/libcxx/__functional_base \ + emsdk/upstream/emscripten/system/include/libcxx/__hash_table \ + emsdk/upstream/emscripten/system/include/libcxx/__locale \ + emsdk/upstream/emscripten/system/include/libcxx/__mutex_base \ + emsdk/upstream/emscripten/system/include/libcxx/__node_handle \ + emsdk/upstream/emscripten/system/include/libcxx/__nullptr \ + emsdk/upstream/emscripten/system/include/libcxx/__split_buffer \ + emsdk/upstream/emscripten/system/include/libcxx/__string \ + emsdk/upstream/emscripten/system/include/libcxx/__threading_support \ + emsdk/upstream/emscripten/system/include/libcxx/__tree \ + emsdk/upstream/emscripten/system/include/libcxx/__tuple \ + emsdk/upstream/emscripten/system/include/libcxx/__undef_macros \ + emsdk/upstream/emscripten/system/include/libcxx/algorithm \ + emsdk/upstream/emscripten/system/include/libcxx/array \ + emsdk/upstream/emscripten/system/include/libcxx/atomic \ + emsdk/upstream/emscripten/system/include/libcxx/bit \ + emsdk/upstream/emscripten/system/include/libcxx/bitset \ + emsdk/upstream/emscripten/system/include/libcxx/cassert \ + emsdk/upstream/emscripten/system/include/libcxx/cctype \ + emsdk/upstream/emscripten/system/include/libcxx/cerrno \ + emsdk/upstream/emscripten/system/include/libcxx/chrono \ + emsdk/upstream/emscripten/system/include/libcxx/climits \ + emsdk/upstream/emscripten/system/include/libcxx/clocale \ + emsdk/upstream/emscripten/system/include/libcxx/cmath \ + emsdk/upstream/emscripten/system/include/libcxx/cstdarg \ + emsdk/upstream/emscripten/system/include/libcxx/cstddef \ + emsdk/upstream/emscripten/system/include/libcxx/cstdint \ + emsdk/upstream/emscripten/system/include/libcxx/cstdio \ + emsdk/upstream/emscripten/system/include/libcxx/cstdlib \ + emsdk/upstream/emscripten/system/include/libcxx/cstring \ + emsdk/upstream/emscripten/system/include/libcxx/ctime \ + emsdk/upstream/emscripten/system/include/libcxx/ctype.h \ + emsdk/upstream/emscripten/system/include/libcxx/cwchar \ + emsdk/upstream/emscripten/system/include/libcxx/cwctype \ + emsdk/upstream/emscripten/system/include/libcxx/errno.h \ + emsdk/upstream/emscripten/system/include/libcxx/exception \ + emsdk/upstream/emscripten/system/include/libcxx/forward_list \ + emsdk/upstream/emscripten/system/include/libcxx/functional \ + emsdk/upstream/emscripten/system/include/libcxx/initializer_list \ + emsdk/upstream/emscripten/system/include/libcxx/ios \ + emsdk/upstream/emscripten/system/include/libcxx/iosfwd \ + emsdk/upstream/emscripten/system/include/libcxx/istream \ + emsdk/upstream/emscripten/system/include/libcxx/iterator \ + emsdk/upstream/emscripten/system/include/libcxx/limits \ + emsdk/upstream/emscripten/system/include/libcxx/limits.h \ + emsdk/upstream/emscripten/system/include/libcxx/locale \ + emsdk/upstream/emscripten/system/include/libcxx/locale.h \ + emsdk/upstream/emscripten/system/include/libcxx/map \ + emsdk/upstream/emscripten/system/include/libcxx/math.h \ + emsdk/upstream/emscripten/system/include/libcxx/memory \ + emsdk/upstream/emscripten/system/include/libcxx/mutex \ + emsdk/upstream/emscripten/system/include/libcxx/new \ + emsdk/upstream/emscripten/system/include/libcxx/numeric \ + emsdk/upstream/emscripten/system/include/libcxx/optional \ + emsdk/upstream/emscripten/system/include/libcxx/ostream \ + emsdk/upstream/emscripten/system/include/libcxx/ratio \ + emsdk/upstream/emscripten/system/include/libcxx/stddef.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdexcept \ + emsdk/upstream/emscripten/system/include/libcxx/stdint.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdio.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdlib.h \ + emsdk/upstream/emscripten/system/include/libcxx/streambuf \ + emsdk/upstream/emscripten/system/include/libcxx/string \ + emsdk/upstream/emscripten/system/include/libcxx/string.h \ + emsdk/upstream/emscripten/system/include/libcxx/string_view \ + emsdk/upstream/emscripten/system/include/libcxx/system_error \ + emsdk/upstream/emscripten/system/include/libcxx/tuple \ + emsdk/upstream/emscripten/system/include/libcxx/type_traits \ + emsdk/upstream/emscripten/system/include/libcxx/typeinfo \ + emsdk/upstream/emscripten/system/include/libcxx/unordered_map \ + emsdk/upstream/emscripten/system/include/libcxx/utility \ + emsdk/upstream/emscripten/system/include/libcxx/valarray \ + emsdk/upstream/emscripten/system/include/libcxx/vector \ + emsdk/upstream/emscripten/system/include/libcxx/version \ + emsdk/upstream/emscripten/system/include/libcxx/wchar.h \ + emsdk/upstream/emscripten/system/include/libcxx/wctype.h \ + emsdk/upstream/emscripten/system/include/wasi/api.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/errno.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h \ + include/structures/spawn.hpp \ + screepsxx/include/Screeps/Constants.hpp \ + screepsxx/include/Screeps/Context.hpp \ + screepsxx/include/Screeps/Creep.hpp \ + screepsxx/include/Screeps/Game.hpp \ + screepsxx/include/Screeps/JS.hpp \ + screepsxx/include/Screeps/JSON.hpp \ + screepsxx/include/Screeps/Memory.hpp \ + screepsxx/include/Screeps/Object.hpp \ + screepsxx/include/Screeps/OwnedStructure.hpp \ + screepsxx/include/Screeps/PathFinder.hpp \ + screepsxx/include/Screeps/RawMemory.hpp \ + screepsxx/include/Screeps/RoomObject.hpp \ + screepsxx/include/Screeps/Structure.hpp \ + screepsxx/include/Screeps/StructureSpawn.hpp \ + screepsxx/include/nlohmann/adl_serializer.hpp \ + screepsxx/include/nlohmann/byte_container_with_subtype.hpp \ + screepsxx/include/nlohmann/detail/conversions/from_json.hpp \ + screepsxx/include/nlohmann/detail/conversions/to_chars.hpp \ + screepsxx/include/nlohmann/detail/conversions/to_json.hpp \ + screepsxx/include/nlohmann/detail/exceptions.hpp \ + screepsxx/include/nlohmann/detail/hash.hpp \ + screepsxx/include/nlohmann/detail/input/binary_reader.hpp \ + screepsxx/include/nlohmann/detail/input/input_adapters.hpp \ + screepsxx/include/nlohmann/detail/input/json_sax.hpp \ + screepsxx/include/nlohmann/detail/input/lexer.hpp \ + screepsxx/include/nlohmann/detail/input/parser.hpp \ + screepsxx/include/nlohmann/detail/input/position_t.hpp \ + screepsxx/include/nlohmann/detail/iterators/internal_iterator.hpp \ + screepsxx/include/nlohmann/detail/iterators/iter_impl.hpp \ + screepsxx/include/nlohmann/detail/iterators/iteration_proxy.hpp \ + screepsxx/include/nlohmann/detail/iterators/iterator_traits.hpp \ + screepsxx/include/nlohmann/detail/iterators/json_reverse_iterator.hpp \ + screepsxx/include/nlohmann/detail/iterators/primitive_iterator.hpp \ + screepsxx/include/nlohmann/detail/json_pointer.hpp \ + screepsxx/include/nlohmann/detail/json_ref.hpp \ + screepsxx/include/nlohmann/detail/macro_scope.hpp \ + screepsxx/include/nlohmann/detail/macro_unscope.hpp \ + screepsxx/include/nlohmann/detail/meta/cpp_future.hpp \ + screepsxx/include/nlohmann/detail/meta/detected.hpp \ + screepsxx/include/nlohmann/detail/meta/is_sax.hpp \ + screepsxx/include/nlohmann/detail/meta/type_traits.hpp \ + screepsxx/include/nlohmann/detail/meta/void_t.hpp \ + screepsxx/include/nlohmann/detail/output/binary_writer.hpp \ + screepsxx/include/nlohmann/detail/output/output_adapters.hpp \ + screepsxx/include/nlohmann/detail/output/serializer.hpp \ + screepsxx/include/nlohmann/detail/value_t.hpp \ + screepsxx/include/nlohmann/json.hpp \ + screepsxx/include/nlohmann/json_fwd.hpp \ + screepsxx/include/nlohmann/ordered_map.hpp \ + screepsxx/include/nlohmann/thirdparty/hedley/hedley.hpp \ + screepsxx/include/nlohmann/thirdparty/hedley/hedley_undef.hpp + +CMakeFiles/app.dir/src/spawn.cpp.o: src/spawn.cpp \ + emsdk/upstream/emscripten/system/include/compat/ctype.h \ + emsdk/upstream/emscripten/system/include/compat/math.h \ + emsdk/upstream/emscripten/system/include/compat/stdlib.h \ + emsdk/upstream/emscripten/system/include/compat/string.h \ + emsdk/upstream/emscripten/system/include/compat/wchar.h \ + emsdk/upstream/emscripten/system/include/compat/wctype.h \ + emsdk/upstream/emscripten/system/include/emscripten.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_asm.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_js.h \ + emsdk/upstream/emscripten/system/include/emscripten/em_macros.h \ + emsdk/upstream/emscripten/system/include/emscripten/emscripten.h \ + emsdk/upstream/emscripten/system/include/emscripten/val.h \ + emsdk/upstream/emscripten/system/include/emscripten/wire.h \ + emsdk/upstream/emscripten/system/include/libc/alloca.h \ + emsdk/upstream/emscripten/system/include/libc/ctype.h \ + emsdk/upstream/emscripten/system/include/libc/features.h \ + emsdk/upstream/emscripten/system/include/libc/limits.h \ + emsdk/upstream/emscripten/system/include/libc/math.h \ + emsdk/upstream/emscripten/system/include/libc/pthread.h \ + emsdk/upstream/emscripten/system/include/libc/stddef.h \ + emsdk/upstream/emscripten/system/include/libc/stdint.h \ + emsdk/upstream/emscripten/system/include/libc/stdio.h \ + emsdk/upstream/emscripten/system/include/libc/stdlib.h \ + emsdk/upstream/emscripten/system/include/libc/string.h \ + emsdk/upstream/emscripten/system/include/libc/strings.h \ + emsdk/upstream/emscripten/system/include/libc/wchar.h \ + emsdk/upstream/emscripten/system/include/libc/wctype.h \ + emsdk/upstream/emscripten/system/include/libcxx/__bit_reference \ + emsdk/upstream/emscripten/system/include/libcxx/__config \ + emsdk/upstream/emscripten/system/include/libcxx/__debug \ + emsdk/upstream/emscripten/system/include/libcxx/__functional_base \ + emsdk/upstream/emscripten/system/include/libcxx/__node_handle \ + emsdk/upstream/emscripten/system/include/libcxx/__nullptr \ + emsdk/upstream/emscripten/system/include/libcxx/__split_buffer \ + emsdk/upstream/emscripten/system/include/libcxx/__string \ + emsdk/upstream/emscripten/system/include/libcxx/__tree \ + emsdk/upstream/emscripten/system/include/libcxx/__tuple \ + emsdk/upstream/emscripten/system/include/libcxx/__undef_macros \ + emsdk/upstream/emscripten/system/include/libcxx/algorithm \ + emsdk/upstream/emscripten/system/include/libcxx/array \ + emsdk/upstream/emscripten/system/include/libcxx/atomic \ + emsdk/upstream/emscripten/system/include/libcxx/bit \ + emsdk/upstream/emscripten/system/include/libcxx/cctype \ + emsdk/upstream/emscripten/system/include/libcxx/climits \ + emsdk/upstream/emscripten/system/include/libcxx/cstddef \ + emsdk/upstream/emscripten/system/include/libcxx/cstdint \ + emsdk/upstream/emscripten/system/include/libcxx/cstdio \ + emsdk/upstream/emscripten/system/include/libcxx/cstdlib \ + emsdk/upstream/emscripten/system/include/libcxx/cstring \ + emsdk/upstream/emscripten/system/include/libcxx/ctype.h \ + emsdk/upstream/emscripten/system/include/libcxx/cwchar \ + emsdk/upstream/emscripten/system/include/libcxx/cwctype \ + emsdk/upstream/emscripten/system/include/libcxx/exception \ + emsdk/upstream/emscripten/system/include/libcxx/functional \ + emsdk/upstream/emscripten/system/include/libcxx/initializer_list \ + emsdk/upstream/emscripten/system/include/libcxx/iosfwd \ + emsdk/upstream/emscripten/system/include/libcxx/iterator \ + emsdk/upstream/emscripten/system/include/libcxx/limits \ + emsdk/upstream/emscripten/system/include/libcxx/limits.h \ + emsdk/upstream/emscripten/system/include/libcxx/map \ + emsdk/upstream/emscripten/system/include/libcxx/math.h \ + emsdk/upstream/emscripten/system/include/libcxx/memory \ + emsdk/upstream/emscripten/system/include/libcxx/new \ + emsdk/upstream/emscripten/system/include/libcxx/optional \ + emsdk/upstream/emscripten/system/include/libcxx/stddef.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdexcept \ + emsdk/upstream/emscripten/system/include/libcxx/stdint.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdio.h \ + emsdk/upstream/emscripten/system/include/libcxx/stdlib.h \ + emsdk/upstream/emscripten/system/include/libcxx/string \ + emsdk/upstream/emscripten/system/include/libcxx/string.h \ + emsdk/upstream/emscripten/system/include/libcxx/string_view \ + emsdk/upstream/emscripten/system/include/libcxx/tuple \ + emsdk/upstream/emscripten/system/include/libcxx/type_traits \ + emsdk/upstream/emscripten/system/include/libcxx/typeinfo \ + emsdk/upstream/emscripten/system/include/libcxx/utility \ + emsdk/upstream/emscripten/system/include/libcxx/vector \ + emsdk/upstream/emscripten/system/include/libcxx/version \ + emsdk/upstream/emscripten/system/include/libcxx/wchar.h \ + emsdk/upstream/emscripten/system/include/libcxx/wctype.h \ + emsdk/upstream/emscripten/system/include/wasi/api.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h \ + emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h \ + include/structures/spawn.hpp \ + screepsxx/include/Screeps/Constants.hpp \ + screepsxx/include/Screeps/Game.hpp \ + screepsxx/include/Screeps/JS.hpp \ + screepsxx/include/Screeps/Object.hpp \ + screepsxx/include/Screeps/OwnedStructure.hpp \ + screepsxx/include/Screeps/Room.hpp \ + screepsxx/include/Screeps/RoomObject.hpp \ + screepsxx/include/Screeps/Structure.hpp \ + screepsxx/include/Screeps/StructureSpawn.hpp \ + screepsxx/include/nlohmann/json_fwd.hpp + + +screepsxx/include/Screeps/Room.hpp: + +screepsxx/include/nlohmann/thirdparty/hedley/hedley_undef.hpp: + +screepsxx/include/nlohmann/ordered_map.hpp: + +screepsxx/include/nlohmann/json_fwd.hpp: + +screepsxx/include/nlohmann/detail/output/serializer.hpp: + +screepsxx/include/nlohmann/detail/output/output_adapters.hpp: + +screepsxx/include/nlohmann/detail/meta/void_t.hpp: + +screepsxx/include/nlohmann/detail/meta/type_traits.hpp: + +screepsxx/include/nlohmann/detail/meta/detected.hpp: + +screepsxx/include/nlohmann/detail/macro_unscope.hpp: + +screepsxx/include/nlohmann/detail/macro_scope.hpp: + +screepsxx/include/nlohmann/detail/json_pointer.hpp: + +screepsxx/include/nlohmann/detail/iterators/primitive_iterator.hpp: + +screepsxx/include/nlohmann/detail/iterators/iter_impl.hpp: + +screepsxx/include/nlohmann/detail/input/position_t.hpp: + +screepsxx/include/nlohmann/detail/input/json_sax.hpp: + +screepsxx/include/nlohmann/detail/input/binary_reader.hpp: + +screepsxx/include/nlohmann/detail/conversions/to_json.hpp: + +screepsxx/include/nlohmann/detail/conversions/to_chars.hpp: + +screepsxx/include/nlohmann/byte_container_with_subtype.hpp: + +screepsxx/include/nlohmann/adl_serializer.hpp: + +screepsxx/include/Screeps/Structure.hpp: + +screepsxx/include/Screeps/PathFinder.hpp: + +screepsxx/include/Screeps/OwnedStructure.hpp: + +screepsxx/include/Screeps/JSON.hpp: + +screepsxx/include/Screeps/Game.hpp: + +screepsxx/include/Screeps/Creep.hpp: + +screepsxx/include/Screeps/Context.hpp: + +screepsxx/include/nlohmann/detail/exceptions.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/bitset: + +screepsxx/include/Screeps/RoomObject.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/algorithm: + +emsdk/upstream/emscripten/system/include/libcxx/__tuple: + +emsdk/upstream/emscripten/system/include/libcxx/iosfwd: + +emsdk/upstream/emscripten/system/include/libcxx/__threading_support: + +emsdk/upstream/emscripten/system/include/libcxx/stddef.h: + +emsdk/upstream/emscripten/system/include/libcxx/__locale: + +emsdk/upstream/emscripten/system/include/libcxx/__hash_table: + +emsdk/upstream/emscripten/system/include/libcxx/__functional_base: + +emsdk/upstream/emscripten/system/include/emscripten/wire.h: + +emsdk/upstream/emscripten/system/include/libcxx/__undef_macros: + +emsdk/upstream/emscripten/system/include/libc/nl_types.h: + +emsdk/upstream/emscripten/system/include/compat/wchar.h: + +emsdk/upstream/emscripten/system/include/libc/wctype.h: + +emsdk/upstream/emscripten/system/include/compat/math.h: + +emsdk/upstream/emscripten/system/include/libcxx/cstdio: + +emsdk/upstream/emscripten/system/include/libcxx/__bit_reference: + +emsdk/upstream/emscripten/system/include/libcxx/exception: + +screepsxx/include/nlohmann/detail/hash.hpp: + +emsdk/upstream/emscripten/system/include/libc/stdint.h: + +emsdk/upstream/emscripten/system/include/libcxx/functional: + +emsdk/upstream/emscripten/system/include/libcxx/__node_handle: + +screepsxx/include/Screeps/StructureSpawn.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/climits: + +emsdk/upstream/emscripten/system/include/libcxx/stdint.h: + +emsdk/upstream/emscripten/system/include/libcxx/type_traits: + +emsdk/upstream/emscripten/system/include/libcxx/string.h: + +emsdk/upstream/emscripten/system/include/libcxx/__debug: + +emsdk/upstream/emscripten/system/include/libc/stdarg.h: + +emsdk/upstream/emscripten/system/include/compat/xlocale.h: + +emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h: + +screepsxx/include/nlohmann/detail/json_ref.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/__errc: + +emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/errno.h: + +screepsxx/include/nlohmann/detail/iterators/iterator_traits.hpp: + +emsdk/upstream/emscripten/system/include/libc/sched.h: + +emsdk/upstream/emscripten/system/include/libcxx/wctype.h: + +screepsxx/include/nlohmann/detail/input/input_adapters.hpp: + +emsdk/upstream/emscripten/system/include/emscripten/em_asm.h: + +screepsxx/include/nlohmann/json.hpp: + +screepsxx/include/nlohmann/detail/iterators/json_reverse_iterator.hpp: + +emsdk/upstream/emscripten/system/include/libc/time.h: + +emsdk/upstream/emscripten/system/include/compat/string.h: + +emsdk/upstream/emscripten/system/include/libcxx/__tree: + +emsdk/upstream/emscripten/system/include/compat/ctype.h: + +screepsxx/include/nlohmann/thirdparty/hedley/hedley.hpp: + +emsdk/upstream/emscripten/system/include/emscripten/val.h: + +emsdk/upstream/emscripten/system/include/libc/stdlib.h: + +emsdk/upstream/emscripten/system/include/libcxx/__string: + +emsdk/upstream/emscripten/system/include/compat/stdarg.h: + +emsdk/upstream/emscripten/system/include/libcxx/stdlib.h: + +emsdk/upstream/emscripten/system/include/libcxx/wchar.h: + +emsdk/upstream/emscripten/system/include/libcxx/ios: + +emsdk/upstream/emscripten/system/include/emscripten.h: + +emsdk/upstream/emscripten/system/include/libcxx/math.h: + +src/loop.cpp: + +emsdk/upstream/emscripten/system/include/libcxx/system_error: + +emsdk/upstream/emscripten/system/include/emscripten/em_js.h: + +emsdk/upstream/emscripten/system/include/libcxx/utility: + +screepsxx/include/Screeps/Object.hpp: + +emsdk/upstream/emscripten/system/include/libc/alloca.h: + +screepsxx/include/nlohmann/detail/meta/cpp_future.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/__bsd_locale_fallbacks.h: + +screepsxx/include/Screeps/RawMemory.hpp: + +emsdk/upstream/emscripten/system/include/emscripten/bind.h: + +emsdk/upstream/emscripten/system/include/libcxx/__nullptr: + +emsdk/upstream/emscripten/system/include/libc/assert.h: + +emsdk/upstream/emscripten/system/include/emscripten/em_macros.h: + +screepsxx/include/nlohmann/detail/iterators/internal_iterator.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/cerrno: + +emsdk/upstream/emscripten/system/include/emscripten/emscripten.h: + +emsdk/upstream/emscripten/system/include/libc/limits.h: + +emsdk/upstream/emscripten/system/include/libcxx/cstdint: + +emsdk/upstream/emscripten/system/include/libc/stdio.h: + +emsdk/upstream/emscripten/system/include/libc/math.h: + +emsdk/upstream/emscripten/system/include/libc/ctype.h: + +emsdk/upstream/emscripten/system/include/libcxx/cctype: + +emsdk/upstream/emscripten/system/include/libc/stddef.h: + +emsdk/upstream/emscripten/system/include/libc/pthread.h: + +emsdk/upstream/emscripten/system/include/compat/wctype.h: + +emsdk/upstream/emscripten/system/include/libcxx/cstdarg: + +emsdk/upstream/emscripten/system/include/compat/time.h: + +emsdk/upstream/emscripten/system/include/libcxx/__mutex_base: + +emsdk/upstream/emscripten/system/include/libc/string.h: + +emsdk/upstream/emscripten/system/include/libcxx/array: + +emsdk/upstream/emscripten/system/include/libc/features.h: + +screepsxx/include/nlohmann/detail/iterators/iteration_proxy.hpp: + +screepsxx/include/nlohmann/detail/input/lexer.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/typeinfo: + +screepsxx/include/nlohmann/detail/value_t.hpp: + +emsdk/upstream/emscripten/system/include/libc/locale.h: + +emsdk/upstream/emscripten/system/include/libcxx/__config: + +emsdk/upstream/emscripten/system/include/libc/wchar.h: + +emsdk/upstream/emscripten/system/include/compat/stdlib.h: + +emsdk/upstream/emscripten/system/include/libcxx/map: + +emsdk/upstream/emscripten/system/include/libcxx/cassert: + +emsdk/upstream/emscripten/system/include/libcxx/string_view: + +emsdk/upstream/emscripten/system/include/libcxx/chrono: + +emsdk/upstream/emscripten/system/include/libcxx/__split_buffer: + +emsdk/upstream/emscripten/system/include/libcxx/clocale: + +emsdk/upstream/emscripten/system/include/libcxx/cmath: + +emsdk/upstream/emscripten/system/include/libcxx/cstdlib: + +emsdk/upstream/emscripten/system/include/libcxx/locale.h: + +emsdk/upstream/emscripten/system/include/libcxx/cstring: + +screepsxx/include/Screeps/Constants.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/cwchar: + +emsdk/upstream/emscripten/system/include/libcxx/ctime: + +emsdk/upstream/emscripten/system/include/libc/strings.h: + +emsdk/upstream/emscripten/system/include/libcxx/memory: + +src/spawn.cpp: + +screepsxx/include/nlohmann/detail/meta/is_sax.hpp: + +screepsxx/include/nlohmann/detail/input/parser.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/ctype.h: + +emsdk/upstream/emscripten/system/include/libcxx/cwctype: + +emsdk/upstream/emscripten/system/include/libc/errno.h: + +emsdk/upstream/emscripten/system/include/libcxx/forward_list: + +screepsxx/include/Screeps/Memory.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/initializer_list: + +emsdk/upstream/emscripten/system/include/libcxx/istream: + +emsdk/upstream/emscripten/system/include/libcxx/atomic: + +emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h: + +emsdk/upstream/emscripten/system/include/libcxx/iterator: + +emsdk/upstream/emscripten/system/include/libcxx/bit: + +emsdk/upstream/emscripten/system/include/libcxx/errno.h: + +emsdk/upstream/emscripten/system/include/libcxx/cstddef: + +emsdk/upstream/emscripten/system/include/libcxx/limits.h: + +emsdk/upstream/emscripten/system/include/libcxx/unordered_map: + +emsdk/upstream/emscripten/system/include/libcxx/valarray: + +emsdk/upstream/emscripten/system/include/libcxx/locale: + +screepsxx/include/nlohmann/detail/conversions/from_json.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/mutex: + +emsdk/upstream/emscripten/system/include/libcxx/new: + +emsdk/upstream/emscripten/system/include/libcxx/numeric: + +emsdk/upstream/emscripten/system/include/libcxx/optional: + +screepsxx/include/Screeps/JS.hpp: + +include/structures/spawn.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/ostream: + +emsdk/upstream/emscripten/system/include/libcxx/ratio: + +emsdk/upstream/emscripten/system/include/libcxx/stdexcept: + +emsdk/upstream/emscripten/system/include/libcxx/stdio.h: + +emsdk/upstream/emscripten/system/include/libcxx/streambuf: + +emsdk/upstream/emscripten/system/include/libcxx/string: + +screepsxx/include/nlohmann/detail/output/binary_writer.hpp: + +emsdk/upstream/emscripten/system/include/libcxx/limits: + +emsdk/upstream/emscripten/system/include/wasi/api.h: + +emsdk/upstream/emscripten/system/include/libcxx/tuple: + +emsdk/upstream/emscripten/system/include/libcxx/vector: + +emsdk/upstream/emscripten/system/include/libcxx/version: + +emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h: diff --git a/CMakeFiles/app.dir/compiler_depend.ts b/CMakeFiles/app.dir/compiler_depend.ts new file mode 100644 index 0000000..7b7cc44 --- /dev/null +++ b/CMakeFiles/app.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for app. diff --git a/CMakeFiles/app.dir/depend.make b/CMakeFiles/app.dir/depend.make new file mode 100644 index 0000000..654f84e --- /dev/null +++ b/CMakeFiles/app.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for app. +# This may be replaced when dependencies are built. diff --git a/CMakeFiles/app.dir/flags.make b/CMakeFiles/app.dir/flags.make new file mode 100644 index 0000000..8e2709b --- /dev/null +++ b/CMakeFiles/app.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# compile CXX with /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ +CXX_DEFINES = + +CXX_INCLUDES = @CMakeFiles/app.dir/includes_CXX.rsp + +CXX_FLAGS = -DNDEBUG -O2 -std=gnu++17 -sSTRICT=0 + diff --git a/CMakeFiles/app.dir/includes_CXX.rsp b/CMakeFiles/app.dir/includes_CXX.rsp new file mode 100644 index 0000000..cc50f1f --- /dev/null +++ b/CMakeFiles/app.dir/includes_CXX.rsp @@ -0,0 +1 @@ +-I/home/douwe/Projects/Screeps/include -I/home/douwe/Projects/Screeps/screepsxx/include diff --git a/CMakeFiles/app.dir/link.txt b/CMakeFiles/app.dir/link.txt new file mode 100644 index 0000000..0acb880 --- /dev/null +++ b/CMakeFiles/app.dir/link.txt @@ -0,0 +1 @@ +/home/douwe/Projects/Screeps/emsdk/upstream/emscripten/em++ -DNDEBUG -O2 -O2 -sASSERTIONS=0 -sMALLOC=emmalloc -sMODULARIZE=1 --no-entry --bind -sEXPORT_ES6=0 -sSTRICT=0 -sALLOW_MEMORY_GROWTH=1 @CMakeFiles/app.dir/objects1.rsp -o app.js @CMakeFiles/app.dir/linkLibs.rsp diff --git a/CMakeFiles/app.dir/linkLibs.rsp b/CMakeFiles/app.dir/linkLibs.rsp new file mode 100644 index 0000000..0fac7de --- /dev/null +++ b/CMakeFiles/app.dir/linkLibs.rsp @@ -0,0 +1 @@ + screepsxx/libscreepsxx.a diff --git a/CMakeFiles/app.dir/objects1.rsp b/CMakeFiles/app.dir/objects1.rsp new file mode 100644 index 0000000..5c3200d --- /dev/null +++ b/CMakeFiles/app.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/app.dir/src/loop.cpp.o CMakeFiles/app.dir/src/spawn.cpp.o diff --git a/CMakeFiles/app.dir/progress.make b/CMakeFiles/app.dir/progress.make new file mode 100644 index 0000000..6a9dc74 --- /dev/null +++ b/CMakeFiles/app.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 + diff --git a/CMakeFiles/app.dir/src/loop.cpp.o b/CMakeFiles/app.dir/src/loop.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..df4ff1f285e1d5d02f70360de2946d772aab3710 GIT binary patch literal 38423 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 literal 0 HcmV?d00001 diff --git a/CMakeFiles/app.dir/src/structures/spawn.cpp.o.d b/CMakeFiles/app.dir/src/structures/spawn.cpp.o.d new file mode 100644 index 0000000..ae1a4f0 --- /dev/null +++ b/CMakeFiles/app.dir/src/structures/spawn.cpp.o.d @@ -0,0 +1,92 @@ +CMakeFiles/app.dir/src/structures/spawn.cpp.o: \ + /home/douwe/Projects/Screeps/src/structures/spawn.cpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Game.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Object.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/JS.hpp \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/val.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdint.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__config \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/pthread.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdint.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/alltypes.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/stdint.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/emscripten/wire.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdio.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdio.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/wasi/api.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stddef.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stddef.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__nullptr \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/features.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdlib \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdlib.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/stdlib.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/stdlib.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/alloca.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/math.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/math.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/math.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/type_traits \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstddef \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/version \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__undef_macros \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/memory \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/typeinfo \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/exception \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdint \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/new \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/utility \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tuple \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/initializer_list \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstring \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/string.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/string.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/strings.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__debug \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iosfwd \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wchar.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wchar.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wchar.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/iterator \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__functional_base \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/tuple \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/stdexcept \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/atomic \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/string_view \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__string \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/algorithm \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/functional \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/bit \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cstdio \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwchar \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cwctype \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/cctype \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/ctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/ctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/ctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/wctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/compat/wctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/wctype.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/array \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/vector \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__bit_reference \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/climits \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/limits.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libc/limits.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/lib/libc/musl/arch/emscripten/bits/limits.h \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__split_buffer \ + /home/douwe/Projects/Screeps/screepsxx/include/nlohmann/json_fwd.hpp \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/map \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__tree \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/__node_handle \ + /home/douwe/Projects/Screeps/emsdk/upstream/emscripten/system/include/libcxx/optional \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Room.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Constants.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/StructureSpawn.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/OwnedStructure.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/Structure.hpp \ + /home/douwe/Projects/Screeps/screepsxx/include/Screeps/RoomObject.hpp \ + /home/douwe/Projects/Screeps/include/structures/spawn.hpp diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/CMakeFiles/progress.marks b/CMakeFiles/progress.marks new file mode 100644 index 0000000..7facc89 --- /dev/null +++ b/CMakeFiles/progress.marks @@ -0,0 +1 @@ +36 diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b745906 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.16) + +project(example CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +# set(COMPILE_FLAGS --cache ${CMAKE_BINARY_DIR}/cache) +set(LINK_FLAGS -sASSERTIONS=0 -sMALLOC=emmalloc) +add_compile_options(${COMPILE_FLAGS}) +add_link_options(${COMPILE_FLAGS} ${LINK_FLAGS}) + +add_subdirectory(screepsxx) + + +# If you change TARGET_NAME, please, make corresponding changes in main.js. +set(TARGET_NAME app) + +include_directories(${CMAKE_SOURCE_DIR}/include) + +file(GLOB SRC_FILES ${CMAKE_SOURCE_DIR}/src/*.cpp) +add_executable(${TARGET_NAME} ${SRC_FILES}) +target_link_libraries(${TARGET_NAME} screepsxx) +target_link_options(${TARGET_NAME} PUBLIC -sMODULARIZE=1 --no-entry --bind -sEXPORT_ES6=0) + +# Collect all artifacts in 'dist' directory +# WASM-module and corresponding JS-module must have different base names in order to use them in Screeps, so we add suffixes. +add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${TARGET_NAME}.wasm ${CMAKE_SOURCE_DIR}/dist/${TARGET_NAME}_module.wasm) +add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${TARGET_NAME}.js ${CMAKE_SOURCE_DIR}/dist/${TARGET_NAME}_loader.js) +add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/js/main.js ${CMAKE_SOURCE_DIR}/dist/main.js) +add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/js/wasm_loader.js ${CMAKE_SOURCE_DIR}/dist/wasm_loader.js) + +# Following post-build step will automatically upload artifacts to +# official Screeps server. If you want to use it, please, +# set SCREEPS_TOKEN environment variable to your Screeps API token +# (https://docs.screeps.com/auth-tokens.html). +# If you don't want to use this script, please, remove following lines. +#find_package(Python COMPONENTS Interpreter REQUIRED) +#add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND ${Python_EXECUTABLE} ${screepsxx_SOURCE_DIR}/tools/upload.py ${CMAKE_SOURCE_DIR}/dist $ENV{SCREEPS_TOKEN}) diff --git a/Commands.js b/Commands.js deleted file mode 100644 index 0b5a22c..0000000 --- a/Commands.js +++ /dev/null @@ -1,61 +0,0 @@ - - -module.exports = { - setup(){ - global.fullReset = fullReset; - global.resetRooms = resetRooms; - global.resetStructures = resetStructures; - global.resetCreeps = resetCreeps; - global.resetConstruction = resetConstruction; - - global.buildRoads = buildRoads; - } -} - -function fullReset(){ - resetRooms(); - resetCreeps(); - resetStructures(); - resetConstruction(); - global.started = false; - global.compiled = false; - return "OK"; -} - -function resetRooms(){ - Object.values(Game.rooms).forEach(room => room.memory = {}); - return "OK"; -} - -function resetStructures(){ - Object.values(Game.structures).forEach(structure => structure.memory = {}); - return "OK"; -} - -function resetCreeps(){ - Object.values(Game.creeps).forEach(creep => creep.suicide()); - return "OK"; -} - -function resetConstruction(){ - Object.values(Game.rooms).forEach(room=>room.find(FIND_CONSTRUCTION_SITES).forEach(cs=>cs.remove())); - return "OK"; -} - -function buildRoads(){ - Object.values(Game.rooms).forEach(room=> - { - room.memory.layout.sources.forEach( - sId => { - const source = Game.getObjectById(sId); - var roads = []; - roads = roads.concat(source.pos.findPathTo(room.controller)); - roads.pop(); - roads = roads.concat(source.pos.findPathTo(room.find(FIND_MY_STRUCTURES, { filter:{ structureType:STRUCTURE_SPAWN }})[0])); - roads.pop(); - roads.forEach(tile => room.createConstructionSite(tile.x, tile.y, STRUCTURE_ROAD)); - } - ); - }); - return "OK"; -} \ No newline at end of file diff --git a/CreepClass.js b/CreepClass.js deleted file mode 100644 index 2a1f477..0000000 --- a/CreepClass.js +++ /dev/null @@ -1,45 +0,0 @@ -const jobBuilder = require("JobBuilder"); -const jobCleaner = require("JobCleaner"); -const jobMiner = require("JobMiner"); -const jobSupplier = require("JobSupplier"); -const jobUpgrader = require("JobUpgrader"); - -module.exports = { - setup: function () { - Creep.prototype = _Creep.prototype; - global.Role = Role; - } -} - -const Role = { - BUILDER: 0, - CLEANER: 1, - MINER: 2, - SUPPLIER: 3, - UPGRADER: 4 -} - -class _Creep extends Creep { - begin(){ - if(!this.memory.job) this.memory.job = { role: Role.HARVESTER }; - switch (this.memory.job.role) { - case Role.BUILDER: jobBuilder.begin(this); break; - case Role.CLEANER: jobCleaner.begin(this); break; - case Role.MINER: jobMiner.begin(this); break; - case Role.SUPPLIER: jobSupplier.begin(this); break; - case Role.UPGRADER: jobUpgrader.begin(this); break; - } - this.memory.init = true; - } - - tick(){ - if(!this.memory.init) this.begin(); - switch (this.memory.job.role) { - case Role.BUILDER: jobBuilder.tick(this); break; - case Role.CLEANER: jobCleaner.tick(this); break; - case Role.MINER: jobMiner.tick(this); break; - case Role.SUPPLIER: jobSupplier.tick(this); break; - case Role.UPGRADER: jobUpgrader.tick(this); break; - } - } -} \ No newline at end of file diff --git a/JobBuilder.js b/JobBuilder.js deleted file mode 100644 index 5a627c7..0000000 --- a/JobBuilder.js +++ /dev/null @@ -1,94 +0,0 @@ -module.exports = { - begin(creep){ - if(!creep.memory.collecting) creep.memory.collecting = false; - if(!creep.memory.counter) creep.memory.counter = 0; - }, - - tick(creep){ - if(creep.memory.collecting) { - GetEnergy(creep); - energyFullCheck(creep); - } - else { - BuildOrRepair(creep); - energyEmptyCheck(creep); - } - } -} - -function GetEnergy(creep){ - if(!creep.memory.target) findEnergyTarget(creep); - const target = Game.getObjectById(creep.memory.target); - if(!target) creep.memory.target = undefined; - if(creep.pos.isNearTo(target)) { - if(!target.store) creep.pickup(target); - else creep.withdraw(target, RESOURCE_ENERGY); - } - else creep.moveTo(target); -} - -function energyFullCheck(creep){ - if(!creep.store.getFreeCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = false; - creep.memory.target = undefined; - } -} - -function BuildOrRepair(creep){ - if(!creep.memory.target) findBuildOrRepairTarget(creep); - if(!creep.memory.target) return; - const target = Game.getObjectById(creep.memory.target); - if(!target) { creep.memory.target = undefined; return; } - if(target.hits && target.hits === target.hitsMax) { creep.memory.target = undefined; return; } - if(creep.pos.isNearTo(target)) - if(!target.hits) creep.build(target); - else creep.repair(target); - else creep.moveTo(target); -} - -function energyEmptyCheck(creep){ - if(!creep.store.getUsedCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = true; - creep.memory.target = undefined; - } -} - -function findEnergyTarget(creep){ - var target; - if(creep.room.storage && creep.room.storage.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY)) - target = creep.room.storage; - if(!target) target = creep.pos.findClosestByRange(FIND_STRUCTURES, { - filter: (st)=>{ - return st.structureType == STRUCTURE_CONTAINER && st.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - - if(!target) target = creep.pos.findClosestByRange(FIND_DROPPED_RESOURCES, { - filter: (r)=>{ - return r.resourceType == RESOURCE_ENERGY && r.amount > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_RUINS, { - filter: (r)=>{ - return r.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_TOMBSTONES, { - filter: (t)=>{ - return t.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - - if(target) creep.memory.target = target.id; -} - -function findBuildOrRepairTarget(creep) { - var target; - switch (creep.memory.counter%2) { - case 0: target = creep.pos.findClosestByRange(FIND_MY_CONSTRUCTION_SITES); break; - case 1: target = creep.pos.findClosestByRange(FIND_STRUCTURES, { - filter:(s)=> { - return s.hitsMax - s.hits - && s.structureType != STRUCTURE_WALL; - }}); - break; - } - if(target) creep.memory.target = target.id; - creep.memory.counter++; -} \ No newline at end of file diff --git a/JobCleaner.js b/JobCleaner.js deleted file mode 100644 index a95971d..0000000 --- a/JobCleaner.js +++ /dev/null @@ -1,81 +0,0 @@ -module.exports = { - begin(creep){ - if(!creep.memory.collecting) creep.memory.collecting = false; - }, - - tick(creep){ - if(creep.memory.collecting) { - searchForLooseEnergy(creep); - energyFullCheck(creep); - } - else { - DepositEnergy(creep); - energyEmptyCheck(creep); - } - } -} - -function searchForLooseEnergy(creep){ - if(!creep.memory.target) findLooseEnergyTarget(creep); - const target = Game.getObjectById(creep.memory.target); - if(!target) creep.memory.target = undefined; - if(creep.pos.isNearTo(target)) { - if(!target.store) creep.pickup(target); - else creep.withdraw(target, RESOURCE_ENERGY); - } - else creep.moveTo(target); -} - -function energyFullCheck(creep){ - if(!creep.store.getFreeCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = false; - creep.memory.target = undefined; - } -} - -function DepositEnergy(creep){ - if(!creep.memory.target) findDepositTarget(creep); - if(!creep.memory.target) return; - const target = Game.getObjectById(creep.memory.target); - if(target.store.getFreeCapacity(RESOURCE_ENERGY)==0) { creep.memory.target = undefined; creep.memory.counter++; } - if(creep.pos.isNearTo(target)) creep.transfer(target, RESOURCE_ENERGY); - else creep.moveTo(target); -} - -function energyEmptyCheck(creep){ - if(!creep.store.getUsedCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = true; - creep.memory.target = undefined; - } -} - -function findLooseEnergyTarget(creep){ - var target = creep.pos.findClosestByRange(FIND_DROPPED_RESOURCES, { - filter: (r)=>{ - return r.resourceType == RESOURCE_ENERGY && r.amount > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_RUINS, { - filter: (r)=>{ - return r.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_TOMBSTONES, { - filter: (t)=>{ - return t.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(target) creep.memory.target = target.id; -} - -function findDepositTarget(creep) { - var target = creep.pos.findClosestByRange(FIND_STRUCTURES, { - filter:(s)=> { - return s.structureType == STRUCTURE_CONTAINER - && s.store.getFreeCapacity(RESOURCE_ENERGY) > 1000; - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_MY_STRUCTURES, { - filter:(s)=> { - return (s.structureType == STRUCTURE_SPAWN || s.structureType == STRUCTURE_EXTENSION) - && s.store.getFreeCapacity(RESOURCE_ENERGY) > 0; - }}); - if(!target) target = creep.room.storage; - if(target) creep.memory.target = target.id; -} \ No newline at end of file diff --git a/JobMiner.js b/JobMiner.js deleted file mode 100644 index 054f780..0000000 --- a/JobMiner.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - begin(creep){}, - - tick(creep){ - const source = Game.getObjectById(creep.memory.job.source); - if(!creep.pos.isNearTo(source)) { creep.moveTo(source); return; } - if(!(Game.time%100)) scanForContainer(creep, source); - moveToContainer(creep); - creep.harvest(source); - } -} - -function moveToContainer(creep){ - const container = Game.getObjectById(creep.memory.container); - if(!container) return; - if(container.pos.x === creep.pos.x && container.pos.y === creep.pos.y) return; - creep.moveTo(container); -} - -function scanForContainer(creep, source){ - const container = source.pos.findInRange(FIND_STRUCTURES, 1, { - filter:{structureType:STRUCTURE_CONTAINER} - })[0]; - if(container) creep.memory.container = container.id; -} \ No newline at end of file diff --git a/JobSupplier.js b/JobSupplier.js deleted file mode 100644 index 7661fc5..0000000 --- a/JobSupplier.js +++ /dev/null @@ -1,90 +0,0 @@ -module.exports = { - begin(creep){ - if(!creep.memory.collecting) creep.memory.collecting = false; - }, - - tick(creep){ - if(creep.memory.collecting) { - withdrawEnergy(creep); - energyFullCheck(creep); - } - else { - transferEnergy(creep); - energyEmptyCheck(creep); - } - } -} - -function withdrawEnergy(creep){ - if(!creep.memory.target) findWithdrawTarget(creep); - const target = Game.getObjectById(creep.memory.target); - if(!target) creep.memory.target = undefined; - if(creep.pos.isNearTo(target)) { - if(!target.store) creep.pickup(target); - else creep.withdraw(target, RESOURCE_ENERGY); - } - else creep.moveTo(target); -} - -function energyFullCheck(creep){ - if(!creep.store.getFreeCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = false; - creep.memory.target = undefined; - } -} - -function transferEnergy(creep){ - if(!creep.memory.target) findTransferTarget(creep); - if(!creep.memory.target) return; - const target = Game.getObjectById(creep.memory.target); - if(target.store.getFreeCapacity(RESOURCE_ENERGY)==0) { creep.memory.target = undefined; creep.memory.counter++; } - if(creep.pos.isNearTo(target)) creep.transfer(target, RESOURCE_ENERGY); - else creep.moveTo(target); -} - -function energyEmptyCheck(creep){ - if(!creep.store.getUsedCapacity(RESOURCE_ENERGY)) { - creep.memory.collecting = true; - creep.memory.target = undefined; - } -} - -function findWithdrawTarget(creep){ - var target = creep.pos.findClosestByRange(FIND_DROPPED_RESOURCES, { - filter: (r)=>{ - return r.resourceType == RESOURCE_ENERGY && r.amount > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_RUINS, { - filter: (r)=>{ - return r.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_TOMBSTONES, { - filter: (t)=>{ - return t.store.getUsedCapacity(RESOURCE_ENERGY) > creep.store.getFreeCapacity(RESOURCE_ENERGY); - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_STRUCTURES, { - filter: (st)=>{ - return st.structureType == STRUCTURE_CONTAINER && st.store.getUsedCapacity(RESOURCE_ENERGY) > 1000; - }}); - if(target) creep.memory.target = target.id; -} - -function findTransferTarget(creep) { - var target = creep.pos.findClosestByRange(FIND_MY_STRUCTURES, { - filter:(s)=> { - return (s.structureType == STRUCTURE_EXTENSION) - && s.store.getFreeCapacity(RESOURCE_ENERGY) > 0; - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_MY_STRUCTURES, { - filter:(s)=> { - return (s.structureType == STRUCTURE_SPAWN) - && s.store.getFreeCapacity(RESOURCE_ENERGY) > 0; - }}); - if(!target) target = creep.pos.findClosestByRange(FIND_STRUCTURES, { - filter:(s)=> { - return s.structureType == STRUCTURE_CONTAINER - && s.store.getFreeCapacity(RESOURCE_ENERGY) > 1000; - }}) - if(!target) target = creep.room.storage; - if(target) creep.memory.target = target.id; -} \ No newline at end of file diff --git a/JobUpgrader.js b/JobUpgrader.js deleted file mode 100644 index 697b8bd..0000000 --- a/JobUpgrader.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - begin(creep){ - }, - - tick(creep){ - if(!creep.pos.isNearTo(creep.room.controller)) { creep.moveTo(creep.room.controller); return; } - if(creep.store.getUsedCapacity(RESOURCE_ENERGY) == 0) { getOrWaitForEnergy(creep); return; } - creep.upgradeController(creep.room.controller); - } -} - -function getOrWaitForEnergy(creep){ - if(!creep.memory.container) scanForContainer(creep); - if(creep.memory.container) getEnergyFromContainer(creep); -} - -function getEnergyFromContainer(creep){ - const container = Game.getObjectById(creep.memory.container); - if(creep.withdraw(container, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) creep.moveTo(container); -} - -// duplicate see miner -function scanForContainer(creep){ - const container = creep.room.controller.pos.findInRange(FIND_STRUCTURES, 1, { - filter:{structureType:STRUCTURE_CONTAINER} - })[0]; - if(container) creep.memory.container = container.id; -} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..af39ea9 --- /dev/null +++ b/Makefile @@ -0,0 +1,222 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.28 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/douwe/Projects/Screeps + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/douwe/Projects/Screeps + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles /home/douwe/Projects/Screeps//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/douwe/Projects/Screeps/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named app + +# Build rule for target. +app: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 app +.PHONY : app + +# fast build rule for target. +app/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/build +.PHONY : app/fast + +#============================================================================= +# Target rules for targets named screepsxx + +# Build rule for target. +screepsxx: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 screepsxx +.PHONY : screepsxx + +# fast build rule for target. +screepsxx/fast: + $(MAKE) $(MAKESILENT) -f screepsxx/CMakeFiles/screepsxx.dir/build.make screepsxx/CMakeFiles/screepsxx.dir/build +.PHONY : screepsxx/fast + +src/loop.o: src/loop.cpp.o +.PHONY : src/loop.o + +# target to build an object file +src/loop.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/loop.cpp.o +.PHONY : src/loop.cpp.o + +src/loop.i: src/loop.cpp.i +.PHONY : src/loop.i + +# target to preprocess a source file +src/loop.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/loop.cpp.i +.PHONY : src/loop.cpp.i + +src/loop.s: src/loop.cpp.s +.PHONY : src/loop.s + +# target to generate assembly for a file +src/loop.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/loop.cpp.s +.PHONY : src/loop.cpp.s + +src/spawn.o: src/spawn.cpp.o +.PHONY : src/spawn.o + +# target to build an object file +src/spawn.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/spawn.cpp.o +.PHONY : src/spawn.cpp.o + +src/spawn.i: src/spawn.cpp.i +.PHONY : src/spawn.i + +# target to preprocess a source file +src/spawn.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/spawn.cpp.i +.PHONY : src/spawn.cpp.i + +src/spawn.s: src/spawn.cpp.s +.PHONY : src/spawn.s + +# target to generate assembly for a file +src/spawn.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/src/spawn.cpp.s +.PHONY : src/spawn.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... app" + @echo "... screepsxx" + @echo "... src/loop.o" + @echo "... src/loop.i" + @echo "... src/loop.s" + @echo "... src/spawn.o" + @echo "... src/spawn.i" + @echo "... src/spawn.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/Math.js b/Math.js deleted file mode 100644 index 206b162..0000000 --- a/Math.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - clamp: function(v, min, max){ - if(vs.id); - room.memory.layout.containers = room.find(FIND_MY_STRUCTURES, {filter:{structureType:STRUCTURE_CONTAINER}}).map(c=>c.id); -} - -function jobScan(room){ - if(!room.memory.jobs) room.memory.jobs = [{role:Role.UPGRADER}] - .concat(Array(4).fill({role: Role.BUILDER})) - .concat(Array(2).fill({role: Role.SUPPLIER})) - .concat(room.memory.layout.sources.map(s=> {return {role: Role.MINER, source: s}})); -} - -function vacancyScan(room){ - const activeJobs = room.find(FIND_MY_CREEPS).map(creep=>creep.memory.job); - const jobs = room.memory.jobs.filter((j)=>{ - const index = activeJobs.findIndex(aj=> _.isEqual(aj,j)); - if(index < 0) return true; - activeJobs.splice(index,1); - return false; - }); - room.memory.vacancies = jobs; -} - diff --git a/Structure.js b/Structure.js deleted file mode 100644 index 9343958..0000000 --- a/Structure.js +++ /dev/null @@ -1,21 +0,0 @@ -const spawnClass = require("StructureSpawnClass"); - -module.exports = { - setup() { - spawnClass.setup(); - }, - - begin(structure){ - switch (structure.structureType) { - case STRUCTURE_SPAWN: structure.begin(); break; - default: break; - } - }, - - tick(structure){ - switch (structure.structureType) { - case STRUCTURE_SPAWN: structure.tick(); break; - default: break; - } - } -} \ No newline at end of file diff --git a/StructureSpawnClass.js b/StructureSpawnClass.js deleted file mode 100644 index 5193414..0000000 --- a/StructureSpawnClass.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = { - setup: function () { StructureSpawn.prototype = _StructureSpawn.prototype; } -} - -class _StructureSpawn extends StructureSpawn { - begin(){ - if (!this.memory.creepCounter) this.memory.creepCounter = 0; - this.memory.init = true; - } - - tick(){ - if(!this.memory.init) this.begin(); - if(Game.time%100) return; - if(this.room.energyAvailable < 300) return; - const job = this.room.memory.vacancies.pop(); - if(job){ - const name = getJobName(job.role); - const body = getBodyByJob(job.role, this.room.energyAvailable); - if(this.createCreep(job, name, body) != OK) this.room.memory.vacancies.push(job); - } - } - - createCreep(job, name, body) { - const response = this.spawnCreep(body, name + ": " + this.memory.creepCounter, { - memory: { job: job } - }); - if (response == OK) this.memory.creepCounter++; - return response; - } -} - -function getJobName(role){ - switch (role) { - case Role.BUILDER: return "Bob"; - case Role.MINER: return "minny"; - case Role.SUPPLIER: return "Sully"; - case Role.UPGRADER: return "Uppa"; - } -} - -function getBodyByJob(role, energyAvailability){ - const body = []; - switch (role) { - case Role.BUILDER: body.push(WORK); energyAvailability -= 100; break; - case Role.UPGRADER: body.push(CARRY); body.push(MOVE); energyAvailability -= 100; break; - case Role.MINER: body.push(MOVE); energyAvailability -= 100; break; - } - - var unitEnergyCost = 0; - while(unitEnergyCost <= energyAvailability) { - switch (role) { - case Role.BUILDER: body.push(MOVE); body.push(CARRY); unitEnergyCost = 100; break; - case Role.UPGRADER: - case Role.MINER: - body.push(WORK); unitEnergyCost = 100; - if(role === Role.MINER && body.length > 5) energyAvailability = -1; - break; - case Role.SUPPLIER: body.push(CARRY); body.push(MOVE); unitEnergyCost = 100; break; - default: energyAvailability = -1; break; - } - energyAvailability -= unitEnergyCost; - } - return body; -} \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..d782b10 --- /dev/null +++ b/app.js @@ -0,0 +1,22 @@ + +var Module = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(Module) { + Module = Module || {}; + +var Module=typeof Module!=="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":485,"maximum":485+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5287392,DYNAMIC_BASE=5287392,DYNAMICTOP_PTR=44352;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":2147483648/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="app.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={2496:function(){console.log("Starting loop...")},4064:function(){console.log("Processing Spawns..")},4104:function($0){console.log("creepcount: "+$0)}};function _emscripten_asm_const_iii(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=prev-1;return prev===1}}var exceptionLast=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_instanceof(object,constructor){object=requireHandle(object);constructor=requireHandle(constructor);return object instanceof constructor}function __emval_new_array(){return __emval_register([])}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _emscripten_get_sbrk_ptr(){return 44352}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var ASSERTIONS=false;var asmLibraryArg={"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_atexit":___cxa_atexit,"__cxa_throw":___cxa_throw,"_embind_register_bool":__embind_register_bool,"_embind_register_emval":__embind_register_emval,"_embind_register_float":__embind_register_float,"_embind_register_function":__embind_register_function,"_embind_register_integer":__embind_register_integer,"_embind_register_memory_view":__embind_register_memory_view,"_embind_register_std_string":__embind_register_std_string,"_embind_register_std_wstring":__embind_register_std_wstring,"_embind_register_void":__embind_register_void,"_emval_as":__emval_as,"_emval_call_method":__emval_call_method,"_emval_call_void_method":__emval_call_void_method,"_emval_decref":__emval_decref,"_emval_get_global":__emval_get_global,"_emval_get_method_caller":__emval_get_method_caller,"_emval_get_property":__emval_get_property,"_emval_incref":__emval_incref,"_emval_instanceof":__emval_instanceof,"_emval_new_array":__emval_new_array,"_emval_new_cstring":__emval_new_cstring,"_emval_run_destructors":__emval_run_destructors,"_emval_set_property":__emval_set_property,"_emval_take_value":__emval_take_value,"abort":_abort,"emscripten_asm_const_iii":_emscripten_asm_const_iii,"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"memory":wasmMemory,"table":wasmTable};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _loop=Module["_loop"]=function(){return(_loop=Module["_loop"]=Module["asm"]["loop"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["__getTypeName"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["dynCall_vi"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["dynCall_v"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["dynCall_viiiiii"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["dynCall_viiiii"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["dynCall_viiii"]).apply(null,arguments)};var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); + + + return Module.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Module; + else if (typeof define === 'function' && define['amd']) + define([], function() { return Module; }); + else if (typeof exports === 'object') + exports["Module"] = Module; + \ No newline at end of file diff --git a/app.wasm b/app.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e05679bcb48a184dcdb48e50a46f9aac8a2ffa84 GIT binary patch literal 299357 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%0A}vu0xQ1G8Ls&lBo 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["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":485,"maximum":485+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5287392,DYNAMIC_BASE=5287392,DYNAMICTOP_PTR=44352;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":2147483648/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="app.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={2496:function(){console.log("Starting loop...")},4064:function(){console.log("Processing Spawns..")},4104:function($0){console.log("creepcount: "+$0)}};function _emscripten_asm_const_iii(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=prev-1;return prev===1}}var exceptionLast=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_instanceof(object,constructor){object=requireHandle(object);constructor=requireHandle(constructor);return object instanceof constructor}function __emval_new_array(){return __emval_register([])}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _emscripten_get_sbrk_ptr(){return 44352}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var ASSERTIONS=false;var asmLibraryArg={"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_atexit":___cxa_atexit,"__cxa_throw":___cxa_throw,"_embind_register_bool":__embind_register_bool,"_embind_register_emval":__embind_register_emval,"_embind_register_float":__embind_register_float,"_embind_register_function":__embind_register_function,"_embind_register_integer":__embind_register_integer,"_embind_register_memory_view":__embind_register_memory_view,"_embind_register_std_string":__embind_register_std_string,"_embind_register_std_wstring":__embind_register_std_wstring,"_embind_register_void":__embind_register_void,"_emval_as":__emval_as,"_emval_call_method":__emval_call_method,"_emval_call_void_method":__emval_call_void_method,"_emval_decref":__emval_decref,"_emval_get_global":__emval_get_global,"_emval_get_method_caller":__emval_get_method_caller,"_emval_get_property":__emval_get_property,"_emval_incref":__emval_incref,"_emval_instanceof":__emval_instanceof,"_emval_new_array":__emval_new_array,"_emval_new_cstring":__emval_new_cstring,"_emval_run_destructors":__emval_run_destructors,"_emval_set_property":__emval_set_property,"_emval_take_value":__emval_take_value,"abort":_abort,"emscripten_asm_const_iii":_emscripten_asm_const_iii,"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"memory":wasmMemory,"table":wasmTable};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _loop=Module["_loop"]=function(){return(_loop=Module["_loop"]=Module["asm"]["loop"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["__getTypeName"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["dynCall_vi"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["dynCall_v"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["dynCall_viiiiii"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["dynCall_viiiii"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["dynCall_viiii"]).apply(null,arguments)};var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); + + + return Module.ready +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Module; + else if (typeof define === 'function' && define['amd']) + define([], function() { return Module; }); + else if (typeof exports === 'object') + exports["Module"] = Module; + \ No newline at end of file diff --git a/dist/app_module.wasm b/dist/app_module.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e05679bcb48a184dcdb48e50a46f9aac8a2ffa84 GIT binary patch literal 299357 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%0A}vu0xQ1G8Ls&lBo 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 { + console.log("WASM module loaded."); + mod = instance; +}); + +module.exports.loop = function () { + if (mod !== undefined) + mod.loop(); +} diff --git a/dist/wasm_loader.js b/dist/wasm_loader.js new file mode 100644 index 0000000..d2a8fcc --- /dev/null +++ b/dist/wasm_loader.js @@ -0,0 +1,24 @@ +'use strict'; + +module.exports = ((mod_js, mod_wasm, opts) => { + + const mod_file = require(mod_js); + const bin_file = require(mod_wasm); + + opts = opts || {}; + + opts.wasmBinary = bin_file; + opts.print = opts.print || ((text) => console.log(text)); + opts.printErr = opts.printErr || ((text) => console.log(`error: ${text}`)); + opts.onAbort = opts.onAbort || (() => console.log('WASM aborted!!!')); + + // == don't call main() + if (typeof opts.noInitialRun === "undefined") + opts.noInitialRun = true; + + // == don't terminate after returning from main() + if (typeof opts.noExitRuntime === "undefined") + opts.noExitRuntime = true; + + return mod_file(opts); +}); diff --git a/emsdk b/emsdk new file mode 160000 index 0000000..f39e849 --- /dev/null +++ b/emsdk @@ -0,0 +1 @@ +Subproject commit f39e849effe1bd679aa9ef3cd1798d327c9619db diff --git a/include/structures/spawn.hpp b/include/structures/spawn.hpp new file mode 100644 index 0000000..249ae13 --- /dev/null +++ b/include/structures/spawn.hpp @@ -0,0 +1,10 @@ +class SpawnManager +{ +private: + /* data */ +public: + SpawnManager(){} + ~SpawnManager(){} + + void process(); +}; diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..e465b62 --- /dev/null +++ b/js/main.js @@ -0,0 +1,14 @@ +'use strict'; + +const wasm_loader = require('wasm_loader') + +var mod; +wasm_loader('app_loader', 'app_module').then((instance) => { + console.log("WASM module loaded."); + mod = instance; +}); + +module.exports.loop = function () { + if (mod !== undefined) + mod.loop(); +} diff --git a/js/wasm_loader.js b/js/wasm_loader.js new file mode 100644 index 0000000..d2a8fcc --- /dev/null +++ b/js/wasm_loader.js @@ -0,0 +1,24 @@ +'use strict'; + +module.exports = ((mod_js, mod_wasm, opts) => { + + const mod_file = require(mod_js); + const bin_file = require(mod_wasm); + + opts = opts || {}; + + opts.wasmBinary = bin_file; + opts.print = opts.print || ((text) => console.log(text)); + opts.printErr = opts.printErr || ((text) => console.log(`error: ${text}`)); + opts.onAbort = opts.onAbort || (() => console.log('WASM aborted!!!')); + + // == don't call main() + if (typeof opts.noInitialRun === "undefined") + opts.noInitialRun = true; + + // == don't terminate after returning from main() + if (typeof opts.noExitRuntime === "undefined") + opts.noExitRuntime = true; + + return mod_file(opts); +}); diff --git a/main.js b/main.js deleted file mode 100644 index ac48d7c..0000000 --- a/main.js +++ /dev/null @@ -1,44 +0,0 @@ -const Commands = require("Commands"); -const CreepClass = require("CreepClass"); -const RoomClass = require("RoomClass"); -const Structure = require("Structure"); - -module.exports.loop = function () { - if(!global.compiled) onRecompile(); - else if (!global.started) onRestart(); - else onTick(); -} - -function onRecompile(){ - setupClasses(); - console.log("Script recompiled..."); - global.compiled = true; -} - -function onRestart(){ - Object.values(Game.rooms).forEach(room => room.begin()); - Object.values(Game.creeps).forEach(creep => creep.begin()); - Object.values(Game.structures).forEach(structure => Structure.begin(structure)); - global.started = true; -} - -function onTick(){ - Object.values(Game.rooms).forEach(room => room.tick()); - Object.values(Game.creeps).forEach(creep => creep.tick()); - Object.values(Game.structures).forEach(structure => Structure.tick(structure)); - if(!(Game.time % 100)) cleanUp(); -} - - -function setupClasses(){ - Commands.setup(); - CreepClass.setup(); - RoomClass.setup(); - Structure.setup(); -} - -function cleanUp(){ - Object.keys(Memory.rooms).forEach(roomName => { if(!Game.rooms[roomName]) Memory.rooms[roomName] = undefined; }); - Object.keys(Memory.creeps).forEach(creepName => { if(!Game.creeps[creepName]) Memory.creeps[creepName] = undefined; }); -} - diff --git a/running notes.txt b/running notes.txt new file mode 100644 index 0000000..9554498 --- /dev/null +++ b/running notes.txt @@ -0,0 +1,15 @@ +# Emsdk +Use emsdk 2.0.0 to only use ES5 syntax for js. + +cd emsdk && \ +./emsdk install 2.0.0 && \ +./emsdk activate 2.0.0 && \ +source ./emsdk_env.sh && \ +cd .. + +# Cmake +In screeps project run dit om cmake setup in te stellen: +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake . + +Run dit om de code te compilen: +cmake --build . \ No newline at end of file diff --git a/screepsxx b/screepsxx new file mode 160000 index 0000000..8500506 --- /dev/null +++ b/screepsxx @@ -0,0 +1 @@ +Subproject commit 8500506e1c2bb0fe6c399177922019b5dab7adff diff --git a/src/loop.cpp b/src/loop.cpp new file mode 100644 index 0000000..c637b6f --- /dev/null +++ b/src/loop.cpp @@ -0,0 +1,29 @@ +#include +#include +#include + +#include +#include +#include + +#include "structures/spawn.hpp" + +EMSCRIPTEN_KEEPALIVE +extern "C" void loop() +{ + Screeps::Context::update(); + + EM_ASM({ console.log('Starting loop...'); }); + + auto spawnManager = SpawnManager(); + spawnManager.process(); + + auto creeps = Screeps::Game.creeps(); + for (auto& creep : creeps) + creep.second.say("screepsxx"); +} + +EMSCRIPTEN_BINDINGS(loop) +{ + emscripten::function("loop", &loop); +} diff --git a/src/spawn.cpp b/src/spawn.cpp new file mode 100644 index 0000000..5c1bf51 --- /dev/null +++ b/src/spawn.cpp @@ -0,0 +1,18 @@ +#include +#include +#include + +#include + +#include "structures/spawn.hpp" + +void SpawnManager::process() +{ + for (auto& spawn : Screeps::Game.spawns()) + { + int creepcount = spawn.second.room().find(Screeps::FIND_MY_CREEPS, nullptr).size(); + // EM_ASM({ console.log('creepcount: ' + $0); }, creepcount); + if (creepcount >= 3) continue; + int resp = spawn.second.spawnCreep({"work", "carry", "move"}, "harvester" + std::to_string(creepcount + 1)); + } +} \ No newline at end of file