Commit Graph

717 Commits

Author SHA1 Message Date
Rémi Verschelde c3b0ee5941 Fix code style issues 2019-01-26 22:35:31 +01:00
Ivan Ponomarev 8edfc3b5ac Fixed possible crash in pck_packer.cpp due to wrong memory freeing. 2019-01-22 20:02:19 +03:00
Juan Linietsky 6fa632b821 Add function to obtain filesystem type from DirAccess.
Change EditorFileSystem to not use directory modification times on FAT32, fixes #20946
2019-01-21 18:06:14 -03:00
Martin Capitanio a6ab7a91ef Print the path of a corrupt image
After scanning a path in the project manager or starting a project it is not clear which
image can not be loaded.

After errors

```
    ERROR: _png_error_function: Not a PNG file
       At: drivers/png/image_loader_png.cpp:62.
    libpng error: Not a PNG file
    ERROR: _load_image: PNG Corrupted
       At: drivers/png/image_loader_png.cpp:94.
```

add

```
    ERROR: load_image: Error loading image: path/bad.png
       At: core/io/image_loader.cpp:69.
```
2019-01-20 04:19:12 +01:00
Fabio Alessandrelli 60d235622d Don't reset MultiplayerAPI when setting same peer.
A GDScript call to:
`multiplayer.network_peer.some_prop = true`
seems to transalte to:
```
var temp = multiplayer.network_peer
temp.some_prop = true
multiplayer.network_peer = temp
```
Which caused the MultiplayerAPI to be resetted.
The call to set_network_peer is now ignored if the peer that's beeing
set is the same as the currently set one.
2019-01-15 11:14:51 +01:00
Fabio Alessandrelli 1f7846abf8 Fix MultiplayerAPI initialization, clear.
rpc_sender_id is now correctly initialized to 0 so get_rpc_sender_id()
work reliably even if called before receiving any RPC.
root_node is initialized to NULL (fix crashes when incorrectly using the
MultiplayerAPI).
clear function now resets the packet cache size to free more memory when
not running.
2019-01-15 10:35:26 +01:00
Guilherme Felipe e64391f47b Update zstd to 1.3.8 2019-01-03 22:35:20 -02:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde 9df7ed59fb
Merge pull request #19501 from Zylann/custom_loaders
Added basic support for custom resource savers and loaders
2018-12-16 14:26:56 +01:00
Marc Gilleron 065e2670af Added basic support for custom resource savers and loaders 2018-12-15 05:34:53 +00:00
Wilson E. Alvarez 08f22f1cf0
Moved member variables to initializer list 2018-12-11 18:33:01 -05:00
Paulb23 69fe17639e Fix text files constantly asking for reload as no last modified time 2018-12-02 16:24:23 +00:00
Fabian a01608c389 Improved support for custom image loaders 2018-11-23 08:16:54 +10:30
Juan Linietsky 60cbb69c7c Increase number of image loaders (why was it this low..), fixes #19037 2018-11-18 22:07:00 -03:00
Fabio Alessandrelli 1ef9e9ef6a Properly accept wildcard when binding IPv4 socket.
Also never return null for is_ipv4 to avoid crashes due to engine bug.
(better to get an error and a broken socket then seeing your game crash)
2018-11-18 14:54:40 +01:00
Juan Linietsky da1f53c8d9 User more correct plus file on get_current_dir. 2018-11-08 19:05:12 -03:00
Juan Linietsky f2e54057ae -Moved EditorDefaultValue to ClassDB, made it core
-Removed one and zero hints for properties, replaced by default value
2018-11-08 11:30:59 -03:00
Juan Linietsky e647342140 Moved folding outside the resource files, now saved outside the project. 2018-10-29 16:37:09 -03:00
Rémi Verschelde 1169196f04
Merge pull request #22779 from Superwaitsum/LimitSettings
Limit several project settings
2018-10-25 11:38:06 +02:00
Superwaitsum e5041ad0f5 Add some limits on the Editor Settings 2018-10-24 19:46:33 -05:00
Dualtagh Murray b902a2f2a7 Fixing warnings generated by MSVC
Fixes #22684.
2018-10-19 11:45:24 +02:00
Fabio Alessandrelli 83acd5f17e One less local variable in marshalls 2018-10-07 12:56:07 +02:00
Aaron Franke 4f7b33cdcf Remove redundant "== false" code
Some of this code has been re-organized.
f
2018-10-06 16:20:41 -04:00
Aaron Franke 37386f112b Remove redundant "== true" code
If it can be compared to a boolean, it can be evaluated as one in-place.
2018-10-06 16:12:36 -04:00
Juan Linietsky f12cb82e0f Fixes to baker, restored xatlas and fixed bake options. 2018-10-05 19:00:32 -03:00
Marc Gilleron c1bba054e6 Don't delete FileAccess when it is null 2018-10-05 20:24:28 +01:00
Rémi Verschelde dec20a987b Fix some warnings raised by MSVC 2017
Disabled signed/unsigned warnings like for GCC/Clang
(warning C4018: '>=': signed/unsigned mismatch).

Fixes the following MSVC 2017 warnings:
```
core\image.cpp(999): warning C4804: '>': unsafe use of type 'bool' in operation

core\io\compression.cpp(178): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
editor\doc\doc_dump.cpp(226): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
scene/resources/material.h(289): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
scene/resources/material.h(298): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)

editor\editor_themes.cpp(379): warning C4805: '==': unsafe mix of type 'int' and type 'bool' in operation
```
2018-10-03 17:34:56 +02:00
Rémi Verschelde 95131e6f23 Fix warnings on release builds (not DEBUG_ENABLED)
Fixes the following Clang 5 warnings:
```
modules/bmp/image_loader_bmp.cpp:46:60: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
modules/bmp/image_loader_bmp.cpp:48:61: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
drivers/png/image_loader_png.cpp:231:20: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
scene/gui/graph_edit.cpp:1045:8: warning: comparison of constant 0 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]

core/class_db.cpp:812:13: warning: unused variable 'check' [-Wunused-variable]
core/io/file_access_pack.cpp:172:11: warning: unused variable 'ver_rev' [-Wunused-variable]
core/math/bsp_tree.cpp:195:13: warning: unused variable 'plane' [-Wunused-variable]
core/math/bsp_tree.cpp:168:6: warning: unused variable 'plane_count' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:685:10: warning: unused variable 'ok' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:706:10: warning: unused variable 'ok' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:755:19: warning: unused variable 'var_type' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:1306:12: warning: unused variable 'err' [-Wunused-variable]

modules/gdscript/gdscript_function.cpp:158:15: warning: unused function '_get_var_type' [-Wunused-function]
modules/gdscript/gdscript_parser.cpp:750:20: warning: unused variable 'lv' [-Wunused-variable]
modules/gdscript/gdscript_parser.cpp:59:15: warning: unused function '_find_function_name' [-Wunused-function]
scene/main/node.cpp:2489:13: warning: unused function '_Node_debug_sn' [-Wunused-function]
```
2018-10-03 17:34:55 +02:00
Rémi Verschelde 6ab78d9ffb Fix some more warnings reported by CI
Fixes the following Clang 7 warnings:
```
core/io/marshalls.cpp:872:10: warning: unused variable 'f' [-Wunused-variable]

core/ustring.cpp:1831:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
core/ustring.cpp:1832:2: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]

drivers/gles3/rasterizer_gles3.cpp:82:24: warning: unused function '_gl_debug_print' [-Wunused-function,34]

main/main.cpp:118:13: warning: unused variable 'auto_build_solutions' [-Wunused-variable]

modules/csg/csg_gizmos.cpp:225:46: warning: 'current' may be used uninitialized in this function [-Wmaybe-uninitialized]
```
2018-10-03 14:13:42 +02:00
Rémi Verschelde ffa8420aec
Merge pull request #22223 from Faless/fix_int32_encode
Fix put_var encoding some 32bits ints as 64bits.
2018-10-02 09:40:21 +02:00
Rémi Verschelde b1b625f4f5 Fix various Clang 7 warnings about unused stuff
Namely:
[-Wunneeded-internal-declaration]
[-Wunused-comparison]
[-Wunused-const-variable]
[-Wunused-function]
[-Wunused-private-fields]

