mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Identify and eliminate wEngineBuffer1-5
This commit is contained in:
parent
ec8869584f
commit
2184b60a0c
@ -65,7 +65,7 @@
|
||||
const PHONE_CONTACT_SCRIPT2_BANK
|
||||
const PHONE_CONTACT_SCRIPT2_ADDR_LO
|
||||
const PHONE_CONTACT_SCRIPT2_ADDR_HI
|
||||
PHONE_TABLE_WIDTH EQU const_value
|
||||
PHONE_CONTACT_SIZE EQU const_value
|
||||
|
||||
; maximum number of pokegear contacts
|
||||
CONTACT_LIST_SIZE EQU 10
|
||||
|
@ -1276,7 +1276,7 @@ Finally, edit [engine/battle/read_trainer_party.asm](https://github.com/pret/pok
|
||||
.CheckWarp:
|
||||
-; Bug: Since no case is made for STANDING here, it will check
|
||||
-; [.edgewarps + $ff]. This resolves to $3e at $8035a.
|
||||
-; This causes wd041 to be nonzero when standing on tile $3e,
|
||||
-; This causes wWalkingIntoEdgeWarp to be nonzero when standing on tile $3e,
|
||||
-; making bumps silent.
|
||||
-
|
||||
ld a, [wWalkingDirection]
|
||||
@ -1292,8 +1292,8 @@ Finally, edit [engine/battle/read_trainer_party.asm](https://github.com/pret/pok
|
||||
cp [hl]
|
||||
jr nz, .not_warp
|
||||
|
||||
ld a, 1
|
||||
ld [wd041], a
|
||||
ld a, TRUE
|
||||
ld [wWalkingIntoEdgeWarp], a
|
||||
ld a, [wWalkingDirection]
|
||||
- ; This is in the wrong place.
|
||||
- cp STANDING
|
||||
|
@ -489,7 +489,7 @@ If <code><i>item_id</i></code> = `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` i
|
||||
## `$93`: `endall`
|
||||
|
||||
|
||||
## `$94`: <code>pokemart <i>dialog_id</i>, <i>mart_id</i></code>
|
||||
## `$94`: <code>pokemart <i>mart_type</i>, <i>mart_id</i></code>
|
||||
|
||||
|
||||
## `$95`: <code>elevator <i>floor_list</i></code>
|
||||
|
@ -28,7 +28,7 @@ Elevator::
|
||||
|
||||
.LoadFloors:
|
||||
ld de, wCurElevator
|
||||
ld bc, 4
|
||||
ld bc, wElevatorDataEnd - wElevatorData
|
||||
ld hl, wElevatorPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@ -104,12 +104,12 @@ Elevator_GoToFloor:
|
||||
ld l, a
|
||||
inc hl
|
||||
pop af
|
||||
ld bc, 4
|
||||
ld bc, wElevatorDataEnd - wElevatorData
|
||||
call AddNTimes
|
||||
inc hl
|
||||
ld de, wBackupWarpNumber
|
||||
ld a, [wElevatorPointerBank]
|
||||
ld bc, 3
|
||||
ld bc, wElevatorDataEnd - wElevatorData - 1
|
||||
call FarCopyBytes
|
||||
ret
|
||||
|
||||
|
@ -40,14 +40,14 @@ FindItemInBallScript::
|
||||
.TryReceiveItem:
|
||||
xor a
|
||||
ld [wScriptVar], a
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wItemBallItemID]
|
||||
ld [wNamedObjectIndexBuffer], a
|
||||
call GetItemName
|
||||
ld hl, wStringBuffer3
|
||||
call CopyName2
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wItemBallItemID]
|
||||
ld [wCurItem], a
|
||||
ld a, [wCurFruit]
|
||||
ld a, [wItemBallQuantity]
|
||||
ld [wItemQuantityChangeBuffer], a
|
||||
ld hl, wNumItems
|
||||
call ReceiveItem
|
||||
|
@ -12,7 +12,7 @@ RepelWoreOffScript::
|
||||
|
||||
HiddenItemScript::
|
||||
opentext
|
||||
readmem wEngineBuffer3
|
||||
readmem wHiddenItemID
|
||||
getitemname STRING_BUFFER_3, USE_SCRIPT_VAR
|
||||
writetext .found_text
|
||||
giveitem ITEM_FROM_MEM
|
||||
@ -42,7 +42,7 @@ HiddenItemScript::
|
||||
text_end
|
||||
|
||||
SetMemEvent:
|
||||
ld hl, wEngineBuffer1
|
||||
ld hl, wHiddenItemEvent
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
|
@ -39,13 +39,13 @@ MomTriesToBuySomething::
|
||||
.ok
|
||||
ld a, PHONE_MOM
|
||||
ld [wCurCaller], a
|
||||
ld bc, wEngineBuffer2
|
||||
ld hl, 0
|
||||
ld bc, wCallerContact
|
||||
ld hl, PHONE_CONTACT_TRAINER_CLASS
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
ld [hl], TRAINER_NONE
|
||||
inc hl
|
||||
ld [hl], 1
|
||||
ld hl, wPhoneScriptPointer - wEngineBuffer2
|
||||
ld [hl], PHONE_MOM
|
||||
ld hl, PHONE_CONTACT_SCRIPT2_BANK
|
||||
add hl, bc
|
||||
ld a, BANK(Mom_GetScriptPointer)
|
||||
ld [hli], a
|
||||
|
@ -500,7 +500,7 @@ TrySurfOW::
|
||||
jr z, .quit
|
||||
|
||||
; Must be facing water.
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wFacingTileID]
|
||||
call GetTileCollision
|
||||
cp WATERTILE
|
||||
jr nz, .quit
|
||||
|
@ -4,29 +4,29 @@ DoPoisonStep::
|
||||
jr z, .no_faint
|
||||
|
||||
xor a
|
||||
ld c, 7
|
||||
ld hl, wEngineBuffer1
|
||||
.loop_clearEngineBuffer1
|
||||
ld c, wPoisonStepDataEnd - wPoisonStepData
|
||||
ld hl, wPoisonStepData
|
||||
.loop_clearPoisonStepData
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .loop_clearEngineBuffer1
|
||||
jr nz, .loop_clearPoisonStepData
|
||||
|
||||
xor a
|
||||
ld [wCurPartyMon], a
|
||||
.loop_check_poison
|
||||
call .DamageMonIfPoisoned
|
||||
jr nc, .not_poisoned
|
||||
; the output flag is stored in c, copy it to the ([wCurPartyMon] + 2)nd EngineBuffer
|
||||
; and set the corresponding flag in wEngineBuffer1
|
||||
; the output flag is stored in c, copy it to [wPoisonStepPartyFlags + [wCurPartyMon]]
|
||||
; and set the corresponding flag in wPoisonStepFlagSum
|
||||
ld a, [wCurPartyMon]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, wEngineBuffer2
|
||||
ld hl, wPoisonStepPartyFlags
|
||||
add hl, de
|
||||
ld [hl], c
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wPoisonStepFlagSum]
|
||||
or c
|
||||
ld [wEngineBuffer1], a
|
||||
ld [wPoisonStepFlagSum], a
|
||||
|
||||
.not_poisoned
|
||||
ld a, [wPartyCount]
|
||||
@ -35,10 +35,10 @@ DoPoisonStep::
|
||||
cp [hl]
|
||||
jr nz, .loop_check_poison
|
||||
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wPoisonStepFlagSum]
|
||||
and %10
|
||||
jr nz, .someone_has_fainted
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wPoisonStepFlagSum]
|
||||
and %01
|
||||
jr z, .no_faint
|
||||
call .PlayPoisonSFX
|
||||
@ -120,7 +120,7 @@ DoPoisonStep::
|
||||
.CheckWhitedOut:
|
||||
xor a
|
||||
ld [wCurPartyMon], a
|
||||
ld de, wEngineBuffer2
|
||||
ld de, wPoisonStepPartyFlags
|
||||
.party_loop
|
||||
push de
|
||||
ld a, [de]
|
||||
|
@ -9,9 +9,9 @@
|
||||
OpenMartDialog::
|
||||
call GetMart
|
||||
ld a, c
|
||||
ld [wEngineBuffer1], a
|
||||
ld [wMartType], a
|
||||
call LoadMartPointer
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wMartType]
|
||||
ld hl, .dialogs
|
||||
rst JumpTable
|
||||
ret
|
||||
@ -24,10 +24,10 @@ OpenMartDialog::
|
||||
dw RooftopSale
|
||||
|
||||
MartDialog:
|
||||
ld a, 0
|
||||
ld [wEngineBuffer1], a
|
||||
ld a, MARTTYPE_STANDARD
|
||||
ld [wMartType], a
|
||||
xor a ; STANDARDMART_HOWMAYIHELPYOU
|
||||
ld [wEngineBuffer5], a
|
||||
ld [wMartJumptableIndex], a
|
||||
call StandardMart
|
||||
ret
|
||||
|
||||
@ -105,8 +105,8 @@ LoadMartPointer:
|
||||
xor a
|
||||
ld bc, wCurMartEnd - wCurMart
|
||||
call ByteFill
|
||||
xor a
|
||||
ld [wEngineBuffer5], a
|
||||
xor a ; STANDARDMART_HOWMAYIHELPYOU
|
||||
ld [wMartJumptableIndex], a
|
||||
ld [wBargainShopFlags], a
|
||||
ld [wFacingDirection], a
|
||||
ret
|
||||
@ -138,13 +138,15 @@ GetMart:
|
||||
const STANDARDMART_QUIT ; 4
|
||||
const STANDARDMART_ANYTHINGELSE ; 5
|
||||
|
||||
STANDARDMART_EXIT EQU -1
|
||||
|
||||
StandardMart:
|
||||
.loop
|
||||
ld a, [wEngineBuffer5]
|
||||
ld a, [wMartJumptableIndex]
|
||||
ld hl, .MartFunctions
|
||||
rst JumpTable
|
||||
ld [wEngineBuffer5], a
|
||||
cp -1
|
||||
ld [wMartJumptableIndex], a
|
||||
cp STANDARDMART_EXIT
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
@ -202,7 +204,7 @@ StandardMart:
|
||||
call ExitMenu
|
||||
ld hl, Text_Mart_ComeAgain
|
||||
call MartTextBox
|
||||
ld a, -1
|
||||
ld a, STANDARDMART_EXIT
|
||||
ret
|
||||
|
||||
.AnythingElse:
|
||||
@ -346,7 +348,7 @@ BuyMenu:
|
||||
|
||||
LoadBuyMenuText:
|
||||
; load text from a nested table
|
||||
; which table is in wEngineBuffer1
|
||||
; which table is in wMartType
|
||||
; which entry is in register a
|
||||
push af
|
||||
call GetMartDialogGroup ; gets a pointer from GetMartDialogGroup.MartTextFunctionPointers
|
||||
@ -376,7 +378,7 @@ MartAskPurchaseQuantity:
|
||||
jp RooftopSaleAskPurchaseQuantity
|
||||
|
||||
GetMartDialogGroup:
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wMartType]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, .MartTextFunctionPointers
|
||||
|
@ -602,8 +602,8 @@ TryObjectEvent:
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
call GetMapScriptsBank
|
||||
ld de, wEngineBuffer1
|
||||
ld bc, 2
|
||||
ld de, wItemBallData
|
||||
ld bc, wItemBallDataEnd - wItemBallData
|
||||
call FarCopyBytes
|
||||
ld a, PLAYEREVENT_ITEMBALL
|
||||
scf
|
||||
@ -638,7 +638,7 @@ TryBGEvent:
|
||||
ret
|
||||
|
||||
.is_bg_event:
|
||||
ld a, [wEngineBuffer3]
|
||||
ld a, [wCurBGEventType]
|
||||
ld hl, .bg_events
|
||||
rst JumpTable
|
||||
ret
|
||||
@ -675,7 +675,7 @@ TryBGEvent:
|
||||
|
||||
.read
|
||||
call PlayTalkObject
|
||||
ld hl, wEngineBuffer4
|
||||
ld hl, wCurBGEventScriptAddr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
@ -689,8 +689,8 @@ TryBGEvent:
|
||||
jp nz, .dontread
|
||||
call PlayTalkObject
|
||||
call GetMapScriptsBank
|
||||
ld de, wEngineBuffer1
|
||||
ld bc, 3
|
||||
ld de, wHiddenItemData
|
||||
ld bc, wHiddenItemDataEnd - wHiddenItemData
|
||||
call FarCopyBytes
|
||||
ld a, BANK(HiddenItemScript)
|
||||
ld hl, HiddenItemScript
|
||||
@ -702,8 +702,8 @@ TryBGEvent:
|
||||
call CheckBGEventFlag
|
||||
jr nz, .dontread
|
||||
call GetMapScriptsBank
|
||||
ld de, wEngineBuffer1
|
||||
ld bc, 3
|
||||
ld de, wHiddenItemData
|
||||
ld bc, wHiddenItemDataEnd - wHiddenItemData
|
||||
call FarCopyBytes
|
||||
jr .dontread
|
||||
|
||||
@ -734,7 +734,7 @@ TryBGEvent:
|
||||
ret
|
||||
|
||||
CheckBGEventFlag:
|
||||
ld hl, wEngineBuffer4
|
||||
ld hl, wCurBGEventScriptAddr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
@ -1076,7 +1076,7 @@ LoadScriptBDE::
|
||||
|
||||
TryTileCollisionEvent::
|
||||
call GetFacingTileCoord
|
||||
ld [wEngineBuffer1], a
|
||||
ld [wFacingTileID], a
|
||||
ld c, a
|
||||
farcall CheckFacingTileForStdScript
|
||||
jr c, .done
|
||||
@ -1087,21 +1087,21 @@ TryTileCollisionEvent::
|
||||
jr .done
|
||||
|
||||
.whirlpool
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wFacingTileID]
|
||||
call CheckWhirlpoolTile
|
||||
jr nz, .waterfall
|
||||
farcall TryWhirlpoolOW
|
||||
jr .done
|
||||
|
||||
.waterfall
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wFacingTileID]
|
||||
call CheckWaterfallTile
|
||||
jr nz, .headbutt
|
||||
farcall TryWaterfallOW
|
||||
jr .done
|
||||
|
||||
.headbutt
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wFacingTileID]
|
||||
call CheckHeadbuttTreeTile
|
||||
jr nz, .surf
|
||||
farcall TryHeadbuttOW
|
||||
|
@ -4,7 +4,7 @@ DoPlayerMovement::
|
||||
ld a, movement_step_sleep
|
||||
ld [wMovementAnimation], a
|
||||
xor a
|
||||
ld [wd041], a
|
||||
ld [wWalkingIntoEdgeWarp], a
|
||||
call .TranslateIntoMovement
|
||||
ld c, a
|
||||
ld a, [wMovementAnimation]
|
||||
@ -98,7 +98,7 @@ DoPlayerMovement::
|
||||
jr z, .Standing
|
||||
|
||||
; Walking into an edge warp won't bump.
|
||||
ld a, [wEngineBuffer4]
|
||||
ld a, [wWalkingIntoEdgeWarp]
|
||||
and a
|
||||
jr nz, .CantMove
|
||||
call .BumpSound
|
||||
@ -321,17 +321,17 @@ DoPlayerMovement::
|
||||
|
||||
.TrySurf:
|
||||
call .CheckSurfPerms
|
||||
ld [wd040], a
|
||||
ld [wWalkingIntoLand], a
|
||||
jr c, .surf_bump
|
||||
|
||||
call .CheckNPC
|
||||
ld [wd03f], a
|
||||
ld [wWalkingIntoNPC], a
|
||||
and a
|
||||
jr z, .surf_bump
|
||||
cp 2
|
||||
jr z, .surf_bump
|
||||
|
||||
ld a, [wd040]
|
||||
ld a, [wWalkingIntoLand]
|
||||
and a
|
||||
jr nz, .ExitWater
|
||||
|
||||
@ -395,7 +395,7 @@ DoPlayerMovement::
|
||||
.CheckWarp:
|
||||
; Bug: Since no case is made for STANDING here, it will check
|
||||
; [.edgewarps + $ff]. This resolves to $3e at $8035a.
|
||||
; This causes wd041 to be nonzero when standing on tile $3e,
|
||||
; This causes wWalkingIntoEdgeWarp to be nonzero when standing on tile $3e,
|
||||
; making bumps silent.
|
||||
|
||||
ld a, [wWalkingDirection]
|
||||
@ -409,8 +409,8 @@ DoPlayerMovement::
|
||||
cp [hl]
|
||||
jr nz, .not_warp
|
||||
|
||||
ld a, 1
|
||||
ld [wd041], a
|
||||
ld a, TRUE
|
||||
ld [wWalkingIntoEdgeWarp], a
|
||||
ld a, [wWalkingDirection]
|
||||
; This is in the wrong place.
|
||||
cp STANDING
|
||||
|
@ -518,7 +518,7 @@ TrainerWalkToPlayer:
|
||||
call InitMovementBuffer
|
||||
ld a, movement_step_sleep
|
||||
call AppendToMovementBuffer
|
||||
ld a, [wd03f]
|
||||
ld a, [wWalkingIntoNPC]
|
||||
dec a
|
||||
jr z, .TerminateStep
|
||||
ldh a, [hLastTalked]
|
||||
|
@ -637,7 +637,7 @@ PocketIsFullText:
|
||||
|
||||
Script_pokemart:
|
||||
; script command 0x94
|
||||
; parameters: dialog_id, mart_id
|
||||
; parameters: mart_type, mart_id
|
||||
|
||||
call GetScriptByte
|
||||
ld c, a
|
||||
@ -765,7 +765,7 @@ Script_trainertext:
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wSeenTrainerBank]
|
||||
ld b, a
|
||||
call MapTextbox
|
||||
ret
|
||||
@ -777,7 +777,7 @@ Script_scripttalkafter:
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wSeenTrainerBank]
|
||||
ld b, a
|
||||
jp ScriptJump
|
||||
|
||||
@ -787,7 +787,7 @@ Script_trainerflagaction:
|
||||
|
||||
xor a
|
||||
ld [wScriptVar], a
|
||||
ld hl, wd041
|
||||
ld hl, wTempTrainerEventFlag
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
|
@ -163,12 +163,13 @@ CheckPhoneContactTimeOfDay:
|
||||
|
||||
ChooseRandomCaller:
|
||||
; If no one is available to call, don't return anything.
|
||||
ld a, [wEngineBuffer3]
|
||||
ld a, [wNumAvailableCallers]
|
||||
and a
|
||||
jr z, .NothingToSample
|
||||
|
||||
; Sample a random number between 0 and 31.
|
||||
; Store the number of available callers in c.
|
||||
ld c, a
|
||||
; Sample a random number between 0 and 31.
|
||||
call Random
|
||||
ldh a, [hRandomAdd]
|
||||
swap a
|
||||
@ -178,7 +179,7 @@ ChooseRandomCaller:
|
||||
; Return the caller ID you just sampled.
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld hl, wEngineBuffer4
|
||||
ld hl, wAvailableCallers
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
scf
|
||||
@ -191,23 +192,23 @@ ChooseRandomCaller:
|
||||
GetAvailableCallers:
|
||||
farcall CheckTime
|
||||
ld a, c
|
||||
ld [wEngineBuffer1], a
|
||||
ld hl, wEngineBuffer3
|
||||
ld bc, 11
|
||||
ld [wCheckedTime], a
|
||||
ld hl, wNumAvailableCallers
|
||||
ld bc, CONTACT_LIST_SIZE + 1
|
||||
xor a
|
||||
call ByteFill
|
||||
ld de, wPhoneList
|
||||
ld a, CONTACT_LIST_SIZE
|
||||
|
||||
.loop
|
||||
ld [wEngineBuffer2], a
|
||||
ld [wPhoneListIndex], a
|
||||
ld a, [de]
|
||||
and a
|
||||
jr z, .not_good_for_call
|
||||
ld hl, PhoneContacts + PHONE_CONTACT_SCRIPT2_TIME
|
||||
ld bc, PHONE_TABLE_WIDTH
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
call AddNTimes
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wCheckedTime]
|
||||
and [hl]
|
||||
jr z, .not_good_for_call
|
||||
ld bc, PHONE_CONTACT_MAP_GROUP - PHONE_CONTACT_SCRIPT2_TIME
|
||||
@ -220,18 +221,18 @@ GetAvailableCallers:
|
||||
cp [hl]
|
||||
jr z, .not_good_for_call
|
||||
.different_map
|
||||
ld a, [wEngineBuffer3]
|
||||
ld a, [wNumAvailableCallers]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
inc a
|
||||
ld [wEngineBuffer3], a
|
||||
ld hl, wEngineBuffer4
|
||||
ld [wNumAvailableCallers], a
|
||||
ld hl, wAvailableCallers
|
||||
add hl, bc
|
||||
ld a, [de]
|
||||
ld [hl], a
|
||||
.not_good_for_call
|
||||
inc de
|
||||
ld a, [wEngineBuffer2]
|
||||
ld a, [wPhoneListIndex]
|
||||
dec a
|
||||
jr nz, .loop
|
||||
ret
|
||||
@ -261,7 +262,7 @@ CheckSpecialPhoneCall::
|
||||
push hl
|
||||
call LoadCallerScript
|
||||
pop hl
|
||||
ld de, wPhoneScriptPointer
|
||||
ld de, wCallerContact + PHONE_CONTACT_SCRIPT2_BANK
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
@ -323,7 +324,7 @@ Function90199:
|
||||
ld a, b
|
||||
ld [wCurCaller], a
|
||||
ld hl, PhoneContacts
|
||||
ld bc, PHONE_TABLE_WIDTH
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
@ -398,13 +399,13 @@ LoadCallerScript:
|
||||
|
||||
.actualcaller
|
||||
ld hl, PhoneContacts
|
||||
ld bc, 12
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
ld a, e
|
||||
call AddNTimes
|
||||
ld a, BANK(PhoneContacts)
|
||||
.proceed
|
||||
ld de, wEngineBuffer2
|
||||
ld bc, 12
|
||||
ld de, wCallerContact
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
call FarCopyBytes
|
||||
ret
|
||||
|
||||
@ -422,7 +423,7 @@ WrongNumber:
|
||||
Script_ReceivePhoneCall:
|
||||
refreshscreen
|
||||
callasm RingTwice_StartCall
|
||||
memcall wPhoneScriptPointer
|
||||
memcall wCallerContact + PHONE_CONTACT_SCRIPT2_BANK
|
||||
waitbutton
|
||||
callasm HangUp
|
||||
closetext
|
||||
@ -620,7 +621,7 @@ CheckCanDeletePhoneNumber:
|
||||
GetCallerTrainerClass:
|
||||
push hl
|
||||
ld hl, PhoneContacts + PHONE_CONTACT_TRAINER_CLASS
|
||||
ld bc, PHONE_TABLE_WIDTH
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld b, [hl]
|
||||
@ -687,7 +688,7 @@ GetCallerLocation:
|
||||
push de
|
||||
ld a, [wCurCaller]
|
||||
ld hl, PhoneContacts + PHONE_CONTACT_MAP_GROUP
|
||||
ld bc, PHONE_TABLE_WIDTH
|
||||
ld bc, PHONE_CONTACT_SIZE
|
||||
call AddNTimes
|
||||
ld b, [hl]
|
||||
inc hl
|
||||
|
@ -1782,7 +1782,7 @@ CheckFacingBGEvent::
|
||||
ret
|
||||
|
||||
CheckIfFacingTileCoordIsBGEvent::
|
||||
; Checks to see if you are facing a BG event. If so, copies it into wEngineBuffer1 and sets carry.
|
||||
; Checks to see if you are facing a BG event. If so, copies it into wCurBGEvent and sets carry.
|
||||
ld hl, wCurMapBGEventsPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@ -1813,7 +1813,7 @@ CheckIfFacingTileCoordIsBGEvent::
|
||||
|
||||
.copysign
|
||||
pop hl
|
||||
ld de, wCurBGEventYCoord
|
||||
ld de, wCurBGEvent
|
||||
ld bc, BG_EVENT_SIZE
|
||||
call CopyBytes
|
||||
scf
|
||||
@ -1836,7 +1836,7 @@ CheckCurrentMapCoordEvents::
|
||||
ret
|
||||
|
||||
.CoordEventCheck:
|
||||
; Checks to see if you are standing on a coord event. If yes, copies the event to wEngineBuffer1 and sets carry.
|
||||
; Checks to see if you are standing on a coord event. If yes, copies the event to wCurCoordEvent and sets carry.
|
||||
ld hl, wCurMapCoordEventsPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@ -1885,7 +1885,7 @@ CheckCurrentMapCoordEvents::
|
||||
|
||||
.copy_coord_event
|
||||
pop hl
|
||||
ld de, wCurCoordEventSceneID
|
||||
ld de, wCurCoordEvent
|
||||
ld bc, COORD_EVENT_SIZE
|
||||
call CopyBytes
|
||||
scf
|
||||
|
@ -95,31 +95,31 @@ _CheckTrainerBattle::
|
||||
pop af
|
||||
ldh [hLastTalked], a
|
||||
ld a, b
|
||||
ld [wEngineBuffer2], a
|
||||
ld [wSeenTrainerDistance], a
|
||||
ld a, c
|
||||
ld [wEngineBuffer3], a
|
||||
ld [wSeenTrainerDirection], a
|
||||
jr LoadTrainer_continue
|
||||
|
||||
TalkToTrainer::
|
||||
ld a, 1
|
||||
ld [wEngineBuffer2], a
|
||||
ld [wSeenTrainerDistance], a
|
||||
ld a, -1
|
||||
ld [wEngineBuffer3], a
|
||||
ld [wSeenTrainerDirection], a
|
||||
|
||||
LoadTrainer_continue::
|
||||
call GetMapScriptsBank
|
||||
ld [wEngineBuffer1], a
|
||||
ld [wSeenTrainerBank], a
|
||||
|
||||
ldh a, [hLastTalked]
|
||||
call GetMapObject
|
||||
|
||||
ld hl, MAPOBJECT_SCRIPT_POINTER
|
||||
add hl, bc
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wSeenTrainerBank]
|
||||
call GetFarHalfword
|
||||
ld de, wTempTrainer
|
||||
ld bc, wTempTrainerEnd - wTempTrainer
|
||||
ld a, [wEngineBuffer1]
|
||||
ld a, [wSeenTrainerBank]
|
||||
call FarCopyBytes
|
||||
xor a
|
||||
ld [wRunningTrainerBattleScript], a
|
||||
@ -136,7 +136,7 @@ FacingPlayerDistance_bc::
|
||||
|
||||
FacingPlayerDistance::
|
||||
; Return carry if the sprite at bc is facing the player,
|
||||
; and its distance in d.
|
||||
; its distance in d, and its direction in e.
|
||||
|
||||
ld hl, OBJECT_NEXT_MAP_X ; x
|
||||
add hl, bc
|
||||
|
@ -692,10 +692,10 @@ Function171ccd:
|
||||
ld de, wBGPals1
|
||||
ld bc, 8 palettes
|
||||
call CopyBytes
|
||||
ld hl, wEngineBuffer5
|
||||
ld a, $ff
|
||||
ld hl, wOBPals1 palette 0 color 1
|
||||
ld a, LOW(PALRGB_WHITE)
|
||||
ld [hli], a
|
||||
ld a, $7f
|
||||
ld a, HIGH(PALRGB_WHITE)
|
||||
ld [hl], a
|
||||
call SetPalettes
|
||||
pop af
|
||||
|
143
wram.asm
143
wram.asm
@ -755,7 +755,6 @@ wc668:: ds 32
|
||||
wc688:: ds 2
|
||||
wc68a:: ds 4
|
||||
ds 66
|
||||
|
||||
ENDU ; c6d0
|
||||
|
||||
; This union spans 280 bytes from c6d0 to c7e8.
|
||||
@ -1765,55 +1764,10 @@ wd036:: ds 2
|
||||
ds 6
|
||||
|
||||
UNION ; d03e
|
||||
; engine buffers
|
||||
wEngineBuffer1:: db
|
||||
wEngineBuffer2:: db
|
||||
wEngineBuffer3:: db
|
||||
wEngineBuffer4:: db
|
||||
wEngineBuffer5:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; menu items list
|
||||
wMenuItemsList:: ds 16
|
||||
wMenuItemsListEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; fruit tree data
|
||||
wCurFruitTree:: db
|
||||
wCurFruit:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; elevator data
|
||||
wElevatorPointerBank:: db
|
||||
wElevatorPointer:: dw
|
||||
wElevatorOriginFloor:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; coord event data
|
||||
wCurCoordEventSceneID:: db
|
||||
wCurCoordEventMapY:: db
|
||||
wCurCoordEventMapX:: db
|
||||
ds 1
|
||||
wCurCoordEventScriptAddr:: dw
|
||||
|
||||
NEXTU ; d03e
|
||||
; BG event data
|
||||
wCurBGEventYCoord:: db
|
||||
wCurBGEventXCoord:: db
|
||||
wCurBGEventType:: db
|
||||
wCurBGEventScriptAddr:: dw
|
||||
|
||||
NEXTU ; d03e
|
||||
; mart data
|
||||
ds 1
|
||||
wMartPointerBank:: db
|
||||
wMartPointer:: dw
|
||||
ds 1
|
||||
wBargainShopFlags:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; trainer data
|
||||
ds 3
|
||||
wSeenTrainerBank:: db
|
||||
wSeenTrainerDistance:: db
|
||||
wSeenTrainerDirection:: db
|
||||
wTempTrainer::
|
||||
wTempTrainerEventFlag:: dw
|
||||
wTempTrainerClass:: db
|
||||
@ -1825,12 +1779,70 @@ wScriptAfterPointer:: dw
|
||||
wRunningTrainerBattleScript:: db
|
||||
wTempTrainerEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; menu items list
|
||||
wMenuItemsList:: ds 16
|
||||
wMenuItemsListEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; fruit tree data
|
||||
wCurFruitTree:: db
|
||||
wCurFruit:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; item ball data
|
||||
wItemBallData::
|
||||
wItemBallItemID:: db
|
||||
wItemBallQuantity:: db
|
||||
wItemBallDataEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; hidden item data
|
||||
wHiddenItemData::
|
||||
wHiddenItemEvent:: dw
|
||||
wHiddenItemID:: db
|
||||
wHiddenItemDataEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; elevator data
|
||||
wElevatorData::
|
||||
wElevatorPointerBank:: db
|
||||
wElevatorPointer:: dw
|
||||
wElevatorOriginFloor:: db
|
||||
wElevatorDataEnd::
|
||||
|
||||
NEXTU ; d03e
|
||||
; coord event data
|
||||
wCurCoordEvent::
|
||||
wCurCoordEventSceneID:: db
|
||||
wCurCoordEventMapY:: db
|
||||
wCurCoordEventMapX:: db
|
||||
ds 1
|
||||
wCurCoordEventScriptAddr:: dw
|
||||
|
||||
NEXTU ; d03e
|
||||
; BG event data
|
||||
wCurBGEvent::
|
||||
wCurBGEventYCoord:: db
|
||||
wCurBGEventXCoord:: db
|
||||
wCurBGEventType:: db
|
||||
wCurBGEventScriptAddr:: dw
|
||||
|
||||
NEXTU ; d03e
|
||||
; mart data
|
||||
wMartType:: db
|
||||
wMartPointerBank:: db
|
||||
wMartPointer:: dw
|
||||
wMartJumptableIndex:: db
|
||||
wBargainShopFlags:: db
|
||||
|
||||
NEXTU ; d03e
|
||||
; player movement data
|
||||
wCurInput:: db
|
||||
wd03f:: db
|
||||
wd040:: db
|
||||
wd041:: db
|
||||
wCurInput::
|
||||
wFacingTileID:: db
|
||||
wWalkingIntoNPC:: db
|
||||
wWalkingIntoLand:: db
|
||||
wWalkingIntoEdgeWarp:: db
|
||||
wMovementAnimation:: db
|
||||
wWalkingDirection:: db
|
||||
wFacingDirection:: db
|
||||
@ -1846,17 +1858,32 @@ NEXTU ; d03e
|
||||
wJumpStdScriptBuffer:: ds 3
|
||||
|
||||
NEXTU ; d03e
|
||||
; phone script pointer
|
||||
ds 10
|
||||
wPhoneScriptPointer:: dw
|
||||
; phone script data
|
||||
wCheckedTime:: db
|
||||
wPhoneListIndex:: db
|
||||
wNumAvailableCallers:: db
|
||||
wAvailableCallers:: ds CONTACT_LIST_SIZE
|
||||
|
||||
NEXTU ; d03e
|
||||
; phone caller contact
|
||||
ds 1
|
||||
wCallerContact:: ds PHONE_CONTACT_SIZE
|
||||
|
||||
NEXTU ; d03e
|
||||
; backup menu data
|
||||
ds 7
|
||||
wMenuCursorBufferBackup:: db
|
||||
wMenuScrollPositionBackup:: db
|
||||
ds 31
|
||||
ENDU ; d066
|
||||
|
||||
NEXTU ; d03e
|
||||
; poison step data
|
||||
wPoisonStepData::
|
||||
wPoisonStepFlagSum:: db
|
||||
wPoisonStepPartyFlags:: ds PARTY_LENGTH
|
||||
wPoisonStepDataEnd::
|
||||
ENDU ; d04f
|
||||
|
||||
ds 23
|
||||
ENDU ; d066
|
||||
|
||||
wTMHMMoveNameBackup:: ds MOVE_NAME_LENGTH ; d066
|
||||
|
Loading…
Reference in New Issue
Block a user