[Scummvm-cvs-logs] scummvm master -> 126417ae990180a5656c2aca75b26d7e73d8603b

Strangerke Strangerke at scummvm.org
Mon Oct 13 23:20:01 CEST 2014


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:
126417ae99 TSAGE: R2R - move Scene1337 to its own source file to reduce the size of ringworld2_scenes1


Commit: 126417ae990180a5656c2aca75b26d7e73d8603b
    https://github.com/scummvm/scummvm/commit/126417ae990180a5656c2aca75b26d7e73d8603b
Author: Strangerke (strangerke at scummvm.org)
Date: 2014-10-13T23:17:24+02:00

Commit Message:
TSAGE: R2R - move Scene1337 to its own source file to reduce the size of ringworld2_scenes1

Changed paths:
  A engines/tsage/ringworld2/ringworld2_outpost.cpp
  A engines/tsage/ringworld2/ringworld2_outpost.h
    engines/tsage/module.mk
    engines/tsage/ringworld2/ringworld2_logic.cpp
    engines/tsage/ringworld2/ringworld2_scenes1.cpp
    engines/tsage/ringworld2/ringworld2_scenes1.h



diff --git a/engines/tsage/module.mk b/engines/tsage/module.mk
index 53c03e2..3fc30f9 100644
--- a/engines/tsage/module.mk
+++ b/engines/tsage/module.mk
@@ -41,6 +41,7 @@ MODULE_OBJS := \
 	ringworld2/ringworld2_scenes1.o \
 	ringworld2/ringworld2_scenes2.o \
 	ringworld2/ringworld2_scenes3.o \
+	ringworld2/ringworld2_outpost.o \
 	ringworld2/ringworld2_speakers.o \
 	saveload.o \
 	scenes.o \
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 99913d8..a04fd56 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -32,6 +32,7 @@
 #include "tsage/ringworld2/ringworld2_scenes1.h"
 #include "tsage/ringworld2/ringworld2_scenes2.h"
 #include "tsage/ringworld2/ringworld2_scenes3.h"
+#include "tsage/ringworld2/ringworld2_outpost.h"
 
 namespace TsAGE {
 
diff --git a/engines/tsage/ringworld2/ringworld2_outpost.cpp b/engines/tsage/ringworld2/ringworld2_outpost.cpp
new file mode 100644
index 0000000..5766102
--- /dev/null
+++ b/engines/tsage/ringworld2/ringworld2_outpost.cpp
@@ -0,0 +1,4702 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "graphics/cursorman.h"
+
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/staticres.h"
+#include "tsage/ringworld2/ringworld2_outpost.h"
+
+namespace TsAGE {
+
+namespace Ringworld2 {
+
+/*--------------------------------------------------------------------------
+ * Scene 1337 - Card game
+ *
+ *--------------------------------------------------------------------------*/
+
+Scene1337::Card::Card() {
+	_cardId = 0;
+	_stationPos = Common::Point(0, 0);
+}
+
+void Scene1337::Card::synchronize(Serializer &s) {
+	_card.synchronize(s);
+
+	s.syncAsSint16LE(_cardId);
+	s.syncAsSint16LE(_stationPos.x);
+	s.syncAsSint16LE(_stationPos.y);
+}
+
+bool Scene1337::Card::isIn(Common::Point pt) {
+	if ((_stationPos.x > pt.x) || (_stationPos.x + 24 < pt.x))
+		return false;
+
+	if ((_stationPos.y > pt.y) || (_stationPos.y + 24 < pt.y))
+		return false;
+
+	return true;
+}
+
+Scene1337::GameBoardSide::GameBoardSide() {
+	_card1Pos = Common::Point(0, 0);
+	_card2Pos = Common::Point(0, 0);
+	_card3Pos = Common::Point(0, 0);
+	_card4Pos = Common::Point(0, 0);
+	_frameNum = 0;
+}
+
+void Scene1337::GameBoardSide::synchronize(Serializer &s) {
+	SceneHotspot::synchronize(s);
+
+	for (int i = 0; i < 4; i++)
+		_handCard[i].synchronize(s);
+
+	for (int i = 0; i < 8; i++)
+		_outpostStation[i].synchronize(s);
+
+	_delayCard.synchronize(s);
+	_emptyStationPos.synchronize(s);
+
+	s.syncAsSint16LE(_card1Pos.x);
+	s.syncAsSint16LE(_card1Pos.y);
+	s.syncAsSint16LE(_card2Pos.x);
+	s.syncAsSint16LE(_card2Pos.y);
+	s.syncAsSint16LE(_card3Pos.x);
+	s.syncAsSint16LE(_card3Pos.y);
+	s.syncAsSint16LE(_card4Pos.x);
+	s.syncAsSint16LE(_card4Pos.y);
+	s.syncAsSint16LE(_frameNum);
+}
+
+Scene1337::Scene1337() {
+	_autoplay = false;
+	_cardsAvailableNumb = 0;
+	_currentDiscardIndex = 0;
+
+	for (int i = 0; i < 100; i++)
+		_availableCardsPile[i] = 0;
+
+	_shuffleEndedFl = false;
+	_currentPlayerNumb = 0;
+	_actionPlayerIdx = 0;
+	_actionVictimIdx = 0;
+	_showPlayerTurn = false;
+	_displayHelpFl = false;
+	_winnerId = -1;
+	_instructionsDisplayedFl = false;
+	_instructionsWaitCount = 0;
+
+	_delayedFunction = nullptr;
+	_actionCard1 = nullptr;
+	_actionCard2 = nullptr;
+	_actionCard3 = nullptr;
+
+	_cursorCurRes = 0;
+	_cursorCurStrip = 0;
+	_cursorCurFrame = 0;
+}
+
+void Scene1337::synchronize(Serializer &s) {
+	_actionCard1->synchronize(s);
+	_actionCard2->synchronize(s);
+	_actionCard3->synchronize(s);
+	_animatedCard.synchronize(s);
+	_shuffleAnimation.synchronize(s);
+	_discardedPlatformCard.synchronize(s);
+	_selectedCard.synchronize(s);
+	_discardPile.synchronize(s);
+	_stockCard.synchronize(s);
+	_aSound1.synchronize(s);
+	_aSound2.synchronize(s);
+	_helpIcon.synchronize(s);
+	_stockPile.synchronize(s);
+	_actionItem.synchronize(s);
+	_currentPlayerArrow.synchronize(s);
+
+	for (int i = 0; i < 4; i++)
+		_gameBoardSide[i].synchronize(s);
+
+	for (int i = 0; i < 8; i++) {
+		_upperDisplayCard[i].synchronize(s);
+		_lowerDisplayCard[i].synchronize(s);
+	}
+
+	// TODO s.syncPointer(_delayedFunction);
+	s.syncAsByte(_autoplay);
+	s.syncAsByte(_shuffleEndedFl);
+	s.syncAsByte(_showPlayerTurn);
+	s.syncAsByte(_displayHelpFl);
+	s.syncAsByte(_instructionsDisplayedFl);
+	s.syncAsSint16LE(_currentDiscardIndex);
+	s.syncAsSint16LE(_cardsAvailableNumb);
+	s.syncAsSint16LE(_currentPlayerNumb);
+	s.syncAsSint16LE(_actionPlayerIdx);
+	s.syncAsSint16LE(_actionVictimIdx);
+	s.syncAsSint16LE(_winnerId);
+	s.syncAsSint16LE(_instructionsWaitCount);
+	s.syncAsSint16LE(_cursorCurRes);
+	s.syncAsSint16LE(_cursorCurStrip);
+	s.syncAsSint16LE(_cursorCurFrame);
+
+	for (int i = 0; i < 100; i++)
+		s.syncAsSint16LE(_availableCardsPile[i]);
+
+}
+
+void Scene1337::Action1337::waitFrames(int32 frameCount) {
+	uint32 firstFrameNumber = g_globals->_events.getFrameNumber();
+	uint32 curFrame = firstFrameNumber;
+	uint32 destFrame = firstFrameNumber + frameCount;
+
+	while ((curFrame < destFrame) && !g_vm->shouldQuit()) {
+		TsAGE::Event event;
+		g_globals->_events.getEvent(event);
+		curFrame = g_globals->_events.getFrameNumber();
+	}
+
+	// CHECKME: The original is calling _eventManager.waitEvent();
+}
+
+/**
+ * Display instructions
+ */
+void Scene1337::Action1::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 1: {
+		scene->actionDisplay(1331, 6, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		R2_GLOBALS._sceneObjects->draw();
+		scene->actionDisplay(1331, 7, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		scene->actionDisplay(1331, 8, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_gameBoardSide[1]._outpostStation[0]._cardId = 2;
+		scene->_gameBoardSide[1]._outpostStation[0]._card.postInit();
+		scene->_gameBoardSide[1]._outpostStation[0]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[1]._outpostStation[0]._stationPos, 0);
+		scene->_gameBoardSide[1]._outpostStation[0]._card.setStrip(2);
+		scene->_gameBoardSide[1]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[1]._outpostStation[0]._cardId);
+		scene->_gameBoardSide[1]._outpostStation[0]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[1]._outpostStation[0]);
+
+		scene->_gameBoardSide[1]._outpostStation[1]._cardId = 3;
+		scene->_gameBoardSide[1]._outpostStation[1]._card.postInit();
+		scene->_gameBoardSide[1]._outpostStation[1]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[1]._outpostStation[1]._stationPos, 0);
+		scene->_gameBoardSide[1]._outpostStation[1]._card.setStrip(2);
+		scene->_gameBoardSide[1]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[1]._outpostStation[1]._cardId);
+		scene->_gameBoardSide[1]._outpostStation[1]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[1]._outpostStation[1]);
+
+		scene->_gameBoardSide[2]._outpostStation[0]._cardId = 4;
+		scene->_gameBoardSide[2]._outpostStation[0]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[0]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[0]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[0]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[0]._cardId);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[0]);
+
+		scene->_gameBoardSide[3]._outpostStation[0]._cardId = 5;
+		scene->_gameBoardSide[3]._outpostStation[0]._card.postInit();
+		scene->_gameBoardSide[3]._outpostStation[0]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[0]._stationPos, 0);
+		scene->_gameBoardSide[3]._outpostStation[0]._card.setStrip(2);
+		scene->_gameBoardSide[3]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[0]._cardId);
+		scene->_gameBoardSide[3]._outpostStation[0]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[0]);
+
+		scene->_gameBoardSide[3]._outpostStation[1]._cardId = 6;
+		scene->_gameBoardSide[3]._outpostStation[1]._card.postInit();
+		scene->_gameBoardSide[3]._outpostStation[1]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[1]._stationPos, 0);
+		scene->_gameBoardSide[3]._outpostStation[1]._card.setStrip(2);
+		scene->_gameBoardSide[3]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[1]._cardId);
+		scene->_gameBoardSide[3]._outpostStation[1]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[1]);
+
+		scene->_gameBoardSide[3]._outpostStation[2]._cardId = 7;
+		scene->_gameBoardSide[3]._outpostStation[2]._card.postInit();
+		scene->_gameBoardSide[3]._outpostStation[2]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._outpostStation[2]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[2]._stationPos, 0);
+		scene->_gameBoardSide[3]._outpostStation[2]._card.setStrip(2);
+		scene->_gameBoardSide[3]._outpostStation[2]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[2]._cardId);
+		scene->_gameBoardSide[3]._outpostStation[2]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[2]);
+
+		scene->_gameBoardSide[0]._outpostStation[0]._cardId = 8;
+		scene->_gameBoardSide[0]._outpostStation[0]._card.postInit();
+		scene->_gameBoardSide[0]._outpostStation[0]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[0]._outpostStation[0]._stationPos, 0);
+		scene->_gameBoardSide[0]._outpostStation[0]._card.setStrip(2);
+		scene->_gameBoardSide[0]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[0]._outpostStation[0]._cardId);
+		scene->_gameBoardSide[0]._outpostStation[0]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[0]._outpostStation[0]);
+
+		scene->_gameBoardSide[0]._outpostStation[1]._cardId = 9;
+		scene->_gameBoardSide[0]._outpostStation[1]._card.postInit();
+		scene->_gameBoardSide[0]._outpostStation[1]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[0]._outpostStation[1]._stationPos, 0);
+		scene->_gameBoardSide[0]._outpostStation[1]._card.setStrip(2);
+		scene->_gameBoardSide[0]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[0]._outpostStation[1]._cardId);
+		scene->_gameBoardSide[0]._outpostStation[1]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[0]._outpostStation[1]);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(60);
+		scene->actionDisplay(1331, 9, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_gameBoardSide[2]._outpostStation[1]._cardId = 2;
+		scene->_gameBoardSide[2]._outpostStation[1]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[1]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
+
+		scene->_gameBoardSide[2]._outpostStation[2]._cardId = 3;
+		scene->_gameBoardSide[2]._outpostStation[2]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[2]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[2]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[2]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[2]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[2]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[2]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[2]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[2]);
+
+		scene->_gameBoardSide[2]._outpostStation[3]._cardId = 5;
+		scene->_gameBoardSide[2]._outpostStation[3]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[3]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[3]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[3]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[3]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[3]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[3]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[3]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[3]);
+
+		scene->_gameBoardSide[2]._outpostStation[4]._cardId = 6;
+		scene->_gameBoardSide[2]._outpostStation[4]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[4]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[4]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[4]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[4]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[4]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[4]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[4]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[4]);
+
+		scene->_gameBoardSide[2]._outpostStation[5]._cardId = 7;
+		scene->_gameBoardSide[2]._outpostStation[5]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[5]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[5]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[5]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[5]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[5]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[5]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[5]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[5]);
+
+		scene->_gameBoardSide[2]._outpostStation[6]._cardId = 8;
+		scene->_gameBoardSide[2]._outpostStation[6]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[6]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[6]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[6]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[6]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[6]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[6]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[6]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[6]);
+
+		scene->_gameBoardSide[2]._outpostStation[7]._cardId = 9;
+		scene->_gameBoardSide[2]._outpostStation[7]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[7]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[7]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[7]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[7]._card.setStrip(2);
+		scene->_gameBoardSide[2]._outpostStation[7]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[7]._cardId);
+		scene->_gameBoardSide[2]._outpostStation[7]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[7]);
+
+		scene->_aSound1.play(62);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(120);
+		scene->_gameBoardSide[2]._outpostStation[0]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[1]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[2]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[3]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[4]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[5]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[6]._card.remove();
+		scene->_gameBoardSide[2]._outpostStation[7]._card.remove();
+
+		scene->_gameBoardSide[1]._outpostStation[0]._card.remove();
+		scene->_gameBoardSide[1]._outpostStation[1]._card.remove();
+
+		scene->_gameBoardSide[3]._outpostStation[0]._card.remove();
+		scene->_gameBoardSide[3]._outpostStation[1]._card.remove();
+		scene->_gameBoardSide[3]._outpostStation[2]._card.remove();
+
+		scene->_gameBoardSide[0]._outpostStation[0]._card.remove();
+		scene->_gameBoardSide[0]._outpostStation[1]._card.remove();
+
+		scene->_stockPile.setup(1332, 5, 1);
+		scene->_stockPile.setPosition(Common::Point(162, 95));
+		scene->_stockPile.setPriority(110);
+		scene->_stockPile._effect = EFFECT_SHADED;
+		scene->_stockPile.show();
+
+		scene->_gameBoardSide[1]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[0]._card.setPosition(scene->_gameBoardSide[1]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[0]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[0]._card.fixPriority(170);
+
+		scene->_gameBoardSide[1]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[1]._card.setPosition(scene->_gameBoardSide[1]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[1]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[1]._card.fixPriority(170);
+
+		scene->_gameBoardSide[1]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[2]._card.setPosition(scene->_gameBoardSide[1]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[2]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[2]._card.fixPriority(170);
+
+		scene->_gameBoardSide[2]._handCard[0]._cardId = 30;
+		scene->_gameBoardSide[2]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[0]._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[2]._handCard[0]._card.setFrame(2);
+		scene->_gameBoardSide[2]._handCard[0]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[0]);
+
+		scene->_gameBoardSide[2]._handCard[1]._cardId = 16;
+		scene->_gameBoardSide[2]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[1]._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[2]._handCard[1]._card.setFrame(2);
+		scene->_gameBoardSide[2]._handCard[1]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[1]);
+
+		scene->_gameBoardSide[2]._handCard[2]._cardId = 1;
+		scene->_gameBoardSide[2]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[2]._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[2]._handCard[2]._card.setFrame(2);
+		scene->_gameBoardSide[2]._handCard[2]._card.fixPriority(170);
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[2]);
+
+		scene->_gameBoardSide[3]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[0]._card.setPosition(scene->_gameBoardSide[3]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[3]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[0]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[0]._card.fixPriority(170);
+
+		scene->_gameBoardSide[3]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[1]._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[3]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[1]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[1]._card.fixPriority(170);
+
+		scene->_gameBoardSide[3]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[2]._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[3]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[2]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[2]._card.fixPriority(170);
+
+		scene->_gameBoardSide[0]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[0]._card.setPosition(scene->_gameBoardSide[0]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[0]._handCard[0]._card.setFrame(2);
+		scene->_gameBoardSide[0]._handCard[0]._card.fixPriority(170);
+
+		scene->_gameBoardSide[0]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[1]._card.setPosition(scene->_gameBoardSide[0]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[0]._handCard[1]._card.setFrame(2);
+		scene->_gameBoardSide[0]._handCard[1]._card.fixPriority(170);
+
+		scene->_gameBoardSide[0]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[2]._card.setPosition(scene->_gameBoardSide[0]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[0]._handCard[2]._card.setFrame(2);
+		scene->_gameBoardSide[0]._handCard[2]._card.fixPriority(170);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		scene->actionDisplay(1331, 10, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
+		scene->_animatedCard._card.show();
+		scene->_aSound2.play(61);
+
+		Common::Point pt(91, 174);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+		}
+		break;
+	case 2: {
+		scene->_gameBoardSide[2]._handCard[3]._cardId = 2;
+		scene->_gameBoardSide[2]._handCard[3]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[3]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[3]._card.setPosition(scene->_gameBoardSide[2]._handCard[3]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[3]._card.setStrip(1);
+		scene->_gameBoardSide[2]._handCard[3]._card.setFrame(2);
+		scene->_gameBoardSide[2]._handCard[3]._card.fixPriority(170);
+
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[3]);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(60);
+		scene->actionDisplay(1331, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		scene->actionDisplay(1331, 12, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_gameBoardSide[2]._outpostStation[1]._cardId = 1;
+		scene->_gameBoardSide[2]._outpostStation[1]._card.postInit();
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
+		scene->_gameBoardSide[2]._outpostStation[1]._card.hide();
+
+		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[2]._card._strip);
+		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._card._frame);
+		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
+
+		scene->_gameBoardSide[2]._handCard[2]._cardId = 0;
+		scene->_gameBoardSide[2]._handCard[2]._card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._outpostStation[1]._stationPos, this);
+		}
+		break;
+	case 3: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
+		scene->_aSound1.play(59);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(60);
+		scene->actionDisplay(1331, 13, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_gameBoardSide[2]._outpostStation[1]._cardId = scene->_gameBoardSide[2]._handCard[3]._cardId;
+
+		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[3]._card._strip);
+		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[3]._card._frame);
+
+		scene->_gameBoardSide[2]._handCard[3]._cardId = 0;
+		scene->_gameBoardSide[2]._handCard[3]._card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[3]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._outpostStation[1]._stationPos, this);
+		}
+		break;
+	case 4: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
+		scene->_aSound1.play(59);
+
+		scene->_discardPile._cardId = 1;
+		scene->_discardPile._card.hide();
+
+		scene->_animatedCard._card.setStrip(5);
+		scene->_animatedCard._card.setFrame(1);
+		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
+		}
+		break;
+	case 5: {
+		scene->_animatedCard._card.hide();
+
+		scene->_discardPile._card.postInit();
+		scene->_discardPile._card.setVisage(1332);
+		scene->_discardPile._card.setPosition(scene->_discardPile._stationPos, 0);
+		scene->setAnimationInfo(&scene->_discardPile);
+		scene->_aSound2.play(61);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(60);
+		scene->actionDisplay(1331, 14, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_gameBoardSide[2]._delayCard._card.postInit();
+		scene->_gameBoardSide[2]._delayCard._card.setVisage(1332);
+		scene->_gameBoardSide[2]._delayCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
+		scene->_gameBoardSide[2]._delayCard._card.hide();
+
+		scene->_gameBoardSide[3]._handCard[2]._cardId = 0;
+		scene->_gameBoardSide[3]._handCard[2].remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
+		}
+		break;
+	case 6: {
+		scene->_animatedCard._card.hide();
+		scene->_gameBoardSide[2]._delayCard._cardId = 21;
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._delayCard);
+		scene->_aSound1.play(57);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(60);
+		scene->actionDisplay(1331, 15, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		int tmpVal = 15;
+		int i = -1;
+
+		for (i = 0; i <= 7; i++) {
+			tmpVal += 29;
+
+			scene->_upperDisplayCard[i].postInit();
+			scene->_upperDisplayCard[i].setVisage(1332);
+			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 90), 0);
+			scene->_upperDisplayCard[i].setStrip(3);
+			scene->_upperDisplayCard[i].fixPriority(190);
+
+			scene->_lowerDisplayCard[i].postInit();
+			scene->_lowerDisplayCard[i].setVisage(1332);
+			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 90), 0);
+			scene->_lowerDisplayCard[i].setStrip(7);
+			scene->_lowerDisplayCard[i].setFrame(1);
+			scene->_lowerDisplayCard[i].fixPriority(180);
+		}
+
+		scene->_upperDisplayCard[0].setFrame(1);
+		scene->_upperDisplayCard[1].setFrame(3);
+		scene->_upperDisplayCard[2].setFrame(6);
+		scene->_upperDisplayCard[3].setFrame(8);
+		scene->_upperDisplayCard[4].setFrame(9);
+		scene->_upperDisplayCard[5].setFrame(10);
+		scene->_upperDisplayCard[6].setFrame(11);
+		scene->_upperDisplayCard[7].setFrame(12);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(240);
+
+		scene->_upperDisplayCard[0].remove();
+		scene->_upperDisplayCard[1].remove();
+		scene->_upperDisplayCard[2].remove();
+		scene->_upperDisplayCard[3].remove();
+		scene->_upperDisplayCard[4].remove();
+		scene->_upperDisplayCard[5].remove();
+		scene->_upperDisplayCard[6].remove();
+		scene->_upperDisplayCard[7].remove();
+
+		scene->_lowerDisplayCard[0].remove();
+		scene->_lowerDisplayCard[1].remove();
+		scene->_lowerDisplayCard[2].remove();
+		scene->_lowerDisplayCard[3].remove();
+		scene->_lowerDisplayCard[4].remove();
+		scene->_lowerDisplayCard[5].remove();
+		scene->_lowerDisplayCard[6].remove();
+		scene->_lowerDisplayCard[7].remove();
+
+		scene->_discardPile._cardId = scene->_gameBoardSide[2]._delayCard._cardId;
+
+		scene->_gameBoardSide[2]._delayCard._cardId = 0;
+		scene->_gameBoardSide[2]._delayCard._card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
+		}
+		break;
+	case 7: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_discardPile);
+		scene->_aSound2.play(61);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		scene->_gameBoardSide[2]._delayCard._card.postInit();
+		scene->_gameBoardSide[2]._delayCard._card.setVisage(1332);
+		scene->_gameBoardSide[2]._delayCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
+		scene->_gameBoardSide[2]._delayCard._card.hide();
+
+		scene->_gameBoardSide[3]._handCard[1]._cardId = 0;
+		scene->_gameBoardSide[3]._handCard[1].remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
+		}
+		break;
+	case 8: {
+		scene->_animatedCard._card.hide();
+		scene->_gameBoardSide[2]._delayCard._cardId = 14;
+		scene->setAnimationInfo(&scene->_gameBoardSide[2]._delayCard);
+		scene->_aSound1.play(57);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		scene->actionDisplay(1331, 16, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		int tmpVal = 72;
+		int i = -1;
+
+		for (i = 0; i <= 3; i++) {
+			tmpVal += 29;
+			scene->_upperDisplayCard[i].postInit();
+			scene->_upperDisplayCard[i].setVisage(1332);
+			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 71), 0);
+			scene->_upperDisplayCard[i].setStrip(3);
+			scene->_upperDisplayCard[i].fixPriority(190);
+
+			scene->_lowerDisplayCard[i].postInit();
+			scene->_lowerDisplayCard[i].setVisage(1332);
+			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 71), 0);
+			scene->_lowerDisplayCard[i].setStrip(7);
+			scene->_lowerDisplayCard[i].setFrame(1);
+			scene->_lowerDisplayCard[i].fixPriority(180);
+		}
+
+		scene->_upperDisplayCard[0].setFrame(2);
+		scene->_upperDisplayCard[1].setFrame(5);
+		scene->_upperDisplayCard[2].setFrame(7);
+		scene->_upperDisplayCard[3].setFrame(15);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(240);
+		scene->actionDisplay(1331, 17, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		tmpVal = 72;
+		for (i = 4; i <= 7; i++) {
+			tmpVal += 29;
+
+			scene->_upperDisplayCard[i].postInit();
+			scene->_upperDisplayCard[i].setVisage(1332);
+			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 100), 0);
+			scene->_upperDisplayCard[i].setStrip(4);
+			scene->_upperDisplayCard[i].fixPriority(190);
+
+			scene->_lowerDisplayCard[i].postInit();
+			scene->_lowerDisplayCard[i].setVisage(1332);
+			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 100), 0);
+			scene->_lowerDisplayCard[i].setStrip(7);
+			scene->_lowerDisplayCard[i].setFrame(1);
+			scene->_lowerDisplayCard[i].fixPriority(180);
+		}
+
+		scene->_upperDisplayCard[4].setFrame(1);
+		scene->_upperDisplayCard[5].setFrame(5);
+		scene->_upperDisplayCard[6].setFrame(7);
+		scene->_upperDisplayCard[7].setFrame(3);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(240);
+
+		scene->_upperDisplayCard[0].remove();
+		scene->_upperDisplayCard[1].remove();
+		scene->_upperDisplayCard[2].remove();
+		scene->_upperDisplayCard[3].remove();
+		scene->_upperDisplayCard[4].remove();
+		scene->_upperDisplayCard[5].remove();
+		scene->_upperDisplayCard[6].remove();
+		scene->_upperDisplayCard[7].remove();
+
+		scene->_lowerDisplayCard[0].remove();
+		scene->_lowerDisplayCard[1].remove();
+		scene->_lowerDisplayCard[2].remove();
+		scene->_lowerDisplayCard[3].remove();
+		scene->_lowerDisplayCard[4].remove();
+		scene->_lowerDisplayCard[5].remove();
+		scene->_lowerDisplayCard[6].remove();
+		scene->_lowerDisplayCard[7].remove();
+
+		scene->_discardPile._cardId = scene->_gameBoardSide[2]._handCard[0]._cardId;
+
+		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[0]._card._strip);
+		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._card._frame);
+		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
+
+		scene->_gameBoardSide[2]._handCard[0]._cardId = 0;
+		scene->_gameBoardSide[2]._handCard[0]._card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
+		}
+		break;
+	case 9: {
+		scene->_aSound1.play(58);
+		scene->_gameBoardSide[2]._delayCard._cardId = 0;
+		scene->_gameBoardSide[2]._delayCard.remove();
+		scene->_animatedCard._card.setStrip(5);
+		scene->_animatedCard._card.setFrame(1);
+		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
+		}
+		break;
+	case 10: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_discardPile);
+		scene->_aSound2.play(61);
+
+		R2_GLOBALS._sceneObjects->draw();
+		scene->actionDisplay(1331, 18, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		scene->_upperDisplayCard[0].postInit();
+		scene->_upperDisplayCard[0].setVisage(1332);
+		scene->_upperDisplayCard[0].setPosition(Common::Point(131, 71), 0);
+		scene->_upperDisplayCard[0].fixPriority(190);
+		scene->_upperDisplayCard[0].setStrip(3);
+		scene->_upperDisplayCard[0].setFrame(4);
+
+		scene->_lowerDisplayCard[0].postInit();
+		scene->_lowerDisplayCard[0].setVisage(1332);
+		scene->_lowerDisplayCard[0].setPosition(Common::Point(131, 71), 0);
+		scene->_lowerDisplayCard[0].setStrip(7);
+		scene->_lowerDisplayCard[0].setFrame(1);
+		scene->_lowerDisplayCard[0].fixPriority(180);
+
+		scene->_upperDisplayCard[1].postInit();
+		scene->_upperDisplayCard[1].setVisage(1332);
+		scene->_upperDisplayCard[1].setPosition(Common::Point(160, 71), 0);
+		scene->_upperDisplayCard[1].fixPriority(190);
+		scene->_upperDisplayCard[1].setStrip(3);
+		scene->_upperDisplayCard[1].setFrame(16);
+
+		scene->_lowerDisplayCard[1].postInit();
+		scene->_lowerDisplayCard[1].setVisage(1332);
+		scene->_lowerDisplayCard[1].setPosition(Common::Point(160, 71), 0);
+		scene->_lowerDisplayCard[1].setStrip(7);
+		scene->_lowerDisplayCard[1].setFrame(1);
+		scene->_lowerDisplayCard[1].fixPriority(180);
+
+		scene->_upperDisplayCard[2].postInit();
+		scene->_upperDisplayCard[2].setVisage(1332);
+		scene->_upperDisplayCard[2].setPosition(Common::Point(131, 100), 0);
+		scene->_upperDisplayCard[2].fixPriority(190);
+		scene->_upperDisplayCard[2].setStrip(4);
+		scene->_upperDisplayCard[2].setFrame(4);
+
+		scene->_lowerDisplayCard[2].postInit();
+		scene->_lowerDisplayCard[2].setVisage(1332);
+		scene->_lowerDisplayCard[2].setPosition(Common::Point(131, 100), 0);
+		scene->_lowerDisplayCard[2].setStrip(7);
+		scene->_lowerDisplayCard[2].setFrame(1);
+		scene->_lowerDisplayCard[2].fixPriority(180);
+
+		scene->_upperDisplayCard[3].postInit();
+		scene->_upperDisplayCard[3].setVisage(1332);
+		scene->_upperDisplayCard[3].setPosition(Common::Point(160, 100), 0);
+		scene->_upperDisplayCard[3].fixPriority(190);
+		scene->_upperDisplayCard[3].setStrip(4);
+		scene->_upperDisplayCard[3].setFrame(2);
+
+		scene->_lowerDisplayCard[3].postInit();
+		scene->_lowerDisplayCard[3].setVisage(1332);
+		scene->_lowerDisplayCard[3].setPosition(Common::Point(160, 100), 0);
+		scene->_lowerDisplayCard[3].setStrip(7);
+		scene->_lowerDisplayCard[3].setFrame(1);
+		scene->_lowerDisplayCard[3].fixPriority(180);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		waitFrames(240);
+
+		scene->_upperDisplayCard[0].remove();
+		scene->_upperDisplayCard[1].remove();
+		scene->_upperDisplayCard[2].remove();
+		scene->_upperDisplayCard[3].remove();
+
+		scene->_lowerDisplayCard[0].remove();
+		scene->_lowerDisplayCard[1].remove();
+		scene->_lowerDisplayCard[2].remove();
+		scene->_lowerDisplayCard[3].remove();
+
+		scene->_currentPlayerArrow.setFrame(1);
+		scene->_currentPlayerArrow.show();
+		scene->_currentPlayerArrow.animate(ANIM_MODE_2, NULL);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		scene->actionDisplay(1331, 19, 159, 10, 1, 220, 0, 7, 0, 154, 154);
+
+		scene->_currentPlayerArrow.hide();
+
+		scene->actionDisplay(1331, 20, 159, 10, 1, 220, 0, 7, 0, 154, 154);
+		scene->actionDisplay(1331, 21, 159, 10, 1, 220, 0, 7, 0, 154, 154);
+
+		scene->_discardPile._cardId = scene->_gameBoardSide[2]._handCard[1]._cardId;
+
+		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[1]._card._strip);
+		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._card._frame);
+		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
+
+		scene->_gameBoardSide[2]._handCard[1]._cardId = 0;
+		scene->_gameBoardSide[2]._handCard[1]._card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
+		}
+		break;
+	case 11: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_discardPile);
+		scene->_aSound2.play(61);
+		scene->_animatedCard._card.setStrip(5);
+		scene->_animatedCard._card.setFrame(1);
+		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
+
+		R2_GLOBALS._sceneObjects->draw();
+
+		scene->actionDisplay(1331, 22, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		int i = -1;
+		for (i = 0; i <= 3; i ++) {
+			scene->_gameBoardSide[3]._handCard[i]._cardId = 0;
+			scene->_gameBoardSide[3]._handCard[i]._card.remove();
+
+			scene->_gameBoardSide[2]._handCard[i]._cardId = 0;
+			scene->_gameBoardSide[2]._handCard[i]._card.remove();
+
+			scene->_gameBoardSide[0]._handCard[i]._cardId = 0;
+			scene->_gameBoardSide[0]._handCard[i]._card.remove();
+
+			scene->_gameBoardSide[1]._handCard[i]._cardId = 0;
+			scene->_gameBoardSide[1]._handCard[i]._card.remove();
+		}
+
+		for (i = 0; i <= 7; i++) {
+			scene->_gameBoardSide[3]._outpostStation[i]._cardId = 0;
+			scene->_gameBoardSide[3]._outpostStation[i]._card.remove();
+
+			scene->_gameBoardSide[2]._outpostStation[i]._cardId = 0;
+			scene->_gameBoardSide[2]._outpostStation[i]._card.remove();
+
+			scene->_gameBoardSide[0]._outpostStation[i]._cardId = 0;
+			scene->_gameBoardSide[0]._outpostStation[i]._card.remove();
+
+			scene->_gameBoardSide[1]._outpostStation[i]._cardId = 0;
+			scene->_gameBoardSide[1]._outpostStation[i]._card.remove();
+		}
+
+		scene->_gameBoardSide[2]._delayCard._cardId = 0;
+		scene->_gameBoardSide[2]._delayCard._card.remove();
+
+		scene->_discardPile._cardId = 0;
+		scene->_discardPile._card.remove();
+
+		scene->_stockPile.remove();
+		}
+	// No break on purpose
+	case 0:
+		R2_GLOBALS._sceneObjects->draw();
+		signal();
+		break;
+	case 12:
+		scene->suggestInstructions();
+		remove();
+		break;
+	default:
+		break;
+	}
+}
+
+/**
+ * Shuffle cards animation
+ */
+void Scene1337::Action2::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0:
+		scene->_shuffleAnimation._card.postInit();
+		scene->_shuffleAnimation._card.setVisage(1332);
+		scene->_shuffleAnimation._card.setStrip(8);
+		scene->_shuffleAnimation._card.setFrame(1);
+		scene->_shuffleAnimation._card.fixPriority(300);
+		scene->_shuffleAnimation._card.setPosition(Common::Point(156, 108));
+
+		scene->_discardPile._card.remove();
+		scene->_discardPile._cardId = 0;
+
+		scene->_aSound1.play(60);
+		scene->_shuffleAnimation._card.animate(ANIM_MODE_5, this);
+		break;
+	case 1:
+		scene->_shuffleAnimation._card.setFrame(1);
+
+		scene->_aSound1.play(60);
+		scene->_shuffleAnimation._card.animate(ANIM_MODE_5, this);
+		break;
+	case 2: {
+		Common::Point pt(156, 108);
+		NpcMover *mover = new NpcMover();
+		scene->_shuffleAnimation._card.addMover(mover, &pt, this);
+		}
+		break;
+	case 3:
+		scene->_shuffleAnimation._card.remove();
+		scene->_stockPile.setup(1332, 5, 1);
+		scene->_stockPile.setPosition(Common::Point(162, 95));
+		scene->_stockPile.setPriority(110);
+		scene->_stockPile._effect = EFFECT_SHADED;
+		scene->_stockPile.show();
+		scene->_shuffleEndedFl = true;
+		break;
+	default:
+		break;
+	}
+}
+
+/**
+ * Deal cards
+ */
+void Scene1337::Action3::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_animatedCard._card._moveDiff = Common::Point(30, 30);
+		scene->_animatedCard._card.setVisage(1332);
+		scene->_animatedCard._card.setStrip(5);
+		scene->_animatedCard._card.setFrame(1);
+		scene->_animatedCard._card.fixPriority(400);
+		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(283, 146);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_animatedCard._card.show();
+		scene->_gameBoardSide[1]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 1: {
+		scene->_gameBoardSide[1]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[0]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[1]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[0]._card.setPosition(scene->_gameBoardSide[1]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[0]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[0]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(10, 174);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[2]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 2: {
+		scene->_gameBoardSide[2]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[0]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[2]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[0]._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[0]._card.fixPriority(170);
+		if (scene->_gameBoardSide[2]._handCard[0]._cardId > 25) {
+			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(4);
+			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId - 25);
+		} else if (scene->_gameBoardSide[2]._handCard[0]._cardId > 9) {
+			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(3);
+			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId - 9);
+		} else {
+			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(2);
+			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId);
+		}
+		scene->_aSound2.play(61);
+
+		Common::Point pt(14, 14);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[3]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 3: {
+		scene->_gameBoardSide[3]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[0]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[3]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[0]._card.setPosition(scene->_gameBoardSide[3]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[3]._handCard[0]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[0]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[0]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(280, 5);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[0]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 4: {
+		scene->_gameBoardSide[0]._handCard[0]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[0]._card._moveDiff = Common::Point(30,30);
+		scene->_gameBoardSide[0]._handCard[0]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[0]._card.setPosition(scene->_gameBoardSide[0]._handCard[0]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[0]._card.setStrip(5);
+		scene->_gameBoardSide[0]._handCard[0]._card.setFrame(1);
+		scene->_gameBoardSide[0]._handCard[0]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(283, 124);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[1]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 5: {
+		scene->_gameBoardSide[1]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[1]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[1]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[1]._card.setPosition(scene->_gameBoardSide[1]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[1]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[1]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(37, 174);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[2]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 6: {
+		scene->_gameBoardSide[2]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[1]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[2]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[1]._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[1]._card.fixPriority(170);
+
+		if (scene->_gameBoardSide[2]._handCard[1]._cardId > 25) {
+			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(4);
+			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId - 25);
+		} else if (scene->_gameBoardSide[2]._handCard[1]._cardId > 9) {
+			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(3);
+			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId - 9);
+		} else {
+			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(2);
+			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId);
+		}
+
+		scene->_aSound2.play(61);
+
+		Common::Point pt(14, 36);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[3]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 7: {
+		scene->_gameBoardSide[3]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[1]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[3]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[1]._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos);
+		scene->_gameBoardSide[3]._handCard[1]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[1]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[1]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(253, 5);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[0]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 8: {
+		scene->_gameBoardSide[0]._handCard[1]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[1]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[0]._handCard[1]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[1]._card.setPosition(scene->_gameBoardSide[0]._handCard[1]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[1]._card.setStrip(5);
+		scene->_gameBoardSide[0]._handCard[1]._card.setFrame(1);
+		scene->_gameBoardSide[0]._handCard[1]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(283, 102);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[1]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 9: {
+		scene->_gameBoardSide[1]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[1]._handCard[2]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[1]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[1]._handCard[2]._card.setPosition(scene->_gameBoardSide[1]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[1]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[1]._handCard[2]._card.setFrame(4);
+		scene->_gameBoardSide[1]._handCard[2]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(64, 174);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[2]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 10: {
+		scene->_gameBoardSide[2]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[2]._handCard[2]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[2]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[2]._handCard[2]._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[2]._handCard[2]._card.fixPriority(170);
+
+		if (scene->_gameBoardSide[2]._handCard[2]._cardId > 25) {
+			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(4);
+			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId - 25);
+		} else if (scene->_gameBoardSide[2]._handCard[2]._cardId > 9) {
+			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(3);
+			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId - 9);
+		} else {
+			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(2);
+			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId);
+		}
+
+		scene->_aSound2.play(61);
+
+		Common::Point pt(14, 58);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[3]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 11: {
+		scene->_gameBoardSide[3]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[3]._handCard[2]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[3]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[3]._handCard[2]._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[3]._handCard[2]._card.setStrip(1);
+		scene->_gameBoardSide[3]._handCard[2]._card.setFrame(3);
+		scene->_gameBoardSide[3]._handCard[2]._card.fixPriority(170);
+		scene->_aSound2.play(61);
+
+		Common::Point pt(226, 5);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+
+		scene->_gameBoardSide[0]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+		}
+		break;
+	case 12:
+		scene->_gameBoardSide[0]._handCard[2]._card.postInit();
+		scene->_gameBoardSide[0]._handCard[2]._card._moveDiff = Common::Point(30, 30);
+		scene->_gameBoardSide[0]._handCard[2]._card.setVisage(1332);
+		scene->_gameBoardSide[0]._handCard[2]._card.setPosition(scene->_gameBoardSide[0]._handCard[2]._stationPos, 0);
+		scene->_gameBoardSide[0]._handCard[2]._card.setStrip(5);
+		scene->_gameBoardSide[0]._handCard[2]._card.setFrame(1);
+		scene->_gameBoardSide[0]._handCard[2]._card.fixPriority(170);
+		scene->_animatedCard._card.hide();
+	default:
+		break;
+	}
+
+	if (_actionIndex > 12) {
+		scene->_currentPlayerNumb = 0;
+		R2_GLOBALS._sceneObjects->draw();
+		scene->actionDisplay(1330, 0, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		scene->handleNextTurn();
+	} else if (_actionIndex >= 1) {
+		scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
+		scene->_cardsAvailableNumb--;
+	}
+}
+
+/**
+ * Action used to handle the other players' turn
+ */
+void Scene1337::Action4::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0:
+		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._cardId == 0)
+		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
+			if (scene->_cardsAvailableNumb < 0)
+				scene->shuffleCards();
+			scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
+			scene->_animatedCard._card.show();
+			scene->_aSound2.play(61);
+
+			NpcMover *mover = new NpcMover();
+			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos, this);
+
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
+			scene->_cardsAvailableNumb--;
+
+			if (scene->_cardsAvailableNumb < 0)
+				scene->_stockPile.remove();
+		} else {
+			// Self call, forcing next actionIndex
+			signal();
+		}
+		break;
+	case 1:
+		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos.x)
+		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos.y) ) {
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.postInit();
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card._moveDiff = Common::Point(30, 30);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setVisage(1332);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._stationPos, 0);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setStrip(1);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.fixPriority(170);
+		}
+
+		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
+			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]);
+
+		scene->_animatedCard._card.hide();
+		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._cardId == 0)
+		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
+			if (scene->_cardsAvailableNumb < 0)
+				scene->shuffleCards();
+			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
+			scene->_animatedCard._card.show();
+
+			scene->_aSound2.play(61);
+
+			NpcMover *mover = new NpcMover();
+			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos, this);
+
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
+			scene->_cardsAvailableNumb--;
+			if (scene->_cardsAvailableNumb < 0)
+				scene->_stockPile.remove();
+		} else
+			signal();
+		break;
+	case 2:
+		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos.x)
+		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos.y) ) {
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.postInit();
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card._moveDiff = Common::Point(30, 30);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setVisage(1332);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._stationPos, 0);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setStrip(1);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.fixPriority(170);
+		}
+
+		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
+			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]);
+
+		scene->_animatedCard._card.hide();
+		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._cardId == 0)
+		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
+			if (scene->_cardsAvailableNumb < 0)
+				scene->shuffleCards();
+			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
+			scene->_animatedCard._card.show();
+
+			scene->_aSound2.play(61);
+
+			NpcMover *mover = new NpcMover();
+			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos, this);
+
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
+			scene->_cardsAvailableNumb--;
+			if (scene->_cardsAvailableNumb < 0)
+				scene->_stockPile.remove();
+		} else
+			signal();
+		break;
+	case 3:
+		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos.x)
+		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos.y) ) {
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.postInit();
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card._moveDiff = Common::Point(30, 30);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setVisage(1332);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._stationPos, 0);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setStrip(1);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.fixPriority(170);
+		}
+
+		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
+			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]);
+
+		scene->_animatedCard._card.hide();
+		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._cardId == 0)
+		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
+			if (scene->_cardsAvailableNumb < 0)
+				scene->shuffleCards();
+			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
+			scene->_animatedCard._card.show();
+
+			scene->_aSound2.play(61);
+
+			NpcMover *mover = new NpcMover();
+			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos, this);
+
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
+			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
+			scene->_cardsAvailableNumb--;
+			if (scene->_cardsAvailableNumb < 0)
+				scene->_stockPile.remove();
+		} else
+			signal();
+		break;
+	case 4:
+		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos.x)
+		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos.y) ) {
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.postInit();
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card._moveDiff = Common::Point(30, 30);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setVisage(1332);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._stationPos, 0);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setStrip(1);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
+			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.fixPriority(170);
+		}
+
+		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
+			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]);
+
+		scene->_animatedCard._card.hide();
+		switch (scene->_currentPlayerNumb) {
+		case 0:
+			scene->handlePlayer0();
+			break;
+		case 1:
+			scene->handlePlayer1();
+			break;
+		case 2:
+			scene->handleAutoplayPlayer2();
+			break;
+		case 3:
+			scene->handlePlayer3();
+			break;
+		default:
+			break;
+		}
+		break;
+	default:
+		break;
+	}
+}
+
+/**
+ * Animations for discarding a card
+ */
+void Scene1337::Action5::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard1->_cardId;
+		scene->_currentDiscardIndex--;
+		if (!g_globals->_sceneObjects->contains(&scene->_discardPile._card)) {
+			// The first discarded card makes the pile appear
+			scene->_discardPile._card.postInit();
+			scene->_discardPile._card.hide();
+			scene->_discardPile._card.setVisage(1332);
+			scene->_discardPile._card.setPosition(scene->_discardPile._stationPos, 0);
+			scene->_discardPile._card.fixPriority(170);
+		}
+
+		scene->_discardPile._cardId = scene->_actionCard1->_cardId;
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+		Common::Point pt(128, 95);
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &pt, this);
+		}
+		break;
+	case 1:
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(&scene->_discardPile);
+		scene->_aSound2.play(61);
+		scene->handleNextTurn();
+		break;
+	default:
+		break;
+	}
+}
+
+/**
+ * Animations for playing a platform card
+ */
+void Scene1337::Action6::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_actionCard2->_cardId = 1;
+		scene->_actionCard2->_card.postInit();
+		scene->_actionCard2->_card.hide();
+		scene->_actionCard2->_card.setVisage(1332);
+		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos);
+		scene->_actionCard2->_card.fixPriority(170);
+
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1:
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(59);
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+		scene->handleNextTurn();
+		break;
+	default:
+		break;
+	}
+}
+
+/**
+ * Upgrade platform to station by playing a station card on top of it
+ */
+void Scene1337::Action7::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
+
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1:
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(59);
+		scene->_discardedPlatformCard._cardId = 1;
+		scene->_discardedPlatformCard._stationPos = scene->_actionCard2->_stationPos;
+		scene->_discardedPlatformCard._card.postInit();
+		scene->_discardedPlatformCard._card.hide();
+		scene->_discardedPlatformCard._card._flags = OBJFLAG_HIDING;
+
+		scene->discardCard(&scene->_discardedPlatformCard);
+		break;
+	default:
+		break;
+	}
+}
+
+// Remove a delay card
+void Scene1337::Action8::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
+		scene->_currentDiscardIndex--;
+
+		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
+		scene->_actionCard1->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1:
+		scene->_animatedCard._card.hide();
+
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(58);
+		scene->discardCard(scene->_actionCard2);
+		break;
+	default:
+		break;
+	}
+}
+
+// Play delay card
+void Scene1337::Action9::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
+		scene->_actionCard2->_card.postInit();
+		scene->_actionCard2->_card.hide();
+		scene->_actionCard2->_card.setVisage(1332);
+		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos, 0);
+		scene->_actionCard2->_card.fixPriority(170);
+
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1:
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(57);
+
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+
+		scene->handleNextTurn();
+		break;
+	default:
+		break;
+	}
+}
+
+// Play a card on the central outpost.
+// This card is either a counter-trick card or a meteor card
+void Scene1337::Action10::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_actionCard3->_card.postInit();
+		scene->_actionCard3->_card.hide();
+		scene->_actionCard3->_card.setVisage(1332);
+		scene->_actionCard3->_card.setPosition(scene->_actionCard3->_stationPos, 0);
+		scene->_actionCard3->_card.fixPriority(170);
+		scene->_actionCard3->_cardId = scene->_actionCard1->_cardId;
+
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		if (scene->_actionCard1 == &scene->_selectedCard) {
+			scene->setCursorData(5, 1, 4);
+			scene->subC4CEC();
+		}
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard3->_stationPos, this);
+		}
+		break;
+	case 1: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard3);
+		scene->_aSound1.play(57);
+
+		bool found = false;
+		int indexFound = -1;
+
+		switch (scene->_actionPlayerIdx) {
+		case 0:
+			for (indexFound = 0; indexFound < 3; indexFound++) {
+				// Check for the presence of an interceptor card
+				if (scene->_gameBoardSide[0]._handCard[indexFound]._cardId == 29) {
+					found = true;
+					break;
+				}
+			}
+			break;
+		case 1:
+			for (indexFound = 0; indexFound < 3; indexFound++) {
+				// Check for the presence of an interceptor card
+				if (scene->_gameBoardSide[1]._handCard[indexFound]._cardId == 29) {
+					found = true;
+					break;
+				}
+			}
+			break;
+		case 2:
+			for (indexFound = 0; indexFound < 3; indexFound++) {
+				// Check for the presence of an interceptor card
+				if (scene->_gameBoardSide[2]._handCard[indexFound]._cardId == 29) {
+					found = true;
+					break;
+				}
+			}
+			break;
+		case 3:
+			for (indexFound = 0; indexFound < 3; indexFound++) {
+				// Check for the presence of an interceptor card
+				if (scene->_gameBoardSide[3]._handCard[indexFound]._cardId == 29) {
+					found = true;
+					break;
+				}
+			}
+			break;
+		default:
+			break;
+		}
+
+		bool found2 = false;
+
+		if (found) {
+			switch (scene->_actionPlayerIdx) {
+			case 0:
+				scene->playInterceptorCard(&scene->_gameBoardSide[0]._handCard[indexFound], scene->_actionCard3);
+				found2 = true;
+				break;
+			case 1:
+				scene->playInterceptorCard(&scene->_gameBoardSide[1]._handCard[indexFound], scene->_actionCard3);
+				found2 = true;
+				break;
+			case 2:
+				scene->subC4CD2();
+				if (MessageDialog::show(USE_INTERCEPTOR, NO_MSG, YES_MSG) == 0)
+					scene->subC4CEC();
+				else {
+					scene->playInterceptorCard(&scene->_gameBoardSide[2]._handCard[indexFound], scene->_actionCard3);
+					found2 = true;
+				}
+				break;
+			case 3:
+				scene->playInterceptorCard(&scene->_gameBoardSide[3]._handCard[indexFound], scene->_actionCard3);
+				found2 = true;
+				break;
+			default:
+				break;
+			}
+		}
+
+		if (found2)
+			break;
+
+		if (scene->_actionPlayerIdx == 2) {
+			int stationCount = 0;
+			for (int i = 0; i <= 7; i++) {
+				if (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0)
+					++stationCount;
+			}
+
+			if (stationCount <= 1) {
+				for (int i = 0; i <= 7; i++) {
+					if (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0) {
+						scene->_actionCard2 = &scene->_gameBoardSide[2]._outpostStation[i];
+						break;
+					}
+				}
+			} else {
+				scene->subC4CD2();
+
+				found2 = false;
+				while (!found2) {
+					scene->actionDisplay(1330, 130, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+					// Wait for a mouse or keypress
+					Event event;
+					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
+						g_globals->_scenePalette.signalListeners();
+						R2_GLOBALS._sceneObjects->draw();
+						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+					}
+
+					scene->_selectedCard._stationPos = event.mousePos;
+
+					for (int i = 0; i <= 7; i++) {
+						if (scene->_gameBoardSide[2]._outpostStation[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0)) {
+							scene->_actionCard2 = &scene->_gameBoardSide[2]._outpostStation[i];
+							found2 = true;
+							break;
+						}
+					}
+				}
+				scene->subC4CEC();
+			}
+		}
+
+		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
+		scene->_currentDiscardIndex--;
+		scene->_actionCard2->_cardId = 0;
+		scene->_actionCard2->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard2->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard3->_stationPos, this);
+		}
+		break;
+	case 2:
+		scene->_animatedCard._card.hide();
+		scene->discardCard(scene->_actionCard3);
+		break;
+	default:
+		break;
+	}
+}
+
+// Use Thief card (#25) and pick a card from the opponent
+void Scene1337::Action11::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_actionCard2->_card.postInit();
+		scene->_actionCard2->_card.hide();
+		scene->_actionCard2->_card.setVisage(1332);
+		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos, 0);
+		scene->_actionCard2->_card.fixPriority(170);
+		scene->_actionCard2->_cardId = 25;
+
+		if (scene->_actionPlayerIdx == 2) {
+			scene->_animatedCard._card.setPosition(scene->_actionCard2->_stationPos, 0);
+			scene->setCursorData(5, 1, 4);
+		} else {
+			scene->_actionCard1->_cardId = 0;
+			scene->_actionCard1->_card.remove();
+			scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		}
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1: {
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(57);
+
+		bool found = false;
+		bool noAction = true;
+
+		int i = -1;
+
+		switch (scene->_actionVictimIdx) {
+		case 0:
+			for (i = 0; i <= 3; i++) {
+				if (scene->_gameBoardSide[0]._handCard[i]._cardId == 27) {
+					found = true;
+					break;
+				}
+			}
+
+			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
+				scene->_actionCard1 = &scene->_gameBoardSide[0]._handCard[i];
+				scene->_actionCard2 = &scene->_gameBoardSide[0]._emptyStationPos;
+				if (scene->_actionPlayerIdx != 0) {
+					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
+					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
+				}
+				scene->_actionItem.setAction(&scene->_action12);
+				noAction = false;
+			}
+			break;
+		case 1:
+			for (i = 0; i <= 3; i++) {
+				if (scene->_gameBoardSide[1]._handCard[i]._cardId == 27) {
+					found = true;
+					break;
+				}
+			}
+
+			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
+				scene->_actionCard1 = &scene->_gameBoardSide[1]._handCard[i];
+				scene->_actionCard2 = &scene->_gameBoardSide[1]._emptyStationPos;
+				if (scene->_actionPlayerIdx != 1) {
+					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
+					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
+				}
+				scene->_actionItem.setAction(&scene->_action12);
+				noAction = false;
+			}
+			break;
+		case 2:
+			for (i = 0; i <= 3; i++) {
+				if (scene->_gameBoardSide[2]._handCard[i]._cardId == 27) {
+					found = true;
+					break;
+				}
+			}
+
+			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
+				scene->subC4CD2();
+				if (MessageDialog::show(USE_DOUBLE_AGENT, NO_MSG, YES_MSG) == 0)
+					scene->subC4CEC();
+				else {
+					scene->subC4CEC();
+					scene->_actionCard1 = &scene->_gameBoardSide[2]._handCard[i];
+					scene->_actionCard2 = &scene->_gameBoardSide[2]._emptyStationPos;
+					if (scene->_actionPlayerIdx != 2) {
+						int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
+						scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
+					}
+					scene->_actionItem.setAction(&scene->_action12);
+					noAction = false;
+				}
+			}
+			break;
+		case 3:
+			for (i = 0; i <= 3; i++) {
+				if (scene->_gameBoardSide[3]._handCard[i]._cardId == 27) {
+					found = true;
+					break;
+				}
+			}
+
+			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
+				scene->_actionCard1 = &scene->_gameBoardSide[3]._handCard[i];
+				scene->_actionCard2 = &scene->_gameBoardSide[3]._emptyStationPos;
+				if (scene->_actionPlayerIdx != 3) {
+					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
+					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
+				}
+				scene->_actionItem.setAction(&scene->_action12);
+				noAction = false;
+			}
+			break;
+		default:
+			break;
+		}
+
+		if (!noAction)
+			break;
+
+		if (scene->_actionPlayerIdx == 2) {
+			int count = 0;
+			if (scene->_actionVictimIdx != 2) {
+				for (i = 0; i <= 3; i++) {
+					if (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i]._cardId != 0)
+						++count;
+				}
+			}
+
+			if (count > 1) {
+				scene->subC4CD2();
+
+				found = false;
+				while (!found) {
+					switch (scene->_actionVictimIdx) {
+					case 0:
+						scene->actionDisplay(1330, 131, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					case 1:
+						scene->actionDisplay(1330, 132, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					case 3:
+						scene->actionDisplay(1330, 133, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					default:
+						break;
+					}
+
+					Event event;
+					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
+						g_globals->_scenePalette.signalListeners();
+						R2_GLOBALS._sceneObjects->draw();
+						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+					}
+
+					scene->_selectedCard._stationPos = event.mousePos;
+
+					found = false;
+
+					if (scene->_actionVictimIdx != 2) {
+						for (i = 0; i <= 3; i++) {
+							if (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i]._cardId != 0)) {
+								scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i];
+								found = true;
+								break;
+							}
+						}
+					}
+				} // while
+				scene->_displayHelpFl = true;
+				scene->subC4CEC();
+			} else if (scene->_actionVictimIdx != 2) {
+				int tmpVal = scene->getRandomCardFromHand(scene->_actionVictimIdx);
+				scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[tmpVal];
+			}
+		}
+
+		scene->_actionCard1->_card.postInit();
+		scene->_actionCard1->_card.hide();
+		scene->_actionCard1->_card.setVisage(1332);
+		scene->_actionCard1->_card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_actionCard1->_card.fixPriority(170);
+		scene->_actionCard1->_card.setStrip2(1);
+		scene->_actionCard1->_cardId = scene->_actionCard3->_cardId;
+
+		scene->_actionCard3->_cardId = 0;
+		scene->_actionCard3->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard3->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard1->_stationPos, this);
+		}
+		break;
+	case 2:
+		scene->_animatedCard._card.hide();
+		switch (scene->_actionPlayerIdx) {
+		case 0:
+			scene->_actionCard1->_card.setFrame2(2);
+			scene->_actionCard1->_card.show();
+			break;
+		case 1:
+			scene->_actionCard1->_card.setFrame2(4);
+			scene->_actionCard1->_card.show();
+			break;
+		case 3:
+			scene->_actionCard1->_card.setFrame2(3);
+			scene->_actionCard1->_card.show();
+			break;
+		default:
+			scene->setAnimationInfo(scene->_actionCard1);
+			break;
+		}
+
+		scene->_currentPlayerNumb--;
+		scene->_showPlayerTurn = false;
+		scene->discardCard(scene->_actionCard2);
+		break;
+	default:
+		break;
+	}
+}
+
+// Pick a card in opponent hand
+void Scene1337::Action12::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0:
+		signal();
+		break;
+	case 1: {
+		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
+		scene->_currentDiscardIndex++;
+		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 2:
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(58);
+		if (scene->_actionVictimIdx == 2) {
+			int count = 0;
+			int i = -1;
+			switch (scene->_actionPlayerIdx) {
+			case 0:
+				for (i = 0; i <= 3; i++) {
+					if (scene->_gameBoardSide[0]._handCard[i]._cardId != 0)
+						++count;
+				}
+				break;
+			case 1:
+				for (i = 0; i <= 3; i++) {
+					// The original game was counting in the hand of player 3, which is obviously wrong
+					if (scene->_gameBoardSide[1]._handCard[i]._cardId != 0)
+						++count;
+				}
+				break;
+			case 3:
+				for (i = 0; i <= 3; i++) {
+					if (scene->_gameBoardSide[3]._handCard[i]._cardId != 0)
+						++count;
+				}
+				break;
+			default:
+				break;
+			}
+
+			if (count > 1) {
+				scene->subC4CD2();
+
+				bool found = false;
+
+				while (!found) {
+					switch (scene->_actionPlayerIdx) {
+					case 0:
+						scene->actionDisplay(1330, 131, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					case 1:
+						scene->actionDisplay(1330, 132, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					case 3:
+						scene->actionDisplay(1330, 133, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						break;
+					default:
+						break;
+					}
+
+					Event event;
+					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
+						g_globals->_scenePalette.signalListeners();
+						R2_GLOBALS._sceneObjects->draw();
+						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+					}
+
+					scene->_selectedCard._stationPos = event.mousePos;
+
+					switch (scene->_actionPlayerIdx) {
+					case 0:
+						for (i = 0; i <= 3; i++) {
+							if (scene->_gameBoardSide[0]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[0]._handCard[i]._cardId != 0)) {
+								found = true;
+								scene->_actionCard3 = &scene->_gameBoardSide[0]._handCard[i];
+								break;
+							}
+						}
+						break;
+					case 1:
+						for (i = 0; i <= 3; i++) {
+							if (scene->_gameBoardSide[1]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[1]._handCard[i]._cardId != 0)) {
+								found = true;
+								scene->_actionCard3 = &scene->_gameBoardSide[1]._handCard[i];
+								break;
+							}
+						}
+						break;
+					case 3:
+						for (i = 0; i <= 3; i++) {
+							if (scene->_gameBoardSide[3]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[3]._handCard[i]._cardId != 0)) {
+								found = true;
+								scene->_actionCard3 = &scene->_gameBoardSide[3]._handCard[i];
+								break;
+							}
+						}
+						break;
+					default:
+						break;
+					}
+				}
+				scene->subC4CEC();
+			} else {
+				switch (scene->_actionPlayerIdx) {
+				case 0:
+					scene->_actionCard3 = &scene->_gameBoardSide[0]._handCard[scene->getRandomCardFromHand(0)];
+					break;
+				case 1:
+					scene->_actionCard3 = &scene->_gameBoardSide[1]._handCard[scene->getRandomCardFromHand(1)];
+					break;
+				case 3:
+					scene->_actionCard3 = &scene->_gameBoardSide[3]._handCard[scene->getRandomCardFromHand(3)];
+					break;
+				default:
+					break;
+				}
+			}
+
+			scene->_actionCard1->_card.postInit();
+			scene->_actionCard1->_card.hide();
+			scene->_actionCard1->_card.setVisage(1332);
+			scene->_actionCard1->_card.setPosition(scene->_actionCard1->_stationPos);
+			scene->_actionCard1->_card.fixPriority(170);
+			scene->_actionCard1->_card.setStrip2(1);
+			scene->_actionCard1->_cardId = scene->_actionCard3->_cardId;
+
+			scene->_actionCard3->_cardId = 0;
+			scene->_actionCard3->_card.remove();
+
+			scene->_animatedCard._card.setPosition(scene->_actionCard3->_stationPos);
+			scene->_animatedCard._card.show();
+			scene->_aSound1.play(57);
+
+			NpcMover *mover = new NpcMover();
+			scene->_animatedCard._card.addMover(mover, &scene->_actionCard1->_stationPos, this);
+		}
+		break;
+	case 3:
+		scene->_animatedCard._card.hide();
+		switch (scene->_actionVictimIdx) {
+		case 0:
+			scene->_actionCard1->_card.setFrame2(2);
+			scene->_actionCard1->_card.show();
+			break;
+		case 1:
+			scene->_actionCard1->_card.setFrame2(4);
+			scene->_actionCard1->_card.show();
+			break;
+		case 3:
+			scene->_actionCard1->_card.setFrame2(3);
+			scene->_actionCard1->_card.show();
+			break;
+		default:
+			scene->setAnimationInfo(scene->_actionCard1);
+			break;
+		}
+		scene->discardCard(scene->_actionCard2);
+		break;
+	default:
+		break;
+	}
+}
+
+// Handle the animations of the interceptor card
+void Scene1337::Action13::signal() {
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+
+	switch (_actionIndex++) {
+	case 0: {
+		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
+		scene->_currentDiscardIndex--;
+
+		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
+
+		scene->_actionCard1->_cardId = 0;
+		scene->_actionCard1->_card.remove();
+
+		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
+		scene->_animatedCard._card.show();
+
+		NpcMover *mover = new NpcMover();
+		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
+		}
+		break;
+	case 1:
+		scene->_animatedCard._card.hide();
+		scene->setAnimationInfo(scene->_actionCard2);
+		scene->_aSound1.play(58);
+		signal();
+		break;
+	case 2:
+		scene->discardCard(scene->_actionCard2);
+		break;
+	default:
+		break;
+	}
+}
+
+void Scene1337::postInit(SceneObjectList *OwnerList) {
+// In the original, may be found in subPostInit.
+// Without it, enableControl asserts
+	loadScene(1330);
+	R2_GLOBALS._uiElements._active = false;
+	SceneExt::postInit();
+//
+
+	// Hide the user interface
+	BF_GLOBALS._interfaceY = SCREEN_HEIGHT;
+	R2_GLOBALS._uiElements._visible = false;
+
+	R2_GLOBALS._player.enableControl();
+	R2_GLOBALS._player._canWalk = false;
+	R2_GLOBALS._player._uiEnabled = false;
+
+	_delayedFunction = nullptr;
+
+	_actionCard1 = nullptr;
+	_actionCard2 = nullptr;
+	_actionCard3 = nullptr;
+
+	_gameBoardSide[2]._handCard[0]._stationPos = Common::Point(10, 174);
+	_gameBoardSide[2]._handCard[1]._stationPos = Common::Point(37, 174);
+	_gameBoardSide[2]._handCard[2]._stationPos = Common::Point(64, 174);
+	_gameBoardSide[2]._handCard[3]._stationPos = Common::Point(91, 174);
+
+	_gameBoardSide[2]._outpostStation[0]._stationPos = Common::Point(119, 174);
+	_gameBoardSide[2]._outpostStation[1]._stationPos = Common::Point(119, 148);
+	_gameBoardSide[2]._outpostStation[2]._stationPos = Common::Point(119, 122);
+	_gameBoardSide[2]._outpostStation[3]._stationPos = Common::Point(145, 122);
+	_gameBoardSide[2]._outpostStation[4]._stationPos = Common::Point(171, 122);
+	_gameBoardSide[2]._outpostStation[5]._stationPos = Common::Point(171, 148);
+	_gameBoardSide[2]._outpostStation[6]._stationPos = Common::Point(171, 174);
+	_gameBoardSide[2]._outpostStation[7]._stationPos = Common::Point(145, 174);
+
+	_gameBoardSide[2]._delayCard._stationPos = Common::Point(199, 174);
+
+	_gameBoardSide[2]._emptyStationPos._stationPos = Common::Point(145, 148);
+
+	_gameBoardSide[2]._card1Pos = Common::Point(10, 174);
+	_gameBoardSide[2]._card2Pos = Common::Point(37, 174);
+	_gameBoardSide[2]._card3Pos = Common::Point(64, 174);
+	_gameBoardSide[2]._card4Pos = Common::Point(91, 174);
+	_gameBoardSide[2]._frameNum = 2;
+
+	_gameBoardSide[3]._handCard[0]._stationPos = Common::Point(14, 14);
+	_gameBoardSide[3]._handCard[1]._stationPos = Common::Point(14, 36);
+	_gameBoardSide[3]._handCard[2]._stationPos = Common::Point(14, 58);
+	_gameBoardSide[3]._handCard[3]._stationPos = Common::Point(14, 80);
+
+	_gameBoardSide[3]._outpostStation[0]._stationPos = Common::Point(37, 66);
+	_gameBoardSide[3]._outpostStation[1]._stationPos = Common::Point(63, 66);
+	_gameBoardSide[3]._outpostStation[2]._stationPos = Common::Point(89, 66);
+	_gameBoardSide[3]._outpostStation[3]._stationPos = Common::Point(89, 92);
+	_gameBoardSide[3]._outpostStation[4]._stationPos = Common::Point(89, 118);
+	_gameBoardSide[3]._outpostStation[5]._stationPos = Common::Point(63, 118);
+	_gameBoardSide[3]._outpostStation[6]._stationPos = Common::Point(37, 118);
+	_gameBoardSide[3]._outpostStation[7]._stationPos = Common::Point(37, 92);
+
+	_gameBoardSide[3]._delayCard._stationPos = Common::Point(37, 145);
+
+	_gameBoardSide[3]._emptyStationPos._stationPos = Common::Point(63, 92);
+
+	_gameBoardSide[3]._card1Pos = Common::Point(14, 14);
+	_gameBoardSide[3]._card2Pos = Common::Point(14, 36);
+	_gameBoardSide[3]._card3Pos = Common::Point(14, 58);
+	_gameBoardSide[3]._card4Pos = Common::Point(14, 80);
+	_gameBoardSide[3]._frameNum = 3;
+
+	_gameBoardSide[0]._handCard[0]._stationPos = Common::Point(280, 5);
+	_gameBoardSide[0]._handCard[1]._stationPos = Common::Point(253, 5);
+	_gameBoardSide[0]._handCard[2]._stationPos = Common::Point(226, 5);
+	_gameBoardSide[0]._handCard[3]._stationPos = Common::Point(199, 5);
+
+	_gameBoardSide[0]._outpostStation[0]._stationPos = Common::Point(171, 16);
+	_gameBoardSide[0]._outpostStation[1]._stationPos = Common::Point(171, 42);
+	_gameBoardSide[0]._outpostStation[2]._stationPos = Common::Point(171, 68);
+	_gameBoardSide[0]._outpostStation[3]._stationPos = Common::Point(145, 68);
+	_gameBoardSide[0]._outpostStation[4]._stationPos = Common::Point(119, 68);
+	_gameBoardSide[0]._outpostStation[5]._stationPos = Common::Point(119, 42);
+	_gameBoardSide[0]._outpostStation[6]._stationPos = Common::Point(119, 16);
+	_gameBoardSide[0]._outpostStation[7]._stationPos = Common::Point(145, 16);
+
+	_gameBoardSide[0]._delayCard._stationPos = Common::Point(91, 16);
+
+	_gameBoardSide[0]._emptyStationPos._stationPos = Common::Point(145, 42);
+
+	_gameBoardSide[0]._card1Pos = Common::Point(280, 5);
+	_gameBoardSide[0]._card2Pos = Common::Point(253, 5);
+	_gameBoardSide[0]._card3Pos = Common::Point(226, 5);
+	_gameBoardSide[0]._card4Pos = Common::Point(199, 5);
+	_gameBoardSide[0]._frameNum = 2;
+
+	_gameBoardSide[1]._handCard[0]._stationPos = Common::Point(283, 146);
+	_gameBoardSide[1]._handCard[1]._stationPos = Common::Point(283, 124);
+	_gameBoardSide[1]._handCard[2]._stationPos = Common::Point(283, 102);
+	_gameBoardSide[1]._handCard[3]._stationPos = Common::Point(283, 80);
+
+	_gameBoardSide[1]._outpostStation[0]._stationPos = Common::Point(253, 122);
+	_gameBoardSide[1]._outpostStation[1]._stationPos = Common::Point(227, 122);
+	_gameBoardSide[1]._outpostStation[2]._stationPos = Common::Point(201, 122);
+	_gameBoardSide[1]._outpostStation[3]._stationPos = Common::Point(201, 96);
+	_gameBoardSide[1]._outpostStation[4]._stationPos = Common::Point(201, 70);
+	_gameBoardSide[1]._outpostStation[5]._stationPos = Common::Point(227, 70);
+	_gameBoardSide[1]._outpostStation[6]._stationPos = Common::Point(253, 70);
+	_gameBoardSide[1]._outpostStation[7]._stationPos = Common::Point(253, 96);
+
+	_gameBoardSide[1]._delayCard._stationPos = Common::Point(253, 43);
+
+	_gameBoardSide[1]._emptyStationPos._stationPos = Common::Point(227, 96);
+
+	_gameBoardSide[1]._card1Pos = Common::Point(283, 146);
+	_gameBoardSide[1]._card2Pos = Common::Point(283, 124);
+	_gameBoardSide[1]._card3Pos = Common::Point(283, 102);
+	_gameBoardSide[1]._card4Pos = Common::Point(283, 80);
+	_gameBoardSide[1]._frameNum = 4;
+
+	subPostInit();
+
+	_stockPile.postInit();
+}
+
+void Scene1337::remove() {
+	if (R2_GLOBALS._v57709 > 1) {
+		subD1917();
+		subD1940(false);
+	}
+
+	R2_GLOBALS._uiElements._active = true;
+	R2_GLOBALS._uiElements._visible = true;
+	SceneExt::remove();
+}
+
+void Scene1337::process(Event &event) {
+	if (event.eventType == EVENT_BUTTON_DOWN) {
+		if (event.btnState == BTNSHIFT_RIGHT) {
+			updateCursorId(R2_GLOBALS._mouseCursorId, true);
+			event.handled = true;
+		} else if (_delayedFunction) {
+			FunctionPtrType tmpFctPtr = _delayedFunction;
+			_delayedFunction = nullptr;
+			(this->*tmpFctPtr)();
+			event.handled = true;
+		}
+	} else if (event.eventType == EVENT_KEYPRESS) {
+		if (event.kbd.keycode == Common::KEYCODE_SPACE) {
+			if (_delayedFunction) {
+				FunctionPtrType tmpFctPtr = _delayedFunction;
+				_delayedFunction = nullptr;
+				(this->*tmpFctPtr)();
+				event.handled = true;
+			}
+		} else
+			warning("Fixme: Find proper keycode value");
+	}
+
+	if (!event.handled)
+		Scene::process(event);
+}
+
+void Scene1337::dispatch() {
+	if (!_instructionsDisplayedFl) {
+		++_instructionsWaitCount;
+		if (_instructionsWaitCount == 4) {
+			_instructionsDisplayedFl = true;
+			suggestInstructions();
+		}
+	}
+
+	// The following code is in the original in sceneHandler::process(),
+	// which is terrible as it's checked in every scene of the game.
+	setCursorData(5, _cursorCurStrip, _cursorCurFrame);
+	//
+
+	Scene::dispatch();
+}
+
+void Scene1337::actionDisplay(int resNum, int lineNum, int x, int y, int keepOnScreen, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt) {
+	// TODO: Check if it's normal that arg5 is unused and replaced by an hardcoded 0 value
+	// May hide an original bug
+
+	SceneItem::display(resNum, lineNum, SET_X, x, SET_Y, y, SET_KEEP_ONSCREEN, 0,
+		               SET_WIDTH, width, SET_POS_MODE, -1, SET_TEXT_MODE, textMode,
+					   SET_FONT, fontNum, SET_FG_COLOR, colFG, SET_EXT_BGCOLOR, colBGExt,
+					   SET_EXT_FGCOLOR, colFGExt, LIST_END);
+}
+
+void Scene1337::setAnimationInfo(Card *card) {
+	if (!card)
+		return;
+
+	if (card->_cardId > 25) {
+		card->_card.setStrip2(4);
+		card->_card.setFrame(card->_cardId - 25);
+	} else if (card->_cardId > 9) {
+		card->_card.setStrip2(3);
+		card->_card.setFrame(card->_cardId - 9);
+	} else {
+		card->_card.setStrip2(2);
+		card->_card.setFrame(card->_cardId);
+	}
+
+	card->_card.show();
+	R2_GLOBALS._sceneObjects->draw();
+}
+
+void Scene1337::handleNextTurn() {
+	switch (_winnerId) {
+	case -1:
+		++_currentPlayerNumb;
+		if (_currentPlayerNumb > 3)
+			_currentPlayerNumb = 0;
+
+		if (_showPlayerTurn) {
+			_currentPlayerArrow.show();
+			switch (_currentPlayerNumb) {
+			case 0:
+				_currentPlayerArrow.setStrip(3);
+				break;
+			case 1:
+				_currentPlayerArrow.setStrip(4);
+				break;
+			case 2:
+				subD1975(174, 107);
+				_currentPlayerArrow.setStrip(1);
+				break;
+			case 3:
+				subC4CEC();
+				_currentPlayerArrow.setStrip(2);
+				break;
+			default:
+				break;
+			}
+
+			if (!_autoplay)
+				_delayedFunction = &Scene1337::handlePlayerTurn;
+			else
+				handlePlayerTurn();
+		} else {
+			handlePlayerTurn();
+		}
+		break;
+	case 0:
+		_aSound2.play(62);
+		actionDisplay(1330, 135, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		actionDisplay(1330, 121, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		actionDisplay(1330, 122, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		R2_GLOBALS._sceneObjects->draw();
+		actionDisplay(1330, 123, 159, 134, 1, 200, 0, 7, 0, 105, 105);
+		break;
+	case 1:
+		_aSound2.play(62);
+		actionDisplay(1330, 151, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		actionDisplay(1330, 118, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		actionDisplay(1330, 119, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		R2_GLOBALS._sceneObjects->draw();
+		actionDisplay(1330, 120, 159, 134, 1, 200, 0, 7, 0, 105, 105);
+		break;
+	case 2:
+		_aSound2.play(62);
+		actionDisplay(1330, 134, 159, 134, 1, 200, 0, 7, 0, 105, 105);
+		actionDisplay(1330, 124, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		actionDisplay(1330, 126, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		R2_GLOBALS._sceneObjects->draw();
+		actionDisplay(1330, 125, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		break;
+	case 3:
+		_aSound2.play(62);
+		actionDisplay(1330, 150, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		actionDisplay(1330, 115, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		actionDisplay(1330, 116, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		R2_GLOBALS._sceneObjects->draw();
+		actionDisplay(1330, 117, 159, 134, 1, 200, 0, 7, 0, 105, 105);
+		break;
+	default:
+		break;
+	}
+
+	if (_winnerId != -1)
+		R2_GLOBALS._sceneManager.changeScene(125);
+
+}
+
+void Scene1337::handlePlayerTurn() {
+	if (_showPlayerTurn)
+		_currentPlayerArrow.hide();
+
+	switch (_currentPlayerNumb) {
+	case 2:
+		subC4CD2();
+		if (_displayHelpFl)
+			actionDisplay(1330, 114, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		_displayHelpFl = false;
+	// No break on purpose
+	case 0:
+	// No break on purpose
+	case 1:
+	// No break on purpose
+	case 3:
+		_actionItem.setAction(&_action4);
+	default:
+		break;
+	}
+
+	_showPlayerTurn = true;
+
+}
+
+bool Scene1337::isStationCard(int cardId) {
+	switch (cardId) {
+	case 10:
+	// No break on purpose
+	case 12:
+	// No break on purpose
+	case 15:
+	// No break on purpose
+	case 17:
+	// No break on purpose
+	case 18:
+	// No break on purpose
+	case 19:
+	// No break on purpose
+	case 20:
+	// No break on purpose
+	case 21:
+		return true;
+	default:
+		return false;
+	}
+}
+
+bool Scene1337::isStopConstructionCard(int cardId) {
+	switch (cardId) {
+	case 11:
+	// No break on purpose
+	case 14:
+	// No break on purpose
+	case 16:
+	// No break on purpose
+	case 24:
+		return true;
+	default:
+		return false;
+	}
+}
+
+int Scene1337::getStationId(int playerId, int handCardId) {
+	if ((_gameBoardSide[playerId]._handCard[handCardId]._cardId > 1) && (_gameBoardSide[playerId]._handCard[handCardId]._cardId <= 9))
+		return handCardId;
+
+	return -1;
+}
+
+int Scene1337::findPlatformCardInHand(int playerId) {
+	for (int i = 0; i <= 3; i++) {
+		if (_gameBoardSide[playerId]._handCard[i]._cardId == 1)
+			return i;
+	}
+
+	return -1;
+}
+
+int Scene1337::findMeteorCardInHand(int playerId) {
+	for (int i = 0; i <= 3; i++) {
+		if (_gameBoardSide[playerId]._handCard[i]._cardId == 13)
+			return i;
+	}
+
+	return -1;
+}
+
+int Scene1337::findThieftCardInHand(int playerId) {
+	for (int i = 0; i <= 3; i++) {
+		if (_gameBoardSide[playerId]._handCard[i]._cardId == 25)
+			return i;
+	}
+
+	return -1;
+}
+
+int Scene1337::isDelayCard(int cardId) {
+	switch (cardId) {
+	case 11:
+	// No break on purpose
+	case 14:
+	// No break on purpose
+	case 16:
+	// No break on purpose
+	case 24:
+		return cardId;
+		break;
+	default:
+		return -1;
+		break;
+	}
+}
+
+int Scene1337::getStationCardId(int cardId) {
+	switch (cardId) {
+	case 10:
+	// No break on purpose
+	case 12:
+	// No break on purpose
+	case 15:
+	// No break on purpose
+	case 17:
+	// No break on purpose
+	case 18:
+	// No break on purpose
+	case 19:
+	// No break on purpose
+	case 20:
+	// No break on purpose
+	case 21:
+		return cardId;
+	default:
+		return -1;
+	}
+}
+
+void Scene1337::handlePlayer01Discard(int playerId) {
+	switch (playerId) {
+	case 0:
+		for (int i = 0; i <= 3; i++) {
+			if (getStationCardId(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			if (isDelayCard(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Outpost Card
+			if ((_gameBoardSide[playerId]._handCard[i]._cardId > 1) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 9)) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			if ((_gameBoardSide[playerId]._handCard[i]._cardId >= 26) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 33)) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Station Card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Thief card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 25) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Meteor Card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 13) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+		break;
+	case 1:
+		for (int i = 0; i <= 3; i++) {
+			if ((_gameBoardSide[playerId]._handCard[i]._cardId >= 26) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 33)) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Station Card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Outpost Card
+			if ((_gameBoardSide[playerId]._handCard[i]._cardId > 1) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 9)) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			if (getStationCardId(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			if (isDelayCard(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Thief card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 25) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 3; i++) {
+			// Meteor Card
+			if (_gameBoardSide[playerId]._handCard[i]._cardId == 13) {
+				discardCard(&_gameBoardSide[playerId]._handCard[i]);
+				return;
+			}
+		}
+
+		break;
+	default:
+		break;
+	}
+}
+
+void Scene1337::playThieftCard(int playerId, Card *card, int victimId) {
+	_actionPlayerIdx = playerId;
+	_actionVictimIdx = victimId;
+
+	int randIndx;
+
+	for (;;) {
+		randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
+		if (_gameBoardSide[victimId]._handCard[randIndx]._cardId != 0)
+			break;
+	}
+
+	_actionCard1 = card;
+	_actionCard2 = &_gameBoardSide[victimId]._emptyStationPos;
+	_actionCard3 = &_gameBoardSide[victimId]._handCard[randIndx];
+
+	_actionItem.setAction(&_action11);
+}
+
+int Scene1337::getPreventionCardId(int cardId) {
+	int retVal;
+
+	switch (cardId) {
+	case 10:
+		retVal = 2;
+		break;
+	case 12:
+		retVal = 3;
+		break;
+	case 15:
+		retVal = 5;
+		break;
+	case 17:
+		retVal = 9;
+		break;
+	case 18:
+		retVal = 6;
+		break;
+	case 19:
+		retVal = 4;
+		break;
+	case 20:
+		retVal = 8;
+		break;
+	case 21:
+		retVal = 7;
+		break;
+	default:
+		retVal = -1;
+	}
+
+	return retVal;
+}
+
+bool Scene1337::isAttackPossible(int victimId, int cardId) {
+	if (victimId < 0 || victimId >= ARRAYSIZE(_gameBoardSide))
+		error("Scene1337::isAttackPossible() victimId:%d out of range 0 to %d", victimId, ARRAYSIZE(_gameBoardSide)-1);
+
+	for (int i = 0; i <= 7; i++) {
+		if (_gameBoardSide[victimId]._outpostStation[i]._cardId != 0) {
+			if (getPreventionCardId(cardId) == _gameBoardSide[victimId]._outpostStation[i]._cardId)
+				return false;
+		}
+	}
+	return true;
+}
+
+int Scene1337::getPlayerWithOutpost(int playerId) {
+	int randPlayerId = R2_GLOBALS._randomSource.getRandomNumber(3);
+
+	for (int i = 0; i <= 3; i++) {
+		if (randPlayerId != playerId) {
+			for (int j = 0; j <= 7; j++) {
+				if (_gameBoardSide[randPlayerId]._outpostStation[j]._cardId != 0)
+					return randPlayerId;
+			}
+		}
+
+		if (playerId == 1) {
+			randPlayerId--;
+			if (randPlayerId < 0)
+				randPlayerId = 3;
+		} else {
+			++randPlayerId;
+			if (randPlayerId > 3)
+				randPlayerId = 0;
+		}
+	}
+
+	return -1;
+}
+
+bool Scene1337::checkAntiDelayCard(int delayCardId, int cardId) {
+	if ((delayCardId == 11) && (cardId == 26)) // Diplomacy
+		return true;
+
+	if ((delayCardId == 14) && (cardId == 30)) // Cure
+		return true;
+
+	if ((delayCardId == 16) && (cardId == 32)) // Agreement
+		return true;
+
+	if ((delayCardId == 24) && (cardId == 28)) // Innovation
+		return true;
+
+	return false;
+}
+
+void Scene1337::playStationCard(Card *station, Card *platform) {
+	_actionCard1 = station;
+	_actionCard2 = platform;
+	_actionItem.setAction(&_action7);
+}
+
+int Scene1337::getRandomCardFromHand(int playerId) {
+	if ( (_gameBoardSide[playerId]._handCard[0]._cardId == 0)
+	  && (_gameBoardSide[playerId]._handCard[1]._cardId == 0)
+	  && (_gameBoardSide[playerId]._handCard[2]._cardId == 0)
+	  && (_gameBoardSide[playerId]._handCard[3]._cardId == 0))
+	  return -1;
+
+	int randIndx;
+	for (;;) {
+		randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
+		if (_gameBoardSide[playerId]._handCard[randIndx]._cardId != 0)
+			break;
+	}
+
+	return randIndx;
+}
+
+void Scene1337::playPlatformCard(Card *card, Card *dest) {
+	_actionCard1 = card;
+	_actionCard2 = dest;
+
+	_actionItem.setAction(&_action6);
+}
+
+void Scene1337::playDelayCard(Card *card, Card *dest) {
+	_actionCard1 = card;
+	_actionCard2 = dest;
+
+	_actionItem.setAction(&_action9);
+}
+
+void Scene1337::playAntiDelayCard(Card *card, Card *dest) {
+	_actionCard1 = card;
+	_actionCard2 = dest;
+
+	_actionItem.setAction(&_action8);
+
+	// WORKAROUND: Restore the default cursor and for a call to signal.
+	// This works around the cursor caching we got rid of, and avoid
+	// the game ends in an eternal loop when a player reacts to another player
+	// attack.
+	setCursorData(5, 1, 4);
+	signal();
+}
+
+
+Scene1337::Card *Scene1337::getStationCard(int playerId) {
+	for (int i = 0; i <= 7; i++) {
+		if ((_gameBoardSide[playerId]._outpostStation[i]._cardId >= 1) && (_gameBoardSide[playerId]._outpostStation[i]._cardId <= 9))
+			return &_gameBoardSide[playerId]._outpostStation[i];
+	}
+
+	return nullptr;
+}
+
+void Scene1337::playCentralOutpostCard(Card *card, int playerId) {
+	_actionCard1 = card;
+	_actionCard2 = getStationCard(playerId);
+	_actionCard3 = &_gameBoardSide[playerId]._emptyStationPos;
+	_actionPlayerIdx = playerId;
+	_actionItem.setAction(&_action10);
+}
+
+void Scene1337::discardCard(Card *card) {
+	_actionCard1 = card;
+
+	_actionItem.setAction(&_action5);
+}
+
+void Scene1337::subC4CD2() {
+	if (R2_GLOBALS._v57709 > 0) {
+		subD1917();
+		subD1940(false); // _v5780C--
+	}
+}
+
+void Scene1337::subC4CEC() {
+	if (R2_GLOBALS._v57709 == 0) {
+		subD18F5();
+		subD1940(true); // _v5780C++
+	}
+}
+
+// Play Interceptor card
+void Scene1337::playInterceptorCard(Card *subObj1, Card *subObj2) {
+	_actionCard1 = subObj1;
+	_actionCard2 = subObj2;
+
+	_actionItem.setAction(&_action13);
+}
+
+void Scene1337::displayDialog(int dialogNumb) {
+	switch (dialogNumb - 1) {
+	case 0:
+		actionDisplay(1330, 53, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 1:
+		actionDisplay(1330, 57, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 2:
+		actionDisplay(1330, 58, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 3:
+		actionDisplay(1330, 59, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 4:
+		actionDisplay(1330, 60, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 5:
+		actionDisplay(1330, 61, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 6:
+		actionDisplay(1330, 62, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 7:
+		actionDisplay(1330, 63, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 8:
+		actionDisplay(1330, 64, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 9:
+		actionDisplay(1330, 65, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 10:
+		actionDisplay(1330, 67, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 11:
+		actionDisplay(1330, 69, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 12:
+		actionDisplay(1330, 71, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		actionDisplay(1330, 72, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		actionDisplay(1330, 73, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 13:
+		actionDisplay(1330, 79, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 14:
+		actionDisplay(1330, 81, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 15:
+		actionDisplay(1330, 83, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 16:
+		actionDisplay(1330, 85, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 17:
+		actionDisplay(1330, 87, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 18:
+		actionDisplay(1330, 89, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 19:
+		actionDisplay(1330, 91, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 20:
+		actionDisplay(1330, 93, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 23:
+		actionDisplay(1330, 95, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 24:
+		actionDisplay(1330, 97, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 25:
+		actionDisplay(1330, 104, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 26:
+		actionDisplay(1330, 105, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		actionDisplay(1330, 106, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 27:
+		actionDisplay(1330, 110, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 28:
+		actionDisplay(1330, 108, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		actionDisplay(1330, 109, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 29:
+		actionDisplay(1330, 111, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	case 31:
+		actionDisplay(1330, 112, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		break;
+	default:
+		break;
+	}
+}
+
+void Scene1337::subPostInit() {
+	R2_GLOBALS._v57709 = 0;
+	R2_GLOBALS._v5780C = 0;
+	updateCursorId(1, false);
+	subD1940(true); // _v5780C++
+	subD18F5();
+
+//	loadScene(1330);
+//	SceneExt::postInit();
+
+	R2_GLOBALS._scenePalette.addRotation(224, 235, 1);
+
+	_availableCardsPile[0] = 1;
+	_availableCardsPile[1] = 1;
+	_availableCardsPile[2] = 1;
+	_availableCardsPile[3] = 1;
+	_availableCardsPile[4] = 1;
+	_availableCardsPile[5] = 1;
+	_availableCardsPile[6] = 1;
+	_availableCardsPile[7] = 1;
+	_availableCardsPile[8] = 26;
+	_availableCardsPile[9] = 2;
+	_availableCardsPile[10] = 2;
+	_availableCardsPile[11] = 2;
+	_availableCardsPile[12] = 2;
+	_availableCardsPile[13] = 2;
+	_availableCardsPile[14] = 26;
+	_availableCardsPile[15] = 3;
+	_availableCardsPile[16] = 3;
+	_availableCardsPile[17] = 3;
+	_availableCardsPile[18] = 3;
+	_availableCardsPile[19] = 3;
+	_availableCardsPile[20] = 28;
+	_availableCardsPile[21] = 4;
+	_availableCardsPile[22] = 4;
+	_availableCardsPile[23] = 4;
+	_availableCardsPile[24] = 4;
+	_availableCardsPile[25] = 4;
+	_availableCardsPile[26] = 28;
+	_availableCardsPile[27] = 5;
+	_availableCardsPile[28] = 5;
+	_availableCardsPile[29] = 5;
+	_availableCardsPile[30] = 5;
+	_availableCardsPile[31] = 5;
+	_availableCardsPile[32] = 30;
+	_availableCardsPile[33] = 6;
+	_availableCardsPile[34] = 6;
+	_availableCardsPile[35] = 6;
+	_availableCardsPile[36] = 6;
+	_availableCardsPile[37] = 6;
+	_availableCardsPile[38] = 30;
+	_availableCardsPile[39] = 7;
+	_availableCardsPile[40] = 7;
+	_availableCardsPile[41] = 7;
+	_availableCardsPile[42] = 7;
+	_availableCardsPile[43] = 7;
+	_availableCardsPile[44] = 32;
+	_availableCardsPile[45] = 8;
+	_availableCardsPile[46] = 8;
+	_availableCardsPile[47] = 8;
+	_availableCardsPile[48] = 8;
+	_availableCardsPile[49] = 8;
+	_availableCardsPile[50] = 32;
+	_availableCardsPile[51] = 9;
+	_availableCardsPile[52] = 9;
+	_availableCardsPile[53] = 9;
+	_availableCardsPile[54] = 9;
+	_availableCardsPile[55] = 9;
+	_availableCardsPile[56] = 10;
+	_availableCardsPile[57] = 11;
+	_availableCardsPile[58] = 12;
+	_availableCardsPile[59] = 13;
+	_availableCardsPile[60] = 13;
+	_availableCardsPile[61] = 14;
+	_availableCardsPile[62] = 15;
+	_availableCardsPile[63] = 16;
+	_availableCardsPile[64] = 17;
+	_availableCardsPile[65] = 18;
+	_availableCardsPile[66] = 19;
+	_availableCardsPile[67] = 20;
+	_availableCardsPile[68] = 21;
+	_availableCardsPile[69] = 26;
+	_availableCardsPile[70] = 28;
+	_availableCardsPile[71] = 24;
+	_availableCardsPile[72] = 25;
+	_availableCardsPile[73] = 25;
+	_availableCardsPile[74] = 25;
+	_availableCardsPile[75] = 25;
+	_availableCardsPile[76] = 26;
+	_availableCardsPile[77] = 26;
+	_availableCardsPile[78] = 26;
+	_availableCardsPile[79] = 27;
+	_availableCardsPile[80] = 27;
+	_availableCardsPile[81] = 28;
+	_availableCardsPile[82] = 28;
+	_availableCardsPile[83] = 28;
+	_availableCardsPile[84] = 29;
+	_availableCardsPile[85] = 29;
+	_availableCardsPile[86] = 29;
+	_availableCardsPile[87] = 30;
+	_availableCardsPile[88] = 30;
+	_availableCardsPile[89] = 30;
+	_availableCardsPile[90] = 30;
+	_availableCardsPile[91] = 32;
+	_availableCardsPile[92] = 1;
+	_availableCardsPile[93] = 32;
+	_availableCardsPile[94] = 32;
+	_availableCardsPile[95] = 32;
+	_availableCardsPile[96] = 1;
+	_availableCardsPile[97] = 1;
+	_availableCardsPile[98] = 1;
+	_availableCardsPile[99] = 0;
+
+	_cardsAvailableNumb = 98;
+	_currentDiscardIndex = 98; // CHECKME: Would make more sense at pos 99
+
+	_discardPile._cardId = 0;
+	_discardPile._stationPos = Common::Point(128, 95);
+
+	_stockCard._cardId = 0;
+	_stockCard._stationPos = Common::Point(162, 95);
+
+	_selectedCard._cardId = 0;
+
+	_animatedCard._card.postInit();
+	_animatedCard._card.setVisage(1332);
+	_animatedCard._card.setStrip(5);
+	_animatedCard._card.setFrame(1);
+	_animatedCard._card._moveDiff = Common::Point(10, 10);
+	_animatedCard._card.fixPriority(400);
+	_animatedCard._card.setPosition(Common::Point(128, 95), 0);
+	_animatedCard._card.animate(ANIM_MODE_2, NULL);
+	_animatedCard._card.hide();
+
+	_currentPlayerArrow.postInit();
+	_currentPlayerArrow.setVisage(1334);
+	_currentPlayerArrow.setStrip(1);
+	_currentPlayerArrow.setFrame(1);
+	_currentPlayerArrow._numFrames = 12;
+	_currentPlayerArrow.fixPriority(500);
+	_currentPlayerArrow.setPosition(Common::Point(174, 107), 0);
+	_currentPlayerArrow.animate(ANIM_MODE_2, NULL);
+	_currentPlayerArrow.hide();
+
+	_showPlayerTurn = true;
+	_displayHelpFl = false;
+	_winnerId = -1;
+
+	_helpIcon.postInit();
+	_helpIcon.setup(9531, 1, 1);
+	_helpIcon.setPosition(Common::Point(249, 168));
+	_helpIcon.setPriority(155);
+	_helpIcon._effect = EFFECT_NONE;
+	_helpIcon.show();
+
+	_autoplay = false;
+	_instructionsDisplayedFl = false;
+	_instructionsWaitCount = 0;
+}
+
+void Scene1337::suggestInstructions() {
+	if (R2_GLOBALS._v57709 > 0)
+		subD1917();
+
+	if (MessageDialog::show(NEED_INSTRUCTIONS, NO_MSG, YES_MSG) == 0) {
+		if (R2_GLOBALS._v57709 == 0)
+			subD18F5();
+		dealCards();
+	} else {
+		if (R2_GLOBALS._v57709 == 0)
+			subD18F5();
+		displayInstructions();
+	}
+}
+
+void Scene1337::displayInstructions() {
+	_actionItem.setAction(&_action1);
+}
+
+void Scene1337::shuffleCards() {
+	R2_GLOBALS._sceneObjects->draw();
+
+	// Remove holes in card pile
+	for (int i = 0; i <= 98; i++) {
+		if (_availableCardsPile[i] == 0) {
+			for (int j = i + 1; j <= 98; j ++) {
+				if (_availableCardsPile[j] != 0) {
+					_availableCardsPile[i] = _availableCardsPile[j];
+					_availableCardsPile[j] = 0;
+					break;
+				}
+			}
+		}
+	}
+
+	// Compute the number of available cards
+	for (int i = 0; i <= 99; i ++) {
+		if (_availableCardsPile[i] == 0) {
+			// CHECKME: This will fail if i == 0, which shouldn't happen
+			// as we don't shuffle cards when no card is available.
+			_cardsAvailableNumb = i - 1;
+			_currentDiscardIndex = 98;  // CHECKME: Would make more sense at pos 99
+			break;
+		}
+	}
+
+	for (int i = 0; i < 2000; i ++) {
+		int randIndx = R2_GLOBALS._randomSource.getRandomNumber(_cardsAvailableNumb);
+		int swap = _availableCardsPile[0];
+		_availableCardsPile[0] = _availableCardsPile[randIndx];
+		_availableCardsPile[randIndx] = swap;
+	}
+
+	_shuffleEndedFl = false;
+
+	// Shuffle cards
+	_animatedCard._card.setAction(&_action2);
+
+	while(!_shuffleEndedFl && !g_vm->shouldQuit()) {
+		g_globals->_sceneObjects->recurse(SceneHandler::dispatchObject);
+		g_globals->_scenePalette.signalListeners();
+		R2_GLOBALS._sceneObjects->draw();
+		g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+	}
+}
+
+void Scene1337::dealCards() {
+	_animatedCard._card._moveDiff = Common::Point(30, 30);
+	shuffleCards();
+
+	// Deal cards
+	_actionItem.setAction(&_action3);
+}
+
+void Scene1337::showOptionsDialog() {
+	// Display menu with "Auto Play", "New Game", "Quit" and "Continue"
+	OptionsDialog::show();
+}
+
+void Scene1337::handleClick(int arg1, Common::Point pt) {
+	int curReg = R2_GLOBALS._sceneRegions.indexOf(g_globals->_events._mousePos);
+
+	if (arg1 == 3) {
+		bool found = false;
+		int i;
+		for (i = 0; i <= 7; i++) {
+			if ( _gameBoardSide[2]._outpostStation[i].isIn(pt)
+			  || _gameBoardSide[0]._outpostStation[i].isIn(pt)
+			  || _gameBoardSide[1]._outpostStation[i].isIn(pt)
+			  || _gameBoardSide[3]._outpostStation[i].isIn(pt) ) {
+				found = true;
+				break;
+			}
+		}
+
+		if (found) {
+			switch (curReg) {
+			case 5:
+				if (_gameBoardSide[2]._outpostStation[i]._cardId != 0)
+					displayDialog(_gameBoardSide[2]._outpostStation[i]._cardId);
+				else
+					actionDisplay(1330, 20, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 10:
+				if (_gameBoardSide[3]._outpostStation[i]._cardId != 0)
+					displayDialog(_gameBoardSide[3]._outpostStation[i]._cardId);
+				else
+					actionDisplay(1330, 22, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 15:
+				if (_gameBoardSide[0]._outpostStation[i]._cardId != 0)
+					displayDialog(_gameBoardSide[0]._outpostStation[i]._cardId);
+				else
+					actionDisplay(1330, 21, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 20:
+				if (_gameBoardSide[1]._outpostStation[i]._cardId != 0)
+					displayDialog(_gameBoardSide[1]._outpostStation[i]._cardId);
+				else
+					actionDisplay(1330, 23, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			default:
+				break;
+			}
+		} else if ( _gameBoardSide[2]._delayCard.isIn(pt)
+			  || _gameBoardSide[0]._delayCard.isIn(pt)
+			  || _gameBoardSide[1]._delayCard.isIn(pt)
+			  || _gameBoardSide[3]._delayCard.isIn(pt) ) {
+			switch (curReg) {
+			case 5:
+				if (_gameBoardSide[2]._delayCard._cardId != 0)
+					displayDialog(_gameBoardSide[2]._delayCard._cardId);
+				else
+					actionDisplay(1330, 10, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 10:
+				if (_gameBoardSide[3]._delayCard._cardId != 0)
+					displayDialog(_gameBoardSide[3]._delayCard._cardId);
+				else
+					actionDisplay(1330, 16, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 15:
+				if (_gameBoardSide[0]._delayCard._cardId != 0)
+					displayDialog(_gameBoardSide[0]._delayCard._cardId);
+				else
+					actionDisplay(1330, 13, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 20:
+				if (_gameBoardSide[1]._delayCard._cardId != 0)
+					displayDialog(_gameBoardSide[1]._delayCard._cardId);
+				else
+					actionDisplay(1330, 18, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			default:
+				break;
+			}
+		} else if (_discardPile.isIn(pt)) {
+			if (_discardPile._cardId != 0)
+				displayDialog(_discardPile._cardId);
+			else
+				actionDisplay(1330, 7, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		} else if (_helpIcon._bounds.contains(pt))
+			actionDisplay(1330, 43, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else if (_stockCard.isIn(pt))
+			actionDisplay(1330, 4, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else if ( (_gameBoardSide[2]._emptyStationPos.isIn(pt))
+			     || (_gameBoardSide[3]._emptyStationPos.isIn(pt))
+			     || (_gameBoardSide[0]._emptyStationPos.isIn(pt))
+			     || (_gameBoardSide[1]._emptyStationPos.isIn(pt)) )
+			actionDisplay(1330, 32, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else if (_gameBoardSide[2]._handCard[0].isIn(pt))
+			displayDialog(_gameBoardSide[2]._handCard[0]._cardId);
+		else if (_gameBoardSide[2]._handCard[1].isIn(pt))
+			displayDialog(_gameBoardSide[2]._handCard[1]._cardId);
+		else if (_gameBoardSide[2]._handCard[2].isIn(pt))
+			displayDialog(_gameBoardSide[2]._handCard[2]._cardId);
+		else if (_gameBoardSide[2]._handCard[3].isIn(pt))
+			displayDialog(_gameBoardSide[2]._handCard[3]._cardId);
+		else if ((curReg >= 6) && (curReg <= 9))
+			actionDisplay(1330, 29, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else if ((curReg >= 11) && (curReg <= 14))
+			actionDisplay(1330, 31, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else if ((curReg >= 16) && (curReg <= 19))
+			actionDisplay(1330, 30, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else {
+			switch (curReg) {
+			case 0:
+				actionDisplay(1330, 2, 159, 134, 1, 200, 0, 7, 0, 105, 105);
+				break;
+			case 5:
+				actionDisplay(1330, 25, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 10:
+				actionDisplay(1330, 27, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 15:
+				actionDisplay(1330, 26, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 20:
+				actionDisplay(1330, 28, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 21:
+				actionDisplay(1330, 24, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			default:
+				break;
+			}
+		}
+	}
+
+	if (arg1 != 1)
+		return;
+
+	for (int i = 0; i <= 7; i++) {
+		if (_gameBoardSide[2]._outpostStation[i].isIn(pt)) {
+			switch (_gameBoardSide[2]._outpostStation[i]._cardId) {
+			case 0:
+				actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			case 1:
+				actionDisplay(1330, 54, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			default:
+				actionDisplay(1330, 34, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			}
+			return;
+		}
+		if (_gameBoardSide[0]._outpostStation[i].isIn(pt)) {
+			switch (_gameBoardSide[0]._outpostStation[i]._cardId) {
+			case 0:
+				actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			default:
+				actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				break;
+			}
+			return;
+		}
+		if (_gameBoardSide[1]._outpostStation[i].isIn(pt)) {
+			switch (_gameBoardSide[1]._outpostStation[i]._cardId) {
+			case 0:
+				actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+				break;
+			default:
+				actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+				break;
+			}
+			return;
+		}
+		if (_gameBoardSide[3]._outpostStation[i].isIn(pt)) {
+			switch (_gameBoardSide[3]._outpostStation[i]._cardId) {
+			case 0:
+				actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+				break;
+			default:
+				actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+				break;
+			}
+			return;
+		}
+	}
+
+	if (_gameBoardSide[2]._delayCard.isIn(pt)) {
+		// The original uses _gameBoardSide[0], which is obviously a bug.
+		if (_gameBoardSide[2]._delayCard._cardId != 0)
+			actionDisplay(1330, 39, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else
+			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		return;
+	}
+	if (_gameBoardSide[3]._delayCard.isIn(pt)) {
+		if (_gameBoardSide[3]._delayCard._cardId != 0)
+			actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		else
+			actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+
+		return;
+	}
+	if (_gameBoardSide[1]._delayCard.isIn(pt)) {
+		if (_gameBoardSide[1]._delayCard._cardId != 0)
+			actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		else
+			actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+
+		return;
+	}
+	if (_gameBoardSide[0]._delayCard.isIn(pt)) {
+		if (_gameBoardSide[0]._delayCard._cardId != 0)
+			actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		else
+			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+
+		return;
+	}
+	if (_gameBoardSide[3]._emptyStationPos.isIn(pt)) {
+		actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+		return;
+	}
+	if (_gameBoardSide[1]._emptyStationPos.isIn(pt)) {
+		actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+		return;
+	}
+	if (_gameBoardSide[0]._emptyStationPos.isIn(pt)) {
+		actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+		return;
+	}
+
+	if (_helpIcon._bounds.contains(pt)) {
+		showOptionsDialog();
+		return;
+	}
+
+	if (_discardPile.isIn(pt))
+		actionDisplay(1330, 9, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+	else if (_stockCard.isIn(pt))
+		actionDisplay(1330, 5, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+	else {
+		switch (curReg) {
+		case 0:
+			actionDisplay(1330, 3, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+			break;
+		case 6:
+		// no break on purpose
+		case 7:
+		// no break on purpose
+		case 8:
+		// no break on purpose
+		case 9:
+			actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+			break;
+		case 10:
+			actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
+			break;
+		case 11:
+		// no break on purpose
+		case 12:
+		// no break on purpose
+		case 13:
+		// no break on purpose
+		case 14:
+			actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+			break;
+		case 16:
+		// no break on purpose
+		case 17:
+		// no break on purpose
+		case 18:
+		// no break on purpose
+		case 19:
+			actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+			break;
+		case 20:
+			actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
+			break;
+		default:
+			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+			break;
+		}
+	}
+}
+
+void Scene1337::handlePlayer0() {
+	if (_gameBoardSide[0]._delayCard._cardId != 0) {
+		switch (_gameBoardSide[0]._delayCard._cardId) {
+		case 10:
+		//No break on purpose
+		case 12:
+		//No break on purpose
+		case 15:
+		//No break on purpose
+		case 17:
+		//No break on purpose
+		case 18:
+		//No break on purpose
+		case 19:
+		//No break on purpose
+		case 20:
+		//No break on purpose
+		case 21:
+			discardCard(&_gameBoardSide[0]._delayCard);
+			return;
+		default:
+			for (int i = 0; i <= 3; i++) {
+				if (checkAntiDelayCard(_gameBoardSide[0]._delayCard._cardId, _gameBoardSide[0]._handCard[i]._cardId)) {
+					playAntiDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[0]._delayCard);
+					return;
+				}
+			}
+
+			break;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		int tmpVal = getStationId(0, i);
+
+		if (tmpVal != -1) {
+			bool stationAlreadyPresentFl = false;
+			for (int j = 0; j <= 7; j++) {
+				if (_gameBoardSide[0]._outpostStation[j]._cardId == _gameBoardSide[0]._handCard[tmpVal]._cardId) {
+					stationAlreadyPresentFl = true;
+					break;
+				}
+			}
+
+			if (!stationAlreadyPresentFl) {
+				for (int j = 0; j <= 7; j++) {
+					if ((_gameBoardSide[0]._outpostStation[j]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[0]._delayCard._cardId)) {
+						int stationCount = 0;
+						for (int k = 0; k <= 7; k++) {
+							if ((_gameBoardSide[0]._outpostStation[k]._cardId > 1) && (_gameBoardSide[0]._outpostStation[k]._cardId <= 9)) {
+								++stationCount;
+							}
+						}
+
+						if (stationCount == 7)
+							_winnerId = 0;
+
+						playStationCard(&_gameBoardSide[0]._handCard[tmpVal], &_gameBoardSide[0]._outpostStation[j]);
+						return;
+					}
+				}
+			}
+		}
+	}
+
+	int tmpVal = findPlatformCardInHand(0);
+
+	if (tmpVal != -1) {
+		for (int i = 0; i <= 7; i++) {
+			if ((_gameBoardSide[0]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[0]._delayCard._cardId)) {
+				playPlatformCard(&_gameBoardSide[0]._handCard[tmpVal], &_gameBoardSide[0]._outpostStation[i]);
+				return;
+			}
+		}
+	}
+
+	int meteorCardId = findMeteorCardInHand(0);
+	if (meteorCardId != -1) {
+		for (int i = 0; i <= 7; i++) {
+			if (_gameBoardSide[2]._outpostStation[i]._cardId != 0) {
+				playCentralOutpostCard(&_gameBoardSide[0]._handCard[meteorCardId], 2);
+				return;
+			}
+		}
+	}
+
+	int thieftId = findThieftCardInHand(0);
+	if (thieftId != -1) {
+		if ( (_gameBoardSide[2]._handCard[0]._cardId != 0)
+		  || (_gameBoardSide[2]._handCard[1]._cardId != 0)
+		  || (_gameBoardSide[2]._handCard[2]._cardId != 0)
+		  || (_gameBoardSide[2]._handCard[3]._cardId != 0) ) {
+			playThieftCard(0, &_gameBoardSide[0]._handCard[thieftId], 2);
+			return;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		if ((isDelayCard(_gameBoardSide[0]._handCard[i]._cardId) != -1)
+		&&  (_gameBoardSide[2]._delayCard._cardId == 0)
+		&&  isAttackPossible(2, _gameBoardSide[0]._handCard[i]._cardId)) {
+			playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[2]._delayCard);
+			return;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		if ((getStationCardId(_gameBoardSide[0]._handCard[i]._cardId) != -1)
+		&&  (_gameBoardSide[2]._delayCard._cardId == 0)
+		&& isAttackPossible(2, _gameBoardSide[0]._handCard[i]._cardId)) {
+			playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[2]._delayCard);
+			return;
+		}
+	}
+
+	meteorCardId = findMeteorCardInHand(0);
+	int victimId = getPlayerWithOutpost(0);
+
+	if ((meteorCardId != -1) && (victimId != -1)) {
+		playCentralOutpostCard(&_gameBoardSide[0]._handCard[meteorCardId], victimId);
+		return;
+	}
+
+	thieftId = findThieftCardInHand(0);
+	if (thieftId != -1) {
+		if ( (_gameBoardSide[1]._handCard[0]._cardId != 0)
+		  || (_gameBoardSide[1]._handCard[1]._cardId != 0)
+		  || (_gameBoardSide[1]._handCard[2]._cardId != 0)
+		  || (_gameBoardSide[1]._handCard[3]._cardId != 0) ) {
+			playThieftCard(0, &_gameBoardSide[0]._handCard[thieftId], 1);
+			return;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		if (getStationCardId(_gameBoardSide[0]._handCard[i]._cardId) != -1) {
+			if ((_gameBoardSide[1]._delayCard._cardId == 0) && isAttackPossible(1, _gameBoardSide[0]._handCard[i]._cardId)) {
+				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[1]._delayCard);
+				return;
+			}
+
+			if ((_gameBoardSide[3]._delayCard._cardId == 0) && isAttackPossible(3, _gameBoardSide[0]._handCard[i]._cardId)) {
+				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[3]._delayCard);
+				return;
+			}
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		tmpVal = isDelayCard(_gameBoardSide[0]._handCard[i]._cardId);
+		if (tmpVal != -1) {
+			if ((_gameBoardSide[1]._delayCard._cardId == 0) && isAttackPossible(1, _gameBoardSide[0]._handCard[i]._cardId)) {
+				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[1]._delayCard);
+				return;
+			}
+
+			if ((_gameBoardSide[3]._delayCard._cardId == 0) && isAttackPossible(3, _gameBoardSide[0]._handCard[i]._cardId)) {
+				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[3]._delayCard);
+				return;
+			}
+		}
+	}
+
+	handlePlayer01Discard(0);
+}
+
+void Scene1337::handlePlayer1() {
+	if (this->_gameBoardSide[1]._delayCard._cardId != 0) {
+		switch (_gameBoardSide[1]._delayCard._cardId) {
+		case 10:
+			// No break on purpose
+		case 12:
+			// No break on purpose
+		case 15:
+			// No break on purpose
+		case 17:
+			// No break on purpose
+		case 18:
+			// No break on purpose
+		case 19:
+			// No break on purpose
+		case 20:
+			// No break on purpose
+		case 21:
+			discardCard(&_gameBoardSide[1]._delayCard);
+			return;
+		default:
+			for (int i = 0; i <= 3; i++) {
+				if (checkAntiDelayCard(_gameBoardSide[1]._delayCard._cardId, _gameBoardSide[1]._handCard[i]._cardId)) {
+					playAntiDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[1]._delayCard);
+					return;
+				}
+			}
+			break;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		int tmpIndx = getStationId(1, i);
+		if (tmpIndx == -1)
+			break;
+
+		int tmpVal = 0;
+		for (int j = 0; j <= 7; j++) {
+			if (_gameBoardSide[1]._outpostStation[j]._cardId == _gameBoardSide[1]._handCard[tmpIndx]._cardId) {
+				tmpVal = 1;
+				break;
+			}
+		}
+
+		if (tmpVal == 0)
+			break;
+
+		for (int j = 0; j <= 7; j++) {
+			if ((_gameBoardSide[1]._outpostStation[j]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[1]._delayCard._cardId)) {
+				int stationCount = 0;
+				for (int k = 0; k <= 7; k++) {
+					if ((_gameBoardSide[1]._outpostStation[k]._cardId > 1) && (_gameBoardSide[1]._outpostStation[k]._cardId <= 9))
+						++stationCount;
+				}
+
+				if (stationCount == 7)
+					_winnerId = 1;
+
+				playStationCard(&_gameBoardSide[1]._handCard[tmpIndx], &_gameBoardSide[1]._outpostStation[j]);
+				return;
+			}
+		}
+	}
+
+	int normalCardId = findPlatformCardInHand(1);
+	if (normalCardId != -1) {
+		for (int i = 0; i <= 7; i++) {
+			if ((_gameBoardSide[1]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[1]._delayCard._cardId)) {
+				playPlatformCard(&_gameBoardSide[1]._handCard[normalCardId], &_gameBoardSide[1]._outpostStation[i]);
+				return;
+			}
+		}
+	}
+
+	int meterorCardId = findMeteorCardInHand(1);
+	int victimId = getPlayerWithOutpost(1);
+
+	if ((meterorCardId != -1) && (victimId != -1)) {
+		playCentralOutpostCard(&_gameBoardSide[1]._handCard[meterorCardId], victimId);
+		return;
+	}
+
+	int thieftId = findThieftCardInHand(1);
+	if (thieftId != -1) {
+		int playerIdFound = -1;
+		int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
+		for (int i = 0; i <= 3; i++) {
+			if (rndVal != 1) {
+				if (  (_gameBoardSide[rndVal]._handCard[0]._cardId != 0)
+					|| (_gameBoardSide[rndVal]._handCard[1]._cardId != 0)
+					|| (_gameBoardSide[rndVal]._handCard[2]._cardId != 0)
+					|| (_gameBoardSide[rndVal]._handCard[3]._cardId != 0)) {
+						playerIdFound = rndVal;
+						break;
+				}
+			}
+			// The original was only updating in the rndVal block,
+			// which was a bug as the checks were stopping at this point
+			rndVal--;
+			if (rndVal < 0)
+				rndVal = 3;
+		}
+
+		if (playerIdFound != -1) {
+			playThieftCard(1, &_gameBoardSide[1]._handCard[thieftId], playerIdFound);
+			return;
+		}
+	}
+
+	for (int i = 0; i <= 3; i++) {
+		int tmpVal = isDelayCard(_gameBoardSide[1]._handCard[i]._cardId);
+		if (tmpVal != -1) {
+			victimId = -1;
+			int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
+
+			for (int j = 0; j <= 3; j++) {
+				if (rndVal != 1) {
+					if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && isAttackPossible(rndVal, _gameBoardSide[1]._handCard[i]._cardId))
+						victimId = rndVal;
+				}
+
+				if (victimId != -1) {
+					playDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[victimId]._delayCard);
+					return;
+				} else {
+					rndVal--;
+					if (rndVal < 0)
+						rndVal = 3;
+				}
+			}
+		}
+	}
+
+	for (int j = 0; j <= 3; j++) {
+		if (getStationCardId(_gameBoardSide[1]._handCard[j]._cardId) != -1) {
+			victimId = -1;
+			int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
+			for (int l = 0; l <= 3; l++) {
+				if (rndVal != 1) {
+					if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && (_gameBoardSide[1]._handCard[j]._cardId == 1))
+						victimId = rndVal;
+				}
+				if (victimId != -1) {
+					playDelayCard(&_gameBoardSide[1]._handCard[j], &_gameBoardSide[victimId]._delayCard);
+					return;
+				} else {
+					rndVal--;
+					if (rndVal < 0)
+						rndVal = 3;
+				}
+			}
+		}
+	}
+
+	handlePlayer01Discard(1);
+}
+
+void Scene1337::handlePlayer3() {
+	if (_gameBoardSide[3]._delayCard._cardId != 0) {
+		switch (_gameBoardSide[3]._delayCard._cardId) {
+		case 10:
+			// No break on purpose
+		case 12:
+			// No break on purpose
+		case 15:
+			// No break on purpose
+		case 17:
+			// No break on purpose
+		case 18:
+			// No break on purpose
+		case 19:
+			// No break on purpose
+		case 20:
+			// No break on purpose
+		case 21:
+			discardCard(&_gameBoardSide[3]._delayCard);
+			return;
+		default:
+			for (int i = 0; i <= 3; i++) {
+				if (checkAntiDelayCard(_gameBoardSide[3]._delayCard._cardId, _gameBoardSide[3]._handCard[i]._cardId)) {
+					playAntiDelayCard(&_gameBoardSide[3]._handCard[i], &_gameBoardSide[3]._delayCard);
+					return;
+				}
+			}
+			break;
+		}
+	}
+
+	int randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
+	if (_gameBoardSide[3]._handCard[randIndx]._cardId == 1) {
+		// Station Card
+		for (int i = 0; i <= 7; i++) {
+			if ((_gameBoardSide[3]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[3]._delayCard._cardId)) {
+				playPlatformCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[3]._outpostStation[i]);
+				return;
+			}
+		}
+	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId <= 9) {
+		// Outpost Card
+		for (int i = 0; i <= 7; i++) {
+			if (_gameBoardSide[3]._outpostStation[i]._cardId == _gameBoardSide[3]._handCard[randIndx]._cardId) {
+				discardCard(&_gameBoardSide[3]._handCard[randIndx]);
+				return;
+			}
+		}
+
+		for (int i = 0; i <= 7; i++) {
+			if ((_gameBoardSide[3]._outpostStation[i]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[3]._delayCard._cardId)) {
+				int stationCount = 0;
+				for (int j = 0; j <= 7; j++) {
+					if ((_gameBoardSide[3]._outpostStation[j]._cardId > 1) && (_gameBoardSide[3]._outpostStation[j]._cardId <= 9))
+						++stationCount;
+				}
+
+				if (stationCount == 7)
+					_winnerId = 3;
+
+				playStationCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[3]._outpostStation[i]);
+				return;
+			}
+		}
+	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId == 13) {
+		// Meteor Card
+		int victimId = getPlayerWithOutpost(3);
+
+		if (victimId != -1) {
+			playCentralOutpostCard(&_gameBoardSide[3]._handCard[randIndx], victimId);
+			return;
+		}
+	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId == 25) {
+		// Thief card
+		int victimId = -1;
+		int tmpRandIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
+
+		for (int i = 0; i <= 3; i++) {
+			if (  (tmpRandIndx != 3)
+				&& (  (_gameBoardSide[tmpRandIndx]._handCard[0]._cardId != 0)
+				|| (_gameBoardSide[tmpRandIndx]._handCard[1]._cardId != 0)
+				|| (_gameBoardSide[tmpRandIndx]._handCard[2]._cardId != 0)
+				|| (_gameBoardSide[tmpRandIndx]._handCard[3]._cardId != 0) )) {
+					victimId = tmpRandIndx;
+					break;
+			}
+
+			++tmpRandIndx;
+			if (tmpRandIndx > 3)
+				tmpRandIndx = 0;
+		}
+
+		if (victimId != -1) {
+			playThieftCard(3, &_gameBoardSide[3]._handCard[randIndx], victimId);
+			return;
+		}
+	} else {
+		switch (_gameBoardSide[3]._handCard[randIndx]._cardId) {
+		case 10:
+			// No break on purpose
+		case 11:
+			// No break on purpose
+		case 12:
+			// No break on purpose
+		case 14:
+			// No break on purpose
+		case 15:
+			// No break on purpose
+		case 16:
+			// No break on purpose
+		case 17:
+			// No break on purpose
+		case 18:
+			// No break on purpose
+		case 19:
+			// No break on purpose
+		case 20:
+			// No break on purpose
+		case 21:
+			// No break on purpose
+		case 24: {
+			int victimId = -1;
+			int tmpRandIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
+
+			for (int i = 0; i <= 3; i++) {
+				if (tmpRandIndx != 3) {
+					if ((_gameBoardSide[tmpRandIndx]._delayCard._cardId == 0)
+					&&  isAttackPossible(tmpRandIndx, _gameBoardSide[3]._handCard[randIndx]._cardId))
+						victimId = tmpRandIndx;
+				}
+
+				++tmpRandIndx;
+				if (tmpRandIndx > 3)
+					tmpRandIndx = 0;
+
+				if (victimId != -1)
+					break;
+			}
+
+			if (victimId != -1) {
+				// Useless second identical check skipped
+				playDelayCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[victimId]._delayCard);
+				return;
+			}
+				 }
+		default:
+			break;
+		}
+	}
+
+	discardCard(&_gameBoardSide[3]._handCard[randIndx]);
+}
+
+void Scene1337::handleAutoplayPlayer2() {
+	if (getStationCardId(this->_gameBoardSide[2]._delayCard._cardId) == -1)
+		_delayedFunction = &Scene1337::handlePlayer2;
+	else
+		discardCard(&_gameBoardSide[2]._delayCard);
+}
+
+void Scene1337::handlePlayer2() {
+	_selectedCard._stationPos = g_globals->_events._mousePos;
+
+	if (R2_GLOBALS._v57810 == 200) {
+		// Hand
+		int i;
+		for (i = 0; i < 4; i++) {
+			if ((_gameBoardSide[2]._handCard[i].isIn(_selectedCard._stationPos)) && (_gameBoardSide[2]._handCard[i]._cardId != 0)) {
+				Card *handcard = &_gameBoardSide[2]._handCard[i];
+				_selectedCard._cardId = handcard->_cardId;
+				_selectedCard._stationPos = handcard->_stationPos;
+				//warning("_selectedCard._actorName = handcard->_actorName;");
+				//warning("_selectedCard._fieldE = handcard->_fieldE;");
+				//warning("_selectedCard._field10 = handcard->_field10;");
+				//warning("_selectedCard._field12 = handcard->_field12;");
+				//warning("_selectedCard._field14 = handcard->_field14;");
+				//warning("_selectedCard._field16 = handcard->_field16;");
+				_selectedCard._sceneRegionId = handcard->_sceneRegionId;
+				_selectedCard._position = handcard->_position;
+				_selectedCard._yDiff = handcard->_yDiff;
+				_selectedCard._bounds = handcard->_bounds;
+				_selectedCard._resNum = handcard->_resNum;
+				_selectedCard._lookLineNum = handcard->_lookLineNum;
+				_selectedCard._talkLineNum = handcard->_talkLineNum;
+				_selectedCard._useLineNum = handcard->_useLineNum;
+				_selectedCard._action = handcard->_action;
+				//warning("_selectedCard._field0 = handcard->_field0;");
+				_selectedCard._card._updateStartFrame = handcard->_card._updateStartFrame;
+				_selectedCard._card._walkStartFrame = handcard->_card._walkStartFrame;
+				_selectedCard._card._oldPosition = handcard->_card._oldPosition;
+				_selectedCard._card._percent = handcard->_card._percent;
+				_selectedCard._card._priority = handcard->_card._priority;
+				_selectedCard._card._angle = handcard->_card._angle;
+				_selectedCard._card._flags = handcard->_card._flags;
+				_selectedCard._card._xe = handcard->_card._xe;
+				_selectedCard._card._xs = handcard->_card._xs;
+				_selectedCard._card._paneRects[0] = handcard->_card._paneRects[0];
+				_selectedCard._card._paneRects[1] = handcard->_card._paneRects[1];
+				_selectedCard._card._visage = handcard->_card._visage;
+				_selectedCard._card._objectWrapper = handcard->_card._objectWrapper;
+				_selectedCard._card._strip = handcard->_card._strip;
+				_selectedCard._card._animateMode = handcard->_card._animateMode;
+				_selectedCard._card._frame = handcard->_card._frame;
+				_selectedCard._card._endFrame = handcard->_card._endFrame;
+				_selectedCard._card._loopCount = handcard->_card._loopCount;
+				_selectedCard._card._frameChange = handcard->_card._frameChange;
+				_selectedCard._card._numFrames = handcard->_card._numFrames;
+				_selectedCard._card._regionIndex = handcard->_card._regionIndex;
+				_selectedCard._card._mover = handcard->_card._mover;
+				_selectedCard._card._moveDiff = handcard->_card._moveDiff;
+				_selectedCard._card._moveRate = handcard->_card._moveRate;
+				_selectedCard._card._actorDestPos = handcard->_card._actorDestPos;
+				_selectedCard._card._endAction = handcard->_card._endAction;
+				_selectedCard._card._regionBitList = handcard->_card._regionBitList;
+				// _selectedCard._object1._actorName = handcard->_object1._actorName;
+				//warning("_selectedCard._card._fieldE = handcard->_card._fieldE;");
+				//warning("_selectedCard._card._field10 = handcard->_card._field10;");
+				//warning("_selectedCard._card._field12 = handcard->_card._field12;");
+				//warning("_selectedCard._card._field14 = handcard->_card._field14;");
+				//warning("_selectedCard._card._field16 = handcard->_card._field16;");
+
+				_gameBoardSide[2]._handCard[i]._cardId = 0;
+				_gameBoardSide[2]._handCard[i]._card.remove();
+				break;
+			}
+		}
+
+		if (i == 4) {
+			handleClick(1, _selectedCard._stationPos);
+			handleAutoplayPlayer2();
+			return;
+		} else {
+			setCursorData(1332, _selectedCard._card._strip, _selectedCard._card._frame);
+			R2_GLOBALS._sceneObjects->draw();
+		}
+	} else if (R2_GLOBALS._v57810 == 300) {
+		// Eye
+		handleClick(3, _selectedCard._stationPos);
+		handleAutoplayPlayer2();
+		return;
+	} else {
+		// The original code is calling a function full of dead code.
+		// Only this message remains after a cleanup.
+		MessageDialog::show(WRONG_ANSWER_MSG, OK_BTN_STRING);
+		//
+		handleAutoplayPlayer2();
+		return;
+	}
+
+	Event event;
+	bool found;
+	for (;;) {
+		if ( ((g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN)) && (event.btnState == BTNSHIFT_RIGHT))
+			|| (g_globals->_events.getEvent(event, EVENT_KEYPRESS)) ){
+			_selectedCard._stationPos = g_globals->_events._mousePos;
+			found = false;
+
+			for (int i = 0; i <= 3; i ++) {
+				if (_gameBoardSide[2]._handCard[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+					if (_gameBoardSide[2]._handCard[i]._cardId == 0) {
+						_gameBoardSide[2]._handCard[i]._cardId = _selectedCard._cardId;
+						_gameBoardSide[2]._handCard[i]._card.postInit();
+						_gameBoardSide[2]._handCard[i]._card.hide();
+						_gameBoardSide[2]._handCard[i]._card.setVisage(1332);
+						_gameBoardSide[2]._handCard[i]._card.setPosition(_gameBoardSide[2]._handCard[i]._stationPos, 0);
+						_gameBoardSide[2]._handCard[i]._card.fixPriority(170);
+						setAnimationInfo(&_gameBoardSide[2]._handCard[i]);
+						setCursorData(5, 1, 4);
+						_currentPlayerNumb--;
+						_showPlayerTurn = false;
+						handleNextTurn();
+						return;
+					} else {
+						actionDisplay(1330, 127, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						found = true;
+					}
+					break;
+				}
+			}
+
+			if (!found) {
+				if (_discardPile.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+					discardCard(&_selectedCard);
+					return;
+				} else if (_selectedCard._cardId == 1) {
+					bool isInCardFl = false;
+					int i;
+					for (i = 0; i <= 7; i++) {
+						if (_gameBoardSide[2]._outpostStation[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							isInCardFl = true;
+							break;
+						}
+					}
+
+					if ((isInCardFl) && (_gameBoardSide[2]._outpostStation[i]._cardId == 0)) {
+						if (isDelayCard(_gameBoardSide[2]._delayCard._cardId) != -1) {
+							actionDisplay(1330, 55, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else {
+							playPlatformCard(&_selectedCard, &_gameBoardSide[2]._outpostStation[i]);
+							return;
+						}
+					} else {
+						actionDisplay(1330, 56, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					}
+				} else if (_selectedCard._cardId <= 9) {
+					bool isInCardFl = false;
+					int i;
+					for (i = 0; i <= 7; i++) {
+						if (_gameBoardSide[2]._outpostStation[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							isInCardFl = true;
+							break;
+						}
+					}
+					if ((isInCardFl) && (_gameBoardSide[2]._outpostStation[i]._cardId == 1)) {
+						isInCardFl = false;
+						for (int j = 0; j <= 7; j++) {
+							if (_selectedCard._cardId == _gameBoardSide[2]._outpostStation[j]._cardId) {
+								isInCardFl = true;
+								break;
+							}
+						}
+						if (isInCardFl) {
+							// This station is already in place
+							actionDisplay(1330, 34, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else if (isDelayCard(_gameBoardSide[2]._delayCard._cardId) != -1) {
+							// You must eliminate your delay before you can play a station
+							actionDisplay(1330, 35, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else {
+							int stationCount = 0;
+							for (int k = 0; k <= 7; k++) {
+								if ((_gameBoardSide[2]._outpostStation[k]._cardId > 1) && (_gameBoardSide[2]._outpostStation[k]._cardId <= 9))
+									++stationCount;
+							}
+
+							if (stationCount == 7)
+								_winnerId = 2;
+
+							playStationCard(&_selectedCard, &_gameBoardSide[2]._outpostStation[i]);
+							return;
+						}
+					} else {
+						actionDisplay(1330, 37, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					}
+				} else if ((_selectedCard._cardId == 26) || (_selectedCard._cardId == 30) ||(_selectedCard._cardId == 32) || (_selectedCard._cardId == 28)) {
+					// Check anti-delay card (26 = Diplomacy, 28 = Innovation, 30 = Cure, 32 = Agreement)
+					if (_gameBoardSide[2]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+						actionDisplay(1330, 42, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					} else if (checkAntiDelayCard(_gameBoardSide[2]._delayCard._cardId, _selectedCard._cardId)) {
+						playAntiDelayCard(&_selectedCard, &_gameBoardSide[2]._delayCard);
+						return;
+					} else {
+						if (_gameBoardSide[2]._delayCard._cardId != 0) {
+							switch (_gameBoardSide[2]._delayCard._cardId) {
+							case 11:
+								actionDisplay(1330, 68, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+								break;
+							case 14:
+								actionDisplay(1330, 80, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+								break;
+							case 16:
+								actionDisplay(1330, 84, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+								break;
+							case 24:
+								actionDisplay(1330, 96, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+								break;
+							default:
+								break;
+							}
+						} else {
+							actionDisplay(1330, 41, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						}
+					}
+				} else if ((getStationCardId(_selectedCard._cardId) == -1) && (isDelayCard(_selectedCard._cardId) == -1)) {
+					if (_selectedCard._cardId == 13) {
+						// Meteor Card
+						if (_gameBoardSide[0]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							for (int k = 0; k <= 7; k++) {
+								if (_gameBoardSide[0]._outpostStation[k]._cardId != 0) {
+									playCentralOutpostCard(&_selectedCard, 0);
+									return;
+								}
+							}
+							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else if (_gameBoardSide[3]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							for (int k = 0; k <= 7; k++) {
+								if (_gameBoardSide[3]._outpostStation[k]._cardId != 0) {
+									playCentralOutpostCard(&_selectedCard, 3);
+									return;
+								}
+							}
+							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else if (_gameBoardSide[1]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							for (int k = 0; k <= 7; k++) {
+								if (_gameBoardSide[1]._outpostStation[k]._cardId == 0) {
+									playCentralOutpostCard(&_selectedCard, 1);
+									return;
+								}
+							}
+							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						} else {
+							actionDisplay(1330, 128, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						}
+					} else if (_selectedCard._cardId == 25) {
+						// Thief card
+						if (_gameBoardSide[0]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							if ( (_gameBoardSide[0]._handCard[0]._cardId != 0)
+								|| (_gameBoardSide[0]._handCard[1]._cardId != 0)
+								|| (_gameBoardSide[0]._handCard[2]._cardId != 0)
+								|| (_gameBoardSide[0]._handCard[3]._cardId != 0) ) {
+									int k;
+									for (k = 0; k <= 3; k++){
+										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
+											break;
+									}
+									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 0);
+									return;
+							} else {
+								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							}
+						} else if (_gameBoardSide[1]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							if ( (_gameBoardSide[1]._handCard[0]._cardId != 0)
+								|| (_gameBoardSide[1]._handCard[1]._cardId != 0)
+								|| (_gameBoardSide[1]._handCard[2]._cardId != 0)
+								|| (_gameBoardSide[1]._handCard[3]._cardId != 0) ) {
+									int k;
+									for (k = 0; k <= 3; k++){
+										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
+											break;
+									}
+									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 1);
+									return;
+							} else {
+								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							}
+						}
+
+						if (_gameBoardSide[3]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+							if ( (_gameBoardSide[3]._handCard[0]._cardId != 0)
+								|| (_gameBoardSide[3]._handCard[1]._cardId != 0)
+								|| (_gameBoardSide[3]._handCard[2]._cardId != 0)
+								|| (_gameBoardSide[3]._handCard[3]._cardId != 0) ) {
+									int k;
+									for (k = 0; k <= 3; k++){
+										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
+											break;
+									}
+									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 3);
+									return;
+							} else {
+								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							}
+						} else {
+							actionDisplay(1330, 129, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+						}
+					} else if (_selectedCard._cardId == 29) {
+						// Interceptor cards are used to prevent collision
+						actionDisplay(1330, 136, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					} else if (_selectedCard._cardId == 27) {
+						actionDisplay(1330, 137, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					}
+				} else if (_gameBoardSide[0]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+					if (_gameBoardSide[0]._delayCard._cardId != 0) {
+						actionDisplay(1330, 15, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					} else if (!isAttackPossible(0, _selectedCard._cardId)) {
+						switch (_selectedCard._cardId) {
+						case 10:
+							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 12:
+							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 15:
+							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 17:
+							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 18:
+							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 19:
+							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 20:
+							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 21:
+							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						default:
+							break;
+						}
+					} else {
+						playDelayCard(&_selectedCard, &_gameBoardSide[0]._delayCard);
+						return;
+					}
+				} else if (_gameBoardSide[3]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+					if (_gameBoardSide[3]._delayCard._cardId != 0) {
+						actionDisplay(1330, 17, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					} else if (!isAttackPossible(3, _selectedCard._cardId)) {
+						switch (_selectedCard._cardId) {
+						case 10:
+							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 12:
+							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 15:
+							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 17:
+							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 18:
+							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 19:
+							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 20:
+							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 21:
+							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						default:
+							break;
+						}
+					} else {
+						playDelayCard(&_selectedCard, &_gameBoardSide[3]._delayCard);
+						return;
+					}
+				} else if (_gameBoardSide[1]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
+					if (_gameBoardSide[1]._delayCard._cardId != 0) {
+						actionDisplay(1330, 19, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+					} else if (!isAttackPossible(1, _selectedCard._cardId)) {
+						switch (_selectedCard._cardId) {
+						case 10:
+							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 12:
+							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 15:
+							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 17:
+							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 18:
+							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 19:
+							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 20:
+							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						case 21:
+							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+							break;
+						default:
+							break;
+						}
+					} else {
+						playDelayCard(&_selectedCard, &_gameBoardSide[1]._delayCard);
+						return;
+					}
+				} else {
+					actionDisplay(1330, 38, 159, 10, 1, 200, 0, 7, 0, 154, 154);
+				}
+			}
+		} else {
+			g_globals->_scenePalette.signalListeners();
+			R2_GLOBALS._sceneObjects->draw();
+			g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
+		}
+
+		g_globals->_sceneObjects->recurse(SceneHandler::dispatchObject);
+	}
+}
+
+void Scene1337::updateCursorId(int cursorId, bool updateFl) {
+	if ((R2_GLOBALS._v57709 != 0) || (R2_GLOBALS._v5780C != 0))
+		return;
+
+	R2_GLOBALS._mouseCursorId = cursorId;
+
+	if (updateFl) {
+		R2_GLOBALS._mouseCursorId++;
+
+		if (R2_GLOBALS._mouseCursorId < 1)
+			R2_GLOBALS._mouseCursorId = 2;
+
+		if (R2_GLOBALS._mouseCursorId > 2)
+			R2_GLOBALS._mouseCursorId = 1;
+	}
+
+	// The original was using an intermediate function to call setCursorData.
+	// It has been removed to improve readability
+	if (R2_GLOBALS._mouseCursorId == 1) {
+		R2_GLOBALS._v57810 = 200;
+		setCursorData(5, 1, 4);
+	} else if (R2_GLOBALS._mouseCursorId == 2) {
+		R2_GLOBALS._v57810 = 300;
+		setCursorData(5, 1, 5);
+	} else {
+		R2_GLOBALS._v57810 = 0;
+		setCursorData(5, 0, 0);
+	}
+}
+
+void Scene1337::setCursorData(int resNum, int rlbNum, int frameNum) {
+	_cursorCurRes = resNum;
+	_cursorCurStrip = rlbNum;
+	_cursorCurFrame = frameNum;
+
+	if (!frameNum) {
+		// Should be a hardcoded cursor displaying only a dot.
+		// FIXME: Use another cursor when possible
+		R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+	} else {
+		// TODO: The original was using some resource caching, which was useless and complex
+		// and which has been removed. This cursor behavior clearly made intensive use of this caching...
+		// We now have to find a way to cache these cursor pointers and avoid loading them multiple times per seconds
+		uint size;
+		byte *cursor = g_resourceManager->getSubResource(resNum, rlbNum, frameNum, &size);
+		// Decode the cursor
+		GfxSurface s = surfaceFromRes(cursor);
+
+		Graphics::Surface surface = s.lockSurface();
+		const byte *cursorData = (const byte *)surface.getPixels();
+		CursorMan.replaceCursor(cursorData, surface.w, surface.h, s._centroid.x, s._centroid.y, s._transColor);
+		s.unlockSurface();
+
+		DEALLOCATE(cursor);
+	}
+}
+
+void Scene1337::subD18F5() {
+	if (R2_GLOBALS._v57709 == 0)
+		// The original restores a copy of the default cursor (the hand), which isn't possible with our implementation
+		// We reload that cursor instead.
+		setCursorData(5, 1, 4);
+
+	++R2_GLOBALS._v57709;
+}
+
+void Scene1337::subD1917() {
+	if (R2_GLOBALS._v57709 != 0) {
+		R2_GLOBALS._v57709--;
+		if (R2_GLOBALS._v57709 == 0) {
+			// The original was using an intermediate function to call setCursorData.
+			// It has been removed to improve readability
+			setCursorData(5, _cursorCurStrip, _cursorCurFrame);
+		}
+	}
+}
+
+void Scene1337::subD1940(bool flag) {
+	if (flag)
+		++R2_GLOBALS._v5780C;
+	else if (R2_GLOBALS._v5780C != 0)
+		--R2_GLOBALS._v5780C;
+}
+
+void Scene1337::subD1975(int arg1, int arg2) {
+	// No implementation required in ScummVM: Mouse handling with tons of caching 
+}
+
+void Scene1337::OptionsDialog::show() {
+	OptionsDialog *dlg = new OptionsDialog();
+	dlg->draw();
+
+	// Show the dialog
+	GfxButton *btn = dlg->execute(NULL);
+
+	// Figure out the new selected character
+	if (btn == &dlg->_quitGame)
+		R2_GLOBALS._sceneManager.changeScene(125);
+	else if (btn == &dlg->_restartGame)
+		R2_GLOBALS._sceneManager.changeScene(1330);
+
+	// Remove the dialog
+	dlg->remove();
+	delete dlg;
+}
+
+Scene1337::OptionsDialog::OptionsDialog() {
+	// Set the elements text
+	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+	_autoplay.setText(scene->_autoplay ? AUTO_PLAY_ON : AUTO_PLAY_OFF);
+	_restartGame.setText(START_NEW_CARD_GAME);
+	_quitGame.setText(QUIT_CARD_GAME);
+	_continueGame.setText(CONTINUE_CARD_GAME);
+
+	// Set position of the elements
+	_autoplay._bounds.moveTo(5, 2);
+	_restartGame._bounds.moveTo(5, _autoplay._bounds.bottom + 2);
+	_quitGame._bounds.moveTo(5, _restartGame._bounds.bottom + 2);
+	_continueGame._bounds.moveTo(5, _quitGame._bounds.bottom + 2);
+
+	// Add the items to the dialog
+	addElements(&_autoplay, &_restartGame, &_quitGame, &_continueGame, NULL);
+
+	// Set the dialog size and position
+	frame();
+	_bounds.collapse(-6, -6);
+	setCenter(160, 100);
+}
+
+GfxButton *Scene1337::OptionsDialog::execute(GfxButton *defaultButton) {
+	_gfxManager.activate();
+
+	// Event loop
+	GfxButton *selectedButton = NULL;
+
+	bool breakFlag = false;
+	while (!g_vm->shouldQuit() && !breakFlag) {
+		Event event;
+		while (g_globals->_events.getEvent(event) && !breakFlag) {
+			// Adjust mouse positions to be relative within the dialog
+			event.mousePos.x -= _gfxManager._bounds.left;
+			event.mousePos.y -= _gfxManager._bounds.top;
+
+			for (GfxElementList::iterator i = _elements.begin(); i != _elements.end(); ++i) {
+				if ((*i)->process(event))
+					selectedButton = static_cast<GfxButton *>(*i);
+			}
+
+			if (selectedButton == &_autoplay) {
+				// Toggle Autoplay
+				selectedButton = NULL;
+				Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
+				scene->_autoplay = !scene->_autoplay;
+
+				_autoplay.setText(scene->_autoplay ? AUTO_PLAY_ON : AUTO_PLAY_OFF);
+				_autoplay.draw();
+			} else if (selectedButton) {
+				breakFlag = true;
+				break;
+			} else if (!event.handled) {
+				if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_ESCAPE)) {
+					selectedButton = NULL;
+					breakFlag = true;
+					break;
+				}
+			}
+		}
+
+		g_system->delayMillis(10);
+		GLOBALS._screenSurface.updateScreen();
+	}
+
+	_gfxManager.deactivate();
+	return selectedButton;
+}
+
+} // End of namespace Ringworld2
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_outpost.h b/engines/tsage/ringworld2/ringworld2_outpost.h
new file mode 100644
index 0000000..b3e6633
--- /dev/null
+++ b/engines/tsage/ringworld2/ringworld2_outpost.h
@@ -0,0 +1,262 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_RINGWORLD2_OUTPOST_H
+#define TSAGE_RINGWORLD2_OUTPOST_H
+
+#include "common/scummsys.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/sound.h"
+#include "tsage/ringworld2/ringworld2_logic.h"
+#include "tsage/ringworld2/ringworld2_speakers.h"
+
+namespace TsAGE {
+
+namespace Ringworld2 {
+
+using namespace TsAGE;
+
+class Scene1337 : public SceneExt {
+	class OptionsDialog: public GfxDialog {
+	private:
+		GfxButton _autoplay;
+		GfxButton _restartGame;
+		GfxButton _quitGame;
+		GfxButton _continueGame;
+
+		OptionsDialog();
+		virtual ~OptionsDialog() {}
+		virtual GfxButton *execute(GfxButton *defaultButton);
+	public:
+		static void show();
+	};
+
+	class Card: public SceneHotspot {
+	public:
+		SceneObject _card;
+
+		int _cardId;
+		Common::Point _stationPos;
+
+		Card();
+		void synchronize(Serializer &s);
+		bool isIn(Common::Point pt);
+	};
+
+	class GameBoardSide: public SceneHotspot {
+	public:
+		Card _handCard[4];
+		Card _outpostStation[8];
+		Card _delayCard;
+		Card _emptyStationPos;
+
+		Common::Point _card1Pos;
+		Common::Point _card2Pos;
+		Common::Point _card3Pos;
+		Common::Point _card4Pos;
+		int _frameNum;
+
+		GameBoardSide();
+		void synchronize(Serializer &s);
+	};
+
+	class Action1337: public Action {
+	public:
+		void waitFrames(int32 frameCount);
+	};
+
+	class Action1: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action2: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action3: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action4: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action5: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action6: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action7: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action8: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action9: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action10: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action11: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action12: public Action1337 {
+	public:
+		void signal();
+	};
+	class Action13: public Action1337 {
+	public:
+		void signal();
+	};
+public:
+	Action1 _action1;
+	Action2 _action2;
+	Action3 _action3;
+	Action4 _action4;
+	Action5 _action5;
+	Action6 _action6;
+	Action7 _action7;
+	Action8 _action8;
+	Action9 _action9;
+	Action10 _action10;
+	Action11 _action11;
+	Action12 _action12;
+	Action13 _action13;
+
+	typedef void (Scene1337::*FunctionPtrType)();
+	FunctionPtrType _delayedFunction;
+
+	bool _autoplay;
+	bool _shuffleEndedFl;
+	bool _showPlayerTurn;
+	bool _displayHelpFl;
+	bool _instructionsDisplayedFl;
+
+	// Discarded cards are put in the available cards pile, with an higher index so there no conflict
+	int _currentDiscardIndex;
+	int _availableCardsPile[100];
+	int _cardsAvailableNumb;
+	int _currentPlayerNumb;
+	int _actionPlayerIdx;
+	int _actionVictimIdx;
+	int _winnerId;
+	int _instructionsWaitCount;
+	int _cursorCurRes;
+	int _cursorCurStrip;
+	int _cursorCurFrame;
+
+	ASound _aSound1;
+	ASound _aSound2;
+	GameBoardSide _gameBoardSide[4];
+	SceneActor _helpIcon;
+	SceneActor _stockPile;
+	SceneItem _actionItem;
+	SceneObject _currentPlayerArrow;
+
+	Card *_actionCard1;
+	Card *_actionCard2;
+	Card *_actionCard3;
+	Card _animatedCard;
+	Card _shuffleAnimation;
+	Card _discardedPlatformCard;
+	Card _selectedCard;
+	Card _discardPile;
+	Card _stockCard;
+
+	SceneObject _upperDisplayCard[8];
+	SceneObject _lowerDisplayCard[8];
+
+	Scene1337();
+	virtual void synchronize(Serializer &s);
+
+	void actionDisplay(int resNum, int lineNum, int x, int y, int keepOnScreen, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt);
+	void setAnimationInfo(Card *card);
+	void handleNextTurn();
+	void handlePlayerTurn();
+	bool isStationCard(int cardId);
+	bool isStopConstructionCard(int cardId);
+	int  getStationId(int playerId, int handCardId);
+	int  findPlatformCardInHand(int playerId);
+	int  findMeteorCardInHand(int playerId);
+	int  findThieftCardInHand(int playerId);
+	int  isDelayCard(int cardId);
+	int  getStationCardId(int cardId);
+	void handlePlayer01Discard(int playerId);
+	void playThieftCard(int playerId, Card *card, int victimId);
+	int  getPreventionCardId(int cardId);
+	bool isAttackPossible(int victimId, int cardId);
+	int  getPlayerWithOutpost(int playerId);
+	bool checkAntiDelayCard(int delayCardId, int cardId);
+	void playStationCard(Card *station, Card *platform);
+	void playDelayCard(Card *card, Card *dest);
+	void playPlatformCard(Card *card, Card *dest);
+	void playAntiDelayCard(Card *card, Card *dest);
+	Card *getStationCard(int arg1);
+	void playCentralOutpostCard(Card *card, int playerId);
+	int  getRandomCardFromHand(int playerId);
+	void discardCard(Card *card);
+	void subC4CD2();
+	void subC4CEC();
+	void playInterceptorCard(Card *subObj1, Card *subObj2);
+	void displayDialog(int dialogNumb);
+	void subPostInit();
+	void displayInstructions();
+	void suggestInstructions();
+	void shuffleCards();
+	void dealCards();
+	void showOptionsDialog();
+	void handleClick(int arg1, Common::Point pt);
+	void handlePlayer0();
+	void handlePlayer1();
+	void handlePlayer2();
+	void handlePlayer3();
+	void handleAutoplayPlayer2();
+	void updateCursorId(int arg1, bool arg2);
+	void setCursorData(int resNum, int rlbNum, int frameNum);
+	void subD18F5();
+	void subD1917();
+	void subD1940(bool flag);
+	void subD1975(int arg1, int arg2);
+
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void remove();
+	virtual void process(Event &event);
+	virtual void dispatch();
+};
+
+} // End of namespace Ringworld2
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 8c960f4..51879f1 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -2200,4673 +2200,6 @@ void Scene1200::startCrawling(CrawlDirection dir) {
 }
 
 /*--------------------------------------------------------------------------
- * Scene 1337 - Card game
- *
- *--------------------------------------------------------------------------*/
-
-Scene1337::Card::Card() {
-	_cardId = 0;
-	_stationPos = Common::Point(0, 0);
-}
-
-void Scene1337::Card::synchronize(Serializer &s) {
-	_card.synchronize(s);
-
-	s.syncAsSint16LE(_cardId);
-	s.syncAsSint16LE(_stationPos.x);
-	s.syncAsSint16LE(_stationPos.y);
-}
-
-bool Scene1337::Card::isIn(Common::Point pt) {
-	if ((_stationPos.x > pt.x) || (_stationPos.x + 24 < pt.x))
-		return false;
-
-	if ((_stationPos.y > pt.y) || (_stationPos.y + 24 < pt.y))
-		return false;
-
-	return true;
-}
-
-Scene1337::GameBoardSide::GameBoardSide() {
-	_card1Pos = Common::Point(0, 0);
-	_card2Pos = Common::Point(0, 0);
-	_card3Pos = Common::Point(0, 0);
-	_card4Pos = Common::Point(0, 0);
-	_frameNum = 0;
-}
-
-void Scene1337::GameBoardSide::synchronize(Serializer &s) {
-	SceneHotspot::synchronize(s);
-
-	for (int i = 0; i < 4; i++)
-		_handCard[i].synchronize(s);
-
-	for (int i = 0; i < 8; i++)
-		_outpostStation[i].synchronize(s);
-
-	_delayCard.synchronize(s);
-	_emptyStationPos.synchronize(s);
-
-	s.syncAsSint16LE(_card1Pos.x);
-	s.syncAsSint16LE(_card1Pos.y);
-	s.syncAsSint16LE(_card2Pos.x);
-	s.syncAsSint16LE(_card2Pos.y);
-	s.syncAsSint16LE(_card3Pos.x);
-	s.syncAsSint16LE(_card3Pos.y);
-	s.syncAsSint16LE(_card4Pos.x);
-	s.syncAsSint16LE(_card4Pos.y);
-	s.syncAsSint16LE(_frameNum);
-}
-
-Scene1337::Scene1337() {
-	_autoplay = false;
-	_cardsAvailableNumb = 0;
-	_currentDiscardIndex = 0;
-
-	for (int i = 0; i < 100; i++)
-		_availableCardsPile[i] = 0;
-
-	_shuffleEndedFl = false;
-	_currentPlayerNumb = 0;
-	_actionPlayerIdx = 0;
-	_actionVictimIdx = 0;
-	_showPlayerTurn = false;
-	_displayHelpFl = false;
-	_winnerId = -1;
-	_instructionsDisplayedFl = false;
-	_instructionsWaitCount = 0;
-
-	_delayedFunction = nullptr;
-	_actionCard1 = nullptr;
-	_actionCard2 = nullptr;
-	_actionCard3 = nullptr;
-
-	_cursorCurRes = 0;
-	_cursorCurStrip = 0;
-	_cursorCurFrame = 0;
-}
-
-void Scene1337::synchronize(Serializer &s) {
-	_actionCard1->synchronize(s);
-	_actionCard2->synchronize(s);
-	_actionCard3->synchronize(s);
-	_animatedCard.synchronize(s);
-	_shuffleAnimation.synchronize(s);
-	_discardedPlatformCard.synchronize(s);
-	_selectedCard.synchronize(s);
-	_discardPile.synchronize(s);
-	_stockCard.synchronize(s);
-	_aSound1.synchronize(s);
-	_aSound2.synchronize(s);
-	_helpIcon.synchronize(s);
-	_stockPile.synchronize(s);
-	_actionItem.synchronize(s);
-	_currentPlayerArrow.synchronize(s);
-
-	for (int i = 0; i < 4; i++)
-		_gameBoardSide[i].synchronize(s);
-
-	for (int i = 0; i < 8; i++) {
-		_upperDisplayCard[i].synchronize(s);
-		_lowerDisplayCard[i].synchronize(s);
-	}
-
-	// TODO s.syncPointer(_delayedFunction);
-	s.syncAsByte(_autoplay);
-	s.syncAsByte(_shuffleEndedFl);
-	s.syncAsByte(_showPlayerTurn);
-	s.syncAsByte(_displayHelpFl);
-	s.syncAsByte(_instructionsDisplayedFl);
-	s.syncAsSint16LE(_currentDiscardIndex);
-	s.syncAsSint16LE(_cardsAvailableNumb);
-	s.syncAsSint16LE(_currentPlayerNumb);
-	s.syncAsSint16LE(_actionPlayerIdx);
-	s.syncAsSint16LE(_actionVictimIdx);
-	s.syncAsSint16LE(_winnerId);
-	s.syncAsSint16LE(_instructionsWaitCount);
-	s.syncAsSint16LE(_cursorCurRes);
-	s.syncAsSint16LE(_cursorCurStrip);
-	s.syncAsSint16LE(_cursorCurFrame);
-
-	for (int i = 0; i < 100; i++)
-		s.syncAsSint16LE(_availableCardsPile[i]);
-
-}
-
-void Scene1337::Action1337::waitFrames(int32 frameCount) {
-	uint32 firstFrameNumber = g_globals->_events.getFrameNumber();
-	uint32 curFrame = firstFrameNumber;
-	uint32 destFrame = firstFrameNumber + frameCount;
-
-	while ((curFrame < destFrame) && !g_vm->shouldQuit()) {
-		TsAGE::Event event;
-		g_globals->_events.getEvent(event);
-		curFrame = g_globals->_events.getFrameNumber();
-	}
-
-	// CHECKME: The original is calling _eventManager.waitEvent();
-}
-
-/**
- * Display instructions
- */
-void Scene1337::Action1::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 1: {
-		scene->actionDisplay(1331, 6, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		R2_GLOBALS._sceneObjects->draw();
-		scene->actionDisplay(1331, 7, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		scene->actionDisplay(1331, 8, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_gameBoardSide[1]._outpostStation[0]._cardId = 2;
-		scene->_gameBoardSide[1]._outpostStation[0]._card.postInit();
-		scene->_gameBoardSide[1]._outpostStation[0]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[1]._outpostStation[0]._stationPos, 0);
-		scene->_gameBoardSide[1]._outpostStation[0]._card.setStrip(2);
-		scene->_gameBoardSide[1]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[1]._outpostStation[0]._cardId);
-		scene->_gameBoardSide[1]._outpostStation[0]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[1]._outpostStation[0]);
-
-		scene->_gameBoardSide[1]._outpostStation[1]._cardId = 3;
-		scene->_gameBoardSide[1]._outpostStation[1]._card.postInit();
-		scene->_gameBoardSide[1]._outpostStation[1]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[1]._outpostStation[1]._stationPos, 0);
-		scene->_gameBoardSide[1]._outpostStation[1]._card.setStrip(2);
-		scene->_gameBoardSide[1]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[1]._outpostStation[1]._cardId);
-		scene->_gameBoardSide[1]._outpostStation[1]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[1]._outpostStation[1]);
-
-		scene->_gameBoardSide[2]._outpostStation[0]._cardId = 4;
-		scene->_gameBoardSide[2]._outpostStation[0]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[0]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[0]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[0]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[0]._cardId);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[0]);
-
-		scene->_gameBoardSide[3]._outpostStation[0]._cardId = 5;
-		scene->_gameBoardSide[3]._outpostStation[0]._card.postInit();
-		scene->_gameBoardSide[3]._outpostStation[0]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[0]._stationPos, 0);
-		scene->_gameBoardSide[3]._outpostStation[0]._card.setStrip(2);
-		scene->_gameBoardSide[3]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[0]._cardId);
-		scene->_gameBoardSide[3]._outpostStation[0]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[0]);
-
-		scene->_gameBoardSide[3]._outpostStation[1]._cardId = 6;
-		scene->_gameBoardSide[3]._outpostStation[1]._card.postInit();
-		scene->_gameBoardSide[3]._outpostStation[1]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[1]._stationPos, 0);
-		scene->_gameBoardSide[3]._outpostStation[1]._card.setStrip(2);
-		scene->_gameBoardSide[3]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[1]._cardId);
-		scene->_gameBoardSide[3]._outpostStation[1]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[1]);
-
-		scene->_gameBoardSide[3]._outpostStation[2]._cardId = 7;
-		scene->_gameBoardSide[3]._outpostStation[2]._card.postInit();
-		scene->_gameBoardSide[3]._outpostStation[2]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._outpostStation[2]._card.setPosition(scene->_gameBoardSide[3]._outpostStation[2]._stationPos, 0);
-		scene->_gameBoardSide[3]._outpostStation[2]._card.setStrip(2);
-		scene->_gameBoardSide[3]._outpostStation[2]._card.setFrame(scene->_gameBoardSide[3]._outpostStation[2]._cardId);
-		scene->_gameBoardSide[3]._outpostStation[2]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[3]._outpostStation[2]);
-
-		scene->_gameBoardSide[0]._outpostStation[0]._cardId = 8;
-		scene->_gameBoardSide[0]._outpostStation[0]._card.postInit();
-		scene->_gameBoardSide[0]._outpostStation[0]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._outpostStation[0]._card.setPosition(scene->_gameBoardSide[0]._outpostStation[0]._stationPos, 0);
-		scene->_gameBoardSide[0]._outpostStation[0]._card.setStrip(2);
-		scene->_gameBoardSide[0]._outpostStation[0]._card.setFrame(scene->_gameBoardSide[0]._outpostStation[0]._cardId);
-		scene->_gameBoardSide[0]._outpostStation[0]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[0]._outpostStation[0]);
-
-		scene->_gameBoardSide[0]._outpostStation[1]._cardId = 9;
-		scene->_gameBoardSide[0]._outpostStation[1]._card.postInit();
-		scene->_gameBoardSide[0]._outpostStation[1]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[0]._outpostStation[1]._stationPos, 0);
-		scene->_gameBoardSide[0]._outpostStation[1]._card.setStrip(2);
-		scene->_gameBoardSide[0]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[0]._outpostStation[1]._cardId);
-		scene->_gameBoardSide[0]._outpostStation[1]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[0]._outpostStation[1]);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(60);
-		scene->actionDisplay(1331, 9, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_gameBoardSide[2]._outpostStation[1]._cardId = 2;
-		scene->_gameBoardSide[2]._outpostStation[1]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[1]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
-
-		scene->_gameBoardSide[2]._outpostStation[2]._cardId = 3;
-		scene->_gameBoardSide[2]._outpostStation[2]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[2]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[2]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[2]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[2]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[2]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[2]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[2]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[2]);
-
-		scene->_gameBoardSide[2]._outpostStation[3]._cardId = 5;
-		scene->_gameBoardSide[2]._outpostStation[3]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[3]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[3]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[3]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[3]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[3]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[3]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[3]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[3]);
-
-		scene->_gameBoardSide[2]._outpostStation[4]._cardId = 6;
-		scene->_gameBoardSide[2]._outpostStation[4]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[4]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[4]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[4]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[4]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[4]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[4]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[4]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[4]);
-
-		scene->_gameBoardSide[2]._outpostStation[5]._cardId = 7;
-		scene->_gameBoardSide[2]._outpostStation[5]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[5]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[5]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[5]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[5]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[5]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[5]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[5]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[5]);
-
-		scene->_gameBoardSide[2]._outpostStation[6]._cardId = 8;
-		scene->_gameBoardSide[2]._outpostStation[6]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[6]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[6]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[6]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[6]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[6]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[6]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[6]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[6]);
-
-		scene->_gameBoardSide[2]._outpostStation[7]._cardId = 9;
-		scene->_gameBoardSide[2]._outpostStation[7]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[7]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[7]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[7]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[7]._card.setStrip(2);
-		scene->_gameBoardSide[2]._outpostStation[7]._card.setFrame(scene->_gameBoardSide[2]._outpostStation[7]._cardId);
-		scene->_gameBoardSide[2]._outpostStation[7]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[7]);
-
-		scene->_aSound1.play(62);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(120);
-		scene->_gameBoardSide[2]._outpostStation[0]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[1]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[2]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[3]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[4]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[5]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[6]._card.remove();
-		scene->_gameBoardSide[2]._outpostStation[7]._card.remove();
-
-		scene->_gameBoardSide[1]._outpostStation[0]._card.remove();
-		scene->_gameBoardSide[1]._outpostStation[1]._card.remove();
-
-		scene->_gameBoardSide[3]._outpostStation[0]._card.remove();
-		scene->_gameBoardSide[3]._outpostStation[1]._card.remove();
-		scene->_gameBoardSide[3]._outpostStation[2]._card.remove();
-
-		scene->_gameBoardSide[0]._outpostStation[0]._card.remove();
-		scene->_gameBoardSide[0]._outpostStation[1]._card.remove();
-
-		scene->_stockPile.setup(1332, 5, 1);
-		scene->_stockPile.setPosition(Common::Point(162, 95));
-		scene->_stockPile.setPriority(110);
-		scene->_stockPile._effect = EFFECT_SHADED;
-		scene->_stockPile.show();
-
-		scene->_gameBoardSide[1]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[0]._card.setPosition(scene->_gameBoardSide[1]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[0]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[0]._card.fixPriority(170);
-
-		scene->_gameBoardSide[1]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[1]._card.setPosition(scene->_gameBoardSide[1]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[1]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[1]._card.fixPriority(170);
-
-		scene->_gameBoardSide[1]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[2]._card.setPosition(scene->_gameBoardSide[1]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[2]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[2]._card.fixPriority(170);
-
-		scene->_gameBoardSide[2]._handCard[0]._cardId = 30;
-		scene->_gameBoardSide[2]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[0]._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[2]._handCard[0]._card.setFrame(2);
-		scene->_gameBoardSide[2]._handCard[0]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[0]);
-
-		scene->_gameBoardSide[2]._handCard[1]._cardId = 16;
-		scene->_gameBoardSide[2]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[1]._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[2]._handCard[1]._card.setFrame(2);
-		scene->_gameBoardSide[2]._handCard[1]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[1]);
-
-		scene->_gameBoardSide[2]._handCard[2]._cardId = 1;
-		scene->_gameBoardSide[2]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[2]._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[2]._handCard[2]._card.setFrame(2);
-		scene->_gameBoardSide[2]._handCard[2]._card.fixPriority(170);
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[2]);
-
-		scene->_gameBoardSide[3]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[0]._card.setPosition(scene->_gameBoardSide[3]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[3]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[0]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[0]._card.fixPriority(170);
-
-		scene->_gameBoardSide[3]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[1]._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[3]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[1]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[1]._card.fixPriority(170);
-
-		scene->_gameBoardSide[3]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[2]._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[3]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[2]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[2]._card.fixPriority(170);
-
-		scene->_gameBoardSide[0]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[0]._card.setPosition(scene->_gameBoardSide[0]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[0]._handCard[0]._card.setFrame(2);
-		scene->_gameBoardSide[0]._handCard[0]._card.fixPriority(170);
-
-		scene->_gameBoardSide[0]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[1]._card.setPosition(scene->_gameBoardSide[0]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[0]._handCard[1]._card.setFrame(2);
-		scene->_gameBoardSide[0]._handCard[1]._card.fixPriority(170);
-
-		scene->_gameBoardSide[0]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[2]._card.setPosition(scene->_gameBoardSide[0]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[0]._handCard[2]._card.setFrame(2);
-		scene->_gameBoardSide[0]._handCard[2]._card.fixPriority(170);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		scene->actionDisplay(1331, 10, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
-		scene->_animatedCard._card.show();
-		scene->_aSound2.play(61);
-
-		Common::Point pt(91, 174);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-		}
-		break;
-	case 2: {
-		scene->_gameBoardSide[2]._handCard[3]._cardId = 2;
-		scene->_gameBoardSide[2]._handCard[3]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[3]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[3]._card.setPosition(scene->_gameBoardSide[2]._handCard[3]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[3]._card.setStrip(1);
-		scene->_gameBoardSide[2]._handCard[3]._card.setFrame(2);
-		scene->_gameBoardSide[2]._handCard[3]._card.fixPriority(170);
-
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._handCard[3]);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(60);
-		scene->actionDisplay(1331, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		scene->actionDisplay(1331, 12, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_gameBoardSide[2]._outpostStation[1]._cardId = 1;
-		scene->_gameBoardSide[2]._outpostStation[1]._card.postInit();
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
-		scene->_gameBoardSide[2]._outpostStation[1]._card.hide();
-
-		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[2]._card._strip);
-		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._card._frame);
-		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
-
-		scene->_gameBoardSide[2]._handCard[2]._cardId = 0;
-		scene->_gameBoardSide[2]._handCard[2]._card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._outpostStation[1]._stationPos, this);
-		}
-		break;
-	case 3: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
-		scene->_aSound1.play(59);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(60);
-		scene->actionDisplay(1331, 13, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_gameBoardSide[2]._outpostStation[1]._cardId = scene->_gameBoardSide[2]._handCard[3]._cardId;
-
-		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[3]._card._strip);
-		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[3]._card._frame);
-
-		scene->_gameBoardSide[2]._handCard[3]._cardId = 0;
-		scene->_gameBoardSide[2]._handCard[3]._card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[3]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._outpostStation[1]._stationPos, this);
-		}
-		break;
-	case 4: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._outpostStation[1]);
-		scene->_aSound1.play(59);
-
-		scene->_discardPile._cardId = 1;
-		scene->_discardPile._card.hide();
-
-		scene->_animatedCard._card.setStrip(5);
-		scene->_animatedCard._card.setFrame(1);
-		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._outpostStation[1]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
-		}
-		break;
-	case 5: {
-		scene->_animatedCard._card.hide();
-
-		scene->_discardPile._card.postInit();
-		scene->_discardPile._card.setVisage(1332);
-		scene->_discardPile._card.setPosition(scene->_discardPile._stationPos, 0);
-		scene->setAnimationInfo(&scene->_discardPile);
-		scene->_aSound2.play(61);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(60);
-		scene->actionDisplay(1331, 14, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_gameBoardSide[2]._delayCard._card.postInit();
-		scene->_gameBoardSide[2]._delayCard._card.setVisage(1332);
-		scene->_gameBoardSide[2]._delayCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
-		scene->_gameBoardSide[2]._delayCard._card.hide();
-
-		scene->_gameBoardSide[3]._handCard[2]._cardId = 0;
-		scene->_gameBoardSide[3]._handCard[2].remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
-		}
-		break;
-	case 6: {
-		scene->_animatedCard._card.hide();
-		scene->_gameBoardSide[2]._delayCard._cardId = 21;
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._delayCard);
-		scene->_aSound1.play(57);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(60);
-		scene->actionDisplay(1331, 15, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		int tmpVal = 15;
-		int i = -1;
-
-		for (i = 0; i <= 7; i++) {
-			tmpVal += 29;
-
-			scene->_upperDisplayCard[i].postInit();
-			scene->_upperDisplayCard[i].setVisage(1332);
-			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 90), 0);
-			scene->_upperDisplayCard[i].setStrip(3);
-			scene->_upperDisplayCard[i].fixPriority(190);
-
-			scene->_lowerDisplayCard[i].postInit();
-			scene->_lowerDisplayCard[i].setVisage(1332);
-			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 90), 0);
-			scene->_lowerDisplayCard[i].setStrip(7);
-			scene->_lowerDisplayCard[i].setFrame(1);
-			scene->_lowerDisplayCard[i].fixPriority(180);
-		}
-
-		scene->_upperDisplayCard[0].setFrame(1);
-		scene->_upperDisplayCard[1].setFrame(3);
-		scene->_upperDisplayCard[2].setFrame(6);
-		scene->_upperDisplayCard[3].setFrame(8);
-		scene->_upperDisplayCard[4].setFrame(9);
-		scene->_upperDisplayCard[5].setFrame(10);
-		scene->_upperDisplayCard[6].setFrame(11);
-		scene->_upperDisplayCard[7].setFrame(12);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(240);
-
-		scene->_upperDisplayCard[0].remove();
-		scene->_upperDisplayCard[1].remove();
-		scene->_upperDisplayCard[2].remove();
-		scene->_upperDisplayCard[3].remove();
-		scene->_upperDisplayCard[4].remove();
-		scene->_upperDisplayCard[5].remove();
-		scene->_upperDisplayCard[6].remove();
-		scene->_upperDisplayCard[7].remove();
-
-		scene->_lowerDisplayCard[0].remove();
-		scene->_lowerDisplayCard[1].remove();
-		scene->_lowerDisplayCard[2].remove();
-		scene->_lowerDisplayCard[3].remove();
-		scene->_lowerDisplayCard[4].remove();
-		scene->_lowerDisplayCard[5].remove();
-		scene->_lowerDisplayCard[6].remove();
-		scene->_lowerDisplayCard[7].remove();
-
-		scene->_discardPile._cardId = scene->_gameBoardSide[2]._delayCard._cardId;
-
-		scene->_gameBoardSide[2]._delayCard._cardId = 0;
-		scene->_gameBoardSide[2]._delayCard._card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
-		}
-		break;
-	case 7: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_discardPile);
-		scene->_aSound2.play(61);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		scene->_gameBoardSide[2]._delayCard._card.postInit();
-		scene->_gameBoardSide[2]._delayCard._card.setVisage(1332);
-		scene->_gameBoardSide[2]._delayCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
-		scene->_gameBoardSide[2]._delayCard._card.hide();
-
-		scene->_gameBoardSide[3]._handCard[1]._cardId = 0;
-		scene->_gameBoardSide[3]._handCard[1].remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
-		}
-		break;
-	case 8: {
-		scene->_animatedCard._card.hide();
-		scene->_gameBoardSide[2]._delayCard._cardId = 14;
-		scene->setAnimationInfo(&scene->_gameBoardSide[2]._delayCard);
-		scene->_aSound1.play(57);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		scene->actionDisplay(1331, 16, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		int tmpVal = 72;
-		int i = -1;
-
-		for (i = 0; i <= 3; i++) {
-			tmpVal += 29;
-			scene->_upperDisplayCard[i].postInit();
-			scene->_upperDisplayCard[i].setVisage(1332);
-			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 71), 0);
-			scene->_upperDisplayCard[i].setStrip(3);
-			scene->_upperDisplayCard[i].fixPriority(190);
-
-			scene->_lowerDisplayCard[i].postInit();
-			scene->_lowerDisplayCard[i].setVisage(1332);
-			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 71), 0);
-			scene->_lowerDisplayCard[i].setStrip(7);
-			scene->_lowerDisplayCard[i].setFrame(1);
-			scene->_lowerDisplayCard[i].fixPriority(180);
-		}
-
-		scene->_upperDisplayCard[0].setFrame(2);
-		scene->_upperDisplayCard[1].setFrame(5);
-		scene->_upperDisplayCard[2].setFrame(7);
-		scene->_upperDisplayCard[3].setFrame(15);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(240);
-		scene->actionDisplay(1331, 17, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		tmpVal = 72;
-		for (i = 4; i <= 7; i++) {
-			tmpVal += 29;
-
-			scene->_upperDisplayCard[i].postInit();
-			scene->_upperDisplayCard[i].setVisage(1332);
-			scene->_upperDisplayCard[i].setPosition(Common::Point(tmpVal, 100), 0);
-			scene->_upperDisplayCard[i].setStrip(4);
-			scene->_upperDisplayCard[i].fixPriority(190);
-
-			scene->_lowerDisplayCard[i].postInit();
-			scene->_lowerDisplayCard[i].setVisage(1332);
-			scene->_lowerDisplayCard[i].setPosition(Common::Point(tmpVal, 100), 0);
-			scene->_lowerDisplayCard[i].setStrip(7);
-			scene->_lowerDisplayCard[i].setFrame(1);
-			scene->_lowerDisplayCard[i].fixPriority(180);
-		}
-
-		scene->_upperDisplayCard[4].setFrame(1);
-		scene->_upperDisplayCard[5].setFrame(5);
-		scene->_upperDisplayCard[6].setFrame(7);
-		scene->_upperDisplayCard[7].setFrame(3);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(240);
-
-		scene->_upperDisplayCard[0].remove();
-		scene->_upperDisplayCard[1].remove();
-		scene->_upperDisplayCard[2].remove();
-		scene->_upperDisplayCard[3].remove();
-		scene->_upperDisplayCard[4].remove();
-		scene->_upperDisplayCard[5].remove();
-		scene->_upperDisplayCard[6].remove();
-		scene->_upperDisplayCard[7].remove();
-
-		scene->_lowerDisplayCard[0].remove();
-		scene->_lowerDisplayCard[1].remove();
-		scene->_lowerDisplayCard[2].remove();
-		scene->_lowerDisplayCard[3].remove();
-		scene->_lowerDisplayCard[4].remove();
-		scene->_lowerDisplayCard[5].remove();
-		scene->_lowerDisplayCard[6].remove();
-		scene->_lowerDisplayCard[7].remove();
-
-		scene->_discardPile._cardId = scene->_gameBoardSide[2]._handCard[0]._cardId;
-
-		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[0]._card._strip);
-		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._card._frame);
-		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
-
-		scene->_gameBoardSide[2]._handCard[0]._cardId = 0;
-		scene->_gameBoardSide[2]._handCard[0]._card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[2]._delayCard._stationPos, this);
-		}
-		break;
-	case 9: {
-		scene->_aSound1.play(58);
-		scene->_gameBoardSide[2]._delayCard._cardId = 0;
-		scene->_gameBoardSide[2]._delayCard.remove();
-		scene->_animatedCard._card.setStrip(5);
-		scene->_animatedCard._card.setFrame(1);
-		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._delayCard._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
-		}
-		break;
-	case 10: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_discardPile);
-		scene->_aSound2.play(61);
-
-		R2_GLOBALS._sceneObjects->draw();
-		scene->actionDisplay(1331, 18, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		scene->_upperDisplayCard[0].postInit();
-		scene->_upperDisplayCard[0].setVisage(1332);
-		scene->_upperDisplayCard[0].setPosition(Common::Point(131, 71), 0);
-		scene->_upperDisplayCard[0].fixPriority(190);
-		scene->_upperDisplayCard[0].setStrip(3);
-		scene->_upperDisplayCard[0].setFrame(4);
-
-		scene->_lowerDisplayCard[0].postInit();
-		scene->_lowerDisplayCard[0].setVisage(1332);
-		scene->_lowerDisplayCard[0].setPosition(Common::Point(131, 71), 0);
-		scene->_lowerDisplayCard[0].setStrip(7);
-		scene->_lowerDisplayCard[0].setFrame(1);
-		scene->_lowerDisplayCard[0].fixPriority(180);
-
-		scene->_upperDisplayCard[1].postInit();
-		scene->_upperDisplayCard[1].setVisage(1332);
-		scene->_upperDisplayCard[1].setPosition(Common::Point(160, 71), 0);
-		scene->_upperDisplayCard[1].fixPriority(190);
-		scene->_upperDisplayCard[1].setStrip(3);
-		scene->_upperDisplayCard[1].setFrame(16);
-
-		scene->_lowerDisplayCard[1].postInit();
-		scene->_lowerDisplayCard[1].setVisage(1332);
-		scene->_lowerDisplayCard[1].setPosition(Common::Point(160, 71), 0);
-		scene->_lowerDisplayCard[1].setStrip(7);
-		scene->_lowerDisplayCard[1].setFrame(1);
-		scene->_lowerDisplayCard[1].fixPriority(180);
-
-		scene->_upperDisplayCard[2].postInit();
-		scene->_upperDisplayCard[2].setVisage(1332);
-		scene->_upperDisplayCard[2].setPosition(Common::Point(131, 100), 0);
-		scene->_upperDisplayCard[2].fixPriority(190);
-		scene->_upperDisplayCard[2].setStrip(4);
-		scene->_upperDisplayCard[2].setFrame(4);
-
-		scene->_lowerDisplayCard[2].postInit();
-		scene->_lowerDisplayCard[2].setVisage(1332);
-		scene->_lowerDisplayCard[2].setPosition(Common::Point(131, 100), 0);
-		scene->_lowerDisplayCard[2].setStrip(7);
-		scene->_lowerDisplayCard[2].setFrame(1);
-		scene->_lowerDisplayCard[2].fixPriority(180);
-
-		scene->_upperDisplayCard[3].postInit();
-		scene->_upperDisplayCard[3].setVisage(1332);
-		scene->_upperDisplayCard[3].setPosition(Common::Point(160, 100), 0);
-		scene->_upperDisplayCard[3].fixPriority(190);
-		scene->_upperDisplayCard[3].setStrip(4);
-		scene->_upperDisplayCard[3].setFrame(2);
-
-		scene->_lowerDisplayCard[3].postInit();
-		scene->_lowerDisplayCard[3].setVisage(1332);
-		scene->_lowerDisplayCard[3].setPosition(Common::Point(160, 100), 0);
-		scene->_lowerDisplayCard[3].setStrip(7);
-		scene->_lowerDisplayCard[3].setFrame(1);
-		scene->_lowerDisplayCard[3].fixPriority(180);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		waitFrames(240);
-
-		scene->_upperDisplayCard[0].remove();
-		scene->_upperDisplayCard[1].remove();
-		scene->_upperDisplayCard[2].remove();
-		scene->_upperDisplayCard[3].remove();
-
-		scene->_lowerDisplayCard[0].remove();
-		scene->_lowerDisplayCard[1].remove();
-		scene->_lowerDisplayCard[2].remove();
-		scene->_lowerDisplayCard[3].remove();
-
-		scene->_currentPlayerArrow.setFrame(1);
-		scene->_currentPlayerArrow.show();
-		scene->_currentPlayerArrow.animate(ANIM_MODE_2, NULL);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		scene->actionDisplay(1331, 19, 159, 10, 1, 220, 0, 7, 0, 154, 154);
-
-		scene->_currentPlayerArrow.hide();
-
-		scene->actionDisplay(1331, 20, 159, 10, 1, 220, 0, 7, 0, 154, 154);
-		scene->actionDisplay(1331, 21, 159, 10, 1, 220, 0, 7, 0, 154, 154);
-
-		scene->_discardPile._cardId = scene->_gameBoardSide[2]._handCard[1]._cardId;
-
-		scene->_animatedCard._card.setStrip(scene->_gameBoardSide[2]._handCard[1]._card._strip);
-		scene->_animatedCard._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._card._frame);
-		scene->_animatedCard._card.animate(ANIM_MODE_NONE, NULL);
-
-		scene->_gameBoardSide[2]._handCard[1]._cardId = 0;
-		scene->_gameBoardSide[2]._handCard[1]._card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_discardPile._stationPos, this);
-		}
-		break;
-	case 11: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_discardPile);
-		scene->_aSound2.play(61);
-		scene->_animatedCard._card.setStrip(5);
-		scene->_animatedCard._card.setFrame(1);
-		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
-
-		R2_GLOBALS._sceneObjects->draw();
-
-		scene->actionDisplay(1331, 22, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		int i = -1;
-		for (i = 0; i <= 3; i ++) {
-			scene->_gameBoardSide[3]._handCard[i]._cardId = 0;
-			scene->_gameBoardSide[3]._handCard[i]._card.remove();
-
-			scene->_gameBoardSide[2]._handCard[i]._cardId = 0;
-			scene->_gameBoardSide[2]._handCard[i]._card.remove();
-
-			scene->_gameBoardSide[0]._handCard[i]._cardId = 0;
-			scene->_gameBoardSide[0]._handCard[i]._card.remove();
-
-			scene->_gameBoardSide[1]._handCard[i]._cardId = 0;
-			scene->_gameBoardSide[1]._handCard[i]._card.remove();
-		}
-
-		for (i = 0; i <= 7; i++) {
-			scene->_gameBoardSide[3]._outpostStation[i]._cardId = 0;
-			scene->_gameBoardSide[3]._outpostStation[i]._card.remove();
-
-			scene->_gameBoardSide[2]._outpostStation[i]._cardId = 0;
-			scene->_gameBoardSide[2]._outpostStation[i]._card.remove();
-
-			scene->_gameBoardSide[0]._outpostStation[i]._cardId = 0;
-			scene->_gameBoardSide[0]._outpostStation[i]._card.remove();
-
-			scene->_gameBoardSide[1]._outpostStation[i]._cardId = 0;
-			scene->_gameBoardSide[1]._outpostStation[i]._card.remove();
-		}
-
-		scene->_gameBoardSide[2]._delayCard._cardId = 0;
-		scene->_gameBoardSide[2]._delayCard._card.remove();
-
-		scene->_discardPile._cardId = 0;
-		scene->_discardPile._card.remove();
-
-		scene->_stockPile.remove();
-		}
-	// No break on purpose
-	case 0:
-		R2_GLOBALS._sceneObjects->draw();
-		signal();
-		break;
-	case 12:
-		scene->suggestInstructions();
-		remove();
-		break;
-	default:
-		break;
-	}
-}
-
-/**
- * Shuffle cards animation
- */
-void Scene1337::Action2::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0:
-		scene->_shuffleAnimation._card.postInit();
-		scene->_shuffleAnimation._card.setVisage(1332);
-		scene->_shuffleAnimation._card.setStrip(8);
-		scene->_shuffleAnimation._card.setFrame(1);
-		scene->_shuffleAnimation._card.fixPriority(300);
-		scene->_shuffleAnimation._card.setPosition(Common::Point(156, 108));
-
-		scene->_discardPile._card.remove();
-		scene->_discardPile._cardId = 0;
-
-		scene->_aSound1.play(60);
-		scene->_shuffleAnimation._card.animate(ANIM_MODE_5, this);
-		break;
-	case 1:
-		scene->_shuffleAnimation._card.setFrame(1);
-
-		scene->_aSound1.play(60);
-		scene->_shuffleAnimation._card.animate(ANIM_MODE_5, this);
-		break;
-	case 2: {
-		Common::Point pt(156, 108);
-		NpcMover *mover = new NpcMover();
-		scene->_shuffleAnimation._card.addMover(mover, &pt, this);
-		}
-		break;
-	case 3:
-		scene->_shuffleAnimation._card.remove();
-		scene->_stockPile.setup(1332, 5, 1);
-		scene->_stockPile.setPosition(Common::Point(162, 95));
-		scene->_stockPile.setPriority(110);
-		scene->_stockPile._effect = EFFECT_SHADED;
-		scene->_stockPile.show();
-		scene->_shuffleEndedFl = true;
-		break;
-	default:
-		break;
-	}
-}
-
-/**
- * Deal cards
- */
-void Scene1337::Action3::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_animatedCard._card._moveDiff = Common::Point(30, 30);
-		scene->_animatedCard._card.setVisage(1332);
-		scene->_animatedCard._card.setStrip(5);
-		scene->_animatedCard._card.setFrame(1);
-		scene->_animatedCard._card.fixPriority(400);
-		scene->_animatedCard._card.animate(ANIM_MODE_2, NULL);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(283, 146);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_animatedCard._card.show();
-		scene->_gameBoardSide[1]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 1: {
-		scene->_gameBoardSide[1]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[0]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[1]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[0]._card.setPosition(scene->_gameBoardSide[1]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[0]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[0]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(10, 174);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[2]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 2: {
-		scene->_gameBoardSide[2]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[0]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[2]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[0]._card.setPosition(scene->_gameBoardSide[2]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[0]._card.fixPriority(170);
-		if (scene->_gameBoardSide[2]._handCard[0]._cardId > 25) {
-			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(4);
-			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId - 25);
-		} else if (scene->_gameBoardSide[2]._handCard[0]._cardId > 9) {
-			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(3);
-			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId - 9);
-		} else {
-			scene->_gameBoardSide[2]._handCard[0]._card.setStrip(2);
-			scene->_gameBoardSide[2]._handCard[0]._card.setFrame(scene->_gameBoardSide[2]._handCard[0]._cardId);
-		}
-		scene->_aSound2.play(61);
-
-		Common::Point pt(14, 14);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[3]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 3: {
-		scene->_gameBoardSide[3]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[0]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[3]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[0]._card.setPosition(scene->_gameBoardSide[3]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[3]._handCard[0]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[0]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[0]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(280, 5);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[0]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 4: {
-		scene->_gameBoardSide[0]._handCard[0]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[0]._card._moveDiff = Common::Point(30,30);
-		scene->_gameBoardSide[0]._handCard[0]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[0]._card.setPosition(scene->_gameBoardSide[0]._handCard[0]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[0]._card.setStrip(5);
-		scene->_gameBoardSide[0]._handCard[0]._card.setFrame(1);
-		scene->_gameBoardSide[0]._handCard[0]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(283, 124);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[1]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 5: {
-		scene->_gameBoardSide[1]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[1]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[1]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[1]._card.setPosition(scene->_gameBoardSide[1]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[1]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[1]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(37, 174);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[2]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 6: {
-		scene->_gameBoardSide[2]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[1]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[2]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[1]._card.setPosition(scene->_gameBoardSide[2]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[1]._card.fixPriority(170);
-
-		if (scene->_gameBoardSide[2]._handCard[1]._cardId > 25) {
-			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(4);
-			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId - 25);
-		} else if (scene->_gameBoardSide[2]._handCard[1]._cardId > 9) {
-			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(3);
-			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId - 9);
-		} else {
-			scene->_gameBoardSide[2]._handCard[1]._card.setStrip(2);
-			scene->_gameBoardSide[2]._handCard[1]._card.setFrame(scene->_gameBoardSide[2]._handCard[1]._cardId);
-		}
-
-		scene->_aSound2.play(61);
-
-		Common::Point pt(14, 36);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[3]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 7: {
-		scene->_gameBoardSide[3]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[1]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[3]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[1]._card.setPosition(scene->_gameBoardSide[3]._handCard[1]._stationPos);
-		scene->_gameBoardSide[3]._handCard[1]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[1]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[1]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(253, 5);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[0]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 8: {
-		scene->_gameBoardSide[0]._handCard[1]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[1]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[0]._handCard[1]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[1]._card.setPosition(scene->_gameBoardSide[0]._handCard[1]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[1]._card.setStrip(5);
-		scene->_gameBoardSide[0]._handCard[1]._card.setFrame(1);
-		scene->_gameBoardSide[0]._handCard[1]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(283, 102);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[1]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 9: {
-		scene->_gameBoardSide[1]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[1]._handCard[2]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[1]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[1]._handCard[2]._card.setPosition(scene->_gameBoardSide[1]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[1]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[1]._handCard[2]._card.setFrame(4);
-		scene->_gameBoardSide[1]._handCard[2]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(64, 174);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[2]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 10: {
-		scene->_gameBoardSide[2]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[2]._handCard[2]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[2]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[2]._handCard[2]._card.setPosition(scene->_gameBoardSide[2]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[2]._handCard[2]._card.fixPriority(170);
-
-		if (scene->_gameBoardSide[2]._handCard[2]._cardId > 25) {
-			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(4);
-			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId - 25);
-		} else if (scene->_gameBoardSide[2]._handCard[2]._cardId > 9) {
-			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(3);
-			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId - 9);
-		} else {
-			scene->_gameBoardSide[2]._handCard[2]._card.setStrip(2);
-			scene->_gameBoardSide[2]._handCard[2]._card.setFrame(scene->_gameBoardSide[2]._handCard[2]._cardId);
-		}
-
-		scene->_aSound2.play(61);
-
-		Common::Point pt(14, 58);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[3]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 11: {
-		scene->_gameBoardSide[3]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[3]._handCard[2]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[3]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[3]._handCard[2]._card.setPosition(scene->_gameBoardSide[3]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[3]._handCard[2]._card.setStrip(1);
-		scene->_gameBoardSide[3]._handCard[2]._card.setFrame(3);
-		scene->_gameBoardSide[3]._handCard[2]._card.fixPriority(170);
-		scene->_aSound2.play(61);
-
-		Common::Point pt(226, 5);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-
-		scene->_gameBoardSide[0]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-		}
-		break;
-	case 12:
-		scene->_gameBoardSide[0]._handCard[2]._card.postInit();
-		scene->_gameBoardSide[0]._handCard[2]._card._moveDiff = Common::Point(30, 30);
-		scene->_gameBoardSide[0]._handCard[2]._card.setVisage(1332);
-		scene->_gameBoardSide[0]._handCard[2]._card.setPosition(scene->_gameBoardSide[0]._handCard[2]._stationPos, 0);
-		scene->_gameBoardSide[0]._handCard[2]._card.setStrip(5);
-		scene->_gameBoardSide[0]._handCard[2]._card.setFrame(1);
-		scene->_gameBoardSide[0]._handCard[2]._card.fixPriority(170);
-		scene->_animatedCard._card.hide();
-	default:
-		break;
-	}
-
-	if (_actionIndex > 12) {
-		scene->_currentPlayerNumb = 0;
-		R2_GLOBALS._sceneObjects->draw();
-		scene->actionDisplay(1330, 0, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		scene->handleNextTurn();
-	} else if (_actionIndex >= 1) {
-		scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
-		scene->_cardsAvailableNumb--;
-	}
-}
-
-/**
- * Action used to handle the other players' turn
- */
-void Scene1337::Action4::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0:
-		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._cardId == 0)
-		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
-			if (scene->_cardsAvailableNumb < 0)
-				scene->shuffleCards();
-			scene->_animatedCard._card.setPosition(Common::Point(162, 95), 0);
-			scene->_animatedCard._card.show();
-			scene->_aSound2.play(61);
-
-			NpcMover *mover = new NpcMover();
-			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos, this);
-
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
-			scene->_cardsAvailableNumb--;
-
-			if (scene->_cardsAvailableNumb < 0)
-				scene->_stockPile.remove();
-		} else {
-			// Self call, forcing next actionIndex
-			signal();
-		}
-		break;
-	case 1:
-		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos.x)
-		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card1Pos.y) ) {
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.postInit();
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card._moveDiff = Common::Point(30, 30);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setVisage(1332);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._stationPos, 0);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setStrip(1);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]._card.fixPriority(170);
-		}
-
-		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
-			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[0]);
-
-		scene->_animatedCard._card.hide();
-		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._cardId == 0)
-		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
-			if (scene->_cardsAvailableNumb < 0)
-				scene->shuffleCards();
-			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
-			scene->_animatedCard._card.show();
-
-			scene->_aSound2.play(61);
-
-			NpcMover *mover = new NpcMover();
-			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos, this);
-
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
-			scene->_cardsAvailableNumb--;
-			if (scene->_cardsAvailableNumb < 0)
-				scene->_stockPile.remove();
-		} else
-			signal();
-		break;
-	case 2:
-		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos.x)
-		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card2Pos.y) ) {
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.postInit();
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card._moveDiff = Common::Point(30, 30);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setVisage(1332);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._stationPos, 0);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setStrip(1);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]._card.fixPriority(170);
-		}
-
-		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
-			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[1]);
-
-		scene->_animatedCard._card.hide();
-		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._cardId == 0)
-		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
-			if (scene->_cardsAvailableNumb < 0)
-				scene->shuffleCards();
-			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
-			scene->_animatedCard._card.show();
-
-			scene->_aSound2.play(61);
-
-			NpcMover *mover = new NpcMover();
-			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos, this);
-
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
-			scene->_cardsAvailableNumb--;
-			if (scene->_cardsAvailableNumb < 0)
-				scene->_stockPile.remove();
-		} else
-			signal();
-		break;
-	case 3:
-		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos.x)
-		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card3Pos.y) ) {
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.postInit();
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card._moveDiff = Common::Point(30, 30);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setVisage(1332);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._stationPos, 0);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setStrip(1);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]._card.fixPriority(170);
-		}
-
-		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
-			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[2]);
-
-		scene->_animatedCard._card.hide();
-		if ( (scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._cardId == 0)
-		  && (!scene->isStationCard(scene->_gameBoardSide[scene->_currentPlayerNumb]._delayCard._cardId))) {
-			if (scene->_cardsAvailableNumb < 0)
-				scene->shuffleCards();
-			scene->_animatedCard._card.setPosition(Common::Point(162, 95));
-			scene->_animatedCard._card.show();
-
-			scene->_aSound2.play(61);
-
-			NpcMover *mover = new NpcMover();
-			scene->_animatedCard._card.addMover(mover, &scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos, this);
-
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._cardId = scene->_availableCardsPile[scene->_cardsAvailableNumb];
-			scene->_availableCardsPile[scene->_cardsAvailableNumb] = 0;
-			scene->_cardsAvailableNumb--;
-			if (scene->_cardsAvailableNumb < 0)
-				scene->_stockPile.remove();
-		} else
-			signal();
-		break;
-	case 4:
-		if ( (scene->_animatedCard._card._position.x == scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos.x)
-		  && (scene->_animatedCard._card._position.y == scene->_gameBoardSide[scene->_currentPlayerNumb]._card4Pos.y) ) {
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.postInit();
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card._moveDiff = Common::Point(30, 30);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setVisage(1332);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setPosition(scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._stationPos, 0);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setStrip(1);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.setFrame(scene->_gameBoardSide[scene->_currentPlayerNumb]._frameNum);
-			scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]._card.fixPriority(170);
-		}
-
-		if ((R2_GLOBALS._debugCardGame) || (scene->_currentPlayerNumb == 2))
-			scene->setAnimationInfo(&scene->_gameBoardSide[scene->_currentPlayerNumb]._handCard[3]);
-
-		scene->_animatedCard._card.hide();
-		switch (scene->_currentPlayerNumb) {
-		case 0:
-			scene->handlePlayer0();
-			break;
-		case 1:
-			scene->handlePlayer1();
-			break;
-		case 2:
-			scene->handleAutoplayPlayer2();
-			break;
-		case 3:
-			scene->handlePlayer3();
-			break;
-		default:
-			break;
-		}
-		break;
-	default:
-		break;
-	}
-}
-
-/**
- * Animations for discarding a card
- */
-void Scene1337::Action5::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard1->_cardId;
-		scene->_currentDiscardIndex--;
-		if (!g_globals->_sceneObjects->contains(&scene->_discardPile._card)) {
-			// The first discarded card makes the pile appear
-			scene->_discardPile._card.postInit();
-			scene->_discardPile._card.hide();
-			scene->_discardPile._card.setVisage(1332);
-			scene->_discardPile._card.setPosition(scene->_discardPile._stationPos, 0);
-			scene->_discardPile._card.fixPriority(170);
-		}
-
-		scene->_discardPile._cardId = scene->_actionCard1->_cardId;
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-		Common::Point pt(128, 95);
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &pt, this);
-		}
-		break;
-	case 1:
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(&scene->_discardPile);
-		scene->_aSound2.play(61);
-		scene->handleNextTurn();
-		break;
-	default:
-		break;
-	}
-}
-
-/**
- * Animations for playing a platform card
- */
-void Scene1337::Action6::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_actionCard2->_cardId = 1;
-		scene->_actionCard2->_card.postInit();
-		scene->_actionCard2->_card.hide();
-		scene->_actionCard2->_card.setVisage(1332);
-		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos);
-		scene->_actionCard2->_card.fixPriority(170);
-
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1:
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(59);
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-		scene->handleNextTurn();
-		break;
-	default:
-		break;
-	}
-}
-
-/**
- * Upgrade platform to station by playing a station card on top of it
- */
-void Scene1337::Action7::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
-
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1:
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(59);
-		scene->_discardedPlatformCard._cardId = 1;
-		scene->_discardedPlatformCard._stationPos = scene->_actionCard2->_stationPos;
-		scene->_discardedPlatformCard._card.postInit();
-		scene->_discardedPlatformCard._card.hide();
-		scene->_discardedPlatformCard._card._flags = OBJFLAG_HIDING;
-
-		scene->discardCard(&scene->_discardedPlatformCard);
-		break;
-	default:
-		break;
-	}
-}
-
-// Remove a delay card
-void Scene1337::Action8::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
-		scene->_currentDiscardIndex--;
-
-		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
-		scene->_actionCard1->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1:
-		scene->_animatedCard._card.hide();
-
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(58);
-		scene->discardCard(scene->_actionCard2);
-		break;
-	default:
-		break;
-	}
-}
-
-// Play delay card
-void Scene1337::Action9::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
-		scene->_actionCard2->_card.postInit();
-		scene->_actionCard2->_card.hide();
-		scene->_actionCard2->_card.setVisage(1332);
-		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos, 0);
-		scene->_actionCard2->_card.fixPriority(170);
-
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1:
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(57);
-
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-
-		scene->handleNextTurn();
-		break;
-	default:
-		break;
-	}
-}
-
-// Play a card on the central outpost.
-// This card is either a counter-trick card or a meteor card
-void Scene1337::Action10::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_actionCard3->_card.postInit();
-		scene->_actionCard3->_card.hide();
-		scene->_actionCard3->_card.setVisage(1332);
-		scene->_actionCard3->_card.setPosition(scene->_actionCard3->_stationPos, 0);
-		scene->_actionCard3->_card.fixPriority(170);
-		scene->_actionCard3->_cardId = scene->_actionCard1->_cardId;
-
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		if (scene->_actionCard1 == &scene->_selectedCard) {
-			scene->setCursorData(5, 1, 4);
-			scene->subC4CEC();
-		}
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard3->_stationPos, this);
-		}
-		break;
-	case 1: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard3);
-		scene->_aSound1.play(57);
-
-		bool found = false;
-		int indexFound = -1;
-
-		switch (scene->_actionPlayerIdx) {
-		case 0:
-			for (indexFound = 0; indexFound < 3; indexFound++) {
-				// Check for the presence of an interceptor card
-				if (scene->_gameBoardSide[0]._handCard[indexFound]._cardId == 29) {
-					found = true;
-					break;
-				}
-			}
-			break;
-		case 1:
-			for (indexFound = 0; indexFound < 3; indexFound++) {
-				// Check for the presence of an interceptor card
-				if (scene->_gameBoardSide[1]._handCard[indexFound]._cardId == 29) {
-					found = true;
-					break;
-				}
-			}
-			break;
-		case 2:
-			for (indexFound = 0; indexFound < 3; indexFound++) {
-				// Check for the presence of an interceptor card
-				if (scene->_gameBoardSide[2]._handCard[indexFound]._cardId == 29) {
-					found = true;
-					break;
-				}
-			}
-			break;
-		case 3:
-			for (indexFound = 0; indexFound < 3; indexFound++) {
-				// Check for the presence of an interceptor card
-				if (scene->_gameBoardSide[3]._handCard[indexFound]._cardId == 29) {
-					found = true;
-					break;
-				}
-			}
-			break;
-		default:
-			break;
-		}
-
-		bool found2 = false;
-
-		if (found) {
-			switch (scene->_actionPlayerIdx) {
-			case 0:
-				scene->playInterceptorCard(&scene->_gameBoardSide[0]._handCard[indexFound], scene->_actionCard3);
-				found2 = true;
-				break;
-			case 1:
-				scene->playInterceptorCard(&scene->_gameBoardSide[1]._handCard[indexFound], scene->_actionCard3);
-				found2 = true;
-				break;
-			case 2:
-				scene->subC4CD2();
-				if (MessageDialog::show(USE_INTERCEPTOR, NO_MSG, YES_MSG) == 0)
-					scene->subC4CEC();
-				else {
-					scene->playInterceptorCard(&scene->_gameBoardSide[2]._handCard[indexFound], scene->_actionCard3);
-					found2 = true;
-				}
-				break;
-			case 3:
-				scene->playInterceptorCard(&scene->_gameBoardSide[3]._handCard[indexFound], scene->_actionCard3);
-				found2 = true;
-				break;
-			default:
-				break;
-			}
-		}
-
-		if (found2)
-			break;
-
-		if (scene->_actionPlayerIdx == 2) {
-			int stationCount = 0;
-			for (int i = 0; i <= 7; i++) {
-				if (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0)
-					++stationCount;
-			}
-
-			if (stationCount <= 1) {
-				for (int i = 0; i <= 7; i++) {
-					if (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0) {
-						scene->_actionCard2 = &scene->_gameBoardSide[2]._outpostStation[i];
-						break;
-					}
-				}
-			} else {
-				scene->subC4CD2();
-
-				found2 = false;
-				while (!found2) {
-					scene->actionDisplay(1330, 130, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-					// Wait for a mouse or keypress
-					Event event;
-					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
-						g_globals->_scenePalette.signalListeners();
-						R2_GLOBALS._sceneObjects->draw();
-						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
-					}
-
-					scene->_selectedCard._stationPos = event.mousePos;
-
-					for (int i = 0; i <= 7; i++) {
-						if (scene->_gameBoardSide[2]._outpostStation[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[2]._outpostStation[i]._cardId != 0)) {
-							scene->_actionCard2 = &scene->_gameBoardSide[2]._outpostStation[i];
-							found2 = true;
-							break;
-						}
-					}
-				}
-				scene->subC4CEC();
-			}
-		}
-
-		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
-		scene->_currentDiscardIndex--;
-		scene->_actionCard2->_cardId = 0;
-		scene->_actionCard2->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard2->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard3->_stationPos, this);
-		}
-		break;
-	case 2:
-		scene->_animatedCard._card.hide();
-		scene->discardCard(scene->_actionCard3);
-		break;
-	default:
-		break;
-	}
-}
-
-// Use Thief card (#25) and pick a card from the opponent
-void Scene1337::Action11::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_actionCard2->_card.postInit();
-		scene->_actionCard2->_card.hide();
-		scene->_actionCard2->_card.setVisage(1332);
-		scene->_actionCard2->_card.setPosition(scene->_actionCard2->_stationPos, 0);
-		scene->_actionCard2->_card.fixPriority(170);
-		scene->_actionCard2->_cardId = 25;
-
-		if (scene->_actionPlayerIdx == 2) {
-			scene->_animatedCard._card.setPosition(scene->_actionCard2->_stationPos, 0);
-			scene->setCursorData(5, 1, 4);
-		} else {
-			scene->_actionCard1->_cardId = 0;
-			scene->_actionCard1->_card.remove();
-			scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		}
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1: {
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(57);
-
-		bool found = false;
-		bool noAction = true;
-
-		int i = -1;
-
-		switch (scene->_actionVictimIdx) {
-		case 0:
-			for (i = 0; i <= 3; i++) {
-				if (scene->_gameBoardSide[0]._handCard[i]._cardId == 27) {
-					found = true;
-					break;
-				}
-			}
-
-			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
-				scene->_actionCard1 = &scene->_gameBoardSide[0]._handCard[i];
-				scene->_actionCard2 = &scene->_gameBoardSide[0]._emptyStationPos;
-				if (scene->_actionPlayerIdx != 0) {
-					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
-					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
-				}
-				scene->_actionItem.setAction(&scene->_action12);
-				noAction = false;
-			}
-			break;
-		case 1:
-			for (i = 0; i <= 3; i++) {
-				if (scene->_gameBoardSide[1]._handCard[i]._cardId == 27) {
-					found = true;
-					break;
-				}
-			}
-
-			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
-				scene->_actionCard1 = &scene->_gameBoardSide[1]._handCard[i];
-				scene->_actionCard2 = &scene->_gameBoardSide[1]._emptyStationPos;
-				if (scene->_actionPlayerIdx != 1) {
-					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
-					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
-				}
-				scene->_actionItem.setAction(&scene->_action12);
-				noAction = false;
-			}
-			break;
-		case 2:
-			for (i = 0; i <= 3; i++) {
-				if (scene->_gameBoardSide[2]._handCard[i]._cardId == 27) {
-					found = true;
-					break;
-				}
-			}
-
-			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
-				scene->subC4CD2();
-				if (MessageDialog::show(USE_DOUBLE_AGENT, NO_MSG, YES_MSG) == 0)
-					scene->subC4CEC();
-				else {
-					scene->subC4CEC();
-					scene->_actionCard1 = &scene->_gameBoardSide[2]._handCard[i];
-					scene->_actionCard2 = &scene->_gameBoardSide[2]._emptyStationPos;
-					if (scene->_actionPlayerIdx != 2) {
-						int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
-						scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
-					}
-					scene->_actionItem.setAction(&scene->_action12);
-					noAction = false;
-				}
-			}
-			break;
-		case 3:
-			for (i = 0; i <= 3; i++) {
-				if (scene->_gameBoardSide[3]._handCard[i]._cardId == 27) {
-					found = true;
-					break;
-				}
-			}
-
-			if ((found) && (scene->getRandomCardFromHand(scene->_actionPlayerIdx) != -1)) {
-				scene->_actionCard1 = &scene->_gameBoardSide[3]._handCard[i];
-				scene->_actionCard2 = &scene->_gameBoardSide[3]._emptyStationPos;
-				if (scene->_actionPlayerIdx != 3) {
-					int tmpVal = scene->getRandomCardFromHand(scene->_actionPlayerIdx);
-					scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionPlayerIdx]._handCard[tmpVal];
-				}
-				scene->_actionItem.setAction(&scene->_action12);
-				noAction = false;
-			}
-			break;
-		default:
-			break;
-		}
-
-		if (!noAction)
-			break;
-
-		if (scene->_actionPlayerIdx == 2) {
-			int count = 0;
-			if (scene->_actionVictimIdx != 2) {
-				for (i = 0; i <= 3; i++) {
-					if (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i]._cardId != 0)
-						++count;
-				}
-			}
-
-			if (count > 1) {
-				scene->subC4CD2();
-
-				found = false;
-				while (!found) {
-					switch (scene->_actionVictimIdx) {
-					case 0:
-						scene->actionDisplay(1330, 131, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					case 1:
-						scene->actionDisplay(1330, 132, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					case 3:
-						scene->actionDisplay(1330, 133, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					default:
-						break;
-					}
-
-					Event event;
-					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
-						g_globals->_scenePalette.signalListeners();
-						R2_GLOBALS._sceneObjects->draw();
-						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
-					}
-
-					scene->_selectedCard._stationPos = event.mousePos;
-
-					found = false;
-
-					if (scene->_actionVictimIdx != 2) {
-						for (i = 0; i <= 3; i++) {
-							if (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i]._cardId != 0)) {
-								scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[i];
-								found = true;
-								break;
-							}
-						}
-					}
-				} // while
-				scene->_displayHelpFl = true;
-				scene->subC4CEC();
-			} else if (scene->_actionVictimIdx != 2) {
-				int tmpVal = scene->getRandomCardFromHand(scene->_actionVictimIdx);
-				scene->_actionCard3 = &scene->_gameBoardSide[scene->_actionVictimIdx]._handCard[tmpVal];
-			}
-		}
-
-		scene->_actionCard1->_card.postInit();
-		scene->_actionCard1->_card.hide();
-		scene->_actionCard1->_card.setVisage(1332);
-		scene->_actionCard1->_card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_actionCard1->_card.fixPriority(170);
-		scene->_actionCard1->_card.setStrip2(1);
-		scene->_actionCard1->_cardId = scene->_actionCard3->_cardId;
-
-		scene->_actionCard3->_cardId = 0;
-		scene->_actionCard3->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard3->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard1->_stationPos, this);
-		}
-		break;
-	case 2:
-		scene->_animatedCard._card.hide();
-		switch (scene->_actionPlayerIdx) {
-		case 0:
-			scene->_actionCard1->_card.setFrame2(2);
-			scene->_actionCard1->_card.show();
-			break;
-		case 1:
-			scene->_actionCard1->_card.setFrame2(4);
-			scene->_actionCard1->_card.show();
-			break;
-		case 3:
-			scene->_actionCard1->_card.setFrame2(3);
-			scene->_actionCard1->_card.show();
-			break;
-		default:
-			scene->setAnimationInfo(scene->_actionCard1);
-			break;
-		}
-
-		scene->_currentPlayerNumb--;
-		scene->_showPlayerTurn = false;
-		scene->discardCard(scene->_actionCard2);
-		break;
-	default:
-		break;
-	}
-}
-
-// Pick a card in opponent hand
-void Scene1337::Action12::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0:
-		signal();
-		break;
-	case 1: {
-		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
-		scene->_currentDiscardIndex++;
-		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 2:
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(58);
-		if (scene->_actionVictimIdx == 2) {
-			int count = 0;
-			int i = -1;
-			switch (scene->_actionPlayerIdx) {
-			case 0:
-				for (i = 0; i <= 3; i++) {
-					if (scene->_gameBoardSide[0]._handCard[i]._cardId != 0)
-						++count;
-				}
-				break;
-			case 1:
-				for (i = 0; i <= 3; i++) {
-					// The original game was counting in the hand of player 3, which is obviously wrong
-					if (scene->_gameBoardSide[1]._handCard[i]._cardId != 0)
-						++count;
-				}
-				break;
-			case 3:
-				for (i = 0; i <= 3; i++) {
-					if (scene->_gameBoardSide[3]._handCard[i]._cardId != 0)
-						++count;
-				}
-				break;
-			default:
-				break;
-			}
-
-			if (count > 1) {
-				scene->subC4CD2();
-
-				bool found = false;
-
-				while (!found) {
-					switch (scene->_actionPlayerIdx) {
-					case 0:
-						scene->actionDisplay(1330, 131, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					case 1:
-						scene->actionDisplay(1330, 132, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					case 3:
-						scene->actionDisplay(1330, 133, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						break;
-					default:
-						break;
-					}
-
-					Event event;
-					while (!g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !g_vm->shouldQuit()) {
-						g_globals->_scenePalette.signalListeners();
-						R2_GLOBALS._sceneObjects->draw();
-						g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
-					}
-
-					scene->_selectedCard._stationPos = event.mousePos;
-
-					switch (scene->_actionPlayerIdx) {
-					case 0:
-						for (i = 0; i <= 3; i++) {
-							if (scene->_gameBoardSide[0]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[0]._handCard[i]._cardId != 0)) {
-								found = true;
-								scene->_actionCard3 = &scene->_gameBoardSide[0]._handCard[i];
-								break;
-							}
-						}
-						break;
-					case 1:
-						for (i = 0; i <= 3; i++) {
-							if (scene->_gameBoardSide[1]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[1]._handCard[i]._cardId != 0)) {
-								found = true;
-								scene->_actionCard3 = &scene->_gameBoardSide[1]._handCard[i];
-								break;
-							}
-						}
-						break;
-					case 3:
-						for (i = 0; i <= 3; i++) {
-							if (scene->_gameBoardSide[3]._handCard[i].isIn(scene->_selectedCard._stationPos) && (scene->_gameBoardSide[3]._handCard[i]._cardId != 0)) {
-								found = true;
-								scene->_actionCard3 = &scene->_gameBoardSide[3]._handCard[i];
-								break;
-							}
-						}
-						break;
-					default:
-						break;
-					}
-				}
-				scene->subC4CEC();
-			} else {
-				switch (scene->_actionPlayerIdx) {
-				case 0:
-					scene->_actionCard3 = &scene->_gameBoardSide[0]._handCard[scene->getRandomCardFromHand(0)];
-					break;
-				case 1:
-					scene->_actionCard3 = &scene->_gameBoardSide[1]._handCard[scene->getRandomCardFromHand(1)];
-					break;
-				case 3:
-					scene->_actionCard3 = &scene->_gameBoardSide[3]._handCard[scene->getRandomCardFromHand(3)];
-					break;
-				default:
-					break;
-				}
-			}
-
-			scene->_actionCard1->_card.postInit();
-			scene->_actionCard1->_card.hide();
-			scene->_actionCard1->_card.setVisage(1332);
-			scene->_actionCard1->_card.setPosition(scene->_actionCard1->_stationPos);
-			scene->_actionCard1->_card.fixPriority(170);
-			scene->_actionCard1->_card.setStrip2(1);
-			scene->_actionCard1->_cardId = scene->_actionCard3->_cardId;
-
-			scene->_actionCard3->_cardId = 0;
-			scene->_actionCard3->_card.remove();
-
-			scene->_animatedCard._card.setPosition(scene->_actionCard3->_stationPos);
-			scene->_animatedCard._card.show();
-			scene->_aSound1.play(57);
-
-			NpcMover *mover = new NpcMover();
-			scene->_animatedCard._card.addMover(mover, &scene->_actionCard1->_stationPos, this);
-		}
-		break;
-	case 3:
-		scene->_animatedCard._card.hide();
-		switch (scene->_actionVictimIdx) {
-		case 0:
-			scene->_actionCard1->_card.setFrame2(2);
-			scene->_actionCard1->_card.show();
-			break;
-		case 1:
-			scene->_actionCard1->_card.setFrame2(4);
-			scene->_actionCard1->_card.show();
-			break;
-		case 3:
-			scene->_actionCard1->_card.setFrame2(3);
-			scene->_actionCard1->_card.show();
-			break;
-		default:
-			scene->setAnimationInfo(scene->_actionCard1);
-			break;
-		}
-		scene->discardCard(scene->_actionCard2);
-		break;
-	default:
-		break;
-	}
-}
-
-// Handle the animations of the interceptor card
-void Scene1337::Action13::signal() {
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-
-	switch (_actionIndex++) {
-	case 0: {
-		scene->_availableCardsPile[scene->_currentDiscardIndex] = scene->_actionCard2->_cardId;
-		scene->_currentDiscardIndex--;
-
-		scene->_actionCard2->_cardId = scene->_actionCard1->_cardId;
-
-		scene->_actionCard1->_cardId = 0;
-		scene->_actionCard1->_card.remove();
-
-		scene->_animatedCard._card.setPosition(scene->_actionCard1->_stationPos, 0);
-		scene->_animatedCard._card.show();
-
-		NpcMover *mover = new NpcMover();
-		scene->_animatedCard._card.addMover(mover, &scene->_actionCard2->_stationPos, this);
-		}
-		break;
-	case 1:
-		scene->_animatedCard._card.hide();
-		scene->setAnimationInfo(scene->_actionCard2);
-		scene->_aSound1.play(58);
-		signal();
-		break;
-	case 2:
-		scene->discardCard(scene->_actionCard2);
-		break;
-	default:
-		break;
-	}
-}
-
-void Scene1337::postInit(SceneObjectList *OwnerList) {
-// In the original, may be found in subPostInit.
-// Without it, enableControl asserts
-	loadScene(1330);
-	R2_GLOBALS._uiElements._active = false;
-	SceneExt::postInit();
-//
-
-	// Hide the user interface
-	BF_GLOBALS._interfaceY = SCREEN_HEIGHT;
-	R2_GLOBALS._uiElements._visible = false;
-
-	R2_GLOBALS._player.enableControl();
-	R2_GLOBALS._player._canWalk = false;
-	R2_GLOBALS._player._uiEnabled = false;
-
-	_delayedFunction = nullptr;
-
-	_actionCard1 = nullptr;
-	_actionCard2 = nullptr;
-	_actionCard3 = nullptr;
-
-	_gameBoardSide[2]._handCard[0]._stationPos = Common::Point(10, 174);
-	_gameBoardSide[2]._handCard[1]._stationPos = Common::Point(37, 174);
-	_gameBoardSide[2]._handCard[2]._stationPos = Common::Point(64, 174);
-	_gameBoardSide[2]._handCard[3]._stationPos = Common::Point(91, 174);
-
-	_gameBoardSide[2]._outpostStation[0]._stationPos = Common::Point(119, 174);
-	_gameBoardSide[2]._outpostStation[1]._stationPos = Common::Point(119, 148);
-	_gameBoardSide[2]._outpostStation[2]._stationPos = Common::Point(119, 122);
-	_gameBoardSide[2]._outpostStation[3]._stationPos = Common::Point(145, 122);
-	_gameBoardSide[2]._outpostStation[4]._stationPos = Common::Point(171, 122);
-	_gameBoardSide[2]._outpostStation[5]._stationPos = Common::Point(171, 148);
-	_gameBoardSide[2]._outpostStation[6]._stationPos = Common::Point(171, 174);
-	_gameBoardSide[2]._outpostStation[7]._stationPos = Common::Point(145, 174);
-
-	_gameBoardSide[2]._delayCard._stationPos = Common::Point(199, 174);
-
-	_gameBoardSide[2]._emptyStationPos._stationPos = Common::Point(145, 148);
-
-	_gameBoardSide[2]._card1Pos = Common::Point(10, 174);
-	_gameBoardSide[2]._card2Pos = Common::Point(37, 174);
-	_gameBoardSide[2]._card3Pos = Common::Point(64, 174);
-	_gameBoardSide[2]._card4Pos = Common::Point(91, 174);
-	_gameBoardSide[2]._frameNum = 2;
-
-	_gameBoardSide[3]._handCard[0]._stationPos = Common::Point(14, 14);
-	_gameBoardSide[3]._handCard[1]._stationPos = Common::Point(14, 36);
-	_gameBoardSide[3]._handCard[2]._stationPos = Common::Point(14, 58);
-	_gameBoardSide[3]._handCard[3]._stationPos = Common::Point(14, 80);
-
-	_gameBoardSide[3]._outpostStation[0]._stationPos = Common::Point(37, 66);
-	_gameBoardSide[3]._outpostStation[1]._stationPos = Common::Point(63, 66);
-	_gameBoardSide[3]._outpostStation[2]._stationPos = Common::Point(89, 66);
-	_gameBoardSide[3]._outpostStation[3]._stationPos = Common::Point(89, 92);
-	_gameBoardSide[3]._outpostStation[4]._stationPos = Common::Point(89, 118);
-	_gameBoardSide[3]._outpostStation[5]._stationPos = Common::Point(63, 118);
-	_gameBoardSide[3]._outpostStation[6]._stationPos = Common::Point(37, 118);
-	_gameBoardSide[3]._outpostStation[7]._stationPos = Common::Point(37, 92);
-
-	_gameBoardSide[3]._delayCard._stationPos = Common::Point(37, 145);
-
-	_gameBoardSide[3]._emptyStationPos._stationPos = Common::Point(63, 92);
-
-	_gameBoardSide[3]._card1Pos = Common::Point(14, 14);
-	_gameBoardSide[3]._card2Pos = Common::Point(14, 36);
-	_gameBoardSide[3]._card3Pos = Common::Point(14, 58);
-	_gameBoardSide[3]._card4Pos = Common::Point(14, 80);
-	_gameBoardSide[3]._frameNum = 3;
-
-	_gameBoardSide[0]._handCard[0]._stationPos = Common::Point(280, 5);
-	_gameBoardSide[0]._handCard[1]._stationPos = Common::Point(253, 5);
-	_gameBoardSide[0]._handCard[2]._stationPos = Common::Point(226, 5);
-	_gameBoardSide[0]._handCard[3]._stationPos = Common::Point(199, 5);
-
-	_gameBoardSide[0]._outpostStation[0]._stationPos = Common::Point(171, 16);
-	_gameBoardSide[0]._outpostStation[1]._stationPos = Common::Point(171, 42);
-	_gameBoardSide[0]._outpostStation[2]._stationPos = Common::Point(171, 68);
-	_gameBoardSide[0]._outpostStation[3]._stationPos = Common::Point(145, 68);
-	_gameBoardSide[0]._outpostStation[4]._stationPos = Common::Point(119, 68);
-	_gameBoardSide[0]._outpostStation[5]._stationPos = Common::Point(119, 42);
-	_gameBoardSide[0]._outpostStation[6]._stationPos = Common::Point(119, 16);
-	_gameBoardSide[0]._outpostStation[7]._stationPos = Common::Point(145, 16);
-
-	_gameBoardSide[0]._delayCard._stationPos = Common::Point(91, 16);
-
-	_gameBoardSide[0]._emptyStationPos._stationPos = Common::Point(145, 42);
-
-	_gameBoardSide[0]._card1Pos = Common::Point(280, 5);
-	_gameBoardSide[0]._card2Pos = Common::Point(253, 5);
-	_gameBoardSide[0]._card3Pos = Common::Point(226, 5);
-	_gameBoardSide[0]._card4Pos = Common::Point(199, 5);
-	_gameBoardSide[0]._frameNum = 2;
-
-	_gameBoardSide[1]._handCard[0]._stationPos = Common::Point(283, 146);
-	_gameBoardSide[1]._handCard[1]._stationPos = Common::Point(283, 124);
-	_gameBoardSide[1]._handCard[2]._stationPos = Common::Point(283, 102);
-	_gameBoardSide[1]._handCard[3]._stationPos = Common::Point(283, 80);
-
-	_gameBoardSide[1]._outpostStation[0]._stationPos = Common::Point(253, 122);
-	_gameBoardSide[1]._outpostStation[1]._stationPos = Common::Point(227, 122);
-	_gameBoardSide[1]._outpostStation[2]._stationPos = Common::Point(201, 122);
-	_gameBoardSide[1]._outpostStation[3]._stationPos = Common::Point(201, 96);
-	_gameBoardSide[1]._outpostStation[4]._stationPos = Common::Point(201, 70);
-	_gameBoardSide[1]._outpostStation[5]._stationPos = Common::Point(227, 70);
-	_gameBoardSide[1]._outpostStation[6]._stationPos = Common::Point(253, 70);
-	_gameBoardSide[1]._outpostStation[7]._stationPos = Common::Point(253, 96);
-
-	_gameBoardSide[1]._delayCard._stationPos = Common::Point(253, 43);
-
-	_gameBoardSide[1]._emptyStationPos._stationPos = Common::Point(227, 96);
-
-	_gameBoardSide[1]._card1Pos = Common::Point(283, 146);
-	_gameBoardSide[1]._card2Pos = Common::Point(283, 124);
-	_gameBoardSide[1]._card3Pos = Common::Point(283, 102);
-	_gameBoardSide[1]._card4Pos = Common::Point(283, 80);
-	_gameBoardSide[1]._frameNum = 4;
-
-	subPostInit();
-
-	_stockPile.postInit();
-}
-
-void Scene1337::remove() {
-	if (R2_GLOBALS._v57709 > 1) {
-		subD1917();
-		subD1940(false);
-	}
-
-	R2_GLOBALS._uiElements._active = true;
-	R2_GLOBALS._uiElements._visible = true;
-	SceneExt::remove();
-}
-
-void Scene1337::process(Event &event) {
-	if (event.eventType == EVENT_BUTTON_DOWN) {
-		if (event.btnState == BTNSHIFT_RIGHT) {
-			updateCursorId(R2_GLOBALS._mouseCursorId, true);
-			event.handled = true;
-		} else if (_delayedFunction) {
-			FunctionPtrType tmpFctPtr = _delayedFunction;
-			_delayedFunction = nullptr;
-			(this->*tmpFctPtr)();
-			event.handled = true;
-		}
-	} else if (event.eventType == EVENT_KEYPRESS) {
-		if (event.kbd.keycode == Common::KEYCODE_SPACE) {
-			if (_delayedFunction) {
-				FunctionPtrType tmpFctPtr = _delayedFunction;
-				_delayedFunction = nullptr;
-				(this->*tmpFctPtr)();
-				event.handled = true;
-			}
-		} else
-			warning("Fixme: Find proper keycode value");
-	}
-
-	if (!event.handled)
-		Scene::process(event);
-}
-
-void Scene1337::dispatch() {
-	if (!_instructionsDisplayedFl) {
-		++_instructionsWaitCount;
-		if (_instructionsWaitCount == 4) {
-			_instructionsDisplayedFl = true;
-			suggestInstructions();
-		}
-	}
-
-	// The following code is in the original in sceneHandler::process(),
-	// which is terrible as it's checked in every scene of the game.
-	setCursorData(5, _cursorCurStrip, _cursorCurFrame);
-	//
-
-	Scene::dispatch();
-}
-
-void Scene1337::actionDisplay(int resNum, int lineNum, int x, int y, int keepOnScreen, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt) {
-	// TODO: Check if it's normal that arg5 is unused and replaced by an hardcoded 0 value
-	// May hide an original bug
-
-	SceneItem::display(resNum, lineNum, SET_X, x, SET_Y, y, SET_KEEP_ONSCREEN, 0,
-		               SET_WIDTH, width, SET_POS_MODE, -1, SET_TEXT_MODE, textMode,
-					   SET_FONT, fontNum, SET_FG_COLOR, colFG, SET_EXT_BGCOLOR, colBGExt,
-					   SET_EXT_FGCOLOR, colFGExt, LIST_END);
-}
-
-void Scene1337::setAnimationInfo(Card *card) {
-	if (!card)
-		return;
-
-	if (card->_cardId > 25) {
-		card->_card.setStrip2(4);
-		card->_card.setFrame(card->_cardId - 25);
-	} else if (card->_cardId > 9) {
-		card->_card.setStrip2(3);
-		card->_card.setFrame(card->_cardId - 9);
-	} else {
-		card->_card.setStrip2(2);
-		card->_card.setFrame(card->_cardId);
-	}
-
-	card->_card.show();
-	R2_GLOBALS._sceneObjects->draw();
-}
-
-void Scene1337::handleNextTurn() {
-	switch (_winnerId) {
-	case -1:
-		++_currentPlayerNumb;
-		if (_currentPlayerNumb > 3)
-			_currentPlayerNumb = 0;
-
-		if (_showPlayerTurn) {
-			_currentPlayerArrow.show();
-			switch (_currentPlayerNumb) {
-			case 0:
-				_currentPlayerArrow.setStrip(3);
-				break;
-			case 1:
-				_currentPlayerArrow.setStrip(4);
-				break;
-			case 2:
-				subD1975(174, 107);
-				_currentPlayerArrow.setStrip(1);
-				break;
-			case 3:
-				subC4CEC();
-				_currentPlayerArrow.setStrip(2);
-				break;
-			default:
-				break;
-			}
-
-			if (!_autoplay)
-				_delayedFunction = &Scene1337::handlePlayerTurn;
-			else
-				handlePlayerTurn();
-		} else {
-			handlePlayerTurn();
-		}
-		break;
-	case 0:
-		_aSound2.play(62);
-		actionDisplay(1330, 135, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		actionDisplay(1330, 121, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		actionDisplay(1330, 122, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		R2_GLOBALS._sceneObjects->draw();
-		actionDisplay(1330, 123, 159, 134, 1, 200, 0, 7, 0, 105, 105);
-		break;
-	case 1:
-		_aSound2.play(62);
-		actionDisplay(1330, 151, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		actionDisplay(1330, 118, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		actionDisplay(1330, 119, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		R2_GLOBALS._sceneObjects->draw();
-		actionDisplay(1330, 120, 159, 134, 1, 200, 0, 7, 0, 105, 105);
-		break;
-	case 2:
-		_aSound2.play(62);
-		actionDisplay(1330, 134, 159, 134, 1, 200, 0, 7, 0, 105, 105);
-		actionDisplay(1330, 124, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		actionDisplay(1330, 126, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		R2_GLOBALS._sceneObjects->draw();
-		actionDisplay(1330, 125, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		break;
-	case 3:
-		_aSound2.play(62);
-		actionDisplay(1330, 150, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		actionDisplay(1330, 115, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		actionDisplay(1330, 116, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		R2_GLOBALS._sceneObjects->draw();
-		actionDisplay(1330, 117, 159, 134, 1, 200, 0, 7, 0, 105, 105);
-		break;
-	default:
-		break;
-	}
-
-	if (_winnerId != -1)
-		R2_GLOBALS._sceneManager.changeScene(125);
-
-}
-
-void Scene1337::handlePlayerTurn() {
-	if (_showPlayerTurn)
-		_currentPlayerArrow.hide();
-
-	switch (_currentPlayerNumb) {
-	case 2:
-		subC4CD2();
-		if (_displayHelpFl)
-			actionDisplay(1330, 114, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		_displayHelpFl = false;
-	// No break on purpose
-	case 0:
-	// No break on purpose
-	case 1:
-	// No break on purpose
-	case 3:
-		_actionItem.setAction(&_action4);
-	default:
-		break;
-	}
-
-	_showPlayerTurn = true;
-
-}
-
-bool Scene1337::isStationCard(int cardId) {
-	switch (cardId) {
-	case 10:
-	// No break on purpose
-	case 12:
-	// No break on purpose
-	case 15:
-	// No break on purpose
-	case 17:
-	// No break on purpose
-	case 18:
-	// No break on purpose
-	case 19:
-	// No break on purpose
-	case 20:
-	// No break on purpose
-	case 21:
-		return true;
-	default:
-		return false;
-	}
-}
-
-bool Scene1337::isStopConstructionCard(int cardId) {
-	switch (cardId) {
-	case 11:
-	// No break on purpose
-	case 14:
-	// No break on purpose
-	case 16:
-	// No break on purpose
-	case 24:
-		return true;
-	default:
-		return false;
-	}
-}
-
-int Scene1337::getStationId(int playerId, int handCardId) {
-	if ((_gameBoardSide[playerId]._handCard[handCardId]._cardId > 1) && (_gameBoardSide[playerId]._handCard[handCardId]._cardId <= 9))
-		return handCardId;
-
-	return -1;
-}
-
-int Scene1337::findPlatformCardInHand(int playerId) {
-	for (int i = 0; i <= 3; i++) {
-		if (_gameBoardSide[playerId]._handCard[i]._cardId == 1)
-			return i;
-	}
-
-	return -1;
-}
-
-int Scene1337::findMeteorCardInHand(int playerId) {
-	for (int i = 0; i <= 3; i++) {
-		if (_gameBoardSide[playerId]._handCard[i]._cardId == 13)
-			return i;
-	}
-
-	return -1;
-}
-
-int Scene1337::findThieftCardInHand(int playerId) {
-	for (int i = 0; i <= 3; i++) {
-		if (_gameBoardSide[playerId]._handCard[i]._cardId == 25)
-			return i;
-	}
-
-	return -1;
-}
-
-int Scene1337::isDelayCard(int cardId) {
-	switch (cardId) {
-	case 11:
-	// No break on purpose
-	case 14:
-	// No break on purpose
-	case 16:
-	// No break on purpose
-	case 24:
-		return cardId;
-		break;
-	default:
-		return -1;
-		break;
-	}
-}
-
-int Scene1337::getStationCardId(int cardId) {
-	switch (cardId) {
-	case 10:
-	// No break on purpose
-	case 12:
-	// No break on purpose
-	case 15:
-	// No break on purpose
-	case 17:
-	// No break on purpose
-	case 18:
-	// No break on purpose
-	case 19:
-	// No break on purpose
-	case 20:
-	// No break on purpose
-	case 21:
-		return cardId;
-	default:
-		return -1;
-	}
-}
-
-void Scene1337::handlePlayer01Discard(int playerId) {
-	switch (playerId) {
-	case 0:
-		for (int i = 0; i <= 3; i++) {
-			if (getStationCardId(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			if (isDelayCard(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Outpost Card
-			if ((_gameBoardSide[playerId]._handCard[i]._cardId > 1) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 9)) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			if ((_gameBoardSide[playerId]._handCard[i]._cardId >= 26) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 33)) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Station Card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Thief card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 25) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Meteor Card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 13) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-		break;
-	case 1:
-		for (int i = 0; i <= 3; i++) {
-			if ((_gameBoardSide[playerId]._handCard[i]._cardId >= 26) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 33)) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Station Card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Outpost Card
-			if ((_gameBoardSide[playerId]._handCard[i]._cardId > 1) && (_gameBoardSide[playerId]._handCard[i]._cardId <= 9)) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			if (getStationCardId(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			if (isDelayCard(_gameBoardSide[playerId]._handCard[i]._cardId) != -1) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Thief card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 25) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 3; i++) {
-			// Meteor Card
-			if (_gameBoardSide[playerId]._handCard[i]._cardId == 13) {
-				discardCard(&_gameBoardSide[playerId]._handCard[i]);
-				return;
-			}
-		}
-
-		break;
-	default:
-		break;
-	}
-}
-
-void Scene1337::playThieftCard(int playerId, Card *card, int victimId) {
-	_actionPlayerIdx = playerId;
-	_actionVictimIdx = victimId;
-
-	int randIndx;
-
-	for (;;) {
-		randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
-		if (_gameBoardSide[victimId]._handCard[randIndx]._cardId != 0)
-			break;
-	}
-
-	_actionCard1 = card;
-	_actionCard2 = &_gameBoardSide[victimId]._emptyStationPos;
-	_actionCard3 = &_gameBoardSide[victimId]._handCard[randIndx];
-
-	_actionItem.setAction(&_action11);
-}
-
-int Scene1337::getPreventionCardId(int cardId) {
-	int retVal;
-
-	switch (cardId) {
-	case 10:
-		retVal = 2;
-		break;
-	case 12:
-		retVal = 3;
-		break;
-	case 15:
-		retVal = 5;
-		break;
-	case 17:
-		retVal = 9;
-		break;
-	case 18:
-		retVal = 6;
-		break;
-	case 19:
-		retVal = 4;
-		break;
-	case 20:
-		retVal = 8;
-		break;
-	case 21:
-		retVal = 7;
-		break;
-	default:
-		retVal = -1;
-	}
-
-	return retVal;
-}
-
-bool Scene1337::isAttackPossible(int victimId, int cardId) {
-	if (victimId < 0 || victimId >= ARRAYSIZE(_gameBoardSide))
-		error("Scene1337::isAttackPossible() victimId:%d out of range 0 to %d", victimId, ARRAYSIZE(_gameBoardSide)-1);
-
-	for (int i = 0; i <= 7; i++) {
-		if (_gameBoardSide[victimId]._outpostStation[i]._cardId != 0) {
-			if (getPreventionCardId(cardId) == _gameBoardSide[victimId]._outpostStation[i]._cardId)
-				return false;
-		}
-	}
-	return true;
-}
-
-int Scene1337::getPlayerWithOutpost(int playerId) {
-	int randPlayerId = R2_GLOBALS._randomSource.getRandomNumber(3);
-
-	for (int i = 0; i <= 3; i++) {
-		if (randPlayerId != playerId) {
-			for (int j = 0; j <= 7; j++) {
-				if (_gameBoardSide[randPlayerId]._outpostStation[j]._cardId != 0)
-					return randPlayerId;
-			}
-		}
-
-		if (playerId == 1) {
-			randPlayerId--;
-			if (randPlayerId < 0)
-				randPlayerId = 3;
-		} else {
-			++randPlayerId;
-			if (randPlayerId > 3)
-				randPlayerId = 0;
-		}
-	}
-
-	return -1;
-}
-
-bool Scene1337::checkAntiDelayCard(int delayCardId, int cardId) {
-	if ((delayCardId == 11) && (cardId == 26)) // Diplomacy
-		return true;
-
-	if ((delayCardId == 14) && (cardId == 30)) // Cure
-		return true;
-
-	if ((delayCardId == 16) && (cardId == 32)) // Agreement
-		return true;
-
-	if ((delayCardId == 24) && (cardId == 28)) // Innovation
-		return true;
-
-	return false;
-}
-
-void Scene1337::playStationCard(Card *station, Card *platform) {
-	_actionCard1 = station;
-	_actionCard2 = platform;
-	_actionItem.setAction(&_action7);
-}
-
-int Scene1337::getRandomCardFromHand(int playerId) {
-	if ( (_gameBoardSide[playerId]._handCard[0]._cardId == 0)
-	  && (_gameBoardSide[playerId]._handCard[1]._cardId == 0)
-	  && (_gameBoardSide[playerId]._handCard[2]._cardId == 0)
-	  && (_gameBoardSide[playerId]._handCard[3]._cardId == 0))
-	  return -1;
-
-	int randIndx;
-	for (;;) {
-		randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
-		if (_gameBoardSide[playerId]._handCard[randIndx]._cardId != 0)
-			break;
-	}
-
-	return randIndx;
-}
-
-void Scene1337::playPlatformCard(Card *card, Card *dest) {
-	_actionCard1 = card;
-	_actionCard2 = dest;
-
-	_actionItem.setAction(&_action6);
-}
-
-void Scene1337::playDelayCard(Card *card, Card *dest) {
-	_actionCard1 = card;
-	_actionCard2 = dest;
-
-	_actionItem.setAction(&_action9);
-}
-
-void Scene1337::playAntiDelayCard(Card *card, Card *dest) {
-	_actionCard1 = card;
-	_actionCard2 = dest;
-
-	_actionItem.setAction(&_action8);
-
-	// WORKAROUND: Restore the default cursor and for a call to signal.
-	// This works around the cursor caching we got rid of, and avoid
-	// the game ends in an eternal loop when a player reacts to another player
-	// attack.
-	setCursorData(5, 1, 4);
-	signal();
-}
-
-
-Scene1337::Card *Scene1337::getStationCard(int playerId) {
-	for (int i = 0; i <= 7; i++) {
-		if ((_gameBoardSide[playerId]._outpostStation[i]._cardId >= 1) && (_gameBoardSide[playerId]._outpostStation[i]._cardId <= 9))
-			return &_gameBoardSide[playerId]._outpostStation[i];
-	}
-
-	return nullptr;
-}
-
-void Scene1337::playCentralOutpostCard(Card *card, int playerId) {
-	_actionCard1 = card;
-	_actionCard2 = getStationCard(playerId);
-	_actionCard3 = &_gameBoardSide[playerId]._emptyStationPos;
-	_actionPlayerIdx = playerId;
-	_actionItem.setAction(&_action10);
-}
-
-void Scene1337::discardCard(Card *card) {
-	_actionCard1 = card;
-
-	_actionItem.setAction(&_action5);
-}
-
-void Scene1337::subC4CD2() {
-	if (R2_GLOBALS._v57709 > 0) {
-		subD1917();
-		subD1940(false); // _v5780C--
-	}
-}
-
-void Scene1337::subC4CEC() {
-	if (R2_GLOBALS._v57709 == 0) {
-		subD18F5();
-		subD1940(true); // _v5780C++
-	}
-}
-
-// Play Interceptor card
-void Scene1337::playInterceptorCard(Card *subObj1, Card *subObj2) {
-	_actionCard1 = subObj1;
-	_actionCard2 = subObj2;
-
-	_actionItem.setAction(&_action13);
-}
-
-void Scene1337::displayDialog(int dialogNumb) {
-	switch (dialogNumb - 1) {
-	case 0:
-		actionDisplay(1330, 53, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 1:
-		actionDisplay(1330, 57, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 2:
-		actionDisplay(1330, 58, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 3:
-		actionDisplay(1330, 59, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 4:
-		actionDisplay(1330, 60, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 5:
-		actionDisplay(1330, 61, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 6:
-		actionDisplay(1330, 62, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 7:
-		actionDisplay(1330, 63, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 8:
-		actionDisplay(1330, 64, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 9:
-		actionDisplay(1330, 65, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 10:
-		actionDisplay(1330, 67, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 11:
-		actionDisplay(1330, 69, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 12:
-		actionDisplay(1330, 71, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		actionDisplay(1330, 72, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		actionDisplay(1330, 73, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 13:
-		actionDisplay(1330, 79, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 14:
-		actionDisplay(1330, 81, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 15:
-		actionDisplay(1330, 83, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 16:
-		actionDisplay(1330, 85, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 17:
-		actionDisplay(1330, 87, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 18:
-		actionDisplay(1330, 89, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 19:
-		actionDisplay(1330, 91, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 20:
-		actionDisplay(1330, 93, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 23:
-		actionDisplay(1330, 95, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 24:
-		actionDisplay(1330, 97, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 25:
-		actionDisplay(1330, 104, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 26:
-		actionDisplay(1330, 105, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		actionDisplay(1330, 106, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 27:
-		actionDisplay(1330, 110, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 28:
-		actionDisplay(1330, 108, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		actionDisplay(1330, 109, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 29:
-		actionDisplay(1330, 111, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	case 31:
-		actionDisplay(1330, 112, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		break;
-	default:
-		break;
-	}
-}
-
-void Scene1337::subPostInit() {
-	R2_GLOBALS._v57709 = 0;
-	R2_GLOBALS._v5780C = 0;
-	updateCursorId(1, false);
-	subD1940(true); // _v5780C++
-	subD18F5();
-
-//	loadScene(1330);
-//	SceneExt::postInit();
-
-	R2_GLOBALS._scenePalette.addRotation(224, 235, 1);
-
-	_availableCardsPile[0] = 1;
-	_availableCardsPile[1] = 1;
-	_availableCardsPile[2] = 1;
-	_availableCardsPile[3] = 1;
-	_availableCardsPile[4] = 1;
-	_availableCardsPile[5] = 1;
-	_availableCardsPile[6] = 1;
-	_availableCardsPile[7] = 1;
-	_availableCardsPile[8] = 26;
-	_availableCardsPile[9] = 2;
-	_availableCardsPile[10] = 2;
-	_availableCardsPile[11] = 2;
-	_availableCardsPile[12] = 2;
-	_availableCardsPile[13] = 2;
-	_availableCardsPile[14] = 26;
-	_availableCardsPile[15] = 3;
-	_availableCardsPile[16] = 3;
-	_availableCardsPile[17] = 3;
-	_availableCardsPile[18] = 3;
-	_availableCardsPile[19] = 3;
-	_availableCardsPile[20] = 28;
-	_availableCardsPile[21] = 4;
-	_availableCardsPile[22] = 4;
-	_availableCardsPile[23] = 4;
-	_availableCardsPile[24] = 4;
-	_availableCardsPile[25] = 4;
-	_availableCardsPile[26] = 28;
-	_availableCardsPile[27] = 5;
-	_availableCardsPile[28] = 5;
-	_availableCardsPile[29] = 5;
-	_availableCardsPile[30] = 5;
-	_availableCardsPile[31] = 5;
-	_availableCardsPile[32] = 30;
-	_availableCardsPile[33] = 6;
-	_availableCardsPile[34] = 6;
-	_availableCardsPile[35] = 6;
-	_availableCardsPile[36] = 6;
-	_availableCardsPile[37] = 6;
-	_availableCardsPile[38] = 30;
-	_availableCardsPile[39] = 7;
-	_availableCardsPile[40] = 7;
-	_availableCardsPile[41] = 7;
-	_availableCardsPile[42] = 7;
-	_availableCardsPile[43] = 7;
-	_availableCardsPile[44] = 32;
-	_availableCardsPile[45] = 8;
-	_availableCardsPile[46] = 8;
-	_availableCardsPile[47] = 8;
-	_availableCardsPile[48] = 8;
-	_availableCardsPile[49] = 8;
-	_availableCardsPile[50] = 32;
-	_availableCardsPile[51] = 9;
-	_availableCardsPile[52] = 9;
-	_availableCardsPile[53] = 9;
-	_availableCardsPile[54] = 9;
-	_availableCardsPile[55] = 9;
-	_availableCardsPile[56] = 10;
-	_availableCardsPile[57] = 11;
-	_availableCardsPile[58] = 12;
-	_availableCardsPile[59] = 13;
-	_availableCardsPile[60] = 13;
-	_availableCardsPile[61] = 14;
-	_availableCardsPile[62] = 15;
-	_availableCardsPile[63] = 16;
-	_availableCardsPile[64] = 17;
-	_availableCardsPile[65] = 18;
-	_availableCardsPile[66] = 19;
-	_availableCardsPile[67] = 20;
-	_availableCardsPile[68] = 21;
-	_availableCardsPile[69] = 26;
-	_availableCardsPile[70] = 28;
-	_availableCardsPile[71] = 24;
-	_availableCardsPile[72] = 25;
-	_availableCardsPile[73] = 25;
-	_availableCardsPile[74] = 25;
-	_availableCardsPile[75] = 25;
-	_availableCardsPile[76] = 26;
-	_availableCardsPile[77] = 26;
-	_availableCardsPile[78] = 26;
-	_availableCardsPile[79] = 27;
-	_availableCardsPile[80] = 27;
-	_availableCardsPile[81] = 28;
-	_availableCardsPile[82] = 28;
-	_availableCardsPile[83] = 28;
-	_availableCardsPile[84] = 29;
-	_availableCardsPile[85] = 29;
-	_availableCardsPile[86] = 29;
-	_availableCardsPile[87] = 30;
-	_availableCardsPile[88] = 30;
-	_availableCardsPile[89] = 30;
-	_availableCardsPile[90] = 30;
-	_availableCardsPile[91] = 32;
-	_availableCardsPile[92] = 1;
-	_availableCardsPile[93] = 32;
-	_availableCardsPile[94] = 32;
-	_availableCardsPile[95] = 32;
-	_availableCardsPile[96] = 1;
-	_availableCardsPile[97] = 1;
-	_availableCardsPile[98] = 1;
-	_availableCardsPile[99] = 0;
-
-	_cardsAvailableNumb = 98;
-	_currentDiscardIndex = 98; // CHECKME: Would make more sense at pos 99
-
-	_discardPile._cardId = 0;
-	_discardPile._stationPos = Common::Point(128, 95);
-
-	_stockCard._cardId = 0;
-	_stockCard._stationPos = Common::Point(162, 95);
-
-	_selectedCard._cardId = 0;
-
-	_animatedCard._card.postInit();
-	_animatedCard._card.setVisage(1332);
-	_animatedCard._card.setStrip(5);
-	_animatedCard._card.setFrame(1);
-	_animatedCard._card._moveDiff = Common::Point(10, 10);
-	_animatedCard._card.fixPriority(400);
-	_animatedCard._card.setPosition(Common::Point(128, 95), 0);
-	_animatedCard._card.animate(ANIM_MODE_2, NULL);
-	_animatedCard._card.hide();
-
-	_currentPlayerArrow.postInit();
-	_currentPlayerArrow.setVisage(1334);
-	_currentPlayerArrow.setStrip(1);
-	_currentPlayerArrow.setFrame(1);
-	_currentPlayerArrow._numFrames = 12;
-	_currentPlayerArrow.fixPriority(500);
-	_currentPlayerArrow.setPosition(Common::Point(174, 107), 0);
-	_currentPlayerArrow.animate(ANIM_MODE_2, NULL);
-	_currentPlayerArrow.hide();
-
-	_showPlayerTurn = true;
-	_displayHelpFl = false;
-	_winnerId = -1;
-
-	_helpIcon.postInit();
-	_helpIcon.setup(9531, 1, 1);
-	_helpIcon.setPosition(Common::Point(249, 168));
-	_helpIcon.setPriority(155);
-	_helpIcon._effect = EFFECT_NONE;
-	_helpIcon.show();
-
-	_autoplay = false;
-	_instructionsDisplayedFl = false;
-	_instructionsWaitCount = 0;
-}
-
-void Scene1337::suggestInstructions() {
-	if (R2_GLOBALS._v57709 > 0)
-		subD1917();
-
-	if (MessageDialog::show(NEED_INSTRUCTIONS, NO_MSG, YES_MSG) == 0) {
-		if (R2_GLOBALS._v57709 == 0)
-			subD18F5();
-		dealCards();
-	} else {
-		if (R2_GLOBALS._v57709 == 0)
-			subD18F5();
-		displayInstructions();
-	}
-}
-
-void Scene1337::displayInstructions() {
-	_actionItem.setAction(&_action1);
-}
-
-void Scene1337::shuffleCards() {
-	R2_GLOBALS._sceneObjects->draw();
-
-	// Remove holes in card pile
-	for (int i = 0; i <= 98; i++) {
-		if (_availableCardsPile[i] == 0) {
-			for (int j = i + 1; j <= 98; j ++) {
-				if (_availableCardsPile[j] != 0) {
-					_availableCardsPile[i] = _availableCardsPile[j];
-					_availableCardsPile[j] = 0;
-					break;
-				}
-			}
-		}
-	}
-
-	// Compute the number of available cards
-	for (int i = 0; i <= 99; i ++) {
-		if (_availableCardsPile[i] == 0) {
-			// CHECKME: This will fail if i == 0, which shouldn't happen
-			// as we don't shuffle cards when no card is available.
-			_cardsAvailableNumb = i - 1;
-			_currentDiscardIndex = 98;  // CHECKME: Would make more sense at pos 99
-			break;
-		}
-	}
-
-	for (int i = 0; i < 2000; i ++) {
-		int randIndx = R2_GLOBALS._randomSource.getRandomNumber(_cardsAvailableNumb);
-		int swap = _availableCardsPile[0];
-		_availableCardsPile[0] = _availableCardsPile[randIndx];
-		_availableCardsPile[randIndx] = swap;
-	}
-
-	_shuffleEndedFl = false;
-
-	// Shuffle cards
-	_animatedCard._card.setAction(&_action2);
-
-	while(!_shuffleEndedFl && !g_vm->shouldQuit()) {
-		g_globals->_sceneObjects->recurse(SceneHandler::dispatchObject);
-		g_globals->_scenePalette.signalListeners();
-		R2_GLOBALS._sceneObjects->draw();
-		g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
-	}
-}
-
-void Scene1337::dealCards() {
-	_animatedCard._card._moveDiff = Common::Point(30, 30);
-	shuffleCards();
-
-	// Deal cards
-	_actionItem.setAction(&_action3);
-}
-
-void Scene1337::showOptionsDialog() {
-	// Display menu with "Auto Play", "New Game", "Quit" and "Continue"
-	OptionsDialog::show();
-}
-
-void Scene1337::handleClick(int arg1, Common::Point pt) {
-	int curReg = R2_GLOBALS._sceneRegions.indexOf(g_globals->_events._mousePos);
-
-	if (arg1 == 3) {
-		bool found = false;
-		int i;
-		for (i = 0; i <= 7; i++) {
-			if ( _gameBoardSide[2]._outpostStation[i].isIn(pt)
-			  || _gameBoardSide[0]._outpostStation[i].isIn(pt)
-			  || _gameBoardSide[1]._outpostStation[i].isIn(pt)
-			  || _gameBoardSide[3]._outpostStation[i].isIn(pt) ) {
-				found = true;
-				break;
-			}
-		}
-
-		if (found) {
-			switch (curReg) {
-			case 5:
-				if (_gameBoardSide[2]._outpostStation[i]._cardId != 0)
-					displayDialog(_gameBoardSide[2]._outpostStation[i]._cardId);
-				else
-					actionDisplay(1330, 20, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 10:
-				if (_gameBoardSide[3]._outpostStation[i]._cardId != 0)
-					displayDialog(_gameBoardSide[3]._outpostStation[i]._cardId);
-				else
-					actionDisplay(1330, 22, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 15:
-				if (_gameBoardSide[0]._outpostStation[i]._cardId != 0)
-					displayDialog(_gameBoardSide[0]._outpostStation[i]._cardId);
-				else
-					actionDisplay(1330, 21, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 20:
-				if (_gameBoardSide[1]._outpostStation[i]._cardId != 0)
-					displayDialog(_gameBoardSide[1]._outpostStation[i]._cardId);
-				else
-					actionDisplay(1330, 23, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			default:
-				break;
-			}
-		} else if ( _gameBoardSide[2]._delayCard.isIn(pt)
-			  || _gameBoardSide[0]._delayCard.isIn(pt)
-			  || _gameBoardSide[1]._delayCard.isIn(pt)
-			  || _gameBoardSide[3]._delayCard.isIn(pt) ) {
-			switch (curReg) {
-			case 5:
-				if (_gameBoardSide[2]._delayCard._cardId != 0)
-					displayDialog(_gameBoardSide[2]._delayCard._cardId);
-				else
-					actionDisplay(1330, 10, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 10:
-				if (_gameBoardSide[3]._delayCard._cardId != 0)
-					displayDialog(_gameBoardSide[3]._delayCard._cardId);
-				else
-					actionDisplay(1330, 16, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 15:
-				if (_gameBoardSide[0]._delayCard._cardId != 0)
-					displayDialog(_gameBoardSide[0]._delayCard._cardId);
-				else
-					actionDisplay(1330, 13, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 20:
-				if (_gameBoardSide[1]._delayCard._cardId != 0)
-					displayDialog(_gameBoardSide[1]._delayCard._cardId);
-				else
-					actionDisplay(1330, 18, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			default:
-				break;
-			}
-		} else if (_discardPile.isIn(pt)) {
-			if (_discardPile._cardId != 0)
-				displayDialog(_discardPile._cardId);
-			else
-				actionDisplay(1330, 7, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		} else if (_helpIcon._bounds.contains(pt))
-			actionDisplay(1330, 43, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else if (_stockCard.isIn(pt))
-			actionDisplay(1330, 4, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else if ( (_gameBoardSide[2]._emptyStationPos.isIn(pt))
-			     || (_gameBoardSide[3]._emptyStationPos.isIn(pt))
-			     || (_gameBoardSide[0]._emptyStationPos.isIn(pt))
-			     || (_gameBoardSide[1]._emptyStationPos.isIn(pt)) )
-			actionDisplay(1330, 32, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else if (_gameBoardSide[2]._handCard[0].isIn(pt))
-			displayDialog(_gameBoardSide[2]._handCard[0]._cardId);
-		else if (_gameBoardSide[2]._handCard[1].isIn(pt))
-			displayDialog(_gameBoardSide[2]._handCard[1]._cardId);
-		else if (_gameBoardSide[2]._handCard[2].isIn(pt))
-			displayDialog(_gameBoardSide[2]._handCard[2]._cardId);
-		else if (_gameBoardSide[2]._handCard[3].isIn(pt))
-			displayDialog(_gameBoardSide[2]._handCard[3]._cardId);
-		else if ((curReg >= 6) && (curReg <= 9))
-			actionDisplay(1330, 29, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else if ((curReg >= 11) && (curReg <= 14))
-			actionDisplay(1330, 31, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else if ((curReg >= 16) && (curReg <= 19))
-			actionDisplay(1330, 30, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else {
-			switch (curReg) {
-			case 0:
-				actionDisplay(1330, 2, 159, 134, 1, 200, 0, 7, 0, 105, 105);
-				break;
-			case 5:
-				actionDisplay(1330, 25, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 10:
-				actionDisplay(1330, 27, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 15:
-				actionDisplay(1330, 26, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 20:
-				actionDisplay(1330, 28, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 21:
-				actionDisplay(1330, 24, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			default:
-				break;
-			}
-		}
-	}
-
-	if (arg1 != 1)
-		return;
-
-	for (int i = 0; i <= 7; i++) {
-		if (_gameBoardSide[2]._outpostStation[i].isIn(pt)) {
-			switch (_gameBoardSide[2]._outpostStation[i]._cardId) {
-			case 0:
-				actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			case 1:
-				actionDisplay(1330, 54, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			default:
-				actionDisplay(1330, 34, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			}
-			return;
-		}
-		if (_gameBoardSide[0]._outpostStation[i].isIn(pt)) {
-			switch (_gameBoardSide[0]._outpostStation[i]._cardId) {
-			case 0:
-				actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			default:
-				actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				break;
-			}
-			return;
-		}
-		if (_gameBoardSide[1]._outpostStation[i].isIn(pt)) {
-			switch (_gameBoardSide[1]._outpostStation[i]._cardId) {
-			case 0:
-				actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-				break;
-			default:
-				actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-				break;
-			}
-			return;
-		}
-		if (_gameBoardSide[3]._outpostStation[i].isIn(pt)) {
-			switch (_gameBoardSide[3]._outpostStation[i]._cardId) {
-			case 0:
-				actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-				break;
-			default:
-				actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-				break;
-			}
-			return;
-		}
-	}
-
-	if (_gameBoardSide[2]._delayCard.isIn(pt)) {
-		// The original uses _gameBoardSide[0], which is obviously a bug.
-		if (_gameBoardSide[2]._delayCard._cardId != 0)
-			actionDisplay(1330, 39, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else
-			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		return;
-	}
-	if (_gameBoardSide[3]._delayCard.isIn(pt)) {
-		if (_gameBoardSide[3]._delayCard._cardId != 0)
-			actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		else
-			actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-
-		return;
-	}
-	if (_gameBoardSide[1]._delayCard.isIn(pt)) {
-		if (_gameBoardSide[1]._delayCard._cardId != 0)
-			actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		else
-			actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-
-		return;
-	}
-	if (_gameBoardSide[0]._delayCard.isIn(pt)) {
-		if (_gameBoardSide[0]._delayCard._cardId != 0)
-			actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		else
-			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-
-		return;
-	}
-	if (_gameBoardSide[3]._emptyStationPos.isIn(pt)) {
-		actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-		return;
-	}
-	if (_gameBoardSide[1]._emptyStationPos.isIn(pt)) {
-		actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-		return;
-	}
-	if (_gameBoardSide[0]._emptyStationPos.isIn(pt)) {
-		actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-		return;
-	}
-
-	if (_helpIcon._bounds.contains(pt)) {
-		showOptionsDialog();
-		return;
-	}
-
-	if (_discardPile.isIn(pt))
-		actionDisplay(1330, 9, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-	else if (_stockCard.isIn(pt))
-		actionDisplay(1330, 5, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-	else {
-		switch (curReg) {
-		case 0:
-			actionDisplay(1330, 3, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-			break;
-		case 6:
-		// no break on purpose
-		case 7:
-		// no break on purpose
-		case 8:
-		// no break on purpose
-		case 9:
-			actionDisplay(1330, 145, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-			break;
-		case 10:
-			actionDisplay(1330, 147, 20, 99, 1, 136, 0, 7, 0, 172, 172);
-			break;
-		case 11:
-		// no break on purpose
-		case 12:
-		// no break on purpose
-		case 13:
-		// no break on purpose
-		case 14:
-			actionDisplay(1330, 1, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-			break;
-		case 16:
-		// no break on purpose
-		case 17:
-		// no break on purpose
-		case 18:
-		// no break on purpose
-		case 19:
-			actionDisplay(1330, 144, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-			break;
-		case 20:
-			actionDisplay(1330, 146, 300, 99, 1, 136, 0, 7, 0, 117, 117);
-			break;
-		default:
-			actionDisplay(1330, 11, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-			break;
-		}
-	}
-}
-
-void Scene1337::handlePlayer0() {
-	if (_gameBoardSide[0]._delayCard._cardId != 0) {
-		switch (_gameBoardSide[0]._delayCard._cardId) {
-		case 10:
-		//No break on purpose
-		case 12:
-		//No break on purpose
-		case 15:
-		//No break on purpose
-		case 17:
-		//No break on purpose
-		case 18:
-		//No break on purpose
-		case 19:
-		//No break on purpose
-		case 20:
-		//No break on purpose
-		case 21:
-			discardCard(&_gameBoardSide[0]._delayCard);
-			return;
-		default:
-			for (int i = 0; i <= 3; i++) {
-				if (checkAntiDelayCard(_gameBoardSide[0]._delayCard._cardId, _gameBoardSide[0]._handCard[i]._cardId)) {
-					playAntiDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[0]._delayCard);
-					return;
-				}
-			}
-
-			break;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		int tmpVal = getStationId(0, i);
-
-		if (tmpVal != -1) {
-			bool stationAlreadyPresentFl = false;
-			for (int j = 0; j <= 7; j++) {
-				if (_gameBoardSide[0]._outpostStation[j]._cardId == _gameBoardSide[0]._handCard[tmpVal]._cardId) {
-					stationAlreadyPresentFl = true;
-					break;
-				}
-			}
-
-			if (!stationAlreadyPresentFl) {
-				for (int j = 0; j <= 7; j++) {
-					if ((_gameBoardSide[0]._outpostStation[j]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[0]._delayCard._cardId)) {
-						int stationCount = 0;
-						for (int k = 0; k <= 7; k++) {
-							if ((_gameBoardSide[0]._outpostStation[k]._cardId > 1) && (_gameBoardSide[0]._outpostStation[k]._cardId <= 9)) {
-								++stationCount;
-							}
-						}
-
-						if (stationCount == 7)
-							_winnerId = 0;
-
-						playStationCard(&_gameBoardSide[0]._handCard[tmpVal], &_gameBoardSide[0]._outpostStation[j]);
-						return;
-					}
-				}
-			}
-		}
-	}
-
-	int tmpVal = findPlatformCardInHand(0);
-
-	if (tmpVal != -1) {
-		for (int i = 0; i <= 7; i++) {
-			if ((_gameBoardSide[0]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[0]._delayCard._cardId)) {
-				playPlatformCard(&_gameBoardSide[0]._handCard[tmpVal], &_gameBoardSide[0]._outpostStation[i]);
-				return;
-			}
-		}
-	}
-
-	int meteorCardId = findMeteorCardInHand(0);
-	if (meteorCardId != -1) {
-		for (int i = 0; i <= 7; i++) {
-			if (_gameBoardSide[2]._outpostStation[i]._cardId != 0) {
-				playCentralOutpostCard(&_gameBoardSide[0]._handCard[meteorCardId], 2);
-				return;
-			}
-		}
-	}
-
-	int thieftId = findThieftCardInHand(0);
-	if (thieftId != -1) {
-		if ( (_gameBoardSide[2]._handCard[0]._cardId != 0)
-		  || (_gameBoardSide[2]._handCard[1]._cardId != 0)
-		  || (_gameBoardSide[2]._handCard[2]._cardId != 0)
-		  || (_gameBoardSide[2]._handCard[3]._cardId != 0) ) {
-			playThieftCard(0, &_gameBoardSide[0]._handCard[thieftId], 2);
-			return;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		if ((isDelayCard(_gameBoardSide[0]._handCard[i]._cardId) != -1)
-		&&  (_gameBoardSide[2]._delayCard._cardId == 0)
-		&&  isAttackPossible(2, _gameBoardSide[0]._handCard[i]._cardId)) {
-			playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[2]._delayCard);
-			return;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		if ((getStationCardId(_gameBoardSide[0]._handCard[i]._cardId) != -1)
-		&&  (_gameBoardSide[2]._delayCard._cardId == 0)
-		&& isAttackPossible(2, _gameBoardSide[0]._handCard[i]._cardId)) {
-			playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[2]._delayCard);
-			return;
-		}
-	}
-
-	meteorCardId = findMeteorCardInHand(0);
-	int victimId = getPlayerWithOutpost(0);
-
-	if ((meteorCardId != -1) && (victimId != -1)) {
-		playCentralOutpostCard(&_gameBoardSide[0]._handCard[meteorCardId], victimId);
-		return;
-	}
-
-	thieftId = findThieftCardInHand(0);
-	if (thieftId != -1) {
-		if ( (_gameBoardSide[1]._handCard[0]._cardId != 0)
-		  || (_gameBoardSide[1]._handCard[1]._cardId != 0)
-		  || (_gameBoardSide[1]._handCard[2]._cardId != 0)
-		  || (_gameBoardSide[1]._handCard[3]._cardId != 0) ) {
-			playThieftCard(0, &_gameBoardSide[0]._handCard[thieftId], 1);
-			return;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		if (getStationCardId(_gameBoardSide[0]._handCard[i]._cardId) != -1) {
-			if ((_gameBoardSide[1]._delayCard._cardId == 0) && isAttackPossible(1, _gameBoardSide[0]._handCard[i]._cardId)) {
-				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[1]._delayCard);
-				return;
-			}
-
-			if ((_gameBoardSide[3]._delayCard._cardId == 0) && isAttackPossible(3, _gameBoardSide[0]._handCard[i]._cardId)) {
-				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[3]._delayCard);
-				return;
-			}
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		tmpVal = isDelayCard(_gameBoardSide[0]._handCard[i]._cardId);
-		if (tmpVal != -1) {
-			if ((_gameBoardSide[1]._delayCard._cardId == 0) && isAttackPossible(1, _gameBoardSide[0]._handCard[i]._cardId)) {
-				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[1]._delayCard);
-				return;
-			}
-
-			if ((_gameBoardSide[3]._delayCard._cardId == 0) && isAttackPossible(3, _gameBoardSide[0]._handCard[i]._cardId)) {
-				playDelayCard(&_gameBoardSide[0]._handCard[i], &_gameBoardSide[3]._delayCard);
-				return;
-			}
-		}
-	}
-
-	handlePlayer01Discard(0);
-}
-
-void Scene1337::handlePlayer1() {
-	if (this->_gameBoardSide[1]._delayCard._cardId != 0) {
-		switch (_gameBoardSide[1]._delayCard._cardId) {
-		case 10:
-			// No break on purpose
-		case 12:
-			// No break on purpose
-		case 15:
-			// No break on purpose
-		case 17:
-			// No break on purpose
-		case 18:
-			// No break on purpose
-		case 19:
-			// No break on purpose
-		case 20:
-			// No break on purpose
-		case 21:
-			discardCard(&_gameBoardSide[1]._delayCard);
-			return;
-		default:
-			for (int i = 0; i <= 3; i++) {
-				if (checkAntiDelayCard(_gameBoardSide[1]._delayCard._cardId, _gameBoardSide[1]._handCard[i]._cardId)) {
-					playAntiDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[1]._delayCard);
-					return;
-				}
-			}
-			break;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		int tmpIndx = getStationId(1, i);
-		if (tmpIndx == -1)
-			break;
-
-		int tmpVal = 0;
-		for (int j = 0; j <= 7; j++) {
-			if (_gameBoardSide[1]._outpostStation[j]._cardId == _gameBoardSide[1]._handCard[tmpIndx]._cardId) {
-				tmpVal = 1;
-				break;
-			}
-		}
-
-		if (tmpVal == 0)
-			break;
-
-		for (int j = 0; j <= 7; j++) {
-			if ((_gameBoardSide[1]._outpostStation[j]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[1]._delayCard._cardId)) {
-				int stationCount = 0;
-				for (int k = 0; k <= 7; k++) {
-					if ((_gameBoardSide[1]._outpostStation[k]._cardId > 1) && (_gameBoardSide[1]._outpostStation[k]._cardId <= 9))
-						++stationCount;
-				}
-
-				if (stationCount == 7)
-					_winnerId = 1;
-
-				playStationCard(&_gameBoardSide[1]._handCard[tmpIndx], &_gameBoardSide[1]._outpostStation[j]);
-				return;
-			}
-		}
-	}
-
-	int normalCardId = findPlatformCardInHand(1);
-	if (normalCardId != -1) {
-		for (int i = 0; i <= 7; i++) {
-			if ((_gameBoardSide[1]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[1]._delayCard._cardId)) {
-				playPlatformCard(&_gameBoardSide[1]._handCard[normalCardId], &_gameBoardSide[1]._outpostStation[i]);
-				return;
-			}
-		}
-	}
-
-	int meterorCardId = findMeteorCardInHand(1);
-	int victimId = getPlayerWithOutpost(1);
-
-	if ((meterorCardId != -1) && (victimId != -1)) {
-		playCentralOutpostCard(&_gameBoardSide[1]._handCard[meterorCardId], victimId);
-		return;
-	}
-
-	int thieftId = findThieftCardInHand(1);
-	if (thieftId != -1) {
-		int playerIdFound = -1;
-		int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
-		for (int i = 0; i <= 3; i++) {
-			if (rndVal != 1) {
-				if (  (_gameBoardSide[rndVal]._handCard[0]._cardId != 0)
-					|| (_gameBoardSide[rndVal]._handCard[1]._cardId != 0)
-					|| (_gameBoardSide[rndVal]._handCard[2]._cardId != 0)
-					|| (_gameBoardSide[rndVal]._handCard[3]._cardId != 0)) {
-						playerIdFound = rndVal;
-						break;
-				}
-			}
-			// The original was only updating in the rndVal block,
-			// which was a bug as the checks were stopping at this point
-			rndVal--;
-			if (rndVal < 0)
-				rndVal = 3;
-		}
-
-		if (playerIdFound != -1) {
-			playThieftCard(1, &_gameBoardSide[1]._handCard[thieftId], playerIdFound);
-			return;
-		}
-	}
-
-	for (int i = 0; i <= 3; i++) {
-		int tmpVal = isDelayCard(_gameBoardSide[1]._handCard[i]._cardId);
-		if (tmpVal != -1) {
-			victimId = -1;
-			int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
-
-			for (int j = 0; j <= 3; j++) {
-				if (rndVal != 1) {
-					if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && isAttackPossible(rndVal, _gameBoardSide[1]._handCard[i]._cardId))
-						victimId = rndVal;
-				}
-
-				if (victimId != -1) {
-					playDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[victimId]._delayCard);
-					return;
-				} else {
-					rndVal--;
-					if (rndVal < 0)
-						rndVal = 3;
-				}
-			}
-		}
-	}
-
-	for (int j = 0; j <= 3; j++) {
-		if (getStationCardId(_gameBoardSide[1]._handCard[j]._cardId) != -1) {
-			victimId = -1;
-			int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3);
-			for (int l = 0; l <= 3; l++) {
-				if (rndVal != 1) {
-					if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && (_gameBoardSide[1]._handCard[j]._cardId == 1))
-						victimId = rndVal;
-				}
-				if (victimId != -1) {
-					playDelayCard(&_gameBoardSide[1]._handCard[j], &_gameBoardSide[victimId]._delayCard);
-					return;
-				} else {
-					rndVal--;
-					if (rndVal < 0)
-						rndVal = 3;
-				}
-			}
-		}
-	}
-
-	handlePlayer01Discard(1);
-}
-
-void Scene1337::handlePlayer3() {
-	if (_gameBoardSide[3]._delayCard._cardId != 0) {
-		switch (_gameBoardSide[3]._delayCard._cardId) {
-		case 10:
-			// No break on purpose
-		case 12:
-			// No break on purpose
-		case 15:
-			// No break on purpose
-		case 17:
-			// No break on purpose
-		case 18:
-			// No break on purpose
-		case 19:
-			// No break on purpose
-		case 20:
-			// No break on purpose
-		case 21:
-			discardCard(&_gameBoardSide[3]._delayCard);
-			return;
-		default:
-			for (int i = 0; i <= 3; i++) {
-				if (checkAntiDelayCard(_gameBoardSide[3]._delayCard._cardId, _gameBoardSide[3]._handCard[i]._cardId)) {
-					playAntiDelayCard(&_gameBoardSide[3]._handCard[i], &_gameBoardSide[3]._delayCard);
-					return;
-				}
-			}
-			break;
-		}
-	}
-
-	int randIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
-	if (_gameBoardSide[3]._handCard[randIndx]._cardId == 1) {
-		// Station Card
-		for (int i = 0; i <= 7; i++) {
-			if ((_gameBoardSide[3]._outpostStation[i]._cardId == 0) && !isStopConstructionCard(_gameBoardSide[3]._delayCard._cardId)) {
-				playPlatformCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[3]._outpostStation[i]);
-				return;
-			}
-		}
-	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId <= 9) {
-		// Outpost Card
-		for (int i = 0; i <= 7; i++) {
-			if (_gameBoardSide[3]._outpostStation[i]._cardId == _gameBoardSide[3]._handCard[randIndx]._cardId) {
-				discardCard(&_gameBoardSide[3]._handCard[randIndx]);
-				return;
-			}
-		}
-
-		for (int i = 0; i <= 7; i++) {
-			if ((_gameBoardSide[3]._outpostStation[i]._cardId == 1) && !isStopConstructionCard(_gameBoardSide[3]._delayCard._cardId)) {
-				int stationCount = 0;
-				for (int j = 0; j <= 7; j++) {
-					if ((_gameBoardSide[3]._outpostStation[j]._cardId > 1) && (_gameBoardSide[3]._outpostStation[j]._cardId <= 9))
-						++stationCount;
-				}
-
-				if (stationCount == 7)
-					_winnerId = 3;
-
-				playStationCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[3]._outpostStation[i]);
-				return;
-			}
-		}
-	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId == 13) {
-		// Meteor Card
-		int victimId = getPlayerWithOutpost(3);
-
-		if (victimId != -1) {
-			playCentralOutpostCard(&_gameBoardSide[3]._handCard[randIndx], victimId);
-			return;
-		}
-	} else if (_gameBoardSide[3]._handCard[randIndx]._cardId == 25) {
-		// Thief card
-		int victimId = -1;
-		int tmpRandIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
-
-		for (int i = 0; i <= 3; i++) {
-			if (  (tmpRandIndx != 3)
-				&& (  (_gameBoardSide[tmpRandIndx]._handCard[0]._cardId != 0)
-				|| (_gameBoardSide[tmpRandIndx]._handCard[1]._cardId != 0)
-				|| (_gameBoardSide[tmpRandIndx]._handCard[2]._cardId != 0)
-				|| (_gameBoardSide[tmpRandIndx]._handCard[3]._cardId != 0) )) {
-					victimId = tmpRandIndx;
-					break;
-			}
-
-			++tmpRandIndx;
-			if (tmpRandIndx > 3)
-				tmpRandIndx = 0;
-		}
-
-		if (victimId != -1) {
-			playThieftCard(3, &_gameBoardSide[3]._handCard[randIndx], victimId);
-			return;
-		}
-	} else {
-		switch (_gameBoardSide[3]._handCard[randIndx]._cardId) {
-		case 10:
-			// No break on purpose
-		case 11:
-			// No break on purpose
-		case 12:
-			// No break on purpose
-		case 14:
-			// No break on purpose
-		case 15:
-			// No break on purpose
-		case 16:
-			// No break on purpose
-		case 17:
-			// No break on purpose
-		case 18:
-			// No break on purpose
-		case 19:
-			// No break on purpose
-		case 20:
-			// No break on purpose
-		case 21:
-			// No break on purpose
-		case 24: {
-			int victimId = -1;
-			int tmpRandIndx = R2_GLOBALS._randomSource.getRandomNumber(3);
-
-			for (int i = 0; i <= 3; i++) {
-				if (tmpRandIndx != 3) {
-					if ((_gameBoardSide[tmpRandIndx]._delayCard._cardId == 0)
-					&&  isAttackPossible(tmpRandIndx, _gameBoardSide[3]._handCard[randIndx]._cardId))
-						victimId = tmpRandIndx;
-				}
-
-				++tmpRandIndx;
-				if (tmpRandIndx > 3)
-					tmpRandIndx = 0;
-
-				if (victimId != -1)
-					break;
-			}
-
-			if (victimId != -1) {
-				// Useless second identical check skipped
-				playDelayCard(&_gameBoardSide[3]._handCard[randIndx], &_gameBoardSide[victimId]._delayCard);
-				return;
-			}
-				 }
-		default:
-			break;
-		}
-	}
-
-	discardCard(&_gameBoardSide[3]._handCard[randIndx]);
-}
-
-void Scene1337::handleAutoplayPlayer2() {
-	if (getStationCardId(this->_gameBoardSide[2]._delayCard._cardId) == -1)
-		_delayedFunction = &Scene1337::handlePlayer2;
-	else
-		discardCard(&_gameBoardSide[2]._delayCard);
-}
-
-void Scene1337::handlePlayer2() {
-	_selectedCard._stationPos = g_globals->_events._mousePos;
-
-	if (R2_GLOBALS._v57810 == 200) {
-		// Hand
-		int i;
-		for (i = 0; i < 4; i++) {
-			if ((_gameBoardSide[2]._handCard[i].isIn(_selectedCard._stationPos)) && (_gameBoardSide[2]._handCard[i]._cardId != 0)) {
-				Card *handcard = &_gameBoardSide[2]._handCard[i];
-				_selectedCard._cardId = handcard->_cardId;
-				_selectedCard._stationPos = handcard->_stationPos;
-				//warning("_selectedCard._actorName = handcard->_actorName;");
-				//warning("_selectedCard._fieldE = handcard->_fieldE;");
-				//warning("_selectedCard._field10 = handcard->_field10;");
-				//warning("_selectedCard._field12 = handcard->_field12;");
-				//warning("_selectedCard._field14 = handcard->_field14;");
-				//warning("_selectedCard._field16 = handcard->_field16;");
-				_selectedCard._sceneRegionId = handcard->_sceneRegionId;
-				_selectedCard._position = handcard->_position;
-				_selectedCard._yDiff = handcard->_yDiff;
-				_selectedCard._bounds = handcard->_bounds;
-				_selectedCard._resNum = handcard->_resNum;
-				_selectedCard._lookLineNum = handcard->_lookLineNum;
-				_selectedCard._talkLineNum = handcard->_talkLineNum;
-				_selectedCard._useLineNum = handcard->_useLineNum;
-				_selectedCard._action = handcard->_action;
-				//warning("_selectedCard._field0 = handcard->_field0;");
-				_selectedCard._card._updateStartFrame = handcard->_card._updateStartFrame;
-				_selectedCard._card._walkStartFrame = handcard->_card._walkStartFrame;
-				_selectedCard._card._oldPosition = handcard->_card._oldPosition;
-				_selectedCard._card._percent = handcard->_card._percent;
-				_selectedCard._card._priority = handcard->_card._priority;
-				_selectedCard._card._angle = handcard->_card._angle;
-				_selectedCard._card._flags = handcard->_card._flags;
-				_selectedCard._card._xe = handcard->_card._xe;
-				_selectedCard._card._xs = handcard->_card._xs;
-				_selectedCard._card._paneRects[0] = handcard->_card._paneRects[0];
-				_selectedCard._card._paneRects[1] = handcard->_card._paneRects[1];
-				_selectedCard._card._visage = handcard->_card._visage;
-				_selectedCard._card._objectWrapper = handcard->_card._objectWrapper;
-				_selectedCard._card._strip = handcard->_card._strip;
-				_selectedCard._card._animateMode = handcard->_card._animateMode;
-				_selectedCard._card._frame = handcard->_card._frame;
-				_selectedCard._card._endFrame = handcard->_card._endFrame;
-				_selectedCard._card._loopCount = handcard->_card._loopCount;
-				_selectedCard._card._frameChange = handcard->_card._frameChange;
-				_selectedCard._card._numFrames = handcard->_card._numFrames;
-				_selectedCard._card._regionIndex = handcard->_card._regionIndex;
-				_selectedCard._card._mover = handcard->_card._mover;
-				_selectedCard._card._moveDiff = handcard->_card._moveDiff;
-				_selectedCard._card._moveRate = handcard->_card._moveRate;
-				_selectedCard._card._actorDestPos = handcard->_card._actorDestPos;
-				_selectedCard._card._endAction = handcard->_card._endAction;
-				_selectedCard._card._regionBitList = handcard->_card._regionBitList;
-				// _selectedCard._object1._actorName = handcard->_object1._actorName;
-				//warning("_selectedCard._card._fieldE = handcard->_card._fieldE;");
-				//warning("_selectedCard._card._field10 = handcard->_card._field10;");
-				//warning("_selectedCard._card._field12 = handcard->_card._field12;");
-				//warning("_selectedCard._card._field14 = handcard->_card._field14;");
-				//warning("_selectedCard._card._field16 = handcard->_card._field16;");
-
-				_gameBoardSide[2]._handCard[i]._cardId = 0;
-				_gameBoardSide[2]._handCard[i]._card.remove();
-				break;
-			}
-		}
-
-		if (i == 4) {
-			handleClick(1, _selectedCard._stationPos);
-			handleAutoplayPlayer2();
-			return;
-		} else {
-			setCursorData(1332, _selectedCard._card._strip, _selectedCard._card._frame);
-			R2_GLOBALS._sceneObjects->draw();
-		}
-	} else if (R2_GLOBALS._v57810 == 300) {
-		// Eye
-		handleClick(3, _selectedCard._stationPos);
-		handleAutoplayPlayer2();
-		return;
-	} else {
-		// The original code is calling a function full of dead code.
-		// Only this message remains after a cleanup.
-		MessageDialog::show(WRONG_ANSWER_MSG, OK_BTN_STRING);
-		//
-		handleAutoplayPlayer2();
-		return;
-	}
-
-	Event event;
-	bool found;
-	for (;;) {
-		if ( ((g_globals->_events.getEvent(event, EVENT_BUTTON_DOWN)) && (event.btnState == BTNSHIFT_RIGHT))
-			|| (g_globals->_events.getEvent(event, EVENT_KEYPRESS)) ){
-			_selectedCard._stationPos = g_globals->_events._mousePos;
-			found = false;
-
-			for (int i = 0; i <= 3; i ++) {
-				if (_gameBoardSide[2]._handCard[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-					if (_gameBoardSide[2]._handCard[i]._cardId == 0) {
-						_gameBoardSide[2]._handCard[i]._cardId = _selectedCard._cardId;
-						_gameBoardSide[2]._handCard[i]._card.postInit();
-						_gameBoardSide[2]._handCard[i]._card.hide();
-						_gameBoardSide[2]._handCard[i]._card.setVisage(1332);
-						_gameBoardSide[2]._handCard[i]._card.setPosition(_gameBoardSide[2]._handCard[i]._stationPos, 0);
-						_gameBoardSide[2]._handCard[i]._card.fixPriority(170);
-						setAnimationInfo(&_gameBoardSide[2]._handCard[i]);
-						setCursorData(5, 1, 4);
-						_currentPlayerNumb--;
-						_showPlayerTurn = false;
-						handleNextTurn();
-						return;
-					} else {
-						actionDisplay(1330, 127, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						found = true;
-					}
-					break;
-				}
-			}
-
-			if (!found) {
-				if (_discardPile.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-					discardCard(&_selectedCard);
-					return;
-				} else if (_selectedCard._cardId == 1) {
-					bool isInCardFl = false;
-					int i;
-					for (i = 0; i <= 7; i++) {
-						if (_gameBoardSide[2]._outpostStation[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							isInCardFl = true;
-							break;
-						}
-					}
-
-					if ((isInCardFl) && (_gameBoardSide[2]._outpostStation[i]._cardId == 0)) {
-						if (isDelayCard(_gameBoardSide[2]._delayCard._cardId) != -1) {
-							actionDisplay(1330, 55, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else {
-							playPlatformCard(&_selectedCard, &_gameBoardSide[2]._outpostStation[i]);
-							return;
-						}
-					} else {
-						actionDisplay(1330, 56, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					}
-				} else if (_selectedCard._cardId <= 9) {
-					bool isInCardFl = false;
-					int i;
-					for (i = 0; i <= 7; i++) {
-						if (_gameBoardSide[2]._outpostStation[i].isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							isInCardFl = true;
-							break;
-						}
-					}
-					if ((isInCardFl) && (_gameBoardSide[2]._outpostStation[i]._cardId == 1)) {
-						isInCardFl = false;
-						for (int j = 0; j <= 7; j++) {
-							if (_selectedCard._cardId == _gameBoardSide[2]._outpostStation[j]._cardId) {
-								isInCardFl = true;
-								break;
-							}
-						}
-						if (isInCardFl) {
-							// This station is already in place
-							actionDisplay(1330, 34, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else if (isDelayCard(_gameBoardSide[2]._delayCard._cardId) != -1) {
-							// You must eliminate your delay before you can play a station
-							actionDisplay(1330, 35, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else {
-							int stationCount = 0;
-							for (int k = 0; k <= 7; k++) {
-								if ((_gameBoardSide[2]._outpostStation[k]._cardId > 1) && (_gameBoardSide[2]._outpostStation[k]._cardId <= 9))
-									++stationCount;
-							}
-
-							if (stationCount == 7)
-								_winnerId = 2;
-
-							playStationCard(&_selectedCard, &_gameBoardSide[2]._outpostStation[i]);
-							return;
-						}
-					} else {
-						actionDisplay(1330, 37, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					}
-				} else if ((_selectedCard._cardId == 26) || (_selectedCard._cardId == 30) ||(_selectedCard._cardId == 32) || (_selectedCard._cardId == 28)) {
-					// Check anti-delay card (26 = Diplomacy, 28 = Innovation, 30 = Cure, 32 = Agreement)
-					if (_gameBoardSide[2]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-						actionDisplay(1330, 42, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					} else if (checkAntiDelayCard(_gameBoardSide[2]._delayCard._cardId, _selectedCard._cardId)) {
-						playAntiDelayCard(&_selectedCard, &_gameBoardSide[2]._delayCard);
-						return;
-					} else {
-						if (_gameBoardSide[2]._delayCard._cardId != 0) {
-							switch (_gameBoardSide[2]._delayCard._cardId) {
-							case 11:
-								actionDisplay(1330, 68, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-								break;
-							case 14:
-								actionDisplay(1330, 80, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-								break;
-							case 16:
-								actionDisplay(1330, 84, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-								break;
-							case 24:
-								actionDisplay(1330, 96, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-								break;
-							default:
-								break;
-							}
-						} else {
-							actionDisplay(1330, 41, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						}
-					}
-				} else if ((getStationCardId(_selectedCard._cardId) == -1) && (isDelayCard(_selectedCard._cardId) == -1)) {
-					if (_selectedCard._cardId == 13) {
-						// Meteor Card
-						if (_gameBoardSide[0]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							for (int k = 0; k <= 7; k++) {
-								if (_gameBoardSide[0]._outpostStation[k]._cardId != 0) {
-									playCentralOutpostCard(&_selectedCard, 0);
-									return;
-								}
-							}
-							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else if (_gameBoardSide[3]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							for (int k = 0; k <= 7; k++) {
-								if (_gameBoardSide[3]._outpostStation[k]._cardId != 0) {
-									playCentralOutpostCard(&_selectedCard, 3);
-									return;
-								}
-							}
-							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else if (_gameBoardSide[1]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							for (int k = 0; k <= 7; k++) {
-								if (_gameBoardSide[1]._outpostStation[k]._cardId == 0) {
-									playCentralOutpostCard(&_selectedCard, 1);
-									return;
-								}
-							}
-							actionDisplay(1330, 74, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						} else {
-							actionDisplay(1330, 128, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						}
-					} else if (_selectedCard._cardId == 25) {
-						// Thief card
-						if (_gameBoardSide[0]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							if ( (_gameBoardSide[0]._handCard[0]._cardId != 0)
-								|| (_gameBoardSide[0]._handCard[1]._cardId != 0)
-								|| (_gameBoardSide[0]._handCard[2]._cardId != 0)
-								|| (_gameBoardSide[0]._handCard[3]._cardId != 0) ) {
-									int k;
-									for (k = 0; k <= 3; k++){
-										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
-											break;
-									}
-									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 0);
-									return;
-							} else {
-								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							}
-						} else if (_gameBoardSide[1]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							if ( (_gameBoardSide[1]._handCard[0]._cardId != 0)
-								|| (_gameBoardSide[1]._handCard[1]._cardId != 0)
-								|| (_gameBoardSide[1]._handCard[2]._cardId != 0)
-								|| (_gameBoardSide[1]._handCard[3]._cardId != 0) ) {
-									int k;
-									for (k = 0; k <= 3; k++){
-										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
-											break;
-									}
-									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 1);
-									return;
-							} else {
-								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							}
-						}
-
-						if (_gameBoardSide[3]._emptyStationPos.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-							if ( (_gameBoardSide[3]._handCard[0]._cardId != 0)
-								|| (_gameBoardSide[3]._handCard[1]._cardId != 0)
-								|| (_gameBoardSide[3]._handCard[2]._cardId != 0)
-								|| (_gameBoardSide[3]._handCard[3]._cardId != 0) ) {
-									int k;
-									for (k = 0; k <= 3; k++){
-										if (_gameBoardSide[2]._handCard[k]._cardId == 0)
-											break;
-									}
-									playThieftCard(2, &_gameBoardSide[2]._handCard[k], 3);
-									return;
-							} else {
-								actionDisplay(1330, 99, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							}
-						} else {
-							actionDisplay(1330, 129, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-						}
-					} else if (_selectedCard._cardId == 29) {
-						// Interceptor cards are used to prevent collision
-						actionDisplay(1330, 136, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					} else if (_selectedCard._cardId == 27) {
-						actionDisplay(1330, 137, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					}
-				} else if (_gameBoardSide[0]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-					if (_gameBoardSide[0]._delayCard._cardId != 0) {
-						actionDisplay(1330, 15, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					} else if (!isAttackPossible(0, _selectedCard._cardId)) {
-						switch (_selectedCard._cardId) {
-						case 10:
-							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 12:
-							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 15:
-							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 17:
-							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 18:
-							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 19:
-							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 20:
-							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 21:
-							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						default:
-							break;
-						}
-					} else {
-						playDelayCard(&_selectedCard, &_gameBoardSide[0]._delayCard);
-						return;
-					}
-				} else if (_gameBoardSide[3]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-					if (_gameBoardSide[3]._delayCard._cardId != 0) {
-						actionDisplay(1330, 17, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					} else if (!isAttackPossible(3, _selectedCard._cardId)) {
-						switch (_selectedCard._cardId) {
-						case 10:
-							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 12:
-							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 15:
-							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 17:
-							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 18:
-							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 19:
-							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 20:
-							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 21:
-							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						default:
-							break;
-						}
-					} else {
-						playDelayCard(&_selectedCard, &_gameBoardSide[3]._delayCard);
-						return;
-					}
-				} else if (_gameBoardSide[1]._delayCard.isIn(Common::Point(_selectedCard._stationPos.x + 12, _selectedCard._stationPos.y + 12))) {
-					if (_gameBoardSide[1]._delayCard._cardId != 0) {
-						actionDisplay(1330, 19, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-					} else if (!isAttackPossible(1, _selectedCard._cardId)) {
-						switch (_selectedCard._cardId) {
-						case 10:
-							actionDisplay(1330, 66, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 12:
-							actionDisplay(1330, 70, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 15:
-							actionDisplay(1330, 82, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 17:
-							actionDisplay(1330, 86, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 18:
-							actionDisplay(1330, 88, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 19:
-							actionDisplay(1330, 90, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 20:
-							actionDisplay(1330, 92, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						case 21:
-							actionDisplay(1330, 94, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-							break;
-						default:
-							break;
-						}
-					} else {
-						playDelayCard(&_selectedCard, &_gameBoardSide[1]._delayCard);
-						return;
-					}
-				} else {
-					actionDisplay(1330, 38, 159, 10, 1, 200, 0, 7, 0, 154, 154);
-				}
-			}
-		} else {
-			g_globals->_scenePalette.signalListeners();
-			R2_GLOBALS._sceneObjects->draw();
-			g_globals->_events.delay(g_globals->_sceneHandler->_delayTicks);
-		}
-
-		g_globals->_sceneObjects->recurse(SceneHandler::dispatchObject);
-	}
-}
-
-void Scene1337::updateCursorId(int cursorId, bool updateFl) {
-	if ((R2_GLOBALS._v57709 != 0) || (R2_GLOBALS._v5780C != 0))
-		return;
-
-	R2_GLOBALS._mouseCursorId = cursorId;
-
-	if (updateFl) {
-		R2_GLOBALS._mouseCursorId++;
-
-		if (R2_GLOBALS._mouseCursorId < 1)
-			R2_GLOBALS._mouseCursorId = 2;
-
-		if (R2_GLOBALS._mouseCursorId > 2)
-			R2_GLOBALS._mouseCursorId = 1;
-	}
-
-	// The original was using an intermediate function to call setCursorData.
-	// It has been removed to improve readability
-	if (R2_GLOBALS._mouseCursorId == 1) {
-		R2_GLOBALS._v57810 = 200;
-		setCursorData(5, 1, 4);
-	} else if (R2_GLOBALS._mouseCursorId == 2) {
-		R2_GLOBALS._v57810 = 300;
-		setCursorData(5, 1, 5);
-	} else {
-		R2_GLOBALS._v57810 = 0;
-		setCursorData(5, 0, 0);
-	}
-}
-
-void Scene1337::setCursorData(int resNum, int rlbNum, int frameNum) {
-	_cursorCurRes = resNum;
-	_cursorCurStrip = rlbNum;
-	_cursorCurFrame = frameNum;
-
-	if (!frameNum) {
-		// Should be a hardcoded cursor displaying only a dot.
-		// FIXME: Use another cursor when possible
-		R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
-	} else {
-		// TODO: The original was using some resource caching, which was useless and complex
-		// and which has been removed. This cursor behavior clearly made intensive use of this caching...
-		// We now have to find a way to cache these cursor pointers and avoid loading them multiple times per seconds
-		uint size;
-		byte *cursor = g_resourceManager->getSubResource(resNum, rlbNum, frameNum, &size);
-		// Decode the cursor
-		GfxSurface s = surfaceFromRes(cursor);
-
-		Graphics::Surface surface = s.lockSurface();
-		const byte *cursorData = (const byte *)surface.getPixels();
-		CursorMan.replaceCursor(cursorData, surface.w, surface.h, s._centroid.x, s._centroid.y, s._transColor);
-		s.unlockSurface();
-
-		DEALLOCATE(cursor);
-	}
-}
-
-void Scene1337::subD18F5() {
-	if (R2_GLOBALS._v57709 == 0)
-		// The original restores a copy of the default cursor (the hand), which isn't possible with our implementation
-		// We reload that cursor instead.
-		setCursorData(5, 1, 4);
-
-	++R2_GLOBALS._v57709;
-}
-
-void Scene1337::subD1917() {
-	if (R2_GLOBALS._v57709 != 0) {
-		R2_GLOBALS._v57709--;
-		if (R2_GLOBALS._v57709 == 0) {
-			// The original was using an intermediate function to call setCursorData.
-			// It has been removed to improve readability
-			setCursorData(5, _cursorCurStrip, _cursorCurFrame);
-		}
-	}
-}
-
-void Scene1337::subD1940(bool flag) {
-	if (flag)
-		++R2_GLOBALS._v5780C;
-	else if (R2_GLOBALS._v5780C != 0)
-		--R2_GLOBALS._v5780C;
-}
-
-void Scene1337::subD1975(int arg1, int arg2) {
-	// No implementation required in ScummVM: Mouse handling with tons of caching 
-}
-
-void Scene1337::OptionsDialog::show() {
-	OptionsDialog *dlg = new OptionsDialog();
-	dlg->draw();
-
-	// Show the dialog
-	GfxButton *btn = dlg->execute(NULL);
-
-	// Figure out the new selected character
-	if (btn == &dlg->_quitGame)
-		R2_GLOBALS._sceneManager.changeScene(125);
-	else if (btn == &dlg->_restartGame)
-		R2_GLOBALS._sceneManager.changeScene(1330);
-
-	// Remove the dialog
-	dlg->remove();
-	delete dlg;
-}
-
-Scene1337::OptionsDialog::OptionsDialog() {
-	// Set the elements text
-	Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-	_autoplay.setText(scene->_autoplay ? AUTO_PLAY_ON : AUTO_PLAY_OFF);
-	_restartGame.setText(START_NEW_CARD_GAME);
-	_quitGame.setText(QUIT_CARD_GAME);
-	_continueGame.setText(CONTINUE_CARD_GAME);
-
-	// Set position of the elements
-	_autoplay._bounds.moveTo(5, 2);
-	_restartGame._bounds.moveTo(5, _autoplay._bounds.bottom + 2);
-	_quitGame._bounds.moveTo(5, _restartGame._bounds.bottom + 2);
-	_continueGame._bounds.moveTo(5, _quitGame._bounds.bottom + 2);
-
-	// Add the items to the dialog
-	addElements(&_autoplay, &_restartGame, &_quitGame, &_continueGame, NULL);
-
-	// Set the dialog size and position
-	frame();
-	_bounds.collapse(-6, -6);
-	setCenter(160, 100);
-}
-
-GfxButton *Scene1337::OptionsDialog::execute(GfxButton *defaultButton) {
-	_gfxManager.activate();
-
-	// Event loop
-	GfxButton *selectedButton = NULL;
-
-	bool breakFlag = false;
-	while (!g_vm->shouldQuit() && !breakFlag) {
-		Event event;
-		while (g_globals->_events.getEvent(event) && !breakFlag) {
-			// Adjust mouse positions to be relative within the dialog
-			event.mousePos.x -= _gfxManager._bounds.left;
-			event.mousePos.y -= _gfxManager._bounds.top;
-
-			for (GfxElementList::iterator i = _elements.begin(); i != _elements.end(); ++i) {
-				if ((*i)->process(event))
-					selectedButton = static_cast<GfxButton *>(*i);
-			}
-
-			if (selectedButton == &_autoplay) {
-				// Toggle Autoplay
-				selectedButton = NULL;
-				Scene1337 *scene = (Scene1337 *)R2_GLOBALS._sceneManager._scene;
-				scene->_autoplay = !scene->_autoplay;
-
-				_autoplay.setText(scene->_autoplay ? AUTO_PLAY_ON : AUTO_PLAY_OFF);
-				_autoplay.draw();
-			} else if (selectedButton) {
-				breakFlag = true;
-				break;
-			} else if (!event.handled) {
-				if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_ESCAPE)) {
-					selectedButton = NULL;
-					breakFlag = true;
-					break;
-				}
-			}
-		}
-
-		g_system->delayMillis(10);
-		GLOBALS._screenSurface.updateScreen();
-	}
-
-	_gfxManager.deactivate();
-	return selectedButton;
-}
-
-/*--------------------------------------------------------------------------
  * Scene 1500 - Cutscene: Ship landing
  *
  *--------------------------------------------------------------------------*/
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index f2ca41b..0b67380 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -182,223 +182,6 @@ public:
 	virtual void saveCharacter(int characterIndex);
 };
 
-class Scene1337 : public SceneExt {
-	class OptionsDialog: public GfxDialog {
-	private:
-		GfxButton _autoplay;
-		GfxButton _restartGame;
-		GfxButton _quitGame;
-		GfxButton _continueGame;
-
-		OptionsDialog();
-		virtual ~OptionsDialog() {}
-		virtual GfxButton *execute(GfxButton *defaultButton);
-	public:
-		static void show();
-	};
-
-	class Card: public SceneHotspot {
-	public:
-		SceneObject _card;
-
-		int _cardId;
-		Common::Point _stationPos;
-
-		Card();
-		void synchronize(Serializer &s);
-		bool isIn(Common::Point pt);
-	};
-
-	class GameBoardSide: public SceneHotspot {
-	public:
-		Card _handCard[4];
-		Card _outpostStation[8];
-		Card _delayCard;
-		Card _emptyStationPos;
-
-		Common::Point _card1Pos;
-		Common::Point _card2Pos;
-		Common::Point _card3Pos;
-		Common::Point _card4Pos;
-		int _frameNum;
-
-		GameBoardSide();
-		void synchronize(Serializer &s);
-	};
-
-	class Action1337: public Action {
-	public:
-		void waitFrames(int32 frameCount);
-	};
-
-	class Action1: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action2: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action3: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action4: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action5: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action6: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action7: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action8: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action9: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action10: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action11: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action12: public Action1337 {
-	public:
-		void signal();
-	};
-	class Action13: public Action1337 {
-	public:
-		void signal();
-	};
-public:
-	Action1 _action1;
-	Action2 _action2;
-	Action3 _action3;
-	Action4 _action4;
-	Action5 _action5;
-	Action6 _action6;
-	Action7 _action7;
-	Action8 _action8;
-	Action9 _action9;
-	Action10 _action10;
-	Action11 _action11;
-	Action12 _action12;
-	Action13 _action13;
-
-	typedef void (Scene1337::*FunctionPtrType)();
-	FunctionPtrType _delayedFunction;
-
-	bool _autoplay;
-	bool _shuffleEndedFl;
-	bool _showPlayerTurn;
-	bool _displayHelpFl;
-	bool _instructionsDisplayedFl;
-
-	// Discarded cards are put in the available cards pile, with an higher index so there no conflict
-	int _currentDiscardIndex;
-	int _availableCardsPile[100];
-	int _cardsAvailableNumb;
-	int _currentPlayerNumb;
-	int _actionPlayerIdx;
-	int _actionVictimIdx;
-	int _winnerId;
-	int _instructionsWaitCount;
-	int _cursorCurRes;
-	int _cursorCurStrip;
-	int _cursorCurFrame;
-
-	ASound _aSound1;
-	ASound _aSound2;
-	GameBoardSide _gameBoardSide[4];
-	SceneActor _helpIcon;
-	SceneActor _stockPile;
-	SceneItem _actionItem;
-	SceneObject _currentPlayerArrow;
-
-	Card *_actionCard1;
-	Card *_actionCard2;
-	Card *_actionCard3;
-	Card _animatedCard;
-	Card _shuffleAnimation;
-	Card _discardedPlatformCard;
-	Card _selectedCard;
-	Card _discardPile;
-	Card _stockCard;
-
-	SceneObject _upperDisplayCard[8];
-	SceneObject _lowerDisplayCard[8];
-
-	Scene1337();
-	virtual void synchronize(Serializer &s);
-
-	void actionDisplay(int resNum, int lineNum, int x, int y, int keepOnScreen, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt);
-	void setAnimationInfo(Card *card);
-	void handleNextTurn();
-	void handlePlayerTurn();
-	bool isStationCard(int cardId);
-	bool isStopConstructionCard(int cardId);
-	int  getStationId(int playerId, int handCardId);
-	int  findPlatformCardInHand(int playerId);
-	int  findMeteorCardInHand(int playerId);
-	int  findThieftCardInHand(int playerId);
-	int  isDelayCard(int cardId);
-	int  getStationCardId(int cardId);
-	void handlePlayer01Discard(int playerId);
-	void playThieftCard(int playerId, Card *card, int victimId);
-	int  getPreventionCardId(int cardId);
-	bool isAttackPossible(int victimId, int cardId);
-	int  getPlayerWithOutpost(int playerId);
-	bool checkAntiDelayCard(int delayCardId, int cardId);
-	void playStationCard(Card *station, Card *platform);
-	void playDelayCard(Card *card, Card *dest);
-	void playPlatformCard(Card *card, Card *dest);
-	void playAntiDelayCard(Card *card, Card *dest);
-	Card *getStationCard(int arg1);
-	void playCentralOutpostCard(Card *card, int playerId);
-	int  getRandomCardFromHand(int playerId);
-	void discardCard(Card *card);
-	void subC4CD2();
-	void subC4CEC();
-	void playInterceptorCard(Card *subObj1, Card *subObj2);
-	void displayDialog(int dialogNumb);
-	void subPostInit();
-	void displayInstructions();
-	void suggestInstructions();
-	void shuffleCards();
-	void dealCards();
-	void showOptionsDialog();
-	void handleClick(int arg1, Common::Point pt);
-	void handlePlayer0();
-	void handlePlayer1();
-	void handlePlayer2();
-	void handlePlayer3();
-	void handleAutoplayPlayer2();
-	void updateCursorId(int arg1, bool arg2);
-	void setCursorData(int resNum, int rlbNum, int frameNum);
-	void subD18F5();
-	void subD1917();
-	void subD1940(bool flag);
-	void subD1975(int arg1, int arg2);
-
-	virtual void postInit(SceneObjectList *OwnerList = NULL);
-	virtual void remove();
-	virtual void process(Event &event);
-	virtual void dispatch();
-};
-
 class Scene1500 : public SceneExt {
 public:
 	SceneActor _starship;






More information about the Scummvm-git-logs mailing list