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