diff options
Diffstat (limited to 'engine/map_objects.asm')
-rw-r--r-- | engine/map_objects.asm | 249 |
1 files changed, 126 insertions, 123 deletions
diff --git a/engine/map_objects.asm b/engine/map_objects.asm index a5d792204..8c8fcb3c5 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -1,20 +1,20 @@ INCLUDE "engine/facings.asm" -ObjectStruct3_Data:: ; 4273 +SpriteMovementData:: ; 4273 ; function, facing, ?, ?, ?, ? db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00 - db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 01 - db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $00 ; 02 - db SPRITEMOVEFN_04, DOWN, $01, $00, $00, $00 ; 03 - db SPRITEMOVEFN_01, DOWN, $01, $00, $00, $00 ; 04 - db SPRITEMOVEFN_02, DOWN, $01, $00, $00, $00 ; 05 - db SPRITEMOVEFN_06, DOWN, $01, $00, $00, $00 ; 06 - db SPRITEMOVEFN_06, UP, $01, $00, $00, $00 ; 07 - db SPRITEMOVEFN_06, LEFT, $01, $00, $00, $00 ; 08 - db SPRITEMOVEFN_06, RIGHT, $01, $00, $00, $00 ; 09 - db SPRITEMOVEFN_05, DOWN, $01, $00, $00, $00 ; 0a - db SPRITEMOVEFN_07, DOWN, $01, $02, $00, $00 ; 0b + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02 + db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03 + db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04 + db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05 + db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06 + db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07 + db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08 + db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09 + db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a + db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e @@ -22,24 +22,24 @@ ObjectStruct3_Data:: ; 4273 db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10 db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11 db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12 - db SPRITEMOVEFN_0F, DOWN, $01, $02, $00, $00 ; 13 - db SPRITEMOVEFN_10, DOWN, $01, $02, $00, $00 ; 14 - db SPRITEMOVEFN_15, DOWN, $09, $2e, $01, $c0 ; 15 - db SPRITEMOVEFN_16, DOWN, $0a, $2e, $00, $00 ; 16 - db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 17 - db SPRITEMOVEFN_06, DOWN, $01, $2e, $10, $00 ; 18 - db SPRITEMOVEFN_11, DOWN, $01, $2e, $00, $40 ; 19 + db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13 + db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14 + db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15 + db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16 + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 + db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 + db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 db SPRITEMOVEFN_12, DOWN, $01, $02, $00, $00 ; 1a db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d - db SPRITEMOVEFN_19, LEFT, $01, $00, $00, $00 ; 1e - db SPRITEMOVEFN_18, RIGHT, $01, $00, $00, $00 ; 1f - db SPRITEMOVEFN_11, DOWN, $0c, $2e, $01, $c0 ; 20 - db SPRITEMOVEFN_11, DOWN, $0d, $2e, $01, $c0 ; 21 + db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e + db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f + db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 + db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22 db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23 - db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $20 ; 24 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 ; 4357 @@ -937,7 +937,7 @@ Function47bc: ; 47bc Function47dd: ; 47dd call ClearObjectStructField28 - call Function1a2f + call GetSpriteMovementFunction ld a, [hl] ld hl, .Pointers rst JumpTable @@ -945,63 +945,63 @@ Function47dd: ; 47dd ; 47e9 .Pointers ; 47e9 - dw Function4821 ; 00 - dw Function4822 ; 01 - dw Function482c ; 02 - dw Function4838 ; 03 - dw Function4842 ; 04 - dw Function4851 ; 05 - dw Function4869 ; 06 - dw Function487c ; 07 - dw Function4882 ; 08 - dw Function4888 ; 09 - dw Function488e ; 0a - dw Function4891 ; 0b - dw Function4894 ; 0c - dw Function4897 ; 0d - dw Function489d ; 0e - dw Function48a0 ; 0f - dw Function48a6 ; 10 - dw Function48ac ; 11 - dw Function48ff ; 12 - dw Function49e5 ; 13 - dw Function4a21 ; 14 - dw Function4958 ; 15 - dw Function496e ; 16 - dw Function4abc ; 17 - dw Function498d ; 18 - dw Function4984 ; 19 - dw Function4a46 ; 1a - dw Function4a89 ; 1b + dw .Null_00 ; 00 + dw .RandomWalkY ; 01 + dw .RandomWalkX ; 02 + dw .RandomWalkXY ; 03 + dw .RandomSpin1 ; 04 + dw .RandomSpin2 ; 05 + dw .Standing ; 06 + dw .ObeyDPad ; 07 + dw .Movement08 ; 08 + dw .Movement09 ; 09 + dw .Movement0a ; 0a + dw .Movement0b ; 0b + dw .Movement0c ; 0c + dw .Movement0d ; 0d + dw .Movement0e ; 0e + dw .Follow ; 0f + dw .Script ; 10 + dw .Strength ; 11 + dw .Movement12 ; 12 + dw .Movement13 ; 13 + dw .Movement14 ; 14 + dw .MovementBigStanding ; 15 + dw .MovementBouncing ; 16 + dw .Movement17 ; 17 + dw .MovementSpinClockwise ; 18 + dw .MovementSpinCounterclockwise ; 19 + dw .Movement1a ; 1a + dw .Movement1b ; 1b ; 4821 -Function4821: ; 4821 +.Null_00: ; 4821 ret ; 4822 -Function4822: ; 4822 +.RandomWalkY: ; 4822 call Random ld a, [hRandomAdd] and %00000001 - jp Function4af0 + jp .RandomWalkContinue ; 482c -Function482c: ; 482c +.RandomWalkX: ; 482c call Random ld a, [hRandomAdd] and %00000001 or %00000010 - jp Function4af0 + jp .RandomWalkContinue ; 4838 -Function4838: ; 4838 +.RandomWalkXY: ; 4838 call Random ld a, [hRandomAdd] and %00000011 - jp Function4af0 + jp .RandomWalkContinue ; 4842 -Function4842: ; 4842 +.RandomSpin1: ; 4842 call Random ld a, [hRandomAdd] and %00001100 @@ -1011,7 +1011,7 @@ Function4842: ; 4842 jp Function4b1d ; 4851 -Function4851: ; 4851 +.RandomSpin2: ; 4851 ld hl, OBJECT_FACING add hl, bc ld a, [hl] @@ -1029,7 +1029,7 @@ Function4851: ; 4851 jp Function4b26 ; 4869 -Function4869: ; standing? +.Standing: ; 4869 call Function462a call Function467b ld hl, OBJECT_11 @@ -1041,69 +1041,71 @@ Function4869: ; standing? ret ; 487c -Function487c: ; 487c +.ObeyDPad: ; 487c ld hl, Function5000 jp Function5041 ; 4882 -Function4882: ; 4882 +.Movement08: ; 4882 ld hl, Function5015 jp Function5041 ; 4888 -Function4888: ; 4888 +.Movement09: ; 4888 ld hl, Function5026 jp Function5041 ; 488e -Function488e: ; 488e +.Movement0a: ; 488e jp Function5037 ; 4891 -Function4891: ; 4891 +.Movement0b: ; 4891 jp Function5037 ; 4894 -Function4894: ; 4894 +.Movement0c: ; 4894 jp Function5037 ; 4897 -Function4897: ; 4897 +.Movement0d: ; 4897 ld hl, Function5000 jp Function5041 ; 489d -Function489d: ; 489d +.Movement0e: ; 489d jp Function5037 ; 48a0 -Function48a0: ; 48a0 +.Follow: ; 48a0 ld hl, Function54e6 jp Function5041 ; 48a6 -Function48a6: ; 48a6 - ld hl, Function500e ; scripted +.Script: ; 48a6 + ld hl, Function500e jp Function5041 ; 48ac -Function48ac: ; 48ac +.Strength: ; 48ac call JumptoObjectStructField27 - dw Function48b3 - dw Function48f8 + dw .Strength_Start + dw .Strength_Stop ; 48b3 -Function48b3: ; 48b3 +.Strength_Start: ; 48b3 ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] call CheckPitTile jr z, .on_pit + ld hl, OBJECT_FLAGS2 add hl, bc bit 2, [hl] res 2, [hl] jr z, .ok + ld hl, OBJECT_32 add hl, bc ld a, [hl] @@ -1112,6 +1114,7 @@ Function48b3: ; 48b3 call Function4690 call Function6ec1 jr c, .ok2 + ld de, SFX_STRENGTH call PlaySFX call Function5538 @@ -1135,14 +1138,14 @@ Function48b3: ; 48b3 ; fallthrough ; 48f8 -Function48f8: ; 48f8 +.Strength_Stop: ; 48f8 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING ret ; 48ff -Function48ff: ; 48ff +.Movement12: ; 48ff ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] @@ -1206,7 +1209,7 @@ Function48ff: ; 48ff ret ; 4958 -Function4958: ; 4958 +.MovementBigStanding: ; 4958 call Function467b ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -1220,7 +1223,7 @@ Function4958: ; 4958 ret ; 496e -Function496e: ; 496e +.MovementBouncing: ; 496e call Function467b ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -1234,27 +1237,27 @@ Function496e: ; 496e ret ; 4984 -Function4984: ; 4984 +.MovementSpinCounterclockwise: ; 4984 call JumptoObjectStructField27 - dw Function4996 - dw Function499c - dw Function49b8 + dw .MovementSpinInit + dw .MovementSpinRepeat + dw .MovementSpinTurnLeft ; 498d -Function498d: ; 498d +.MovementSpinClockwise: ; 498d call JumptoObjectStructField27 - dw Function4996 - dw Function499c - dw Function49c4 + dw .MovementSpinInit + dw .MovementSpinRepeat + dw .MovementSpinTurnRight ; 4996 -Function4996: ; 4996 +.MovementSpinInit: ; 4996 call Function467b call IncrementObjectStructField27 ; fallthrough ; 499c -Function499c: ; 499c +.MovementSpinRepeat: ; 499c ld hl, OBJECT_11 add hl, bc ld [hl], 1 @@ -1272,27 +1275,27 @@ Function499c: ; 499c ret ; 49b8 -Function49b8: ; 49b8 - ld de, .DirectionData_49c0 - call Function49d0 - jr Function4984 +.MovementSpinTurnLeft: ; 49b8 + ld de, .DirectionData_Counterclockwise + call .MovementSpinNextFacing + jr .MovementSpinCounterclockwise ; 49c0 -.DirectionData_49c0 ; 49c0 +.DirectionData_Counterclockwise ; 49c0 db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2 ; 49c4 -Function49c4: ; 49c4 - ld de, .DirectionData_49cc - call Function49d0 - jr Function498d +.MovementSpinTurnRight: ; 49c4 + ld de, .DirectionData_Clockwise + call .MovementSpinNextFacing + jr .MovementSpinClockwise ; 49cc -.DirectionData_49cc ; 49cc +.DirectionData_Clockwise ; 49cc db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2 ; 49d0 -Function49d0: ; 49d0 +.MovementSpinNextFacing: ; 49d0 ld hl, OBJECT_FACING add hl, bc ld a, [hl] @@ -1310,8 +1313,8 @@ Function49d0: ; 49d0 ret ; 49e5 -Function49e5: ; 49e5 - call Function4aa8 +.Movement13: ; 49e5 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $7 @@ -1330,12 +1333,12 @@ Function49e5: ; 49e5 and 3 ld d, $e cp DOWN - jr z, .ok + jr z, .ok_13 cp UP - jr z, .ok + jr z, .ok_13 ld d, $c -.ok +.ok_13 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], d @@ -1348,9 +1351,9 @@ Function49e5: ; 49e5 ret ; 4a21 -Function4a21: ; 4a21 +.Movement14: ; 4a21 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], 8 @@ -1369,9 +1372,9 @@ Function4a21: ; 4a21 ret ; 4a46 -Function4a46: ; 4a46 +.Movement1a: ; 4a46 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $e @@ -1416,9 +1419,9 @@ endr db -6, 2 ; 4a89 -Function4a89: ; 4a89 +.Movement1b: ; 4a89 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $f @@ -1435,7 +1438,7 @@ Function4a89: ; 4a89 ret ; 4aa8 -Function4aa8: ; 4aa8 +._Movement13_14_1a_1b: ; 4aa8 ld hl, OBJECT_32 add hl, bc ld a, [hl] @@ -1452,7 +1455,7 @@ Function4aa8: ; 4aa8 ret ; 4abc -Function4abc: ; 4abc +.Movement17: ; 4abc call Function467b ld hl, OBJECT_11 add hl, bc @@ -1460,7 +1463,7 @@ Function4abc: ; 4abc ld hl, OBJECT_32 add hl, bc ld a, [hl] - call Function4ade + call ._Movement17 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], e @@ -1473,7 +1476,7 @@ Function4abc: ; 4abc ret ; 4ade -Function4ade: ; 4ade +._Movement17: ; 4ade ld d, a and %00111111 ld e, a @@ -1491,7 +1494,7 @@ Function4ade: ; 4ade jr .loop ; 4af0 -Function4af0: ; 4af0 +.RandomWalkContinue: ; 4af0 call Function4690 call Function6ec1 jr c, Function4b17 @@ -1502,13 +1505,13 @@ Function4af0: ; 4af0 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .ok + jr z, .load_6 ld hl, OBJECT_09 add hl, bc - ld [hl], $7 + ld [hl], 7 ret -.ok +.load_6 ld hl, OBJECT_09 add hl, bc ld [hl], 6 @@ -3163,7 +3166,7 @@ SetFollowerIfVisible: ; 582c ret c ld hl, OBJECT_MOVEMENTTYPE add hl, bc - ld [hl], SPRITEMOVEDATA_13 + ld [hl], SPRITEMOVEDATA_FOLLOWING ld hl, OBJECT_09 add hl, bc ld [hl], 0 |