Added Unown OW forms.

This commit is contained in:
Ariel Antonitis 2020-06-24 01:45:49 -04:00
parent 38f538b755
commit 693246f711
33 changed files with 369 additions and 35 deletions

View file

@ -31,13 +31,12 @@ def extract_sprites(spritesheet):
offset += 1
def stack_sprite(index, path):
def stack_sprite(name, path):
joinp = os.path.join
name = f'{index:03d}.png'
frames = [joinp(path, 'down', name), joinp(path, 'down', 'frame2', name),
joinp(path, 'up', name), joinp(path, 'up', 'frame2', name),
joinp(path, 'left', name), joinp(path, 'left', 'frame2', name)]
output = joinp(path, f'{index_to_name[index]}.png')
output = joinp(path, name)
subprocess.run(['convert'] + frames + ['+append', output], check=True)
print(f'Stacked {output}')
@ -85,14 +84,14 @@ def paletteify(path, output_path=None):
joinp = os.path.join
_, tail = os.path.split(path)
species, _ = os.path.splitext(tail)
front = png.Reader(joinp(PKMN_GRAPHICS, species, 'anim_front.png'))
front = png.Reader(joinp(PKMN_GRAPHICS, species.split('_')[0], species.split('_')[1], 'anim_front.png'))
front.read()
target_palette = tuple(c[:3] for c in front.palette())
r, g, b = target_palette[0]
color = f'rgb({r},{g},{b})'
# Strip alpha color
subprocess.run(['convert', path, '-background', color, '-alpha', 'remove', output_path], check=True)
apply_palette(joinp(PKMN_GRAPHICS, species, 'anim_front.png'), output_path, output_path)
apply_palette(joinp(PKMN_GRAPHICS, species.split('_')[0], species.split('_')[1], 'anim_front.png'), output_path, output_path)
# Sprites from https://veekun.com/dex/downloads
@ -101,33 +100,4 @@ if __name__ == '__main__':
if args:
paletteify(args[0])
else:
f0 = open('graphics_info.h', 'w', buffering=1)
f1 = open('pic_tables.h', 'w', buffering=1)
f2 = open('event_graphics.h', 'w', buffering=1)
f3 = open('spritesheet_extra.mk', 'w', buffering=1)
for index in range(1, 386+1):
stack_sprite(index, 'overworld')
try:
species = index_to_name[index]
path = os.path.join('overworld', f'{species}.png')
output_path = os.path.join('graphics', 'object_events', 'pics', 'pokemon', f'{species}.png')
paletteify(path, output_path)
except Exception as e:
print(e.__class__.__name__, e, file=sys.stderr)
continue
d = 32 if species not in {'steelix', 'wailord', 'kyogre', 'groudon', 'rayquaza', 'lugia', 'ho_oh'} else 64
line = f'[SPECIES_{species.upper()}] = {{0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, {d*16}, {d}, {d}, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_{d}x{d}, gObjectEventSpriteOamTables_{d}x{d}, gObjectEventImageAnimTable_Following, gObjectEventPicTable_{species.capitalize()}, gDummySpriteAffineAnimTable}},'
f0.write(line + '\n')
lines = [f'const struct SpriteFrameImage gObjectEventPicTable_{species.capitalize()}[] = {{']
lines += [f' overworld_frame(gObjectEventPic_{species.capitalize()}, 4, 4, {frame}),' for frame in range(6)]
lines.append('};')
f1.write('\n'.join(lines) + '\n')
line = f'const u32 gObjectEventPic_{species.capitalize()}[] = INCBIN_U32("graphics/object_events/pics/pokemon/{species}.4bpp");'
f2.write(line + '\n')
lines = [f'$(OBJEVENTGFXDIR)/pokemon/{species}.4bpp: %.4bpp: %.png\n',
f'\t$(GFX) $< $@ -mwidth {int(d/8)} -mheight {int(d/8)}\n\n']
f3.write(''.join(lines))
f0.close()
f1.close()
f2.close()
f3.close()
stack_sprite('201-question.png', 'overworld')

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

View file

@ -1269,6 +1269,90 @@ $(OBJEVENTGFXDIR)/pokemon/slowking.4bpp: %.4bpp: %.png
$(OBJEVENTGFXDIR)/pokemon/misdreavus.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_a.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_b.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_c.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_d.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_e.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_f.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_g.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_h.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_i.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_j.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_k.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_l.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_m.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_n.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_o.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_p.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_q.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_r.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_s.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_t.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_u.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_v.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_w.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_x.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_y.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_z.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_exclamation.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/unown_question.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4
$(OBJEVENTGFXDIR)/pokemon/wobbuffet.4bpp: %.4bpp: %.png
$(GFX) $< $@ -mwidth 4 -mheight 4

View file

