From 6bf14cf5477f55ccee4414d8b081cd6d71afd163 Mon Sep 17 00:00:00 2001 From: Harsh Bawari Date: Sat, 11 Jan 2020 21:05:55 +0530 Subject: GRIFFON: Fix slugginess in final boss and a crash when loading the Griffon.s03 map --- engines/griffon/dialogs.cpp | 1 + engines/griffon/engine.cpp | 2 ++ engines/griffon/input.cpp | 5 +++++ engines/griffon/resources.cpp | 6 ++++++ graphics/transparent_surface.cpp | 13 ------------- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/engines/griffon/dialogs.cpp b/engines/griffon/dialogs.cpp index 847377a024..be21015522 100644 --- a/engines/griffon/dialogs.cpp +++ b/engines/griffon/dialogs.cpp @@ -48,6 +48,7 @@ namespace Griffon { void GriffonEngine::title(int mode) { float xofs = 0; + _itemyloc = 0; bool exitTitle = false; rcSrc.left = 0; diff --git a/engines/griffon/engine.cpp b/engines/griffon/engine.cpp index a1eb5139ac..1f4b7cfe94 100644 --- a/engines/griffon/engine.cpp +++ b/engines/griffon/engine.cpp @@ -54,6 +54,7 @@ void Player::reset() { hp = 0; maxHp = 0; hpflash = 0; + hpflashb = 0; level = 0; maxLevel = 0; sword = 0; @@ -65,6 +66,7 @@ void Player::reset() { inventory[i] = 0; } attackStrength = 0; + itemselshade = 0; spellDamage = 0; swordDamage = 0; exp = 0; diff --git a/engines/griffon/input.cpp b/engines/griffon/input.cpp index 64c260b9c4..5caa5af99b 100644 --- a/engines/griffon/input.cpp +++ b/engines/griffon/input.cpp @@ -618,6 +618,11 @@ void GriffonEngine::checkTrigger() { _canUseKey = false; + for (int i = 0; i < kMaxFloat; i++) { + _floatText[i].framesLeft = 0; + _floatIcon[i].framesLeft = 0; + } + if (_triggerLoc[lx][ly] > -1) processTrigger(_triggerLoc[lx][ly]); } diff --git a/engines/griffon/resources.cpp b/engines/griffon/resources.cpp index 40f98223ea..4ce1c5d12d 100644 --- a/engines/griffon/resources.cpp +++ b/engines/griffon/resources.cpp @@ -192,6 +192,12 @@ void GriffonEngine::loadMap(int mapnum) { _spellInfo[i].frame = 0; _roomLock = false; + _saidLocked = false; + _saidJammed = false; + _itemSelOn = false; + _selEnemyOn = false; + _curItem = 0; + _player.itemselshade = 0; char name[256]; // read *.map file diff --git a/graphics/transparent_surface.cpp b/graphics/transparent_surface.cpp index eb8d3fe5ce..1ad1ed637c 100644 --- a/graphics/transparent_surface.cpp +++ b/graphics/transparent_surface.cpp @@ -749,43 +749,30 @@ void TransparentSurface::setAlphaMode(AlphaType mode) { /* - The below two functions are adapted from SDL_rotozoom.c, taken from SDL_gfx-2.0.18. - Its copyright notice: - ============================================================================= SDL_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces - Copyright (C) 2001-2012 Andreas Schiffler - This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - Andreas Schiffler -- aschiffler at ferzkopp dot net ============================================================================= - - The functions have been adapted for different structures and coordinate systems. - */ -- cgit v1.2.3