The final week of GSoC and it ended up being rougher than I hoped for last week.
I started working on implementing lasso selection and in theory it was really simple. All I had to do was:
- Detect if a click inside the inventory window is on a object or not.
- If it’s not on an object then we can start the lasso and start polling for mouse move events.
- On a mouseup event, we select all the objects inside the current lasso area.
- Then we should be able to click and drag any of those objects to move all of them
I managed to get the item selection working and it should have been enough to get the lasso working but unfortunately it wasn’t that simple. During the process of porting the WebVenture code, the behavior of many functions was changed and the overall flow and structure of the engine has been altered significantly. The changes were small enough that you could technically still clear the games but they add together to make it harder to finish adding all the functionality from WebVenture.
An example of such change is the ability to move objects when they are selected. Here’s two GIFs showing the behavior on a Mac and WebVenture:
And here’s what happens with ScummVM:
By itself, it’s just a minor annoyance while playing and can be worked around. However, it’s a required functionality for lasso selection to work. Here’s how lasso selection looks on the Mac:
I couldn’t really figure out how to make lasso work without some major rewrites to parts of the code so I decided to leave this for later. The current TODO list for MacVenture looks like:
- Fix some minor behavior discrepancies
- Add IIGS support
- Add Lasso selection
- Implement some stubbed functions
There’s not much time left in the final coding period so I have opened a PR with my currently finished work on MacVenture. I’ll also try to finish some of the TODO tasks for Avalanche which were listed on it’s wiki entry here.
The coding period might be coming to a close but I am planning on continuing my work after GSoC during the coming weekends. I’d also like to write a blog post looking back at all the work done during these 15 weeks so look forward to that. Thanks for reading and see you next week!