summaryrefslogtreecommitdiff
path: root/engine/menus/init_gender.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/menus/init_gender.asm')
-rw-r--r--engine/menus/init_gender.asm103
1 files changed, 103 insertions, 0 deletions
diff --git a/engine/menus/init_gender.asm b/engine/menus/init_gender.asm
new file mode 100644
index 000000000..21871d0ab
--- /dev/null
+++ b/engine/menus/init_gender.asm
@@ -0,0 +1,103 @@
+InitCrystalData:
+ ld a, $1
+ ld [wd474], a
+ xor a
+ ld [wd473], a
+ ld [wPlayerGender], a
+ ld [wd475], a
+ ld [wd476], a
+ ld [wd477], a
+ ld [wd478], a
+ ld [wd002], a
+ ld [wd003], a
+ ; could have done "ld a, [wd479] \ and %11111100", saved four operations
+ ld a, [wd479]
+ res 0, a
+ ld [wd479], a
+ ld a, [wd479]
+ res 1, a
+ ld [wd479], a
+ ret
+
+INCLUDE "mobile/mobile_12.asm"
+
+InitGender:
+ call InitGenderScreen
+ call LoadGenderScreenPal
+ call LoadGenderScreenLightBlueTile
+ call WaitBGMap2
+ call SetPalettes
+ ld hl, TextJump_AreYouABoyOrAreYouAGirl
+ call PrintText
+ ld hl, .MenuHeader
+ call LoadMenuHeader
+ call WaitBGMap2
+ call VerticalMenu
+ call CloseWindow
+ ld a, [wMenuCursorY]
+ dec a
+ ld [wPlayerGender], a
+ ld c, 10
+ call DelayFrames
+ ret
+
+.MenuHeader:
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 6, 4, 12, 9
+ dw .MenuData
+ db 1 ; default option
+
+.MenuData:
+ db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_DISABLE_B ; flags
+ db 2 ; items
+ db "Boy@"
+ db "Girl@"
+
+TextJump_AreYouABoyOrAreYouAGirl:
+ ; Are you a boy? Or are you a girl?
+ text_jump Text_AreYouABoyOrAreYouAGirl
+ db "@"
+
+InitGenderScreen:
+ ld a, $10
+ ld [wMusicFade], a
+ ld a, MUSIC_NONE
+ ld [wMusicFadeID], a
+ ld a, $0
+ ld [wMusicFadeID + 1], a
+ ld c, 8
+ call DelayFrames
+ call ClearBGPalettes
+ call InitCrystalData
+ call LoadFontsExtra
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, $0
+ call ByteFill
+ hlcoord 0, 0, wAttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ret
+
+LoadGenderScreenPal:
+ ld hl, .Palette
+ ld de, wBGPals1
+ ld bc, 1 palettes
+ ld a, BANK(wBGPals1)
+ call FarCopyWRAM
+ farcall ApplyPals
+ ret
+
+.Palette:
+INCLUDE "gfx/new_game/gender_screen.pal"
+
+LoadGenderScreenLightBlueTile:
+ ld de, .LightBlueTile
+ ld hl, vTiles2 tile $00
+ lb bc, BANK(.LightBlueTile), 1
+ call Get2bpp
+ ret
+
+.LightBlueTile:
+INCBIN "gfx/new_game/gender_screen.2bpp"