Add Tigger and Mist events implementation

svn-id: r29052
This commit is contained in:
Eugene Sandulenko 2007-09-23 15:09:48 +00:00
parent 35a3f9c9ac
commit c4ad96b91e
2 changed files with 29 additions and 6 deletions

View File

@ -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);

View File

@ -306,7 +306,7 @@ private:
PreAgiEngine *_vm;
WTP_SAVE_GAME game;
int room;
int mist;
int _mist;
bool doWind;
bool winnie_event;
int tigger_mist;
@ -349,7 +349,11 @@ private:
void writeSaveGame(uint8*);
void readSaveGame(uint8*);
void dropObjRnd();
void wind();
void mist();
void tigger();
void showOwlHelp();
bool playSound(ENUM_WTP_SOUND);
};