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

Array Delete Index bug #4815

Closed dop2000 closed 3 years ago

dop2000 commented 3 years ago

Problem description

It's difficult to explain, but seems like "Array compare at" condition in OR-block may prevent a record in the array from deleting.

Attach a .c3p

https://www.dropbox.com/s/z095b022reinb3b/ArrayBug2.c3p?dl=0

Steps to reproduce

  1. Run and see the log messages.

Observed result

Record "BBB" with index 1 should be deleted from the array, but it isn't. If you remove the second condition in event 3, then it works correctly.

More details

Affected browsers/platforms: All

System details

View details Platform information Browser: Chrome Browser version: 90.0.4430.93 Browser engine: Chromium Browser architecture: 64-bit Context: browser Operating system: Windows Operating system version: 10 Operating system architecture: 64-bit Device type: desktop Device pixel ratio: 1.25 Logical CPU cores: 4 Approx. device memory: 8 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 C3 release: r241 (stable) Language setting: en-US Local storage Storage quota (approx): 127 gb Storage usage (approx): 514 mb (0.4%) Persistant storage: Yes Browser support notes This list contains missing features that are not required, but could improve performance or user experience if supported. Nothing is missing. Everything is OK! WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: yes Supports highp precision: yes Vendor: Google Inc. (Intel) Renderer: ANGLE (Intel, Intel(R) HD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8681) Major performance caveat: no Maximum texture size: 16384 Point size range: 1 to 1024 Extensions: EXT_color_buffer_float EXT_color_buffer_half_float EXT_disjoint_timer_query_webgl2 EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic EXT_texture_norm16 KHR_parallel_shader_compile OES_draw_buffers_indexed OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_draw_instanced_base_vertex_base_instance WEBGL_lose_context WEBGL_multi_draw WEBGL_multi_draw_instanced_base_vertex_base_instance WEBGL_video_texture WEBGL_webcodecs_video_frame 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 3 years ago

This is just the same old OR block picking which seems to trip everyone up.

The array does not meet the second condition of the OR block, so the event runs with zero Array instances picked. Therefore the action on the Array object has no effect.

dop2000 commented 3 years ago

This is so messed up.. I knew about this issue with OR blocks, and yet I spent 2 hours trying to figure out why the code doesn't work.. I didn't realize that "Array Compare At" condition picks array instances!