More movement stuff

This commit is contained in:
PikalaxALT
2015-12-29 13:15:58 -05:00
parent a2a2668233
commit 9bbb65166e
19 changed files with 1510 additions and 1742 deletions

View File

@@ -8,7 +8,7 @@ CheckBreedmonCompatibility: ; 16e1d
ld [TempMonDVs], a
ld a, [wBreedMon1DVs + 1]
ld [TempMonDVs + 1], a
ld a, $3
ld a, BREEDMON
ld [MonType], a
predef GetGender
jr c, .genderless

View File

@@ -51,7 +51,7 @@ LearnMove: ; 6508
.not_disabled
call GetMoveName
ld hl, UnknownText_0x6684 ; 1, 2 and…
ld hl, Text_1_2_and_Poof ; 1, 2 and…
call PrintText
pop de
pop hl
@@ -102,18 +102,18 @@ LearnMove: ; 6508
jp .learned
.cancel
ld hl, UnknownText_0x6675 ; Stop learning <MOVE>?
ld hl, Text_StopLearning ; Stop learning <MOVE>?
call PrintText
call YesNoBox
jp c, .loop
ld hl, UnknownText_0x667a ; <MON> did not learn <MOVE>.
ld hl, Text_DidNotLearn ; <MON> did not learn <MOVE>.
call PrintText
ld b, 0
ret
.learned
ld hl, UnknownText_0x666b ; <MON> learned <MOVE>!
ld hl, Text_LearnedMove ; <MON> learned <MOVE>!
call PrintText
ld b, 1
ret
@@ -121,7 +121,7 @@ LearnMove: ; 6508
ForgetMove: ; 65d3
push hl
ld hl, UnknownText_0x667f
ld hl, Text_TryingToLearn
call PrintText
call YesNoBox
pop hl
@@ -135,7 +135,7 @@ ForgetMove: ; 65d3
pop hl
.loop
push hl
ld hl, UnknownText_0x6670
ld hl, Text_ForgetWhich
call PrintText
hlcoord 5, 2
ld b, NUM_MOVES * 2
@@ -192,7 +192,7 @@ ForgetMove: ; 65d3
ret
.hmmove
ld hl, UnknownText_0x669a
ld hl, Text_CantForgetHM
call PrintText
pop hl
jr .loop
@@ -202,55 +202,54 @@ ForgetMove: ; 65d3
ret
; 666b
UnknownText_0x666b: ; 666b
Text_LearnedMove: ; 666b
; <MON> learned <MOVE>!
text_jump UnknownText_0x1c5660
db "@"
; 6670
UnknownText_0x6670: ; 6670
Text_ForgetWhich: ; 6670
; Which move should be forgotten?
text_jump UnknownText_0x1c5678
db "@"
; 6675
UnknownText_0x6675: ; 6675
Text_StopLearning: ; 6675
; Stop learning <MOVE>?
text_jump UnknownText_0x1c5699
db "@"
; 667a
UnknownText_0x667a: ; 667a
Text_DidNotLearn: ; 667a
; <MON> did not learn <MOVE>.
text_jump UnknownText_0x1c56af
db "@"
; 667f
UnknownText_0x667f: ; 667f
Text_TryingToLearn: ; 667f
; <MON> is trying to learn <MOVE>. But <MON> can't learn more than
; four moves. Delete an older move to make room for <MOVE>?
text_jump UnknownText_0x1c56c9
db "@"
; 6684
UnknownText_0x6684: ; 6684
Text_1_2_and_Poof: ; 6684
text_jump UnknownText_0x1c5740 ; 1, 2 and…
start_asm
push de
ld de, SFX_SWITCH_POKEMON
call PlaySFX
pop de
ld hl, UnknownText_0x6695
ld hl, .PoofForgot
ret
; 6695
UnknownText_0x6695: ; 6695
.PoofForgot
; Poof! <MON> forgot <MOVE>. And…
text_jump UnknownText_0x1c574e
db "@"
; 669a
UnknownText_0x669a: ; 669a
Text_CantForgetHM: ; 669a
; HM moves can't be forgotten now.
text_jump UnknownText_0x1c5772
db "@"

View File

@@ -208,12 +208,12 @@ GivePokeItem:: ; 446cc
push bc
push af
ld hl, sPartyMail
ld bc, $2f
ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
ld hl, wd002
ld bc, $21
ld bc, MAIL_MSG_LENGTH + 1
ld a, BANK(sPartyMail)
call GetSRAMBank
call CopyBytes
@@ -222,7 +222,7 @@ GivePokeItem:: ; 446cc
ld hl, PartyMonOT
ld bc, NAME_LENGTH
call AddNTimes
ld bc, $a
ld bc, NAME_LENGTH - 1
call CopyBytes
pop af
ld hl, PartyMon1ID

323
engine/map_object_action.asm Executable file
View File

@@ -0,0 +1,323 @@
ld hl, OBJECT_ACTION
add hl, bc
ld a, [hl]
ld l, a
ld h, 0
add hl, hl
add hl, hl
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
call _hl_
ret
; 445f
Pointers445f: ; 445f
dw SetFacingStanding, SetFacingStanding ; 00
dw Function44b5, SetFacingCurrent ; 01 standing?
dw Function44c1, SetFacingCurrent ; 02 walking?
dw Function4508, SetFacingCurrent ; 03 bumping?
dw Function4529, SetFacingCurrent ; 04
dw Function4539, SetFacingStanding ; 05
dw Function456e, Function456e ; 06
dw Function457b, SetFacingStanding ; 07
dw Function4582, Function4582 ; 08
dw Function4589, Function4589 ; 09
dw Function4590, Function45a4 ; 0a
dw Function45ab, SetFacingCurrent ; 0c
dw Function45be, Function45be ; 0b
dw Function45c5, Function45c5 ; 0d
dw Function45da, SetFacingStanding ; 0e
dw Function45ed, SetFacingStanding ; 0f
dw Function44e4, SetFacingCurrent ; 10
; 44a3
SetFacingStanding: ; 44a3
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], STANDING
ret
; 44aa
SetFacingCurrent: ; 44aa
call GetSpriteDirection
or 0 ; useless
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 44b5
Function44b5: ; 44b5
ld hl, OBJECT_FACING_STEP
add hl, bc
ld a, [hl]
and 1
jr nz, Function44c1
jp SetFacingCurrent
; 44c1
Function44c1: ; 44c1
ld hl, OBJECT_FLAGS1
add hl, bc
bit SLIDING, [hl]
jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
and %00001111
ld [hl], a
rrca
rrca
and %00000011
ld d, a
call GetSpriteDirection
or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 44e4
Function44e4: ; 44e4
ld hl, OBJECT_FLAGS1
add hl, bc
bit SLIDING, [hl]
jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
add 2
and %00001111
ld [hl], a
rrca
rrca
and %00000011
ld d, a
call GetSpriteDirection
or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 4508
Function4508: ; 4508
ld hl, OBJECT_FLAGS1
add hl, bc
bit SLIDING, [hl]
jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
ld a, [hl]
rrca
rrca
rrca
and %00000011
ld d, a
call GetSpriteDirection
or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 4529
Function4529: ; 4529
call Function453f
ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
or 0 ; useless
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 4539
Function4539: ; 4539
call Function453f
jp SetFacingStanding
; 453f
Function453f: ; 453f
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
and %11110000
ld e, a
ld a, [hl]
inc a
and %00001111
ld d, a
cp 4
jr c, .ok
ld d, 0
ld a, e
add $10
and %00110000
ld e, a
.ok
ld a, d
or e
ld [hl], a
swap e
ld d, 0
ld hl, .Directions
add hl, de
ld a, [hl]
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 456a
.Directions ; 456a
db OW_DOWN, OW_RIGHT, OW_UP, OW_LEFT
; 456e
Function456e: ; 456e
call GetSpriteDirection
rrca
rrca
add $10
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 457b
Function457b: ; 457b
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_15
ret
; 4582
Function4582: ; 4582 emote
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_EMOTE
ret
; 4589
Function4589: ; 4589
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_17
ret
; 4590
Function4590: ; 4590
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
and %00001111
ld [hl], a
and %00001000
jr z, Function45a4
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_04
ret
; 45a4
Function45a4: ; 45a4
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], 0
ret
; 45ab
Function45ab: ; 45ab
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
ld [hl], a
and %00001100
rrca
rrca
add $18
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
ret
; 45be
Function45be: ; 45be
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_16
ret
; 45c5
Function45c5: ; 45c5
ld a, [VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS]
ld d, FACING_17
cp SPRITE_BIG_SNORLAX
jr z, .ok
cp SPRITE_BIG_LAPRAS
jr z, .ok
ld d, FACING_16
.ok
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], d
ret
; 45da
Function45da: ; 45da
ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
ld a, [hl]
ld hl, OBJECT_FACING_STEP
add hl, bc
and 2
ld a, FACING_1C
jr z, .ok
inc a ; FACING_1D
.ok
ld [hl], a
ret
; 45ed
Function45ed: ; 45ed
ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
ld a, [hl]
ld hl, OBJECT_FACING_STEP
add hl, bc
and 4
ld a, FACING_1E
jr z, .ok
inc a ; FACING_1F
.ok
ld [hl], a
ret
; 4600

