summaryrefslogtreecommitdiff
path: root/engine/events
diff options
context:
space:
mode:
authormid-kid <esteve.varela@gmail.com>2018-03-13 13:07:16 +0100
committermid-kid <esteve.varela@gmail.com>2018-03-13 13:21:40 +0100
commitbaa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch)
tree968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/events
parent12070ca50067d3abe36a730190f88ee43f2cace9 (diff)
Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by creating categorized subdirectories, in order to make it easier to navigate and find things. The directories created are as follows: * engine/game: Contains all "minigames", things like the unown puzzle and slot machine. * engine/gfx: Contains all handling of graphics. From loading palettes to playing animations. * engine/link: Contains all multiplayer functionality. * engine/menu: Contains all generic/misc. menus and menu code. Other, more specialized menus are in their own subdirectories (pokedex, pokegear, party menu, etc). * engine/overworld: Contains all handling of the overworld. From loading and connecting maps to wild encounters and the scripting engine. * engine/pokegear: In the same vein as engine/pokedex, except it could use some more splitting up. * engine/pokemon: Contains everything related to manipulating pokemon data. From the pokemon storage system to evolution and mail. * engine/printer: Contains everything related to printing things as well as the printer communication. * engine/title: Contains intro sequences, title screens and credits.
Diffstat (limited to 'engine/events')
-rw-r--r--engine/events/diploma.asm93
1 files changed, 93 insertions, 0 deletions
diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm
new file mode 100644
index 000000000..5d0482cc4
--- /dev/null
+++ b/engine/events/diploma.asm
@@ -0,0 +1,93 @@
+_Diploma: ; 1dd702
+ call PlaceDiplomaOnScreen
+ call WaitPressAorB_BlinkCursor
+ ret
+; 1dd709
+
+PlaceDiplomaOnScreen: ; 1dd709
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ ld hl, DiplomaGFX
+ ld de, vTiles2
+ call Decompress
+ ld hl, DiplomaPage1Tilemap
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ld de, .Player
+ hlcoord 2, 5
+ call PlaceString
+ ld de, .EmptyString
+ hlcoord 15, 5
+ call PlaceString
+ ld de, wPlayerName
+ hlcoord 9, 5
+ call PlaceString
+ ld de, .Certification
+ hlcoord 2, 8
+ call PlaceString
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call SetPalettes
+ call DelayFrame
+ ret
+; 1dd760
+
+.Player:
+ db "PLAYER@"
+
+.EmptyString:
+ db "@"
+
+.Certification:
+ db "This certifies"
+ next "that you have"
+ next "completed the"
+ next "new #DEX."
+ next "Congratulations!"
+ db "@"
+; 1dd7ae
+
+PrintDiplomaPage2: ; 1dd7ae
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $7f
+ call ByteFill
+ ld hl, DiplomaPage2Tilemap
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ld de, .GameFreak
+ hlcoord 8, 0
+ call PlaceString
+ ld de, .PlayTime
+ hlcoord 3, 15
+ call PlaceString
+ hlcoord 12, 15
+ ld de, wGameTimeHours
+ lb bc, 2, 4
+ call PrintNum
+ ld [hl], $67 ; colon
+ inc hl
+ ld de, wGameTimeMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 1dd7f0
+
+.PlayTime: db "PLAY TIME@"
+.GameFreak: db "GAME FREAK@"
+; 1dd805
+
+DiplomaGFX: ; 1dd805
+INCBIN "gfx/diploma/diploma.2bpp.lz"
+
+DiplomaPage1Tilemap: ; 1ddc4b
+INCBIN "gfx/diploma/page1.tilemap"
+
+DiplomaPage2Tilemap: ; 1dddb3
+INCBIN "gfx/diploma/page2.tilemap"