[XP] TitleSwap

Started by lilbrudder917, December 30, 2009, 09:46:09 pm

Previous topic - Next topic

lilbrudder917

TitleSwap
Authors: LilBrudder917
Version: 1.0
Type: Custom Title
Key Term: Title / Save / Load / GameOver Add-on



Introduction

This script allows the player to change the title screen graphic by pressing an arrow key. Script version of MenuSwap.


Features


  • Allows more than one title screen graphic to be used.
  • Changes by using the arrow keys.



Screenshots

GIF'd: ShowHide



Demo

Click here for it!


Script

Spoiler: ShowHide
#==============================================================================
# TitleSwap by LilBrudder917
# Version 1.0
#------------------------------------------------------------------------------
# Edits Scene_Title. Shouldn't cause serious compatibility issues, though.
#
#  FEATURES:
#   + Allows the player to change the title image using < and > keys.
#
#  HOW TO USE:
#
# Have multiple title images in your Title Folder all beginning with the prefix
# you chose and ending with the number that they will be.
#                                       (title_1 before title_2)
#==============================================================================
#                              CONFIGURATION                                  
#==============================================================================

$TITLEIMG = "title_"             # Title Image Prefix
$TITLELMT = 4                    # Title Image Limit

#==============================================================================
#                               SCRIPT BELOW
#==============================================================================

