#include "defines.txt"

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//  Logic: 87 : Entrance to the end game animations, etc.
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

if (new_room) {

   program.control();

if (prev_room_no == 86) {
  load.pic(room_no);
  draw.pic(room_no);
  discard.pic(room_no);
  set.horizon(37);

  animate.obj(o1); // Dream King
  load.view(123);
  set.view(o1, 123);
  position(o1, 83, 109);
  draw(o1);

  animate.obj(o2); //Erzulie
  load.view(18);
  set.view(o2, 18);
  position(o2, 83, 80);

  position(ego, 25, 106);
  set.loop(ego, 0);
  ego_dir=0;
  program.control();

  index = 0;
  reset(done_flag);
  set(more_done_flag);
  }


if (index >= 3 &&
    index <= 18) {
  universe = 88;
  load.pic(universe);
  draw.pic(universe);
  discard.pic(universe);
  set.horizon(1);

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

  animate.obj(o1); //Villagers
  animate.obj(o2);
  animate.obj(o3);
  animate.obj(o4);
  load.view(106); //woman
  load.view(110); //man
  set.view(o1, 106);
  random(0,3,universe);
  set.loop.v(o1, universe);
  set.view(o3, 106);
  set.loop.v(o3, universe);
  set.view(o2, 110);
  set.view(o4, 110);
  position(o1, 34, 111);
  position(o2, 50, 129);
  position(o3, 98, 129);
  position(o4, 111, 111);
  draw(o1);
  draw(o2);
  draw(o3);
  draw(o4);

  position(ego, 73, 139);
  set.loop(ego, 3);

  animate.obj(o5); //CAST
  if (index == 3) {
      load.view(5);  //Horshack
      set.view(o5,5);
      }
  if (index == 4) {
      load.view(6); //Samedi
      set.view(o5, 6);
      }
  if (index == 5) {
      load.view(7); //Swampy
      set.view(o5, 7);
      }
  if (index == 6) {
      load.view(8); //Legba
      set.view(o5, 8);
      }
  if (index == 7) {
      load.view(18); //Erzulie
      set.view(o5, 18);
      }
  if (index == 8) {
      load.view(27); //Agwe
      set.view(o5, 27);
      }
  if (index == 9) {
      load.view(103); //Zombie
      set.view(o5, 103);
      }
  if (index == 10) {
      load.view(107); //DK soldier
      set.view(o5, 107);
      }
  if (index == 11) {
      load.view(111); //Orderly
      set.view(o5, 111);
      }
  if (index == 12) {
      load.view(114); //Twinkie-Dinkie
      set.view(o5, 114);
      }
  if (index == 13) {
      load.view(115); //Talking Grub
      set.view(o5, 115);
      }
  if (index == 14) {
      load.view(118); //Chththhththtuthhtuththu
      set.view(o5, 118);
      }
  if (index == 15) {
      load.view(120); //Inmate
      set.view(o5, 120);
      }
  if (index == 16) {
      load.view(124); //Nursie
      set.view(o5, 124);
      }
  if (index == 17) {
      load.view(123); //Dream King
      set.view(o5, 123);
      }
  if (index == 18) {
      load.view(9); //Mama Hoodoo
      set.view(o5, 9);
      }

  animate.obj(o6); //POOF!
  load.view(4);
  set.view(o6, 4);

  position(o6, 68,112);

  position(o5, 68, 111);
  draw(o5);


  timer1_a = 0;
  }

if (index == 19) { //MAMA LEAVES ON HER UFO

    universe = 3;
    load.pic(universe);
    draw.pic(universe);
    discard.pic(universe);

    load.view(0);
    set.view(ego, 0);
    set.loop(ego, 1);
    position(ego, 80,130);

    animate.obj(o1); //Mama Houngan
    load.view(9);
    set.view(o1,9);
    position(o1, 36,128);
    draw(o1);
    }

if (index == 20) { //MAMA LEAVING

   universe = 95;
   load.pic(universe);
   draw.pic(universe);
   discard.pic(universe);

   position(ego, 80,130);

   animate.obj(o1); //Mama's UFO
   load.view(28);
   set.view(o1, 28);
   position(o1, 26,128);
   set.priority(o1, 15);
   ignore.objs(o1);
   draw(o1);
   }

if (index == 22) {
    universe = 94;
    load.pic(universe);
    draw.pic(universe);
    discard.pic(universe);

    animate.obj(o1); //Mama's UFO
    load.view(29);
    set.view(o1, 29);
    position(o1, 80,80);
    set.loop(o1,0);
    draw(o1);

    timer1_a = 0;
    }

if (index == 23) {
    universe = 93;
    load.pic(universe);
    draw.pic(universe);
    discard.pic(universe);

    animate.obj(o1); //Mama's UFO
    load.view(29);
    set.view(o1, 29);
    position(o1, 80,80);
    set.loop(o1,0);
    draw(o1);

    timer1_a = 0;
    }

if (index == 24) {
    universe = 92;
    load.pic(universe);
    draw.pic(universe);
    discard.pic(universe);

    animate.obj(o1); //Mama's UFO
    load.view(29);
    set.view(o1, 29);
    position(o1, 80,80);
    set.loop(o1,0);
    draw(o1);

    timer1_a = 0;
    }

if (index == 25) {
    universe = 30;
    load.pic(universe);
    draw.pic(universe);
    discard.pic(universe);

    animate.obj(o1); //VG
    load.view(0);
    load.view(1);
    set.view(o1, 1);
    position(o1, 38, 44);
    draw(o1);
    }


// Check what room the player came from and position them on the
// screen accordingly here, e.g:
// if (prev_room_no == 5) {
//   position(ego,12,140);
// }
 if (index <=21) {
  draw(ego);
  }

    load.sound(69);
  sound(69, sound_flag);


  show.pic();
}



if (index == 0 && more_done_flag) {
    print("DK: \"NO!  I CANNOT BE DEFEATED!!!\"");
    print("VG: \"Hey, you!  This isn't your world!\"");
    print("DK: \"But I was so strong!  I thought...  I could take what I wanted...\"");
    move.obj(o1, 83, 160, 1, done_flag);
    reset(more_done_flag);
    }

if (index == 1 && more_done_flag) {
    erase(o1);
    draw(o2);
    print("ER: \"Ah!  I'm home again!  Thank you, Voodoo Girl!\"");
    print("VG: \"Wow!  I guess it's a happy ending after all!\"");
    if (use_poison > 0) {
        print("ER: \"Oh, my, but you tried to poison people!\"");
        print("VG: \"Uh, you don't say...\"");
        print("ER: \"I'm afraid that's going to cost you.\"");
        if (score > use_poison) {
            score -= use_poison;
            }
        else {
            score = 0;
            }
        }

    if (score == 75) {
        print("ER: \"Yes, it is, indeed, the happiest of endings for you.\"");
        }
    else {
        print("ER: \"It seems that you left some things unfinished...  I'm afraid it is not the happiest of endings possible.\"");
        }
    set(done_flag);
    reset(more_done_flag);
    }

if (index == 2 && more_done_flag) {
    if (score == 75) {
        index = 3;
        }
    if (score < 75 &&
        score > 72) {
        index = 3;
        }
    if (score <= 72) {
        index = 25;
        }
    new.room(87);
    }

if (index >= 3 &&
    index <= 17) {
    if (timer1_a == 40) {
        erase(o5);
        draw(o6);
        end.of.loop(o6, really_done_flag);
        timer1_a++;
        }
    else {
        timer1_a++;
        }
    if (really_done_flag) {
        reset(really_done_flag);
        index++;
        new.room(87);
        }
    }

if (index == 18) {
    if (score == 75) {
        print("Mama: \"Well, I've finished making my recipe.  Who wants to come see the lift-off?\"");
        print("VG: \"Liftoff?!\"");
        print("Mama: \"Heeheehee!  Just come to my place and see!\"");
        index = 19;
        new.room(87);
        }
    else {
        index = 50;
        new.room(87);
        }
    }

if (index == 19) {
    print("Mama: \"Well, it's been nice staying here on Voodoo Island, but it's time for me to return home.\"");
    print("VG: \"Oh...  Louisiana?\"");
    print("Mama: \"No.\"");
    print("VG: \"Africa?\"");
    print("Mama: \"Huh, no...  Alpha Centauri.\"");
    print("VG: \"Wha!\"");
    print("Mama: \"You see, Voodoo Girl, I'm actually an alien.  I needed the Golden Cauldron to create fuel for my space ship.\"");
    print("VG: \"You know, that makes a twisted kind of sense, actually.\"");
    print("Mama: \"Good-bye, take care!\"");
    erase(o1);
    shake.screen(15);
    index++;
    new.room(87);
    }

if (index == 20 && more_done_flag) {
    move.obj(o1, 140, 40, 2, done_flag);
    reset(more_done_flag);
    }

if (index == 21) {
    index++;
    new.room(87);
    }

if (index == 22) {
    if (timer1_a == 0) {
        universe = 3;

        }
    if (timer1_a == 30) {
        universe = 5;

        }
    if (timer1_a == 70) {
        universe = 7;

        }
    if (timer1_a == 120) {
        universe = 1;

        }
    if (timer1_a == 180) {
        index++;
        new.room(87);
        }
    set.dir(o1, universe);
    timer1_a++;
    }

if (index == 23) {
    if (timer1_a == 0) {
        universe = 3;

        }
    if (timer1_a == 30) {
        universe = 5;

        }
    if (timer1_a == 70) {
        universe = 7;

        }
    if (timer1_a == 120) {
        universe = 1;

        }
    if (timer1_a == 180) {
        index++;
        new.room(87);
        }
    set.dir(o1, universe);
    timer1_a++;
    }

if (index == 24) {
    if (timer1_a == 0) {
        universe = 3;

        }
    if (timer1_a == 30) {
        universe = 5;

        }
    if (timer1_a == 70) {
        universe = 7;

        }
    if (timer1_a == 120) {
        universe = 1;

        }
    if (timer1_a == 180) {
        index++;
        new.room(87);
        }
    set.dir(o1, universe);
    timer1_a++;
    }

if (index == 25 && more_done_flag) {
    reset(more_done_flag);
    move.obj(o1, 38, 128, 2, done_flag);
    }

if (index == 26) {
    set.view(o1,0);
    random(0,3, universe);
    set.loop.v(o1, universe);
    display(20, 8, "THE END");
    }

if (done_flag) {
    reset(done_flag);
    set(more_done_flag);
    index++;
    }

if (sound_flag) {
    sound(69, sound_flag);
    }

return();