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 /dialogues | |
parent | 690ff7c09726d9e760b52b717c70e9567531175c (diff) |
Make hop the only default attack and make cats drop heal
Diffstat (limited to 'dialogues')
-rw-r--r-- | dialogues/dialogues.gbasm | 166 | ||||
-rw-r--r-- | dialogues/text.gbasm | 26 | ||||
-rw-r--r-- | dialogues/text.gbtxt | 20 | ||||
-rw-r--r-- | dialogues/utils.gbasm | 21 |
4 files changed, 229 insertions, 4 deletions
diff --git a/dialogues/dialogues.gbasm b/dialogues/dialogues.gbasm index 1fdcc80..1501a79 100644 --- a/dialogues/dialogues.gbasm +++ b/dialogues/dialogues.gbasm @@ -4,6 +4,7 @@ Dialogue_script_step: LD A, ($mem_dialogue_script_program_counter+1) LD L, A + .next: LD A, (HL+) LD BC, =Dialogue_script_instruction_Jump_Table @@ -26,10 +27,22 @@ Dialogue_script_instruction_Jump_Table: JP =.Text NOP - ;02 + ; 02 JP =.TextB NOP + ; 03 + JP =.Learn_Attack + NOP + + ; 04 + JP =.TextB_Indirect + NOP + + ; 05 + JP =.Learn_Attack_Return + NOP + .Text: PUSH HL LD HL, $dialogue_first_line @@ -67,6 +80,12 @@ Dialogue_script_instruction_Jump_Table: RET .TextB: + PUSH HL + LD HL, $dialogue_first_line + LD BC, $12 + CALL =bzero + POP HL + LD A, (HL+) LD B, A LD A, (HL+) @@ -76,6 +95,12 @@ Dialogue_script_instruction_Jump_Table: CALL =Print_str POP HL + PUSH HL + LD HL, $dialogue_third_line + LD BC, $12 + CALL =bzero + POP HL + LD A, (HL+) LD B, A LD A, (HL+) @@ -90,5 +115,144 @@ Dialogue_script_instruction_Jump_Table: RET + .TextB_Indirect: + PUSH HL + LD HL, $dialogue_first_line + LD BC, $12 + CALL =bzero + POP HL + + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + PUSH DE + LD A, (BC) + LD D, A + INC BC + LD A, (BC) + LD E, A + LD B, D + LD C, E + POP DE + PUSH HL + LD HL, $dialogue_first_line + DBG + CALL =Print_str + POP HL + + + PUSH HL + LD HL, $dialogue_third_line + LD BC, $12 + CALL =bzero + POP HL + + LD A, (HL+) + LD B, A + LD A, (HL+) + LD C, A + PUSH HL + LD HL, $dialogue_third_line + CALL =Print_str + POP HL + + LD A, $07 + LD $mem_display_flag, A + + RET + + .Learn_Attack: + LD A, (HL+) + LD E, A + + LD B, $00 + LD C, A + SLA C + RR B + SLA C + RR B + SLA C + RR B + LD A, C + ADD low(=Attack_List) + LD C, A + LD A, B + ADC high(=Attack_List) + LD B, A + + LD A, (BC) + LD ($mem_learn_attack_attack_name_ptr), A + INC BC + LD A, (BC) + LD ($mem_learn_attack_attack_name_ptr+1), A + + LD A, H + LD ($mem_learn_attack_dialogue_ret_ptr), A + LD A, L + LD ($mem_learn_attack_dialogue_ret_ptr+1), A + + LD A, E + LD HL, $mem_bunny_attacks + .Learn_Attack.Check_doubles.loop: + LD A, (HL) + CP E + JR Z, =.Learn_Attack.Duplicate + INC HL + LD A, L + CP low($mem_bunny_attacks+4) + JR NZ, =.Learn_Attack.Check_doubles.loop + + LD A, $mem_number_of_attacks + CP $04 + JR NC, =.Learn_Attack.Not_enough_slot + + .Learn_Attack.Success: + LD A, $mem_number_of_attacks + LD HL, $mem_bunny_attacks + ADD L + LD L, A + LD (HL), $02 + LD A, $mem_number_of_attacks + INC A + LD $mem_number_of_attacks, A + + LD HL, =.Learn_Attack.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Dialogue: + .TEXT =New_attack_1t =New_attack_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .LEARN_ATTACK_RET + + + .Learn_Attack.Not_enough_slot: + + LD HL, =.Learn_Attack.Not_enough_slot.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Not_enough_slot.Dialogue: + .TEXT =No_attslot_1t =No_attslot_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .TEXT =No_attslot_3t =No_attslot_3b + .TEXT =No_attslot_4t =Empty + .LEARN_ATTACK_RET + + .Learn_Attack.Duplicate: + LD HL, =.Learn_Attack.Duplicate.Dialogue + JP =Dialogue_script_step.next + .Learn_Attack.Duplicate.Dialogue: + .TEXT =dup_attack_1t =dup_attack_1b + .TEXTB_INDIRECT $mem_learn_attack_attack_name_ptr =Double_Exclamation + .TEXT =dup_attack_3t =dup_attack_3b + .TEXT =dup_attack_4t =Empty + .LEARN_ATTACK_RET + + .Learn_Attack_Return: + LD A, ($mem_learn_attack_dialogue_ret_ptr) + LD H, A + LD A, ($mem_learn_attack_dialogue_ret_ptr+1) + LD L, A + DBG + JP =Dialogue_script_step.next + .INCLUDE "dialogues/text.gbasm" .INCLUDE "dialogues/demo_quest.gbasm" diff --git a/dialogues/text.gbasm b/dialogues/text.gbasm index eaefa13..491d395 100644 --- a/dialogues/text.gbasm +++ b/dialogues/text.gbasm @@ -4,6 +4,32 @@ Bunny_Header_Text: .DB 0x8b, 0x9e, 0x97, 0x97, 0xa2, 0xaa, 0xff Unknown_Header_Text: .DB 0xa6, 0xa6, 0xa6, 0xaa, 0xff +Double_Exclamation: +.DB 0xa5, 0xa5, 0xff +New_attack_1t: +.DB 0xa2, 0x98, 0x9e, 0x0, 0x95, 0x8e, 0x8a, 0x9b, 0x97, 0x8e, 0x8d, 0x0, 0x9d, 0x91, 0x8e, 0xff +New_attack_1b: +.DB 0x8a, 0x9d, 0x9d, 0x8a, 0x8c, 0x94, 0xaa, 0xff +No_attslot_1t: +.DB 0xa2, 0x98, 0x9e, 0x0, 0x8f, 0x98, 0x9e, 0x97, 0x8d, 0x0, 0x9d, 0x91, 0x8e, 0xff +No_attslot_1b: +.DB 0x8a, 0x9d, 0x9d, 0x8a, 0x8c, 0x94, 0xaa, 0xff +No_attslot_3t: +.DB 0x8b, 0x9e, 0x9d, 0x0, 0xa2, 0x98, 0x9e, 0x0, 0x8a, 0x95, 0x9b, 0x8e, 0x8a, 0x8d, 0xa2, 0xff +No_attslot_3b: +.DB 0x94, 0x97, 0x98, 0xa0, 0x0, 0x9d, 0x98, 0x98, 0x0, 0x96, 0x8a, 0x97, 0xa2, 0xff +No_attslot_4t: +.DB 0x8a, 0x9d, 0x9d, 0x8a, 0x8c, 0x94, 0x9c, 0xa4, 0xa4, 0xa4, 0xff +dup_attack_1t: +.DB 0xa2, 0x98, 0x9e, 0x0, 0x8f, 0x98, 0x9e, 0x97, 0x8d, 0x0, 0x9d, 0x91, 0x8e, 0xff +dup_attack_1b: +.DB 0x8a, 0x9d, 0x9d, 0x8a, 0x8c, 0x94, 0xaa, 0xff +dup_attack_3t: +.DB 0x8b, 0x9e, 0x9d, 0x0, 0xa2, 0x98, 0x9e, 0x0, 0x8a, 0x95, 0x9b, 0x8e, 0x8a, 0x8d, 0xa2, 0xff +dup_attack_3b: +.DB 0x94, 0x97, 0x98, 0xa0, 0x0, 0x9d, 0x91, 0x92, 0x9c, 0xff +dup_attack_4t: +.DB 0x8a, 0x9d, 0x9d, 0x8a, 0x8c, 0x94, 0xa4, 0xa4, 0xa4, 0xff Dialogue_1_1b: .DB 0x91, 0x8e, 0x95, 0x95, 0x98, 0x0, 0xa5, 0xff Dialogue_1_2t: diff --git a/dialogues/text.gbtxt b/dialogues/text.gbtxt index ce9a261..246732c 100644 --- a/dialogues/text.gbtxt +++ b/dialogues/text.gbtxt @@ -2,6 +2,26 @@ Empty: Bunny_Header_Text: Bunny: Unknown_Header_Text: ???: +Double_Exclamation: !! + +New_attack_1t: You learned the +New_attack_1b: attack: + +No_attslot_1t: You found the +No_attslot_1b: attack: + +No_attslot_3t: But you already +No_attslot_3b: know too many + +No_attslot_4t: attacks... + +dup_attack_1t: You found the +dup_attack_1b: attack: + +dup_attack_3t: But you already +dup_attack_3b: know this + +dup_attack_4t: attack... Dialogue_1_1b: Hello ! diff --git a/dialogues/utils.gbasm b/dialogues/utils.gbasm index 38c9e51..51c0083 100644 --- a/dialogues/utils.gbasm +++ b/dialogues/utils.gbasm @@ -7,17 +7,32 @@ .END .MACRODEF END - .DB 00 + .DB $00 .END .MACRODEF TEXT first_line second_line - .DB 01 + .DB $01 .DB $first_line .DB $second_line .END .MACRODEF TEXTB first_line second_line - .DB 02 + .DB $02 .DB $first_line .DB $second_line .END + +.MACRODEF LEARN_ATTACK attack_idx + .DB $03 + .DB low($attack_idx) +.END + +.MACRODEF TEXTB_INDIRECT indirect_line second_line + .DB $04 + .DB $indirect_line + .DB $second_line +.END + +.MACRODEF LEARN_ATTACK_RET + .DB $05 +.END |