[Scummvm-cvs-logs] CVS: scummvm/backends/dc dc.h,1.34,1.35 dcmain.cpp,1.28,1.29 display.cpp,1.28,1.29 input.cpp,1.20,1.21 softkbd.h,1.1,1.2 softkbd.cpp,1.1,1.2

Marcus Comstedt marcus_c at users.sourceforge.net
Thu Dec 9 12:22:11 CET 2004


Update of /cvsroot/scummvm/scummvm/backends/dc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25615

Modified Files:
	dc.h dcmain.cpp display.cpp input.cpp softkbd.h softkbd.cpp 
Log Message:
Made SoftKbd more usable with a mouse.

Index: dc.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/dc.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- dc.h	28 Sep 2004 20:19:21 -0000	1.34
+++ dc.h	9 Dec 2004 20:21:31 -0000	1.35
@@ -30,6 +30,7 @@
 {
  public:
   virtual int key(int k, byte &shiftFlags) = 0;
+  virtual void mouse(int x, int y) = 0;
 };
 
 #include "softkbd.h"
@@ -150,6 +151,10 @@
   SaveFileManager *getSavefileManager();
 
 
+  // Extra SoftKbd support
+  void mouseToSoftKbd(int x, int y, int &rx, int &ry) const;
+
+
   static OSystem *create();
 
 

Index: dcmain.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/dcmain.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- dcmain.cpp	28 Sep 2004 20:19:22 -0000	1.28
+++ dcmain.cpp	9 Dec 2004 20:21:31 -0000	1.29
@@ -46,7 +46,7 @@
 }
 
 OSystem_Dreamcast::OSystem_Dreamcast()
-  : screen(NULL), mouse(NULL), overlay(NULL), _ms_buf(NULL),
+  : screen(NULL), mouse(NULL), overlay(NULL), _softkbd(this), _ms_buf(NULL),
     _sound_proc(NULL), _timer_active(false), _current_shake_pos(0),
     _aspect_stretch(false), _softkbd_on(false), _softkbd_motion(0)
 {

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/display.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- display.cpp	28 Sep 2004 20:19:22 -0000	1.28
+++ display.cpp	9 Dec 2004 20:21:31 -0000	1.29
@@ -478,6 +478,17 @@
   ta_commit_list(&myvertex);
 }
 
+void OSystem_Dreamcast::mouseToSoftKbd(int x, int y, int &rx, int &ry) const
+{
+  if(_softkbd_motion) {
+    rx = (int)(x*_xscale - (330.0*sin(0.013*_softkbd_motion) - 320.0));
+    ry = (int)(y*_yscale + TOP_OFFSET - 200.0);
+  } else {
+    rx = -1;
+    ry = -1;
+  }
+}
+
 
 void OSystem_Dreamcast::showOverlay()
 {

Index: input.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/input.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- input.cpp	5 Dec 2004 17:42:15 -0000	1.20
+++ input.cpp	9 Dec 2004 20:21:31 -0000	1.21
@@ -68,6 +68,10 @@
       
       mouse_x += pad->cond.mouse.axis1;
       mouse_y += pad->cond.mouse.axis2;
+
+      if(inter)
+	inter->mouse(mouse_x, mouse_y);
+
       pad->cond.mouse.axis1 = 0;
       pad->cond.mouse.axis2 = 0;
     } else if(pad->func & MAPLE_FUNC_KEYBOARD) {

Index: softkbd.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/softkbd.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- softkbd.h	14 Mar 2004 22:16:22 -0000	1.1
+++ softkbd.h	9 Dec 2004 20:21:31 -0000	1.2
@@ -27,19 +27,23 @@
 
 #define SK_NUM_KEYS 61
 
+class OSystem_Dreamcast;
+
 class SoftKeyboard : public Interactive
 {
  private:
-  
+ 
+  const OSystem_Dreamcast *os;
   Label labels[2][SK_NUM_KEYS];
   byte shiftState;
   int8 keySel;
 
  public:
-  SoftKeyboard();
+  SoftKeyboard(const OSystem_Dreamcast *os);
 
   void draw(float x, float y, int transp = 0);
   int key(int k, byte &shiftFlags);
+  void mouse(int x, int y);
 };
 
 #endif /* DC_SOFTKBD_H */

Index: softkbd.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/softkbd.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- softkbd.cpp	14 Mar 2004 22:16:22 -0000	1.1
+++ softkbd.cpp	9 Dec 2004 20:21:31 -0000	1.2
@@ -60,7 +60,8 @@
     ~OSystem::KBD_SHIFT, ~OSystem::KBD_CTRL, ~OSystem::KBD_ALT, ' ', 8, 13
   };
 
-SoftKeyboard::SoftKeyboard() : shiftState(0), keySel(0)
+SoftKeyboard::SoftKeyboard(const OSystem_Dreamcast *_os)
+  : os(_os), shiftState(0), keySel(0)
 {
   assert((sizeof(key_codes)/sizeof(key_codes[0])) == SK_NUM_KEYS);
 
@@ -155,3 +156,13 @@
   }
   return 0;
 }
+
+void SoftKeyboard::mouse(int x, int y)
+{
+  os->mouseToSoftKbd(x, y, x, y);
+  if(x >= 0 && x < 11*28 && y >= 0 && y < 6*28 &&
+     x%28 >= 4 && y%28 >= 4)
+    if((keySel = 11*(y/28)+(x/28)) > 58)
+      if((keySel -= 5) < 59)
+	keySel = 58;
+}





More information about the Scummvm-git-logs mailing list