[Scummvm-cvs-logs] scummvm master -> 14a59b97b289416bc124985e7b5f3b45d8e7a7e0

Strangerke Strangerke at scummvm.org
Thu Jul 5 21:32:49 CEST 2012


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b1cc34a080 CGE: Remove hack used to store keycode in CGEEvent
14a59b97b2 CGE: Silent some CppCheck warnings


Commit: b1cc34a080ff31fb22ab466624a99c0cdaeb51c1
    https://github.com/scummvm/scummvm/commit/b1cc34a080ff31fb22ab466624a99c0cdaeb51c1
Author: Strangerke (strangerke at scummvm.org)
Date: 2012-07-05T12:31:42-07:00

Commit Message:
CGE: Remove hack used to store keycode in CGEEvent

Changed paths:
    engines/cge/cge_main.cpp
    engines/cge/cge_main.h
    engines/cge/events.cpp
    engines/cge/events.h
    engines/cge/vga13h.h
    engines/cge/vmenu.cpp
    engines/cge/vmenu.h



diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index fbe37e5..a70e32d 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -518,8 +518,8 @@ Square::Square(CGEEngine *vm) : Sprite(vm, NULL), _vm(vm) {
 	setShapeList(MB);
 }
 
-void Square::touch(uint16 mask, int x, int y) {
-	Sprite::touch(mask, x, y);
+void Square::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) {
+	Sprite::touch(mask, x, y, keyCode);
 	if (mask & kMouseLeftUp) {
 		_vm->XZ(_x + x, _y + y).cell() = 0;
 		_vm->_commandHandlerTurbo->addCommand(kCmdKill, -1, 0, this);
@@ -758,11 +758,11 @@ void System::funTouch() {
 		_funDel = n;
 }
 
-void System::touch(uint16 mask, int x, int y) {
+void System::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) {
 	funTouch();
 
 	if (mask & kEventKeyb) {
-		if (x == Common::KEYCODE_ESCAPE) {
+		if (keyCode == Common::KEYCODE_ESCAPE) {
 			// The original was calling keyClick() 
 			// The sound is uselessly annoying and noisy, so it has been removed
 			_vm->killText();
@@ -926,7 +926,7 @@ void CGEEngine::optionTouch(int opt, uint16 mask) {
 }
 
 #pragma argsused
-void Sprite::touch(uint16 mask, int x, int y) {
+void Sprite::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) {
 	_vm->_sys->funTouch();
 
 	if ((mask & kEventAttn) != 0)
diff --git a/engines/cge/cge_main.h b/engines/cge/cge_main.h
index b98fec5..bde8306 100644
--- a/engines/cge/cge_main.h
+++ b/engines/cge/cge_main.h
@@ -92,7 +92,7 @@ public:
 
 	void setPal();
 	void funTouch();
-	virtual void touch(uint16 mask, int x, int y);
+	virtual void touch(uint16 mask, int x, int y, Common::KeyCode keyCode);
 	void tick();
 private:
 	CGEEngine *_vm;
@@ -101,7 +101,7 @@ private:
 class Square : public Sprite {
 public:
 	Square(CGEEngine *vm);
-	virtual void touch(uint16 mask, int x, int y);
+	virtual void touch(uint16 mask, int x, int y, Common::KeyCode keyCode);
 private:
 	CGEEngine *_vm;
 };
diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp
index 98a39a9..1530c87 100644
--- a/engines/cge/events.cpp
+++ b/engines/cge/events.cpp
@@ -135,9 +135,11 @@ void Keyboard::newKeyboard(Common::Event &event) {
 
 	if ((event.type == Common::EVENT_KEYDOWN) && (_client)) {
 		CGEEvent &evt = _vm->_eventManager->getNextEvent();
-		evt._x = event.kbd.keycode;	// Keycode
-		evt._mask = kEventKeyb;	// Event mask
-		evt._spritePtr = _client;	// Sprite pointer
+		evt._x = 0;
+		evt._y = 0;
+		evt._keyCode = event.kbd.keycode;   // Keycode
+		evt._mask = kEventKeyb;             // Event mask
+		evt._spritePtr = _client;           // Sprite pointer
 	}
 }
 
@@ -204,6 +206,7 @@ void Mouse::newMouse(Common::Event &event) {
 	CGEEvent &evt = _vm->_eventManager->getNextEvent();
 	evt._x = event.mouse.x;
 	evt._y = event.mouse.y;
+	evt._keyCode = Common::KEYCODE_INVALID;
 	evt._spritePtr = _vm->spriteAt(evt._x, evt._y);
 
 	switch (event.type) {
@@ -269,7 +272,7 @@ void EventManager::handleEvents() {
 		CGEEvent e = _eventQueue[_eventQueueTail];
 		if (e._mask) {
 			if (_vm->_mouse->_hold && e._spritePtr != _vm->_mouse->_hold)
-				_vm->_mouse->_hold->touch(e._mask | kEventAttn, e._x - _vm->_mouse->_hold->_x, e._y - _vm->_mouse->_hold->_y);
+				_vm->_mouse->_hold->touch(e._mask | kEventAttn, e._x - _vm->_mouse->_hold->_x, e._y - _vm->_mouse->_hold->_y, e._keyCode);
 
 			// update mouse cursor position
 			if (e._mask & kMouseRoll)
@@ -278,11 +281,11 @@ void EventManager::handleEvents() {
 			// activate current touched SPRITE
 			if (e._spritePtr) {
 				if (e._mask & kEventKeyb)
-					e._spritePtr->touch(e._mask, e._x, e._y);
+					e._spritePtr->touch(e._mask, e._x, e._y, e._keyCode);
 				else
-					e._spritePtr->touch(e._mask, e._x - e._spritePtr->_x, e._y - e._spritePtr->_y);
+					e._spritePtr->touch(e._mask, e._x - e._spritePtr->_x, e._y - e._spritePtr->_y, e._keyCode);
 			} else if (_vm->_sys)
-					_vm->_sys->touch(e._mask, e._x, e._y);
+				_vm->_sys->touch(e._mask, e._x, e._y, e._keyCode);
 
 			if (e._mask & kMouseLeftDown) {
 				_vm->_mouse->_hold = e._spritePtr;
diff --git a/engines/cge/events.h b/engines/cge/events.h
index 6bbd52e..522aa67 100644
--- a/engines/cge/events.h
+++ b/engines/cge/events.h
@@ -70,6 +70,7 @@ struct CGEEvent {
 	uint16 _mask;
 	uint16 _x;
 	uint16 _y;
+	Common::KeyCode _keyCode;
 	Sprite *_spritePtr;
 };
 
diff --git a/engines/cge/vga13h.h b/engines/cge/vga13h.h
index beca19f..a816f77 100644
--- a/engines/cge/vga13h.h
+++ b/engines/cge/vga13h.h
@@ -29,6 +29,7 @@
 #define CGE_VGA13H_H
 
 #include "common/serializer.h"
+#include "common/events.h"
 #include "graphics/surface.h"
 #include "cge/general.h"
 #include "cge/bitmap.h"
@@ -146,7 +147,7 @@ public:
 	void step(int nr = -1);
 	Seq *setSeq(Seq *seq);
 	CommandHandler::Command *snList(SnList type);
-	virtual void touch(uint16 mask, int x, int y);
+	virtual void touch(uint16 mask, int x, int y, Common::KeyCode keyCode);
 	virtual void tick();
 	void sync(Common::Serializer &s);
 private:
diff --git a/engines/cge/vmenu.cpp b/engines/cge/vmenu.cpp
index a317a76..84b557f 100644
--- a/engines/cge/vmenu.cpp
+++ b/engines/cge/vmenu.cpp
@@ -89,11 +89,11 @@ Vmenu::~Vmenu() {
 
 #define CALL_MEMBER_FN(object,ptrToMember)  ((object).*(ptrToMember))
 
-void Vmenu::touch(uint16 mask, int x, int y) {
+void Vmenu::touch(uint16 mask, int x, int y, Common::KeyCode keyCode) {
 	if (!_items)
 		return;
 
-	Sprite::touch(mask, x, y);
+	Sprite::touch(mask, x, y, keyCode);
 
 	y -= kTextVMargin - 1;
 	int n = 0;
diff --git a/engines/cge/vmenu.h b/engines/cge/vmenu.h
index 89ef7a9..928b48f 100644
--- a/engines/cge/vmenu.h
+++ b/engines/cge/vmenu.h
@@ -58,7 +58,7 @@ public:
 	MenuBar *_bar;
 	Vmenu(CGEEngine *vm, Choice *list, int x, int y);
 	~Vmenu();
-	virtual void touch(uint16 mask, int x, int y);
+	virtual void touch(uint16 mask, int x, int y, Common::KeyCode keyCode);
 private:
 	char *_vmgt;
 	CGEEngine *_vm;


Commit: 14a59b97b289416bc124985e7b5f3b45d8e7a7e0
    https://github.com/scummvm/scummvm/commit/14a59b97b289416bc124985e7b5f3b45d8e7a7e0
Author: Strangerke (strangerke at scummvm.org)
Date: 2012-07-05T12:31:43-07:00

Commit Message:
CGE: Silent some CppCheck warnings

Changed paths:
    engines/cge/bitmap.cpp
    engines/cge/vmenu.cpp



diff --git a/engines/cge/bitmap.cpp b/engines/cge/bitmap.cpp
index 309b89b..4f85957 100644
--- a/engines/cge/bitmap.cpp
+++ b/engines/cge/bitmap.cpp
@@ -123,12 +123,15 @@ Bitmap::~Bitmap() {
 
 Bitmap &Bitmap::operator=(const Bitmap &bmp) {
 	debugC(1, kCGEDebugBitmap, "&Bitmap::operator =");
+	if (this == &bmp)
+		return *this;
 
 	uint8 *v0 = bmp._v;
 	_w = bmp._w;
 	_h = bmp._h;
 	_m = NULL;
 	_map = 0;
+	_vm = bmp._vm;
 	delete[] _v;
 
 	if (v0 == NULL) {
diff --git a/engines/cge/vmenu.cpp b/engines/cge/vmenu.cpp
index 84b557f..910e54d 100644
--- a/engines/cge/vmenu.cpp
+++ b/engines/cge/vmenu.cpp
@@ -63,7 +63,7 @@ Vmenu *Vmenu::_addr = NULL;
 int Vmenu::_recent = -1;
 
 Vmenu::Vmenu(CGEEngine *vm, Choice *list, int x, int y)
-	: Talk(vm, VMGather(list), kTBRect), _menu(list), _bar(NULL), _vm(vm) {
+	: Talk(vm, VMGather(list), kTBRect), _menu(list), _bar(NULL), _vmgt(NULL), _vm(vm) {
 	Choice *cp;
 
 	_addr = this;






More information about the Scummvm-git-logs mailing list