void UGameUserSettings::SetToDefaults()
{
    ResolutionSizeX = LastUserConfirmedResolutionSizeX = GetDefaultResolution().X;
    ResolutionSizeY = LastUserConfirmedResolutionSizeY = GetDefaultResolution().Y;
    WindowPosX = GetDefaultWindowPosition().X;
    WindowPosY = GetDefaultWindowPosition().Y;
    FullscreenMode = GetDefaultWindowMode();

    ScalabilityQuality.SetDefaults();
}
Exemple #2
0
void	CreateDialogBoxTemplate ( unsigned char *  	Data,
				  int  			DataSize,
				  DIALOGBOX &		DialogBoxTemplate )
   {
	char				buffer [ MAX_PARAMETER_LENGTH ] ;
	register unsigned char *        p,
			       *	pdata ;
	DLGTEMPLATE			DlgTemplate ;
	DLGITEMTEMPLATE *		ItemTemplates,
			*		pItem ;
	TDialogEntryData *		DlgDatas ;
	FONTINFO			FontInfo ;
	register int			i ;
	int				x, y ;
	BOOL				HardcopyMode ;
	integer16			remote_data_size, 
					unix_data_size ;


// Si le paramètre HardCopyMode de la section [Settings] est à TRUE, on
// enlève toute référence à des BorShade et on utilise les controles standard
// de Windows. Les BorStatic deviennent alors des STATIC.
	HardcopyMode = Configuration -> GetBoolean ( "Settings", "HardCopyMode", FALSE ) ;


// Dans la définition du dialogue (structure TDialogDefinition), on saute
// l'id de la boîte ainsi que les coordonnées en mode texte.
// (ne pas oublier qu'une structure UTDialogBox précède cette définition)
	pdata = Data + sizeof ( integer16 ) + sizeof ( TDialogDimension ) ;

// pdata pointe sur les coordonnées graphiques : on les récupère
	GetI16 ( DlgTemplate. dtX , pdata ) ;
	GetI16 ( DlgTemplate. dtY , pdata ) ;
	GetI16 ( DlgTemplate. dtCX, pdata ) ;
	GetI16 ( DlgTemplate. dtCY, pdata ) ;

// Récupération du nom de menu
	GetStr ( DlgTemplate. dtMenuName, pdata ) ;

// de la classe
	GetStr ( DlgTemplate. dtClassName, pdata ) ;

	if  ( HardcopyMode )
		* DlgTemplate. dtClassName = 0 ;


// du nom de la police et de sa taille
	GetStr ( FontInfo. szTypeFace, pdata ) ;
	GetI16 ( FontInfo. PointSize , pdata ) ;

// du titre
	GetStr ( DlgTemplate. dtCaptionText, pdata ) ;

// du style
	GetI32 ( DlgTemplate. dtStyle, pdata ) ;

// Ce flag indique à CreateDialogIndirect qu'une structure de type FONTINFO
// suit la DLGTEMPLATE...
	DlgTemplate. dtStyle  |=  DS_SETFONT ;

// et du nombre de contrôles
	GetI16 ( DlgTemplate. dtItemCount, pdata ) ;

// On vérifie l'origine de la fenêtre
	GetDefaultWindowPosition ( x, y, DlgTemplate. dtCX, DlgTemplate. dtCY ) ;

	if  ( DlgTemplate. dtX  ==  CW_USEDEFAULT )
		DlgTemplate. dtX = x ;

	if  ( DlgTemplate. dtY  ==  CW_USEDEFAULT )
		DlgTemplate. dtY = y ;


// Allocation des DLGITEMTEMPLATEs
	if  ( DlgTemplate. dtItemCount > 0 )
	   {
		ItemTemplates = new DLGITEMTEMPLATE  [ DlgTemplate. dtItemCount ] ;
		DlgDatas      = new TDialogEntryData [ DlgTemplate. dtItemCount ] ;
		memset ( DlgDatas, 0, sizeof ( TDialogEntryData ) * DlgTemplate. dtItemCount ) ;
		

	// Pour chaque contrôle...
		for  ( i = 0, pItem = ItemTemplates ;
				i < DlgTemplate. dtItemCount ;
					i ++, pItem ++ )
		   {
		// Récupération de l'identificateur du contrôle
			GetI16 ( pItem -> dtilID, pdata ) ;

		// On saute les coordonnées en mode texte
			pdata += sizeof ( TDialogDimension ) ;

		// Récupération des coordonnées
			GetI16 ( pItem -> dtilX , pdata ) ;
			GetI16 ( pItem -> dtilY , pdata ) ;
			GetI16 ( pItem -> dtilCX, pdata ) ;
			GetI16 ( pItem -> dtilCY, pdata ) ;

		// Récupération du titre
			GetStr ( pItem -> dtilText, pdata ) ;

		// de la classe
			GetStr ( pItem -> dtilClass, pdata ) ;

		// du style
			GetI32 ( pItem -> dtilStyle, pdata ) ;

			if  ( HardcopyMode )
			   {
			// Masquer les controles BorShade
				if  ( ! stricmp( pItem -> dtilClass, "BorShade" )  &&
					( pItem -> dtilStyle & ( BSS_GROUP | BSS_RGROUP ) ) )
				   {
					pItem -> dtilStyle |=  WS_DISABLED ;
					pItem -> dtilStyle &= ~WS_VISIBLE ;
				     }

			// Transformer les BorStatic en Static
				else if  ( ! stricmp ( pItem -> dtilClass, "BorStatic" ) )
				   {
					strcpy ( pItem -> dtilClass, "STATIC" ) ;

					if  ( pItem -> dtilStyle & BSS_LEFT )
					   {
						pItem -> dtilStyle  &=  ~BSS_LEFT ;
						pItem -> dtilStyle  |=  SS_LEFT ;
					     }

					if  ( pItem -> dtilStyle & BSS_CENTER )
					   {
						pItem -> dtilStyle  &=  ~BSS_CENTER ;
						pItem -> dtilStyle  |=  SS_CENTER ;
					     }

					if  ( pItem -> dtilStyle & BSS_RIGHT )
					   {
						pItem -> dtilStyle  &=  ~BSS_RIGHT ;
						pItem -> dtilStyle  |=  SS_RIGHT ;
					     }
				      }
			    }



		// On ne se préoccupe pas pour le moment des infos
			GetI16 ( unix_data_size  , pdata ) ;
			GetI16 ( remote_data_size, pdata ) ;

			if  ( unix_data_size )
				memcpy ( DlgDatas + i, pdata, sizeof ( DlgDatas [i] ) ) ;

			pdata += unix_data_size ;
			pdata += remote_data_size ;	// On ne gère pas les "RemoteData"

			pItem -> dtilInfo = 0 ;
			pItem -> dtilData = 0 ;

		// La modif suivante est annulée (pb de ressources disponibles
		// suite à la création de controles multiline :
		//**************************************************************
		//  Aligner les numériques à droite
		//  Cela se fait avant la création car je ne sais toujours pas
		//  comment faire prendre en compte à un controle EDIT des
		//  modifications de bits de style après la création du controle.
		/***	if  ( * DlgDatas [i]. Format  ==  'd' )
			   {
				pItem -> dtilStyle  &=  ~ES_LEFT ;
				pItem -> dtilStyle  &=  ~ES_CENTER ;
				pItem -> dtilStyle  |=   ES_RIGHT | ES_MULTILINE ;
			     }
		 ***/
		    }
	    }
	DialogBoxTemplate. DialogTemplate 	=  DlgTemplate ;
	DialogBoxTemplate. FontInfo	   	=  FontInfo ;
	DialogBoxTemplate. DialogItemTemplates  =  ItemTemplates ;
	DialogBoxTemplate. DialogEntryData	=  DlgDatas ;
    }