Hangar animation is now a DoInput callback; now works in Game menu too

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3395 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2009-12-05 23:27:06 +00:00
parent 890b844edb
commit 8e1875fdb6
+18 -22
View File
@@ -100,6 +100,18 @@ animatePowerLines (MENU_STATE *pMS)
} }
} }
static void
on_input_frame (void)
{
CONTEXT oldContext;
LockMutex (GraphicsLock);
oldContext = SetContext (SpaceContext);
animatePowerLines (NULL);
SetContext (oldContext);
UnlockMutex (GraphicsLock);
}
#ifdef WANT_SHIP_SPINS #ifdef WANT_SHIP_SPINS
static void static void
SpinStarShip (MENU_STATE *pMS, HFLEETINFO hStarShip) SpinStarShip (MENU_STATE *pMS, HFLEETINFO hStarShip)
@@ -1025,13 +1037,6 @@ ChangeFlashRect:
} }
UnlockMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
#ifndef USE_3DO_HANGAR
LockMutex (GraphicsLock);
SetContext (SpaceContext);
animatePowerLines (NULL);
UnlockMutex (GraphicsLock);
#endif
} }
SleepThread (ONE_SECOND / 30); SleepThread (ONE_SECOND / 30);
@@ -1215,21 +1220,16 @@ DoShipyard (MENU_STATE *pMS)
SetContextFont (TinyFont); SetContextFont (TinyFont);
{ ScreenTransition (3, NULL);
RECT r;
r.corner.x = 0;
r.corner.y = 0;
r.extent.width = SCREEN_WIDTH;
r.extent.height = SCREEN_HEIGHT;
ScreenTransition (3, &r);
}
UnbatchGraphics (); UnbatchGraphics ();
UnlockMutex (GraphicsLock); UnlockMutex (GraphicsLock);
PlayMusic (pMS->hMusic, TRUE, 1); PlayMusic (pMS->hMusic, TRUE, 1);
ShowCombatShip (pMS, (COUNT)~0, NULL); ShowCombatShip (pMS, (COUNT)~0, NULL);
SetInputCallback (on_input_frame);
LockMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (SFR_MENU_3DO); SetFlashRect (SFR_MENU_3DO);
UnlockMutex (GraphicsLock); UnlockMutex (GraphicsLock);
@@ -1240,6 +1240,8 @@ DoShipyard (MENU_STATE *pMS)
else if (cancel || (select && pMS->CurState == SHIPYARD_EXIT)) else if (cancel || (select && pMS->CurState == SHIPYARD_EXIT))
{ {
ExitShipyard: ExitShipyard:
SetInputCallback (NULL);
LockMutex (GraphicsLock); LockMutex (GraphicsLock);
DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame)); DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame));
pMS->ModuleFrame = 0; pMS->ModuleFrame = 0;
@@ -1269,12 +1271,6 @@ ExitShipyard:
} }
else else
{ {
#ifndef USE_3DO_HANGAR
LockMutex (GraphicsLock);
SetContext (SpaceContext);
animatePowerLines (NULL);
UnlockMutex (GraphicsLock);
#endif
DoMenuChooser (pMS, PM_CREW); DoMenuChooser (pMS, PM_CREW);
} }