aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authoruruk2014-06-09 23:54:45 +0200
committeruruk2014-06-09 23:54:45 +0200
commit12c531284b4108ce1935982a924971339bec188a (patch)
tree3922b67fa011d2244496f003ccf261aa452aec15 /engines
parent63fa2d4906dbe119c552e993ae0f4cd2a4079ddb (diff)
downloadscummvm-rg350-12c531284b4108ce1935982a924971339bec188a.tar.gz
scummvm-rg350-12c531284b4108ce1935982a924971339bec188a.tar.bz2
scummvm-rg350-12c531284b4108ce1935982a924971339bec188a.zip
CGE2: Implement a couple of command handling functions.
Diffstat (limited to 'engines')
-rw-r--r--engines/cge2/snail.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/engines/cge2/snail.cpp b/engines/cge2/snail.cpp
index d41aa80aa7..3af4c88d37 100644
--- a/engines/cge2/snail.cpp
+++ b/engines/cge2/snail.cpp
@@ -422,7 +422,13 @@ void CGE2Engine::snGive(Sprite *spr, int val) {
}
void CGE2Engine::snGoto(Sprite *spr, int val) {
- warning("STUB: CGE2Engine::snGoto()");
+ if (spr) {
+ V3D eye = *_eye;
+ if (spr->_scene > 0)
+ setEye(*_eyeTab[spr->_scene]);
+ spr->gotoxyz(*_point[val]);
+ setEye(eye);
+ }
}
void CGE2Engine::snMove(Sprite *spr, V3D pos) {
@@ -446,7 +452,11 @@ void CGE2Engine::snMouse(int val) {
}
void CGE2Engine::snNNext(Sprite *spr, Action act, int val) {
- warning("STUB: CGE2Engine::snNNext()");
+ if (spr) {
+ if (val > 255)
+ val = spr->labVal(act, val >> 8);
+ spr->_actionCtrl[act]._ptr = val;
+ }
}
void CGE2Engine::snRNNext(Sprite *spr, int val) {
@@ -466,7 +476,8 @@ void CGE2Engine::snRmNear(Sprite *spr) {
}
void CGE2Engine::snRmMTake(Sprite *spr) {
- warning("STUB: CGE2Engine::snRmMTake()");
+ if (spr)
+ spr->_actionCtrl[kMTake]._cnt = 0;
}
void CGE2Engine::snRmFTake(Sprite *spr) {