MUTATIONOFJB: Fix play animation command.

This commit is contained in:
Ľubomír Remák 2019-02-03 23:35:43 +01:00
parent 66400e7422
commit d18c83e8b8
6 changed files with 11 additions and 9 deletions

View file

@ -40,8 +40,8 @@ bool PlayAnimationCommandParser::parse(const Common::String &line, ScriptParseCo
if (line.size() < 11 || (!line.hasPrefix("FLB ") && !line.hasPrefix("FLX "))) if (line.size() < 11 || (!line.hasPrefix("FLB ") && !line.hasPrefix("FLX ")))
return false; return false;
const uint8 fromFrame = (uint8) atoi(line.c_str() + 4); const int fromFrame = atoi(line.c_str() + 4);
const uint8 toFrame = (uint8) atoi(line.c_str() + 8); const int toFrame = atoi(line.c_str() + 8);
command = new PlayAnimationCommand(fromFrame, toFrame); command = new PlayAnimationCommand(fromFrame, toFrame);
return true; return true;

View file

@ -37,14 +37,14 @@ public:
class PlayAnimationCommand : public SeqCommand { class PlayAnimationCommand : public SeqCommand {
public: public:
PlayAnimationCommand(uint8 fromFrame, uint8 toFrame) : _fromFrame(fromFrame), _toFrame(toFrame) {} PlayAnimationCommand(int fromFrame, int toFrame) : _fromFrame(fromFrame), _toFrame(toFrame) {}
const Common::String &getName() const; const Common::String &getName() const;
virtual ExecuteResult execute(ScriptExecutionContext &scriptExecCtx) override; virtual ExecuteResult execute(ScriptExecutionContext &scriptExecCtx) override;
virtual Common::String debugString() const override; virtual Common::String debugString() const override;
private: private:
uint8 _fromFrame; int _fromFrame;
uint8 _toFrame; int _toFrame;
}; };
} }

View file

@ -40,7 +40,7 @@ bool SetObjectFrameCommandParser::parse(const Common::String &line, ScriptParseC
return false; return false;
const uint8 objectId = (uint8) atoi(line.c_str() + 8); const uint8 objectId = (uint8) atoi(line.c_str() + 8);
const uint8 frame = (uint8) atoi(line.c_str() + 11); const unsigned int frame = atoi(line.c_str() + 11);
command = new SetObjectFrameCommand(objectId, frame); command = new SetObjectFrameCommand(objectId, frame);
return true; return true;

View file

@ -155,6 +155,7 @@ struct Object : public Common::Serializable {
uint8 _numFrames; uint8 _numFrames;
/** /**
* Low 8 bits of the 16-bit starting room frame (FS register). * Low 8 bits of the 16-bit starting room frame (FS register).
* This is in the room frame space.
* *
* @see _roomFrameMSB * @see _roomFrameMSB
*/ */
@ -168,7 +169,7 @@ struct Object : public Common::Serializable {
/** /**
* Current animation frame (CA register). * Current animation frame (CA register).
* *
* @note Absolute index to the frame space. Numbered from 1. * @note Index in the shared object frame space. Numbered from 1.
*/ */
uint8 _currentFrame; uint8 _currentFrame;
/** X coordinate of the object rectangle (XX register). */ /** X coordinate of the object rectangle (XX register). */
@ -183,6 +184,7 @@ struct Object : public Common::Serializable {
uint16 _WX; uint16 _WX;
/** /**
* High 8 bits of the 16-bit starting room frame (WY register). * High 8 bits of the 16-bit starting room frame (WY register).
* This is in the room frame space.
* *
* @see _roomFrameLSB * @see _roomFrameLSB
*/ */

View file

@ -181,7 +181,7 @@ void Room::drawStatic(Static *const stat) {
drawFrames(frame, frame, staticArea, 0xC0); // Hardcoded threshold. drawFrames(frame, frame, staticArea, 0xC0); // Hardcoded threshold.
} }
void Room::drawFrames(uint8 fromFrame, uint8 toFrame, const Common::Rect &area, uint8 threshold) { void Room::drawFrames(int fromFrame, int toFrame, const Common::Rect &area, uint8 threshold) {
GameData &gameData = _game->getGameData(); GameData &gameData = _game->getGameData();
Scene *const scene = gameData.getCurrentScene(); Scene *const scene = gameData.getCurrentScene();

View file

@ -64,7 +64,7 @@ public:
* @param stat Static. * @param stat Static.
*/ */
void drawStatic(Static *stat); void drawStatic(Static *stat);
void drawFrames(uint8 fromFrame, uint8 toFrame, const Common::Rect &area = Common::Rect(), uint8 threshold = 0xFF); void drawFrames(int fromFrame, int toFrame, const Common::Rect &area = Common::Rect(), uint8 threshold = 0xFF);
void initialDraw(); void initialDraw();
void redraw(bool useBackgroundBuffer = true); void redraw(bool useBackgroundBuffer = true);
private: private: