aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-05-09 10:28:14 +0200
committerAstatin <[email protected]>2025-05-09 10:28:14 +0200
commit507a9876b85f47ff81cc9150bea858eec064ba05 (patch)
tree5b24e7836ce07ad8768d9c7ad7a1c6a2b3e92106
parent4b02238d88af30c98b2f8d44e5200fb80b04bcad (diff)
Refactor viewport to not need Fix_Bunny_Screen anymore and "fix" it before every frame
-rw-r--r--enemiesattacks/freeze.gbasm1
-rw-r--r--enemiesattacks/grab.gbasm1
-rw-r--r--entity/bunny.gbasm28
-rw-r--r--entity/display.gbasm9
-rw-r--r--entity/init.gbasm1
-rw-r--r--map/objects.gbasm8
-rw-r--r--playerattacks/hop.gbasm1
-rw-r--r--utils.gbasm71
8 files changed, 14 insertions, 106 deletions
diff --git a/enemiesattacks/freeze.gbasm b/enemiesattacks/freeze.gbasm
index 057dec4..b5b6319 100644
--- a/enemiesattacks/freeze.gbasm
+++ b/enemiesattacks/freeze.gbasm
@@ -43,7 +43,6 @@ Freeze_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
LD A, $00
LD $mem_entity_being_attacked_low, A
- CALL =Fix_Bunny_screen
LD A, $04
LD $mem_bunny_status_clear_turn_counter, A
LD A, $enum_dungeon_mode
diff --git a/enemiesattacks/grab.gbasm b/enemiesattacks/grab.gbasm
index 4529cd7..e69334e 100644
--- a/enemiesattacks/grab.gbasm
+++ b/enemiesattacks/grab.gbasm
@@ -83,7 +83,6 @@ Grab_Enemy_Attack: ; Direction to face in E. Result in BC (XY), Direction in D
INC A
OR $08
LD $mem_bunny_direction, A
- CALL =Fix_Bunny_screen
POP BC
POP DE
diff --git a/entity/bunny.gbasm b/entity/bunny.gbasm
index 46854b8..c58a645 100644
--- a/entity/bunny.gbasm
+++ b/entity/bunny.gbasm
@@ -167,29 +167,6 @@ Move_Bunny:
LD $mem_entity_being_attacked_low, A
.Delayed_Attack.end:
- .2x_speed_middle_update:
- LD A, $mem_bunny_flags
- BIT 0, A
- JR Z, =.2x_speed_middle_update.end
- LD A, $mem_moving_animation_step
- CP $07
- JR NZ, =.2x_speed_middle_update.end
-
- LD A, $mem_bunny_x
- LD B, A
- LD A, $mem_bunny_y
- LD C, A
- LD A, $mem_bunny_direction
- LD D, A
- LD A, $02
- .ADD_A_TO_DIRECTION_BC
- LD A, B
- LD $mem_bunny_x, A
- LD A, C
- LD $mem_bunny_y, A
- DBG
- .2x_speed_middle_update.end:
-
.End_movement:
LD A, $mem_map_loading_flags
BIT 3, A
@@ -208,7 +185,7 @@ Move_Bunny:
LD B, A
LD A, $mem_bunny_y
LD C, A
- LD A, $01
+ LD A, E
.ADD_A_TO_DIRECTION_BC
LD A, B
LD $mem_bunny_x, A
@@ -407,9 +384,6 @@ Center_viewport_around_entity: ; Entity pointer in HL
BIT 0, (HL)
JR Z, =.moving_animation_end
SLA E
- LD A, E
- AND $0f
- LD E, A
.moving_animation_end:
LD A, B
diff --git a/entity/display.gbasm b/entity/display.gbasm
index 0a38755..42f4740 100644
--- a/entity/display.gbasm
+++ b/entity/display.gbasm
@@ -152,16 +152,7 @@ Display_Entity:
CP $30
JR NZ, =.SuperJump_Animation.end
- PUSH BC
- LD A, $mem_moving_animation_step
- CPL
- INC A
- LD B, A
LD A, $mem_moving_animation_step
- SLA A
- AND $0f
- ADD B
- POP BC
CP $00
JR Z, =.SuperJump_Animation.end
.ADD_A_TO_DIRECTION_BC
diff --git a/entity/init.gbasm b/entity/init.gbasm
index 1e39456..80e3848 100644
--- a/entity/init.gbasm
+++ b/entity/init.gbasm
@@ -108,7 +108,6 @@ Initialize_Entities:
CALL =Reset_Entities_Collision_Map
-Fix_Bunny_screen:
LD A, $mem_bunny_x
SUB $05
LD $mem_viewport_x, A
diff --git a/map/objects.gbasm b/map/objects.gbasm
index 11eb7f9..7cdd5c4 100644
--- a/map/objects.gbasm
+++ b/map/objects.gbasm
@@ -265,8 +265,6 @@ Heal_Attack_Box_Action:
RES 3, A
LD $mem_map_loading_flags, A
- CALL =Fix_Bunny_screen
-
RET
.Script:
@@ -289,8 +287,6 @@ Freeze_Attack_Box_Action:
RES 3, A
LD $mem_map_loading_flags, A
- CALL =Fix_Bunny_screen
-
RET
.Script:
@@ -313,8 +309,6 @@ Earcopter_Attack_Box_Action:
RES 3, A
LD $mem_map_loading_flags, A
- CALL =Fix_Bunny_screen
-
RET
.Script:
@@ -337,8 +331,6 @@ Fimsh_Attack_Box_Action:
RES 3, A
LD $mem_map_loading_flags, A
- CALL =Fix_Bunny_screen
-
RET
.Script:
diff --git a/playerattacks/hop.gbasm b/playerattacks/hop.gbasm
index ac89acd..111fb72 100644
--- a/playerattacks/hop.gbasm
+++ b/playerattacks/hop.gbasm
@@ -99,7 +99,6 @@ Hop_Attack_Loading_Regular:
LD $mem_current_mode, A
LD $mem_requested_mode, A
CALL =Update_VBlank_Handler
- CALL =Fix_Bunny_screen
LD A, $mem_bunny_direction
OR $38
LD $mem_bunny_direction, A
diff --git a/utils.gbasm b/utils.gbasm
index ae509f0..5cb39ca 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -100,64 +100,19 @@ bff: ; dest = HL, n = BC
LD A, $mem_bunny_direction
BIT 3, A
JR Z, =$end
- LD A, $mem_bunny_direction
- AND $07
- CP $enum_direction_down
- JR Z, =$down
- CP $enum_direction_right
- JR Z, =$right
- CP $enum_direction_up
- JR Z, =$up
-
- $left:
- LD A, $mem_prepared_viewport_x
- SUB $09
- AND $0f
- INC A
- XOR $ff
- INC A
- ADD $10
- ADD B
-
- LD B, A
- JR =$end
-
- $right:
- LD A, $mem_prepared_viewport_x
- SUB $08
- AND $0f
- XOR $ff
- INC A
- ADD B
-
- LD B, A
-
- JR =$end
-
- $up:
- LD A, $mem_prepared_viewport_y
- SUB $09
- AND $0f
- INC A
- XOR $ff
- INC A
- ADD $10
- ADD C
-
- LD C, A
-
- JR =$end
-
- $down:
- LD A, $mem_prepared_viewport_y
- SUB $08
- AND $0f
- XOR $ff
- INC A
- ADD C
-
- LD C, A
-
+ PUSH DE
+ DEC A
+ XOR $01
+ INC A
+ LD D, A
+ LD A, $mem_bunny_flags
+ BIT 0, A
+ LD A, $mem_moving_animation_step
+ JR Z, =$skip_double
+ SLA A
+ $skip_double:
+ .ADD_A_TO_DIRECTION_BC
+ POP DE
$end:
.END