diff options
author | Paweł Kołodziejski | 2003-02-22 20:57:57 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2003-02-22 20:57:57 +0000 |
commit | 0706785d6d0c09251450c3e564fedb2cf1b9751b (patch) | |
tree | 1f58065467b14e51e1accf5d38e4f751e8ed1818 | |
parent | fc20efecfee58ad3113ad97ce8f3e17d763b8f67 (diff) | |
download | scummvm-rg350-0706785d6d0c09251450c3e564fedb2cf1b9751b.tar.gz scummvm-rg350-0706785d6d0c09251450c3e564fedb2cf1b9751b.tar.bz2 scummvm-rg350-0706785d6d0c09251450c3e564fedb2cf1b9751b.zip |
improved o6_stampObject func
svn-id: r6635
-rw-r--r-- | scumm/script_v6.cpp | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 15ffc13e16..80b8daba30 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -2890,16 +2890,32 @@ void Scumm_v6::o6_pickOneOfDefault() } void Scumm_v6::o6_stampObject() { - // Full Throttle: FIXME - // Opcode is used when placing the bunny into the - // mine field. Some kind of drawBlastObject() wrapper - // also used at least once in the humongous games - int object, x, y, image; - object = pop(); - x = pop(); + int object, x, y, state; + + state = pop(); + if (state == 0) { + state = 1; + } y = pop(); - image = pop(); - warning("o6_stampObject: stub(%d at (%d,%d) image %d)", object, x, y, image); + x = pop(); + object = pop(); + if (object < 30) { + if (state == 0) { + state = 255; + } + warning("o6_stampObject: (%d at (%d,%d) scale %d)", object, x, y, state); + Actor *a = derefActor(object); + a->scalex = state; + a->scaley = state; + a->putActor(x, y, _currentRoom); // TODO +// drawActor(object, maskBufferPtr, x_y, scale_x_y); +// drawActor(object, mainBufferPtr, x_y, scale_x_y); + return; + } + + warning("o6_stampObject: (%d at (%d,%d) state %d)", object, x, y, state); + setObjectState(object, state, x, y); + drawObject(getObjectIndex(object), 0); } void Scumm_v6::o6_stopTalking() { |