File diff suppressed because it is too large Load Diff

View File

@@ -3,10 +3,10 @@ MovementPointers: ; 5075
dw Movement_turn_head_up ; 01
dw Movement_turn_head_left ; 02
dw Movement_turn_head_right ; 03
dw Movement_half_step_down ; 04
dw Movement_half_step_up ; 05
dw Movement_half_step_left ; 06
dw Movement_half_step_right ; 07
dw Movement_turn_step_down ; 04
dw Movement_turn_step_up ; 05
dw Movement_turn_step_left ; 06
dw Movement_turn_step_right ; 07
dw Movement_slow_step_down ; 08
dw Movement_slow_step_up ; 09
dw Movement_slow_step_left ; 0a
@@ -130,7 +130,7 @@ Movement_step_dig: ; 5145
ld hl, OBJECT_ACTION
add hl, bc
ld [hl], PERSON_ACTION_SPIN
call GetMovementByte
call JumpMovementPointer
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -150,7 +150,7 @@ Movement_return_dig: ; 516a
ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], a
call GetMovementByte
call JumpMovementPointer
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -174,7 +174,7 @@ Movement_fish_got_bite: ; 5189
; 5196
Movement_rock_smash: ; 5196
call GetMovementByte
call JumpMovementPointer
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -233,7 +233,7 @@ Movement_48: ; 51db
add hl, bc
ld [hl], $0
call GetMovementByte
call JumpMovementPointer
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -311,7 +311,7 @@ Movement_step_sleep: ; 5242
; parameters:
; duration (DecimalParam)
call GetMovementByte
call JumpMovementPointer
jr Movement_step_sleep_common
Movement_step_sleep_common: ; 5247
@@ -429,7 +429,7 @@ Movement_step_shake: ; 52d5
; parameters:
; displacement (DecimalParam)
call GetMovementByte
call JumpMovementPointer
call ShakeScreen
jp ContinueReadingMovement
; 52de
@@ -709,23 +709,23 @@ Movement_fast_jump_step_right: ; 53eb
; 53f0
Movement_half_step_down: ; 53f0
Movement_turn_step_down: ; 53f0
ld a, OW_DOWN
jr HalfStep
jr TurnStep
Movement_half_step_up: ; 53f4
Movement_turn_step_up: ; 53f4
ld a, OW_UP
jr HalfStep
jr TurnStep
Movement_half_step_left: ; 53f8
Movement_turn_step_left: ; 53f8
ld a, OW_LEFT
jr HalfStep
jr TurnStep
Movement_half_step_right: ; 53fc
Movement_turn_step_right: ; 53fc
ld a, OW_RIGHT
jr HalfStep
jr TurnStep
HalfStep: ; 5400
TurnStep: ; 5400
ld hl, OBJECT_29 ; new facing
add hl, bc
ld [hl], a

View File

@@ -511,7 +511,6 @@ TradedForText: ; 0xfcf80
; traded givemon for getmon
text_jump UnknownText_0x1bd429
start_asm
ld de, MUSIC_NONE
call PlayMusic
call DelayFrame

846
engine/player_movement.asm Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -336,7 +336,6 @@ Text_WhoaMins: ; 0x908a4
; Whoa!@ @
text_jump UnknownText_0x1bc31b
start_asm
; 0x908a9
hlcoord 7, 14
call DisplayMinutesWithMinString
ld hl, .QuestionMark
@@ -645,7 +644,6 @@ DebugDisplayTime: ; 90abc
.Text: ; 0x90acc
start_asm
call UpdateTime
hlcoord 1, 14