aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/screen_item32.cpp
AgeCommit message (Collapse)Author
2019-08-11SCI32: Fix Mirrored Pic Drawingsluicebox
Fixes bug #10748
2017-10-06SCI32: Clean up scriptWidth/scriptHeight/screenWidth/screenHeightColin Snover
This removes the unnecessary Buffer subclass and stops most places where the output buffer was being interrogated about dimensions instead of GfxFrameout.
2017-10-06SCI32: Clean up ScreenItemColin Snover
* Rewrap comments to 80 columns * Clarify comments where possible * Use smart pointers where appropriate
2017-09-30SCI32: Fix support for RAMA demoColin Snover
Fixes Trac#10251.
2017-09-29SCI32: Fix bad text rendering in RAMAColin Snover
In SCI3, Sierra removed the ability of the main renderer to automatically scale CelObjs with different source resolutions. Instead, in SCI3, all CelObjs are treated as having the same resolution as the screen (i.e. 640x480). In all SCI3 games other than RAMA, keeping the code paths for resolution-dependent scaling is not a problem because all the assets and game code are correctly designed to use the same 640x480 resolution throughout. RAMA, on the other hand, was written with the text subsystem set to a resolution of 630x450 (Phant1's screen resolution), and in SSCI, resolution-dependent scaling code was not removed from the *text* subsystem. As a result, RAMA's game scripts rely on the slightly larger scaled dimensions coming out of the text system when determining the size of screen items for rendering, and then also rely on the main renderer ignoring the 630x450 resolution baked into the bitmaps generated by the text subsystem when drawing them to the screen.
2017-09-10SCI: Remove dead codeColin Snover
2017-07-18SCI32: Fix kIsOnMe crashes in LSL7 About screenColin Snover
2017-05-27SCI32: Minor cleanup to plane debug informationColin Snover
2017-04-23SCI32: Reset ScreenItem cel type when updating from a VM objectColin Snover
In Phant2, when going to email on Curtis's office computer, a screen item that contained a bitmap on the last frame was updated to contain a view on the next frame. This crashed the engine when it tried to reuse the old disposed bitmap instead of the new view because the cel type was never changed from kCelTypeMem to kCelTypeView.
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
2017-01-16SCI32: Fix handling of negative z-indexesColin Snover
Fixes the ego disappearing behind the castle doors in MGDX.
2017-01-12SCI32: Fix crash trying to clip invalid rects generated by transitionsColin Snover
In PQ4CD, when leaving the shooting range through the front door, some transition screen items will be generated that have invalid dimensions. SSCI simply clips these rectangles to zero.
2016-12-19SCI32: Improve ScreenItem missing resource errorColin Snover
2016-12-19SCI32: Add support for alternate graphics selectorsColin Snover
Used by at least Phantasmagoria 2.
2016-12-19SCI32: Change plane and screen item sorting algorithmColin Snover
SSCI's last resort comparison here was to compare the object IDs of planes & screen items, but this randomly breaks (at least) the "you have died" dialog at the end of Phant1, and text & buttons in Hoyle5, even in SSCI itself. This commit changes last resort comparison to use a monotonically increasing ID instead, which keeps objects with identical priority & z-index in creation order when compared. Fixes Trac#9585.
2016-10-09SCI32: Clarify some identifiersColin Snover
transparentColor -> skipColor displace -> origin scaledWidth -> xResolution scaledHeight -> yResolution
2016-09-29SCI32: Clean up scaling flagsColin Snover
2016-08-23SCI32: Fix crash in Torin, chapter 4, catapult scene (via ScreenItem)Filippos Karapetis
loopNo/celNo are set to unsigned integers in ScreenItem::setFromObject in SSCI, thus their value will be adjusted when it's negative, like in this case
2016-07-10SCI32: Add support for blacklined videoColin Snover
Ow. My eyeballs.
2016-07-01SCI32: Fix bad rendering of subtitle backgrounds in TorinColin Snover
The way dimensions of scaled screen items are calculated changed over the lifetime of SSCI. In early low-resolution and mixed-resolution games, scaled drawing needed to use at a global cadence across the entire screen to ensure proper alignment, but in later games (like Torin), local scaling of individual screen items seems to be the way scaling is performed.
2016-06-30SCI32: Implement engine-accurate screen item list sortingColin Snover
It seems highly probable that there are later SCI games that use the "hi res" rendering path, so sorting and unsorting of ScreenItemLists needs to be accurate.
2016-06-30SCI32: Add low resolution constantsColin Snover
In a few places in the graphics system, fixed low-resolution values are used instead of the game script resolution.
2016-06-21SCI32: Implement kScrollWindowWillem Jan Palenstijn
These should be all the actually used subfunctions. Co-authored-by: Colin Snover <github.com@zetafleet.com>
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-05-27SCI32: Add explicit checks for null pointersColin Snover
CID 1351617, 1351618, 1351619, 1351620, 1351621, 1351622, 1354791.
2016-05-27SCI32: Use better name for fixed priority fieldColin Snover
The old name matches the selector, but isn’t as clear.
2016-03-18SCI32: Fix crashes in kIsOnMe caused by stale CelObjsColin Snover
2016-03-13SCI32: Clarify the purpose of scaling ratios used in ScreenItemColin Snover
2016-03-10SCI32: Remove side-effect-abusing calls to ScreenItem::getCelObjColin Snover
2016-03-10SCI32: Implement kSetNowSeenColin Snover
2016-03-08SCI: Add missing namespace comments in graphics/.Johannes Schickel
2016-03-08SCI32: Clean up kIsOnMe and fix rounding bugColin Snover
The implementation was not correctly rounding the scaled position with mulru, leading to occasionally incorrect hit detection at the boundaries of boxes.
2016-03-06SCI32: Fix memory leaksColin Snover
2016-03-06SCI32: Fix missing digits in plane item list debug outputColin Snover
2016-03-06SCI32: Implement kEditTextColin Snover
2016-03-02SCI32: Review rect rounding in Plane and ScreenItemColin Snover
These changes should cause ScummVM to be more accurate in edge case rounding.
2016-02-27SCI32: Clear InfoFlagViewVisible after updating ScreenItemWillem Jan Palenstijn
2016-02-27SCI: Remove a TODO in GK1 that has been resolved properly nowFilippos Karapetis
2016-02-21SCI32: Add a bit more debug info to errors + screenitemsMartin Kiewitz
2016-02-20SCI: Document and disable the unverified code used in GK1Filippos Karapetis
2016-02-20SCI: Add a better explanation of the visibility code used in GK1Filippos Karapetis
2016-02-20SCI: Handle the "visible" object selector. Fixes the inventory in GK1Filippos Karapetis
2016-02-18SCI: Minor cleanupColin Snover
1. Reorder member initialisations to match class member order 2. Use #pragma mark instead of comments for annotating sections 3. Remove useless >=0 checks on unsigned types
2016-02-18SCI: Fix some rect off-by-onesColin Snover
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover