From 350152037472f5bc7bac65eec03652e08613dac3 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Fri, 16 Apr 2010 16:04:58 +0000
Subject: [PATCH] dokk (the docking game):  - Added Level Infos for (glyoxalase
 and thrombin)

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2031 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 examples/dokk/datafiles/glyoxalase/level.ini |  5 ++++
 examples/dokk/datafiles/thrombin/level.ini   |  4 +++
 examples/dokk/level_info.py                  | 31 ++++++++++++++++++++
 3 files changed, 40 insertions(+)

diff --git a/examples/dokk/datafiles/glyoxalase/level.ini b/examples/dokk/datafiles/glyoxalase/level.ini
index 929f2cd04..144782673 100644
--- a/examples/dokk/datafiles/glyoxalase/level.ini
+++ b/examples/dokk/datafiles/glyoxalase/level.ini
@@ -109,6 +109,11 @@ TEXT_COUNT: 1
 TEXT1: Herzliche Gratulation, Sie haben alle
        Levels erfolgreich absolviert!
 
+
+[Info]
+TEXT: Gluthatione ist ein Abfallprodukt des Stoffwechels. 
+      Docken Sie das Molek�l ins Protein um es abzubauen.
+       
 [Box]
 XMIN:-30
 XMAX:70
diff --git a/examples/dokk/datafiles/thrombin/level.ini b/examples/dokk/datafiles/thrombin/level.ini
index 64c822851..f02a5db9b 100644
--- a/examples/dokk/datafiles/thrombin/level.ini
+++ b/examples/dokk/datafiles/thrombin/level.ini
@@ -90,6 +90,10 @@ TEXTCOLORGREEN1: 255
 TEXTCOLORBLUE1: 64
 TEXTSIZE1: 40
 
+[Info]
+TEXT: Docke den Liganden ins Protein, um 
+      die Gerinnung des Blutes zu stoppen.
+
 [Box]
 XMIN:-50
 XMAX:50
diff --git a/examples/dokk/level_info.py b/examples/dokk/level_info.py
index 55e10269f..76c4cf0f6 100644
--- a/examples/dokk/level_info.py
+++ b/examples/dokk/level_info.py
@@ -15,6 +15,12 @@ class LevelInfo(QtCore.QObject):
       self.highscore = HighScore(level.topten)
     else:
       self.highscore = None
+      
+    try:
+      self.level_descr = LevelDescr(level.config.INFO["TEXT"])
+    except:
+      self.level_descr = None
+    
     self.level_info = LevelDetails(level.config.Level["NAME"],level.config.Level["DIFFICULTY"])
     self.demo_cam = DemoCam(self)
     self.connect(level,QtCore.SIGNAL("Started()"),self.Finish)
@@ -31,6 +37,8 @@ class LevelInfo(QtCore.QObject):
     self.start = False
     if self.highscore:
       self.highscore.Finish()
+    if self.level_descr:
+      self.level_descr.Finish()
     self.demo_cam.Finish()
     self.level_info.Finish()
     
@@ -38,6 +46,8 @@ class LevelInfo(QtCore.QObject):
     if self.start:
       if self.highscore:
         self.highscore.Start()
+      if self.level_descr:
+        self.level_descr.Start()
       self.level_info.Start()
       self.demo_cam.Start()
    
@@ -101,6 +111,27 @@ class LevelDetails(QtCore.QObject):
     dokk.Dokk().gl_win.RemoveHUDObject(self.hud_bg)
     dokk.Dokk().gl_win.RemoveHUDObject(self.hud_image)
 
+class LevelDescr(QtCore.QObject):
+  def __init__(self, descr, parent=None):
+    QtCore.QObject.__init__(self, parent)
+    self.descr = descr
+  
+    self.hud_descr_text = None
+    self.hud_bg = None
+
+  def Start(self):
+    descr_len = len(self.descr)
+    xpos = dokk.Dokk().gl_win.Width()/2 - (descr_len*30)/2
+    rect = QtCore.QRect(QtCore.QPoint(xpos, dokk.Dokk().gl_win.Height()-400), QtCore.QSize(descr_len*30, 105))
+    self.hud_bg = RectHUDObject(-1,rect, bg_color=QtGui.QColor(128,128,128,200))
+    dokk.Dokk().gl_win.AddHUDObject(self.hud_bg)
+    self.hud_descr_text = RectTextHUDObject(self.descr, rect=rect, time=-1, font=QtGui.QFont("Verdana",20))
+    dokk.Dokk().gl_win.AddHUDObject(self.hud_descr_text)
+                  
+  def Finish(self):
+    dokk.Dokk().gl_win.RemoveHUDObject(self.hud_bg)
+    dokk.Dokk().gl_win.RemoveHUDObject(self.hud_descr_text)
+
 class DemoCam(QtCore.QTimer):
   def __init__(self, parent=None):
     QtCore.QTimer.__init__(self)
-- 
GitLab