diff options
-rw-r--r-- | engines/hdb/ai-funcs.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/hdb/ai-funcs.cpp b/engines/hdb/ai-funcs.cpp index b114390549..77485f7bf0 100644 --- a/engines/hdb/ai-funcs.cpp +++ b/engines/hdb/ai-funcs.cpp @@ -1197,6 +1197,7 @@ void AI::animateEntity(AIEntity *e) { addAnimateTarget(e->x, e->y, 0, 3, ANIM_NORMAL, false, false, GROUP_STEAM_PUFF_SIT); removeEntity(e); g_hdb->_sound->playSound(SND_BARREL_MELTING); + return; } } } else if ((flags & kFlagLightMelt) && e->type == AI_LIGHTBARREL) { @@ -1237,11 +1238,12 @@ void AI::animateEntity(AIEntity *e) { return; } else { // Make it float and splash in water + e->state = STATE_FLOATING; addAnimateTarget(e->x, e->y, 0, 3, ANIM_NORMAL, false, false, GROUP_WATER_SPLASH_SIT); floatEntity(e, STATE_FLOATING); g_hdb->_sound->playSound(SND_SPLASH); - return; } + } // If it is floating downstream, keep moving it if (flags & (kFlagPushRight | kFlagPushLeft | kFlagPushUp | kFlagPushDown)) { @@ -1306,7 +1308,6 @@ void AI::animateEntity(AIEntity *e) { e->moveSpeed = kPushMoveSpeed >> 1; setEntityGoal(e, e->tileX + xv, e->tileY + yv); e->state = state; - } } } } else if (((flags = g_hdb->_map->getMapBGTileFlags(e->tileX, e->tileY)) & kFlagWater) && (e->type == AI_MAGIC_EGG || e->type == AI_ICE_BLOCK)) { |