diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hdb/ai-bots.cpp | 20 | ||||
-rw-r--r-- | engines/hdb/ai-funcs.cpp | 5 | ||||
-rw-r--r-- | engines/hdb/ai-init.cpp | 3 | ||||
-rw-r--r-- | engines/hdb/ai.h | 6 |
4 files changed, 19 insertions, 15 deletions
diff --git a/engines/hdb/ai-bots.cpp b/engines/hdb/ai-bots.cpp index 9d6b18a92c..0f553b0bf8 100644 --- a/engines/hdb/ai-bots.cpp +++ b/engines/hdb/ai-bots.cpp @@ -1260,13 +1260,13 @@ void aiDiverterInit2(AIEntity *e) { case DIR_NONE: break; } - warning("STUB: Set Laser Rescan to true"); + g_hdb->_ai->_laserRescan = true; } void aiDiverterAction(AIEntity *e) { if (e->goalX) { g_hdb->_ai->animateEntity(e); - warning("STUB: Set Laser Rescan to true"); + g_hdb->_ai->_laserRescan = true; // have to reset the state because we might have been moved... switch (e->dir2) { @@ -1294,7 +1294,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamUDTop[frame]->drawMasked(e->x - mx, i * kTileHeight - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onScreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } else { for (i = e->value1 + 1; i < e->value2; i++) @@ -1302,7 +1302,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamLRLeft[frame]->drawMasked(i * kTileWidth - mx, e->y - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onScreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } break; @@ -1313,7 +1313,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamUDTop[frame]->drawMasked(e->x - mx, i * kTileHeight - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } else { for (i = e->value1 - 1; i > e->value2; i--) @@ -1321,7 +1321,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamLRRight[frame]->drawMasked(i * kTileWidth - mx, e->y - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } break; @@ -1332,7 +1332,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamUDBottom[frame]->drawMasked(e->x - mx, i * kTileHeight - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } else { for (i = e->value1 - 1; i > e->value2; i--) @@ -1340,7 +1340,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamLRRight[frame]->drawMasked(i * kTileWidth - mx, e->y - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } break; @@ -1351,7 +1351,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamUDBottom[frame]->drawMasked(e->x - mx, i * kTileHeight - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } else { for (i = e->value1 + 1; i < e->value2; i++) @@ -1359,7 +1359,7 @@ void aiDiverterDraw(AIEntity *e, int mx, int my) { onScreen += g_hdb->_ai->_gfxLaserbeamLRLeft[frame]->drawMasked(i * kTileWidth - mx, e->y - my); if (onScreen) { g_hdb->_sound->playSoundEx(SND_LASER_LOOP, kLaserChannel, true); - warning("STUB: Set Laser onscreen to true"); + g_hdb->_ai->_laserOnScreen = true; } } break; diff --git a/engines/hdb/ai-funcs.cpp b/engines/hdb/ai-funcs.cpp index ed5183fb27..fd44017e5e 100644 --- a/engines/hdb/ai-funcs.cpp +++ b/engines/hdb/ai-funcs.cpp @@ -923,7 +923,7 @@ void AI::animateEntity(AIEntity *e) { e->touchpWait = kPlayerTouchPWait; } } - warning("STUB: animateEntity: Set laser_rescan to true"); + _laserRescan = true; break; default: debug(9, "animateEntity: Unintended Type"); @@ -1157,7 +1157,8 @@ void AI::animateEntity(AIEntity *e) { case AI_MAGIC_EGG: case AI_ICE_BLOCK: case AI_DIVERTER: - warning("STUB: animateEntity: Set _laserRescan to true"); + if (g_hdb->_map->laserBeamExist(e->tileX, e->tileY)) + _laserRescan = true; break; default: debug(9, "animateEntity: Unintended State"); diff --git a/engines/hdb/ai-init.cpp b/engines/hdb/ai-init.cpp index 075096cd46..85fd370e60 100644 --- a/engines/hdb/ai-init.cpp +++ b/engines/hdb/ai-init.cpp @@ -786,6 +786,9 @@ bool AI::init() { // laser beam _gfxLaserbeamUD[0] = _gfxLaserbeamUD[1] = _gfxLaserbeamLR[0] = _gfxLaserbeamLR[1] = NULL; + _laserRescan = false; + _laserOnScreen = false; + _dummyPlayer.type = AI_GUY; _dummyLaser.type = AI_LASERBEAM; strcpy(_dummyPlayer.entityName, "Virtual Player"); diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h index 098b4d3ab0..be55122754 100644 --- a/engines/hdb/ai.h +++ b/engines/hdb/ai.h @@ -1209,6 +1209,9 @@ public: TeleInfo _teleporters[kMaxTeleporters]; int _numTeleporters; + // Virtual Player + AIEntity _dummyPlayer, _dummyLaser; + bool _laserRescan, _laserOnScreen; AutoAction _autoActions[kMaxAutoActions]; @@ -1223,9 +1226,6 @@ public: Common::Array<HereT *> *_hereList; Common::Array<Trigger *> *_triggerList; - // Virtual Player - AIEntity _dummyPlayer, _dummyLaser; - char _youGotBuffer[32]; // For printing the text of entities that are removed // Cinematic Variables |