mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-20 06:08:57 +13:00
Enby YES
internally kind of sloppy, filenames refer to Pink as a few different things and none of them are by their final name lol Haven't managed to get this to build the debug rom? Probably not a big deal, though you have to specifically run "make kep" instead of just "make"
This commit is contained in:
parent
9707c2d7cb
commit
6726f5fec1
31 changed files with 256 additions and 63 deletions
|
|
@ -6543,12 +6543,18 @@ LoadPlayerBackPic:
|
|||
ld a, [wPlayerSex] ; do you think a republican will get off to this commit
|
||||
and a
|
||||
jr z, .RedBack
|
||||
cp a, 2
|
||||
jr z, .EnbyBack
|
||||
ld de, GreenPicBack
|
||||
ld a, BANK(GreenPicBack) ; Load female back sprite
|
||||
jr .next
|
||||
.RedBack
|
||||
ld de, RedPicBack ; Load default Red back sprite
|
||||
ld a, BANK(RedPicBack)
|
||||
jr .next
|
||||
.EnbyBack
|
||||
ld de, TealPicBack ; Load teal back sprite
|
||||
ld a, BANK(TealPicBack)
|
||||
.next
|
||||
ASSERT BANK(GreenPicBack) == BANK(OldManPicBack) ; These two ASSERTs make sure to cover
|
||||
ASSERT BANK(RedPicBack) == BANK(OldManPicBack) ; both sprite cases
|
||||
|
|
|
|||
|
|
@ -519,6 +519,10 @@ DrawTrainerInfo:
|
|||
ld a, [wPlayerSex] ; guess what it's genital inspection time
|
||||
and a
|
||||
jr z, .AreBoy
|
||||
ld de, EnbyPicFront
|
||||
lb bc, BANK(EnbyPicFront), $01
|
||||
cp a, 2
|
||||
jr z, .AreBoy ; I'm not updating these names. I'm lazy. Also did you know this was changed to wPlayerGender in one of the other tutorials?
|
||||
ld de, GreenPicFront
|
||||
lb bc, BANK(GreenPicFront), $01
|
||||
.AreBoy
|
||||
|
|
|
|||
|
|
@ -188,10 +188,16 @@ HoFLoadPlayerPics:
|
|||
jr nz, .GirlStuff1
|
||||
ld de, RedPicFront
|
||||
ld a, BANK(RedPicFront)
|
||||
jr .Routine ; skip the girl stuff and go to main routine
|
||||
jr .Routine ; skip the girl stuff and go to main routine
|
||||
.GirlStuff1
|
||||
cp a, 2
|
||||
jr z, .TealStuff1
|
||||
ld de, GreenPicFront
|
||||
ld a, BANK(GreenPicFront)
|
||||
jr .Routine ; skip the girl stuff and go to main routine
|
||||
.TealStuff1
|
||||
ld de, EnbyPicFront
|
||||
ld a, BANK(EnbyPicFront)
|
||||
.Routine ; resume original routine
|
||||
call UncompressSpriteFromDE
|
||||
ld hl, sSpriteBuffer1
|
||||
|
|
@ -207,8 +213,14 @@ HoFLoadPlayerPics:
|
|||
ld a, BANK(RedPicBack)
|
||||
jr .routine2 ; skip the girl stuff and continue original routine if guy
|
||||
.GirlStuff2
|
||||
cp a, 2
|
||||
jr z, .TealStuff2
|
||||
ld de, GreenPicBack
|
||||
ld a, BANK(GreenPicBack)
|
||||
jr .routine2
|
||||
.TealStuff2
|
||||
ld de, TealPicBack
|
||||
ld a, BANK(TealPicBack)
|
||||
.routine2 ; original routine
|
||||
call UncompressSpriteFromDE
|
||||
predef ScaleSpriteByTwo
|
||||
|
|
|
|||
|
|
@ -277,9 +277,9 @@ CopyTileIDsFromList_ZeroBaseTileID:
|
|||
|
||||
PlayMoveSoundB:
|
||||
; unused
|
||||
predef GetMoveSoundB
|
||||
ld a, b
|
||||
jp PlaySound
|
||||
; predef GetMoveSoundB
|
||||
; ld a, b
|
||||
; jp PlaySound
|
||||
|
||||
LoadIntroGraphics:
|
||||
ld hl, FightIntroBackMon
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ OakSpeech:
|
|||
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
|
||||
ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl, 02 for enby
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
|
||||
|
|
@ -80,6 +80,10 @@ OakSpeech:
|
|||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen0
|
||||
ld de, EnbyPicFront
|
||||
lb bc, BANK(EnbyPicFront), $00
|
||||
cp a, 2
|
||||
jr z, .NotGreen0
|
||||
ld de, GreenPicFront
|
||||
lb bc, BANK(GreenPicFront), $00
|
||||
.NotGreen0
|
||||
|
|
@ -97,7 +101,9 @@ OakSpeech:
|
|||
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
|
||||
cp a, 2
|
||||
jr z, .Nidoreign
|
||||
; jr nz, .Nidorina
|
||||
.Nidorina
|
||||
ld a, NIDORINA
|
||||
ld [wd0b5], a
|
||||
|
|
@ -117,6 +123,16 @@ OakSpeech:
|
|||
call LoadFlippedFrontSpriteByMonIndex
|
||||
call MovePicLeft
|
||||
ld hl, OakSpeechText2Red
|
||||
jr .cont
|
||||
.Nidoreign
|
||||
ld a, NIDOREIGN
|
||||
ld [wd0b5], a
|
||||
ld [wcf91], a
|
||||
call GetMonHeader
|
||||
hlcoord 6, 4
|
||||
call LoadFlippedFrontSpriteByMonIndex
|
||||
call MovePicLeft
|
||||
ld hl, OakSpeechText2Enby
|
||||
|
||||
.cont
|
||||
call PrintText
|
||||
|
|
@ -124,12 +140,19 @@ OakSpeech:
|
|||
call ClearScreen
|
||||
ld de, RedPicFront
|
||||
lb bc, BANK(RedPicFront), $00
|
||||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen1
|
||||
ld a, [wPlayerSex] ; load gender
|
||||
and a ; check gender - and a is equivalent to `cp a, 0` (but faster)
|
||||
; if a=0->gender=male, ergo jump to the vanilla part of the code
|
||||
jr z, .ContinueWithOakIntro1
|
||||
cp a, 2 ; check gender: if a=2->gender=enby, jump to the yellow subroutine, otherwise continue below
|
||||
jp z, .LoadEnbyPicFront1
|
||||
ld de, GreenPicFront
|
||||
lb bc, BANK(GreenPicFront), $00
|
||||
.NotGreen1:
|
||||
jr .ContinueWithOakIntro1
|
||||
.LoadEnbyPicFront1
|
||||
ld de, EnbyPicFront
|
||||
lb bc, BANK(EnbyPicFront), $00
|
||||
.ContinueWithOakIntro1:
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call MovePicLeft
|
||||
ld hl, IntroducePlayerText
|
||||
|
|
@ -152,6 +175,10 @@ OakSpeech:
|
|||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen2
|
||||
ld de, EnbyPicFront
|
||||
lb bc, BANK(EnbyPicFront), $00
|
||||
cp a, 2
|
||||
jr z, .NotGreen2
|
||||
ld de, GreenPicFront
|
||||
lb bc, Bank(GreenPicFront), $00
|
||||
.NotGreen2:
|
||||
|
|
@ -178,6 +205,10 @@ OakSpeech:
|
|||
ld a, [wPlayerSex] ; check sex
|
||||
and a ; check sex
|
||||
jr z, .NotGreen3
|
||||
ld de, TealSprite
|
||||
lb bc, BANK(TealSprite), $0C
|
||||
cp a, 2
|
||||
jr z, .NotGreen3
|
||||
ld de,GreenSprite
|
||||
lb bc, BANK(GreenSprite), $0C
|
||||
.NotGreen3:
|
||||
|
|
@ -232,6 +263,11 @@ OakSpeechText2Green:
|
|||
sound_cry_nidorina
|
||||
text_far _OakSpeechText2B
|
||||
text_end
|
||||
OakSpeechText2Enby:
|
||||
text_far _OakSpeechText2A
|
||||
sound_cry_nidoreign
|
||||
text_far _OakSpeechText2B
|
||||
text_end
|
||||
IntroducePlayerText:
|
||||
text_far _IntroducePlayerText
|
||||
text_end
|
||||
|
|
@ -305,23 +341,40 @@ IntroDisplayPicCenteredOrUpperRight:
|
|||
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, 12, 7
|
||||
ld bc, $80d
|
||||
ret
|
||||
|
||||
DisplayBoyGirlChoice::
|
||||
ld a, $14
|
||||
ld [wTextBoxID], a
|
||||
call DisplayTextBoxID
|
||||
jp LoadScreenTilesFromBuffer1
|
||||
BoyGirlChoice::
|
||||
call SaveScreenTilesToBuffer1
|
||||
jr DisplayBoyGirlNoChoice
|
||||
|
||||
DisplayBoyGirlNoChoice::
|
||||
ld a, BOY_GIRL_NO
|
||||
ld [wTextBoxID], a
|
||||
call DisplayTextBoxID
|
||||
ld hl, wTopMenuItemY
|
||||
ld a, 7
|
||||
ld [hli], a ; top menu item Y
|
||||
ld a, 13
|
||||
ld [hli], a ; top menu item X
|
||||
xor a
|
||||
ld [hli], a ; current menu item ID
|
||||
inc hl
|
||||
ld a, $2
|
||||
ld [hli], a ; wMaxMenuItem
|
||||
; ld a, B_BUTTON | A_BUTTON
|
||||
ld a, A_BUTTON
|
||||
ld [hli], a ; wMenuWatchedKeys
|
||||
xor a
|
||||
ld [hl], a ; wLastMenuItem
|
||||
call HandleMenuInput
|
||||
; bit BIT_B_BUTTON, a
|
||||
; jr nz, .defaultOption ; if B was pressed, assign enby
|
||||
; A was pressed
|
||||
call PlaceUnfilledArrowMenuCursor
|
||||
ld a, [wCurrentMenuItem]
|
||||
jp LoadScreenTilesFromBuffer1
|
||||
;.defaultOption
|
||||
; ld a, $02
|
||||
; ld [wCurrentMenuItem], a
|
||||
; jp LoadScreenTilesFromBuffer1
|
||||
|
||||
BoyGirlText: ; This is new so we had to add a reference to get it to compile
|
||||
text_far _BoyGirlText
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
ChoosePlayerName:
|
||||
call OakSpeechSlidePicRight
|
||||
ld a, [wPlayerSex] ; load sex
|
||||
cp a, 2
|
||||
jr z, .AreEnby ; Skip to enby names if you are enby instead
|
||||
and a
|
||||
jr nz, .AreGirl ; Skip to girl names if you are a girl instead
|
||||
ld de, DefaultNamesPlayer
|
||||
|
|
@ -24,6 +26,17 @@ ChoosePlayerName:
|
|||
ld de, wPlayerName
|
||||
call OakSpeechSlidePicLeft
|
||||
jr .done ; End of new Girl Names routine
|
||||
.AreEnby ; Copy of the boy naming routine, just with enby's names
|
||||
ld de, DefaultNamesEnby
|
||||
call DisplayIntroNameTextBox
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jr z, .customName
|
||||
ld hl, DefaultNamesEnbyList
|
||||
call GetDefaultName
|
||||
ld de, wPlayerName
|
||||
call OakSpeechSlidePicLeft
|
||||
jr .done ; End of new Enby Names routine
|
||||
.customName
|
||||
ld hl, wPlayerName
|
||||
xor a ; NAME_PLAYER_SCREEN
|
||||
|
|
@ -39,6 +52,10 @@ ChoosePlayerName:
|
|||
ld a, [wPlayerSex] ; sex check
|
||||
and a ; yknow it feels like republicans wanting to do penis checking
|
||||
jr z, .AreBoy3
|
||||
ld de, EnbyPicFront
|
||||
ld b, BANK(EnbyPicFront)
|
||||
cp a, 2
|
||||
jr z, .AreBoy3
|
||||
ld de, GreenPicFront
|
||||
ld b, BANK(GreenPicFront)
|
||||
.AreBoy3
|
||||
|
|
|
|||
|
|
@ -93,10 +93,17 @@ DisplayTitleScreen:
|
|||
jr nz, .pokemonLogoLastTileRowLoop
|
||||
call Random
|
||||
ldh a, [hRandomAdd]
|
||||
cp 129
|
||||
cp 86
|
||||
jr c, .male
|
||||
call Random
|
||||
ldh a, [hRandomAdd]
|
||||
cp 129
|
||||
jr c, .nb
|
||||
call DrawFPlayerCharacter
|
||||
jr .playerskip
|
||||
.nb
|
||||
call DrawNBPlayerCharacter
|
||||
jr .playerskip
|
||||
.male
|
||||
call DrawPlayerCharacter
|
||||
.playerskip
|
||||
|
|
@ -398,6 +405,43 @@ DrawFPlayerCharacter:
|
|||
dec b
|
||||
jr nz, .loop2
|
||||
ret
|
||||
|
||||
DrawNBPlayerCharacter:
|
||||
ld hl, NBPlayerCharacterTitleGraphics
|
||||
ld de, vSprites
|
||||
ld bc, NBPlayerCharacterTitleGraphicsEnd - NBPlayerCharacterTitleGraphics
|
||||
ld a, BANK(NBPlayerCharacterTitleGraphics)
|
||||
call FarCopyData2
|
||||
call ClearSprites
|
||||
xor a
|
||||
ld [wNBPlayerCharacterOAMTile], a
|
||||
ld hl, wShadowOAM
|
||||
lb de, $60, $5a
|
||||
ld b, 7
|
||||
.loop3
|
||||
push de
|
||||
ld c, 5
|
||||
.innerLoop3
|
||||
ld a, d
|
||||
ld [hli], a ; Y
|
||||
ld a, e
|
||||
ld [hli], a ; X
|
||||
add 8
|
||||
ld e, a
|
||||
ld a, [wNBPlayerCharacterOAMTile]
|
||||
ld [hli], a ; tile
|
||||
inc a
|
||||
ld [wNBPlayerCharacterOAMTile], a
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .innerLoop3
|
||||
pop de
|
||||
ld a, 8
|
||||
add d
|
||||
ld d, a
|
||||
dec b
|
||||
jr nz, .loop3
|
||||
ret
|
||||
|
||||
ClearBothBGMaps:
|
||||
ld hl, vBGMap0
|
||||
|
|
|
|||
|
|
@ -389,6 +389,8 @@ FishingAnim:
|
|||
ld a, [wPlayerSex] ; sex check
|
||||
and a ; sex check
|
||||
jr z, .BoySpriteLoad
|
||||
cp a, 2
|
||||
jr z, .EnbySpriteLoad
|
||||
ld de, GreenSprite
|
||||
ld hl, vNPCSprites
|
||||
ld bc, (BANK(GreenSprite) << 8) + $0c
|
||||
|
|
@ -397,17 +399,28 @@ FishingAnim:
|
|||
ld de, RedSprite
|
||||
ld hl, vNPCSprites
|
||||
lb bc, BANK(RedSprite), $c
|
||||
jr .KeepLoadingSpriteStuff
|
||||
.EnbySpriteLoad
|
||||
ld de, TealSprite
|
||||
ld hl, vNPCSprites
|
||||
lb bc, BANK(TealSprite), $c
|
||||
.KeepLoadingSpriteStuff
|
||||
call CopyVideoData
|
||||
ld a, [wPlayerSex] ; ; sex check
|
||||
and a ; ; sex check seriously i feel like a republican here
|
||||
jr z, .BoyTiles ; skip loading Green's stuff if you're Red
|
||||
cp a, 2
|
||||
jr z, .EnbyTiles
|
||||
ld a, $4
|
||||
ld hl, GreenFishingTiles
|
||||
jr .ContinueRoutine ; go back to main routine after loading Green's stuff
|
||||
.BoyTiles ; alternately, load Red's stuff
|
||||
ld a, $4
|
||||
ld hl, RedFishingTiles
|
||||
jr .ContinueRoutine ; go back to main routine after loading Red's stuff
|
||||
.EnbyTiles ; alternately, load Teal's stuff
|
||||
ld a, $4
|
||||
ld hl, TealFishingTiles
|
||||
.ContinueRoutine
|
||||
call LoadAnimSpriteGfx
|
||||
ld a, [wSpritePlayerStateData1ImageIndex]
|
||||
|
|
@ -516,6 +529,12 @@ GreenFishingTiles:
|
|||
fishing_gfx GreenFishingTilesBack, 2, $06
|
||||
fishing_gfx GreenFishingTilesSide, 2, $0a
|
||||
fishing_gfx RedFishingRodTiles, 3, $fd
|
||||
|
||||
TealFishingTiles:
|
||||
fishing_gfx TealFishingTilesFront, 2, $02
|
||||
fishing_gfx TealFishingTilesBack, 2, $06
|
||||
fishing_gfx TealFishingTilesSide, 2, $0a
|
||||
fishing_gfx RedFishingRodTiles, 3, $fd
|
||||
|
||||
_HandleMidJump::
|
||||
ld a, [wPlayerJumpingYScreenCoordsIndex]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue