aboutsummaryrefslogtreecommitdiff
path: root/sword2/function.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-05-12 06:30:16 +0000
committerTorbjörn Andersson2005-05-12 06:30:16 +0000
commitf45b23b63f01188066cfc2de02b5dce99b165ea9 (patch)
tree53b24c58e77b9baae580117d40699005d57177e9 /sword2/function.cpp
parent907dec571a2165debcb68ca48deef4b896f24f1d (diff)
downloadscummvm-rg350-f45b23b63f01188066cfc2de02b5dce99b165ea9.tar.gz
scummvm-rg350-f45b23b63f01188066cfc2de02b5dce99b165ea9.tar.bz2
scummvm-rg350-f45b23b63f01188066cfc2de02b5dce99b165ea9.zip
Moved some more animation stuff out of the Logic class and into the
increasingly misnamed Router class. (I'll fix the naming later. Probably.) svn-id: r18066
Diffstat (limited to 'sword2/function.cpp')
-rw-r--r--sword2/function.cpp56
1 files changed, 35 insertions, 21 deletions
diff --git a/sword2/function.cpp b/sword2/function.cpp
index da921ba4a4..eb10e46557 100644
--- a/sword2/function.cpp
+++ b/sword2/function.cpp
@@ -81,19 +81,19 @@ int32 Logic::fnSetSession(int32 *params) {
int32 Logic::fnBackSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], BACK_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), BACK_SPRITE);
return IR_CONT;
}
int32 Logic::fnSortSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], SORT_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), SORT_SPRITE);
return IR_CONT;
}
int32 Logic::fnForeSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], FORE_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), FORE_SPRITE);
return IR_CONT;
}
@@ -106,9 +106,7 @@ int32 Logic::fnRegisterMouse(int32 *params) {
// params: 0 pointer to ObjectMouse or 0 for no write to mouse
// list
- ObjectMouse *ob_mouse = (ObjectMouse *) decodePtr(params[0]);
-
- _vm->_mouse->registerMouse(ob_mouse, NULL);
+ _vm->_mouse->registerMouse((ObjectMouse *) decodePtr(params[0]), NULL);
return IR_CONT;
}
@@ -117,8 +115,11 @@ int32 Logic::fnAnim(int32 *params) {
// 1 pointer to object's graphic structure
// 2 resource id of animation file
- // 0 means normal forward anim
- return animate(params, false);
+ // Normal forward animation
+ return _router->doAnimate(
+ (ObjectLogic *) decodePtr(params[0]),
+ (ObjectGraphic *) decodePtr(params[1]),
+ params[2], false);
}
int32 Logic::fnRandom(int32 *params) {
@@ -324,8 +325,13 @@ int32 Logic::fnMegaTableAnim(int32 *params) {
// 2 pointer to object's mega structure
// 3 pointer to animation table
- // 0 means normal forward anim
- return megaTableAnimate(params, false);
+ // Normal forward anim
+ return _router->megaTableAnimate(
+ (ObjectLogic *) decodePtr(params[0]),
+ (ObjectGraphic *) decodePtr(params[1]),
+ (ObjectMega *) decodePtr(params[2]),
+ (uint32 *) decodePtr(params[3]),
+ false);
}
int32 Logic::fnAddMenuObject(int32 *params) {
@@ -428,7 +434,7 @@ int32 Logic::fnRegisterFrame(int32 *params) {
int32 Logic::fnNoSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], NO_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), NO_SPRITE);
return IR_CONT;
}
@@ -1663,8 +1669,13 @@ int32 Logic::fnReverseMegaTableAnim(int32 *params) {
// 2 pointer to object's mega structure
// 3 pointer to animation table
- // 1 means reverse anim
- return megaTableAnimate(params, true);
+ // Reverse anim
+ return _router->megaTableAnimate(
+ (ObjectLogic *) decodePtr(params[0]),
+ (ObjectGraphic *) decodePtr(params[1]),
+ (ObjectMega *) decodePtr(params[2]),
+ (uint32 *) decodePtr(params[3]),
+ true);
}
int32 Logic::fnReverseAnim(int32 *params) {
@@ -1672,8 +1683,11 @@ int32 Logic::fnReverseAnim(int32 *params) {
// 1 pointer to object's graphic structure
// 2 resource id of animation file
- // 1 means reverse anim
- return animate(params, true);
+ // Reverse anim
+ return _router->doAnimate(
+ (ObjectLogic *) decodePtr(params[0]),
+ (ObjectGraphic *) decodePtr(params[1]),
+ params[2], true);
}
/**
@@ -1731,25 +1745,25 @@ int32 Logic::fnSetStandbyCoords(int32 *params) {
int32 Logic::fnBackPar0Sprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], BGP0_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), BGP0_SPRITE);
return IR_CONT;
}
int32 Logic::fnBackPar1Sprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], BGP1_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), BGP1_SPRITE);
return IR_CONT;
}
int32 Logic::fnForePar0Sprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], FGP0_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), FGP0_SPRITE);
return IR_CONT;
}
int32 Logic::fnForePar1Sprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteStatus(params[0], FGP1_SPRITE);
+ _router->setSpriteStatus((ObjectGraphic *) decodePtr(params[0]), FGP1_SPRITE);
return IR_CONT;
}
@@ -2187,13 +2201,13 @@ int32 Logic::fnPlaySequence(int32 *params) {
int32 Logic::fnShadedSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteShading(params[0], SHADED_SPRITE);
+ _router->setSpriteShading((ObjectGraphic *) decodePtr(params[0]), SHADED_SPRITE);
return IR_CONT;
}
int32 Logic::fnUnshadedSprite(int32 *params) {
// params: 0 pointer to object's graphic structure
- setSpriteShading(params[0], UNSHADED_SPRITE);
+ _router->setSpriteShading((ObjectGraphic *) decodePtr(params[0]), UNSHADED_SPRITE);
return IR_CONT;
}