From 9d3914d46e7ccf24f49eaacb60260698db0e5969 Mon Sep 17 00:00:00 2001 From: Scott Duensing Date: Thu, 14 Sep 2023 21:50:26 -0500 Subject: [PATCH] New version with edge binary no longer embedded. --- .gitignore | 1 + build.sh => build-godot.sh | 4 +- build-n2n.sh | 28 + custom.py | 3 +- edit.sh | 4 +- godot/.gitignore | 18 +- godot/COPYRIGHT.txt | 10 +- godot/SConstruct | 17 +- godot/core/config/engine.cpp | 12 + godot/core/config/engine.h | 6 + godot/core/config/project_settings.cpp | 22 +- godot/core/config/project_settings.h | 2 + godot/core/core_bind.cpp | 12 + godot/core/core_bind.h | 1 + godot/core/core_constants.cpp | 8 +- godot/core/crypto/crypto_core.cpp | 2 +- godot/core/crypto/hashing_context.cpp | 6 +- godot/core/debugger/engine_profiler.h | 4 +- godot/core/debugger/remote_debugger.cpp | 4 +- godot/core/extension/extension_api_dump.cpp | 3 + godot/core/extension/gdextension.cpp | 123 +- godot/core/extension/gdextension.h | 18 + .../core/extension/gdextension_interface.cpp | 79 +- godot/core/extension/gdextension_interface.h | 135 +- godot/core/extension/gdextension_manager.cpp | 2 + godot/core/input/godotcontrollerdb.txt | 3 - godot/core/input/input.cpp | 76 +- godot/core/input/input.h | 3 +- godot/core/input/input_builders.py | 1 - godot/core/input/input_event.cpp | 22 +- godot/core/io/compression.cpp | 2 +- godot/core/io/file_access_memory.cpp | 16 +- godot/core/io/file_access_zip.cpp | 4 +- godot/core/io/image.cpp | 28 +- godot/core/io/image.h | 4 +- godot/core/io/ip.cpp | 2 +- godot/core/io/marshalls.cpp | 4 +- godot/core/io/packed_data_container.cpp | 6 +- godot/core/io/packet_peer.h | 1 - godot/core/io/pck_packer.cpp | 4 +- godot/core/io/remote_filesystem_client.h | 4 +- godot/core/io/resource.cpp | 5 + godot/core/io/resource.h | 2 + godot/core/io/resource_format_binary.cpp | 1 + godot/core/io/resource_loader.cpp | 3 +- godot/core/io/resource_loader.h | 1 - godot/core/io/resource_saver.cpp | 2 +- godot/core/io/resource_saver.h | 1 - godot/core/io/stream_peer.h | 1 - godot/core/io/stream_peer_gzip.cpp | 4 +- godot/core/io/xml_parser.cpp | 4 +- godot/core/io/zip_io.cpp | 14 +- godot/core/math/a_star.h | 1 - godot/core/math/a_star_grid_2d.h | 1 - godot/core/math/disjoint_set.h | 2 +- godot/core/math/dynamic_bvh.h | 2 +- godot/core/math/math_funcs.h | 11 + godot/core/object/class_db.cpp | 75 +- godot/core/object/class_db.h | 32 +- godot/core/object/make_virtuals.py | 2 + godot/core/object/object.cpp | 65 +- godot/core/object/object.h | 10 +- godot/core/object/ref_counted.h | 2 +- godot/core/object/script_instance.cpp | 71 + godot/core/object/script_instance.h | 98 + godot/core/object/script_language.cpp | 36 +- godot/core/object/script_language.h | 68 +- .../core/object/script_language_extension.cpp | 1 + godot/core/object/script_language_extension.h | 48 +- godot/core/object/undo_redo.cpp | 8 +- godot/core/object/worker_thread_pool.cpp | 4 +- godot/core/os/keyboard.cpp | 3 + godot/core/os/keyboard.h | 2 + godot/core/os/main_loop.h | 1 - godot/core/os/memory.cpp | 6 +- godot/core/os/memory.h | 2 +- godot/core/os/os.h | 4 + godot/core/os/pool_allocator.cpp | 14 +- godot/core/string/node_path.cpp | 8 +- godot/core/string/print_string.cpp | 2 +- godot/core/string/string_name.cpp | 4 +- godot/core/string/translation.h | 1 - godot/core/string/ustring.cpp | 35 +- godot/core/string/ustring.h | 1 + godot/core/templates/command_queue_mt.h | 2 +- godot/core/templates/cowdata.h | 6 +- godot/core/templates/list.h | 2 +- godot/core/templates/paged_array.h | 6 +- godot/core/templates/rid_owner.h | 6 +- godot/core/typedefs.h | 2 +- godot/core/variant/array.cpp | 2 +- godot/core/variant/callable.cpp | 8 +- godot/core/variant/callable_bind.cpp | 4 +- godot/core/variant/container_type_validate.h | 2 +- godot/core/variant/dictionary.cpp | 2 +- godot/core/variant/typed_array.h | 3 + godot/core/variant/variant.cpp | 18 +- godot/core/variant/variant_call.cpp | 39 +- godot/core/variant/variant_op.h | 4 +- godot/core/variant/variant_parser.cpp | 58 +- godot/core/variant/variant_parser.h | 2 +- godot/core/variant/variant_setget.cpp | 6 +- godot/core/variant/variant_utility.cpp | 103 +- godot/core/variant/variant_utility.h | 3 + godot/doc/class.xsd | 2 + godot/doc/classes/@GlobalScope.xml | 87 +- godot/doc/classes/AnimatableBody2D.xml | 2 +- godot/doc/classes/AnimatableBody3D.xml | 2 +- godot/doc/classes/Array.xml | 13 +- godot/doc/classes/ArrayOccluder3D.xml | 1 + godot/doc/classes/AudioServer.xml | 3 +- godot/doc/classes/AudioStreamMicrophone.xml | 1 + godot/doc/classes/AudioStreamRandomizer.xml | 4 +- godot/doc/classes/BackBufferCopy.xml | 4 +- godot/doc/classes/BaseMaterial3D.xml | 14 +- godot/doc/classes/BoxOccluder3D.xml | 1 + godot/doc/classes/CPUParticles2D.xml | 2 +- godot/doc/classes/CPUParticles3D.xml | 3 +- godot/doc/classes/Callable.xml | 2 +- godot/doc/classes/CallbackTweener.xml | 1 + .../doc/classes/CameraAttributesPhysical.xml | 1 + godot/doc/classes/CodeEdit.xml | 52 + godot/doc/classes/Color.xml | 2 +- godot/doc/classes/CompressedCubemap.xml | 2 +- godot/doc/classes/CompressedCubemapArray.xml | 2 +- godot/doc/classes/ConcavePolygonShape2D.xml | 4 +- godot/doc/classes/Control.xml | 1 + godot/doc/classes/ConvexPolygonShape2D.xml | 4 +- godot/doc/classes/CryptoKey.xml | 1 + godot/doc/classes/Cubemap.xml | 2 +- godot/doc/classes/CubemapArray.xml | 10 +- godot/doc/classes/Curve.xml | 4 +- godot/doc/classes/CurveTexture.xml | 4 +- godot/doc/classes/CurveXYZTexture.xml | 4 +- godot/doc/classes/DirectionalLight3D.xml | 3 +- godot/doc/classes/DisplayServer.xml | 14 +- godot/doc/classes/EditorDebuggerPlugin.xml | 2 +- godot/doc/classes/EditorExportPlatform.xml | 9 + godot/doc/classes/EditorPlugin.xml | 8 +- godot/doc/classes/EditorResourcePreview.xml | 2 +- .../EditorResourcePreviewGenerator.xml | 4 +- .../classes/EditorResourceTooltipPlugin.xml | 2 +- godot/doc/classes/EditorSettings.xml | 24 +- godot/doc/classes/EditorSyntaxHighlighter.xml | 2 +- godot/doc/classes/EditorVCSInterface.xml | 1 + godot/doc/classes/Environment.xml | 2 +- godot/doc/classes/FileAccess.xml | 2 +- godot/doc/classes/FogMaterial.xml | 2 +- godot/doc/classes/FogVolume.xml | 3 +- godot/doc/classes/Font.xml | 4 + godot/doc/classes/FontFile.xml | 17 + godot/doc/classes/FontVariation.xml | 2 +- godot/doc/classes/GPUParticles2D.xml | 11 +- godot/doc/classes/GPUParticles3D.xml | 11 +- godot/doc/classes/GPUParticlesAttractor3D.xml | 4 +- .../classes/GPUParticlesAttractorBox3D.xml | 5 +- .../classes/GPUParticlesAttractorSphere3D.xml | 5 +- .../GPUParticlesAttractorVectorField3D.xml | 5 +- godot/doc/classes/GPUParticlesCollision3D.xml | 4 +- .../classes/GPUParticlesCollisionBox3D.xml | 5 +- .../GPUParticlesCollisionHeightField3D.xml | 6 +- .../classes/GPUParticlesCollisionSDF3D.xml | 4 +- .../classes/GPUParticlesCollisionSphere3D.xml | 5 +- godot/doc/classes/Geometry3D.xml | 7 + godot/doc/classes/GeometryInstance3D.xml | 1 + godot/doc/classes/Gradient.xml | 8 +- godot/doc/classes/GradientTexture1D.xml | 6 +- godot/doc/classes/GradientTexture2D.xml | 4 +- godot/doc/classes/GraphEdit.xml | 18 +- godot/doc/classes/GraphElement.xml | 69 + godot/doc/classes/GraphNode.xml | 251 +- godot/doc/classes/Image.xml | 14 +- godot/doc/classes/Input.xml | 6 +- godot/doc/classes/InputEventWithModifiers.xml | 4 +- godot/doc/classes/Label3D.xml | 1 + godot/doc/classes/Light3D.xml | 1 + godot/doc/classes/LightmapGI.xml | 4 + godot/doc/classes/Line2D.xml | 63 +- godot/doc/classes/LineEdit.xml | 6 +- godot/doc/classes/Material.xml | 4 +- godot/doc/classes/MeshDataTool.xml | 18 +- godot/doc/classes/MethodTweener.xml | 1 + godot/doc/classes/MultiMesh.xml | 3 +- godot/doc/classes/MultiMeshInstance3D.xml | 2 +- godot/doc/classes/NavigationAgent3D.xml | 4 +- godot/doc/classes/NavigationMesh.xml | 2 +- godot/doc/classes/NavigationObstacle2D.xml | 2 +- godot/doc/classes/NavigationObstacle3D.xml | 2 +- godot/doc/classes/NavigationServer3D.xml | 9 + godot/doc/classes/Node.xml | 21 +- godot/doc/classes/Node3D.xml | 3 + godot/doc/classes/NodePath.xml | 2 +- godot/doc/classes/ORMMaterial3D.xml | 2 +- godot/doc/classes/OS.xml | 12 +- godot/doc/classes/Object.xml | 85 +- godot/doc/classes/Occluder3D.xml | 1 + godot/doc/classes/OccluderInstance3D.xml | 1 + godot/doc/classes/OmniLight3D.xml | 1 + godot/doc/classes/OptionButton.xml | 9 +- godot/doc/classes/PanoramaSkyMaterial.xml | 4 +- godot/doc/classes/ParticleProcessMaterial.xml | 6 +- godot/doc/classes/PhysicalSkyMaterial.xml | 2 +- godot/doc/classes/PlaceholderCubemap.xml | 10 +- godot/doc/classes/PlaceholderCubemapArray.xml | 10 +- godot/doc/classes/PolygonOccluder3D.xml | 1 + godot/doc/classes/PopupMenu.xml | 4 + godot/doc/classes/ProceduralSkyMaterial.xml | 8 +- godot/doc/classes/ProjectSettings.xml | 24 +- godot/doc/classes/QuadOccluder3D.xml | 1 + godot/doc/classes/RDShaderSPIRV.xml | 2 +- godot/doc/classes/RayCast2D.xml | 6 +- godot/doc/classes/RayCast3D.xml | 6 +- godot/doc/classes/RenderingDevice.xml | 22 +- godot/doc/classes/RenderingServer.xml | 3 +- godot/doc/classes/Resource.xml | 16 +- .../ResourceImporterCSVTranslation.xml | 2 +- .../ResourceImporterLayeredTexture.xml | 2 +- godot/doc/classes/ResourceImporterTexture.xml | 2 +- godot/doc/classes/RichTextLabel.xml | 7 + godot/doc/classes/SceneTree.xml | 2 + godot/doc/classes/ScriptExtension.xml | 5 + godot/doc/classes/ScrollContainer.xml | 8 +- godot/doc/classes/ShaderGlobalsOverride.xml | 3 +- godot/doc/classes/ShaderMaterial.xml | 7 +- godot/doc/classes/Sky.xml | 4 +- godot/doc/classes/SphereOccluder3D.xml | 1 + godot/doc/classes/SpotLight3D.xml | 1 + godot/doc/classes/SpringArm3D.xml | 2 +- godot/doc/classes/StandardMaterial3D.xml | 2 +- godot/doc/classes/StaticBody2D.xml | 2 +- godot/doc/classes/StaticBody3D.xml | 2 +- godot/doc/classes/String.xml | 6 + godot/doc/classes/StringName.xml | 6 + godot/doc/classes/StyleBox.xml | 2 +- godot/doc/classes/SurfaceTool.xml | 3 +- godot/doc/classes/TextEdit.xml | 2 +- godot/doc/classes/TextMesh.xml | 1 + godot/doc/classes/TextServer.xml | 68 +- godot/doc/classes/TextServerExtension.xml | 49 + godot/doc/classes/TileMap.xml | 35 +- godot/doc/classes/TileSet.xml | 8 +- godot/doc/classes/TileSetAtlasSource.xml | 27 + godot/doc/classes/Tree.xml | 5 +- godot/doc/classes/TreeItem.xml | 15 + godot/doc/classes/Tween.xml | 2 +- godot/doc/classes/VideoStream.xml | 1 + godot/doc/classes/VideoStreamPlayer.xml | 1 + godot/doc/classes/Viewport.xml | 9 + godot/doc/classes/ViewportTexture.xml | 2 +- godot/doc/classes/VisualShader.xml | 4 +- godot/doc/classes/VisualShaderNode.xml | 6 +- godot/doc/classes/VisualShaderNodeIf.xml | 4 +- godot/doc/classes/VoxelGI.xml | 2 +- godot/doc/classes/Window.xml | 6 + godot/doc/classes/X509Certificate.xml | 1 + godot/doc/classes/XMLParser.xml | 80 +- godot/doc/classes/XRAnchor3D.xml | 1 + godot/doc/classes/XRInterface.xml | 3 + godot/doc/classes/XRInterfaceExtension.xml | 1 + godot/doc/classes/XRNode3D.xml | 9 + godot/doc/classes/XRPose.xml | 1 + godot/doc/classes/XRPositionalTracker.xml | 6 + godot/doc/classes/int.xml | 17 +- godot/doc/translations/es.po | 3782 +- godot/doc/translations/fr.po | 3480 +- godot/doc/translations/zh_CN.po | 56625 +++++++++++----- godot/drivers/alsa/audio_driver_alsa.cpp | 2 +- .../coreaudio/audio_driver_coreaudio.cpp | 2 +- godot/drivers/gl_context/SCsub | 2 +- .../drivers/gles3/rasterizer_canvas_gles3.cpp | 24 +- godot/drivers/gles3/rasterizer_canvas_gles3.h | 2 +- godot/drivers/gles3/rasterizer_gles3.cpp | 2 +- .../drivers/gles3/rasterizer_scene_gles3.cpp | 2 +- godot/drivers/gles3/shader_gles3.cpp | 2 +- godot/drivers/gles3/shader_gles3.h | 2 +- .../drivers/gles3/shaders/particles_copy.glsl | 7 +- godot/drivers/gles3/shaders/scene.glsl | 9 +- godot/drivers/gles3/storage/config.cpp | 16 +- godot/drivers/gles3/storage/config.h | 16 +- .../gles3/storage/material_storage.cpp | 11 +- godot/drivers/gles3/storage/mesh_storage.cpp | 6 +- .../pulseaudio/audio_driver_pulseaudio.cpp | 2 +- godot/drivers/unix/ip_unix.cpp | 65 +- .../vulkan/rendering_device_vulkan.cpp | 249 +- .../drivers/vulkan/rendering_device_vulkan.h | 7 +- godot/drivers/vulkan/vulkan_context.cpp | 64 +- godot/drivers/wasapi/audio_driver_wasapi.cpp | 2 +- godot/drivers/windows/dir_access_windows.cpp | 26 +- godot/drivers/windows/file_access_windows.cpp | 39 +- .../drivers/xaudio2/audio_driver_xaudio2.cpp | 2 +- godot/editor/action_map_editor.cpp | 37 +- godot/editor/animation_bezier_editor.cpp | 51 +- godot/editor/animation_track_editor.cpp | 209 +- .../editor/animation_track_editor_plugins.cpp | 31 +- godot/editor/code_editor.cpp | 81 +- godot/editor/connections_dialog.cpp | 420 +- godot/editor/connections_dialog.h | 36 +- godot/editor/create_dialog.cpp | 35 +- .../editor/debugger/editor_debugger_node.cpp | 25 +- godot/editor/debugger/editor_debugger_node.h | 1 + .../editor/debugger/editor_debugger_tree.cpp | 8 +- .../debugger/editor_performance_profiler.cpp | 7 +- godot/editor/debugger/editor_profiler.cpp | 15 +- .../debugger/editor_visual_profiler.cpp | 25 +- .../debugger/script_editor_debugger.cpp | 75 +- .../editor/debugger/script_editor_debugger.h | 1 + godot/editor/dependency_editor.cpp | 12 +- godot/editor/directory_create_dialog.cpp | 13 +- godot/editor/editor_about.cpp | 7 +- godot/editor/editor_asset_installer.cpp | 468 +- godot/editor/editor_asset_installer.h | 34 +- godot/editor/editor_audio_buses.cpp | 19 +- godot/editor/editor_autoload_settings.cpp | 17 +- godot/editor/editor_build_profile.cpp | 3 +- godot/editor/editor_command_palette.cpp | 9 +- godot/editor/editor_data.cpp | 14 +- godot/editor/editor_data.h | 6 +- godot/editor/editor_feature_profile.cpp | 9 +- godot/editor/editor_fonts.cpp | 82 +- godot/editor/editor_help.cpp | 124 +- godot/editor/editor_help.h | 15 +- godot/editor/editor_help_search.cpp | 32 +- godot/editor/editor_help_search.h | 1 - godot/editor/editor_inspector.cpp | 312 +- godot/editor/editor_inspector.h | 15 +- godot/editor/editor_layouts_dialog.cpp | 2 +- godot/editor/editor_log.cpp | 41 +- godot/editor/editor_node.cpp | 879 +- godot/editor/editor_node.h | 51 +- godot/editor/editor_plugin.cpp | 13 +- godot/editor/editor_plugin.h | 2 + godot/editor/editor_plugin_settings.cpp | 6 +- godot/editor/editor_properties.cpp | 115 +- godot/editor/editor_properties.h | 6 +- godot/editor/editor_properties_array_dict.cpp | 35 +- godot/editor/editor_properties_vector.cpp | 4 +- .../editor/editor_property_name_processor.cpp | 1 - godot/editor/editor_quick_open.cpp | 2 +- godot/editor/editor_resource_picker.cpp | 41 +- godot/editor/editor_resource_preview.cpp | 4 +- godot/editor/editor_run_native.cpp | 2 +- godot/editor/editor_script.cpp | 1 + godot/editor/editor_script.h | 2 +- godot/editor/editor_sectioned_inspector.cpp | 5 +- godot/editor/editor_settings.cpp | 10 +- godot/editor/editor_settings_dialog.cpp | 37 +- .../editor_string_names.cpp} | 15 +- godot/editor/editor_string_names.h | 58 + godot/editor/editor_themes.cpp | 546 +- godot/editor/editor_translation_parser.h | 1 - godot/editor/editor_undo_redo_manager.cpp | 6 +- godot/editor/editor_vcs_interface.h | 2 +- godot/editor/event_listener_line_edit.cpp | 2 +- godot/editor/export/editor_export.cpp | 17 - .../editor/export/editor_export_platform.cpp | 39 +- godot/editor/export/editor_export_platform.h | 5 +- .../editor/export/export_template_manager.cpp | 15 +- godot/editor/export/project_export.cpp | 92 +- godot/editor/export/project_export.h | 20 + godot/editor/fbx_importer_manager.cpp | 5 +- godot/editor/filesystem_dock.cpp | 364 +- godot/editor/filesystem_dock.h | 10 +- godot/editor/find_in_files.cpp | 13 +- godot/editor/groups_editor.cpp | 23 +- godot/editor/gui/editor_dir_dialog.cpp | 2 +- godot/editor/gui/editor_file_dialog.cpp | 67 +- godot/editor/gui/editor_object_selector.cpp | 5 +- godot/editor/gui/editor_run_bar.cpp | 31 +- godot/editor/gui/editor_scene_tabs.cpp | 400 + godot/editor/gui/editor_scene_tabs.h | 95 + godot/editor/gui/editor_spin_slider.cpp | 3 - godot/editor/gui/editor_toaster.cpp | 41 +- godot/editor/gui/editor_validation_panel.cpp | 7 +- godot/editor/gui/editor_zoom_widget.cpp | 4 +- godot/editor/gui/scene_tree_editor.cpp | 137 +- godot/editor/gui/scene_tree_editor.h | 6 + godot/editor/history_dock.cpp | 3 +- godot/editor/icons/AABB.svg | 2 +- godot/editor/icons/ActionPaste.svg | 2 +- godot/editor/icons/Anchor.svg | 2 +- godot/editor/icons/AnimatedSprite2D.svg | 2 +- godot/editor/icons/AnimatedSprite3D.svg | 2 +- godot/editor/icons/Area2D.svg | 2 +- godot/editor/icons/Area3D.svg | 2 +- godot/editor/icons/Array.svg | 2 +- godot/editor/icons/ArrayMesh.svg | 2 +- godot/editor/icons/ArrayOccluder3D.svg | 2 +- godot/editor/icons/AudioStreamMP3.svg | 2 +- godot/editor/icons/AudioStreamOggVorbis.svg | 2 +- godot/editor/icons/AudioStreamPlayer.svg | 2 +- godot/editor/icons/AudioStreamPlayer2D.svg | 2 +- godot/editor/icons/AudioStreamPlayer3D.svg | 2 +- godot/editor/icons/AudioStreamPolyphonic.svg | 2 +- godot/editor/icons/AudioStreamWAV.svg | 2 +- godot/editor/icons/AutoEnd.svg | 2 +- godot/editor/icons/BaseButton.svg | 2 +- godot/editor/icons/Basis.svg | 2 +- godot/editor/icons/Blend.svg | 2 +- godot/editor/icons/Button.svg | 2 +- godot/editor/icons/Camera2D.svg | 2 +- godot/editor/icons/Camera3D.svg | 2 +- godot/editor/icons/CameraAttributes.svg | 2 +- .../editor/icons/CameraAttributesPhysical.svg | 2 +- .../icons/CameraAttributesPractical.svg | 2 +- godot/editor/icons/CameraTexture.svg | 2 +- godot/editor/icons/CanvasGroup.svg | 2 +- godot/editor/icons/CanvasItem.svg | 2 +- godot/editor/icons/CheckBox.svg | 2 +- godot/editor/icons/Checkerboard.svg | 2 +- godot/editor/icons/ClippedCamera3D.svg | 1 - godot/editor/icons/Close.svg | 2 +- .../editor/icons/CodeRegionFoldDownArrow.svg | 1 + .../icons/CodeRegionFoldedRightArrow.svg | 1 + godot/editor/icons/Color.svg | 2 +- godot/editor/icons/ConvexPolygonShape3D.svg | 2 +- godot/editor/icons/CreateNewSceneFrom.svg | 2 +- godot/editor/icons/CurveClose.svg | 2 +- godot/editor/icons/CurveCreate.svg | 2 +- godot/editor/icons/CurveCurve.svg | 2 +- godot/editor/icons/CurveDelete.svg | 2 +- godot/editor/icons/CurveEdit.svg | 2 +- godot/editor/icons/CurveTexture.svg | 2 +- godot/editor/icons/CurveXYZTexture.svg | 1 + godot/editor/icons/Decal.svg | 2 +- godot/editor/icons/Dictionary.svg | 2 +- godot/editor/icons/Editor3DHandle.svg | 2 +- godot/editor/icons/EditorControlAnchor.svg | 2 +- godot/editor/icons/EditorHandle.svg | 2 +- godot/editor/icons/EditorHandleAdd.svg | 2 +- godot/editor/icons/EditorPivot.svg | 2 +- godot/editor/icons/EditorPosition.svg | 2 +- godot/editor/icons/EditorPositionPrevious.svg | 2 +- .../editor/icons/EditorPositionUnselected.svg | 2 +- godot/editor/icons/FileBigThumb.svg | 2 +- godot/editor/icons/FileMediumThumb.svg | 2 +- godot/editor/icons/Font.svg | 2 +- godot/editor/icons/FontFile.svg | 2 +- godot/editor/icons/FontVariation.svg | 2 +- .../icons/GPUParticlesCollisionBox3D.svg | 2 +- .../icons/GPUParticlesCollisionSDF3D.svg | 2 +- godot/editor/icons/GeometryInstance3D.svg | 2 +- godot/editor/icons/GizmoCamera3D.svg | 2 +- godot/editor/icons/GizmoDirectionalLight.svg | 2 +- godot/editor/icons/GizmoLightmapGI.svg | 2 +- godot/editor/icons/GizmoVoxelGI.svg | 2 +- godot/editor/icons/GodotFile.svg | 2 +- godot/editor/icons/GradientTexture1D.svg | 2 +- godot/editor/icons/GraphEdit.svg | 2 +- godot/editor/icons/GraphElement.svg | 1 + godot/editor/icons/GraphNode.svg | 2 +- godot/editor/icons/GridToggle.svg | 2 +- godot/editor/icons/Group.svg | 2 +- godot/editor/icons/GroupViewport.svg | 2 +- godot/editor/icons/GuiClose.svg | 2 +- godot/editor/icons/GuiCloseCustomizable.svg | 1 - godot/editor/icons/GuiDropdown.svg | 2 +- godot/editor/icons/GuiEllipsis.svg | 2 +- godot/editor/icons/GuiHsplitter.svg | 2 +- godot/editor/icons/GuiProgressBar.svg | 2 +- godot/editor/icons/GuiProgressFill.svg | 2 +- godot/editor/icons/GuiRadioUnchecked.svg | 2 +- .../icons/GuiRadioUncheckedDisabled.svg | 2 +- godot/editor/icons/GuiResizer.svg | 2 +- godot/editor/icons/GuiResizerTopLeft.svg | 2 +- godot/editor/icons/GuiScrollArrowLeftHl.svg | 2 +- godot/editor/icons/GuiScrollArrowRight.svg | 2 +- godot/editor/icons/GuiScrollBg.svg | 2 +- .../editor/icons/GuiScrollGrabberPressed.svg | 2 +- godot/editor/icons/GuiSpace.svg | 2 +- godot/editor/icons/GuiSpinboxUpdown.svg | 2 +- .../editor/icons/GuiSpinboxUpdownDisabled.svg | 2 +- godot/editor/icons/GuiTab.svg | 2 +- godot/editor/icons/GuiTabMenu.svg | 2 +- godot/editor/icons/GuiToggleOff.svg | 2 +- godot/editor/icons/GuiToggleOffDisabled.svg | 2 +- .../icons/GuiToggleOffDisabledMirrored.svg | 2 +- godot/editor/icons/GuiTreeArrowDown.svg | 2 +- godot/editor/icons/GuiTreeArrowLeft.svg | 2 +- godot/editor/icons/GuiTreeArrowRight.svg | 2 +- godot/editor/icons/GuiTreeUpdown.svg | 2 +- godot/editor/icons/GuiUnchecked.svg | 2 +- godot/editor/icons/GuiUncheckedDisabled.svg | 2 +- .../editor/icons/GuiViewportHdiagsplitter.svg | 2 +- .../editor/icons/GuiViewportVdiagsplitter.svg | 2 +- godot/editor/icons/GuiViewportVhsplitter.svg | 2 +- godot/editor/icons/GuiVisibilityXray.svg | 2 +- godot/editor/icons/GuiVsplitter.svg | 2 +- godot/editor/icons/Heart.svg | 2 +- godot/editor/icons/HeightMapShape3D.svg | 2 +- godot/editor/icons/IOSDeviceWired.svg | 2 +- godot/editor/icons/IOSDeviceWireless.svg | 2 +- godot/editor/icons/IOSSimulator.svg | 2 +- godot/editor/icons/ImageTexture.svg | 2 +- godot/editor/icons/ImportFail.svg | 2 +- godot/editor/icons/InputEventAction.svg | 2 +- godot/editor/icons/InputEventMIDI.svg | 2 +- godot/editor/icons/Key.svg | 2 +- godot/editor/icons/KeyInvalid.svg | 2 +- godot/editor/icons/KeyRotation.svg | 2 +- godot/editor/icons/KeyboardLabel.svg | 2 +- godot/editor/icons/LightOccluder2D.svg | 2 +- godot/editor/icons/MarginContainer.svg | 2 +- godot/editor/icons/Mesh.svg | 2 +- godot/editor/icons/MeshTexture.svg | 2 +- godot/editor/icons/MethodOverride.svg | 2 +- godot/editor/icons/MiniObject.svg | 2 +- godot/editor/icons/MissingNode.svg | 2 +- godot/editor/icons/MissingResource.svg | 2 +- godot/editor/icons/Mouse.svg | 2 +- godot/editor/icons/NavigationAgent2D.svg | 2 +- godot/editor/icons/NavigationAgent3D.svg | 2 +- godot/editor/icons/NavigationObstacle3D.svg | 2 +- godot/editor/icons/Nil.svg | 2 +- godot/editor/icons/NodePath.svg | 2 +- godot/editor/icons/Object.svg | 2 +- godot/editor/icons/ObjectDisabled.svg | 1 + godot/editor/icons/Occluder3D.svg | 2 +- godot/editor/icons/PackedByteArray.svg | 2 +- godot/editor/icons/PackedColorArray.svg | 2 +- godot/editor/icons/PackedFloat32Array.svg | 2 +- godot/editor/icons/PackedFloat64Array.svg | 2 +- godot/editor/icons/PackedInt32Array.svg | 2 +- godot/editor/icons/PackedInt64Array.svg | 2 +- godot/editor/icons/PackedScene.svg | 2 +- godot/editor/icons/PackedStringArray.svg | 2 +- godot/editor/icons/PackedVector2Array.svg | 2 +- godot/editor/icons/PackedVector3Array.svg | 2 +- godot/editor/icons/Panel.svg | 2 +- godot/editor/icons/Plane.svg | 2 +- godot/editor/icons/PlayScene.svg | 2 +- .../icons/PortableCompressedTexture2D.svg | 1 + godot/editor/icons/Progress1.svg | 2 +- godot/editor/icons/Progress2.svg | 2 +- godot/editor/icons/Progress3.svg | 2 +- godot/editor/icons/Progress4.svg | 2 +- godot/editor/icons/Progress5.svg | 2 +- godot/editor/icons/Progress6.svg | 2 +- godot/editor/icons/Progress7.svg | 2 +- godot/editor/icons/Progress8.svg | 2 +- godot/editor/icons/ProjectIconLoading.svg | 2 +- godot/editor/icons/Projection.svg | 2 +- godot/editor/icons/ProxyTexture.svg | 1 - godot/editor/icons/QuadOccluder3D.svg | 2 +- godot/editor/icons/Quaternion.svg | 2 +- godot/editor/icons/RID.svg | 2 +- godot/editor/icons/Range.svg | 2 +- godot/editor/icons/Rect2.svg | 2 +- godot/editor/icons/Rect2i.svg | 2 +- godot/editor/icons/Script.svg | 2 +- godot/editor/icons/ScriptCreate.svg | 2 +- godot/editor/icons/ScriptCreateDialog.svg | 2 +- godot/editor/icons/ScriptExtend.svg | 2 +- godot/editor/icons/ScriptRemove.svg | 2 +- godot/editor/icons/Snap.svg | 2 +- godot/editor/icons/SnapDisable.svg | 2 +- godot/editor/icons/SnapGrid.svg | 2 +- godot/editor/icons/StatusSuccess.svg | 2 +- godot/editor/icons/StatusWarning.svg | 2 +- godot/editor/icons/String.svg | 2 +- godot/editor/icons/StringName.svg | 2 +- godot/editor/icons/StyleBoxLine.svg | 2 +- godot/editor/icons/TextFile.svg | 2 +- godot/editor/icons/ThumbnailWait.svg | 2 +- godot/editor/icons/Timer.svg | 2 +- godot/editor/icons/Tools.svg | 2 +- godot/editor/icons/Transform2D.svg | 2 +- godot/editor/icons/Transform3D.svg | 2 +- godot/editor/icons/TripleBar.svg | 2 +- godot/editor/icons/Ungroup.svg | 2 +- godot/editor/icons/Uv.svg | 2 +- godot/editor/icons/Variant.svg | 2 +- godot/editor/icons/Vector2.svg | 2 +- godot/editor/icons/Vector2i.svg | 2 +- godot/editor/icons/Vector3.svg | 2 +- godot/editor/icons/Vector3i.svg | 2 +- godot/editor/icons/Vector4.svg | 2 +- godot/editor/icons/Vector4i.svg | 2 +- godot/editor/icons/VideoStream.svg | 2 +- godot/editor/icons/Viewport.svg | 2 +- godot/editor/icons/ViewportSpeed.svg | 2 +- godot/editor/icons/ViewportZoom.svg | 2 +- godot/editor/icons/VisualInstance3D.svg | 2 +- godot/editor/icons/VisualShader.svg | 2 +- .../icons/VisualShaderNodeColorConstant.svg | 2 +- .../icons/VisualShaderNodeColorUniform.svg | 2 +- godot/editor/icons/WorldBoundaryShape2D.svg | 2 +- godot/editor/icons/WorldBoundaryShape3D.svg | 2 +- godot/editor/icons/WorldEnvironment.svg | 2 +- godot/editor/icons/XRCamera3D.svg | 2 +- godot/editor/icons/ZoomLess.svg | 2 +- godot/editor/icons/ZoomMore.svg | 2 +- godot/editor/icons/ZoomReset.svg | 2 +- godot/editor/icons/bool.svg | 2 +- godot/editor/icons/editor_icons_builders.py | 2 +- godot/editor/icons/float.svg | 2 +- godot/editor/icons/uint.svg | 2 +- .../import/audio_stream_import_settings.cpp | 55 +- .../import/dynamic_font_import_settings.cpp | 23 +- .../editor/import/resource_importer_scene.cpp | 1 + godot/editor/import/scene_import_settings.cpp | 65 +- godot/editor/import_defaults_editor.cpp | 22 +- godot/editor/import_defaults_editor.h | 1 - godot/editor/import_dock.cpp | 12 +- .../input_event_configuration_dialog.cpp | 19 +- godot/editor/inspector_dock.cpp | 49 +- godot/editor/localization_editor.cpp | 8 +- godot/editor/node_dock.cpp | 4 +- godot/editor/plugin_config_dialog.cpp | 8 + .../plugins/abstract_polygon_2d_editor.cpp | 18 +- .../animation_blend_space_1d_editor.cpp | 31 +- .../animation_blend_space_2d_editor.cpp | 37 +- .../animation_blend_tree_editor_plugin.cpp | 39 +- .../animation_blend_tree_editor_plugin.h | 5 +- .../plugins/animation_library_editor.cpp | 27 +- .../animation_player_editor_plugin.cpp | 26 +- .../animation_state_machine_editor.cpp | 47 +- .../plugins/asset_library_editor_plugin.cpp | 27 +- .../plugins/audio_stream_editor_plugin.cpp | 25 +- .../audio_stream_randomizer_editor_plugin.cpp | 2 +- .../editor/plugins/bone_map_editor_plugin.cpp | 20 +- .../plugins/canvas_item_editor_plugin.cpp | 381 +- .../plugins/canvas_item_editor_plugin.h | 28 +- .../editor/plugins/cast_2d_editor_plugin.cpp | 2 +- .../collision_shape_2d_editor_plugin.cpp | 2 +- .../editor/plugins/control_editor_plugin.cpp | 72 +- .../cpu_particles_2d_editor_plugin.cpp | 24 +- .../plugins/cpu_particles_2d_editor_plugin.h | 3 +- .../cpu_particles_3d_editor_plugin.cpp | 19 +- .../plugins/cpu_particles_3d_editor_plugin.h | 4 +- godot/editor/plugins/curve_editor_plugin.cpp | 35 +- .../editor/plugins/editor_preview_plugins.cpp | 1 + .../editor_resource_conversion_plugin.h | 1 - .../plugins/editor_resource_tooltip_plugins.h | 1 - godot/editor/plugins/font_config_plugin.cpp | 10 +- .../plugins/gdextension_export_plugin.h | 9 + .../gizmos/audio_listener_3d_gizmo_plugin.cpp | 2 +- .../audio_stream_player_3d_gizmo_plugin.cpp | 2 +- .../plugins/gizmos/camera_3d_gizmo_plugin.cpp | 2 +- .../collision_shape_3d_gizmo_plugin.cpp | 79 +- .../gizmos/collision_shape_3d_gizmo_plugin.h | 6 +- .../gizmos/cpu_particles_3d_gizmo_plugin.cpp | 2 +- .../plugins/gizmos/decal_gizmo_plugin.cpp | 72 +- .../plugins/gizmos/decal_gizmo_plugin.h | 6 + .../editor/plugins/gizmos/gizmo_3d_helper.cpp | 131 + .../plugins/gizmos/gizmo_3d_helper.h} | 63 +- .../gizmos/gpu_particles_3d_gizmo_plugin.cpp | 2 +- ...pu_particles_collision_3d_gizmo_plugin.cpp | 61 +- .../gpu_particles_collision_3d_gizmo_plugin.h | 6 + .../plugins/gizmos/light_3d_gizmo_plugin.cpp | 6 +- .../gizmos/lightmap_gi_gizmo_plugin.cpp | 2 +- .../plugins/gizmos/marker_3d_gizmo_plugin.cpp | 7 +- .../gizmos/reflection_probe_gizmo_plugin.cpp | 83 +- .../gizmos/reflection_probe_gizmo_plugin.h | 6 + .../plugins/gizmos/voxel_gi_gizmo_plugin.cpp | 74 +- .../plugins/gizmos/voxel_gi_gizmo_plugin.h | 6 + .../gpu_particles_2d_editor_plugin.cpp | 4 +- .../gpu_particles_3d_editor_plugin.cpp | 2 +- ..._particles_collision_sdf_editor_plugin.cpp | 2 +- godot/editor/plugins/gradient_editor.cpp | 7 +- .../editor/plugins/gradient_editor_plugin.cpp | 4 +- .../gradient_texture_2d_editor_plugin.cpp | 10 +- .../plugins/input_event_editor_plugin.cpp | 2 +- .../plugins/lightmap_gi_editor_plugin.cpp | 5 +- .../editor/plugins/material_editor_plugin.cpp | 12 +- godot/editor/plugins/mesh_editor_plugin.cpp | 4 +- .../mesh_instance_3d_editor_plugin.cpp | 7 +- .../plugins/mesh_library_editor_plugin.cpp | 2 +- .../plugins/multimesh_editor_plugin.cpp | 2 +- .../navigation_link_2d_editor_plugin.cpp | 2 +- .../navigation_obstacle_3d_editor_plugin.cpp | 7 +- .../editor/plugins/node_3d_editor_gizmos.cpp | 2 +- .../editor/plugins/node_3d_editor_plugin.cpp | 217 +- godot/editor/plugins/node_3d_editor_plugin.h | 10 +- .../occluder_instance_3d_editor_plugin.cpp | 2 +- .../plugins/packed_scene_editor_plugin.cpp | 2 +- ...packed_scene_translation_parser_plugin.cpp | 1 + .../editor/plugins/path_2d_editor_plugin.cpp | 43 +- godot/editor/plugins/path_2d_editor_plugin.h | 2 - .../editor/plugins/path_3d_editor_plugin.cpp | 441 +- godot/editor/plugins/path_3d_editor_plugin.h | 19 +- .../physical_bone_3d_editor_plugin.cpp | 4 +- .../plugins/polygon_2d_editor_plugin.cpp | 32 +- .../plugins/polygon_3d_editor_plugin.cpp | 7 +- .../resource_preloader_editor_plugin.cpp | 8 +- .../plugins/root_motion_editor_plugin.cpp | 4 +- godot/editor/plugins/script_editor_plugin.cpp | 87 +- godot/editor/plugins/script_editor_plugin.h | 4 + godot/editor/plugins/script_text_editor.cpp | 65 +- godot/editor/plugins/script_text_editor.h | 2 + godot/editor/plugins/shader_editor_plugin.cpp | 7 +- .../plugins/shader_file_editor_plugin.cpp | 13 +- .../plugins/skeleton_2d_editor_plugin.cpp | 2 +- .../plugins/skeleton_3d_editor_plugin.cpp | 50 +- .../plugins/skeleton_ik_3d_editor_plugin.cpp | 2 +- .../plugins/sprite_2d_editor_plugin.cpp | 10 +- .../plugins/sprite_frames_editor_plugin.cpp | 65 +- .../plugins/style_box_editor_plugin.cpp | 6 +- godot/editor/plugins/text_shader_editor.cpp | 24 +- .../plugins/texture_3d_editor_plugin.cpp | 2 +- .../editor/plugins/texture_editor_plugin.cpp | 5 +- .../plugins/texture_layered_editor_plugin.cpp | 2 +- .../plugins/texture_region_editor_plugin.cpp | 771 +- .../plugins/texture_region_editor_plugin.h | 51 +- godot/editor/plugins/theme_editor_plugin.cpp | 203 +- godot/editor/plugins/theme_editor_preview.cpp | 24 +- godot/editor/plugins/theme_editor_preview.h | 1 + .../plugins/tiles/atlas_merging_dialog.cpp | 24 +- .../editor/plugins/tiles/tile_atlas_view.cpp | 6 +- .../plugins/tiles/tile_data_editors.cpp | 79 +- .../editor/plugins/tiles/tile_map_editor.cpp | 312 +- godot/editor/plugins/tiles/tile_map_editor.h | 22 + .../tiles/tile_set_atlas_source_editor.cpp | 243 +- .../tiles/tile_set_atlas_source_editor.h | 11 +- .../editor/plugins/tiles/tile_set_editor.cpp | 115 +- godot/editor/plugins/tiles/tile_set_editor.h | 2 +- ...le_set_scenes_collection_source_editor.cpp | 30 +- ...tile_set_scenes_collection_source_editor.h | 3 + .../plugins/tiles/tiles_editor_plugin.cpp | 25 +- .../plugins/tiles/tiles_editor_plugin.h | 8 +- .../plugins/version_control_editor_plugin.cpp | 79 +- .../plugins/visual_shader_editor_plugin.cpp | 562 +- .../plugins/visual_shader_editor_plugin.h | 22 +- .../editor/plugins/voxel_gi_editor_plugin.cpp | 2 +- godot/editor/project_manager.cpp | 93 +- godot/editor/project_manager.h | 1 + godot/editor/project_settings_editor.cpp | 15 +- godot/editor/property_selector.cpp | 80 +- godot/editor/register_editor_types.cpp | 4 + godot/editor/rename_dialog.cpp | 13 +- godot/editor/scene_create_dialog.cpp | 18 +- godot/editor/scene_tree_dock.cpp | 171 +- godot/editor/script_create_dialog.cpp | 18 +- godot/editor/shader_create_dialog.cpp | 8 +- godot/editor/shader_globals_editor.cpp | 2 + godot/editor/translations/editor/ar.po | 766 +- godot/editor/translations/editor/bg.po | 147 +- godot/editor/translations/editor/ca.po | 176 +- godot/editor/translations/editor/cs.po | 336 +- godot/editor/translations/editor/de.po | 789 +- godot/editor/translations/editor/el.po | 249 +- godot/editor/translations/editor/eo.po | 110 +- godot/editor/translations/editor/es.po | 2038 +- godot/editor/translations/editor/es_AR.po | 283 +- godot/editor/translations/editor/fa.po | 733 +- godot/editor/translations/editor/fi.po | 232 +- godot/editor/translations/editor/fr.po | 1127 +- godot/editor/translations/editor/gl.po | 93 +- godot/editor/translations/editor/he.po | 91 +- godot/editor/translations/editor/hu.po | 90 +- godot/editor/translations/editor/id.po | 1547 +- godot/editor/translations/editor/it.po | 986 +- godot/editor/translations/editor/ja.po | 1495 +- godot/editor/translations/editor/ka.po | 4006 ++ godot/editor/translations/editor/ko.po | 1965 +- godot/editor/translations/editor/lv.po | 47 +- godot/editor/translations/editor/ms.po | 114 +- godot/editor/translations/editor/nb.po | 16 +- godot/editor/translations/editor/nl.po | 200 +- godot/editor/translations/editor/pl.po | 757 +- godot/editor/translations/editor/pt.po | 727 +- godot/editor/translations/editor/pt_BR.po | 1249 +- godot/editor/translations/editor/ro.po | 39 +- godot/editor/translations/editor/ru.po | 864 +- godot/editor/translations/editor/sk.po | 75 +- godot/editor/translations/editor/sv.po | 2289 +- godot/editor/translations/editor/th.po | 89 +- godot/editor/translations/editor/tr.po | 11193 ++- godot/editor/translations/editor/uk.po | 708 +- godot/editor/translations/editor/vi.po | 146 +- godot/editor/translations/editor/zh_CN.po | 578 +- godot/editor/translations/editor/zh_TW.po | 472 +- godot/editor/translations/properties/de.po | 275 +- godot/editor/translations/properties/es.po | 3936 +- godot/editor/translations/properties/fr.po | 32 +- godot/editor/translations/properties/id.po | 1069 +- godot/editor/translations/properties/it.po | 10 +- godot/editor/translations/properties/ja.po | 20 +- godot/editor/translations/properties/ko.po | 1983 +- godot/editor/translations/properties/pl.po | 13 +- godot/editor/translations/properties/pt.po | 9 +- godot/editor/translations/properties/pt_BR.po | 434 +- godot/editor/translations/properties/ru.po | 316 +- godot/editor/translations/properties/tr.po | 8310 ++- godot/editor/translations/properties/zh_CN.po | 11 +- godot/editor/translations/properties/zh_TW.po | 5 +- godot/editor/window_wrapper.cpp | 9 +- godot/main/main.cpp | 79 +- godot/methods.py | 29 +- godot/misc/dist/linux/godot.6 | 8 +- godot/misc/dist/shell/_godot.zsh-completion | 2 + godot/misc/dist/shell/godot.bash-completion | 2 + godot/misc/dist/shell/godot.fish | 2 + godot/misc/dist/uwp_template/AppxManifest.xml | 32 - .../Assets/SplashScreen.scale-100.png | 3 - .../Assets/Square150x150Logo.scale-100.png | 3 - .../Assets/Square310x310Logo.scale-100.png | 3 - .../Assets/Square44x44Logo.scale-100.png | 3 - .../Assets/Square71x71Logo.scale-100.png | 3 - .../Assets/StoreLogo.scale-100.png | 3 - .../Assets/Wide310x150Logo.scale-100.png | 3 - ...xpected => 4.0-stable_4.1-stable.expected} | 98 +- .../4.1-stable.expected | 178 + godot/misc/scripts/gitignore_check.sh | 26 + godot/misc/scripts/validate_extension_api.sh | 35 +- godot/modules/csg/csg_shape.cpp | 4 +- godot/modules/csg/doc_classes/CSGMesh3D.xml | 3 +- godot/modules/csg/editor/csg_gizmos.cpp | 72 +- godot/modules/csg/editor/csg_gizmos.h | 6 + godot/modules/dds/image_loader_dds.cpp | 422 - godot/modules/dds/register_types.cpp | 8 - godot/modules/dds/texture_loader_dds.cpp | 361 +- godot/modules/denoise/SCsub | 9 + godot/modules/freetype/SCsub | 6 - .../gdscript/doc_classes/@GDScript.xml | 5 +- .../gdscript/editor/gdscript_docgen.cpp | 206 +- .../gdscript/editor/gdscript_highlighter.cpp | 6 +- .../gdscript_translation_parser_plugin.cpp | 11 +- godot/modules/gdscript/gdscript.cpp | 194 +- godot/modules/gdscript/gdscript.h | 21 +- godot/modules/gdscript/gdscript_analyzer.cpp | 474 +- godot/modules/gdscript/gdscript_analyzer.h | 4 +- .../gdscript/gdscript_byte_codegen.cpp | 28 +- .../modules/gdscript/gdscript_byte_codegen.h | 5 +- godot/modules/gdscript/gdscript_codegen.h | 4 +- godot/modules/gdscript/gdscript_compiler.cpp | 86 +- godot/modules/gdscript/gdscript_compiler.h | 2 +- godot/modules/gdscript/gdscript_editor.cpp | 12 +- godot/modules/gdscript/gdscript_function.cpp | 36 - godot/modules/gdscript/gdscript_function.h | 188 +- .../gdscript/gdscript_lambda_callable.cpp | 4 + .../gdscript/gdscript_lambda_callable.h | 1 + godot/modules/gdscript/gdscript_parser.cpp | 155 +- godot/modules/gdscript/gdscript_parser.h | 22 +- .../gdscript/gdscript_rpc_callable.cpp | 5 + .../modules/gdscript/gdscript_rpc_callable.h | 1 + godot/modules/gdscript/gdscript_tokenizer.cpp | 18 +- .../gdscript/gdscript_utility_functions.cpp | 6 +- godot/modules/gdscript/gdscript_vm.cpp | 8 +- godot/modules/gdscript/gdscript_warning.cpp | 7 + godot/modules/gdscript/gdscript_warning.h | 2 + godot/modules/gdscript/icons/GDScript.svg | 2 +- .../gdscript/icons/GDScriptInternal.svg | 2 +- .../gdscript_extend_parser.cpp | 464 +- .../language_server/gdscript_extend_parser.h | 78 +- .../gdscript_language_protocol.cpp | 10 + .../gdscript_language_server.cpp | 1 + .../gdscript_text_document.cpp | 55 +- .../language_server/gdscript_text_document.h | 2 + .../language_server/gdscript_workspace.cpp | 215 +- .../language_server/gdscript_workspace.h | 8 +- .../gdscript/language_server/godot_lsp.h | 173 +- .../gdscript/tests/gdscript_test_runner.cpp | 4 + .../errors/for_loop_wrong_specified_type.gd | 4 + .../errors/for_loop_wrong_specified_type.out | 2 + .../get_node_shorthand_in_static_function.gd | 9 + .../get_node_shorthand_in_static_function.out | 2 + .../errors/lambda_cyclic_ref_call_arg.gd | 5 + .../errors/lambda_cyclic_ref_call_arg.out | 2 + .../errors/lambda_cyclic_ref_param.gd | 5 + .../errors/lambda_cyclic_ref_param.out | 2 + ...local_const_as_type_use_before_declared.gd | 5 + ...ocal_const_as_type_use_before_declared.out | 2 + .../local_const_as_type_use_not_const.gd | 5 + .../local_const_as_type_use_not_const.out | 2 + .../local_const_as_type_use_not_type.gd | 5 + .../local_const_as_type_use_not_type.out | 2 + ...rray_init_with_unconvertable_in_literal.gd | 4 +- .../inner_class_access_from_inside.gd | 21 + .../inner_class_access_from_inside.out | 5 + .../features/lambda_cyclic_ref_body.gd | 34 + .../features/lambda_cyclic_ref_body.out | 5 + .../analyzer/features/local_const_as_type.gd | 41 + .../features/local_const_as_type.notest.gd | 6 + .../analyzer/features/local_const_as_type.out | 11 + .../tests/scripts/lsp/class.notest.gd | 132 + .../tests/scripts/lsp/enums.notest.gd | 26 + .../tests/scripts/lsp/indentation.notest.gd | 28 + .../tests/scripts/lsp/lambdas.notest.gd | 91 + .../scripts/lsp/local_variables.notest.gd | 25 + .../tests/scripts/lsp/properties.notest.gd | 65 + .../tests/scripts/lsp/scopes.notest.gd | 106 + .../lsp/shadowing_initializer.notest.gd | 56 + .../tests/scripts/parser/.editorconfig | 2 + .../mixed_indentation_on_blank_lines.gd | 20 + .../mixed_indentation_on_blank_lines.out | 4 + ..._loop_iterator_type_not_match_specified.gd | 4 + ...loop_iterator_type_not_match_specified.out | 6 + .../for_loop_iterator_specified_types.gd | 34 + .../for_loop_iterator_specified_types.out | 25 + .../scripts/runtime/features/member_info.gd | 125 + .../scripts/runtime/features/member_info.out | 45 + .../modules/gdscript/tests/test_gdscript.cpp | 9 +- godot/modules/gdscript/tests/test_lsp.h | 480 + godot/modules/glslang/register_types.cpp | 30 +- .../gltf/doc_classes/GLTFPhysicsBody.xml | 5 +- .../editor/editor_scene_importer_blend.cpp | 5 +- .../gltf_document_extension_texture_ktx.cpp} | 56 +- .../gltf_document_extension_texture_ktx.h | 47 + .../extensions/physics/gltf_physics_body.cpp | 30 + .../extensions/physics/gltf_physics_body.h | 8 +- godot/modules/gltf/gltf_document.cpp | 34 +- godot/modules/gltf/register_types.cpp | 19 +- godot/modules/gridmap/doc_classes/GridMap.xml | 5 + .../gridmap/editor/grid_map_editor_plugin.cpp | 121 +- .../gridmap/editor/grid_map_editor_plugin.h | 3 +- godot/modules/gridmap/grid_map.cpp | 7 +- godot/modules/ktx/SCsub | 58 + .../n2nvpn => godot/modules/ktx}/config.py | 1 + .../ktx/register_types.cpp} | 26 +- .../uwpdef.h => ktx/register_types.h} | 15 +- godot/modules/ktx/texture_loader_ktx.cpp | 562 + godot/modules/ktx/texture_loader_ktx.h | 48 + .../mono/build_scripts/mono_configure.py | 4 +- godot/modules/mono/config.py | 4 +- godot/modules/mono/csharp_script.cpp | 53 +- godot/modules/mono/csharp_script.h | 22 +- .../Godot.NET.Sdk/Godot.NET.Sdk/Sdk/Sdk.props | 2 - .../GodotTools/Export/AotBuilder.cs | 5 - .../GodotTools/GodotTools/GodotSharpEditor.cs | 2 +- .../GodotTools/Ides/Rider/RiderPathManager.cs | 49 +- .../editor/GodotTools/GodotTools/Utils/OS.cs | 19 +- .../mono/editor/bindings_generator.cpp | 123 +- .../modules/mono/editor/bindings_generator.h | 8 +- godot/modules/mono/editor/code_completion.cpp | 1 + .../modules/mono/editor/hostfxr_resolver.cpp | 2 +- .../mono/glue/GodotSharp/GodotSharp/Compat.cs | 2 +- .../glue/GodotSharp/GodotSharp/Core/Array.cs | 12 +- .../glue/GodotSharp/GodotSharp/Core/Mathf.cs | 90 + godot/modules/mono/godotsharp_dirs.cpp | 6 - godot/modules/mono/icons/BuildCSharp.svg | 2 +- .../doc_classes/SceneReplicationConfig.xml | 38 +- .../editor/editor_network_profiler.cpp | 23 +- .../multiplayer/editor/replication_editor.cpp | 128 +- .../multiplayer/editor/replication_editor.h | 6 +- .../multiplayer/scene_cache_interface.h | 1 + .../multiplayer/scene_replication_config.cpp | 167 +- .../multiplayer/scene_replication_config.h | 24 +- .../editor/navigation_mesh_editor_plugin.cpp | 5 +- .../navigation/godot_navigation_server.cpp | 34 +- .../navigation/godot_navigation_server.h | 9 +- .../navigation/nav_mesh_generator_3d.cpp | 125 +- .../navigation/nav_mesh_generator_3d.h | 32 +- .../noise/doc_classes/FastNoiseLite.xml | 4 +- godot/modules/noise/doc_classes/Noise.xml | 2 +- .../noise/doc_classes/NoiseTexture2D.xml | 4 +- .../noise/doc_classes/NoiseTexture3D.xml | 4 +- godot/modules/noise/fastnoise_lite.h | 2 +- godot/modules/openxr/SCsub | 7 +- .../openxr/action_map/openxr_action_map.cpp | 11 +- .../action_map/openxr_interaction_profile.cpp | 5 +- .../action_map/openxr_interaction_profile.h | 2 +- ...> openxr_interaction_profile_metadata.cpp} | 63 +- ... => openxr_interaction_profile_metadata.h} | 27 +- godot/modules/openxr/config.py | 3 + .../doc_classes}/OpenXRAPIExtension.xml | 2 +- .../OpenXRExtensionWrapperExtension.xml | 2 +- .../doc_classes/OpenXRInteractionProfile.xml | 2 +- .../OpenXRInteractionProfileMetadata.xml | 54 + .../openxr/doc_classes/OpenXRInterface.xml | 153 + .../openxr/editor/openxr_action_editor.cpp | 4 +- .../editor/openxr_action_set_editor.cpp | 9 +- .../openxr_interaction_profile_editor.cpp | 15 +- .../openxr_interaction_profile_editor.h | 6 +- ...enxr_select_interaction_profile_dialog.cpp | 4 +- ...openxr_select_interaction_profile_dialog.h | 2 +- .../openxr_extension_wrapper_extension.cpp | 4 +- ...penxr_fb_passthrough_extension_wrapper.cpp | 2 +- .../openxr_hand_tracking_extension.cpp | 59 + .../openxr_hand_tracking_extension.h | 8 + .../openxr_htc_controller_extension.cpp | 4 +- .../openxr_htc_vive_tracker_extension.cpp | 4 +- .../openxr_huawei_controller_extension.cpp | 4 +- .../openxr_ml2_controller_extension.cpp | 4 +- .../openxr_pico_controller_extension.cpp | 130 +- .../openxr_wmr_controller_extension.cpp | 4 +- godot/modules/openxr/openxr_api.cpp | 151 +- godot/modules/openxr/openxr_api.h | 8 +- godot/modules/openxr/openxr_interface.cpp | 164 +- godot/modules/openxr/openxr_interface.h | 58 + godot/modules/openxr/register_types.cpp | 24 +- godot/modules/openxr/scene/openxr_hand.cpp | 4 +- godot/modules/openxr/scene/openxr_hand.h | 4 +- godot/modules/regex/icons/RegEx.svg | 1 + godot/modules/regex/icons/RegExMatch.svg | 1 + godot/modules/svg/SCsub | 13 +- godot/modules/svg/image_loader_svg.cpp | 2 +- godot/modules/text_server_adv/SCsub | 2 + .../gdextension_build/SConstruct | 14 +- .../text_server_adv/text_server_adv.cpp | 170 +- .../modules/text_server_adv/text_server_adv.h | 22 +- .../text_server_adv/thorvg_svg_in_ot.cpp | 21 +- .../text_server_adv/thorvg_svg_in_ot.h | 14 - godot/modules/text_server_fb/SCsub | 2 + .../gdextension_build/SConstruct | 14 +- .../modules/text_server_fb/text_server_fb.cpp | 68 +- godot/modules/text_server_fb/text_server_fb.h | 17 +- .../text_server_fb/thorvg_svg_in_ot.cpp | 6 +- .../doc_classes/ResourceImporterOggVorbis.xml | 2 +- .../doc_classes/WebRTCPeerConnection.xml | 2 +- .../webrtc/webrtc_data_channel_extension.h | 1 - .../webrtc/webrtc_peer_connection_extension.h | 1 - godot/modules/websocket/SCsub | 2 +- godot/modules/zip/doc_classes/ZIPReader.xml | 9 + godot/modules/zip/zip_packer.cpp | 6 +- godot/modules/zip/zip_packer.h | 6 +- godot/modules/zip/zip_reader.cpp | 20 +- godot/modules/zip/zip_reader.h | 5 +- godot/platform/android/detect.py | 4 - .../EditorExportPlatformAndroid.xml | 5 + godot/platform/android/export/export.cpp | 3 + .../platform/android/export/export_plugin.cpp | 29 +- .../android/export/gradle_export_util.cpp | 8 +- .../android/java/app/AndroidManifest.xml | 1 + .../android/java/editor/src/.gitignore | 1 + .../editor/src/debug/res/values/strings.xml | 4 + .../java/editor/src/main/AndroidManifest.xml | 1 + .../lib/src/org/godotengine/godot/Godot.kt | 13 + .../godot/input/GodotEditText.java | 29 + .../godotengine/godot/plugin/GodotPlugin.java | 131 +- .../godot/plugin/GodotPluginRegistry.java | 31 +- godot/platform/android/java_godot_wrapper.cpp | 20 + godot/platform/android/java_godot_wrapper.h | 4 + godot/platform/android/os_android.cpp | 42 + godot/platform/android/os_android.h | 6 + .../android/plugin/godot_plugin_jni.cpp | 27 - .../android/plugin/godot_plugin_jni.h | 1 - godot/platform/ios/detect.py | 6 - .../doc_classes/EditorExportPlatformIOS.xml | 1 + godot/platform/ios/export/export_plugin.cpp | 12 +- godot/platform/ios/export/export_plugin.h | 10 +- .../linuxbsd/export/export_plugin.cpp | 3 +- .../linuxbsd/freedesktop_portal_desktop.cpp | 350 +- .../linuxbsd/freedesktop_portal_desktop.h | 30 +- godot/platform/linuxbsd/joypad_linux.cpp | 24 +- godot/platform/linuxbsd/os_linuxbsd.cpp | 21 + godot/platform/linuxbsd/os_linuxbsd.h | 2 + .../linuxbsd/x11/display_server_x11.cpp | 40 +- .../linuxbsd/x11/display_server_x11.h | 2 + godot/platform/linuxbsd/x11/gl_manager_x11.h | 8 +- .../doc_classes/EditorExportPlatformMacOS.xml | 2 +- godot/platform/macos/export/export_plugin.cpp | 12 +- godot/platform/macos/godot_content_view.h | 2 + godot/platform/macos/godot_content_view.mm | 9 +- godot/platform/uwp/README.md | 20 - godot/platform/uwp/SCsub | 20 - godot/platform/uwp/app_uwp.cpp | 560 - godot/platform/uwp/app_uwp.h | 115 - godot/platform/uwp/context_egl_uwp.cpp | 212 - godot/platform/uwp/detect.py | 216 - godot/platform/uwp/export/app_packager.cpp | 465 - godot/platform/uwp/export/app_packager.h | 149 - godot/platform/uwp/export/export_plugin.cpp | 525 - godot/platform/uwp/export/export_plugin.h | 450 - godot/platform/uwp/export/logo.svg | 1 - godot/platform/uwp/joypad_uwp.cpp | 174 - godot/platform/uwp/os_uwp.cpp | 845 - godot/platform/uwp/os_uwp.h | 256 - godot/platform/web/SCsub | 3 + godot/platform/web/audio_driver_web.cpp | 2 +- godot/platform/web/detect.py | 16 +- .../doc_classes/EditorExportPlatformWeb.xml | 1 + godot/platform/web/export/export_plugin.cpp | 8 +- godot/platform/web/export/export_plugin.h | 3 +- .../library_godot_javascript_singleton.js | 10 +- godot/platform/windows/SCsub | 1 + godot/platform/windows/detect.py | 6 +- .../platform/windows/export/export_plugin.cpp | 3 +- godot/platform/windows/os_windows.cpp | 9 +- .../windows/windows_terminal_logger.cpp | 4 - godot/scene/2d/animated_sprite_2d.cpp | 2 +- godot/scene/2d/audio_stream_player_2d.cpp | 2 +- godot/scene/2d/camera_2d.cpp | 77 +- godot/scene/2d/camera_2d.h | 1 + godot/scene/2d/canvas_modulate.cpp | 67 +- godot/scene/2d/canvas_modulate.h | 8 + godot/scene/2d/gpu_particles_2d.cpp | 104 +- godot/scene/2d/gpu_particles_2d.h | 4 +- godot/scene/2d/navigation_agent_2d.cpp | 4 +- godot/scene/2d/node_2d.cpp | 8 - godot/scene/2d/physical_bone_2d.cpp | 2 +- godot/scene/2d/physics_body_2d.cpp | 17 +- godot/scene/2d/tile_map.compat.inc | 10 + godot/scene/2d/tile_map.cpp | 2291 +- godot/scene/2d/tile_map.h | 321 +- godot/scene/3d/gpu_particles_3d.cpp | 101 +- godot/scene/3d/gpu_particles_3d.h | 4 +- godot/scene/3d/label_3d.cpp | 55 +- godot/scene/3d/lightmap_gi.cpp | 5 +- godot/scene/3d/lightmap_gi.h | 1 + godot/scene/3d/navigation_agent_3d.cpp | 4 +- godot/scene/3d/navigation_region_3d.cpp | 53 +- godot/scene/3d/navigation_region_3d.h | 2 - godot/scene/3d/node_3d.cpp | 15 + godot/scene/3d/node_3d.h | 2 + godot/scene/3d/occluder_instance_3d.cpp | 2 +- godot/scene/3d/physics_body_3d.cpp | 17 +- godot/scene/3d/sprite_3d.cpp | 2 +- godot/scene/3d/voxel_gi.cpp | 24 +- godot/scene/3d/voxel_gi.h | 2 + godot/scene/3d/xr_nodes.cpp | 33 +- godot/scene/3d/xr_nodes.h | 4 +- .../scene/animation/animation_blend_tree.cpp | 2 +- .../animation_node_state_machine.cpp | 2 +- godot/scene/animation/animation_player.cpp | 2 +- godot/scene/animation/animation_tree.cpp | 8 + godot/scene/animation/animation_tree.h | 5 + godot/scene/animation/tween.cpp | 15 +- godot/scene/audio/audio_stream_player.h | 5 - godot/scene/gui/box_container.cpp | 13 +- godot/scene/gui/box_container.h | 2 - godot/scene/gui/button.cpp | 83 +- godot/scene/gui/button.h | 2 +- godot/scene/gui/check_box.cpp | 33 +- godot/scene/gui/check_box.h | 2 +- godot/scene/gui/check_button.cpp | 34 +- godot/scene/gui/check_button.h | 2 +- godot/scene/gui/code_edit.cpp | 347 +- godot/scene/gui/code_edit.h | 25 +- godot/scene/gui/color_mode.cpp | 20 +- godot/scene/gui/color_picker.cpp | 98 +- godot/scene/gui/color_picker.h | 16 +- godot/scene/gui/control.cpp | 44 +- godot/scene/gui/control.h | 7 + godot/scene/gui/dialogs.cpp | 14 +- godot/scene/gui/dialogs.h | 2 +- godot/scene/gui/file_dialog.cpp | 44 +- godot/scene/gui/file_dialog.h | 5 +- godot/scene/gui/flow_container.cpp | 12 +- godot/scene/gui/flow_container.h | 2 - godot/scene/gui/graph_edit.cpp | 444 +- godot/scene/gui/graph_edit.h | 91 +- godot/scene/gui/graph_edit_arranger.cpp | 14 +- godot/scene/gui/graph_element.cpp | 245 + .../gui/graph_element.h} | 94 +- godot/scene/gui/graph_node.cpp | 1231 +- godot/scene/gui/graph_node.h | 207 +- godot/scene/gui/grid_container.cpp | 16 +- godot/scene/gui/grid_container.h | 4 +- godot/scene/gui/item_list.cpp | 135 +- godot/scene/gui/item_list.h | 2 - godot/scene/gui/label.cpp | 34 +- godot/scene/gui/label.h | 2 - godot/scene/gui/line_edit.cpp | 71 +- godot/scene/gui/line_edit.h | 8 +- godot/scene/gui/link_button.cpp | 37 +- godot/scene/gui/link_button.h | 2 +- godot/scene/gui/margin_container.cpp | 33 +- godot/scene/gui/margin_container.h | 5 +- godot/scene/gui/menu_bar.cpp | 57 +- godot/scene/gui/menu_bar.h | 1 - godot/scene/gui/menu_button.cpp | 2 +- godot/scene/gui/option_button.cpp | 58 +- godot/scene/gui/option_button.h | 7 +- godot/scene/gui/panel.cpp | 11 +- godot/scene/gui/panel.h | 3 +- godot/scene/gui/panel_container.cpp | 12 +- godot/scene/gui/panel_container.h | 2 +- godot/scene/gui/popup.cpp | 30 +- godot/scene/gui/popup.h | 5 +- godot/scene/gui/popup_menu.compat.inc | 46 + godot/scene/gui/popup_menu.cpp | 125 +- godot/scene/gui/popup_menu.h | 14 +- godot/scene/gui/progress_bar.cpp | 23 +- godot/scene/gui/progress_bar.h | 2 - godot/scene/gui/range.cpp | 4 + godot/scene/gui/rich_text_effect.h | 1 - godot/scene/gui/rich_text_label.cpp | 208 +- godot/scene/gui/rich_text_label.h | 13 +- godot/scene/gui/scroll_bar.cpp | 41 +- godot/scene/gui/scroll_bar.h | 2 - godot/scene/gui/scroll_container.cpp | 11 +- godot/scene/gui/scroll_container.h | 5 +- godot/scene/gui/separator.cpp | 14 +- godot/scene/gui/separator.h | 3 +- godot/scene/gui/slider.cpp | 29 +- godot/scene/gui/slider.h | 1 - godot/scene/gui/spin_box.cpp | 15 +- godot/scene/gui/spin_box.h | 2 - godot/scene/gui/split_container.cpp | 29 +- godot/scene/gui/split_container.h | 6 +- godot/scene/gui/tab_bar.cpp | 63 +- godot/scene/gui/tab_bar.h | 2 +- godot/scene/gui/tab_container.cpp | 88 +- godot/scene/gui/tab_container.h | 2 +- godot/scene/gui/text_edit.cpp | 141 +- godot/scene/gui/text_edit.h | 16 +- godot/scene/gui/texture_rect.cpp | 6 +- godot/scene/gui/tree.cpp | 188 +- godot/scene/gui/tree.h | 8 +- godot/scene/main/canvas_item.cpp | 16 +- godot/scene/main/canvas_item.h | 6 +- godot/scene/main/multiplayer_peer.h | 1 - godot/scene/main/node.cpp | 15 +- godot/scene/main/node.h | 2 + godot/scene/main/scene_tree.cpp | 2 +- godot/scene/main/viewport.cpp | 96 +- godot/scene/main/viewport.h | 8 +- godot/scene/main/window.cpp | 119 +- godot/scene/main/window.h | 38 +- godot/scene/property_utils.cpp | 1 + godot/scene/register_scene_types.cpp | 2 +- godot/scene/resources/SCsub | 2 - godot/scene/resources/animation.cpp | 28 +- godot/scene/resources/atlas_texture.cpp | 9 +- godot/scene/resources/curve.cpp | 81 +- godot/scene/resources/curve.h | 10 + godot/scene/resources/default_theme/SCsub | 32 - .../resources/font.compat.inc} | 20 +- godot/scene/resources/font.cpp | 208 +- godot/scene/resources/font.h | 16 +- godot/scene/resources/gradient_texture.cpp | 50 +- godot/scene/resources/gradient_texture.h | 6 +- godot/scene/resources/material.cpp | 5 + godot/scene/resources/material.h | 1 + godot/scene/resources/mesh_library.cpp | 8 +- godot/scene/resources/packed_scene.cpp | 72 +- godot/scene/resources/packed_scene.h | 1 + .../resources/particle_process_material.cpp | 8 +- godot/scene/resources/primitive_meshes.cpp | 32 +- .../scene/resources/resource_format_text.cpp | 1 + godot/scene/resources/shader.cpp | 15 +- godot/scene/resources/shader_include.cpp | 15 +- godot/scene/resources/style_box.h | 1 - godot/scene/resources/surface_tool.cpp | 4 +- godot/scene/resources/syntax_highlighter.cpp | 2 +- godot/scene/resources/syntax_highlighter.h | 1 - godot/scene/resources/theme.cpp | 6 +- godot/scene/resources/tile_set.cpp | 85 +- godot/scene/resources/tile_set.h | 23 +- godot/scene/resources/visual_shader.cpp | 8 + godot/scene/resources/visual_shader.h | 4 + godot/scene/theme/SCsub | 13 + .../default_theme => theme}/default_theme.cpp | 57 +- .../default_theme => theme}/default_theme.h | 0 .../default_theme_builders.py | 0 godot/scene/theme/icons/SCsub | 22 + .../default_theme => theme/icons}/add.svg | 0 .../icons}/arrow_down.svg | 0 .../icons}/arrow_left.svg | 0 .../icons}/arrow_right.svg | 0 .../icons}/bookmark.svg | 0 .../icons}/breakpoint.svg | 0 .../default_theme => theme/icons}/checked.svg | 0 .../icons}/checked_disabled.svg | 0 .../default_theme => theme/icons}/close.svg | 0 .../icons}/close_hl.svg | 0 .../icons}/color_picker_bar_arrow.svg | 0 .../icons}/color_picker_cursor.svg | 0 .../icons}/color_picker_overbright.svg | 0 .../icons}/color_picker_pipette.svg | 0 .../icons}/default_theme_icons_builders.py | 0 .../icons}/error_icon.svg | 0 .../default_theme => theme/icons}/file.svg | 0 .../default_theme => theme/icons}/folder.svg | 0 godot/scene/theme/icons/folder_down_arrow.svg | 1 + .../scene/theme/icons/folder_right_arrow.svg | 1 + .../icons}/folder_up.svg | 0 .../icons}/graph_port.svg | 0 .../icons}/grid_layout.svg | 0 .../icons}/grid_minimap.svg | 0 .../icons}/grid_snap.svg | 0 .../icons}/grid_toggle.svg | 0 .../icons}/hslider_tick.svg | 0 .../icons}/hsplitter.svg | 0 .../icons}/indeterminate.svg | 0 .../icons}/line_edit_clear.svg | 0 .../icons}/mini_checkerboard.svg | 0 .../icons}/option_button_arrow.svg | 0 .../icons}/picker_shape_circle.svg | 0 .../icons}/picker_shape_rectangle.svg | 0 .../icons}/picker_shape_rectangle_wheel.svg | 0 .../icons}/popup_menu_arrow_left.svg | 0 .../icons}/popup_menu_arrow_right.svg | 0 .../icons}/radio_checked.svg | 0 .../icons}/radio_checked_disabled.svg | 0 .../icons}/radio_unchecked.svg | 0 .../icons}/radio_unchecked_disabled.svg | 0 .../default_theme => theme/icons}/reload.svg | 0 .../icons}/resizer_nw.svg | 0 .../icons}/resizer_se.svg | 0 .../icons}/scroll_button_left.svg | 0 .../icons}/scroll_button_left_hl.svg | 0 .../icons}/scroll_button_right.svg | 0 .../icons}/scroll_button_right_hl.svg | 0 .../icons}/slider_grabber.svg | 0 .../icons}/slider_grabber_disabled.svg | 0 .../icons}/slider_grabber_hl.svg | 0 .../icons}/tabs_drop_mark.svg | 0 .../icons}/tabs_menu.svg | 0 .../icons}/tabs_menu_hl.svg | 0 .../icons}/text_edit_ellipsis.svg | 0 .../icons}/text_edit_space.svg | 0 .../icons}/text_edit_tab.svg | 0 .../icons}/toggle_off.svg | 0 .../icons}/toggle_off_disabled.svg | 0 .../icons}/toggle_off_disabled_mirrored.svg | 0 .../icons}/toggle_off_mirrored.svg | 0 .../icons}/toggle_on.svg | 0 .../icons}/toggle_on_disabled.svg | 0 .../icons}/toggle_on_disabled_mirrored.svg | 0 .../icons}/toggle_on_mirrored.svg | 0 .../icons}/unchecked.svg | 0 .../icons}/unchecked_disabled.svg | 0 .../default_theme => theme/icons}/updown.svg | 0 .../icons}/visibility_visible.svg | 0 .../icons}/vslider_tick.svg | 0 .../icons}/vsplitter.svg | 0 .../icons}/zoom_less.svg | 0 .../icons}/zoom_more.svg | 0 .../icons}/zoom_reset.svg | 0 godot/scene/theme/theme_db.cpp | 296 +- godot/scene/theme/theme_db.h | 108 +- godot/scene/theme/theme_owner.cpp | 193 +- godot/scene/theme/theme_owner.h | 11 +- godot/scu_builders.py | 1 - godot/servers/audio/audio_effect.h | 1 - godot/servers/audio/audio_stream.h | 5 +- godot/servers/audio_server.cpp | 2 - godot/servers/audio_server.h | 2 - .../extensions/physics_server_2d_extension.h | 1 - godot/servers/navigation_server_3d.cpp | 4 + godot/servers/navigation_server_3d.h | 5 +- godot/servers/navigation_server_3d_dummy.h | 5 +- godot/servers/physics_server_3d.h | 1 - .../renderer_rd/cluster_builder_rd.cpp | 21 +- .../renderer_rd/effects/debug_effects.cpp | 56 +- .../renderer_rd/effects/debug_effects.h | 14 + .../rendering/renderer_rd/environment/gi.cpp | 73 +- .../render_forward_clustered.cpp | 15 +- .../scene_shader_forward_clustered.cpp | 1 + .../forward_mobile/render_forward_mobile.cpp | 15 +- .../scene_shader_forward_mobile.cpp | 1 + .../renderer_rd/renderer_canvas_render_rd.cpp | 31 +- .../renderer_rd/renderer_canvas_render_rd.h | 2 +- .../renderer_rd/renderer_compositor_rd.cpp | 18 +- .../renderer_rd/renderer_scene_render_rd.cpp | 3 +- .../shaders/effects/motion_vectors.glsl | 80 + .../shaders/effects/taa_resolve.glsl | 2 +- .../scene_forward_clustered.glsl | 102 +- .../forward_mobile/scene_forward_mobile.glsl | 14 + .../renderer_rd/shaders/particles_copy.glsl | 25 +- .../storage_rd/material_storage.cpp | 28 +- .../renderer_rd/storage_rd/mesh_storage.cpp | 138 +- .../renderer_rd/storage_rd/mesh_storage.h | 45 +- .../storage_rd/particles_storage.cpp | 85 +- .../storage_rd/particles_storage.h | 15 +- .../storage_rd/texture_storage.cpp | 4 +- .../renderer_rd/storage_rd/texture_storage.h | 2 +- godot/servers/rendering/renderer_scene_cull.h | 3 + godot/servers/rendering/rendering_device.h | 1 + .../rendering/rendering_device_binds.h | 2 +- godot/servers/rendering/shader_language.cpp | 7 +- godot/servers/rendering/shader_preprocessor.h | 1 + godot/servers/rendering/shader_types.cpp | 1 + godot/servers/rendering/storage/utilities.h | 1 + godot/servers/text/text_server_extension.cpp | 59 + godot/servers/text/text_server_extension.h | 18 +- godot/servers/text_server.cpp | 62 + godot/servers/text_server.h | 9 + godot/servers/xr/xr_interface.cpp | 2 + godot/servers/xr/xr_interface.h | 3 +- godot/servers/xr/xr_positional_tracker.cpp | 6 +- godot/servers/xr_server.cpp | 9 +- godot/tests/SCsub | 6 +- godot/tests/core/io/test_image.h | 16 +- godot/tests/core/io/test_resource.h | 4 +- godot/tests/core/math/test_math_funcs.h | 33 + godot/tests/core/object/test_object.h | 72 +- godot/tests/core/string/test_string.h | 21 + godot/tests/core/variant/test_dictionary.h | 2 +- .../tests/core/variant/test_variant_utility.h | 141 + godot/tests/data/images/icon.dds | Bin 87536 -> 0 bytes godot/tests/scene/test_arraymesh.h | 4 +- godot/tests/scene/test_code_edit.h | 248 +- godot/tests/scene/test_control.h | 66 + .../scene/test_node_2d.h} | 61 +- godot/tests/scene/test_text_edit.h | 40 - godot/tests/scene/test_viewport.h | 18 +- godot/tests/scene/test_window.h | 96 + .../rendering/test_shader_preprocessor.h | 6 +- .../tests/servers/test_navigation_server_3d.h | 10 + godot/tests/servers/test_text_server.h | 134 +- godot/tests/test_main.cpp | 27 +- godot/thirdparty/README.md | 104 +- .../fonts/JetBrainsMono_Regular.woff2 | Bin 69168 -> 92392 bytes .../fonts/NotoNaskhArabicUI_Bold.woff2 | Bin 57612 -> 53860 bytes .../fonts/NotoNaskhArabicUI_Regular.woff2 | Bin 57340 -> 53352 bytes .../fonts/NotoSansBengaliUI_Bold.woff2 | Bin 44496 -> 47704 bytes .../fonts/NotoSansBengaliUI_Regular.woff2 | Bin 43568 -> 47000 bytes .../fonts/NotoSansDevanagariUI_Bold.woff2 | Bin 44084 -> 52216 bytes .../fonts/NotoSansDevanagariUI_Regular.woff2 | Bin 43724 -> 51880 bytes .../fonts/NotoSansGeorgian_Bold.woff2 | Bin 11660 -> 24032 bytes .../fonts/NotoSansGeorgian_Regular.woff2 | Bin 11340 -> 23360 bytes .../fonts/NotoSansHebrew_Bold.woff2 | Bin 6692 -> 6216 bytes .../fonts/NotoSansHebrew_Regular.woff2 | Bin 6680 -> 6200 bytes .../fonts/NotoSansMalayalamUI_Bold.woff2 | Bin 22736 -> 26968 bytes .../fonts/NotoSansMalayalamUI_Regular.woff2 | Bin 23080 -> 26952 bytes .../fonts/NotoSansOriyaUI_Bold.woff2 | Bin 36520 -> 0 bytes .../fonts/NotoSansOriyaUI_Regular.woff2 | Bin 36020 -> 0 bytes .../thirdparty/fonts/NotoSansOriya_Bold.woff2 | Bin 0 -> 37124 bytes .../fonts/NotoSansOriya_Regular.woff2 | Bin 0 -> 36084 bytes .../fonts/NotoSansSinhalaUI_Bold.woff2 | Bin 40128 -> 40952 bytes .../fonts/NotoSansSinhalaUI_Regular.woff2 | Bin 40124 -> 40672 bytes .../fonts/NotoSansTamilUI_Bold.woff2 | Bin 17400 -> 17848 bytes .../fonts/NotoSansTamilUI_Regular.woff2 | Bin 17160 -> 17600 bytes .../fonts/NotoSansTeluguUI_Bold.woff2 | Bin 37228 -> 46740 bytes .../fonts/NotoSansTeluguUI_Regular.woff2 | Bin 36816 -> 44460 bytes .../fonts/NotoSansThaiUI_Bold.woff2 | Bin 9420 -> 0 bytes .../fonts/NotoSansThaiUI_Regular.woff2 | Bin 9468 -> 0 bytes .../thirdparty/fonts/NotoSansThai_Bold.woff2 | Bin 0 -> 8948 bytes .../fonts/NotoSansThai_Regular.woff2 | Bin 0 -> 9028 bytes godot/thirdparty/fonts/NotoSans_Bold.woff2 | Bin 115376 -> 146300 bytes godot/thirdparty/fonts/NotoSans_Regular.woff2 | Bin 117840 -> 148480 bytes .../freetype/include/freetype/freetype.h | 2 +- .../include/freetype/internal/ftcalc.h | 4 +- .../include/freetype/internal/tttypes.h | 15 - godot/thirdparty/freetype/src/autofit/afcjk.c | 6 +- .../thirdparty/freetype/src/autofit/aflatin.c | 38 +- godot/thirdparty/freetype/src/base/ftcalc.c | 84 +- godot/thirdparty/freetype/src/base/ftobjs.c | 3 +- godot/thirdparty/freetype/src/base/ftstream.c | 8 +- godot/thirdparty/freetype/src/cff/cffload.c | 9 +- godot/thirdparty/freetype/src/cff/cffparse.c | 22 +- godot/thirdparty/freetype/src/cff/cffparse.h | 4 + godot/thirdparty/freetype/src/gzip/adler32.c | 192 - godot/thirdparty/freetype/src/gzip/crc32.c | 1135 - godot/thirdparty/freetype/src/gzip/crc32.h | 9446 --- godot/thirdparty/freetype/src/gzip/ftzconf.h | 547 - godot/thirdparty/freetype/src/gzip/gzguts.h | 219 - godot/thirdparty/freetype/src/gzip/inffast.c | 323 - godot/thirdparty/freetype/src/gzip/inffast.h | 11 - godot/thirdparty/freetype/src/gzip/inffixed.h | 94 - godot/thirdparty/freetype/src/gzip/inflate.c | 1605 - godot/thirdparty/freetype/src/gzip/inflate.h | 131 - godot/thirdparty/freetype/src/gzip/inftrees.c | 304 - godot/thirdparty/freetype/src/gzip/inftrees.h | 67 - .../src/gzip/patches/freetype-zlib.diff | 469 - godot/thirdparty/freetype/src/gzip/zlib.h | 1971 - godot/thirdparty/freetype/src/gzip/zutil.c | 334 - godot/thirdparty/freetype/src/gzip/zutil.h | 281 - .../thirdparty/freetype/src/psaux/cffdecode.c | 6 +- godot/thirdparty/freetype/src/psaux/pshints.c | 2 +- .../thirdparty/freetype/src/psaux/t1decode.c | 4 +- godot/thirdparty/freetype/src/sfnt/sfwoff2.c | 18 +- godot/thirdparty/freetype/src/sfnt/ttcolr.c | 4 +- .../thirdparty/freetype/src/smooth/ftgrays.c | 11 +- .../freetype/src/truetype/truetype.c | 1 - .../freetype/src/truetype/ttdriver.c | 5 - .../freetype/src/truetype/ttgload.c | 295 +- .../freetype/src/truetype/ttgxvar.c | 8 +- .../freetype/src/truetype/ttinterp.c | 838 +- .../freetype/src/truetype/ttinterp.h | 74 - .../thirdparty/freetype/src/truetype/ttobjs.c | 3 - .../thirdparty/freetype/src/truetype/ttobjs.h | 2 - .../freetype/src/truetype/ttsubpix.c | 1013 - .../freetype/src/truetype/ttsubpix.h | 110 - godot/thirdparty/freetype/src/type1/t1load.c | 4 +- .../thirdparty/freetype/src/type42/t42parse.c | 2 +- .../harfbuzz/src/OT/Layout/GDEF/GDEF.hh | 33 + .../src/OT/Layout/GPOS/CursivePosFormat1.hh | 20 +- .../src/OT/Layout/GPOS/MarkMarkPosFormat1.hh | 2 +- .../src/OT/Layout/GPOS/PairPosFormat1.hh | 2 +- .../src/OT/Layout/GPOS/PairPosFormat2.hh | 2 +- .../src/OT/Layout/GPOS/PairValueRecord.hh | 2 +- .../harfbuzz/src/OT/Layout/GSUB/Ligature.hh | 1 - .../src/OT/Layout/GSUB/LigatureSet.hh | 19 +- .../harfbuzz/src/graph/classdef-graph.hh | 2 +- .../harfbuzz/src/graph/coverage-graph.hh | 2 +- godot/thirdparty/harfbuzz/src/graph/graph.hh | 213 +- .../harfbuzz/src/graph/gsubgpos-graph.hh | 6 +- .../harfbuzz/src/graph/pairpos-graph.hh | 2 +- .../harfbuzz/src/hb-aat-layout-trak-table.hh | 4 +- godot/thirdparty/harfbuzz/src/hb-algs.hh | 8 +- godot/thirdparty/harfbuzz/src/hb-bimap.hh | 1 + godot/thirdparty/harfbuzz/src/hb-bit-page.hh | 32 +- godot/thirdparty/harfbuzz/src/hb-bit-set.hh | 16 +- godot/thirdparty/harfbuzz/src/hb-buffer.cc | 6 +- godot/thirdparty/harfbuzz/src/hb-buffer.hh | 8 +- godot/thirdparty/harfbuzz/src/hb-config.hh | 2 +- godot/thirdparty/harfbuzz/src/hb-kern.hh | 2 +- godot/thirdparty/harfbuzz/src/hb-machinery.hh | 4 - godot/thirdparty/harfbuzz/src/hb-map.hh | 14 +- godot/thirdparty/harfbuzz/src/hb-null.hh | 11 +- godot/thirdparty/harfbuzz/src/hb-open-type.hh | 24 - .../harfbuzz/src/hb-ot-cff-common.hh | 4 +- .../harfbuzz/src/hb-ot-cff1-table.hh | 2 + .../harfbuzz/src/hb-ot-cff2-table.hh | 2 + .../harfbuzz/src/hb-ot-hmtx-table.hh | 3 + .../harfbuzz/src/hb-ot-layout-common.hh | 52 +- .../harfbuzz/src/hb-ot-layout-gsubgpos.hh | 387 +- godot/thirdparty/harfbuzz/src/hb-ot-layout.cc | 40 +- godot/thirdparty/harfbuzz/src/hb-ot-layout.h | 7 + godot/thirdparty/harfbuzz/src/hb-ot-map.cc | 22 +- godot/thirdparty/harfbuzz/src/hb-ot-shape.cc | 19 +- .../harfbuzz/src/hb-ot-shaper-use-machine.hh | 1925 +- .../harfbuzz/src/hb-ot-var-avar-table.hh | 164 + .../harfbuzz/src/hb-ot-var-common.hh | 105 +- .../harfbuzz/src/hb-ot-var-cvar-table.hh | 3 +- .../harfbuzz/src/hb-ot-var-fvar-table.hh | 42 +- .../harfbuzz/src/hb-ot-var-hvar-table.hh | 53 +- .../harfbuzz/src/hb-priority-queue.hh | 27 +- godot/thirdparty/harfbuzz/src/hb-sanitize.hh | 6 +- godot/thirdparty/harfbuzz/src/hb-serialize.hh | 2 +- .../harfbuzz/src/hb-subset-cff-common.hh | 2 +- .../thirdparty/harfbuzz/src/hb-subset-cff1.cc | 10 +- .../thirdparty/harfbuzz/src/hb-subset-cff1.hh | 37 - .../thirdparty/harfbuzz/src/hb-subset-cff2.hh | 37 - .../harfbuzz/src/hb-subset-input.cc | 1 - .../src/hb-subset-instancer-solver.cc | 54 +- .../src/hb-subset-instancer-solver.hh | 24 +- .../src/hb-subset-plan-member-list.hh | 2 + .../thirdparty/harfbuzz/src/hb-subset-plan.cc | 27 +- godot/thirdparty/harfbuzz/src/hb-subset.cc | 10 +- godot/thirdparty/harfbuzz/src/hb-uniscribe.cc | 6 +- godot/thirdparty/harfbuzz/src/hb-version.h | 6 +- godot/thirdparty/harfbuzz/src/hb.hh | 1 + godot/thirdparty/libktx/Apache-2.0.txt | 208 + godot/thirdparty/libktx/LICENSE.dfdutils.adoc | 10 + godot/thirdparty/libktx/LICENSE.md | 36 + godot/thirdparty/libktx/godot.patch | 45 + godot/thirdparty/libktx/include/KHR/khr_df.h | 619 + godot/thirdparty/libktx/include/ktx.h | 1810 + godot/thirdparty/libktx/include/ktxvulkan.h | 253 + godot/thirdparty/libktx/lib/basis_sgd.h | 85 + .../thirdparty/libktx/lib/basis_transcode.cpp | 733 + godot/thirdparty/libktx/lib/checkheader.c | 259 + .../libktx/lib/dfdutils/KHR/khr_df.h | 619 + .../libktx/lib/dfdutils/colourspaces.c | 51 + .../libktx/lib/dfdutils/createdfd.c | 659 + godot/thirdparty/libktx/lib/dfdutils/dfd.h | 170 + .../thirdparty/libktx/lib/dfdutils/dfd2vk.inl | 599 + .../libktx/lib/dfdutils/interpretdfd.c | 345 + .../thirdparty/libktx/lib/dfdutils/printdfd.c | 97 + .../thirdparty/libktx/lib/dfdutils/queries.c | 146 + godot/thirdparty/libktx/lib/dfdutils/vk2dfd.c | 34 + .../thirdparty/libktx/lib/dfdutils/vk2dfd.inl | 340 + godot/thirdparty/libktx/lib/filestream.c | 393 + godot/thirdparty/libktx/lib/filestream.h | 27 + godot/thirdparty/libktx/lib/formatsize.h | 58 + godot/thirdparty/libktx/lib/gl_format.h | 2654 + godot/thirdparty/libktx/lib/hashlist.c | 604 + godot/thirdparty/libktx/lib/ktxint.h | 266 + godot/thirdparty/libktx/lib/memstream.c | 561 + godot/thirdparty/libktx/lib/memstream.h | 43 + godot/thirdparty/libktx/lib/swap.c | 57 + godot/thirdparty/libktx/lib/texture.c | 911 + godot/thirdparty/libktx/lib/texture.h | 107 + godot/thirdparty/libktx/lib/texture1.c | 1459 + godot/thirdparty/libktx/lib/texture1.h | 46 + godot/thirdparty/libktx/lib/texture2.c | 2524 + godot/thirdparty/libktx/lib/texture2.h | 68 + godot/thirdparty/libktx/lib/texture_funcs.inl | 76 + godot/thirdparty/libktx/lib/uthash.h | 942 + godot/thirdparty/libktx/lib/vk_format.h | 1388 + godot/thirdparty/libktx/lib/vkformat_enum.h | 300 + .../libktx/other_include/KHR/khrplatform.h | 290 + godot/thirdparty/libktx/utils/unused.h | 37 + godot/thirdparty/libwebp/src/dec/vp8i_dec.h | 2 +- godot/thirdparty/libwebp/src/dec/vp8l_dec.c | 46 +- godot/thirdparty/libwebp/src/dec/vp8li_dec.h | 2 +- godot/thirdparty/libwebp/src/demux/demux.c | 2 +- godot/thirdparty/libwebp/src/enc/vp8i_enc.h | 2 +- godot/thirdparty/libwebp/src/mux/muxi.h | 2 +- .../libwebp/src/utils/huffman_utils.c | 97 +- .../libwebp/src/utils/huffman_utils.h | 27 +- .../mbedtls/include/mbedtls/aesni.h | 5 +- .../thirdparty/mbedtls/library/entropy_poll.c | 29 +- godot/thirdparty/mbedtls/patches/1453.diff | 53 - .../patches/aesni-no-arm-intrinsics.patch | 17 + godot/thirdparty/minizip/crypt.h | 12 +- godot/thirdparty/minizip/ioapi.c | 62 +- godot/thirdparty/minizip/ioapi.h | 52 +- .../minizip/patches/empty-zip-fix.patch | 193 - .../minizip/patches/godot-seek.patch | 54 +- .../minizip/patches/unbreak-gentoo.patch | 27 - godot/thirdparty/minizip/unzip.c | 519 +- godot/thirdparty/minizip/unzip.h | 134 +- godot/thirdparty/minizip/zip.c | 315 +- godot/thirdparty/minizip/zip.h | 285 +- godot/thirdparty/thorvg/AUTHORS | 1 + godot/thirdparty/thorvg/inc/config.h | 14 +- godot/thirdparty/thorvg/inc/thorvg.h | 364 +- .../thorvg/src/lib/sw_engine/tvgSwCommon.h | 269 +- .../thorvg/src/lib/sw_engine/tvgSwFill.cpp | 240 +- .../thorvg/src/lib/sw_engine/tvgSwImage.cpp | 31 +- .../thorvg/src/lib/sw_engine/tvgSwMath.cpp | 8 +- .../thorvg/src/lib/sw_engine/tvgSwMemPool.cpp | 51 +- .../thorvg/src/lib/sw_engine/tvgSwRaster.cpp | 2490 +- .../thorvg/src/lib/sw_engine/tvgSwRasterAvx.h | 10 +- .../thorvg/src/lib/sw_engine/tvgSwRasterC.h | 79 +- .../src/lib/sw_engine/tvgSwRasterNeon.h | 6 +- .../src/lib/sw_engine/tvgSwRasterTexmap.h | 801 +- .../lib/sw_engine/tvgSwRasterTexmapInternal.h | 168 - .../src/lib/sw_engine/tvgSwRenderer.cpp | 143 +- .../thorvg/src/lib/sw_engine/tvgSwRenderer.h | 12 +- .../thorvg/src/lib/sw_engine/tvgSwRle.cpp | 33 +- .../thorvg/src/lib/sw_engine/tvgSwShape.cpp | 160 +- .../thorvg/src/lib/sw_engine/tvgSwStroke.cpp | 70 +- .../thorvg/src/lib/tvgAnimation.cpp | 108 + godot/thirdparty/thorvg/src/lib/tvgArray.h | 54 +- godot/thirdparty/thorvg/src/lib/tvgBezier.cpp | 66 +- godot/thirdparty/thorvg/src/lib/tvgBezier.h | 6 +- .../thirdparty/thorvg/src/lib/tvgBinaryDesc.h | 15 +- godot/thirdparty/thorvg/src/lib/tvgCanvas.cpp | 13 +- .../thirdparty/thorvg/src/lib/tvgCanvasImpl.h | 28 +- godot/thirdparty/thorvg/src/lib/tvgCommon.h | 4 +- godot/thirdparty/thorvg/src/lib/tvgFill.h | 4 +- .../tvgPngLoader.h => lib/tvgFrameModule.h} | 34 +- .../thirdparty/thorvg/src/lib/tvgLoadModule.h | 9 +- godot/thirdparty/thorvg/src/lib/tvgLoader.cpp | 33 + godot/thirdparty/thorvg/src/lib/tvgMath.h | 44 +- godot/thirdparty/thorvg/src/lib/tvgPaint.cpp | 35 +- godot/thirdparty/thorvg/src/lib/tvgPaint.h | 21 +- .../thirdparty/thorvg/src/lib/tvgPicture.cpp | 9 +- .../thorvg/src/lib/tvgPictureImpl.h | 58 +- godot/thirdparty/thorvg/src/lib/tvgRender.cpp | 2 +- godot/thirdparty/thorvg/src/lib/tvgRender.h | 83 +- godot/thirdparty/thorvg/src/lib/tvgSaver.cpp | 2 +- godot/thirdparty/thorvg/src/lib/tvgScene.cpp | 14 +- .../thirdparty/thorvg/src/lib/tvgSceneImpl.h | 99 +- godot/thirdparty/thorvg/src/lib/tvgShape.cpp | 50 +- .../thirdparty/thorvg/src/lib/tvgShapeImpl.h | 166 +- .../thirdparty/thorvg/src/lib/tvgSwCanvas.cpp | 2 +- .../thorvg/src/lib/tvgTaskScheduler.h | 1 + .../src/loaders/external_png/tvgPngLoader.cpp | 120 - .../thorvg/src/loaders/jpg/tvgJpgLoader.cpp | 143 - .../thorvg/src/loaders/jpg/tvgJpgLoader.h | 52 - .../thorvg/src/loaders/jpg/tvgJpgd.cpp | 3029 - .../thorvg/src/loaders/jpg/tvgJpgd.h | 35 - .../thorvg/src/loaders/svg/tvgSvgCssStyle.cpp | 74 +- .../thorvg/src/loaders/svg/tvgSvgLoader.cpp | 122 +- .../thorvg/src/loaders/svg/tvgSvgLoader.h | 5 + .../src/loaders/svg/tvgSvgLoaderCommon.h | 11 +- .../src/loaders/svg/tvgSvgSceneBuilder.cpp | 61 +- .../thorvg/src/loaders/svg/tvgSvgUtil.cpp | 13 + .../thorvg/src/loaders/svg/tvgSvgUtil.h | 2 + .../thorvg/src/loaders/svg/tvgXmlParser.cpp | 13 +- .../src/loaders/tvg/tvgTvgBinInterpreter.cpp | 471 - .../thorvg/src/loaders/tvg/tvgTvgCommon.h | 54 - .../thorvg/src/loaders/tvg/tvgTvgLoader.cpp | 233 - .../thorvg/src/loaders/tvg/tvgTvgLoader.h | 61 - .../thorvg/src/savers/tvg/tvgTvgSaver.cpp | 792 - .../thorvg/src/savers/tvg/tvgTvgSaver.h | 78 - godot/thirdparty/thorvg/update-thorvg.sh | 60 +- godot/thirdparty/zlib/adler32.c | 32 +- godot/thirdparty/zlib/compress.c | 21 +- godot/thirdparty/zlib/crc32.c | 248 +- godot/thirdparty/zlib/deflate.c | 569 +- godot/thirdparty/zlib/deflate.h | 16 +- godot/thirdparty/zlib/gzclose.c | 4 +- godot/thirdparty/zlib/gzguts.h | 23 +- godot/thirdparty/zlib/gzlib.c | 101 +- godot/thirdparty/zlib/gzread.c | 88 +- godot/thirdparty/zlib/gzwrite.c | 84 +- godot/thirdparty/zlib/infback.c | 644 - godot/thirdparty/zlib/inffast.c | 5 +- godot/thirdparty/zlib/inffast.h | 2 +- godot/thirdparty/zlib/inflate.c | 129 +- godot/thirdparty/zlib/inftrees.c | 17 +- godot/thirdparty/zlib/inftrees.h | 6 +- godot/thirdparty/zlib/trees.c | 526 +- godot/thirdparty/zlib/uncompr.c | 16 +- godot/thirdparty/zlib/zconf.h | 8 +- godot/thirdparty/zlib/zlib.h | 379 +- godot/thirdparty/zlib/zutil.c | 60 +- godot/thirdparty/zlib/zutil.h | 20 +- hamncheese/{ => Art}/icon.svg | 0 hamncheese/{ => Art}/icon.svg.import | 8 +- hamncheese/Scenes/about.tscn | 22 + hamncheese/Scenes/main.tscn | 77 + hamncheese/Scenes/manual.tscn | 21 + .../{main.tscn => Scenes/settings.tscn} | 93 +- hamncheese/Scripts/about.gd | 8 + hamncheese/{ => Scripts}/dialog.gd | 38 + hamncheese/Scripts/edge.gd | 85 + hamncheese/Scripts/main.gd | 126 + hamncheese/Scripts/manual.gd | 8 + hamncheese/{ => Scripts}/peers.gd | 36 +- hamncheese/Scripts/process.gd | 68 + hamncheese/{main.gd => Scripts/settings.gd} | 256 +- hamncheese/Scripts/stddclmr.gd | 88 + hamncheese/{ => Scripts}/util.gd | 7 + .../godot-uuid/{test.gd => test.gd.unused} | 0 hamncheese/godot-uuid/uuid.gd | 166 +- hamncheese/main.tscn.backup | 74 + hamncheese/project.godot | 23 +- modules/.gitignore | 3 - modules/n2nvpn/SCsub | 81 - modules/n2nvpn/config.h | 41 - modules/n2nvpn/n2nvpn.cpp | 436 - modules/n2nvpn/n2nvpn.h | 53 - modules/n2nvpn/register_types.cpp | 19 - modules/n2nvpn/register_types.h | 4 - modules/n2nvpn/stddclmr.h | 95 - {modules/n2nvpn/n2n => n2n}/.gitignore | 0 {modules/n2nvpn/n2n => n2n}/.gitmodules | 0 {modules/n2nvpn/n2n => n2n}/.yamllint.yml | 0 {modules/n2nvpn/n2n => n2n}/CHANGELOG.md | 0 {modules/n2nvpn/n2n => n2n}/COPYING | 0 {modules/n2nvpn/n2n => n2n}/INSTALL | 0 {modules/n2nvpn/n2n => n2n}/LICENSE | 0 {modules/n2nvpn/n2n => n2n}/Makefile | 0 {modules/n2nvpn/n2n => n2n}/README.md | 0 {modules/n2nvpn/n2n => n2n}/VERSION | 0 {modules/n2nvpn/n2n => n2n}/autogen.sh | 0 {modules/n2nvpn/n2n => n2n}/community.list | 0 {modules/n2nvpn/n2n => n2n}/config.mak.in | 0 {modules/n2nvpn/n2n => n2n}/configure.ac | 0 {modules/n2nvpn/n2n => n2n}/contributors.txt | 0 {modules/n2nvpn/n2n => n2n}/doc/Advanced.md | 0 .../n2nvpn/n2n => n2n}/doc/Authentication.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Bridging.md | 0 .../n2nvpn/n2n => n2n}/doc/BuildConfig.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Building.md | 0 .../n2nvpn/n2n => n2n}/doc/Communities.md | 0 .../n2n => n2n}/doc/ConfigurationFiles.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Crypto.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Faq.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Federation.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Hacking.md | 0 .../n2nvpn/n2n => n2n}/doc/ManagementAPI.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Routing.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Scratchpad.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Scripts.md | 0 .../n2n => n2n}/doc/TapConfiguration.md | 0 {modules/n2nvpn/n2n => n2n}/doc/Tools.md | 0 .../n2n => n2n}/doc/TrafficRestrictions.md | 0 {modules/n2nvpn/n2n => n2n}/edge.8 | 0 {modules/n2nvpn/n2n => n2n}/examples/Makefile | 0 .../n2n => n2n}/examples/example_edge_embed.c | 0 .../example_edge_embed_quick_edge_init.c | 0 .../n2n => n2n}/examples/example_sn_embed.c | 0 {modules/n2nvpn/n2n => n2n}/include/aes.h | 0 {modules/n2nvpn/n2n => n2n}/include/auth.h | 0 {modules/n2nvpn/n2n => n2n}/include/cc20.h | 0 .../n2nvpn/n2n => n2n}/include/curve25519.h | 0 .../n2n => n2n}/include/header_encryption.h | 0 {modules/n2nvpn/n2n => n2n}/include/hexdump.h | 0 {modules/n2nvpn/n2n => n2n}/include/json.h | 0 {modules/n2nvpn/n2n => n2n}/include/lzoconf.h | 0 {modules/n2nvpn/n2n => n2n}/include/lzodefs.h | 0 {modules/n2nvpn/n2n => n2n}/include/minilzo.h | 0 {modules/n2nvpn/n2n => n2n}/include/n2n.h | 0 .../n2nvpn/n2n => n2n}/include/n2n_define.h | 0 .../n2n => n2n}/include/n2n_port_mapping.h | 0 .../n2nvpn/n2n => n2n}/include/n2n_regex.h | 0 .../n2nvpn/n2n => n2n}/include/n2n_typedefs.h | 0 .../n2nvpn/n2n => n2n}/include/n2n_wire.h | 0 .../include/network_traffic_filter.h | 0 {modules/n2nvpn/n2n => n2n}/include/pearson.h | 0 .../n2n => n2n}/include/portable_endian.h | 0 .../n2n => n2n}/include/random_numbers.h | 0 .../n2nvpn/n2n => n2n}/include/sn_selection.h | 0 {modules/n2nvpn/n2n => n2n}/include/speck.h | 0 {modules/n2nvpn/n2n => n2n}/include/tf.h | 0 {modules/n2nvpn/n2n => n2n}/include/uthash.h | 0 {modules/n2nvpn/n2n => n2n}/legacy/README.md | 0 .../n2n => n2n}/legacy/edge_keyschedule.c | 0 .../n2nvpn/n2n => n2n}/legacy/gen_keyfile.py | 0 .../n2nvpn/n2n => n2n}/legacy/n2n_keyfile.c | 0 .../n2nvpn/n2n => n2n}/legacy/n2n_keyfile.h | 0 .../n2nvpn/n2n => n2n}/legacy/transform_aes.c | 0 .../n2nvpn/n2n => n2n}/legacy/transform_tf.c | 0 {modules/n2nvpn/n2n => n2n}/n2n.7 | 0 {modules/n2nvpn/n2n => n2n}/packages/centos | 0 .../n2n => n2n}/packages/debian/Makefile | 0 .../n2nvpn/n2n => n2n}/packages/debian/README | 0 .../n2n => n2n}/packages/debian/configure.ac | 0 .../packages/debian/debian/COPYRIGHT | 0 .../n2n => n2n}/packages/debian/debian/README | 0 .../packages/debian/debian/changelog | 0 .../n2n => n2n}/packages/debian/debian/compat | 0 .../packages/debian/debian/conffiles | 0 .../packages/debian/debian/control | 0 .../n2n => n2n}/packages/debian/debian/dirs | 0 .../n2n => n2n}/packages/debian/debian/docs | 0 .../packages/debian/debian/n2n.substvars | 0 .../packages/debian/debian/postinst | 0 .../n2n => n2n}/packages/debian/debian/postrm | 0 .../packages/debian/debian/preinst | 0 .../n2n => n2n}/packages/debian/debian/prerm | 0 .../n2n => n2n}/packages/debian/debian/rules | 0 .../packages/debian/debian/templates | 0 .../packages/etc/n2n/edge.conf.sample | 0 .../packages/etc/n2n/supernode.conf.sample | 0 .../etc/systemd/system/edge-ntopng@.service | 0 .../packages/etc/systemd/system/edge.service | 0 .../packages/etc/systemd/system/edge@.service | 0 .../etc/systemd/system/supernode.service | 0 .../n2n => n2n}/packages/openwrt/Makefile | 0 .../n2n => n2n}/packages/openwrt/README.md | 0 .../packages/openwrt/config.bthh5a | 0 .../n2n => n2n}/packages/openwrt/config.n2n | 0 .../n2n => n2n}/packages/openwrt/config.x86 | 0 .../n2n => n2n}/packages/rpm/Makefile.in | 0 .../n2n => n2n}/packages/rpm/configure.in | 0 .../n2n => n2n}/packages/rpm/n2n.spec.in | 0 .../n2n => n2n}/packages/rpm/rpm-sign.exp | 0 {modules/n2nvpn/n2n => n2n}/packages/ubuntu | 0 {modules/n2nvpn/n2n => n2n}/scripts/README.md | 0 .../n2nvpn/n2n => n2n}/scripts/config.guess | 0 .../n2nvpn/n2n => n2n}/scripts/config.sub | 0 .../n2n => n2n}/scripts/hack_fakeautoconf.sh | 0 {modules/n2nvpn/n2n => n2n}/scripts/indent.sh | 0 .../n2nvpn/n2n => n2n}/scripts/install-sh | 0 .../n2nvpn/n2n => n2n}/scripts/munin/n2n_ | 0 {modules/n2nvpn/n2n => n2n}/scripts/n2n-ctl | 0 .../n2nvpn/n2n => n2n}/scripts/n2n-gateway.sh | 0 {modules/n2nvpn/n2n => n2n}/scripts/n2n-httpd | 0 .../n2n => n2n}/scripts/test_harness.sh | 0 .../scripts/test_integration_edge.sh | 0 .../scripts/test_integration_supernode.sh | 0 .../n2nvpn/n2n => n2n}/scripts/version.sh | 0 {modules/n2nvpn/n2n => n2n}/src/aes.c | 0 {modules/n2nvpn/n2n => n2n}/src/auth.c | 0 {modules/n2nvpn/n2n => n2n}/src/cc20.c | 0 {modules/n2nvpn/n2n => n2n}/src/curve25519.c | 0 {modules/n2nvpn/n2n => n2n}/src/edge.c | 0 .../n2nvpn/n2n => n2n}/src/edge_management.c | 0 {modules/n2nvpn/n2n => n2n}/src/edge_utils.c | 0 .../n2n => n2n}/src/header_encryption.c | 0 {modules/n2nvpn/n2n => n2n}/src/hexdump.c | 0 {modules/n2nvpn/n2n => n2n}/src/json.c | 0 {modules/n2nvpn/n2n => n2n}/src/management.c | 0 {modules/n2nvpn/n2n => n2n}/src/management.h | 0 {modules/n2nvpn/n2n => n2n}/src/minilzo.c | 0 {modules/n2nvpn/n2n => n2n}/src/n2n.c | 0 .../n2nvpn/n2n => n2n}/src/n2n_port_mapping.c | 0 {modules/n2nvpn/n2n => n2n}/src/n2n_regex.c | 0 .../n2n => n2n}/src/network_traffic_filter.c | 0 {modules/n2nvpn/n2n => n2n}/src/pearson.c | 0 .../n2nvpn/n2n => n2n}/src/random_numbers.c | 0 .../n2nvpn/n2n => n2n}/src/sn_management.c | 0 .../n2nvpn/n2n => n2n}/src/sn_selection.c | 0 {modules/n2nvpn/n2n => n2n}/src/sn_utils.c | 0 {modules/n2nvpn/n2n => n2n}/src/speck.c | 0 {modules/n2nvpn/n2n => n2n}/src/strbuf.h | 0 {modules/n2nvpn/n2n => n2n}/src/supernode.c | 0 {modules/n2nvpn/n2n => n2n}/src/tf.c | 0 .../n2nvpn/n2n => n2n}/src/transform_aes.c | 0 .../n2nvpn/n2n => n2n}/src/transform_cc20.c | 0 .../n2nvpn/n2n => n2n}/src/transform_lzo.c | 0 .../n2nvpn/n2n => n2n}/src/transform_null.c | 0 .../n2nvpn/n2n => n2n}/src/transform_speck.c | 0 .../n2nvpn/n2n => n2n}/src/transform_tf.c | 0 .../n2nvpn/n2n => n2n}/src/transform_zstd.c | 0 .../n2nvpn/n2n => n2n}/src/tuntap_freebsd.c | 0 .../n2nvpn/n2n => n2n}/src/tuntap_linux.c | 0 .../n2nvpn/n2n => n2n}/src/tuntap_netbsd.c | 0 {modules/n2nvpn/n2n => n2n}/src/tuntap_osx.c | 0 .../n2n => n2n}/src/win32/DotNet/n2n.sln | 0 .../n2n => n2n}/src/win32/DotNet/n2n.suo | Bin .../n2n => n2n}/src/win32/DotNet/n2n.vcproj | 0 .../src/win32/DotNet/supernode.vcproj | 0 {modules/n2nvpn/n2n => n2n}/src/win32/defs.h | 0 .../n2n => n2n}/src/win32/edge.manifest | 0 {modules/n2nvpn/n2n => n2n}/src/win32/edge.rc | 0 .../n2n => n2n}/src/win32/edge_utils_win32.c | 0 .../n2n => n2n}/src/win32/edge_utils_win32.h | 0 .../n2nvpn/n2n => n2n}/src/win32/getopt.c | 0 .../n2nvpn/n2n => n2n}/src/win32/getopt.h | 0 .../n2nvpn/n2n => n2n}/src/win32/getopt1.c | 0 .../n2nvpn/n2n => n2n}/src/win32/n2n_win32.h | 0 .../n2nvpn/n2n => n2n}/src/win32/wintap.c | 0 .../n2nvpn/n2n => n2n}/src/win32/wintap.h | 0 {modules/n2nvpn/n2n => n2n}/src/wire.c | 0 {modules/n2nvpn/n2n => n2n}/supernode.1 | 0 .../tests/test_integration_edge.sh.expected | 0 .../test_integration_supernode.sh.expected | 0 .../n2n => n2n}/tests/tests-auth.expected | 0 .../n2n => n2n}/tests/tests-compress.expected | 0 .../n2n => n2n}/tests/tests-elliptic.expected | 0 .../n2n => n2n}/tests/tests-hashing.expected | 0 .../tests/tests-transform.expected | 0 .../n2n => n2n}/tests/tests-wire.expected | 0 .../n2n => n2n}/tests/tests_integration.list | 0 .../n2nvpn/n2n => n2n}/tests/tests_units.list | 0 .../thirdparty/libnatpmp/.gitignore | 0 .../thirdparty/libnatpmp/.travis.yml | 0 .../thirdparty/libnatpmp/CMakeLists.txt | 0 .../thirdparty/libnatpmp/Changelog.txt | 0 .../thirdparty/libnatpmp/JavaTest.java | 0 .../n2n => n2n}/thirdparty/libnatpmp/LICENSE | 0 .../n2n => n2n}/thirdparty/libnatpmp/Makefile | 0 .../n2n => n2n}/thirdparty/libnatpmp/README | 0 .../n2n => n2n}/thirdparty/libnatpmp/VERSION | 0 .../thirdparty/libnatpmp/build.bat | 0 .../miniupnp/libnatpmp/LibraryExtractor.java | 0 .../fr/free/miniupnp/libnatpmp/NatPmp.java | 0 .../miniupnp/libnatpmp/NatPmpResponse.java | 0 .../fr/free/miniupnp/libnatpmp/URLUtils.java | 0 .../thirdparty/libnatpmp/getgateway.c | 0 .../thirdparty/libnatpmp/getgateway.h | 0 .../thirdparty/libnatpmp/libnatpmpmodule.c | 0 .../thirdparty/libnatpmp/msvc/libnatpmp.sln | 0 .../libnatpmp/msvc/libnatpmp.vcproj | 0 .../libnatpmp/msvc/natpmpc-static.vcproj | 0 .../thirdparty/libnatpmp/natpmp-jni.c | 0 .../n2n => n2n}/thirdparty/libnatpmp/natpmp.c | 0 .../thirdparty/libnatpmp/natpmp.def | 0 .../n2n => n2n}/thirdparty/libnatpmp/natpmp.h | 0 .../thirdparty/libnatpmp/natpmp_declspec.h | 0 .../thirdparty/libnatpmp/natpmpc.1 | 0 .../thirdparty/libnatpmp/natpmpc.c | 0 .../n2n => n2n}/thirdparty/libnatpmp/setup.py | 0 .../thirdparty/libnatpmp/setupmingw32.py | 0 .../thirdparty/libnatpmp/testgetgateway.c | 0 .../thirdparty/libnatpmp/wingettimeofday.c | 0 .../thirdparty/libnatpmp/wingettimeofday.h | 0 .../.github/workflows/codeql-analysis.yml | 0 .../.github/workflows/i586-mingw32msvc.yml | 0 .../.github/workflows/i686-w64-mingw32.yml | 0 .../miniupnp/.github/workflows/main.yml | 0 .../miniupnp/.github/workflows/miniupnpd.yml | 0 .../.github/workflows/x86_64-w64-mingw32.yml | 0 .../thirdparty/miniupnp/.gitignore | 0 .../thirdparty/miniupnp/.gitlab-ci.yml | 0 .../thirdparty/miniupnp/.travis.yml | 0 .../thirdparty/miniupnp/CODE_OF_CONDUCT | 0 .../thirdparty/miniupnp/CONTRIBUTING | 0 .../n2n => n2n}/thirdparty/miniupnp/LICENSE | 0 .../n2n => n2n}/thirdparty/miniupnp/README | 0 .../thirdparty/miniupnp/SECURITY.md | 0 .../thirdparty/miniupnp/appveyor.yml | 0 .../thirdparty/miniupnp/minissdpd/.gitignore | 0 .../miniupnp/minissdpd/Changelog.txt | 0 .../thirdparty/miniupnp/minissdpd/LICENSE | 0 .../thirdparty/miniupnp/minissdpd/Makefile | 0 .../thirdparty/miniupnp/minissdpd/README | 0 .../thirdparty/miniupnp/minissdpd/README.fr | 0 .../thirdparty/miniupnp/minissdpd/VERSION | 0 .../miniupnp/minissdpd/asyncsendto.c | 0 .../miniupnp/minissdpd/asyncsendto.h | 0 .../miniupnp/minissdpd/codelength.h | 0 .../thirdparty/miniupnp/minissdpd/config.h | 0 .../thirdparty/miniupnp/minissdpd/daemonize.c | 0 .../thirdparty/miniupnp/minissdpd/daemonize.h | 0 .../thirdparty/miniupnp/minissdpd/getifaddr.c | 0 .../thirdparty/miniupnp/minissdpd/getifaddr.h | 0 .../thirdparty/miniupnp/minissdpd/getroute.c | 0 .../thirdparty/miniupnp/minissdpd/getroute.h | 0 .../miniupnp/minissdpd/ifacewatch.c | 0 .../miniupnp/minissdpd/ifacewatch.h | 0 .../miniupnp/minissdpd/listifaces.c | 0 .../thirdparty/miniupnp/minissdpd/minissdpd.1 | 0 .../thirdparty/miniupnp/minissdpd/minissdpd.c | 0 .../minissdpd/minissdpd.init.d.script | 0 .../miniupnp/minissdpd/minissdpdtypes.h | 0 .../miniupnp/minissdpd/openssdpsocket.c | 0 .../miniupnp/minissdpd/openssdpsocket.h | 0 .../miniupnp/minissdpd/printresponse.c | 0 .../miniupnp/minissdpd/printresponse.h | 0 .../miniupnp/minissdpd/showminissdpdnotif.c | 0 .../miniupnp/minissdpd/submit_to_minissdpd.py | 0 .../miniupnp/minissdpd/testcodelength.c | 0 .../miniupnp/minissdpd/testminissdpd.c | 0 .../miniupnp/minissdpd/testminissdpd.sh | 0 .../miniupnp/minissdpd/testminissdpdnotif.sh | 0 .../thirdparty/miniupnp/minissdpd/upnputils.c | 0 .../thirdparty/miniupnp/minissdpd/upnputils.h | 0 .../thirdparty/miniupnp/miniupnp.podspec | 0 .../miniupnp/miniupnpc-async/.gitignore | 0 .../miniupnp/miniupnpc-async/Changelog.txt | 0 .../miniupnp/miniupnpc-async/Makefile | 0 .../miniupnp/miniupnpc-async/README | 0 .../miniupnp/miniupnpc-async/config.h | 0 .../miniupnp/miniupnpc-async/declspec.h | 0 .../miniupnp/miniupnpc-async/igd_desc_parse.c | 0 .../miniupnp/miniupnpc-async/igd_desc_parse.h | 0 .../miniupnpc-async/miniupnpc-async.c | 0 .../miniupnpc-async/miniupnpc-async.h | 0 .../miniupnp/miniupnpc-async/minixml.c | 0 .../miniupnp/miniupnpc-async/minixml.h | 0 .../miniupnp/miniupnpc-async/parsessdpreply.c | 0 .../miniupnp/miniupnpc-async/parsessdpreply.h | 0 .../miniupnp/miniupnpc-async/testasync.c | 0 .../miniupnp/miniupnpc-async/upnpreplyparse.c | 0 .../miniupnp/miniupnpc-async/upnpreplyparse.h | 0 .../miniupnp/miniupnpc-async/upnputils.c | 0 .../miniupnp/miniupnpc-async/upnputils.h | 0 .../miniupnp/miniupnpc-libevent/.gitignore | 0 .../miniupnp/miniupnpc-libevent/Makefile | 0 .../miniupnp/miniupnpc-libevent/README | 0 .../miniupnp/miniupnpc-libevent/declspec.h | 0 .../miniupnpc-libevent/igd_desc_parse.c | 0 .../miniupnpc-libevent/igd_desc_parse.h | 0 .../miniupnpc-libevent/miniupnpc-libevent.c | 0 .../miniupnpc-libevent/miniupnpc-libevent.h | 0 .../miniupnp/miniupnpc-libevent/minixml.c | 0 .../miniupnp/miniupnpc-libevent/minixml.h | 0 .../miniupnpc-libevent/upnpc-libevent.c | 0 .../miniupnpc-libevent/upnpreplyparse.c | 0 .../miniupnpc-libevent/upnpreplyparse.h | 0 .../miniupnp/miniupnpc-libuv/.gitignore | 0 .../miniupnp/miniupnpc-libuv/Makefile | 0 .../miniupnp/miniupnpc-libuv/README | 0 .../miniupnp/miniupnpc-libuv/codelength.h | 0 .../miniupnp/miniupnpc-libuv/example.c | 0 .../miniupnpc-libuv/minissdpc-libuv.c | 0 .../miniupnpc-libuv/minissdpc-libuv.h | 0 .../miniupnpc-libuv/miniupnpc_declspec.h | 0 .../miniupnp/miniupnpc-libuv/upnpdev.h | 0 .../thirdparty/miniupnp/miniupnpc/.gitignore | 0 .../miniupnp/miniupnpc/CMakeLists.txt | 0 .../miniupnp/miniupnpc/Changelog.txt | 0 .../thirdparty/miniupnp/miniupnpc/LICENSE | 0 .../thirdparty/miniupnp/miniupnpc/MANIFEST.in | 0 .../thirdparty/miniupnp/miniupnpc/Makefile | 0 .../miniupnp/miniupnpc/Makefile.mingw | 0 .../thirdparty/miniupnp/miniupnpc/README | 0 .../thirdparty/miniupnp/miniupnpc/VERSION | 0 .../miniupnp/miniupnpc/apiversions.txt | 0 .../miniupnp/miniupnpc/external-ip.sh | 0 .../miniupnpc/include/igd_desc_parse.h | 0 .../miniupnp/miniupnpc/include/miniupnpc.h | 0 .../miniupnpc/include/miniupnpc_declspec.h | 0 .../miniupnpc/include/miniupnpctypes.h | 0 .../miniupnp/miniupnpc/include/miniwget.h | 0 .../miniupnpc/include/portlistingparse.h | 0 .../miniupnp/miniupnpc/include/upnpcommands.h | 0 .../miniupnp/miniupnpc/include/upnpdev.h | 0 .../miniupnp/miniupnpc/include/upnperrors.h | 0 .../miniupnpc/include/upnpreplyparse.h | 0 .../miniupnp/miniupnpc/java/.gitignore | 0 .../miniupnpc/java/JavaBridgeTest.java | 0 .../miniupnp/miniupnpc/java/testjava.bat | 0 .../miniupnp/miniupnpc/java/testjava.sh | 0 .../miniupnp/miniupnpc/man3/miniupnpc.3 | 0 .../miniupnp/miniupnpc/mingw32make.bat | 0 .../miniupnp/miniupnpc/miniupnpc-config.cmake | 0 .../miniupnp/miniupnpc/miniupnpc.def | 0 .../miniupnp/miniupnpc/miniupnpc.rc | 0 .../miniupnpc/miniupnpcstrings.h.cmake | 0 .../miniupnp/miniupnpc/miniupnpcstrings.h.in | 0 .../miniupnp/miniupnpc/msvc/.gitignore | 0 .../miniupnpc/msvc/genminiupnpcstrings.vbs | 0 .../miniupnp/miniupnpc/msvc/miniupnpc.sln | 0 .../miniupnp/miniupnpc/msvc/miniupnpc.vcproj | 0 .../miniupnp/miniupnpc/msvc/miniupnpc.vcxproj | 0 .../miniupnpc/msvc/miniupnpc.vcxproj.filters | 0 .../miniupnpc/msvc/miniupnpc_vs2010.sln | 0 .../miniupnpc/msvc/miniupnpc_vs2010.vcxproj | 0 .../msvc/miniupnpc_vs2010.vcxproj.filters | 0 .../miniupnpc/msvc/miniupnpc_vs2015.sln | 0 .../miniupnpc/msvc/upnpc-static.vcproj | 0 .../miniupnpc/msvc/upnpc-static.vcxproj | 0 .../msvc/upnpc-static.vcxproj.filters | 0 .../msvc/upnpc-static_vs2010.vcxproj | 0 .../miniupnp/miniupnpc/pymoduletest.py | 0 .../miniupnp/miniupnpc/pymoduletest3.py | 0 .../thirdparty/miniupnp/miniupnpc/setup.py | 0 .../miniupnp/miniupnpc/setupmingw32.py | 0 .../miniupnp/miniupnpc/src/addr_is_reserved.c | 0 .../miniupnp/miniupnpc/src/addr_is_reserved.h | 0 .../miniupnp/miniupnpc/src/codelength.h | 0 .../miniupnp/miniupnpc/src/connecthostport.c | 0 .../miniupnp/miniupnpc/src/connecthostport.h | 0 .../miniupnp/miniupnpc/src/igd_desc_parse.c | 0 .../miniupnp/miniupnpc/src/listdevices.c | 0 .../miniupnpc/src/minihttptestserver.c | 0 .../miniupnp/miniupnpc/src/minisoap.c | 0 .../miniupnp/miniupnpc/src/minisoap.h | 0 .../miniupnp/miniupnpc/src/minissdpc.c | 0 .../miniupnp/miniupnpc/src/minissdpc.h | 0 .../miniupnp/miniupnpc/src/miniupnpc.c | 0 .../miniupnpc/src/miniupnpc_socketdef.h | 0 .../miniupnp/miniupnpc/src/miniupnpcmodule.c | 0 .../miniupnp/miniupnpc/src/miniwget.c | 0 .../miniupnp/miniupnpc/src/miniwget_private.h | 0 .../miniupnp/miniupnpc/src/minixml.c | 0 .../miniupnp/miniupnpc/src/minixml.h | 0 .../miniupnp/miniupnpc/src/minixmlvalid.c | 0 .../miniupnp/miniupnpc/src/portlistingparse.c | 0 .../miniupnp/miniupnpc/src/receivedata.c | 0 .../miniupnp/miniupnpc/src/receivedata.h | 0 .../miniupnpc/src/testaddr_is_reserved.c | 0 .../miniupnp/miniupnpc/src/testigddescparse.c | 0 .../miniupnp/miniupnpc/src/testminiwget.c | 0 .../miniupnp/miniupnpc/src/testminixml.c | 0 .../miniupnpc/src/testportlistingparse.c | 0 .../miniupnpc/src/testupnpreplyparse.c | 0 .../thirdparty/miniupnp/miniupnpc/src/upnpc.c | 0 .../miniupnp/miniupnpc/src/upnpcommands.c | 0 .../miniupnp/miniupnpc/src/upnpdev.c | 0 .../miniupnp/miniupnpc/src/upnperrors.c | 0 .../miniupnp/miniupnpc/src/upnpreplyparse.c | 0 .../miniupnp/miniupnpc/src/win32_snprintf.h | 0 .../testdesc/linksys_WAG200G_desc.values | 0 .../testdesc/linksys_WAG200G_desc.xml | 0 .../testdesc/new_LiveBox_desc.values | 0 .../miniupnpc/testdesc/new_LiveBox_desc.xml | 0 .../miniupnp/miniupnpc/testminiwget.sh | 0 .../DeletePortMapping.namevalue | 0 .../testreplyparse/DeletePortMapping.xml | 0 .../GetExternalIPAddress.namevalue | 0 .../testreplyparse/GetExternalIPAddress.xml | 0 .../GetSpecificPortMappingEntryReq.namevalue | 0 .../GetSpecificPortMappingEntryReq.xml | 0 .../GetSpecificPortMappingEntryResp.namevalue | 0 .../GetSpecificPortMappingEntryResp.xml | 0 .../SetDefaultConnectionService.namevalue | 0 .../SetDefaultConnectionService.xml | 0 .../miniupnpc/testreplyparse/readme.txt | 0 .../miniupnp/miniupnpc/testupnpigd.py | 0 .../miniupnp/miniupnpc/testupnpreplyparse.sh | 0 .../miniupnpc/updateminiupnpcstrings.sh | 0 .../miniupnpc/wingenminiupnpcstrings.c | 0 .../thirdparty/miniupnp/miniupnpd/.gitignore | 0 .../miniupnp/miniupnpd/Changelog.txt | 0 .../thirdparty/miniupnp/miniupnpd/INSTALL | 0 .../thirdparty/miniupnp/miniupnpd/LICENSE | 0 .../miniupnp/miniupnpd/Makefile.bsd | 0 .../miniupnp/miniupnpd/Makefile.linux | 0 .../miniupnp/miniupnpd/Makefile.linux_nft | 0 .../miniupnp/miniupnpd/Makefile.macosx | 0 .../miniupnp/miniupnpd/Makefile.sunos | 0 .../thirdparty/miniupnp/miniupnpd/README | 0 .../thirdparty/miniupnp/miniupnpd/TODO | 0 .../thirdparty/miniupnp/miniupnpd/VERSION | 0 .../miniupnp/miniupnpd/asyncsendto.c | 0 .../miniupnp/miniupnpd/asyncsendto.h | 0 .../miniupnp/miniupnpd/bsd/getifstats.c | 0 .../miniupnp/miniupnpd/bsd/getroute.c | 0 .../miniupnp/miniupnpd/bsd/ifacewatcher.c | 0 .../miniupnp/miniupnpd/bsd/testgetifstats.c | 0 .../miniupnp/miniupnpd/bsd/testifacewatcher.c | 0 .../thirdparty/miniupnp/miniupnpd/check.mk | 0 .../miniupnp/miniupnpd/codelength.h | 0 .../thirdparty/miniupnp/miniupnpd/commonrdr.h | 0 .../thirdparty/miniupnp/miniupnpd/daemonize.c | 0 .../thirdparty/miniupnp/miniupnpd/daemonize.h | 0 .../miniupnp/miniupnpd/getconnstatus.c | 0 .../miniupnp/miniupnpd/getconnstatus.h | 0 .../thirdparty/miniupnp/miniupnpd/getifaddr.c | 0 .../thirdparty/miniupnp/miniupnpd/getifaddr.h | 0 .../miniupnp/miniupnpd/getifstats.h | 0 .../thirdparty/miniupnp/miniupnpd/getroute.h | 0 .../thirdparty/miniupnp/miniupnpd/gitrev.mk | 0 .../miniupnp/miniupnpd/ifacewatcher.h | 0 .../miniupnp/miniupnpd/ipf/ipfrdr.c | 0 .../miniupnp/miniupnpd/ipf/ipfrdr.h | 0 .../miniupnp/miniupnpd/ipf/testipfrdr.c | 0 .../miniupnp/miniupnpd/ipfw/ipfwaux.c | 0 .../miniupnp/miniupnpd/ipfw/ipfwaux.h | 0 .../miniupnp/miniupnpd/ipfw/ipfwrdr.c | 0 .../miniupnp/miniupnpd/ipfw/ipfwrdr.h | 0 .../miniupnp/miniupnpd/ipfw/testipfwrdr.c | 0 .../miniupnp/miniupnpd/linux/getifstats.c | 0 .../miniupnp/miniupnpd/linux/getroute.c | 0 .../miniupnp/miniupnpd/linux/ifacewatcher.c | 0 .../miniupnpd/linux/miniupnpd.init.d.script | 0 .../miniupnpd/linux/miniupnpd.service | 0 .../miniupnp/miniupnpd/mac/getifstats.c | 0 .../mac/org.tuxfamily.miniupnpd.plist.before | 0 .../miniupnp/miniupnpd/mac/testgetifstats.c | 0 .../thirdparty/miniupnp/miniupnpd/macros.h | 0 .../thirdparty/miniupnp/miniupnpd/minissdp.c | 0 .../thirdparty/miniupnp/miniupnpd/minissdp.h | 0 .../thirdparty/miniupnp/miniupnpd/miniupnpd.8 | 0 .../thirdparty/miniupnp/miniupnpd/miniupnpd.c | 0 .../miniupnp/miniupnpd/miniupnpd.conf | 0 .../miniupnp/miniupnpd/miniupnpd.doxyconf | 0 .../miniupnpd/miniupnpd.rc.once.d.script | 0 .../miniupnp/miniupnpd/miniupnpdctl.c | 0 .../miniupnp/miniupnpd/miniupnpdctl.txt | 0 .../miniupnp/miniupnpd/miniupnpdpath.h | 0 .../miniupnp/miniupnpd/miniupnpdtypes.h | 0 .../thirdparty/miniupnp/miniupnpd/minixml.c | 0 .../thirdparty/miniupnp/miniupnpd/minixml.h | 0 .../thirdparty/miniupnp/miniupnpd/natpmp.c | 0 .../thirdparty/miniupnp/miniupnpd/natpmp.h | 0 .../miniupnpd/netfilter/ip6tables_display.sh | 0 .../miniupnpd/netfilter/ip6tables_flush.sh | 0 .../miniupnpd/netfilter/ip6tables_init.sh | 0 .../netfilter/ip6tables_removeall.sh | 0 .../miniupnpd/netfilter/iptables_display.sh | 0 .../netfilter/iptables_display_miniupnpd.sh | 0 .../miniupnpd/netfilter/iptables_flush.sh | 0 .../miniupnpd/netfilter/iptables_init.sh | 0 .../miniupnpd/netfilter/iptables_removeall.sh | 0 .../miniupnp/miniupnpd/netfilter/iptcrdr.c | 0 .../miniupnp/miniupnpd/netfilter/iptcrdr.h | 0 .../miniupnp/miniupnpd/netfilter/iptpinhole.c | 0 .../miniupnp/miniupnpd/netfilter/iptpinhole.h | 0 .../netfilter/miniupnpd_functions.sh | 0 .../miniupnp/miniupnpd/netfilter/nfct_get.c | 0 .../miniupnpd/netfilter/test_nfct_get.c | 0 .../miniupnpd/netfilter/testiptcrdr.c | 0 .../miniupnpd/netfilter/testiptcrdr_dscp.c | 0 .../miniupnpd/netfilter/testiptcrdr_peer.c | 0 .../miniupnpd/netfilter/testiptpinhole.c | 0 .../miniupnpd/netfilter/tiny_nf_nat.h | 0 .../miniupnpd/netfilter_nft/README.md | 0 .../miniupnpd/netfilter_nft/nfct_get.c | 0 .../miniupnpd/netfilter_nft/nftnlrdr.c | 0 .../miniupnpd/netfilter_nft/nftnlrdr.h | 0 .../miniupnpd/netfilter_nft/nftnlrdr_misc.c | 0 .../miniupnpd/netfilter_nft/nftnlrdr_misc.h | 0 .../miniupnpd/netfilter_nft/nftpinhole.c | 0 .../miniupnpd/netfilter_nft/nftpinhole.h | 0 .../scripts/miniupnpd_functions.sh | 0 .../netfilter_nft/scripts/nft_delete_chain.sh | 0 .../netfilter_nft/scripts/nft_display.sh | 0 .../netfilter_nft/scripts/nft_flush.sh | 0 .../netfilter_nft/scripts/nft_init.sh | 0 .../netfilter_nft/scripts/nft_removeall.sh | 0 .../miniupnpd/netfilter_nft/test_nfct_get.c | 0 .../miniupnpd/netfilter_nft/testnftnlrdr.c | 0 .../miniupnpd/netfilter_nft/testnftpinhole.c | 0 .../miniupnpd/netfilter_nft/tiny_nf_nat.h | 0 .../thirdparty/miniupnp/miniupnpd/objects.mk | 0 .../thirdparty/miniupnp/miniupnpd/options.c | 0 .../thirdparty/miniupnp/miniupnpd/options.h | 0 .../miniupnp/miniupnpd/pcp_msg_struct.h | 0 .../miniupnp/miniupnpd/pcplearndscp.c | 0 .../miniupnp/miniupnpd/pcplearndscp.h | 0 .../thirdparty/miniupnp/miniupnpd/pcpserver.c | 0 .../thirdparty/miniupnp/miniupnpd/pcpserver.h | 0 .../miniupnp/miniupnpd/pf/obsdrdr.c | 0 .../miniupnp/miniupnpd/pf/obsdrdr.h | 0 .../miniupnp/miniupnpd/pf/pfpinhole.c | 0 .../miniupnp/miniupnpd/pf/pfpinhole.h | 0 .../miniupnp/miniupnpd/pf/testobsdrdr.c | 0 .../miniupnp/miniupnpd/pf/testpfpinhole.c | 0 .../thirdparty/miniupnp/miniupnpd/portinuse.c | 0 .../thirdparty/miniupnp/miniupnpd/portinuse.h | 0 .../miniupnp/miniupnpd/solaris/getifstats.c | 0 .../miniupnp/miniupnpd/testasyncsendto.c | 0 .../miniupnp/miniupnpd/testgetifaddr.c | 0 .../miniupnp/miniupnpd/testgetifaddr.sh | 0 .../miniupnp/miniupnpd/testgetifstats.c | 0 .../miniupnp/miniupnpd/testgetroute.c | 0 .../miniupnp/miniupnpd/testminissdp.c | 0 .../miniupnp/miniupnpd/testportinuse.c | 0 .../miniupnp/miniupnpd/testssdppktgen.c | 0 .../miniupnp/miniupnpd/testupnpdescgen.c | 0 .../miniupnp/miniupnpd/testupnppermissions.c | 0 .../miniupnp/miniupnpd/testupnppermissions.sh | 0 .../miniupnp/miniupnpd/upnpdescgen.c | 0 .../miniupnp/miniupnpd/upnpdescgen.h | 0 .../miniupnp/miniupnpd/upnpdescstrings.h | 0 .../miniupnp/miniupnpd/upnpevents.c | 0 .../miniupnp/miniupnpd/upnpevents.h | 0 .../miniupnp/miniupnpd/upnpglobalvars.c | 0 .../miniupnp/miniupnpd/upnpglobalvars.h | 0 .../thirdparty/miniupnp/miniupnpd/upnphttp.c | 0 .../thirdparty/miniupnp/miniupnpd/upnphttp.h | 0 .../miniupnp/miniupnpd/upnppermissions.c | 0 .../miniupnp/miniupnpd/upnppermissions.h | 0 .../miniupnp/miniupnpd/upnppinhole.c | 0 .../miniupnp/miniupnpd/upnppinhole.h | 0 .../miniupnp/miniupnpd/upnpredirect.c | 0 .../miniupnp/miniupnpd/upnpredirect.h | 0 .../miniupnp/miniupnpd/upnpreplyparse.c | 0 .../miniupnp/miniupnpd/upnpreplyparse.h | 0 .../thirdparty/miniupnp/miniupnpd/upnpsoap.c | 0 .../thirdparty/miniupnp/miniupnpd/upnpsoap.h | 0 .../thirdparty/miniupnp/miniupnpd/upnpstun.c | 0 .../thirdparty/miniupnp/miniupnpd/upnpstun.h | 0 .../thirdparty/miniupnp/miniupnpd/upnpurns.h | 0 .../thirdparty/miniupnp/miniupnpd/upnputils.c | 0 .../thirdparty/miniupnp/miniupnpd/upnputils.h | 0 {modules/n2nvpn/n2n => n2n}/tools/Makefile | 0 .../n2nvpn/n2n => n2n}/tools/n2n-benchmark.c | 0 .../n2nvpn/n2n => n2n}/tools/n2n-decode.c | 0 .../n2nvpn/n2n => n2n}/tools/n2n-keygen.c | 0 .../n2nvpn/n2n => n2n}/tools/n2n-portfwd.c | 0 {modules/n2nvpn/n2n => n2n}/tools/n2n-route.c | 0 .../n2nvpn/n2n => n2n}/tools/tests-auth.c | 0 .../n2nvpn/n2n => n2n}/tools/tests-compress.c | 0 .../n2nvpn/n2n => n2n}/tools/tests-elliptic.c | 0 .../n2nvpn/n2n => n2n}/tools/tests-hashing.c | 0 .../n2n => n2n}/tools/tests-transform.c | 0 .../n2nvpn/n2n => n2n}/tools/tests-wire.c | 0 {modules/n2nvpn/n2n => n2n}/uncrustify.cfg | 0 .../n2nvpn/n2n => n2n}/wireshark/README.md | 0 {modules/n2nvpn/n2n => n2n}/wireshark/n2n.lua | 0 supernode.sh | 19 - 2278 files changed, 140552 insertions(+), 79597 deletions(-) rename build.sh => build-godot.sh (96%) create mode 100755 build-n2n.sh create mode 100644 godot/core/object/script_instance.cpp create mode 100644 godot/core/object/script_instance.h create mode 100644 godot/doc/classes/GraphElement.xml rename godot/{platform/uwp/export/export.h => editor/editor_string_names.cpp} (84%) create mode 100644 godot/editor/editor_string_names.h create mode 100644 godot/editor/gui/editor_scene_tabs.cpp create mode 100644 godot/editor/gui/editor_scene_tabs.h delete mode 100644 godot/editor/icons/ClippedCamera3D.svg create mode 100644 godot/editor/icons/CodeRegionFoldDownArrow.svg create mode 100644 godot/editor/icons/CodeRegionFoldedRightArrow.svg create mode 100644 godot/editor/icons/CurveXYZTexture.svg create mode 100644 godot/editor/icons/GraphElement.svg delete mode 100644 godot/editor/icons/GuiCloseCustomizable.svg create mode 100644 godot/editor/icons/ObjectDisabled.svg create mode 100644 godot/editor/icons/PortableCompressedTexture2D.svg delete mode 100644 godot/editor/icons/ProxyTexture.svg create mode 100644 godot/editor/plugins/gizmos/gizmo_3d_helper.cpp rename godot/{platform/uwp/context_egl_uwp.h => editor/plugins/gizmos/gizmo_3d_helper.h} (68%) create mode 100644 godot/editor/translations/editor/ka.po delete mode 100644 godot/misc/dist/uwp_template/AppxManifest.xml delete mode 100644 godot/misc/dist/uwp_template/Assets/SplashScreen.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/Square150x150Logo.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/Square310x310Logo.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/Square44x44Logo.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/Square71x71Logo.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/StoreLogo.scale-100.png delete mode 100644 godot/misc/dist/uwp_template/Assets/Wide310x150Logo.scale-100.png rename godot/misc/extension_api_validation/{4.0-stable.expected => 4.0-stable_4.1-stable.expected} (84%) create mode 100644 godot/misc/extension_api_validation/4.1-stable.expected create mode 100644 godot/misc/scripts/gitignore_check.sh delete mode 100644 godot/modules/dds/image_loader_dds.cpp create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/for_loop_wrong_specified_type.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/for_loop_wrong_specified_type.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/get_node_shorthand_in_static_function.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/get_node_shorthand_in_static_function.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/lambda_cyclic_ref_call_arg.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/lambda_cyclic_ref_call_arg.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/lambda_cyclic_ref_param.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/lambda_cyclic_ref_param.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_before_declared.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_before_declared.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_not_const.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_not_const.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_not_type.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/errors/local_const_as_type_use_not_type.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/inner_class_access_from_inside.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/inner_class_access_from_inside.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/lambda_cyclic_ref_body.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/lambda_cyclic_ref_body.out create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/local_const_as_type.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/local_const_as_type.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/analyzer/features/local_const_as_type.out create mode 100644 godot/modules/gdscript/tests/scripts/lsp/class.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/enums.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/indentation.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/lambdas.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/local_variables.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/properties.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/scopes.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/lsp/shadowing_initializer.notest.gd create mode 100644 godot/modules/gdscript/tests/scripts/parser/.editorconfig create mode 100644 godot/modules/gdscript/tests/scripts/parser/features/mixed_indentation_on_blank_lines.gd create mode 100644 godot/modules/gdscript/tests/scripts/parser/features/mixed_indentation_on_blank_lines.out create mode 100644 godot/modules/gdscript/tests/scripts/runtime/errors/for_loop_iterator_type_not_match_specified.gd create mode 100644 godot/modules/gdscript/tests/scripts/runtime/errors/for_loop_iterator_type_not_match_specified.out create mode 100644 godot/modules/gdscript/tests/scripts/runtime/features/for_loop_iterator_specified_types.gd create mode 100644 godot/modules/gdscript/tests/scripts/runtime/features/for_loop_iterator_specified_types.out create mode 100644 godot/modules/gdscript/tests/scripts/runtime/features/member_info.gd create mode 100644 godot/modules/gdscript/tests/scripts/runtime/features/member_info.out create mode 100644 godot/modules/gdscript/tests/test_lsp.h rename godot/{platform/uwp/export/export.cpp => modules/gltf/extensions/gltf_document_extension_texture_ktx.cpp} (63%) create mode 100644 godot/modules/gltf/extensions/gltf_document_extension_texture_ktx.h create mode 100644 godot/modules/ktx/SCsub rename {modules/n2nvpn => godot/modules/ktx}/config.py (56%) rename godot/{platform/uwp/platform_config.h => modules/ktx/register_types.cpp} (77%) rename godot/modules/{freetype/uwpdef.h => ktx/register_types.h} (86%) create mode 100644 godot/modules/ktx/texture_loader_ktx.cpp create mode 100644 godot/modules/ktx/texture_loader_ktx.h rename godot/modules/openxr/action_map/{openxr_interaction_profile_meta_data.cpp => openxr_interaction_profile_metadata.cpp} (93%) rename godot/modules/openxr/action_map/{openxr_interaction_profile_meta_data.h => openxr_interaction_profile_metadata.h} (88%) rename godot/{doc/classes => modules/openxr/doc_classes}/OpenXRAPIExtension.xml (99%) rename godot/{doc/classes => modules/openxr/doc_classes}/OpenXRExtensionWrapperExtension.xml (99%) create mode 100644 godot/modules/openxr/doc_classes/OpenXRInteractionProfileMetadata.xml create mode 100644 godot/modules/regex/icons/RegEx.svg create mode 100644 godot/modules/regex/icons/RegExMatch.svg create mode 100644 godot/platform/android/java/editor/src/.gitignore create mode 100644 godot/platform/android/java/editor/src/debug/res/values/strings.xml delete mode 100644 godot/platform/uwp/README.md delete mode 100644 godot/platform/uwp/SCsub delete mode 100644 godot/platform/uwp/app_uwp.cpp delete mode 100644 godot/platform/uwp/app_uwp.h delete mode 100644 godot/platform/uwp/context_egl_uwp.cpp delete mode 100644 godot/platform/uwp/detect.py delete mode 100644 godot/platform/uwp/export/app_packager.cpp delete mode 100644 godot/platform/uwp/export/app_packager.h delete mode 100644 godot/platform/uwp/export/export_plugin.cpp delete mode 100644 godot/platform/uwp/export/export_plugin.h delete mode 100644 godot/platform/uwp/export/logo.svg delete mode 100644 godot/platform/uwp/joypad_uwp.cpp delete mode 100644 godot/platform/uwp/os_uwp.cpp delete mode 100644 godot/platform/uwp/os_uwp.h create mode 100644 godot/scene/gui/graph_element.cpp rename godot/{platform/uwp/joypad_uwp.h => scene/gui/graph_element.h} (61%) create mode 100644 godot/scene/gui/popup_menu.compat.inc delete mode 100644 godot/scene/resources/default_theme/SCsub rename godot/{modules/dds/image_loader_dds.h => scene/resources/font.compat.inc} (78%) rename godot/scene/{resources/default_theme => theme}/default_theme.cpp (96%) rename godot/scene/{resources/default_theme => theme}/default_theme.h (100%) rename godot/scene/{resources/default_theme => theme}/default_theme_builders.py (100%) create mode 100644 godot/scene/theme/icons/SCsub rename godot/scene/{resources/default_theme => theme/icons}/add.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/arrow_down.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/arrow_left.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/arrow_right.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/bookmark.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/breakpoint.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/checked.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/checked_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/close.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/close_hl.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/color_picker_bar_arrow.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/color_picker_cursor.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/color_picker_overbright.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/color_picker_pipette.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/default_theme_icons_builders.py (100%) rename godot/scene/{resources/default_theme => theme/icons}/error_icon.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/file.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/folder.svg (100%) create mode 100644 godot/scene/theme/icons/folder_down_arrow.svg create mode 100644 godot/scene/theme/icons/folder_right_arrow.svg rename godot/scene/{resources/default_theme => theme/icons}/folder_up.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/graph_port.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/grid_layout.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/grid_minimap.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/grid_snap.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/grid_toggle.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/hslider_tick.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/hsplitter.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/indeterminate.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/line_edit_clear.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/mini_checkerboard.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/option_button_arrow.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/picker_shape_circle.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/picker_shape_rectangle.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/picker_shape_rectangle_wheel.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/popup_menu_arrow_left.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/popup_menu_arrow_right.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/radio_checked.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/radio_checked_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/radio_unchecked.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/radio_unchecked_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/reload.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/resizer_nw.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/resizer_se.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/scroll_button_left.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/scroll_button_left_hl.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/scroll_button_right.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/scroll_button_right_hl.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/slider_grabber.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/slider_grabber_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/slider_grabber_hl.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/tabs_drop_mark.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/tabs_menu.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/tabs_menu_hl.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/text_edit_ellipsis.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/text_edit_space.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/text_edit_tab.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_off.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_off_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_off_disabled_mirrored.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_off_mirrored.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_on.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_on_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_on_disabled_mirrored.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/toggle_on_mirrored.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/unchecked.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/unchecked_disabled.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/updown.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/visibility_visible.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/vslider_tick.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/vsplitter.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/zoom_less.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/zoom_more.svg (100%) rename godot/scene/{resources/default_theme => theme/icons}/zoom_reset.svg (100%) create mode 100644 godot/servers/rendering/renderer_rd/shaders/effects/motion_vectors.glsl create mode 100644 godot/tests/core/variant/test_variant_utility.h delete mode 100644 godot/tests/data/images/icon.dds create mode 100644 godot/tests/scene/test_control.h rename godot/{platform/android/java/lib/src/org/godotengine/godot/plugin/GodotPluginInfoProvider.java => tests/scene/test_node_2d.h} (68%) create mode 100644 godot/tests/scene/test_window.h delete mode 100644 godot/thirdparty/fonts/NotoSansOriyaUI_Bold.woff2 delete mode 100644 godot/thirdparty/fonts/NotoSansOriyaUI_Regular.woff2 create mode 100644 godot/thirdparty/fonts/NotoSansOriya_Bold.woff2 create mode 100644 godot/thirdparty/fonts/NotoSansOriya_Regular.woff2 delete mode 100644 godot/thirdparty/fonts/NotoSansThaiUI_Bold.woff2 delete mode 100644 godot/thirdparty/fonts/NotoSansThaiUI_Regular.woff2 create mode 100644 godot/thirdparty/fonts/NotoSansThai_Bold.woff2 create mode 100644 godot/thirdparty/fonts/NotoSansThai_Regular.woff2 delete mode 100644 godot/thirdparty/freetype/src/gzip/adler32.c delete mode 100644 godot/thirdparty/freetype/src/gzip/crc32.c delete mode 100644 godot/thirdparty/freetype/src/gzip/crc32.h delete mode 100644 godot/thirdparty/freetype/src/gzip/ftzconf.h delete mode 100644 godot/thirdparty/freetype/src/gzip/gzguts.h delete mode 100644 godot/thirdparty/freetype/src/gzip/inffast.c delete mode 100644 godot/thirdparty/freetype/src/gzip/inffast.h delete mode 100644 godot/thirdparty/freetype/src/gzip/inffixed.h delete mode 100644 godot/thirdparty/freetype/src/gzip/inflate.c delete mode 100644 godot/thirdparty/freetype/src/gzip/inflate.h delete mode 100644 godot/thirdparty/freetype/src/gzip/inftrees.c delete mode 100644 godot/thirdparty/freetype/src/gzip/inftrees.h delete mode 100644 godot/thirdparty/freetype/src/gzip/patches/freetype-zlib.diff delete mode 100644 godot/thirdparty/freetype/src/gzip/zlib.h delete mode 100644 godot/thirdparty/freetype/src/gzip/zutil.c delete mode 100644 godot/thirdparty/freetype/src/gzip/zutil.h delete mode 100644 godot/thirdparty/freetype/src/truetype/ttsubpix.c delete mode 100644 godot/thirdparty/freetype/src/truetype/ttsubpix.h delete mode 100644 godot/thirdparty/harfbuzz/src/hb-subset-cff1.hh delete mode 100644 godot/thirdparty/harfbuzz/src/hb-subset-cff2.hh create mode 100644 godot/thirdparty/libktx/Apache-2.0.txt create mode 100644 godot/thirdparty/libktx/LICENSE.dfdutils.adoc create mode 100644 godot/thirdparty/libktx/LICENSE.md create mode 100644 godot/thirdparty/libktx/godot.patch create mode 100644 godot/thirdparty/libktx/include/KHR/khr_df.h create mode 100644 godot/thirdparty/libktx/include/ktx.h create mode 100644 godot/thirdparty/libktx/include/ktxvulkan.h create mode 100644 godot/thirdparty/libktx/lib/basis_sgd.h create mode 100644 godot/thirdparty/libktx/lib/basis_transcode.cpp create mode 100644 godot/thirdparty/libktx/lib/checkheader.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/KHR/khr_df.h create mode 100644 godot/thirdparty/libktx/lib/dfdutils/colourspaces.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/createdfd.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/dfd.h create mode 100644 godot/thirdparty/libktx/lib/dfdutils/dfd2vk.inl create mode 100644 godot/thirdparty/libktx/lib/dfdutils/interpretdfd.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/printdfd.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/queries.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/vk2dfd.c create mode 100644 godot/thirdparty/libktx/lib/dfdutils/vk2dfd.inl create mode 100644 godot/thirdparty/libktx/lib/filestream.c create mode 100644 godot/thirdparty/libktx/lib/filestream.h create mode 100644 godot/thirdparty/libktx/lib/formatsize.h create mode 100644 godot/thirdparty/libktx/lib/gl_format.h create mode 100644 godot/thirdparty/libktx/lib/hashlist.c create mode 100644 godot/thirdparty/libktx/lib/ktxint.h create mode 100644 godot/thirdparty/libktx/lib/memstream.c create mode 100644 godot/thirdparty/libktx/lib/memstream.h create mode 100644 godot/thirdparty/libktx/lib/swap.c create mode 100644 godot/thirdparty/libktx/lib/texture.c create mode 100644 godot/thirdparty/libktx/lib/texture.h create mode 100644 godot/thirdparty/libktx/lib/texture1.c create mode 100644 godot/thirdparty/libktx/lib/texture1.h create mode 100644 godot/thirdparty/libktx/lib/texture2.c create mode 100644 godot/thirdparty/libktx/lib/texture2.h create mode 100644 godot/thirdparty/libktx/lib/texture_funcs.inl create mode 100644 godot/thirdparty/libktx/lib/uthash.h create mode 100644 godot/thirdparty/libktx/lib/vk_format.h create mode 100644 godot/thirdparty/libktx/lib/vkformat_enum.h create mode 100644 godot/thirdparty/libktx/other_include/KHR/khrplatform.h create mode 100644 godot/thirdparty/libktx/utils/unused.h delete mode 100644 godot/thirdparty/mbedtls/patches/1453.diff create mode 100644 godot/thirdparty/mbedtls/patches/aesni-no-arm-intrinsics.patch delete mode 100644 godot/thirdparty/minizip/patches/empty-zip-fix.patch delete mode 100644 godot/thirdparty/minizip/patches/unbreak-gentoo.patch delete mode 100644 godot/thirdparty/thorvg/src/lib/sw_engine/tvgSwRasterTexmapInternal.h create mode 100644 godot/thirdparty/thorvg/src/lib/tvgAnimation.cpp rename godot/thirdparty/thorvg/src/{loaders/external_png/tvgPngLoader.h => lib/tvgFrameModule.h} (63%) delete mode 100644 godot/thirdparty/thorvg/src/loaders/external_png/tvgPngLoader.cpp delete mode 100644 godot/thirdparty/thorvg/src/loaders/jpg/tvgJpgLoader.cpp delete mode 100644 godot/thirdparty/thorvg/src/loaders/jpg/tvgJpgLoader.h delete mode 100644 godot/thirdparty/thorvg/src/loaders/jpg/tvgJpgd.cpp delete mode 100644 godot/thirdparty/thorvg/src/loaders/jpg/tvgJpgd.h delete mode 100644 godot/thirdparty/thorvg/src/loaders/tvg/tvgTvgBinInterpreter.cpp delete mode 100644 godot/thirdparty/thorvg/src/loaders/tvg/tvgTvgCommon.h delete mode 100644 godot/thirdparty/thorvg/src/loaders/tvg/tvgTvgLoader.cpp delete mode 100644 godot/thirdparty/thorvg/src/loaders/tvg/tvgTvgLoader.h delete mode 100644 godot/thirdparty/thorvg/src/savers/tvg/tvgTvgSaver.cpp delete mode 100644 godot/thirdparty/thorvg/src/savers/tvg/tvgTvgSaver.h delete mode 100644 godot/thirdparty/zlib/infback.c rename hamncheese/{ => Art}/icon.svg (100%) rename hamncheese/{ => Art}/icon.svg.import (74%) create mode 100644 hamncheese/Scenes/about.tscn create mode 100644 hamncheese/Scenes/main.tscn create mode 100644 hamncheese/Scenes/manual.tscn rename hamncheese/{main.tscn => Scenes/settings.tscn} (69%) create mode 100644 hamncheese/Scripts/about.gd rename hamncheese/{ => Scripts}/dialog.gd (50%) create mode 100644 hamncheese/Scripts/edge.gd create mode 100644 hamncheese/Scripts/main.gd create mode 100644 hamncheese/Scripts/manual.gd rename hamncheese/{ => Scripts}/peers.gd (79%) create mode 100644 hamncheese/Scripts/process.gd rename hamncheese/{main.gd => Scripts/settings.gd} (50%) create mode 100644 hamncheese/Scripts/stddclmr.gd rename hamncheese/{ => Scripts}/util.gd (85%) rename hamncheese/godot-uuid/{test.gd => test.gd.unused} (100%) create mode 100644 hamncheese/main.tscn.backup delete mode 100644 modules/.gitignore delete mode 100644 modules/n2nvpn/SCsub delete mode 100644 modules/n2nvpn/config.h delete mode 100644 modules/n2nvpn/n2nvpn.cpp delete mode 100644 modules/n2nvpn/n2nvpn.h delete mode 100644 modules/n2nvpn/register_types.cpp delete mode 100644 modules/n2nvpn/register_types.h delete mode 100644 modules/n2nvpn/stddclmr.h rename {modules/n2nvpn/n2n => n2n}/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/.gitmodules (100%) rename {modules/n2nvpn/n2n => n2n}/.yamllint.yml (100%) rename {modules/n2nvpn/n2n => n2n}/CHANGELOG.md (100%) rename {modules/n2nvpn/n2n => n2n}/COPYING (100%) rename {modules/n2nvpn/n2n => n2n}/INSTALL (100%) rename {modules/n2nvpn/n2n => n2n}/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/VERSION (100%) rename {modules/n2nvpn/n2n => n2n}/autogen.sh (100%) rename {modules/n2nvpn/n2n => n2n}/community.list (100%) rename {modules/n2nvpn/n2n => n2n}/config.mak.in (100%) rename {modules/n2nvpn/n2n => n2n}/configure.ac (100%) rename {modules/n2nvpn/n2n => n2n}/contributors.txt (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Advanced.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Authentication.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Bridging.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/BuildConfig.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Building.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Communities.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/ConfigurationFiles.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Crypto.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Faq.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Federation.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Hacking.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/ManagementAPI.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Routing.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Scratchpad.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Scripts.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/TapConfiguration.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/Tools.md (100%) rename {modules/n2nvpn/n2n => n2n}/doc/TrafficRestrictions.md (100%) rename {modules/n2nvpn/n2n => n2n}/edge.8 (100%) rename {modules/n2nvpn/n2n => n2n}/examples/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/examples/example_edge_embed.c (100%) rename {modules/n2nvpn/n2n => n2n}/examples/example_edge_embed_quick_edge_init.c (100%) rename {modules/n2nvpn/n2n => n2n}/examples/example_sn_embed.c (100%) rename {modules/n2nvpn/n2n => n2n}/include/aes.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/auth.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/cc20.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/curve25519.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/header_encryption.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/hexdump.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/json.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/lzoconf.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/lzodefs.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/minilzo.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n_define.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n_port_mapping.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n_regex.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n_typedefs.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/n2n_wire.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/network_traffic_filter.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/pearson.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/portable_endian.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/random_numbers.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/sn_selection.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/speck.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/tf.h (100%) rename {modules/n2nvpn/n2n => n2n}/include/uthash.h (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/edge_keyschedule.c (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/gen_keyfile.py (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/n2n_keyfile.c (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/n2n_keyfile.h (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/transform_aes.c (100%) rename {modules/n2nvpn/n2n => n2n}/legacy/transform_tf.c (100%) rename {modules/n2nvpn/n2n => n2n}/n2n.7 (100%) rename {modules/n2nvpn/n2n => n2n}/packages/centos (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/README (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/configure.ac (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/COPYRIGHT (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/README (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/changelog (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/compat (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/conffiles (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/control (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/dirs (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/docs (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/n2n.substvars (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/postinst (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/postrm (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/preinst (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/prerm (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/rules (100%) rename {modules/n2nvpn/n2n => n2n}/packages/debian/debian/templates (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/n2n/edge.conf.sample (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/n2n/supernode.conf.sample (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/systemd/system/edge-ntopng@.service (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/systemd/system/edge.service (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/systemd/system/edge@.service (100%) rename {modules/n2nvpn/n2n => n2n}/packages/etc/systemd/system/supernode.service (100%) rename {modules/n2nvpn/n2n => n2n}/packages/openwrt/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/packages/openwrt/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/packages/openwrt/config.bthh5a (100%) rename {modules/n2nvpn/n2n => n2n}/packages/openwrt/config.n2n (100%) rename {modules/n2nvpn/n2n => n2n}/packages/openwrt/config.x86 (100%) rename {modules/n2nvpn/n2n => n2n}/packages/rpm/Makefile.in (100%) rename {modules/n2nvpn/n2n => n2n}/packages/rpm/configure.in (100%) rename {modules/n2nvpn/n2n => n2n}/packages/rpm/n2n.spec.in (100%) rename {modules/n2nvpn/n2n => n2n}/packages/rpm/rpm-sign.exp (100%) rename {modules/n2nvpn/n2n => n2n}/packages/ubuntu (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/config.guess (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/config.sub (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/hack_fakeautoconf.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/indent.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/install-sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/munin/n2n_ (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/n2n-ctl (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/n2n-gateway.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/n2n-httpd (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/test_harness.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/test_integration_edge.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/test_integration_supernode.sh (100%) rename {modules/n2nvpn/n2n => n2n}/scripts/version.sh (100%) rename {modules/n2nvpn/n2n => n2n}/src/aes.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/auth.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/cc20.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/curve25519.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/edge.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/edge_management.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/edge_utils.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/header_encryption.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/hexdump.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/json.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/management.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/management.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/minilzo.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/n2n.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/n2n_port_mapping.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/n2n_regex.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/network_traffic_filter.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/pearson.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/random_numbers.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/sn_management.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/sn_selection.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/sn_utils.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/speck.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/strbuf.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/supernode.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/tf.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_aes.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_cc20.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_lzo.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_null.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_speck.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_tf.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/transform_zstd.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/tuntap_freebsd.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/tuntap_linux.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/tuntap_netbsd.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/tuntap_osx.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/DotNet/n2n.sln (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/DotNet/n2n.suo (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/DotNet/n2n.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/DotNet/supernode.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/defs.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/edge.manifest (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/edge.rc (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/edge_utils_win32.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/edge_utils_win32.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/getopt.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/getopt.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/getopt1.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/n2n_win32.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/wintap.c (100%) rename {modules/n2nvpn/n2n => n2n}/src/win32/wintap.h (100%) rename {modules/n2nvpn/n2n => n2n}/src/wire.c (100%) rename {modules/n2nvpn/n2n => n2n}/supernode.1 (100%) rename {modules/n2nvpn/n2n => n2n}/tests/test_integration_edge.sh.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/test_integration_supernode.sh.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-auth.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-compress.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-elliptic.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-hashing.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-transform.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests-wire.expected (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests_integration.list (100%) rename {modules/n2nvpn/n2n => n2n}/tests/tests_units.list (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/.travis.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/CMakeLists.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/Changelog.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/JavaTest.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/VERSION (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/build.bat (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/fr/free/miniupnp/libnatpmp/LibraryExtractor.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/fr/free/miniupnp/libnatpmp/NatPmp.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/fr/free/miniupnp/libnatpmp/NatPmpResponse.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/fr/free/miniupnp/libnatpmp/URLUtils.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/getgateway.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/getgateway.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/libnatpmpmodule.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/msvc/libnatpmp.sln (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/msvc/libnatpmp.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/msvc/natpmpc-static.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmp-jni.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmp.def (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmp.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmp_declspec.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmpc.1 (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/natpmpc.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/setup.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/setupmingw32.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/testgetgateway.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/wingettimeofday.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/libnatpmp/wingettimeofday.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/codeql-analysis.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/i586-mingw32msvc.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/i686-w64-mingw32.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/main.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/miniupnpd.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.github/workflows/x86_64-w64-mingw32.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.gitlab-ci.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/.travis.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/CODE_OF_CONDUCT (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/CONTRIBUTING (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/SECURITY.md (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/appveyor.yml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/Changelog.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/README.fr (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/VERSION (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/asyncsendto.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/asyncsendto.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/codelength.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/config.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/daemonize.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/daemonize.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/getifaddr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/getifaddr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/getroute.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/getroute.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/ifacewatch.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/ifacewatch.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/listifaces.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/minissdpd.1 (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/minissdpd.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/minissdpd.init.d.script (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/minissdpdtypes.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/openssdpsocket.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/openssdpsocket.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/printresponse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/printresponse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/showminissdpdnotif.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/submit_to_minissdpd.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/testcodelength.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/testminissdpd.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/testminissdpd.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/testminissdpdnotif.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/upnputils.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/minissdpd/upnputils.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnp.podspec (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/Changelog.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/config.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/declspec.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/igd_desc_parse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/igd_desc_parse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/miniupnpc-async.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/miniupnpc-async.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/minixml.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/minixml.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/parsessdpreply.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/parsessdpreply.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/testasync.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/upnpreplyparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/upnpreplyparse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/upnputils.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-async/upnputils.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/declspec.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/igd_desc_parse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/igd_desc_parse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/miniupnpc-libevent.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/miniupnpc-libevent.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/minixml.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/minixml.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/upnpc-libevent.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/upnpreplyparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libevent/upnpreplyparse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/codelength.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/example.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/minissdpc-libuv.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/minissdpc-libuv.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/miniupnpc_declspec.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc-libuv/upnpdev.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/CMakeLists.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/Changelog.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/MANIFEST.in (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/Makefile.mingw (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/VERSION (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/apiversions.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/external-ip.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/igd_desc_parse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/miniupnpc.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/miniupnpc_declspec.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/miniupnpctypes.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/miniwget.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/portlistingparse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/upnpcommands.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/upnpdev.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/upnperrors.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/include/upnpreplyparse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/java/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/java/JavaBridgeTest.java (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/java/testjava.bat (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/java/testjava.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/man3/miniupnpc.3 (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/mingw32make.bat (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/miniupnpc-config.cmake (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/miniupnpc.def (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/miniupnpc.rc (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/miniupnpcstrings.h.cmake (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/miniupnpcstrings.h.in (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/genminiupnpcstrings.vbs (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc.sln (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc.vcxproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc.vcxproj.filters (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc_vs2010.sln (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc_vs2010.vcxproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc_vs2010.vcxproj.filters (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/miniupnpc_vs2015.sln (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/upnpc-static.vcproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/upnpc-static.vcxproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/upnpc-static.vcxproj.filters (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/msvc/upnpc-static_vs2010.vcxproj (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/pymoduletest.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/pymoduletest3.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/setup.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/setupmingw32.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/addr_is_reserved.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/addr_is_reserved.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/codelength.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/connecthostport.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/connecthostport.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/igd_desc_parse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/listdevices.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minihttptestserver.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minisoap.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minisoap.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minissdpc.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minissdpc.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/miniupnpc.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/miniupnpc_socketdef.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/miniupnpcmodule.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/miniwget.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/miniwget_private.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minixml.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minixml.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/minixmlvalid.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/portlistingparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/receivedata.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/receivedata.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testaddr_is_reserved.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testigddescparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testminiwget.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testminixml.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testportlistingparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/testupnpreplyparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/upnpc.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/upnpcommands.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/upnpdev.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/upnperrors.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/upnpreplyparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/src/win32_snprintf.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testdesc/linksys_WAG200G_desc.values (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testdesc/linksys_WAG200G_desc.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testdesc/new_LiveBox_desc.values (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testdesc/new_LiveBox_desc.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testminiwget.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/DeletePortMapping.namevalue (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/DeletePortMapping.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetExternalIPAddress.namevalue (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetExternalIPAddress.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.namevalue (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetSpecificPortMappingEntryReq.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.namevalue (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/GetSpecificPortMappingEntryResp.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/SetDefaultConnectionService.namevalue (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/SetDefaultConnectionService.xml (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testreplyparse/readme.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testupnpigd.py (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/testupnpreplyparse.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/updateminiupnpcstrings.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpc/wingenminiupnpcstrings.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/.gitignore (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Changelog.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/INSTALL (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/LICENSE (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Makefile.bsd (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Makefile.linux (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Makefile.linux_nft (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Makefile.macosx (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/Makefile.sunos (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/README (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/TODO (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/VERSION (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/asyncsendto.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/asyncsendto.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/bsd/getifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/bsd/getroute.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/bsd/ifacewatcher.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/bsd/testgetifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/bsd/testifacewatcher.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/check.mk (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/codelength.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/commonrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/daemonize.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/daemonize.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getconnstatus.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getconnstatus.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getifaddr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getifaddr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getifstats.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/getroute.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/gitrev.mk (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ifacewatcher.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipf/ipfrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipf/ipfrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipf/testipfrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipfw/ipfwaux.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipfw/ipfwaux.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipfw/ipfwrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipfw/ipfwrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/ipfw/testipfwrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/linux/getifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/linux/getroute.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/linux/ifacewatcher.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/linux/miniupnpd.init.d.script (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/linux/miniupnpd.service (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/mac/getifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/mac/org.tuxfamily.miniupnpd.plist.before (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/mac/testgetifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/macros.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/minissdp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/minissdp.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpd.8 (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpd.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpd.conf (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpd.doxyconf (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpd.rc.once.d.script (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpdctl.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpdctl.txt (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpdpath.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/miniupnpdtypes.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/minixml.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/minixml.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/natpmp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/natpmp.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/ip6tables_display.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/ip6tables_flush.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/ip6tables_init.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/ip6tables_removeall.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptables_display.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptables_display_miniupnpd.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptables_flush.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptables_init.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptables_removeall.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptcrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptcrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/iptpinhole.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/miniupnpd_functions.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/nfct_get.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/test_nfct_get.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/testiptcrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/testiptcrdr_dscp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/testiptcrdr_peer.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/testiptpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter/tiny_nf_nat.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nfct_get.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftnlrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftnlrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftnlrdr_misc.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftnlrdr_misc.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/nftpinhole.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/miniupnpd_functions.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/nft_delete_chain.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/nft_display.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/nft_flush.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/nft_init.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/scripts/nft_removeall.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/test_nfct_get.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/testnftnlrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/testnftpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/netfilter_nft/tiny_nf_nat.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/objects.mk (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/options.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/options.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pcp_msg_struct.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pcplearndscp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pcplearndscp.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pcpserver.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pcpserver.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/obsdrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/obsdrdr.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/pfpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/pfpinhole.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/testobsdrdr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/pf/testpfpinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/portinuse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/portinuse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/solaris/getifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testasyncsendto.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testgetifaddr.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testgetifaddr.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testgetifstats.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testgetroute.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testminissdp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testportinuse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testssdppktgen.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testupnpdescgen.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testupnppermissions.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/testupnppermissions.sh (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpdescgen.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpdescgen.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpdescstrings.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpevents.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpevents.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpglobalvars.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpglobalvars.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnphttp.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnphttp.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnppermissions.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnppermissions.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnppinhole.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnppinhole.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpredirect.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpredirect.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpreplyparse.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpreplyparse.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpsoap.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpsoap.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpstun.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpstun.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnpurns.h (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnputils.c (100%) rename {modules/n2nvpn/n2n => n2n}/thirdparty/miniupnp/miniupnpd/upnputils.h (100%) rename {modules/n2nvpn/n2n => n2n}/tools/Makefile (100%) rename {modules/n2nvpn/n2n => n2n}/tools/n2n-benchmark.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/n2n-decode.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/n2n-keygen.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/n2n-portfwd.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/n2n-route.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-auth.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-compress.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-elliptic.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-hashing.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-transform.c (100%) rename {modules/n2nvpn/n2n => n2n}/tools/tests-wire.c (100%) rename {modules/n2nvpn/n2n => n2n}/uncrustify.cfg (100%) rename {modules/n2nvpn/n2n => n2n}/wireshark/README.md (100%) rename {modules/n2nvpn/n2n => n2n}/wireshark/n2n.lua (100%) delete mode 100755 supernode.sh diff --git a/.gitignore b/.gitignore index 402c519..df2b0ab 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ temp/ scp.sh start-edge.sh console-edge.sh +old/ diff --git a/build.sh b/build-godot.sh similarity index 96% rename from build.sh rename to build-godot.sh index 4b43f1d..aa2d86b 100755 --- a/build.sh +++ b/build-godot.sh @@ -16,9 +16,7 @@ ln -f -s ../custom.py . scons platform=linuxbsd target=editor arch=x86_64 ${LTO} # Create JSON for IDE support. -#if [[ ! -f compile_commands.json ]]; then - scons compiledb=yes -#fi +scons compiledb=yes # Build Templates. scons platform=linuxbsd target=template_release arch=x86_64 ${TEMPLATE} ${LTO} diff --git a/build-n2n.sh b/build-n2n.sh new file mode 100755 index 0000000..56d9077 --- /dev/null +++ b/build-n2n.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Build n2n for current platform. + +mkdir -p bin + +mkdir -p n2n/thirdparty/libnatpmp/build +pushd n2n/thirdparty/libnatpmp/build +cmake .. +make +popd + +mkdir -p n2n/thirdparty/miniupnp/miniupnpc/build +pushd n2n/thirdparty/miniupnp/miniupnpc/build +cmake .. +make +popd + +pushd n2n +./autogen.sh +CFLAGS="-I thirdparty/libnatpmp -I thirdparty/miniupnp/miniupnpc/include" \ + LDFLAGS="-L thirdparty/libnatpmp/build -L thirdparty/miniupnp/miniupnpc/build" \ + ./configure --enable-pthread --enable-natpmp --enable-miniupnp +make edge +make supernode +mv edge ../bin/. +mv supernode ../bin/. +popd diff --git a/custom.py b/custom.py index 5d3554c..62ff08a 100644 --- a/custom.py +++ b/custom.py @@ -40,5 +40,4 @@ module_visual_script_enabled = "no" module_vorbis_enabled = "no" module_websocket_enabled = "no" module_webxr_enabled = "no" -custom_modules = "../modules" - +#custom_modules = "../modules" diff --git a/edit.sh b/edit.sh index d42b036..d192659 100755 --- a/edit.sh +++ b/edit.sh @@ -1,4 +1,4 @@ #!/bin/bash -#sudo godot/bin/godot.linuxbsd.editor.x86_64 --editor --path hamncheese | tee output.log -godot/bin/godot.linuxbsd.editor.x86_64 --editor --path test | tee output.log +#~/.steam/steam/steamapps/common/Godot\ Engine/godot.x11.opt.tools.64 --editor --path hamncheese | tee output.log +godot/bin/godot.linuxbsd.editor.x86_64 --editor --path hamncheese | tee output.log diff --git a/godot/.gitignore b/godot/.gitignore index 060f569..61ea171 100644 --- a/godot/.gitignore +++ b/godot/.gitignore @@ -132,23 +132,9 @@ cppcheck-cppcheck-build-dir/ *.pydevproject *.launch -# Gcov and Lcov code coverage -*.gcno +# GCOV code coverage *.gcda -*.gcov.html -*.func.html -*.func-sort-c.html -*index-sort-f.html -*index-sort-l.html -*index.html -godot.info -amber.png -emerald.png -glass.png -ruby.png -snow.png -updown.png -gcov.css +*.gcno # Geany *.geany diff --git a/godot/COPYRIGHT.txt b/godot/COPYRIGHT.txt index f884c69..1c22a72 100644 --- a/godot/COPYRIGHT.txt +++ b/godot/COPYRIGHT.txt @@ -204,7 +204,7 @@ License: OFL-1.1 Files: ./thirdparty/freetype/ Comment: The FreeType Project -Copyright: 1996-2022, David Turner, Robert Wilhelm, and Werner Lemberg. +Copyright: 1996-2023, David Turner, Robert Wilhelm, and Werner Lemberg. License: FTL Files: ./thirdparty/glad/ @@ -256,6 +256,12 @@ Comment: jpeg-compressor Copyright: 2012, Rich Geldreich License: public-domain or Apache-2.0 +Files: ./thirdparty/libktx/ +Comment: KTX +Copyright: 2013-2020, Mark Callow + 2010-2020 The Khronos Group, Inc. +License: Apache-2.0 + Files: ./thirdparty/libogg/ Comment: OggVorbis Copyright: 2002, Xiph.org Foundation @@ -487,7 +493,7 @@ License: Expat Files: ./thirdparty/zlib/ Comment: zlib -Copyright: 1995-2022, Jean-loup Gailly and Mark Adler +Copyright: 1995-2023, Jean-loup Gailly and Mark Adler License: Zlib Files: ./thirdparty/zstd/ diff --git a/godot/SConstruct b/godot/SConstruct index 6968967..df750be 100644 --- a/godot/SConstruct +++ b/godot/SConstruct @@ -193,6 +193,7 @@ opts.Add(BoolVariable("vulkan", "Enable the vulkan rendering driver", True)) opts.Add(BoolVariable("opengl3", "Enable the OpenGL/GLES3 rendering driver", True)) opts.Add(BoolVariable("openxr", "Enable the OpenXR driver", True)) opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loader dynamically", True)) +opts.Add(BoolVariable("disable_exceptions", "Force disabling exception handling code", True)) opts.Add("custom_modules", "A list of comma-separated directory paths containing custom modules to build.", "") opts.Add(BoolVariable("custom_modules_recursive", "Detect custom modules recursively for each specified path.", True)) @@ -710,6 +711,16 @@ if selected_platform in platform_list: ) Exit(255) + # Disable exception handling. Godot doesn't use exceptions anywhere, and this + # saves around 20% of binary size and very significant build time (GH-80513). + if env["disable_exceptions"]: + if env.msvc: + env.Append(CPPDEFINES=[("_HAS_EXCEPTIONS", 0)]) + else: + env.Append(CCFLAGS=["-fno-exceptions"]) + elif env.msvc: + env.Append(CCFLAGS=["/EHsc"]) + # Configure compiler warnings if env.msvc: # MSVC if env["warnings"] == "no": @@ -739,11 +750,9 @@ if selected_platform in platform_list: ] ) - # Set exception handling model to avoid warnings caused by Windows system headers. - env.Append(CCFLAGS=["/EHsc"]) - if env["werror"]: env.Append(CCFLAGS=["/WX"]) + env.Append(LINKFLAGS=["/WX"]) else: # GCC, Clang common_warnings = [] @@ -969,7 +978,7 @@ if selected_platform in platform_list: print("Error: The `vsproj` option is only usable on Windows with Visual Studio.") Exit(255) env["CPPPATH"] = [Dir(path) for path in env["CPPPATH"]] - methods.generate_vs_project(env, GetOption("num_jobs"), env["vsproj_name"]) + methods.generate_vs_project(env, ARGUMENTS, env["vsproj_name"]) methods.generate_cpp_hint_file("cpp.hint") # Check for the existence of headers diff --git a/godot/core/config/engine.cpp b/godot/core/config/engine.cpp index 7fdea7d..17d3bdb 100644 --- a/godot/core/config/engine.cpp +++ b/godot/core/config/engine.cpp @@ -74,6 +74,14 @@ int Engine::get_max_fps() const { return _max_fps; } +void Engine::set_audio_output_latency(int p_msec) { + _audio_output_latency = p_msec > 1 ? p_msec : 1; +} + +int Engine::get_audio_output_latency() const { + return _audio_output_latency; +} + uint64_t Engine::get_frames_drawn() { return frames_drawn; } @@ -239,6 +247,10 @@ bool Engine::is_validation_layers_enabled() const { return use_validation_layers; } +bool Engine::is_generate_spirv_debug_info_enabled() const { + return generate_spirv_debug_info; +} + void Engine::set_print_error_messages(bool p_enabled) { CoreGlobals::print_error_enabled = p_enabled; } diff --git a/godot/core/config/engine.h b/godot/core/config/engine.h index 5ea653b..ff88fbc 100644 --- a/godot/core/config/engine.h +++ b/godot/core/config/engine.h @@ -61,12 +61,14 @@ private: double physics_jitter_fix = 0.5; double _fps = 1; int _max_fps = 0; + int _audio_output_latency = 0; double _time_scale = 1.0; uint64_t _physics_frames = 0; int max_physics_steps_per_frame = 8; double _physics_interpolation_fraction = 0.0f; bool abort_on_gpu_errors = false; bool use_validation_layers = false; + bool generate_spirv_debug_info = false; int32_t gpu_idx = -1; uint64_t _process_frames = 0; @@ -98,6 +100,9 @@ public: virtual void set_max_fps(int p_fps); virtual int get_max_fps() const; + virtual void set_audio_output_latency(int p_msec); + virtual int get_audio_output_latency() const; + virtual double get_frames_per_second() const { return _fps; } uint64_t get_frames_drawn(); @@ -156,6 +161,7 @@ public: bool is_abort_on_gpu_errors_enabled() const; bool is_validation_layers_enabled() const; + bool is_generate_spirv_debug_info_enabled() const; int32_t get_gpu_index() const; Engine(); diff --git a/godot/core/config/project_settings.cpp b/godot/core/config/project_settings.cpp index 1bfb745..9ffbac3 100644 --- a/godot/core/config/project_settings.cpp +++ b/godot/core/config/project_settings.cpp @@ -249,6 +249,11 @@ bool ProjectSettings::get_ignore_value_in_docs(const String &p_name) const { #endif } +void ProjectSettings::add_hidden_prefix(const String &p_prefix) { + ERR_FAIL_COND_MSG(hidden_prefixes.find(p_prefix) > -1, vformat("Hidden prefix '%s' already exists.", p_prefix)); + hidden_prefixes.push_back(p_prefix); +} + String ProjectSettings::globalize_path(const String &p_path) const { if (p_path.begins_with("res://")) { if (!resource_path.is_empty()) { @@ -388,7 +393,18 @@ void ProjectSettings::_get_property_list(List *p_list) const { vc.name = E.key; vc.order = v->order; vc.type = v->variant.get_type(); - if (v->internal || vc.name.begins_with("input/") || vc.name.begins_with("importer_defaults/") || vc.name.begins_with("import/") || vc.name.begins_with("autoload/") || vc.name.begins_with("editor_plugins/") || vc.name.begins_with("shader_globals/")) { + + bool internal = v->internal; + if (!internal) { + for (const String &F : hidden_prefixes) { + if (vc.name.begins_with(F)) { + internal = true; + break; + } + } + } + + if (internal) { vc.flags = PROPERTY_USAGE_STORAGE; } else { vc.flags = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; @@ -1382,11 +1398,13 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,Linear Mipmap,Nearest Mipmap"), 1); GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "rendering/textures/canvas_textures/default_texture_repeat", PROPERTY_HINT_ENUM, "Disable,Enable,Mirror"), 0); - // These properties will not show up in the dialog nor in the documentation. If you want to exclude whole groups, see _get_property_list() method. + // These properties will not show up in the dialog. If you want to exclude whole groups, use add_hidden_prefix(). GLOBAL_DEF_INTERNAL("application/config/features", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translation_remaps", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translations", PackedStringArray()); GLOBAL_DEF_INTERNAL("internationalization/locale/translations_pot_files", PackedStringArray()); + + ProjectSettings::get_singleton()->add_hidden_prefix("input/"); } ProjectSettings::~ProjectSettings() { diff --git a/godot/core/config/project_settings.h b/godot/core/config/project_settings.h index dba4aa6..302df7e 100644 --- a/godot/core/config/project_settings.h +++ b/godot/core/config/project_settings.h @@ -104,6 +104,7 @@ protected: HashSet custom_features; HashMap>> feature_overrides; + LocalVector hidden_prefixes; HashMap autoloads; Array global_class_list; @@ -168,6 +169,7 @@ public: void set_restart_if_changed(const String &p_name, bool p_restart); void set_ignore_value_in_docs(const String &p_name, bool p_ignore); bool get_ignore_value_in_docs(const String &p_name) const; + void add_hidden_prefix(const String &p_prefix); String get_project_data_dir_name() const; String get_project_data_path() const; diff --git a/godot/core/core_bind.cpp b/godot/core/core_bind.cpp index 4e220d0..05fe393 100644 --- a/godot/core/core_bind.cpp +++ b/godot/core/core_bind.cpp @@ -929,6 +929,17 @@ Geometry3D *Geometry3D::get_singleton() { return singleton; } +Vector Geometry3D::compute_convex_mesh_points(const TypedArray &p_planes) { + Vector planes_vec; + int size = p_planes.size(); + planes_vec.resize(size); + for (int i = 0; i < size; ++i) { + planes_vec.set(i, p_planes[i]); + } + Variant ret = ::Geometry3D::compute_convex_mesh_points(planes_vec.ptr(), size); + return ret; +} + TypedArray Geometry3D::build_box_planes(const Vector3 &p_extents) { Variant ret = ::Geometry3D::build_box_planes(p_extents); return ret; @@ -1029,6 +1040,7 @@ Vector Geometry3D::clip_polygon(const Vector &p_points, const } void Geometry3D::_bind_methods() { + ClassDB::bind_method(D_METHOD("compute_convex_mesh_points", "planes"), &Geometry3D::compute_convex_mesh_points); ClassDB::bind_method(D_METHOD("build_box_planes", "extents"), &Geometry3D::build_box_planes); ClassDB::bind_method(D_METHOD("build_cylinder_planes", "radius", "height", "sides", "axis"), &Geometry3D::build_cylinder_planes, DEFVAL(Vector3::AXIS_Z)); ClassDB::bind_method(D_METHOD("build_capsule_planes", "radius", "height", "sides", "lats", "axis"), &Geometry3D::build_capsule_planes, DEFVAL(Vector3::AXIS_Z)); diff --git a/godot/core/core_bind.h b/godot/core/core_bind.h index 1cbbcdd..5f51b64 100644 --- a/godot/core/core_bind.h +++ b/godot/core/core_bind.h @@ -320,6 +320,7 @@ protected: public: static Geometry3D *get_singleton(); + Vector compute_convex_mesh_points(const TypedArray &p_planes); TypedArray build_box_planes(const Vector3 &p_extents); TypedArray build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis = Vector3::AXIS_Z); TypedArray build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis = Vector3::AXIS_Z); diff --git a/godot/core/core_constants.cpp b/godot/core/core_constants.cpp index 2332bc2..33b3271 100644 --- a/godot/core/core_constants.cpp +++ b/godot/core/core_constants.cpp @@ -420,6 +420,10 @@ void register_global_constants() { BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHD); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHE); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, LAUNCHF); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GLOBE); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KEYBOARD); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_EISU); + BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_KANA); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, UNKNOWN); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SPACE); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, EXCLAM); @@ -492,10 +496,6 @@ void register_global_constants() { BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, ASCIITILDE); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, YEN); BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, SECTION); - BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, GLOBE); - BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, KEYBOARD); - BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_EISU); - BIND_CORE_ENUM_CLASS_CONSTANT(Key, KEY, JIS_KANA); BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_CODE_MASK, CODE_MASK); BIND_CORE_BITFIELD_CLASS_FLAG_CUSTOM(KeyModifierMask, KEY_MODIFIER_MASK, MODIFIER_MASK); diff --git a/godot/core/crypto/crypto_core.cpp b/godot/core/crypto/crypto_core.cpp index 3ca2ec2..17b34c0 100644 --- a/godot/core/crypto/crypto_core.cpp +++ b/godot/core/crypto/crypto_core.cpp @@ -73,7 +73,7 @@ Error CryptoCore::RandomGenerator::init() { } Error CryptoCore::RandomGenerator::get_random_bytes(uint8_t *r_buffer, size_t p_bytes) { - ERR_FAIL_COND_V(!ctx, ERR_UNCONFIGURED); + ERR_FAIL_NULL_V(ctx, ERR_UNCONFIGURED); int ret = mbedtls_ctr_drbg_random((mbedtls_ctr_drbg_context *)ctx, r_buffer, p_bytes); ERR_FAIL_COND_V_MSG(ret, FAILED, " failed\n ! mbedtls_ctr_drbg_seed returned an error" + itos(ret)); return OK; diff --git a/godot/core/crypto/hashing_context.cpp b/godot/core/crypto/hashing_context.cpp index 35f491c..157a0c0 100644 --- a/godot/core/crypto/hashing_context.cpp +++ b/godot/core/crypto/hashing_context.cpp @@ -35,7 +35,7 @@ Error HashingContext::start(HashType p_type) { ERR_FAIL_COND_V(ctx != nullptr, ERR_ALREADY_IN_USE); _create_ctx(p_type); - ERR_FAIL_COND_V(ctx == nullptr, ERR_UNAVAILABLE); + ERR_FAIL_NULL_V(ctx, ERR_UNAVAILABLE); switch (type) { case HASH_MD5: return ((CryptoCore::MD5Context *)ctx)->start(); @@ -48,7 +48,7 @@ Error HashingContext::start(HashType p_type) { } Error HashingContext::update(PackedByteArray p_chunk) { - ERR_FAIL_COND_V(ctx == nullptr, ERR_UNCONFIGURED); + ERR_FAIL_NULL_V(ctx, ERR_UNCONFIGURED); size_t len = p_chunk.size(); ERR_FAIL_COND_V(len == 0, FAILED); const uint8_t *r = p_chunk.ptr(); @@ -64,7 +64,7 @@ Error HashingContext::update(PackedByteArray p_chunk) { } PackedByteArray HashingContext::finish() { - ERR_FAIL_COND_V(ctx == nullptr, PackedByteArray()); + ERR_FAIL_NULL_V(ctx, PackedByteArray()); PackedByteArray out; Error err = FAILED; switch (type) { diff --git a/godot/core/debugger/engine_profiler.h b/godot/core/debugger/engine_profiler.h index f74481c..d3d0021 100644 --- a/godot/core/debugger/engine_profiler.h +++ b/godot/core/debugger/engine_profiler.h @@ -31,10 +31,8 @@ #ifndef ENGINE_PROFILER_H #define ENGINE_PROFILER_H -#include "core/object/ref_counted.h" - #include "core/object/gdvirtual.gen.inc" -#include "core/object/script_language.h" +#include "core/object/ref_counted.h" class EngineProfiler : public RefCounted { GDCLASS(EngineProfiler, RefCounted); diff --git a/godot/core/debugger/remote_debugger.cpp b/godot/core/debugger/remote_debugger.cpp index b4d6fa4..a817ea8 100644 --- a/godot/core/debugger/remote_debugger.cpp +++ b/godot/core/debugger/remote_debugger.cpp @@ -415,7 +415,7 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) { Array msg; msg.push_back(p_can_continue); msg.push_back(error_str); - ERR_FAIL_COND(!script_lang); + ERR_FAIL_NULL(script_lang); msg.push_back(script_lang->debug_get_stack_level_count() > 0); msg.push_back(Thread::get_caller_id() == Thread::get_main_id() ? String(RTR("Main Thread")) : itos(Thread::get_caller_id())); if (allow_focus_steal_fn) { @@ -485,7 +485,7 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) { } else if (command == "get_stack_frame_vars") { ERR_FAIL_COND(data.size() != 1); - ERR_FAIL_COND(!script_lang); + ERR_FAIL_NULL(script_lang); int lv = data[0]; List members; diff --git a/godot/core/extension/extension_api_dump.cpp b/godot/core/extension/extension_api_dump.cpp index c67867f..97ead0b 100644 --- a/godot/core/extension/extension_api_dump.cpp +++ b/godot/core/extension/extension_api_dump.cpp @@ -750,6 +750,9 @@ Dictionary GDExtensionAPIDump::generate_extension_api() { class_list.sort_custom(); for (const StringName &class_name : class_list) { + if (!ClassDB::is_class_exposed(class_name)) { + continue; + } Dictionary d; d["name"] = String(class_name); d["is_refcounted"] = ClassDB::is_parent_class(class_name, "RefCounted"); diff --git a/godot/core/extension/gdextension.cpp b/godot/core/extension/gdextension.cpp index 67b55db..3bc7dde 100644 --- a/godot/core/extension/gdextension.cpp +++ b/godot/core/extension/gdextension.cpp @@ -281,7 +281,42 @@ public: } }; +#ifndef DISABLE_DEPRECATED void GDExtension::_register_extension_class(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo *p_extension_funcs) { + const GDExtensionClassCreationInfo2 class_info2 = { + p_extension_funcs->is_virtual, // GDExtensionBool is_virtual; + p_extension_funcs->is_abstract, // GDExtensionBool is_abstract; + true, // GDExtensionBool is_exposed; + p_extension_funcs->set_func, // GDExtensionClassSet set_func; + p_extension_funcs->get_func, // GDExtensionClassGet get_func; + p_extension_funcs->get_property_list_func, // GDExtensionClassGetPropertyList get_property_list_func; + p_extension_funcs->free_property_list_func, // GDExtensionClassFreePropertyList free_property_list_func; + p_extension_funcs->property_can_revert_func, // GDExtensionClassPropertyCanRevert property_can_revert_func; + p_extension_funcs->property_get_revert_func, // GDExtensionClassPropertyGetRevert property_get_revert_func; + nullptr, // GDExtensionClassValidateProperty validate_property_func; + nullptr, // GDExtensionClassNotification2 notification_func; + p_extension_funcs->to_string_func, // GDExtensionClassToString to_string_func; + p_extension_funcs->reference_func, // GDExtensionClassReference reference_func; + p_extension_funcs->unreference_func, // GDExtensionClassUnreference unreference_func; + p_extension_funcs->create_instance_func, // GDExtensionClassCreateInstance create_instance_func; /* this one is mandatory */ + p_extension_funcs->free_instance_func, // GDExtensionClassFreeInstance free_instance_func; /* this one is mandatory */ + p_extension_funcs->get_virtual_func, // GDExtensionClassGetVirtual get_virtual_func; + p_extension_funcs->get_rid_func, // GDExtensionClassGetRID get_rid; + p_extension_funcs->class_userdata, // void *class_userdata; + }; + + const ClassCreationDeprecatedInfo legacy = { + p_extension_funcs->notification_func, + }; + _register_extension_class_internal(p_library, p_class_name, p_parent_class_name, &class_info2, &legacy); +} +#endif // DISABLE_DEPRECATED + +void GDExtension::_register_extension_class2(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs) { + _register_extension_class_internal(p_library, p_class_name, p_parent_class_name, p_extension_funcs); +} + +void GDExtension::_register_extension_class_internal(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs, const ClassCreationDeprecatedInfo *p_deprecated_funcs) { GDExtension *self = reinterpret_cast(p_library); StringName class_name = *reinterpret_cast(p_class_name); @@ -319,13 +354,20 @@ void GDExtension::_register_extension_class(GDExtensionClassLibraryPtr p_library extension->gdextension.editor_class = self->level_initialized == INITIALIZATION_LEVEL_EDITOR; extension->gdextension.is_virtual = p_extension_funcs->is_virtual; extension->gdextension.is_abstract = p_extension_funcs->is_abstract; + extension->gdextension.is_exposed = p_extension_funcs->is_exposed; extension->gdextension.set = p_extension_funcs->set_func; extension->gdextension.get = p_extension_funcs->get_func; extension->gdextension.get_property_list = p_extension_funcs->get_property_list_func; extension->gdextension.free_property_list = p_extension_funcs->free_property_list_func; extension->gdextension.property_can_revert = p_extension_funcs->property_can_revert_func; extension->gdextension.property_get_revert = p_extension_funcs->property_get_revert_func; - extension->gdextension.notification = p_extension_funcs->notification_func; + extension->gdextension.validate_property = p_extension_funcs->validate_property_func; +#ifndef DISABLE_DEPRECATED + if (p_deprecated_funcs) { + extension->gdextension.notification = p_deprecated_funcs->notification_func; + } +#endif // DISABLE_DEPRECATED + extension->gdextension.notification2 = p_extension_funcs->notification_func; extension->gdextension.to_string = p_extension_funcs->to_string_func; extension->gdextension.reference = p_extension_funcs->reference_func; extension->gdextension.unreference = p_extension_funcs->unreference_func; @@ -337,6 +379,7 @@ void GDExtension::_register_extension_class(GDExtensionClassLibraryPtr p_library ClassDB::register_extension_class(&extension->gdextension); } + void GDExtension::_register_extension_class_method(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, const GDExtensionClassMethodInfo *p_method_info) { GDExtension *self = reinterpret_cast(p_library); @@ -448,7 +491,7 @@ void GDExtension::register_interface_function(StringName p_function_name, GDExte GDExtensionInterfaceFunctionPtr GDExtension::get_interface_function(StringName p_function_name) { GDExtensionInterfaceFunctionPtr *function = gdextension_interface_functions.getptr(p_function_name); - ERR_FAIL_COND_V_MSG(function == nullptr, nullptr, "Attempt to get non-existent interface function: " + p_function_name); + ERR_FAIL_NULL_V_MSG(function, nullptr, "Attempt to get non-existent interface function: " + String(p_function_name) + "."); return *function; } @@ -482,9 +525,16 @@ Error GDExtension::open_library(const String &p_path, const String &p_entry_symb } void GDExtension::close_library() { - ERR_FAIL_COND(library == nullptr); + ERR_FAIL_NULL(library); OS::get_singleton()->close_dynamic_library(library); +#if defined(TOOLS_ENABLED) && defined(WINDOWS_ENABLED) + // Delete temporary copy of library if it exists. + if (!temp_lib_path.is_empty() && Engine::get_singleton()->is_editor_hint()) { + DirAccess::remove_absolute(temp_lib_path); + } +#endif + library = nullptr; } @@ -493,12 +543,12 @@ bool GDExtension::is_library_open() const { } GDExtension::InitializationLevel GDExtension::get_minimum_library_initialization_level() const { - ERR_FAIL_COND_V(library == nullptr, INITIALIZATION_LEVEL_CORE); + ERR_FAIL_NULL_V(library, INITIALIZATION_LEVEL_CORE); return InitializationLevel(initialization.minimum_initialization_level); } void GDExtension::initialize_library(InitializationLevel p_level) { - ERR_FAIL_COND(library == nullptr); + ERR_FAIL_NULL(library); ERR_FAIL_COND_MSG(p_level <= int32_t(level_initialized), vformat("Level '%d' must be higher than the current level '%d'", p_level, level_initialized)); level_initialized = int32_t(p_level); @@ -508,7 +558,7 @@ void GDExtension::initialize_library(InitializationLevel p_level) { initialization.initialize(initialization.userdata, GDExtensionInitializationLevel(p_level)); } void GDExtension::deinitialize_library(InitializationLevel p_level) { - ERR_FAIL_COND(library == nullptr); + ERR_FAIL_NULL(library); ERR_FAIL_COND(p_level > int32_t(level_initialized)); level_initialized = int32_t(p_level) - 1; @@ -541,7 +591,10 @@ GDExtension::~GDExtension() { void GDExtension::initialize_gdextensions() { gdextension_setup_interface(); +#ifndef DISABLE_DEPRECATED register_interface_function("classdb_register_extension_class", (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class); +#endif // DISABLE_DEPRECATED + register_interface_function("classdb_register_extension_class2", (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class2); register_interface_function("classdb_register_extension_class_method", (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_method); register_interface_function("classdb_register_extension_class_integer_constant", (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_integer_constant); register_interface_function("classdb_register_extension_class_property", (GDExtensionInterfaceFunctionPtr)&GDExtension::_register_extension_class_property); @@ -607,12 +660,13 @@ Ref GDExtensionResourceLoader::load(const String &p_path, const String } bool compatible = true; - if (VERSION_MAJOR < compatibility_minimum[0]) { - compatible = false; - } else if (VERSION_MINOR < compatibility_minimum[1]) { - compatible = false; - } else if (VERSION_PATCH < compatibility_minimum[2]) { - compatible = false; + // Check version lexicographically. + if (VERSION_MAJOR != compatibility_minimum[0]) { + compatible = VERSION_MAJOR > compatibility_minimum[0]; + } else if (VERSION_MINOR != compatibility_minimum[1]) { + compatible = VERSION_MINOR > compatibility_minimum[1]; + } else { + compatible = VERSION_PATCH >= compatibility_minimum[2]; } if (!compatible) { if (r_error) { @@ -640,6 +694,45 @@ Ref GDExtensionResourceLoader::load(const String &p_path, const String Ref lib; lib.instantiate(); String abs_path = ProjectSettings::get_singleton()->globalize_path(library_path); + +#if defined(WINDOWS_ENABLED) && defined(TOOLS_ENABLED) + // If running on the editor on Windows, we copy the library and open the copy. + // This is so the original file isn't locked and can be updated by a compiler. + if (Engine::get_singleton()->is_editor_hint()) { + if (!FileAccess::exists(abs_path)) { + if (r_error) { + *r_error = ERR_FILE_NOT_FOUND; + } + ERR_PRINT("GDExtension library not found: " + library_path); + return Ref(); + } + + // Copy the file to the same directory as the original with a prefix in the name. + // This is so relative path to dependencies are satisfied. + String copy_path = abs_path.get_base_dir().path_join("~" + abs_path.get_file()); + + // If there's a left-over copy (possibly from a crash) then delete it first. + if (FileAccess::exists(copy_path)) { + DirAccess::remove_absolute(copy_path); + } + + Error copy_err = DirAccess::copy_absolute(abs_path, copy_path); + if (copy_err) { + if (r_error) { + *r_error = ERR_CANT_CREATE; + } + ERR_PRINT("Error copying GDExtension library: " + library_path); + return Ref(); + } + FileAccess::set_hidden_attribute(copy_path, true); + + // Save the copied path so it can be deleted later. + lib->set_temp_library_path(copy_path); + + // Use the copy to open the library. + abs_path = copy_path; + } +#endif err = lib->open_library(abs_path, entry_symbol); if (r_error) { @@ -647,6 +740,12 @@ Ref GDExtensionResourceLoader::load(const String &p_path, const String } if (err != OK) { +#if defined(WINDOWS_ENABLED) && defined(TOOLS_ENABLED) + // If the DLL fails to load, make sure that temporary DLL copies are cleaned up. + if (Engine::get_singleton()->is_editor_hint()) { + DirAccess::remove_absolute(lib->get_temp_library_path()); + } +#endif // Errors already logged in open_library() return Ref(); } diff --git a/godot/core/extension/gdextension.h b/godot/core/extension/gdextension.h index b935f87..628cfae 100644 --- a/godot/core/extension/gdextension.h +++ b/godot/core/extension/gdextension.h @@ -43,6 +43,9 @@ class GDExtension : public Resource { void *library = nullptr; // pointer if valid, String library_path; +#if defined(WINDOWS_ENABLED) && defined(TOOLS_ENABLED) + String temp_lib_path; +#endif struct Extension { ObjectGDExtension gdextension; @@ -50,7 +53,17 @@ class GDExtension : public Resource { HashMap extension_classes; + struct ClassCreationDeprecatedInfo { +#ifndef DISABLE_DEPRECATED + GDExtensionClassNotification notification_func = nullptr; +#endif // DISABLE_DEPRECATED + }; + +#ifndef DISABLE_DEPRECATED static void _register_extension_class(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo *p_extension_funcs); +#endif // DISABLE_DEPRECATED + static void _register_extension_class2(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs); + static void _register_extension_class_internal(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_parent_class_name, const GDExtensionClassCreationInfo2 *p_extension_funcs, const ClassCreationDeprecatedInfo *p_deprecated_funcs = nullptr); static void _register_extension_class_method(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, const GDExtensionClassMethodInfo *p_method_info); static void _register_extension_class_integer_constant(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, GDExtensionConstStringNamePtr p_enum_name, GDExtensionConstStringNamePtr p_constant_name, GDExtensionInt p_constant_value, GDExtensionBool p_is_bitfield); static void _register_extension_class_property(GDExtensionClassLibraryPtr p_library, GDExtensionConstStringNamePtr p_class_name, const GDExtensionPropertyInfo *p_info, GDExtensionConstStringNamePtr p_setter, GDExtensionConstStringNamePtr p_getter); @@ -76,6 +89,11 @@ public: Error open_library(const String &p_path, const String &p_entry_symbol); void close_library(); +#if defined(WINDOWS_ENABLED) && defined(TOOLS_ENABLED) + void set_temp_library_path(const String &p_path) { temp_lib_path = p_path; } + String get_temp_library_path() const { return temp_lib_path; } +#endif + enum InitializationLevel { INITIALIZATION_LEVEL_CORE = GDEXTENSION_INITIALIZATION_CORE, INITIALIZATION_LEVEL_SERVERS = GDEXTENSION_INITIALIZATION_SERVERS, diff --git a/godot/core/extension/gdextension_interface.cpp b/godot/core/extension/gdextension_interface.cpp index b4541de..f59ee29 100644 --- a/godot/core/extension/gdextension_interface.cpp +++ b/godot/core/extension/gdextension_interface.cpp @@ -1041,13 +1041,85 @@ static void gdextension_ref_set_object(GDExtensionRefPtr p_ref, GDExtensionObjec ref->reference_ptr(o); } +#ifndef DISABLE_DEPRECATED static GDExtensionScriptInstancePtr gdextension_script_instance_create(const GDExtensionScriptInstanceInfo *p_info, GDExtensionScriptInstanceDataPtr p_instance_data) { + GDExtensionScriptInstanceInfo2 *info_2 = memnew(GDExtensionScriptInstanceInfo2); + info_2->set_func = p_info->set_func; + info_2->get_func = p_info->get_func; + info_2->get_property_list_func = p_info->get_property_list_func; + info_2->free_property_list_func = p_info->free_property_list_func; + info_2->property_can_revert_func = p_info->property_can_revert_func; + info_2->property_get_revert_func = p_info->property_get_revert_func; + info_2->get_owner_func = p_info->get_owner_func; + info_2->get_property_state_func = p_info->get_property_state_func; + info_2->get_method_list_func = p_info->get_method_list_func; + info_2->free_method_list_func = p_info->free_method_list_func; + info_2->get_property_type_func = p_info->get_property_type_func; + info_2->validate_property_func = nullptr; + info_2->has_method_func = p_info->has_method_func; + info_2->call_func = p_info->call_func; + info_2->notification_func = nullptr; + info_2->to_string_func = p_info->to_string_func; + info_2->refcount_incremented_func = p_info->refcount_incremented_func; + info_2->refcount_decremented_func = p_info->refcount_decremented_func; + info_2->get_script_func = p_info->get_script_func; + info_2->is_placeholder_func = p_info->is_placeholder_func; + info_2->set_fallback_func = p_info->set_fallback_func; + info_2->get_fallback_func = p_info->get_fallback_func; + info_2->get_language_func = p_info->get_language_func; + info_2->free_func = p_info->free_func; + + ScriptInstanceExtension *script_instance_extension = memnew(ScriptInstanceExtension); + script_instance_extension->instance = p_instance_data; + script_instance_extension->native_info = info_2; + script_instance_extension->free_native_info = true; + script_instance_extension->deprecated_native_info.notification_func = p_info->notification_func; + return reinterpret_cast(script_instance_extension); +} +#endif // DISABLE_DEPRECATED + +static GDExtensionScriptInstancePtr gdextension_script_instance_create2(const GDExtensionScriptInstanceInfo2 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data) { ScriptInstanceExtension *script_instance_extension = memnew(ScriptInstanceExtension); script_instance_extension->instance = p_instance_data; script_instance_extension->native_info = p_info; return reinterpret_cast(script_instance_extension); } +static GDExtensionScriptInstancePtr gdextension_placeholder_script_instance_create(GDExtensionObjectPtr p_language, GDExtensionObjectPtr p_script, GDExtensionObjectPtr p_owner) { + ScriptLanguage *language = (ScriptLanguage *)p_language; + Ref