Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Deform_LZ_Extended:
- move.w ($FFFFF73A).w,d4 ; d4 = Cam_X_shift (8 fixed)
- ext.l d4
- asl.l #7,d4 ; d4 = Cam_X_shift / 2 (16 fixed)
- move.w ($FFFFF73C).w,d5 ; d5 = Cam_Y_shift (8 fixed)
- ext.l d5
- asl.l #7,d5 ; d5 = Cam_Y_shify / 2 (16 fixed)
- bsr ScrollBlock1 ; scroll layer, setup redraw flags
- move.w ($FFFFF70C).w,($FFFFF618).w ; load 'Cam_BG_Y' into VSRAM buffer
- ; Setup scroll value
- lea ($FFFFCC00).w,a1
- move.w ($FFFFF700).w,d0
- neg.w d0 ; d0 = Plane A scrolling
- move.w d0,d1 ; d1 = Plane A scrolling (backup)
- swap d0
- move.w ($FFFFF708).w,d0
- neg.w d0 ; d0 = Plane B scrolling
- ; Calculate water line and decide where to start
- moveq #0,d2
- move.b ($FFFFF7D8).w,d2
- move.w d2,d3
- addi.w #$80,($FFFFF7D8).w ; WaveValue += 0.5
- add.b ($FFFFF704+1).w,d3 ; d3 = (WaveValue + Cam_Y) & $FF
- add.b ($FFFFF70C+1).w,d2 ; d2 = (WaveValue + Cam_Y) & $FF
- move.w #224,d6 ; d6 = Number of lines
- move.w ($FFFFF646).w,d4 ; d4 = WaterLevel
- sub.w ($FFFFF704).w,d4 ; d4 = WaterLevel - Cam_Y
- beq.s @DeformWater_2
- bmi.s @DeformWater_2 ; if water line is above screen, branch
- cmp.w d6,d4 ; d4 > Lines on screen?
- blt.s @DeformDry_Partial ; if not, branch
- ; ---------------------------------------------------------------------------
- ; Works, if full screen is dry
- subq.w #1,d6
- @DeformDry_Full:
- move.l d0,(a1)+
- dbf d6,@DeformDry_Full
- rts
- ; ---------------------------------------------------------------------------
- ; Works, if only part of screen is dry
- @DeformDry_Partial:
- move.w d4,d5 ; d5 = WaterLevel
- subq.w #1,d4
- @0: move.l d0,(a1)+
- dbf d4,@0
- ; ---------------------------------------------------------------------------
- ; Works if screen is full of water, or water at least takes place
- @DeformWater:
- sub.w d5,d6 ; d6 = 224 - WaterLevel = Lines left for water
- add.b d5,d2 ;
- add.b d5,d3 ;
- @DeformWater_2:
- subq.w #1,d6
- lea (Obj0A_WobbleData).l,a2 ; a2 = Water Deformation Data for Plane B
- lea LZ_Wave_Data(pc),a3 ; a3 = Water Deformation Data for Plane A
- add.w d2,a2 ; load array from position of water line
- add.w d3,a3 ;
- @1: move.b (a3)+,d2
- ext.w d2
- add.w d1,d2 ; d2 = Plane A scrolling
- move.w d2,(a1)+
- move.b (a2)+,d2
- ext.w d2
- add.w d0,d2 ; d2 = Plane B scrolling
- move.w d2,(a1)+
- dbf d6,@1
- rts
- ; ===========================================================================
- LZ_Wave_Data: dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- dc.b 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0
- ; ===============================================================================
- Obj0A_WobbleData:
- dc.b 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
- dc.b 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- dc.b 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2
- dc.b 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
- dc.b 0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
- dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
- dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3
- dc.b -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1
- dc.b 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
- dc.b 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- dc.b 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2
- dc.b 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
- dc.b 0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
- dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
- dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3
- dc.b -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1
- dc.b 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
- dc.b 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- dc.b 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2
- dc.b 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
- dc.b 0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
- dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
- dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3
- dc.b -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1
- dc.b 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
- dc.b 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- dc.b 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2
- dc.b 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
- dc.b 0, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3
- dc.b -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4
- dc.b -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3
- dc.b -3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement