From 2184b60a0cb5e3d1c2b64f7787f3fc0da5efbcab Mon Sep 17 00:00:00 2001 From: Rangi Date: Mon, 8 Apr 2019 18:50:10 -0400 Subject: [PATCH] Identify and eliminate wEngineBuffer1-5 --- constants/phone_constants.asm | 2 +- docs/bugs_and_glitches.md | 6 +- docs/event_commands.md | 2 +- engine/events/elevator.asm | 6 +- engine/events/misc_scripts.asm | 6 +- engine/events/misc_scripts_2.asm | 4 +- engine/events/mom_phone.asm | 10 +- engine/events/overworld.asm | 2 +- engine/events/poisonstep.asm | 24 ++--- engine/items/mart.asm | 28 +++--- engine/overworld/events.asm | 26 ++--- engine/overworld/player_movement.asm | 16 +-- engine/overworld/player_object.asm | 2 +- engine/overworld/scripting.asm | 8 +- engine/phone/phone.asm | 43 ++++---- home/map.asm | 8 +- home/trainers.asm | 16 +-- mobile/mobile_5c.asm | 6 +- wram.asm | 143 ++++++++++++++++----------- 19 files changed, 194 insertions(+), 164 deletions(-) diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm index 058772f2d..2005bd3cb 100644 --- a/constants/phone_constants.asm +++ b/constants/phone_constants.asm @@ -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 diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 2d2b48fba..8d6ce988d 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -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 diff --git a/docs/event_commands.md b/docs/event_commands.md index f1fa9ecb5..0a114154f 100644 --- a/docs/event_commands.md +++ b/docs/event_commands.md @@ -489,7 +489,7 @@ If item_id = `USE_SCRIPT_VAR`, then it uses `[wScriptVar]` i ## `$93`: `endall` -## `$94`: pokemart dialog_id, mart_id +## `$94`: pokemart mart_type, mart_id ## `$95`: elevator floor_list diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm index 1f8c902ca..71b25bef7 100644 --- a/engine/events/elevator.asm +++ b/engine/events/elevator.asm @@ -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 diff --git a/engine/events/misc_scripts.asm b/engine/events/misc_scripts.asm index e2ea5439a..653a9eb35 100644 --- a/engine/events/misc_scripts.asm +++ b/engine/events/misc_scripts.asm @@ -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 diff --git a/engine/events/misc_scripts_2.asm b/engine/events/misc_scripts_2.asm index 515d8d396..6b675bea8 100644 --- a/engine/events/misc_scripts_2.asm +++ b/engine/events/misc_scripts_2.asm @@ -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 diff --git a/engine/events/mom_phone.asm b/engine/events/mom_phone.asm index 27144b339..ef3f6457b 100644 --- a/engine/events/mom_phone.asm +++ b/engine/events/mom_phone.asm @@ -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 diff --git a/engine/events/overworld.asm b/engine/events/overworld.asm index 2e98dcc6c..788b0eb92 100644 --- a/engine/events/overworld.asm +++ b/engine/events/overworld.asm @@ -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 diff --git a/engine/events/poisonstep.asm b/engine/events/poisonstep.asm index 6d4106a43..70da92f13 100644 --- a/engine/events/poisonstep.asm +++ b/engine/events/poisonstep.asm @@ -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] diff --git a/engine/items/mart.asm b/engine/items/mart.asm index 59fe89dc9..ef06c4d11 100644 --- a/engine/items/mart.asm +++ b/engine/items/mart.asm @@ -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 diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index a84d72db4..b3efa9d86 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -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 diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index e8f45d913..09d6b47de 100644 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -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 diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index 4cdbaa313..9f1b13dd9 100644 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -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] diff --git a/engine/overworld/scripting.asm b/engine/overworld/scripting.asm index a836bfe94..c622dc9db 100644 --- a/engine/overworld/scripting.asm +++ b/engine/overworld/scripting.asm @@ -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] diff --git a/engine/phone/phone.asm b/engine/phone/phone.asm index c4c47d171..9582b5921 100644 --- a/engine/phone/phone.asm +++ b/engine/phone/phone.asm @@ -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 diff --git a/home/map.asm b/home/map.asm index 6600cd7db..391500eb2 100644 --- a/home/map.asm +++ b/home/map.asm @@ -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 diff --git a/home/trainers.asm b/home/trainers.asm index 8d13cf5b1..9d012f719 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -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 diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm index 7ba1e737f..85773ef4a 100644 --- a/mobile/mobile_5c.asm +++ b/mobile/mobile_5c.asm @@ -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 diff --git a/wram.asm b/wram.asm index 686b17f04..ddd360d73 100644 --- a/wram.asm +++ b/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