Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: scummvm/scummvm
Choose a Base Repository
scummvm/scummvm
0xf1sh/scummvm
AlbanBedel/scummvm
Alphard-o/scummvm
AndywinXp/scummvm
BLooperZ/scummvm
BenCastricum/scummvm
CatalystG/scummvm
CeRiAl/scummvm
Coworker/scummvm
Cpasjuste/scummvm
Cruel/scummvm
Deledrius/scummvm
DrItanium/scummvm
DrMcCoy/scummvm
Drenn1/scummvm
Fyre91/scummvm
GNUtoo/scummvm
Henne/scummvm
Joefish/scummvm
JoshTheAggie/scummvm
LubomirR/scummvm
Lybr4/scummvm
MaddTheSane/scummvm
Marisa-Chan/scummvm
MestreLion/scummvm
MrHuu/scummvm-3ds
Nitrus/scummvm
OmerMor/scummvm
Prilkop/scummvm-pink
PyrokinesisStudio/scummvm
RichieSams/scummvm
Risca/scummvm
ShaunOfTheLive/scummvm
SimSaw/scummvm
St0rmcrow/scummvm
Strangerke/scummvm
SupSuper/scummvm
Tea23/scummvm
Templier/scummvm
Termimad/scummvm
Tkachov/scummvm
TomFrost/scummvm
VonBluebaugh/scummvm
WayneRSH/scummvm
YakBizzarro/scummvm
ZsKokos/scummvm
adventuregamestudio/scummvm
ajax16384/scummvm
albrechtf/scummvm
alcherk/scummvm
alexbevi/scummvm
angjerden/scummvm-opensky
anguslees/scummvm
antoniou79/scummvm
athrxx/scummvm
bSr43/scummvm
beholdnec/scummvm-funhouse
berenm/scummvm
bgK/scummvm
bluddy/scummvm
bluegr/scummvm
byunsangho/scummvm
chkr-private/scummvm
chrilith/scummvm
chrisws/scummvm
clone2727/scummvm
craigsc/scummvm-rg350
crazyp/scummvm
criezy/scummvm
danzat/scummvm
dhewg/scummvm
digitall/scummvm
dividedmind/scummvm
djwillis/scummvm
dmgamm/scummvm
dreammaster/scummvm
dyllad/scummvm
edheldil/scummvm
enginmanap/scummvm
eriktorbjorn/scummvm
fivearrows/scummvm
fuzzie/scummvm
gbraad/scummvm
geunyul/scummvm
gitter-badger/scummvm
giucam/scummvm
goldmojo/scummvm-rg350
goops17/scummvm
grayfoxier/scummvm
hchen1014/scummvm
heather162/scummvm
hooby3dfx/scummvm
hoteacristi/scummvm
idimiter/scummvm
infernuslord/scummvm
inisider/scummvm
jakimushka/scummvm
jammm/scummvm
jasonschroeder/scummvm
javisar/scummvm
jbanes/scummvm
jcwilk/scummvm
jenshnielsen/scummvm
jhhoward/scummvm
jiskattema/scummvm
jmglogow/scummvm
jnourry/scummvm
johndoe123/scummvm
johndrinkwater/scummvm-steamlink
juj/emscripten-scummvm
jvprat/scummvm
jweinberg/scummvm
kelmer44/scummvm
khbecker/scummvm
kintera/scummvm
klusark/scummvm
kpeatt/emscripten-scummvm
krawler602/scummvm
libretro/scummvm
lordhoto/scummvm
lukecharman/scummvm
madmoose/scummvm
mauimauer/scummvm
mborjesson/scummvm
mcb30/scummvm
mcgamez88/scummvm
mcnicholls/scummvm
megaboy/scummvm
michailBs/scummvm
midstream/scummvm
miguelgonz/scummvm
mikeconley/emscripten-scummvm
mikicompany/scummvm
mokerjoke/scummvm
monnerat/scummvm
monocodus-demonstrations/scummvm
murgo/scummvm
mynameisfashanu/scummvm
nakioman/scummvm
nexapps/scummvm
nikitin23/scummvm
norbertbajko/scummvm
nukeykt/scummvm
onlyjob/scummvm
peres/scummvm
phoenixtail26/scummvm
qwzybug/scummvm
rasky/scummvm
rayzer86/scummvm
remmythical/emscripten-scummvm
ress/scummvm
rkmarvin/scummvm
robertmegone/scummvm
rofl0r/scummvm
rolph-recto/scummvm
roman5566/scummvm
rsn8887/scummvm
rundfunk47/scummvm
sact/scummvm
salty-horse/scummvm
sathieu/scummvm
saucjedi/scummvm
scott-t/scummvm
scummvm-director/scummvm
seriesParallel/scummvm
sev-/scummvm
singron/scummvm
sirlemonhead/scummvm
skristiansson/scummvm
somaen/scummvm
ssilverm/scummvm
stevenhoefel/scummvm
superg/scummvm
swkim01/scummvm-kor
tafuri/scummvm
tcarey/scummvm-1
timofonic/scummvm
tiqpit/scummvm
tobiatesan/scummvm
tobigun/scummvm
tommimi/scummvm
tsoliman/scummvm
ttcremers/scummvm
upthorn/scummvm
vanfanel/scummvm
vcosta/scummvm
vinterstum/scummvm
vladborovtsov/scummvm
vyadh/scummvm
weakdancer/scummvm
whiterandrek/scummvm
widar/scummvm
wjp/scummvm
xesf/scummvm-asylum
yaz0r/scummvm
yinsimei/scummvm
zach-morris/scummvm
zekizeki2010/scummvm
zeldin/scummvm
Nothing to show
base: b1f7603263c3
head repository: scummvm/scummvm
Choose a Head Repository
scummvm/scummvm
0xf1sh/scummvm
AlbanBedel/scummvm
Alphard-o/scummvm
AndywinXp/scummvm
BLooperZ/scummvm
BenCastricum/scummvm
CatalystG/scummvm
CeRiAl/scummvm
Coworker/scummvm
Cpasjuste/scummvm
Cruel/scummvm
Deledrius/scummvm
DrItanium/scummvm
DrMcCoy/scummvm
Drenn1/scummvm
Fyre91/scummvm
GNUtoo/scummvm
Henne/scummvm
Joefish/scummvm
JoshTheAggie/scummvm
LubomirR/scummvm
Lybr4/scummvm
MaddTheSane/scummvm
Marisa-Chan/scummvm
MestreLion/scummvm
MrHuu/scummvm-3ds
Nitrus/scummvm
OmerMor/scummvm
Prilkop/scummvm-pink
PyrokinesisStudio/scummvm
RichieSams/scummvm
Risca/scummvm
ShaunOfTheLive/scummvm
SimSaw/scummvm
St0rmcrow/scummvm
Strangerke/scummvm
SupSuper/scummvm
Tea23/scummvm
Templier/scummvm
Termimad/scummvm
Tkachov/scummvm
TomFrost/scummvm
VonBluebaugh/scummvm
WayneRSH/scummvm
YakBizzarro/scummvm
ZsKokos/scummvm
adventuregamestudio/scummvm
ajax16384/scummvm
albrechtf/scummvm
alcherk/scummvm
alexbevi/scummvm
angjerden/scummvm-opensky
anguslees/scummvm
antoniou79/scummvm
athrxx/scummvm
bSr43/scummvm
beholdnec/scummvm-funhouse
berenm/scummvm
bgK/scummvm
bluddy/scummvm
bluegr/scummvm
byunsangho/scummvm
chkr-private/scummvm
chrilith/scummvm
chrisws/scummvm
clone2727/scummvm
craigsc/scummvm-rg350
crazyp/scummvm
criezy/scummvm
danzat/scummvm
dhewg/scummvm
digitall/scummvm
dividedmind/scummvm
djwillis/scummvm
dmgamm/scummvm
dreammaster/scummvm
dyllad/scummvm
edheldil/scummvm
enginmanap/scummvm
eriktorbjorn/scummvm
fivearrows/scummvm
fuzzie/scummvm
gbraad/scummvm
geunyul/scummvm
gitter-badger/scummvm
giucam/scummvm
goldmojo/scummvm-rg350
goops17/scummvm
grayfoxier/scummvm
hchen1014/scummvm
heather162/scummvm
hooby3dfx/scummvm
hoteacristi/scummvm
idimiter/scummvm
infernuslord/scummvm
inisider/scummvm
jakimushka/scummvm
jammm/scummvm
jasonschroeder/scummvm
javisar/scummvm
jbanes/scummvm
jcwilk/scummvm
jenshnielsen/scummvm
jhhoward/scummvm
jiskattema/scummvm
jmglogow/scummvm
jnourry/scummvm
johndoe123/scummvm
johndrinkwater/scummvm-steamlink
juj/emscripten-scummvm
jvprat/scummvm
jweinberg/scummvm
kelmer44/scummvm
khbecker/scummvm
kintera/scummvm
klusark/scummvm
kpeatt/emscripten-scummvm
krawler602/scummvm
libretro/scummvm
lordhoto/scummvm
lukecharman/scummvm
madmoose/scummvm
mauimauer/scummvm
mborjesson/scummvm
mcb30/scummvm
mcgamez88/scummvm
mcnicholls/scummvm
megaboy/scummvm
michailBs/scummvm
midstream/scummvm
miguelgonz/scummvm
mikeconley/emscripten-scummvm
mikicompany/scummvm
mokerjoke/scummvm
monnerat/scummvm
monocodus-demonstrations/scummvm
murgo/scummvm
mynameisfashanu/scummvm
nakioman/scummvm
nexapps/scummvm
nikitin23/scummvm
norbertbajko/scummvm
nukeykt/scummvm
onlyjob/scummvm
peres/scummvm
phoenixtail26/scummvm
qwzybug/scummvm
rasky/scummvm
rayzer86/scummvm
remmythical/emscripten-scummvm
ress/scummvm
rkmarvin/scummvm
robertmegone/scummvm
rofl0r/scummvm
rolph-recto/scummvm
roman5566/scummvm
rsn8887/scummvm
rundfunk47/scummvm
sact/scummvm
salty-horse/scummvm
sathieu/scummvm
saucjedi/scummvm
scott-t/scummvm
scummvm-director/scummvm
seriesParallel/scummvm
sev-/scummvm
singron/scummvm
sirlemonhead/scummvm
skristiansson/scummvm
somaen/scummvm
ssilverm/scummvm
stevenhoefel/scummvm
superg/scummvm
swkim01/scummvm-kor
tafuri/scummvm
tcarey/scummvm-1
timofonic/scummvm
tiqpit/scummvm
tobiatesan/scummvm
tobigun/scummvm
tommimi/scummvm
tsoliman/scummvm
ttcremers/scummvm
upthorn/scummvm
vanfanel/scummvm
vcosta/scummvm
vinterstum/scummvm
vladborovtsov/scummvm
vyadh/scummvm
weakdancer/scummvm
whiterandrek/scummvm
widar/scummvm
wjp/scummvm
xesf/scummvm-asylum
yaz0r/scummvm
yinsimei/scummvm
zach-morris/scummvm
zekizeki2010/scummvm
zeldin/scummvm
Nothing to show
compare: 637102d33b9a
Commits on Oct 18, 2013
Commits on Jun 13, 2014
Conflicts:
	engines/zvision/animation/rlf_animation.cpp
	engines/zvision/animation_control.h
	engines/zvision/core/console.cpp
	engines/zvision/core/events.cpp
	engines/zvision/cursors/cursor.cpp
	engines/zvision/cursors/cursor_manager.cpp
	engines/zvision/cursors/cursor_manager.h
	engines/zvision/fonts/truetype_font.cpp
	engines/zvision/graphics/render_manager.cpp
	engines/zvision/graphics/render_manager.h
	engines/zvision/inventory/inventory_manager.h
	engines/zvision/inventory_manager.h
	engines/zvision/meta_animation.h
	engines/zvision/module.mk
	engines/zvision/scripting/actions.cpp
	engines/zvision/scripting/control.h
	engines/zvision/scripting/controls/animation_control.cpp
	engines/zvision/scripting/controls/animation_control.h
	engines/zvision/scripting/controls/input_control.cpp
	engines/zvision/scripting/controls/lever_control.cpp
	engines/zvision/scripting/controls/timer_node.cpp
	engines/zvision/scripting/controls/timer_node.h
	engines/zvision/scripting/puzzle.h
	engines/zvision/scripting/scr_file_handling.cpp
	engines/zvision/scripting/script_manager.cpp
	engines/zvision/scripting/script_manager.h
	engines/zvision/sidefx.cpp
	engines/zvision/sound/zork_raw.cpp
	engines/zvision/sound/zork_raw.h
	engines/zvision/video/video.cpp
	engines/zvision/video/zork_avi_decoder.h
	engines/zvision/zvision.cpp
	engines/zvision/zvision.h
