summaryrefslogtreecommitdiff
path: root/engine/oak_speech2.asm.orig
diff options
context:
space:
mode:
Diffstat (limited to 'engine/oak_speech2.asm.orig')
-rwxr-xr-xengine/oak_speech2.asm.orig296
1 files changed, 296 insertions, 0 deletions
diff --git a/engine/oak_speech2.asm.orig b/engine/oak_speech2.asm.orig
new file mode 100755
index 00000000..986a6535
--- /dev/null
+++ b/engine/oak_speech2.asm.orig
@@ -0,0 +1,296 @@
+ChoosePlayerName: ; 695d (1:695d)
+ call OakSpeechSlidePicRight
+ ld de, DefaultNamesPlayer
+ call DisplayIntroNameTextBox
+ ld a, [wCurrentMenuItem]
+ and a
+ jr z, .customName
+ ld hl, DefaultNamesPlayerList
+ call GetDefaultName
+ ld de, wPlayerName
+ call OakSpeechSlidePicLeft
+ jr .done
+.customName
+ ld hl, wPlayerName
+ xor a ; NAME_PLAYER_SCREEN
+ ld [wNamingScreenType], a
+ call DisplayNamingScreen
+ ld a, [wcf4b]
+ cp "@"
+ jr z, .customName
+ call ClearScreen
+ call Delay3
+ ld de, RedPicFront
+ ld b, BANK(RedPicFront)
+ call IntroDisplayPicCenteredOrUpperRight
+.done
+ ld hl, YourNameIsText
+ jp PrintText
+
+YourNameIsText: ; 699f (1:699f)
+ TX_FAR _YourNameIsText
+ db "@"
+
+ChooseRivalName: ; 69a4 (1:69a4)
+ call OakSpeechSlidePicRight
+ ld de, DefaultNamesRival
+ call DisplayIntroNameTextBox
+ ld a, [wCurrentMenuItem]
+ and a
+ jr z, .customName
+ ld hl, DefaultNamesRivalList
+ call GetDefaultName
+ ld de, wRivalName
+ call OakSpeechSlidePicLeft
+ jr .done
+.customName
+ ld hl, wRivalName
+ ld a, NAME_RIVAL_SCREEN
+ ld [wNamingScreenType], a
+ call DisplayNamingScreen
+ ld a, [wcf4b]
+ cp "@"
+ jr z, .customName
+ call ClearScreen
+ call Delay3
+ ld de, Rival1Pic
+ ld b, $13
+ call IntroDisplayPicCenteredOrUpperRight
+.done
+ ld hl, HisNameIsText
+ jp PrintText
+
+HisNameIsText: ; 69e7 (1:69e7)
+ TX_FAR _HisNameIsText
+ db "@"
+
+OakSpeechSlidePicLeft: ; 69ec (1:69ec)
+ push de
+ coord hl, 0, 0
+ lb bc, 12, 11
+ call ClearScreenArea ; clear the name list text box
+ ld c, 10
+ call DelayFrames
+ pop de
+ ld hl, wcd6d
+ ld bc, NAME_LENGTH
+ call CopyData
+ call Delay3
+ coord hl, 12, 4
+ lb de, 6, 6 * SCREEN_WIDTH + 5
+ ld a, $ff
+ jr OakSpeechSlidePicCommon
+
+OakSpeechSlidePicRight: ; 6a12 (1:6a12)
+ coord hl, 5, 4
+ lb de, 6, 6 * SCREEN_WIDTH + 5
+ xor a
+
+OakSpeechSlidePicCommon: ; 6a19 (1:6a19)
+ push hl
+ push de
+ push bc
+ ld [hSlideDirection], a
+ ld a, d
+ ld [hSlideAmount], a
+ ld a, e
+ ld [hSlidingRegionSize], a
+ ld c, a
+ ld a, [hSlideDirection]
+ and a
+ jr nz, .next
+; If sliding right, point hl to the end of the pic's tiles.
+ ld d, 0
+ add hl, de
+.next
+ ld d, h
+ ld e, l
+.loop
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [hSlideDirection]
+ and a
+ jr nz, .slideLeft
+; sliding right
+ ld a, [hli]
+ ld [hld], a
+ dec hl
+ jr .next2
+.slideLeft
+ ld a, [hld]
+ ld [hli], a
+ inc hl
+.next2
+ dec c
+ jr nz, .loop
+ ld a, [hSlideDirection]
+ and a
+ jr z, .next3
+; If sliding left, we need to zero the last tile in the pic (there is no need
+; to take a corresponding action when sliding right because hl initially points
+; to a 0 tile in that case).
+ xor a
+ dec hl
+ ld [hl], a
+.next3
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call Delay3
+ ld a, [hSlidingRegionSize]
+ ld c, a
+ ld h, d
+ ld l, e
+ ld a, [hSlideDirection]
+ and a
+ jr nz, .slideLeft2
+ inc hl
+ jr .next4
+.slideLeft2
+ dec hl
+.next4
+ ld d, h
+ ld e, l
+ ld a, [hSlideAmount]
+ dec a
+ ld [hSlideAmount], a
+ jr nz, .loop
+ pop bc
+ pop de
+ pop hl
+ ret
+
+DisplayIntroNameTextBox: ; 6a6c (1:6a6c)
+ push de
+ coord hl, 0, 0
+ ld b, $a
+ ld c, $9
+ call TextBoxBorder
+ coord hl, 3, 0
+ ld de, .namestring
+ call PlaceString
+ pop de
+ coord hl, 2, 2
+ call PlaceString
+ call UpdateSprites
+ xor a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ inc a
+ ld [wTopMenuItemX], a
+ ld [wMenuWatchedKeys], a ; A_BUTTON
+ inc a
+ ld [wTopMenuItemY], a
+ inc a
+ ld [wMaxMenuItem], a
+ jp HandleMenuInput
+
+.namestring ; 6b40 (1:6b40)
+ db "─NOM@"
+
+IF DEF(_RED)
+DefaultNamesPlayer: ; 6aa8 (1:6aa8)
+ db "NOM:"
+ next "RED"
+ next "SACHA"
+ next "PAUL"
+ db "@"
+
+DefaultNamesRival: ; 6abe (1:6abe)
+ db "NOM:"
+ next "BLUE"
+ next "REGIS"
+ next "JEAN"
+ db "@"
+ENDC
+
+IF DEF(_BLUE)
+DefaultNamesPlayer: ; 6aa8 (1:6aa8)
+ db "NOM:"
+ next "BLUE"
+ next "REGIS"
+ next "JEAN"
+ db "@"
+
+DefaultNamesRival: ; 6abe (1:6abe)
+ db "NOM:"
+ next "RED"
+ next "SACHA"
+ next "PAUL"
+ db "@"
+ENDC
+
+GetDefaultName: ; 6ad6 (1:6ad6)
+; a = name index
+; hl = name list
+ ld b, a
+ ld c, 0
+.loop
+ ld d, h
+ ld e, l
+.innerLoop
+ ld a, [hli]
+ cp "@"
+ jr nz, .innerLoop
+ ld a, b
+ cp c
+ jr z, .foundName
+ inc c
+ jr .loop
+.foundName
+ ld h, d
+ ld l, e
+ ld de, wcd6d
+ ld bc, $14
+ jp CopyData
+
+IF DEF(_RED)
+DefaultNamesPlayerList: ; 6af2 (1:6af2)
+<<<<<<< HEAD
+ db "NOM:@"
+ db "RED@"
+ db "SACHA@"
+ db "PAUL@"
+DefaultNamesRivalList: ; 6b08 (1:6b08)
+ db "NOM:@"
+ db "BLUE@"
+ db "REGIS@"
+ db "JEAN@"
+ENDC
+IF DEF(_BLUE)
+DefaultNamesPlayerList: ; 6af2 (1:6af2)
+ db "NOM:@"
+ db "BLUE@"
+ db "REGIS@"
+ db "JEAN@"
+DefaultNamesRivalList: ; 6b08 (1:6b08)
+ db "NOM:@"
+ db "RED@"
+ db "SACHA@"
+ db "PAUL@"
+=======
+ db "NEW NAME@"
+ db "RED@"
+ db "ASH@"
+ db "JACK@"
+DefaultNamesRivalList: ; 6b08 (1:6b08)
+ db "NEW NAME@"
+ db "BLUE@"
+ db "GARY@"
+ db "JOHN@"
+ENDC
+IF DEF(_BLUE)
+DefaultNamesPlayerList: ; 6af2 (1:6af2)
+ db "NEW NAME@"
+ db "BLUE@"
+ db "GARY@"
+ db "JOHN@"
+DefaultNamesRivalList: ; 6b08 (1:6b08)
+ db "NEW NAME@"
+ db "RED@"
+ db "ASH@"
+ db "JACK@"
+>>>>>>> b8dfee511453d322051f21bddc74c79307f23007
+ENDC
+
+TextTerminator_6b20: ; 6b20 (1:6b20)
+ db "@"