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 camps: Shelter Rock and Shade Tree

Between the puzzle groups the party rests at a camp, where Zoombinis that have been left behind are kept and the player chooses who sets out next.

Shelter Rock (scene 4)

📷 Screenshot: camp1-overview Shelter Rock: the scrolling rows of camp slots, the Zoombinis standing in them, and the buttons at the right edge. Capture: finish Pizza Pass (or use practice mode off with a saved game that has).

📷 Screenshot: camp1-drag A Zoombini picked up from its slot and being dragged toward the "party" area. Capture: click and hold on a Zoombini in the camp.

Scene / module / archive4 / decomp/basecamp.cpp / BASECAMP (BaseCamp.MHK)
InputcampGroupLists[2]: buttons → campButtonClicked; the camp area → campMouse
StateCamp (625 CampSlots: Zoombini, rectangle, name) from gameState, campEnoughChosen, campPopulationFull
FunctionAddressRole
enterCamp0x416789loads the slots from gameState and BaseCamp.MHK, returns the party from the journey (returnToCamp) and picks a greeting by how the journey went
campIdle0x417000per-frame: leaves once asked and sound 996 is done; tracks which of the scroll buttons (3-6) the cursor is over
campButtonClicked0x417108buttons 1 and 2 set out (button 1 to scene 10, group 2; button 2 to scene 13, group 3) if enough Zoombinis are chosen, else say why (a random one of three remarks); 3 leaves (to the map); 4-7 scroll while held
campMouse0x417350action 1 (down) / 2 (up): pick a Zoombini up from its slot, drop one in a slot or back, click the other things
scrollCamp, drawCamp, compactCamp, insertCampRow0x417cf1…the scrolling grid of slots
leaveCamp0x416edesaves the party that set out and frees everything
returnToCamp0x4184cdputs the Zoombinis back from the journey into the camp's slots

Setting out sends the Zoombinis walking off (sendSnoids(0x2a8, y, 0x2d), markPlacedSnoids) and plays sound 996.

Shade Tree (scene 5)

📷 Screenshot: camp2-book Shade Tree: the "book" of Zoombinis waiting there, with its scroll arrows. Capture: finish Stone Rise or Mudball Wall.

Scene / module / archive5 / decomp/bctwo.cpp / BCTWO (bctwo.mhk)
InputcampGroups[2]: buttons → camp2Clicked; the book area → campDragged
FunctionAddressRole
openCamp20x4186dcthe book of Zoombinis waiting here (kept at gameState+0x3688), the camp's Zoombinis, the party (which joins the book when it doesn't carry on), and a hint
camp2Frame0x418e62per-frame
camp2Clicked0x418fa7button 1 sets out for scene 16 (group 4) if enough are chosen, else a random one of three remarks (sounds 20084…)
campDragged0x41914ddragging Zoombinis in the book; clicking elsewhere starts the camp's "thing" there (campThingRects: ambient animations)
drawBook, scrollBook, bookEntryAt, makeBookRoom, refreshBook, dropEmptyBookRows0x419c3a…the book
addPartyToBook0x41a23badds the party after the last taken entry, else into free ones

Things to know

  • The population cap. A camp can hold 625 Zoombinis, the whole population; campPopulationFull changes the remarks.
  • Group order. Shelter Rock offers group 2 or group 3; both end at Shade Tree, which leads to group 4.
  • Unlocking. Each camp's map hotspot is open only when the "left" bits in gameState say its group was finished (gameState[0x50] & 0xf, +0x52, +0x51).
  • The camps share their input items with the isle's style: two button items and a whole-screen item, plus campAreaItems/bookAreaItems for the drag areas.