home *** CD-ROM | disk | FTP | other *** search
- #name ^.Object.Getfiles
- #type &ffd
-
- #include <Bolmaster$Path>Sources.Structures
- #include <Bolmaster$Path>Sources.Variables
-
- ;gets all of the necessary files, discarding old files
- ;if necessary.
-
- LDR R0,[R12,#v.special]
- LDR R1,[R12,#v.loadedspecial]
- CMP R0,R1
- BEQ dontload0
- ADD R0,R12,#v.specialadr
- BL checkdiscard
- ADR R1,specialname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- .dontload0
-
- LDR R0,[R12,#v.master]
- LDR R1,[R12,#v.loadedmaster]
- CMP R0,R1
- BEQ dontload1
- MOV R0,#mastertab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,mastername
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- .dontload1
-
- LDR R0,[R12,#v.backdrop]
- LDR R1,[R12,#v.loadedbackdrop]
- CMP R0,R1
- BEQ dontload2
- ADD R0,R12,#v.backdropadr
- BL checkdiscard
- ADR R1,backdropname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
-
-
- ADD R0,R12,#v.bmogtabadr
- BL checkdiscard
- ADR R1,bmogtabname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
-
- MOV R0,#backtab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,backsprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
-
- .dontload2
-
- LDR R0,[R12,#v.level]
- LDR R1,[R12,#v.loadedlevel]
- CMP R0,R1
- BEQ dontload3
- ADD R0,R12,#v.leveladr
- BL checkdiscard
- ADR R1,levelsprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- .dontload3
- LDR R0,[R12,#v.backpix]
- LDR R1,[R12,#v.loadedbackpix]
- CMP R0,R1
- BEQ dontload4
- ADD R0,R12,#v.backpixadr
- BL checkdiscard
- ADR R1,backpixname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- .dontload4
-
- LDR R0,[R12,#v.dalek]
- LDR R1,[R12,#v.loadeddalek]
- CMP R0,R1
- BEQ dontload5
- MOV R0,#dalektab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,daleksprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- .dontload5
-
- MOV R0,#explotab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,explosprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- MOV R0,#bultab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,bulsprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
- MOV R0,#generaltab
- SWI FastSpr_GetPointer
- BL checkdiscard
- ADR R1,generalsprname
- ADR R2,levelpathname
- SWI XAmnesia_LoadHammered
- BVS loadfail
-
- MOV R1,PC
- BIC R1,R1,#1<<28
- TEQP PC,R1
- B end
-
- .specialname
- DCB "Code.Special",0
- .mastername
- DCB "Graphics.FSPMaster",0
- .backdropname
- DCB "Graphics.Backdrop",0
- .backsprname
- DCB "Graphics.FSPBackSpr",0
- .backpixname
- DCB "Graphics.BackPix",0
- .bmogtabname
- DCB "BMOG_Table",0
- .levelsprname
- DCB "Levelnet",0
- .explosprname
- DCB "Graphics.FSPExplo",0
- .bulsprname
- DCB "Graphics.FSPBullets",0
- .generalsprname
- DCB "Graphics.FSPGeneral",0
- .daleksprname
- DCB "Graphics.FSPNasties",0
- .pathname
- DCB "Bolmaster$Path",0
- .levelpathname
- DCB "BolmasterLevel$Path",0
- ALIGN
- .loadfail
- MOV R1,PC
- ORR R1,R1,#1<<28
- TEQP PC,R1
- B end
-
- .checkdiscard
- STMFD R13!,{R0-R1,R14}
- MOV R1,R0
- LDR R0,[R0]
- CMP R0,#0
- SWINE Amnesia_ReleaseBlock
- MOV R0,#0
- STR R0,[R1]
- LDMFD R13!,{R0-R1,PC}
- .end
-