Commit Graph

384 Commits

Author SHA1 Message Date
johndoe123
fb0332d884 NEVERHOOD: Fix deletes in SpriteResource::unload() and ResourceMan::purgeResources() 2013-05-08 21:02:00 +02:00
johndoe123
163023a8ed NEVERHOOD: Fix issues in the save/load screens
- Add virtual keyboard support in save/load screens
2013-05-08 21:01:54 +02:00
johndoe123
78e0d6a3f1 NEVERHOOD: Move module files to own subdirectory 2013-05-08 20:49:19 +02:00
johndoe123
583f9abaf9 NEVERHOOD: Fix some logic bugs and minor changes
- Fix video speed in the very last scene (Scene1317)
- Fix back door not opening in Scene1401
- Fix projector not moving in Scene1402
- Fix projector not appearing in Scene1403
- Fix wrong Klaymen walking in Scene2205
- Fix wrong scene change in Module2300
- Fix symbols not appearing in Scene3011
- Define out some remaining logic debug code
- Remove some obsolete comments
- Reduce debug output
- Use a List instead of an Array when building the microtiles rectangles
2013-05-08 20:47:43 +02:00
johndoe123
9b6d813d41 NEVERHOOD: Update todo.txt 2013-05-08 20:47:43 +02:00
johndoe123
9ca3973e6f NEVERHOOD: Work on the save/load/delete menus
- Rename WidgetScene to GameStateMenu
- Merge common code from the save/load/delete into GameStateMenu
2013-05-08 20:47:43 +02:00
johndoe123
8749efdea8 NEVERHOOD: Add game-internal savegame delete menu
- Rename Widget::addSprite to Widget::initialize
2013-05-08 20:47:43 +02:00
johndoe123
a03879963f NEVERHOOD: Changed the save/load menu to allow gaps in saved games to simplify game deletion 2013-05-08 20:47:43 +02:00
johndoe123
2a571d71b0 NEVERHOOD: Fix GUI options and game copyright 2013-05-08 20:47:43 +02:00
johndoe123
a80bafeb2e NEVERHOOD: Support game loading from launcher/command line 2013-05-08 20:47:43 +02:00
johndoe123
dc459b5f67 NEVERHOOD: Merge some code in the save/load menus 2013-05-08 20:47:43 +02:00
johndoe123
bdac28929f NEVERHOOD: Add Y-flipping to unpackSpriteNormal 2013-05-08 20:47:43 +02:00
johndoe123
70fdfd9d57 NEVERHOOD: Delete all sound/music items on exit
- Minor cleanup
2013-05-08 20:47:43 +02:00
johndoe123
c96d2475b1 NEVERHOOD: Add Screen::saveParams and Screen::restoreParams, called when etnering/leaving the menu 2013-05-08 20:47:42 +02:00
johndoe123
53a81d11b8 NEVERHOOD: Don't allow main menu until _canRequestMainMenu is set
- Clean up GameModule
2013-05-08 20:47:42 +02:00
johndoe123
65c6984635 NEVERHOOD: Implement game-internal savegame overwrite query screen
- Rename and reorder fields in the Klaymen class
2013-05-08 20:47:42 +02:00
johndoe123
9ae1888593 NEVERHOOD: Change Klaymen idle callbacks from method pointers to integers and evaluate these in a new method enterIdleAnimation 2013-05-08 20:47:42 +02:00
johndoe123
1383c5f395 NEVERHOOD: Rename stuff in the Klaymen class 2013-05-08 20:47:42 +02:00
johndoe123
c218cb46e0 NEVERHOOD: Remove unneeded braces 2013-05-08 20:47:42 +02:00
johndoe123
4c6e82fc05 NEVERHOOD: Remove objectPriority and surfacePriority parameters from the Klaymen class constructor since they always have the same value (1000) 2013-05-08 20:47:42 +02:00
johndoe123
379a8cbbe0 NEVERHOOD: Add support for loading/saving games with the game's own menu
- Add LoadGameMenu class
2013-05-08 20:47:42 +02:00
johndoe123
490d447ed1 NEVERHOOD: Implement restart functionality (from both main menu and game logic)
- Some minor cleanup
2013-05-08 20:47:42 +02:00
johndoe123
4389d32974 NEVERHOOD: Rename "Klayman" to "Klaymen" (the correct name of the game's hero) 2013-05-08 20:47:41 +02:00
johndoe123
ac1dc3e4db NEVERHOOD: Fix Module1300::createScene 2013-05-08 20:47:41 +02:00
johndoe123
5ff11f0041 NEVERHOOD: Rework the sound system
- Move code from the manager classes to the sound/music classes
2013-05-08 20:47:41 +02:00
johndoe123
e51bea9b4e NEVERHOOD: Don't load a DataResource if the same data is already loaded; this fixes a nasty bug in several scenes which use message lists from a DataResource 2013-05-08 20:47:40 +02:00
johndoe123
eea9dbe2da NEVERHOOD: Minor renaming and cleanup 2013-05-08 20:47:40 +02:00
johndoe123
51979c4f3f NEVERHOOD: Rename SceneInfo2700 to TrackInfo 2013-05-08 20:47:40 +02:00
johndoe123
5bf8fb3e96 NEVERHOOD: Remove more old TODOs 2013-05-08 20:47:40 +02:00
johndoe123
18ce1acc12 NEVERHOOD: Rework the car track scenes in Module2500 and Module2700
- Move findClosestTrack code from several scenes to new Tracks::findTrackPoint
- Remove const kScene2706 arrays and use it from the dat instead
2013-05-08 20:47:40 +02:00
johndoe123
e43184f4f2 NEVERHOOD: Remove obsolete TODOs 2013-05-08 20:47:40 +02:00
johndoe123
df43b8bd68 NEVERHOOD: Move Scene2804::initCrystalColors() to GameModule::initCrystalColorsPuzzle()
- Add Scene::isMessageList2, only used in Scene2101
2013-05-08 20:47:40 +02: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
57497817e1 NEVERHOOD: Add enum for the resource types 2013-05-08 20:47:40 +02:00
johndoe123
a98d9aa58a NEVERHOOD: Clean up DiskplayerScene
- Enable return to launcher
- Remove obsolete comments
- Remove braces in single-line statements
- Remove unused non-transparent drawing code in BaseSurface::copyFrom
- Clean up mouse cursor insertion code in Scene class
2013-05-08 20:47:39 +02:00
johndoe123
6ddedc955a NEVERHOOD: Merge TextSurface into FontSurface 2013-05-08 20:47:39 +02:00
johndoe123
fa205be892 NEVERHOOD: Remove some obsolete TODOs 2013-05-08 20:47:39 +02:00
johndoe123
b875696fc7 NEVERHOOD: Update todo.txt 2013-05-08 20:47:39 +02:00
johndoe123
9963ce41ea NEVERHOOD: Merge CollisionMan into Scene class 2013-05-08 20:47:39 +02:00
johndoe123
4b7ad48ca8 NEVERHOOD: Rename some CollisionMan methods/fields
- Remove fallback detector (I think it's not needed)
- Rename Scene insertMouse methods
2013-05-08 20:47:39 +02:00
johndoe123
fec1d7816a NEVERHOOD: Implement resource cache purging and purge it after each scene 2013-05-08 20:47:39 +02:00
johndoe123
30178e46e5 NEVERHOOD: Implement savegame loading via GMM (in-game saving/loading still TODO) 2013-05-08 20:47:39 +02:00
johndoe123
a35cd088e5 NEVERHOOD: Remove obsolete _keyState 2013-05-08 20:47:39 +02:00
johndoe123
0f1aa64fd0 NEVERHOOD: Add support for the demo version
- Remove debug resource dumping code
- Fix Scene1501 (pictures without sound weren't displayed/too fast)
- Move main loop to mainLoop method
2013-05-08 20:47:38 +02:00
johndoe123
060287a4f8 NEVERHOOD: Improve frame-exact seeking for Scene2802
Thanks to clone2727 for his help!
2013-05-08 20:47:38 +02:00
johndoe123
99e15e4005 NEVERHOOD: More work on saveload, saving works, loading not yet (from the GMM, in-game isn't finished yet) 2013-05-08 20:47:38 +02:00
johndoe123
c182688e44 NEVERHOOD: Add saveload skeleton (doesn't actually do anything yet) 2013-05-08 20:47:38 +02:00
johndoe123
9a1d9883ad NEVERHOOD: Fix AsCommonCar turning 2013-05-08 20:47:38 +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
1b9807b312 NEVERHOOD: Remove more old comments
- Add the remaining idle stuff to Klayman
2013-05-08 20:47:38 +02:00
johndoe123
370f00e808 NEVERHOOD: New _sceneNum in Module2800
- Very slightly improved the speed in SmackerPlayer::gotoFrame()
2013-05-08 20:47:38 +02:00
johndoe123
325c85fc41 NEVERHOOD: Fix Klaymen in Scene1403 (*facepalm*) 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
685ce4e312 NEVERHOOD: Add initCodeSymbolsPuzzle 2013-05-08 20:47:37 +02:00
johndoe123
73e0372cef NEVERHOOD: A little more work on the menu stuff 2013-05-08 20:47:37 +02:00
johndoe123
6be5c11713 NEVERHOOD: More work on the menu system:
- Add handling of ascii and system key input
- Fix TextSurface::drawChar()
- Pause audio when entering the menu, resume it again afterwards
- Add TextEditWidget
- Add SaveGameMenu (doesn't actually save anything yet and needs more work)
2013-05-08 20:47:37 +02:00
johndoe123
0022c57858 NEVERHOOD: Add SavegameListBox 2013-05-08 20:47:37 +02:00
johndoe123
eecd9b8b2a NEVERHOOD: Add TextLabelWidget (still doesn't do anything) 2013-05-08 20:47:37 +02:00
johndoe123
228d9264c8 NEVERHOOD: Start with menu widget stuff (doesn't do anything yet!) 2013-05-08 20:47:37 +02:00
johndoe123
4df22cf979 NEVERHOOD: Remove track rectList code because none of the tracks has a rectList 2013-05-08 20:47:36 +02:00
johndoe123
c539060460 NEVERHOOD: Clean up Module2700 (like the ones before)
- Add Scene2703 and Scene2732
2013-05-08 20:47:36 +02:00
johndoe123
36204f573d NEVERHOOD: Clean up Module2600 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
28e613c68b NEVERHOOD: Clean up Module2500 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
38df3c0d62 NEVERHOOD: Clean up Module2400 (like the ones before)
- Fix Klayman::stTurnToFront()
2013-05-08 20:47:35 +02:00
johndoe123
61e2a6f81d NEVERHOOD: Clean up Module2300 (like the ones before)
- Also fix previous modules (oops)
2013-05-08 20:47:35 +02:00
johndoe123
1993d4165a NEVERHOOD: Clean up Module2200 (like the ones before)
- Rename SceneInfo140 to HallOfRecordsInfo
2013-05-08 20:47:35 +02:00
johndoe123
0dd4995af3 NEVERHOOD: Clean up Module2100 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
9d987a97d3 NEVERHOOD: Clean up Module2000 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
2fbfd673ad NEVERHOOD: Clean up Module1900 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
dd26512c0d NEVERHOOD: Clean up Module1800 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
904d9430bf NEVERHOOD: Clean up Module1700 (like the ones before) 2013-05-08 20:47:35 +02:00
johndoe123
e2b696b891 NEVERHOOD: Clean up Module1600 (like the ones before)
- Remove AsScene1608Door because the corresponding animation resource didn't exist!
2013-05-08 20:47:34 +02:00
johndoe123
f51140490d NEVERHOOD: Clean up Module1500 (like the ones before) 2013-05-08 20:47:34 +02:00
johndoe123
af37a2200e NEVERHOOD: Clean up Module1400 (like the ones before) 2013-05-08 20:47:34 +02:00
johndoe123
ee7d47cb18 NEVERHOOD: Clean up Module1300 (like the ones before) 2013-05-08 20:47:34 +02:00
johndoe123
097f1f27bb NEVERHOOD: Clean up Module1200 (like the ones before) 2013-05-08 20:47:34 +02:00
johndoe123
f744e60e0e NEVERHOOD: Clean up Module1100:
- Rename stuff
- Remove superfluous braces
- Add a comment to the "which" code in each scene
- Use a seperate _sceneNum instead of _vm->gameState().sceneNum
2013-05-08 20:47:34 +02:00
johndoe123
4d7610f69d NEVERHOOD: Clean up Module1000:
- Rename stuff
- Remove superfluous braces
- Add a comment to the "which" code in each scene
- Use a seperate _sceneNum instead of _vm->gameState().sceneNum
- Remove code related to unused resource preloading and debug messages
2013-05-08 20:47:34 +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
eb054471e0 NEVERHOOD: Fix _drawRects in AsScene1002Door and SsCommonPressButton 2013-05-08 20:47:33 +02:00
johndoe123
47994441cd NEVERHOOD: Move setting of debug variables to the GameModule 2013-05-08 20:47:33 +02:00
johndoe123
5af2de503e NEVERHOOD: Rewrite GameModule::initMemoryPuzzle() to use NonRepeatingRandomNumbers
- Change NonRepeatingRandomNumbers
2013-05-08 20:47:33 +02:00
johndoe123
54c83924ce NEVERHOOD: Add class NonRepeatingRandomNumbers
- Simplify GameModule::initKeySlotsPuzzle()
2013-05-08 20:47:33 +02:00
johndoe123
8d97f26cef NEVERHOOD: Fix AsScene2402Door animation 2013-05-08 20:47:33 +02:00
johndoe123
f8ff1cc12f NEVERHOOD: Add CreditsScene to Module1300 and Module1800 (played after the game end and after jumping into the hole...) 2013-05-08 20:47:33 +02:00
johndoe123
5ba8f2e9c8 NEVERHOOD: Add making of video to the main menu
- Clear render queue at each scene initiailization
- Fix mouse cursor visibility (again :)
- Fix SmackerScene screen clearing
2013-05-08 20:47:33 +02:00
johndoe123
c43253bd6a NEVERHOOD: Implement CreditsScene 2013-05-08 20:47:32 +02:00
johndoe123
2e32b32808 NEVERHOOD: Start with the MenuModule 2013-05-08 20:47:32 +02:00
johndoe123
ef8f0215cf NEVERHOOD: Add GameVars::dumpVars() for debugging 2013-05-08 20:47:32 +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
533eb5d61d NEVERHOOD: Rename puzzle initialization methods and give them better names 2013-05-08 20:47:32 +02:00
johndoe123
9b7354dacb NEVERHOOD: Fix mouse cursor visibility by starting out invisible when the Mouse object is created and hiding the cursor when it's destroyed 2013-05-08 20:47:32 +02:00
johndoe123
c7ad09c685 NEVERHOOD: Remove BaseSurface::addDirtyRect() which is obsolete as well 2013-05-08 20:47:32 +02:00
johndoe123
a6e9475a3f NEVERHOOD: Remove Scene::_surfaceFlag which also is obsolete now 2013-05-08 20:47:32 +02:00
johndoe123
a238f57805 NEVERHOOD: Remove DirtyBackground which became obsolete after the renderqueue stuff 2013-05-08 20:47:31 +02:00
johndoe123
4295991d19 NEVERHOOD: Use hardcoded values as width/height of several sprites (in the original the values were loaded from the entry's extData but since all values are constant anyway it shouldn't matter) 2013-05-08 20:47:31 +02:00