How do I add screens before my title game screen?
You'd like to replace or show something before the title screen? Guess what? You can do that! Isn't the OHRRPGCE the world's best rpg engine? ^______^
Now, you need to think about what you want to show up when the game starts. You might have "An XYZ production", or "Created with the OHRRPGCE" or something. Here are a few example screens (by Mike Caron and members of the Castle Paradox community.) that one might theoretically use (free to use, although not recommended):
Once you've created your screens, launch Custom and open your game.
Now, go into Edit General Game Data, and choose Preference Bitsets.... Then, enable the "skip title screen" bitset. If you also want to implement your own loading screen, also enable the "skip load screen" bitset. However, this will not be covered in this tutorial (but it is in How do I make title options like Start Game, Continue Game, etc.?)
Next, import your screens as backdrops. This should be a no-brainer. It doesn't really matter what order you import them, but for your own sake, do it in order. Also, note which numbers each screen has, for use in the upcoming plotscript. Let's pretend that the two screens shown above are #1 and #2, while the title screen itself is #3. Also, if possible, import an all-black screen. We'll assume you did this first, and it's numbered #0.
Now, you need to open up your plotscript file.
Include the following scripts in your code:
#change this if you already have a script #1 #------------------------------------------- plotscript, title screen, begin suspend player #the player shouldn't be able to move during the title, duh... show backdrop (0) #show absolutely nothing fade screen out wait(1) #this is to avoid the initial fade-in do, begin if(skippable wait(15)) then (break) #waiting a few seconds before displaying anything never hurts show backdrop (1)# FooBar Studios wait(1) fade screen in if(skippable wait(30)) then (break) fade screen out show backdrop (2)# created with the OHR wait(1) fade screen in if(skippable wait(30)) then (break) end fade screen out show backdrop (3) #title screen play song(song:title) #play the title theme wait(1) fade screen in while(true) do, begin #these simulate the regular behaviour of the title screen wait (1) #don't delete the wait (1) command here! I would prevent the player from pressing the keys if(key is pressed(28)) then (break) #ENTER if(key is pressed(57)) then (break) #SPACE if(key is pressed(1)) then (fade screen out, game over) #ESCAPE end variable (s) #display the load-game menu #if you were implementing your own, you'd do it here s := load menu(false) #show it, but don't actually do anything if(s > 0) then, begin load from slot (s) # The game was loaded, so this script ends now. end if(s == -1) then, begin game over #they chose quit end if(s == 0) then, begin introduction #game intro begins, this is your old new-game script end #end of the load menu end #end of plotscript #------------------------------------------- script, skippable wait, ticks, begin # Returns true if the wait was cancelled by a keypress. variable(i) for(i, 1, ticks) do, begin wait(1) if(key is pressed(key:ENTER)) then(exit returning(true)) if(key is pressed(key:SPACE)) then(exit returning(true)) if(key is pressed(key:CTRL)) then(exit returning(true)) if(key is pressed(key:ALT)) then(exit returning(true)) if(key is pressed(key:ESC)) then(exit returning(true)) if(key is pressed(joy:button 1)) then(exit returning(true)) if(key is pressed(joy:button 2)) then(exit returning(true)) end exit returning(false) end
Import your scripts, and set the new-game script (under General Game Data->Special Plotscripts) to title screen
Notes about the scripts:
- skippable wait is copied from the Scripts:skippable wait article. It's just like wait, can be interrupted by pressing a key to interrupt it. This is used so that we display a given screen for the proper amount of time, but still allow the player to skip right to the title.
- If there are no saved games, load game will automatically choose "new game" for you. That is why the title-screen section listens for "escape", so the player has a chance to quit if they choose to do so.