The attached patch actually makes the story playable (at least on Windows).
I added another argument to XMLPingusLevel() that stores the resource name.
Prior to this, the problem with not being able to unlock levels in a
worldmap was because the "levelname" stored in savegames.xml didn't
match the "levelname" in tutorial.xml. Now, it does, so the
levels can be unlocked after you beat them.
This patch should make the entire Story mode playable again.