aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/scene.cpp')
-rw-r--r--engines/tinsel/scene.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/engines/tinsel/scene.cpp b/engines/tinsel/scene.cpp
index a7d48e2406..ab48e26c4c 100644
--- a/engines/tinsel/scene.cpp
+++ b/engines/tinsel/scene.cpp
@@ -54,14 +54,14 @@ namespace Tinsel {
extern void DropBackground(void);
// in EFFECT.C
-extern void EffectPolyProcess(CORO_PARAM);
+extern void EffectPolyProcess(CORO_PARAM, const void *);
// in PDISPLAY.C
#ifdef DEBUG
-extern void CursorPositionProcess(CORO_PARAM);
+extern void CursorPositionProcess(CORO_PARAM, const void *);
#endif
-extern void TagProcess(CORO_PARAM);
-extern void PointProcess(CORO_PARAM);
+extern void TagProcess(CORO_PARAM, const void *);
+extern void PointProcess(CORO_PARAM, const void *);
extern void EnableTags(void);
@@ -102,14 +102,14 @@ static SCNHANDLE SceneHandle = 0; // Current scene handle - stored in case of Sa
/**
* Started up for scene script and entrance script.
*/
-static void SceneTinselProcess(CORO_PARAM) {
+static void SceneTinselProcess(CORO_PARAM, const void *param) {
// COROUTINE
CORO_BEGIN_CONTEXT;
PINT_CONTEXT pic;
CORO_END_CONTEXT(_ctx);
// get the stuff copied to process when it was created
- SCNHANDLE *ss = (SCNHANDLE *)ProcessGetParamsSelf();
+ SCNHANDLE *ss = (SCNHANDLE *)param;
assert(*ss); // Must have some code to run
CORO_BEGIN_CODE(_ctx);
@@ -154,7 +154,7 @@ static void LoadScene(SCNHANDLE scene, int entry) {
for (i = 0; i < FROM_LE_32(ss->numEntrance); i++, es++) {
if (FROM_LE_32(es->eNumber) == (uint)entry) {
if (es->hScript)
- ProcessCreate(PID_TCODE, SceneTinselProcess, &es->hScript, sizeof(es->hScript));
+ g_scheduler->createProcess(PID_TCODE, SceneTinselProcess, &es->hScript, sizeof(es->hScript));
break;
}
}
@@ -163,7 +163,7 @@ static void LoadScene(SCNHANDLE scene, int entry) {
error("Non-existant scene entry number");
if (ss->hSceneScript)
- ProcessCreate(PID_TCODE, SceneTinselProcess, &ss->hSceneScript, sizeof(ss->hSceneScript));
+ g_scheduler->createProcess(PID_TCODE, SceneTinselProcess, &ss->hSceneScript, sizeof(ss->hSceneScript));
}
// Default refer type
@@ -200,14 +200,13 @@ void EndScene(void) {
KillAllObjects();
// kill all destructable process
- KillMatchingProcess(PID_DESTROY, PID_DESTROY);
+ g_scheduler->killMatchingProcess(PID_DESTROY, PID_DESTROY);
}
/**
*
*/
-void PrimeBackground(void)
-{
+void PrimeBackground(void) {
// structure for playfields
static PLAYFIELD playfield[] = {
{ // FIELD WORLD
@@ -257,16 +256,16 @@ void PrimeScene(void) {
RestartCursor(); // Restart the cursor
EnableTags(); // Next scene with tags enabled
- ProcessCreate(PID_SCROLL, ScrollProcess, NULL, 0);
- ProcessCreate(PID_SCROLL, EffectPolyProcess, NULL, 0);
+ g_scheduler->createProcess(PID_SCROLL, ScrollProcess, NULL, 0);
+ g_scheduler->createProcess(PID_SCROLL, EffectPolyProcess, NULL, 0);
#ifdef DEBUG
if (ShowPosition)
- ProcessCreate(PID_POSITION, CursorPositionProcess, NULL, 0);
+ g_scheduler->createProcess(PID_POSITION, CursorPositionProcess, NULL, 0);
#endif
- ProcessCreate(PID_TAG, TagProcess, NULL, 0);
- ProcessCreate(PID_TAG, PointProcess, NULL, 0);
+ g_scheduler->createProcess(PID_TAG, TagProcess, NULL, 0);
+ g_scheduler->createProcess(PID_TAG, PointProcess, NULL, 0);
// init the current background
PrimeBackground();