mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-11 07:44:47 +13:00
Identify some map object related constants
This commit is contained in:
parent
3b003960d4
commit
f82097b894
|
|
@ -45,10 +45,13 @@ TRAINER EQU $40
|
||||||
WALK EQU $FE
|
WALK EQU $FE
|
||||||
STAY EQU $FF
|
STAY EQU $FF
|
||||||
|
|
||||||
DOWN EQU $D0
|
ANY_DIR EQU $00
|
||||||
UP EQU $D1
|
UP_DOWN EQU $01
|
||||||
LEFT EQU $D2
|
LEFT_RIGHT EQU $02
|
||||||
RIGHT EQU $D3
|
DOWN EQU $D0
|
||||||
NONE EQU $FF
|
UP EQU $D1
|
||||||
|
LEFT EQU $D2
|
||||||
|
RIGHT EQU $D3
|
||||||
|
NONE EQU $FF
|
||||||
|
|
||||||
BOULDER_MOVEMENT_BYTE_2 EQU $10
|
BOULDER_MOVEMENT_BYTE_2 EQU $10
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,11 @@ SLOTSFISH EQU $0E0C
|
||||||
SLOTSBIRD EQU $1210
|
SLOTSBIRD EQU $1210
|
||||||
SLOTSMOUSE EQU $1614
|
SLOTSMOUSE EQU $1614
|
||||||
|
|
||||||
|
; StartSlotMachine dialogs
|
||||||
|
SLOTS_OUTOFORDER EQU $fd
|
||||||
|
SLOTS_OUTTOLUNCH EQU $fe
|
||||||
|
SLOTS_SOMEONESKEYS EQU $ff
|
||||||
|
|
||||||
; in game trades
|
; in game trades
|
||||||
; TradeMons indexes (see data/events/trades.asm)
|
; TradeMons indexes (see data/events/trades.asm)
|
||||||
const_def
|
const_def
|
||||||
|
|
|
||||||
|
|
@ -316,10 +316,10 @@ GameCornerHiddenObjects:
|
||||||
hidden_object 18, 13, $d0, StartSlotMachine
|
hidden_object 18, 13, $d0, StartSlotMachine
|
||||||
hidden_object 18, 12, $d0, StartSlotMachine
|
hidden_object 18, 12, $d0, StartSlotMachine
|
||||||
hidden_object 18, 11, $d0, StartSlotMachine
|
hidden_object 18, 11, $d0, StartSlotMachine
|
||||||
hidden_object 18, 10, $ff, StartSlotMachine ; "Someone's Keys"
|
hidden_object 18, 10, SLOTS_SOMEONESKEYS, StartSlotMachine
|
||||||
hidden_object 13, 10, $d0, StartSlotMachine
|
hidden_object 13, 10, $d0, StartSlotMachine
|
||||||
hidden_object 13, 11, $d0, StartSlotMachine
|
hidden_object 13, 11, $d0, StartSlotMachine
|
||||||
hidden_object 13, 12, $fe, StartSlotMachine ; "Out To Lunch"
|
hidden_object 13, 12, SLOTS_OUTTOLUNCH, StartSlotMachine
|
||||||
hidden_object 13, 13, $d0, StartSlotMachine
|
hidden_object 13, 13, $d0, StartSlotMachine
|
||||||
hidden_object 13, 14, $d0, StartSlotMachine
|
hidden_object 13, 14, $d0, StartSlotMachine
|
||||||
hidden_object 13, 15, $d0, StartSlotMachine
|
hidden_object 13, 15, $d0, StartSlotMachine
|
||||||
|
|
@ -338,7 +338,7 @@ GameCornerHiddenObjects:
|
||||||
hidden_object 6, 15, $d0, StartSlotMachine
|
hidden_object 6, 15, $d0, StartSlotMachine
|
||||||
hidden_object 6, 14, $d0, StartSlotMachine
|
hidden_object 6, 14, $d0, StartSlotMachine
|
||||||
hidden_object 6, 13, $d0, StartSlotMachine
|
hidden_object 6, 13, $d0, StartSlotMachine
|
||||||
hidden_object 6, 12, $fd, StartSlotMachine ; "Out Of Order"
|
hidden_object 6, 12, SLOTS_OUTOFORDER, StartSlotMachine
|
||||||
hidden_object 6, 11, $d0, StartSlotMachine
|
hidden_object 6, 11, $d0, StartSlotMachine
|
||||||
hidden_object 6, 10, $d0, StartSlotMachine
|
hidden_object 6, 10, $d0, StartSlotMachine
|
||||||
hidden_object 1, 10, $d0, StartSlotMachine
|
hidden_object 1, 10, $d0, StartSlotMachine
|
||||||
|
|
@ -416,8 +416,8 @@ MtMoon3HiddenObjects:
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
IndigoPlateauHiddenObjects:
|
IndigoPlateauHiddenObjects:
|
||||||
hidden_object 8, 13, $ff, PrintIndigoPlateauHQText
|
hidden_object 8, 13, $ff, PrintIndigoPlateauHQText ; inaccessible
|
||||||
hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText
|
hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText ; inaccessible
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
Route25HiddenObjects:
|
Route25HiddenObjects:
|
||||||
|
|
@ -471,7 +471,7 @@ Route13HiddenObjects:
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
SafariZoneEntranceHiddenObjects:
|
SafariZoneEntranceHiddenObjects:
|
||||||
hidden_object 10, 1, NUGGET, HiddenItems
|
hidden_object 10, 1, NUGGET, HiddenItems ; inaccessible
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
SafariZoneWestHiddenObjects:
|
SafariZoneWestHiddenObjects:
|
||||||
|
|
|
||||||
|
|
@ -93,9 +93,9 @@ UpdatePlayerSprite:
|
||||||
ld c, a
|
ld c, a
|
||||||
ld a, [wGrassTile]
|
ld a, [wGrassTile]
|
||||||
cp c
|
cp c
|
||||||
ld a, $0
|
ld a, 0
|
||||||
jr nz, .next2
|
jr nz, .next2
|
||||||
ld a, $80
|
ld a, OAM_BEHIND_BG
|
||||||
.next2
|
.next2
|
||||||
ld [wSpritePlayerStateData2GrassPriority], a
|
ld [wSpritePlayerStateData2GrassPriority], a
|
||||||
ret
|
ret
|
||||||
|
|
@ -150,15 +150,15 @@ UpdateNPCSprite:
|
||||||
and a
|
and a
|
||||||
ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
|
ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
|
||||||
call InitializeSpriteScreenPosition
|
call InitializeSpriteScreenPosition
|
||||||
ld h, $c2
|
ld h, HIGH(wSpriteStateData2)
|
||||||
ldh a, [hCurrentSpriteOffset]
|
ldh a, [hCurrentSpriteOffset]
|
||||||
add $6
|
add $6
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
inc a
|
inc a
|
||||||
jr z, .randomMovement ; value $FF
|
jr z, .randomMovement ; value STAY
|
||||||
inc a
|
inc a
|
||||||
jr z, .randomMovement ; value $FE
|
jr z, .randomMovement ; value WALK
|
||||||
; scripted movement
|
; scripted movement
|
||||||
dec a
|
dec a
|
||||||
ld [hl], a ; increment movement byte 1 (movement data index)
|
ld [hl], a ; increment movement byte 1 (movement data index)
|
||||||
|
|
@ -184,7 +184,7 @@ UpdateNPCSprite:
|
||||||
.next
|
.next
|
||||||
cp WALK
|
cp WALK
|
||||||
jr nz, .determineDirection
|
jr nz, .determineDirection
|
||||||
; current NPC movement data is $fe. this seems buggy
|
; current NPC movement data is WALK ($fe). this seems buggy
|
||||||
ld [hl], $1 ; set movement byte 1 to $1
|
ld [hl], $1 ; set movement byte 1 to $1
|
||||||
ld de, wNPCMovementDirections
|
ld de, wNPCMovementDirections
|
||||||
call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?)
|
call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?)
|
||||||
|
|
@ -195,20 +195,20 @@ UpdateNPCSprite:
|
||||||
.determineDirection
|
.determineDirection
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [wCurSpriteMovement2]
|
ld a, [wCurSpriteMovement2]
|
||||||
cp $d0
|
cp DOWN
|
||||||
jr z, .moveDown ; movement byte 2 = $d0 forces down
|
jr z, .moveDown
|
||||||
cp $d1
|
cp UP
|
||||||
jr z, .moveUp ; movement byte 2 = $d1 forces up
|
jr z, .moveUp
|
||||||
cp $d2
|
cp LEFT
|
||||||
jr z, .moveLeft ; movement byte 2 = $d2 forces left
|
jr z, .moveLeft
|
||||||
cp $d3
|
cp RIGHT
|
||||||
jr z, .moveRight ; movement byte 2 = $d3 forces right
|
jr z, .moveRight
|
||||||
ld a, b
|
ld a, b
|
||||||
cp $40 ; a < $40: down (or left)
|
cp NPC_MOVEMENT_UP ; NPC_MOVEMENT_DOWN <= a < NPC_MOVEMENT_UP: down (or left)
|
||||||
jr nc, .notDown
|
jr nc, .notDown
|
||||||
ld a, [wCurSpriteMovement2]
|
ld a, [wCurSpriteMovement2]
|
||||||
cp $2
|
cp LEFT_RIGHT
|
||||||
jr z, .moveLeft ; movement byte 2 = $2 only allows left or right
|
jr z, .moveLeft
|
||||||
.moveDown
|
.moveDown
|
||||||
ld de, 2*SCREEN_WIDTH
|
ld de, 2*SCREEN_WIDTH
|
||||||
add hl, de ; move tile pointer two rows down
|
add hl, de ; move tile pointer two rows down
|
||||||
|
|
@ -216,11 +216,11 @@ UpdateNPCSprite:
|
||||||
lb bc, 4, SPRITE_FACING_DOWN
|
lb bc, 4, SPRITE_FACING_DOWN
|
||||||
jr TryWalking
|
jr TryWalking
|
||||||
.notDown
|
.notDown
|
||||||
cp $80 ; $40 <= a < $80: up (or right)
|
cp NPC_MOVEMENT_LEFT ; NPC_MOVEMENT_UP <= a < NPC_MOVEMENT_LEFT: up (or right)
|
||||||
jr nc, .notUp
|
jr nc, .notUp
|
||||||
ld a, [wCurSpriteMovement2]
|
ld a, [wCurSpriteMovement2]
|
||||||
cp $2
|
cp LEFT_RIGHT
|
||||||
jr z, .moveRight ; movement byte 2 = $2 only allows left or right
|
jr z, .moveRight
|
||||||
.moveUp
|
.moveUp
|
||||||
ld de, -2*SCREEN_WIDTH
|
ld de, -2*SCREEN_WIDTH
|
||||||
add hl, de ; move tile pointer two rows up
|
add hl, de ; move tile pointer two rows up
|
||||||
|
|
@ -228,21 +228,21 @@ UpdateNPCSprite:
|
||||||
lb bc, 8, SPRITE_FACING_UP
|
lb bc, 8, SPRITE_FACING_UP
|
||||||
jr TryWalking
|
jr TryWalking
|
||||||
.notUp
|
.notUp
|
||||||
cp $c0 ; $80 <= a < $c0: left (or up)
|
cp NPC_MOVEMENT_RIGHT ; NPC_MOVEMENT_LEFT <= a < NPC_MOVEMENT_RIGHT: left (or up)
|
||||||
jr nc, .notLeft
|
jr nc, .notLeft
|
||||||
ld a, [wCurSpriteMovement2]
|
ld a, [wCurSpriteMovement2]
|
||||||
cp $1
|
cp UP_DOWN
|
||||||
jr z, .moveUp ; movement byte 2 = $1 only allows up or down
|
jr z, .moveUp
|
||||||
.moveLeft
|
.moveLeft
|
||||||
dec hl
|
dec hl
|
||||||
dec hl ; move tile pointer two columns left
|
dec hl ; move tile pointer two columns left
|
||||||
lb de, 0, -1
|
lb de, 0, -1
|
||||||
lb bc, 2, SPRITE_FACING_LEFT
|
lb bc, 2, SPRITE_FACING_LEFT
|
||||||
jr TryWalking
|
jr TryWalking
|
||||||
.notLeft ; $c0 <= a: right (or down)
|
.notLeft ; NPC_MOVEMENT_RIGHT <= a: right (or down)
|
||||||
ld a, [wCurSpriteMovement2]
|
ld a, [wCurSpriteMovement2]
|
||||||
cp $1
|
cp UP_DOWN
|
||||||
jr z, .moveDown ; movement byte 2 = $1 only allows up or down
|
jr z, .moveDown
|
||||||
.moveRight
|
.moveRight
|
||||||
inc hl
|
inc hl
|
||||||
inc hl ; move tile pointer two columns right
|
inc hl ; move tile pointer two columns right
|
||||||
|
|
@ -281,7 +281,7 @@ TryWalking:
|
||||||
call CanWalkOntoTile
|
call CanWalkOntoTile
|
||||||
pop de
|
pop de
|
||||||
ret c ; cannot walk there (reinitialization of delay values already done)
|
ret c ; cannot walk there (reinitialization of delay values already done)
|
||||||
ld h, $c2
|
ld h, HIGH(wSpriteStateData2)
|
||||||
ldh a, [hCurrentSpriteOffset]
|
ldh a, [hCurrentSpriteOffset]
|
||||||
add $4
|
add $4
|
||||||
ld l, a
|
ld l, a
|
||||||
|
|
@ -341,8 +341,8 @@ UpdateSpriteInWalkingAnimation:
|
||||||
add l
|
add l
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
cp $fe
|
cp WALK
|
||||||
jr nc, .initNextMovementCounter ; values $fe and $ff
|
jr nc, .initNextMovementCounter ; values WALK or STAY
|
||||||
ldh a, [hCurrentSpriteOffset]
|
ldh a, [hCurrentSpriteOffset]
|
||||||
inc a
|
inc a
|
||||||
ld l, a
|
ld l, a
|
||||||
|
|
@ -383,8 +383,8 @@ UpdateSpriteMovementDelay:
|
||||||
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
inc l
|
inc l
|
||||||
inc l
|
inc l
|
||||||
cp $fe
|
cp WALK
|
||||||
jr nc, .tickMoveCounter ; values $fe or $ff
|
jr nc, .tickMoveCounter ; values WALK or STAY
|
||||||
ld [hl], $0
|
ld [hl], $0
|
||||||
jr .moving
|
jr .moving
|
||||||
.tickMoveCounter
|
.tickMoveCounter
|
||||||
|
|
@ -485,8 +485,8 @@ CheckSpriteAvailability:
|
||||||
add SPRITESTATEDATA2_MOVEMENTBYTE1
|
add SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
cp $fe
|
cp WALK
|
||||||
jr c, .skipXVisibilityTest ; movement byte 1 < $fe (i.e. the sprite's movement is scripted)
|
jr c, .skipXVisibilityTest ; movement byte 1 < WALK (i.e. the sprite's movement is scripted)
|
||||||
ldh a, [hCurrentSpriteOffset]
|
ldh a, [hCurrentSpriteOffset]
|
||||||
add SPRITESTATEDATA2_MAPY
|
add SPRITESTATEDATA2_MAPY
|
||||||
ld l, a
|
ld l, a
|
||||||
|
|
@ -495,7 +495,7 @@ CheckSpriteAvailability:
|
||||||
cp b
|
cp b
|
||||||
jr z, .skipYVisibilityTest
|
jr z, .skipYVisibilityTest
|
||||||
jr nc, .spriteInvisible ; above screen region
|
jr nc, .spriteInvisible ; above screen region
|
||||||
add $8 ; screen is 9 tiles high
|
add SCREEN_HEIGHT / 2 - 1
|
||||||
cp b
|
cp b
|
||||||
jr c, .spriteInvisible ; below screen region
|
jr c, .spriteInvisible ; below screen region
|
||||||
.skipYVisibilityTest
|
.skipYVisibilityTest
|
||||||
|
|
@ -505,7 +505,7 @@ CheckSpriteAvailability:
|
||||||
cp b
|
cp b
|
||||||
jr z, .skipXVisibilityTest
|
jr z, .skipXVisibilityTest
|
||||||
jr nc, .spriteInvisible ; left of screen region
|
jr nc, .spriteInvisible ; left of screen region
|
||||||
add $9 ; screen is 10 tiles wide
|
add SCREEN_WIDTH / 2 - 1
|
||||||
cp b
|
cp b
|
||||||
jr c, .spriteInvisible ; right of screen region
|
jr c, .spriteInvisible ; right of screen region
|
||||||
.skipXVisibilityTest
|
.skipXVisibilityTest
|
||||||
|
|
@ -519,7 +519,7 @@ CheckSpriteAvailability:
|
||||||
ld a, [hld]
|
ld a, [hld]
|
||||||
cp d
|
cp d
|
||||||
jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (bottom right tile)
|
jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (bottom right tile)
|
||||||
ld bc, -20
|
ld bc, -SCREEN_WIDTH
|
||||||
add hl, bc ; go back one row of tiles
|
add hl, bc ; go back one row of tiles
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
cp d
|
cp d
|
||||||
|
|
@ -547,9 +547,9 @@ CheckSpriteAvailability:
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [wGrassTile]
|
ld a, [wGrassTile]
|
||||||
cp c
|
cp c
|
||||||
ld a, $0
|
ld a, 0
|
||||||
jr nz, .notInGrass
|
jr nz, .notInGrass
|
||||||
ld a, $80
|
ld a, OAM_BEHIND_BG
|
||||||
.notInGrass
|
.notInGrass
|
||||||
ld [hl], a ; x#SPRITESTATEDATA2_GRASSPRIORITY
|
ld [hl], a ; x#SPRITESTATEDATA2_GRASSPRIORITY
|
||||||
and a
|
and a
|
||||||
|
|
@ -587,8 +587,8 @@ CanWalkOntoTile:
|
||||||
add SPRITESTATEDATA2_MOVEMENTBYTE1
|
add SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
ld l, a
|
ld l, a
|
||||||
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1
|
||||||
cp $fe
|
cp WALK
|
||||||
jr nc, .notScripted ; values $fe and $ff
|
jr nc, .notScripted ; values WALK or STAY
|
||||||
; always allow walking if the movement is scripted
|
; always allow walking if the movement is scripted
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
|
|
@ -603,7 +603,7 @@ CanWalkOntoTile:
|
||||||
jr z, .impassable
|
jr z, .impassable
|
||||||
cp c
|
cp c
|
||||||
jr nz, .tilePassableLoop
|
jr nz, .tilePassableLoop
|
||||||
ld h, $c2
|
ld h, HIGH(wSpriteStateData2)
|
||||||
ldh a, [hCurrentSpriteOffset]
|
ldh a, [hCurrentSpriteOffset]
|
||||||
add $6
|
add $6
|
||||||
ld l, a
|
ld l, a
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
StartSlotMachine:
|
StartSlotMachine:
|
||||||
ld a, [wHiddenObjectFunctionArgument]
|
ld a, [wHiddenObjectFunctionArgument]
|
||||||
cp $fd
|
cp SLOTS_OUTOFORDER
|
||||||
jr z, .printOutOfOrder
|
jr z, .printOutOfOrder
|
||||||
cp $fe
|
cp SLOTS_OUTTOLUNCH
|
||||||
jr z, .printOutToLunch
|
jr z, .printOutToLunch
|
||||||
cp $ff
|
cp SLOTS_SOMEONESKEYS
|
||||||
jr z, .printSomeonesKeys
|
jr z, .printSomeonesKeys
|
||||||
farcall AbleToPlaySlotsCheck
|
farcall AbleToPlaySlotsCheck
|
||||||
ld a, [wCanPlaySlots]
|
ld a, [wCanPlaySlots]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue