// ****************************************************************************
//
// Logic 4: Church 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(88);

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

  if (prev_room_no == 24) {
    position(ego,78,92);
  }

  draw(ego);
  show.pic();

  animate.obj(cdoor);
  load.view(38);
  set.view(cdoor,38);
  set.loop(cdoor,4);
  stop.cycling(cdoor);
  position(cdoor,71,92);
  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("look","sign")) {
  print("The sign reads, 'Sun. 10:00.'  Church time, I guess.");
}

if (said("look","window")) {
  print("The stained glass windows are very colorful.  They don't let you peak through them very well, however.");
}

if (said("look","bush")) {
  print("The bushes are green... and leafy.  They're for decoration mostly.");
}

if ((said("open","door") || said("open","truck"))) {
  if (posn(ego,0,156,32,167)) {
    toggle(f253);
  }
  else {
    if (posn(ego,64,92,94,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(251);
  }
  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 (ego_edge_code == 1) {
  new.room(24);
}

if ((said("look") || said("look","church"))) {
  print("This is the as-of-yet unnamed church.");
}

return();