// ****************************************************************************
//
// Logic 249: Map B3
//
// ****************************************************************************

#include "defines.txt"

if (new_room) {
  load.pic(room_no);
  draw.pic(room_no);
  discard.pic(room_no);
  set.horizon(0);

//  load.view(4);
//  add.to.pic(4,0,1,1,12,4,4);
//  add.to.pic(4,1,2,5,12,4,4);

  if (prev_room_no == 2) {
    load.view(8);
    set.view(ego,8); set.loop(ego,3);
    position(ego,77,103);
    ego_dir = 1;
    stop.motion(ego); player.control();
  }

  if (prev_room_no == 3) {
    load.view(8);
    set.view(ego,8); set.loop(ego,3);
    position(ego,134,137); ego_dir = 1;
    stop.motion(ego); player.control();
  }

  if (prev_room_no == 250) {
    v254 = 0; v255 = 223;
    reposition(ego,v254,v255);
  }
  reset(f16);
  draw(ego);
  show.pic();
  set.priority(ego,4);
}

set.text.attribute(0,15);
display(0,17,"B3");
set.text.attribute(15,0);

if ((said("drive","rol") || said("use","car") || said("move","car") || said("park","rol") || said("exit","rol"))) {
  if (posn(ego,73,91,78,114)) {
    new.room(2);
  }
  else {
    if (posn(ego,130,126,150,150)) {
      new.room(3);
    }
    else {
      print("No need to park here.");
    }
  }
}

if (f3) {
  load.view(1);
  set.view(ego,1);
  set.cel(ego,2);
  stop.cycling(ego);
  stop.motion(ego);
  death_type = 2;
}

if (said("look")) {
  print("You're driving in the residential area of Memory.");
}

if (ego_edge_code == horizon_edge) {  // ego touching horizon
  new.room(250);
}

if (ego_edge_code == left_edge) {     // ego touching left edge of screen
  new.room(251);
}

return();