summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-05-31 21:05:54 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-05-31 21:05:54 -0400
commit6ddc1b23e39fbebfe7548df8aa269affa08e6255 (patch)
tree247c54c5c39c30dfd40628bf791d16b46e03d95c
parent1ecccfcf22b004c28dbc7bfc54ccfcd21dfbbf9d (diff)
First four Celadon Mansion maps
-rw-r--r--data/map_header_banks.asm8
-rw-r--r--data/map_header_pointers.asm8
-rw-r--r--engine/bank3c.asm123
-rwxr-xr-xmain.asm26
-rwxr-xr-xscripts/celadonmansion1.asm29
-rwxr-xr-xscripts/celadonmansion1_2.asm78
-rwxr-xr-xscripts/celadonmansion3.asm135
-rwxr-xr-xscripts/celadonmansion3_2.asm35
-rwxr-xr-xscripts/celadonmansion4.asm3
-rwxr-xr-xscripts/celadonmart3_2.asm38
-rw-r--r--text/maps/celadon_mansion_3f.asm2
11 files changed, 330 insertions, 155 deletions
diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm
index 4408d4dd..e727e344 100644
--- a/data/map_header_banks.asm
+++ b/data/map_header_banks.asm
@@ -128,10 +128,10 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4)
db BANK(CeladonMart4_h)
db BANK(CeladonMartRoof_h)
db BANK(CeladonMartElevator_h)
- db $12 ; db BANK(CeladonMansion1_h)
- db $12 ; db BANK(CeladonMansion2_h)
- db $12 ; db BANK(CeladonMansion3_h)
- db $12 ; db BANK(CeladonMansion4_h)
+ db BANK(CeladonMansion1_h)
+ db BANK(CeladonMansion2_h)
+ db BANK(CeladonMansion3_h)
+ db BANK(CeladonMansion4_h)
db $07 ; db BANK(CeladonMansion5_h)
db $12 ; db BANK(CeladonPokecenter_h)
db $12 ; db BANK(CeladonGym_h)
diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm
index d5af332a..66feb76f 100644
--- a/data/map_header_pointers.asm
+++ b/data/map_header_pointers.asm
@@ -128,10 +128,10 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2)
dw CeladonMart4_h
dw CeladonMartRoof_h
dw CeladonMartElevator_h
- dw $4593 ; dw CeladonMansion1_h
- dw $465a ; dw CeladonMansion2_h
- dw $46b0 ; dw CeladonMansion3_h ;id=130
- dw $4861 ; dw CeladonMansion4_h
+ dw CeladonMansion1_h
+ dw CeladonMansion2_h
+ dw CeladonMansion3_h ;id=130
+ dw CeladonMansion4_h
dw $5636 ; dw CeladonMansion5_h
dw $48af ; dw CeladonPokecenter_h
dw $4915 ; dw CeladonGym_h
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index d176511c..1e099f36 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -367,125 +367,10 @@ PikachuMovementData_f1e2b:
db $38
db $3f
-Func_f1e30
- CheckEvent EVENT_GOT_TM18
- jr nz, .asm_f1e54
- ld hl, CeladonMart3Text_f1e5b
- call PrintText
- lb bc, TM_18, 1
- call GiveItem
- jr nc, .asm_f1e4f
- SetEvent EVENT_GOT_TM18
- ld hl, CeladonMart3Text_f1e60
- jr .asm_f1e57
-
-.asm_f1e4f
- ld hl, CeladonMart3Text_f1e6b
- jr .asm_f1e57
-
-.asm_f1e54
- ld hl, CeladonMart3Text_f1e66
-.asm_f1e57
- call PrintText
- ret
-
-CeladonMart3Text_f1e5b:
- TX_FAR _TM18PreReceiveText
- db "@"
-
-CeladonMart3Text_f1e60:
- TX_FAR _ReceivedTM18Text
- TX_SFX_ITEM
- db "@"
-
-CeladonMart3Text_f1e66:
- TX_FAR _TM18ExplanationText
- db "@"
-
-CeladonMart3Text_f1e6b:
- TX_FAR _TM18NoRoomText
- db "@"
-
-Func_f1e70:
- ld a, $1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, CeladonMansion1Text_f1e96
- call PrintText
- callab IsStarterPikachuInOurParty
- ret nc
- ld hl, CeladonMansionText_f1e9c
- call PrintText
- ld a, $0
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- call Func_f1ea2
- call PrintText
- ret
-
-CeladonMansion1Text_f1e96:
- TX_FAR _CeladonMansion1Text2
- TX_WAIT_BUTTON
- db "@"
-
-CeladonMansionText_f1e9c:
- TX_FAR _CeladonMansion1Text6
- TX_BUTTON_SOUND
- db "@"
-
-Func_f1ea2:
- ld hl, PikachuHappinessThresholds_f1eb9
-.asm_f1ea5
- ld a, [hli]
- inc hl
- and a
- jr z, .asm_f1eb5
- ld b, a
- ld a, [wPikachuHappiness]
- cp b
- jr c, .asm_f1eb5
- inc hl
- inc hl
- jr .asm_f1ea5
-
-.asm_f1eb5
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-PikachuHappinessThresholds_f1eb9
- dw 51, CeladonMansion1Text_f1ed5
- dw 101, CeladonMansion1Text_f1eda
- dw 131, CeladonMansion1Text_f1edf
- dw 161, CeladonMansion1Text_f1ee4
- dw 201, CeladonMansion1Text_f1ee9
- dw 255, CeladonMansion1Text_f1eee
- dbbw 0, $ff, CeladonMansion1Text_f1eee
-
-CeladonMansion1Text_f1ed5:
- TX_FAR _CeladonMansion1Text7
- db "@"
-
-CeladonMansion1Text_f1eda:
- TX_FAR _CeladonMansion1Text8
- db "@"
-
-CeladonMansion1Text_f1edf:
- TX_FAR _CeladonMansion1Text9
- db "@"
-
-CeladonMansion1Text_f1ee4:
- TX_FAR _CeladonMansion1Text10
- db "@"
-
-CeladonMansion1Text_f1ee9:
- TX_FAR _CeladonMansion1Text11
- db "@"
-
-CeladonMansion1Text_f1eee:
- TX_FAR _CeladonMansion1Text12
- db "@"
-
- dr $f1ef3, $f218c
+INCLUDE "scripts/celadonmart3_2.asm"
+INCLUDE "scripts/celadonmansion1_2.asm"
+INCLUDE "scripts/celadonmansion3_2.asm"
+ dr $f1f23, $f218c
INCLUDE "scripts/mtmoonpokecenter2.asm"
diff --git a/main.asm b/main.asm
index e59996c5..fc0ddd8b 100755
--- a/main.asm
+++ b/main.asm
@@ -904,7 +904,31 @@ INCLUDE "scripts/celadonmartelevator.asm"
INCLUDE "data/mapObjects/celadonmartelevator.asm"
CeladonMartElevatorBlocks:
INCBIN "maps/celadonmartelevator.blk"
- dr $48593,$492a9
+
+INCLUDE "data/mapHeaders/celadonmansion1.asm"
+INCLUDE "scripts/celadonmansion1.asm"
+INCLUDE "data/mapObjects/celadonmansion1.asm"
+CeladonMansion1Blocks:
+INCBIN "maps/celadonmansion1.blk"
+
+INCLUDE "data/mapHeaders/celadonmansion2.asm"
+INCLUDE "scripts/celadonmansion2.asm"
+INCLUDE "data/mapObjects/celadonmansion2.asm"
+CeladonMansion2Blocks:
+INCBIN "maps/celadonmansion2.blk"
+
+INCLUDE "data/mapHeaders/celadonmansion3.asm"
+INCLUDE "scripts/celadonmansion3.asm"
+INCLUDE "data/mapObjects/celadonmansion3.asm"
+CeladonMansion3Blocks:
+INCBIN "maps/celadonmansion3.blk"
+
+INCLUDE "data/mapHeaders/celadonmansion4.asm"
+INCLUDE "scripts/celadonmansion4.asm"
+INCLUDE "data/mapObjects/celadonmansion4.asm"
+CeladonMansion4Blocks:
+INCBIN "maps/celadonmansion4.blk"
+ dr $488af,$492a9
INCLUDE "data/mapHeaders/mtmoonpokecenter.asm"
INCLUDE "scripts/mtmoonpokecenter.asm"
diff --git a/scripts/celadonmansion1.asm b/scripts/celadonmansion1.asm
index 857c2e42..b29ee196 100755
--- a/scripts/celadonmansion1.asm
+++ b/scripts/celadonmansion1.asm
@@ -1,5 +1,6 @@
CeladonMansion1Script: ; 48694 (12:4694)
- jp EnableAutoTextBoxDrawing
+ call EnableAutoTextBoxDrawing
+ ret
CeladonMansion1TextPointers: ; 48697 (12:4697)
dw CeladonMansion1Text1
@@ -8,31 +9,39 @@ CeladonMansion1TextPointers: ; 48697 (12:4697)
dw CeladonMansion1Text4
dw CeladonMansion1Text5
-CeladonMansion1_486a1: ; 486a1 (12:46a1)
- call PlayCry
- jp TextScriptEnd
-
CeladonMansion1Text1: ; 486a7 (12:46a7)
TX_FAR _CeladonMansion1Text1
TX_ASM
ld a, MEOWTH
- jp CeladonMansion1_486a1
+ call PlayCry
+ jp TextScriptEnd
CeladonMansion1Text2: ; 486b1 (12:46b1)
- TX_FAR _CeladonMansion1Text2
- db "@"
+ TX_ASM
+ callba Func_f1e70
+ ld a, [wPikachuHappiness]
+ cp 251
+ jr c, .asm_485d9
+ ld c, 50
+ call DelayFrames
+ ldpikacry e, PikachuCry23
+ callab PlayPikachuSoundClip
+.asm_485d9
+ jp TextScriptEnd
CeladonMansion1Text3: ; 486b6 (12:46b6)
TX_FAR _CeladonMansion1Text3
TX_ASM
ld a, CLEFAIRY
- jp CeladonMansion1_486a1
+ call PlayCry
+ jp TextScriptEnd
CeladonMansion1Text4: ; 486c0 (12:46c0)
TX_FAR _CeladonMansion1Text4
TX_ASM
ld a, NIDORAN_F
- jp CeladonMansion1_486a1
+ call PlayCry
+ jp TextScriptEnd
CeladonMansion1Text5: ; 486ca (12:46ca)
TX_FAR _CeladonMansion1Text5
diff --git a/scripts/celadonmansion1_2.asm b/scripts/celadonmansion1_2.asm
new file mode 100755
index 00000000..0e1c2389
--- /dev/null
+++ b/scripts/celadonmansion1_2.asm
@@ -0,0 +1,78 @@
+Func_f1e70:
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld hl, CeladonMansion1Text_f1e96
+ call PrintText
+ callab IsStarterPikachuInOurParty
+ ret nc
+ ld hl, CeladonMansionText_f1e9c
+ call PrintText
+ ld a, $0
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ call Func_f1ea2
+ call PrintText
+ ret
+
+CeladonMansion1Text_f1e96:
+ TX_FAR _CeladonMansion1Text2
+ TX_WAIT_BUTTON
+ db "@"
+
+CeladonMansionText_f1e9c:
+ TX_FAR _CeladonMansion1Text6
+ TX_BUTTON_SOUND
+ db "@"
+
+Func_f1ea2:
+ ld hl, PikachuHappinessThresholds_f1eb9
+.asm_f1ea5
+ ld a, [hli]
+ inc hl
+ and a
+ jr z, .asm_f1eb5
+ ld b, a
+ ld a, [wPikachuHappiness]
+ cp b
+ jr c, .asm_f1eb5
+ inc hl
+ inc hl
+ jr .asm_f1ea5
+
+.asm_f1eb5
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+PikachuHappinessThresholds_f1eb9
+ dw 51, CeladonMansion1Text_f1ed5
+ dw 101, CeladonMansion1Text_f1eda
+ dw 131, CeladonMansion1Text_f1edf
+ dw 161, CeladonMansion1Text_f1ee4
+ dw 201, CeladonMansion1Text_f1ee9
+ dw 255, CeladonMansion1Text_f1eee
+ dbbw 0, $ff, CeladonMansion1Text_f1eee
+
+CeladonMansion1Text_f1ed5:
+ TX_FAR _CeladonMansion1Text7
+ db "@"
+
+CeladonMansion1Text_f1eda:
+ TX_FAR _CeladonMansion1Text8
+ db "@"
+
+CeladonMansion1Text_f1edf:
+ TX_FAR _CeladonMansion1Text9
+ db "@"
+
+CeladonMansion1Text_f1ee4:
+ TX_FAR _CeladonMansion1Text10
+ db "@"
+
+CeladonMansion1Text_f1ee9:
+ TX_FAR _CeladonMansion1Text11
+ db "@"
+
+CeladonMansion1Text_f1eee:
+ TX_FAR _CeladonMansion1Text12
+ db "@"
diff --git a/scripts/celadonmansion3.asm b/scripts/celadonmansion3.asm
index 11a8646d..191d9304 100755
--- a/scripts/celadonmansion3.asm
+++ b/scripts/celadonmansion3.asm
@@ -1,5 +1,13 @@
CeladonMansion3Script: ; 48790 (12:4790)
- jp EnableAutoTextBoxDrawing
+ call EnableAutoTextBoxDrawing
+ ret
+
+CeladonMansion3_PokedexCount:
+ ld hl, wPokedexOwned
+ ld b, wPokedexOwnedEnd - wPokedexOwned
+ call CountSetBits
+ ld a, [wNumSetBits]
+ ret
CeladonMansion3TextPointers: ; 48793 (12:4793)
dw ProgrammerText
@@ -12,31 +20,120 @@ CeladonMansion3TextPointers: ; 48793 (12:4793)
dw GameFreakSignText
ProgrammerText: ; 487a3 (12:47a3)
+ TX_ASM
+ call CeladonMansion3_PokedexCount
+ cp 150
+ ld hl, CeladonMansion3Text_486f5
+ jr nc, .print
+ ld hl, CeladonMansion3Text_486f0
+.print
+ call PrintText
+ jp TextScriptEnd
+
+CeladonMansion3Text_486f0:
TX_FAR _ProgrammerText
db "@"
+CeladonMansion3Text_486f5:
+ TX_FAR _ProgrammerText2
+ db "@"
+
GraphicArtistText: ; 487a8 (12:47a8)
+ TX_ASM
+ call CeladonMansion3_PokedexCount
+ cp 150
+ jr nc, .completed
+ ld hl, CeladonMansion3Text_48757
+ jr .print
+
+.completed
+ ld hl, CeladonMansion3Text_4875c
+ call PrintText
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ jr nz, .declined_print
+ call SaveScreenTilesToBuffer2
+ xor a
+ ld [wUpdateSpritesEnabled], a
+ ld hl, wd730
+ set 6, [hl]
+ callab Func_e8cb1
+ ld hl, wd730
+ res 6, [hl]
+ call GBPalWhiteOutWithDelay3
+ call ReloadTilesetTilePatterns
+ call RestoreScreenTilesAndReloadTilePatterns
+ call LoadScreenTilesFromBuffer2
+ call Delay3
+ call GBPalNormal
+ ld hl, CeladonMansion3Text_4876b
+ ld a, [$ffdb]
+ and a
+ jr nz, .print
+ ld hl, CeladonMansion3Text_48766
+ jr .print
+
+.declined_print
+ ld hl, CeladonMansion3Text_48761
+.print
+ call PrintText
+ jp TextScriptEnd
+
+CeladonMansion3Text_48757:
TX_FAR _GraphicArtistText
db "@"
+CeladonMansion3Text_4875c:
+ TX_FAR _GraphicArtistText2
+ db "@"
+
+CeladonMansion3Text_48761:
+ TX_FAR _GraphicArtistText3
+ db "@"
+
+CeladonMansion3Text_48766:
+ TX_FAR _GraphicArtistText4
+ db "@"
+
+CeladonMansion3Text_4876b:
+ TX_FAR _GraphicArtistText5
+ db "@"
+
WriterText: ; 487ad (12:47ad)
+ TX_ASM
+ call CeladonMansion3_PokedexCount
+ cp 150
+ ld hl, CeladonMansion3Text_48789
+ jr nc, .print
+ ld hl, CeladonMansion3Text_48784
+.print
+ call PrintText
+ jp TextScriptEnd
+
+CeladonMansion3Text_48784:
TX_FAR _WriterText
db "@"
+CeladonMansion3Text_48789:
+ TX_FAR _WriterText2
+ db "@"
+
DirectorText: ; 487b2 (12:47b2)
TX_ASM
-
+ call CeladonMansion3_PokedexCount
; check pokédex
- ld hl, wPokedexOwned
- ld b, wPokedexOwnedEnd - wPokedexOwned
- call CountSetBits
- ld a, [wNumSetBits]
cp 150
jr nc, .CompletedDex
ld hl, .GameDesigner
jr .done
.CompletedDex
ld hl, .CompletedDexText
+ call PrintText
+ call Delay3
+ xor a
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld hl, .UnlockedDiplomaPrinting
.done
call PrintText
jp TextScriptEnd
@@ -47,25 +144,33 @@ DirectorText: ; 487b2 (12:47b2)
.CompletedDexText
TX_FAR _CompletedDexText
- db $6
+ TX_BUTTON_SOUND
TX_ASM
callab DisplayDiploma
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
jp TextScriptEnd
-GameFreakPCText1: ; 487eb (12:47eb)
- TX_FAR _CeladonMansion3Text5
+.UnlockedDiplomaPrinting
+ TX_FAR _CompletedDexText2
db "@"
+GameFreakPCText1: ; 487eb (12:47eb)
+ TX_ASM
+ callba Func_f1ef3
+ jp TextScriptEnd
+
GameFreakPCText2: ; 487f0 (12:47f0)
- TX_FAR _CeladonMansion3Text6
- db "@"
+ TX_ASM
+ callba Func_f1eff
+ jp TextScriptEnd
GameFreakPCText3: ; 487f5 (12:47f5)
- TX_FAR _CeladonMansion3Text7
- db "@"
+ TX_ASM
+ callba Func_f1f0b
+ jp TextScriptEnd
GameFreakSignText: ; 487fa (12:47fa)
- TX_FAR _CeladonMansion3Text8
- db "@"
+ TX_ASM
+ callba Func_f1f17
+ jp TextScriptEnd
diff --git a/scripts/celadonmansion3_2.asm b/scripts/celadonmansion3_2.asm
new file mode 100755
index 00000000..2d5069d1
--- /dev/null
+++ b/scripts/celadonmansion3_2.asm
@@ -0,0 +1,35 @@
+Func_f1ef3:
+ ld hl, CeladonMansion3Text_f1efa
+ call PrintText
+ ret
+
+CeladonMansion3Text_f1efa: ; 487eb (12:47eb)
+ TX_FAR _CeladonMansion3Text5
+ db "@"
+
+Func_f1eff:
+ ld hl, CeladonMansion3Text_f1f06
+ call PrintText
+ ret
+
+CeladonMansion3Text_f1f06: ; 487f0 (12:47f0)
+ TX_FAR _CeladonMansion3Text6
+ db "@"
+
+Func_f1f0b:
+ ld hl, CeladonMansion3Text_f1f12
+ call PrintText
+ ret
+
+CeladonMansion3Text_f1f12: ; 487f5 (12:47f5)
+ TX_FAR _CeladonMansion3Text7
+ db "@"
+
+Func_f1f17:
+ ld hl, CeladonMansion3Text_f1f1e
+ call PrintText
+ ret
+
+CeladonMansion3Text_f1f1e: ; 487fa (12:47fa)
+ TX_FAR _CeladonMansion3Text8
+ db "@"
diff --git a/scripts/celadonmansion4.asm b/scripts/celadonmansion4.asm
index f9045bcd..475baff3 100755
--- a/scripts/celadonmansion4.asm
+++ b/scripts/celadonmansion4.asm
@@ -1,5 +1,6 @@
CeladonMansion4Script: ; 4886b (12:486b)
- jp EnableAutoTextBoxDrawing
+ call EnableAutoTextBoxDrawing
+ ret
CeladonMansion4TextPointers: ; 4886e (12:486e)
dw CeladonMansion4Text1
diff --git a/scripts/celadonmart3_2.asm b/scripts/celadonmart3_2.asm
new file mode 100755
index 00000000..1c9f0db1
--- /dev/null
+++ b/scripts/celadonmart3_2.asm
@@ -0,0 +1,38 @@
+Func_f1e30
+ CheckEvent EVENT_GOT_TM18
+ jr nz, .asm_f1e54
+ ld hl, CeladonMart3Text_f1e5b
+ call PrintText
+ lb bc, TM_18, 1
+ call GiveItem
+ jr nc, .asm_f1e4f
+ SetEvent EVENT_GOT_TM18
+ ld hl, CeladonMart3Text_f1e60
+ jr .asm_f1e57
+
+.asm_f1e4f
+ ld hl, CeladonMart3Text_f1e6b
+ jr .asm_f1e57
+
+.asm_f1e54
+ ld hl, CeladonMart3Text_f1e66
+.asm_f1e57
+ call PrintText
+ ret
+
+CeladonMart3Text_f1e5b:
+ TX_FAR _TM18PreReceiveText
+ db "@"
+
+CeladonMart3Text_f1e60:
+ TX_FAR _ReceivedTM18Text
+ TX_SFX_ITEM
+ db "@"
+
+CeladonMart3Text_f1e66:
+ TX_FAR _TM18ExplanationText
+ db "@"
+
+CeladonMart3Text_f1e6b:
+ TX_FAR _TM18NoRoomText
+ db "@"
diff --git a/text/maps/celadon_mansion_3f.asm b/text/maps/celadon_mansion_3f.asm
index 03e3831c..d4cc4caa 100644
--- a/text/maps/celadon_mansion_3f.asm
+++ b/text/maps/celadon_mansion_3f.asm
@@ -56,7 +56,7 @@ _WriterText::
line "I like her!"
done
-_WriteText2::
+_WriterText2::
text "I wrote the story!"
para "It's great you"