mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-07 08:05:23 +13:00
Boy/Girl option
This adds the boy/girl selection from later generations, using the pret tutorial and a spriteset from Pokemon Anniversary Red. I made some alterations, namely inserting the option later into the speech to be less clunky, and having the Nidorino become a Nidorina if you pick the feminine option. I decided to make the third name option Seren, a common Welsh name for girls. It means "star", which is really cute! But...most people will probably say it's a Panel de Pon reference, which is cool too.
This commit is contained in:
parent
3b16404a50
commit
36baa9e623
28 changed files with 225 additions and 35 deletions
|
|
@ -58,14 +58,36 @@ OakSpeech:
|
|||
ld a, [wd732]
|
||||
bit 1, a ; possibly a debug mode bit
|
||||
jp nz, .skipChoosingNames
|
||||
call ClearScreen ; clear the screen before resuming normal intro
|
||||
ld de, ProfOakPic
|
||||
lb bc, BANK(ProfOakPic), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call FadeInIntroPic
|
||||
ld hl, OakSpeechText1
|
||||
call PrintText
|
||||
ld hl, BoyGirlText ; added to the same file as the other oak text
|
||||
call PrintText ; show this text
|
||||
call BoyGirlChoice ; added routine at the end of this file
|
||||
ld a, [wCurrentMenuItem]
|
||||
ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
|
||||
ld a, [wPlayerSex] ; Let's change the Nidorins based on the choice. It's really cute and makes use of an unused command sound.
|
||||
and a
|
||||
jr z, .Nidorino
|
||||
jr nz, .Nidorina
|
||||
.Nidorina
|
||||
ld a, NIDORINA
|
||||
ld [wd0b5], a
|
||||
ld [wcf91], a
|
||||
call GetMonHeader
|
||||
hlcoord 6, 4
|
||||
call LoadFlippedFrontSpriteByMonIndex
|
||||
call MovePicLeft
|
||||
ld hl, OakSpeechText2Green
|
||||
jr .cont
|
||||
.Nidorino
|
||||
ld a, NIDORINO
|
||||
ld [wd0b5], a
|
||||
ld [wcf91], a
|
||||
|
|
@ -73,12 +95,21 @@ OakSpeech:
|
|||
hlcoord 6, 4
|
||||
call LoadFlippedFrontSpriteByMonIndex
|
||||
call MovePicLeft
|
||||
ld hl, OakSpeechText2
|
||||
ld hl, OakSpeechText2Red
|
||||
jr .cont
|
||||
|
||||
.cont
|
||||
call PrintText
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
ld de, RedPicFront
|
||||
lb bc, BANK(RedPicFront), $00
|
||||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen1
|
||||
ld de, GreenPicFront
|
||||
lb bc, BANK(GreenPicFront), $00
|
||||
.NotGreen1:
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call MovePicLeft
|
||||
ld hl, IntroducePlayerText
|
||||
|
|
@ -98,6 +129,12 @@ OakSpeech:
|
|||
call ClearScreen
|
||||
ld de, RedPicFront
|
||||
lb bc, BANK(RedPicFront), $00
|
||||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen2
|
||||
ld de, GreenPicFront
|
||||
lb bc, Bank(GreenPicFront), $00
|
||||
.NotGreen2:
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call GBFadeInFromWhite
|
||||
ld a, [wd72d]
|
||||
|
|
@ -118,10 +155,17 @@ OakSpeech:
|
|||
ld de, RedSprite
|
||||
ld hl, vSprites
|
||||
lb bc, BANK(RedSprite), $0C
|
||||
call CopyVideoData
|
||||
ld de, ShrinkPic1
|
||||
lb bc, BANK(ShrinkPic1), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen3
|
||||
ld de,GreenSprite
|
||||
lb bc, BANK(GreenSprite), $0C
|
||||
.NotGreen3:
|
||||
ld hl, vSprites
|
||||
call CopyVideoData
|
||||
ld de, ShrinkPic1
|
||||
lb bc, BANK(ShrinkPic1), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
ld c, 4
|
||||
call DelayFrames
|
||||
ld de, ShrinkPic2
|
||||
|
|
@ -158,11 +202,16 @@ OakSpeech:
|
|||
OakSpeechText1:
|
||||
text_far _OakSpeechText1
|
||||
text_end
|
||||
OakSpeechText2:
|
||||
OakSpeechText2Red: ; this is such a clunky way to do it but the text_asm way caused crashes
|
||||
text_far _OakSpeechText2A
|
||||
sound_cry_nidorino
|
||||
text_far _OakSpeechText2B
|
||||
text_end
|
||||
OakSpeechText2Green:
|
||||
text_far _OakSpeechText2A
|
||||
sound_cry_nidorina
|
||||
text_far _OakSpeechText2B
|
||||
text_end
|
||||
IntroducePlayerText:
|
||||
text_far _IntroducePlayerText
|
||||
text_end
|
||||
|
|
@ -234,3 +283,26 @@ IntroDisplayPicCenteredOrUpperRight:
|
|||
xor a
|
||||
ldh [hStartTileID], a
|
||||
predef_jump CopyUncompressedPicToTilemap
|
||||
|
||||
; displays boy/girl choice
|
||||
BoyGirlChoice::
|
||||
call SaveScreenTilesToBuffer1
|
||||
call InitBoyGirlTextBoxParameters
|
||||
jr DisplayBoyGirlChoice
|
||||
|
||||
InitBoyGirlTextBoxParameters::
|
||||
ld a, $1 ; loads the value for the unused North/West choice, that was changed to say Boy/Girl
|
||||
ld [wTwoOptionMenuID], a
|
||||
coord hl, 13, 7
|
||||
ld bc, $80e
|
||||
ret
|
||||
|
||||
DisplayBoyGirlChoice::
|
||||
ld a, $14
|
||||
ld [wTextBoxID], a
|
||||
call DisplayTextBoxID
|
||||
jp LoadScreenTilesFromBuffer1
|
||||
|
||||
BoyGirlText: ; This is new so we had to add a reference to get it to compile
|
||||
text_far _BoyGirlText
|
||||
text_end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
ChoosePlayerName:
|
||||
call OakSpeechSlidePicRight
|
||||
ld de, DefaultNamesPlayer
|
||||
call DisplayIntroNameTextBox
|
||||
ld a, [wPlayerSex] ; load sex
|
||||
and a
|
||||
jr nz, .AreGirl ; Skip to girl names if you are a girl instead
|
||||
ld de, DefaultNamesPlayer
|
||||
call DisplayIntroNameTextBox
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jr z, .customName
|
||||
|
|
@ -10,6 +13,17 @@ ChoosePlayerName:
|
|||
ld de, wPlayerName
|
||||
call OakSpeechSlidePicLeft
|
||||
jr .done
|
||||
.AreGirl ; Copy of the boy naming routine, just with girl's names
|
||||
ld de, DefaultNamesGirl
|
||||
call DisplayIntroNameTextBox
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jr z, .customName
|
||||
ld hl, DefaultNamesGirlList
|
||||
call GetDefaultName
|
||||
ld de, wPlayerName
|
||||
call OakSpeechSlidePicLeft
|
||||
jr .done ; End of new Girl Names routine
|
||||
.customName
|
||||
ld hl, wPlayerName
|
||||
xor a ; NAME_PLAYER_SCREEN
|
||||
|
|
@ -22,6 +36,12 @@ ChoosePlayerName:
|
|||
call Delay3
|
||||
ld de, RedPicFront
|
||||
ld b, BANK(RedPicFront)
|
||||
ld a, [wPlayerSex] ; sex check
|
||||
and a ; yknow it feels like republicans wanting to do penis checking
|
||||
jr z, .AreBoy3
|
||||
ld de, GreenPicFront
|
||||
ld b, BANK(GreenPicFront)
|
||||
.AreBoy3
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
.done
|
||||
ld hl, YourNameIsText
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue