home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / gamesuite_1 / GameSuite / Examples / BolMaster / !BolMaster / Sources / GetFiles < prev    next >
Encoding:
Text File  |  1995-08-09  |  2.8 KB  |  170 lines

  1. #name ^.Object.Getfiles
  2. #type &ffd
  3.  
  4. #include <Bolmaster$Path>Sources.Structures
  5. #include <Bolmaster$Path>Sources.Variables
  6.  
  7. ;gets all of the necessary files, discarding old files
  8. ;if necessary.
  9.  
  10. LDR R0,[R12,#v.special]
  11. LDR R1,[R12,#v.loadedspecial]
  12. CMP R0,R1
  13. BEQ dontload0
  14. ADD R0,R12,#v.specialadr
  15. BL checkdiscard
  16. ADR R1,specialname
  17. ADR R2,levelpathname
  18. SWI XAmnesia_LoadHammered
  19. BVS loadfail
  20. .dontload0
  21.  
  22. LDR R0,[R12,#v.master]
  23. LDR R1,[R12,#v.loadedmaster]
  24. CMP R0,R1
  25. BEQ dontload1
  26. MOV R0,#mastertab
  27. SWI FastSpr_GetPointer
  28. BL checkdiscard
  29. ADR R1,mastername
  30. ADR R2,levelpathname
  31. SWI XAmnesia_LoadHammered
  32. BVS loadfail
  33. .dontload1
  34.  
  35. LDR R0,[R12,#v.backdrop]
  36. LDR R1,[R12,#v.loadedbackdrop]
  37. CMP R0,R1
  38. BEQ dontload2
  39. ADD R0,R12,#v.backdropadr
  40. BL checkdiscard
  41. ADR R1,backdropname
  42. ADR R2,levelpathname
  43. SWI XAmnesia_LoadHammered
  44. BVS loadfail
  45.  
  46.  
  47. ADD R0,R12,#v.bmogtabadr
  48. BL checkdiscard
  49. ADR R1,bmogtabname
  50. ADR R2,levelpathname
  51. SWI XAmnesia_LoadHammered
  52. BVS loadfail
  53.  
  54. MOV R0,#backtab
  55. SWI FastSpr_GetPointer
  56. BL checkdiscard
  57. ADR R1,backsprname
  58. ADR R2,levelpathname
  59. SWI XAmnesia_LoadHammered
  60. BVS loadfail
  61.  
  62. .dontload2
  63.  
  64. LDR R0,[R12,#v.level]
  65. LDR R1,[R12,#v.loadedlevel]
  66. CMP R0,R1
  67. BEQ dontload3
  68. ADD R0,R12,#v.leveladr
  69. BL checkdiscard
  70. ADR R1,levelsprname
  71. ADR R2,levelpathname
  72. SWI XAmnesia_LoadHammered
  73. BVS loadfail
  74. .dontload3
  75. LDR R0,[R12,#v.backpix]
  76. LDR R1,[R12,#v.loadedbackpix]
  77. CMP R0,R1
  78. BEQ dontload4
  79. ADD R0,R12,#v.backpixadr
  80. BL checkdiscard
  81. ADR R1,backpixname
  82. ADR R2,levelpathname
  83. SWI XAmnesia_LoadHammered
  84. BVS loadfail
  85. .dontload4
  86.  
  87. LDR R0,[R12,#v.dalek]
  88. LDR R1,[R12,#v.loadeddalek]
  89. CMP R0,R1
  90. BEQ dontload5
  91. MOV R0,#dalektab
  92. SWI FastSpr_GetPointer
  93. BL checkdiscard
  94. ADR R1,daleksprname
  95. ADR R2,levelpathname
  96. SWI XAmnesia_LoadHammered
  97. BVS loadfail
  98. .dontload5
  99.  
  100. MOV R0,#explotab
  101. SWI FastSpr_GetPointer
  102. BL checkdiscard
  103. ADR R1,explosprname
  104. ADR R2,levelpathname
  105. SWI XAmnesia_LoadHammered
  106. BVS loadfail
  107. MOV R0,#bultab
  108. SWI FastSpr_GetPointer
  109. BL checkdiscard
  110. ADR R1,bulsprname
  111. ADR R2,levelpathname
  112. SWI XAmnesia_LoadHammered
  113. BVS loadfail
  114. MOV R0,#generaltab
  115. SWI FastSpr_GetPointer
  116. BL checkdiscard
  117. ADR R1,generalsprname
  118. ADR R2,levelpathname
  119. SWI XAmnesia_LoadHammered
  120. BVS loadfail
  121.  
  122. MOV R1,PC
  123. BIC R1,R1,#1<<28
  124. TEQP PC,R1
  125. B end
  126.  
  127. .specialname
  128. DCB "Code.Special",0
  129. .mastername
  130. DCB "Graphics.FSPMaster",0
  131. .backdropname
  132. DCB "Graphics.Backdrop",0
  133. .backsprname
  134. DCB "Graphics.FSPBackSpr",0
  135. .backpixname
  136. DCB "Graphics.BackPix",0
  137. .bmogtabname
  138. DCB "BMOG_Table",0
  139. .levelsprname
  140. DCB "Levelnet",0
  141. .explosprname
  142. DCB "Graphics.FSPExplo",0
  143. .bulsprname
  144. DCB "Graphics.FSPBullets",0
  145. .generalsprname
  146. DCB "Graphics.FSPGeneral",0
  147. .daleksprname
  148. DCB "Graphics.FSPNasties",0
  149. .pathname
  150. DCB "Bolmaster$Path",0
  151. .levelpathname
  152. DCB "BolmasterLevel$Path",0
  153. ALIGN
  154. .loadfail
  155. MOV R1,PC
  156. ORR R1,R1,#1<<28
  157. TEQP PC,R1
  158. B end
  159.  
  160. .checkdiscard
  161. STMFD R13!,{R0-R1,R14}
  162. MOV R1,R0
  163. LDR R0,[R0]
  164. CMP R0,#0
  165. SWINE Amnesia_ReleaseBlock
  166. MOV R0,#0
  167. STR R0,[R1]
  168. LDMFD R13!,{R0-R1,PC}
  169. .end
  170.