Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The map and the journey

The map (scene 1)

📷 Screenshot: map-overview The map with its sixteen hotspots drawn on the terrain and the text box at upper left. Capture: from Zoombini Isle click the map button (panel button 5).

📷 Screenshot: map-practice-levels The map in practice mode: the level list (1-4) and the "snoids to practice with" count in the text box. Capture: open the map with no saved journey so every hotspot is available.

Scene / module / archive1 / decomp/picker.cpp / MAP (Map.MHK)
InputpickerGroups: 17 items → mapClicked; hotspot 17 is "the rest of the screen"

The map has sixteen hotspots (placeNames), each a place:

#PlaceGoes to#PlaceGoes to
1Zoombini Isle39Fleens!13
2Allergic Cliffs710Hotel Dimensia14
3Stone Cold Caves811Mudball Wall15
4Pizza Pass912Shade Tree5
5Shelter Rock413The Lion's Lair16
6Captain Cajun's Ferryboat1014Mirror Machine17
7Titanic Tattooed Toads1115Bubblewonder Abyss18
8Stone Rise1216Zoombiniville6
FunctionAddressRole
openMap0x42fa4bloads the sounds, backdrop and saved areas, makes the map's views, loads sounds 998-999
mapFrame0x42feafper-frame
pickHotspot0x430030picks hotspot n and redraws the "open hotspots" view: in the game only the isle (1) and the camps and town (5, 12, 16) are selectable, and 5, 12 and 16 only once the per-group "left" bits say they've been reached (gameState+0x50, +0x52, +0x51); in practice mode every place is, subject to the same camp bits
mapClicked0x43010bthe click handler: maps a hotspot to its scene (the code in the table above), plays 998, closes the map and sets pendingScene
mapKey0x43041fCtrl-P starts practice mode (level 1); 1-4 then pick the level. With debugging on: +/- set the practice party size (1-16), T then a letter a-p previews the journey transition for that route
leavePractice0x430724returns from practice to the game
drawMapBox, makeMapViews0x430878the text box (mapTexts) and the hotspot views

Practice mode (practiceLevel, 1-4; started with Ctrl-P) lets any place be visited at the chosen level with a practice party (practicePartySize, 1-16); it never changes the saved journey (enterNextScene skips the progress bookkeeping). Puzzles are not hotspots in the real game: a puzzle is reached by setting out from a camp (the camp's buttons 1 and 2, see The camps). The "help" button (helpButtonRect) plays sound 999 and opens the help dialog. Two hotspots (8 and 9) go to hidden scenes instead if a cheat code was typed (Hidden scenes).

The journey scene (scene 2)

Between most scenes the game shows the party travelling across the map, and the map's grid filling in.

📷 Screenshot: journey-travel A map screen mid-journey: Zoombinis walking along a path, with the map's name and the grid of places visited. Capture: leave a puzzle for the next without "transitions off" (Ctrl-T).

📷 Screenshot: journey-population-sign The "zoombiniville population N" sign. Capture: travel to or from Zoombiniville.

Scene / module / archive2 / decomp/xfer.cpp / XFER (xfer.MHK)
Inputone whole-screen item → journeyClicked (a click skips ahead)
FunctionAddressRole
openJourney0x4697f1picks the map the next place is on (xferMap: 0 isle, 1-4 the maps, 5 the town), the backdrop, views and sounds, and fills in the grid under the map's name
journeyFrame0x46ace4after 300 ticks (and xferSound) goes on to journeyTo; now and then starts the next Zoombini walking, or an ambient view
journeyClicked0x46b00eleaves for the scene due, or on to journeyTo
setUpGrid, markGridCell, spreadGridMarks0x46b872the grid of visited places
drawPopulationSign0x46b761the population sign
readPlaceLevelswhich places are done at which levels

journeyRoute (1-16) names the route from journeyFrom to journeyTo; enterNextScene sets them (viaMap). It's skipped when skipJourneyMap or transitionsOn is set, in practice mode, and when moving between scenes that don't leave a place.

Things to know

  • The map text strings levelTexts and mapTexts (picker.h, zoombinis.h) include "terrain key", "choose a level", the month names (used for the records) and "when traveling was".
  • Because pickHotspot limits the real game to the isle, camps and town, the map in a normal game is a way to return to those; the puzzle hotspots are mainly for practice mode.