mjocean / PyProcGameHD-SkeletonGame

The current HD VGA Fork of PyProcGame (w/ HW Accel) + SkeletonGame to accelerate new game development
http://pinballprogramming.com
MIT License
14 stars 8 forks source link

Trough should not check switches when launch in progress #13

Closed scottdanesi closed 7 years ago

scottdanesi commented 7 years ago

I experienced an issue with my game where the ball launch was in progress and when it fired the ball rolled back and triggered the last position switch and ended the ball.

I think if we put some logic in that makes sure that self.launch_in_progress() is False before executing the callback to end the ball or trigger the ballsave.

Let me know your thoughts on this and I can work on some solutions for this.

scottdanesi commented 7 years ago

I am thinking a possible solution to this would be to change the following line of code:

In trough.py, under def check_switches, line 190: Change: if self.num_balls_in_play > 0: To: if self.num_balls_in_play > 0 and not self.launch_in_progress:

This should solve the issue.

scottdanesi commented 7 years ago

This fix will also keep the ball ending callback from executing if the ball falls back in the trough and for some reason falls all the way back to position 1. The error watchdog will then trigger and re-launch.

mjocean commented 7 years ago

This is an edge case with a failed eject only after the trough drain logic has already been installed (e.g., ballsave). This is included in latest commit, here: https://github.com/mjocean/PyProcGameHD-SkeletonGame/commit/4a66e58568dd11208598cd57f38930c9a0b2cecd