// ****************************************************************************
//
// Logic 6: Cafe Exterior
//
// ****************************************************************************

#include "defines.txt"
#define door o1
#define lever o2
#define cdoor o3

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

  if (prev_room_no == 252) {
   position(ego,12,156); set(f255);
   reset(f254);
   reset(f245);
   reset(f244);
   reset(f243);
  }

  if (prev_room_no == 22) {
    position(ego,131,92);
  }

  draw(ego);
  show.pic();

  animate.obj(cdoor);
  load.view(38);
  set.view(cdoor,38);
  set.loop(cdoor,5);
  stop.cycling(cdoor);
  position(cdoor,123,91);
  draw(cdoor);

  animate.obj(door);
  load.view(3);
  set.view(door,3);
  set.cel(door,1);
  set.priority(door,13);
  stop.cycling(door);
  ignore.objs(door);
  position(door,8,140);
  draw(door);

  animate.obj(lever);
  load.view(18);
  set.view(lever,18);
  set.loop(lever,1);
  set.cel(lever,0);
  stop.cycling(lever);
  set.priority(lever,13);
  ignore.objs(lever);
  position(lever,66,127);
  draw(lever);

  load.view(0);
  set.view(ego,0);

}

if (f255) {
  set.loop(door,1); ego_dir = 0;
  erase(ego); program.control();
}
else {
  set.loop(door,0);
  if (!f254) {
    player.control();
  }
}

if (f245) {
  set.cel(cdoor,1);
  ignore.objs(cdoor);
}
else {
  set.cel(cdoor,0);
  observe.objs(cdoor);
}

if (f253) {
  set.cel(door,0);
}
else {
  set.cel(door,1);
}

if (posn(ego,0,132,80,149)) { //behind garbage truck
  set.priority(ego,12);
}
else {
  if (posn(ego,83,120,120,131)) {
    set.priority(ego,12);
  }
  else {release.priority(ego);}
}

if ((said("open","door") || said("open","truck"))) {
  if (posn(ego,0,156,32,167)) {
    toggle(f253);
  }
  else {
    if (posn(ego,118,92,151,96)) {
      toggle(f245);
    }
    else {
      print("You're not close enough.");
    }
  }
}

if (said("get in","rol")) {
  if (posn(ego,0,156,32,167)) {
    if (f253) {
      draw(ego);
      ego_dir = 0; toggle(f255);
    }
    else {
      print("The door's closed.");
    }
  }
  else {
    print("You're not close enough.");
  }
}

if ((said("drive","rol") || said("use","car") || said("move","car"))) {
  if ((f255) && (!f253)) {
    new.room(252);
  }
  else {
    print("Maybe you should be in some kind of vehicle first.");
  }
}

if (said("look","truck")) {
  print("It's your trusty garbage truck, waiting to transport you to wherever you desire.");
}

if (said("look","back truck")) {
  print("You're not interested in the garbage you've collected right now.");
}

if (said("look","lever")) {
  print("The lever on the back of your truck operates the trash compactor.");
}

if (said("look","tree")) {
  print("The tree's growth looks to have been impeded by the building.  Notice how its branches suffer underneath the overhang.");
}

if (said("look","window")) {
  print("You can watch the customers eating inside.");
}

if (said("look","sidewalk")) {
  print("Sidewalks... they keep us from muddying our feet, and their evenness lessens our chances of stumbling.");
}

if (said("look","street")) {
  print("The street is staying where it is.");
}

if (f3) {
  new.room(22);
}

if ((said("look") || said("look","cafe"))) {
  print("This is Cheryl's Cafe, the only cafe in town.");
}

return();