Always snap to grid

UE1:RMusic Controller

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 04:42, 2 June 2008 by Raven (Talk | contribs) (Advanced usage (gametype/console integration))

Jump to: navigation, search

This class is part of RMusicPlayer by Raven

About

RMusic_Controller is part of RMusicPlayer beta. It controls RMusic_Player.

Usage

In ActorBrowser find Actor->RMusic_Component->RMusic_Controller, place it on map and configure it.

RMusic_Controller properties

You can configure following properties:

Name: PlayerClass

Type: class<RMusic_Player>

Description: Player class (if you want to have own music directory)


Name: RMusic_File

Type: string

Description: Music file to play


Name: RMusic_PlayAtStartup

Type: bool

Description: Should it be played at level start


Name: RMusic_MuteUMX

Type: bool

Description: If true will mute all music in umx files


Name: RMusic_BroadcastToAll

Type: bool

Description: If true, it'll broadcast functions to all players


Name: RMusic_bUnloadPreviousDSP

Type: bool

Description: If true, all DSP plugins will be unloaded


Name: RMusic_bOwnFadeUpdateTime

Type: bool

Description: If true, RMusic_OwnFadeUpdateTime will be used instead of default FaderUpdateTime in RMusic_Player


Name: RMusic_OwnFadeUpdateTime

Type: float

Description: Defines how fast music will fade in/out


Name: RMusic_bUseSaveControl

Type: bool

Description: If true, special RMusic_Save will be spawned to track last used controller


Name: RMusic_DSPPlugins[16]

Type: string

Description: DSP plugins to load


Name: Action

Type: ENum

Values:

  • AC_Play - Plays music
  • AC_Stop - Stops music
  • AC_ShutDown - Shutdown FMODEX (avoid this one ;) )

Description: Action


Name: RMusic_PlayType

Type: ENum

Values:

  • PT_Loop - Loops music
  • PT_PlayOnce - Plays once

Description: Play type


Name: RMusic_Transition

Type: ENum

Values:

  • TRANS_Instanly - Instant transition
  • TRANS_Fade - Smooth fade

Description: Transition type

Advanced usage (gametype/console integration)

RMusicPlayer can be also integrated with gametypes, console.

Gametype integration with save support

Subclass of SinglePlayer2 (SinglePlayer2 is part of OldSkool by UsAaR33)

class RMusic_SingleGameInfo extends SinglePlayer2;
 
event PostLogin( playerpawn NewPlayer )
{
        local RMusic_Controller RMusic_Controller;
        local RMusic_Save RMusic_Save;
        local RMusic_Player RMusic_Player;
 
        Super.PostLogin(NewPlayer);
 
        if(Level.NetMode != NM_DedicatedServer)
        {
                //we have to found save part
                foreach AllActors(class'RMusic_Save', RMusic_Save)
                {
                        //we have to check if we have saved controller
                        if(RMusic_Save.SavedController != none)
                        {
                                RMusic_Controller=RMusic_Save.SavedController;
                                break;
                        }
                }
                //if saved controller is found, we have to restore music
                if(RMusic_Controller != none) RMusic_Controller.EVENT_Player();
		else
		{
			//we found RMusic_Save, so RMusic_Controller is used, but wasn't activated. We have to stop the music if playing
			RMusic_Player = class'RMusic_Component'.static.Find_RMusicPlayerByPPawn(NewPlayer,none,true);
			if( RMusic_Player != none)
			{
				if( RMusic_Player.RMusic_IsPlaying() ) RMusic_Player.RMusic_Stop();
			}
		}
        }
}

Console integration

Subclass of UTConsole

class RMusic_Console extends UTConsole;
 
function DrawLevelAction( canvas C )
{
	local RMusic_Player RMusic_Player;
	local PlayerPawn PP;
 
	if ( Viewport.Actor.Level.LevelAction == LEVACT_Loading ) // Loading Screen
	{
		PP = Root.GetPlayerOwner();
		if(PP != none)
		{
			if(PP.GetEntryLevel() != none)
			{
				foreach PP.GetEntryLevel().AllActors(class'RMusic_Player', RMusic_Player) break;
 
				if (RMusic_Player != none && RMusic_Player.RMusic_IsPlaying()) RMusic_Player.RMusic_Stop();
			}
		}	
	}
	Super.DrawLevelAction(C);
}