Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Monitors spawning as broken Fix:
- Obj26_Main: ; XREF: Obj26_Index
- addq.b #2,$24(a0)
- move.b #$E,$16(a0)
- move.b #$E,$17(a0)
- move.l #Map_obj26,4(a0)
- move.w #$680,2(a0)
- move.b #4,1(a0)
- move.b #3,$18(a0)
- move.b #$F,$19(a0)
- lea ($FFFFFC00).w,a2
- moveq #0,d0
- move.b $23(a0),d0
- beq.s Obj26_NotBroken
- bclr #7,2(a2,d0.w)
- btst #0,2(a2,d0.w) ; has monitor been broken?
- beq.s Obj26_NotBroken ; if not, branch
- move.b #8,$24(a0) ; run "Obj26_Display" routine
- move.b #$B,$1A(a0) ; use broken monitor frame
- rts
- Rings Fix:
- Obj25_Main: ; XREF: Obj25_Index
- lea ($FFFFFC00).w,a2
- moveq #0,d0
- move.b $23(a0),d0
- beq.w Obj25_MakeRingsD
- lea 2(a2,d0.w),a2
- move.b (a2),d4
- move.b $28(a0),d1
- move.b d1,d0
- andi.w #7,d1
- cmpi.w #7,d1
- bne.s loc_9B80
- moveq #6,d1
- loc_9B80:
- swap d1
- move.w #0,d1
- lsr.b #4,d0
- add.w d0,d0
- move.b Obj25_PosData(pc,d0.w),d5 ; load ring spacing data
- ext.w d5
- move.b Obj25_PosData+1(pc,d0.w),d6
- ext.w d6
- movea.l a0,a1
- move.w 8(a0),d2
- move.w $C(a0),d3
- lsr.b #1,d4
- bcs.w loc_9C02
- bclr #7,(a2)
- bra.w loc_9BBA
- ; ===========================================================================
- Obj25_MakeRingsD: ; Green Snake Fix
- ; this routine makes the rings work, and not spawn million of them
- addq.b #2,$24(a0) ; add 2 to the routine counter
- move.w 8(a0),$32(a0) ; move x-position to secondary x-position
- move.l #Map_obj25,4(a0) ; load mappings
- move.w #$27B2,2(a0) ; load right art
- move.b #4,1(a0) ; setup objects render flags
- move.b #2,$18(a0) ; setup priority
- move.b #$47,$20(a0) ; setup touch response
- move.b #8,$19(a0) ; setup how wide this object is
- move.b #1,$26(a0) ; set as debug mode ring (This object does not use angles
- bra.s Obj25_Animate ; branch away
- Obj25_MakeRings:
- swap d1
- lsr.b #1,d4
- bcs.s loc_9C02
- bclr #7,(a2)
- bsr.w SingleObjLoad
- bne.s loc_9C0E
- loc_9BBA: ; XREF: Obj25_Main
- move.b #$25,0(a1) ; load ring object
- addq.b #2,$24(a1)
- move.w d2,8(a1) ; set x-axis position based on d2
- move.w 8(a0),$32(a1)
- move.w d3,$C(a1) ; set y-axis position based on d3
- move.l #Map_obj25,4(a1)
- move.w #$27B2,2(a1)
- move.b #4,1(a1)
- move.b #2,$18(a1)
- move.b #$47,$20(a1)
- move.b #8,$19(a1)
- move.b $23(a0),$23(a1)
- move.b d1,$34(a1)
- loc_9C02:
- addq.w #1,d1
- add.w d5,d2 ; add ring spacing value to d2
- add.w d6,d3 ; add ring spacing value to d3
- swap d1
- dbf d1,Obj25_MakeRings ; repeat for number of rings
- loc_9C0E:
- btst #0,(a2)
- bne.w DeleteObject
- Obj25_Animate: ; XREF: Obj25_Index
- move.b ($FFFFFEC3).w,$1A(a0) ; set frame
- bsr.w DisplaySprite
- move.w $32(a0),d0
- andi.w #$FF80,d0
- move.w ($FFFFF700).w,d1
- subi.w #$80,d1
- andi.w #$FF80,d1
- sub.w d1,d0
- cmpi.w #$280,d0
- bhi.s Obj25_Delete
- rts
- ; ===========================================================================
- Obj25_Collect: ; XREF: Obj25_Index
- addq.b #2,$24(a0)
- move.b #0,$20(a0)
- move.b #1,$18(a0)
- bsr.w CollectRing
- lea ($FFFFFC00).w,a2
- moveq #0,d0
- move.b $23(a0),d0
- beq.s Obj25_Sparkle
- move.b $34(a0),d1
- bset d1,2(a2,d0.w)
- Obj25_Sparkle: ; XREF: Obj25_Index
- lea (Ani_obj25).l,a1
- bsr.w AnimateSprite
- bra.w DisplaySprite
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement