# Room 001: Beach (Starting Area) ## Overview - **Room Number**: 1 - **Script**: `rm1.sc` - **Picture**: 1 (with overlay 101 if `global100` is set) - **Region**: Beach - **Regions Applied**: 503 (BeachReg), 501, 504, 506 ### Exits - **North**: Room 25 - **South**: Room 7 (Fisherman's shack exterior) - **East**: Room 2 - **West**: Room 31 - **Horizon**: 100 (player cannot walk above this Y coordinate) ### State Dependencies - `global105`: Controls dolphin riding state and player positioning - `0`: Normal beach access from various rooms - `1-4`: Different horizontal positions when entering from north/south - `14`: Dolphin ride arrival (special entrance) - `global100`: If set, overlays picture 101 (alternate weather/time?) - `global205`: Cleared when dolphin ride completes ## Visual Elements ### Animated Waves (Background Effects) Three animated wave Props cycle continuously using `waveActions` script. #### wave1 - **Type**: Prop - **Position**: (203, 75) - **View**: 665 - **Loop**: 0 - **Animation**: Cycles through frames, then hides, cycles next wave - **Priority**: 0 (background layer) - **Behavior**: Creates continuous wave animation effect #### wave2 - **Type**: Prop - **Position**: (191, 115) - **View**: 665 - **Loop**: 1 - **Animation**: Cycles through frames - **Priority**: 0 #### wave3 - **Type**: Prop - **Position**: (191, 188) - **View**: 665 - **Loop**: 2 - **Animation**: Cycles through frames - **Priority**: 0 ### Sea Spray / Mist - **Type**: Prop (`newProp`) - **Position**: (69, 61) - **View**: 650 - **Loop**: 1 - **Cel**: 1 - **Animation**: Forward cycle (continuous) - **Purpose**: Ambient atmospheric effect ## Player Positioning Logic The room uses complex positioning based on `global105` state and `gPrevRoomNum`: ### Default State (global105 = 0) - **From South (Room 7)**: - If x > 128: Position at (300, 187) - Else: Position at (225, 187) - **From North (Room 25)**: Position at x=225, y=horizon+yStep+1 - **New Game (Room 0)**: Position at (220, 135) - **From East (Room 2)**: - If y ≤ horizon: x=318, y=horizon+yStep+1 - Else: x=318, keep current y ### Dolphin State (global105 = 14) - Special arrival from dolphin ride - Sets `global205 = 0` - Changes player view to 312 (dolphin riding animation) - Initiates `rideDolphin` script ## Interactions ### Look Commands (Parser) #### Look at grass - **Command**: `look grass` / `look at grass` - **Text**: `Print 1 0` (message resource pending extraction) - **Logic**: Direct text display, no conditions #### Look at brook - **Command**: `look brook` / `look at brook` - **Text**: `Print 1 1` (message resource pending extraction) - **Logic**: Direct text display, no conditions #### Look around room - **Command**: `look` / `look around` / `look room` - **Text**: `Print 1 2` (message resource pending extraction) - **Logic**: General room description ### Region-Based Interactions (via BeachReg - Script 503) The following interactions are inherited from the BeachReg region: #### Look at ocean/water - **Command**: `look ocean` / `look water` - **Conditions**: - If `gEgo view != 2` (not swimming): Shows one message - If `gEgo view == 2` (swimming): Shows different message - **Text**: `Print 503 2` or context-specific messages #### Look at fish - **Command**: `look fish` - **Conditions**: - If player has item 24 (fish in inventory): Shows fish item - Else: Shows default message - **Text**: `Print 503 3` or item display #### Drink water - **Command**: `drink` / `get drink` - **Conditions**: - Must be in swim view (view 2) - Must be near water (control color check) - **Effect**: Plays drinking animation (view 21) - **Script**: `drinking` - 4-state animation sequence #### Bathe/Dive/Wade in ocean - **Command**: `bathe ocean` / `dive ocean` / `wade ocean` - **Conditions**: - Only available when `global105 == 4` (dolphin accessible) - **Response**: Context-aware messaging ## Scripts ### rideDolphin **Purpose**: Handles player arrival via dolphin ride **Trigger**: `global105 == 14` on room entry **Sequence**: 1. State 1: Disable input (`proc0_8`), move player to (66, 136) 2. State 2: - Create dolphin Actor - Set `global105 = 4` - Restore player viewer - Position dolphin at player position minus 5 pixels Y - Set dolphin view 311, loop 2 - Wait 4 seconds 3. State 3: - Accelerate dolphin (xStep 4, yStep 3) - Change to loop 5 - Move dolphin off-screen to (-10, 100) - Re-enable input (`proc0_9`) - Clear `global205` 4. State 4: - Dispose dolphin Actor - Clear player script **State Changes**: - Sets `global105 = 4` - Clears `global205 = 0` ### waveActions **Purpose**: Manages continuous wave animation cycle **Sequence**: 1. State 0: Initialize - Create static wave Views from wave Prop positions, add to picture 2. State 1: Show next wave Prop, animate to end 3. State 2: Hide wave, advance to next wave in list, loop back to State 1 **Behavior**: Infinite loop cycling through wave1 → wave2 → wave3 → wave1... ## Point-and-Click Adaptation Notes ### Automated Behaviors - **Walking**: Player clicks anywhere on walkable area, character auto-walks - **Horizon**: Enforced automatically; player cannot walk above y=100 - **Exits**: Walking off screen edges transitions to connected rooms ### Cursor Mappings | Original Command | Point-and-Click Equivalent | |------------------|---------------------------| | `look grass` | Eye cursor on grass patch | | `look brook` | Eye cursor on water/brook area | | `look around` | Eye cursor on background/scenery | | `drink water` | Hand cursor on water (when near) | | `bathe ocean` | Hand cursor on ocean (when dolphin available) | ### Context-Sensitive Actions - **Dolphin interaction**: Only show "ride" cursor when `global105 == 4` - **Swim view**: Automatically switch to swimming animation (view 2) when entering water ### Visual Feedback - Waves animate continuously (no player interaction needed) - Sea spray provides ambient movement - Dolphin arrival is a scripted sequence (no player input during animation) ## Unresolved Questions 1. What is `global100`? (Appears to be weather or time of day flag) 2. What are regions 501, 504, 506? (Need to examine those scripts) 3. What do messages 1 0, 1 1, 1 2 say? (Need text resource extraction) 4. What triggers `global105 = 14` state? (Dolphin ride must be initiated elsewhere) ## Dependencies ### Global Variables Used - `global100`: Weather/time flag - `global101`: Room visited flag (set to 0) - `global105`: Beach state / dolphin access - `global205`: Cleared on dolphin arrival ### Inventory Items Referenced - Item 17: Fishing pole (via region) - Item 24: Fish (via region) ### Views Referenced - View 311: Dolphin animation - View 312: Player on dolphin - View 665: Wave animations - View 650: Sea spray ### Rooms Connected - North: 25 - South: 7 - East: 2 - West: 31 ## Critical Path Notes This room is part of the starting beach area. It serves as: 1. **Entry point** from various directions 2. **Dolphin transportation hub** (when `global105 == 4`) 3. **Transition zone** between beach, forest, and fisherman's shack The dolphin ride appears to be a significant transportation mechanic connecting distant areas of the game.