80 Commits

Author SHA1 Message Date
Torbjörn Andersson
42bf369d68 NEVERHOOD: Pass NPoint as position instead of X in two more cases
According to johndoe it's correct to pass the entire coordinate,
rather than just X, to the car in these cases as well. I can't
tell any difference at all in the behavior, but I guess it doesn't
hurt either. After all, we can easily zero the Y coordinate, if we
ever want to.
2015-10-18 11:37:40 +02:00
Torbjörn Andersson
0f3e7531c1 NEVERHOOD: Possible fix for bad car behaviour
This is something I found when trying the savegame from bug #6932,
but I still don't know if it actually is that bug.

From what I understand, there are two different cases in the
moveCarToPoint() method: One where you click on a different
section on a track than you're on, and one where you click on the
same section on the track that you're on.

In the latter case, it sends message 0x2004 to the car, which is
then handled by AsCommonCar::handleMessage(). That one will assume
that the parameter is a point, but this can also be encoded as an
integer with 16 bits for the X coordinate and 16 bits for the Y
coordinate. See MessageParam::asPoint().

If we only pass an X coordinate to the message, the Y coordinate
is assumed to be 0, and we do this in a couple of places. I do not
know the exact implications of that, but in the two cases I've
changed here, it meant that clicking on the track below the car
would still make it go up, because it thought you were travelling
towards the top of the screen.

So I think this is the appropriate fix, but even if it is, I do
not know if it's enough or if it should be changed in other places
as well.
2015-10-11 08:00:23 +02:00
Filippos Karapetis
0e763f6aa2 NEVERHOOD: Remove duplicate file hash definition 2014-12-07 15:46:08 +02:00
Filippos Karapetis
2325183751 NEVERHOOD: Remove duplicate defines
These have been left behind after the split of the scenes and the scene
sprites. Thanks to fingolfin for pointing out the duplicate defines
2014-12-07 15:45:43 +02:00
Filippos Karapetis
4207fbd2d6 NEVERHOOD: Play a single sound when losing the memory puzzle (bug #6672)
When the memory puzzle is reset, each revealed tile gets hidden again.
When a lot of tiles were hidden, the multiple clicking sounds would
fill the available sound slots. To avoid this, only a single click is
sounded when losing
2014-07-07 02:00:58 +03:00
D G Turner
a1b80bb536 NEVERHOOD: Fix for uninitialized variables for car ride logic.
This fixes bug #6661 NEVERHOOD: Uninitialized variable during car ride.
2014-06-28 19:08:50 +01:00
Torbjörn Andersson
95ba430d11 NEVERHOOD: Initialize _newMoveDirection. Valgrind complained. 2014-06-28 08:11:54 +02:00
Torbjörn Andersson
639a2dfd2e NEVERHOOD: Fix radio part of bug #6513 ("Some nasty bugs")
This clears the radio music variable when leaving the room. I've
discussed with johndoe123 and he says this is what the original
does. (You could also get the same effect by clearing it when
entering the room.)
2014-06-05 19:51:28 +02:00
Torbjörn Andersson
9f4c221a22 NEVERHOOD: Fixed off-by-one error in getTextIndex3()
This is the same fix that was applied to getKloggsTextIndex() some
time ago. It restores a missing Willie nonsense letter. While I
haven't actually verified for myself that this letter appears in
the original game, it is referenced in Wikipedia's article about
Absalom.
2014-05-04 22:27:48 +02:00
Torbjörn Andersson
cfa0c839c3 NEVERHOOD: Fixed one of the issues in #6513
The getKloggsTextIndex() function would return 40 twice in a row
when wrapping around. This caused one of Willie's nonsense letters
to appear instead, since they're supposed to trigger when
getTextIndex1() returns the same result more than once.

The same bug also appeared (and has been fixed) in getTextIndex3(),
but there it just caused the same nonsense letter to appear twice.
2014-05-04 22:27:47 +02:00
johndoe123
13507d1858 NEVERHOOD: Fix bug #6540: 'NEVERHOOD: lightswitch graphical glitch' 2014-04-17 23:20:47 +02:00
johndoe123
191b258593 NEVERHOOD: Fix compilation 2014-04-17 23:17:39 +02:00
johndoe123
c0d83b0b29 NEVERHOOD: Fix bug #6520: 'NEVERHOOD: buggy sound of the waterfall' 2014-04-17 23:02:25 +02:00
Strangerke
1a18d1a50e NEVERHOOD: Fix some uninitialized variables 2014-03-19 19:45:51 +01:00
Filippos Karapetis
3536271633 NEVERHOOD: Fix an off-by-one error in Klogg's letters
This fixes the buggy Willie letter appearing among the ones from Klogg
(bug #6513)
2014-02-20 12:28:35 +02:00
Johannes Schickel
6563171e7b NEVERHOOD: Make GPL headers consisten in themselves. 2014-02-18 02:39:36 +01:00
Strangerke
b808d4818e NEVERHOOD: Janitorial - Remove trailing spaces 2014-02-16 18:37:48 +01:00
johndoe123
a5b617a0a6 NEVERHOOD: Fix for bug #6481: 'NEVERHOOD: Wrong walk sound in navigation scene' 2014-01-14 19:55:14 +01:00
johndoe123
67483e591f NEVERHOOD: Correct fix for bug #6480
The car clipping rectangle wasn't set correctly when the car is on the upper level.
2014-01-06 23:17:35 +01:00
johndoe123
62246364c3 NEVERHOOD: Fix bug #6480 "NEVERHOOD: Car glitches" 2014-01-06 16:52:17 +01:00
Torbjörn Andersson
ab17bfb3d6 NEVERHOOD: Use constants for messages in a couple of places
Ideally, we should always use constants of course. But I guess we
don't yet have sensible names for all messages.
2014-01-06 14:37:56 +01:00
Filippos Karapetis
6849120a9e NEVERHOOD: Simplify and document Module2800::createScene() 2014-01-05 18:01:10 +02:00
Torbjörn Andersson
acf63388ef NEVERHOOD: Stop the background music when showing disk player
This is consistent with all other disk players in the game. Only
this one had it starting the music instead. Probably a typo.
2014-01-05 16:20:01 +01:00
Filippos Karapetis
da5cdd1c03 NEVERHOOD: Move car to the correct position when entering a new scene 2013-12-25 19:13:04 +02:00
Filippos Karapetis
43c226436c NEVERHOOD: Change more message values to enums 2013-12-25 19:12:00 +02:00
Filippos Karapetis
962e2fd550 NEVERHOOD: Change more message values to enums 2013-12-25 17:10:42 +02:00
Filippos Karapetis
8d7b10f7c3 NEVERHOOD: Add names to some message IDs 2013-12-23 21:03:35 +02:00
Filippos Karapetis
1dde17b0ee NEVERHOOD: Allow skipping of the introductory credits with the space key 2013-12-20 02:10:35 +02:00
Filippos Karapetis
5510a285ed NEVERHOOD: Move some Klaymen animations specific to scene 1002
Also, reorganize some of the functions in modules/module1000_sprites.cpp
2013-11-02 16:38:58 +02:00
Filippos Karapetis
1a59030b71 NEVERHOOD: Really stop the radio music during the radio tower cutscene 2013-11-02 16:21:36 +02:00
Filippos Karapetis
1a40387d0d NEVERHOOD: Add an option to skip the Hall of Records storyboard scenes
Quoting from the Neverhood wiki: "The Hall of Records is considered to
be one of the longest and most tedious elements of the Neverhood, and
takes approximately nine to ten minutes to walk through".

This option allows the player to just skip past all of these tedious
storyboard scenes
2013-10-31 08:24:03 +02:00
Filippos Karapetis
0fffbac36b NEVERHOOD: Move more scene-specific Klaymen animations to their scenes 2013-10-06 18:57:44 +03:00
Filippos Karapetis
fa51ef214c NEVERHOOD: Move more scene-specific Klaymen animations to their scenes 2013-10-06 18:29:10 +03:00
Filippos Karapetis
d5ebc69de0 NEVERHOOD: Move more scene-specific Klaymen animations to their scenes 2013-10-06 18:08:19 +03:00
Filippos Karapetis
f35298f9ee NEVERHOOD: Move module-specific Klaymen code to its respective module 2013-10-06 04:56:41 +03:00
Filippos Karapetis
cb01f16007 NEVERHOOD: Move specialized Klaymen code for modules 1000 and 1100 2013-10-05 22:18:59 +03:00
Filippos Karapetis
4cfb9ee82b NEVERHOOD: Clean up some includes 2013-10-05 22:06:47 +03:00
Filippos Karapetis
8d1f601518 NEVERHOOD: Split sprites from their scenes in modules 1000 and 1100 2013-10-05 21:50:33 +03:00
Filippos Karapetis
55a8e7a2de NEVERHOOD: Split sprites from their scenes in module 1200 2013-10-05 21:30:48 +03:00
Filippos Karapetis
bf96d305b5 NEVERHOOD: Split sprites from their scenes in modules 1300 and 1400 2013-10-05 21:30:48 +03:00
Filippos Karapetis
b408b94bf1 NEVERHOOD: Split sprites from their scenes in module 1600 2013-10-05 14:52:48 +03:00
Filippos Karapetis
b963fcbfa8 NEVERHOOD: Split sprites from their scenes in modules 1700 and 1800
This also reduces inter-header dependencies
2013-10-05 14:41:02 +03:00
Filippos Karapetis
9715318932 NEVERHOOD: Split sprites from their scenes in modules 2100 and 2200
This also reduces inter-header dependencies
2013-10-05 14:21:53 +03:00
Filippos Karapetis
d798a4f12a NEVERHOOD: Split some more sprites from their respective scenes
This splits modules 2400, 2500 and 2600
2013-10-01 01:24:56 +03:00
Filippos Karapetis
c977561b46 NEVERHOOD: Split some more sprites from their respective scenes
This splits modules 2700, 2900 and 3000
2013-10-01 00:55:46 +03:00
Filippos Karapetis
78d9aea198 NEVERHOOD: Fix uninitialized variable in Scene1303 - CID 1022323 2013-09-27 01:38:17 +03:00
Filippos Karapetis
ba30e961b9 NEVERHOOD: Remove unused variable - CID 1022328 2013-09-27 01:38:16 +03:00
Filippos Karapetis
802abdcc34 NEVERHOOD: Fix uninitialized variable in AsScene1002OutsideDoorBackground - CID 1022329 2013-09-27 01:38:16 +03:00
Filippos Karapetis
e925f8a9d8 NEVERHOOD: Fix uninitialized variable in AsScene2810Rope - CID 1022310 2013-09-27 01:38:16 +03:00
Filippos Karapetis
f5b2d86d13 NEVERHOOD: Split the sprites in module 2800 into a separate file 2013-09-21 14:54:08 +03:00