home *** CD-ROM | disk | FTP | other *** search
/ Merciful 3 / Merciful_Release_3.bin / software / h / henrys_house / henryshouse1.dms / henryshouse1.adf / SourceCode / Intro.Asc < prev    next >
Text File  |  1993-06-20  |  9KB  |  216 lines

  1. '                                Henry's House 
  2. '
  3. '                          INTRO SEQUENCE SOURCE CODE  
  4. '
  5. '                          by : Gurmita & Sucha Singh
  6. '
  7. '----------------------------------------------------------------------------- 
  8. ' Firstly the Source code can not be played through an Amos editor or you  
  9. ' will get an error as the program needs some files copied into ram first. 
  10. ' This happens in the Startup-Sequence(see below). 
  11. '
  12. ' The Game is divided into sections each one doing a particular task eg,   
  13. ' showing the title screen or running a level.This makes a game a bit easier 
  14. ' to program as you can make it in sections then finally join them together. 
  15. '
  16. ' The starup-sequence below explains how the various files get copied into Ram.  
  17. '
  18. ' Makedir RAM:T          } 
  19. ' Makedir RAM:ENV        } Makes the directorys for a Ram disk.
  20. ' Makedir RAM:CLIPBOARDS } 
  21. '
  22. ' Makedir RAM:Fonts      } Makes the directorys in Ram so the
  23. ' Makedir RAM:c          } files can be copied into them.
  24. '
  25. ' Copy >Nil :sys:c RAM:c           } Copys the 'C' commands into Ram.
  26. ' Copy >Nil :sys:Fonts RAM:Fonts   } Copys the Fonts into Ram. 
  27. ' Copy >Nil :sys:Hiscores.SCR RAM: } Copys the hiscores into Ram so the
  28. '                                    Game can save them into memeory rather
  29. '                                    than to disk when you enter your name.
  30. '
  31. ' Assign Fonts: RAM:Fonts } Changes 'Font' Directory to the one in Ram so
  32. '                           when the Game needs to use Disk2, it can 
  33. '                           re-Assign fonts from memory to Disk2 without 
  34. '                           having to do too many diskswaps. 
  35. ' Assign c: RAM:c         } Changes 'c' directory to the one in Ram. 
  36. ' Path RAM: add           } Tells the Amiga to search through the Ram:c
  37. '                           directory when ever it wants to use the commands.
  38. '
  39. ' Assign T: RAM:T              } 
  40. ' Assign ENV: RAM:ENV          } Assigns relevant directorys to ones in Ram. 
  41. ' Assign CLIPS: RAM:CLIPBOARDS } 
  42. '
  43. ' Run >Nil :Henry's_House } Loads the Intro-sequence.
  44. ' Endcli                  } Closes the Cli window. 
  45. '
  46. ' note: >Nil } This allows the command not to be printed in the cli window.
  47. '
  48. '----------------------------------------------------------------------------- 
  49. '
  50. ' The following source code will display the 'State Of The Art' logo animation 
  51. ' and then the Henry's House logo animation. It will then ask you to 'Insert 
  52. ' Disc2 in any drive', then load the game. But if you have a 2nd drive and 
  53. ' have already inserted Disc2 the game will load automatically.
  54. '
  55. ' The animations in this Game are all stored in chip memory which allows them
  56. ' to be saved and compiled with the Amos programs like Sprites or Packed 
  57. ' Pictures.The animations can only be played by Amos Professinal.To do this
  58. ' yourself first : 
  59. '
  60. ' Step 1 - Load an animation into a bank.
  61. '
  62. ' Step 2 - Save that bank using 'Bsave'. 
  63. '
  64. ' Step 3 - Reserve some Chip Data in a bank.The amount you reserve has 
  65. '          to be the same as the Bank length of your animation.
  66. '
  67. ' Step 4 - Load the Bank you saved earlier into the new reserved one.
  68. '          Now when you save an Amos program the animation gets saved
  69. '          with it and can be played at any time.
  70. '
  71. ' Memory Banks Used: 
  72. ' 10 - Chip Data - State Of The Art logo animation 
  73. ' 11 - Chip Data - Henry's House logo animation  
  74. ' 12 - Pac Pic - State logo shaded in  
  75. ' 13 - Pac Pic - Insert Disc2 picture  
  76. '
  77. ' Variable Used: 
  78. ' N  - Total number of frames for an animation.
  79. '
  80. '----------------------------------------------------------------------------- 
  81. '
  82. ' Closes the Amos editor to save memory. 
  83. Close Editor 
  84. '
  85. '----------------------------------------------------------------------------- 
  86. ' Call the INTRODUCTION procedure. 
  87. _INTRODUCTION
  88. '
  89. '----------------------------------------------------------------------------- 
  90. '
  91. ' Plays the two animations from memory then calls the _CHANGE_DISK Procedure.
  92. Procedure _INTRODUCTION
  93.    '
  94.    ' Opens up a new screen to play the animations in. 
  95.    Screen Open 0,320,200,8,Lowres : Screen Hide 0
  96.    Curs Off : Flash Off : Cls 0 : Hide On 
  97.    Screen 0
  98.    ' Sets directory to Disk1. 
  99.    Dir$="Henry's_House:"
  100.    '
  101.    '----------------------------  Scene 1 ------------------------------------
  102.    ' Sets the total number of frames in the first animation.
  103.    N=57
  104.    '
  105.    ' Displays the Screen,sets where the animation is coming from ,Bank 10,
  106.    ' its channel number(1) and screen number(0).
  107.    Screen Show 0
  108.    P=Frame Play(10,1,0)
  109.    '
  110.    ' Double Buffers the screen so the animation dos'nt flicker. 
  111.    Double Buffer 
  112.    '
  113.    ' For next' loop is used to flick through each frame one at a time with 'N'
  114.    ' holding the total number of Frames and 'X' holding the individual frame
  115.    ' number which increases until it matches 'N' and finishes the loop. 
  116.    For X=2 To N-2 : Rem N-2 this makes the animation stop at the last frame. 
  117.       P=Frame Play(P,1)
  118.       Screen Swap 
  119.       Wait Vbl : Wait Vbl 
  120.    Next X
  121.    '
  122.    ' Pauses on the logo then fades the screen to white. 
  123.    Wait 30
  124.    Fade 1,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 15
  125.    '
  126.    ' Unpacks the shaded logo from bank 12 then fades all the colours to white.
  127.    Unpack 12 To 1 : Screen Hide 1 : Screen 1 : Fade 1,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF : Wait 15
  128.    Screen 1
  129.    '
  130.    ' It then shows screen 1 which is now white and fades back the colours to
  131.    ' that of the shaded logo. Lastly it fades the final logo to black.
  132.    Screen Show 1
  133.    Fade 4,$0,$FFF,$BDE,$8BD,$6AB,$59A,$379,$268,$156,$46,$E52,$E82,$FA3,$FC4,$FE5,$0,$EE4,$BE2,$AD1,$4C0,$CEF,$ADF,$7CF,$4BF,$FCB,$FA9,$F98,$F76,$EEE,$BBB,$999,$666
  134.    Wait 70
  135.    Fade 4 : Wait 60
  136.    '
  137.    '----------------------------  Scene 2 ------------------------------------
  138.    ' Sets the new total number of frames in the next animation. 
  139.    N=45
  140.    '
  141.    ' Displays the Screen,sets where the animation is coming from ,Bank 11,
  142.    ' its channel number(2) and screen number(0).
  143.    Screen 0
  144.    W=Frame Play(11,2,0)
  145.    '
  146.    ' Double Buffers the screen so the animation dos'nt flicker. 
  147.    Double Buffer 
  148.    '
  149.    ' Uses the same method of animation as the first one.
  150.    For X=2 To N-3 : Rem N-3 this makes the animation stop at the last frame. 
  151.       W=Frame Play(W,1)
  152.       Screen Swap 
  153.       Wait Vbl : Wait Vbl 
  154.    Next X
  155.    '
  156.    ' Pauses on the logo then fades the screen to black. 
  157.    Wait 100
  158.    Fade 2 : Wait 30
  159.    '
  160.    ' Calls the CHANGE_DISK procedure. 
  161.    _CHANGE_DISC
  162.    '
  163. End Proc
  164. '
  165. ' Asks for Disk2 then fades the screen,clears the memory and loads the game. 
  166. Procedure _CHANGE_DISC
  167.    '
  168.    ' Unpacks bank 13 to screen 1 then hides screen 1 while fadeing picture to 
  169.    ' black. 
  170.    Unpack 13 To 1 : Screen 1 : Screen Hide 1 : Fade 1 : Wait 15
  171.    '
  172.    ' Checks for an error and goes to HELP: if one is detected.
  173.    On Error Goto HELP
  174.    '
  175.    ' Creates an error. This stops the system message popping up.
  176.    Error 86
  177.    '
  178.    ' Sets directory to Disk2,fades the screen then closes it. 
  179.    Dir$="Henry's_HouseD2:"
  180.    Screen 1 : Fade 1 : Wait 15
  181.    Screen Close 1
  182.    '
  183.    ' Erases all banks to clear the memory for next program. 
  184.    For B=1 To 15 : Erase B : Next B
  185.    '
  186.    ' Changes the font directory from Ram to Disk2 and also the libs from
  187.    ' Disk1 to Disk2. Then runs the Title program on Disk2.
  188.    Assign "fonts:" To "Henry's_HouseD2:fonts"
  189.    Assign "libs:" To "Henry's_HouseD2:libs"
  190.    Run "HenryGame/Title"
  191.    '
  192.    HELP:
  193.    '
  194.    ' Small Loop to check if Disk 2 has been inserted.The vaiable 'D' is used
  195.    ' to store a true(-1) or false(0) value. 
  196.    Do 
  197.       ' If Disk2 has been inserted then the dirctory is set to Disk2, D=1 and
  198.       ' exits out of loop. 
  199.       If Exist("Henry's_HouseD2:")=-1 Then Dir$="Henry's_HouseD2:" : D=1 : Exit 
  200.       '
  201.       ' If Disk2 has not been inserted it fades screen 1 into view which asks
  202.       ' you to 'insert Disc2', D=0 and exits out of loop.
  203.       If Exist("Henry's_HouseD2:")=0
  204.          Screen Show 1
  205.          Fade 1,$0,$8BD,$BDE,$FFF,$6AB,$59A,$379,$268,$156,$46,$E52,$E82,$FA3,$FC4,$FE5,$0
  206.          Wait 15
  207.          D=0 : Exit 
  208.       End If 
  209.    Loop 
  210.    '
  211.    ' If D=1 then the program jumps to the line after Error86 and continues,if 
  212.    ' D<>1 ie=0 then the program jumps to Error86 then back to the loop. 
  213.    If D=1 Then Resume Next Else Resume 
  214.    '
  215. End Proc
  216.