************************************* ****** CLEAN PLAYER ***** ************************************* clean_player *CLEARS ALL OLD SPRITE DATA FROM COPPER LIST move.l old_sprite_pos,a4 ;top of head move.w #PLAYER_HEIGHT,d0 clear_top_and_bottom clr.w (a4) ;clear top sprite data clr.w 4(a4) clr.w 8(a4) clr.w 12(a4) clr.w 16(a4) clr.w 20(a4) clr.w 24(a4) clr.w 28(a4) add.l #SIZE_COP,a4 cmp.l #copper_sprite_mem_end,a4 bge.s stop_drawing dbra d0,clear_top_and_bottom stop_drawing rts ************************************* ****** DISPLAY PLAYER ***** ************************************* display_player ***depending on speed of player move legs tst ydirec bmi spin_player move.w #0,started_spin moveq #0,d4 move.w player_x_velocity,d4 tst d4 bpl.s ok_x_vel neg.w d4 ok_x_vel divu #SCALE_FACTOR,d4 move.w #6,d6 sub.w d4,d6 move.w player_frame,d5 addq.w #1,player_timer cmp.w player_timer,d6 bgt.s no_frame_update move.w #0,player_timer tst player_x_velocity beq.s frame_reset addq.w #1,d5 cmp.w #PLAYER_FRAMES,d5 blt.s no_frame_update frame_reset move.w #0,d5 no_frame_update move.w d5,player_frame tst.w xdirec bne.s not_zeroed move.w lastx_direc,d0 bra.s get_direction_graphics not_zeroed move.w xdirec,d0 move.w d0,lastx_direc get_direction_graphics tst d0 bmi.s player_going_left tst.w player_falling_flag beq.s is_player_jumping move.l #fallright_table,a0 moveq #0,d5 bra.s do_right_player is_player_jumping tst start_jump beq.s player_not_jumping_right moveq #0,d5 move.l #jumpright_table,a0 bra.s do_right_player player_not_jumping_right move.l #player_walk_right,a0 do_right_player move.w #16,d6 ;tail offset from body bra.s position_player player_going_left tst.w player_falling_flag beq.s is_player_jumping2 move.l #fallleft_table,a0 moveq #0,d5 bra.s do_left_player is_player_jumping2 tst start_jump beq.s player_not_jumping_left moveq #0,d5 move.l #jumpleft_table,a0 bra.s do_left_player player_not_jumping_left move.l #player_walk_left,a0 do_left_player move.w #-16,d6 ;tail offset from body position_player stuff_data_into_sprites move.l 4(a0,d5.w*8),frame2 move.l (a0,d5.w*8),frame1 move.w d6,tail_pos moveq #0,d0 move.w player_x,d0 move.w #1<