2
0
mirror of https://frontier.innolan.net/github/amigaos-cross-toolchain6.git synced 2024-10-19 10:29:55 +00:00
Files
amigaos-cross-toolchain6/test/test6/testno.s
2017-05-27 00:00:48 +02:00

1241 lines
18 KiB
ArmAsm

#NO_APP
.text
.align 2
.globl _object_setAnim
_object_setAnim:
moveq #0,d1
move.w 44(a0),d1
move.w d0,a1
cmp.l d1,a1
jeq .L1
move.w d0,44(a0)
moveq #0,d1
move.w d0,d1
move.l d1,d0
add.l d1,d0
add.l d0,d0
add.l d1,d0
add.l d0,d0
move.l d0,d1
add.l #_object_animations,d1
move.l d1,48(a0)
lea _object_animations,a1
move.w (a1,d0.l),d0
move.w d0,36(a0)
move.w d0,a1
move.l a1,d0
add.l a1,d0
add.l a1,d0
add.l d0,d0
add.l d0,d0
add.l #_object_imageAtlas,d0
move.l d0,38(a0)
clr.w 72(a0)
.L1:
rts
.align 2
.globl _object_free
_object_free:
move.l a2,-(sp)
move.l a0,a2
move.l 82(a0),a1
cmp.w #0,a1
jeq .L6
move.l 4(a0),a0
jsr (a1)
.L6:
move.l 12(a2),a0
cmp.w #0,a0
jeq .L21
move.l 8(a2),8(a0)
move.l 8(a2),a1
cmp.w #0,a1
jeq .L9
move.l a0,12(a1)
.L9:
subq.w #1,_object_count
move.l _object_freeList,a0
cmp.w #0,a0
jeq .L22
.L11:
move.l a0,8(a2)
move.l a2,12(a0)
clr.l 12(a2)
move.l a2,_object_freeList
move.l (sp)+,a2
rts
.L21:
move.l 8(a2),a0
move.l a0,_object_activeList
jeq .L9
clr.l 12(a0)
subq.w #1,_object_count
move.l _object_freeList,a0
cmp.w #0,a0
jne .L11
.L22:
move.l a2,_object_freeList
clr.l 8(a2)
clr.l 12(a2)
move.l (sp)+,a2
rts
.align 2
.globl _object_setAction
_object_setAction:
move.w d0,46(a0)
add.w 42(a0),d0
move.w d0,a1
moveq #0,d1
move.w 44(a0),d1
cmp.l a1,d1
jeq .L23
move.w d0,44(a0)
and.l #65535,d0
move.l d0,d1
add.l d0,d1
add.l d1,d1
add.l d1,d0
add.l d0,d0
move.l d0,d1
add.l #_object_animations,d1
move.l d1,48(a0)
lea _object_animations,a1
move.w (a1,d0.l),d0
move.w d0,36(a0)
move.w d0,a1
move.l a1,d0
add.l a1,d0
add.l a1,d0
add.l d0,d0
add.l d0,d0
add.l #_object_imageAtlas,d0
move.l d0,38(a0)
clr.w 72(a0)
.L23:
rts
.align 2
.globl _object_updatePosition
_object_updatePosition:
movem.l #16176,-(sp)
move.w 26(a0),d2
move.w 28(a0),d1
cmp.w #2,d0
jeq .L39
.L28:
move.w 24(a0),d4
move.w 22(a0),d5
add.w d5,d2
move.w d2,22(a0)
move.w _game_cameraX,d3
move.w 16(a0),d6
sub.w d3,d6
move.w d2,d0
moveq #15,d7
lsr.w d7,d0
add.w d2,d0
asr.w #1,d0
move.w d0,16(a0)
move.w d0,a1
move.w d3,a2
cmp.w #287,d6
jgt .L30
lea (32,a1),a3
move.l a3,d0
sub.l a2,d0
cmp.l #319,d0
jgt .L40
tst.w d6
jge .L30
.L32:
move.w d1,d0
add.w d4,d0
move.w 18(a0),d3
move.w d0,24(a0)
move.w d0,d1
moveq #15,d6
lsr.w d6,d1
add.w d0,d1
asr.w #1,d1
move.w d1,18(a0)
cmp.w #207,d1
jle .L33
.L41:
move.w #206,18(a0)
move.w #412,24(a0)
move.w #412,d0
.L34:
sub.w d5,d2
move.w d2,30(a0)
sub.w d4,d0
move.w d0,32(a0)
movem.l (sp)+,#3324
rts
.L30:
move.l a1,d0
sub.l a2,d0
jpl .L32
move.w d3,16(a0)
move.w d3,d2
add.w d3,d2
move.w d2,22(a0)
move.w d1,d0
add.w d4,d0
move.w 18(a0),d3
move.w d0,24(a0)
move.w d0,d1
moveq #15,d6
lsr.w d6,d1
add.w d0,d1
asr.w #1,d1
move.w d1,18(a0)
cmp.w #207,d1
jgt .L41
.L33:
cmp.w #65,d3
jle .L34
cmp.w #65,d1
jgt .L34
move.w #66,18(a0)
move.w #132,24(a0)
move.w #132,d0
sub.w d5,d2
move.w d2,30(a0)
sub.w d4,d0
move.w d0,32(a0)
movem.l (sp)+,#3324
rts
.L39:
add.w d2,d2
add.w d1,d1
jra .L28
.L40:
move.w d3,d2
add.w #287,d2
move.w d2,16(a0)
add.w d2,d2
move.w d2,22(a0)
jra .L32
.align 2
.globl _object_init
_object_init:
clr.w _object_count
clr.l _object_activeList
move.l #_object_buffer,_object_freeList
clr.l _object_buffer+12
move.l #_object_buffer+96,_object_buffer+8
move.l #_object_buffer,_object_buffer+108
move.l #_object_buffer+192,_object_buffer+104
move.l #_object_buffer+96,_object_buffer+204
move.l #_object_buffer+288,_object_buffer+200
move.l #_object_buffer+192,_object_buffer+300
move.l #_object_buffer+384,_object_buffer+296
move.l #_object_buffer+288,_object_buffer+396
move.l #_object_buffer+480,_object_buffer+392
move.l #_object_buffer+384,_object_buffer+492
move.l #_object_buffer+576,_object_buffer+488
move.l #_object_buffer+480,_object_buffer+588
move.l #_object_buffer+672,_object_buffer+584
move.l #_object_buffer+576,_object_buffer+684
move.l #_object_buffer+768,_object_buffer+680
move.l #_object_buffer+672,_object_buffer+780
move.l #_object_buffer+864,_object_buffer+776
move.l #_object_buffer+768,_object_buffer+876
move.l #_object_buffer+960,_object_buffer+872
move.l #_object_buffer+864,_object_buffer+972
move.l #_object_buffer+1056,_object_buffer+968
move.l #_object_buffer+960,_object_buffer+1068
clr.l _object_buffer+1064
rts
.align 2
.globl _object_clear
_object_clear:
subq.l #4,sp
movem.l #16190,-(sp)
move.l a0,d7
move.l 52(sp),a0
move.w a1,d2
jeq .L43
move.w d0,d5
asr.w #4,d5
move.w d1,d2
asr.w #4,d2
move.w a1,a1
ext.l d0
lea (a1,d0.l),a5
move.l a5,d0
asr.l #4,d0
move.l d0,a5
move.w a0,a0
ext.l d1
lea (a0,d1.l),a0
move.l a0,d4
asr.l #4,d4
move.w d5,d6
ext.l d6
cmp.l d0,d6
jgt .L43
move.w d2,a6
cmp.l d4,a6
jgt .L43
lsl.w #4,d5
move.l d6,d0
lsl.l #4,d0
lea (a6,d0.l),a3
add.l a3,a3
add.l #_level,a3
lsl.w #4,d2
move.w d2,46(sp)
lea _gfx_quickRenderTile,a4
.L48:
move.l a3,a2
move.w 46(sp),d2
move.l a6,d3
.L47:
tst.w d2
jlt .L49
move.w d5,d0
sub.w _game_cameraX,d0
sub.w _game_screenScrollX,d0
move.w d0,d1
add.w #-322,d1
cmp.w #-338,d1
jhi .L57
.L49:
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L47
.L58:
addq.l #1,d6
add.w #16,d5
lea (32,a3),a3
cmp.l a5,d6
jle .L48
.L43:
movem.l (sp)+,#31996
addq.l #4,sp
rts
.L57:
moveq #0,d1
move.w (a2),d1
move.l d1,a1
add.w #15,d0
add.l #_level+205160,a1
move.w d2,d1
ext.l d1
and.l #65535,d0
move.l d7,a0
jsr (a4)
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L47
jra .L58
.align 2
.globl _object_renderObject
_object_renderObject:
subq.l #8,sp
movem.l #16190,-(sp)
move.l a0,d6
tst.w 86(a1)
jeq .L59
move.l 38(a1),a4
move.w 4(a4),d4
move.w 6(a4),d7
move.w _game_cameraX,a0
add.w _game_screenScrollX,a0
move.w 16(a1),d0
sub.w a0,d0
move.w d0,a0
add.w 8(a4),a0
move.w a0,d3
add.w #15,d3
move.w 10(a4),a2
add.w 18(a1),a2
move.w a2,d5
sub.w d7,d5
move.w d5,a3
move.w (a4),d0
move.w 2(a4),d1
cmp.w #-16,d3
jge .L62
moveq #-15,d2
sub.w a0,d2
and.w #-16,d2
add.w d2,d0
sub.w d2,d4
add.w d2,d3
.L62:
move.w d3,a0
lea (a0,d4.w),a4
cmp.w #336,a4
jle .L63
add.w d4,d3
add.w #-336,d3
and.w #-16,d3
sub.w d3,d4
.L63:
tst.w d5
jlt .L79
tst.w d4
jle .L59
.L81:
tst.w d7
jle .L59
tst.w 88(a1)
jne .L80
move.w d7,a1
move.l a1,-(sp)
move.w d4,a1
move.l a1,-(sp)
move.w a3,a3
move.l a3,-(sp)
move.l a0,a1
ext.l d1
ext.l d0
move.l d6,a0
jsr _gfx_renderSprite
lea (12,sp),sp
.L59:
movem.l (sp)+,#31996
addq.l #8,sp
rts
.L79:
sub.w d5,d1
move.w a2,d7
sub.l a3,a3
tst.w d4
jgt .L81
jra .L59
.L80:
move.l a1,46(sp)
jsr _gfx_setupRenderTile
move.l 46(sp),a1
move.w 18(a1),d0
sub.w d7,d0
move.l 38(a1),a0
move.w 8(a0),d2
add.w 16(a1),d2
move.w d2,d5
asr.w #4,d5
move.w d0,d1
asr.w #4,d1
move.w d2,a0
lea (a0,d4.w),a5
move.l a5,d2
asr.l #4,d2
move.l d2,a5
move.w d0,a0
lea (a0,d7.w),a0
move.l a0,d4
asr.l #4,d4
move.w d5,d7
ext.l d7
cmp.l d2,d7
jgt .L59
move.w d1,a6
cmp.l d4,a6
jgt .L59
lsl.w #4,d5
move.l d7,d0
lsl.l #4,d0
lea (a6,d0.l),a3
add.l a3,a3
add.l #_level,a3
lsl.w #4,d1
move.w d1,50(sp)
lea _gfx_quickRenderTile,a4
move.l a3,a2
move.w 50(sp),d2
move.l a6,d3
.L68:
tst.w d2
jlt .L70
move.w d5,d0
sub.w _game_cameraX,d0
sub.w _game_screenScrollX,d0
move.w d0,d1
add.w #-322,d1
cmp.w #-338,d1
jhi .L82
.L70:
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L68
.L83:
addq.l #1,d7
add.w #16,d5
lea (32,a3),a3
cmp.l a5,d7
jgt .L59
move.l a3,a2
move.w 50(sp),d2
move.l a6,d3
jra .L68
.L82:
moveq #0,d1
move.w (a2),d1
move.l d1,a1
add.w #15,d0
add.l #_level+205160,a1
move.w d2,d1
ext.l d1
and.l #65535,d0
move.l d6,a0
jsr (a4)
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L68
jra .L83
.align 2
.globl _object_render
_object_render:
lea (-20,sp),sp
movem.l #16190,-(sp)
move.l a0,a6
move.w d0,50(sp)
moveq #0,d3
move.w d0,d3
move.l _object_activeList,a2
cmp.w #0,a2
jeq .L85
.L97:
move.l 8(a2),d2
move.l 78(a2),a1
cmp.w #0,a1
jeq .L86
move.l a2,a0
move.l d3,d0
jsr (a1)
.L86:
cmp.w #1,76(a2)
jeq .L161
move.l d2,a2
tst.l d2
jne .L97
.L166:
move.l _object_activeList,a4
move.l #_gfx_setupRenderTile,56(sp)
lea _gfx_setupRenderTile,a2
jsr (a2)
lea _gfx_quickRenderTile,a5
cmp.w #0,a4
jeq .L99
.L139:
tst.w 88(a4)
jne .L103
move.l 68(a4),a0
move.w 4(a0),d0
jne .L162
.L103:
move.l 8(a4),a4
cmp.w #0,a4
jne .L139
.L99:
move.l _object_activeList,a0
cmp.w #0,a0
jeq .L113
clr.w d1
lea _object_zBuffer,a5
.L112:
move.w d1,a1
move.l a1,d0
add.l a1,d0
add.l d0,d0
move.l a0,(a5,d0.l)
addq.w #1,d1
move.l 68(a0),a1
move.l 38(a0),a2
move.w 16(a0),d2
add.w 8(a2),d2
move.w d2,(a1)
move.w 6(a2),d0
move.w 18(a0),d2
sub.w d0,d2
move.w d2,2(a1)
move.w 4(a2),4(a1)
move.w d0,6(a1)
lea (52,a0),a2
cmp.l a1,a2
jeq .L163
move.l a2,68(a0)
move.l 8(a0),a0
cmp.w #0,a0
jne .L112
.L113:
move.w _object_count,d3
jle .L84
clr.w d7
lea _object_zBuffer,a5
move.l a5,d6
.L128:
move.w d7,a0
move.l a0,d0
add.l a0,d0
add.l d0,d0
move.l d6,a0
move.l (a0,d0.l),a3
cmp.w #1,76(a3)
jeq .L114
tst.w 86(a3)
jne .L164
.L116:
move.w 72(a3),d0
move.l 48(a3),a0
moveq #0,d1
move.w d0,d1
move.w 4(a0),a1
cmp.l d1,a1
jgt .L126
.L171:
move.w 36(a3),d0
addq.w #1,d0
move.w d0,36(a3)
clr.w 72(a3)
cmp.w 2(a0),d0
jle .L127
move.w (a0),d0
move.w d0,36(a3)
.L127:
move.w d0,a0
move.l a0,d0
add.l a0,d0
add.l a0,d0
add.l d0,d0
add.l d0,d0
add.l #_object_imageAtlas,d0
move.l d0,38(a3)
.L114:
addq.w #1,d7
cmp.w d3,d7
jlt .L128
.L84:
movem.l (sp)+,#31996
lea (20,sp),sp
rts
.L161:
move.w 74(a2),d0
cmp.w #2,d0
jeq .L165
addq.w #1,d0
move.w d0,74(a2)
move.l d2,a2
tst.l d2
jne .L97
jra .L166
.L162:
move.w 2(a0),d3
move.w (a0),d2
move.w d2,d5
asr.w #4,d5
move.w d3,d1
asr.w #4,d1
move.w d2,a1
lea (a1,d0.w),a1
move.l a1,d0
asr.l #4,d0
move.l d0,46(sp)
move.w 6(a0),a0
lea (a0,d3.w),a0
move.l a0,d4
asr.l #4,d4
move.w d5,d6
ext.l d6
cmp.l d0,d6
jgt .L103
move.w d1,d7
ext.l d7
cmp.l d4,d7
jgt .L103
lsl.w #4,d5
move.l d6,d0
lsl.l #4,d0
move.l d0,a3
add.l d7,a3
add.l a3,a3
add.l #_level,a3
lsl.w #4,d1
move.l a4,52(sp)
move.w d1,a4
.L105:
move.l a3,a2
move.w a4,d2
move.l d7,d3
.L104:
tst.w d2
jlt .L106
move.w d5,d0
sub.w _game_cameraX,d0
sub.w _game_screenScrollX,d0
move.w d0,d1
add.w #-322,d1
cmp.w #-338,d1
jhi .L167
.L106:
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L104
.L168:
addq.l #1,d6
add.w #16,d5
lea (32,a3),a3
cmp.l 46(sp),d6
jle .L105
move.l 52(sp),a4
move.l 8(a4),a4
cmp.w #0,a4
jne .L139
jra .L99
.L167:
moveq #0,d1
move.w (a2),d1
move.l d1,a1
add.w #15,d0
add.l #_level+205160,a1
move.w d2,d1
ext.l d1
and.l #65535,d0
move.l a6,a0
jsr (a5)
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L104
jra .L168
.L163:
lea (60,a0),a2
move.l a2,68(a0)
move.l 8(a0),a0
cmp.w #0,a0
jne .L112
jra .L113
.L164:
move.l 38(a3),a4
move.w 4(a4),d4
move.w 6(a4),d5
move.w _game_cameraX,a1
add.w _game_screenScrollX,a1
move.w 16(a3),a2
sub.w a1,a2
move.w a2,a1
add.w 8(a4),a1
move.w a1,d2
add.w #15,d2
move.w 10(a4),a2
add.w 18(a3),a2
move.w a2,d0
sub.w d5,d0
move.w d0,a5
move.w (a4),a0
move.w 2(a4),46(sp)
cmp.w #-16,d2
jge .L117
moveq #-15,d1
sub.w a1,d1
and.w #-16,d1
add.w d1,a0
sub.w d1,d4
add.w d1,d2
.L117:
move.w d2,a1
lea (a1,d4.w),a4
cmp.w #336,a4
jle .L118
add.w d4,d2
add.w #-336,d2
and.w #-16,d2
sub.w d2,d4
.L118:
tst.w d0
jlt .L169
.L119:
tst.w d4
jle .L116
tst.w d5
jle .L116
tst.w 88(a3)
jne .L170
move.w d5,a2
move.l a2,-(sp)
move.w d4,a2
move.l a2,-(sp)
move.w a5,a5
move.l a5,-(sp)
move.w 58(sp),d1
ext.l d1
move.w a0,d0
ext.l d0
move.l a6,a0
jsr _gfx_renderSprite
lea (12,sp),sp
.L156:
move.w _object_count,d3
move.w 72(a3),d0
move.l 48(a3),a0
moveq #0,d1
move.w d0,d1
move.w 4(a0),a1
cmp.l d1,a1
jle .L171
.L126:
add.w 50(sp),d0
move.w d0,72(a3)
addq.w #1,d7
cmp.w d3,d7
jlt .L128
jra .L84
.L169:
sub.w d0,46(sp)
move.w a2,d5
sub.l a5,a5
jra .L119
.L165:
cmp.l _game_player1.l,a2
jeq .L172
cmp.l _game_player2.l,a2
jeq .L173
.L90:
move.l 82(a2),a1
cmp.w #0,a1
jeq .L91
move.l 4(a2),a0
jsr (a1)
.L91:
move.l 12(a2),a0
cmp.w #0,a0
jeq .L174
move.l 8(a2),8(a0)
move.l 8(a2),a1
cmp.w #0,a1
jeq .L94
move.l a0,12(a1)
.L94:
subq.w #1,_object_count
move.l _object_freeList,a0
cmp.w #0,a0
jeq .L175
move.l a0,8(a2)
move.l a2,12(a0)
clr.l 12(a2)
move.l a2,_object_freeList
move.l d2,a2
tst.l d2
jne .L97
jra .L166
.L170:
move.l 56(sp),a2
jsr (a2)
move.w 18(a3),d0
sub.w d5,d0
move.l 38(a3),a0
move.w 8(a0),d3
add.w 16(a3),d3
move.w d3,d2
asr.w #4,d2
move.w d0,d1
asr.w #4,d1
move.w d3,a0
lea (a0,d4.w),a0
move.l a0,d3
asr.l #4,d3
move.w d0,a0
lea (a0,d5.w),a0
move.l a0,d4
asr.l #4,d4
move.w d2,a5
cmp.l d3,a5
jgt .L156
move.w d1,a0
cmp.l d4,a0
jgt .L156
move.w d2,d5
lsl.w #4,d5
move.l a5,d0
lsl.l #4,d0
lea (a0,d0.l),a4
add.l a4,a4
add.l #_level,a4
lsl.w #4,d1
move.l a3,46(sp)
move.w d7,52(sp)
move.l a0,d7
move.w d1,a3
move.l d6,60(sp)
move.l d3,d6
.L123:
move.l a4,a2
move.w a3,d2
move.l d7,d3
.L122:
tst.w d2
jlt .L124
move.w d5,d0
sub.w _game_cameraX,d0
sub.w _game_screenScrollX,d0
move.w d0,d1
add.w #-322,d1
cmp.w #-338,d1
jhi .L176
.L124:
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L122
.L177:
addq.l #1,a5
add.w #16,d5
lea (32,a4),a4
cmp.l d6,a5
jle .L123
move.l 46(sp),a3
move.w 52(sp),d7
move.l 60(sp),d6
move.w _object_count,d3
jra .L116
.L176:
moveq #0,d1
move.w (a2),d1
move.l d1,a1
add.w #15,d0
add.l #_level+205160,a1
move.w d2,d1
ext.l d1
and.l #65535,d0
move.l a6,a0
jsr _gfx_quickRenderTile
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L122
jra .L177
.L173:
clr.l _game_player2
jra .L90
.L85:
move.l #_gfx_setupRenderTile,56(sp)
lea _gfx_setupRenderTile,a2
jsr (a2)
jra .L99
.L172:
clr.l _game_player1
jra .L90
.L174:
move.l 8(a2),a0
move.l a0,_object_activeList
jeq .L94
clr.l 12(a0)
jra .L94
.L175:
move.l a2,_object_freeList
clr.l 8(a2)
clr.l 12(a2)
move.l d2,a2
tst.l d2
jne .L97
jra .L166
.align 2
.globl _object_restoreBackground
_object_restoreBackground:
subq.l #8,sp
movem.l #16190,-(sp)
move.l a0,a5
move.l _object_activeList,a4
jsr _gfx_setupRenderTile
lea _gfx_quickRenderTile,a6
cmp.w #0,a4
jeq .L178
.L190:
tst.w 88(a4)
jne .L183
move.l 68(a4),a0
move.w 4(a0),d0
jne .L199
.L183:
move.l 8(a4),a4
cmp.w #0,a4
jne .L190
.L178:
movem.l (sp)+,#31996
addq.l #8,sp
rts
.L199:
move.w 2(a0),d3
move.w (a0),d2
move.w d2,d5
asr.w #4,d5
move.w d3,d1
asr.w #4,d1
move.w d2,a1
lea (a1,d0.w),a1
move.l a1,d0
asr.l #4,d0
move.l d0,44(sp)
move.w 6(a0),a0
lea (a0,d3.w),a0
move.l a0,d4
asr.l #4,d4
move.w d5,d6
ext.l d6
cmp.l d0,d6
jgt .L183
move.w d1,d7
ext.l d7
cmp.l d4,d7
jgt .L183
lsl.w #4,d5
move.l d6,d0
lsl.l #4,d0
move.l d0,a3
add.l d7,a3
add.l a3,a3
add.l #_level,a3
lsl.w #4,d1
move.l a4,48(sp)
move.w d1,a4
.L185:
move.l a3,a2
move.w a4,d2
move.l d7,d3
.L184:
tst.w d2
jlt .L186
move.w d5,d0
sub.w _game_cameraX,d0
sub.w _game_screenScrollX,d0
move.w d0,d1
add.w #-322,d1
cmp.w #-338,d1
jhi .L200
.L186:
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L184
.L201:
addq.l #1,d6
add.w #16,d5
lea (32,a3),a3
cmp.l 44(sp),d6
jle .L185
move.l 48(sp),a4
move.l 8(a4),a4
cmp.w #0,a4
jne .L190
jra .L178
.L200:
moveq #0,d1
move.w (a2),d1
move.l d1,a1
add.w #15,d0
add.l #_level+205160,a1
move.w d2,d1
ext.l d1
and.l #65535,d0
move.l a5,a0
jsr (a6)
addq.l #1,d3
add.w #16,d2
addq.l #2,a2
cmp.l d4,d3
jle .L184
jra .L201
.align 2
.globl _object_collision
_object_collision:
movem.l #16190,-(sp)
move.l a0,a3
move.l a1,a5
move.w 50(sp),d4
move.w 28(a0),a1
move.w 26(a0),a0
cmp.w #2,d0
jeq .L214
.L203:
move.l _object_activeList,a2
clr.l 12(a5)
clr.l 8(a5)
clr.l 4(a5)
clr.l (a5)
move.w 24(a3),a4
lea (a4,a1.w),a4
move.l a4,d0
jpl .L216
addq.l #1,d0
.L216:
asr.l #1,d0
move.l d0,a4
move.w d0,d5
move.w 22(a3),a1
lea (a1,a0.w),a0
move.l a0,d0
jpl .L217
addq.l #1,d0
.L217:
asr.l #1,d0
move.w 90(a3),a0
move.w a0,d6
sub.w d1,d6
add.w d0,d6
move.w 92(a3),d2
add.w d1,d2
sub.w a0,d2
add.w d0,d2
clr.w d7
cmp.w #0,a2
jeq .L202
lea _abs,a6
and.l #65535,d4
.L209:
tst.w 94(a2)
jeq .L205
cmp.l a3,a2
jeq .L205
move.w 18(a2),d3
move.l a4,a0
sub.w d3,a0
move.l a0,d0
jsr (a6)
cmp.l d0,d4
jlt .L205
move.w 16(a2),d1
move.w 90(a2),a0
move.w d1,d0
sub.w a0,d0
add.w 92(a2),d0
cmp.w d6,d0
jle .L205
add.w a0,d1
cmp.w d2,d1
jge .L205
cmp.w d5,d3
jlt .L206
move.l a2,(a5)
cmp.w d6,d1
jlt .L208
.L215:
move.l a2,12(a5)
moveq #1,d7
.L205:
move.l 8(a2),a2
cmp.w #0,a2
jne .L209
.L202:
move.w d7,d0
movem.l (sp)+,#31996
rts
.L214:
add.w a0,a0
add.w a1,a1
jra .L203
.L206:
move.l a2,4(a5)
cmp.w d6,d1
jge .L215
.L208:
move.l a2,8(a5)
moveq #1,d7
move.l 8(a2),a2
cmp.w #0,a2
jne .L209
jra .L202
.align 2
.globl _object_add
_object_add:
movem.l #12344,-(sp)
move.l 24(sp),d3
move.l 28(sp),a3
move.w d1,d2
move.l _object_freeList,a2
move.l 8(a2),a4
move.l a4,_object_freeList
jeq .L219
clr.l 12(a4)
.L219:
clr.w 76(a2)
move.w d1,2(a2)
move.w #1,86(a2)
move.w d0,(a2)
move.w d3,26(a2)
clr.w 28(a2)
lea (52,a2),a4
move.l a4,68(a2)
clr.w 56(a2)
clr.w 64(a2)
move.w a3,a4
move.l a4,d0
add.l a4,d0
add.l d0,d0
add.l a4,d0
add.l d0,d0
move.l d0,d1
add.l #_object_animations,d1
move.l d1,48(a2)
move.w a3,44(a2)
move.w a3,42(a2)
lea _object_animations,a3
move.w (a3,d0.l),d0
move.w d0,36(a2)
move.w d0,a3
move.l a3,d0
add.l a3,d0
add.l a3,d0
add.l d0,d0
add.l d0,d0
add.l #_object_imageAtlas,d0
move.l d0,38(a2)
move.w a0,d0
add.w a0,d0
move.w d0,22(a2)
move.w a0,16(a2)
move.w a1,d0
add.w a1,d0
move.w d0,24(a2)
move.w a1,18(a2)
move.w a1,20(a2)
clr.w 72(a2)
clr.w 74(a2)
move.l 32(sp),78(a2)
move.l 36(sp),4(a2)
move.l 40(sp),82(a2)
clr.w 88(a2)
cmp.w #1,d2
sls d0
ext.w d0
neg.w d0
move.w d0,94(a2)
addq.w #1,_object_count
move.l _object_activeList,a0
cmp.w #0,a0
jeq .L227
move.l a0,8(a2)
move.l a2,12(a0)
clr.l 12(a2)
move.l a2,_object_activeList
move.l a2,d0
movem.l (sp)+,#7180
rts
.L227:
move.l a2,_object_activeList
clr.l 8(a2)
clr.l 12(a2)
move.l a2,d0
movem.l (sp)+,#7180
rts
.comm _object_zBuffer,48
.lcomm _object_buffer,1152
.lcomm _object_freeList,4
.comm _object_activeList,4
.comm _object_count,2