aboutsummaryrefslogtreecommitdiff
path: root/entity/mouse.gbasm
blob: 6ea8b1d92fdaffcd7dae11b9235f125ee6188164 (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
97
98
99
100
101
102
103
104
105
106
107
108
Mouse_Drop:
	PUSH DE
	LD D, $64
	LD E, $02
	CALL =RNG_Step
	AND $03
	CP $00
	CALL Z, =Spawn_object
	POP DE
	RET

Mouse_Turn:
	LD A, $mem_map_loading_flags
	BIT 3, A
	RET Z

	PUSH HL
	PUSH BC
	PUSH DE
	INC HL
	LD A, (HL+)
	LD B, A
	LD A, (HL+)
	LD C, A
	LD A, (HL+)
	LD D, A

	.RESET_BLINKING_MODE

	.ENTITY_HEALTH_CHECK =.Skip_turn =Mouse_Drop
	.ENTITY_FREEZE_SHIVER =.Skip_turn
	.ENTITY_STATUS_SKIP_TURN =.Skip_turn

	.ENTITY_TRY_ATTACK =Check_player_next_to =Basic_Enemy_Attack =.attack_end
	CALL =Walking
	BIT 3, D
	JR Z, =.attack_end
	LD A, L
	AND $f0
	OR $0a
	LD L, A
	LD (HL), $05
	LD A, (HL)
	.attack_end:

	.Mid_movement:
		LD A, $mem_moving_animation_step
		CP $07
		JR NZ, =.Mid_movement.end

		BIT 3, D
		JR Z, =.Mid_movement.end

		LD A, L
		AND $f0
		OR $0a
		LD L, A
		LD A, $05
		CP (HL)
		LD A, (HL)
		JR NZ, =.Mid_movement.end

		LD A, L
		AND $f0
		OR $0a
		LD L, A
		LD (HL), $00

		LD A, D
		RES 3, A
		LD D, A
		LD A, $01
		.ADD_A_TO_DIRECTION_BC

		.Mid_movement.Try_Walking:
		PUSH DE
		CALL =Walking
		BIT 3, D
		JR Z, =.Mid_movement.Walk_cancelled
		LD A, L
		AND $f0
		OR $0a
		LD L, A
		LD (HL), $05
		ADD SP, $02
		JR =.Mid_movement.end
		.Mid_movement.Walk_cancelled:
		POP DE
		RES 3, D
	.Mid_movement.end:

	CALL =Entity_End_movement

	.Skip_Turn:
	LD A, L
	AND $f0
	LD L, A
	INC HL
	LD A, B
	LD (HL+), A
	LD A, C
	LD (HL+), A
	LD A, D
	LD (HL+), A
	POP DE
	POP BC
	POP HL
	RET