In Pentgram RenderSurface was intended to be an interface with the possiblity of alternate implementations to the software-render derived classes. Removing this will allow for further removal of now-redundant code.
This is a simple renaming with no functionality change. I originally named
some classes Remorse* but they were also useful as-is in Regret. This gives
them the more generic Cru prefix for consistency with a bunch of other classes
that already use it.
Also add the customizations to the tookHit function that exist in No Regret -
particularly, different SFX that get played depending on the NPC shape.
RollingThunder is just a stub process for now - needs implementing.
Try to use more of the built-in ScummVM rendering pipeline and remove redundant
types where possible. Unfortunately this is a bit of a mega-commit because all
the pieces were tied together, but the main changes are:
* Remove the Texture types, as they add little over ManagedSurface
* Remove the ScalerGump as we no longer use it - we should be using the
built-in ScummVM scalers
* Remove the Scaler types - the only remaining user after removing ScalerGump
was in hte AVI player. There we manually add the Crusader style interlaced
scaling, which was an outstanding TODO anyway.
* Remove now-unused functions from the RenderSurface family
* Remove the "default" mouse cursor as we never use it in ScummVM
* Remove the memset_n header which duplicates Common::Fill functions (fixes
#11969)
* Remove the fixed-width bitmap fonts which were used for the Pentagram
console.
I've tested the following things that this had the potential to break:
* U8 game, credits, movies, minimap, and ttf rendering
* Crusader game and movies
* Debug tools (shape viewer, touch-highlight)
Currently there is a lot of duplicated code, but this allows the Crusader
movement to be adjusted a lot to match the original without breaking U8
movement.
This implementation is from No Remorse - have not compared with No Regret,
although its combat.dat file is identical so expect not many differences. It's
also not complete yet (see TODOs in code), but it's most of the way there.
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.