aboutsummaryrefslogtreecommitdiff
path: root/entity/actions.gbasm
blob: 5b16891c86a636b501590d3773c8cea7dccc072f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Entities_Actions:
	LD A, $mem_moving_animation_step
	CP $09
	JR Z, =.Reset_Entities_Collision_Map
	CP $05
	JR Z, =.Reset_Entities_Collision_Map
	LD A, $mem_map_loading_flags
	BIT 5, A

	JR Z, =.Action_Functions

	.Reset_Entities_Collision_Map:
	CALL =Reset_Entities_Collision_Map

	.Action_Functions:
	LD HL, $mem_entities_list
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	CALL =Entity_Action
	RET

Entity_Action:
	LD A, (HL+)
	CP $00
	JR Z, =.skip

	INC HL
	INC HL
	INC HL

	LD E, (HL)
	PUSH HL

	LD A, L
	AND $f0
	LD L, A

	LD BC, =Turn_Jump_table
	LD A, E

	.JUMP_TABLE

	POP HL

	.skip:
	LD A, L
	AND $f0
	ADD $10
	LD L, A
	RET



Interaction_Jump_table:
	; 00
	RET
	NOP
	NOP
	NOP

	; 01
	JP =Enemy_Interaction
	NOP

	; 02
	JP =Open_Dialogue
	NOP

Enemy_Interaction:
	LD A, L
	AND $f0
	LD $mem_entity_being_attacked_low, A
	LD A, $mem_bunny_direction
	RES 3, A
	LD $mem_bunny_direction, A
	LD A, $01
	LD $mem_bunny_animation, A

	LD A, $mem_map_loading_flags
	SET 4, A
	LD $mem_map_loading_flags, A

	RET