Implement talker events [commit 1] (#30)

This commit is contained in:
xCrystal
2023-11-28 13:59:36 +01:00
parent 93dad5959f
commit 88b6810a18
13 changed files with 134 additions and 29 deletions

View File

@@ -11,7 +11,7 @@ SeenByTrainerScript::
waitsfx ; wait for any pending space-related sfx
encountermusic
showemote EMOTE_SHOCK, LAST_TALKED, 30
callasm TrainerWalkToPlayer
callasm TrainerOrTalkerWalkToPlayer
applymovementlasttalked wMovementBuffer
writeobjectxy LAST_TALKED
faceobject PLAYER, LAST_TALKED
@@ -30,3 +30,12 @@ StartBattleWithMapTrainerScript:
AlreadyBeatenTrainerScript:
scripttalkafter
SeenByTalkerScript::
waitsfx ; wait for any pending space-related sfx
showemote EMOTE_TALK, LAST_TALKED, 20
callasm TrainerOrTalkerWalkToPlayer
applymovementlasttalked wMovementBuffer
writeobjectxy LAST_TALKED
faceobject PLAYER, LAST_TALKED
end

View File

@@ -285,7 +285,7 @@ PlayerEvents:
call DisableSpaceEffects ; doesn't alter f
jr c, .ok
call CheckTrainerEvent
call CheckTrainerOrTalkerEvent
jr c, .ok
call CheckTileEvent
@@ -451,15 +451,20 @@ CheckBoardEvent:
dw UnionSpaceScript ; COLL_UNION_SPACE
assert_table_length NUM_COLL_SPACES
CheckTrainerEvent:
CheckTrainerOrTalkerEvent:
ldh a, [hCurBoardEvent]
cp BOARDEVENT_VIEW_MAP_MODE
ret z
call CheckTrainerBattle
call CheckTrainerBattleOrTalkerPrompt
jr nc, .nope
ld a, [wTrainerOrTalkerIsTalker]
and a ; cp FALSE
ld a, PLAYEREVENT_SEENBYTRAINER
jr z, .done
ld a, PLAYEREVENT_SEENBYTALKER
.done
scf
ret
@@ -748,7 +753,7 @@ ObjectEventTypeArray:
dbw OBJECTTYPE_ITEMBALL, .itemball
dbw OBJECTTYPE_TRAINER, .trainer
; the remaining four are dummy events
dbw OBJECTTYPE_3, .three
dbw OBJECTTYPE_TALKER, .three
dbw OBJECTTYPE_4, .four
dbw OBJECTTYPE_5, .five
dbw OBJECTTYPE_6, .six
@@ -1158,6 +1163,7 @@ PlayerEventScriptPointers:
dba OverworldWhiteoutScript ; PLAYEREVENT_WHITEOUT
dba HatchEggScript ; PLAYEREVENT_HATCH
dba ChangeDirectionScript ; PLAYEREVENT_JOYCHANGEFACING
dba SeenByTalkerScript ; PLAYEREVENT_SEENBYTALKER
dba InvalidEventScript ; (NUM_PLAYER_EVENTS)
assert_table_length NUM_PLAYER_EVENTS + 1

View File

@@ -514,12 +514,12 @@ CopyTempObjectToObjectStruct:
ld [hl], a
ret
TrainerWalkToPlayer:
TrainerOrTalkerWalkToPlayer:
ldh a, [hLastTalked]
call InitMovementBuffer
ld a, movement_step_sleep
call AppendToMovementBuffer
ld a, [wSeenTrainerDistance]
ld a, [wSeenTrainerOrTalkerDistance]
dec a
jr z, .TerminateStep
ldh a, [hLastTalked]

View File

@@ -671,7 +671,7 @@ Script_trainertext:
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wSeenTrainerBank]
ld a, [wSeenTrainerOrTalkerBank]
ld b, a
call MapTextbox
ret
@@ -681,7 +681,7 @@ Script_scripttalkafter:
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wSeenTrainerBank]
ld a, [wSeenTrainerOrTalkerBank]
ld b, a
jp ScriptJump