class Scene_Title
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 
 attr_accessor :title_imgspc
 
 def main
   # If battle test
   if $BTEST
     battle_test
     return
   end
   # Load database
   $data_actors        = load_data("Data/Actors.rxdata")
   $data_classes       = load_data("Data/Classes.rxdata")
   $data_skills        = load_data("Data/Skills.rxdata")
   $data_items         = load_data("Data/Items.rxdata")
   $data_weapons       = load_data("Data/Weapons.rxdata")
   $data_armors        = load_data("Data/Armors.rxdata")
   $data_enemies       = load_data("Data/Enemies.rxdata")
   $data_troops        = load_data("Data/Troops.rxdata")
   $data_states        = load_data("Data/States.rxdata")
   $data_animations    = load_data("Data/Animations.rxdata")
   $data_tilesets      = load_data("Data/Tilesets.rxdata")
   $data_common_events = load_data("Data/CommonEvents.rxdata")
   $data_system        = load_data("Data/System.rxdata")
   @title_imgspc       = 1
   
   # Make system object
   $game_system = Game_System.new
   # Make title graphic
   @sprite = Sprite.new
   @sprite.bitmap = RPG::Cache.title($data_system.title_name)
   # Make command window
   s1 = "New Game"
   s2 = "Continue"
   s3 = "Shutdown"
   @command_window = Window_Command.new(192, [s1, s2, s3])
   @command_window.back_opacity = 160
   @command_window.x = 320 - @command_window.width / 2
   @command_window.y = 288
   # Continue enabled determinant
   # Check if at least one save file exists
   # If enabled, make @continue_enabled true; if disabled, make it false
   @continue_enabled = false
   for i in 0..3
     if FileTest.exist?("Save#{i+1}.rxdata")
       @continue_enabled = true
     end
   end
   # If continue is enabled, move cursor to "Continue"
   # If disabled, display "Continue" text in gray
   if @continue_enabled
     @command_window.index = 1
   else
     @command_window.disable_item(1)
   end
   # Play title BGM
   $game_system.bgm_play($data_system.title_bgm)
   # Stop playing ME and BGS
   Audio.me_stop
   Audio.bgs_stop
   # Execute transition
   Graphics.transition
   # Main loop
   loop do
     # Update game screen
     Graphics.update
     # Update input information
     Input.update
     # Frame update
     update
     # Abort loop if screen is changed
     if $scene != self
       break
     end
   end
   # Prepare for transition
   Graphics.freeze
   # Dispose of command window
   @command_window.dispose
   # Dispose of title graphic
   @sprite.bitmap.dispose
   @sprite.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   # Update command window
   @command_window.update
   # If C button was pressed
   if Input.trigger?(Input::C)
     # Branch by command window cursor position
     case @command_window.index
     when 0  # New game
       command_new_game
     when 1  # Continue
       command_continue
     when 2  # Shutdown
       command_shutdown
     end
   elsif Input.trigger?(Input::LEFT)
     if @title_imgspc == 1
       @title_imgspc = $TITLELMT
     else
       @title_imgspc = @title_imgspc - 1
     end
     @sprite.bitmap = RPG::Cache.title($TITLEIMG + @title_imgspc.to_s)
   elsif Input.trigger?(Input::RIGHT)
     if @title_imgspc == $TITLELMT
       @title_imgspc = 1
     else
       @title_imgspc = @title_imgspc + 1
     end
     @sprite.bitmap = RPG::Cache.title($TITLEIMG + @title_imgspc.to_s)
   end
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def command_new_game
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Stop BGM
   Audio.bgm_stop
   # Reset frame count for measuring play time
   Graphics.frame_count = 0
   # Make each type of game object
   $game_temp          = Game_Temp.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_screen        = Game_Screen.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
   # Set up initial party
   $game_party.setup_starting_members
   # Set up initial map position
   $game_map.setup($data_system.start_map_id)
   # Move player to initial position
   $game_player.moveto($data_system.start_x, $data_system.start_y)
   # Refresh player
   $game_player.refresh
   # Run automatic change for BGM and BGS set with map
   $game_map.autoplay
   # Update map (run parallel process event)
   $game_map.update
   # Switch to map screen
   $scene = Scene_Map.new
 end
 #--------------------------------------------------------------------------
 # * Command: Continue
 #--------------------------------------------------------------------------
 def command_continue
   # If continue is disabled
   unless @continue_enabled
     # Play buzzer SE
     $game_system.se_play($data_system.buzzer_se)
     return
   end
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Switch to load screen
   $scene = Scene_Load.new
 end
 #--------------------------------------------------------------------------
 # * Command: Shutdown
 #--------------------------------------------------------------------------
 def command_shutdown
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Fade out BGM, BGS, and ME
   Audio.bgm_fade(800)
   Audio.bgs_fade(800)
   Audio.me_fade(800)
   # Shutdown
   $scene = nil
 end
 #--------------------------------------------------------------------------
 # * Battle Test
 #--------------------------------------------------------------------------
 def battle_test
   # Load database (for battle test)
   $data_actors        = load_data("Data/BT_Actors.rxdata")
   $data_classes       = load_data("Data/BT_Classes.rxdata")
   $data_skills        = load_data("Data/BT_Skills.rxdata")
   $data_items         = load_data("Data/BT_Items.rxdata")
   $data_weapons       = load_data("Data/BT_Weapons.rxdata")
   $data_armors        = load_data("Data/BT_Armors.rxdata")
   $data_enemies       = load_data("Data/BT_Enemies.rxdata")
   $data_troops        = load_data("Data/BT_Troops.rxdata")
   $data_states        = load_data("Data/BT_States.rxdata")
   $data_animations    = load_data("Data/BT_Animations.rxdata")
   $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
   $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
   $data_system        = load_data("Data/BT_System.rxdata")
   # Reset frame count for measuring play time
   Graphics.frame_count = 0
   # Make each game object
   $game_temp          = Game_Temp.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_screen        = Game_Screen.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
   # Set up party for battle test
   $game_party.setup_battle_test_members
   # Set troop ID, can escape flag, and battleback
   $game_temp.battle_troop_id = $data_system.test_troop_id
   $game_temp.battle_can_escape = true
   $game_map.battleback_name = $data_system.battleback_name
   # Play battle start SE
   $game_system.se_play($data_system.battle_start_se)
   # Play battle BGM
   $game_system.bgm_play($game_system.battle_bgm)
   # Switch to battle screen
   $scene = Scene_Battle.new
 end
end





Instructions

Add title graphics into the Title folder, naming them "title_1", "title_2", and so on, unless you change the image prefix. If some graphics aren't showing in-game, try changing the limit in the script ($TITLELMT is lower than the amount of graphics you have in the folder). Also, if the limit is higher than the amount of graphics in the Title folder, the game will crash when the player tries to change to it.


Compatibility

Shouldn't be any serious compatibility issues, but if there are any, it'd probably be with custom Scene_Titles.


Credits and Thanks


  • Enterbrain



Author's Notes

This is a script version of MenuSwap. They both accomplish the same thing.

Daxisheart

Maybe you should make it fade/transition to other screens instead. The images you used contrasted greatly, and sorta hurts the eyes. I know, it's the maker's problem, but still.
"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.