the cutting room mirror

295

This article has a talk page!
view on tcrf.net

This is a sub-page of Ultima Underworld: The Stygian Abyss (DOS)/Conversations.

// cnvdasm - ultima underworld conversation script disassembler / decompiler
// 
// loading game strings
// 
// conversation #295
// string block 0x0f27 (3879), critter #39, mage
// 
// converting to graph
// searching functions
// replacing expression opcodes
// folding expressions
// adding control structures
// fixing up functions
extern int private[31];

void main() {

   private[1] = 0;
   func_0293();
   func_0012();
} // end func

void func_0012() {

   private[0] = 1;
} // end func

void func_0020() {

   int locals[1];

   if ( (((npc_goal == 5 || npc_goal == 6) || npc_goal == 9) && npc_gtarg == 1 || npc_attitude == 0) ) {

      locals[1] = 0;
   } else {

      locals[1] = 1;
   } // end if

   return locals[1];
} // end func

void func_0063() {

   npc_goal = 6;
   func_0012();
} // end func

void func_0072() {

   npc_goal = 1;
   func_0012();
} // end func

void func_0081() {

   npc_gtarg = 1;
   npc_goal = 5;
   npc_attitude = 1;
   func_0012();
} // end func

void func_009a() {

   npc_attitude = 6;
} // end func

void func_00a7() {

   npc_attitude = param1[0]global[0];
   func_0012();
} // end func

void func_00b8() {

   npc_attitude = 2;
   func_0012();
} // end func

void func_00c7() {

   npc_attitude = 1;
   func_0012();
} // end func

void func_00d6() {

   func_0012();
} // end func

void func_00e0() {

   param1[1] = game_days;
   param1[2] = game_mins;
} // end func

void func_00fc() {

   int locals[4];

   locals[2] = game_days - param2[1];
   locals[3] = game_mins - param2[2];
   if ( locals[3] < 0 ) {

      locals[3] = locals[3] + 1440;
      locals[2] = locals[2] - 1;
   } // end if

   if ( locals[2] >= param1[1] && locals[3] >= param1[2] ) {

      locals[1] = 1;
   } else {

      locals[1] = 0;
   } // end if

   return locals[1];
} // end func

void func_0185() {

   param1[1] = game_days - param3[1];
   param1[2] = game_mins - param3[2];
   if ( param1[2] < 0 ) {

      param1[2] = param1[2] + 1440;
      param1[1] = param1[1] - 1;
   } // end if

   param1[1] = param2[1] - param1[1];
   param1[2] = param2[2] - param1[2];
   if ( param1[2] < 0 ) {

      param1[2] = param1[2] + 1440;
      param1[1] = param1[1] - 1;
   } // end if

} // end func

void func_0239() {

   param1[1] = game_days - param2[1];
   param1[2] = game_mins - param2[2];
   if ( param1[2] < 0 ) {

      param1[2] = param1[2] + 1440;
      param1[1] = param1[1] - 1;
   } // end if

} // end func

void func_0293() {

   int locals[4];

   if ( private[0] == 1 ) {

      func_00c7();
   } // end if

   locals[2] = 0;
   while ( !locals[2] ) {

      locals[1] = random( 1, &locals[3] );
      locals[3] = 4;
      locals[4] = locals[1];
      if ( 1 == locals[4] ) {

         if ( global[12][0] ) {

         } // end if

         say( "Out of my way, benighted adventurer!" );
         global[12][0] = 1;
         global[17] = global[17] + 1;
      } else {

         if ( 2 == locals[4] ) {

            if ( global[12][0] ) {

            } // end if

            say( "Excuse me, please, I am in haste!" );
            global[12][0] = 1;
            global[17] = global[17] + 1;
         } else {

            if ( 3 == locals[4] ) {

               if ( global[12][0] ) {

               } // end if

               say( "Sorry!  No time to talk!" );
               global[12][0] = 1;
               global[17] = global[17] + 1;
            } else {

               if ( 4 == locals[4] ) {

                  if ( global[12][0] ) {

                  } // end if

                  say( "What is it?  I haven't time to chat!" );
                  global[12][0] = 1;
                  global[17] = global[17] + 1;
               } else {

               } // while

            } // end if

         } // end if

      } // end if

   } // end if

} // end func

