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:
avolkov
2005-05-04 05:15:18 +00:00
parent 254b960ae4
commit a87910238c
3 changed files with 54 additions and 2 deletions
+27 -1
View File
@@ -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);
{
+3
View File
@@ -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;
+24 -1
View File
@@ -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);