Commits on Nov 12, 2014
Commits on Dec 02, 2014
ZVISION: More complete engine implementation
Showing with 12,201 additions and 2,466 deletions.
  1. +133 −0 engines/zvision/animation/meta_animation.cpp
  2. +35 −23 engines/zvision/{scripting/controls/animation_control.h → animation/meta_animation.h}
  3. +153 −101 engines/zvision/animation/rlf_animation.cpp
  4. +22 −12 engines/zvision/animation/rlf_animation.h
  5. +2 −2 engines/zvision/archives/zfs_archive.cpp
  6. +1 −1 engines/zvision/archives/zfs_archive.h
  7. +29 −30 engines/zvision/core/console.cpp
  8. +208 −51 engines/zvision/core/events.cpp
  9. +765 −0 engines/zvision/core/menu.cpp
  10. +100 −1 engines/zvision/core/menu.h
  11. +89 −0 engines/zvision/core/midi.cpp
  12. +59 −0 engines/zvision/core/midi.h
  13. +119 −67 engines/zvision/core/save_manager.cpp
  14. +17 −3 engines/zvision/core/save_manager.h
  15. +275 −0 engines/zvision/core/search_manager.cpp
  16. +73 −0 engines/zvision/core/search_manager.h
  17. +53 −24 engines/zvision/cursors/cursor.cpp
  18. +20 −6 engines/zvision/cursors/cursor.h
  19. +101 −99 engines/zvision/cursors/cursor_manager.cpp
  20. +49 −28 engines/zvision/cursors/cursor_manager.h
  21. +110 −60 engines/zvision/detection.cpp
  22. +236 −5 engines/zvision/fonts/truetype_font.cpp
  23. +46 −3 engines/zvision/fonts/truetype_font.h
  24. +83 −0 engines/zvision/graphics/effect.h
  25. +174 −0 engines/zvision/graphics/effects/fog.cpp
  26. +52 −0 engines/zvision/graphics/effects/fog.h
  27. +110 −0 engines/zvision/graphics/effects/light.cpp
  28. +53 −0 engines/zvision/graphics/effects/light.h
  29. +146 −0 engines/zvision/graphics/effects/wave.cpp
  30. +51 −0 engines/zvision/graphics/effects/wave.h
  31. +844 −300 engines/zvision/graphics/render_manager.cpp
  32. +173 −165 engines/zvision/graphics/render_manager.h
  33. +64 −6 engines/zvision/graphics/render_table.cpp
  34. +15 −2 engines/zvision/graphics/render_table.h
  35. +28 −4 engines/zvision/module.mk
  36. +752 −137 engines/zvision/scripting/actions.cpp
  37. +233 −104 engines/zvision/scripting/actions.h
  38. +34 −19 engines/zvision/scripting/control.cpp
  39. +51 −54 engines/zvision/scripting/control.h
  40. +0 −263 engines/zvision/scripting/controls/animation_control.cpp
  41. +320 −0 engines/zvision/scripting/controls/fist_control.cpp
  42. +87 −0 engines/zvision/scripting/controls/fist_control.h
  43. +201 −0 engines/zvision/scripting/controls/hotmov_control.cpp
  44. +63 −0 engines/zvision/scripting/controls/hotmov_control.h
  45. +157 −43 engines/zvision/scripting/controls/input_control.cpp
  46. +27 −7 engines/zvision/scripting/controls/input_control.h
  47. +101 −95 engines/zvision/scripting/controls/lever_control.cpp
  48. +6 −13 engines/zvision/scripting/controls/lever_control.h
  49. +216 −0 engines/zvision/scripting/controls/paint_control.cpp
  50. +92 −0 engines/zvision/scripting/controls/paint_control.h
  51. +74 −24 engines/zvision/scripting/controls/push_toggle_control.cpp
  52. +18 −3 engines/zvision/scripting/controls/push_toggle_control.h
  53. +205 −0 engines/zvision/scripting/controls/safe_control.cpp
  54. +71 −0 engines/zvision/scripting/controls/safe_control.h
  55. +123 −0 engines/zvision/scripting/controls/save_control.cpp
  56. +56 −0 engines/zvision/scripting/controls/save_control.h
  57. +219 −0 engines/zvision/scripting/controls/slot_control.cpp
  58. +85 −0 engines/zvision/scripting/controls/slot_control.h
  59. +108 −0 engines/zvision/scripting/controls/titler_control.cpp
  60. +55 −0 engines/zvision/scripting/controls/titler_control.h
  61. +123 −0 engines/zvision/scripting/inventory.cpp
  62. +9 −2 engines/zvision/scripting/puzzle.h
  63. +183 −109 engines/zvision/scripting/scr_file_handling.cpp
  64. +631 −259 engines/zvision/scripting/script_manager.cpp
  65. +159 −38 engines/zvision/scripting/script_manager.h
  66. +36 −0 engines/zvision/scripting/sidefx.cpp
  67. +114 −0 engines/zvision/scripting/sidefx.h
  68. +207 −0 engines/zvision/scripting/sidefx/animation_node.cpp
  69. +84 −0 engines/zvision/scripting/sidefx/animation_node.h
  70. +109 −0 engines/zvision/scripting/sidefx/distort_node.cpp
  71. +63 −0 engines/zvision/scripting/sidefx/distort_node.h
  72. +240 −0 engines/zvision/scripting/sidefx/music_node.cpp
  73. +135 −0 engines/zvision/scripting/sidefx/music_node.h
  74. +56 −0 engines/zvision/scripting/sidefx/region_node.cpp
  75. +57 −0 engines/zvision/scripting/sidefx/region_node.h
  76. +86 −0 engines/zvision/scripting/sidefx/syncsound_node.cpp
  77. +56 −0 engines/zvision/scripting/sidefx/syncsound_node.h
  78. +22 −15 engines/zvision/scripting/{controls → sidefx}/timer_node.cpp
  79. +9 −5 engines/zvision/scripting/{controls → sidefx}/timer_node.h
  80. +175 −0 engines/zvision/scripting/sidefx/ttytext_node.cpp
  81. +73 −0 engines/zvision/scripting/sidefx/ttytext_node.h
  82. +143 −71 engines/zvision/sound/zork_raw.cpp
  83. +63 −25 engines/zvision/sound/zork_raw.h
  84. +108 −0 engines/zvision/subtitles/subtitles.cpp
  85. +27 −1 engines/zvision/subtitles/subtitles.h
  86. +24 −3 engines/zvision/{strings → text}/string_manager.cpp
  87. +11 −0 engines/zvision/{strings → text}/string_manager.h
  88. +549 −0 engines/zvision/text/text.cpp
  89. +100 −0 engines/zvision/text/text.h
  90. +6 −2 engines/zvision/utility/clock.h
  91. +6 −6 engines/zvision/utility/lzss_read_stream.cpp
  92. +1 −1 engines/zvision/utility/lzss_read_stream.h
  93. +2 −2 engines/zvision/utility/single_value_container.h
  94. +5 −5 engines/zvision/utility/utility.cpp
  95. +2 −2 engines/zvision/utility/utility.h
  96. +129 −0 engines/zvision/utility/win_keys.cpp
  97. +7 −3 engines/zvision/{inventory/inventory_manager.h → utility/win_keys.h}
  98. +33 −87 engines/zvision/video/video.cpp
  99. +12 −3 engines/zvision/video/zork_avi_decoder.cpp
  100. +20 −8 engines/zvision/video/zork_avi_decoder.h
  101. +391 −44 engines/zvision/zvision.cpp
  102. +93 −20 engines/zvision/zvision.h
