[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