Added capability of playing music tracks in Main menu and Super Melee menu
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1711 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
+27
-1
@@ -1536,6 +1536,12 @@ FreeMeleeInfo (PMELEE_STATE pMS)
|
||||
DestroyDirEntryTable (ReleaseDirEntryTable (pMS->TeamDE));
|
||||
pMS->TeamDE = 0;
|
||||
|
||||
if (pMS->hMusic)
|
||||
{
|
||||
DestroyMusic (pMS->hMusic);
|
||||
pMS->hMusic = 0;
|
||||
}
|
||||
|
||||
UninitSpace ();
|
||||
|
||||
DestroyDrawable (ReleaseDrawable (MeleeFrame));
|
||||
@@ -1650,8 +1656,17 @@ DoMelee (PMELEE_STATE pMS)
|
||||
SetMenuSounds (MENU_SOUND_ARROWS, MENU_SOUND_SELECT);
|
||||
if (!pMS->Initialized)
|
||||
{
|
||||
if (pMS->hMusic)
|
||||
{
|
||||
StopMusic ();
|
||||
DestroyMusic (pMS->hMusic);
|
||||
pMS->hMusic = 0;
|
||||
}
|
||||
pMS->hMusic = LoadMusicFile ("melee/melemenu.ogg");
|
||||
pMS->Initialized = TRUE;
|
||||
|
||||
pMS->MeleeOption = START_MELEE;
|
||||
PlayMusic (pMS->hMusic, TRUE, 1);
|
||||
LockMutex (GraphicsLock);
|
||||
InitMelee (pMS);
|
||||
UnlockMutex (GraphicsLock);
|
||||
@@ -1739,11 +1754,20 @@ DoMelee (PMELEE_STATE pMS)
|
||||
{
|
||||
BYTE black_buf[] = {FadeAllToBlack};
|
||||
|
||||
FadeMusic (0, ONE_SECOND / 2);
|
||||
SleepThreadUntil (XFormColorMap (
|
||||
(COLORMAPPTR)black_buf, ONE_SECOND / 2
|
||||
) + ONE_SECOND / 60);
|
||||
FlushColorXForms ();
|
||||
StopMusic ();
|
||||
}
|
||||
FadeMusic (NORMAL_VOLUME, 0);
|
||||
if (pMS->hMusic)
|
||||
{
|
||||
DestroyMusic (pMS->hMusic);
|
||||
pMS->hMusic = 0;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
LockMutex (GraphicsLock);
|
||||
@@ -1757,7 +1781,8 @@ DoMelee (PMELEE_STATE pMS)
|
||||
Battle ();
|
||||
free_gravity_well ();
|
||||
|
||||
if (GLOBAL (CurrentActivity) & CHECK_ABORT) return (FALSE);
|
||||
if (GLOBAL (CurrentActivity) & CHECK_ABORT)
|
||||
return (FALSE);
|
||||
|
||||
{
|
||||
BYTE black_buf[] = {FadeAllToBlack};
|
||||
@@ -2121,6 +2146,7 @@ Melee (void)
|
||||
SetMenuSounds (MENU_SOUND_ARROWS, MENU_SOUND_SELECT);
|
||||
DoInput ((PVOID)&MenuState, TRUE);
|
||||
|
||||
StopMusic ();
|
||||
WaitForSoundEnd (TFBSOUND_WAIT_ALL);
|
||||
|
||||
{
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "init.h"
|
||||
#include "libs/tasklib.h"
|
||||
#include "libs/gfxlib.h"
|
||||
#include "libs/sndlib.h"
|
||||
#include "libs/reslib.h"
|
||||
|
||||
|
||||
@@ -97,6 +98,8 @@ typedef struct melee_state
|
||||
Task flash_task;
|
||||
TEAM_IMAGE FileList[MAX_VIS_TEAMS];
|
||||
TEAM_IMAGE PreBuiltList[NUM_PREBUILT];
|
||||
|
||||
MUSIC_REF hMusic;
|
||||
} MELEE_STATE;
|
||||
typedef MELEE_STATE *PMELEE_STATE;
|
||||
|
||||
|
||||
@@ -121,11 +121,23 @@ DWORD InTime;
|
||||
static BOOLEAN
|
||||
DoRestart (PMENU_STATE pMS)
|
||||
{
|
||||
static DWORD InactTimeOut;
|
||||
|
||||
/* Cancel any presses of the Pause key. */
|
||||
GamePaused = FALSE;
|
||||
|
||||
if (!pMS->Initialized)
|
||||
{
|
||||
if (pMS->hMusic)
|
||||
{
|
||||
StopMusic ();
|
||||
DestroyMusic (pMS->hMusic);
|
||||
pMS->hMusic = 0;
|
||||
}
|
||||
pMS->hMusic = LoadMusicFile ("lbm/mainmenu.ogg");
|
||||
InactTimeOut = (pMS->hMusic ? 120 : 20) * ONE_SECOND;
|
||||
|
||||
PlayMusic (pMS->hMusic, TRUE, 1);
|
||||
DrawRestartMenu ((BYTE)~0, pMS->CurState, pMS->CurFrame);
|
||||
pMS->Initialized = TRUE;
|
||||
|
||||
@@ -152,9 +164,13 @@ else if (InputState & DEVICE_EXIT) return (FALSE);
|
||||
PulsedInputState.key[KEY_MENU_SELECT]))
|
||||
|
||||
{
|
||||
if (GetTimeCounter () - InTime < ONE_SECOND * 15)
|
||||
if (GetTimeCounter () - InTime < InactTimeOut)
|
||||
return (TRUE);
|
||||
|
||||
SleepThreadUntil (FadeMusic (0, ONE_SECOND));
|
||||
StopMusic ();
|
||||
FadeMusic (NORMAL_VOLUME, 0);
|
||||
|
||||
GLOBAL (CurrentActivity) = (ACTIVITY)~0;
|
||||
return (FALSE);
|
||||
}
|
||||
@@ -319,6 +335,13 @@ LastActivity = WON_LAST_BATTLE;
|
||||
SetMenuSounds (MENU_SOUND_UP | MENU_SOUND_DOWN, MENU_SOUND_SELECT);
|
||||
DoInput ((PVOID)&MenuState, TRUE);
|
||||
|
||||
StopMusic ();
|
||||
if (MenuState.hMusic)
|
||||
{
|
||||
DestroyMusic (MenuState.hMusic);
|
||||
MenuState.hMusic = 0;
|
||||
}
|
||||
|
||||
LockMutex (GraphicsLock);
|
||||
SetFlashRect ((PRECT)0, (FRAME)0);
|
||||
UnlockMutex (GraphicsLock);
|
||||
|
||||
Reference in New Issue
Block a user