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