@@ -0,0 +1,133 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

#include "common/scummsys.h"

#include "zvision/animation/meta_animation.h"

#include "zvision/zvision.h"
#include "zvision/graphics/render_manager.h"
#include "zvision/scripting/script_manager.h"
#include "zvision/animation/rlf_animation.h"
#include "zvision/video/zork_avi_decoder.h"

#include "video/video_decoder.h"

#include "graphics/surface.h"


namespace ZVision {

MetaAnimation::MetaAnimation(const Common::String &fileName, ZVision *engine)
: _fileType(RLF),
_curFrame(NULL) {
Common::String tmpFileName = fileName;
tmpFileName.toLowercase();
if (tmpFileName.hasSuffix(".rlf")) {
_fileType = RLF;
Common::File *_file = engine->getSearchManager()->openFile(tmpFileName);
_animation.rlf = new RlfAnimation(_file, false);
_frmDelay = _animation.rlf->frameTime();
} else if (tmpFileName.hasSuffix(".avi")) {
_fileType = AVI;
Common::File *_file = engine->getSearchManager()->openFile(tmpFileName);
_animation.avi = new ZorkAVIDecoder();
_animation.avi->loadStream(_file);
_frmDelay = 1000.0 / _animation.avi->getDuration().framerate();
} else {
warning("Unrecognized animation file type: %s", fileName.c_str());
}
}

MetaAnimation::~MetaAnimation() {
if (_fileType == RLF) {
delete _animation.rlf;
} else if (_fileType == AVI) {
delete _animation.avi;
}
}

uint MetaAnimation::frameCount() {
if (_fileType == RLF) {
return _animation.rlf->frameCount();
} else
return _animation.avi->getFrameCount();

}

uint MetaAnimation::width() {
if (_fileType == RLF) {
return _animation.rlf->width();
} else
return _animation.avi->getWidth();
}
uint MetaAnimation::height() {
if (_fileType == RLF) {
return _animation.rlf->height();
} else
return _animation.avi->getHeight();
}
uint32 MetaAnimation::frameTime() {
return _frmDelay;
}

void MetaAnimation::seekToFrame(int frameNumber) {
if (frameNumber >= (int)frameCount())
frameNumber = frameCount() - 1;

if (_fileType == RLF) {
_animation.rlf->seekToFrame(frameNumber);
} else
_animation.avi->seekToFrame(frameNumber);
}

const Graphics::Surface *MetaAnimation::decodeNextFrame() {
if (_fileType == RLF)
_curFrame = _animation.rlf->decodeNextFrame();
else
_curFrame = _animation.avi->decodeNextFrame();

return _curFrame;
}

const Graphics::Surface *MetaAnimation::getFrameData(uint frameNumber) {
if (frameNumber >= frameCount())
frameNumber = frameCount() - 1;

if (_fileType == RLF) {
_curFrame = _animation.rlf->getFrameData(frameNumber);
return _curFrame;
} else {
_animation.avi->seekToFrame(frameNumber);
_curFrame = _animation.avi->decodeNextFrame();
return _curFrame;
}
}

bool MetaAnimation::endOfAnimation() {
if (_fileType == RLF) {
return _animation.rlf->endOfAnimation();
} else
return _animation.avi->endOfVideo();
}

} // End of namespace ZVision
@@ -8,22 +8,25 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

#ifndef ZVISION_ANIMATION_CONTROL_H
#define ZVISION_ANIMATION_CONTROL_H
#ifndef ZVISION_METAANIM_NODE_H
#define ZVISION_METAANIM_NODE_H

#include "zvision/scripting/control.h"
#include "zvision/scripting/sidefx.h"
#include "zvision/zvision.h"
#include "common/rect.h"
#include "common/list.h"


namespace Common {
@@ -43,10 +46,21 @@ namespace ZVision {
class ZVision;
class RlfAnimation;

class AnimationControl : public Control {
class MetaAnimation {
public:
AnimationControl(ZVision *engine, uint32 controlKey, const Common::String &fileName);
~AnimationControl();
MetaAnimation(const Common::String &fileName, ZVision *engine);
~MetaAnimation();

struct playnode {
Common::Rect pos;
int32 slot;
int32 start;
int32 stop;
int32 loop;
int32 _curFrame;
int32 _delay;
Graphics::Surface *_scaled;
};

private:
enum FileType {
@@ -55,31 +69,29 @@ class AnimationControl : public Control {
};

private:
uint32 _animationKey;

union {
RlfAnimation *rlf;
Video::VideoDecoder *avi;
} _animation;

FileType _fileType;
uint _loopCount;
int32 _x;
int32 _y;

uint _accumulatedTime;
uint _currentLoop;
int32 _frmDelay;

Graphics::Surface *_cachedFrame;
bool _cachedFrameNeedsDeletion;
const Graphics::Surface *_curFrame;

public:
bool process(uint32 deltaTimeInMillis);

void setAnimationKey(uint32 animationKey) { _animationKey = animationKey; }
void setLoopCount(uint loopCount) { _loopCount = loopCount; }
void setXPos(int32 x) { _x = x; }
void setYPost(int32 y) { _y = y; }
uint frameCount();
uint width();
uint height();
uint32 frameTime();

void seekToFrame(int frameNumber);

const Graphics::Surface *decodeNextFrame();
const Graphics::Surface *getFrameData(uint frameNumber);

bool endOfAnimation();
};

} // End of namespace ZVision

Showing you all comments on commits in this comparison.

@clone2727

This comment has been minimized.

Copy link
Contributor

clone2727 commented on ac9b74d Jan 10, 2015

The bracket syntax is C99. Do all our platforms support this?

You can’t perform that action at this time.