#8031 closed patch
missing screen effects
Reported by: | SF/roever | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Indiana Jones 4 |
Description
Hi,
I've just implemented the 4 missing screen effects that were mentioned in
https://sourceforge.net/forum/forum.php?thread_id=724766&forum_id=115756
The patch is relatively untested because I have no savegame in indy4 that is inside atlantis to test.
but i temporarily replacd the dissolve effect with the scroller to see all transitions at the start of indy when the statue is opened. so there is a chance that is works.
for the effects i needed to add a new function to the system classes. they do move the screen contents by a few pixels around.
I've tried to implement the function for all backends but only tested for SDL and X11
Ticket imported from: #602595. Ticket imported from: patches/136.
Attachments (5)
Change History (15)
by , 22 years ago
Attachment: | patch_screeneffects.diff added |
---|
comment:1 by , 22 years ago
This is not working correctly at all - you move the full screen contents, including areas which are in fact outside of virtual screen 0 (e.g. the verbs), which means that e.g. the verbs will be scrolled out, which is definitly not correct.
So the least you'd have to do would be to reimplement move_screen to take an additional "height" parameter that describes the height of the area in which scrolling should be performed.
comment:2 by , 22 years ago
it doesn't matter (at least not in FOA, because it's full screen there.
I don't know what it is like in DOTT.
But ok, I'll try to add a hight parameter and scroll only the top height pixel rows
comment:3 by , 22 years ago
In fact it would be better if you add a full rect parameter,i.e. to constrain scrolling to a rect.
This way it'll be much more flexible, and you can optimize drawing (it is *very* slow over here): instead of scrolling everything and copying everything each turn, you just scroll the remaining parts, and only copy the parts that were just left "free" by the stuff moved away.
comment:4 by , 22 years ago
I made an optimized version of move_screen for the SDL port (it's taking a height paramter already), which is almost twice as fast as the old one over here (I did some time tests where I removed the waitForTimer() calls, used steps of 1, and then use get_msecs to time how long scrollEffect took for a scroll up). You might want to use that :-)
comment:5 by , 22 years ago
Gah, just ignore my previous two comments:
* I think it's completly sufficient if you add a "height" parameter to move_screen * the atteched move_screen source is incorrect/not working properly
by , 22 years ago
Attachment: | patch_screeneffects3.diff added |
---|
next version of patch (split screen and optimisation)
comment:6 by , 22 years ago
New version of patch appended. it does contain the new height parameter for the move_screen function (only for sdl at the moment) and an optimisation of the drawing of the new image. only the necesary parts are drawn
it's still untested in the intended situations. I am working on reaching the places in FOA and DOTT but that takes time
comment:7 by , 22 years ago
All right: last tweaks. this time it's tested in DOTT. there are all 4 directions available with gap at the bottom for the verbs. they do all work.
i've implemented the move_screen function for all backends except mac, but only tested for x11 and sdl
the thing that's missing now is maybe a test for FOA fullscreen scroll in the outer ring of atlantis.
comment:8 by , 22 years ago
full screen scrolling in indy 4 in the dessert works too. so if there are no formal complaints i think it can be applied.
comment:9 by , 22 years ago
Status: | new → closed |
---|
comment:10 by , 6 years ago
Component: | → Engine: SCUMM |
---|---|
Game: | → Indiana Jones 4 |
patch against august 30. cvs version