initial checkin
This commit is contained in:
138
contrib.asm
Normal file
138
contrib.asm
Normal file
@@ -0,0 +1,138 @@
|
||||
;================================================================
|
||||
; 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
|
||||
}
|
||||
;================================================================
|
||||
Reference in New Issue
Block a user