//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data: data.ReadString( "MusicCueName" , ref m_music_cue_name , "" ); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read font: data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); // Read all other data data.ReadString ( "String1st" , ref m_string_1st , "no_string" ); data.ReadString ( "String2nd" , ref m_string_2nd , "no_string" ); data.ReadString ( "String3rd" , ref m_string_3rd , "no_string" ); data.ReadFloat ( "ScoreFadeInTime" , ref m_score_fade_in_time , 0.25f ); data.ReadFloat ( "NewHighScoreThrobTime" , ref m_new_high_score_throb_time , 0.25f ); data.ReadFloat ( "NewHighScoreThrobExpansion" , ref m_new_high_score_throb_expansion , 8 ); data.ReadFloat ( "NewHighScoreThrobColorR" , ref m_new_high_score_throb_color.X , 1 ); data.ReadFloat ( "NewHighScoreThrobColorG" , ref m_new_high_score_throb_color.Y , 1 ); data.ReadFloat ( "NewHighScoreThrobColorB" , ref m_new_high_score_throb_color.Z , 1 ); data.ReadFloat ( "NewHighScoreThrobColorA" , ref m_new_high_score_throb_color.W , 1 ); // Create font: m_font = new Font(m_font_name); // Reset this m_time_since_creation = 0; }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); data.ReadBool ( "Center" , ref m_center , false ); // Read in font: m_font = new Font(m_font_name); }
//######################################################################################### /// <summary> /// Reads the high scores for each level in the game. /// </summary> /// <param name="folder"> /// Folder name containing the xml files holding the high scores. Each xml file corresponds to /// the high scores for one level and is named the same as the level file. /// </param> //######################################################################################### public static void Load( string folder ) { // We have read high scores from a file now: s_read_high_scores = true; // Clear high scores: s_scores.Clear(); // This might fail: try { // Try and open the given directory: DirectoryInfo dir = new DirectoryInfo(folder); // Only do if it exists: if ( dir.Exists ) { // Cool: get a list of files in the dir FileInfo[] files = dir.GetFiles( "*.xml" ); // Run through the list of files: foreach ( FileInfo file in files ) { // Make an IO stream: Stream stream = file.Open(FileMode.Open,FileAccess.Read); // Attempt to read its data: XmlObjectData data = new XmlObjectData(stream); // Make up a new high score record HighScoreRecord h; h.Score1 = 0; h.Score2 = 0; h.Score3 = 0; h.Name1 = ""; h.Name2 = ""; h.Name3 = ""; // If any high score is negative then zero it: if ( h.Score1 < 0 ) h.Score1 = 0; if ( h.Score2 < 0 ) h.Score2 = 0; if ( h.Score3 < 0 ) h.Score3 = 0; // Attempt to read all three scores data.ReadFloat( "Score1" , ref h.Score1 ); data.ReadFloat( "Score2" , ref h.Score2 ); data.ReadFloat( "Score3" , ref h.Score3 ); // Load user names: data.ReadString( "Name1" , ref h.Name1 ); data.ReadString( "Name2" , ref h.Name2 ); data.ReadString( "Name3" , ref h.Name3 ); // Trim the names: h.Name1 = h.Name1.Trim(); h.Name2 = h.Name2.Trim(); h.Name3 = h.Name3.Trim(); // If no user name given then use the '-' monkier if ( h.Name1.Length <= 0 ) h.Name1 = "-"; if ( h.Name2.Length <= 0 ) h.Name2 = "-"; if ( h.Name3.Length <= 0 ) h.Name3 = "-"; // Ensure names are within limits: if ( h.Name1.Length > User.MAX_USER_NAME_LENGTH ) h.Name1 = h.Name1.Substring( 0 , User.MAX_USER_NAME_LENGTH ); if ( h.Name2.Length > User.MAX_USER_NAME_LENGTH ) h.Name2 = h.Name2.Substring( 0 , User.MAX_USER_NAME_LENGTH ); if ( h.Name3.Length > User.MAX_USER_NAME_LENGTH ) h.Name3 = h.Name3.Substring( 0 , User.MAX_USER_NAME_LENGTH ); // Sort the scores if not in order: if ( h.Score3 > h.Score2 ){ float t = h.Score3; h.Score3 = h.Score2; h.Score2 = t; } if ( h.Score2 > h.Score1 ){ float t = h.Score2; h.Score2 = h.Score1; h.Score1 = t; } if ( h.Score3 > h.Score2 ){ float t = h.Score3; h.Score3 = h.Score2; h.Score2 = t; } // Save the high scores record: s_scores[ file.Name.ToLower() ] = h; } } } // On windows debug display errors: #if WINDOWS_DEBUG catch ( Exception e ) { // Show what happened: DebugConsole.PrintException(e); // Clear high scores: s_scores.Clear(); } #else catch ( Exception ) { // Clear high scores: s_scores.Clear(); } #endif }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base function base.ReadXml(data); // Read all data: data.ReadString ( "SpawnObjectType" , ref m_spawn_object_type , "EnemyNinja" ); data.ReadInt ( "MinimumPhase" , ref m_mininum_phase , 0 ); // Clamp the minimum phase from 0-2: if ( m_mininum_phase < 0 ) m_mininum_phase = 0; if ( m_mininum_phase > 2 ) m_mininum_phase = 2; }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data: data.ReadFloat ( "FadeTime" , ref m_fade_time , 2.0f ); data.ReadString ( "NextGui" , ref m_next_gui , "" ); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call the base class function first: base.ReadXml(data); // Read the collision lines file name: data.ReadString( "CollisionLinesXmlFile" , ref m_collision_lines_xml_file , "Content\\CollisionLines\\default.xml" ); // Read the scaling for the collision lines: data.ReadFloat( "CollisionLineScaleX" , ref m_collision_line_scale.X , 1 ); data.ReadFloat( "CollisionLineScaleY" , ref m_collision_line_scale.Y , 1 ); // Read this: data.ReadBool( "ReverseCollisionNormals" , ref m_reverse_collision_normals , false ); // Load collision lines: ReadXmlCollisionLines(); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data data.ReadString ( "Level" , ref m_level_name ); data.ReadString ( "GameGui" , ref m_game_gui_name ); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data: data.ReadEffect ( "Effect" , ref m_effect_name , ref m_effect , "Effects\\textured" ); data.ReadEffect ( "StringWobbleEffect" , ref m_string_wobble_effect_name , ref m_string_wobble_effect , "Effects\\textured" ); data.ReadTexture( "FillTexture" , ref m_fill_texture_name , ref m_fill_texture , "Graphics\\default" ); data.ReadTexture( "BarTexture" , ref m_bar_texture_name , ref m_bar_texture , "Graphics\\default" ); data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); data.ReadString ( "StringName" , ref m_string_name , "No_String" ); data.ReadFloat ( "StringOffsetY" , ref m_string_offset_y , 32 ); data.ReadFloat ( "FillPaddingX" , ref m_fill_padding.X , 0 ); data.ReadFloat ( "FillPaddingY" , ref m_fill_padding.Y , 0 ); data.ReadFloat ( "MinimumValue" , ref m_minimum_value , 0.0f ); data.ReadFloat ( "MaximumValue" , ref m_maximum_value , 1.0f ); data.ReadFloat ( "CurrentValue" , ref m_current_value , 0.5f ); data.ReadFloat ( "ChangeSpeed" , ref m_change_speed , 1.0f ); data.ReadFloat ( "SizeX" , ref m_size.X , 128 ); data.ReadFloat ( "SizeY" , ref m_size.Y , 32 ); data.ReadFloat ( "ExpandTime" , ref m_expand_time , 1 ); data.ReadFloat ( "ExpansionX" , ref m_expansion.X , 16 ); data.ReadFloat ( "ExpansionY" , ref m_expansion.Y , 4 ); data.ReadFloat ( "StringExpansion" , ref m_string_expansion , 0 ); data.ReadFloat ( "HighlightWobbleSpeed" , ref m_highlight_wobble_speed , 0.01f ); data.ReadFloat ( "HighlightWobbleIntensity" , ref m_highlight_wobble_intensity , 8 ); data.ReadString ( "ValueChangedEvent" , ref m_value_changed_event , "" ); data.ReadString ( "BackEvent" , ref m_back_event , "" ); data.ReadString ( "FocusSound" , ref m_focus_sound , "" ); data.ReadString ( "UseSound" , ref m_use_sound , "" ); // If the minimum value is bigger the max then swap: if ( m_minimum_value > m_maximum_value ) { float t = m_minimum_value; m_minimum_value = m_maximum_value; m_maximum_value = t; } // Fill in the color and texture coordinates of the vertices for rendering: m_vertices[0].Color = Color.White; m_vertices[1].Color = Color.White; m_vertices[2].Color = Color.White; m_vertices[3].Color = Color.White; m_vertices[4].Color = Color.White; m_vertices[5].Color = Color.White; m_vertices[0].TextureCoordinate = Vector2.Zero; m_vertices[1].TextureCoordinate = Vector2.UnitY; m_vertices[2].TextureCoordinate = Vector2.UnitX; m_vertices[3].TextureCoordinate = Vector2.One; m_vertices[4].TextureCoordinate = Vector2.Zero; m_vertices[5].TextureCoordinate = Vector2.UnitY; // Read in font: m_font = new Font(m_font_name); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base function base.ReadXml(data); // Read all attributes data.ReadString( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); data.ReadFloat ( "FloatSpeed" , ref m_float_speed , 0.25f ); data.ReadFloat ( "ScoreLiveTime" , ref m_score_live_time , 2.0f ); // Load the given font: m_font = new Font(m_font_name); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); data.ReadString ( "PhaseStringName" , ref m_phase_string_name , "No_String_Specified" ); data.ReadString ( "ReadyStringName" , ref m_ready_string_name , "No_String_Specified" ); data.ReadBool ( "Center" , ref m_center , false ); data.ReadFloat ( "FontEnlarge" , ref m_font_enlarge , 64.0f ); // Read in font: m_font = new Font(m_font_name); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_16px.xml" ); data.ReadString ( "StringName" , ref m_string_name , "No_String_Specified" ); // Read alignment: string alignment = ""; data.ReadString("Alignment" , ref alignment ); // See what alignment we have: alignment = alignment.ToLower(); if ( alignment.Equals("center") ) { // Text is centered m_alignment = Alignment.CENTER; } else if ( alignment.Equals("right") ) { // Right align m_alignment = Alignment.RIGHT; } else { // Left align m_alignment = Alignment.LEFT; } // Read in font: m_font = new Font(m_font_name); }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data: data.ReadString ( "Font" , ref m_font_name , "Content\\Fonts\\Game_48px.xml" ); data.ReadFloat ( "PictureSizeX" , ref m_picture_size.X , 128 ); data.ReadFloat ( "PictureSizeY" , ref m_picture_size.Y , 128 ); data.ReadFloat ( "StringOffsetY" , ref m_string_offset_y , 0 ); data.ReadFloat ( "FadeTime" , ref m_fade_time , 0.25f ); data.ReadFloat ( "DisplayTime" , ref m_display_time , 2 ); data.ReadInt ( "StoryPartCount" , ref m_story_part_count , 1 ); // Read story data: if ( m_story_part_count > 0 ) { // Declare arrays for all the story pictures and strings: m_pictures = new Texture2D [ m_story_part_count ]; m_picture_names = new string [ m_story_part_count ]; m_story_strings = new string [ m_story_part_count ]; // Read each part of the story: the string and texture for ( int i = 0 ; i < m_story_part_count ; i++ ) { // Story part texture data.ReadTexture ( "StoryPicture" + (i+1).ToString() , ref m_picture_names[i] , ref m_pictures[i] , "Graphics\\default" ); // Story part string data.ReadString ( "StoryString" + (i+1).ToString() , ref m_story_strings[i] , "No_String" ); } } else { // No story: m_pictures = null; m_picture_names = null; m_story_strings = null; } // Read in font: m_font = new Font(m_font_name); // Fading in to current part: m_transition_state = TransitionState.SHOWING; m_current_state_time = 0; m_current_story_part = 0; }
//========================================================================================= /// <summary> /// In this function each derived class should read its own data from /// the given XML node representing this object and its attributes. Base methods should /// also be called as part of this process. /// </summary> /// /// <param name="data"> /// An object representing the xml data for this XMLObject. Data values should be /// read from here. /// </param> //========================================================================================= public override void ReadXml( XmlObjectData data ) { // Call base class function base.ReadXml(data); // Read all data: data.ReadString( "GameLostString" , ref m_game_lost_string , "No_string" ); data.ReadString( "GameWonString" , ref m_game_won_string , "No_string" ); data.ReadString( "MessageFont" , ref m_message_font_name , "Content\\Fonts\\Game_32px.xml" ); data.ReadString( "GameWonGui" , ref m_game_won_gui , "" ); data.ReadString( "GameLostGui" , ref m_game_lost_gui , "" ); // Load the message font: m_message_font = new Font( m_message_font_name ); }