Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: scummvm/scummvm
Choose a Base Repository
scummvm/scummvm
0xf1sh/scummvm
AlbanBedel/scummvm
Alphard-o/scummvm
AndywinXp/scummvm
BLooperZ/scummvm
BenCastricum/scummvm
CatalystG/scummvm
CeRiAl/scummvm
Coworker/scummvm
Cpasjuste/scummvm
Cruel/scummvm
Deledrius/scummvm
DrItanium/scummvm
DrMcCoy/scummvm
Drenn1/scummvm
Fyre91/scummvm
GNUtoo/scummvm
Henne/scummvm
Joefish/scummvm
JoshTheAggie/scummvm
LubomirR/scummvm
Lybr4/scummvm
MaddTheSane/scummvm
Marisa-Chan/scummvm
MestreLion/scummvm
MrHuu/scummvm-3ds
Nitrus/scummvm
OmerMor/scummvm
Prilkop/scummvm-pink
PyrokinesisStudio/scummvm
RichieSams/scummvm
Risca/scummvm
ShaunOfTheLive/scummvm
SimSaw/scummvm
St0rmcrow/scummvm
Strangerke/scummvm
SupSuper/scummvm
Tea23/scummvm
Templier/scummvm
Termimad/scummvm
Tkachov/scummvm
TomFrost/scummvm
VonBluebaugh/scummvm
WayneRSH/scummvm
YakBizzarro/scummvm
ZsKokos/scummvm
adventuregamestudio/scummvm
ajax16384/scummvm
albrechtf/scummvm
alcherk/scummvm
alexbevi/scummvm
angjerden/scummvm-opensky
anguslees/scummvm
antoniou79/scummvm
athrxx/scummvm
bSr43/scummvm
beholdnec/scummvm-funhouse
berenm/scummvm
bgK/scummvm
bluddy/scummvm
bluegr/scummvm
byunsangho/scummvm
chkr-private/scummvm
chrilith/scummvm
chrisws/scummvm
clone2727/scummvm
craigsc/scummvm-rg350
crazyp/scummvm
criezy/scummvm
danzat/scummvm
dhewg/scummvm
digitall/scummvm
dividedmind/scummvm
djwillis/scummvm
dmgamm/scummvm
dreammaster/scummvm
dyllad/scummvm
edheldil/scummvm
enginmanap/scummvm
eriktorbjorn/scummvm
fivearrows/scummvm
fuzzie/scummvm
gbraad/scummvm
geunyul/scummvm
gitter-badger/scummvm
giucam/scummvm
goldmojo/scummvm-rg350
goops17/scummvm
grayfoxier/scummvm
hchen1014/scummvm
heather162/scummvm
hooby3dfx/scummvm
hoteacristi/scummvm
idimiter/scummvm
infernuslord/scummvm
inisider/scummvm
jakimushka/scummvm
jammm/scummvm
jasonschroeder/scummvm
javisar/scummvm
jbanes/scummvm
jcwilk/scummvm
jenshnielsen/scummvm
jhhoward/scummvm
jiskattema/scummvm
jmglogow/scummvm
jnourry/scummvm
johndoe123/scummvm
johndrinkwater/scummvm-steamlink
juj/emscripten-scummvm
jvprat/scummvm
jweinberg/scummvm
kelmer44/scummvm
khbecker/scummvm
kintera/scummvm
klusark/scummvm
kpeatt/emscripten-scummvm
krawler602/scummvm
libretro/scummvm
lordhoto/scummvm
lukecharman/scummvm
madmoose/scummvm
mauimauer/scummvm
mborjesson/scummvm
mcb30/scummvm
mcgamez88/scummvm
mcnicholls/scummvm
megaboy/scummvm
michailBs/scummvm
midstream/scummvm
miguelgonz/scummvm
mikeconley/emscripten-scummvm
mikicompany/scummvm
mokerjoke/scummvm
monnerat/scummvm
monocodus-demonstrations/scummvm
murgo/scummvm
mynameisfashanu/scummvm
nakioman/scummvm
nexapps/scummvm
nikitin23/scummvm
norbertbajko/scummvm
nukeykt/scummvm
onlyjob/scummvm
peres/scummvm
phoenixtail26/scummvm
qwzybug/scummvm
rasky/scummvm
rayzer86/scummvm
remmythical/emscripten-scummvm
ress/scummvm
rkmarvin/scummvm
robertmegone/scummvm
rofl0r/scummvm
rolph-recto/scummvm
roman5566/scummvm
rsn8887/scummvm
rundfunk47/scummvm
sact/scummvm
salty-horse/scummvm
sathieu/scummvm
saucjedi/scummvm
scott-t/scummvm
scummvm-director/scummvm
seriesParallel/scummvm
sev-/scummvm
singron/scummvm
sirlemonhead/scummvm
skristiansson/scummvm
somaen/scummvm
ssilverm/scummvm
stevenhoefel/scummvm
superg/scummvm
swkim01/scummvm-kor
tafuri/scummvm
tcarey/scummvm-1
timofonic/scummvm
tiqpit/scummvm
tobiatesan/scummvm
tobigun/scummvm
tommimi/scummvm
tsoliman/scummvm
ttcremers/scummvm
upthorn/scummvm
vanfanel/scummvm
vcosta/scummvm
vinterstum/scummvm
vladborovtsov/scummvm
vyadh/scummvm
weakdancer/scummvm
whiterandrek/scummvm
widar/scummvm
wjp/scummvm
xesf/scummvm-asylum
yaz0r/scummvm
yinsimei/scummvm
zach-morris/scummvm
zekizeki2010/scummvm
zeldin/scummvm
Nothing to show
base: 6ce4f58f891b
head repository: scummvm/scummvm
Choose a Head Repository
scummvm/scummvm
0xf1sh/scummvm
AlbanBedel/scummvm
Alphard-o/scummvm
AndywinXp/scummvm
BLooperZ/scummvm
BenCastricum/scummvm
CatalystG/scummvm
CeRiAl/scummvm
Coworker/scummvm
Cpasjuste/scummvm
Cruel/scummvm
Deledrius/scummvm
DrItanium/scummvm
DrMcCoy/scummvm
Drenn1/scummvm
Fyre91/scummvm
GNUtoo/scummvm
Henne/scummvm
Joefish/scummvm
JoshTheAggie/scummvm
LubomirR/scummvm
Lybr4/scummvm
MaddTheSane/scummvm
Marisa-Chan/scummvm
MestreLion/scummvm
MrHuu/scummvm-3ds
Nitrus/scummvm
OmerMor/scummvm
Prilkop/scummvm-pink
PyrokinesisStudio/scummvm
RichieSams/scummvm
Risca/scummvm
ShaunOfTheLive/scummvm
SimSaw/scummvm
St0rmcrow/scummvm
Strangerke/scummvm
SupSuper/scummvm
Tea23/scummvm
Templier/scummvm
Termimad/scummvm
Tkachov/scummvm
TomFrost/scummvm
VonBluebaugh/scummvm
WayneRSH/scummvm
YakBizzarro/scummvm
ZsKokos/scummvm
adventuregamestudio/scummvm
ajax16384/scummvm
albrechtf/scummvm
alcherk/scummvm
alexbevi/scummvm
angjerden/scummvm-opensky
anguslees/scummvm
antoniou79/scummvm
athrxx/scummvm
bSr43/scummvm
beholdnec/scummvm-funhouse
berenm/scummvm
bgK/scummvm
bluddy/scummvm
bluegr/scummvm
byunsangho/scummvm
chkr-private/scummvm
chrilith/scummvm
chrisws/scummvm
clone2727/scummvm
craigsc/scummvm-rg350
crazyp/scummvm
criezy/scummvm
danzat/scummvm
dhewg/scummvm
digitall/scummvm
dividedmind/scummvm
djwillis/scummvm
dmgamm/scummvm
dreammaster/scummvm
dyllad/scummvm
edheldil/scummvm
enginmanap/scummvm
eriktorbjorn/scummvm
fivearrows/scummvm
fuzzie/scummvm
gbraad/scummvm
geunyul/scummvm
gitter-badger/scummvm
giucam/scummvm
goldmojo/scummvm-rg350
goops17/scummvm
grayfoxier/scummvm
hchen1014/scummvm
heather162/scummvm
hooby3dfx/scummvm
hoteacristi/scummvm
idimiter/scummvm
infernuslord/scummvm
inisider/scummvm
jakimushka/scummvm
jammm/scummvm
jasonschroeder/scummvm
javisar/scummvm
jbanes/scummvm
jcwilk/scummvm
jenshnielsen/scummvm
jhhoward/scummvm
jiskattema/scummvm
jmglogow/scummvm
jnourry/scummvm
johndoe123/scummvm
johndrinkwater/scummvm-steamlink
juj/emscripten-scummvm
jvprat/scummvm
jweinberg/scummvm
kelmer44/scummvm
khbecker/scummvm
kintera/scummvm
klusark/scummvm
kpeatt/emscripten-scummvm
krawler602/scummvm
libretro/scummvm
lordhoto/scummvm
lukecharman/scummvm
madmoose/scummvm
mauimauer/scummvm
mborjesson/scummvm
mcb30/scummvm
mcgamez88/scummvm
mcnicholls/scummvm
megaboy/scummvm
michailBs/scummvm
midstream/scummvm
miguelgonz/scummvm
mikeconley/emscripten-scummvm
mikicompany/scummvm
mokerjoke/scummvm
monnerat/scummvm
monocodus-demonstrations/scummvm
murgo/scummvm
mynameisfashanu/scummvm
nakioman/scummvm
nexapps/scummvm
nikitin23/scummvm
norbertbajko/scummvm
nukeykt/scummvm
onlyjob/scummvm
peres/scummvm
phoenixtail26/scummvm
qwzybug/scummvm
rasky/scummvm
rayzer86/scummvm
remmythical/emscripten-scummvm
ress/scummvm
rkmarvin/scummvm
robertmegone/scummvm
rofl0r/scummvm
rolph-recto/scummvm
roman5566/scummvm
rsn8887/scummvm
rundfunk47/scummvm
sact/scummvm
salty-horse/scummvm
sathieu/scummvm
saucjedi/scummvm
scott-t/scummvm
scummvm-director/scummvm
seriesParallel/scummvm
sev-/scummvm
singron/scummvm
sirlemonhead/scummvm
skristiansson/scummvm
somaen/scummvm
ssilverm/scummvm
stevenhoefel/scummvm
superg/scummvm
swkim01/scummvm-kor
tafuri/scummvm
tcarey/scummvm-1
timofonic/scummvm
tiqpit/scummvm
tobiatesan/scummvm
tobigun/scummvm
tommimi/scummvm
tsoliman/scummvm
ttcremers/scummvm
upthorn/scummvm
vanfanel/scummvm
vcosta/scummvm
vinterstum/scummvm
vladborovtsov/scummvm
vyadh/scummvm
weakdancer/scummvm
whiterandrek/scummvm
widar/scummvm
wjp/scummvm
xesf/scummvm-asylum
yaz0r/scummvm
yinsimei/scummvm
zach-morris/scummvm
zekizeki2010/scummvm
zeldin/scummvm
Nothing to show
compare: 87cac81c5c85
  • 2 commits
  • 2 files changed
  • 0 commit comments
  • 1 contributor
Showing with 46 additions and 26 deletions.
  1. +6 −4 engines/chewy/graphics.cpp
  2. +40 −22 engines/chewy/scene.cpp
@@ -89,10 +89,12 @@ void Graphics::drawTransparent(uint16 x, uint16 y, byte *data, uint16 width, uin
::Graphics::Surface *screen = g_system->lockScreen();
for (uint curX = 0; curX < width; curX++) {
for (uint curY = 0; curY < height; curY++) {
byte *src = data + (curY * width) + curX;
byte *dst = (byte *)screen->getBasePtr(curX + x, curY + y);
if (*src != transparentColor)
*dst = *src;
if (curX + x < 320 && curY + y < 200) {
byte *src = data + (curY * width) + curX;
byte *dst = (byte *)screen->getBasePtr(curX + x, curY + y);
if (*src != transparentColor)
*dst = *src;
}
}
}
g_system->unlockScreen();
@@ -40,17 +40,31 @@ namespace Chewy {

// Animated details - scene animations
struct AnimatedDetails {
uint16 x;
uint16 y;
// 66 bytes animated details - TODO
int16 x;
int16 y;
byte startFlag; // 0: no animation
byte repeat;
int16 startSprite;
int16 endSprite;
int16 spriteCount;
uint16 delay;
uint16 delayCount;
uint16 reverse; // 0: play normally, 1: play in reverse
uint16 timerStart; // seconds until detail is started (0: no timer)
uint16 zIndex;
byte loadFlag; // 0: load animation in memory immediately, 1: load animation in memory when it is played
byte zoom;
// 2 * 3 * 7 = 42 bytes sound data - TODO
byte showOneFrame; // show a sprite, 0: none, 1: before animation, 2: after animation
byte currentFrame;
};

// Static details - scene sprites and props
struct StaticDetails {
int16 x;
int16 y;
int16 spriteNum;
uint16 z;
uint16 zIndex;
byte hide;
// 1 byte dummy
};
@@ -102,8 +116,8 @@ void Scene::draw() {
// Background
_vm->_graphics->drawImage("episode1.tgp", _curScene);

// Static details
for (uint16 i = 0; i < MAX_DETAILS; i++) {
// Static details
StaticDetails s = _sceneInfo->staticDetails[i];
if (s.spriteNum >= 0 && s.x >= 0 && s.y >= 0 && !s.hide)
_vm->_graphics->drawSprite(Common::String::format("det%d.taf", _curScene), s.spriteNum, s.x, s.y);
@@ -112,21 +126,17 @@ void Scene::draw() {
// TODO: These are all hardcoded for now
_vm->_graphics->drawSprite("det1.taf", 0, 200, 100);
_vm->_graphics->loadFont("6x8.tff");
_vm->_graphics->drawText("This is a test", 200, 80);
//_vm->_graphics->drawText("This is a test", 200, 80);

_vm->_graphics->setDescSurface(Common::Point(-1, -1));
}

void Scene::updateMouse(Common::Point coords) {
_vm->_graphics->restoreDescSurface();

// Animated details
// TODO: handle these

// Static details
for (uint16 i = 0; i < MAX_HOTSPOTS; i++) {
//_vm->_graphics->drawRect(_sceneInfo->hotspot[i].rect, 0); // debug

if (_sceneInfo->hotspot[i].rect.contains(coords) && _sceneInfo->hotspot[i].resource < kATSTextMax) {
if (coords.y >= 8) {
_vm->_graphics->setDescSurface(Common::Point(coords.x, coords.y - 8));
@@ -161,17 +171,31 @@ void Scene::loadSceneInfo() {

// Animated details
for (int i = 0; i < MAX_DETAILS; i++) {
_sceneInfo->animatedDetails[i].x = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].y = indexFile.readUint16LE();
indexFile.skip(66); // animated details info - TODO: read these
_sceneInfo->animatedDetails[i].x = indexFile.readSint16LE();
_sceneInfo->animatedDetails[i].y = indexFile.readSint16LE();
_sceneInfo->animatedDetails[i].startFlag = indexFile.readByte();
_sceneInfo->animatedDetails[i].repeat = indexFile.readByte();
_sceneInfo->animatedDetails[i].startSprite = indexFile.readSint16LE();
_sceneInfo->animatedDetails[i].endSprite = indexFile.readSint16LE();
_sceneInfo->animatedDetails[i].spriteCount = indexFile.readSint16LE();
_sceneInfo->animatedDetails[i].delay = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].delayCount = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].reverse = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].timerStart = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].zIndex = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].loadFlag = indexFile.readByte();
_sceneInfo->animatedDetails[i].zoom = indexFile.readByte();
indexFile.skip(42); // 2 * 3 * 7 = 42 bytes sound data - TODO
_sceneInfo->animatedDetails[i].showOneFrame = indexFile.readUint16LE();
_sceneInfo->animatedDetails[i].currentFrame = indexFile.readUint16LE();
}

// Static details
for (int i = 0; i < MAX_DETAILS; i++) {
_sceneInfo->staticDetails[i].x = indexFile.readSint16LE();
_sceneInfo->staticDetails[i].y = indexFile.readSint16LE();
_sceneInfo->staticDetails[i].spriteNum = indexFile.readSint16LE();
_sceneInfo->staticDetails[i].z = indexFile.readUint16LE();
_sceneInfo->staticDetails[i].zIndex = indexFile.readUint16LE();
_sceneInfo->staticDetails[i].hide = indexFile.readByte();
indexFile.readByte(); // padding
}
@@ -189,18 +213,12 @@ void Scene::loadSceneInfo() {
// Hotspot descriptions
for (int i = 0; i < MAX_HOTSPOTS; i++) {
_sceneInfo->hotspot[i].resource = indexFile.readUint16LE() + 4;

_sceneInfo->hotspot[i].desc = "";

if (_sceneInfo->hotspot[i].resource < kATSTextMax) {
TextEntry *entry = text->getText(_curScene + kADSTextMax, _sceneInfo->hotspot[i].resource);
if (entry)
_sceneInfo->hotspot[i].desc = entry->text;
else
_sceneInfo->hotspot[i].desc = Common::String::format("Hotspot %d", _sceneInfo->hotspot[i].resource);
} else {
// TODO: Handle these types of hotspot descriptions
_sceneInfo->hotspot[i].desc = "";
//warning("Hotspot %d has an invalid description resource (%d)", i, _sceneInfo->hotspot[i].resource);
//_sceneInfo->hotspot[i].desc = Common::String::format("Hotspot %d", _sceneInfo->hotspot[i].resource);
}
}

No commit comments for this range

You can’t perform that action at this time.