aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/sprite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/sprite.cpp')
-rw-r--r--engines/dreamweb/sprite.cpp42
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)));
}