aboutsummaryrefslogtreecommitdiff
path: root/entities.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'entities.gbasm')
-rw-r--r--entities.gbasm112
1 files changed, 57 insertions, 55 deletions
diff --git a/entities.gbasm b/entities.gbasm
index c8b155c..7b74071 100644
--- a/entities.gbasm
+++ b/entities.gbasm
@@ -1,29 +1,33 @@
Prepare_Entities:
+ LD HL, $mem_oam_buffer
+ LD BC, $00a0
+ CALL =bzero
LD A, $00
LD $tmp_var_1, A
LD HL, $mem_entites_list
CALL =Prepare_Entity
CALL =Prepare_Entity
CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
- CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
+ ; CALL =Prepare_Entity
RET
Prepare_Entity:
LD A, (HL+)
LD E, A
+
CP $00
JP Z, =Prepare_Entity.skip
@@ -32,10 +36,10 @@ Prepare_Entity:
LD D, A
LD A, $mem_viewport_x
LD B, A
- SUB $83
+ SUB $82
CP D
JP NC, =Prepare_Entity.skip
- ADD $10
+ ADD $0c
CP D
JP C, =Prepare_Entity.skip
LD A, D
@@ -50,10 +54,10 @@ Prepare_Entity:
LD D, A
LD A, $mem_viewport_y
LD C, A
- SUB $83
+ SUB $82
CP D
JP NC, =Prepare_Entity.skip
- ADD $10
+ ADD $0b
CP D
JP C, =Prepare_Entity.skip
LD A, D
@@ -64,7 +68,6 @@ Prepare_Entity:
ADD $02
LD C, A
-
LD A, $mem_bunny_direction
BIT 3, A
JR Z, =Prepare_Entity.Viewport_offset_end
@@ -228,46 +231,45 @@ Prepare_Entity:
JP =Prepare_Entity.Write_OBJ
Prepare_Entity.Write_OBJ:
- PUSH HL
- ; First OBJ (left)
- LD HL, $mem_oam_buffer
- LD A, $tmp_var_1
- LD L, A
- LD A, C
- LD (HL+), A
- LD A, B
- LD (HL+), A
- LD A, E
- INC A
- LD (HL+), A
- LD A, D
- LD (HL+), A
-
- ; Second OBJ
- LD A, B
- ADD $08
- LD B, A
-
- LD A, C
- LD (HL+), A
- LD A, B
- LD (HL+), A
- LD A, E
- XOR $02
- INC A
- LD (HL+), A
- LD A, D
- LD (HL+), A
- LD A, L
- LD $tmp_var_1, A
- POP HL
+ PUSH HL
+ ; First OBJ (left)
+ LD HL, $mem_oam_buffer
+ LD A, $tmp_var_1
+ LD L, A
+ LD A, C
+ LD (HL+), A
+ LD A, B
+ LD (HL+), A
+ LD A, E
+ INC A
+ LD (HL+), A
+ LD A, D
+ LD (HL+), A
+
+ ; Second OBJ
+ LD A, B
+ ADD $08
+ LD B, A
- INC HL
- INC HL
- INC HL
- INC HL
+ LD A, C
+ LD (HL+), A
+ LD A, B
+ LD (HL+), A
+ LD A, E
+ XOR $02
+ INC A
+ LD (HL+), A
+ LD A, D
+ LD (HL+), A
+ LD A, L
+ LD $tmp_var_1, A
+ POP HL
Prepare_Entity.skip:
+ LD A, L
+ AND $f8
+ ADD $08
+ LD L, A
RET
Entities_Behaviours: