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

Group 2: ferry, toads and stone

Chosen at Shelter Rock (button 1 → scene 10). Chained: Captain Cajun's Ferryboat → Titanic Tattooed Toads → Stone Rise → Shade Tree.

Captain Cajun's Ferryboat (scene 10)

📷 Screenshot: ferry-overview The river with Captain Cajun's ferry, the landing places and the Zoombinis waiting on the bank. Capture: from Shelter Rock, set out with button 1.

📷 Screenshot: ferry-crossing The ferry mid-river carrying Zoombinis, with Captain Cajun at the helm. Capture: place some Zoombinis on the ferry's seats and let it cross.

Scene / module / archive10 / decomp/ferry.cpp / FERRY (Ferry.MHK)
Group listferryGroups → ferryClicked
LevelferryLevel (0-4), with 16-20 Zoombinis (forcedFerryCount overrides)
FunctionAddressRole
openFerry0x41f97cloads Ferry.MHK; Captain Cajun (the first time sound 1803, then one of cajunGreetings); the views; the places for the level (layOutFerryLevel) and the party; a hint or greeting
ferryFrame0x41ff89once everyone has crossed (ferryLeaving), Captain Cajun speaks and the group ends (sceneDue = 11)
ferryClicked0x4203b3buttons and dragging a Zoombini to a place
layOutFerryLevel0x4211a3the level's places and the number of Zoombinis: SCRB scripts 1510-1529
layOutFerry0x420ccelays out the places from a script: its first two frames are two lists of parts; each part is a view at a point, 1-3 places to stand, 4-10 scenery
findFerryPlace0x4214abfinds a free waiting place
linkFerryPlaces0x42121clinks places (which seats are paired)
startNextCrosser, crosserNotify, moveFerryOn0x420f85, 0x420a60, 0x4209b8each crossing: the ferry's views play scripts 1604-1607 and the Zoombini's script by route
slideFerryViews, ferryHelperNotifythe ferry sliding across

Things to know: Captain Cajun has pools of lines for greetings, idle remarks and for good and bad placing (cajunGreetings, goodPlacingRemarks, badPlacingRemarks, sound ids 0x708-0x723). The ferry's routes use slots allocated with returnRoutesUsed.

Titanic Tattooed Toads (scene 11)

📷 Screenshot: toads-overview The river with the grid of lily pads and toads. Capture: complete the ferry.

📷 Screenshot: toads-hop A Zoombini hopping across lily pads. Capture: start the crossing once the board is set.

Scene / module / archive11 / decomp/lilly.cpp / LILLY (Lilly.MHK)
Group listlillyGroups → lillyClicked
LevellillyLevel (set when the scene opens, from the level reached); LillyActor is its large view body

The module is 46 KB, the biggest puzzle (its boundary with hotel is found from the data, not from padding).

FunctionAddressRole
openLilly0x4281b0opens Lilly.MHK at the level reached
lillyFrame0x428d84per-frame
lillyClicked0x429943buttons; drag pieces
setUpBoard0x42cc75turns and mirrors the level's grids, leaves out some pieces, deals the squares and fills them in, noting starting squares on the first row (lillyStarts) at levels 3 and 4
dealSquares0x42ca39deals out the twelve squares' contents from three sets (3, 4, 5 entries: squareSetA/B/C)
turnGrid, mirrorGrid0x42d6e9, 0x42d875rotate and reflect a grid
swapSquares0x42c6dcswaps the attributes of two squares and replans every actor whose kind either now has
planWay, searchLayer, searchStep0x42ec2aplans an actor's way across (kind 0) or down (1): from each square, the least visited neighbour that's free and of its kind, at most 200 steps
dragLillyPiece0x42d9c5dragging a square
addLillyActors, lillyNotify30/44/49/54/60/70, hopperNotify, hopNotify0x42b857, 0x42f49dthe hoppers and their script events
checkLillyArrivals0x42e6b5have they got across

Stone Rise (scene 12)

📷 Screenshot: stonerise-overview The cliff of stones with the Zoombinis waiting at the bottom and the cells above. Capture: complete the toads.

📷 Screenshot: stonerise-lit-path A path of lit stones between Zoombinis that share a feature. Capture: place Zoombinis in adjacent cells.

Scene / module / archive12 / decomp/slides.cpp / SLIDES (Slides.MHK)
Group listslidesGroups → stoneRiseClicked
Cheatwith a typed code, map hotspot 8 opens scene 20 instead (Hidden scenes)
FunctionAddressRole
openStoneRise0x446bf8opens Slides.MHK, builds the board (all cells empty), the party
stoneRiseFrame0x447171per-frame; after finishing goes to Shade Tree (sceneDue = 5)
stoneRiseClicked0x447528buttons and dragging a Zoombini onto a cell
lightPath0x448f02lights the path: from the listed cell, walks back along the links: Zoombinis' cells go to 508; a feature stone (510-513) lights when the Zoombinis on either side share its feature; a plain stone lights on level 1 after a Zoombini's cell; the walk ends at an empty or blocked cell or a stone that doesn't light
sharedStone0x449f96whether two cells' Zoombinis share a feature, checking from a random feature on (510-513 for hair, eyes, nose, feet; 0 if none)
groupInThrees0x44986fgroups the party in threes, each sharing a feature with the last where one can (the intended solution)
pairByFeatures, seatPair, tryMove, tryMovesAround, followRoutes, lightFromStarts0x4494b3, 0x44abce, 0x44a674, 0x44acccthe board-building and checking helpers
markCellAt, linkCells0x44b0fcthe board's cells

Things to know: this scene and Fleens share a remark set (stoneRiseSounds equals fleensSounds); finishing sets bit 1 << level in gameState+0x52 and sends the party to Shade Tree.