[Scummvm-cvs-logs] scummvm master -> 056fc6250cc04a38772870139a8208ffde425765
Strangerke
Strangerke at scummvm.org
Sat Feb 11 12:36:45 CET 2012
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
056fc6250c TSAGE: R2R - Scene 1337: Implement shuffleCards()
Commit: 056fc6250cc04a38772870139a8208ffde425765
https://github.com/scummvm/scummvm/commit/056fc6250cc04a38772870139a8208ffde425765
Author: Strangerke (strangerke at scummvm.org)
Date: 2012-02-11T03:35:53-08:00
Commit Message:
TSAGE: R2R - Scene 1337: Implement shuffleCards()
Game is now starting
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes1.h
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index b3907d7..c04134a 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -2790,7 +2790,7 @@ void Scene1337::Action4::signal() {
scene->_item2._object1.hide();
if ((scene->_arrunkObj1337[scene->_field423E]._arr1[0]._field34 == 0) && (scene->subC264B(scene->_arrunkObj1337[scene->_field423E]._arr3[0]._field34 == 0))) {
if (scene->_field3E24 < 0)
- scene->subCBB7B();
+ scene->shuffleCards();
scene->_item2._object1.setPosition(Common::Point(162, 95));
scene->_item2._object1.show();
@@ -2825,7 +2825,7 @@ void Scene1337::Action4::signal() {
scene->_item2._object1.hide();
if ((scene->_arrunkObj1337[scene->_field423E]._arr1[2]._field34 == 0) && (scene->subC264B(scene->_arrunkObj1337[scene->_field423E]._arr3[0]._field34 == 0))) {
if (scene->_field3E24 < 0)
- scene->subCBB7B();
+ scene->shuffleCards();
scene->_item2._object1.setPosition(Common::Point(162, 95));
scene->_item2._object1.show();
@@ -2860,7 +2860,7 @@ void Scene1337::Action4::signal() {
scene->_item2._object1.hide();
if ((scene->_arrunkObj1337[scene->_field423E]._arr1[3]._field34 == 0) && (scene->subC264B(scene->_arrunkObj1337[scene->_field423E]._arr3[0]._field34 == 0))) {
if (scene->_field3E24 < 0)
- scene->subCBB7B();
+ scene->shuffleCards();
scene->_item2._object1.setPosition(Common::Point(162, 95));
scene->_item2._object1.show();
@@ -4238,12 +4238,59 @@ void Scene1337::subCB59B() {
_item1.setAction(&_action1);
}
-void Scene1337::subCBB7B() {
- warning("STUBBED Scene1337::subCBB7B()");
+void Scene1337::shuffleCards() {
+ R2_GLOBALS._sceneObjects->draw();
+
+ for (int i = 0; i <= 98; i++) {
+ if (_field3E28[i] == 0) {
+ for (int j = i + 1; j <= 98; j ++) {
+ if (_field3E28[j] != 0) {
+ _field3E28[i] = _field3E28[j];
+ _field3E28[j] = 0;
+ break;
+ }
+ }
+ }
+ }
+
+ for (int i = 0; i <= 99; i ++) {
+ if (_field3E28[i] == 0) {
+ _field3E24 = i - 1;
+ _field3E26 = 98;
+ break;
+ }
+ }
+
+ // tmpVal is never modified in the original. It looks weird but it works: at the end, the cards are suffled!
+ int tmpVal = 0;
+ int randIndx;
+ int swap;
+ for (int i = 0; i < 2000; i ++) {
+ randIndx = R2_GLOBALS._randomSource.getRandomNumber(_field3E24);
+ swap = _field3E28[tmpVal];
+ _field3E28[tmpVal] = _field3E28[randIndx];
+ _field3E28[randIndx] = swap;
+ }
+
+ _field423C = 0;
+ _item2._object1.setAction(&_action2);
+
+ while(_field423C == 0) {
+ g_globals->_scenePalette.signalListeners();
+ R2_GLOBALS._sceneObjects->draw();
+ warning("TODO: recurse on draw() and on signalListeners()?");
+ g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+
+ // Hack to avoid eternal loop
+ // To be removed when the recurse is working properly
+ _field423C = 1;
+ }
}
void Scene1337::subCCF26() {
- warning("STUBBED Scene1337::subCCF26()");
+ _item2._object1._moveDiff = Common::Point(30, 30);
+ shuffleCards();
+ _item1.setAction(&_action3);
}
void Scene1337::subCF31D() {
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index 53db763..2a91980 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -328,7 +328,7 @@ public:
void subPostInit();
void subCB59B();
void suggestInstructions();
- void subCBB7B();
+ void shuffleCards();
void subCCF26();
void subCF31D();
void subCF979();
More information about the Scummvm-git-logs
mailing list