From ec2efa48cf2896f0b05d28ce9093273031b706d8 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Wed, 14 Apr 2010 10:21:49 +0000
Subject: [PATCH] dokk (the docking game):  - Quick Start (2D Button)  -
 Changed Introtimes

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1993 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 examples/dokk/config.py                      |  1 -
 examples/dokk/datafiles/dengue/level.ini     | 17 ++++++++-------
 examples/dokk/datafiles/dengue/top_ten.ini   |  8 +++++--
 examples/dokk/datafiles/glyoxalase/level.ini | 19 ++++++++--------
 examples/dokk/datafiles/retinol/level.ini    | 13 ++++++-----
 examples/dokk/datafiles/thrombin/level.ini   | 13 ++++++-----
 examples/dokk/datafiles/tutorial_1/level.ini | 23 ++++++++++----------
 examples/dokk/datafiles/tutorial_2/level.ini | 17 ++++++++-------
 examples/dokk/dokk.py                        |  4 ++++
 examples/dokk/level.py                       | 10 ++++++++-
 examples/dokk/level_intro.py                 |  3 +--
 examples/dokk/level_messages.py              | 19 +++++++++++++++-
 examples/dokk/spnav_input.py                 |  4 ++++
 13 files changed, 96 insertions(+), 55 deletions(-)

diff --git a/examples/dokk/config.py b/examples/dokk/config.py
index 7fb7a3efa..95ad90a89 100644
--- a/examples/dokk/config.py
+++ b/examples/dokk/config.py
@@ -54,7 +54,6 @@ class TopTen():
   def IsTopTen(self,score):
     self._config.UpdateValues()
     try:
-      print score, float(self._config.Get(str(10))["SCORE"])
       if score < float(self._config.Get(str(10))["SCORE"]):
         return True
     except AttributeError:
diff --git a/examples/dokk/datafiles/dengue/level.ini b/examples/dokk/datafiles/dengue/level.ini
index f974a1071..ef2411a18 100644
--- a/examples/dokk/datafiles/dengue/level.ini
+++ b/examples/dokk/datafiles/dengue/level.ini
@@ -11,47 +11,48 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 4
 TEXT_COUNT: 8
 TEXT1: So die �bungsphase ist vorbei..
   Bei den kommenden Levels m�ssen sie den Liganden 
   m�glichst gut am Protein andocken.
-TEXTTIME1: 300
+TEXTTIME1: 3000
 
 TEXT2: Sie k�nnen die aktuelle Score links oben ablesen. Wenn
   Sie mit der Score zufrieden sind, k�nnen Sie "FIT" dr�cken 
   um das Level zu beenden. 
-TEXTTIME2: 800
+TEXTTIME2: 8000
 
 TEXT3: Je schneller Sie ein Level absolvieren, umso kleiner wird der Zeitmalus
   der zu Ihrer score addiert wird.
-TEXTTIME3: 800
+TEXTTIME3: 8000
 
 TEXT4: Sind Sie bereit? Jetzt wird es ernst.
-TEXTTIME4: 600
+TEXTTIME4: 3000
 
 TEXT5: 3
-TEXTTIME5: 150
+TEXTTIME5: 1500
 TEXTCOLORRED5: 255
 TEXTCOLORGREEN5: 0
 TEXTCOLORBLUE5: 0
 TEXTSIZE5: 40
 
 TEXT6: 2
-TEXTTIME6: 150
+TEXTTIME6: 1500
 TEXTCOLORRED6: 255
 TEXTCOLORGREEN6: 165
 TEXTCOLORBLUE6: 0
 TEXTSIZE6: 70
 
 TEXT7: 1
-TEXTTIME7: 150
+TEXTTIME7: 1500
 TEXTCOLORRED7: 255
 TEXTCOLORGREEN7: 255
 TEXTCOLORBLUE7: 0
 TEXTSIZE7: 100
 
 TEXT8: LOS!
-TEXTTIME8: 150
+TEXTTIME8: 1500
 TEXTCOLORRED8: 0
 TEXTCOLORGREEN8: 255
 TEXTCOLORBLUE8: 0
