From a2a873b94dd5f8a203d940a7c4ff38b06e127437 Mon Sep 17 00:00:00 2001 From: Bertrand Augereau Date: Sun, 4 Sep 2011 16:39:38 +0200 Subject: Internal: 'findsource' is pure C++ --- engines/dreamweb/sprite.cpp | 20 ++++++-------------- engines/dreamweb/stubs.h | 3 +-- engines/dreamweb/talk.cpp | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) (limited to 'engines') 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); } -- cgit v1.2.3