From: <av...@us...> - 2009-12-05 23:27:13
|
Revision: 3395 http://sc2.svn.sourceforge.net/sc2/?rev=3395&view=rev Author: avolkov Date: 2009-12-05 23:27:06 +0000 (Sat, 05 Dec 2009) Log Message: ----------- Hangar animation is now a DoInput callback; now works in Game menu too Modified Paths: -------------- trunk/sc2/src/uqm/shipyard.c Modified: trunk/sc2/src/uqm/shipyard.c =================================================================== --- trunk/sc2/src/uqm/shipyard.c 2009-12-05 22:38:37 UTC (rev 3394) +++ trunk/sc2/src/uqm/shipyard.c 2009-12-05 23:27:06 UTC (rev 3395) @@ -100,6 +100,18 @@ } } +static void +on_input_frame (void) +{ + CONTEXT oldContext; + + LockMutex (GraphicsLock); + oldContext = SetContext (SpaceContext); + animatePowerLines (NULL); + SetContext (oldContext); + UnlockMutex (GraphicsLock); +} + #ifdef WANT_SHIP_SPINS static void SpinStarShip (MENU_STATE *pMS, HFLEETINFO hStarShip) @@ -1025,13 +1037,6 @@ } UnlockMutex (GraphicsLock); } - -#ifndef USE_3DO_HANGAR - LockMutex (GraphicsLock); - SetContext (SpaceContext); - animatePowerLines (NULL); - UnlockMutex (GraphicsLock); -#endif } SleepThread (ONE_SECOND / 30); @@ -1215,21 +1220,16 @@ SetContextFont (TinyFont); - { - RECT r; - - r.corner.x = 0; - r.corner.y = 0; - r.extent.width = SCREEN_WIDTH; - r.extent.height = SCREEN_HEIGHT; - ScreenTransition (3, &r); - } + ScreenTransition (3, NULL); UnbatchGraphics (); UnlockMutex (GraphicsLock); PlayMusic (pMS->hMusic, TRUE, 1); ShowCombatShip (pMS, (COUNT)~0, NULL); + + SetInputCallback (on_input_frame); + LockMutex (GraphicsLock); SetFlashRect (SFR_MENU_3DO); UnlockMutex (GraphicsLock); @@ -1240,6 +1240,8 @@ else if (cancel || (select && pMS->CurState == SHIPYARD_EXIT)) { ExitShipyard: + SetInputCallback (NULL); + LockMutex (GraphicsLock); DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame)); pMS->ModuleFrame = 0; @@ -1269,12 +1271,6 @@ } else { -#ifndef USE_3DO_HANGAR - LockMutex (GraphicsLock); - SetContext (SpaceContext); - animatePowerLines (NULL); - UnlockMutex (GraphicsLock); -#endif DoMenuChooser (pMS, PM_CREW); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |