mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00

Thanks to Frrf for helping me fix the broken code I initially sent in. This commit refines the mode so that the Oak Lab cutscene is finished and the party picking process is all concrete. Also, given Surge is a fight, the S.S. Anne Pikachu rival can have Raichu, surely... Also, the UnusedNames files were, in fact, needed...otherwise, the item names get all corrupted. Probably left some code behind. So we officially have a new funky mode!
230 lines
3.8 KiB
NASM
230 lines
3.8 KiB
NASM
SSAnne2F_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, SSAnne2F_ScriptPointers
|
|
ld a, [wSSAnne2FCurScript]
|
|
jp CallFunctionInTable
|
|
|
|
SSAnne2Script_613ab:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wSSAnne2FCurScript], a
|
|
ret
|
|
|
|
SSAnne2F_ScriptPointers:
|
|
dw SSAnne2Script0
|
|
dw SSAnne2Script1
|
|
dw SSAnne2Script2
|
|
dw SSAnne2Script3
|
|
dw SSAnne2Script4
|
|
|
|
SSAnne2Script4:
|
|
ret
|
|
|
|
SSAnne2Script0:
|
|
ld hl, CoordsData_61411
|
|
call ArePlayerCoordsInArray
|
|
ret nc
|
|
ld a, SFX_STOP_ALL_MUSIC
|
|
ld [wNewSoundID], a
|
|
call PlaySound
|
|
ld c, BANK(Music_MeetRival)
|
|
ld a, MUSIC_MEET_RIVAL
|
|
call PlayMusic
|
|
ld a, [wCoordIndex]
|
|
ldh [hSavedCoordIndex], a
|
|
ld a, HS_SS_ANNE_2F_RIVAL
|
|
ld [wMissableObjectIndex], a
|
|
predef ShowObject
|
|
call Delay3
|
|
ld a, $2
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ldh a, [hSavedCoordIndex]
|
|
cp $2
|
|
jr nz, .asm_61400
|
|
ld de, MovementData_6140c
|
|
jr .asm_61403
|
|
.asm_61400
|
|
ld de, MovementData_6140d
|
|
.asm_61403
|
|
call MoveSprite
|
|
ld a, $1
|
|
ld [wSSAnne2FCurScript], a
|
|
ret
|
|
|
|
MovementData_6140c:
|
|
db NPC_MOVEMENT_DOWN
|
|
MovementData_6140d:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db -1 ; end
|
|
|
|
CoordsData_61411:
|
|
dbmapcoord 36, 8
|
|
dbmapcoord 37, 8
|
|
db -1 ; end
|
|
|
|
SSAnne2Script_61416:
|
|
ld a, [wXCoord]
|
|
cp 37
|
|
jr nz, .asm_61426
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, SPRITE_FACING_RIGHT
|
|
jr .asm_61427
|
|
.asm_61426
|
|
xor a ; SPRITE_FACING_DOWN
|
|
.asm_61427
|
|
ldh [hSpriteFacingDirection], a
|
|
ld a, $2
|
|
ldh [hSpriteIndex], a
|
|
jp SetSpriteFacingDirectionAndDelay
|
|
|
|
SSAnne2Script1:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
call SSAnne2Script_61416
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $2
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
call Delay3
|
|
ld a, OPP_RIVAL2
|
|
ld [wCurOpponent], a
|
|
|
|
; select which team to use during the encounter
|
|
ld a, [wRivalStarter]
|
|
cp STARTER2
|
|
jr nz, .NotSquirtle
|
|
ld a, $1
|
|
jr .done
|
|
.NotSquirtle
|
|
cp STARTER3
|
|
jr nz, .Charmander
|
|
ld a, $2
|
|
jr .done
|
|
.Charmander
|
|
cp STARTER1 ; changes start here
|
|
ld a, $3
|
|
jr nz, .Pikachu
|
|
jr .done
|
|
.Pikachu ;
|
|
cp STARTER4
|
|
jr nz, .Eevee
|
|
ld a, $5
|
|
jr .done
|
|
.Eevee
|
|
ld a, $4
|
|
jr .done
|
|
.done
|
|
ld [wTrainerNo], a
|
|
ld a, 1
|
|
ld [wIsTrainerBattle], a
|
|
|
|
call SSAnne2Script_61416
|
|
ld a, $2
|
|
ld [wSSAnne2FCurScript], a
|
|
ret
|
|
|
|
SSAnne2Script2:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, SSAnne2Script_613ab
|
|
xor a
|
|
ld [wIsTrainerBattle], a
|
|
call SSAnne2Script_61416
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $3
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, $2
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld a, [wXCoord]
|
|
cp 37
|
|
jr nz, .asm_61497
|
|
ld de, MovementData_614b9
|
|
jr .asm_6149a
|
|
.asm_61497
|
|
ld de, MovementData_614b7
|
|
.asm_6149a
|
|
ld a, $2
|
|
ldh [hSpriteIndex], a
|
|
call MoveSprite
|
|
ld a, SFX_STOP_ALL_MUSIC
|
|
ld [wNewSoundID], a
|
|
call PlaySound
|
|
farcall Music_RivalAlternateStart
|
|
ld a, $3
|
|
ld [wSSAnne2FCurScript], a
|
|
ret
|
|
|
|
MovementData_614b7:
|
|
db NPC_MOVEMENT_RIGHT
|
|
db NPC_MOVEMENT_DOWN
|
|
MovementData_614b9:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db -1 ; end
|
|
|
|
SSAnne2Script3:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, HS_SS_ANNE_2F_RIVAL
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
call PlayDefaultMusic
|
|
ld a, $4
|
|
ld [wSSAnne2FCurScript], a
|
|
ret
|
|
|
|
SSAnne2F_TextPointers:
|
|
dw SSAnne2Text1
|
|
dw SSAnne2Text2
|
|
dw SSAnne2Text3
|
|
|
|
SSAnne2Text1:
|
|
text_far _SSAnne2Text1
|
|
text_end
|
|
|
|
SSAnne2Text2:
|
|
text_asm
|
|
ld hl, SSAnneRivalBeforeBattleText
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, SSAnneRivalDefeatedText
|
|
ld de, SSAnneRivalWonText
|
|
call SaveEndBattleTextPointers
|
|
jp TextScriptEnd
|
|
|
|
SSAnneRivalBeforeBattleText:
|
|
text_far _SSAnneRivalBeforeBattleText
|
|
text_end
|
|
|
|
SSAnneRivalDefeatedText:
|
|
text_far _SSAnneRivalDefeatedText
|
|
text_end
|
|
|
|
SSAnneRivalWonText:
|
|
text_far _SSAnneRivalWonText
|
|
text_end
|
|
|
|
SSAnne2Text3:
|
|
text_far _SSAnneRivalCaptainText
|
|
text_end
|