/**
 * @file playerItemBow.c
 * @ingroup Items
 *
 * @brief Bow Player Item
 */
#include "asm.h"
#include "effects.h"
#include "entity.h"
#include "functions.h"
#include "object.h"
#include "playeritem.h"
#include "save.h"
#include "sound.h"
#include "tiles.h"

typedef struct {
    /*0x00*/ Entity base;
    /*0x68*/ u8 unk_68;
    /*0x69*/ u8 unk_69[3];
    /*0x6c*/ u32 unk_6c;
    /*0x70*/ u32 unk_70;
    /*0x74*/ u32 unk_74;
    /*0x78*/ u32 unk_78;
} PlayerItemBowEntity;

typedef struct {
    s8 x;
    s8 y;
    u8 spriteSettings;
    u8 unk_3;
    s8 unk_4;
    s8 unk_5;
    u8 animIndex;
    u8 unk_7;
    const Hitbox* hitbox;
} struct_080B3E40;

extern u8 gUnk_08003E44;

extern Entity* DoTileInteractionOffset(Entity*, u32, s32, s32);
extern void sub_08017744(Entity*);
extern void ModArrows(s32);

void sub_08019468(PlayerItemBowEntity* this);
void PlayerItemBow_Init(PlayerItemBowEntity* this);
void PlayerItemBow_Action1(PlayerItemBowEntity* this);
void PlayerItemBow_Action2(PlayerItemBowEntity* this);
void PlayerItemBow_Action3(PlayerItemBowEntity* this);

void PlayerItemBow(Entity* this) {
    static void (*const PlayerItemBow_Actions[])(PlayerItemBowEntity*) = {
        PlayerItemBow_Init,
        PlayerItemBow_Action1,
        PlayerItemBow_Action2,
        PlayerItemBow_Action3,
    };
    PlayerItemBow_Actions[this->action]((PlayerItemBowEntity*)this);
}

static const Hitbox gUnk_080B3E70;
static const Hitbox gUnk_080B3E78;

static const struct_080B3E40 gUnk_080B3E40[] = {
    { -3, -12, 0, 0, 0, -5, 2, 0, &gUnk_080B3E78 },
    { 8, -4, 1, 0, 5, 0, 1, 0, &gUnk_080B3E70 },
    { 0, 1, 0, 1, 0, 5, 2, 0, &gUnk_080B3E78 },
    { -8, -4, 0, 0, -5, 0, 1, 0, &gUnk_080B3E70 },
};

static const Hitbox gUnk_080B3E70 = { 0, 0, { 4, 0, 0, 0 }, 6, 4 };
static const Hitbox gUnk_080B3E78 = { 0, 0, { 0, 0, 0, 4 }, 4, 6 };

void PlayerItemBow_Init(PlayerItemBowEntity* this) {
    Entity* object;
    const struct_080B3E40* ptr;
    super->action = 1;
    if (super->type != 0) {
        super->spriteSettings.draw = 1;
        super->flags |= 0x80;
        this->unk_74 = 106;
        super->hurtType = super->type2;
        super->spriteIndex = 0xa6;
        if (super->hurtType == 0x0e) {
            super->speed = 0x400;
        } else {
            super->speed = 0x300;
        }
        super->direction = super->animationState << 2;
        super->collisionFlags = gPlayerEntity.base.collisionFlags + 1;
        super->collisionMask = gPlayerEntity.base.collisionMask;
        if (super->collisionLayer == 2) {
            super->type2 = 1;
        } else {
            super->type2 = 0;
        }
        super->spriteOrientation.flipY = gPlayerEntity.base.spriteOrientation.flipY;
        ptr = &gUnk_080B3E40[super->animationState >> 1];
        super->x.HALF.HI = gPlayerEntity.base.x.HALF.HI + ptr->x;
        super->y.HALF.HI = gPlayerEntity.base.y.HALF.HI + ptr->y;
        super->spriteSettings.flipX = ptr->spriteSettings;
        super->spriteSettings.flipY = ptr->unk_3;
        super->animIndex = ptr->animIndex;
        this->unk_6c = ptr->unk_4;
        this->unk_70 = ptr->unk_5;
        super->hitbox = (Hitbox*)ptr->hitbox;
        sub_0801766C(super);
        if (super->hurtType == 0x0e) {
            super->animIndex += 6;
            super->spriteVramOffset = 0;
        }
        InitializeAnimation(super, super->animIndex);
        SoundReq(SFX_FC);
    } else {
        super->updatePriority = 6;
        super->frameIndex = 0xff;
        super->spriteSettings.flipX = gUnk_080B3E40[super->animationState >> 1].spriteSettings;
        gPlayerState.item = super;
        LoadSwapGFX(super, 1, 3);
        sub_08079BD8(super);
        if (this->unk_68 == 0xa) {
            this->unk_78 = 60;
            object = CreateObject(SWORD_PARTICLE, super->type, 1);
            if (object != NULL) {
                CopyPosition(super, object);
            }
        } else {
            this->unk_78 = 0;
        }
        PlayerItemBow_Action1(this);
    }
}

void PlayerItemBow_Action1(PlayerItemBowEntity* this) {
    u8 arrowCount;
    bool32 tmp2;
    s32 tmp3;
    Entity* entity;

    if (super->type != 0) {
        if (--this->unk_74 == 0) {
            sub_08019468(this);
            DeleteThisEntity();
        }
        GetNextFrame(super);
        if (this->unk_74 < 24) {
            super->spriteSettings.draw ^= 1;
        }
        LinearMoveUpdate(super);
        if (DoTileInteractionOffset(super, (super->hurtType == 0x0e) ? 1 : 4, this->unk_6c, this->unk_70) != NULL) {
            if (super->hurtType != 0x0e) {
                DeleteThisEntity();
            }
            tmp2 = TRUE;
        } else {
            tmp2 = FALSE;
        }
        if (super->hurtType == 0x0e) {
            super->timer++;
            if ((super->timer & 7) == 0) {
                CreateFx(super, FX_SPARKLE2, 0);
            }
        }
        if (super->type2 == 0) {
            sub_0800451C(super);
        }
        if ((sub_080B1BA4(COORD_TO_TILE(super), gPlayerEntity.base.collisionLayer, 0x80) == 0) && (!tmp2) &&
            sub_080040D8(super, &gUnk_08003E44, super->x.HALF.HI, super->y.HALF.HI) != 0) {
            super->timer = 30;
            super->action++;
            if (super->hurtType == 0x0e) {
                sub_08019468(this);
                InitializeAnimation(super, super->animIndex + 0xf);
            } else {
                InitializeAnimation(super, super->animIndex + 2);
            }
            sub_08017744(super);
            super->flags &= ~0x80;
            super->speed = 0;
            tmp3 = super->x.WORD;
            if (tmp3 < 0) {
                tmp3 = 0;
            }
            super->x.WORD = tmp3;
            tmp3 = super->y.WORD;
            if (tmp3 < 0) {
                tmp3 = 0;
            }
            super->y.WORD = tmp3;
            SoundReq(SFX_18A);
        }
        if ((super->contactFlags != 0) && (!tmp2)) {
            if (super->hurtType == 0x0e) {
                sub_08019468(this);
            }
            sub_08017744(super);
            if ((super->contactFlags & 0x3f) == 0x42) {
                super->spriteSettings.draw = 1;
                super->action = 3;
                super->direction ^= 0x10;
                super->speed = 0x100;
                super->zVelocity = Q_16_16(0.5);
                super->flags &= ~0x80;
                InitializeAnimation(super, 6);
            } else {
                super->action++;
                super->timer = 1;
                super->spriteSettings.draw = 0;
            }
        }

    } else {
        if ((PlayerItemBowEntity*)gPlayerState.item != this || (gPlayerState.bow_state == 0)) {
            if ((PlayerItemBowEntity*)gPlayerState.item == this) {
                gPlayerState.item = 0;
            }
            gPlayerState.bow_state = 0;
            DeleteThisEntity();
        }
        if ((this->unk_68 == 0xa) && (gPlayerState.bow_state != 0)) {
            if (gPlayerState.bow_state < 0x78) {
                gPlayerState.bow_state++;
            } else {
                super->hurtType = 0x0e;
            }
        }
        arrowCount = gSave.stats.arrowCount;
        if (super->frameIndex - this->unk_78 != gPlayerEntity.base.frameIndex) {
            super->frameIndex = gPlayerEntity.base.frameIndex + this->unk_78;
            if (arrowCount == 0) {
                super->frameIndex += 0x2a;
            }
            sub_080042D0(super, super->frameIndex, super->spriteIndex);
        }
        if ((gPlayerEntity.base.frame & 1) != 0 && arrowCount != 0) {
            entity = CreatePlayerItem(PLAYER_ITEM_BOW, 1, super->hurtType, 9);
            if (entity != NULL) {
                gPlayerState.attack_status |= 0x80;
                ModArrows(-1);
            }
        }
        sub_08078E84(super, &gPlayerEntity.base);
    }
}

void PlayerItemBow_Action2(PlayerItemBowEntity* this) {
    if (super->timer < 0xf) {
        InitializeAnimation(super, super->animIndex);
    } else {
        GetNextFrame(super);
    }
    if (super->timer-- == 0) {
        DeleteThisEntity();
    }
}

void PlayerItemBow_Action3(PlayerItemBowEntity* this) {
    GetNextFrame(super);
    LinearMoveUpdate(super);
    if (GravityUpdate(super, Q_8_8(32.0)) == 0) {
        DeleteThisEntity();
    }
}

void sub_08019468(PlayerItemBowEntity* this) {
    if (super->hurtType == 0xe) {
        CreateFx(super, FX_REFLECT5, 0);
    }
}

// Probably belongs to collision.c, but needs to be placed at the end of playerItemBow.c or start of
// playerItemSwordBeam.c
// maps tileType to collisionData
const u8 gMapTileTypeToCollisionData[] = {
    COLLISION_DATA_0,   // TILE_TYPE_0
    COLLISION_DATA_0,   // TILE_TYPE_1
    COLLISION_DATA_0,   // TILE_TYPE_2
    COLLISION_DATA_0,   // TILE_TYPE_3
    COLLISION_DATA_0,   // TILE_TYPE_4
    COLLISION_DATA_0,   // TILE_TYPE_5
    COLLISION_DATA_0,   // TILE_TYPE_6
    COLLISION_DATA_0,   // TILE_TYPE_7
    COLLISION_DATA_0,   // TILE_TYPE_8
    COLLISION_DATA_0,   // TILE_TYPE_9
    COLLISION_DATA_0,   // TILE_TYPE_10
    COLLISION_DATA_0,   // TILE_TYPE_11
    COLLISION_DATA_255, // TILE_TYPE_12
    COLLISION_DATA_255, // TILE_TYPE_13
    COLLISION_DATA_255, // TILE_TYPE_14
    COLLISION_DATA_255, // TILE_TYPE_15
    COLLISION_DATA_255, // TILE_TYPE_16
    COLLISION_DATA_255, // TILE_TYPE_17
    COLLISION_DATA_255, // TILE_TYPE_18
    COLLISION_DATA_0,   // TILE_TYPE_19
    COLLISION_DATA_255, // TILE_TYPE_20
    COLLISION_DATA_255, // TILE_TYPE_21
    COLLISION_DATA_255, // TILE_TYPE_22
    COLLISION_DATA_255, // TILE_TYPE_23
    COLLISION_DATA_255, // TILE_TYPE_24
    COLLISION_DATA_255, // TILE_TYPE_25
    COLLISION_DATA_0,   // TILE_TYPE_26
    COLLISION_DATA_0,   // TILE_TYPE_27
    COLLISION_DATA_0,   // TILE_TYPE_28
    COLLISION_DATA_0,   // TILE_TYPE_29
    COLLISION_DATA_0,   // TILE_TYPE_30
    COLLISION_DATA_0,   // TILE_TYPE_31
    COLLISION_DATA_0,   // TILE_TYPE_32
    COLLISION_DATA_0,   // TILE_TYPE_33
    COLLISION_DATA_0,   // TILE_TYPE_34
    COLLISION_DATA_0,   // TILE_TYPE_35
    COLLISION_DATA_0,   // TILE_TYPE_36
    COLLISION_DATA_0,   // TILE_TYPE_37
    COLLISION_DATA_0,   // TILE_TYPE_38
    COLLISION_DATA_0,   // TILE_TYPE_39
    COLLISION_DATA_0,   // TILE_TYPE_40
    COLLISION_DATA_0,   // TILE_TYPE_41
    COLLISION_DATA_255, // TILE_TYPE_42
    COLLISION_DATA_0,   // TILE_TYPE_43
    COLLISION_DATA_0,   // TILE_TYPE_44
    COLLISION_DATA_255, // TILE_TYPE_45
    COLLISION_DATA_0,   // TILE_TYPE_46
    COLLISION_DATA_0,   // TILE_TYPE_47
    COLLISION_DATA_0,   // TILE_TYPE_48
    COLLISION_DATA_0,   // TILE_TYPE_49
    COLLISION_DATA_0,   // TILE_TYPE_50
    COLLISION_DATA_0,   // TILE_TYPE_51
    COLLISION_DATA_0,   // TILE_TYPE_52
    COLLISION_DATA_33,  // TILE_TYPE_53
    COLLISION_DATA_0,   // TILE_TYPE_54
    COLLISION_DATA_0,   // TILE_TYPE_55
    COLLISION_DATA_0,   // TILE_TYPE_56
    COLLISION_DATA_48,  // TILE_TYPE_57
    COLLISION_DATA_34,  // TILE_TYPE_58
    COLLISION_DATA_34,  // TILE_TYPE_59
    COLLISION_DATA_36,  // TILE_TYPE_60
    COLLISION_DATA_0,   // TILE_TYPE_61
    COLLISION_DATA_0,   // TILE_TYPE_62
    COLLISION_DATA_29,  // TILE_TYPE_63
    COLLISION_DATA_29,  // TILE_TYPE_64
    COLLISION_DATA_29,  // TILE_TYPE_65
    COLLISION_DATA_255, // TILE_TYPE_66
    COLLISION_DATA_255, // TILE_TYPE_67
    COLLISION_DATA_29,  // TILE_TYPE_68
    COLLISION_DATA_29,  // TILE_TYPE_69
    COLLISION_DATA_29,  // TILE_TYPE_70
    COLLISION_DATA_29,  // TILE_TYPE_71
    COLLISION_DATA_29,  // TILE_TYPE_72
    COLLISION_DATA_29,  // TILE_TYPE_73
    COLLISION_DATA_29,  // TILE_TYPE_74
    COLLISION_DATA_29,  // TILE_TYPE_75
    COLLISION_DATA_29,  // TILE_TYPE_76
    COLLISION_DATA_29,  // TILE_TYPE_77
    COLLISION_DATA_29,  // TILE_TYPE_78
    COLLISION_DATA_29,  // TILE_TYPE_79
    COLLISION_DATA_255, // TILE_TYPE_80
    COLLISION_DATA_255, // TILE_TYPE_81
    COLLISION_DATA_255, // TILE_TYPE_82
    COLLISION_DATA_255, // TILE_TYPE_83
    COLLISION_DATA_255, // TILE_TYPE_84
    COLLISION_DATA_29,  // TILE_TYPE_85
    COLLISION_DATA_29,  // TILE_TYPE_86
    COLLISION_DATA_29,  // TILE_TYPE_87
    COLLISION_DATA_255, // TILE_TYPE_88
    COLLISION_DATA_255, // TILE_TYPE_89
    COLLISION_DATA_29,  // TILE_TYPE_90
    COLLISION_DATA_29,  // TILE_TYPE_91
    COLLISION_DATA_255, // TILE_TYPE_92
    COLLISION_DATA_255, // TILE_TYPE_93
    COLLISION_DATA_255, // TILE_TYPE_94
    COLLISION_DATA_255, // TILE_TYPE_95
    COLLISION_DATA_255, // TILE_TYPE_96
    COLLISION_DATA_0,   // TILE_TYPE_97
    COLLISION_DATA_0,   // TILE_TYPE_98
    COLLISION_DATA_0,   // TILE_TYPE_99
    COLLISION_DATA_0,   // TILE_TYPE_100
    COLLISION_DATA_0,   // TILE_TYPE_101
    COLLISION_DATA_0,   // TILE_TYPE_102
    COLLISION_DATA_0,   // TILE_TYPE_103
    COLLISION_DATA_0,   // TILE_TYPE_104
    COLLISION_DATA_0,   // TILE_TYPE_105
    COLLISION_DATA_0,   // TILE_TYPE_106
    COLLISION_DATA_0,   // TILE_TYPE_107
    COLLISION_DATA_0,   // TILE_TYPE_108
    COLLISION_DATA_0,   // TILE_TYPE_109
    COLLISION_DATA_0,   // TILE_TYPE_110
    COLLISION_DATA_15,  // TILE_TYPE_111
    COLLISION_DATA_15,  // TILE_TYPE_112
    COLLISION_DATA_32,  // TILE_TYPE_113
    COLLISION_DATA_32,  // TILE_TYPE_114
    COLLISION_DATA_15,  // TILE_TYPE_115
    COLLISION_DATA_15,  // TILE_TYPE_116
    COLLISION_DATA_15,  // TILE_TYPE_117
    COLLISION_DATA_15,  // TILE_TYPE_118
    COLLISION_DATA_0,   // TILE_TYPE_119
    COLLISION_DATA_0,   // TILE_TYPE_120
    COLLISION_DATA_0,   // TILE_TYPE_121
    COLLISION_DATA_0,   // TILE_TYPE_122
    COLLISION_DATA_21,  // TILE_TYPE_123
    COLLISION_DATA_21,  // TILE_TYPE_124
    COLLISION_DATA_20,  // TILE_TYPE_125
    COLLISION_DATA_20,  // TILE_TYPE_126
    COLLISION_DATA_95,  // TILE_TYPE_127
    COLLISION_DATA_255, // TILE_TYPE_128
    COLLISION_DATA_255, // TILE_TYPE_129
    COLLISION_DATA_255, // TILE_TYPE_130
    COLLISION_DATA_255, // TILE_TYPE_131
    COLLISION_DATA_255, // TILE_TYPE_132
    COLLISION_DATA_255, // TILE_TYPE_133
    COLLISION_DATA_15,  // TILE_TYPE_134
    COLLISION_DATA_41,  // TILE_TYPE_135
    COLLISION_DATA_41,  // TILE_TYPE_136
    COLLISION_DATA_41,  // TILE_TYPE_137
    COLLISION_DATA_41,  // TILE_TYPE_138
    COLLISION_DATA_0,   // TILE_TYPE_139
    COLLISION_DATA_36,  // TILE_TYPE_140
    COLLISION_DATA_36,  // TILE_TYPE_141
    COLLISION_DATA_36,  // TILE_TYPE_142
    COLLISION_DATA_15,  // TILE_TYPE_143
    COLLISION_DATA_15,  // TILE_TYPE_144
    COLLISION_DATA_15,  // TILE_TYPE_145
    COLLISION_DATA_15,  // TILE_TYPE_146
    COLLISION_DATA_255, // TILE_TYPE_147
    COLLISION_DATA_255, // TILE_TYPE_148
    COLLISION_DATA_255, // TILE_TYPE_149
    COLLISION_DATA_255, // TILE_TYPE_150
    COLLISION_DATA_255, // TILE_TYPE_151
    COLLISION_DATA_255, // TILE_TYPE_152
    COLLISION_DATA_15,  // TILE_TYPE_153
    COLLISION_DATA_15,  // TILE_TYPE_154
    COLLISION_DATA_15,  // TILE_TYPE_155
    COLLISION_DATA_15,  // TILE_TYPE_156
    COLLISION_DATA_39,  // TILE_TYPE_157
    COLLISION_DATA_39,  // TILE_TYPE_158
    COLLISION_DATA_15,  // TILE_TYPE_159
    COLLISION_DATA_15,  // TILE_TYPE_160
    COLLISION_DATA_15,  // TILE_TYPE_161
    COLLISION_DATA_39,  // TILE_TYPE_162
    COLLISION_DATA_15,  // TILE_TYPE_163
    COLLISION_DATA_15,  // TILE_TYPE_164
    COLLISION_DATA_35,  // TILE_TYPE_165
    COLLISION_DATA_15,  // TILE_TYPE_166
    COLLISION_DATA_15,  // TILE_TYPE_167
    COLLISION_DATA_35,  // TILE_TYPE_168
    COLLISION_DATA_15,  // TILE_TYPE_169
    COLLISION_DATA_15,  // TILE_TYPE_170
    COLLISION_DATA_15,  // TILE_TYPE_171
    COLLISION_DATA_15,  // TILE_TYPE_172
    COLLISION_DATA_15,  // TILE_TYPE_173
    COLLISION_DATA_15,  // TILE_TYPE_174
    COLLISION_DATA_15,  // TILE_TYPE_175
    COLLISION_DATA_15,  // TILE_TYPE_176
    COLLISION_DATA_15,  // TILE_TYPE_177
    COLLISION_DATA_39,  // TILE_TYPE_178
    COLLISION_DATA_15,  // TILE_TYPE_179
    COLLISION_DATA_15,  // TILE_TYPE_180
    COLLISION_DATA_39,  // TILE_TYPE_181
    COLLISION_DATA_39,  // TILE_TYPE_182
    COLLISION_DATA_15,  // TILE_TYPE_183
    COLLISION_DATA_15,  // TILE_TYPE_184
    COLLISION_DATA_15,  // TILE_TYPE_185
    COLLISION_DATA_15,  // TILE_TYPE_186
    COLLISION_DATA_15,  // TILE_TYPE_187
    COLLISION_DATA_15,  // TILE_TYPE_188
    COLLISION_DATA_15,  // TILE_TYPE_189
    COLLISION_DATA_15,  // TILE_TYPE_190
    COLLISION_DATA_15,  // TILE_TYPE_191
    COLLISION_DATA_15,  // TILE_TYPE_192
    COLLISION_DATA_15,  // TILE_TYPE_193
    COLLISION_DATA_39,  // TILE_TYPE_194
    COLLISION_DATA_15,  // TILE_TYPE_195
    COLLISION_DATA_15,  // TILE_TYPE_196
    COLLISION_DATA_255, // TILE_TYPE_197
    COLLISION_DATA_39,  // TILE_TYPE_198
    COLLISION_DATA_15,  // TILE_TYPE_199
    COLLISION_DATA_15,  // TILE_TYPE_200
    COLLISION_DATA_15,  // TILE_TYPE_201
    COLLISION_DATA_15,  // TILE_TYPE_202
    COLLISION_DATA_15,  // TILE_TYPE_203
    COLLISION_DATA_15,  // TILE_TYPE_204
    COLLISION_DATA_15,  // TILE_TYPE_205
    COLLISION_DATA_15,  // TILE_TYPE_206
    COLLISION_DATA_15,  // TILE_TYPE_207
    COLLISION_DATA_15,  // TILE_TYPE_208
    COLLISION_DATA_15,  // TILE_TYPE_209
    COLLISION_DATA_39,  // TILE_TYPE_210
    COLLISION_DATA_39,  // TILE_TYPE_211
    COLLISION_DATA_15,  // TILE_TYPE_212
    COLLISION_DATA_15,  // TILE_TYPE_213
    COLLISION_DATA_39,  // TILE_TYPE_214
    COLLISION_DATA_15,  // TILE_TYPE_215
    COLLISION_DATA_15,  // TILE_TYPE_216
    COLLISION_DATA_15,  // TILE_TYPE_217
    COLLISION_DATA_15,  // TILE_TYPE_218
    COLLISION_DATA_15,  // TILE_TYPE_219
    COLLISION_DATA_15,  // TILE_TYPE_220
    COLLISION_DATA_15,  // TILE_TYPE_221
    COLLISION_DATA_15,  // TILE_TYPE_222
    COLLISION_DATA_15,  // TILE_TYPE_223
    COLLISION_DATA_15,  // TILE_TYPE_224
    COLLISION_DATA_15,  // TILE_TYPE_225
    COLLISION_DATA_35,  // TILE_TYPE_226
    COLLISION_DATA_15,  // TILE_TYPE_227
    COLLISION_DATA_15,  // TILE_TYPE_228
    COLLISION_DATA_35,  // TILE_TYPE_229
    COLLISION_DATA_35,  // TILE_TYPE_230
    COLLISION_DATA_15,  // TILE_TYPE_231
    COLLISION_DATA_15,  // TILE_TYPE_232
    COLLISION_DATA_15,  // TILE_TYPE_233
    COLLISION_DATA_15,  // TILE_TYPE_234
    COLLISION_DATA_15,  // TILE_TYPE_235
    COLLISION_DATA_15,  // TILE_TYPE_236
    COLLISION_DATA_15,  // TILE_TYPE_237
    COLLISION_DATA_15,  // TILE_TYPE_238
    COLLISION_DATA_15,  // TILE_TYPE_239
    COLLISION_DATA_15,  // TILE_TYPE_240
    COLLISION_DATA_15,  // TILE_TYPE_241
    COLLISION_DATA_35,  // TILE_TYPE_242
    COLLISION_DATA_35,  // TILE_TYPE_243
    COLLISION_DATA_15,  // TILE_TYPE_244
    COLLISION_DATA_15,  // TILE_TYPE_245
    COLLISION_DATA_35,  // TILE_TYPE_246
    COLLISION_DATA_15,  // TILE_TYPE_247
    COLLISION_DATA_15,  // TILE_TYPE_248
    COLLISION_DATA_15,  // TILE_TYPE_249
    COLLISION_DATA_15,  // TILE_TYPE_250
    COLLISION_DATA_15,  // TILE_TYPE_251
    COLLISION_DATA_15,  // TILE_TYPE_252
    COLLISION_DATA_15,  // TILE_TYPE_253
    COLLISION_DATA_15,  // TILE_TYPE_254
    COLLISION_DATA_15,  // TILE_TYPE_255
    COLLISION_DATA_15,  // TILE_TYPE_256
    COLLISION_DATA_15,  // TILE_TYPE_257
    COLLISION_DATA_15,  // TILE_TYPE_258
    COLLISION_DATA_15,  // TILE_TYPE_259
    COLLISION_DATA_15,  // TILE_TYPE_260
    COLLISION_DATA_15,  // TILE_TYPE_261
    COLLISION_DATA_15,  // TILE_TYPE_262
    COLLISION_DATA_15,  // TILE_TYPE_263
    COLLISION_DATA_15,  // TILE_TYPE_264
    COLLISION_DATA_15,  // TILE_TYPE_265
    COLLISION_DATA_15,  // TILE_TYPE_266
    COLLISION_DATA_15,  // TILE_TYPE_267
    COLLISION_DATA_15,  // TILE_TYPE_268
    COLLISION_DATA_15,  // TILE_TYPE_269
    COLLISION_DATA_15,  // TILE_TYPE_270
    COLLISION_DATA_15,  // TILE_TYPE_271
    COLLISION_DATA_15,  // TILE_TYPE_272
    COLLISION_DATA_15,  // TILE_TYPE_273
    COLLISION_DATA_15,  // TILE_TYPE_274
    COLLISION_DATA_15,  // TILE_TYPE_275
    COLLISION_DATA_15,  // TILE_TYPE_276
    COLLISION_DATA_15,  // TILE_TYPE_277
    COLLISION_DATA_15,  // TILE_TYPE_278
    COLLISION_DATA_15,  // TILE_TYPE_279
    COLLISION_DATA_15,  // TILE_TYPE_280
    COLLISION_DATA_15,  // TILE_TYPE_281
    COLLISION_DATA_15,  // TILE_TYPE_282
    COLLISION_DATA_15,  // TILE_TYPE_283
    COLLISION_DATA_15,  // TILE_TYPE_284
    COLLISION_DATA_15,  // TILE_TYPE_285
    COLLISION_DATA_15,  // TILE_TYPE_286
    COLLISION_DATA_15,  // TILE_TYPE_287
    COLLISION_DATA_15,  // TILE_TYPE_288
    COLLISION_DATA_15,  // TILE_TYPE_289
    COLLISION_DATA_15,  // TILE_TYPE_290
    COLLISION_DATA_15,  // TILE_TYPE_291
    COLLISION_DATA_15,  // TILE_TYPE_292
    COLLISION_DATA_15,  // TILE_TYPE_293
    COLLISION_DATA_15,  // TILE_TYPE_294
    COLLISION_DATA_15,  // TILE_TYPE_295
    COLLISION_DATA_15,  // TILE_TYPE_296
    COLLISION_DATA_15,  // TILE_TYPE_297
    COLLISION_DATA_15,  // TILE_TYPE_298
    COLLISION_DATA_15,  // TILE_TYPE_299
    COLLISION_DATA_15,  // TILE_TYPE_300
    COLLISION_DATA_15,  // TILE_TYPE_301
    COLLISION_DATA_15,  // TILE_TYPE_302
    COLLISION_DATA_15,  // TILE_TYPE_303
    COLLISION_DATA_15,  // TILE_TYPE_304
    COLLISION_DATA_15,  // TILE_TYPE_305
    COLLISION_DATA_15,  // TILE_TYPE_306
    COLLISION_DATA_15,  // TILE_TYPE_307
    COLLISION_DATA_15,  // TILE_TYPE_308
    COLLISION_DATA_15,  // TILE_TYPE_309
    COLLISION_DATA_15,  // TILE_TYPE_310
    COLLISION_DATA_15,  // TILE_TYPE_311
    COLLISION_DATA_15,  // TILE_TYPE_312
    COLLISION_DATA_15,  // TILE_TYPE_313
    COLLISION_DATA_15,  // TILE_TYPE_314
    COLLISION_DATA_15,  // TILE_TYPE_315
    COLLISION_DATA_15,  // TILE_TYPE_316
    COLLISION_DATA_15,  // TILE_TYPE_317
    COLLISION_DATA_15,  // TILE_TYPE_318
    COLLISION_DATA_15,  // TILE_TYPE_319
    COLLISION_DATA_15,  // TILE_TYPE_320
    COLLISION_DATA_15,  // TILE_TYPE_321
    COLLISION_DATA_15,  // TILE_TYPE_322
    COLLISION_DATA_15,  // TILE_TYPE_323
    COLLISION_DATA_15,  // TILE_TYPE_324
    COLLISION_DATA_15,  // TILE_TYPE_325
    COLLISION_DATA_15,  // TILE_TYPE_326
    COLLISION_DATA_15,  // TILE_TYPE_327
    COLLISION_DATA_15,  // TILE_TYPE_328
    COLLISION_DATA_0,   // TILE_TYPE_329
    COLLISION_DATA_0,   // TILE_TYPE_330
    COLLISION_DATA_0,   // TILE_TYPE_331
    COLLISION_DATA_0,   // TILE_TYPE_332
    COLLISION_DATA_0,   // TILE_TYPE_333
    COLLISION_DATA_0,   // TILE_TYPE_334
    COLLISION_DATA_0,   // TILE_TYPE_335
    COLLISION_DATA_0,   // TILE_TYPE_336
    COLLISION_DATA_0,   // TILE_TYPE_337
    COLLISION_DATA_0,   // TILE_TYPE_338
    COLLISION_DATA_0,   // TILE_TYPE_339
    COLLISION_DATA_0,   // TILE_TYPE_340
    COLLISION_DATA_0,   // TILE_TYPE_341
    COLLISION_DATA_0,   // TILE_TYPE_342
    COLLISION_DATA_0,   // TILE_TYPE_343
    COLLISION_DATA_0,   // TILE_TYPE_344
    COLLISION_DATA_0,   // TILE_TYPE_345
    COLLISION_DATA_0,   // TILE_TYPE_346
    COLLISION_DATA_15,  // TILE_TYPE_347
    COLLISION_DATA_15,  // TILE_TYPE_348
    COLLISION_DATA_15,  // TILE_TYPE_349
    COLLISION_DATA_15,  // TILE_TYPE_350
    COLLISION_DATA_15,  // TILE_TYPE_351
    COLLISION_DATA_15,  // TILE_TYPE_352
    COLLISION_DATA_95,  // TILE_TYPE_353
    COLLISION_DATA_255, // TILE_TYPE_354
    COLLISION_DATA_255, // TILE_TYPE_355
    COLLISION_DATA_15,  // TILE_TYPE_356
    COLLISION_DATA_15,  // TILE_TYPE_357
    COLLISION_DATA_21,  // TILE_TYPE_358
    COLLISION_DATA_15,  // TILE_TYPE_359
    COLLISION_DATA_0,   // TILE_TYPE_360
    COLLISION_DATA_0,   // TILE_TYPE_361
    COLLISION_DATA_0,   // TILE_TYPE_362
    COLLISION_DATA_255, // TILE_TYPE_363
    COLLISION_DATA_12,  // TILE_TYPE_364
    COLLISION_DATA_0,   // TILE_TYPE_365
    COLLISION_DATA_0,   // TILE_TYPE_366
    COLLISION_DATA_12,  // TILE_TYPE_367
    COLLISION_DATA_12,  // TILE_TYPE_368
    COLLISION_DATA_66,  // TILE_TYPE_369
    COLLISION_DATA_96,  // TILE_TYPE_370
    COLLISION_DATA_15,  // TILE_TYPE_371
    COLLISION_DATA_29,  // TILE_TYPE_372
    COLLISION_DATA_255, // TILE_TYPE_373
    COLLISION_DATA_15,  // TILE_TYPE_374
    COLLISION_DATA_15,  // TILE_TYPE_375
    COLLISION_DATA_15,  // TILE_TYPE_376
    COLLISION_DATA_0,   // TILE_TYPE_377
    COLLISION_DATA_15,  // TILE_TYPE_378
    COLLISION_DATA_15,  // TILE_TYPE_379
    COLLISION_DATA_15,  // TILE_TYPE_380
    COLLISION_DATA_15,  // TILE_TYPE_381
    COLLISION_DATA_10,  // TILE_TYPE_382
    COLLISION_DATA_5,   // TILE_TYPE_383
    COLLISION_DATA_10,  // TILE_TYPE_384
    COLLISION_DATA_5,   // TILE_TYPE_385
    COLLISION_DATA_1,   // TILE_TYPE_386
    COLLISION_DATA_1,   // TILE_TYPE_387
    COLLISION_DATA_1,   // TILE_TYPE_388
    COLLISION_DATA_0,   // TILE_TYPE_389
    COLLISION_DATA_0,   // TILE_TYPE_390
    COLLISION_DATA_0,   // TILE_TYPE_391
    COLLISION_DATA_0,   // TILE_TYPE_392
    COLLISION_DATA_0,   // TILE_TYPE_393
    COLLISION_DATA_0,   // TILE_TYPE_394
    COLLISION_DATA_5,   // TILE_TYPE_395
    COLLISION_DATA_15,  // TILE_TYPE_396
    COLLISION_DATA_10,  // TILE_TYPE_397
    COLLISION_DATA_0,   // TILE_TYPE_398
    COLLISION_DATA_0,   // TILE_TYPE_399
    COLLISION_DATA_5,   // TILE_TYPE_400
    COLLISION_DATA_15,  // TILE_TYPE_401
    COLLISION_DATA_10,  // TILE_TYPE_402
    COLLISION_DATA_0,   // TILE_TYPE_403
    COLLISION_DATA_0,   // TILE_TYPE_404
    COLLISION_DATA_0,   // TILE_TYPE_405
    COLLISION_DATA_0,   // TILE_TYPE_406
    COLLISION_DATA_0,   // TILE_TYPE_407
    COLLISION_DATA_0,   // TILE_TYPE_408
    COLLISION_DATA_0,   // TILE_TYPE_409
    COLLISION_DATA_0,   // TILE_TYPE_410
    COLLISION_DATA_0,   // TILE_TYPE_411
    COLLISION_DATA_5,   // TILE_TYPE_412
    COLLISION_DATA_0,   // TILE_TYPE_413
    COLLISION_DATA_10,  // TILE_TYPE_414
    COLLISION_DATA_4,   // TILE_TYPE_415
    COLLISION_DATA_12,  // TILE_TYPE_416
    COLLISION_DATA_8,   // TILE_TYPE_417
    COLLISION_DATA_0,   // TILE_TYPE_418
    COLLISION_DATA_0,   // TILE_TYPE_419
    COLLISION_DATA_0,   // TILE_TYPE_420
    COLLISION_DATA_5,   // TILE_TYPE_421
    COLLISION_DATA_0,   // TILE_TYPE_422
    COLLISION_DATA_10,  // TILE_TYPE_423
    COLLISION_DATA_4,   // TILE_TYPE_424
    COLLISION_DATA_12,  // TILE_TYPE_425
    COLLISION_DATA_8,   // TILE_TYPE_426
    COLLISION_DATA_15,  // TILE_TYPE_427
    COLLISION_DATA_15,  // TILE_TYPE_428
    COLLISION_DATA_15,  // TILE_TYPE_429
    COLLISION_DATA_15,  // TILE_TYPE_430
    COLLISION_DATA_15,  // TILE_TYPE_431
    COLLISION_DATA_16,  // TILE_TYPE_432
    COLLISION_DATA_17,  // TILE_TYPE_433
    COLLISION_DATA_17,  // TILE_TYPE_434
    COLLISION_DATA_16,  // TILE_TYPE_435
    COLLISION_DATA_42,  // TILE_TYPE_436
    COLLISION_DATA_42,  // TILE_TYPE_437
    COLLISION_DATA_42,  // TILE_TYPE_438
    COLLISION_DATA_42,  // TILE_TYPE_439
    COLLISION_DATA_42,  // TILE_TYPE_440
    COLLISION_DATA_42,  // TILE_TYPE_441
    COLLISION_DATA_42,  // TILE_TYPE_442
    COLLISION_DATA_42,  // TILE_TYPE_443
    COLLISION_DATA_42,  // TILE_TYPE_444
    COLLISION_DATA_42,  // TILE_TYPE_445
    COLLISION_DATA_42,  // TILE_TYPE_446
    COLLISION_DATA_42,  // TILE_TYPE_447
    COLLISION_DATA_27,  // TILE_TYPE_448
    COLLISION_DATA_25,  // TILE_TYPE_449
    COLLISION_DATA_28,  // TILE_TYPE_450
    COLLISION_DATA_26,  // TILE_TYPE_451
    COLLISION_DATA_43,  // TILE_TYPE_452
    COLLISION_DATA_43,  // TILE_TYPE_453
    COLLISION_DATA_97,  // TILE_TYPE_454
    COLLISION_DATA_23,  // TILE_TYPE_455
    COLLISION_DATA_23,  // TILE_TYPE_456
    COLLISION_DATA_84,  // TILE_TYPE_457
    COLLISION_DATA_23,  // TILE_TYPE_458
    COLLISION_DATA_23,  // TILE_TYPE_459
    COLLISION_DATA_23,  // TILE_TYPE_460
    COLLISION_DATA_0,   // TILE_TYPE_461
    COLLISION_DATA_0,   // TILE_TYPE_462
    COLLISION_DATA_84,  // TILE_TYPE_463
    COLLISION_DATA_15,  // TILE_TYPE_464
    COLLISION_DATA_15,  // TILE_TYPE_465
    COLLISION_DATA_15,  // TILE_TYPE_466
    COLLISION_DATA_15,  // TILE_TYPE_467
    COLLISION_DATA_15,  // TILE_TYPE_468
    COLLISION_DATA_15,  // TILE_TYPE_469
    COLLISION_DATA_15,  // TILE_TYPE_470
    COLLISION_DATA_0,   // TILE_TYPE_471
    COLLISION_DATA_0,   // TILE_TYPE_472
    COLLISION_DATA_0,   // TILE_TYPE_473
    COLLISION_DATA_0,   // TILE_TYPE_474
    COLLISION_DATA_18,  // TILE_TYPE_475
    COLLISION_DATA_15,  // TILE_TYPE_476
    COLLISION_DATA_15,  // TILE_TYPE_477
    COLLISION_DATA_19,  // TILE_TYPE_478
    COLLISION_DATA_15,  // TILE_TYPE_479
    COLLISION_DATA_15,  // TILE_TYPE_480
    COLLISION_DATA_15,  // TILE_TYPE_481
    COLLISION_DATA_15,  // TILE_TYPE_482
    COLLISION_DATA_15,  // TILE_TYPE_483
    COLLISION_DATA_15,  // TILE_TYPE_484
    COLLISION_DATA_15,  // TILE_TYPE_485
    COLLISION_DATA_15,  // TILE_TYPE_486
    COLLISION_DATA_5,   // TILE_TYPE_487
    COLLISION_DATA_0,   // TILE_TYPE_488
    COLLISION_DATA_0,   // TILE_TYPE_489
    COLLISION_DATA_0,   // TILE_TYPE_490
    COLLISION_DATA_0,   // TILE_TYPE_491
    COLLISION_DATA_15,  // TILE_TYPE_492
    COLLISION_DATA_15,  // TILE_TYPE_493
    COLLISION_DATA_15,  // TILE_TYPE_494
    COLLISION_DATA_15,  // TILE_TYPE_495
    COLLISION_DATA_15,  // TILE_TYPE_496
    COLLISION_DATA_15,  // TILE_TYPE_497
    COLLISION_DATA_15,  // TILE_TYPE_498
    COLLISION_DATA_15,  // TILE_TYPE_499
    COLLISION_DATA_15,  // TILE_TYPE_500
    COLLISION_DATA_15,  // TILE_TYPE_501
    COLLISION_DATA_15,  // TILE_TYPE_502
    COLLISION_DATA_15,  // TILE_TYPE_503
    COLLISION_DATA_15,  // TILE_TYPE_504
    COLLISION_DATA_15,  // TILE_TYPE_505
    COLLISION_DATA_15,  // TILE_TYPE_506
    COLLISION_DATA_15,  // TILE_TYPE_507
    COLLISION_DATA_15,  // TILE_TYPE_508
    COLLISION_DATA_15,  // TILE_TYPE_509
    COLLISION_DATA_15,  // TILE_TYPE_510
    COLLISION_DATA_15,  // TILE_TYPE_511
    COLLISION_DATA_0,   // TILE_TYPE_512
    COLLISION_DATA_0,   // TILE_TYPE_513
    COLLISION_DATA_0,   // TILE_TYPE_514
    COLLISION_DATA_0,   // TILE_TYPE_515
    COLLISION_DATA_0,   // TILE_TYPE_516
    COLLISION_DATA_0,   // TILE_TYPE_517
    COLLISION_DATA_1,   // TILE_TYPE_518
    COLLISION_DATA_3,   // TILE_TYPE_519
    COLLISION_DATA_2,   // TILE_TYPE_520
    COLLISION_DATA_0,   // TILE_TYPE_521
    COLLISION_DATA_0,   // TILE_TYPE_522
    COLLISION_DATA_5,   // TILE_TYPE_523
    COLLISION_DATA_15,  // TILE_TYPE_524
    COLLISION_DATA_10,  // TILE_TYPE_525
    COLLISION_DATA_0,   // TILE_TYPE_526
    COLLISION_DATA_0,   // TILE_TYPE_527
    COLLISION_DATA_0,   // TILE_TYPE_528
    COLLISION_DATA_0,   // TILE_TYPE_529
    COLLISION_DATA_0,   // TILE_TYPE_530
    COLLISION_DATA_0,   // TILE_TYPE_531
    COLLISION_DATA_0,   // TILE_TYPE_532
    COLLISION_DATA_0,   // TILE_TYPE_533
    COLLISION_DATA_0,   // TILE_TYPE_534
    COLLISION_DATA_0,   // TILE_TYPE_535
    COLLISION_DATA_0,   // TILE_TYPE_536
    COLLISION_DATA_15,  // TILE_TYPE_537
    COLLISION_DATA_15,  // TILE_TYPE_538
    COLLISION_DATA_71,  // TILE_TYPE_539
    COLLISION_DATA_15,  // TILE_TYPE_540
    COLLISION_DATA_15,  // TILE_TYPE_541
    COLLISION_DATA_15,  // TILE_TYPE_542
    COLLISION_DATA_1,   // TILE_TYPE_543
    COLLISION_DATA_3,   // TILE_TYPE_544
    COLLISION_DATA_2,   // TILE_TYPE_545
    COLLISION_DATA_15,  // TILE_TYPE_546
    COLLISION_DATA_15,  // TILE_TYPE_547
    COLLISION_DATA_5,   // TILE_TYPE_548
    COLLISION_DATA_15,  // TILE_TYPE_549
    COLLISION_DATA_10,  // TILE_TYPE_550
    COLLISION_DATA_15,  // TILE_TYPE_551
    COLLISION_DATA_15,  // TILE_TYPE_552
    COLLISION_DATA_4,   // TILE_TYPE_553
    COLLISION_DATA_0,   // TILE_TYPE_554
    COLLISION_DATA_8,   // TILE_TYPE_555
    COLLISION_DATA_15,  // TILE_TYPE_556
    COLLISION_DATA_12,  // TILE_TYPE_557
    COLLISION_DATA_12,  // TILE_TYPE_558
    COLLISION_DATA_0,   // TILE_TYPE_559
    COLLISION_DATA_12,  // TILE_TYPE_560
    COLLISION_DATA_12,  // TILE_TYPE_561
    COLLISION_DATA_48,  // TILE_TYPE_562
    COLLISION_DATA_48,  // TILE_TYPE_563
    COLLISION_DATA_48,  // TILE_TYPE_564
    COLLISION_DATA_48,  // TILE_TYPE_565
    COLLISION_DATA_48,  // TILE_TYPE_566
    COLLISION_DATA_48,  // TILE_TYPE_567
    COLLISION_DATA_48,  // TILE_TYPE_568
    COLLISION_DATA_48,  // TILE_TYPE_569
    COLLISION_DATA_48,  // TILE_TYPE_570
    COLLISION_DATA_48,  // TILE_TYPE_571
    COLLISION_DATA_48,  // TILE_TYPE_572
    COLLISION_DATA_48,  // TILE_TYPE_573
    COLLISION_DATA_48,  // TILE_TYPE_574
    COLLISION_DATA_48,  // TILE_TYPE_575
    COLLISION_DATA_48,  // TILE_TYPE_576
    COLLISION_DATA_48,  // TILE_TYPE_577
    COLLISION_DATA_48,  // TILE_TYPE_578
    COLLISION_DATA_48,  // TILE_TYPE_579
    COLLISION_DATA_48,  // TILE_TYPE_580
    COLLISION_DATA_48,  // TILE_TYPE_581
    COLLISION_DATA_48,  // TILE_TYPE_582
    COLLISION_DATA_48,  // TILE_TYPE_583
    COLLISION_DATA_48,  // TILE_TYPE_584
    COLLISION_DATA_48,  // TILE_TYPE_585
    COLLISION_DATA_48,  // TILE_TYPE_586
    COLLISION_DATA_48,  // TILE_TYPE_587
    COLLISION_DATA_48,  // TILE_TYPE_588
    COLLISION_DATA_48,  // TILE_TYPE_589
    COLLISION_DATA_16,  // TILE_TYPE_590
    COLLISION_DATA_15,  // TILE_TYPE_591
    COLLISION_DATA_17,  // TILE_TYPE_592
    COLLISION_DATA_15,  // TILE_TYPE_593
    COLLISION_DATA_15,  // TILE_TYPE_594
    COLLISION_DATA_15,  // TILE_TYPE_595
    COLLISION_DATA_15,  // TILE_TYPE_596
    COLLISION_DATA_15,  // TILE_TYPE_597
    COLLISION_DATA_15,  // TILE_TYPE_598
    COLLISION_DATA_0,   // TILE_TYPE_599
    COLLISION_DATA_0,   // TILE_TYPE_600
    COLLISION_DATA_0,   // TILE_TYPE_601
    COLLISION_DATA_0,   // TILE_TYPE_602
    COLLISION_DATA_0,   // TILE_TYPE_603
    COLLISION_DATA_0,   // TILE_TYPE_604
    COLLISION_DATA_0,   // TILE_TYPE_605
    COLLISION_DATA_0,   // TILE_TYPE_606
    COLLISION_DATA_0,   // TILE_TYPE_607
    COLLISION_DATA_5,   // TILE_TYPE_608
    COLLISION_DATA_15,  // TILE_TYPE_609
    COLLISION_DATA_0,   // TILE_TYPE_610
    COLLISION_DATA_0,   // TILE_TYPE_611
    COLLISION_DATA_5,   // TILE_TYPE_612
    COLLISION_DATA_15,  // TILE_TYPE_613
    COLLISION_DATA_15,  // TILE_TYPE_614
    COLLISION_DATA_15,  // TILE_TYPE_615
    COLLISION_DATA_15,  // TILE_TYPE_616
    COLLISION_DATA_15,  // TILE_TYPE_617
    COLLISION_DATA_15,  // TILE_TYPE_618
    COLLISION_DATA_15,  // TILE_TYPE_619
    COLLISION_DATA_15,  // TILE_TYPE_620
    COLLISION_DATA_39,  // TILE_TYPE_621
    COLLISION_DATA_15,  // TILE_TYPE_622
    COLLISION_DATA_15,  // TILE_TYPE_623
    COLLISION_DATA_39,  // TILE_TYPE_624
    COLLISION_DATA_255, // TILE_TYPE_625
    COLLISION_DATA_15,  // TILE_TYPE_626
    COLLISION_DATA_15,  // TILE_TYPE_627
    COLLISION_DATA_15,  // TILE_TYPE_628
    COLLISION_DATA_15,  // TILE_TYPE_629
    COLLISION_DATA_15,  // TILE_TYPE_630
    COLLISION_DATA_15,  // TILE_TYPE_631
    COLLISION_DATA_15,  // TILE_TYPE_632
    COLLISION_DATA_15,  // TILE_TYPE_633
    COLLISION_DATA_15,  // TILE_TYPE_634
    COLLISION_DATA_15,  // TILE_TYPE_635
    COLLISION_DATA_15,  // TILE_TYPE_636
    COLLISION_DATA_39,  // TILE_TYPE_637
    COLLISION_DATA_15,  // TILE_TYPE_638
    COLLISION_DATA_15,  // TILE_TYPE_639
    COLLISION_DATA_39,  // TILE_TYPE_640
    COLLISION_DATA_255, // TILE_TYPE_641
    COLLISION_DATA_15,  // TILE_TYPE_642
    COLLISION_DATA_15,  // TILE_TYPE_643
    COLLISION_DATA_15,  // TILE_TYPE_644
    COLLISION_DATA_15,  // TILE_TYPE_645
    COLLISION_DATA_255, // TILE_TYPE_646
    COLLISION_DATA_255, // TILE_TYPE_647
    COLLISION_DATA_255, // TILE_TYPE_648
    COLLISION_DATA_255, // TILE_TYPE_649
    COLLISION_DATA_255, // TILE_TYPE_650
    COLLISION_DATA_255, // TILE_TYPE_651
    COLLISION_DATA_15,  // TILE_TYPE_652
    COLLISION_DATA_39,  // TILE_TYPE_653
    COLLISION_DATA_15,  // TILE_TYPE_654
    COLLISION_DATA_15,  // TILE_TYPE_655
    COLLISION_DATA_255, // TILE_TYPE_656
    COLLISION_DATA_39,  // TILE_TYPE_657
    COLLISION_DATA_15,  // TILE_TYPE_658
    COLLISION_DATA_15,  // TILE_TYPE_659
    COLLISION_DATA_15,  // TILE_TYPE_660
    COLLISION_DATA_15,  // TILE_TYPE_661
    COLLISION_DATA_15,  // TILE_TYPE_662
    COLLISION_DATA_15,  // TILE_TYPE_663
    COLLISION_DATA_15,  // TILE_TYPE_664
    COLLISION_DATA_15,  // TILE_TYPE_665
    COLLISION_DATA_15,  // TILE_TYPE_666
    COLLISION_DATA_15,  // TILE_TYPE_667
    COLLISION_DATA_15,  // TILE_TYPE_668
    COLLISION_DATA_15,  // TILE_TYPE_669
    COLLISION_DATA_15,  // TILE_TYPE_670
    COLLISION_DATA_15,  // TILE_TYPE_671
    COLLISION_DATA_15,  // TILE_TYPE_672
    COLLISION_DATA_15,  // TILE_TYPE_673
    COLLISION_DATA_15,  // TILE_TYPE_674
    COLLISION_DATA_15,  // TILE_TYPE_675
    COLLISION_DATA_15,  // TILE_TYPE_676
    COLLISION_DATA_15,  // TILE_TYPE_677
    COLLISION_DATA_15,  // TILE_TYPE_678
    COLLISION_DATA_15,  // TILE_TYPE_679
    COLLISION_DATA_15,  // TILE_TYPE_680
    COLLISION_DATA_15,  // TILE_TYPE_681
    COLLISION_DATA_15,  // TILE_TYPE_682
    COLLISION_DATA_15,  // TILE_TYPE_683
    COLLISION_DATA_15,  // TILE_TYPE_684
    COLLISION_DATA_15,  // TILE_TYPE_685
    COLLISION_DATA_15,  // TILE_TYPE_686
    COLLISION_DATA_15,  // TILE_TYPE_687
    COLLISION_DATA_15,  // TILE_TYPE_688
    COLLISION_DATA_15,  // TILE_TYPE_689
    COLLISION_DATA_15,  // TILE_TYPE_690
    COLLISION_DATA_15,  // TILE_TYPE_691
    COLLISION_DATA_15,  // TILE_TYPE_692
    COLLISION_DATA_15,  // TILE_TYPE_693
    COLLISION_DATA_0,   // TILE_TYPE_694
    COLLISION_DATA_0,   // TILE_TYPE_695
    COLLISION_DATA_0,   // TILE_TYPE_696
    COLLISION_DATA_0,   // TILE_TYPE_697
    COLLISION_DATA_0,   // TILE_TYPE_698
    COLLISION_DATA_0,   // TILE_TYPE_699
    COLLISION_DATA_0,   // TILE_TYPE_700
    COLLISION_DATA_0,   // TILE_TYPE_701
    COLLISION_DATA_0,   // TILE_TYPE_702
    COLLISION_DATA_0,   // TILE_TYPE_703
    COLLISION_DATA_0,   // TILE_TYPE_704
    COLLISION_DATA_0,   // TILE_TYPE_705
    COLLISION_DATA_0,   // TILE_TYPE_706
    COLLISION_DATA_0,   // TILE_TYPE_707
    COLLISION_DATA_0,   // TILE_TYPE_708
    COLLISION_DATA_0,   // TILE_TYPE_709
    COLLISION_DATA_0,   // TILE_TYPE_710
    COLLISION_DATA_0,   // TILE_TYPE_711
    COLLISION_DATA_0,   // TILE_TYPE_712
    COLLISION_DATA_0,   // TILE_TYPE_713
    COLLISION_DATA_0,   // TILE_TYPE_714
    COLLISION_DATA_0,   // TILE_TYPE_715
    COLLISION_DATA_0,   // TILE_TYPE_716
    COLLISION_DATA_0,   // TILE_TYPE_717
    COLLISION_DATA_0,   // TILE_TYPE_718
    COLLISION_DATA_0,   // TILE_TYPE_719
    COLLISION_DATA_0,   // TILE_TYPE_720
    COLLISION_DATA_0,   // TILE_TYPE_721
    COLLISION_DATA_0,   // TILE_TYPE_722
    COLLISION_DATA_0,   // TILE_TYPE_723
    COLLISION_DATA_0,   // TILE_TYPE_724
    COLLISION_DATA_0,   // TILE_TYPE_725
    COLLISION_DATA_0,   // TILE_TYPE_726
    COLLISION_DATA_0,   // TILE_TYPE_727
    COLLISION_DATA_0,   // TILE_TYPE_728
    COLLISION_DATA_0,   // TILE_TYPE_729
    COLLISION_DATA_0,   // TILE_TYPE_730
    COLLISION_DATA_0,   // TILE_TYPE_731
    COLLISION_DATA_0,   // TILE_TYPE_732
    COLLISION_DATA_0,   // TILE_TYPE_733
    COLLISION_DATA_0,   // TILE_TYPE_734
    COLLISION_DATA_0,   // TILE_TYPE_735
    COLLISION_DATA_0,   // TILE_TYPE_736
    COLLISION_DATA_0,   // TILE_TYPE_737
    COLLISION_DATA_0,   // TILE_TYPE_738
    COLLISION_DATA_0,   // TILE_TYPE_739
    COLLISION_DATA_0,   // TILE_TYPE_740
    COLLISION_DATA_0,   // TILE_TYPE_741
    COLLISION_DATA_0,   // TILE_TYPE_742
    COLLISION_DATA_0,   // TILE_TYPE_743
    COLLISION_DATA_0,   // TILE_TYPE_744
    COLLISION_DATA_0,   // TILE_TYPE_745
    COLLISION_DATA_0,   // TILE_TYPE_746
    COLLISION_DATA_0,   // TILE_TYPE_747
    COLLISION_DATA_0,   // TILE_TYPE_748
    COLLISION_DATA_0,   // TILE_TYPE_749
    COLLISION_DATA_0,   // TILE_TYPE_750
    COLLISION_DATA_0,   // TILE_TYPE_751
    COLLISION_DATA_0,   // TILE_TYPE_752
    COLLISION_DATA_0,   // TILE_TYPE_753
    COLLISION_DATA_3,   // TILE_TYPE_754
    COLLISION_DATA_0,   // TILE_TYPE_755
    COLLISION_DATA_0,   // TILE_TYPE_756
    COLLISION_DATA_0,   // TILE_TYPE_757
    COLLISION_DATA_0,   // TILE_TYPE_758
    COLLISION_DATA_0,   // TILE_TYPE_759
    COLLISION_DATA_0,   // TILE_TYPE_760
    COLLISION_DATA_0,   // TILE_TYPE_761
    COLLISION_DATA_5,   // TILE_TYPE_762
    COLLISION_DATA_0,   // TILE_TYPE_763
    COLLISION_DATA_10,  // TILE_TYPE_764
    COLLISION_DATA_4,   // TILE_TYPE_765
    COLLISION_DATA_12,  // TILE_TYPE_766
    COLLISION_DATA_8,   // TILE_TYPE_767
    COLLISION_DATA_70,  // TILE_TYPE_768
    COLLISION_DATA_75,  // TILE_TYPE_769
    COLLISION_DATA_74,  // TILE_TYPE_770
    COLLISION_DATA_72,  // TILE_TYPE_771
    COLLISION_DATA_71,  // TILE_TYPE_772
    COLLISION_DATA_96,  // TILE_TYPE_773
    COLLISION_DATA_98,  // TILE_TYPE_774
    COLLISION_DATA_97,  // TILE_TYPE_775
    COLLISION_DATA_99,  // TILE_TYPE_776
    COLLISION_DATA_100, // TILE_TYPE_777
    COLLISION_DATA_102, // TILE_TYPE_778
    COLLISION_DATA_15,  // TILE_TYPE_779
    COLLISION_DATA_80,  // TILE_TYPE_780
    COLLISION_DATA_48,  // TILE_TYPE_781
    COLLISION_DATA_48,  // TILE_TYPE_782
    COLLISION_DATA_255, // TILE_TYPE_783
    COLLISION_DATA_0,   // TILE_TYPE_784
    COLLISION_DATA_255, // TILE_TYPE_785
    COLLISION_DATA_0,   // TILE_TYPE_786
    COLLISION_DATA_0,   // TILE_TYPE_787
    COLLISION_DATA_0,   // TILE_TYPE_788
    COLLISION_DATA_0,   // TILE_TYPE_789
    COLLISION_DATA_255, // TILE_TYPE_790
    COLLISION_DATA_0,   // TILE_TYPE_791
    COLLISION_DATA_0,   // TILE_TYPE_792
    COLLISION_DATA_37,  // TILE_TYPE_793
    COLLISION_DATA_15,  // TILE_TYPE_794
    COLLISION_DATA_255, // TILE_TYPE_795
    COLLISION_DATA_255, // TILE_TYPE_796
    COLLISION_DATA_255, // TILE_TYPE_797
    COLLISION_DATA_255, // TILE_TYPE_798
    COLLISION_DATA_255, // TILE_TYPE_799
    COLLISION_DATA_255, // TILE_TYPE_800
    COLLISION_DATA_0,   // TILE_TYPE_801
    COLLISION_DATA_0,   // TILE_TYPE_802
    COLLISION_DATA_33,  // TILE_TYPE_803
    COLLISION_DATA_33,  // TILE_TYPE_804
    COLLISION_DATA_33,  // TILE_TYPE_805
    COLLISION_DATA_33,  // TILE_TYPE_806
    COLLISION_DATA_33,  // TILE_TYPE_807
    COLLISION_DATA_33,  // TILE_TYPE_808
    COLLISION_DATA_33,  // TILE_TYPE_809
    COLLISION_DATA_33,  // TILE_TYPE_810
    COLLISION_DATA_33,  // TILE_TYPE_811
    COLLISION_DATA_33,  // TILE_TYPE_812
    COLLISION_DATA_33,  // TILE_TYPE_813
    COLLISION_DATA_33,  // TILE_TYPE_814
    COLLISION_DATA_33,  // TILE_TYPE_815
    COLLISION_DATA_33,  // TILE_TYPE_816
    COLLISION_DATA_33,  // TILE_TYPE_817
    COLLISION_DATA_33,  // TILE_TYPE_818
    COLLISION_DATA_33,  // TILE_TYPE_819
    COLLISION_DATA_33,  // TILE_TYPE_820
    COLLISION_DATA_33,  // TILE_TYPE_821
    COLLISION_DATA_33,  // TILE_TYPE_822
    COLLISION_DATA_33,  // TILE_TYPE_823
    COLLISION_DATA_33,  // TILE_TYPE_824
    COLLISION_DATA_33,  // TILE_TYPE_825
    COLLISION_DATA_33,  // TILE_TYPE_826
    COLLISION_DATA_33,  // TILE_TYPE_827
    COLLISION_DATA_33,  // TILE_TYPE_828
    COLLISION_DATA_33,  // TILE_TYPE_829
    COLLISION_DATA_33,  // TILE_TYPE_830
    COLLISION_DATA_33,  // TILE_TYPE_831
    COLLISION_DATA_33,  // TILE_TYPE_832
    COLLISION_DATA_0,   // TILE_TYPE_833
    COLLISION_DATA_12,  // TILE_TYPE_834
    COLLISION_DATA_0,   // TILE_TYPE_835
    COLLISION_DATA_0,   // TILE_TYPE_836
    COLLISION_DATA_0,   // TILE_TYPE_837
    COLLISION_DATA_0,   // TILE_TYPE_838
    COLLISION_DATA_0,   // TILE_TYPE_839
    COLLISION_DATA_0,   // TILE_TYPE_840
    COLLISION_DATA_0,   // TILE_TYPE_841
    COLLISION_DATA_0,   // TILE_TYPE_842
    COLLISION_DATA_0,   // TILE_TYPE_843
    COLLISION_DATA_0,   // TILE_TYPE_844
    COLLISION_DATA_15,  // TILE_TYPE_845
    COLLISION_DATA_255, // TILE_TYPE_846
    COLLISION_DATA_255, // TILE_TYPE_847
    COLLISION_DATA_255, // TILE_TYPE_848
    COLLISION_DATA_255, // TILE_TYPE_849
    COLLISION_DATA_255, // TILE_TYPE_850
    COLLISION_DATA_40,  // TILE_TYPE_851
    COLLISION_DATA_255, // TILE_TYPE_852
    COLLISION_DATA_40,  // TILE_TYPE_853
    COLLISION_DATA_40,  // TILE_TYPE_854
    COLLISION_DATA_40,  // TILE_TYPE_855
    COLLISION_DATA_40,  // TILE_TYPE_856
    COLLISION_DATA_40,  // TILE_TYPE_857
    COLLISION_DATA_40,  // TILE_TYPE_858
    COLLISION_DATA_40,  // TILE_TYPE_859
    COLLISION_DATA_40,  // TILE_TYPE_860
    COLLISION_DATA_40,  // TILE_TYPE_861
    COLLISION_DATA_40,  // TILE_TYPE_862
    COLLISION_DATA_40,  // TILE_TYPE_863
    COLLISION_DATA_15,  // TILE_TYPE_864
    COLLISION_DATA_15,  // TILE_TYPE_865
    COLLISION_DATA_15,  // TILE_TYPE_866
    COLLISION_DATA_15,  // TILE_TYPE_867
    COLLISION_DATA_15,  // TILE_TYPE_868
    COLLISION_DATA_15,  // TILE_TYPE_869
    COLLISION_DATA_15,  // TILE_TYPE_870
    COLLISION_DATA_15,  // TILE_TYPE_871
    COLLISION_DATA_15,  // TILE_TYPE_872
    COLLISION_DATA_15,  // TILE_TYPE_873
    COLLISION_DATA_15,  // TILE_TYPE_874
    COLLISION_DATA_15,  // TILE_TYPE_875
    COLLISION_DATA_15,  // TILE_TYPE_876
    COLLISION_DATA_15,  // TILE_TYPE_877
    COLLISION_DATA_15,  // TILE_TYPE_878
    COLLISION_DATA_15,  // TILE_TYPE_879
    COLLISION_DATA_15,  // TILE_TYPE_880
    COLLISION_DATA_15,  // TILE_TYPE_881
    COLLISION_DATA_15,  // TILE_TYPE_882
    COLLISION_DATA_15,  // TILE_TYPE_883
    COLLISION_DATA_15,  // TILE_TYPE_884
    COLLISION_DATA_15,  // TILE_TYPE_885
    COLLISION_DATA_15,  // TILE_TYPE_886
    COLLISION_DATA_15,  // TILE_TYPE_887
    COLLISION_DATA_15,  // TILE_TYPE_888
    COLLISION_DATA_15,  // TILE_TYPE_889
    COLLISION_DATA_15,  // TILE_TYPE_890
    COLLISION_DATA_15,  // TILE_TYPE_891
    COLLISION_DATA_15,  // TILE_TYPE_892
    COLLISION_DATA_15,  // TILE_TYPE_893
    COLLISION_DATA_15,  // TILE_TYPE_894
    COLLISION_DATA_15,  // TILE_TYPE_895
    COLLISION_DATA_15,  // TILE_TYPE_896
    COLLISION_DATA_15,  // TILE_TYPE_897
    COLLISION_DATA_15,  // TILE_TYPE_898
    COLLISION_DATA_15,  // TILE_TYPE_899
    COLLISION_DATA_15,  // TILE_TYPE_900
    COLLISION_DATA_15,  // TILE_TYPE_901
    COLLISION_DATA_15,  // TILE_TYPE_902
    COLLISION_DATA_15,  // TILE_TYPE_903
    COLLISION_DATA_15,  // TILE_TYPE_904
    COLLISION_DATA_15,  // TILE_TYPE_905
    COLLISION_DATA_15,  // TILE_TYPE_906
    COLLISION_DATA_15,  // TILE_TYPE_907
    COLLISION_DATA_15,  // TILE_TYPE_908
    COLLISION_DATA_15,  // TILE_TYPE_909
    COLLISION_DATA_15,  // TILE_TYPE_910
    COLLISION_DATA_15,  // TILE_TYPE_911
    COLLISION_DATA_15,  // TILE_TYPE_912
    COLLISION_DATA_15,  // TILE_TYPE_913
    COLLISION_DATA_15,  // TILE_TYPE_914
    COLLISION_DATA_15,  // TILE_TYPE_915
    COLLISION_DATA_15,  // TILE_TYPE_916
    COLLISION_DATA_21,  // TILE_TYPE_917
    COLLISION_DATA_20,  // TILE_TYPE_918
    COLLISION_DATA_20,  // TILE_TYPE_919
    COLLISION_DATA_15,  // TILE_TYPE_920
    COLLISION_DATA_15,  // TILE_TYPE_921
    COLLISION_DATA_15,  // TILE_TYPE_922
    COLLISION_DATA_15,  // TILE_TYPE_923
    COLLISION_DATA_15,  // TILE_TYPE_924
    COLLISION_DATA_15,  // TILE_TYPE_925
    COLLISION_DATA_15,  // TILE_TYPE_926
    COLLISION_DATA_15,  // TILE_TYPE_927
    COLLISION_DATA_255, // TILE_TYPE_928
    COLLISION_DATA_1,   // TILE_TYPE_929
    COLLISION_DATA_1,   // TILE_TYPE_930
    COLLISION_DATA_1,   // TILE_TYPE_931
    COLLISION_DATA_255, // TILE_TYPE_932
    COLLISION_DATA_255, // TILE_TYPE_933
    COLLISION_DATA_255, // TILE_TYPE_934
    COLLISION_DATA_255, // TILE_TYPE_935
    COLLISION_DATA_24,  // TILE_TYPE_936
    COLLISION_DATA_24,  // TILE_TYPE_937
    COLLISION_DATA_24,  // TILE_TYPE_938
    COLLISION_DATA_24,  // TILE_TYPE_939
    COLLISION_DATA_38,  // TILE_TYPE_940
    COLLISION_DATA_15,  // TILE_TYPE_941
    COLLISION_DATA_0,   // TILE_TYPE_942
    COLLISION_DATA_28,  // TILE_TYPE_943
    COLLISION_DATA_26,  // TILE_TYPE_944
    COLLISION_DATA_27,  // TILE_TYPE_945
    COLLISION_DATA_25,  // TILE_TYPE_946
    COLLISION_DATA_255, // TILE_TYPE_947
    COLLISION_DATA_0,   // TILE_TYPE_948
    COLLISION_DATA_15,  // TILE_TYPE_949
    COLLISION_DATA_21,  // TILE_TYPE_950
    COLLISION_DATA_15,  // TILE_TYPE_951
    COLLISION_DATA_15,  // TILE_TYPE_952
    COLLISION_DATA_15,  // TILE_TYPE_953
    COLLISION_DATA_19,  // TILE_TYPE_954
    COLLISION_DATA_18,  // TILE_TYPE_955
    COLLISION_DATA_15,  // TILE_TYPE_956
    COLLISION_DATA_15,  // TILE_TYPE_957
    COLLISION_DATA_15,  // TILE_TYPE_958
    COLLISION_DATA_18,  // TILE_TYPE_959
    COLLISION_DATA_19,  // TILE_TYPE_960
    COLLISION_DATA_35,  // TILE_TYPE_961
    COLLISION_DATA_39,  // TILE_TYPE_962
    COLLISION_DATA_0,   // TILE_TYPE_963
    COLLISION_DATA_0,   // TILE_TYPE_964
    COLLISION_DATA_2,   // TILE_TYPE_965
    COLLISION_DATA_14,  // TILE_TYPE_966
    COLLISION_DATA_13,  // TILE_TYPE_967
    COLLISION_DATA_12,  // TILE_TYPE_968
    COLLISION_DATA_3,   // TILE_TYPE_969
    COLLISION_DATA_9,   // TILE_TYPE_970
    COLLISION_DATA_6,   // TILE_TYPE_971
    COLLISION_DATA_4,   // TILE_TYPE_972
    COLLISION_DATA_8,   // TILE_TYPE_973
    COLLISION_DATA_11,  // TILE_TYPE_974
    COLLISION_DATA_7,   // TILE_TYPE_975
    COLLISION_DATA_10,  // TILE_TYPE_976
    COLLISION_DATA_5,   // TILE_TYPE_977
    COLLISION_DATA_3,   // TILE_TYPE_978
    COLLISION_DATA_107, // TILE_TYPE_979
    COLLISION_DATA_103, // TILE_TYPE_980
    COLLISION_DATA_106, // TILE_TYPE_981
    COLLISION_DATA_15,  // TILE_TYPE_982
    COLLISION_DATA_12,  // TILE_TYPE_983
    COLLISION_DATA_20,  // TILE_TYPE_984
    COLLISION_DATA_21,  // TILE_TYPE_985
    COLLISION_DATA_15,  // TILE_TYPE_986
    COLLISION_DATA_0,   // TILE_TYPE_987
    COLLISION_DATA_15,  // TILE_TYPE_988
    COLLISION_DATA_40,  // TILE_TYPE_989
    COLLISION_DATA_95,  // TILE_TYPE_990
    COLLISION_DATA_15,  // TILE_TYPE_991
    COLLISION_DATA_5,   // TILE_TYPE_992
    COLLISION_DATA_10,  // TILE_TYPE_993
    COLLISION_DATA_16,  // TILE_TYPE_994
    COLLISION_DATA_17,  // TILE_TYPE_995
    COLLISION_DATA_18,  // TILE_TYPE_996
    COLLISION_DATA_19,  // TILE_TYPE_997
    COLLISION_DATA_71,  // TILE_TYPE_998
    COLLISION_DATA_12,  // TILE_TYPE_999
    COLLISION_DATA_13,  // TILE_TYPE_1000
    COLLISION_DATA_14,  // TILE_TYPE_1001
    COLLISION_DATA_71,  // TILE_TYPE_1002
    COLLISION_DATA_20,  // TILE_TYPE_1003
    COLLISION_DATA_92,  // TILE_TYPE_1004
    COLLISION_DATA_13,  // TILE_TYPE_1005
    COLLISION_DATA_5,   // TILE_TYPE_1006
    COLLISION_DATA_4,   // TILE_TYPE_1007
    COLLISION_DATA_8,   // TILE_TYPE_1008
    COLLISION_DATA_1,   // TILE_TYPE_1009
    COLLISION_DATA_2,   // TILE_TYPE_1010
    COLLISION_DATA_10,  // TILE_TYPE_1011
    COLLISION_DATA_5,   // TILE_TYPE_1012
    COLLISION_DATA_10,  // TILE_TYPE_1013
    COLLISION_DATA_15,  // TILE_TYPE_1014
    COLLISION_DATA_4,   // TILE_TYPE_1015
    COLLISION_DATA_8,   // TILE_TYPE_1016
    COLLISION_DATA_15,  // TILE_TYPE_1017
    COLLISION_DATA_3,   // TILE_TYPE_1018
    COLLISION_DATA_2,   // TILE_TYPE_1019
    COLLISION_DATA_5,   // TILE_TYPE_1020
    COLLISION_DATA_15,  // TILE_TYPE_1021
    COLLISION_DATA_10,  // TILE_TYPE_1022
    COLLISION_DATA_4,   // TILE_TYPE_1023
    COLLISION_DATA_12,  // TILE_TYPE_1024
    COLLISION_DATA_8,   // TILE_TYPE_1025
    COLLISION_DATA_3,   // TILE_TYPE_1026
    COLLISION_DATA_2,   // TILE_TYPE_1027
    COLLISION_DATA_5,   // TILE_TYPE_1028
    COLLISION_DATA_15,  // TILE_TYPE_1029
    COLLISION_DATA_10,  // TILE_TYPE_1030
    COLLISION_DATA_4,   // TILE_TYPE_1031
    COLLISION_DATA_12,  // TILE_TYPE_1032
    COLLISION_DATA_8,   // TILE_TYPE_1033
    COLLISION_DATA_92,  // TILE_TYPE_1034
    COLLISION_DATA_84,  // TILE_TYPE_1035
    COLLISION_DATA_81,  // TILE_TYPE_1036
    COLLISION_DATA_83,  // TILE_TYPE_1037
    COLLISION_DATA_81,  // TILE_TYPE_1038
    COLLISION_DATA_82,  // TILE_TYPE_1039
    COLLISION_DATA_83,  // TILE_TYPE_1040
    COLLISION_DATA_90,  // TILE_TYPE_1041
    COLLISION_DATA_87,  // TILE_TYPE_1042
    COLLISION_DATA_91,  // TILE_TYPE_1043
    COLLISION_DATA_95,  // TILE_TYPE_1044
    COLLISION_DATA_84,  // TILE_TYPE_1045
    COLLISION_DATA_88,  // TILE_TYPE_1046
    COLLISION_DATA_92,  // TILE_TYPE_1047
    COLLISION_DATA_85,  // TILE_TYPE_1048
    COLLISION_DATA_93,  // TILE_TYPE_1049
    COLLISION_DATA_94,  // TILE_TYPE_1050
    COLLISION_DATA_39,  // TILE_TYPE_1051
    COLLISION_DATA_88,  // TILE_TYPE_1052
    COLLISION_DATA_85,  // TILE_TYPE_1053
    COLLISION_DATA_10,  // TILE_TYPE_1054
    COLLISION_DATA_83,  // TILE_TYPE_1055
    COLLISION_DATA_90,  // TILE_TYPE_1056
    COLLISION_DATA_81,  // TILE_TYPE_1057
    COLLISION_DATA_15,  // TILE_TYPE_1058
    COLLISION_DATA_89,  // TILE_TYPE_1059
    COLLISION_DATA_0,   // TILE_TYPE_1060
    COLLISION_DATA_0,   // TILE_TYPE_1061
    COLLISION_DATA_69,  // TILE_TYPE_1062
    COLLISION_DATA_71,  // TILE_TYPE_1063
    COLLISION_DATA_67,  // TILE_TYPE_1064
    COLLISION_DATA_70,  // TILE_TYPE_1065
    COLLISION_DATA_0,   // TILE_TYPE_1066
    COLLISION_DATA_3,   // TILE_TYPE_1067
    COLLISION_DATA_15,  // TILE_TYPE_1068
    COLLISION_DATA_1,   // TILE_TYPE_1069
    COLLISION_DATA_2,   // TILE_TYPE_1070
    COLLISION_DATA_3,   // TILE_TYPE_1071
    COLLISION_DATA_10,  // TILE_TYPE_1072
    COLLISION_DATA_12,  // TILE_TYPE_1073
    COLLISION_DATA_5,   // TILE_TYPE_1074
    COLLISION_DATA_4,   // TILE_TYPE_1075
    COLLISION_DATA_8,   // TILE_TYPE_1076
    COLLISION_DATA_4,   // TILE_TYPE_1077
    COLLISION_DATA_1,   // TILE_TYPE_1078
    COLLISION_DATA_3,   // TILE_TYPE_1079
    COLLISION_DATA_15,  // TILE_TYPE_1080
    COLLISION_DATA_95,  // TILE_TYPE_1081
    COLLISION_DATA_97,  // TILE_TYPE_1082
    COLLISION_DATA_0,   // TILE_TYPE_1083
    COLLISION_DATA_3,   // TILE_TYPE_1084
    COLLISION_DATA_28,  // TILE_TYPE_1085
    COLLISION_DATA_27,  // TILE_TYPE_1086
    COLLISION_DATA_21,  // TILE_TYPE_1087
    COLLISION_DATA_69,  // TILE_TYPE_1088
    COLLISION_DATA_3,   // TILE_TYPE_1089
    COLLISION_DATA_96,  // TILE_TYPE_1090
    COLLISION_DATA_12,  // TILE_TYPE_1091
    COLLISION_DATA_102, // TILE_TYPE_1092
    COLLISION_DATA_100, // TILE_TYPE_1093
    COLLISION_DATA_101, // TILE_TYPE_1094
    COLLISION_DATA_26,  // TILE_TYPE_1095
    COLLISION_DATA_25,  // TILE_TYPE_1096
    COLLISION_DATA_18,  // TILE_TYPE_1097
    COLLISION_DATA_17,  // TILE_TYPE_1098
    COLLISION_DATA_19,  // TILE_TYPE_1099
    COLLISION_DATA_16,  // TILE_TYPE_1100
    COLLISION_DATA_2,   // TILE_TYPE_1101
    COLLISION_DATA_4,   // TILE_TYPE_1102
    COLLISION_DATA_8,   // TILE_TYPE_1103
    COLLISION_DATA_14,  // TILE_TYPE_1104
    COLLISION_DATA_15,  // TILE_TYPE_1105
    COLLISION_DATA_11,  // TILE_TYPE_1106
    COLLISION_DATA_84,  // TILE_TYPE_1107
    COLLISION_DATA_69,  // TILE_TYPE_1108
    COLLISION_DATA_68,  // TILE_TYPE_1109
    COLLISION_DATA_4,   // TILE_TYPE_1110
    COLLISION_DATA_13,  // TILE_TYPE_1111
    COLLISION_DATA_0,   // TILE_TYPE_1112
    COLLISION_DATA_0,   // TILE_TYPE_1113
    COLLISION_DATA_12,  // TILE_TYPE_1114
    COLLISION_DATA_12,  // TILE_TYPE_1115
    COLLISION_DATA_15,  // TILE_TYPE_1116
    COLLISION_DATA_15,  // TILE_TYPE_1117
    COLLISION_DATA_10,  // TILE_TYPE_1118
    COLLISION_DATA_5,   // TILE_TYPE_1119
    COLLISION_DATA_10,  // TILE_TYPE_1120
    COLLISION_DATA_5,   // TILE_TYPE_1121
    COLLISION_DATA_12,  // TILE_TYPE_1122
    COLLISION_DATA_97,  // TILE_TYPE_1123
    COLLISION_DATA_10,  // TILE_TYPE_1124
    COLLISION_DATA_5,   // TILE_TYPE_1125
    COLLISION_DATA_11,  // TILE_TYPE_1126
    COLLISION_DATA_7,   // TILE_TYPE_1127
    COLLISION_DATA_67,  // TILE_TYPE_1128
    COLLISION_DATA_69,  // TILE_TYPE_1129
    COLLISION_DATA_1,   // TILE_TYPE_1130
    COLLISION_DATA_2,   // TILE_TYPE_1131
    COLLISION_DATA_4,   // TILE_TYPE_1132
    COLLISION_DATA_8,   // TILE_TYPE_1133
    COLLISION_DATA_13,  // TILE_TYPE_1134
    COLLISION_DATA_3,   // TILE_TYPE_1135
    COLLISION_DATA_3,   // TILE_TYPE_1136
    COLLISION_DATA_7,   // TILE_TYPE_1137
    COLLISION_DATA_15,  // TILE_TYPE_1138
    COLLISION_DATA_3,   // TILE_TYPE_1139
    COLLISION_DATA_0,   // TILE_TYPE_1140
    COLLISION_DATA_2,   // TILE_TYPE_1141
    COLLISION_DATA_84,  // TILE_TYPE_1142
    COLLISION_DATA_92,  // TILE_TYPE_1143
    COLLISION_DATA_88,  // TILE_TYPE_1144
    COLLISION_DATA_12,  // TILE_TYPE_1145
    COLLISION_DATA_67,  // TILE_TYPE_1146
    COLLISION_DATA_0,   // TILE_TYPE_1147
    COLLISION_DATA_0,   // TILE_TYPE_1148
    COLLISION_DATA_8,   // TILE_TYPE_1149
    COLLISION_DATA_1,   // TILE_TYPE_1150
    COLLISION_DATA_2,   // TILE_TYPE_1151
    COLLISION_DATA_87,  // TILE_TYPE_1152
    COLLISION_DATA_95,  // TILE_TYPE_1153
    COLLISION_DATA_91,  // TILE_TYPE_1154
    COLLISION_DATA_82,  // TILE_TYPE_1155
    COLLISION_DATA_14,  // TILE_TYPE_1156
    COLLISION_DATA_18,  // TILE_TYPE_1157
    COLLISION_DATA_19,  // TILE_TYPE_1158
    COLLISION_DATA_10,  // TILE_TYPE_1159
    COLLISION_DATA_5,   // TILE_TYPE_1160
    COLLISION_DATA_0,   // TILE_TYPE_1161
    COLLISION_DATA_10,  // TILE_TYPE_1162
    COLLISION_DATA_5,   // TILE_TYPE_1163
    COLLISION_DATA_3,   // TILE_TYPE_1164
    COLLISION_DATA_63,  // TILE_TYPE_1165
    COLLISION_DATA_19,  // TILE_TYPE_1166
    COLLISION_DATA_18,  // TILE_TYPE_1167
    COLLISION_DATA_47,  // TILE_TYPE_1168
    COLLISION_DATA_46,  // TILE_TYPE_1169
    COLLISION_DATA_17,  // TILE_TYPE_1170
    COLLISION_DATA_16,  // TILE_TYPE_1171
    COLLISION_DATA_11,  // TILE_TYPE_1172
    COLLISION_DATA_7,   // TILE_TYPE_1173
    COLLISION_DATA_15,  // TILE_TYPE_1174
    COLLISION_DATA_0,   // TILE_TYPE_1175
    COLLISION_DATA_3,   // TILE_TYPE_1176
    COLLISION_DATA_15,  // TILE_TYPE_1177
    COLLISION_DATA_15,  // TILE_TYPE_1178
    COLLISION_DATA_1,   // TILE_TYPE_1179
    COLLISION_DATA_8,   // TILE_TYPE_1180
    COLLISION_DATA_12,  // TILE_TYPE_1181
    COLLISION_DATA_12,  // TILE_TYPE_1182
    COLLISION_DATA_15,  // TILE_TYPE_1183
    COLLISION_DATA_1,   // TILE_TYPE_1184
    COLLISION_DATA_3,   // TILE_TYPE_1185
    COLLISION_DATA_2,   // TILE_TYPE_1186
    COLLISION_DATA_5,   // TILE_TYPE_1187
    COLLISION_DATA_10,  // TILE_TYPE_1188
    COLLISION_DATA_4,   // TILE_TYPE_1189
    COLLISION_DATA_12,  // TILE_TYPE_1190
    COLLISION_DATA_8,   // TILE_TYPE_1191
    COLLISION_DATA_9,   // TILE_TYPE_1192
    COLLISION_DATA_39,  // TILE_TYPE_1193
    COLLISION_DATA_2,   // TILE_TYPE_1194
    COLLISION_DATA_14,  // TILE_TYPE_1195
    COLLISION_DATA_13,  // TILE_TYPE_1196
    COLLISION_DATA_12,  // TILE_TYPE_1197
    COLLISION_DATA_3,   // TILE_TYPE_1198
    COLLISION_DATA_6,   // TILE_TYPE_1199
    COLLISION_DATA_9,   // TILE_TYPE_1200
    COLLISION_DATA_4,   // TILE_TYPE_1201
    COLLISION_DATA_8,   // TILE_TYPE_1202
    COLLISION_DATA_11,  // TILE_TYPE_1203
    COLLISION_DATA_7,   // TILE_TYPE_1204
    COLLISION_DATA_10,  // TILE_TYPE_1205
    COLLISION_DATA_5,   // TILE_TYPE_1206
    COLLISION_DATA_34,  // TILE_TYPE_1207
    COLLISION_DATA_35,  // TILE_TYPE_1208
    COLLISION_DATA_4,   // TILE_TYPE_1209
    COLLISION_DATA_12,  // TILE_TYPE_1210
    COLLISION_DATA_3,   // TILE_TYPE_1211
    COLLISION_DATA_3,   // TILE_TYPE_1212
    COLLISION_DATA_1,   // TILE_TYPE_1213
    COLLISION_DATA_5,   // TILE_TYPE_1214
    COLLISION_DATA_10,  // TILE_TYPE_1215
    COLLISION_DATA_4,   // TILE_TYPE_1216
    COLLISION_DATA_8,   // TILE_TYPE_1217
    COLLISION_DATA_0,   // TILE_TYPE_1218
    COLLISION_DATA_107, // TILE_TYPE_1219
    COLLISION_DATA_103, // TILE_TYPE_1220
    COLLISION_DATA_106, // TILE_TYPE_1221
    COLLISION_DATA_18,  // TILE_TYPE_1222
    COLLISION_DATA_45,  // TILE_TYPE_1223
    COLLISION_DATA_44,  // TILE_TYPE_1224
    COLLISION_DATA_0,   // TILE_TYPE_1225
    COLLISION_DATA_15,  // TILE_TYPE_1226
    COLLISION_DATA_41,  // TILE_TYPE_1227
    COLLISION_DATA_40,  // TILE_TYPE_1228
    COLLISION_DATA_0,   // TILE_TYPE_1229
    COLLISION_DATA_0,   // TILE_TYPE_1230
    COLLISION_DATA_0,   // TILE_TYPE_1231
    COLLISION_DATA_0,   // TILE_TYPE_1232
    COLLISION_DATA_0,   // TILE_TYPE_1233
    COLLISION_DATA_0,   // TILE_TYPE_1234
    COLLISION_DATA_0,   // TILE_TYPE_1235
    COLLISION_DATA_20,  // TILE_TYPE_1236
    COLLISION_DATA_33,  // TILE_TYPE_1237
    COLLISION_DATA_39,  // TILE_TYPE_1238
    COLLISION_DATA_67,  // TILE_TYPE_1239
    COLLISION_DATA_4,   // TILE_TYPE_1240
    COLLISION_DATA_8,   // TILE_TYPE_1241
    COLLISION_DATA_12,  // TILE_TYPE_1242
    COLLISION_DATA_3,   // TILE_TYPE_1243
    COLLISION_DATA_3,   // TILE_TYPE_1244
    COLLISION_DATA_1,   // TILE_TYPE_1245
    COLLISION_DATA_2,   // TILE_TYPE_1246
    COLLISION_DATA_0,   // TILE_TYPE_1247
    COLLISION_DATA_12,  // TILE_TYPE_1248
    COLLISION_DATA_3,   // TILE_TYPE_1249
    COLLISION_DATA_2,   // TILE_TYPE_1250
    COLLISION_DATA_5,   // TILE_TYPE_1251
    COLLISION_DATA_10,  // TILE_TYPE_1252
    COLLISION_DATA_14,  // TILE_TYPE_1253
    COLLISION_DATA_13,  // TILE_TYPE_1254
    COLLISION_DATA_4,   // TILE_TYPE_1255
    COLLISION_DATA_8,   // TILE_TYPE_1256
    COLLISION_DATA_11,  // TILE_TYPE_1257
    COLLISION_DATA_7,   // TILE_TYPE_1258
    COLLISION_DATA_12,  // TILE_TYPE_1259
    COLLISION_DATA_0,   // TILE_TYPE_1260
    COLLISION_DATA_0,   // TILE_TYPE_1261
    COLLISION_DATA_39,  // TILE_TYPE_1262
    COLLISION_DATA_1,   // TILE_TYPE_1263
    COLLISION_DATA_2,   // TILE_TYPE_1264
    COLLISION_DATA_1,   // TILE_TYPE_1265
    COLLISION_DATA_2,   // TILE_TYPE_1266
    COLLISION_DATA_4,   // TILE_TYPE_1267
    COLLISION_DATA_12,  // TILE_TYPE_1268
    COLLISION_DATA_7,   // TILE_TYPE_1269
    COLLISION_DATA_11,  // TILE_TYPE_1270
    COLLISION_DATA_4,   // TILE_TYPE_1271
    COLLISION_DATA_8,   // TILE_TYPE_1272
    COLLISION_DATA_16,  // TILE_TYPE_1273
    COLLISION_DATA_17,  // TILE_TYPE_1274
    COLLISION_DATA_43,  // TILE_TYPE_1275
    COLLISION_DATA_43,  // TILE_TYPE_1276
    COLLISION_DATA_18,  // TILE_TYPE_1277
    COLLISION_DATA_19,  // TILE_TYPE_1278
    COLLISION_DATA_10,  // TILE_TYPE_1279
    COLLISION_DATA_5,   // TILE_TYPE_1280
    COLLISION_DATA_2,   // TILE_TYPE_1281
    COLLISION_DATA_1,   // TILE_TYPE_1282
    COLLISION_DATA_35,  // TILE_TYPE_1283
    COLLISION_DATA_1,   // TILE_TYPE_1284
    COLLISION_DATA_3,   // TILE_TYPE_1285
    COLLISION_DATA_2,   // TILE_TYPE_1286
    COLLISION_DATA_5,   // TILE_TYPE_1287
    COLLISION_DATA_10,  // TILE_TYPE_1288
    COLLISION_DATA_14,  // TILE_TYPE_1289
    COLLISION_DATA_13,  // TILE_TYPE_1290
    COLLISION_DATA_11,  // TILE_TYPE_1291
    COLLISION_DATA_7,   // TILE_TYPE_1292
    COLLISION_DATA_4,   // TILE_TYPE_1293
    COLLISION_DATA_8,   // TILE_TYPE_1294
    COLLISION_DATA_10,  // TILE_TYPE_1295
    COLLISION_DATA_5,   // TILE_TYPE_1296
    COLLISION_DATA_10,  // TILE_TYPE_1297
    COLLISION_DATA_5,   // TILE_TYPE_1298
    COLLISION_DATA_13,  // TILE_TYPE_1299
    COLLISION_DATA_14,  // TILE_TYPE_1300
    COLLISION_DATA_8,   // TILE_TYPE_1301
    COLLISION_DATA_4,   // TILE_TYPE_1302
    COLLISION_DATA_7,   // TILE_TYPE_1303
    COLLISION_DATA_11,  // TILE_TYPE_1304
    COLLISION_DATA_0,   // TILE_TYPE_1305
    COLLISION_DATA_9,   // TILE_TYPE_1306
    COLLISION_DATA_6,   // TILE_TYPE_1307
    COLLISION_DATA_0,   // TILE_TYPE_1308
    COLLISION_DATA_15,  // TILE_TYPE_1309
    COLLISION_DATA_7,   // TILE_TYPE_1310
    COLLISION_DATA_11,  // TILE_TYPE_1311
    COLLISION_DATA_3,   // TILE_TYPE_1312
    COLLISION_DATA_33,  // TILE_TYPE_1313
    COLLISION_DATA_33,  // TILE_TYPE_1314
    COLLISION_DATA_33,  // TILE_TYPE_1315
    COLLISION_DATA_33,  // TILE_TYPE_1316
    COLLISION_DATA_33,  // TILE_TYPE_1317
    COLLISION_DATA_33,  // TILE_TYPE_1318
    COLLISION_DATA_33,  // TILE_TYPE_1319
    COLLISION_DATA_15,  // TILE_TYPE_1320
    COLLISION_DATA_5,   // TILE_TYPE_1321
    COLLISION_DATA_10,  // TILE_TYPE_1322
    COLLISION_DATA_96,  // TILE_TYPE_1323
    COLLISION_DATA_0,   // TILE_TYPE_1324
    COLLISION_DATA_0,   // TILE_TYPE_1325
    COLLISION_DATA_0,   // TILE_TYPE_1326
    COLLISION_DATA_0,   // TILE_TYPE_1327
    COLLISION_DATA_0,   // TILE_TYPE_1328
    COLLISION_DATA_0,   // TILE_TYPE_1329
    COLLISION_DATA_0,   // TILE_TYPE_1330
    COLLISION_DATA_0,   // TILE_TYPE_1331
    COLLISION_DATA_0,   // TILE_TYPE_1332
    COLLISION_DATA_0,   // TILE_TYPE_1333
    COLLISION_DATA_0,   // TILE_TYPE_1334
    COLLISION_DATA_0,   // TILE_TYPE_1335
    COLLISION_DATA_0,   // TILE_TYPE_1336
    COLLISION_DATA_0,   // TILE_TYPE_1337
    COLLISION_DATA_0,   // TILE_TYPE_1338
    COLLISION_DATA_0,   // TILE_TYPE_1339
    COLLISION_DATA_0,   // TILE_TYPE_1340
    COLLISION_DATA_0,   // TILE_TYPE_1341
    COLLISION_DATA_0,   // TILE_TYPE_1342
    COLLISION_DATA_0,   // TILE_TYPE_1343
    COLLISION_DATA_48,  // TILE_TYPE_1344
    COLLISION_DATA_0,   // TILE_TYPE_1345
    COLLISION_DATA_3,   // TILE_TYPE_1346
    COLLISION_DATA_48,  // TILE_TYPE_1347
    COLLISION_DATA_48,  // TILE_TYPE_1348
    COLLISION_DATA_0,   // TILE_TYPE_1349
    COLLISION_DATA_0,   // TILE_TYPE_1350
    COLLISION_DATA_0,   // TILE_TYPE_1351
    COLLISION_DATA_0,   // TILE_TYPE_1352
    COLLISION_DATA_0,   // TILE_TYPE_1353
    COLLISION_DATA_0,   // TILE_TYPE_1354
    COLLISION_DATA_48,  // TILE_TYPE_1355
    COLLISION_DATA_48,  // TILE_TYPE_1356
    COLLISION_DATA_33,  // TILE_TYPE_1357
    COLLISION_DATA_33,  // TILE_TYPE_1358
    COLLISION_DATA_0,   // TILE_TYPE_1359
    COLLISION_DATA_15,  // TILE_TYPE_1360
    COLLISION_DATA_83,  // TILE_TYPE_1361
    COLLISION_DATA_92,  // TILE_TYPE_1362
    COLLISION_DATA_85,  // TILE_TYPE_1363
    COLLISION_DATA_90,  // TILE_TYPE_1364
    COLLISION_DATA_96,  // TILE_TYPE_1365
    COLLISION_DATA_97,  // TILE_TYPE_1366
    COLLISION_DATA_95,  // TILE_TYPE_1367
    COLLISION_DATA_18,  // TILE_TYPE_1368
    COLLISION_DATA_19,  // TILE_TYPE_1369
    COLLISION_DATA_16,  // TILE_TYPE_1370
    COLLISION_DATA_10,  // TILE_TYPE_1371
    COLLISION_DATA_10,  // TILE_TYPE_1372
    COLLISION_DATA_35,  // TILE_TYPE_1373
    COLLISION_DATA_10,  // TILE_TYPE_1374
    COLLISION_DATA_5,   // TILE_TYPE_1375
    COLLISION_DATA_14,  // TILE_TYPE_1376
    COLLISION_DATA_13,  // TILE_TYPE_1377
    COLLISION_DATA_11,  // TILE_TYPE_1378
    COLLISION_DATA_7,   // TILE_TYPE_1379
    COLLISION_DATA_10,  // TILE_TYPE_1380
    COLLISION_DATA_5,   // TILE_TYPE_1381
    COLLISION_DATA_14,  // TILE_TYPE_1382
    COLLISION_DATA_13,  // TILE_TYPE_1383
    COLLISION_DATA_11,  // TILE_TYPE_1384
    COLLISION_DATA_7,   // TILE_TYPE_1385
    COLLISION_DATA_0,   // TILE_TYPE_1386
    COLLISION_DATA_0,   // TILE_TYPE_1387
    COLLISION_DATA_3,   // TILE_TYPE_1388
    COLLISION_DATA_0,   // TILE_TYPE_1389
    COLLISION_DATA_39,  // TILE_TYPE_1390
    COLLISION_DATA_12,  // TILE_TYPE_1391
    COLLISION_DATA_12,  // TILE_TYPE_1392
    COLLISION_DATA_33,  // TILE_TYPE_1393
    COLLISION_DATA_0,   // TILE_TYPE_1394
    COLLISION_DATA_0,   // TILE_TYPE_1395
};
