diff options
author | Astatin <[email protected]> | 2025-04-11 16:20:31 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-04-11 16:20:31 +0200 |
commit | a846ccc0cc20fe49b5ee07e252b370dc005b38cd (patch) | |
tree | 7996f4fdbca1e054bac3d87dd565178da9ba9191 /map | |
parent | 690ff7c09726d9e760b52b717c70e9567531175c (diff) |
Make hop the only default attack and make cats drop heal
Diffstat (limited to 'map')
-rw-r--r-- | map/objects.gbasm | 65 |
1 files changed, 56 insertions, 9 deletions
diff --git a/map/objects.gbasm b/map/objects.gbasm index ae2b60f..c20146f 100644 --- a/map/objects.gbasm +++ b/map/objects.gbasm @@ -11,6 +11,22 @@ Initialize_Objects: CALL =Spawn_leaf RET +Find_Free_Object_slot: ; Return free object slot in HL ($80 if none is found) + LD HL, $mem_object_list + + .loop: + LD A, $ff + CP (HL) + RET Z + + LD A, L + ADD $08 + LD L, A + CP $80 + JR NZ, =.loop + + RET + Spawn_object_in_random_room: ; Object tile in A, Object jump table id in E, Object pointer in HL LD (HL+), A @@ -55,6 +71,25 @@ Spawn_object_in_random_room: ; Object tile in A, Object jump table id in E, Obje CP $00 JR NZ, =.place_in_random_room + CALL =Check_other_object_collision + CP $00 + RET NZ + + INC HL + INC HL + + LD (HL), E + LD A, L + AND $f8 + ADD $08 + LD L, A + RET + +Check_other_object_collision: ; Object in HL (with only sprite x & y set), will be zeroed on collision and A will be 1 on return + LD A, L + AND $f8 + ADD $01 + LD L, A LD BC, $mem_object_list Object_check_collisions.loop: LD A, (BC) @@ -84,6 +119,7 @@ Spawn_object_in_random_room: ; Object tile in A, Object jump table id in E, Obje LD (HL), A DEC HL DEC HL + LD A, $01 RET Object_check_collisions.loop.next: @@ -97,15 +133,7 @@ Spawn_object_in_random_room: ; Object tile in A, Object jump table id in E, Obje LD C, A CP $80 JR NZ, =Object_check_collisions.loop - - INC HL - INC HL - - LD (HL), E - LD A, L - AND $f8 - ADD $08 - LD L, A + LD A, $00 RET Spawn_stairs: @@ -140,6 +168,11 @@ Object_Interaction_Jump_table: ; 03 JP =Restore_EP_Action + NOP + + ; 04 + JP =Heal_Attack_Box_Action + NOP Stairs_Action: LD A, $enum_dungeon_generation_mode @@ -184,6 +217,20 @@ Heal_Action: RET +Heal_Attack_Box_Action: + LD (HL), $00 + + .START_SCRIPT =.Script + + LD A, $enum_dungeon_dialogue_mode + LD $mem_requested_mode, A + + RET + + .Script: + .LEARN_ATTACK $02 + .END + Restore_EP_Action: LD A, $mem_bunny_mana ADD $15 |