Commit Graph
43 Commits
Author SHA1 Message Date
Vladimir Serbinenko 750e2060bf NEVERHOOD: Fix crash on expiring animated sprite backref
Thanks a lot to -=CHE@TER=- for discovering this and excellent debugging
work.
2023-01-29 07:19:36 +01:00
Vladimir Serbinenko 1289b71437 NEVERHOOD: Fix crash on expiring surfaces.
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.
2023-01-19 19:29:40 +03:00
Vladimir Serbinenko 3d3a02483b NEVERHOOD: Fix subtitle outline color 2023-01-18 01:17:07 +03:00
Vladimir Serbinenko 5d6ba18008 NEVERHOOD: Support subtitles for sprites 2022-12-31 20:47:10 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 9dab832214 NEVERHOOD: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
johndoe123 b7884f2fba NEVERHOOD: Fix uninitialized variables in Sprite (bug #6663) 2014-06-30 13:09:59 +02:00
Johannes Schickel 6563171e7b NEVERHOOD: Make GPL headers consisten in themselves. 2014-02-18 02:39:36 +01:00
Filippos Karapetis 8d7b10f7c3 NEVERHOOD: Add names to some message IDs 2013-12-23 21:03:35 +02:00
Filippos Karapetis 40f1f3e0b1 NEVERHOOD: Fix uninitialized class members in AnimatedSprite - CID 1022296 2013-09-26 11:31:08 +03:00
Sven Hesse 989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Filippos Karapetis d00f5c0aa7 NEVERHOOD: Add a console command to display the current surfaces 2013-06-09 17:13:23 +03:00
johndoe123 f945448c7b NEVERHOOD: Change graphic resource draw method to get a Surface instead of separate pixels/pitch
- Merge SpriteResource::load and load2
2013-05-08 20:47:40 +02:00
johndoe123 b2934eb166 NEVERHOOD: Fix Klaymen "grow" animation after drinking the potion
- 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)
2013-05-08 20:47:38 +02:00
johndoe123 cc015e3d24 NEVERHOOD: Simplify resource loading
- Renamne and clean up
2013-05-08 20:47:38 +02:00
johndoe123 1904e944c5 NEVERHOOD: Add initCubeSymbolsPuzzle
- 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
2013-05-08 20:47:37 +02:00
johndoe123 1589e4fe7d NEVERHOOD: Add new method StaticSprite::loadSprite and use it instead of setting stuff "manually" 2013-05-08 20:47:34 +02:00
johndoe123 bf1371c9d4 NEVERHOOD: Rename and clean up fields in AnimFrameInfo 2013-05-08 20:47:34 +02:00
johndoe123 f24a6769c2 NEVERHOOD: Make use of NDrawRect::set 2013-05-08 20:47:33 +02:00
johndoe123 9ba7a7f1a1 NEVERHOOD: Rename stuff in Sprite:
- processDelta() to updateBounds()
- getRect() to getCollisionBounds()
- _drawRect to _drawOffset
- _rect to _collisionBounds
- _deltaRect to _collisionBoundsOffset
2013-05-08 20:47:33 +02:00
johndoe123 126a306c89 NEVERHOOD: Some cleanup:
- 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)
2013-05-08 20:47:32 +02:00
johndoe123 d1d1596fd1 NEVERHOOD: Add support for shadow sprites, used only for the shadow of the car/vehicle thing 2013-05-08 20:43:41 +02:00
johndoe123 dac95f3f73 NEVERHOOD: More renaming (mostly in Klayman and AnimatedSprite) 2013-05-08 20:40:03 +02:00
johndoe123 9cf2c83e5e NEVERHOOD: Major renaming:
- 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
2013-05-08 20:39:43 +02:00
johndoe123 1b2d496d18 NEVERHOOD: Try to clean up the clipRect stuff a little 2013-05-08 20:39:40 +02:00
johndoe123 c30e16628e NEVERHOOD: Add Module::updateChild and use it (in most places) 2013-05-08 20:39:39 +02:00
johndoe123 b757e22f88 NEVERHOOD: Multiple changes to make the game logic code cleaner (hopefully :)
- 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
2013-05-08 20:39:38 +02:00
johndoe123 d88836596d NEVERHOOD: More work on Module3000 and Scene3009 (incomplete) 2013-05-08 20:39:34 +02:00
johndoe123 bfd71cff6e NEVERHOOD: New modules Module1200, Module1400, Module1700 and Module1800
- Implement CollisionMan::removeSprite
2013-05-08 20:39:34 +02:00
johndoe123 438b6bb53c NEVERHOOD: Implement Module2300 (just a bunch of NavigationScenes)
- Fix Smacker player by using a SafeSubReadStream
- Fix NavigationMouse (cursors in type 1 were swapped)
2013-05-08 20:38:48 +02:00
johndoe123 71da221507 NEVERHOOD: Implement Scene1004
- Module1000 is now almost complete
2013-05-08 20:38:48 +02:00
johndoe123 a23b694c94 NEVERHOOD: Implement Scene1005
- Add FontSurface
- Add DataResource
- Fix NavigationScene, only accept input when interactive
2013-05-08 20:38:48 +02:00
johndoe123 db9e45706c NEVERHOOD: More work on Scene1002
- Implement NavigationMouse and NavigationLists
- Some renaming
2013-05-08 20:38:48 +02:00
johndoe123 8a5c4a84d0 NEVERHOOD: Implement color replace in AnimatedSprite
(used to disable a color in sprite drawing)
2013-05-08 20:38:47 +02:00
johndoe123 436f8952bb NEVERHOOD: More work on Scene1002, Klayman and the rest
- 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
2013-05-08 20:38:47 +02:00
johndoe123 92e08f21ed NEVERHOOD: Start with Scene1002 (a lot incomplete) 2013-05-08 20:38:47 +02:00
johndoe123 222cd4a651 NEVERHOOD: More work on Scene1001 and Klayman
- Fix a bug in Klayman's walking
- The lever can now be used
- Other stuff is still missing
- Remove entity.cpp since it's not needed
2013-05-08 20:38:46 +02:00
johndoe123 5c69ae21dd NEVERHOOD: More work on Klayman (still eye cancerous code)
- 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)
2013-05-08 20:38:46 +02:00
johndoe123 88d2759f85 NEVERHOOD: Start with the Klayman class (this is quite some horrible code, also, it doesn't work yet and isn't used yet) 2013-05-08 20:30:58 +02:00
johndoe123 97f319c945 NEVERHOOD: More work on Scene1001, implement Class509 (yes, will be renamed later) and AnimResource related stuff 2013-05-08 20:30:58 +02:00
johndoe123 056b69f0c8 NEVERHOOD: Module1000 and Scene1001 skeletons
- Implement BaseSurface::drawSpriteResourceEx
- Use CollisionMan in Scene
- Some cleanup
2013-05-08 20:30:58 +02:00
johndoe123 f01f9343c8 NEVERHOOD: Start with AnimatedSprite and AnimResource 2013-05-08 20:30:57 +02:00
johndoe123 aded2a104b NEVERHOOD: Start with Scene and Sprite classes 2013-05-08 20:30:57 +02:00