Commit Graph
137148 Commits
Author SHA1 Message Date
Julien Templier 5ca35ddd2f ASYLUM: Fix playing of intro speech (wait until the sound is finished before showing the scene) 2021-05-17 15:37:06 +02:00
Julien Templier 64c70dea97 ASYLUM: Implement Actor::updateDirection()
- Rename all fields related to the next actor state (as set by script)
- Rename process_401830() to processNext()
2021-05-17 15:37:06 +02:00
Julien Templier 1706cc2ff7 ASYLUM: Implement Actor::processAction() 2021-05-17 15:37:06 +02:00
Alex Bevilacqua ef730d52d9 ASYLUM: Add a TODO regarding a proper implentation of the intro speech 2021-05-17 15:37:06 +02:00
Alex Bevilacqua 997002786d ASYLUM: Assign the current graphicResourceId in Cursor::set
This fixes cursor animations not playing
2021-05-17 15:37:06 +02:00
Julien Templier 71ffd5313a ASYLUM: Move DEBUG_SCENE_TIMES to scene.cpp 2021-05-17 15:37:06 +02:00
Julien Templier da8d1c11b5 ASYLUM: Update engine status 2021-05-17 15:37:05 +02:00
Julien Templier 4c4027200a ASYLUM: Implement Screen::bltMasked()
This is still slightly buggy (every other frame is slightly corrupted)
2021-05-17 15:37:05 +02:00
Alex Bevilacqua 2608705d6d ASYLUM: sanity check for a possible assertion in Polygon::contains 2021-05-17 15:37:05 +02:00
Alex Bevilacqua a663c3da75 ASYLUM: fix a logic error in JumpIfGameFlag
Game scripts now progress more accurately in Scene 2
2021-05-17 15:37:05 +02:00
Alex Bevilacqua 83194b47c8 ASYLUM: Silence more GCC warnings 2021-05-17 15:37:05 +02:00
Alex Bevilacqua 7454be17cc ASYLUM: fix logic error in Screen::setGammaLevel 2021-05-17 15:37:05 +02:00
Alex Bevilacqua 01f4a0769c ASYLUM: implement Screen::setPaletteGamma and part of Screen::setGammaLevel 2021-05-17 15:37:05 +02:00
Julien Templier 07f49cdf9a ASYLUM: Initialize _frameIndexSpider in PuzzlePipes constructor
This fixes a crash on exit.
2021-05-17 15:37:04 +02:00
Julien Templier 0c223c5875 ASYLUM: Fix flickering of text in the credits
This was due to the transparency index not being reset to 0 after the text fade animation.
2021-05-17 15:37:04 +02:00
Julien Templier 2dd9930297 ASYLUM: Fix uninitialized variable warning in PuzzlePipes::update() 2021-05-17 15:37:04 +02:00
Alexander 2cde66d926 ASYLUM: Implement Hive machine puzzle 2021-05-17 15:37:04 +02:00
Alexander 4ef22bfb2f ASYLUM: Pipes puzzle: continuous progress bars 2021-05-17 15:37:04 +02:00
Alexander 80583b079b ASYLUM: Pipes puzzle: add spiders 2021-05-17 15:37:04 +02:00
Alex Bevilacqua 7828f300fa ASYLUM: Silence GCC Warning
Class 'Scene' has virtual method 'handleEvent' but non-virtual destructor
2021-05-17 15:37:04 +02:00
Julien Templier 9d54c6b5fc ASYLUM: Rename several Actor methods 2021-05-17 15:37:03 +02:00
Julien Templier b15b5cb473 ASYLUM: Identify transparency field for Actor and Object
- Rename related script opcode and function
2021-05-17 15:37:03 +02:00
Julien Templier 81c6898fa6 ASYLUM: Simplify handling of transparency tables
The original uses an optimization to be able to hold the transparency table address + offset into a single register by clearing the lower 16 bits of the address. Not doing so simplifies the code and saves an allocation of 65536 bytes.
2021-05-17 15:37:03 +02:00
Julien Templier 62d576eae5 ASYLUM: Add debug drawing of zoomed mask
- Update blit functions parameters
2021-05-17 15:37:03 +02:00
Julien Templier 9bc78f83db ASYLUM: Update ScriptManager
- Rename several opcodes
- Add enumeration for script Opcodes
- Rename some called actor methods
2021-05-17 15:37:03 +02:00
Julien Templier 48f733baf0 ASYLUM: Remove unused ActorResources enumeration 2021-05-17 15:37:03 +02:00
Julien Templier 9fef446809 ASYLUM: Adjust flag array size 2021-05-17 15:37:02 +02:00
Julien Templier 0c36e2755a ASYLUM: Fix checking of flags when processing action areas
This fixes the player being stuck in place at the beginning (the area has a flag and the player can't move until that flag is set by scripts)
Also add an optional highlight for the current polygon to aid debugging
2021-05-17 15:37:02 +02:00
Julien Templier 5b3efe8192 ASYLUM: Cleanup polygon class 2021-05-17 15:37:02 +02:00
Julien Templier def09b8c20 ASYLUM: Rename some movement-related Actor methods 2021-05-17 15:37:02 +02:00
Julien Templier 3727e9a820 ASYLUM: Add option to draw the scene rects 2021-05-17 15:37:02 +02:00
Julien Templier 082789c8f2 ASYLUM: Rename Polygons helper function 2021-05-17 15:37:02 +02:00
Julien Templier a5e03e18a1 ASYLUM: Implement Screen::blitCrossfade()
- Update parameters to some blit functions for consistency
- Revert changes to Screen::clip (our clipRect is different from the original)
2021-05-17 15:37:02 +02:00
Julien Templier 9805f4cebd ASYLUM: Add some bound checking to ScriptManager::process() 2021-05-17 15:37:01 +02:00
Julien Templier 9be6905934 ASYLUM: Mark demo version as "Demo" 2021-05-17 15:37:01 +02:00
Julien Templier 018ca6a4b2 ASYLUM: Add console command to modify actor coordinates 2021-05-17 15:37:01 +02:00
Julien Templier e44da6e34a ASYLUM: Update Screen::blitTranstable() 2021-05-17 15:37:01 +02:00
Julien Templier faaa1c1426 ASYLUM: Correct Screen::clip() and check for valid source rectangle in Screen::draw()
This fixes the crash in the credits screen (although there is still some memory and graphic corruption with transparency table blits)
2021-05-17 15:37:01 +02:00
Julien Templier c727c909a6 ASYLUM: Implement some missing parts of Screen::blitMasked() 2021-05-17 15:37:01 +02:00
Julien Templier f011d86920 ASYLUM: Properly check for object flags when drawing
This fixes the actor appearing on top of the bed at the beginning
2021-05-17 15:37:01 +02:00
Julien Templier 492eb8a30c ASYLUM: Cleanup Scene::processUpdateList() and Scene::pointIntersectsRect() 2021-05-17 15:37:00 +02:00
Julien Templier c9d39ce3c2 ASYLUM: Add drawing rects and mask visualization 2021-05-17 15:37:00 +02:00
Julien Templier 2a4cf12823 ASYLUM: Fix showing of debug regions 2021-05-17 15:37:00 +02:00
Julien Templier 010fd87b59 ASYLUM: Implement Actor::processAction* helper functions 2021-05-17 15:37:00 +02:00
Julien Templier 345d0cf909 ASYLUM: Merge getDistanceForFrame() and getDistance() 2021-05-17 15:37:00 +02:00
Julien Templier 78681cf803 ASYLUM: Correct usage and implementation of Actor::getDistance() 2021-05-17 15:37:00 +02:00
Julien Templier 6b20fdb4e4 ASYLUM: Rename arrays holding the distances for each actor frame index 2021-05-17 15:36:59 +02:00
Julien Templier cae5eaa927 ASYLUM: Implement Actor::checkPath() 2021-05-17 15:36:59 +02:00
Julien Templier 8596b8f213 ASYLUM: Update use of shared data in Actor::updateStatus12_Chapter2() 2021-05-17 15:36:59 +02:00
Julien Templier d2eabdf880 ASYLUM: Replace Actor::clearFields() by sane version 2021-05-17 15:36:59 +02:00