With these changes borders in Arthur and Shogun change colors like they did on the original interpreters. In addition, colors of an ornate initial in Zork Zero have been fixed.
My scheme works as follows:
Depending on the story ID certain pictures will be marked as 'color changers'. The respective picture numbers have been hard-coded in FrotzGfx::Get().
FrotzWnd maintains a map (m_mapColorChanger) to keep track of color changer pictures and their current locations.
Whenever the screen palette changes all pictures in the map are re-drawn.
When an area of the screen is erased all pictures located in this area are removed from the map.
The same thing happens when an area is scrolled. (This rule is needed for the initial in Zork Zero.)
To simplify my task I have made a number of changes in FrotzGfx -- most notably, when the Blorb file contains an 'APal' chunk, pictures with a color palette are no longer converted to true color.
With these changes borders in Arthur and Shogun change colors like they did on the original interpreters. In addition, colors of an ornate initial in Zork Zero have been fixed.
My scheme works as follows:
To simplify my task I have made a number of changes in FrotzGfx -- most notably, when the Blorb file contains an 'APal' chunk, pictures with a color palette are no longer converted to true color.