diff options
author | uruk | 2014-06-09 23:54:45 +0200 |
---|---|---|
committer | uruk | 2014-06-09 23:54:45 +0200 |
commit | 12c531284b4108ce1935982a924971339bec188a (patch) | |
tree | 3922b67fa011d2244496f003ccf261aa452aec15 /engines | |
parent | 63fa2d4906dbe119c552e993ae0f4cd2a4079ddb (diff) | |
download | scummvm-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.cpp | 17 |
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) { |