From 45da1e7c741a1906b60ad3d55a9e0087fd9a4a3e Mon Sep 17 00:00:00 2001
From: uruk
Date: Wed, 9 Jul 2014 11:17:30 +0200
Subject: CGE2: Implement switchVox() and switchCap().

---
 engines/cge2/cge2.cpp      |  2 ++
 engines/cge2/cge2.h        |  2 ++
 engines/cge2/cge2_main.cpp | 16 ++++++++++++++--
 3 files changed, 18 insertions(+), 2 deletions(-)

(limited to 'engines/cge2')

diff --git a/engines/cge2/cge2.cpp b/engines/cge2/cge2.cpp
index aa87f99a3b..16deafba48 100644
--- a/engines/cge2/cge2.cpp
+++ b/engines/cge2/cge2.cpp
@@ -97,6 +97,8 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription)
 	_req = 1;
 	_midiNotify = nullptr;
 	_spriteNotify = nullptr;
+	_enaCap = true;
+	_enaVox = true;
 }
 
 void CGE2Engine::init() {
diff --git a/engines/cge2/cge2.h b/engines/cge2/cge2.h
index a2cd13107e..252fad07bd 100644
--- a/engines/cge2/cge2.h
+++ b/engines/cge2/cge2.h
@@ -285,6 +285,8 @@ public:
 	NotifyFunctionType _midiNotify;
 	NotifyFunctionType _spriteNotify;
 	int _startGameSlot;
+	bool _enaCap;
+	bool _enaVox;
 
 	ResourceManager *_resman;
 	Vga *_vga;
diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp
index 76829b00aa..b7dcf65b33 100644
--- a/engines/cge2/cge2_main.cpp
+++ b/engines/cge2/cge2_main.cpp
@@ -1137,11 +1137,23 @@ void CGE2Engine::setVolume(int idx, int cnt) {
 }
 
 void CGE2Engine::switchCap() {
-	warning("STUB: CGE2Engine::switchCap()");
+	if (_enaCap) {
+		_sayCap = !_sayCap;
+		if (!_sayCap)
+			_sayVox = true;
+		keyClick();
+		checkSaySwitch();
+	}
 }
 
 void CGE2Engine::switchVox() {
-	warning("STUB: CGE2Engine::switchVox()");
+	if (_enaVox) {
+		_sayVox = !_sayVox;
+		if (!_sayVox)
+			_sayCap = true;
+		keyClick();
+		checkSaySwitch();
+	}
 }
 
 void CGE2Engine::offUse() {
-- 
cgit v1.2.3