summaryrefslogtreecommitdiff
path: root/scripts/oakslab.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/oakslab.asm')
-rwxr-xr-xscripts/oakslab.asm528
1 files changed, 273 insertions, 255 deletions
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm
index 8f23cd3e..c5ca2e6e 100755
--- a/scripts/oakslab.asm
+++ b/scripts/oakslab.asm
@@ -1,6 +1,5 @@
OaksLabScript: ; 1cb0e (7:4b0e)
- ld a, [wd74b]
- bit 6, a
+ CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
call nz, OaksLabScript_1d076
ld a, $1
ld [wAutoTextBoxDrawingControl], a
@@ -32,14 +31,13 @@ OaksLabScriptPointers: ; 1cb28 (7:4b28)
dw OaksLabScript18
OaksLabScript0: ; 1cb4e (7:4b4e)
- ld a, [wd74b]
- bit 7, a
+ CheckEvent EVENT_OAK_APPEARED_IN_PALLET
ret z
ld a, [wNPCMovementScriptFunctionNum]
and a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld hl, wd72e
res 4, [hl]
@@ -59,17 +57,20 @@ OaksLabScript1: ; 1cb6e (7:4b6e)
ret
OakEntryMovement: ; 1cb7e (7:4b7e)
- db $40,$40,$40,$FF
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
OaksLabScript2: ; 1cb82 (7:4b82)
ld a, [wd730]
bit 0, a
ret nz
ld a, HS_OAKS_LAB_OAK_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OAKS_LAB_OAK_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $3
@@ -87,12 +88,12 @@ OaksLabScript3: ; 1cba2 (7:4ba2)
ld a, $1
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $5
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $4
@@ -100,20 +101,19 @@ OaksLabScript3: ; 1cba2 (7:4ba2)
ret
PlayerEntryMovementRLE: ; 1cbcf (7:4bcf)
- db $40, $8, $ff
+ db D_UP,$8
+ db $ff
OaksLabScript4: ; 1cbd2 (7:4bd2)
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
- ld hl, wd747
- set 0, [hl]
- ld hl, wd74b
- set 0, [hl]
+ SetEvent EVENT_FOLLOWED_OAK_INTO_LAB
+ SetEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call UpdateSprites
ld hl, W_FLAGS_D733
@@ -128,22 +128,21 @@ OaksLabScript5: ; 1cbfd (7:4bfd)
ld a, $fc
ld [wJoyIgnore], a
ld a, $11
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $12
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $13
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, $14
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 1, [hl]
+ SetEvent EVENT_OAK_ASKED_TO_CHOOSE_MON
xor a
ld [wJoyIgnore], a
@@ -157,25 +156,25 @@ OaksLabScript6: ; 1cc36 (7:4c36)
ret nz
ld a, $5
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
ld [H_SPRITEINDEX], a
xor a
- ld [$ff8d], a
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call UpdateSprites
ld a, $c
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $40
+ ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld a, $7
ld [W_OAKSLABCURSCRIPT], a
@@ -194,46 +193,70 @@ OaksLabScript7: ; 1cc72 (7:4c72)
OaksLabScript8: ; 1cc80 (7:4c80)
ld a, [W_PLAYERSTARTER]
cp STARTER1
- jr z, .Charmander ; 0x1cc85 $6
+ jr z, .Charmander
cp STARTER2
- jr z, .Squirtle ; 0x1cc89 $1d
- jr .Bulbasaur ; 0x1cc8b $38
+ jr z, .Squirtle
+ jr .Bulbasaur
.Charmander
ld de, .MiddleBallMovement1
ld a, [W_YCOORD]
cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3 ; 0x1cc95 $5c
+ jr z, .asm_1ccf3
ld de, .MiddleBallMovement2
- jr .asm_1ccf3 ; 0x1cc9a $57
+ jr .asm_1ccf3
.MiddleBallMovement1
- db 0,0,$C0,$C0,$C0,$40,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db $FF
+
.MiddleBallMovement2
- db 0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.Squirtle
ld de, .RightBallMovement1
ld a, [W_YCOORD]
cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3 ; 0x1ccb0 $41
+ jr z, .asm_1ccf3
ld de, .RightBallMovement2
- jr .asm_1ccf3 ; 0x1ccb5 $3c
+ jr .asm_1ccf3
.RightBallMovement1
- db 0,0,$C0,$C0,$C0,$C0,$40,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_UP
+ db $FF
+
.RightBallMovement2
- db 0,$C0,$C0,$C0,$C0,$FF
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.Bulbasaur
ld de, .LeftBallMovement1
ld a, [W_XCOORD]
cp $9 ; is the player standing to the right of the table?
- jr nz, .asm_1ccf3 ; 0x1cccd $24
+ jr nz, .asm_1ccf3
push hl
ld a, $1
ld [H_SPRITEINDEX], a
ld a, $4
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
push hl
ld [hl], $4c
@@ -247,12 +270,14 @@ OaksLabScript8: ; 1cc80 (7:4c80)
ld [hl], $9
ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that
pop hl
- jr .asm_1ccf3 ; 0x1cced $4
+ jr .asm_1ccf3
.LeftBallMovement1
- db $00,$C0 ; not yet terminated!
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_RIGHT ; not yet terminated!
.LeftBallMovement2
- db $C0,$FF
+ db NPC_MOVEMENT_RIGHT
+ db $FF
.asm_1ccf3
ld a, $1
@@ -271,43 +296,42 @@ OaksLabScript9: ; 1cd00 (7:4d00)
ld [wJoyIgnore], a
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $d
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, [wTrainerEngageDistance]
+ ld a, [wRivalStarterBallSpriteIndex]
cp $2
- jr nz, .asm_1cd28 ; 0x1cd22 $4
+ jr nz, .asm_1cd28
ld a, HS_STARTER_BALL_1
- jr .asm_1cd32 ; 0x1cd26 $a
+ jr .asm_1cd32
.asm_1cd28
cp $3
- jr nz, .asm_1cd30 ; 0x1cd2a $4
+ jr nz, .asm_1cd30
ld a, HS_STARTER_BALL_2
- jr .asm_1cd32 ; 0x1cd2e $2
+ jr .asm_1cd32
.asm_1cd30
ld a, HS_STARTER_BALL_3
.asm_1cd32
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call Delay3
- ld a, [wWhichTrade]
+ ld a, [wRivalStarterTemp]
ld [W_RIVALSTARTER], a
ld [wcf91], a
ld [wd11e], a
call GetMonName
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $e
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 2, [hl]
+ SetEvent EVENT_GOT_STARTER
xor a
ld [wJoyIgnore], a
@@ -321,26 +345,26 @@ OaksLabScript10: ; 1cd6d (7:4d6d)
ret nz
ld a, $1
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
- call PlayMusic ; play music
+ call PlayMusic
ld a, $f
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
- ld [$ff9b], a
+ ld [hNPCPlayerRelativePosPerspective], a
ld a, $1
swap a
- ld [$ff95], a
+ ld [hNPCSpriteOffset], a
predef CalcPositionOfPlayerRelativeToNPC
- ld a, [$ff95]
+ ld a, [hNPCPlayerYDistance]
dec a
- ld [$ff95], a
+ ld [hNPCPlayerYDistance], a
predef FindPathToPlayer
ld de, wNPCMovementDirections2
ld a, $1
@@ -357,18 +381,18 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
ret nz
; define which team rival uses, and fight it
- ld a, SONY1 + $C8
+ ld a, OPP_SONY1
ld [W_CUROPPONENT], a
ld a, [W_RIVALSTARTER]
cp STARTER2
- jr nz, .NotSquirtle ; 0x1cdc9 $4
+ jr nz, .NotSquirtle
ld a, $1
- jr .done ; 0x1cdcd $a
+ jr .done
.NotSquirtle
cp STARTER3
- jr nz, .Charmander ; 0x1cdd1 $4
+ jr nz, .Charmander
ld a, $2
- jr .done ; 0x1cdd5 $2
+ jr .done
.Charmander
ld a, $3
.done
@@ -384,8 +408,8 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
set 7, [hl]
xor a
ld [wJoyIgnore], a
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
ld a, $c
ld [W_OAKSLABCURSCRIPT], a
ret
@@ -393,30 +417,29 @@ OaksLabScript11: ; 1cdb9 (7:4db9)
OaksLabScript12: ; 1ce03 (7:4e03)
ld a, $f0
ld [wJoyIgnore], a
- ld a, $8
- ld [wd528], a
+ ld a, PLAYER_DIR_UP
+ ld [wPlayerMovingDirection], a
call UpdateSprites
ld a, $1
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $1
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
predef HealParty
- ld hl, wd74b
- set 3, [hl]
+ SetEvent EVENT_BATTLED_RIVAL_IN_OAKS_LAB
ld a, $d
ld [W_OAKSLABCURSCRIPT], a
ret
OaksLabScript13: ; 1ce32 (7:4e32)
- ld c, $14
+ ld c, 20
call DelayFrames
ld a, $10
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
callba Music_RivalAlternateStart
ld a, $1
@@ -426,52 +449,59 @@ OaksLabScript13: ; 1ce32 (7:4e32)
ld a, [W_XCOORD]
cp $4
; move left or right depending on where the player is standing
- jr nz, .asm_1ce5b ; 0x1ce55 $4
- ld a, $c0
- jr .asm_1ce5d ; 0x1ce59 $2
-.asm_1ce5b
- ld a, $80
-.asm_1ce5d
- ld [wcc5b], a
+ jr nz, .moveLeft
+ ld a, NPC_MOVEMENT_RIGHT
+ jr .next
+.moveLeft
+ ld a, NPC_MOVEMENT_LEFT
+.next
+ ld [wNPCMovementDirections], a
ld a, $e
ld [W_OAKSLABCURSCRIPT], a
ret
.RivalExitMovement
- db $E0,$00,$00,$00,$00,$00,$FF
+ db $E0 ; change sprite facing direction
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
OaksLabScript14: ; 1ce6d (7:4e6d)
ld a, [wd730]
bit 0, a
- jr nz, .asm_1ce8c ; 0x1ce72 $18
+ jr nz, .asm_1ce8c
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
call PlayDefaultMusic ; reset to map music
ld a, $12
ld [W_OAKSLABCURSCRIPT], a
- jr .done ; 0x1ce8a $23
+ jr .done
+; make the player keep facing the rival as he walks away
.asm_1ce8c
- ld a, [wcf0f]
+ ld a, [wNPCNumScriptedSteps]
cp $5
- jr nz, .asm_1cea8 ; 0x1ce91 $15
+ jr nz, .asm_1cea8
ld a, [W_XCOORD]
cp $4
- jr nz, .asm_1cea1 ; 0x1ce98 $7
- ld a, $c
+ jr nz, .asm_1cea1
+ ld a, SPRITE_FACING_RIGHT
ld [wSpriteStateData1 + 9], a
- jr .done ; 0x1ce9f $e
+ jr .done
.asm_1cea1
- ld a, $8
+ ld a, SPRITE_FACING_LEFT
ld [wSpriteStateData1 + 9], a
- jr .done ; 0x1cea6 $7
+ jr .done
.asm_1cea8
cp $4
ret nz
- xor a
+ xor a ; ld a, SPRITE_FACING_DOWN
ld [wSpriteStateData1 + 9], a
.done
ret
@@ -481,22 +511,22 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld [hJoyHeld], a
call EnableAutoTextBoxDrawing
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $15
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call OaksLabScript_1d02b
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, [wNPCMovementDirections2Index]
- ld [wd157], a
- ld b, $0
+ ld [wSavedNPCMovementDirections2Index], a
+ ld b, 0
ld c, a
ld hl, wNPCMovementDirections2
- ld a, $40
+ ld a, NPC_MOVEMENT_UP
call FillMemory
ld [hl], $ff
ld a, $1
@@ -508,16 +538,16 @@ OaksLabScript15: ; 1ceb0 (7:4eb0)
ld [W_OAKSLABCURSCRIPT], a
ret
-OaksLabScript_1cefd ; 1cefd (7:4efd)
+OaksLabScript_1cefd: ; 1cefd (7:4efd)
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $4
- ld [$ff8d], a
+ ld a, SPRITE_FACING_UP
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $8
ld [H_SPRITEINDEX], a
- xor a
- ld [$ff8d], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
OaksLabScript16: ; 1cf12 (7:4f12)
@@ -530,61 +560,59 @@ OaksLabScript16: ; 1cf12 (7:4f12)
ld [wJoyIgnore], a
call OaksLabScript_1cefd
ld a, $16
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
call OaksLabScript_1cefd
ld a, $17
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
call OaksLabScript_1cefd
ld a, $18
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call DelayFrame
ld a, $19
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
call Delay3
ld a, HS_POKEDEX_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_POKEDEX_2
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
call OaksLabScript_1cefd
ld a, $1a
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
ld [H_SPRITEINDEX], a
- ld a, $c
- ld [$ff8d], a
+ ld a, SPRITE_FACING_RIGHT
+ ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
call Delay3
ld a, $1b
- ld [$ff8c], a
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld hl, wd74b
- set 5, [hl]
- ld hl, wd74e
- set 0, [hl]
+ SetEvent EVENT_GOT_POKEDEX
+ SetEvent EVENT_OAK_GOT_PARCEL
ld a, HS_LYING_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_OLD_MAN
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
- ld a, [wd157]
- ld b, $0
+ ld a, [wSavedNPCMovementDirections2Index]
+ ld b, 0
ld c, a
ld hl, wNPCMovementDirections2
- xor a
+ xor a ; NPC_MOVEMENT_DOWN
call FillMemory
ld [hl], $ff
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
@@ -602,14 +630,13 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
ret nz
call PlayDefaultMusic
ld a, HS_OAKS_LAB_RIVAL
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef HideObject
- ld hl, wd7eb
- set 0, [hl]
- res 1, [hl]
- set 7, [hl]
+ SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
+ ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE
+ SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, HS_ROUTE_22_RIVAL_1
- ld [wcc4d], a
+ ld [wMissableObjectIndex], a
predef ShowObject
ld a, $5
ld [W_PALLETTOWNCURSCRIPT], a
@@ -623,24 +650,24 @@ OaksLabScript17: ; 1cfd4 (7:4fd4)
OaksLabScript18: ; 1d009 (7:5009)
ret
-OaksLabScript_1d00a: ; 1d00a (7:500a)
+OaksLabScript_RemoveParcel: ; 1d00a (7:500a)
ld hl, wBagItems
ld bc, $0000
-.asm_1d010
+.loop
ld a, [hli]
cp $ff
ret z
cp OAKS_PARCEL
- jr z, .GotParcel ; 0x1d016 $4
+ jr z, .foundParcel
inc hl
inc c
- jr .asm_1d010 ; 0x1d01a $f4
-.GotParcel
+ jr .loop
+.foundParcel
ld hl, wNumBagItems
ld a, c
ld [wWhichPokemon], a
ld a, $1
- ld [wcf96], a
+ ld [wItemQuantity], a
jp RemoveItemFromInventory
OaksLabScript_1d02b: ; 1d02b (7:502b)
@@ -650,29 +677,29 @@ OaksLabScript_1d02b: ; 1d02b (7:502b)
ld [$ffee], a
ld a, [W_YCOORD]
cp $3
- jr nz, .asm_1d045 ; 0x1d038 $b
+ jr nz, .asm_1d045
ld a, $4
ld [wNPCMovementDirections2Index], a
ld a, $30
ld b, $b
- jr .asm_1d068 ; 0x1d043 $23
+ jr .asm_1d068
.asm_1d045
cp $1
- jr nz, .asm_1d054 ; 0x1d047 $b
+ jr nz, .asm_1d054
ld a, $2
ld [wNPCMovementDirections2Index], a
ld a, $30
ld b, $9
- jr .asm_1d068 ; 0x1d052 $14
+ jr .asm_1d068
.asm_1d054
ld a, $3
ld [wNPCMovementDirections2Index], a
ld b, $a
ld a, [W_XCOORD]
cp $4
- jr nz, .asm_1d066 ; 0x1d060 $4
+ jr nz, .asm_1d066
ld a, $40
- jr .asm_1d068 ; 0x1d064 $2
+ jr .asm_1d068
.asm_1d066
ld a, $20
.asm_1d068
@@ -685,7 +712,7 @@ OaksLabScript_1d02b: ; 1d02b (7:502b)
ret
OaksLabScript_1d076: ; 1d076 (7:5076)
- ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28
+ ld hl, OaksLabTextPointers + $36 ; starts at OaksLabText28
ld a, l
ld [W_MAPTEXTPTR], a
ld a, h
@@ -734,23 +761,22 @@ OaksLabTextPointers: ; 1d082 (7:5082)
OaksLabText28: ; 1d0ce (7:50ce)
OaksLabText1: ; 1d0ce (7:50ce)
- db $08 ; asm
- ld a, [wd74b]
- bit 0, a
- jr nz, .asm_1d0de ; 0x1d0d4
+ TX_ASM
+ CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
+ jr nz, .asm_1d0de
ld hl, OaksLabGaryText1
call PrintText
- jr .asm_1d0f0 ; 0x1d0dc
-.asm_1d0de ; 0x1d0de
+ jr .asm_1d0f0
+.asm_1d0de
bit 2, a
- jr nz, .asm_1d0ea ; 0x1d0e0
+ jr nz, .asm_1d0ea
ld hl, OaksLabText40
call PrintText
- jr .asm_1d0f0 ; 0x1d0e8
-.asm_1d0ea ; 0x1d0ea
+ jr .asm_1d0f0
+.asm_1d0ea
ld hl, OaksLabText41
call PrintText
-.asm_1d0f0 ; 0x1d0f0
+.asm_1d0f0
jp TextScriptEnd
OaksLabGaryText1: ; 1d0f3 (7:50f3)
@@ -767,33 +793,33 @@ OaksLabText41: ; 1d0fd (7:50fd)
OaksLabText29: ; 1d102 (7:5102)
OaksLabText2: ; 1d102 (7:5102)
- db $8
+ TX_ASM
ld a, STARTER2
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $3
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER1
ld b, $2
- jr OaksLabScript_1d133 ; 0x1d111 $20
+ jr OaksLabScript_1d133
OaksLabText30: ; 1d113 (7:5113)
OaksLabText3: ; 1d113 (7:5113)
- db $8
+ TX_ASM
ld a, STARTER3
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $4
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER2
ld b, $3
- jr OaksLabScript_1d133 ; 0x1d122 $f
+ jr OaksLabScript_1d133
OaksLabText31: ; 1d124 (7:5124)
OaksLabText4: ; 1d124 (7:5124)
- db $8
+ TX_ASM
ld a, STARTER1
- ld [wWhichTrade], a
+ ld [wRivalStarterTemp], a
ld a, $2
- ld [wTrainerEngageDistance], a
+ ld [wRivalStarterBallSpriteIndex], a
ld a, STARTER3
ld b, $4
@@ -802,11 +828,10 @@ OaksLabScript_1d133: ; 1d133 (7:5133)
ld [wd11e], a
ld a, b
ld [wSpriteIndex], a
- ld a, [wd74b]
- bit 2, a
+ CheckEvent EVENT_GOT_STARTER
jp nz, OaksLabScript_1d22d
- bit 1, a
- jr nz, OaksLabScript_1d157 ; 0x1d147 $e
+ CheckEventReuseA EVENT_OAK_ASKED_TO_CHOOSE_MON
+ jr nz, OaksLabScript_1d157
ld hl, OaksLabText39
call PrintText
jp TextScriptEnd
@@ -819,23 +844,22 @@ OaksLabScript_1d157: ; 1d157 (7:5157)
ld a, $5
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
- ld [hl], $0
- ; manually fixed some disassembler issues around here
+ ld [hl], SPRITE_FACING_DOWN
ld a, $1
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
- ld [hl], $c
+ ld [hl], SPRITE_FACING_RIGHT
ld hl, wd730
set 6, [hl]
- predef StarterDex ; StarterDex
+ predef StarterDex
ld hl, wd730
res 6, [hl]
call ReloadMapData
- ld c, $a
+ ld c, 10
call DelayFrames
ld a, [wSpriteIndex]
cp $2
@@ -844,7 +868,7 @@ OaksLabScript_1d157: ; 1d157 (7:5157)
jr z, OaksLabLookAtSquirtle
jr OaksLabLookAtBulbasaur
-OaksLabLookAtCharmander ; 0x1d195
+OaksLabLookAtCharmander: ; 1d195 (7:5195)
ld hl, OaksLabCharmanderText
jr OaksLabMonChoiceMenu
OaksLabCharmanderText: ; 1d19a (7:519a)
@@ -879,18 +903,18 @@ OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
call GetMonName
ld a, [wSpriteIndex]
cp $2
- jr nz, asm_1d1db ; 0x1d1d5 $4
+ jr nz, .asm_1d1db
ld a, HS_STARTER_BALL_1
- jr asm_1d1e5 ; 0x1d1d9 $a
-asm_1d1db: ; 1d1db (7:51db)
+ jr .asm_1d1e5
+.asm_1d1db
cp $3
- jr nz, asm_1d1e3 ; 0x1d1dd $4
+ jr nz, .asm_1d1e3
ld a, HS_STARTER_BALL_2
- jr asm_1d1e5 ; 0x1d1e1 $2
-asm_1d1e3: ; 1d1e3 (7:51e3)
+ jr .asm_1d1e5
+.asm_1d1e3
ld a, HS_STARTER_BALL_3
-asm_1d1e5: ; 1d1e5 (7:51e5)
- ld [wcc4d], a
+.asm_1d1e5
+ ld [wMissableObjectIndex], a
predef HideObject
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
@@ -898,9 +922,9 @@ asm_1d1e5: ; 1d1e5 (7:51e5)
call PrintText
ld hl, OaksLabReceivedMonText
call PrintText
- xor a
- ld [wcc49], a
- ld a, $5
+ xor a ; PLAYER_PARTY_DATA
+ ld [wMonDataLocation], a
+ ld a, 5
ld [W_CURENEMYLVL], a
ld a, [wcf91]
ld [wd11e], a
@@ -926,7 +950,7 @@ OaksLabScript_1d22d: ; 1d22d (7:522d)
ld a, $5
ld [H_SPRITEINDEX], a
ld a, $9
- ld [$ff8b], a
+ ld [H_SPRITEDATAOFFSET], a
call GetPointerWithinSpriteStateData1
ld [hl], $0
ld hl, OaksLabLastMonText
@@ -939,80 +963,74 @@ OaksLabLastMonText: ; 1d243 (7:5243)
OaksLabText32: ; 1d248 (7:5248)
OaksLabText5: ; 1d248 (7:5248)
- db $08 ; asm
- ld a, [wd747]
- bit 6, a
- jr nz, .asm_50e81 ; 0x1d24e
+ TX_ASM
+ CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS
+ jr nz, .asm_1d266
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
call CountSetBits
- ld a, [wd11e]
- cp $2
- jr c, .asm_b28b0 ; 0x1d25d
- ld a, [wd74b]
- bit 5, a
- jr z, .asm_b28b0 ; 0x1d264
-.asm_50e81 ; 0x1d266
+ ld a, [wNumSetBits]
+ cp 2
+ jr c, .asm_1d279
+ CheckEvent EVENT_GOT_POKEDEX
+ jr z, .asm_1d279
+.asm_1d266
ld hl, OaksLabText_1d31d
call PrintText
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
predef DisplayDexRating
- jp .asm_0f042
-.asm_b28b0 ; 0x1d279
+ jp .asm_1d2ed
+.asm_1d279
ld b,POKE_BALL
call IsItemInBag
- jr nz, .asm_17c30 ; 0x1d27e
- ld a, [wd7eb]
- bit 5, a
- jr nz, .asm_f1adc ; 0x1d285
- ld a, [wd74b]
- bit 5, a
- jr nz, .asm_333a2 ; 0x1d28c
- bit 3, a
- jr nz, .asm_76269 ; 0x1d290
+ jr nz, .asm_1d2e7
+ CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
+ jr nz, .asm_1d2d0
+ CheckEvent EVENT_GOT_POKEDEX
+ jr nz, .asm_1d2c8
+ CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB
+ jr nz, .asm_1d2a9
ld a, [wd72e]
bit 3, a
- jr nz, .asm_4a5e0 ; 0x1d297
+ jr nz, .asm_1d2a1
ld hl, OaksLabText_1d2f0
call PrintText
- jr .asm_0f042 ; 0x1d29f
-.asm_4a5e0 ; 0x1d2a1
+ jr .asm_1d2ed
+.asm_1d2a1
ld hl, OaksLabText_1d2f5
call PrintText
- jr .asm_0f042 ; 0x1d2a7
-.asm_76269 ; 0x1d2a9
+ jr .asm_1d2ed
+.asm_1d2a9
ld b, OAKS_PARCEL
call IsItemInBag
- jr nz, .asm_a8fcf ; 0x1d2ae
+ jr nz, .asm_1d2b8
ld hl, OaksLabText_1d2fa
call PrintText
- jr .asm_0f042 ; 0x1d2b6
-.asm_a8fcf ; 0x1d2b8
+ jr .asm_1d2ed
+.asm_1d2b8
ld hl, OaksLabDeliverParcelText
call PrintText
- call OaksLabScript_1d00a
+ call OaksLabScript_RemoveParcel
ld a, $f
ld [W_OAKSLABCURSCRIPT], a
- jr .asm_0f042 ; 0x1d2c6
-.asm_333a2 ; 0x1d2c8
+ jr .asm_1d2ed
+.asm_1d2c8
ld hl, OaksLabAroundWorldText
call PrintText
- jr .asm_0f042 ; 0x1d2ce
-.asm_f1adc ; 0x1d2d0
- ld hl, wd74b
- bit 4, [hl]
- set 4, [hl]
- jr nz, .asm_17c30 ; 0x1d2d7
- ld bc, (POKE_BALL << 8) | 5
+ jr .asm_1d2ed
+.asm_1d2d0
+ CheckAndSetEvent EVENT_GOT_POKEBALLS_FROM_OAK
+ jr nz, .asm_1d2e7
+ lb bc, POKE_BALL, 5
call GiveItem
ld hl, OaksLabGivePokeballsText
call PrintText
- jr .asm_0f042 ; 0x1d2e5
-.asm_17c30 ; 0x1d2e7
+ jr .asm_1d2ed
+.asm_1d2e7
ld hl, OaksLabPleaseVisitText
call PrintText
-.asm_0f042 ; 0x1d2ed
+.asm_1d2ed
jp TextScriptEnd
OaksLabText_1d2f0: ; 1d2f0 (7:52f0)
@@ -1055,7 +1073,7 @@ OaksLabText34: ; 1d322 (7:5322)
OaksLabText33: ; 1d322 (7:5322)
OaksLabText7: ; 1d322 (7:5322)
OaksLabText6: ; 1d322 (7:5322)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d32c
call PrintText
jp TextScriptEnd
@@ -1071,7 +1089,7 @@ OaksLabText8: ; 1d331 (7:5331)
OaksLabText36: ; 1d336 (7:5336)
OaksLabText9: ; 1d336 (7:5336)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d340
call PrintText
jp TextScriptEnd
@@ -1081,7 +1099,7 @@ OaksLabText_1d340: ; 1d340 (7:5340)
db "@"
OaksLabText17: ; 1d345 (7:5345)
- db $8
+ TX_ASM
ld hl, OaksLabRivalWaitingText
call PrintText
jp TextScriptEnd
@@ -1091,7 +1109,7 @@ OaksLabRivalWaitingText: ; 1d34f (7:534f)
db "@"
OaksLabText18: ; 1d354 (7:5354)
- db $8
+ TX_ASM
ld hl, OaksLabChooseMonText
call PrintText
jp TextScriptEnd
@@ -1101,7 +1119,7 @@ OaksLabChooseMonText: ; 1d35e (7:535e)
db "@"
OaksLabText19: ; 1d363 (7:5363)
- db $8
+ TX_ASM
ld hl, OaksLabRivalInterjectionText
call PrintText
jp TextScriptEnd
@@ -1111,7 +1129,7 @@ OaksLabRivalInterjectionText: ; 1d36d (7:536d)
db "@"
OaksLabText20: ; 1d372 (7:5372)
- db $8
+ TX_ASM
ld hl, OaksLabBePatientText
call PrintText
jp TextScriptEnd
@@ -1121,7 +1139,7 @@ OaksLabBePatientText: ; 1d37c (7:537c)
db "@"
OaksLabText12: ; 1d381 (7:5381)
- db $8
+ TX_ASM
ld hl, OaksLabLeavingText
call PrintText
jp TextScriptEnd
@@ -1131,7 +1149,7 @@ OaksLabLeavingText: ; 1d38b (7:538b)
db "@"
OaksLabText13: ; 1d390 (7:5390)
- db $8
+ TX_ASM
ld hl, OaksLabRivalPickingMonText
call PrintText
jp TextScriptEnd
@@ -1141,7 +1159,7 @@ OaksLabRivalPickingMonText: ; 1d39a (7:539a)
db "@"
OaksLabText14: ; 1d39f (7:539f)
- db $8
+ TX_ASM
ld hl, OaksLabRivalReceivedMonText
call PrintText
jp TextScriptEnd
@@ -1151,7 +1169,7 @@ OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9)
db $11, "@"
OaksLabText15: ; 1d3af (7:53af)
- db $8
+ TX_ASM
ld hl, OaksLabRivalChallengeText
call PrintText
jp TextScriptEnd
@@ -1169,7 +1187,7 @@ OaksLabText_1d3c3: ; 1d3c3 (7:53c3)
db "@"
OaksLabText16: ; 1d3c8 (7:53c8)
- db $8
+ TX_ASM
ld hl, OaksLabRivalToughenUpText
call PrintText
jp TextScriptEnd
@@ -1210,7 +1228,7 @@ OaksLabText38: ; 1d3fb (7:53fb)
OaksLabText37: ; 1d3fb (7:53fb)
OaksLabText11: ; 1d3fb (7:53fb)
OaksLabText10: ; 1d3fb (7:53fb)
- db $08 ; asm
+ TX_ASM
ld hl, OaksLabText_1d405
call PrintText
jp TextScriptEnd