Fixes the following Clang 7 warnings:
```
editor/plugins/script_editor_plugin.cpp:1417:20: warning: function '_find_node_with_script' is not needed and will not be emitted [-Wunneeded-internal-declaration]
editor/scene_tree_dock.cpp:1859:14: warning: function '_find_last_visible' is not needed and will not be emitted [-Wunneeded-internal-declaration]

modules/gdscript/gdscript_parser.cpp:7838:19: warning: equality comparison result unused [-Wunused-comparison]

scene/resources/mesh.cpp:549:35: warning: unused variable '_array_types' [-Wunused-const-variable]
scene/resources/mesh.cpp:563:18: warning: unused variable '_format_translate' [-Wunused-const-variable]

drivers/gles3/rasterizer_scene_gles3.cpp:54:28: warning: unused function 'store_transform2d' [-Wunused-function]

core/io/file_access_network.h:50:6: warning: private field 'ml' is not used [-Wunused-private-field]
core/io/file_access_zip.h:93:14: warning: private field 'archive' is not used [-Wunused-private-field]
core/io/resource_format_binary.h:122:6: warning: private field 'bin_meta_idx' is not used [-Wunused-private-field]
core/message_queue.h:47:9: warning: private field 'mutex' is not used [-Wunused-private-field]
main/tests/test_gui.cpp:63:11: warning: private field 'control' is not used [-Wunused-private-field]
modules/gdscript/gdscript_parser.h:558:7: warning: private field 'completion_static' is not used [-Wunused-private-field]
platform/x11/os_x11.h:148:11: warning: private field 'ip_unix' is not used [-Wunused-private-field]
platform/x11/os_x11.h:180:7: warning: private field 'net_wm_icon' is not used [-Wunused-private-field]
platform/x11/os_x11.h:189:6: warning: private field 'audio_driver_index' is not used [-Wunused-private-field]
platform/x11/os_x11.h:190:15: warning: private field 'capture_idle' is not used [-Wunused-private-field]
servers/physics/body_pair_sw.h:79:6: warning: private field 'cc' is not used [-Wunused-private-field]
servers/visual/visual_server_raster.h:62:7: warning: private field 'draw_extra_frame' is not used [-Wunused-private-field]
```
2018-10-01 17:32:12 +02:00
Rémi Verschelde 62ecb44035 Fix warning about functions defined but not used [-Wunused-function]
Fixes the following GCC 5 warnings:
```
core/io/zip_io.h:128:26: warning: 'zlib_filefunc_def zipio_create_io_from_file(FileAccess**)' defined but not used [-Wunused-function]
core/script_debugger_remote.cpp:110:17: warning: 'ObjectID safe_get_instance_id(const Variant&)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:103:12: warning: 'int _socket_create(IP::Type&, int, int)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:45:15: warning: 'size_t _set_sockaddr(sockaddr_storage*, const IP_Address&, int, IP::Type)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:76:15: warning: 'size_t _set_listen_sockaddr(sockaddr_storage*, int, IP::Type, IP_Address)' defined but not used [-Wunused-function]
editor/editor_fonts.cpp:40:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
editor/editor_themes.cpp:85:26: warning: 'Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat>, Color)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:493:13: warning: 'void _generate_normals(const PoolVector<int>&, const PoolVector<Vector3>&, PoolVector<Vector3>&)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:524:13: warning: 'void _generate_tangents_and_binormals(const PoolVector<int>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, PoolVector<float>&)' defined but not used [-Wunused-function]
editor/pvrtc_compress.cpp:118:13: warning: 'void _compress_etc(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:89:13: warning: 'void _decompress_etc1(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:93:13: warning: 'void _decompress_etc2(Image*)' defined but not used [-Wunused-function]
modules/gdscript/editor/gdscript_highlighter.cpp:46:13: warning: 'bool _is_whitespace(CharType)' defined but not used [-Wunused-function]
scene/2d/cpu_particles_2d.cpp:510:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/3d/cpu_particles.cpp:474:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:123:20: warning: 'Ref<Shader> make_shader(const char*, const char*, const char*)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:130:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
```

Had to split `core/io/zip_io.h` into header and .cpp file without 'static' keyword.

Not fixed yet (static definition in header used in some files but not all):
```
modules/websocket/lws_helper.h:111:13: warning: 'void _lws_make_protocols(void*, int (*)(lws*, lws_callback_reasons, void*, void*, size_t), PoolVector<String>, _LWSRef**)' defined but not used [-Wunused-function]
```

Also fixed a couple other warnings missed in previous commits.
2018-09-29 22:26:12 +02:00
Rémi Verschelde a9e17af09a SCons: Build core's thirdparty code in own environment
Also move Zlib and Zstd's build instructions to core/SCsub.
2018-09-28 11:40:41 +02:00
Rémi Verschelde 7b081a7fc8 Fix warnings about unhandled enum value in switch [-Wswitch]
Fixes GCC 5 warnings of the form:

core/io/http_client.cpp:288:9: warning: enumeration value 'STATUS_SSL_HANDSHAKE_ERROR' not handled in switch [-Wswitch]
core/io/marshalls.cpp:806:9: warning: enumeration value 'AABB' not handled in switch [-Wswitch]

Those can be trivial cases where adding a default fallback is the solution,
or more complex issues/hidden bugs where missed values are actually meant
to be handled.
2018-09-27 18:34:30 +02:00
Rémi Verschelde d8b30d42f5 Fix warnings for operator precedence disambiguation [-Wparentheses]
Fixes the following GCC 5 warnings:
```
core/io/resource_format_binary.cpp:1721:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
core/typedefs.h:108:24: warning: suggest parentheses around comparison in operand of '!=' [-Wparentheses]
editor/plugins/spatial_editor_plugin.cpp:2202:58: warning: suggest parentheses around comparison in operand of '!=' [-Wparentheses]
editor/plugins/spatial_editor_plugin.cpp:5002:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
main/input_default.cpp:346:59: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
main/input_default.cpp:348:60: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
main/input_default.cpp:579:57: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
modules/gridmap/grid_map_editor_plugin.cpp:613:14: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
modules/theora/video_stream_theora.cpp:335:34: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
modules/theora/video_stream_theora.cpp:336:35: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
modules/visual_script/visual_script_property_selector.cpp:215:38: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
scene/gui/rich_text_label.cpp:424:84: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
scene/gui/rich_text_label.cpp:512:80: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
scene/gui/scroll_container.cpp:173:36: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
scene/gui/scroll_container.cpp:173:86: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
scene/gui/tree.cpp:1419:98: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
```
2018-09-27 10:29:48 +02:00
Fabio Alessandrelli 7e097cd00b Better MultiplayerAPI error logs. 2018-09-25 20:13:45 +02:00
Fabio Alessandrelli f6e8579569 Skip RPC/RSET when MASTERSYNC and we are master. 2018-09-25 17:45:28 +02:00
Fabio Alessandrelli b9707ce08f StreamPeer get[_utf8]_string with negative length.
If the "bytes" parameter of get_string and get_utf8_string is negative,
the length will be read from the stream instead.
The bytes parameter has now a default (-1), allowing to use them
directly as reverses of put_string and put_utf8_string .
put_string was not implemented, so I implemented it to allow sending
ASCII strings (which are much smaller than UTF8 ones).
2018-09-22 13:35:41 +02:00
Fabio Alessandrelli 92de6df113 Add checks for clean disconnect in HTTP/TCP/SSL.
Half-open TCP connection can, of course, only be detected by
writing the socket, or waiting for TCP timeout.
2018-09-21 14:34:57 +02:00
Fabio Alessandrelli dba8c3999d Fix put_var encoding some 32bits ints as 64bits. 2018-09-18 18:31:37 +02:00
Rémi Verschelde 7f5e653a22
Merge pull request #22066 from Faless/bundle_certs
Bundle SSL certs with the templates
2018-09-16 01:22:47 +02:00
Fabio Alessandrelli 26677d5e0c Fix HTTPClient _get_http_data bug after #21976. 2018-09-15 21:17:15 +02:00
Fabio Alessandrelli 0e56377e96 Allow system certs file to be used by Editor.
Note, it will only used by the Editor, not when running the game.
This allows package maintainer to compile Godot to use system installed
certificates when accessing the AssetLib.
2018-09-15 14:45:54 +02:00
Fabio Alessandrelli d2b38aabec Bundle SSL certs with the templates.
If this is undesired it can be avoided by specifying builtin_certs=no .
Bundled SSL certs will be used unless you specify an override in:
Project Settings -> SSL -> Certificates .
2018-09-15 10:54:00 +02:00
Rémi Verschelde 4547e22393 doc: Sync classref with current source 2018-09-15 03:13:47 +02:00
Fabio Alessandrelli 1e9b46d687 Clearly deprecate sync too in favor of remotesync.
NOTE: This changes the RPC_MODE_* enum values.
Games should be re-exported. GDNative rebuilt.
2018-09-15 00:06:03 +02:00
Fabio Alessandrelli d6b31daec6 Rename slave keyword to puppet
The slave keyword will still be available as deprecated in 3.1 but will
be dropped from future releases.
2018-09-15 00:06:03 +02:00
elasota 88c74aa017 Fix FileAccessCompressed::get_8 returning 0 for the last byte of a file 2018-09-13 19:10:35 -04:00
Rémi Verschelde 1259cbf13c
Merge pull request #21976 from Faless/http_client_eof_fix
Fix non chunked HTTP reading till eof.
2018-09-13 11:17:14 +02:00
Rémi Verschelde 3d0638b8e9
Merge pull request #22020 from Faless/tcp_fix
Fix TCP connecting state not set correctly
2018-09-13 11:04:01 +02:00
Rémi Verschelde 1a16dabfb5
Merge pull request #21982 from luzpaz/misc-typos
Misc. typos
2018-09-13 10:59:00 +02:00
Fabio Alessandrelli 3d12eb6ca2 Fix TCP connecting state not set correctly 2018-09-13 08:08:55 +02:00
luz.paz 08bde5b2de Misc. typos
Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
2018-09-12 21:39:17 -04:00
Fabio Alessandrelli 30327872e0 Unify StreamPeerTCP/TCP_Server with NetSocket API 2018-09-12 15:56:20 +02:00
Fabio Alessandrelli 1b99806b47 Unify PacketPeerUDP using NetSocket 2018-09-12 15:56:16 +02:00
Fabio Alessandrelli b4e3be7519 New NetSocket interface, BSD/Win implementation
Unified BSD and Winsock sockets into a single implementation of a
generic NetSocket interface.

This is some ground work for few network improvements:
- Reuse as much code as possible between Posix and Windows.
- Provide a single point of implementation for exotic sdks (consoles).
- Provide platform agnostic StreamPeerTCP and PacketPeerUDP in core.
- Implement connect for UDP allowing for DTLS implementation.
2018-09-12 15:46:37 +02:00
Fabio Alessandrelli ab0e610e86 Fix non chunked HTTP reading till eof. 2018-09-12 12:42:48 +02:00
Rémi Verschelde 277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Juan Linietsky 19d57894d8 Change ResourceLoader::load to make it more thread safe. 2018-09-02 14:00:16 -03:00
Fabio Alessandrelli 97757cd1d1 Fix DNS resolution when cache is invalid.
Fix StreamPeerTCP.connect_to_host return value.
2018-08-28 12:32:04 +02:00
Juan Linietsky 0565adb20f Removed fallback system and merged bptc into s3tc 2018-08-27 13:47:35 -03:00
Rémi Verschelde 52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Rémi Verschelde de59fe04e7 Add print_verbose to print to stdout only in verbose mode
Equivalent of the cumbersome:
if (OS::get_singleton()->is_stdout_verbose())
	print_line(msg);
2018-08-24 09:23:20 +02:00
elasota 35f6ba5c5d BPTC support 2018-08-21 22:56:04 -04:00
Rémi Verschelde d29ea4337f Fix ResourceLoader::exists() false negative and readd deprecated has() 2018-08-12 12:44:38 +02:00
Juan Linietsky 852378109f Added function ResourceLoader.exists(), to check if a resource exists. Closes #19140 2018-08-10 15:57:43 -03:00
Juan Linietsky ea3d997f9d
Revert "added get_creation_time function for gdscript" 2018-08-10 13:29:49 -03:00
Juan Linietsky 275e0d5ee4
Merge pull request #18914 from notwarp/master
added get_creation_time function for gdscript
2018-08-10 13:28:47 -03:00
willnationsdev 417e5457b8 ResourceFormatLoaderImage::get_resource_type now uses file path 2018-08-04 15:14:28 -05:00
Juan Linietsky 317dee95de It is now possible to import images as a separate resource, closes #5738 and likely many others 2018-07-29 16:45:23 -03:00
Fabio Alessandrelli feaf03421d Fix marshalls size checks.
Yesterday, when playing around with my network code, I realized there is
a security issue in decode_variant, at least when decoding PoolArrays.
Basically, the size of the PoolArray is encoded in a uint32_t, when
decoding it, that value is cast to int when comparing if the packet is
actually that size causing numbers with MSB=1 to be interpreted as
negative thus always passing the check. That same value though, is used
as uint32_t again to resize the output vector.  For this reason, sending
a malformed packet with declared type PoolByteArray and size of 2^31(+x)
causes the engine to try to allocate 2+GB of pool memory, causing the
engine to crash.

(cherry picked from commit 5262d1bbcc)
2018-07-29 03:00:34 +02:00
Rémi Verschelde 391e46830f doc: Sync classref with current source
Fix various missing arguments in bindings.
2018-07-26 11:56:21 +02:00
Hein-Pieter van Braam 0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Rémi Verschelde 12d69ef53e Fix loading PO files with missing newline after last msgstr
Fixes #20375.
2018-07-24 13:32:37 +02:00
Fabio Alessandrelli 9ba8f0d2d8 HTTP client now uses non blocking handshake 2018-07-16 13:08:17 +02:00
Fabio Alessandrelli 99d0b7ba14 Implement non blocking-handshake for StreamPeerSSL 2018-07-16 13:08:17 +02:00
Fabio Alessandrelli e82f0fefbc MultiplayerAPI::send_bytes transfer mode support.
Added as extra parameter, allow you to specify which transfer mode to
use for those specific bytes
2018-07-08 09:47:22 +02:00
GagaPete 8a4dccc4ce Fix CORS problems due to added headers on JS target
Before this change, missing User-Agent and Accept headers were automatically
added on all platforms. Setting the User-Agent header forces the browser to
do a CORS preflight (see 1) which fails if the HTTP endpoint is not
configured appropriate. It's not neccesary to set either header as the
browser sets them and so this commit disables that functionality on the JS
target.

1: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests
2018-07-04 01:56:44 +02:00
Michael Alexsander Silva Dias 1971baf8a9 Fixed regression making the logger not respect the max files limit. 2018-06-12 12:57:48 -03:00
Michael Alexsander Silva Dias cf9520ba2e Don't add a period to a log file name if it has no extension. 2018-05-30 11:31:29 -03:00
Fabio Alessandrelli 4524153b6e New sync RPC modes to match all combinations 2018-05-29 20:26:41 +02:00
Fabio Alessandrelli 1400f6fdc4 Refactor RPCMode enum and checks 2018-05-29 20:26:41 +02:00
Max Hilbrunner 4c69a495c9
Revert "RPCMode refactor, more sync modes" 2018-05-29 11:47:52 +02:00
Max Hilbrunner d0b62ce155
Merge pull request #19021 from Faless/rpc_sync_fix
RPCMode refactor, more sync modes
2018-05-29 09:44:03 +02:00
Fabian 1065f06eef Fix for not picking up locale of some .po translation files 2018-05-28 12:51:05 +09:30
Max Hilbrunner 130fd6bcb8
Merge pull request #18279 from RandomShaper/allow-naive-http
Allow body-up-to-EOF HTTP responses
2018-05-26 19:58:39 +02:00
Fabio Alessandrelli 19ba3d5da3 New sync RPC modes to match all combinations 2018-05-26 10:43:43 +02:00
Fabio Alessandrelli 9de4ffde61 Refactor RPCMode enum and checks 2018-05-26 10:43:43 +02:00
Pedro J. Estébanez 2587fcccee Allow body-up-to-EOF HTTP responses
Implements the same heuristic as Curl (and web browsers): if no `Content-Length`, no `Connection: keep-alive` and no chunked transfer encoding, assume th rest of the data until EOF is the body, gracefully setting the HTTP client back to the disconnected state.

Theoretically, this is not compliant with HTTP 1.1, by which `keep-alive` is the default, but in practice, an explicit header is sent by servers.
2018-05-22 15:08:31 +02:00
Guilherme Felipe 35024d4e7b Add missing copyright headers 2018-05-16 14:50:44 -03:00
Daniele Giuliani d315b0fb8a added get_creation_time function for gdscript 2018-05-16 00:50:57 +02:00
Fabio Alessandrelli c7466eb144 Allow sending raw bytes through MultiplayerAPI 2018-05-12 23:17:24 +02:00
Max Hilbrunner e744d12e56
Merge pull request #18709 from Faless/multiplayer_docs
Rename multiplayer_api to multiplayer, add docs
2018-05-09 01:41:01 +02:00
Juan Linietsky 06b076f687
Merge pull request #15305 from poke1024/checks-peer
Checks on input_buffer in PacketPeerStream
2018-05-08 10:45:39 -03:00
Fabio Alessandrelli e391b493d5 Internal methods in MultiplayerAPI start with _ 2018-05-08 14:46:52 +02:00
Juan Linietsky cbd849d13f
Merge pull request #16033 from poke1024/marshalls-dict
Detects crash-related marshalling errors due to NAN values
2018-05-07 17:51:06 -03:00
Rémi Verschelde f86a67c4d1
Merge pull request #18520 from paulloz/gdscript-api-string-path
fix API string path
2018-05-02 10:36:25 +02:00
Paul Joannon a35c8bbdc7 fix API string path 2018-04-30 09:38:18 +02:00
Max Hilbrunner a3aa5ad0d0 PCKPacker:pck_start(): Update version 2018-04-19 00:45:22 +02:00
Pedro J. Estébanez 00e98458ba Revert "Unify http- and percent- encode/decode"
This reverts commit b76ee30917.
2018-04-12 21:12:34 +02:00
Juan Linietsky e9e5aa617e
Merge pull request #17227 from Faless/multiplayer_api
[RFC] MultiplayerAPI refactor
2018-04-08 11:04:16 -03:00
Juan Linietsky cd7e9d9642
Merge pull request #17583 from RandomShaper/enhance-uri-utils
Enhance uri utils
2018-04-07 17:07:29 -03:00
Juan Linietsky 5a1a90c3db
Merge pull request #17636 from rainerdeyke/fix_issue_17585
Fixes moving files causes scene corruption
2018-04-07 16:56:02 -03:00
Fabio Alessandrelli 490dd9f946 Generalize SSL cert reading from file 2018-04-03 20:13:57 +02:00
Pedro J. Estébanez 8d8e9d54c8 Enhance HTTPClient.query_string_from_dict() 2018-03-27 19:18:32 +02:00
Pedro J. Estébanez b76ee30917 Unify http- and percent- encode/decode
There was a percent-prefixed version, which was exposed, and a http-prefixed version which was not (only to GDNative).
This commit keeps the percent-prefixed versions, but with the http-prefixed implementations.
2018-03-27 19:18:30 +02:00
Rainer Deyke 31c6d6649f Fixes scene corruption when updating dependencies.
This commit fixes issue #17585: renaming/moving resources can corrupt
scene files.  The corruption was caused by
'ResourceFormatLoaderBinary::rename_dependencies' updating the file
format version field of the affected scene file to the latest version
without actually updating the content of the file to that version,
resulting in a file whose content does not match its file format version
field.  The fix preserves the file format version field and the engine
version fields when renaming dependencies.
2018-03-24 15:08:55 +01:00
Pedro J. Estébanez 536611704a Fix listing files inside directory in pack file
When adding a directory path to the inventory of the pack, an empty file name was being added to the file list. That made `Directory.get_ntext()` signal end-of-list too early so that files in a subdirectory were missed.

Fixes #15801.
Helps with #16798.
2018-03-18 14:04:50 +01:00
Fabio Alessandrelli b0186b41bb
Merge pull request #17237 from RandomShaper/fix-ssl-handshake
Fix HTTPClient SNI support when verify is off
2018-03-15 22:43:34 +01:00
Andrew Dunai 0269e366f1 Fix garbage in string padding. 2018-03-04 19:45:33 +02:00
Pedro J. Estébanez 602da6fa4f Fix wrong SSL handshake
The name of the remote host is passed to mbed TLS in all cases so the client hello message is correctly formed.
2018-03-04 01:22:59 +01:00
Fabio Alessandrelli df391cc5be Add new MultiplayerAPI class
Handles all the high level networking stuff
2018-03-03 18:28:49 +01:00
luz.paz 612ab4bbc6 Fix typos with codespell
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```
2018-02-21 19:46:06 +01:00
Artem Varaksa d35e486228 Clean up some bad words from code comments 2018-02-17 16:00:39 +03:00
Rémi Verschelde b48cc669e2
Merge pull request #16169 from hungrymonkey/issue_16160
Change function signature from float to double to match type get_doub…
2018-02-14 15:50:47 +01:00
Fabio Alessandrelli 67b600d957 Add mbedtls module 2018-02-14 01:26:23 +01:00
Marlon Henry Schweigert 87adf9cfba Display set_nodelay to GDScript
Pass enabled arg

Rename set_nodelay to set_no_delay

Add description to the method

Change description
2018-01-30 13:22:15 -02:00
hungrymonkey d2f1c87063 Change function signature from float to double to match type get_doubleCloses #16160 2018-01-29 15:45:46 -08:00
Bernhard Liebl eb1f9375ea Detects crash-related marshalling errors due to NAN values 2018-01-24 19:24:18 +01:00
Rémi Verschelde 9f479f096c Fix typos in code and docs with codespell
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
2018-01-18 22:01:42 +01:00
Rémi Verschelde 6c46787749 doc: Replace some more "val" with "value" + sync 2018-01-17 10:43:23 +01:00
Paul Joannon e08b6c9a9c fix set_stream_peer binding in PacketPeer 2018-01-12 14:25:05 +01:00
Bojidar Marinov 9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
Ruslan Mustakov a6157245b1 Dont print error when loading resource from cache 2018-01-11 20:46:18 +07:00
Juan Linietsky 50b975548d Removed PBM bitmap loader, added abiliy to importi mages as bitmap. Fixes #14828 2018-01-06 16:38:36 -03:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Bernhard Liebl df84ecd043 Checks on input_buffer in PacketPeerStream 2018-01-03 21:12:58 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Juan Linietsky b3a1bf3245 Use a different strategy for path remaps, try loading from a remap file instead.
This ensures multiple PCK exports still work.
2017-12-18 11:21:49 -03:00
Fabio Alessandrelli 92067b4714 Remove "const" from PacketPeer get_packet/get_var
They are NOT constant methods, as state by the comment message,
they fetch the last packet and then forget about it, actively
changing the state of the object.
2017-12-15 17:14:17 +01:00
Fabio Alessandrelli 206275f3e7 Fix javascript build error and improve #14604 2017-12-15 15:35:18 +01:00
Juan Linietsky 433cb6f490 fix compile issue 2017-12-15 09:04:57 -03:00
Juan Linietsky 251433847f -Added new scene conversion to binary on export (disabled by default, please test)
-This method works by directly converting text to binary, so the scene does not need to be loaded and saved
2017-12-15 08:39:26 -03:00
Rémi Verschelde 108a36f515
Merge pull request #14604 from mhilbrunner/http-defaults
HTTP cleanup & better defaults
2017-12-15 07:53:38 +01:00
Juan Linietsky 93a63a5e1a GDScript files are converted to binary on export now. 2017-12-14 15:34:47 -03:00
mhilbrunner 966c054fc9 HTTP cleanup & better defaults 2017-12-14 10:59:42 +01:00
mhilbrunner a7abb459c9 HTTPClient: Add PATCH method and missing HTTP status codes 2017-12-12 10:56:18 +01:00
Rémi Verschelde a845411454 Style: Re-apply clang-format over recent invalid additions 2017-12-10 01:27:02 +01:00
Rémi Verschelde 13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Rémi Verschelde d5ca9e2f6f Style: Apply clang-format again on all files
Fixes issues introduced by newer clang-format versions or commits
pushed directly without using the clang-format pre-commit hook.
2017-12-07 08:02:00 +01:00
Rémi Verschelde e6f3253f7d
Merge pull request #12603 from GodotExplorer/beautify-json
Add indent and sort keys support for JSON.print
2017-12-06 23:53:05 +01:00
Rémi Verschelde c7e53f1934 Fix javascript build after bc2e8d99 2017-11-27 08:17:28 +01:00
Juan Linietsky bc2e8d99e5 Made Vector::ptrw explicit for writing, compiler was sometimes using the wrong function,
leading to unnecesary copy on writes and reduced performance.
2017-11-25 00:09:40 -03:00
Juan Linietsky 0300522189
Merge pull request #13176 from bojidar-bg/allow-subproperty-set
Fix combatibility with older .scn files
2017-11-22 08:46:34 -03:00
Bojidar Marinov 3eb7858a3a
Fix combatibility with older .scn files 2017-11-22 13:34:43 +02:00
Rémi Verschelde 613d374bc5
Merge pull request #12284 from bojidar-bg/allow-subproperty-set
Allow for getting/setting "dotted" properties of objects
2017-11-21 22:44:14 +01:00
Bojidar Marinov 0cf9597758
Allow for getting/setting indexed properties of objects using get/set_indexed
Performance is around the same as using pure set() through GDScript.
2017-11-21 20:58:21 +02:00
Ruslan Mustakov d42c5646a5 Return and repair file logging
And make it configurable, too.
2017-11-21 16:43:44 +07:00
Ferenc Arn d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Leon Krause 2970061a73 Implement HTTPClient in HTML5 platform
Limitations:

 - Subject to same-origin policy
 - No persistent connection (but simulated for compatibility)
 - No blocking mode
 - No StreamPeer access
 - No chunked responses
 - Cannot disable host verification
2017-11-13 00:58:29 +01:00
Geequlim f7168bf217 Add indent and sort keys support for JSON.print 2017-11-07 11:52:45 +08:00
Karroffel 1386647cdf make ConfigFile sections ordered 2017-11-04 14:08:21 +01:00
Karroffel 38d56c8351 make ConfigFile use OrderedHashMap 2017-11-03 14:33:19 +01:00
Rémi Verschelde 568e905604
Merge pull request #12423 from tagcup/zstd_1.3.2
Update zstd to 1.3.2.
2017-10-27 20:28:59 +02:00
Ferenc Arn f3436a841a Add an option to use zstd's recently introduced long range matching (off by default). 2017-10-27 12:26:13 -04:00
Ferenc Arn 01815e9b5f Update zstd to 1.3.2. 2017-10-26 16:41:47 -04:00
Leon Krause d1102cb37d Remove HTTPClient::send_body_text and ::send_body_data
These were never implemented, the request* methods provide parameters to
send body data as part of the client's requests.
2017-10-26 22:25:35 +02:00
Rémi Verschelde 6361e24f29 Cleanup unnecessary debug prints 2017-10-21 20:41:07 +02:00
Ruslan Mustakov 27b537cfca Fix rotated logger naming and backup deletion 2017-10-20 10:34:46 +07:00
Ruslan Mustakov 6106fd88d4 Remove junk output
Remove several prints that were added for engine debugging, but are
of no use to the end user, and only pollute the editor and game logs.
2017-10-13 12:40:19 +07:00
Ruslan Mustakov 73e86187bc Define va_copy with --std=c++03 (fixes #11979) 2017-10-10 12:09:59 +07:00
Rémi Verschelde e5fcf0ee76 Merge pull request #11947 from eska014/fix-obj-marshalling
Fix exporting projects with custom input event actions
2017-10-09 00:04:28 +02:00
Leon Krause c05c334de7 Fix binary marshalling of Objects 2017-10-08 20:13:46 +02:00
Andreas Haas fd1d886cf8 Merge pull request #11853 from endragor/long-string-logging
Fix logging of long strings via RotatedFileLogger
2017-10-06 13:16:21 +02:00
Juan Linietsky 3d87b70f7a Added the set/get_setting function in Editor/Project settings. Renamed has() to has_setting. Fixes #11844 2017-10-05 15:34:34 -03:00
Ruslan Mustakov 01ebcfe841 Fix logging of long strings via RotatedFileLogger 2017-10-05 16:16:20 +07:00
Gilles Roudiere 2e6f2ed032 Merge pull request #11812 from NathanWarden/fix_validate_ssl
Fixed a bug where ssl would force validation even though you told it not to.
2017-10-04 20:40:53 +02:00
Juan Linietsky 3cadecf17b fixed the OS.has_feature() API, and added support for 32 and 64. 2017-10-03 17:36:14 -03:00
Nathan Warden 310a8eb902 Fixed a bug where ssl would force validation even though you told it not to. 2017-10-03 13:53:23 -05:00
Ruslan Mustakov 1a2311e350 Extract logging logic
Previously logging logic was scattered over OS class implementations
with plenty of duplication. Major changes in this commit:

 - Extracted logging logic into a separate Logger hierarchy. It allows
   easy configuration of logging mechanism depending on compile-time or
   run-time configuration.

 - Implemented RotatedFileLogger which is usually used with StdLogger,
   providing persistency of logs. It is often important to be able to
   obtain logs of the game even in production to be able to understand
   what happened prior to some problem. On mobile there previously was
   no way to obtain the logs aside from having the device connected to
   your machine.

 - flush() is not performed in release mode for every logged line. It
   is only performed for errors.
2017-09-25 16:19:21 +07:00
Elliott Sales de Andrade a408388623 Enable building against system zstd. 2017-09-23 23:46:47 -04:00
Juan Linietsky 423ca9bcaf Fix import order, so scenes are imported after textures.
Also fix bugs when meshes are always generated.
2017-09-20 21:04:20 -03:00
letheed 5ad9be4c24 Rename pos to position in user facing methods and variables
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:

* pos -> position
* rot -> rotation
* loc -> location

C++ variables are left as is.
2017-09-20 13:11:10 +02:00
Rémi Verschelde aabbd00284 Merge pull request #10908 from hpvb/fix-unused-variables
Fix unused variable warnings
2017-09-12 12:55:53 +02:00
Rémi Verschelde 2b50dc5d4f Merge pull request #11057 from hpvb/fix-various-warnings
Fix various assorted warnings
2017-09-12 11:39:47 +02:00
Hein-Pieter van Braam b2a38854fd Fix unused variable warnings
The forth in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-08 15:03:53 +02:00
Hein-Pieter van Braam 67a706fc1b Fix various assorted warnings
Fix various warnings that don't have enough instances to merit
individual commits. Also fixes a potential bug in audio_server.cpp.
2017-09-08 14:57:48 +02:00
Hein-Pieter van Braam 6fb86dda8a Fix using enum as bool value
This warning actually hid a bug. The value of ERR_INVALID_DATA is
actually 30, returning this as a bool returns true while false was
required.
2017-09-07 11:39:14 +02:00
Juan Linietsky ce28452109 -Fixed EditorDirDialog, which was really old and needed to use EditorFileSystem
-Fixed refactoring tools to work with imported scenes (properly move .import files)
2017-09-03 00:24:36 -03:00
Poommetee Ketson 459f526119 Fix typos 'a' and 'an' 2017-09-02 21:19:06 +07:00
Hein-Pieter van Braam 9c63ab99f0 Fix use of unitialized variables
The second in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-02 01:59:26 +02:00
Hein-Pieter van Braam f9467ec1ea Fix signed and unsigned comparisons
The first in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01 08:13:12 +02:00
Juan Linietsky d39e79e7ec Fix issues regarding reload of resources in imported scenes. Closes #10017 2017-08-31 18:57:44 -03:00
Juan Linietsky 145ff58277 Fix constant reimport on broken files, closes #9930 2017-08-29 20:17:59 -03:00
Rémi Verschelde 7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde 565600e844 Cleanup tons of obsolete commented out code
Mostly in EditorNode, dropping some obsolete editor plugins and also a
cleanup of ProjectSettings/EditorSettings.
2017-08-26 17:47:57 +02:00
Hein-Pieter van Braam cacced7e50 Convert Object::cast_to() to the static version
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.

This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.

It is explained in this article: https://www.viva64.com/en/b/0226/
2017-08-24 23:08:24 +02:00
Rémi Verschelde df590fc2d3 Merge pull request #10340 from Rubonnek/remove-unnecessary-assignments
Removed unnecessary assignments
2017-08-22 00:58:12 +02:00
Juan Linietsky 2cc8309249 Merge pull request #10351 from neikeq/enums-are-for-the-weak
ClassDB: Provide the enum name of integer constants
2017-08-21 19:56:08 -03:00
Rémi Verschelde e9c43cecbf Merge pull request #10433 from djrm/pr_svg_support
SVG support
2017-08-21 23:49:07 +02:00
Wilson E. Alvarez 738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Juan Linietsky 1be30f35a6 Fix binary object marshalling, closes #9472 2017-08-21 11:22:08 -03:00
Ignacio Etcheverry 32dd9a9f66 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
Daniel J. Ramirez da8fecf25e Added support for SVG 2017-08-20 13:53:02 -05:00
Juan Linietsky dc62389739 -Properly check limits to objects sent (regarding to size), fixes #9034
-Changed the way objects are marshalled and sent to the debugger
-Editing debugged objects happens in the remote inspector now
2017-08-18 10:59:31 -03:00
Marcelo Fernandez eab850524e Add closest_power_of_2 func and implement mix_rate/latency on OS X 2017-08-17 19:51:13 -03:00
TwistedTwigleg 00f6c85928 Synchronize parameter names in definition and declaration
Fixes #10244.
2017-08-16 17:22:23 +02:00
Rémi Verschelde a8207b2dc7 Merge pull request #10264 from Rubonnek/use-const-reference
Use const reference where favorable
2017-08-16 16:41:35 +02:00
kubecz3k edd6dce622 Merge pull request #10334 from Faless/fix_spbuffer_utf8
Fix StreamPeer put_utf8_string not working
2017-08-15 23:06:40 +02:00
Andreas Haas 155402dc1b
Removing a Resource also deletes imported files. 2017-08-15 01:13:41 +02:00
Wilson E. Alvarez 21d281c4a9 Use const reference where favorable 2017-08-14 13:28:06 -04:00
Juan Linietsky b7571582ed Ability to save objects to binary format 2017-08-14 11:59:23 -03:00
Fabio Alessandrelli 74795b98da Fix StreamPeer put_utf8_string not working 2017-08-14 13:19:02 +02:00
Raymoo f87100780e Fix broken stream reading in StreamPeerBuffer 2017-08-12 01:19:50 -07:00
Rémi Verschelde 7ed64327a9 Merge pull request #10163 from ISylvox/resoucre-to-resource
Core/io: Fix typo in resource_format_binary
2017-08-11 10:36:33 +02:00
Rémi Verschelde 306c0471f7 Merge pull request #9987 from Rubonnek/move-members-to-initilization-list
Moved member variables from constructor to initialization list
2017-08-11 10:31:04 +02:00
Ignacio Etcheverry 2f290038d6 Removes type information from method binds 2017-08-10 07:17:50 +02:00
Wilson E. Alvarez 6d112a68b6 Moved member variables from constructor to initialization list 2017-08-08 21:43:19 -04:00
Juan Linietsky 90a595ac42 Set some reasonable limits for sending information to the debugger, closes #5848 2017-08-08 20:55:22 -03:00
Indah Sylvia 51f56a4282 core/io: fix typo 'resoucre' to 'resource' 2017-08-08 12:02:49 +07:00
Rémi Verschelde 76005a8e75 Style: Apply clang-format on all files
Thus fixing some invalid changes that had still made it to the master branch.
2017-07-30 22:53:40 +02:00
Poommetee Ketson 0154098531 Fix various property not found errors 2017-07-26 20:03:13 +07:00
Poommetee Ketson 2777f81d29 Add object type hint for docs 2017-07-23 18:57:03 +07:00
Juan Linietsky 25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Poommetee Ketson 49c7620326 Add object type hint for docs 2017-07-19 02:03:34 +07:00
Juan Linietsky bbada82f80 -Reorganized all properties of project settings (Sorry, Again).
(Lot's of bloat accumulated, so it was time for clean up.)
-Made EditorSettings and ProjectSettings search more useful (search in sections too)
2017-07-17 22:18:58 -03:00
Rémi Verschelde 8691355158 Merge pull request #9634 from vnen/gzip-compression
Add GZIP compression support
2017-07-17 22:40:47 +02:00
Juan Linietsky 2e73be99d8 Lots of work on Audio & Physics engine:
-Added new 3D stream player node
-Added ability for Area to capture sound from streams
-Added small features in physics to be able to properly guess distance to areas for sound
-Fixed 3D CollisionObject so shapes are added the same as in 2D, directly from children
-Fixed KinematicBody API to make it the same as 2D.
2017-07-15 08:32:34 -03:00
George Marques 0f765c86e5
Add GZIP compression support
- Fix a wrong call in PoolByteArray::compress
2017-07-13 14:41:10 -03:00
Poommetee Ketson fdd2a87b8f Ignore fuzzy translations 2017-07-12 21:49:22 +07:00
Juan Linietsky db3b05d289 Reworked translation system
-Label and Button reload translation on the fly
-Resources are loaded and reload depending on locale
2017-06-28 17:01:35 -03:00
Juan Linietsky b19225bfce -Fix freezes caused by etccomp2, closes #9183
-Normalmaps are now detected and imported as RGTC, both in S3TC and ETC2, this improves their quality.
2017-06-16 21:49:37 -03:00
Martin Capitanio 5cabe5f0fc Don't append standard ports to the request header.
Breaks the SSL communication with some servers,
do the same that the other curl, wget, firefox & co clients do.

Fixes #9146
2017-06-13 22:58:23 +02:00
Ferenc Arn 98261e2df2 Expose zstd and zlib compression levels as global config. 2017-06-11 20:27:07 -05:00
Juan Linietsky 12b2652ecb Merge pull request #9104 from tagcup/zstd
Add zstd compression support.
2017-06-11 18:41:56 -03:00
Zher Huei Lee 9ecdf522bd Added EditorPlugin.remove_import_plugin()
Allows addons with import extensions to clean up properly on
removal.
2017-06-11 17:18:22 +08:00
alexholly 935f730170 renamed all Rect3.pos to Rect3.position 2017-06-09 15:54:02 +02:00
Ferenc Arn f177c15347 Add zstd compression support.
zstd has much better compression speed and ratio, and better decompression speed than currently available methods.
Also set zstd as the default compression method for Compression as well as FileAccessCompressed functions.
2017-06-08 23:48:14 -05:00
alexholly a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Juan Linietsky 5567e898d1 Several fixes related to PBR and Environment 2017-05-30 08:56:19 -03:00
Juan Linietsky 5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde c3baf5eb3c Fix two typos from previous commit
Also cleanup comments on variant types.
2017-05-17 18:45:56 +02:00
Juan Linietsky 98a3296702 Removal of Image from Variant, converted to a Resource. 2017-05-17 07:37:45 -03:00
Marcelo Fernandez bba8f1db30 Fixed the IP resolver code blocking the main thread, it uses a Mutex now to lock its own thread. 2017-05-08 21:30:48 +02:00
Rémi Verschelde e58519eb31 Merge pull request #8642 from RandomShaper/fix-pack-get-curr-dir
Fix infinite loop in DirAccessPack::get_current_dir()
2017-05-05 23:02:07 +02:00
Pedro J. Estébanez 5c0188b5c3 Fix infinite loop in DirAccessPack::get_current_dir() 2017-05-04 02:20:53 +02:00
Rémi Verschelde 2398eb6ed4 Move core thirdparty files to thirdparty/{minizip,misc} 2017-04-28 21:19:23 +02:00
Rémi Verschelde 515f92d03b Fix property warnings and hide some debug prints
"ALL IS GOOD" was a lie.

In particular, removes verbose "path not recognized" false positive.

The actual logic is to (somewhat naively) check all ResourceFormatLoaders
and to pick the first good match, so no need to warn about the formats
that do not match the type hint.
2017-04-23 11:17:32 +02:00
Bojidar Marinov c37840c69f
Fix a pesky bug in marshalls.cpp/encode_variant
Fixes #7556 running game from editor on LLVM builds.
2017-04-11 20:17:56 +03:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Andreas Haas a2734df7ed
Core: fix possible memory leaks. 2017-04-06 13:43:13 +02:00
Rémi Verschelde ca3596b043 Merge pull request #8098 from bojidar-bg/configfile-get-value-suppress
Suppress error messages when using ConfigFile::get_value and a default is given
2017-03-24 22:49:50 +01:00
Rémi Verschelde 296ece2c6a Merge pull request #7985 from Faless/enet_godot_sock_squash
Update ENet to use Godot sockets.
2017-03-24 22:47:18 +01:00
Rémi Verschelde debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Fabio Alessandrelli 5f681d0b0f Allow non blocking UDP put_packet in C++.
- Add blocking mode option to PacketPeerUDP.
- put_packet returns ERR_UNAVAILABLE when operation would block.
- ENet module uses non-blocking UDP.
2017-03-24 02:30:11 +01:00
Bojidar Marinov 927d15b815
Suppress error messages when using ConfigFile::get_value and a default is given
Fixes #8097
2017-03-21 19:56:54 +02:00
Rémi Verschelde 5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Rémi Verschelde e1c1d7d1d7 Add a bunch of missing Godot headers in own files 2017-03-05 15:47:28 +01:00
Thaer Razeq f50488a361 Various fixes detected using PVS-Studio static analyzer.
- Add FIXME tags comments to some unfixed potential bugs
- Remove some checks (always false: unsigned never < 0)
- Fix some if statements based on reviews.
- Bunch of missing `else` statements
2017-02-28 07:52:02 -06:00
Juan Linietsky de0045cf1b -renamed globals.h to global_config.cpp (this seems to have caused a few modified files)
-.pck and .zip exporting redone, seems to be working..
2017-02-21 00:06:30 -03:00
Juan Linietsky da11d6d9e8 Many fixes to make exported scenes work better, still buggy. 2017-02-15 08:34:02 -03:00
Hein-Pieter van Braam 411ee71b4d Rename the _MD macro to D_METHOD
This new name also makes its purpose a little clearer

This is a step towards fixing #56
2017-02-13 12:50:02 +01:00
Rémi Verschelde 70b9aa379d Merge pull request #7581 from Faless/v6_wild_bind
TCP/UDP listen bind to address and bugfixes
2017-02-12 23:31:40 +01:00
Rémi Verschelde 70fff42df5 Merge pull request #7749 from Faless/fix_7697
HTTPClient properly handle partial data in non-blocking mode
2017-02-12 23:18:59 +01:00
Rémi Verschelde 5ce18cbdb9 Merge pull request #7743 from karroffel/json_parsing-3.0
JSON::parse reports errors on open-ended objects (master)
2017-02-12 23:17:08 +01:00
Fabio Alessandrelli 833994b294 HTTPClient properly handle partial data in non-blocking mode
Use block to send DVector::Write out of scope in
HTTPClient::read_response_body_chunk()
2017-02-07 11:01:53 +01:00
Juan Linietsky 6bfaa0f12c shadows were not working in-editor for nvidia, fixed now 2017-02-06 20:18:35 -03:00
Karroffel d5071a940d JSON::parse reports errors on open-ended objects 2017-02-06 19:34:34 +00:00
Juan Linietsky 6f2e16306a Several bugfixes, improving the import workflow 2017-02-06 00:38:39 -03:00
Juan Linietsky b3aebcf6df CSV translation import plugin 2017-02-01 20:41:05 -03:00
Juan Linietsky 2cd2ca7bbc Lot of work in new importer, importing textures now works. 2017-02-01 09:46:36 -03:00
Juan Linietsky 96de0141cc Removed import/export system, will start new one from scratch. 2017-01-25 21:57:08 -03:00
Juan Linietsky 7e1afeafd4 Audio bus editing is COMPLETE! 2017-01-25 14:31:52 -03:00
Fabio Alessandrelli 88a56ba783 Remove set_ip_type from network classes (no longer needed)
- TCP:
  - `listen` bind to wildcard "*" -> dual stack socket
  - `listen` bind to address -> socket from address type
  - `connect` -> resolve using best protocol (UNSPEC), socket from address type

- UDP:
  - `listen` bind to wildcard "*" -> dual stack socket
  - `listen` bind to address -> socket from address type
  - `put_packet`/`put_var` -> resolve using TYPE_ANY (UNSPEC), socket from address type
    (to change socket type you must first call `close` it)
2017-01-23 20:18:22 +01:00
Fabio Alessandrelli 2fe4ef6699 Implement UDP listen bind address 2017-01-23 20:18:18 +01:00
Fabio Alessandrelli b2839343ca Implement TCP Server bind address 2017-01-23 20:15:20 +01:00
Fabio Alessandrelli 4198291cd4 IP_Address can now be a wildcard (not a valid IP, used for binding) 2017-01-23 20:15:20 +01:00
Fabio Alessandrelli 98a7e2b4e0 Convert validity checks of IP_Address to is_valid method. 2017-01-23 20:15:20 +01:00
Rémi Verschelde f44ee891be Style: Fix statements ending with ';;' 2017-01-16 08:49:52 +01:00
Rémi Verschelde 40323407df Style: No break before list brace
clang-format does not handle that well *at all*.

For the reference, found the relevant pieces of code with:
`ag "=[ "$'\t'"]?"$'\n'"[ "$'\t'"]?{" --ignore=thirdparty`
2017-01-16 08:48:24 +01:00
Rémi Verschelde 3890256fc5 Style: Cleanups, added headers, renamed files
Made sure files in core/ and tools/ have a proper Godot license header
when written by us. Also renamed aabb.{cpp,h} and object_type_db.{cpp,h}
to rect3.{cpp,h} and class_db.{cpp,h} respectively.

Also added a proper header to core/io/base64.{c,h} after clarifying
the licensing with the original author (public domain).
2017-01-16 08:04:23 +01:00
Geequlim c8e9937e21 Fix error while JSON::parse with empty string 2017-01-15 16:59:02 +08:00
Juan Linietsky dcb95ec147 removed duplicated functions in class hierarchy that were bound more than once
added a check to detect this case in the future
2017-01-14 11:10:42 -03:00
Rémi Verschelde 93ab45b6b5 Style: Fix whole-line commented code
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
2017-01-14 14:52:23 +01:00
Juan Linietsky da4170540c Fixed dir access return value, changed it to Error like all other funcs 2017-01-14 09:17:15 -03:00
Juan Linietsky 6c512b88c2 UDP.set_send_address to UDP.set_dest_address 2017-01-14 00:54:21 -03:00
Juan Linietsky d9d77291bc rename String.extension() -> String.get_extension() / String.basename() -> String.get_basename() 2017-01-14 00:51:09 -03:00
Juan Linietsky e6583117df Both Array and Dictionary are always in shared mode (removed copy on write). 2017-01-11 08:54:17 -03:00
Juan Linietsky bc26f90581 Type renames:
Matrix32 -> Transform2D
	Matrix3 -> Basis
	AABB -> Rect3
	RawArray -> PoolByteArray
	IntArray -> PoolIntArray
	FloatArray -> PoolFloatArray
	Vector2Array -> PoolVector2Array
	Vector3Array -> PoolVector3Array
	ColorArray -> PoolColorArray
2017-01-11 00:52:51 -03:00
Juan Linietsky 62273e51a2 Moved JSON functions to built-in to_json, parse_json, validate_json 2017-01-08 22:40:00 -03:00
Juan Linietsky fdc3380cf6 Remove XML format, as promised, for 3.0 2017-01-08 21:12:19 -03:00
Juan Linietsky 13cdccf23b Variant INT and REAL are now 64 bits (other types remain at 32) 2017-01-08 20:58:39 -03:00
Juan Linietsky 547a57777b renamed joystick to joypad everywhere around source code! 2017-01-08 17:06:33 -03:00
Juan Linietsky 2ab83e1abb Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
Juan Linietsky 0f7af4ea51 -Changed most project settings in the engine, so they have major and minor categories.
-Changed SectionedPropertyEditor to support this
-Renamed Globals singleton to GlobalConfig, makes more sense.
-Changed the logic behind persisten global settings, instead of the persist checkbox, a revert button is now available
2017-01-05 09:16:00 -03:00
Juan Linietsky 3fae505128 Begin modifying properties to make them more friendly to script and doc. 2017-01-03 00:38:16 -03:00
Juan Linietsky 118eed485e ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00
Rémi Verschelde 3f3f5a5359 Merge remote-tracking branch 'origin/gles3' into gles3-on-master
Various merge conflicts have been fixed manually and some mistakes
might have been made - time will tell :)
2017-01-02 21:52:26 +01:00
Rémi Verschelde 0b2771bd65 Merge pull request #7271 from Faless/ipv6_cleanup
Fixes and improvementes for IPv6 implementation.
2017-01-02 15:51:45 +01:00
Rémi Verschelde c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
Bojidar Marinov 474eafbbf6
Remove extraneous line in .po reader, which caused it to disregard first line
Fixes #7337
2016-12-20 21:10:44 +02:00
Fabio Alessandrelli d194e1c48e Expose HTTP classes' set_ip_type to scripting 2016-12-13 11:09:37 +01:00
Fabio Alessandrelli c1c1ec690e Separate hostname resolve cache based on ip_type 2016-12-09 18:24:59 +01:00
Fabio Alessandrelli 1aff508dd9 IP_Address now handle IPv4 and IPv6 transparently
IP_Address changes:
- Converts to and from String transparently while handling IPv4 as IPv6
  mapped (::ffff:[IP]) address internally.
- Completely remove AddrType enum.
- Setting/Getting of ip array is now only possible through dedicated functions
  (ie. set_ipv4, get_ipv4, set_ipv6, get_ipv6)
- Add function to know if the address is a valid IPv4 (for IP implementation and enet)
2016-12-09 18:24:59 +01:00
Fabio Alessandrelli a77a0118f6 Allow setting ip_type for TCP/UDP and HTTP classes 2016-12-09 18:24:59 +01:00
Fabio Alessandrelli c18c5013f8 Migrate int.IP_TYPE_ constants to IP.TYPE_ 2016-12-09 18:24:59 +01:00
Fabio Alessandrelli 95bdd97768 Use an instance variable for ip_type in raw sockets
PacketPeerUDP/StreamPeerTCP/TCP_Server now uses an instance variable
to store the selected ip_type (IPv4/IPv6/ANY, where ANY = dual stack).
All calls to resolve addresses, sending/receving data, connecting/listening
will use that socket type.
2016-12-09 18:24:59 +01:00
Rémi Verschelde d4c17700aa style: Fix PEP8 whitespace issues in Python files
Done with `autopep8 --select=E2,W2`, fixes:

- E201 - Remove extraneous whitespace.
- E202 - Remove extraneous whitespace.
- E203 - Remove extraneous whitespace.
- E211 - Remove extraneous whitespace.
- E221 - Fix extraneous whitespace around keywords.
- E222 - Fix extraneous whitespace around keywords.
- E223 - Fix extraneous whitespace around keywords.
- E224 - Remove extraneous whitespace around operator.
- E225 - Fix missing whitespace around operator.
- E226 - Fix missing whitespace around operator.
- E227 - Fix missing whitespace around operator.
- E228 - Fix missing whitespace around operator.
- E231 - Add missing whitespace.
- E231 - Fix various deprecated code (via lib2to3).
- E241 - Fix extraneous whitespace around keywords.
- E242 - Remove extraneous whitespace around operator.
- E251 - Remove whitespace around parameter '=' sign.
- E261 - Fix spacing after comment hash.
- E262 - Fix spacing after comment hash.
- E265 - Format block comments.
- E271 - Fix extraneous whitespace around keywords.
- E272 - Fix extraneous whitespace around keywords.
- E273 - Fix extraneous whitespace around keywords.
- E274 - Fix extraneous whitespace around keywords.
- W291 - Remove trailing whitespace.
- W293 - Remove trailing whitespace.
2016-11-01 00:35:16 +01:00
Fabio Alessandrelli 7eef15b734 Set proper ip_type default for listen() and resolve_hostname() 2016-10-30 17:46:05 +01:00