Ignore:
Timestamp:
11/17/10 21:44:05 (9 years ago)
Author:
technomage
Message:

Ticket #269: Patch by Technomage.

  • Working prototype of the redesigned DialogueEngine? for the upcoming Techdemo2 release; major redesign of the existing DialogueEngine? and YAML dialogue file syntax.
  • Moved the redesigned DialogueEngine? class to the more descriptive dialogueengine.py module; the DialogueEngine? is now a singleton object and provides all functionality through class methods and attributes, and thus should not be instantiated
  • Abstracted the data structures used to store dialogue data away from the YAML data structures; the relevant classes are stored in the dialogue.py module
  • Abstracted the dialogue commands/actions from the DialogueEngine? code to make modifications and maintenance of dialogue logic easier; the relevant classes are stored in the dialogueactions.py module
  • The PyYAML loader has been replaced with a more robust YamlDialogueParser? class (see the dialogueparsers.py module) that interfaces with the new dialogue data structure classes and supports the new YAML dialogue file syntax; an OldYamlDialogueParser? class is provided to support reading the old Techdemo1 syntax
  • Removed the existing dialogue validator; runtime dialogue validation is not yet implemented
  • Added the convert_dialogue script, which converts dialogue files in the old Techdemo1 format to the new format; all existing dialogue files have been converted to work with the new parser
  • Added two support modules for the new classes and script: ordereddict.py, which provides a Python 2.7-like OrderedDict? class for Python versions 2.4-2.6; optionparser.py, which is a simplified command-line option parser for writing scripts as an alternative to argparse and optparse
  • Updated the dialogue_demo.py script to work with the new DialogueEngine?
  • fixes[s:trac, t:269]
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        44.settings 
        55Thumbs.db 
         6 
         7.externalToolBuilders 
         8 
         9.cproject 
  • trunk/game/dialogue/innkeeper.yaml

    r570 r668  
    1313#   You should have received a copy of the GNU General Public License 
    1414#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>. 
    15  
    16 #   NOTE:  This is not a "real" dialogue file, it is meant to be a template for 
    17 #   Any generic fortified mall (techdemo location) denizen 
    1815--- 
    19 NPC: Jacob 
    20 AVATAR: gui/icons/innkeeper.png 
    21 START: main_dialog 
    22  
     16NPC_NAME: Jacob 
     17AVATAR_PATH: gui/icons/innkeeper.png 
     18START_SECTION: main_dialog 
    2319SECTIONS: 
    24     main_dialog: 
    25         - say: "Hi there, Stranger!  Welcome to Jacob's.  How can I help you?" 
    26         - meet: jacob 
    27         - responses: 
    28             - 
    29               - "I'd like a drink." 
    30               - buy_drink 
    31             - 
    32               - "Nice place you got here.  What's your story?" 
    33               - inn_background 
    34             - 
    35               - "Who are those two women over there?" 
    36               - loose_women 
    37             -  
    38               - "I'm the bastard that's going to put you out of business!" 
    39               - ungratitude 
    40               - quest['beer'].getValue('beer_quality') >= 1 
    41             -  
    42               - "I'm looking for Pekko, you seen him?" 
    43               - help_fedex 
    44               - quest.hasActiveQuest('fedex') and not quest.hasFinishedQuest('fedex') and not quest['fedex'].isGoalValue('found_pekko') 
    45             - 
    46               - "Pekko's dead.  I found his body." 
    47               - pekko_dead 
    48               - quest['fedex'].isGoalValue('found_pekko') 
    49             - 
    50               - "Nothing for me, thanks." 
    51               - end 
    52  
    53     buy_drink: 
    54         - say: "Doesn't look like you got much to trade for any of my premium booze.  Come back later when you can pay." 
    55         - responses: 
    56            - 
    57              - "Alright, I'll scrounge something up." 
    58              - back 
    59            - 
    60              - "Can't I run up a tab?" 
    61              - credit_check 
    62  
    63     credit_check: 
    64         - say: "Your credit is no good here.  Now, get out before I have Dig run you out." 
    65         - responses: 
    66            - 
    67              - "OK, OK, I was just asking." 
    68              - main_dialog 
    69  
    70     inn_background: 
    71         - say: "Well... Dig, Enoch and I found this place some years back.  Kimmo and Pekko were here first, of course, but they obviously needed our help.  The girls took a liking to it, and with the improvements we made, it seemed like a good place as any to set up shop. " 
    72         - responses: 
    73            - 
    74              - "Who's Enoch?" 
    75              - explain_enoch 
    76            - 
    77              - "Who's Dig?" 
    78              - explain_dig 
    79            - 
    80              - "What improvements do you mean?" 
    81              - explain_steam 
    82            - 
    83              - "What girls?" 
    84              - explain_girls 
    85            - 
    86              - "Cool, this is probably the best bar in about 500 km." 
    87              - back 
    88  
    89     explain_enoch: 
    90         - say: "Enoch was my engineer.  He worked for me before the war.  He outfitted this place with the steam heating system." 
    91         - responses: 
    92            - 
    93              - "Oh wow, steam heat?  How does that work?" 
    94              - explain_steam 
    95            - 
    96              - "Where is Enoch now?  Can I meet him?" 
    97              - enochs_demise 
    98  
    99     enochs_demise: 
    100         - say: "Alas, he's no longer with us.  He met with an unfortunate accident.  Luckily, he taught me how to keep the system up and running." 
    101         - responses: 
    102            - 
    103              - "Accident?" 
    104              - enochs_accident 
    105            - 
    106              - "So you are the only one who can maintain the steam system?" 
    107              - steam_maintainance 
    108               
    109     enochs_accident: 
    110         - say: "Oh, you know.  Just one of those things.  Dangerous world." 
    111         - responses: 
    112            - 
    113              - "Uh, I see." 
    114              - back 
    115  
    116     explain_steam: 
    117         - say: "Well it's pretty simple in principal.  We just have a big wood fire melting snow.  Some of it becomes drinking water, the rest gets vaporized and sent around in all these steam pipes.  The each have little radiator attachments.  As long as we have wood, the whole place stays quite cozy.  It's kind of a pain to keep up though." 
    118         - responses: 
    119            - 
    120              - "Can anyone just go get water there?" 
    121              - help_water 
    122              - quest.hasActiveQuest('beer') and quest.hasActiveQuest('fedex') and not quest['fedex'].isGoalValue('found_pekko') 
    123            - 
    124              - "But you can keep it running indefinitely... and no one else knows how it works?" 
    125              - steam_maintainance 
    126            - 
    127              - "Pretty nifty." 
    128              - inn_background 
    129               
    130     help_water: 
    131         - say: "Sure, doesn't cost us a thing.  No shortage of snow.  But I'll warn you, the water's been tasting a little funny lately" 
    132         - responses: 
    133            - 
    134              - "Thanks for the tip." 
    135              - back 
    136  
    137     steam_maintainance: 
    138         - say: "Yeah, just me.  I call it job security.  Like I said, it's a dangerous world." 
    139         - responses: 
    140            - 
    141              - "That must make you pretty popular around here." 
    142              - popularity 
    143            - 
    144              - "Interesting." 
    145              - inn_background 
    146  
    147     popularity: 
    148         - say: "Ha, Ha, very funny.  Let's just say it's our own version of checks-and-balances with Fearless Leader Kimmo over there." 
    149         - responses: 
    150            - 
    151              - "Well, we all do what we have to." 
    152              - inn_background 
    153  
    154     explain_girls: 
    155         - say: "My daughters: Camilla and Synnove.  They were just little girls when the whole world went to hell.  I hope they can still have some kind of life." 
    156         - responses: 
    157            - 
    158              - "Can I talk to Camilla?" 
    159              - talk_camilla 
    160            - 
    161              - "Can I talk to Synnove?" 
    162              - talk_synnove 
    163            - 
    164              - "At least you still have someone to call family.  Better than most of us." 
    165              - back 
    166  
    167     talk_camilla: 
    168         - say: "Can you talk to her?  Listen to her, more likely.  She's right over there and is usually handling the bar when I am busy." 
    169         - responses: 
    170            - 
    171              - "Oh, that's her?" 
    172              - back 
    173  
    174     talk_synnove: 
    175         - say: "Synnove?  Maybe you can talk some sense into her.  I know, she's been through a lot - but haven't we all.  She's wandering around somewhere." 
    176         - responses: 
    177            - 
    178              - "Alright, I will look around for her." 
    179              - back 
    180  
    181     explain_dig: 
    182         - say: "Dig and I go way back.  We owe each other our lives more times than we can count.  He takes care of 'difficulties' for me." 
    183         - responses: 
    184            - 
    185              - "Ah, I will stay out his way then." 
    186              - back 
    187  
    188     loose_women: 
    189         - say: "Candi and Kalli?  They're the hospitality squad.  Harmless fun, if you buy them a drink." 
    190         - responses: 
    191            - 
    192              - "Ah, I see." 
    193              - back 
    194  
    195     pekko_dead: 
    196         - say: "Dead, huh.  That's a shame.  A damn shame.  He was a positive force around here.  How did he die?" 
    197         - responses: 
    198            - 
    199              - "I am not sure, I found his body in the cistern." 
    200              - body_found 
    201            -  
    202              - "Someone murdered him, and shoved his body in the cistern." 
    203              - discuss_murder 
    204              - quest['fedex'].getValue('accused_of_murder') != '' 
    205               
    206     body_found: 
    207         - say: "Well, if you ask me, that's a funny place to have an accident.  Enoch and I worked for a couple of weeks on that system.  There's really no way you could just fall in.  And Pekko's not the suicidal type." 
    208         - responses: 
    209            - 
    210              - "So you think someone killed him?" 
    211              - discuss_murder 
    212            - 
    213              - "No, I am sure it was an accident." 
    214              - main_dialog 
    215  
    216     discuss_murder: 
    217         - say: "Damn if doesn't look like it.  I know some folks were mad at him for stirring up trouble, but I didn't they were the type to just snuff him like that.  It's a cold world, alright." 
    218         - responses: 
    219            - 
    220              - "Who do you think killed him?" 
    221              - discuss_suspects 
    222            - 
    223              - "I think Bart, the drunkard killed him." 
    224              - accuse_bart 
    225            - 
    226              - "I think that dim-witted Matti killed him." 
    227              - accuse_matti 
    228            - 
    229              - "Bart killed him, and Kimmo put him up to it." 
    230              - accuse_kimmo 
    231              - quest['fedex'].isGoalValue('drunkard_confesses') 
    232  
    233     discuss_suspects: 
    234         - say: "I have my theories.  But I'll be keeping them to myself.  And if I were you, I would drop the subject." 
    235         - responses: 
    236            - 
    237              - "Really?" 
    238              - back 
    239  
    240     accuse_bart: 
    241        - set_value: 
    242             quest: 'fedex' 
    243             variable: 'accused_of_murder' 
    244             value: 'bart' 
    245        - say: "Bart, huh?  Why? What's in it for him?" 
    246        - responses: 
    247            - 
    248              - "I guess I should look into it more." 
    249              - back 
    250            - 
    251              - "Camilla said that she saw the two of them together out in the parking lot the night he disappeared." 
    252              - back 
    253              - quest['fedex'].isGoalValue('drunkard_evidence') 
    254  
    255     accuse_matti: 
    256        - set_value: 
    257             quest: 'fedex' 
    258             variable: 'accused_of_murder' 
    259             value: 'matti' 
    260        - say: "You are barking up the wrong tree." 
    261        - responses: 
    262            - 
    263              - "Is that what you think?  Why won't you talk about it?" 
    264              - back 
    265  
    266     accuse_kimmo: 
    267        - say: "So.  You figured it out, huh.  Big hero, proves the Fearless Leader himself had his own brother killed.  Did you ever stop to think that revealing this information could do even further damage?" 
    268        - responses: 
    269            - 
    270              - "So, this news doesn't shock you?" 
    271              - murder_fallout 
    272            - 
    273              - "I never thought of it that way before..." 
    274              - main_dialog 
    275               
    276     murder_fallout: 
    277        - say: "Survival in this world is bigger than the life of any one man; even an innocent man.  Justice is not my - or anyone's - primary concern." 
    278        - responses: 
    279            - 
    280              - "Without justice, is survival worth anything at all?" 
    281              - main_dialog 
    282  
    283     help_fedex: 
    284        - say: "Ah, adventure boy.  Nope, haven't seem him in a couple of days.  Maybe check with one of the girls?" 
    285        - responses: 
    286            - 
    287              - "Girls?" 
    288              - explain_girls 
    289            - 
    290              - "Hmmm... no one seems to have seen him." 
    291              - back 
    292  
    293     ungratitude:  
    294        - say: "Well aren't you just a thick slice of awesome." 
    295        - responses: 
    296            -  
    297              - "I try, I try." 
    298              - main_dialog 
    299   
     20-   ID: main_dialog 
     21    SAY: "Hi there, Stranger!  Welcome to Jacob's.  How can I help you?" 
     22    ACTIONS: 
     23    -   meet: 
     24        - jacob 
     25    RESPONSES: 
     26    -   REPLY: "I'd like a drink." 
     27        GOTO: buy_drink 
     28         
     29    -   REPLY: "Nice place you got here.  What's your story?" 
     30        GOTO: inn_background 
     31         
     32    -   REPLY: "Who are those two women over there?" 
     33        GOTO: loose_women 
     34         
     35    -   REPLY: "I'm the bastard that's going to put you out of business!" 
     36        CONDITION: "quest['beer'].getValue('beer_quality') >= 1" 
     37        GOTO: ungratitude 
     38         
     39    -   REPLY: "I'm looking for Pekko, you seen him?" 
     40        CONDITION: "quest.hasActiveQuest('fedex') and not\ 
     41           \ quest.hasFinishedQuest('fedex') and not\ 
     42           \ quest['fedex'].isGoalValue('found_pekko')" 
     43        GOTO: help_fedex 
     44         
     45    -   REPLY: "Pekko's dead.  I found his body." 
     46        CONDITION: "quest['fedex'].isGoalValue('found_pekko')" 
     47        GOTO: pekko_dead 
     48         
     49    -   REPLY: "Nothing for me, thanks." 
     50        GOTO: end 
     51         
     52-   ID: buy_drink 
     53    SAY: "Doesn't look like you got much to trade for any of my premium booze.\ 
     54       \ Come back later when you can pay." 
     55    RESPONSES: 
     56    -   REPLY: "Alright, I'll scrounge something up." 
     57        GOTO: back 
     58         
     59    -   REPLY: "Can't I run up a tab?" 
     60        GOTO: credit_check 
     61         
     62-   ID: credit_check 
     63    SAY: "Your credit is no good here.  Now, get out before I have Dig run you\ 
     64       \ out." 
     65    RESPONSES: 
     66    -   REPLY: "OK, OK, I was just asking." 
     67        GOTO: main_dialog 
     68         
     69-   ID: inn_background 
     70    SAY: "Well... Dig, Enoch and I found this place some years back.  Kimmo and\ 
     71       \ Pekko were here first, of course, but they obviously needed our help.\ 
     72       \ The girls took a liking to it, and with the improvements we made, it\ 
     73       \ seemed like a good place as any to set up shop. " 
     74    RESPONSES: 
     75    -   REPLY: "Who's Enoch?" 
     76        GOTO: explain_enoch 
     77         
     78    -   REPLY: "Who's Dig?" 
     79        GOTO: explain_dig 
     80         
     81    -   REPLY: "What improvements do you mean?" 
     82        GOTO: explain_steam 
     83         
     84    -   REPLY: "What girls?" 
     85        GOTO: explain_girls 
     86         
     87    -   REPLY: "Cool, this is probably the best bar in about 500 km." 
     88        GOTO: back 
     89         
     90-   ID: explain_enoch 
     91    SAY: "Enoch was my engineer.  He worked for me before the war.  He\ 
     92       \ outfitted this place with the steam heating system." 
     93    RESPONSES: 
     94    -   REPLY: "Oh wow, steam heat?  How does that work?" 
     95        GOTO: explain_steam 
     96         
     97    -   REPLY: "Where is Enoch now?  Can I meet him?" 
     98        GOTO: enochs_demise 
     99         
     100-   ID: enochs_demise 
     101    SAY: "Alas, he's no longer with us.  He met with an unfortunate accident.\ 
     102       \ Luckily, he taught me how to keep the system up and running." 
     103    RESPONSES: 
     104    -   REPLY: "Accident?" 
     105        GOTO: enochs_accident 
     106         
     107    -   REPLY: "So you are the only one who can maintain the steam system?" 
     108        GOTO: steam_maintainance 
     109         
     110-   ID: enochs_accident 
     111    SAY: "Oh, you know.  Just one of those things.  Dangerous world." 
     112    RESPONSES: 
     113    -   REPLY: "Uh, I see." 
     114        GOTO: back 
     115         
     116-   ID: explain_steam 
     117    SAY: "Well it's pretty simple in principal.  We just have a big wood fire\ 
     118       \ melting snow.  Some of it becomes drinking water, the rest gets\ 
     119       \ vaporized and sent around in all these steam pipes.  The each have\ 
     120       \ little radiator attachments.  As long as we have wood, the whole place\ 
     121       \ stays quite cozy.  It's kind of a pain to keep up though." 
     122    RESPONSES: 
     123    -   REPLY: "Can anyone just go get water there?" 
     124        CONDITION: "quest.hasActiveQuest('beer') and\ 
     125           \ quest.hasActiveQuest('fedex') and not\ 
     126           \ quest['fedex'].isGoalValue('found_pekko')" 
     127        GOTO: help_water 
     128         
     129    -   REPLY: "But you can keep it running indefinitely... and no one else\ 
     130           \ knows how it works?" 
     131        GOTO: steam_maintainance 
     132         
     133    -   REPLY: "Pretty nifty." 
     134        GOTO: inn_background 
     135         
     136-   ID: help_water 
     137    SAY: "Sure, doesn't cost us a thing.  No shortage of snow.  But I'll warn\ 
     138       \ you, the water's been tasting a little funny lately" 
     139    RESPONSES: 
     140    -   REPLY: "Thanks for the tip." 
     141        GOTO: back 
     142         
     143-   ID: steam_maintainance 
     144    SAY: "Yeah, just me.  I call it job security.  Like I said, it's a\ 
     145       \ dangerous world." 
     146    RESPONSES: 
     147    -   REPLY: "That must make you pretty popular around here." 
     148        GOTO: popularity 
     149         
     150    -   REPLY: "Interesting." 
     151        GOTO: inn_background 
     152         
     153-   ID: popularity 
     154    SAY: "Ha, Ha, very funny.  Let's just say it's our own version of\ 
     155       \ checks-and-balances with Fearless Leader Kimmo over there." 
     156    RESPONSES: 
     157    -   REPLY: "Well, we all do what we have to." 
     158        GOTO: inn_background 
     159         
     160-   ID: explain_girls 
     161    SAY: "My daughters: Camilla and Synnove.  They were just little girls when\ 
     162       \ the whole world went to hell.  I hope they can still have some kind of\ 
     163       \ life." 
     164    RESPONSES: 
     165    -   REPLY: "Can I talk to Camilla?" 
     166        GOTO: talk_camilla 
     167         
     168    -   REPLY: "Can I talk to Synnove?" 
     169        GOTO: talk_synnove 
     170         
     171    -   REPLY: "At least you still have someone to call family.  Better than\ 
     172           \ most of us." 
     173        GOTO: back 
     174         
     175-   ID: talk_camilla 
     176    SAY: "Can you talk to her?  Listen to her, more likely.  She's right over\ 
     177       \ there and is usually handling the bar when I am busy." 
     178    RESPONSES: 
     179    -   REPLY: "Oh, that's her?" 
     180        GOTO: back 
     181         
     182-   ID: talk_synnove 
     183    SAY: "Synnove?  Maybe you can talk some sense into her.  I know, she's been\ 
     184       \ through a lot - but haven't we all.  She's wandering around somewhere." 
     185    RESPONSES: 
     186    -   REPLY: "Alright, I will look around for her." 
     187        GOTO: back 
     188         
     189-   ID: explain_dig 
     190    SAY: "Dig and I go way back.  We owe each other our lives more times than\ 
     191       \ we can count.  He takes care of 'difficulties' for me." 
     192    RESPONSES: 
     193    -   REPLY: "Ah, I will stay out his way then." 
     194        GOTO: back 
     195         
     196-   ID: loose_women 
     197    SAY: "Candi and Kalli?  They're the hospitality squad.  Harmless fun, if\ 
     198       \ you buy them a drink." 
     199    RESPONSES: 
     200    -   REPLY: "Ah, I see." 
     201        GOTO: back 
     202         
     203-   ID: pekko_dead 
     204    SAY: "Dead, huh.  That's a shame.  A damn shame.  He was a positive force\ 
     205       \ around here.  How did he die?" 
     206    RESPONSES: 
     207    -   REPLY: "I am not sure, I found his body in the cistern." 
     208        GOTO: body_found 
     209         
     210    -   REPLY: "Someone murdered him, and shoved his body in the cistern." 
     211        CONDITION: "quest['fedex'].getValue('accused_of_murder') != ''" 
     212        GOTO: discuss_murder 
     213         
     214-   ID: body_found 
     215    SAY: "Well, if you ask me, that's a funny place to have an accident.  Enoch\ 
     216       \ and I worked for a couple of weeks on that system.  There's really no\ 
     217       \ way you could just fall in.  And Pekko's not the suicidal type." 
     218    RESPONSES: 
     219    -   REPLY: "So you think someone killed him?" 
     220        GOTO: discuss_murder 
     221         
     222    -   REPLY: "No, I am sure it was an accident." 
     223        GOTO: main_dialog 
     224         
     225-   ID: discuss_murder 
     226    SAY: "Damn if doesn't look like it.  I know some folks were mad at him for\ 
     227       \ stirring up trouble, but I didn't they were the type to just snuff him\ 
     228       \ like that.  It's a cold world, alright." 
     229    RESPONSES: 
     230    -   REPLY: "Who do you think killed him?" 
     231        GOTO: discuss_suspects 
     232         
     233    -   REPLY: "I think Bart, the drunkard killed him." 
     234        ACTIONS: 
     235        -   set_quest_value: 
     236                quest: fedex 
     237                value: bart 
     238                variable: accused_of_murder 
     239        GOTO: accuse_bart 
     240         
     241    -   REPLY: "I think that dim-witted Matti killed him." 
     242        ACTIONS: 
     243        -   set_quest_value: 
     244                quest: fedex 
     245                value: matti 
     246                variable: accused_of_murder 
     247        GOTO: accuse_matti 
     248         
     249    -   REPLY: "Bart killed him, and Kimmo put him up to it." 
     250        CONDITION: "quest['fedex'].isGoalValue('drunkard_confesses')" 
     251        GOTO: accuse_kimmo 
     252         
     253-   ID: discuss_suspects 
     254    SAY: "I have my theories.  But I'll be keeping them to myself.  And if I\ 
     255       \ were you, I would drop the subject." 
     256    RESPONSES: 
     257    -   REPLY: "Really?" 
     258        GOTO: back 
     259         
     260-   ID: accuse_bart 
     261    SAY: "Bart, huh?  Why? What's in it for him?" 
     262    RESPONSES: 
     263    -   REPLY: "I guess I should look into it more." 
     264        GOTO: back 
     265         
     266    -   REPLY: "Camilla said that she saw the two of them together out in the\ 
     267           \ parking lot the night he disappeared." 
     268        CONDITION: "quest['fedex'].isGoalValue('drunkard_evidence')" 
     269        GOTO: back 
     270         
     271-   ID: accuse_matti 
     272    SAY: "You are barking up the wrong tree." 
     273    RESPONSES: 
     274    -   REPLY: "Is that what you think?  Why won't you talk about it?" 
     275        GOTO: back 
     276         
     277-   ID: accuse_kimmo 
     278    SAY: "So.  You figured it out, huh.  Big hero, proves the Fearless Leader\ 
     279       \ himself had his own brother killed.  Did you ever stop to think that\ 
     280       \ revealing this information could do even further damage?" 
     281    RESPONSES: 
     282    -   REPLY: "So, this news doesn't shock you?" 
     283        GOTO: murder_fallout 
     284         
     285    -   REPLY: "I never thought of it that way before..." 
     286        GOTO: main_dialog 
     287         
     288-   ID: murder_fallout 
     289    SAY: "Survival in this world is bigger than the life of any one man; even\ 
     290       \ an innocent man.  Justice is not my - or anyone's - primary concern." 
     291    RESPONSES: 
     292    -   REPLY: "Without justice, is survival worth anything at all?" 
     293        GOTO: main_dialog 
     294         
     295-   ID: help_fedex 
     296    SAY: "Ah, adventure boy.  Nope, haven't seem him in a couple of days.\ 
     297       \ Maybe check with one of the girls?" 
     298    RESPONSES: 
     299    -   REPLY: "Girls?" 
     300        GOTO: explain_girls 
     301         
     302    -   REPLY: "Hmmm... no one seems to have seen him." 
     303        GOTO: back 
     304         
     305-   ID: ungratitude 
     306    SAY: "Well aren't you just a thick slice of awesome." 
     307    RESPONSES: 
     308    -   REPLY: "I try, I try." 
     309        GOTO: main_dialog 
     310         
     311... 
Note: See TracChangeset for help on using the changeset viewer.