aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/draw.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-04-15 00:12:09 +0000
committerTravis Howell2007-04-15 00:12:09 +0000
commitfe6b6323fa5f89e240b7face2d00a8abeccce7f4 (patch)
tree288be761572044e38c666a330a9588805e64ffdf /engines/agos/draw.cpp
parent2aeb84f12a8c5f585399be8a4b4087f45ce27e13 (diff)
downloadscummvm-rg350-fe6b6323fa5f89e240b7face2d00a8abeccce7f4.tar.gz
scummvm-rg350-fe6b6323fa5f89e240b7face2d00a8abeccce7f4.tar.bz2
scummvm-rg350-fe6b6323fa5f89e240b7face2d00a8abeccce7f4.zip
Cleanup.
svn-id: r26478
Diffstat (limited to 'engines/agos/draw.cpp')
-rw-r--r--engines/agos/draw.cpp76
1 files changed, 24 insertions, 52 deletions
diff --git a/engines/agos/draw.cpp b/engines/agos/draw.cpp
index 4b548d64ba..578ea74dcc 100644
--- a/engines/agos/draw.cpp
+++ b/engines/agos/draw.cpp
@@ -27,6 +27,7 @@
#include "agos/agos.h"
#include "agos/intern.h"
+#include "agos/vga.h"
namespace AGOS {
@@ -53,8 +54,7 @@ byte *AGOSEngine::getScaleBuf() {
void AGOSEngine::animateSprites() {
VgaSprite *vsp;
VgaPointersEntry *vpe;
- const byte *vc_ptr_org = _vcPtr;
- uint16 params[5]; // parameters to vc10
+ VC10_state state;
if (_paletteFlag == 2)
_paletteFlag = 1;
@@ -84,25 +84,13 @@ void AGOSEngine::animateSprites() {
_vgaCurSpriteId = vsp->id;
_vgaCurSpritePriority = vsp->priority;
- params[0] = readUint16Wrapper(&vsp->image);
- if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
- params[1] = readUint16Wrapper(&vsp->x);
- params[2] = readUint16Wrapper(&vsp->y);
- params[3] = READ_BE_UINT16(&vsp->flags);
- } else {
- params[1] = readUint16Wrapper(&vsp->palette);
- params[2] = readUint16Wrapper(&vsp->x);
- params[3] = readUint16Wrapper(&vsp->y);
-
- if (getGameType() == GType_SIMON1) {
- params[4] = READ_BE_UINT16(&vsp->flags);
- } else {
- *(byte *)(&params[4]) = (byte)vsp->flags;
- }
- }
+ state.image = vsp->image;
+ state.palette = (vsp->palette & 15) * 16;
+ state.x = vsp->x;
+ state.y = vsp->y;
+ state.flags = vsp->flags;
- _vcPtr = (const byte *)params;
- vc10_draw();
+ drawImage_init(&state);
vsp++;
}
@@ -111,14 +99,12 @@ void AGOSEngine::animateSprites() {
memset(_backBuf, 0, _screenWidth * _screenHeight);
_updateScreen = true;
- _vcPtr = vc_ptr_org;
}
void AGOSEngine::animateSpritesDebug() {
VgaSprite *vsp;
VgaPointersEntry *vpe;
- const byte *vc_ptr_org = _vcPtr;
- uint16 params[5]; // parameters to vc10_draw
+ VC10_state state;
if (_paletteFlag == 2)
_paletteFlag = 1;
@@ -137,38 +123,25 @@ void AGOSEngine::animateSpritesDebug() {
if (vsp->image)
printf("id:%5d image:%3d base-color:%3d x:%3d y:%3d flags:%x\n",
vsp->id, vsp->image, vsp->palette, vsp->x, vsp->y, vsp->flags);
- params[0] = readUint16Wrapper(&vsp->image);
- if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
- params[1] = readUint16Wrapper(&vsp->x);
- params[2] = readUint16Wrapper(&vsp->y);
- params[3] = READ_BE_UINT16(&vsp->flags);
- } else {
- params[1] = readUint16Wrapper(&vsp->palette);
- params[2] = readUint16Wrapper(&vsp->x);
- params[3] = readUint16Wrapper(&vsp->y);
-
- if (getGameType() == GType_SIMON1) {
- params[4] = READ_BE_UINT16(&vsp->flags);
- } else {
- *(byte *)(&params[4]) = (byte)vsp->flags;
- }
- }
- _vcPtr = (const byte *)params;
- vc10_draw();
+ state.image = vsp->image;
+ state.palette = (vsp->palette & 15) * 16;
+ state.x = vsp->x;
+ state.y = vsp->y;
+ state.flags = vsp->flags;
+
+ drawImage_init(&state);
vsp++;
}
_updateScreen = true;
- _vcPtr = vc_ptr_org;
}
void AGOSEngine::animateSpritesByY() {
VgaSprite *vsp;
VgaPointersEntry *vpe;
- const byte *vc_ptr_org = _vcPtr;
- uint16 params[5]; // parameters to vc10
+ VC10_state state;
int16 spriteTable[180][2];
byte *src;
@@ -216,6 +189,7 @@ void AGOSEngine::animateSpritesByY() {
}
vsp = &_vgaSprites[slot];
+
vsp->windowNum &= 0x7FFF;
vpe = &_vgaBufferPointers[vsp->zoneNum];
@@ -226,18 +200,16 @@ void AGOSEngine::animateSpritesByY() {
_vgaCurSpriteId = vsp->id;
_vgaCurSpritePriority = vsp->priority;
- params[0] = readUint16Wrapper(&vsp->image);
- params[1] = readUint16Wrapper(&vsp->palette);
- params[2] = readUint16Wrapper(&vsp->x);
- params[3] = readUint16Wrapper(&vsp->y);
- *(byte *)(&params[4]) = (byte)vsp->flags;
+ state.image = vsp->image;
+ state.palette = 0;
+ state.x = vsp->x;
+ state.y = vsp->y;
+ state.flags = vsp->flags;
- _vcPtr = (const byte *)params;
- vc10_draw();
+ drawImage_init(&state);
}
_updateScreen = true;
- _vcPtr = vc_ptr_org;
}
void AGOSEngine::displayBoxStars() {