Script buffer data is modified after a script is loaded by savegame operations, and, in SCI16, by string operations. Casting away const to allow these mutations to happen is not a very good design, so this patch just changes the privately held reference to data to be mutable. (Public accessors still return immutable data.)
This flag was used in SSCI to read from VRAM instead of from the back buffer when a mouse interrupt was received in the middle of a back buffer update. Since ScummVM controls when mouse events are received via polling, it is not possible to receive a mouse event in the middle of back buffer updates, so this code is unnecessary for the engine to work properly.
This also fixes Valgrind warnings about use of uninitialized memory at the start of the game, caused by not filling the cursor memory buffers because `_frameNowVisible` was false until the first frame was rendered.
SCI: Use the var count from the instance's class in SCI1.1-2.1 when looking up selectors
At least some versions of Island of Dr Brain have a bMessager instance in script 0 with a var count greater than that of its class. This probably should never happen since it means the object has a variable with no corresponding selector.
The next commit adds some extra sanity checking code to object initialization, to warn on any other games where this happens.
SCI32: Allow resource maps with missing corresponding volumes
GK2 on Steam comes with an extra bogus resource map file which would previously cause ScummVM to refuse to load the game due to a mismatch in the number of map & volume files. This does not cause any harm, but is a pain for users (since it requires them to manually delete the file, and it will be recreated if a user runs the Steam game file integrity check), so allow the game to load with a warning instead.