diff --git a/examples/dokk/datafiles/dengue/top_ten.ini b/examples/dokk/datafiles/dengue/top_ten.ini
index c058d9263..fc382f20a 100644
--- a/examples/dokk/datafiles/dengue/top_ten.ini
+++ b/examples/dokk/datafiles/dengue/top_ten.ini
@@ -11,10 +11,14 @@ score = 1.34045518637
 name = STU
 
 [5]
-score = 2.80041636229
-name = AAA
+score = 2.58003196716
+name = STU
 
 [4]
 score = 1.87384883563
 name = BIO
 
+[6]
+score = 2.80041636229
+name = AAA
+
diff --git a/examples/dokk/datafiles/glyoxalase/level.ini b/examples/dokk/datafiles/glyoxalase/level.ini
index c04c2027e..310601b23 100644
--- a/examples/dokk/datafiles/glyoxalase/level.ini
+++ b/examples/dokk/datafiles/glyoxalase/level.ini
@@ -11,47 +11,48 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 3
 TEXT_COUNT: 7
 TEXT1: Gesunder Optimismus ist gut..
-TEXTTIME1: 300
+TEXTTIME1: 3000
 
 TEXT2: F�r dieses Level brauchen Sie jedoch mehr
-TEXTTIME4: 600
+TEXTTIME4: 3000
 
 TEXT3: 3
-TEXTTIME3: 150
+TEXTTIME3: 1500
 TEXTCOLORRED3: 255
 TEXTCOLORGREEN3: 0
 TEXTCOLORBLUE3: 0
 TEXTSIZE3: 40
 
 TEXT4: 2
-TEXTTIME4: 150
+TEXTTIME4: 1500
 TEXTCOLORRED4: 255
 TEXTCOLORGREEN4: 0
 TEXTCOLORBLUE4: 0
 TEXTSIZE4: 70
 
 TEXT5: 1
-TEXTTIME5: 150
+TEXTTIME5: 1500
 TEXTCOLORRED5: 255
 TEXTCOLORGREEN5: 0
 TEXTCOLORBLUE5: 0
 TEXTSIZE5: 100
 
 TEXT6: Viel Gl�ck!
-TEXTTIME6: 150
+TEXTTIME6: 1500
 TEXTCOLORRED6: 255
 TEXTCOLORGREEN6: 0
 TEXTCOLORBLUE6: 0
-TEXTSIZE6: 100
+TEXTSIZE6: 80
 
 TEXT7: (Sie werden es brauchen)
-TEXTTIME7: 150
+TEXTTIME7: 1500
 TEXTCOLORRED7: 255
 TEXTCOLORGREEN7: 0
 TEXTCOLORBLUE7: 0
-TEXTSIZE7: 80
+TEXTSIZE7: 70
 
 [NTT]
 TEXTTIME: 200
diff --git a/examples/dokk/datafiles/retinol/level.ini b/examples/dokk/datafiles/retinol/level.ini
index d76a3a8c0..d07e72e9e 100644
--- a/examples/dokk/datafiles/retinol/level.ini
+++ b/examples/dokk/datafiles/retinol/level.ini
@@ -11,37 +11,38 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 2
 TEXT_COUNT: 6
 TEXT1: Super sie haben es bis hier hin geschafft.
   Jetzt wird es richtig schwer.
-TEXTTIME1: 300
+TEXTTIME1: 5000
 
 TEXT2: Ich sehe Sie sind bereit...
-TEXTTIME4: 600
+TEXTTIME4: 3000
 
 TEXT3: 3
-TEXTTIME3: 150
+TEXTTIME3: 1500
 TEXTCOLORRED3: 255
 TEXTCOLORGREEN3: 0
 TEXTCOLORBLUE3: 0
 TEXTSIZE3: 40
 
 TEXT4: 2
-TEXTTIME4: 150
+TEXTTIME4: 1500
 TEXTCOLORRED4: 255
 TEXTCOLORGREEN4: 165
 TEXTCOLORBLUE4: 0
 TEXTSIZE4: 70
 
 TEXT5: 1
-TEXTTIME5: 150
+TEXTTIME5: 1500
 TEXTCOLORRED5: 255
 TEXTCOLORGREEN5: 255
 TEXTCOLORBLUE5: 0
 TEXTSIZE5: 100
 
 TEXT6: LOS!
