Files
alttpr-baserom/contrib.asm
Myramong 97c262eaaa Moved ganon/agah rng rigging from contrib.asm to rngfixes.asm
GanonAgahRNG switch is only 0 or 1 now, static rng or no blue balls/warps
Filled in some static rng in LTTP_RND_GeneralBugfixes.asm
2017-06-14 18:13:23 -03:00

138 lines
3.2 KiB
NASM

;================================================================
; Contributor: Myramong
;================================================================
Sprite_ShowMessageFromPlayerContact_Edit:
{
STZ $1CE8
JSL.l Sprite_CheckDamageToPlayerSameLayerLong : BCC .dont_show
LDA $4D : CMP.b #$02 : BEQ .dont_show
JSL.l Sprite_DirectionToFacePlayer : TYA : EOR.b #$03
SEC
RTL
.dont_show
LDA $0DE0, X
CLC
RTL
}
;================================================================
Sprite_ShowSolicitedMessageIfPlayerFacing_Edit:
{
JSL.l Sprite_CheckDamageToPlayerSameLayerLong : BCC .alpha
JSL.l Sprite_CheckIfPlayerPreoccupied : BCS .alpha
LDA $F6 : BPL .alpha
LDA $0F10, X : BNE .alpha
LDA $4D : CMP.b #$02 : BEQ .alpha
STZ $1CE8 ; set text choice to 1st option (usually yes/confirm/etc)
JSL.l Sprite_DirectionToFacePlayer : PHX : TYX
; Make sure that the sprite is facing towards the player, otherwise
; talking can't happen. (What sprites actually use this???)
LDA $05E1A3, X : PLX : CMP $2F : BNE .not_facing_each_other
PHY
LDA.b #$40 : STA $0F10, X
PLA : EOR.b #$03
SEC
RTL
.not_facing_each_other
.alpha
LDA $0DE0, X
CLC
RTL
}
;================================================================
OldMountainMan_TransitionFromTagalong_Edit:
{
PHA
LDA.b #$AD : JSL Sprite_SpawnDynamically
PLA : PHX : TAX
LDA $1A64, X : AND.b #$03 : STA $0EB0, Y
STA $0DE0, Y
LDA $1A00, X : CLC : ADC.b #$02 : STA $0D00, Y
LDA $1A14, X : ADC.b #$00 : STA $0D20, Y
LDA $1A28, X : CLC : ADC.b #$02 : STA $0D10, Y
LDA $1A3C, X : ADC.b #$00 : STA $0D30, Y
LDA $EE : STA $0F20, Y
LDA.b #$01 : STA $0BA0, Y
STA $0E80, Y
LDA.b #$01 : STA $02E4 ; OldMountainMan_FreezePlayer
STA $037B ; ^
PLX
LDA.b #$00 : STA $7EF3CC
STZ $5E
JML $09A6B6 ; <- 4A6B6 tagalong.asm:1194 (SEP #$30 : RTS)
}
;================================================================
Sprite_ShowSolicitedMessageIfPlayerFacing_Alt:
{
STA $1CF0
STY $1CF1
JSL Sprite_CheckDamageToPlayerSameLayerLong : BCC .alpha
JSL Sprite_CheckIfPlayerPreoccupied : BCS .alpha
LDA $F6 : BPL .alpha
LDA $0F10, X : BNE .alpha
LDA $4D : CMP.b #$02 : BEQ .alpha
JSL Sprite_DirectionToFacePlayer : PHX : TYX
; Make sure that the sprite is facing towards the player, otherwise
; talking can't happen. (What sprites actually use this???)
LDA $05E1A3, X : PLX : CMP $2F : BNE .not_facing_each_other
PHY
LDA $1CF0
LDY $1CF1
; Check what room we're in so we know which npc we're talking to
LDA.b $A0 : CMP #$03 : BEQ .AlcoholicDialog
CMP #$05 : BEQ .SahasrahlaDialogs
CMP #$1C : BEQ .BombShopGuyDialog
BRA .SayNothing
.AlcoholicDialog
JSL DialogAlcoholic : BRA .SayNothing
.SahasrahlaDialogs
JSL DialogSahasrahla : BRA .SayNothing
.BombShopGuyDialog
JSL DialogBombShopGuy
.SayNothing
LDA.b #$40 : STA $0F10, X
PLA : EOR.b #$03
SEC
RTL
.not_facing_each_other
.alpha
LDA $0DE0, X
CLC
RTL
}
;================================================================