aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saga/scene.cpp')
-rw-r--r--saga/scene.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/saga/scene.cpp b/saga/scene.cpp
index 8b91cfbd94..3e423dbd19 100644
--- a/saga/scene.cpp
+++ b/saga/scene.cpp
@@ -174,6 +174,7 @@ int Scene::clearSceneQueue() {
int Scene::startScene() {
YS_DL_NODE *node;
SCENE_QUEUE *scene_qdat;
+ EVENT event;
assert(_initialized);
@@ -187,6 +188,12 @@ int Scene::startScene() {
return FAILURE;
}
+ // Hide cursor during intro
+ event.type = ONESHOT_EVENT;
+ event.code = CURSOR_EVENT;
+ event.op = EVENT_HIDE;
+ _vm->_events->queue(&event);
+
switch (GAME_GetGameType()) {
case GID_ITE:
ITEStartProc();
@@ -965,6 +972,7 @@ static void CF_objectinfo(int argc, char *argv[], void *refCon) {
int Scene::defaultScene(int param, SCENE_INFO *scene_info) {
EVENT event;
+ EVENT *q_event;
switch (param) {
case SCENE_BEGIN:
@@ -1011,8 +1019,14 @@ int Scene::defaultScene(int param, SCENE_INFO *scene_info) {
event.op = EVENT_CYCLESTART;
event.time = 0;
- _vm->_events->queue(&event);
+ q_event = _vm->_events->queue(&event);
+ // Show cursor
+ event.type = ONESHOT_EVENT;
+ event.code = CURSOR_EVENT;
+ event.op = EVENT_SHOW;
+ _vm->_events->chain(q_event, &event);
+
// Start scene animations
_vm->_anim->setFlag(0, ANIM_LOOP);
_vm->_anim->play(0, 0);