adonthell-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[adonthell-wastesedge-commits] Release_0-3-1 64e91d5 033/237: UPDATE to


From: Kai Sterker
Subject: [adonthell-wastesedge-commits] Release_0-3-1 64e91d5 033/237: UPDATE to some schedules and dialogues
Date: Mon, 25 Jul 2016 18:14:55 +0000 (UTC)

tag: Release_0-3-1
commit 64e91d5c07f9127a0472cd511dabcd006d3e1650
Author: adondev <adondev>
Commit: adondev <adondev>

    UPDATE to some schedules and dialogues
    ADDED first part of Oliver's schedule and first part of Frostbloom's 
dialogue
---
 scripts/dialogues/Makefile.am         |    3 +-
 scripts/dialogues/bjarn_start.py      |   24 +-
 scripts/dialogues/erek_start.py       |   42 +-
 scripts/dialogues/frostbloom_start.py |  137 +++++
 scripts/dialogues/lucia_start.py      |   68 +--
 scripts/dialogues/oliver_start.py     |  152 ++++--
 scripts/dialogues/orloth_start.py     |  957 ++++++++++++++++++---------------
 scripts/init.py                       |    2 +
 scripts/schedules/Makefile.am         |    2 +-
 scripts/schedules/action_talk.py      |    5 +-
 scripts/schedules/frostbloom.py       |   20 +-
 scripts/schedules/oliver.py           |   60 +++
 scripts/schedules/orloth.py           |   20 +-
 scripts/schedules/sarin.py            |   52 +-
 scripts/schedules/silverhair.py       |   12 +-
 15 files changed, 964 insertions(+), 592 deletions(-)

diff --git a/scripts/dialogues/Makefile.am b/scripts/dialogues/Makefile.am
index 970c05f..417e187 100755
--- a/scripts/dialogues/Makefile.am
+++ b/scripts/dialogues/Makefile.am
@@ -1,7 +1,8 @@
 pkgdatadir = $(gamedatadir)/scripts/dialogues
 
 pkgdata_DATA = orloth_start.py lucia_start.py sarin_start.py \
-    janesta_start.py erek_start.py oliver_start.py bjarn_start.py
+    janesta_start.py erek_start.py oliver_start.py bjarn_start.py \
+    frostbloom_start.py
 
 EXTRA_DIST = $(pkgdata_DATA)
 
diff --git a/scripts/dialogues/bjarn_start.py b/scripts/dialogues/bjarn_start.py
index f0192a3..e88bb07 100755
--- a/scripts/dialogues/bjarn_start.py
+++ b/scripts/dialogues/bjarn_start.py
@@ -17,10 +17,10 @@ class bjarn_start:
     def clear (self):
         del self.dialogue
 
-        quests["demo"].set( "bjarn_door_open", 2 );
-        quests["demo"].set( "ask_packed_gems", 1 );
-        quests["demo"].set( "know_alek_eavesdrop", 1 );
-        quests["demo"].set( "know_bjarns_insult", 1 );
+        quests["demo"].set_val( "bjarn_door_open", 2 );
+        quests["demo"].set_val( "ask_packed_gems", 1 );
+        quests["demo"].set_val( "know_alek_eavesdrop", 1 );
+        quests["demo"].set_val( "know_bjarns_insult", 1 );
         
 
 
@@ -34,26 +34,26 @@ class bjarn_start:
         self.dialogue[answer]()
 
     def start (self):
-        if quests["demo"].get("bjarn_door_open") == 3:
+        if quests["demo"].get_val("bjarn_door_open") == 3:
 
             self.color = 0
             self.npc.append (12)
             self.cont.append (8)
             self.player.append (-1)
-        if quests["demo"].get("bjarn_door_open") == 2:
+        if quests["demo"].get_val("bjarn_door_open") == 2:
 
             self.color = 0
             self.npc.append (1)
             self.cont.append (2)
-            quests["demo"].set( "bjarn_door_open", 3 )
+            quests["demo"].set_val( "bjarn_door_open", 3 )
 
             self.player.append (-1)
-        if quests["demo"].get("bjarn_door_open") == 0:
+        if quests["demo"].get_val("bjarn_door_open") == 0:
 
             self.color = 0
             self.npc.append (0)
             self.cont.append (1)
-            quests.get ("demo").set ("bjarn_door_open" , 1)
+            quests["demo"].set_val ("bjarn_door_open" , 1)
 
             self.player.append (-1)
 
@@ -113,15 +113,15 @@ class bjarn_start:
         self.color = the_npc.get_color()
         self.npc.append (13)
         self.cont.append (-1)
-        if quests["demo"].get( "know_alek_eavesdrop" ) == 1:
+        if quests["demo"].get_val( "know_alek_eavesdrop" ) == 1:
 
             self.player.append (16)
             self.cont.append (11)
-        if quests["demo"].get( "know_bjarns_insult" ) == 1:
+        if quests["demo"].get_val( "know_bjarns_insult" ) == 1:
 
             self.player.append (15)
             self.cont.append (10)
-        if quests["demo"].get( "ask_packed_gems" ) == 1:
+        if quests["demo"].get_val( "ask_packed_gems" ) == 1:
 
             self.player.append (14)
             self.cont.append (9)
diff --git a/scripts/dialogues/erek_start.py b/scripts/dialogues/erek_start.py
index 5749c69..ee3ac8c 100755
--- a/scripts/dialogues/erek_start.py
+++ b/scripts/dialogues/erek_start.py
@@ -24,10 +24,10 @@ class erek_start:
     # with Lady Silverhair
     
     def get_right_npc (self):
-        if self.demo.get ("work_4_shair") & 1 == 1:
+        if self.demo.get_val ("work_4_shair") & 1 == 1:
             return "Master Orloth"
     
-        elif self.demo.get ("work_4_shair") & 2 == 2:
+        elif self.demo.get_val ("work_4_shair") & 2 == 2:
             return "the mercenary"
     
         else:
@@ -44,14 +44,14 @@ class erek_start:
         self.dialogue[answer]()
 
     def start (self):
-        if the_npc.get ("talked_to") == 0:
+        if the_npc.get_val ("talked_to") == 0:
 
             self.color = 0
             self.npc.append (0)
             self.cont.append (-1)
-            the_npc.set ("talked_to", 1)
+            the_npc.set_val ("talked_to", 1)
 
-            if self.demo.get ("know_erek") == 1:
+            if self.demo.get_val ("know_erek") == 1:
 
                 self.player.append (1)
                 self.cont.append (1)
@@ -60,7 +60,7 @@ class erek_start:
                 self.player.append (43)
                 self.cont.append (30)
             self.player.append (-1)
-        elif the_npc.get ("work_4_shair") == 0 and self.demo.get 
("work_4_shair") > 0:
+        elif the_npc.get_val ("work_4_shair") == 0 and self.get_val 
("demo").get_val ("work_4_shair") > 0:
 
             self.color = 0
             self.npc.append (50)
@@ -83,7 +83,7 @@ class erek_start:
         self.cont.append (33)
         self.player.append (48)
         self.cont.append (32)
-        if quests.get ("demo").get ("bjarn_door_open") == 1:
+        if quests["demo"].get_val ("bjarn_door_open") == 1:
 
             self.player.append (84)
             self.cont.append (53)
@@ -97,7 +97,7 @@ class erek_start:
         self.cont.append (33)
         self.player.append (48)
         self.cont.append (32)
-        if quests.get ("demo").get ("bjarn_door_open") == 1:
+        if quests["demo"].get_val ("bjarn_door_open") == 1:
 
             self.player.append (84)
             self.cont.append (53)
@@ -133,7 +133,7 @@ class erek_start:
         self.color = 0
         self.npc.append (92)
         self.cont.append (-1)
-        quests.get ("demo").set ("bjarn_door_open" , 2)
+        quests["demo"].set_val ("bjarn_door_open" , 2)
 
         self.player.append (-1)
 
@@ -287,7 +287,7 @@ class erek_start:
         self.cont.append (-1)
         self.player.append (48)
         self.cont.append (32)
-        if quests.get ("demo").get ("bjarn_door_open") == 1:
+        if quests["demo"].get_val ("bjarn_door_open") == 1:
 
             self.player.append (84)
             self.cont.append (53)
@@ -379,7 +379,7 @@ class erek_start:
         self.cont.append (33)
         self.player.append (48)
         self.cont.append (32)
-        if quests.get ("demo").get ("bjarn_door_open") == 1:
+        if quests["demo"].get_val ("bjarn_door_open") == 1:
 
             self.player.append (84)
             self.cont.append (53)
@@ -404,7 +404,7 @@ class erek_start:
         self.cont.append (32)
         self.player.append (49)
         self.cont.append (33)
-        if quests.get ("demo").get ("bjarn_door_open") == 1:
+        if quests["demo"].get_val ("bjarn_door_open") == 1:
 
             self.player.append (84)
             self.cont.append (53)
@@ -458,13 +458,13 @@ class erek_start:
         self.color = the_npc.get_color()
         self.npc.append (17)
         self.cont.append (-1)
-        the_npc.set ("work_4_shair", 1)
+        the_npc.set_val ("work_4_shair", 1)
 
         self.player.append (19)
         self.cont.append (11)
         self.player.append (20)
         self.cont.append (12)
-        if self.demo.get ("know_argument") != 0:
+        if self.demo.get_val ("know_argument") != 0:
 
             self.player.append (38)
             self.cont.append (26)
@@ -488,9 +488,9 @@ class erek_start:
         self.color = the_npc.get_color()
         self.npc.append (21)
         self.cont.append (-1)
-        self.demo.set ("know_alek_eavesdrop", 1)
+        self.demo.set_val ("know_alek_eavesdrop", 1)
 
-        if self.demo.get ("know_argument") == 0:
+        if self.demo.get_val ("know_argument") == 0:
 
             self.player.append (22)
             self.cont.append (13)
@@ -536,23 +536,23 @@ class erek_start:
         self.color = the_npc.get_color()
         self.npc.append (18)
         self.cont.append (-1)
-        the_npc.set ("work_4_shair", 1)
+        the_npc.set_val ("work_4_shair", 1)
 
         self.player.append (19)
         self.cont.append (11)
-        if self.demo.get ("know_argument") != 0:
+        if self.demo.get_val ("know_argument") != 0:
 
             self.player.append (38)
             self.cont.append (26)
         self.player.append (-1)
 
     def answer3 (self):
-        if self.demo.get ("work_4_shair") != 0:
+        if self.demo.get_val ("work_4_shair") != 0:
 
             self.color = the_npc.get_color()
             self.npc.append (6)
             self.cont.append (-1)
-            the_npc.set ("insulted", 1)
+            the_npc.set_val ("insulted", 1)
 
             self.player.append (8)
             self.cont.append (5)
@@ -587,7 +587,7 @@ class erek_start:
         self.player.append (-1)
 
     def answer12 (self):
-        the_npc.set ("insulted", 1)
+        the_npc.set_val ("insulted", 1)
 
         self.color = 0
         self.npc.append (14)
diff --git a/scripts/dialogues/frostbloom_start.py 
b/scripts/dialogues/frostbloom_start.py
new file mode 100755
index 0000000..1adb5df
--- /dev/null
+++ b/scripts/dialogues/frostbloom_start.py
@@ -0,0 +1,137 @@
+class frostbloom_start:
+    loop = []
+    strings = ["Hm?  What do you want?", "I am a servant of Lady Imoen 
Silverhair, and I'd like to ask ...", "I know who you are, and I do not care 
what you wish to ask.  Now go away.  The Yeti of my soul must have silence.", 
"You again?  I thought I told you to leave me alone.", "But lady, I must ask 
you about the theft...", "The theft?  You mean your theft of my precious time, 
when I could be receiving inspiration?  I've lost enought of that already, 
thank you.  Now be gone, silly serv [...]
+
+    def set_name (self, new_name):
+        pass
+
+    def set_npc (self, new_npc):
+        pass
+
+    def set_portrait (self, new_portrait):
+        pass
+
+    def __init__(self):
+        self.dialogue = [self.start, self.answer1, self.answer4, self.answer6, 
self.answer8, self.answer9, self.answer12, self.answer14, self.answer16, 
self.answer19, self.answer21, None]
+
+    def clear (self):
+        del self.dialogue
+
+    def __getattr__ (self, name):
+        return 0
+
+    def run (self, answer):
+        self.npc = []
+        self.player = []
+        self.cont = []
+        self.dialogue[answer]()
+
+    def start (self):
+        if the_npc.get_val ("spoken_to") == 0:
+
+            self.color = characters["Rhayne Frostbloom"].get_color()
+            self.npc.append (0)
+            self.cont.append (-1)
+            the_npc.set_val ("spoken_to" , 1)
+
+            self.player.append (1)
+            self.cont.append (1)
+            self.player.append (-1)
+        elif the_npc.get_val ("spoken_to") == 1:
+
+            self.color = characters["Rhayne Frostbloom"].get_color()
+            self.npc.append (3)
+            self.cont.append (-1)
+            the_npc.set_val ("spoken_to" , 2)
+
+            self.player.append (4)
+            self.cont.append (2)
+            self.player.append (-1)
+        else:
+
+            self.color = characters["Rhayne Frostbloom"].get_color()
+            self.npc.append (11)
+            self.cont.append (-1)
+            self.player.append (12)
+            self.cont.append (6)
+            self.player.append (-1)
+
+    def answer12 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (13)
+        self.cont.append (-1)
+        self.player.append (14)
+        self.cont.append (7)
+        self.player.append (16)
+        self.cont.append (8)
+        self.player.append (-1)
+
+    def answer16 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (17)
+        self.cont.append (-1)
+        self.player.append (18)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer18 (self):
+        pass
+
+    def answer14 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (15)
+        self.cont.append (-1)
+        self.player.append (19)
+        self.cont.append (9)
+        self.player.append (-1)
+
+    def answer19 (self):
+        self.set_npc (the_npc.get_name())
+        self.color = the_npc.get_color()
+        self.npc.append (20)
+        self.cont.append (-1)
+        self.player.append (21)
+        self.cont.append (10)
+        self.player.append (-1)
+
+    def answer21 (self):
+        self.color = 0
+        self.npc.append (22)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer4 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (5)
+        self.cont.append (-1)
+        self.player.append (6)
+        self.cont.append (3)
+        self.player.append (8)
+        self.cont.append (4)
+        self.player.append (-1)
+
+    def answer8 (self):
+        self.set_npc (the_npc.get_name())
+        self.color = 0
+        self.npc.append (9)
+        self.cont.append (5)
+        self.player.append (-1)
+
+    def answer9 (self):
+        self.set_npc ("Rhayne Frostbloom")
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (10)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer6 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (7)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer1 (self):
+        self.color = characters["Rhayne Frostbloom"].get_color()
+        self.npc.append (2)
+        self.cont.append (-1)
+        self.player.append (-1)
diff --git a/scripts/dialogues/lucia_start.py b/scripts/dialogues/lucia_start.py
index a06ef7e..f028f06 100755
--- a/scripts/dialogues/lucia_start.py
+++ b/scripts/dialogues/lucia_start.py
@@ -12,13 +12,13 @@ class lucia_start:
         pass
 
     def __init__(self):
-        self.dialogue = [self.start, self.answer0, self.answer2, self.answer3, 
self.answer6, self.answer8, self.answer10, self.answer11, self.answer13, 
self.answer15, self.answer16, self.answer18, self.answer19, self.answer21, 
self.answer22, self.answer23, self.answer24, self.answer25, self.answer27, 
self.answer29, self.answer30, self.answer32, self.answer33, self.answer35, 
self.answer36, self.answer38, self.answer40, self.answer41, self.answer42, 
self.answer44, self.answer46, self.answe [...]
+        self.dialogue = [self.start, self.answer0, self.answer2, self.answer3, 
self.answer6, self.answer8, self.answer10, self.answer11, self.answer13, 
self.answer15, self.answer16, self.answer18, self.answer19, self.answer21, 
self.answer22, self.answer23, self.answer24, self.answer25, self.answer27, 
self.answer29, self.answer30, self.answer32, self.answer33, self.answer35, 
self.answer36, self.answer38, self.answer40, self.answer41, self.answer42, 
self.answer44, self.answer46, self.answe [...]
 
     def clear (self):
         del self.dialogue
 
     def who_heard_noise (self):
-        n = quests.get ("demo").get ("know_noise")
+        n = quests.get_val ("demo").get_val ("know_noise")
         if n == 1:
             return "Lady Silverhair has"
         elif n == 2:
@@ -37,13 +37,13 @@ class lucia_start:
         self.dialogue[answer]()
 
     def start (self):
-        if the_npc.get ("talked_to") == 0:
+        if the_npc.get_val ("talked_to") == 0:
 
             self.color = 0
             self.npc.append (0)
             self.cont.append (1)
             self.player.append (-1)
-        elif quests.get ("demo").get ("told_on_talan") == 1:
+        elif quests["demo"].get_val ("told_on_talan") == 1:
 
             self.color = 0
             self.npc.append (91)
@@ -62,7 +62,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (87)
         self.cont.append (-1)
-        if the_npc.get ("talked_about_theft") == 1:
+        if the_npc.get_val ("talked_about_theft") == 1:
 
             self.player.append (88)
             self.cont.append (53)
@@ -72,12 +72,12 @@ class lucia_start:
             self.cont.append (59)
         self.player.append (-1)
 
-    def answer199 (self):
+    def answer97 (self):
         self.color = the_npc.get_color()
         self.npc.append (16)
         self.cont.append (10)
         self.talked_about_fingolson = 1
-        the_npc.set ("talked_about_theft", 1)
+        the_npc.set_val ("talked_about_theft", 1)
 
         self.player.append (-1)
 
@@ -93,11 +93,11 @@ class lucia_start:
             self.cont.append (-1)
             self.player.append (18)
             self.cont.append (11)
-            if quests.get ("demo").get ("know_noise") != 0 and quests.get 
("demo").get ("know_olivers_noise") == 0:
+            if quests.get_val ("demo").get_val ("know_noise") != 0 and 
quests.get_val ("demo").get_val ("know_olivers_noise") == 0:
 
                 self.player.append (84)
                 self.cont.append (51)
-            if quests.get ("demo").get ("know_olivers_noise") == 1:
+            if quests.get_val ("demo").get_val ("know_olivers_noise") == 1:
 
                 self.player.append (67)
                 self.cont.append (42)
@@ -115,7 +115,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (70)
         self.cont.append (-1)
-        if quests.get ("demo").get ("know_talan_singing") == 0:
+        if quests.get_val ("demo").get_val ("know_talan_singing") == 0:
 
             self.player.append (71)
             self.cont.append (44)
@@ -140,7 +140,7 @@ class lucia_start:
         self.player.append (-1)
 
     def answer71 (self):
-        if the_npc.get ("know_shairs_clerk") == 1:
+        if the_npc.get_val ("know_shairs_clerk") == 1:
 
             self.color = the_npc.get_color()
             self.npc.append (72)
@@ -179,7 +179,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (74)
         self.cont.append (-1)
-        quests.get ("demo").set ("know_talan_singing", 1)
+        quests.get_val ("demo").set_val ("know_talan_singing", 1)
 
         self.player.append (75)
         self.cont.append (-1)
@@ -202,7 +202,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (74)
         self.cont.append (-1)
-        quests.get ("demo").set ("know_talan_singing", 1)
+        quests.get_val ("demo").set_val ("know_talan_singing", 1)
 
         self.player.append (75)
         self.cont.append (-1)
@@ -212,7 +212,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (85)
         self.cont.append (-1)
-        if quests.get ("demo").get ("know_talan_singing") == 0:
+        if quests.get_val ("demo").get_val ("know_talan_singing") == 0:
 
             self.player.append (71)
             self.cont.append (44)
@@ -297,7 +297,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (12)
         self.cont.append (-1)
-        quests.get ("demo").set ("complain_about_wastesedge" , 1)
+        quests["demo"].set_val ("complain_about_wastesedge" , 1)
 
         self.player.append (29)
         self.cont.append (19)
@@ -323,7 +323,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (54)
         self.cont.append (35)
-        the_npc.set ("talked_about_theft", 1) 
+        the_npc.set_val ("talked_about_theft", 1) 
 
         self.player.append (-1)
 
@@ -333,11 +333,11 @@ class lucia_start:
         self.cont.append (-1)
         self.player.append (56)
         self.cont.append (36)
-        if quests.get ("demo").get ("know_noise") != 0 and quests.get 
("demo").get ("know_olivers_noise") == 0:
+        if quests.get_val ("demo").get_val ("know_noise") != 0 and 
quests.get_val ("demo").get_val ("know_olivers_noise") == 0:
 
             self.player.append (84)
             self.cont.append (51)
-        if quests.get ("demo").get ("know_olivers_noise") == 1:
+        if quests.get_val ("demo").get_val ("know_olivers_noise") == 1:
 
             self.player.append (67)
             self.cont.append (42)
@@ -417,11 +417,11 @@ class lucia_start:
         self.cont.append (-1)
         self.player.append (65)
         self.cont.append (41)
-        if quests.get ("demo").get ("know_noise") != 0 and quests.get 
("demo").get ("know_olivers_noise") == 0:
+        if quests.get_val ("demo").get_val ("know_noise") != 0 and 
quests.get_val ("demo").get_val ("know_olivers_noise") == 0:
 
             self.player.append (84)
             self.cont.append (51)
-        if quests.get ("demo").get ("know_olivers_noise") == 1:
+        if quests.get_val ("demo").get_val ("know_olivers_noise") == 1:
 
             self.player.append (67)
             self.cont.append (42)
@@ -453,11 +453,11 @@ class lucia_start:
             self.cont.append (-1)
             self.player.append (18)
             self.cont.append (11)
-            if quests.get ("demo").get ("know_noise") != 0 and quests.get 
("demo").get ("know_olivers_noise") == 0:
+            if quests.get_val ("demo").get_val ("know_noise") != 0 and 
quests.get_val ("demo").get_val ("know_olivers_noise") == 0:
 
                 self.player.append (84)
                 self.cont.append (51)
-            if quests.get ("demo").get ("know_olivers_noise") == 1:
+            if quests.get_val ("demo").get_val ("know_olivers_noise") == 1:
 
                 self.player.append (67)
                 self.cont.append (42)
@@ -499,7 +499,7 @@ class lucia_start:
         pass
 
     def answer3 (self):
-        the_npc.set ("talked_to", 1)
+        the_npc.set_val ("talked_to", 1)
 
         self.color = the_npc.get_color()
         self.npc.append (4)
@@ -544,17 +544,17 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (54)
         self.cont.append (35)
-        the_npc.set ("talked_about_theft", 1) 
+        the_npc.set_val ("talked_about_theft", 1) 
 
         self.player.append (-1)
 
     def answer27 (self):
-        the_npc.set ("know_shairs_clerk", 1)
+        the_npc.set_val ("know_shairs_clerk", 1)
 
         self.color = the_npc.get_color()
         self.npc.append (28)
         self.cont.append (-1)
-        quests.get ("demo").set ("complain_about_wastesedge" , 1)
+        quests["demo"].set_val ("complain_about_wastesedge" , 1)
 
         self.player.append (29)
         self.cont.append (19)
@@ -572,11 +572,11 @@ class lucia_start:
             self.cont.append (-1)
             self.player.append (18)
             self.cont.append (11)
-            if quests.get ("demo").get ("know_noise") != 0 and quests.get 
("demo").get ("know_olivers_noise") == 0:
+            if quests.get_val ("demo").get_val ("know_noise") != 0 and 
quests.get_val ("demo").get_val ("know_olivers_noise") == 0:
 
                 self.player.append (84)
                 self.cont.append (51)
-            if quests.get ("demo").get ("know_olivers_noise") == 1:
+            if quests.get_val ("demo").get_val ("know_olivers_noise") == 1:
 
                 self.player.append (67)
                 self.cont.append (42)
@@ -595,7 +595,7 @@ class lucia_start:
         self.npc.append (16)
         self.cont.append (10)
         self.talked_about_fingolson = 1
-        the_npc.set ("talked_about_theft", 1)
+        the_npc.set_val ("talked_about_theft", 1)
 
         self.player.append (-1)
 
@@ -618,7 +618,7 @@ class lucia_start:
         self.player.append (-1)
 
     def answer2 (self):
-        the_npc.set ("talked_to", 1)
+        the_npc.set_val ("talked_to", 1)
 
         self.color = the_npc.get_color()
         self.npc.append (7)
@@ -636,7 +636,7 @@ class lucia_start:
         self.player.append (-1)
 
     def answer8 (self):
-        the_npc.set ("know_shairs_clerk", 1)
+        the_npc.set_val ("know_shairs_clerk", 1)
 
         self.color = the_npc.get_color()
         self.npc.append (9)
@@ -655,7 +655,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (14)
         self.cont.append (-1)
-        quests.get ("demo").set ("complain_about_wastesedge" , 1)
+        quests["demo"].set_val ("complain_about_wastesedge" , 1)
 
         self.player.append (15)
         self.cont.append (9)
@@ -666,7 +666,7 @@ class lucia_start:
         self.npc.append (16)
         self.cont.append (10)
         self.talked_about_fingolson = 1
-        the_npc.set ("talked_about_theft", 1)
+        the_npc.set_val ("talked_about_theft", 1)
 
         self.player.append (-1)
 
@@ -674,7 +674,7 @@ class lucia_start:
         self.color = the_npc.get_color()
         self.npc.append (12)
         self.cont.append (-1)
-        quests.get ("demo").set ("complain_about_wastesedge" , 1)
+        quests["demo"].set_val ("complain_about_wastesedge" , 1)
 
         self.player.append (29)
         self.cont.append (19)
diff --git a/scripts/dialogues/oliver_start.py 
b/scripts/dialogues/oliver_start.py
index 5056051..93c6a87 100755
--- a/scripts/dialogues/oliver_start.py
+++ b/scripts/dialogues/oliver_start.py
@@ -1,6 +1,6 @@
 class oliver_start:
     loop = []
-    strings = ["As he notices you, the boy stops whatever he's been doing. 
With a cheerful grin on his face, he turns towards you.", "Hello sir! Welcome 
to Waste's Edge.", "Oh! I am Oliver, sir. I help Mum and Dad with the Inn. 
Looking after the stables and such.", "Why yes! Would you belive that we have 
an actual Elven Lady staying at the Inn?", "Really? An Elven Lady?", "Yes, sir. 
Lady Silverbeard. From Cirdanth. And her two servants! She frightened me a bit, 
but now she's locked up in [...]
+    strings = ["As he notices you, the boy stops whatever he's been doing. 
With a cheerful grin on his face, he turns towards you.", "Hello sir! Welcome 
to Waste's Edge.", "Oh! I am Oliver, sir. I help Mum and Dad with the Inn. 
Looking after the stables and such.", "Why yes! Would you belive that we have 
an actual Elven Lady staying at the Inn?", "Really? An Elven Lady?", "Yes, sir. 
Lady Silverbeard. From Cirdanth. And her two servants! She frightened me a bit, 
but now she's locked up in [...]
 
     def set_name (self, new_name):
         pass
@@ -12,7 +12,7 @@ class oliver_start:
         pass
 
     def __init__(self):
-        self.dialogue = [self.start, self.answer0, self.answer4, self.answer6, 
self.answer7, self.answer8, self.answer11, self.answer13, self.answer15, 
self.answer16, self.answer18, self.answer19, self.answer21, None]
+        self.dialogue = [self.start, self.answer0, self.answer4, self.answer6, 
self.answer7, self.answer8, self.answer11, self.answer13, self.answer15, 
self.answer16, self.answer18, self.answer19, self.answer21, self.answer24, 
self.answer26, self.answer27, self.answer28, self.answer30, self.answer33, None]
 
     def clear (self):
         del self.dialogue
@@ -27,43 +27,42 @@ class oliver_start:
         self.dialogue[answer]()
 
     def start (self):
-        self.color = 0
-        self.npc.append (0)
-        self.cont.append (1)
-        self.player.append (-1)
+        if the_npc.get_val ("goto_players_room") == 2:
 
-    def answer0 (self):
-        self.color = the_npc.get_color()
-        self.npc.append (1)
-        self.cont.append (-1)
-        self.player.append (6)
-        self.cont.append (3)
-        self.player.append (-1)
+            self.color = 0
+            self.npc.append (28)
+            self.cont.append (16)
+            the_npc.set_val ("goto_players_room" , 0)
+            the_npc.set_val ("talked_to" , 1)
+            the_npc.set_val ("goto_barn" , 1)
 
-    def answer6 (self):
-        self.color = the_npc.get_color()
-        self.npc.append (2)
-        self.cont.append (-1)
-        self.player.append (7)
-        self.cont.append (4)
-        self.player.append (8)
-        self.cont.append (5)
-        self.player.append (10)
-        self.cont.append (-1)
-        self.player.append (-1)
+            self.player.append (-1)
+        elif the_npc.get_val ("talked_to") == 0:
 
-    def answer10 (self):
-        pass
+            self.color = 0
+            self.npc.append (0)
+            self.cont.append (1)
+            the_npc.set_val ("talked_to" , 1)
 
-    def answer8 (self):
+            self.player.append (-1)
+        else:
+
+            self.color = 0
+            self.npc.append (24)
+            self.cont.append (13)
+            self.player.append (-1)
+
+    def answer24 (self):
         self.color = the_npc.get_color()
-        self.npc.append (9)
+        self.npc.append (25)
         self.cont.append (-1)
-        self.player.append (13)
-        self.cont.append (7)
+        self.player.append (26)
+        self.cont.append (14)
+        self.player.append (27)
+        self.cont.append (15)
         self.player.append (-1)
 
-    def answer13 (self):
+    def answer27 (self):
         self.color = the_npc.get_color()
         self.npc.append (14)
         self.cont.append (-1)
@@ -85,7 +84,7 @@ class oliver_start:
         self.color = the_npc.get_color()
         self.npc.append (22)
         self.cont.append (-1)
-        quests.get ("demo").set ("know_olivers_noise" , 1)
+        quests["demo"].set_val ("know_olivers_noise" , 1)
 
         self.player.append (23)
         self.cont.append (-1)
@@ -98,13 +97,13 @@ class oliver_start:
         self.color = the_npc.get_color()
         self.npc.append (22)
         self.cont.append (-1)
-        quests.get ("demo").set ("know_olivers_noise" , 1)
+        quests["demo"].set_val ("know_olivers_noise" , 1)
 
         self.player.append (23)
         self.cont.append (-1)
         self.player.append (-1)
 
-    def answer7 (self):
+    def answer26 (self):
         self.color = the_npc.get_color()
         self.npc.append (3)
         self.cont.append (-1)
@@ -152,3 +151,88 @@ class oliver_start:
         self.player.append (15)
         self.cont.append (8)
         self.player.append (-1)
+
+    def answer0 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (1)
+        self.cont.append (-1)
+        self.player.append (6)
+        self.cont.append (3)
+        self.player.append (-1)
+
+    def answer6 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (2)
+        self.cont.append (-1)
+        self.player.append (7)
+        self.cont.append (4)
+        self.player.append (8)
+        self.cont.append (5)
+        self.player.append (10)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer10 (self):
+        pass
+
+    def answer8 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (9)
+        self.cont.append (-1)
+        self.player.append (13)
+        self.cont.append (7)
+        self.player.append (-1)
+
+    def answer13 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (14)
+        self.cont.append (-1)
+        self.player.append (19)
+        self.cont.append (11)
+        self.player.append (18)
+        self.cont.append (10)
+        self.player.append (-1)
+
+    def answer7 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (3)
+        self.cont.append (-1)
+        self.player.append (4)
+        self.cont.append (2)
+        self.player.append (11)
+        self.cont.append (6)
+        self.player.append (-1)
+
+    def answer28 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (29)
+        self.cont.append (-1)
+        self.player.append (30)
+        self.cont.append (17)
+        self.player.append (31)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer31 (self):
+        pass
+
+    def answer30 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (32)
+        self.cont.append (-1)
+        self.player.append (27)
+        self.cont.append (15)
+        self.player.append (33)
+        self.cont.append (18)
+        self.player.append (-1)
+
+    def answer33 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (34)
+        self.cont.append (-1)
+        self.player.append (35)
+        self.cont.append (-1)
+        self.player.append (-1)
+
+    def answer35 (self):
+        pass
diff --git a/scripts/dialogues/orloth_start.py 
b/scripts/dialogues/orloth_start.py
index 9b3f0a9..1044454 100755
--- a/scripts/dialogues/orloth_start.py
+++ b/scripts/dialogues/orloth_start.py
@@ -1,6 +1,6 @@
 class orloth_start:
     loop = []
-    strings = ["This is seemingly the Innkeeper and owner of the place. He 
appears to be lost in thought and from his eyes you can see that he hasn't 
slept much lately. His worried face brightens up though as you approach, and 
his voice is warm and friendly:", "Welcome to Waste's Edge, traveller. Here you 
shall find the pleasures of a hot meal and bath if you desire. And safe and 
comfortable lodging. Although, I fear, this is no longer granted for sure. 
You've chosen troublesome times fo [...]
+    strings = ["This is seemingly the Innkeeper and owner of the place. He 
appears to be lost in thought and from his eyes you can see that he hasn't 
slept much lately. His worried face brightens up though as you approach, and 
his voice is warm and friendly:", "Welcome to Waste's Edge, traveller. Here you 
shall find the pleasures of a hot meal and bath if you desire. And safe and 
comfortable lodging. Although, I fear, this is no longer granted for sure. 
You've chosen troublesome times fo [...]
 
     def set_name (self, new_name):
         pass
@@ -12,22 +12,31 @@ class orloth_start:
         pass
 
     def __init__(self):
-        self.dialogue = [self.start, self.answer0, self.answer1, self.answer2, 
self.answer4, self.answer5, self.answer7, self.answer8, self.answer9, 
self.answer11, self.answer12, self.answer13, self.answer15, self.answer17, 
self.answer19, self.answer20, self.answer21, self.answer23, self.answer24, 
self.answer26, self.answer27, self.answer29, self.answer30, self.answer33, 
self.answer34, self.answer35, self.answer36, self.answer38, self.answer39, 
self.answer41, self.answer43, self.answer45 [...]
+        self.dialogue = [self.start, self.answer0, self.answer1, self.answer3, 
self.answer4, self.answer6, self.answer7, self.answer9, self.answer10, 
self.answer11, self.answer13, self.answer15, self.answer16, self.answer17, 
self.answer19, self.answer20, self.answer22, self.answer23, self.answer25, 
self.answer26, self.answer29, self.answer32, self.answer34, self.answer35, 
self.answer38, self.answer39, self.answer41, self.answer43, self.answer44, 
self.answer46, self.answer48, self.answer4 [...]
 
     def clear (self):
         del self.dialogue
 
     def thief (self):
-        if the_npc.get ("told_about_shair") == 1:
+        if the_npc.get_val ("told_about_shair") == 1:
             return "responsible to their"
         else:
             return "thief to her"
     
     def your (self):
-        if the_npc.get ("told_about_shair") == 1:
+        if the_npc.get_val ("told_about_shair") == 1:
             return "your "
         else:
             return ""
+    
+    def __del__ (self):
+        oliver = characters["Oliver Redwyne"]
+        if oliver.get_val ("goto_players_room") == 1:
+            oliver.set_val ("goto_players_room", 2)
+            from events import switch_submap
+            switch_submap (the_player, 12, 5, 3, 1)
+            switch_submap (oliver, 12, 5, 4, 0)
+    
 
 
     def __getattr__ (self, name):
@@ -40,730 +49,810 @@ class orloth_start:
         self.dialogue[answer]()
 
     def start (self):
-        if the_npc.get ("talked_to") == 0:
+        if 1 == 0:
+
+            self.color = the_npc.get_color()
+            self.npc.append (9)
+            self.cont.append (7)
+            the_npc.set_val ("talked_about_guests", 1)
+
+            self.player.append (-1)
+        if the_npc.get_val ("talked_to") == 0:
 
             self.color = 0
             self.npc.append (0)
             self.cont.append (1)
-            the_npc.set ("talked_to", 1)
+            the_npc.set_val ("talked_to", 1)
             self.first_run = 1
 
             self.player.append (-1)
         else:
 
             self.color = the_npc.get_color()
-            self.npc.append (58)
+            self.npc.append (37)
             self.cont.append (-1)
-            self.player.append (67)
-            self.cont.append (45)
-            self.player.append (110)
-            self.cont.append (77)
+            self.player.append (46)
+            self.cont.append (29)
+            self.player.append (88)
+            self.cont.append (60)
             self.player.append (-1)
 
-    def answer222 (self):
+    def answer88 (self):
         self.color = the_npc.get_color()
-        self.npc.append (68)
+        self.npc.append (47)
         self.cont.append (-1)
-        if quests.get ("demo").get ("complain_about_wastesedge") == 1:
+        if quests["demo"].get_val ("complain_about_wastesedge") == 1:
 
-            self.player.append (69)
-            self.cont.append (46)
-        if the_npc.get ("talked_about_guests") == 1:
+            self.player.append (48)
+            self.cont.append (30)
+        if the_npc.get_val ("talked_about_guests") == 1:
 
-            self.player.append (76)
-            self.cont.append (-1)
-        if the_npc.get ("talked_about_guests") == 0:
+            self.player.append (54)
+            self.cont.append (32)
+        if the_npc.get_val ("talked_about_guests") == 0:
 
-            self.player.append (74)
-            self.cont.append (49)
-        if the_npc.get ("talked_about_theft") == 0:
+            self.player.append (52)
+            self.cont.append (-1)
+        if the_npc.get_val ("talked_about_theft") == 0:
 
-            self.player.append (72)
-            self.cont.append (48)
-        if the_npc.get ("talked_about_theft") == 1:
+            self.player.append (51)
+            self.cont.append (-1)
+        if the_npc.get_val ("talked_about_theft") == 1:
 
-            self.player.append (70)
-            self.cont.append (47)
+            self.player.append (49)
+            self.cont.append (31)
         self.player.append (-1)
 
-    def answer70 (self):
+    def answer49 (self):
         self.color = the_npc.get_color()
-        self.npc.append (71)
+        self.npc.append (50)
         self.cont.append (-1)
+        self.player.append (55)
+        self.cont.append (33)
+        self.player.append (56)
+        self.cont.append (34)
+        self.player.append (57)
+        self.cont.append (35)
         self.player.append (77)
-        self.cont.append (50)
-        self.player.append (78)
-        self.cont.append (51)
-        self.player.append (79)
         self.cont.append (52)
-        self.player.append (99)
-        self.cont.append (69)
         self.player.append (-1)
 
-    def answer99 (self):
+    def answer77 (self):
         self.color = the_npc.get_color()
-        self.npc.append (104)
-        self.cont.append (74)
+        self.npc.append (82)
+        self.cont.append (57)
         self.player.append (-1)
 
-    def answer104 (self):
+    def answer82 (self):
         self.color = the_npc.get_color()
-        self.npc.append (105)
-        self.cont.append (75)
+        self.npc.append (83)
+        self.cont.append (58)
         self.player.append (-1)
 
-    def answer105 (self):
+    def answer83 (self):
         self.color = the_npc.get_color()
-        self.npc.append (107)
+        self.npc.append (85)
         self.cont.append (-1)
-        self.player.append (94)
-        self.cont.append (65)
+        self.player.append (72)
+        self.cont.append (48)
         self.player.append (-1)
 
-    def answer94 (self):
+    def answer72 (self):
         self.color = the_npc.get_color()
-        self.npc.append (108)
+        self.npc.append (86)
         self.cont.append (-1)
-        self.player.append (109)
+        self.player.append (87)
         self.cont.append (-1)
-        if quests.get ("demo").get ("complain_about_wastesedge") == 1:
+        if quests["demo"].get_val ("complain_about_wastesedge") == 1:
 
-            self.player.append (69)
-            self.cont.append (46)
-        if the_npc.get ("talked_about_guests") == 1:
+            self.player.append (48)
+            self.cont.append (30)
+        if the_npc.get_val ("talked_about_guests") == 1:
 
-            self.player.append (76)
-            self.cont.append (-1)
-        if the_npc.get ("talked_about_guests") == 0:
+            self.player.append (54)
+            self.cont.append (32)
+        if the_npc.get_val ("talked_about_guests") == 0:
 
-            self.player.append (74)
-            self.cont.append (49)
+            self.player.append (52)
+            self.cont.append (-1)
         self.player.append (-1)
 
-    def answer109 (self):
+    def answer87 (self):
         pass
 
-    def answer79 (self):
+    def answer57 (self):
         self.color = the_npc.get_color()
-        self.npc.append (95)
-        self.cont.append (66)
+        self.npc.append (73)
+        self.cont.append (49)
         self.player.append (-1)
 
-    def answer95 (self):
+    def answer73 (self):
         self.color = the_npc.get_color()
-        self.npc.append (96)
-        self.cont.append (67)
+        self.npc.append (74)
+        self.cont.append (50)
         self.player.append (-1)
 
-    def answer96 (self):
+    def answer74 (self):
         self.color = the_npc.get_color()
-        self.npc.append (97)
-        self.cont.append (68)
+        self.npc.append (75)
+        self.cont.append (51)
         self.player.append (-1)
 
-    def answer97 (self):
+    def answer75 (self):
         self.color = the_npc.get_color()
-        self.npc.append (98)
+        self.npc.append (76)
         self.cont.append (-1)
-        self.player.append (101)
-        self.cont.append (71)
-        self.player.append (94)
-        self.cont.append (65)
+        self.player.append (79)
+        self.cont.append (54)
+        self.player.append (72)
+        self.cont.append (48)
         self.player.append (-1)
 
-    def answer101 (self):
+    def answer79 (self):
         self.color = the_npc.get_color()
-        self.npc.append (104)
-        self.cont.append (74)
+        self.npc.append (82)
+        self.cont.append (57)
         self.player.append (-1)
 
-    def answer78 (self):
+    def answer56 (self):
         self.color = the_npc.get_color()
-        self.npc.append (87)
-        self.cont.append (59)
+        self.npc.append (65)
+        self.cont.append (42)
         self.player.append (-1)
 
-    def answer87 (self):
+    def answer65 (self):
         self.color = the_npc.get_color()
-        self.npc.append (88)
-        self.cont.append (60)
+        self.npc.append (66)
+        self.cont.append (43)
         self.player.append (-1)
 
-    def answer88 (self):
+    def answer66 (self):
         self.color = the_npc.get_color()
-        self.npc.append (89)
-        self.cont.append (61)
+        self.npc.append (67)
+        self.cont.append (44)
         self.player.append (-1)
 
-    def answer89 (self):
+    def answer67 (self):
         self.color = the_npc.get_color()
-        self.npc.append (90)
-        self.cont.append (62)
+        self.npc.append (68)
+        self.cont.append (45)
         self.player.append (-1)
 
-    def answer90 (self):
+    def answer68 (self):
         self.color = the_npc.get_color()
-        self.npc.append (91)
-        self.cont.append (63)
+        self.npc.append (69)
+        self.cont.append (46)
         self.player.append (-1)
 
-    def answer91 (self):
+    def answer69 (self):
         self.color = the_npc.get_color()
-        self.npc.append (92)
+        self.npc.append (70)
         self.cont.append (-1)
-        self.player.append (93)
-        self.cont.append (64)
-        self.player.append (100)
-        self.cont.append (70)
-        self.player.append (94)
-        self.cont.append (65)
+        self.player.append (71)
+        self.cont.append (47)
+        self.player.append (78)
+        self.cont.append (53)
+        self.player.append (72)
+        self.cont.append (48)
         self.player.append (-1)
 
-    def answer100 (self):
+    def answer78 (self):
         self.color = the_npc.get_color()
-        self.npc.append (106)
-        self.cont.append (76)
+        self.npc.append (84)
+        self.cont.append (59)
         self.player.append (-1)
 
-    def answer106 (self):
+    def answer84 (self):
         self.color = the_npc.get_color()
-        self.npc.append (105)
-        self.cont.append (75)
+        self.npc.append (83)
+        self.cont.append (58)
         self.player.append (-1)
 
-    def answer93 (self):
+    def answer71 (self):
         self.color = the_npc.get_color()
-        self.npc.append (95)
-        self.cont.append (66)
+        self.npc.append (73)
+        self.cont.append (49)
         self.player.append (-1)
 
-    def answer77 (self):
+    def answer55 (self):
         self.color = the_npc.get_color()
-        self.npc.append (80)
-        self.cont.append (53)
+        self.npc.append (58)
+        self.cont.append (36)
         self.player.append (-1)
 
-    def answer80 (self):
+    def answer58 (self):
         self.color = the_npc.get_color()
-        self.npc.append (81)
-        self.cont.append (54)
+        self.npc.append (59)
+        self.cont.append (37)
         self.player.append (-1)
 
-    def answer81 (self):
+    def answer59 (self):
         self.color = the_npc.get_color()
-        self.npc.append (82)
-        self.cont.append (55)
+        self.npc.append (60)
+        self.cont.append (38)
         self.player.append (-1)
 
-    def answer82 (self):
+    def answer60 (self):
         self.color = the_npc.get_color()
-        self.npc.append (83)
+        self.npc.append (61)
         self.cont.append (-1)
-        self.player.append (84)
-        self.cont.append (56)
-        self.player.append (85)
-        self.cont.append (57)
-        self.player.append (86)
-        self.cont.append (58)
+        self.player.append (62)
+        self.cont.append (39)
+        self.player.append (63)
+        self.cont.append (40)
+        self.player.append (64)
+        self.cont.append (41)
         self.player.append (-1)
 
-    def answer86 (self):
+    def answer64 (self):
         self.color = the_npc.get_color()
-        self.npc.append (108)
+        self.npc.append (86)
         self.cont.append (-1)
-        self.player.append (109)
+        self.player.append (87)
         self.cont.append (-1)
-        if quests.get ("demo").get ("complain_about_wastesedge") == 1:
+        if quests["demo"].get_val ("complain_about_wastesedge") == 1:
 
-            self.player.append (69)
-            self.cont.append (46)
-        if the_npc.get ("talked_about_guests") == 1:
+            self.player.append (48)
+            self.cont.append (30)
+        if the_npc.get_val ("talked_about_guests") == 1:
 
-            self.player.append (76)
-            self.cont.append (-1)
-        if the_npc.get ("talked_about_guests") == 0:
+            self.player.append (54)
+            self.cont.append (32)
+        if the_npc.get_val ("talked_about_guests") == 0:
 
-            self.player.append (74)
-            self.cont.append (49)
+            self.player.append (52)
+            self.cont.append (-1)
         self.player.append (-1)
 
-    def answer85 (self):
+    def answer63 (self):
         self.color = the_npc.get_color()
-        self.npc.append (95)
-        self.cont.append (66)
+        self.npc.append (73)
+        self.cont.append (49)
         self.player.append (-1)
 
-    def answer84 (self):
+    def answer62 (self):
         self.color = the_npc.get_color()
-        self.npc.append (87)
-        self.cont.append (59)
+        self.npc.append (65)
+        self.cont.append (42)
         self.player.append (-1)
 
-    def answer72 (self):
-        self.color = the_npc.get_color()
-        self.npc.append (33)
-        self.cont.append (23)
-        the_npc.set ("talked_about_theft", 1)
+    def answer51 (self):
+        pass
 
-        self.player.append (-1)
+    def answer52 (self):
+        pass
 
-    def answer33 (self):
+    def answer54 (self):
         self.color = the_npc.get_color()
-        self.npc.append (34)
-        self.cont.append (24)
+        self.npc.append (89)
+        self.cont.append (-1)
+        self.player.append (90)
+        self.cont.append (61)
+        self.player.append (91)
+        self.cont.append (62)
+        self.player.append (92)
+        self.cont.append (63)
+        self.player.append (93)
+        self.cont.append (-1)
         self.player.append (-1)
 
-    def answer34 (self):
+    def answer93 (self):
+        pass
+
+    def answer92 (self):
         self.color = the_npc.get_color()
-        self.npc.append (35)
-        self.cont.append (25)
+        self.npc.append (99)
+        self.cont.append (-1)
         self.player.append (-1)
 
-    def answer35 (self):
+    def answer91 (self):
         self.color = the_npc.get_color()
-        self.npc.append (36)
-        self.cont.append (26)
+        self.npc.append (97)
+        self.cont.append (66)
         self.player.append (-1)
 
-    def answer36 (self):
+    def answer97 (self):
         self.color = the_npc.get_color()
-        self.npc.append (37)
+        self.npc.append (98)
         self.cont.append (-1)
-        self.player.append (38)
-        self.cont.append (27)
-        self.player.append (39)
-        self.cont.append (28)
         self.player.append (-1)
 
-    def answer39 (self):
+    def answer90 (self):
         self.color = the_npc.get_color()
-        self.npc.append (43)
-        self.cont.append (30)
+        self.npc.append (94)
+        self.cont.append (64)
         self.player.append (-1)
 
-    def answer43 (self):
+    def answer94 (self):
         self.color = the_npc.get_color()
-        self.npc.append (46)
-        self.cont.append (32)
+        self.npc.append (95)
+        self.cont.append (65)
         self.player.append (-1)
 
-    def answer46 (self):
+    def answer95 (self):
         self.color = the_npc.get_color()
-        self.npc.append (47)
-        self.cont.append (33)
+        self.npc.append (96)
+        self.cont.append (-1)
         self.player.append (-1)
 
-    def answer47 (self):
+    def answer48 (self):
         self.color = the_npc.get_color()
-        self.npc.append (48)
-        self.cont.append (-1)
-        self.player.append (49)
-        self.cont.append (34)
+        self.npc.append (43)
+        self.cont.append (27)
         self.player.append (-1)
 
-    def answer49 (self):
+    def answer43 (self):
         self.color = the_npc.get_color()
-        self.npc.append (50)
-        self.cont.append (35)
+        self.npc.append (44)
+        self.cont.append (28)
         self.player.append (-1)
 
-    def answer50 (self):
+    def answer44 (self):
         self.color = the_npc.get_color()
-        self.npc.append (51)
-        self.cont.append (-1)
-        self.player.append (52)
-        self.cont.append (36)
+        self.npc.append (80)
+        self.cont.append (55)
         self.player.append (-1)
 
-    def answer52 (self):
+    def answer80 (self):
         self.color = the_npc.get_color()
-        self.npc.append (53)
-        self.cont.append (37)
+        self.npc.append (81)
+        self.cont.append (56)
         self.player.append (-1)
 
-    def answer53 (self):
+    def answer81 (self):
         self.color = the_npc.get_color()
-        self.npc.append (54)
-        self.cont.append (38)
+        self.npc.append (45)
+        self.cont.append (-1)
+        self.player.append (87)
+        self.cont.append (-1)
+        if the_npc.get_val ("talked_about_guests") == 0:
+
+            self.player.append (52)
+            self.cont.append (-1)
+        if the_npc.get_val ("talked_about_theft") == 1:
+
+            self.player.append (49)
+            self.cont.append (31)
+        if the_npc.get_val ("talked_about_theft") == 0:
+
+            self.player.append (51)
+            self.cont.append (-1)
+        if the_npc.get_val ("talked_about_guests") == 1:
+
+            self.player.append (54)
+            self.cont.append (32)
         self.player.append (-1)
 
-    def answer54 (self):
+    def answer46 (self):
         self.color = the_npc.get_color()
-        self.npc.append (55)
-        self.cont.append (39)
-        self.player.append (-1)
+        self.npc.append (47)
+        self.cont.append (-1)
+        if quests["demo"].get_val ("complain_about_wastesedge") == 1:
 
-    def answer55 (self):
-        if self.first_run == 1:
+            self.player.append (48)
+            self.cont.append (30)
+        if the_npc.get_val ("talked_about_guests") == 1:
 
-            self.color = the_npc.get_color()
-            self.npc.append (56)
-            self.cont.append (-1)
-            self.player.append (57)
-            self.cont.append (40)
-            self.player.append (11)
-            self.cont.append (9)
-            self.player.append (-1)
-        else:
+            self.player.append (54)
+            self.cont.append (32)
+        if the_npc.get_val ("talked_about_guests") == 0:
 
-            self.color = the_npc.get_color()
-            self.npc.append (73)
+            self.player.append (52)
             self.cont.append (-1)
-            if the_npc.get ("talked_about_guests") == 1:
+        if the_npc.get_val ("talked_about_theft") == 0:
 
-                self.player.append (76)
-                self.cont.append (-1)
-            if the_npc.get ("talked_about_guests") == 0:
+            self.player.append (51)
+            self.cont.append (-1)
+        if the_npc.get_val ("talked_about_theft") == 1:
 
-                self.player.append (74)
-                self.cont.append (49)
-            self.player.append (-1)
+            self.player.append (49)
+            self.cont.append (31)
+        self.player.append (-1)
 
-    def answer11 (self):
+    def answer0 (self):
         self.color = the_npc.get_color()
-        self.npc.append (13)
-        self.cont.append (11)
-        the_npc.set ("talked_about_guests", 1)
+        self.npc.append (1)
+        self.cont.append (2)
+        self.player.append (-1)
 
+    def answer1 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (2)
+        self.cont.append (-1)
+        self.player.append (3)
+        self.cont.append (3)
         self.player.append (-1)
 
-    def answer13 (self):
+    def answer3 (self):
         self.color = the_npc.get_color()
-        self.npc.append (17)
-        self.cont.append (13)
+        self.npc.append (4)
+        self.cont.append (4)
         self.player.append (-1)
 
-    def answer17 (self):
+    def answer4 (self):
         self.color = the_npc.get_color()
-        self.npc.append (18)
+        self.npc.append (5)
         self.cont.append (-1)
-        self.player.append (19)
-        self.cont.append (14)
-        self.player.append (20)
-        self.cont.append (15)
+        self.player.append (6)
+        self.cont.append (5)
+        self.player.append (7)
+        self.cont.append (6)
         self.player.append (-1)
 
-    def answer20 (self):
-        if self.first_run == 1:
-
-            self.color = the_npc.get_color()
-            self.npc.append (32)
-            self.cont.append (-1)
-            self.player.append (12)
-            self.cont.append (10)
-            self.player.append (57)
-            self.cont.append (40)
-            self.player.append (-1)
-        else:
-
-            self.color = the_npc.get_color()
-            self.npc.append (75)
-            self.cont.append (-1)
-            if the_npc.get ("talked_about_guests") == 0:
-
-                self.player.append (74)
-                self.cont.append (49)
-            if the_npc.get ("talked_about_theft") == 1:
+    def answer7 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (8)
+        self.cont.append (-1)
+        self.player.append (103)
+        self.cont.append (68)
+        self.player.append (-1)
 
-                self.player.append (70)
-                self.cont.append (47)
-            self.player.append (-1)
+    def answer103 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (105)
+        self.cont.append (-1)
+        self.player.append (107)
+        self.cont.append (71)
+        self.player.append (108)
+        self.cont.append (-1)
+        self.player.append (106)
+        self.cont.append (70)
+        self.player.append (-1)
 
-    def answer12 (self):
+    def answer106 (self):
         self.color = the_npc.get_color()
-        self.npc.append (33)
-        self.cont.append (23)
-        the_npc.set ("talked_about_theft", 1)
+        self.npc.append (40)
+        self.cont.append (-1)
+        self.player.append (39)
+        self.cont.append (25)
+        if the_npc.get_val ("told_about_shair") == 0:
 
+            self.player.append (38)
+            self.cont.append (24)
         self.player.append (-1)
 
-    def answer19 (self):
+    def answer38 (self):
+        the_npc.set_val ("told_about_shair", 1)
+        myquest = quests["demo"]
+        myvar = myquest.get_val ("work_4_shair")
+        myvar = myvar | 1
+        myquest.set_val ("work_4_shair", myvar)
+        
+
         self.color = the_npc.get_color()
-        self.npc.append (21)
-        self.cont.append (16)
+        self.npc.append (41)
+        self.cont.append (26)
         self.player.append (-1)
 
-    def answer21 (self):
-        if self.fingolson_jest == 1:
+    def answer41 (self):
+        if characters["Oliver Redwyne"].get_val ("talked_to") == 1:
+
+            self.color = 0
+            self.npc.append (42)
+            self.cont.append (-1)
+            characters["Oliver Redwyne"].set_val ("goto_players_room" , 1)
 
-            self.color = the_npc.get_color()
-            self.npc.append (45)
-            self.cont.append (31)
             self.player.append (-1)
         else:
 
-            self.color = the_npc.get_color()
-            self.npc.append (22)
+            self.color = 0
+            self.npc.append (128)
             self.cont.append (-1)
-            self.fingolson_jest = 1
+            characters["Oliver Redwyne"].set_val ("goto_players_room" , 1)
 
-            self.player.append (23)
-            self.cont.append (17)
             self.player.append (-1)
 
-    def answer23 (self):
+    def answer39 (self):
         self.color = the_npc.get_color()
-        self.npc.append (24)
-        self.cont.append (18)
+        self.npc.append (41)
+        self.cont.append (26)
         self.player.append (-1)
 
-    def answer24 (self):
+    def answer108 (self):
+        pass
+
+    def answer107 (self):
         self.color = the_npc.get_color()
-        self.npc.append (25)
+        self.npc.append (109)
         self.cont.append (-1)
-        self.player.append (26)
-        self.cont.append (19)
-        self.player.append (20)
-        self.cont.append (15)
+        self.player.append (110)
+        self.cont.append (72)
+        self.player.append (111)
+        self.cont.append (73)
         self.player.append (-1)
 
-    def answer26 (self):
+    def answer111 (self):
         self.color = the_npc.get_color()
-        self.npc.append (27)
-        self.cont.append (20)
+        self.npc.append (112)
+        self.cont.append (74)
         self.player.append (-1)
 
-    def answer27 (self):
+    def answer112 (self):
         self.color = the_npc.get_color()
-        self.npc.append (28)
-        self.cont.append (-1)
-        self.player.append (20)
-        self.cont.append (15)
-        if self.first_run == 1:
-
-            self.player.append (29)
-            self.cont.append (21)
+        self.npc.append (113)
+        self.cont.append (75)
         self.player.append (-1)
 
-    def answer29 (self):
+    def answer113 (self):
         self.color = the_npc.get_color()
-        self.npc.append (30)
-        self.cont.append (22)
+        self.npc.append (114)
+        self.cont.append (76)
         self.player.append (-1)
 
-    def answer30 (self):
+    def answer114 (self):
         self.color = the_npc.get_color()
-        self.npc.append (31)
+        self.npc.append (115)
         self.cont.append (-1)
-        self.player.append (57)
-        self.cont.append (40)
-        self.player.append (12)
-        self.cont.append (10)
+        self.player.append (116)
+        self.cont.append (77)
         self.player.append (-1)
 
-    def answer45 (self):
+    def answer116 (self):
         self.color = the_npc.get_color()
-        self.npc.append (44)
+        self.npc.append (117)
         self.cont.append (-1)
-        self.player.append (26)
-        self.cont.append (19)
-        self.player.append (20)
-        self.cont.append (15)
+        self.player.append (118)
+        self.cont.append (78)
+        self.player.append (119)
+        self.cont.append (79)
+        self.player.append (120)
+        self.cont.append (80)
         self.player.append (-1)
 
-    def answer57 (self):
+    def answer120 (self):
         self.color = the_npc.get_color()
-        self.npc.append (61)
-        self.cont.append (-1)
-        self.player.append (60)
-        self.cont.append (42)
-        if the_npc.get ("told_about_shair") == 0:
+        self.npc.append (34)
+        self.cont.append (22)
+        self.player.append (-1)
 
-            self.player.append (59)
-            self.cont.append (41)
+    def answer34 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (35)
+        self.cont.append (23)
         self.player.append (-1)
 
-    def answer59 (self):
-        the_npc.set ("told_about_shair", 1)
-        myquest = quests.get ("demo")
-        myvar = myquest.get ("work_4_shair")
-        myvar = myvar | 1
-        myquest.set ("work_4_shair", myvar)
-        
+    def answer35 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (126)
+        self.cont.append (86)
+        self.player.append (-1)
 
+    def answer126 (self):
         self.color = the_npc.get_color()
-        self.npc.append (62)
-        self.cont.append (-1)
-        self.player.append (63)
+        self.npc.append (127)
         self.cont.append (-1)
         self.player.append (-1)
 
-    def answer63 (self):
-        pass
+    def answer119 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (123)
+        self.cont.append (83)
+        self.player.append (-1)
 
-    def answer60 (self):
+    def answer123 (self):
         self.color = the_npc.get_color()
-        self.npc.append (62)
-        self.cont.append (-1)
-        self.player.append (63)
-        self.cont.append (-1)
+        self.npc.append (124)
+        self.cont.append (84)
         self.player.append (-1)
 
-    def answer38 (self):
-        if self.fingolson_jest == 1:
+    def answer124 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (125)
+        self.cont.append (85)
+        self.player.append (-1)
 
-            self.color = the_npc.get_color()
-            self.npc.append (40)
-            self.cont.append (-1)
-            self.player.append (41)
-            self.cont.append (29)
-            self.player.append (-1)
-        else:
+    def answer125 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (35)
+        self.cont.append (23)
+        self.player.append (-1)
 
-            self.color = the_npc.get_color()
-            self.npc.append (42)
-            self.cont.append (-1)
-            self.fingolson_jest = 1
+    def answer118 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (30)
+        self.cont.append (-1)
+        self.player.append (29)
+        self.cont.append (20)
+        self.player.append (-1)
 
-            self.player.append (41)
-            self.cont.append (29)
-            self.player.append (-1)
+    def answer29 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (121)
+        self.cont.append (81)
+        self.player.append (-1)
 
-    def answer41 (self):
+    def answer121 (self):
         self.color = the_npc.get_color()
-        self.npc.append (43)
-        self.cont.append (30)
+        self.npc.append (33)
+        self.cont.append (-1)
+        self.player.append (122)
+        self.cont.append (82)
+        self.player.append (120)
+        self.cont.append (80)
         self.player.append (-1)
 
-    def answer74 (self):
+    def answer122 (self):
         self.color = the_npc.get_color()
-        self.npc.append (13)
-        self.cont.append (11)
-        the_npc.set ("talked_about_guests", 1)
+        self.npc.append (123)
+        self.cont.append (83)
+        self.player.append (-1)
 
+    def answer110 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (113)
+        self.cont.append (75)
         self.player.append (-1)
 
-    def answer76 (self):
-        pass
+    def answer6 (self):
+        the_npc.set_val ("told_about_shair", 1)
+        myvar = quests["demo"].get_val ("work_4_shair")
+        myvar = myvar | 1
+        quests["demo"].set_val ("work_4_shair" , myvar)
 
-    def answer69 (self):
         self.color = the_npc.get_color()
-        self.npc.append (64)
-        self.cont.append (43)
+        self.npc.append (10)
+        self.cont.append (8)
         self.player.append (-1)
 
-    def answer64 (self):
+    def answer10 (self):
         self.color = the_npc.get_color()
-        self.npc.append (65)
-        self.cont.append (44)
+        self.npc.append (100)
+        self.cont.append (-1)
+        self.player.append (101)
+        self.cont.append (67)
+        self.player.append (104)
+        self.cont.append (69)
         self.player.append (-1)
 
-    def answer65 (self):
+    def answer104 (self):
         self.color = the_npc.get_color()
         self.npc.append (102)
-        self.cont.append (72)
+        self.cont.append (-1)
+        self.player.append (11)
+        self.cont.append (9)
         self.player.append (-1)
 
-    def answer102 (self):
+    def answer11 (self):
         self.color = the_npc.get_color()
-        self.npc.append (103)
-        self.cont.append (73)
+        self.npc.append (12)
+        self.cont.append (-1)
+        self.player.append (107)
+        self.cont.append (71)
+        self.player.append (108)
+        self.cont.append (-1)
+        self.player.append (106)
+        self.cont.append (70)
         self.player.append (-1)
 
-    def answer103 (self):
+    def answer101 (self):
         self.color = the_npc.get_color()
-        self.npc.append (66)
+        self.npc.append (102)
         self.cont.append (-1)
+        self.player.append (11)
+        self.cont.append (9)
         self.player.append (-1)
 
-    def answer67 (self):
+    def answer9 (self):
         self.color = the_npc.get_color()
-        self.npc.append (68)
+        self.npc.append (13)
+        self.cont.append (10)
+        self.player.append (-1)
+
+    def answer13 (self):
+        self.color = the_npc.get_color()
+        self.npc.append (14)
         self.cont.append (-1)
-        if quests.get ("demo").get ("complain_about_wastesedge") == 1:
+        self.player.append (15)
+        self.cont.append (11)
+        self.player.append (16)
+        self.cont.append (12)
+        self.player.append (-1)
 
-            self.player.append (69)
-            self.cont.append (46)
-        if the_npc.get ("talked_about_guests") == 1:
+    def answer16 (self):
+        if self.first_run == 1:
 
-            self.player.append (76)
+            self.color = the_npc.get_color()
+            self.npc.append (28)
             self.cont.append (-1)
-        if the_npc.get ("talked_about_guests") == 0:
+            self.player.append (36)
+            self.cont.append (-1)
+            self.player.append (-1)
+        else:
 
-            self.player.append (74)
-            self.cont.append (49)
-        if the_npc.get ("talked_about_theft") == 0:
+            self.color = the_npc.get_color()
+            self.npc.append (53)
+            self.cont.append (-1)
+            if the_npc.get_val ("talked_about_guests") == 0:
 
-            self.player.append (72)
-            self.cont.append (48)
-        if the_npc.get ("talked_about_theft") == 1:
+                self.player.append (52)
+                self.cont.append (-1)
+            if the_npc.get_val ("talked_about_theft") == 1:
 
-            self.player.append (70)
-            self.cont.append (47)
-        self.player.append (-1)
+                self.player.append (49)
+                self.cont.append (31)
+            self.player.append (-1)
 
-    def answer0 (self):
+    def answer36 (self):
+        pass
+
+    def answer15 (self):
         self.color = the_npc.get_color()
-        self.npc.append (1)
-        self.cont.append (2)
+        self.npc.append (17)
+        self.cont.append (13)
         self.player.append (-1)
 
-    def answer1 (self):
+    def answer17 (self):
+        if self.fingolson_jest == 1:
+
+            self.color = the_npc.get_color()
+            self.npc.append (32)
+            self.cont.append (21)
+            self.player.append (-1)
+        else:
+
+            self.color = the_npc.get_color()
+            self.npc.append (18)
+            self.cont.append (-1)
+            self.fingolson_jest = 1
+
+            self.player.append (19)
+            self.cont.append (14)
+            self.player.append (-1)
+
+    def answer19 (self):
         self.color = the_npc.get_color()
-        self.npc.append (2)
-        self.cont.append (3)
+        self.npc.append (20)
+        self.cont.append (15)
         self.player.append (-1)
 
-    def answer2 (self):
+    def answer20 (self):
         self.color = the_npc.get_color()
-        self.npc.append (3)
+        self.npc.append (21)
         self.cont.append (-1)
-        self.player.append (4)
-        self.cont.append (4)
+        self.player.append (22)
+        self.cont.append (16)
+        self.player.append (16)
+        self.cont.append (12)
         self.player.append (-1)
 
-    def answer4 (self):
+    def answer22 (self):
         self.color = the_npc.get_color()
-        self.npc.append (5)
-        self.cont.append (5)
+        self.npc.append (23)
+        self.cont.append (17)
         self.player.append (-1)
 
-    def answer5 (self):
+    def answer23 (self):
         self.color = the_npc.get_color()
-        self.npc.append (6)
+        self.npc.append (24)
         self.cont.append (-1)
-        self.player.append (7)
-        self.cont.append (6)
-        self.player.append (8)
-        self.cont.append (7)
-        self.player.append (-1)
+        self.player.append (16)
+        self.cont.append (12)
+        if self.first_run == 1:
 
-    def answer8 (self):
-        self.color = the_npc.get_color()
-        self.npc.append (9)
-        self.cont.append (8)
+            self.player.append (25)
+            self.cont.append (18)
         self.player.append (-1)
 
-    def answer9 (self):
+    def answer25 (self):
         self.color = the_npc.get_color()
-        self.npc.append (10)
-        self.cont.append (-1)
-        self.player.append (12)
-        self.cont.append (10)
-        self.player.append (11)
-        self.cont.append (9)
+        self.npc.append (26)
+        self.cont.append (19)
         self.player.append (-1)
 
-    def answer7 (self):
-        the_npc.set ("told_about_shair", 1)
-        myquest = quests.get ("demo")
-        myvar = myquest.get ("work_4_shair")
-        myvar = myvar | 1
-        myquest.set ("work_4_shair", myvar)
-
+    def answer26 (self):
         self.color = the_npc.get_color()
-        self.npc.append (14)
+        self.npc.append (27)
+        self.cont.append (-1)
+        self.player.append (36)
         self.cont.append (-1)
-        self.player.append (15)
-        self.cont.append (12)
         self.player.append (-1)
 
-    def answer15 (self):
+    def answer32 (self):
         self.color = the_npc.get_color()
-        self.npc.append (16)
+        self.npc.append (31)
         self.cont.append (-1)
-        self.player.append (12)
-        self.cont.append (10)
-        self.player.append (11)
-        self.cont.append (9)
+        self.player.append (22)
+        self.cont.append (16)
+        self.player.append (16)
+        self.cont.append (12)
         self.player.append (-1)
diff --git a/scripts/init.py b/scripts/init.py
index 3ae2928..dc596b7 100755
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -485,8 +485,10 @@ if retval < 5:
         oliver.jump_to (0, 25, 15)
         oliver.set_action ("action_talk")
         oliver.stand_west ()
+        oliver.set_schedule ("oliver")
 
         frostbloom = characters ["Rhayne Frostbloom"]
+        frostbloom.set_dialogue ("dialogues/frostbloom_start")
         frostbloom.load ("frostbloom.mchar")
         frostbloom.set_map (map_engine.get_landmap ())
         frostbloom.jump_to (0, 18, 22)
diff --git a/scripts/schedules/Makefile.am b/scripts/schedules/Makefile.am
index a4a17bd..2de0d3d 100755
--- a/scripts/schedules/Makefile.am
+++ b/scripts/schedules/Makefile.am
@@ -1,6 +1,6 @@
 pkgdatadir = $(gamedatadir)/scripts/schedules
 
 pkgdata_DATA = action_talk.py center_player.py keyboard_control.py orloth.py \
-    sarin.py frostbloom.py silverhair.py
+    sarin.py frostbloom.py silverhair.py oliver.py
 
 EXTRA_DIST = $(pkgdata_DATA)
diff --git a/scripts/schedules/action_talk.py b/scripts/schedules/action_talk.py
index c65a633..beea28d 100755
--- a/scripts/schedules/action_talk.py
+++ b/scripts/schedules/action_talk.py
@@ -1,14 +1,13 @@
 def restore_schedule (retval, args):
-    # -- the_player always points to the player
+    # -- activate the character's schedules
     args[0].set_schedule_active (1)
-
-    # -- the_npc always points to the last character the player talked to
     args[1].set_schedule_active (1)
 
 if requester.get_name()==the_player.get_name():
     # -- deactivate the schedule of the characters involved
     myself.set_schedule_active (0)
     requester.set_schedule_active (0)
+
     # -- look into the player's face
     myself.look_invert(requester.currentmove())
 
diff --git a/scripts/schedules/frostbloom.py b/scripts/schedules/frostbloom.py
index 1551632..267bd97 100755
--- a/scripts/schedules/frostbloom.py
+++ b/scripts/schedules/frostbloom.py
@@ -27,29 +27,29 @@ speech = ["This tree is so inspiring.", \
           "I wonder why everybody seems so excited.", \
           "Do you know a creature more lovely than the yeti?"]
 
-todo = character_base.get (myself, "stand_still")
+todo = myself.get_val ("stand_still")
 
 # -- calculate a new position
 if todo == 0:
     # -- the position we want to reach
-    character_base.set (myself, "goal_x", random.randint (min_x, max_x))
-    character_base.set (myself, "goal_y", random.randint (min_y, max_y))
+    myself.set_val ("goal_x", random.randint (min_x, max_x))
+    myself.set_val ("goal_y", random.randint (min_y, max_y))
 
     delay = random.randint (30, 90) * 30
-    character_base.set (myself, "stand_still", delay)
+    myself.set_val ("stand_still", delay)
 
 # -- walk to the new position and wait a while
 else:
-    x = character_base.get (myself, "goal_x")
-    y = character_base.get (myself, "goal_y")
+    x = myself.get_val ("goal_x")
+    y = myself.get_val ("goal_y")
 
     schedules.simple_goto_xy (myself, x, y)
-    character_base.set (myself, "stand_still", todo - 1)
+    myself.set_val ("stand_still", todo - 1)
 
     # -- utter a random remark
-    tmp = character_base.get (myself, "say_something")
-    character_base.set (myself, "say_something", tmp - 1)
+    tmp = myself.get_val ("say_something")
+    myself.set_val ("say_something", tmp - 1)
     if tmp == 0:
         schedules.speak (myself, speech[random.randint (0, 2)])
         delay = random.randint (50, 150) * 20
-        character_base.set (myself, "say_something", delay)
+        myself.set_val ("say_something", delay)
diff --git a/scripts/schedules/oliver.py b/scripts/schedules/oliver.py
new file mode 100755
index 0000000..673b1ac
--- /dev/null
+++ b/scripts/schedules/oliver.py
@@ -0,0 +1,60 @@
+#
+#  (C) Copyright 2001 Kai Sterker <address@hidden>
+#  Part of the Adonthell Project http://adonthell.linuxgames.com
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License.
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY.
+#
+#  See the COPYING file for more details
+#
+
+# -- Movement schedule for Oliver Redwyne
+#
+#    He'll walk around in the stable and yard.
+#    When summoned by Orloth, he'll show the player to his room
+
+import schedules
+import random
+
+speech = ["It's so exciting. An Elven Lady at Waste's Edge!", \
+          "I gotta hurry before mother complains again.", \
+          "I want a little dog!"]
+
+# -- Oliver summoned to common room
+if myself.get_val ("goto_players_room") == 1:
+    # -- beam him directly there, as it is faster that way
+    if myself.submap () != 1:
+        myself.jump_to (1, 13, 7, STAND_NORTH)
+
+    goal_x = characters["Orloth Redwyne"].posx () + 1
+    goal_y = characters["Orloth Redwyne"].posy () + 1
+
+    schedules.simple_goto_xy (myself, goal_x, goal_y)
+
+# -- in the player's room
+elif myself.get_val ("goto_players_room") == 2:
+    # -- start talking to the player
+    myself.launch_action (the_player)
+
+# -- leave the player's room and goto the barn
+elif myself.get_val ("goto_barn") == 1:
+    location = myself.submap ()
+
+    # -- Player's room
+    if location == 12:
+        schedules.simple_goto_xy (myself, 5, 1)
+
+    # -- First floor
+    elif location == 9:
+        schedules.simple_goto_xy (myself, 6, 1)
+
+    # -- Common Room
+    elif location == 1:
+        schedules.simple_goto_xy (myself, 13, 8)
+
+    # -- should be outside the inn!
+    else:
+        myself.set_val ("goto_barn", 0)
+
diff --git a/scripts/schedules/orloth.py b/scripts/schedules/orloth.py
index b7d0611..5546265 100755
--- a/scripts/schedules/orloth.py
+++ b/scripts/schedules/orloth.py
@@ -28,17 +28,17 @@ coords = [(3, 5, STAND_SOUTH), \
           (7, 4, STAND_WEST), \
           (10, 3, STAND_NORTH)]
 
-todo = character_base.get (myself, "wait_behind_bar")
+todo = myself.get_val ("wait_behind_bar")
 
 # -- leave the bar
 if todo == 0:
     # -- get the position we want to reach
-    goal = character_base.get (myself, "goal")
+    goal = myself.get_val ("goal")
     x, y, dir = coords[goal]
 
     if schedules.simple_goto_xy (myself, x, y) == 1:
         # -- wait a little
-        character_base.set (myself, "wait_behind_bar", -150)
+        myself.set_val ("wait_behind_bar", -150)
 
         if dir == STAND_NORTH: myself.stand_north ()
         elif dir == STAND_EAST: myself.stand_east ()
@@ -52,25 +52,25 @@ if todo == 0:
 
 # -- stand still
 elif todo < 0:
-    character_base.set (myself, "wait_behind_bar", todo + 1)
+    myself.set_val ("wait_behind_bar", todo + 1)
     if todo == -1:
         # -- calculate the next move
         delay = random.randint (40, 120) * 20
-        character_base.set (myself, "wait_behind_bar", delay)
-        character_base.set (myself, "goal", random.randint (0, 4))
+        myself.set_val ("wait_behind_bar", delay)
+        myself.set_val ("goal", random.randint (0, 4))
 
 # -- go to/stay behind bar
 else:
-    character_base.set (myself, "wait_behind_bar", todo - 1)
+    myself.set_val ("wait_behind_bar", todo - 1)
 
     # -- reached the bar
     if schedules.simple_goto_xy (myself, 2, 2) == 1:
         myself.stand_south ()
 
     # -- utter a random remark
-    tmp = character_base.get (myself, "say_something")
-    character_base.set (myself, "say_something", tmp - 1)
+    tmp = myself.get_val ("say_something")
+    myself.set_val ("say_something", tmp - 1)
     if tmp == 0:
         schedules.speak (myself, speech[random.randint (0, 2)])
         delay = random.randint (50, 150) * 20
-        character_base.set (myself, "say_something", delay)
+        myself.set_val ("say_something", delay)
diff --git a/scripts/schedules/sarin.py b/scripts/schedules/sarin.py
index 370bfb9..72cd41f 100755
--- a/scripts/schedules/sarin.py
+++ b/scripts/schedules/sarin.py
@@ -29,73 +29,73 @@ speech = ["Ruffinans, the lot of them!", \
           "This is an insult to all of the High Born.", \
           "I cannot believe such disrespect. Barbarians!"]
 
-todo = character_base.get (myself, "switch_direction")
+todo = myself.get_val ("switch_direction")
 
 # -- calculate a new direction
 if todo == 0:
     # -- wait until we're completely on the tile
     if schedules.simple_goto_xy (myself, myself.posx (), myself.posy ()) == 1:
         # -- get the current direction ...
-        dir = character_base.get (myself, "direction")
+        dir = myself.get_val ("direction")
 
         # -- ... and set the new one accordingly
         if dir == WALK_EAST or dir == WALK_WEST:
-            character_base.set (myself, "direction", random.randint 
(WALK_NORTH, WALK_SOUTH))
+            myself.set_val ("direction", random.randint (WALK_NORTH, 
WALK_SOUTH))
         else:
-            character_base.set (myself, "direction", random.randint 
(WALK_WEST, WALK_EAST))
+            myself.set_val ("direction", random.randint (WALK_WEST, WALK_EAST))
 
         # -- wait a little on the current tile
         delay = random.randint (30, 50) * 10
-        character_base.set (myself, "switch_direction", -delay)
+        myself.set_val ("switch_direction", -delay)
 
         # -- time until the next direction change
         delay = random.randint (100, 200) * 15
-        character_base.set (myself, "delay", delay)
+        myself.set_val ("delay", delay)
 
 # -- wait a moment
 elif todo < 0:
-    character_base.set (myself, "switch_direction", todo + 1)
+    myself.set_val ("switch_direction", todo + 1)
     if todo == -1:
-        delay = character_base.get (myself, "delay")
-        character_base.set (myself, "switch_direction", delay)
+        delay = myself.get_val ("delay")
+        myself.set_val ("switch_direction", delay)
 
 # -- walk up to the wall, wait a little, then turn around
 else:
-    character_base.set (myself, "switch_direction", todo - 1)
-    dir = character_base.get (myself, "direction")
+    myself.set_val ("switch_direction", todo - 1)
+    dir = myself.get_val ("direction")
 
     if dir == WALK_NORTH:
         if schedules.simple_goto_xy (myself, myself.posx (), min_y) == 1:
-            character_base.set (myself, "direction", WALK_SOUTH)
-            character_base.set (myself, "switch_direction", random.randint 
(-300, -150))
-            character_base.set (myself, "delay", todo)
+            myself.set_val ("direction", WALK_SOUTH)
+            myself.set_val ("switch_direction", random.randint (-300, -150))
+            myself.set_val ("delay", todo)
             myself.stand_south ()
 
     elif dir == WALK_SOUTH:
         if schedules.simple_goto_xy (myself, myself.posx (), max_y) == 1:
-            character_base.set (myself, "direction", WALK_NORTH)
-            character_base.set (myself, "switch_direction", random.randint 
(-300, -150))
-            character_base.set (myself, "delay", todo)
+            myself.set_val ("direction", WALK_NORTH)
+            myself.set_val ("switch_direction", random.randint (-300, -150))
+            myself.set_val ("delay", todo)
             myself.stand_north ()
 
     elif dir == WALK_WEST:
         if schedules.simple_goto_xy (myself, min_x, myself.posy ()) == 1:
-            character_base.set (myself, "direction", WALK_EAST)
-            character_base.set (myself, "switch_direction", random.randint 
(-300, -150))
-            character_base.set (myself, "delay", todo)
+            myself.set_val ("direction", WALK_EAST)
+            myself.set_val ("switch_direction", random.randint (-300, -150))
+            myself.set_val ("delay", todo)
             myself.stand_east ()
 
     else:
         if schedules.simple_goto_xy (myself, max_x, myself.posy ()) == 1:
-            character_base.set (myself, "direction", WALK_WEST)
-            character_base.set (myself, "switch_direction", random.randint 
(-300, -105))
-            character_base.set (myself, "delay", todo)
+            myself.set_val ("direction", WALK_WEST)
+            myself.set_val ("switch_direction", random.randint (-300, -105))
+            myself.set_val ("delay", todo)
             myself.stand_west ()
 
     # -- utter a random remark
-    tmp = character_base.get (myself, "say_something")
-    character_base.set (myself, "say_something", tmp - 1)
+    tmp = myself.get_val ("say_something")
+    myself.set_val ("say_something", tmp - 1)
     if tmp == 0:
         schedules.speak (myself, speech[random.randint (0, 3)])
         delay = random.randint (50, 150) * 10
-        character_base.set (myself, "say_something", delay)
+        myself.set_val ("say_something", delay)
diff --git a/scripts/schedules/silverhair.py b/scripts/schedules/silverhair.py
index 9c5b3d2..3f9c0af 100755
--- a/scripts/schedules/silverhair.py
+++ b/scripts/schedules/silverhair.py
@@ -23,7 +23,7 @@ speech = ["In truth, Sarin, it is no bother. I am not 
offended.", \
           "Janesta, please bring my figurine. I wish to see it more closely.", 
\
           "It truly is a lovely day. I expect we will have time yet to enjoy 
it."]
 
-todo = character_base.get (myself, "say_something")
+todo = myself.get_val ("say_something")
 
 # -- utter some remark
 if todo == 0:
@@ -34,7 +34,7 @@ if todo == 0:
     # -- goto the window
     if index == 3:
         delay = random.randint (33, 66) * 10
-        character_base.set (myself, "say_something", -delay)
+        myself.set_val ("say_something", -delay)
 
     else:
         # -- speak
@@ -42,7 +42,7 @@ if todo == 0:
 
         # -- wait a while before saying something else
         delay = random.randint (50, 150) * 20
-        character_base.set (myself, "say_something", delay)
+        myself.set_val ("say_something", delay)
 
 # -- walk up to the window and wait a little
 elif todo < 0:
@@ -57,14 +57,14 @@ elif todo < 0:
         # -- leave the window
         if todo == -1:
             delay = random.randint (50, 150) * 10
-            character_base.set (myself, "say_something", delay)
+            myself.set_val ("say_something", delay)
         # -- wait
         else:
-            character_base.set (myself, "say_something", todo + 1)
+            myself.set_val ("say_something", todo + 1)
 
 # -- leave the window
 else:
-    character_base.set (myself, "say_something", todo - 1)
+    myself.set_val ("say_something", todo - 1)
 
     # -- reached the middle of the room
     if schedules.simple_goto_xy (myself, 4, 4) == 1:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]