diff options
author | Bertrand Augereau | 2011-09-04 16:39:38 +0200 |
---|---|---|
committer | Bertrand Augereau | 2011-09-04 16:42:43 +0200 |
commit | a2a873b94dd5f8a203d940a7c4ff38b06e127437 (patch) | |
tree | d036bc33c204ecf4581c35ef814f6665312ff5dc /engines/dreamweb | |
parent | 8f263ab5e6647d7267cdbf15bf4450b311286f9a (diff) | |
download | scummvm-rg350-a2a873b94dd5f8a203d940a7c4ff38b06e127437.tar.gz scummvm-rg350-a2a873b94dd5f8a203d940a7c4ff38b06e127437.tar.bz2 scummvm-rg350-a2a873b94dd5f8a203d940a7c4ff38b06e127437.zip |
Internal: 'findsource' is pure C++
Diffstat (limited to 'engines/dreamweb')
-rw-r--r-- | engines/dreamweb/sprite.cpp | 20 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 3 | ||||
-rw-r--r-- | engines/dreamweb/talk.cpp | 2 |
3 files changed, 8 insertions, 17 deletions
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index 4ec900ca85..3c3d148214 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -494,28 +494,20 @@ void DreamGenContext::facerightway() { data.byte(kLeavedirection) = dir; } -void DreamGenContext::findsource() { +Frame *DreamGenContext::findsource() { uint16 currentFrame = data.word(kCurrentframe); if (currentFrame < 160) { - ds = data.word(kReel1); data.word(kTakeoff) = 0; + return (Frame *)segRef(data.word(kReel1)).ptr(0, 0); } else if (currentFrame < 320) { - ds = data.word(kReel2); data.word(kTakeoff) = 160; + return (Frame *)segRef(data.word(kReel2)).ptr(0, 0); } else { - ds = data.word(kReel3); data.word(kTakeoff) = 320; + return (Frame *)segRef(data.word(kReel3)).ptr(0, 0); } } -Frame *DreamGenContext::findsourceCPP() { - push(ds); - findsource(); - Frame *result = (Frame *)ds.ptr(0, 0); - ds = pop(); - return result; -} - Reel *DreamGenContext::getreelstart() { Reel *reel = (Reel *)segRef(data.word(kReels)).ptr(kReellist + data.word(kReelpointer) * sizeof(Reel) * 8, sizeof(Reel)); return reel; @@ -525,7 +517,7 @@ void DreamGenContext::showreelframe(Reel *reel) { uint16 x = reel->x + data.word(kMapadx); uint16 y = reel->y + data.word(kMapady); data.word(kCurrentframe) = reel->frame(); - Frame *source = findsourceCPP(); + Frame *source = findsource(); uint16 frame = data.word(kCurrentframe) - data.word(kTakeoff); showframe(source, x, y, frame, 8); } @@ -545,7 +537,7 @@ void DreamGenContext::showgamereel(ReelRoutine *routine) { const Frame *DreamGenContext::getreelframeax(uint16 frame) { data.word(kCurrentframe) = frame; - Frame *source = findsourceCPP(); + Frame *source = findsource(); uint16 offset = data.word(kCurrentframe) - data.word(kTakeoff); return source + offset; } diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 7057c478bf..8fd15989c9 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -96,8 +96,7 @@ void widedoor(Sprite *sprite, SetObject *objData); void lockeddoorway(Sprite *sprite, SetObject *objData); void liftsprite(Sprite *sprite, SetObject *objData); - void findsource(); - Frame *findsourceCPP(); + Frame *findsource(); void showgamereel(); void showgamereel(ReelRoutine *routine); void showreelframe(Reel *reel); diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp index 91291e024a..78b296afe6 100644 --- a/engines/dreamweb/talk.cpp +++ b/engines/dreamweb/talk.cpp @@ -31,7 +31,7 @@ uint16 DreamGenContext::getpersframe(uint8 index) { void DreamGenContext::convicons() { uint8 index = data.byte(kCharacter) & 127; data.word(kCurrentframe) = getpersframe(index); - Frame *frame = findsourceCPP(); + Frame *frame = findsource(); uint16 frameNumber = (data.word(kCurrentframe) - data.word(kTakeoff)) & 0xff; showframe(frame, 234, 2, frameNumber, 0); } |