@ -552,6 +552,34 @@ const u32 gObjectEventPic_Umbreon[] = INCBIN_U32("graphics/object_events/pics/po
const u32 gObjectEventPic_Murkrow[] = INCBIN_U32("graphics/object_events/pics/pokemon/murkrow.4bpp");
const u32 gObjectEventPic_Slowking[] = INCBIN_U32("graphics/object_events/pics/pokemon/slowking.4bpp");
const u32 gObjectEventPic_Misdreavus[] = INCBIN_U32("graphics/object_events/pics/pokemon/misdreavus.4bpp");
const u32 gObjectEventPic_Unown_A[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_a.4bpp");
const u32 gObjectEventPic_Unown_B[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_b.4bpp");
const u32 gObjectEventPic_Unown_C[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_c.4bpp");
const u32 gObjectEventPic_Unown_D[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_d.4bpp");
const u32 gObjectEventPic_Unown_E[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_e.4bpp");
const u32 gObjectEventPic_Unown_F[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_f.4bpp");
const u32 gObjectEventPic_Unown_G[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_g.4bpp");
const u32 gObjectEventPic_Unown_H[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_h.4bpp");
const u32 gObjectEventPic_Unown_I[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_i.4bpp");
const u32 gObjectEventPic_Unown_J[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_j.4bpp");
const u32 gObjectEventPic_Unown_K[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_k.4bpp");
const u32 gObjectEventPic_Unown_L[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_l.4bpp");
const u32 gObjectEventPic_Unown_M[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_m.4bpp");
const u32 gObjectEventPic_Unown_N[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_n.4bpp");
const u32 gObjectEventPic_Unown_O[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_o.4bpp");
const u32 gObjectEventPic_Unown_P[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_p.4bpp");
const u32 gObjectEventPic_Unown_Q[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_q.4bpp");
const u32 gObjectEventPic_Unown_R[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_r.4bpp");
const u32 gObjectEventPic_Unown_S[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_s.4bpp");
const u32 gObjectEventPic_Unown_T[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_t.4bpp");
const u32 gObjectEventPic_Unown_U[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_u.4bpp");
const u32 gObjectEventPic_Unown_V[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_v.4bpp");
const u32 gObjectEventPic_Unown_W[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_w.4bpp");
const u32 gObjectEventPic_Unown_X[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_x.4bpp");
const u32 gObjectEventPic_Unown_Y[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_y.4bpp");
const u32 gObjectEventPic_Unown_Z[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_z.4bpp");
const u32 gObjectEventPic_Unown_Exclamation[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_exclamation.4bpp");
const u32 gObjectEventPic_Unown_Question[] = INCBIN_U32("graphics/object_events/pics/pokemon/unown_question.4bpp");
const u32 gObjectEventPic_Wobbuffet[] = INCBIN_U32("graphics/object_events/pics/pokemon/wobbuffet.4bpp");
const u32 gObjectEventPic_Girafarig[] = INCBIN_U32("graphics/object_events/pics/pokemon/girafarig.4bpp");
const u32 gObjectEventPic_Pineco[] = INCBIN_U32("graphics/object_events/pics/pokemon/pineco.4bpp");

View file

@ -446,6 +446,34 @@ const struct ObjectEventGraphicsInfo gPokemonObjectGraphics[] = {
[SPECIES_MURKROW] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Murkrow, gDummySpriteAffineAnimTable},
[SPECIES_SLOWKING] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Slowking, gDummySpriteAffineAnimTable},
[SPECIES_MISDREAVUS] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Misdreavus, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_A, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_B] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_B, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_C] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_C, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_D] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_D, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_E] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_E, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_F] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_F, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_G] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_G, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_H] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_H, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_I] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_I, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_J] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_J, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_K] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_K, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_L] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_L, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_M] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_M, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_N] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_N, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_O] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_O, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_P] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_P, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Q] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_Q, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_R] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_R, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_S] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_S, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_T] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_T, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_U] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_U, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_V] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_V, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_W] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_W, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_X] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_X, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Y] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_Y, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_Z] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_Z, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_EMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_Exclamation, gDummySpriteAffineAnimTable},
[SPECIES_UNOWN_QMARK] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Unown_Question, gDummySpriteAffineAnimTable},
[SPECIES_WOBBUFFET] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Wobbuffet, gDummySpriteAffineAnimTable},
[SPECIES_GIRAFARIG] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Girafarig, gDummySpriteAffineAnimTable},
[SPECIES_PINECO] = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Pineco, gDummySpriteAffineAnimTable},

View file

@ -3574,6 +3574,230 @@ const struct SpriteFrameImage gObjectEventPicTable_Misdreavus[] = {
overworld_frame(gObjectEventPic_Misdreavus, 4, 4, 4),
overworld_frame(gObjectEventPic_Misdreavus, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_A[] = {
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_A, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_B[] = {
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_B, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_C[] = {
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_C, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_D[] = {
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_D, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_E[] = {
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_E, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_F[] = {
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_F, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_G[] = {
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_G, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_H[] = {
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_H, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_I[] = {
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_I, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_J[] = {
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_J, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_K[] = {
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_K, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_L[] = {
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_L, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_M[] = {
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_M, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_N[] = {
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_N, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_O[] = {
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_O, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_P[] = {
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_P, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_Q[] = {
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_Q, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_R[] = {
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_R, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_S[] = {
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_S, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_T[] = {
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_T, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_U[] = {
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_U, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_V[] = {
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_V, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_W[] = {
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_W, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_X[] = {
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_X, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_Y[] = {
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_Y, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_Z[] = {
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_Z, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_Exclamation[] = {
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_Exclamation, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Unown_Question[] = {
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 0),
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 1),
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 2),
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 3),
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 4),
overworld_frame(gObjectEventPic_Unown_Question, 4, 4, 5),
};
const struct SpriteFrameImage gObjectEventPicTable_Wobbuffet[] = {
overworld_frame(gObjectEventPic_Wobbuffet, 4, 4, 0),
overworld_frame(gObjectEventPic_Wobbuffet, 4, 4, 1),