void func_0373() {

   int locals[22];

   locals[1] = 5; // "Aroint thee, longbeard!"
   locals[2] = 6; // "I beg thy pardon, learned sir."
   locals[3] = 7; // "Good riddance!"
   locals[4] = 0; // ""
   locals[22] = babl_menu( 0, &locals[1] );
   switch ( locals[22] ) {

   case 1:

      func_0435();
   break;

   case 2:

      func_03cc();
   break;

   case 3:

      func_00b8();
   break;

   } // end switch

} // end func

void func_03cc() {

   int locals[22];

   say( "I have no time for thee.  Speak to Morlock, the Guildmaster." );
   locals[1] = 9; // "Where is the Guildmaster?"
   locals[2] = 10; // "What's your hurry?"
   locals[3] = 11; // "All right.  Be that way."
   locals[4] = 0; // ""
   locals[22] = babl_menu( 0, &locals[1] );
   switch ( locals[22] ) {

   case 1:

      func_0428();
   break;

   case 2:

      func_0442();
   break;

   case 3:

      func_00b8();
   break;

   } // end switch

} // end func

void func_0428() {

   say( "Pass He Who Dwells on the Threshold.  Now excuse me!" );
   func_00c7();
} // end func

void func_0435() {

   say( "Ah, perhaps I do have time to squash an annoyance like yourself." );
   func_0081();
} // end func

void func_0442() {

   int locals[4];

   if ( global[11] == 10 ) {

      say( "I know nothing." );
   } else {

      locals[2] = 0;
   } // end if

   if ( !locals[2] ) {

      locals[1] = random( 1, &locals[3] );
      locals[3] = 10;
      locals[4] = locals[1];
      if ( 1 == locals[4] ) {

         if ( global[0][0] ) {

         } // end if

         say( "A Troll has been sighted, carrying a virgin for sacrifice!" );
         global[0][0] = 1;
         global[11] = global[11] + 1;
      } else {

         if ( 2 == locals[4] ) {

            if ( global[0][0] ) {

            } // end if

            say( "Magical fluxes suggest that some disaster threatens!" );
            global[0][0] = 1;
            global[11] = global[11] + 1;
         } else {

            if ( 3 == locals[4] ) {

               if ( global[0][0] ) {

               } // end if

               say( "Some mysterious force is draining away all the magic on a deep level of the Abyss!" );
               global[0][0] = 1;
               global[11] = global[11] + 1;
            } else {

               if ( 4 == locals[4] ) {

                  if ( global[0][0] ) {

                  } // end if

                  say( "Oh, talk to a door if thou wishest to learn!" );
                  global[0][0] = 1;
                  global[11] = global[11] + 1;
               } else {

                  if ( 5 == locals[4] ) {

                     if ( global[0][0] ) {

                     } // end if

                     say( "Speak to Dr. Owl!  He may help thee!" );
                     global[0][0] = 1;
                     global[11] = global[11] + 1;
                  } else {

                     if ( 6 == locals[4] ) {

                        if ( global[0][0] ) {

                        } // end if

                        say( "There is disturbance in the aethyr!  Travellers from other worlds may be about!" );
                        global[0][0] = 1;
                        global[11] = global[11] + 1;
                     } else {

                        if ( 7 == locals[4] ) {

                           if ( global[0][0] ) {

                           } // end if

                           say( "The Mad Mage is causing troubles again!" );
                           global[0][0] = 1;
                           global[11] = global[11] + 1;
                        } else {

                           if ( 8 == locals[4] ) {

                              if ( global[0][0] ) {

                              } // end if

                              say( "Garamon is dead!" );
                              global[0][0] = 1;
                              global[11] = global[11] + 1;
                           } else {

                              if ( 9 == locals[4] ) {

                                 if ( global[0][0] ) {

                                 } // end if

                                 say( "I must find a privy!" );
                                 global[0][0] = 1;
                                 global[11] = global[11] + 1;
                              } else {

                                 if ( 10 == locals[4] ) {

                                    if ( global[0][0] ) {

                                    } // end if

                                    say( "Be Just and Fear Not!" );
                                    global[0][0] = 1;
                                    global[11] = global[11] + 1;
                                 } else {

                                 } else {

                                 } // end if

                              } // end if

                           } // end if

                        } // end if

                     } // end if

                  } // end if

               } // end if

            } // end if

         } // end if

      } // end if

   } // end if

} // end func