We postpone actual drawing until the frame finishes. At this point some of
the surfaces might have been freed and the pointers are no longer valid.
Use reference counting to ensure that queue surfaces are still valid
Thanks to -=CHE@TER=- for reporting and providing the triggering save
and instructions.
- Remove static sprite 0x50C027A8 Scene2803/Scene2803Small because the resource doesn't exist!
- Remove some old comments
- Fix resource extData handling which fixes some crashes
- Enable reusing deleted sound/music slots in SoundMan (was disabled for debugging)
- Add microtiles to the screen update to eliminate overdraw
(microtiles code taken from the Toltecs engine)
- Fix sprite dimensions in AsScene1402PuzzleBox which caused a crash
- Fix screen shaking in Scene1402
(the puzzle box and bridge parts now shake along :)
- Use addSoundItem/addMusicItem in the SoundMan instead of
directly using push_back on the resp. arrays
- Remove old code and comments
- processDelta() to updateBounds()
- getRect() to getCollisionBounds()
- _drawRect to _drawOffset
- _rect to _collisionBounds
- _deltaRect to _collisionBoundsOffset
- Remove _name field from Entity (wasn't really maintained by me and
became useless)
- Remove obsolete TODOs
- Add STICK_LAST_FRAME constant for better readability
- Remove commented out callbackList TODOs (these were so far never
used with over 90% of the game implemented)
- Give better names to animation callback functions/vars
- Give better names to animation functions (previously known as subXXXX - not completed yet)
- Add dumpAllResources (which is a lie, since it only dumps animations for now)
- More renaming to come
- Introduce Scene::insertStaticSprite to create static sprites instead of the old "addSprite(new StaticSprite" (not used everywhere yet)
- Introduce macro InsertKlayman to create the Klayman object
- Change sendMessage semantics from "receiver->sendMessage(num,arg,sender)" to "sendMessage(receiver,num,arg)", the sender is always the sending object ("this")
- Similar changes using macros will follow
- And fixed a bug in the elevator
- Add "heavy debug" output to Entity (display which update/message handler is called)
- Also add more debug output
- Error out when a StaticData resource could not be found
- Start to implement KmScene1001
- Implement queryPositionSprite and queryPositionRectList
- Implement message list related code (setting and running them)
- Access to message params now with accessors (so compatible types can be converted)