aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/preagi_winnie.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2007-09-23 15:09:48 +0000
committerEugene Sandulenko2007-09-23 15:09:48 +0000
commitc4ad96b91e5e64cf74875d5af6dcb905e07361ea (patch)
treeb3962bc46932427badee511a0745854fff54dc5d /engines/agi/preagi_winnie.cpp
parent35a3f9c9ac0f13ea89a7b43c9df71e194042008c (diff)
downloadscummvm-rg350-c4ad96b91e5e64cf74875d5af6dcb905e07361ea.tar.gz
scummvm-rg350-c4ad96b91e5e64cf74875d5af6dcb905e07361ea.tar.bz2
scummvm-rg350-c4ad96b91e5e64cf74875d5af6dcb905e07361ea.zip
Add Tigger and Mist events implementation
svn-id: r29052
Diffstat (limited to 'engines/agi/preagi_winnie.cpp')
-rw-r--r--engines/agi/preagi_winnie.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp
index 3ca15c48be..f426967a3c 100644
--- a/engines/agi/preagi_winnie.cpp
+++ b/engines/agi/preagi_winnie.cpp
@@ -52,7 +52,7 @@ void Winnie::initVars() {
game.fGame[1] = 1;
room = IDI_WTP_ROOM_HOME;
- mist = -1;
+ _mist = -1;
doWind = false;
winnie_event = false;
@@ -338,10 +338,10 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
if (winnie_event && (room <= IDI_WTP_MAX_ROOM_TELEPORT)) {
if (!tigger_mist) {
tigger_mist = 1;
- //Winnie_Tigger();
+ tigger();
} else {
tigger_mist = 0;
- //Winnie_Mist();
+ mist();
}
winnie_event = false;
return IDI_WTP_PAR_GOTO;
@@ -436,8 +436,8 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
gameOver();
break;
case IDO_WTP_WALK_MIST:
- mist--;
- if (!mist) {
+ _mist--;
+ if (!_mist) {
room = _vm->rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
return IDI_WTP_PAR_GOTO;
}
@@ -694,6 +694,25 @@ void Winnie::wind() {
}
}
+void Winnie::mist() {
+ // mist length in turns is (2-5)
+ _mist = _vm->rnd(4) + 2;
+
+ room = IDI_WTP_ROOM_MIST;
+ drawRoomPic();
+
+ _vm->printStr(IDS_WTP_MIST);
+}
+
+void Winnie::tigger() {
+ room = IDI_WTP_ROOM_TIGGER;
+
+ drawRoomPic();
+ _vm->printStr(IDS_WTP_TIGGER);
+
+ dropObjRnd();
+}
+
void Winnie::showOwlHelp() {
if (game.iObjHave) {
_vm->printStr(IDS_WTP_OWL_0);