diff options
-rw-r--r-- | data/map_header_banks.asm | 8 | ||||
-rw-r--r-- | data/map_header_pointers.asm | 8 | ||||
-rwxr-xr-x | engine/pikachu_pic_animation.asm | 16 | ||||
-rwxr-xr-x | main.asm | 33 | ||||
-rwxr-xr-x | scripts/billshouse.asm | 250 | ||||
-rwxr-xr-x | scripts/route11gateupstairs.asm | 2 |
6 files changed, 206 insertions, 111 deletions
diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 40cd151f..87a99939 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -84,11 +84,11 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(RockTunnelPokecenter_h) db BANK(RockTunnel1_h) db BANK(PowerPlant_h) - db $12 ; db BANK(Route11Gate_h) + db BANK(Route11Gate_h) db BANK(DiglettsCaveEntranceRoute11_h) - db $12 ; db BANK(Route11GateUpstairs_h) - db $12 ; db BANK(Route12Gate_h) - db $07 ; db BANK(BillsHouse_h) + db BANK(Route11GateUpstairs_h) + db BANK(Route12Gate_h) + db BANK(BillsHouse_h) db $17 ; db BANK(VermilionPokecenter_h) db $16 ; db BANK(FanClub_h) db $17 ; db BANK(VermilionMart_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index c8e41d14..2b1557b0 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -84,11 +84,11 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw RockTunnelPokecenter_h dw RockTunnel1_h dw PowerPlant_h - dw $5396 ; dw Route11Gate_h + dw Route11Gate_h dw DiglettsCaveEntranceRoute11_h - dw $53de ; dw Route11GateUpstairs_h - dw $548f ; dw Route12Gate_h - dw $606e ; dw BillsHouse_h + dw Route11GateUpstairs_h + dw Route12Gate_h + dw BillsHouse_h dw $4865 ; dw VermilionPokecenter_h dw $5a00 ; dw FanClub_h ;id=90 dw $48cb ; dw VermilionMart_h diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index c16e3e5f..a9e0650b 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -863,10 +863,10 @@ Data_fd3b0: db $04, $80, $07, $80 ; $1a db $05, $80, $07, $80 ; $1b db $06, $80, $07, $80 ; $1c - db $0b, $27, $02, $00 ; $1d - db $0c, $27, $02, $00 ; $1e - db $0d, $27, $02, $00 ; $1f - db $0e, $27, $02, $00 ; $20 + db $0b, $27, $02, $00 ; $1d step down + db $0c, $27, $02, $00 ; $1e step up + db $0d, $27, $02, $00 ; $1f step left + db $0e, $27, $02, $00 ; $20 step right db $0f, $27, $02, $00 ; $21 db $10, $27, $02, $00 ; $22 db $11, $27, $02, $00 ; $23 @@ -887,10 +887,10 @@ Data_fd3b0: db $10, $0f, $08, $17 ; $32 db $11, $0f, $08, $17 ; $33 db $12, $0f, $08, $17 ; $34 - db $13, $0f, $06, $00 ; $35 - db $14, $0f, $06, $00 ; $36 - db $15, $0f, $06, $00 ; $37 - db $16, $0f, $06, $00 ; $38 + db $13, $0f, $06, $00 ; $35 look down + db $14, $0f, $06, $00 ; $36 look up + db $15, $0f, $06, $00 ; $37 look left + db $16, $0f, $06, $00 ; $38 look right db $02, $80, $04, $00 ; $39 db $02, $80, $05, $00 ; $3a db $02, $80, $03, $80 ; $3b @@ -406,7 +406,13 @@ INCBIN "maps/powerplant.blk" INCLUDE "data/mapHeaders/diglettscaveroute11.asm" INCLUDE "scripts/diglettscaveroute11.asm" INCLUDE "data/mapObjects/diglettscaveroute11.asm" - dr $1def6,$1e2ae ; map scripts + dr $1def6,$1e06e ; map scripts + +INCLUDE "data/mapHeaders/billshouse.asm" +INCLUDE "scripts/billshouse.asm" +INCLUDE "data/mapObjects/billshouse.asm" +BillsHouseBlocks: +INCBIN "maps/billshouse.blk" INCLUDE "engine/menu/oaks_pc.asm" @@ -839,7 +845,11 @@ INCBIN "maps/route7.blk" MtMoonPokecenterBlocks: RockTunnelPokecenterBlocks: INCBIN "maps/mtmoonpokecenter.blk" - dr $480c7,$480eb +Route11GateBlocks: +INCBIN "maps/route11gate.blk" +Route11GateUpstairsBlocks: +Route12GateUpstairsBlocks: +INCBIN "maps/route11gateupstairs.blk" INCLUDE "scripts/route7.asm" INCLUDE "data/mapHeaders/redshouse1f.asm" @@ -857,7 +867,24 @@ INCLUDE "data/mapHeaders/rocktunnelpokecenter.asm" INCLUDE "scripts/rocktunnelpokecenter.asm" INCLUDE "data/mapObjects/rocktunnelpokecenter.asm" - dr $49396,$49953 +INCLUDE "data/mapHeaders/route11gate.asm" +INCLUDE "scripts/route11gate.asm" +INCLUDE "data/mapObjects/route11gate.asm" + +INCLUDE "data/mapHeaders/route11gateupstairs.asm" +INCLUDE "scripts/route11gateupstairs.asm" +INCLUDE "data/mapObjects/route11gateupstairs.asm" + +INCLUDE "data/mapHeaders/route12gate.asm" +INCLUDE "scripts/route12gate.asm" +INCLUDE "data/mapObjects/route12gate.asm" +Route12GateBlocks: +INCBIN "maps/route12gate.blk" + +INCLUDE "data/mapHeaders/route12gateupstairs.asm" +INCLUDE "scripts/route12gateupstairs.asm" +INCLUDE "data/mapObjects/route12gateupstairs.asm" + dr $4958d,$49953 INCLUDE "data/mapHeaders/mtmoon1.asm" INCLUDE "scripts/mtmoon1.asm" diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm index 4f01021e..014f5051 100755 --- a/scripts/billshouse.asm +++ b/scripts/billshouse.asm @@ -1,8 +1,10 @@ BillsHouseScript: ; 1e76a (7:676a) + call BillsHouseScript_1e09e call EnableAutoTextBoxDrawing ld a, [W_BILLSHOUSECURSCRIPT] ld hl, BillsHouseScriptPointers - jp JumpTable + call JumpTable + ret BillsHouseScriptPointers: ; 1e776 (7:6776) dw BillsHouseScript0 @@ -11,21 +13,65 @@ BillsHouseScriptPointers: ; 1e776 (7:6776) dw BillsHouseScript3 dw BillsHouseScript4 dw BillsHouseScript5 + dw BillsHouseScript6 + dw BillsHouseScript7 + dw BillsHouseScript8 + dw BillsHouseScript9 + +BillsHouseScript_1e09e: + ld hl, wPreventBlackout + bit 7, [hl] + set 7, [hl] + ret nz + ld hl, wd7f2 + bit 5, [hl] + jr z, .asm_1e0af + jr .asm_1e0b3 + +.asm_1e0af + ld a, $0 + jr .asm_1e0b5 + +.asm_1e0b3 + ld a, $9 +.asm_1e0b5 + ld [W_BILLSHOUSECURSCRIPT], a + ret BillsHouseScript0: ; 1e782 (7:6782) + ld a, [wd472] + bit 7, a + jr z, .asm_1e0d2 + callab Func_fce73 + jr c, .asm_1e0d2 + callab Func_f24d5 +.asm_1e0d2 + xor a + ld [wJoyIgnore], a + ld a, $1 + ld [W_BILLSHOUSECURSCRIPT], a ret BillsHouseScript1: ; 1e783 (7:6783) + ret + +BillsHouseScript2: + ld a, $ff + ld [wJoyIgnore], a ld a, [wSpriteStateData1 + 9] and a ; cp SPRITE_FACING_DOWN ld de, MovementData_1e79c jr nz, .notDown + call CheckPikachuAsleep + jr nz, .asm_1e0f8 + callab Func_f250b +.asm_1e0f8 ld de, MovementData_1e7a0 .notDown ld a, $1 ld [H_SPRITEINDEX], a call MoveSprite - ld a, $2 + ld a, $3 ld [W_BILLSHOUSECURSCRIPT], a ret @@ -44,25 +90,58 @@ MovementData_1e7a0: ; 1e7a0 (7:67a0) db NPC_MOVEMENT_UP db $FF -BillsHouseScript2: ; 1e7a6 (7:67a6) +BillsHouseScript3: ; 1e7a6 (7:67a6) ld a, [wd730] bit 0, a ret nz ld a, HS_BILL_POKEMON ld [wMissableObjectIndex], a predef HideObject - SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR + call CheckPikachuAsleep + jr z, .asm_1e13e + ld hl, PikachuMovementData_1e14d + ld a, [wSpriteStateData1 + 9] + and a ; cp SPRITE_FACING_DOWN + jr nz, .asm_1e133 + ld hl, PikachuMovementData_1e152 +.asm_1e133 + call Func_159b + callab InitializePikachuTextID +.asm_1e13e xor a ld [wJoyIgnore], a - ld a, $3 + SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR + ld a, $4 ld [W_BILLSHOUSECURSCRIPT], a ret -BillsHouseScript3: ; 1e7c5 (7:67c5) +PikachuMovementData_1e14d: + db $00 + db $1e + db $1e + db $1e + db $3f + +PikachuMovementData_1e152: + db $00 + db $1e + db $1f + db $1e + db $1e + db $20 + db $36 + db $3f + +BillsHouseScript4: ; 1e7c5 (7:67c5) CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL ret z - ld a, $f0 + ld a, $fc ld [wJoyIgnore], a + ld a, $5 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +BillsHouseScript5: ld a, $2 ld [wSpriteIndex], a ld a, $c @@ -79,11 +158,30 @@ BillsHouseScript3: ; 1e7c5 (7:67c5) predef ShowObject ld c, 8 call DelayFrames + ld hl, wd472 + bit 7, [hl] + jr z, .asm_1e1c6 + call CheckPikachuAsleep + jr z, .asm_1e1c6 + ld a, $2 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld hl, PikachuMovementData_1e1a9 + call Func_159b + ld a, $f + ld [wEmotionBubbleSpriteIndex], a + ld a, $0 + ld [wWhichEmotionBubble], a + predef EmotionBubble + callab InitializePikachuTextID +.asm_1e1c6 ld a, $2 ld [H_SPRITEINDEX], a ld de, MovementData_1e807 call MoveSprite - ld a, $4 + ld a, $6 ld [W_BILLSHOUSECURSCRIPT], a ret @@ -95,26 +193,67 @@ MovementData_1e807: ; 1e807 (7:6807) db NPC_MOVEMENT_DOWN db $FF -BillsHouseScript4: ; 1e80d (7:680d) +PikachuMovementData_1e1a9: + db $00 + db $37 + db $3f + +BillsHouseScript6: ; 1e80d (7:680d) ld a, [wd730] bit 0, a ret nz - xor a - ld [wJoyIgnore], a SetEvent EVENT_MET_BILL_2 ; this event seems redundant SetEvent EVENT_MET_BILL - ld a, $0 + ld a, $7 ld [W_BILLSHOUSECURSCRIPT], a ret -BillsHouseScript5: ; 1e827 (7:6827) - ld a, $4 +BillsHouseScript7: + xor a + ld [wPlayerMovingDirection], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 9], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld de, RLE_1e219 + ld hl, wSimulatedJoypadStatesEnd + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + call StartSimulatingJoypadStates + ld a, $8 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +RLE_1e219: + db D_RIGHT,$3 + db $FF + +BillsHouseScript8: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + xor a + ld [wPlayerMovingDirection], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 9], a + ld a, $2 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + xor a + ld [wJoyIgnore], a + ld a, $2 ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $0 + ld a, $9 ld [W_BILLSHOUSECURSCRIPT], a ret +BillsHouseScript9: ; 1e827 (7:6827) + ret + BillsHouseTextPointers: ; 1e834 (7:6834) dw BillsHouseText1 dw BillsHouseText2 @@ -122,91 +261,20 @@ BillsHouseTextPointers: ; 1e834 (7:6834) dw BillsHouseText4 BillsHouseText4: ; 1e83c (7:683c) - db $fd + TX_FAR _BillsHouseDontLeaveText + db "@" BillsHouseText1: ; 1e83d (7:683d) TX_ASM - ld hl, BillsHouseText_1e865 - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .asm_1e85a -.asm_1e84d - ld hl, BillsHouseText_1e86a - call PrintText - ld a, $1 - ld [W_BILLSHOUSECURSCRIPT], a - jr .asm_1e862 -.asm_1e85a - ld hl, BillsHouseText_1e86f - call PrintText - jr .asm_1e84d -.asm_1e862 + callba Func_f2418 jp TextScriptEnd -BillsHouseText_1e865: ; 1e865 (7:6865) - TX_FAR _BillsHouseText_1e865 - db "@" - -BillsHouseText_1e86a: ; 1e86a (7:686a) - TX_FAR _BillsHouseText_1e86a - db "@" - -BillsHouseText_1e86f: ; 1e86f (7:686f) - TX_FAR _BillsHouseText_1e86f - db "@" - BillsHouseText2: ; 1e874 (7:6874) TX_ASM - CheckEvent EVENT_GOT_SS_TICKET - jr nz, .asm_1e8a9 - ld hl, BillThankYouText - call PrintText - lb bc, S_S_TICKET, 1 - call GiveItem - jr nc, .BagFull - ld hl, SSTicketReceivedText - call PrintText - SetEvent EVENT_GOT_SS_TICKET - ld a, HS_CERULEAN_GUARD_1 - ld [wMissableObjectIndex], a - predef ShowObject - ld a, HS_CERULEAN_GUARD_2 - ld [wMissableObjectIndex], a - predef HideObject -.asm_1e8a9 - ld hl, BillsHouseText_1e8cb - call PrintText - jr .asm_1e8b7 -.BagFull - ld hl, SSTicketNoRoomText - call PrintText -.asm_1e8b7 + callba Func_f244a jp TextScriptEnd -BillThankYouText: ; 1e8ba (7:68ba) - TX_FAR _BillThankYouText - db "@" - -SSTicketReceivedText: ; 1e8bf (7:68bf) - TX_FAR _SSTicketReceivedText - db $11, $6, "@" - -SSTicketNoRoomText: ; 1e8c6 (7:68c6) - TX_FAR _SSTicketNoRoomText - db "@" - -BillsHouseText_1e8cb: ; 1e8cb (7:68cb) - TX_FAR _BillsHouseText_1e8cb - db "@" - BillsHouseText3: ; 1e8d0 (7:68d0) TX_ASM - ld hl, BillsHouseText_1e8da - call PrintText + callba Func_f24a2 jp TextScriptEnd - -BillsHouseText_1e8da: ; 1e8da (7:68da) - TX_FAR _BillsHouseText_1e8da - db "@" diff --git a/scripts/route11gateupstairs.asm b/scripts/route11gateupstairs.asm index ec543a6a..e41e46e5 100755 --- a/scripts/route11gateupstairs.asm +++ b/scripts/route11gateupstairs.asm @@ -9,7 +9,7 @@ Route11GateUpstairsTextPointers: ; 49457 (12:5457) Route11GateUpstairsText1: ; 4945f (12:545f) TX_ASM - xor a + ld a, $0 ld [wWhichTrade], a predef DoInGameTradeDialogue Route11GateUpstairsScriptEnd: ; 49469 (12:5469) |