mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-22 18:02:05 +00:00
LASTEXPRESS: Update Animation::process()
- Use Common::Rational to compute the current frame - Added check for _currentChunk != NULL - Add constructor to Chunk structure svn-id: r54245
This commit is contained in:
parent
dbb3e1dded
commit
a4d9d03601
@ -34,6 +34,8 @@
|
||||
#include "lastexpress/helpers.h"
|
||||
|
||||
#include "common/events.h"
|
||||
#include "common/rational.h"
|
||||
|
||||
#include "engines/engine.h"
|
||||
|
||||
namespace LastExpress {
|
||||
@ -104,10 +106,10 @@ bool Animation::process() {
|
||||
error("Trying to show an animation before loading data");
|
||||
|
||||
// TODO: substract the time paused by the GUI
|
||||
uint32 currentFrame = (uint32)(((float)(g_engine->_system->getMillis() - _startTime)) / 33.33f);
|
||||
int32 currentFrame = Common::Rational((g_engine->_system->getMillis() - _startTime) * 100, 3333).toInt();
|
||||
|
||||
// Process all chunks until the current frame
|
||||
while (!_changed && currentFrame > _currentChunk->frame && !hasEnded()) {
|
||||
while (!_changed && _currentChunk != NULL && currentFrame > _currentChunk->frame && !hasEnded()) {
|
||||
switch(_currentChunk->type) {
|
||||
//TODO: some info chunks are probably subtitle/sync related
|
||||
case kChunkTypeUnknown1:
|
||||
|
@ -69,6 +69,7 @@ private:
|
||||
|
||||
// despite their size field, info chunks don't have a payload
|
||||
enum ChunkType {
|
||||
kChunkTypeNone = 0,
|
||||
kChunkTypeUnknown1 = 1,
|
||||
kChunkTypeUnknown2 = 2,
|
||||
kChunkTypeAudioInfo = 3,
|
||||
@ -91,6 +92,12 @@ private:
|
||||
ChunkType type;
|
||||
uint16 frame;
|
||||
uint32 size;
|
||||
|
||||
Chunk() {
|
||||
type = kChunkTypeNone;
|
||||
frame = 0;
|
||||
size = 0;
|
||||
}
|
||||
};
|
||||
|
||||
void reset();
|
||||
|
Loading…
Reference in New Issue
Block a user