diff options
Diffstat (limited to 'engines/dreamweb/sprite.cpp')
-rw-r--r-- | engines/dreamweb/sprite.cpp | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp index e938f868a5..3b67bfbd72 100644 --- a/engines/dreamweb/sprite.cpp +++ b/engines/dreamweb/sprite.cpp @@ -21,8 +21,6 @@ */ #include "dreamweb/dreamweb.h" -#include "engines/util.h" -#include "graphics/surface.h" namespace DreamGen { @@ -90,17 +88,6 @@ Sprite *DreamGenContext::makesprite(uint8 x, uint8 y, uint16 updateCallback, uin return sprite; } -void DreamGenContext::makesprite() { // NB: returns new sprite in es:bx - Sprite *sprite = makesprite(si & 0xff, si >> 8, cx, dx, di); - - // Recover es:bx from sprite - es = data.word(kBuffers); - bx = kSpritetable; - Sprite *sprites = (Sprite *)es.ptr(bx, sizeof(Sprite) * 16); - bx += sizeof(Sprite) * (sprite - sprites); - // -} - void DreamGenContext::spriteupdate() { Sprite *sprites = spritetable(); sprites[0].hidden = data.byte(kRyanon); @@ -256,7 +243,7 @@ void DreamGenContext::aboutturn(Sprite *sprite) { data.byte(kFacing) = (data.byte(kFacing) + 1) & 7; sprite->b29 = 0; } else { - data.byte(kTurndirection) = -1; + data.byte(kTurndirection) = (uint8)-1; data.byte(kFacing) = (data.byte(kFacing) - 1) & 7; sprite->b29 = 0; } @@ -308,17 +295,17 @@ void DreamGenContext::random(Sprite *sprite, SetObject *objData) { } void DreamGenContext::doorway(Sprite *sprite, SetObject *objData) { - data.byte(kDoorcheck1) = -24; + data.byte(kDoorcheck1) = (uint8)-24; data.byte(kDoorcheck2) = 10; - data.byte(kDoorcheck3) = -30; + data.byte(kDoorcheck3) = (uint8)-30; data.byte(kDoorcheck4) = 10; dodoor(sprite, objData); } void DreamGenContext::widedoor(Sprite *sprite, SetObject *objData) { - data.byte(kDoorcheck1) = -24; + data.byte(kDoorcheck1) = (uint8)-24; data.byte(kDoorcheck2) = 24; - data.byte(kDoorcheck3) = -30; + data.byte(kDoorcheck3) = (uint8)-30; data.byte(kDoorcheck4) = 24; dodoor(sprite, objData); } @@ -501,7 +488,7 @@ void DreamGenContext::liftsprite(Sprite *sprite, SetObject *objData) { } void DreamGenContext::facerightway() { - PathNode *paths = getroomspathsCPP()->nodes; + PathNode *paths = getroomspaths()->nodes; uint8 dir = paths[data.byte(kManspath)].dir; data.byte(kTurntoface) = dir; data.byte(kLeavedirection) = dir; @@ -795,7 +782,7 @@ void DreamGenContext::madman() { ax = pop(); bx = pop(); es = pop(); - data.byte(kCombatcount) = -1; + data.byte(kCombatcount) = (uint8)-1; data.byte(kSpeechcount) = 0; } ++ax; @@ -824,7 +811,7 @@ void DreamGenContext::madman() { else { if (data.byte(kLastweapon) == 8) { data.byte(kCombatcount) = isCD() ? 72 : 70; - data.byte(kLastweapon) = -1; + data.byte(kLastweapon) = (uint8)-1; data.byte(kMadmanflag) = 1; ax = 67; } @@ -889,6 +876,19 @@ void DreamGenContext::checkone(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uin *type = tileData[2]; } +void DreamGenContext::getblockofpixel() { + al = getblockofpixel(cl, ch); +} + +uint8 DreamGenContext::getblockofpixel(uint8 x, uint8 y) { + uint8 flag, flagEx, type, flagX, flagY; + checkone(x + data.word(kMapxstart), y + data.word(kMapystart), &flag, &flagEx, &type, &flagX, &flagY); + if (flag & 1) + return 0; + else + return type; +} + void DreamGenContext::addtopeoplelist() { addtopeoplelist((ReelRoutine *)es.ptr(bx, sizeof(ReelRoutine))); } |