Untitled
unknown
plain_text
2 years ago
2.0 kB
9
Indexable
.global p2RemainingJumpsDecrease
p2RemainingJumpsDecrease:
    @ Save registers, if necessary
    @ For example, push registers to the stack
    @ Set player2_jumping to true (1)
    ldr r0, =player2_jumping
    mov r1, #1
    str r1, [r0]
    @ Set player2_velocity_y to -20
    ldr r0, =player2_velocity_y
    mov r1, #-20
    str r1, [r0]
    @ Decrement player2_remaining_jumps
    ldr r0, =player2_remaining_jumps
    ldr r1, [r0]
    sub r1, r1, #1
    str r1, [r0]
    @ Restore registers, if necessary
    @ For example, pop registers from the stack
    @ Return
    bx lr
.global handlePlayer2Jump
handlePlayer2Jump:
    @ Save registers that will be modified
    push {r4, r5, lr}
    @ Load player2_y into r4 and player2_velocity_y into r5
    ldr r4, =player2_y      @ Load player2_y (assuming it's at address r0)
    ldr r5, =player2_velocity_y      @ Load player2_velocity_y (assuming it's at address r1)
    @ Add player2_velocity_y to player2_y
    add r4, r4, r5
    @ Increment player2_velocity_y by 1
    add r5, r5, #1
    @ Ensure player2_y stays above the invisible floor
    ldr r6, =INVISIBLE_FLOOR      @ Load floor into r6 (assuming it's at address r2)
    ldr r7, =PLAYER_HEIGHT      @ Load height into r7 (assuming it's at address r3)
    sub r8, r6, r7    @ Calculate floor - height
    cmp r4, r8        @ Compare player2_y with floor - height
    bge no_jump       @ Branch if greater than or equal (no jump)
    @ Store the updated player2_y and player2_velocity_y values back to memory
    str r4, [r0]
    str r5, [r1]
    @ Restore saved registers and return
    pop {r4, r5, pc}
no_jump:
    @ If player2_y is below floor - height, set player2_y to floor - height
    mov r4, r8
    @ Reset player2_jumping to false
    mov r9, #0        @ Assuming player2_jumping is in r9
    ldr r0, =player2_jumping
    str r9, [r0]
    @ Reset player2_remaining_jumps to 2
    mov r10, #2       @ Assuming player2_remaining_jumps is in r10
    ldr r0, =player2_remaining_jumps
    str r10, [r0]
Editor is loading...