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 ")))
return false;
const uint8 fromFrame = (uint8) atoi(line.c_str() + 4);
const uint8 toFrame = (uint8) atoi(line.c_str() + 8);
const int fromFrame = atoi(line.c_str() + 4);
const int toFrame = atoi(line.c_str() + 8);
command = new PlayAnimationCommand(fromFrame, toFrame);
return true;

View file

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

View file

@ -40,7 +40,7 @@ bool SetObjectFrameCommandParser::parse(const Common::String &line, ScriptParseC
return false;
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);
return true;

View file

@ -155,6 +155,7 @@ struct Object : public Common::Serializable {
uint8 _numFrames;
/**
* Low 8 bits of the 16-bit starting room frame (FS register).
* This is in the room frame space.
*
* @see _roomFrameMSB
*/
@ -168,7 +169,7 @@ struct Object : public Common::Serializable {
/**
* 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;
/** X coordinate of the object rectangle (XX register). */
@ -183,6 +184,7 @@ struct Object : public Common::Serializable {
uint16 _WX;
/**
* High 8 bits of the 16-bit starting room frame (WY register).
* This is in the room frame space.
*
* @see _roomFrameLSB
*/

View file

@ -181,7 +181,7 @@ void Room::drawStatic(Static *const stat) {
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();
Scene *const scene = gameData.getCurrentScene();

View file

@ -64,7 +64,7 @@ public:
* @param stat Static.
*/
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 redraw(bool useBackgroundBuffer = true);
private: