Advertisement
Guest User

distraction room script

a guest
Oct 27th, 2015
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. // room script file
  2.  
  3. enum ClerkState {
  4.   eStateBored,
  5.   eStateGoingToDog,
  6.   eStateTellingDogToShutUp,
  7.   eStateReturningToDesk
  8. };
  9.  
  10. ClerkState clerkstate = eStateBored;
  11. int dogbarking = -1;
  12. Overlay *shutup;
  13.  
  14. function room_Load()
  15. {
  16.   cClerk.FaceLocation(cClerk.x, cClerk.y - 10);
  17.   cDog.ManualScaling = true;
  18.   cDog.Scaling = 50;
  19. }
  20.  
  21. function repeatedly_execute_always() {
  22.  
  23.   // handle dog's barking
  24.   if (dogbarking != -1) {
  25.     dogbarking--;
  26.     if (dogbarking == 0) {
  27.       cDog.SayBackground("BARK!");
  28.       // first bark makes clerk walk over
  29.       if (clerkstate == eStateBored) {
  30.         clerkstate = eStateGoingToDog;
  31.         cClerk.SayBackground("Goddamn dog!");
  32.         cClerk.Walk(cDog.x - 5, cDog.y + 15);
  33.       }
  34.       // next bark two seconds from now
  35.       dogbarking = 80;
  36.     }
  37.   }
  38.  
  39.   // clerk behavior
  40.  
  41.   // arrived at dog
  42.   if (clerkstate == eStateGoingToDog && !cClerk.Moving) {
  43.     clerkstate = eStateTellingDogToShutUp;
  44.     cClerk.FaceCharacter(cDog, eNoBlock);
  45.     shutup = cClerk.SayBackground("Shut up!");
  46.     // dog stops barking
  47.     dogbarking = -1;
  48.   }
  49.   // done telling dog to "Shut up"
  50.   if (clerkstate == eStateTellingDogToShutUp && !shutup.Valid) {
  51.     clerkstate = eStateReturningToDesk;
  52.     cClerk.Walk(110, 225);
  53.   }
  54.   // arrived at desk
  55.   if (clerkstate == eStateReturningToDesk && !cClerk.Moving) {
  56.     cClerk.FaceLocation(cClerk.x, cClerk.y - 10, eNoBlock);
  57.     clerkstate = eStateBored;
  58.   }
  59. }
  60.  
  61. void on_call(int p) {
  62.   // talk to cClerk
  63.   if (p == 1) {
  64.     if (clerkstate == eStateBored) dClerk1.Start();
  65.     else player.Say("She's busy.");
  66.   }
  67.   // talk to dog
  68.   if (p == 2) {
  69.     if (clerkstate != eStateBored) {
  70.       player.SayBackground("Not now.");
  71.       return;
  72.     }
  73.     // make dog bark, set stuff in motion
  74.     player.Walk(cDog.x, cDog.y + 10, eBlock);
  75.     player.FaceCharacter(cDog);
  76.     player.Say("Hiya, doggie! Want to go for a walk?");
  77.     // 20 frames till first bark
  78.     dogbarking = 20;
  79.   }
  80. }
  81.  
  82. function oBook_Interact()
  83. {
  84.   if (Region.GetAtRoomXY(player.x, player.y) != region[1]) {
  85.     player.Say("I need to get closer.");
  86.     return;
  87.   }
  88.   if (clerkstate == eStateBored || clerkstate == eStateReturningToDesk) {
  89.     cClerk.SayBackground("Hey, you can't have that!");
  90.     return;
  91.   }
  92.   player.SayBackground("YOINK");
  93.   oBook.Visible = false;
  94. }
  95.  
  96. function room_FirstLoad()
  97. {
  98.  
  99. }
  100.  
  101. function room_AfterFadeIn()
  102. {
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement