mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00

This update does a good few things. Giovanni now uses his unused encounter theme in all pre-fights, which is followed by the regular evil trainer theme when you're about to fight him. This feels very correct. His team has also been minorly altered. I backported LGPE's pre-fight monologue for Giovanni in Rocket Hideout B4F. Adapted for RB's story, of course, no Cubones here. The original text is very awkward and abrupt, and it also makes the encounter theme feel much more effective in delivery. I think a lot of people can appreciate this. I also backported Jessie and James for Rocket Hideout B4F while I was at it. I had to change their event script quite a bit for it to fit, and their walking seems...awkward. Regardless, it's functional. The rest will be done with time. To make future dev door testing easier, I'm keeping all warps I've previously used in comments.
488 lines
8.7 KiB
NASM
488 lines
8.7 KiB
NASM
SilphCo11F_Script:
|
|
call SilphCo11Script_62110
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, SilphCo11TrainerHeaders
|
|
ld de, SilphCo11F_ScriptPointers
|
|
ld a, [wSilphCo11FCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wSilphCo11FCurScript], a
|
|
ret
|
|
|
|
SilphCo11F_ScriptPointers:
|
|
dw SilphCo11Script0
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw SilphCo11Script3
|
|
dw SilphCo11Script4
|
|
dw SilphCo11Script5
|
|
dw SilphCo11Script6
|
|
dw SilphCo11Script7
|
|
|
|
SilphCo11Script_62110:
|
|
ld hl, wCurrentMapScriptFlags
|
|
bit 5, [hl]
|
|
res 5, [hl]
|
|
ret z
|
|
ld hl, SilphCo11GateCoords
|
|
call SilphCo11Script_62137
|
|
call SilphCo11Script_62163
|
|
CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
|
|
ret nz
|
|
ld a, $20
|
|
ld [wNewTileBlockID], a
|
|
lb bc, 6, 3
|
|
predef_jump ReplaceTileBlock
|
|
|
|
SilphCo11GateCoords:
|
|
dbmapcoord 3, 6
|
|
db -1 ; end
|
|
|
|
SilphCo11Script_62137:
|
|
push hl
|
|
ld hl, wCardKeyDoorY
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld c, a
|
|
xor a
|
|
ldh [hUnlockedSilphCoDoors], a
|
|
pop hl
|
|
.asm_62143
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr z, .asm_6215f
|
|
push hl
|
|
ld hl, hUnlockedSilphCoDoors
|
|
inc [hl]
|
|
pop hl
|
|
cp b
|
|
jr z, .asm_62154
|
|
inc hl
|
|
jr .asm_62143
|
|
.asm_62154
|
|
ld a, [hli]
|
|
cp c
|
|
jr nz, .asm_62143
|
|
ld hl, wCardKeyDoorY
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ret
|
|
.asm_6215f
|
|
xor a
|
|
ldh [hUnlockedSilphCoDoors], a
|
|
ret
|
|
|
|
SilphCo11Script_62163: ; This is altered to have Omega rush you once the door is open.
|
|
ldh a, [hUnlockedSilphCoDoors]
|
|
and a
|
|
ret z
|
|
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
|
|
ld a, $6
|
|
ldh [hSpriteIndex], a ; TODO: Make Omega look at the player.
|
|
call MoveOmegaSprite
|
|
ld a, OMEGA
|
|
ld [wcf91], a
|
|
call PlayCry
|
|
ld a, SFX_STOP_ALL_MUSIC
|
|
call PlaySound
|
|
ld c, 0 ; BANK(Music_MeetMaleTrainer)
|
|
ld a, MUSIC_MEET_MALE_TRAINER
|
|
call PlayMusic
|
|
;add code here to make Rocket NPC look at Omega
|
|
ld a, $6
|
|
ld [wSilphCo11FCurScript], a
|
|
ret
|
|
|
|
SilphCo11Script6:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld [wJoyIgnore], a
|
|
ld a, $6
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, OMEGA
|
|
ld [wCurOpponent], a
|
|
ld a, 45
|
|
ld [wCurEnemyLVL], a
|
|
ld a, 0
|
|
ld [wIsTrainerBattle], a
|
|
ld a, HS_OMEGA
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
call UpdateSprites
|
|
ld a, $2
|
|
ld [wSilphCo11FCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
SilphCo11Script7:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, SilphCo11Script_50ece
|
|
ld a, $3
|
|
ld [wSilphCo11FCurScript], a
|
|
ret
|
|
|
|
SilphCo11Script_50ed6:
|
|
ld a, 0
|
|
ld [wTrainerNo], a
|
|
ld a, 1
|
|
ld [wIsTrainerBattle], a
|
|
ret
|
|
|
|
OmegaMovementData:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db -1 ; end
|
|
|
|
MoveOmegaSprite:
|
|
ld de, OmegaMovementData
|
|
call MoveSprite
|
|
ld a, SPRITE_FACING_DOWN
|
|
ldh [hSpriteFacingDirection], a
|
|
jp SetSpriteFacingDirectionAndDelay
|
|
ret
|
|
|
|
.asm_50ef1
|
|
call MoveSprite
|
|
ld a, SPRITE_FACING_RIGHT
|
|
ldh [hSpriteFacingDirection], a
|
|
jp SetSpriteFacingDirectionAndDelay
|
|
|
|
SilphCo11Script_50ece:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wSilphCo11FCurScript], a
|
|
|
|
SilphCo11Script_6216d:
|
|
ld hl, MissableObjectIDs_6219b
|
|
.asm_62170
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr z, .asm_62181
|
|
push hl
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
pop hl
|
|
jr .asm_62170
|
|
.asm_62181
|
|
ld hl, MissableObjectIDs_62194
|
|
.asm_62184
|
|
ld a, [hli]
|
|
cp -1
|
|
ret z
|
|
push hl
|
|
ld [wMissableObjectIndex], a
|
|
predef ShowObject
|
|
pop hl
|
|
jr .asm_62184
|
|
|
|
MissableObjectIDs_62194:
|
|
db HS_SAFFRON_CITY_8
|
|
db HS_SAFFRON_CITY_9
|
|
db HS_SAFFRON_CITY_A
|
|
db HS_SAFFRON_CITY_B
|
|
db HS_SAFFRON_CITY_C
|
|
db HS_SAFFRON_CITY_D
|
|
db -1 ; end
|
|
|
|
MissableObjectIDs_6219b:
|
|
db HS_SAFFRON_CITY_1
|
|
db HS_SAFFRON_CITY_2
|
|
db HS_SAFFRON_CITY_3
|
|
db HS_SAFFRON_CITY_4
|
|
db HS_SAFFRON_CITY_5
|
|
db HS_SAFFRON_CITY_6
|
|
db HS_SAFFRON_CITY_7
|
|
db HS_SAFFRON_CITY_E
|
|
db HS_SAFFRON_CITY_F
|
|
db HS_SAFFRON_CITY_UP_GRADE
|
|
db HS_SILPH_CO_2F_2
|
|
db HS_SILPH_CO_3F_1
|
|
db HS_SILPH_CO_3F_2
|
|
db HS_SILPH_CO_4F_1
|
|
db HS_SILPH_CO_4F_2
|
|
db HS_SILPH_CO_4F_3
|
|
db HS_SILPH_CO_5F_1
|
|
db HS_SILPH_CO_5F_2
|
|
db HS_SILPH_CO_5F_3
|
|
db HS_SILPH_CO_5F_4
|
|
db HS_SILPH_CO_6F_1
|
|
db HS_SILPH_CO_6F_2
|
|
db HS_SILPH_CO_6F_3
|
|
db HS_SILPH_CO_7F_1
|
|
db HS_SILPH_CO_7F_2
|
|
db HS_SILPH_CO_7F_3
|
|
db HS_SILPH_CO_7F_4
|
|
db HS_SILPH_CO_8F_1
|
|
db HS_SILPH_CO_8F_2
|
|
db HS_SILPH_CO_8F_3
|
|
db HS_SILPH_CO_10F_1
|
|
db HS_SILPH_CO_10F_2
|
|
db HS_SILPH_CO_11F_1
|
|
db HS_SILPH_CO_11F_2
|
|
db HS_SILPH_CO_11F_3
|
|
db -1 ; end
|
|
|
|
SilphCo11Script_621c4:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
|
|
SilphCo11Script_621c8:
|
|
ld [wSilphCo11FCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
|
|
|
|
SilphCo11Script0:
|
|
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
|
|
ret nz
|
|
ld hl, CoordsData_62211
|
|
call ArePlayerCoordsInArray
|
|
jp nc, CheckFightingMapTrainers
|
|
ld a, [wCoordIndex]
|
|
ld [wcf0d], a
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $3
|
|
ld c, 0 ; BANK(Music_Sakaki)
|
|
ld a, MUSIC_SAKAKI
|
|
call PlayMusic
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, $3
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld de, MovementData_62216
|
|
call MoveSprite
|
|
ld a, $3
|
|
jp SilphCo11Script_621c8
|
|
|
|
CoordsData_62211:
|
|
dbmapcoord 6, 13
|
|
dbmapcoord 7, 12
|
|
db -1 ; end
|
|
|
|
MovementData_62216:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db -1 ; end
|
|
|
|
SilphCo11Script_6221a:
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $3
|
|
ldh [hSpriteIndex], a
|
|
ld a, b
|
|
ldh [hSpriteFacingDirection], a
|
|
jp SetSpriteFacingDirectionAndDelay
|
|
|
|
SilphCo11Script5:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, SilphCo11Script_621c4
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr z, .asm_6223c
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld b, SPRITE_FACING_RIGHT
|
|
jr .asm_62240
|
|
.asm_6223c
|
|
ld a, PLAYER_DIR_UP
|
|
ld b, SPRITE_FACING_DOWN
|
|
.asm_62240
|
|
call SilphCo11Script_6221a
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $8
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
call GBFadeOutToBlack
|
|
call SilphCo11Script_6216d
|
|
call UpdateSprites
|
|
call Delay3
|
|
call GBFadeInFromBlack
|
|
SetEvent EVENT_BEAT_SILPH_CO_GIOVANNI
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
jp SilphCo11Script_621c8
|
|
|
|
SilphCo11Script3:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, $3
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr z, .asm_62284
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld b, SPRITE_FACING_RIGHT
|
|
jr .asm_62288
|
|
.asm_62284
|
|
ld a, PLAYER_DIR_UP
|
|
ld b, SPRITE_FACING_DOWN
|
|
.asm_62288
|
|
call SilphCo11Script_6221a
|
|
call Delay3
|
|
ld a, $4
|
|
jp SilphCo11Script_621c8
|
|
|
|
SilphCo11Script4:
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, SilphCo10Text_62330
|
|
ld de, SilphCo10Text_62330
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
call InitBattleEnemyParameters
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $5
|
|
jp SilphCo11Script_621c8
|
|
|
|
SilphCo11F_TextPointers:
|
|
dw SilphCo11Text1
|
|
dw SilphCo11Text2
|
|
dw SilphCo11Text3
|
|
dw SilphCo11Text4
|
|
dw SilphCo11Text5
|
|
dw SilphCo11Text6
|
|
dw OmegaText
|
|
dw StupidGiovanniFix
|
|
|
|
SilphCo11TrainerHeaders:
|
|
def_trainers 4
|
|
SilphCo11TrainerHeader0:
|
|
trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_0, 4, SilphCo11BattleText1, SilphCo11EndBattleText1, SilphCo11AfterBattleText1
|
|
SilphCo11TrainerHeader1:
|
|
trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11BattleText2, SilphCo11EndBattleText2, SilphCo11AfterBattleText2
|
|
db -1 ; end
|
|
|
|
OmegaText:
|
|
text_far _OmegaBattleText
|
|
text_end
|
|
|
|
SilphCo11Text1:
|
|
text_asm
|
|
CheckEvent EVENT_GOT_MASTER_BALL
|
|
jp nz, .got_item
|
|
ld hl, SilphCoPresidentText
|
|
call PrintText
|
|
lb bc, MASTER_BALL, 1
|
|
call GiveItem
|
|
jr nc, .bag_full
|
|
ld hl, ReceivedSilphCoMasterBallText
|
|
call PrintText
|
|
SetEvent EVENT_GOT_MASTER_BALL
|
|
jr .done
|
|
.bag_full
|
|
ld hl, SilphCoMasterBallNoRoomText
|
|
call PrintText
|
|
jr .done
|
|
.got_item
|
|
ld hl, SilphCo10Text_6231c
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
SilphCoPresidentText:
|
|
text_far _SilphCoPresidentText
|
|
text_end
|
|
|
|
ReceivedSilphCoMasterBallText:
|
|
text_far _ReceivedSilphCoMasterBallText
|
|
sound_get_key_item
|
|
text_end
|
|
|
|
SilphCo10Text_6231c:
|
|
text_far _SilphCo10Text_6231c
|
|
text_end
|
|
|
|
SilphCoMasterBallNoRoomText:
|
|
text_far _SilphCoMasterBallNoRoomText
|
|
text_end
|
|
|
|
SilphCo11Text2:
|
|
text_far _SilphCo11Text2
|
|
text_end
|
|
|
|
SilphCo11Text3:
|
|
text_far _SilphCo11Text3
|
|
text_end
|
|
|
|
SilphCo10Text_62330:
|
|
text_far _SilphCo10Text_62330
|
|
text_end
|
|
|
|
SilphCo11Text6:
|
|
text_far _SilphCo10Text_62335
|
|
text_end
|
|
|
|
SilphCo11Text4:
|
|
text_asm
|
|
ld hl, SilphCo11TrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11BattleText1:
|
|
text_far _SilphCo11BattleText1
|
|
text_end
|
|
|
|
SilphCo11EndBattleText1:
|
|
text_far _SilphCo11EndBattleText1
|
|
text_end
|
|
|
|
SilphCo11AfterBattleText1:
|
|
text_far _SilphCo11AfterBattleText1
|
|
text_end
|
|
|
|
SilphCo11Text5:
|
|
text_asm
|
|
ld hl, SilphCo11TrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11BattleText2:
|
|
text_far _SilphCo11BattleText2
|
|
text_end
|
|
|
|
SilphCo11EndBattleText2:
|
|
text_far _SilphCo11EndBattleText2
|
|
text_end
|
|
|
|
SilphCo11AfterBattleText2:
|
|
text_far _SilphCo11AfterBattleText2
|
|
text_end
|
|
|
|
SilphCo10Text_6236c:
|
|
text_asm
|
|
ld hl, SilphCo10Text_6237b
|
|
call PrintText
|
|
ld a, PORYGON
|
|
call DisplayPokedex
|
|
jp TextScriptEnd
|
|
|
|
SilphCo10Text_6237b:
|
|
text_far _SilphCo10Text_6237b
|
|
text_end
|
|
|
|
; Omega Boss Fight text begins here.
|
|
OmegaBattleText:
|
|
text_far _OmegaBattleText
|
|
text_asm
|
|
jp TextScriptEnd
|
|
|
|
StupidGiovanniFix:
|
|
text_far _SilphCo10Text_62335
|
|
text_end
|