diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/event_object_movement.c | 874 |
1 files changed, 86 insertions, 788 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 73efab1d3..07a27ec7c 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -78,10 +78,10 @@ static void sub_805EFF4(struct ObjectEvent *); static u8 sub_805F510(const struct SpritePalette *); static u8 FindObjectEventPaletteIndexByTag(u16); static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8); -/*static*/ void ObjectCB_CameraObject(struct Sprite *); -/*static*/ void CameraObject_0(struct Sprite *); -/*static*/ void CameraObject_1(struct Sprite *); -/*static*/ void CameraObject_2(struct Sprite *); +static void ObjectCB_CameraObject(struct Sprite *); +static void CameraObject_0(struct Sprite *); +static void CameraObject_1(struct Sprite *); +static void CameraObject_2(struct Sprite *); static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); @@ -96,63 +96,64 @@ static u8 sub_8063324(struct ObjectEvent *, struct Sprite *); static u8 sub_8063344(struct ObjectEvent *, struct Sprite *); static void sub_8064544(struct ObjectEvent *, struct Sprite *); static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite); -void MovementType_None(struct Sprite *); -void MovementType_LookAround(struct Sprite *); -void MovementType_WanderAround(struct Sprite *); -void MovementType_WanderUpAndDown(struct Sprite *); -void MovementType_WanderLeftAndRight(struct Sprite *); -void MovementType_FaceDirection(struct Sprite *); -void sub_805B3B8(struct Sprite *); -void MovementType_FaceDownAndUp(struct Sprite *); -void MovementType_FaceLeftAndRight(struct Sprite *); -void MovementType_FaceUpAndLeft(struct Sprite *); -void MovementType_FaceUpAndRight(struct Sprite *); -void MovementType_FaceDownAndLeft(struct Sprite *); -void MovementType_FaceDownAndRight(struct Sprite *); -void MovementType_FaceDownUpAndLeft(struct Sprite *); -void MovementType_FaceDownUpAndRight(struct Sprite *); -void MovementType_FaceUpRightAndLeft(struct Sprite *); -void MovementType_FaceDownRightAndLeft(struct Sprite *); -void MovementType_RotateCounterclockwise(struct Sprite *); -void MovementType_RotateClockwise(struct Sprite *); -void MovementType_WalkBackAndForth(struct Sprite *); -void MovementType_WalkSequenceUpRightLeftDown(struct Sprite *); -void MovementType_WalkSequenceRightLeftDownUp(struct Sprite *); -void MovementType_WalkSequenceDownUpRightLeft(struct Sprite *); -void MovementType_WalkSequenceLeftDownUpRight(struct Sprite *); -void MovementType_WalkSequenceUpLeftRightDown(struct Sprite *); -void MovementType_WalkSequenceLeftRightDownUp(struct Sprite *); -void MovementType_WalkSequenceDownUpLeftRight(struct Sprite *); -void MovementType_WalkSequenceRightDownUpLeft(struct Sprite *); -void MovementType_WalkSequenceLeftUpDownRight(struct Sprite *); -void MovementType_WalkSequenceUpDownRightLeft(struct Sprite *); -void MovementType_WalkSequenceRightLeftUpDown(struct Sprite *); -void MovementType_WalkSequenceDownRightLeftUp(struct Sprite *); -void MovementType_WalkSequenceRightUpDownLeft(struct Sprite *); -void MovementType_WalkSequenceUpDownLeftRight(struct Sprite *); -void MovementType_WalkSequenceLeftRightUpDown(struct Sprite *); -void MovementType_WalkSequenceDownLeftRightUp(struct Sprite *); -void MovementType_WalkSequenceUpLeftDownRight(struct Sprite *); -void MovementType_WalkSequenceDownRightUpLeft(struct Sprite *); -void MovementType_WalkSequenceLeftDownRightUp(struct Sprite *); -void MovementType_WalkSequenceRightUpLeftDown(struct Sprite *); -void MovementType_WalkSequenceUpRightDownLeft(struct Sprite *); -void MovementType_WalkSequenceDownLeftUpRight(struct Sprite *); -void MovementType_WalkSequenceLeftUpRightDown(struct Sprite *); -void MovementType_WalkSequenceRightDownLeftUp(struct Sprite *); -void MovementType_CopyPlayer(struct Sprite *); -void MovementType_TreeDisguise(struct Sprite *); -void MovementType_MountainDisguise(struct Sprite *); -void MovementType_CopyPlayerInGrass(struct Sprite *); -void MovementType_Hidden(struct Sprite *); -void MovementType_WalkInPlace(struct Sprite *); -void MovementType_WalkSlowlyInPlace(struct Sprite *); -void MovementType_JogInPlace(struct Sprite *); -void MovementType_Invisible(struct Sprite *); -void sub_8063298(struct Sprite *); -void sub_80632BC(struct Sprite *); -void sub_80632E0(struct Sprite *); -void MovementType_WanderAroundDuplicate(struct Sprite *); +static void MovementType_None(struct Sprite *); +static void MovementType_LookAround(struct Sprite *); +static void MovementType_WanderAround(struct Sprite *); +static void MovementType_WanderUpAndDown(struct Sprite *); +static void MovementType_WanderLeftAndRight(struct Sprite *); +static void MovementType_FaceDirection(struct Sprite *); +static void MovementType_FaceDownAndUp(struct Sprite *); +static void MovementType_FaceLeftAndRight(struct Sprite *); +static void MovementType_FaceUpAndLeft(struct Sprite *); +static void MovementType_FaceUpAndRight(struct Sprite *); +static void MovementType_FaceDownAndLeft(struct Sprite *); +static void MovementType_FaceDownAndRight(struct Sprite *); +static void MovementType_FaceDownUpAndLeft(struct Sprite *); +static void MovementType_FaceDownUpAndRight(struct Sprite *); +static void MovementType_FaceUpRightAndLeft(struct Sprite *); +static void MovementType_FaceDownRightAndLeft(struct Sprite *); +static void MovementType_RotateCounterclockwise(struct Sprite *); +static void MovementType_RotateClockwise(struct Sprite *); +static void MovementType_WalkBackAndForth(struct Sprite *); +static void MovementType_WalkSequenceUpRightLeftDown(struct Sprite *); +static void MovementType_WalkSequenceRightLeftDownUp(struct Sprite *); +static void MovementType_WalkSequenceDownUpRightLeft(struct Sprite *); +static void MovementType_WalkSequenceLeftDownUpRight(struct Sprite *); +static void MovementType_WalkSequenceUpLeftRightDown(struct Sprite *); +static void MovementType_WalkSequenceLeftRightDownUp(struct Sprite *); +static void MovementType_WalkSequenceDownUpLeftRight(struct Sprite *); +static void MovementType_WalkSequenceRightDownUpLeft(struct Sprite *); +static void MovementType_WalkSequenceLeftUpDownRight(struct Sprite *); +static void MovementType_WalkSequenceUpDownRightLeft(struct Sprite *); +static void MovementType_WalkSequenceRightLeftUpDown(struct Sprite *); +static void MovementType_WalkSequenceDownRightLeftUp(struct Sprite *); +static void MovementType_WalkSequenceRightUpDownLeft(struct Sprite *); +static void MovementType_WalkSequenceUpDownLeftRight(struct Sprite *); +static void MovementType_WalkSequenceLeftRightUpDown(struct Sprite *); +static void MovementType_WalkSequenceDownLeftRightUp(struct Sprite *); +static void MovementType_WalkSequenceUpLeftDownRight(struct Sprite *); +static void MovementType_WalkSequenceDownRightUpLeft(struct Sprite *); +static void MovementType_WalkSequenceLeftDownRightUp(struct Sprite *); +static void MovementType_WalkSequenceRightUpLeftDown(struct Sprite *); +static void MovementType_WalkSequenceUpRightDownLeft(struct Sprite *); +static void MovementType_WalkSequenceDownLeftUpRight(struct Sprite *); +static void MovementType_WalkSequenceLeftUpRightDown(struct Sprite *); +static void MovementType_WalkSequenceRightDownLeftUp(struct Sprite *); +static void MovementType_CopyPlayer(struct Sprite *); +static void MovementType_TreeDisguise(struct Sprite *); +static void MovementType_MountainDisguise(struct Sprite *); +static void MovementType_CopyPlayerInGrass(struct Sprite *); +static void MovementType_Hidden(struct Sprite *); +static void MovementType_WalkInPlace(struct Sprite *); +static void MovementType_WalkSlowlyInPlace(struct Sprite *); +static void MovementType_JogInPlace(struct Sprite *); +static void MovementType_Invisible(struct Sprite *); +static void sub_8063298(struct Sprite *); +static void sub_80632BC(struct Sprite *); +static void sub_80632E0(struct Sprite *); +static void MovementType_WanderAroundDuplicate(struct Sprite *); + +extern void sub_805B3B8(struct Sprite *); #define movement_type_def(setup, table) \ static u8 setup##_callback(struct ObjectEvent *, struct Sprite *); \ @@ -179,726 +180,23 @@ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprit EWRAM_DATA u8 sCurrentReflectionType = 0; EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; -extern const u8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES]; -extern void (*const sMovementTypeCallbacks[])(struct Sprite *); -extern const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES]; -extern const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM_OBJ_EVENT_GFX]; -extern const struct SpritePalette sObjectEventSpritePalettes[]; -extern const struct PairedPalettes gPlayerReflectionPaletteSets[]; -extern const u8 gReflectionEffectPaletteMap[]; -extern const struct PairedPalettes gSpecialObjectReflectionPaletteSets[]; -extern const struct SpriteTemplate gCameraSpriteTemplate; -extern void (*const gCameraObjectFuncs[3])(struct Sprite *); -extern const u16 *const gObjectPaletteTagSets[]; - -extern u8 (*const gMovementTypeFuncs_WanderAround[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WanderAroundDuplicate[])(struct ObjectEvent *, struct Sprite *); -extern const s16 gMovementDelaysMedium[]; -extern const u8 gStandardDirections[4]; -extern u8 (*const gGetVectorDirectionFuncs[])(s16, s16, s16, s16); -extern u8 (*const gMovementTypeFuncs_LookAround[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WanderUpAndDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpAndDownDirections[2]; -extern u8 (*const gMovementTypeFuncs_WanderLeftAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftAndRightDirections[2]; -extern u8 (*const gMovementTypeFuncs_FaceDirection[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_FaceDownAndUp[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_FaceLeftAndRight[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_FaceUpAndLeft[])(struct ObjectEvent *, struct Sprite *); -extern const s16 gMovementDelaysShort[]; -extern const u8 gUpAndLeftDirections[2]; -extern u8 (*const gMovementTypeFuncs_FaceUpAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpAndRightDirections[2]; -extern u8 (*const gMovementTypeFuncs_FaceDownAndLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownAndLeftDirections[2]; -extern u8 (*const gMovementTypeFuncs_FaceDownAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownAndRightDirections[2]; -extern u8 (*const gMovementTypeFuncs_FaceDownUpAndLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownUpAndLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_FaceDownUpAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownUpAndRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_FaceUpLeftAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpLeftAndRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_FaceDownLeftAndRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownLeftAndRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_RotateCounterclockwise[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gCounterclockwiseDirections[5]; -extern u8 (*const gMovementTypeFuncs_RotateClockwise[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gClockwiseDirections[5]; -extern u8 (*const gMovementTypeFuncs_WalkBackAndForth[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpRightLeftDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpRightLeftDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightLeftDownUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightLeftDownUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownUpRightLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownUpRightLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftDownUpRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftDownUpRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpLeftRightDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpLeftRightDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftRightDownUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftRightDownUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownUpLeftRight[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightDownUpLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightDownUpLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftUpDownRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftUpDownRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpDownRightLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpDownRightLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightLeftUpDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightLeftUpDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownRightLeftUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownRightLeftUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightUpDownLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightUpDownLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpDownLeftRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpDownLeftRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftRightUpDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftRightUpDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownLeftRightUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownLeftRightUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpLeftDownRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpLeftDownRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownRightUpLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownRightUpLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftDownRightUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftDownRightUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightUpLeftDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightUpLeftDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceUpRightDownLeft[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gUpRightDownLeftDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceDownLeftUpRight[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gDownLeftUpRightDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceLeftUpRightDown[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gLeftUpRightDownDirections[4]; -extern u8 (*const gMovementTypeFuncs_WalkSequenceRightDownLeftUp[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gRightDownLeftUpDirections[4]; -extern u8 (*const gMovementTypeFuncs_CopyPlayer[])(struct ObjectEvent *, struct Sprite *); -extern bool8 (*const gCopyPlayerMovementFuncs[])(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); -extern u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_Hidden[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_WalkSlowlyInPlace[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_JogInPlace[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gUnknown_83A63F0[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gUnknown_83A63FC[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gUnknown_83A6404[])(struct ObjectEvent *, struct Sprite *); -extern const u8 gFaceDirectionAnimNums[]; -extern const u8 gMoveDirectionAnimNums[]; -extern const u8 gMoveDirectionFastAnimNums[]; -extern const u8 gMoveDirectionFasterAnimNums[]; -extern const u8 gMoveDirectionFastestAnimNums[]; -extern const u8 gJumpSpecialDirectionAnimNums[]; -extern const u8 gAcroWheelieDirectionAnimNums[]; -extern const u8 gUnrefAnimNums_080634A0[]; -extern const u8 gAcroEndWheelieDirectionAnimNums[]; -extern const u8 gAcroUnusedActionDirectionAnimNums[]; -extern const u8 gAcroWheeliePedalDirectionAnimNums[]; -extern const u8 gFishingDirectionAnimNums[]; -extern const u8 gFishingNoCatchDirectionAnimNums[]; -extern const u8 gFishingBiteDirectionAnimNums[]; -extern const u8 gUnknown_83A648A[]; -extern const u8 gRunningDirectionAnimNums[]; -extern const struct UnkStruct_083A3698 gUnknown_83A3698[]; -extern const u8 gTrainerFacingDirectionMovementTypes[]; -extern bool8 (*const gOppositeDirectionBlockedMetatileFuncs[])(u8); -extern bool8 (*const gDirectionBlockedMetatileFuncs[])(u8); -extern const struct Coords16 sDirectionToVectors[]; -extern const u8 gFaceDirectionMovementActions[5]; -extern const u8 gWalkSlowMovementActions[5]; -extern const u8 gUnknown_83A64F6[]; -extern const u8 gUnknown_83A64FB[5]; -extern const u8 gUnknown_83A6500[5]; -extern const u8 gUnknown_83A6505[5]; -extern const u8 gUnknown_83A650A[5]; -extern const u8 gUnknown_83A650F[5]; -extern const u8 gUnknown_83A6514[5]; -extern const u8 gUnknown_83A6519[5]; -extern const u8 gUnknown_83A651E[5]; -extern const u8 gUnknown_83A6523[5]; -extern const u8 gUnknown_83A6528[5]; -extern const u8 gUnknown_83A652D[5]; -extern const u8 gUnknown_83A6532[5]; -extern const u8 gUnknown_83A6537[5]; -extern const u8 gUnknown_83A653C[5]; -extern const u8 gUnknown_83A6541[5]; -extern const u8 gUnknown_83A6546[5]; -extern const u8 gUnknown_83A654B[5]; -extern const u8 gUnknown_83A6550[5]; -extern const u8 gUnknown_83A6555[5]; -extern const u8 gUnknown_83A655A[5]; -extern const u8 gUnknown_83A655F[5]; -extern const u8 gUnknown_83A6564[5]; -extern const u8 gUnknown_83A6569[5]; -extern const u8 gUnknown_83A656E[5]; -extern const u8 gUnknown_83A6573[5]; -extern const u8 gUnknown_83A6578[5]; -extern const u8 gUnknown_83A657D[5]; -extern const u8 gUnknown_83A6582[5]; -extern const u8 gUnknown_83A6587[5]; -extern const u8 gUnknown_83A658C[5]; -extern const u8 gOppositeDirections[8]; -extern const u8 gUnknown_83A6599[][4]; -extern const u8 gUnknown_83A65A9[][4]; -extern u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *); -extern u8 (*const gUnknown_83A6884[5])(u8); -extern const s16 gUnknown_83A6958[3]; -extern const s16 gUnknown_83A695E[3]; -extern const u16 gUnknown_8398FA8[]; -extern const u16 gUnknown_8398FC8[]; -extern const u32 gUnknown_8398048[8]; -extern const u32 gUnknown_8398068[16]; -extern const u32 gUnknown_83980A8[32]; -extern const u32 gUnknown_8398128[256]; -extern const u32 gUnknown_839A008[]; -extern const u32 gUnknown_83986A8[]; -extern const u32 gUnknown_8398928[]; -extern const u32 gUnknown_8396B08[]; -extern const u32 gUnknown_8398BA8[]; -extern const u32 gUnknown_8399008[]; -extern const u32 gUnknown_8399188[]; -extern const u32 gUnknown_839A388[]; -extern const u32 gUnknown_839A488[]; -extern const u32 gUnknown_839A588[]; -extern const u32 gUnknown_839AA48[]; -extern const u32 gUnknown_839AC48[]; -extern const u32 gUnknown_839ACC8[]; -extern const u32 gUnknown_8399E08[]; -extern const u32 gUnknown_8399488[]; -extern const u32 gUnknown_8399788[]; -extern const u32 gUnknown_8399C08[]; -extern const u32 gUnknown_839A788[]; -extern const u32 gUnknown_839A988[]; -extern const u32 gUnknown_839AD88[]; -extern const u32 gUnknown_839B008[]; -extern const u32 gUnknown_839B708[]; -extern const u32 gUnknown_839BE08[]; -extern const u32 gUnknown_839D3C8[]; -extern const u32 gUnknown_839A288[]; -extern const u32 gUnknown_839C508[]; -extern const u32 gUnknown_839C5A8[]; -extern const u16 gUnknown_839C588[]; -extern const u32 gUnknown_839C828[]; -extern const u32 gUnknown_839CAA8[]; -extern const u32 gUnknown_839D2A8[]; -extern const u16 gUnknown_839D3A8[]; -extern const u32 gUnknown_835BB68[]; -extern const u32 gUnknown_8391B28[]; -extern const u32 gUnknown_83934A8[]; -extern const u32 gUnknown_8393628[]; -extern const u32 gUnknown_8394428[]; -extern const u32 gUnknown_83942A8[]; -extern const u32 gUnknown_8394128[]; -extern const u32 gUnknown_8393FA8[]; -extern const u32 gUnknown_8393E28[]; -extern const u32 gUnknown_8393CA8[]; -extern const u32 gUnknown_8393B28[]; -extern const u32 gUnknown_83902A8[]; -extern const u32 gUnknown_838FEA8[]; -extern const u32 gUnknown_838FAA8[]; -extern const struct OamData gObjectEventBaseOam_16x16; -extern const struct OamData gObjectEventBaseOam_16x32; -extern const struct OamData gObjectEventBaseOam_32x16; -extern const struct OamData gObjectEventBaseOam_64x64; -extern const struct OamData gObjectEventBaseOam_8x8; -extern const struct OamData gObjectEventBaseOam_16x8; -extern const struct OamData gObjectEventBaseOam_32x8; -extern const struct OamData gObjectEventBaseOam_64x32; -extern const u16 gUnknown_836D828[]; -extern const u16 gUnknown_836D848[]; -extern const u16 gUnknown_836D868[]; -extern const u16 gUnknown_836D888[]; -extern const u16 gUnknown_836D8A8[]; -extern const u16 gUnknown_836D8C8[]; -extern const u16 gUnknown_836D8E8[]; -extern const u16 gUnknown_836D908[]; -extern const u16 gUnknown_835B968[]; -extern const u16 gUnknown_835E968[]; -extern const u16 gUnknown_835E988[]; -extern const u16 gUnknown_8398008[]; -extern const u16 gUnknown_8398028[]; -extern const u16 gUnknown_835B968[]; -extern const u16 gUnknown_835E968[]; -extern const u16 gUnknown_8394EA8[]; -extern const u16 gUnknown_8395AE8[]; -extern const u16 gUnknown_83952C8[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A37F0[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A3748[]; -extern const struct SubspriteTable gSubspriteTables_83A379C[]; -extern const struct SubspriteTable gSubspriteTables_83A38D0[]; -extern const struct SubspriteTable gSubspriteTables_83A3A50[]; -extern const union AnimCmd * const gAnimTable_83A3470[]; -extern const union AnimCmd * const gAnimTable_83A3368[]; -extern const union AnimCmd * const gAnimTable_83A3584[]; -extern const union AnimCmd * const gAnimTable_83A3638[]; -extern const union AnimCmd * const gAnimTable_83A35E4[]; -extern const union AnimCmd * const gAnimTable_83A3314[]; -extern const union AnimCmd * const gAnimTable_83A3660[]; -extern const union AnimCmd * const gAnimTable_83A3658[]; -extern const union AnimCmd * const gAnimTable_83A3470[]; -extern const union AnimCmd * const gAnimTable_83A3584[]; -extern const union AnimCmd * const gAnimTable_83A3638[]; -extern const union AnimCmd * const gAnimTable_83A3668[]; -extern const union AnimCmd * const gAnimTable_83A363C[]; -extern const union AnimCmd * const gAnimTable_83A3640[]; -extern const union AnimCmd * const gAnimTable_83A33BC[]; -extern const struct SpriteFrameImage gSpriteImages_83A00A0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0140[]; -extern const struct SpriteFrameImage gSpriteImages_83A0270[]; -extern const struct SpriteFrameImage gSpriteImages_83A0330[]; -extern const struct SpriteFrameImage gSpriteImages_83A04C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0420[]; -extern const struct SpriteFrameImage gSpriteImages_83A0470[]; -extern const struct SpriteFrameImage gSpriteImages_83A0508[]; -extern const struct SpriteFrameImage gSpriteImages_83A0550[]; -extern const struct SpriteFrameImage gSpriteImages_83A05A0[]; -extern const struct SpriteFrameImage gSpriteImages_83A05E8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0638[]; -extern const struct SpriteFrameImage gSpriteImages_83A0688[]; -extern const struct SpriteFrameImage gSpriteImages_83A06D8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0C40[]; -extern const struct SpriteFrameImage gSpriteImages_83A0720[]; -extern const struct SpriteFrameImage gSpriteImages_83A0770[]; -extern const struct SpriteFrameImage gSpriteImages_83A07C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0808[]; -extern const struct SpriteFrameImage gSpriteImages_83A0858[]; -extern const struct SpriteFrameImage gSpriteImages_83A08A8[]; -extern const struct SpriteFrameImage gSpriteImages_83A08F8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0940[]; -extern const struct SpriteFrameImage gSpriteImages_83A0988[]; -extern const struct SpriteFrameImage gSpriteImages_83A09D8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0A20[]; -extern const struct SpriteFrameImage gSpriteImages_83A0AB8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0B00[]; -extern const struct SpriteFrameImage gSpriteImages_83A0B50[]; -extern const struct SpriteFrameImage gSpriteImages_83A0BA0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0BF0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0C90[]; -extern const struct SpriteFrameImage gSpriteImages_83A0CE0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0D30[]; -extern const struct SpriteFrameImage gSpriteImages_83A0D78[]; -extern const struct SpriteFrameImage gSpriteImages_83A0DC8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0E18[]; -extern const struct SpriteFrameImage gSpriteImages_83A0E68[]; -extern const struct SpriteFrameImage gSpriteImages_83A0EB8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0F08[]; -extern const struct SpriteFrameImage gSpriteImages_83A0F58[]; -extern const struct SpriteFrameImage gSpriteImages_83A0FA8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0FF8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1040[]; -extern const struct SpriteFrameImage gSpriteImages_83A1090[]; -extern const struct SpriteFrameImage gSpriteImages_83A10D8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1120[]; -extern const struct SpriteFrameImage gSpriteImages_83A1170[]; -extern const struct SpriteFrameImage gSpriteImages_83A11C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1210[]; -extern const struct SpriteFrameImage gSpriteImages_83A1260[]; -extern const struct SpriteFrameImage gSpriteImages_83A12B0[]; -extern const struct SpriteFrameImage gSpriteImages_83A12F8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1348[]; -extern const struct SpriteFrameImage gSpriteImages_83A1390[]; -extern const struct SpriteFrameImage gSpriteImages_83A1398[]; -extern const struct SpriteFrameImage gSpriteImages_83A13E0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1430[]; -extern const struct SpriteFrameImage gSpriteImages_83A1480[]; -extern const struct SpriteFrameImage gSpriteImages_83A14C8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0A70[]; -extern const struct SpriteFrameImage gSpriteImages_83A1510[]; -extern const struct SpriteFrameImage gSpriteImages_83A1530[]; -extern const struct SpriteFrameImage gSpriteImages_83A1578[]; -extern const struct SpriteFrameImage gSpriteImages_83A15C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1608[]; -extern const struct SpriteFrameImage gSpriteImages_83A1650[]; -extern const struct SpriteFrameImage gSpriteImages_83A1698[]; -extern const struct SpriteFrameImage gSpriteImages_83A16B8[]; -extern const struct SpriteFrameImage gSpriteImages_83A0188[]; -extern const struct SpriteFrameImage gSpriteImages_83A0228[]; -extern const struct SpriteFrameImage gSpriteImages_83A02D0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0378[]; -extern const struct SpriteFrameImage gSpriteImages_83A0140[]; -extern const struct SpriteFrameImage gSpriteImages_83A16C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1708[]; -extern const struct SpriteFrameImage gSpriteImages_83A1750[]; -extern const struct SpriteFrameImage gSpriteImages_83A1798[]; -extern const struct SpriteFrameImage gSpriteImages_83A17E0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1828[]; -extern const struct SpriteFrameImage gSpriteImages_83A1870[]; -extern const struct SpriteFrameImage gSpriteImages_83A18B8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1900[]; -extern const struct SpriteFrameImage gSpriteImages_83A1948[]; -extern const struct SpriteFrameImage gSpriteImages_83A1990[]; -extern const struct SpriteFrameImage gSpriteImages_83A19D8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1A20[]; -extern const struct SpriteFrameImage gSpriteImages_83A1A68[]; -extern const struct SpriteFrameImage gSpriteImages_83A1AB0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1AF8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1B40[]; -extern const struct SpriteFrameImage gSpriteImages_83A1BA0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0330[]; -extern const struct SpriteFrameImage gSpriteImages_83A03C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A0378[]; -extern const struct SpriteFrameImage gSpriteImages_83A03F0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C00[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C08[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C10[]; -extern const struct SpriteFrameImage gSpriteImages_83A1D38[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C58[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C60[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C68[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C70[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C78[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C80[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C88[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C90[]; -extern const struct SpriteFrameImage gSpriteImages_83A1C98[]; -extern const struct SpriteFrameImage gSpriteImages_83A1CA0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1D80[]; -extern const struct SpriteFrameImage gSpriteImages_83A1E10[]; -extern const struct SpriteFrameImage gSpriteImages_83A1E58[]; -extern const struct SpriteFrameImage gSpriteImages_83A1EA0[]; -extern const struct SpriteFrameImage gSpriteImages_83A1EE8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1F30[]; -extern const struct SpriteFrameImage gSpriteImages_83A1F78[]; -extern const struct SpriteFrameImage gSpriteImages_83A1FC0[]; -extern const struct SpriteFrameImage gSpriteImages_83A2008[]; -extern const struct SpriteFrameImage gSpriteImages_83A2050[]; -extern const struct SpriteFrameImage gSpriteImages_83A2098[]; -extern const struct SpriteFrameImage gSpriteImages_83A20E0[]; -extern const struct SpriteFrameImage gSpriteImages_83A2128[]; -extern const struct SpriteFrameImage gSpriteImages_83A2170[]; -extern const struct SpriteFrameImage gSpriteImages_83A21B8[]; -extern const struct SpriteFrameImage gSpriteImages_83A2200[]; -extern const struct SpriteFrameImage gSpriteImages_83A2248[]; -extern const struct SpriteFrameImage gSpriteImages_83A2290[]; -extern const struct SpriteFrameImage gSpriteImages_83A22D8[]; -extern const struct SpriteFrameImage gSpriteImages_83A2320[]; -extern const struct SpriteFrameImage gSpriteImages_83A2368[]; -extern const struct SpriteFrameImage gSpriteImages_83A23B0[]; -extern const struct SpriteFrameImage gSpriteImages_83A23F8[]; -extern const struct SpriteFrameImage gSpriteImages_83A2440[]; -extern const struct SpriteFrameImage gSpriteImages_83A2488[]; -extern const struct SpriteFrameImage gSpriteImages_83A24D0[]; -extern const struct SpriteFrameImage gSpriteImages_83A2518[]; -extern const struct SpriteFrameImage gSpriteImages_83A2560[]; -extern const struct SpriteFrameImage gSpriteImages_83A25A8[]; -extern const struct SpriteFrameImage gSpriteImages_83A25F0[]; -extern const struct SpriteFrameImage gSpriteImages_83A2638[]; -extern const struct SpriteFrameImage gSpriteImages_83A2680[]; -extern const struct SpriteFrameImage gSpriteImages_83A2878[]; -extern const struct SpriteFrameImage gSpriteImages_83A28C0[]; -extern const struct SpriteFrameImage gSpriteImages_83A26C8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1DC8[]; -extern const struct SpriteFrameImage gSpriteImages_83A2710[]; -extern const struct SpriteFrameImage gSpriteImages_83A2758[]; -extern const struct SpriteFrameImage gSpriteImages_83A27A0[]; -extern const struct SpriteFrameImage gSpriteImages_83A27E8[]; -extern const struct SpriteFrameImage gSpriteImages_83A2830[]; -extern const struct SpriteFrameImage gSpriteImages_83A2908[]; -extern const struct SpriteFrameImage gSpriteImages_83A1CA8[]; -extern const struct SpriteFrameImage gSpriteImages_83A1CF0[]; -extern const union AffineAnimCmd * const gDummySpriteAffineAnimTable[]; -extern const u32 gUnknown_835BB68[]; -extern const u32 gUnknown_835C468[]; -extern const u32 gUnknown_8361FA8[]; -extern const u32 gUnknown_835D268[]; -extern const u32 gUnknown_835DB68[]; -extern const u32 gUnknown_8363DA8[]; -extern const u32 gUnknown_835E9A8[]; -extern const u32 gUnknown_835F2A8[]; -extern const u32 gUnknown_83631A8[]; -extern const u32 gUnknown_8364FA8[]; -extern const u32 gUnknown_8365BA8[]; -extern const u32 gUnknown_83664A8[]; -extern const u32 gUnknown_8397708[]; -extern const u32 gUnknown_836D928[]; -extern const u32 gUnknown_836DDA8[]; -extern const u32 gUnknown_836E2A8[]; -extern const u32 gUnknown_836E5A8[]; -extern const u32 gUnknown_836EFA8[]; -extern const u32 gUnknown_83703A8[]; -extern const u32 gUnknown_8370DA8[]; -extern const u32 gUnknown_83720A8[]; -extern const u32 gUnknown_83716A8[]; -extern const u32 gUnknown_83733A8[]; -extern const u32 gUnknown_8373CA8[]; -extern const u32 gUnknown_83746A8[]; -extern const u32 gUnknown_83750A8[]; -extern const u32 gUnknown_8375CA8[]; -extern const u32 gUnknown_83766A8[]; -extern const u32 gUnknown_83770A8[]; -extern const u32 gUnknown_8377AA8[]; -extern const u32 gUnknown_83783A8[]; -extern const u32 gUnknown_8378CA8[]; -extern const u32 gUnknown_83795A8[]; -extern const u32 gUnknown_8379FA8[]; -extern const u32 gUnknown_837A9A8[]; -extern const u32 gUnknown_837B3A8[]; -extern const u32 gUnknown_836F9A8[]; -extern const u32 gUnknown_837BF28[]; -extern const u32 gUnknown_837C928[]; -extern const u32 gUnknown_837D328[]; -extern const u32 gUnknown_837DC28[]; -extern const u32 gUnknown_837E628[]; -extern const u32 gUnknown_837F028[]; -extern const u32 gUnknown_837FA28[]; -extern const u32 gUnknown_8380428[]; -extern const u32 gUnknown_8380E28[]; -extern const u32 gUnknown_8381828[]; -extern const u32 gUnknown_8382228[]; -extern const u32 gUnknown_8382C28[]; -extern const u32 gUnknown_8383528[]; -extern const u32 gUnknown_8383F28[]; -extern const u32 gUnknown_8384828[]; -extern const u32 gUnknown_8385128[]; -extern const u32 gUnknown_8385628[]; -extern const u32 gUnknown_8385B28[]; -extern const u32 gUnknown_8386028[]; -extern const u32 gUnknown_8386A28[]; -extern const u32 gUnknown_8387E28[]; -extern const u32 gUnknown_838AD28[]; -extern const u32 gUnknown_838B728[]; -extern const u32 gUnknown_8389B28[]; -extern const u32 gUnknown_8388728[]; -extern const u32 gUnknown_8389128[]; -extern const u32 gUnknown_838BAA8[]; -extern const u32 gUnknown_838C3A8[]; -extern const u32 gUnknown_83945A8[]; -extern const u32 gUnknown_838C6A8[]; -extern const u32 gUnknown_838CFA8[]; -extern const u32 gUnknown_838D2A8[]; -extern const u32 gUnknown_838B128[]; -extern const u32 gUnknown_838B428[]; -extern const u32 gUnknown_83947A8[]; -extern const u32 gUnknown_838DEA8[]; -extern const u32 gUnknown_838E7A8[]; -extern const u32 gUnknown_8390F28[]; -extern const u32 gUnknown_836C928[]; -extern const u32 gUnknown_8391228[]; -extern const u32 gUnknown_836CC28[]; -extern const u32 gUnknown_836C328[]; -extern const u32 gUnknown_836C628[]; -extern const u32 gUnknown_836A228[]; -extern const u32 gUnknown_836AB28[]; -extern const u32 gUnknown_836AE28[]; -extern const u32 gUnknown_836CF28[]; -extern const u32 gUnknown_836B128[]; -extern const u32 gUnknown_836BA28[]; -extern const u32 gUnknown_8391528[]; -extern const u32 gUnknown_838A428[]; -extern const u32 gUnknown_8366DA8[]; -extern const u32 gUnknown_83685A8[]; -extern const u32 gUnknown_8391828[]; -extern const u32 gUnknown_83939A8[]; -extern const u32 gUnknown_8391E28[]; -extern const u32 gUnknown_8391FA8[]; -extern const u32 gUnknown_8392128[]; -extern const u32 gUnknown_837BDA8[]; -extern const u32 gUnknown_83922A8[]; -extern const u32 gUnknown_8392428[]; -extern const u32 gUnknown_83925A8[]; -extern const u32 gUnknown_8392728[]; -extern const u32 gUnknown_83928A8[]; -extern const u32 gUnknown_8392A28[]; -extern const u32 gUnknown_8392BA8[]; -extern const u32 gUnknown_8392D28[]; -extern const u32 gUnknown_8392EA8[]; -extern const u32 gUnknown_8393028[]; -extern const u32 gUnknown_83931A8[]; -extern const u32 gUnknown_8393328[]; -extern const u32 gUnknown_838F0A8[]; -extern const u32 gUnknown_8390328[]; -extern const u32 gUnknown_8390728[]; -extern const u32 gUnknown_8390B28[]; -extern const u32 gUnknown_838FAA8[]; -extern const u32 gUnknown_838FEA8[]; -extern const u32 gUnknown_8393B28[]; -extern const u32 gUnknown_8393CA8[]; -extern const u32 gUnknown_8393E28[]; -extern const u32 gUnknown_8393FA8[]; -extern const u32 gUnknown_8394128[]; -extern const u32 gUnknown_83942A8[]; -extern const u32 gUnknown_8394428[]; -extern const u32 gUnknown_8393628[]; -extern const u32 gUnknown_83934A8[]; -extern const u32 gUnknown_8391B28[]; -extern const u32 gUnknown_8375AA8[]; -extern const u32 gUnknown_838BA28[]; -extern const u32 gUnknown_83949A8[]; -extern const u32 gUnknown_8369E28[]; -extern const u32 gUnknown_8369DA8[]; -extern const u32 gUnknown_8394A28[]; -extern const u32 gUnknown_8394AA8[]; -extern const u32 gUnknown_8394B28[]; -extern const u32 gUnknown_8394BA8[]; -extern const u32 gUnknown_8394C28[]; -extern const u32 gUnknown_8394D28[]; -extern const u32 gUnknown_8394DA8[]; -extern const u32 gUnknown_838FA28[]; -extern const u32 gUnknown_838F9A8[]; -extern const u32 gUnknown_838F928[]; -extern const u32 gUnknown_838F8A8[]; -extern const u32 gUnknown_838F828[]; -extern const u32 gUnknown_838F628[]; -extern const u32 gUnknown_838F428[]; -extern const u32 gUnknown_838F228[]; -extern const u32 gUnknown_83937A8[]; -extern const u32 gUnknown_8395B08[]; -extern const u32 gUnknown_83952E8[]; -extern const u32 gUnknown_83950C8[]; -extern const u32 gUnknown_8394EC8[]; -extern const u32 gUnknown_8394E28[]; - -// TODO: some data +const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; + +const struct SpriteTemplate gCameraSpriteTemplate = { + .tileTag = 0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = ObjectCB_CameraObject +}; + +void (*const gCameraObjectFuncs[])(struct Sprite *) = { + CameraObject_0, + CameraObject_1, + CameraObject_2, +}; #include "data/object_events/object_event_graphics.h" @@ -3339,7 +2637,7 @@ u8 AddCameraObject(u8 linkedSpriteId) return spriteId; } -/*static*/ void ObjectCB_CameraObject(struct Sprite *sprite) +static void ObjectCB_CameraObject(struct Sprite *sprite) { void (*callbacks[NELEMS(gCameraObjectFuncs)])(struct Sprite *); @@ -3347,7 +2645,7 @@ u8 AddCameraObject(u8 linkedSpriteId) callbacks[sprite->data[1]](sprite); } -/*static*/ void CameraObject_0(struct Sprite *sprite) +static void CameraObject_0(struct Sprite *sprite) { sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; @@ -3356,7 +2654,7 @@ u8 AddCameraObject(u8 linkedSpriteId) CameraObject_1(sprite); } -/*static*/ void CameraObject_1(struct Sprite *sprite) +static void CameraObject_1(struct Sprite *sprite) { s16 x = gSprites[sprite->data[0]].pos1.x; s16 y = gSprites[sprite->data[0]].pos1.y; @@ -3367,7 +2665,7 @@ u8 AddCameraObject(u8 linkedSpriteId) sprite->pos1.y = y; } -/*static*/ void CameraObject_2(struct Sprite *sprite) +static void CameraObject_2(struct Sprite *sprite) { sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; @@ -5406,7 +4704,7 @@ bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, stru return gCopyPlayerMovementFuncs[PlayerGetCopyableMovement()](objectEvent, sprite, GetPlayerMovementDirection(), MetatileBehavior_IsPokeGrass); } -void MovementType_TreeDisguise(struct Sprite *sprite) +static void MovementType_TreeDisguise(struct Sprite *sprite) { struct ObjectEvent *objectEvent; @@ -5427,7 +4725,7 @@ static bool8 MovementType_Disguise_Callback(struct ObjectEvent *objectEvent, str return FALSE; } -void MovementType_MountainDisguise(struct Sprite *sprite) +static void MovementType_MountainDisguise(struct Sprite *sprite) { struct ObjectEvent *objectEvent; @@ -5442,7 +4740,7 @@ void MovementType_MountainDisguise(struct Sprite *sprite) UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback); } -void MovementType_Hidden(struct Sprite *sprite) +static void MovementType_Hidden(struct Sprite *sprite) { if (!sprite->data[7]) { |