summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/event_constants.asm2
-rwxr-xr-xconstants/hide_show_constants.asm35
-rwxr-xr-xdata/mapObjects/ceruleanhouse1.asm8
-rw-r--r--data/map_header_banks.asm2
-rw-r--r--data/map_header_pointers.asm2
-rwxr-xr-xmain.asm7
-rwxr-xr-xscripts/ceruleanhouse1.asm99
7 files changed, 123 insertions, 32 deletions
diff --git a/constants/event_constants.asm b/constants/event_constants.asm
index 49050dd3..2d1fab45 100644
--- a/constants/event_constants.asm
+++ b/constants/event_constants.asm
@@ -168,7 +168,7 @@ const_value = 0
const EVENT_0A5 ; 0A5, (D75B, bit 5)
const EVENT_0A6 ; 0A6, (D75B, bit 6)
const EVENT_BEAT_CERULEAN_ROCKET_THIEF ; 0A7, (D75B, bit 7)
- const EVENT_0A8 ; 0A8, (D75C, bit 0)
+ const EVENT_GOT_BULBASAUR_IN_CERULEAN ; 0A8, (D75C, bit 0)
const EVENT_0A9 ; 0A9, (D75C, bit 1)
const EVENT_0AA ; 0AA, (D75C, bit 2)
const EVENT_0AB ; 0AB, (D75C, bit 3)
diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm
index 6fc52187..f41477a5 100755
--- a/constants/hide_show_constants.asm
+++ b/constants/hide_show_constants.asm
@@ -51,10 +51,6 @@ const_value = 0
const HS_TOWN_MAP ; 2A
const HS_OAKS_LAB_RIVAL ; 2B
const HS_STARTER_BALL_1 ; 2C
- const HS_STARTER_BALL_2 ; 2D
- const HS_STARTER_BALL_3 ; 2E
-
-const_value SET $2D
const HS_OAKS_LAB_OAK_1 ; 2D
const HS_POKEDEX_1 ; 2E
const HS_POKEDEX_2 ; 2F
@@ -62,22 +58,21 @@ const_value SET $2D
const HS_VIRIDIAN_GYM_GIOVANNI ; 31
const HS_VIRIDIAN_GYM_ITEM ; 32
const HS_OLD_AMBER ; 33 X
- const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 34
- const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 35 X
- const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 36 X
- const HS_POKEMONTOWER_2_RIVAL ; 37 X
- const HS_POKEMONTOWER_3_ITEM ; 38
- const HS_POKEMONTOWER_4_ITEM_1 ; 39 X
- const HS_POKEMONTOWER_4_ITEM_2 ; 3A X
- const HS_POKEMONTOWER_4_ITEM_3 ; 3B X
- const HS_POKEMONTOWER_5_ITEM ; 3C X
- const HS_POKEMONTOWER_6_ITEM_1 ; 3D X
- const HS_POKEMONTOWER_6_ITEM_2 ; 3E X
- const HS_POKEMONTOWER_7_ROCKET_1 ; 3F X
- const HS_POKEMONTOWER_7_ROCKET_2 ; 40 X
- const HS_POKEMONTOWER_7_ROCKET_3 ; 41 X
-
-const_value SET $43 ; replace the tower rockets with jessie/james
+ const HS_CERULEAN_BULBASAUR ; 34
+ const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 35 X
+ const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 36 X
+ const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 37 X
+ const HS_POKEMONTOWER_2_RIVAL ; 38
+ const HS_POKEMONTOWER_3_ITEM ; 39 X
+ const HS_POKEMONTOWER_4_ITEM_1 ; 3A X
+ const HS_POKEMONTOWER_4_ITEM_2 ; 3B X
+ const HS_POKEMONTOWER_4_ITEM_3 ; 3C X
+ const HS_POKEMONTOWER_5_ITEM ; 3D X
+ const HS_POKEMONTOWER_6_ITEM_1 ; 3E X
+ const HS_POKEMONTOWER_6_ITEM_2 ; 3F X
+ const HS_POKEMONTOWER_7_ROCKET_1 ; 40 X
+ const HS_POKEMONTOWER_7_ROCKET_2 ; 41 X
+ const HS_POKEMONTOWER_7_ROCKET_3 ; 42
const HS_POKEMONTOWER_7_MR_FUJI ; 43
const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44
const HS_CELADON_MANSION_5_GIFT ; 45
diff --git a/data/mapObjects/ceruleanhouse1.asm b/data/mapObjects/ceruleanhouse1.asm
index db0be014..aa9f66a4 100755
--- a/data/mapObjects/ceruleanhouse1.asm
+++ b/data/mapObjects/ceruleanhouse1.asm
@@ -7,9 +7,11 @@ CeruleanHouse1Object: ; 0x1d710 (size=32)
db $0 ; signs
- db $2 ; objects
- object SPRITE_OLD_MEDIUM_WOMAN, $5, $4, STAY, LEFT, $1 ; person
- object SPRITE_GAMBLER, $1, $2, STAY, NONE, $2 ; person
+ db $4 ; objects
+ object SPRITE_GIRL, $3, $1, STAY, DOWN, $1 ; person
+ object SPRITE_BULBASAUR, $4, $1, STAY, DOWN, $2 ; person
+ object SPRITE_ODDISH, $1, $4, STAY, NONE, $3 ; person
+ object SPRITE_SANDSHREW, $5, $3, STAY, LEFT, $4 ; person
; warp-to
EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2
diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm
index 1664cb08..bbcdd278 100644
--- a/data/map_header_banks.asm
+++ b/data/map_header_banks.asm
@@ -63,7 +63,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4)
db BANK(MtMoon2_h)
db BANK(MtMoon3_h)
db BANK(CeruleanHouseTrashed_h)
- db $07 ; db BANK(CeruleanHouse1_h)
+ db BANK(CeruleanHouse1_h)
db $17 ; db BANK(CeruleanPokecenter_h)
db $17 ; db BANK(CeruleanGym_h)
db $07 ; db BANK(BikeShop_h)
diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm
index 4d6a8847..9558ca6e 100644
--- a/data/map_header_pointers.asm
+++ b/data/map_header_pointers.asm
@@ -63,7 +63,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2)
dw MtMoon2_h ;id=60
dw MtMoon3_h
dw CeruleanHouseTrashed_h
- dw $4f34 ; dw CeruleanHouse1_h
+ dw CeruleanHouse1_h
dw $44f5 ; dw CeruleanPokecenter_h
dw $4577 ; dw CeruleanGym_h
dw $5038 ; dw BikeShop_h
diff --git a/main.asm b/main.asm
index 91bff12e..988add14 100755
--- a/main.asm
+++ b/main.asm
@@ -297,6 +297,7 @@ ViridianHouseBlocks:
Route2HouseBlocks:
PewterHouse1Blocks:
PewterHouse2Blocks:
+CeruleanHouse1Blocks:
INCBIN "maps/viridianhouse.blk"
SchoolBlocks:
INCBIN "maps/school.blk"
@@ -347,7 +348,11 @@ INCLUDE "data/mapObjects/pewterhouse2.asm"
INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm"
INCLUDE "scripts/ceruleanhousetrashed.asm"
INCLUDE "data/mapObjects/ceruleanhousetrashed.asm"
- dr $1cf34,$1d7ae ; map scripts
+
+INCLUDE "data/mapHeaders/ceruleanhouse1.asm"
+INCLUDE "scripts/ceruleanhouse1.asm"
+INCLUDE "data/mapObjects/ceruleanhouse1.asm"
+ dr $1d038,$1d7ae ; map scripts
INCLUDE "data/mapHeaders/diglettscaveroute2.asm"
INCLUDE "scripts/diglettscaveroute2.asm"
diff --git a/scripts/ceruleanhouse1.asm b/scripts/ceruleanhouse1.asm
index e703d830..0b9a9052 100755
--- a/scripts/ceruleanhouse1.asm
+++ b/scripts/ceruleanhouse1.asm
@@ -1,17 +1,106 @@
CeruleanHouse1Script: ; 1d6f6 (7:56f6)
- jp EnableAutoTextBoxDrawing
+ call EnableAutoTextBoxDrawing
+ ret
CeruleanHouse1TextPointers: ; 1d6f9 (7:56f9)
dw CeruleanHouse1Text1
dw CeruleanHouse1Text2
+ dw CeruleanHouse1Text3
+ dw CeruleanHouse1Text4
CeruleanHouse1Text1: ; 1d6fd (7:56fd)
- TX_FAR _CeruleanHouse1Text1
+ TX_ASM
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ CheckEvent EVENT_GOT_BULBASAUR_IN_CERULEAN
+ jr nz, .asm_1cfbf
+ ld hl, CeruleanHouse1Text_1cfc8
+ call PrintText
+ ld a, [wPikachuHappiness]
+ cp 147
+ jr c, .asm_1cfb3
+ ld hl, CeruleanHouse1Text_1cfce
+ call PrintText
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ jr nz, .asm_1cfb6
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, BULBASAUR
+ ld [wd11e], a
+ ld [wcf91], a
+ call GetMonName
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ lb bc, BULBASAUR, 10
+ call GivePokemon
+ jr nc, .asm_1cfb3
+ ld a, [wAddedToParty]
+ and a
+ call z, WaitForTextScrollButtonPress
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld hl, CeruleanHouse1Text_1cfd3
+ call PrintText
+ ld a, HS_CERULEAN_BULBASAUR
+ ld [wMissableObjectIndex], a
+ predef HideObject
+ SetEvent EVENT_GOT_BULBASAUR_IN_CERULEAN
+.asm_1cfb3
+ jp TextScriptEnd
+
+.asm_1cfb6
+ ld hl, CeruleanHouse1Text_1cfdf
+ call PrintText
+ jp TextScriptEnd
+
+.asm_1cfbf
+ ld hl, CeruleanHouse1Text_1cfd9
+ call PrintText
+ jp TextScriptEnd
+
+CeruleanHouse1Text_1cfc8:
+ TX_FAR MelanieText1
+ TX_WAIT_BUTTON
+ db "@"
+
+CeruleanHouse1Text_1cfce:
+ TX_FAR MelanieText2
+ db "@"
+
+CeruleanHouse1Text_1cfd3:
+ TX_FAR MelanieText3
+ TX_WAIT_BUTTON
+ db "@"
+
+CeruleanHouse1Text_1cfd9:
+ TX_FAR MelanieText4
+ TX_WAIT_BUTTON
+ db "@"
+
+CeruleanHouse1Text_1cfdf:
+ TX_FAR MelanieText5
+ TX_WAIT_BUTTON
db "@"
CeruleanHouse1Text2: ; 1d702 (7:5702)
+ TX_FAR MelanieBulbasaurText
+ TX_ASM
+ ld a, BULBASAUR
+ call PlayCry
+ jp TextScriptEnd
+
+CeruleanHouse1Text3: ; 1d702 (7:5702)
+ TX_FAR MelanieOddishText
+ TX_ASM
+ ld a, ODDISH
+ call PlayCry
+ jp TextScriptEnd
+
+CeruleanHouse1Text4: ; 1d702 (7:5702)
+ TX_FAR MelanieSandshrewText
TX_ASM
- ld a, $6
- ld [wWhichTrade], a
- predef DoInGameTradeDialogue
+ ld a, SANDSHREW
+ call PlayCry
jp TextScriptEnd