-TEXTTIME6: 150
+TEXTTIME6: 1500
 TEXTCOLORRED6: 0
 TEXTCOLORGREEN6: 255
 TEXTCOLORBLUE6: 0
diff --git a/examples/dokk/datafiles/thrombin/level.ini b/examples/dokk/datafiles/thrombin/level.ini
index 4d39caa18..294b4df48 100644
--- a/examples/dokk/datafiles/thrombin/level.ini
+++ b/examples/dokk/datafiles/thrombin/level.ini
@@ -11,36 +11,37 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 2
 TEXT_COUNT: 6
 TEXT1: Ich denke Sie haben das Spielprinzip verstanden.
-TEXTTIME1: 300
+TEXTTIME1: 3000
 
 TEXT2: Gut, sind Sie bereit? Und schon gehts los.
-TEXTTIME4: 600
+TEXTTIME4: 3000
 
 TEXT3: 3
-TEXTTIME3: 150
+TEXTTIME3: 1500
 TEXTCOLORRED3: 255
 TEXTCOLORGREEN3: 0
 TEXTCOLORBLUE3: 0
 TEXTSIZE3: 40
 
 TEXT4: 2
-TEXTTIME4: 150
+TEXTTIME4: 1500
 TEXTCOLORRED4: 255
 TEXTCOLORGREEN4: 165
 TEXTCOLORBLUE4: 0
 TEXTSIZE4: 70
 
 TEXT5: 1
-TEXTTIME5: 150
+TEXTTIME5: 1500
 TEXTCOLORRED5: 255
 TEXTCOLORGREEN5: 255
 TEXTCOLORBLUE5: 0
 TEXTSIZE5: 100
 
 TEXT6: LOS!
-TEXTTIME6: 150
+TEXTTIME6: 1500
 TEXTCOLORRED6: 0
 TEXTCOLORGREEN6: 255
 TEXTCOLORBLUE6: 0
diff --git a/examples/dokk/datafiles/tutorial_1/level.ini b/examples/dokk/datafiles/tutorial_1/level.ini
index 82fde90d8..d9e932f7e 100644
--- a/examples/dokk/datafiles/tutorial_1/level.ini
+++ b/examples/dokk/datafiles/tutorial_1/level.ini
@@ -11,52 +11,53 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 6
 TEXT_COUNT: 10
 TEXT1: Hallo und herzlich wilkommen zu dokk
   dem Docking-Spiel
-TEXTTIME1: 300
+TEXTTIME1: 3000
 
 TEXT2: Ihre Aufgabe ist es, den Liganden (gr�n),
   in die richtige Position auf dem Protein (weiss) zu bringen
-TEXTTIME2: 800
+TEXTTIME2: 8000
 
 TEXT3: Dieses erste Level ist ein �bungslevel. Sie lernen hier, wie man die 
   Position des Liganden ver�ndern kann.
-TEXTTIME3: 800
+TEXTTIME3: 8000
 
 TEXT4: Sie k�nnen mit dem 3D-Input Device den Liganden verschieben,
   indem Sie den Joystick in die entsprechende Richtung bewegen.
-TEXTTIME4: 800
+TEXTTIME4: 8000
  
 TEXT5: Falls Fragen bestehen, k�nnen Sie sich gerne an eine unserer Fachkr�fte wenden.
-TEXTTIME5: 500
+TEXTTIME5: 5000
 
 TEXT6: Sind Sie bereit? Es geht los.
-TEXTTIME6: 600
+TEXTTIME6: 3000
 
 TEXT7: 3
-TEXTTIME7: 150
+TEXTTIME7: 1500
 TEXTCOLORRED7: 255
 TEXTCOLORGREEN7: 0
 TEXTCOLORBLUE7: 0
 TEXTSIZE7: 40
 
 TEXT8: 2
-TEXTTIME8: 150
+TEXTTIME8: 1500
 TEXTCOLORRED8: 255
 TEXTCOLORGREEN8: 165
 TEXTCOLORBLUE8: 0
 TEXTSIZE8: 70
 
 TEXT9: 1
