aboutsummaryrefslogtreecommitdiffstats
path: root/engine/animated_objects_3e.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/animated_objects_3e.asm')
-rwxr-xr-xengine/animated_objects_3e.asm394
1 files changed, 0 insertions, 394 deletions
diff --git a/engine/animated_objects_3e.asm b/engine/animated_objects_3e.asm
deleted file mode 100755
index 2373e19e..00000000
--- a/engine/animated_objects_3e.asm
+++ /dev/null
@@ -1,394 +0,0 @@
-ClearObjectAnimationBuffers:
- ld hl, wAnimatedObjectsData
- ld bc, wAnimatedObjectsDataEnd - wAnimatedObjectsData
- xor a
- call FillMemory
- ret
-
-RunObjectAnimations:
- ld hl, wAnimatedObjectDataStructs
- ld e, 10
-.loop
- ld a, [hl]
- and a
- jr z, .next
- ld c, l
- ld b, h
- push hl
- push de
- call ExecuteCurrentAnimatedObjectCallback
- call UpdateCurrentAnimatedObjectFrame
- pop de
- pop hl
- jr c, .quit
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ld a, [wCurrentAnimatedObjectOAMBufferOffset]
- ld l, a
- ld h, wOAMBuffer / $100
-.deinit_unused_oam_loop
- ld a, l
- cp wOAMBufferEnd % $100
- jr nc, .quit
- xor a
- ld [hli], a
- jr .deinit_unused_oam_loop
-
-.quit
- ret
-
-SpawnAnimatedObject:
- push de
- push af
- ld hl, wAnimatedObjectDataStructs
- ld e, 10
-.loop
- ld a, [hl]
- and a
- jr z, .init
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- pop af
- pop de
- scf
- ret
-
-.init
- pop af
- ld c, l
- ld b, h
- ld hl, wNumLoadedAnimatedObjects
- inc [hl]
- ld e, a
- ld d, $0
- ld a, [wAnimatedObjectSpawnStateDataPointer]
- ld l, a
- ld a, [wAnimatedObjectSpawnStateDataPointer + 1]
- ld h, a
- add hl, de
- add hl, de
- add hl, de
- ld e, l
- ld d, h
- ld hl, $0
- add hl, bc
- ld a, [wNumLoadedAnimatedObjects]
- ld [hli], a
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- xor a
- ld [hli], a
- pop de
- ld hl, $4
- add hl, bc
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- dec a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ret
-
-MaskCurrentAnimatedObjectStruct:
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-
-MaskAllAnimatedObjectStructs:
- ld hl, wAnimatedObjectDataStructs
- ld e, 10
-.loop
- ld [hl], $0
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ret
-
-UpdateCurrentAnimatedObjectFrame:
- xor a
- ld [wCurAnimatedObjectOAMAttributes], a
- ld hl, $3
- add hl, bc
- ld a, [hli]
- ld [wCurrentAnimatedObjectVTileOffset], a
- ld a, [hli]
- ld [wCurrentAnimatedObjectXCoord], a
- ld a, [hli]
- ld [wCurrentAnimatedObjectYCoord], a
- ld a, [hli]
- ld [wCurrentAnimatedObjectXOffset], a
- ld a, [hl]
- ld [wCurrentAnimatedObjectYOffset], a
- call UpdateDurationTimerAndFrameStateForCurrentAnimatedObject
- cp $fd
- jr z, .finish
- cp $fc
- jr z, .delete_animation
- call GetCurrentAnimatedObjectOAMDataPointer
- ld a, [wCurrentAnimatedObjectVTileOffset]
- add [hl]
- ld [wCurrentAnimatedObjectVTileOffset], a
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push bc
- ld a, [wCurrentAnimatedObjectOAMBufferOffset]
- ld e, a
- ld d, wOAMBuffer / $100
- ld a, [hli]
- ld c, a
-.loop
- ld a, [wCurrentAnimatedObjectYCoord]
- ld b, a
- ld a, [wCurrentAnimatedObjectYOffset]
- add b
- ld b, a
- ld a, [wAnimatedObjectGlobalYOffset]
- add b
- ld b, a
- call GetCurrentAnimatedObjectTileYCoordinate
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [wCurrentAnimatedObjectXCoord]
- ld b, a
- ld a, [wCurrentAnimatedObjectXOffset]
- add b
- ld b, a
- ld a, [wAnimatedObjectGlobalXOffset]
- add b
- ld b, a
- call GetCurrentAnimatedObjectTileXCoordinate
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [wCurrentAnimatedObjectVTileOffset]
- add [hl]
- ld [de], a
- inc hl
- inc de
- call SetCurrentAnimatedObjectOAMAttributes
- ld b, a
- ld a, [wc634]
- cp $7
- ld a, b
- jr z, .skip_load
- ld [de], a
-.skip_load
- inc hl
- inc de
- ld a, e
- ld [wCurrentAnimatedObjectOAMBufferOffset], a
- cp wOAMBufferEnd % $100
- jr nc, .oam_is_full
- dec c
- jr nz, .loop
- pop bc
- jr .finish
-
-.delete_animation
- call MaskCurrentAnimatedObjectStruct
-.finish
- and a
- ret
-
-.oam_is_full
- pop bc
- scf
- ret
-
-GetCurrentAnimatedObjectTileYCoordinate:
- push hl
- ld a, [hl]
- ld hl, wCurAnimatedObjectOAMAttributes
- bit 6, [hl]
- jr z, .no_flip
- add $8
- xor $ff
- inc a
-.no_flip
- pop hl
- ret
-
-GetCurrentAnimatedObjectTileXCoordinate:
- push hl
- ld a, [hl]
- ld hl, wCurAnimatedObjectOAMAttributes
- bit 5, [hl]
- jr z, .no_flip
- add $8
- xor $ff
- inc a
-.no_flip
- pop hl
- ret
-
-SetCurrentAnimatedObjectOAMAttributes:
- ld a, [wCurAnimatedObjectOAMAttributes]
- ld b, a
- ld a, [hl]
- xor b
- and $e0
- ld b, a
- ld a, [hl]
- and $10
- or b
- bit 4, a
- ret z
- or $4
- ret
-
-GetCurrentAnimatedObjectOAMDataPointer:
- ld e, a
- ld d, $0
- ld a, [wAnimatedObjectOAMDataPointer]
- ld l, a
- ld a, [wAnimatedObjectOAMDataPointer + 1]
- ld h, a
- add hl, de
- add hl, de
- add hl, de
- ret
-
-SetCurrentAnimatedObjectCallbackAndResetFrameStateRegisters:
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld [hl], $0
- ld hl, $9
- add hl, bc
- ld [hl], $0
- ld hl, $a
- add hl, bc
- ld [hl], $ff
- ret
-
-UpdateDurationTimerAndFrameStateForCurrentAnimatedObject:
-.loop
- ld hl, $8
- add hl, bc
- ld a, [hl]
- and a
- jr z, .next_frame
- dec [hl]
- call GetPointerToCurrentAnimatedObjectFrameScript
- ld a, [hli]
- push af
- jr .finish
-
-.next_frame
- ld hl, $a
- add hl, bc
- inc [hl]
- call GetPointerToCurrentAnimatedObjectFrameScript
- ld a, [hli]
- cp $fe
- jr z, .restart_anim
- cp $ff
- jr z, .hold_last_frame_state
- push af
- ld a, [hl]
- push hl
- and $3f
- ld hl, $9
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- pop hl
-.finish
- ld a, [hl]
- and $c0
- srl a
- ld [wCurAnimatedObjectOAMAttributes], a
- pop af
- ret
-
-.hold_last_frame_state
- xor a
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $a
- add hl, bc
- dec [hl]
- dec [hl]
- jr .loop
-
-.restart_anim
- xor a
- ld hl, $8
- add hl, bc
- ld [hl], a
- dec a
- ld hl, $a
- add hl, bc
- ld [hl], a
- jr .loop
-
-GetPointerToCurrentAnimatedObjectFrameScript:
- ld hl, $1
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld a, [wAnimatedObjectFramesDataPointer]
- ld l, a
- ld a, [wAnimatedObjectFramesDataPointer + 1]
- ld h, a
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $a
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ret
-
-ExecuteCurrentAnimatedObjectCallback:
- ld hl, $2
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld a, [wAnimatedObjectJumptablePointer]
- ld l, a
- ld a, [wAnimatedObjectJumptablePointer + 1]
- ld h, a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl