Nope, I am sorry, if you set the block non-solid and jump into it then it does register the collision event. So I am guessing it's a minor difference between our functions place_free or move_contact_solid that you are using in the player object and what GM does.
I would try playing with the code that triggers collision events in enigma-dev/events.res
beforecollisionautomaticcollisionhandling: 100000 Name: Before collision automatic collision handling Mode: None Default: ; Instead: enigma::perform_callbacks_before_collision_event();
collision: 4 Group: Collision Name: %1 Type: Object Mode: Stacked Super Check: instance_number(%1) Sub Check: (instance_other = enigma::place_meeting_inst(x,y,%1)) # Parenthesize assignment used as truth prefix: for (enigma::iterator it = enigma::fetch_inst_iter_by_int(%1); it; ++it) {int $$$internal$$$ = %1; instance_other = *it; if (enigma::place_meeting_inst(x,y,instance_other->id)) {if(enigma::glaccess(int(other))->solid && enigma::place_meeting_inst(x,y,instance_other->id)) x = xprevious, y = yprevious; suffix: if (enigma::glaccess(int(other))->solid) {x += hspeed; y += vspeed; if (enigma::place_meeting_inst(x, y, $$$internal$$$)) {x = xprevious; y = yprevious;}}}} # Check for detriment from collision events above
|