-TEXTTIME9: 150
+TEXTTIME9: 1500
 TEXTCOLORRED9: 255
 TEXTCOLORGREEN9: 255
 TEXTCOLORBLUE9: 0
 TEXTSIZE9: 100
 
 TEXT10: LOS!
-TEXTTIME10: 150
+TEXTTIME10: 1500
 TEXTCOLORRED10: 0
 TEXTCOLORGREEN10: 255
 TEXTCOLORBLUE10: 0
@@ -71,7 +72,7 @@ TEXTSIZE: 16
 TEXT_COUNT: 1
 
 TEXT1: Leider haben Sie es nicht geschafft! 
-  Sie k�nnen erneut veruschen, dieses Level zu absolvieren 
+  Sie k�nnen erneut versuchen, dieses Level zu absolvieren 
 TEXTTIME1: -1
 TEXTCOLORRED1: 255
 TEXTCOLORGREEN1: 64
diff --git a/examples/dokk/datafiles/tutorial_2/level.ini b/examples/dokk/datafiles/tutorial_2/level.ini
index 24e52b931..a0a73b23b 100644
--- a/examples/dokk/datafiles/tutorial_2/level.ini
+++ b/examples/dokk/datafiles/tutorial_2/level.ini
@@ -11,48 +11,49 @@ TEXTCOLORRED: 255
 TEXTCOLORGREEN: 255
 TEXTCOLORBLUE: 255
 TEXTSIZE: 16
+TEXT_QUICKSTART: 3
 TEXT_COUNT: 7
 TEXT1: Sehr gut Sie haben das Spielprinzip verstanden
   und k�nnen den Liganden bereits verschieben
-TEXTTIME1: 300
+TEXTTIME1: 3000
 
 TEXT2: In diesem �bungslevel lernen Sie, wie der Ligand rotiert werden kann.
   Dazu k�nnen Sie den Joystick drehen oder ziehen und bewegen.
-TEXTTIME2: 800
+TEXTTIME2: 8000
 
 TEXT3: Sind Sie bereit? Es wird ein wenig schwerer.
-TEXTTIME3: 600
+TEXTTIME3: 3000
 
 TEXT4: 3
-TEXTTIME4: 150
+TEXTTIME4: 1500
 TEXTCOLORRED4: 255
 TEXTCOLORGREEN4: 0
 TEXTCOLORBLUE4: 0
 TEXTSIZE4: 40
 
 TEXT5: 2
-TEXTTIME5: 150
+TEXTTIME5: 1500
 TEXTCOLORRED5: 255
 TEXTCOLORGREEN5: 165
 TEXTCOLORBLUE5: 0
 TEXTSIZE5: 70
 
 TEXT6: 1
-TEXTTIME6: 150
+TEXTTIME6: 1500
 TEXTCOLORRED6: 255
 TEXTCOLORGREEN6: 255
 TEXTCOLORBLUE6: 0
 TEXTSIZE6: 100
 
 TEXT7: LOS!
-TEXTTIME7: 150
+TEXTTIME7: 1500
 TEXTCOLORRED7: 0
 TEXTCOLORGREEN7: 255
 TEXTCOLORBLUE7: 0
 TEXTSIZE7: 130
 
 [NTT]
-TEXTTIME: 200
+TEXTTIME: 2000
 TEXTCOLORRED: 255
 TEXTCOLORGREEN: 0
 TEXTCOLORBLUE: 0
diff --git a/examples/dokk/dokk.py b/examples/dokk/dokk.py
index f3eb30515..ea7422fb4 100644
--- a/examples/dokk/dokk.py
+++ b/examples/dokk/dokk.py
@@ -34,6 +34,10 @@ class Dokk(object):
     else:
       self._current_index +=1
   
+  def Restart(self):
+    self._current_index = -1
+    self.NextLevel()
+  
   def GetLevel(self):
     return self._current_level
   
diff --git a/examples/dokk/level.py b/examples/dokk/level.py
index ef1998a79..1217ff527 100644
--- a/examples/dokk/level.py
+++ b/examples/dokk/level.py
@@ -112,6 +112,7 @@ class Level(QtCore.QObject):
     return 1
   
   def Reset(self):
+    Dokk().gl_win.SetLockInput(True)
     self.endtime = 0
     self.stop_time = 0
     self._started = False
@@ -157,7 +158,14 @@ class Level(QtCore.QObject):
     self.UpdateScores()
     self.hud_level_intro.Start()
     self._started = True
-    self.emit(QtCore.SIGNAL("Started()"))    
+    self.emit(QtCore.SIGNAL("Started()"))
+    
+  def QuickBegin(self):
+    self.Reset()
+    self.UpdateScores()
+    self.hud_level_intro.QuickStart()
+    self._started = True
+    self.emit(QtCore.SIGNAL("Started()"))
     
   def Close(self):
     gfx.Scene().SetTransform(self.transform_)
diff --git a/examples/dokk/level_intro.py b/examples/dokk/level_intro.py
index b3c99134c..86b958c8a 100644
--- a/examples/dokk/level_intro.py
+++ b/examples/dokk/level_intro.py
@@ -56,7 +56,6 @@ class LevelIntro(QtCore.QObject):
       self.text.color=self.text_list[self.cur_text][2]
       self.text.font.setPointSize(self.text_list[self.cur_text][3])
       self.text.Reset()
-      print (dokk.gl_win.Width()/2.0) - (len(self.text.text)*10)
     else:
       self.cur_text = -1
-    self.cur_text+=1
\ No newline at end of file
+    self.cur_text+=1
diff --git a/examples/dokk/level_messages.py b/examples/dokk/level_messages.py
index 01136e2c7..e20c18b4f 100644
--- a/examples/dokk/level_messages.py
+++ b/examples/dokk/level_messages.py
@@ -39,12 +39,21 @@ class LevelMessages(QtCore.QObject):
 
   def Start(self):
     self.Reset()
+    self._Begin()
+    
+  def _Begin(self):
+    time = 0
+    if self.cur_text == 0:
+      time = self.total_time
+    else:
+      for i in range(self.cur_text,len(self.text_list)):
+        time += self.text_list[i][1]
     dokk = Dokk()
     font = QtGui.QFont("Verdana", 15);
     rect = QtCore.QRect(QtCore.QPoint(60, 60), QtCore.QSize(dokk.gl_win.Width()-120, dokk.gl_win.Height()-120))
     self.text = RectTextHUDObject(text="", rect=rect, time=0, font=font)
     QtCore.QObject.connect(self.text, QtCore.SIGNAL("Finished()"), self.NextMessage)
-    self.bg = RectHUDObject(self.total_time,rect, bg_color=QtGui.QColor(128,128,128,200))
+    self.bg = RectHUDObject(time,rect, bg_color=QtGui.QColor(128,128,128,200))
     dokk.gl_win.AddHUDObject(self.bg)
     dokk.gl_win.AddHUDObject(self.text)
   
@@ -70,7 +79,15 @@ class LevelMessages(QtCore.QObject):
 class LevelIntro(LevelMessages):
   def __init__(self, config, parent=None):
     LevelMessages.__init__(self,config.INTRO, parent)
+    try:
+      self.quick_start = int(config.INTRO["TEXT_QUICKSTART"])-1
+    except:
+      self.quick_start = 0
 
+  def QuickStart(self):
+    self.cur_text = self.quick_start
+    self._Begin()
+    
 class LevelEnd(LevelMessages):
   def __init__(self, messages, parent=None):
     LevelMessages.__init__(self,messages, parent)
diff --git a/examples/dokk/spnav_input.py b/examples/dokk/spnav_input.py
index d079fe6c4..a016a6ffb 100644
--- a/examples/dokk/spnav_input.py
+++ b/examples/dokk/spnav_input.py
@@ -66,10 +66,14 @@ class SpnavInputDevice(QtCore.QObject):
       dokk.Dokk().NextLevel()
     elif button == 6:
       QtGui.QApplication.exit()
+    elif button == 8:
+      dokk.Dokk().Restart()
     elif button == 13:
       self.level.ResetPos()
     elif button == 12 and not self.level.IsStarted():
       self.level.Solve()
+    elif button == 14:
+      self.level.QuickBegin()
     
     if (not self._lock_input):
       if button == 0:
-- 
GitLab