# Room 25: Beach at River Delta

This is a coastal scene where a river from the east meets the blue ocean. The room features animated water effects showing waves near the river's mouth and along the beach. Players can look at the brook, grass, and surrounding area. The primary interactive element is drinking from the river, which triggers a swimming animation sequence when the player is in normal form and positioned correctly near the water. Entry positions vary based on the player's current transformation state.

## Look Description

"A river, coming from the east, spills into the blue ocean before you. A lonely beach edges the ocean. From atop the bluff, a lovely meadow stretches eastward."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look /brook` | "The cold water of the river contrasts sharply with the warmer ocean water as the two converge." |
| TODO | Look | `look /grass` | "Eastward, you see a pretty green meadow." |
| TODO | Look | `look [around]` / `look [room]` / `look [beach]` | "A river, coming from the east, spills into the blue ocean before you. A lonely beach edges the ocean. From atop the bluff, a lovely meadow stretches eastward." |
| TODO | Action | `drink [water]` / `get drink` | (If in water zone in normal form: "Ahhh! It tastes good!" with swimming animation. If not in normal form: "You're not close enough." If in water zone but not normal form: "You're not close enough.") |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | riverActions | Player types `drink water` while in water zone and in normal form | Plays drinking animation: player switches to swimming view (21), pauses with message "Ahhh! It tastes good!", plays recovery animation, returns to normal walking view. If player is not in normal form (global105 != 0), prints "You're not close enough." |
| TODO | Background | waveActions | Continuous on room entry | Animates wave props (wave1, wave2) in sequence: cycles through cel frames, hides and shows waves in loop for continuous water effect |

## Technical Notes

- **Room Number**: 25
- **Picture**: 25
- **Region**: 504, 501, 503, 506 (applied via setRegions)
- **Exits**: North→19 (bluff/meadow), South→1, East→26, West→31
- **Music**: (Sound 25 - if applicable)
- **Overlay**: Picture 125 shown when global100 is true

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global100` | `true`, `false` | Controls whether overlay picture 125 is displayed |
| `global105` | `0`, `1`, `2`, `3`, `4` | Player transformation state (0 = normal form, 1-4 = various transformed states like swimming, frog, etc.) |
| `global106` | Various | Secondary transformation tracking variable |
| `gEgoViewer` | Script or `0` | Stores player's current viewer script before entering water |
| `local1` | Bitmask | Control area detection for water zone |

### Additional Technical Details

- Synonyms defined: `brook` = `brook` = `brook`
- Wave Props: wave1 (position 177, 74), wave2 (position 164, 116) - animated water effects at river mouth
- Additional Props: newProp (position 254, 182), newProp_2 (position 226, 164) - extra water animations
- Player entry positions are adjusted based on global105 (transformation state) and gPrevRoomNum
- Player must be in normal form (global105 = 0) to drink from the river
- Player must be within coordinates 185-319 (x) and 150-180 (y) to interact with water
- The riverActions script saves the current player script (gGEgoScript), sets a temporary script, performs the drinking animation, then restores the original script and viewer
- Control area bits checked: $0008, $0800, $0002, $0200 - various water/terrain detection flags
