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.asm111
1 files changed, 111 insertions, 0 deletions
diff --git a/engine/menus/init_gender.asm b/engine/menus/init_gender.asm
new file mode 100644
index 000000000..8fd95bc85
--- /dev/null
+++ b/engine/menus/init_gender.asm
@@ -0,0 +1,111 @@
+InitCrystalData: ; 48000
+ 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
+; 4802f
+
+INCLUDE "mobile/mobile_12.asm"
+
+InitGender: ; 48dcb (12:4dcb)
+ 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
+; 48dfc (12:4dfc)
+
+.MenuHeader: ; 0x48dfc
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 6, 4, 12, 9
+ dw .MenuData
+ db 1 ; default option
+; 0x48e04
+
+.MenuData: ; 0x48e04
+ db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_DISABLE_B ; flags
+ db 2 ; items
+ db "Boy@"
+ db "Girl@"
+; 0x48e0f
+
+TextJump_AreYouABoyOrAreYouAGirl: ; 0x48e0f
+ ; Are you a boy? Or are you a girl?
+ text_jump Text_AreYouABoyOrAreYouAGirl
+ db "@"
+; 0x48e14
+
+InitGenderScreen: ; 48e14 (12:4e14)
+ 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: ; 48e47 (12:4e47)
+ ld hl, .Palette
+ ld de, wBGPals1
+ ld bc, 1 palettes
+ ld a, BANK(wBGPals1)
+ call FarCopyWRAM
+ farcall ApplyPals
+ ret
+; 48e5c (12:4e5c)
+
+.Palette: ; 48e5c
+INCLUDE "gfx/new_game/gender_screen.pal"
+; 48e64
+
+LoadGenderScreenLightBlueTile: ; 48e64 (12:4e64)
+ ld de, .LightBlueTile
+ ld hl, vTiles2 tile $00
+ lb bc, BANK(.LightBlueTile), 1
+ call Get2bpp
+ ret
+; 48e71 (12:4e71)
+
+.LightBlueTile: ; 48e71
+INCBIN "gfx/new_game/gender_screen.2bpp"