Scirra / Construct-bugs

Public bug report submissions for Construct 3 and Construct Animate. Please read the guidelines then click the 'Issues' tab to get started.
https://www.construct.net
107 stars 83 forks source link

Failed to open project bug #7017

Open WilsonPercival opened 1 year ago

WilsonPercival commented 1 year ago

Problem description

I cannot open the project.

Attach a .c3p

failed_to_open_project_bug_r341b.zip

Steps to reproduce

  1. Open a project.
  2. Go to the event editor.
  3. Move the sub-event function below the first event.
  4. Save the project.
  5. Open the saved project. Note that the Failed to open project window appears.

Observed result

https://github.com/WilsonPercival/WilsonPercival/assets/91274932/8c89456e-4b5f-48b5-98c5-a04fbb542eef

Expected result

I can open a project.

More details

Affected browsers/platforms: Chrome

First affected release: broke in r341b

System details

View details Platform information Product: Construct 3 r341 (beta) Browser: Chrome 109.0.5414.120 Browser engine: Chromium Context: browser Operating system: Windows NT 0.1.0 Device type: desktop Device pixel ratio: 1 Logical CPU cores: 2 Approx. device memory: 4 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Language setting: en-US Local storage Storage quota (approx): 59 gb Storage usage (approx): 649 mb (1.1%) Persistant storage: No Browser support notes This list contains missing features that are not required, but could improve performance or user experience if supported. UI effects are disabled in settings. WebGL indicates a major performance caveat. It is probably using software rendering. WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: no Supports highp precision: yes Vendor: Google Inc. (Google) Renderer: ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver) Major performance caveat: yes Maximum texture size: 8192 Point size range: 1 to 1023 Extensions: EXT_color_buffer_float EXT_color_buffer_half_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic OES_draw_buffers_indexed OES_texture_float_linear WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_lose_context WEBGL_multi_draw OVR_multiview2 Audio information System sample rate: 48000 Hz Output channels: 2 Output interpretation: speakers Supported decode formats: WebM Opus (audio/webm; codecs=opus) Ogg Opus (audio/ogg; codecs=opus) WebM Vorbis (audio/webm; codecs=vorbis) Ogg Vorbis (audio/ogg; codecs=vorbis) MPEG-4 AAC (audio/mp4; codecs=mp4a.40.5) MP3 (audio/mpeg) FLAC (audio/flac) PCM WAV (audio/wav; codecs=1) Supported encode formats: WebM Opus (audio/webm; codecs=opus) Video information Supported decode formats: WebM AV1 (video/webm; codecs=av01.0.00M.08) MP4 AV1 (video/mp4; codecs=av01.0.00M.08) WebM VP9 (video/webm; codecs=vp9) WebM VP8 (video/webm; codecs=vp8) Ogg Theora (video/ogg; codecs=theora) H.264 (video/mp4; codecs=avc1.42E01E) Supported encode formats: WebM VP9 (video/webm; codecs=vp9) WebM VP8 (video/webm; codecs=vp8)
AshleyScirra commented 1 year ago

This looks basically the same as #6914: it does not prevent you moving a function under a trigger, which is invalid, but due to the extremely complicated nature of the drag-and-drop code it is not able to validate this when the parent event references the thing being dragged. For example if the parent event is just On signal "foo", it validates it correctly and prevents the move. Unfortunately with an invalid setup if you then save the project it cannot be opened as the events are invalid.

As with #6914 this is unfortunately extremely difficult to fix. I suspect however this is not something that happens much in practice, given the extremely specific requirements for it to happen.