From be60824263465d64d318877df9526e34be19711e Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Thu, 18 Jun 2020 01:59:45 -0400 Subject: [PATCH] Add Banette event object. --- .../object_events/pics/pokemon/banette.png | Bin 0 -> 1003 bytes graphics/pokemon/banette/anim_front.png | Bin 787 -> 6822 bytes graphics/pokemon/banette/normal.pal | 4 ++-- spritesheet_rules.mk | 3 +++ src/data/object_events/object_event_graphics.h | 1 + .../object_events/object_event_graphics_info.h | 1 + .../object_events/object_event_pic_tables.h | 9 +++++++++ src/event_object_movement.c | 3 +++ 8 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 graphics/object_events/pics/pokemon/banette.png diff --git a/graphics/object_events/pics/pokemon/banette.png b/graphics/object_events/pics/pokemon/banette.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9c14d6d321b819b8b8284ef7dee6877902bc41 GIT binary patch literal 1003 zcmVEX>4Tx04R}tkv&MmKpe$iKeQqhK|828WT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4P#IXWr2NQwVT3N2zhIPS;0dyl(!fWKa5su>&yRLwF{ ziMWu-t_q=7bfOPI3?e8oQ=b#XBs|C0J$!tC`-NgjguFvE0V2XsEe3JSuIyt^Pc>L;heUz%ypW>NMI355FtQD6(y8mAx5i4iis5M$36T*j$b5~Os*0b zITlcX3d!+<|H1EW&HUtqn-q=%9WS>1F#?2kfkw@?zmILZaRLOMfh(=$uhfB=Ptt2G zEqVm>ZUYzBElu77E_Z-|CtWfmM+(sN=kvh(8GTb0=)VQJ*WBKk`#607($rP*1~@nb zMhld^?(y!f_TK(I)9mjD_``B`6JDX|0000mP)t-s)#laz|NsC0G3KNg|GhEhF)`kI zF}+$4gFz`^Xn=r#puN4#l$5Mt5(FqByJg-I0005LNklj<>Kp3ln4I zOI$P;8`~QSXk`j`B@&}KC}y`Ykt-ILGakc|!Kj_N?S_GGf0T>xTx39F2Qg?~9uS{aT`ho`+TlSZfhI)&BDO>ksP24P*cH?QsOaz@mp~2M zCbO)A7*ubYCfi&#nE)zJL=DJbXIEs|63sxf0(fx^381ne2KH;lpxInJI^IDHzTdCU zZ;05gPe2{QJwNy}@a)E^emrG*H-J_j*L<50`LyIS2p~H}_H~a{ErO~iI!oA(_cVZE zo4(?5lQntkMbP_o0$v79I8y5?wxpk6d5o)}H1K2Tp99Eh0qt&id5l4w)9yN9$JF}( zjw3eC_~UdA1GG~x?DDkMMWAw?`h-_gBI~9lKZ^XMxX!KzM-dqA2lt~3>bp0>edE;s ZY#;m8(yFZV%~k*a002ovPDHLkV1kgfz3Kn} literal 0 HcmV?d00001 diff --git a/graphics/pokemon/banette/anim_front.png b/graphics/pokemon/banette/anim_front.png index 7d10d2c50f4d134628e819ad92932ab5a8e75c25..8b3c0bd915b3710141bf89c92e1e94e1e7a8ff0e 100644 GIT binary patch delta 6815 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 delta 735 zcmV<50wDdSHIoLABa^TfA%Fk>G5`NDy}iwpl&o`ei%Lpj0002|5a^l!0004WQchC< zK<3zH0007!NklljA6vuC>GBok0;1jTPV?pgkCpN@{Tt=iy4I@$!?F1jl z7GEIG$%Gi>i8J>U6fA%70>*T%5ilmE2` zNTXSQfoa~nSa86PCCTsSPqdU34}5!tO}u=KRaBCF zVkvFsh!!j`I~YT#lh3w&?^T?7`GVT^$+F5W!`MykZcN`LbLz@WLiJabAk0xhNr zV_e-_g%@rQVF7BCmdmT~dB_4dGqg@*v$`2GEfAWLY!WLGjK^cHf_=^n7$KII@3}kx z49Onp!AG`$eOQ=*9rJ+AqeN!6+Y`l}cibTk@$bbSs(mBwMNfVsZsjHJ#qA~jH*qgG zpet_Hs$Frji+|{fJLP&jh+Ffc+KIc={4jUo-k6X37P}X>5C(ZySr6jI+thGgeOhkC zjlc(?TcRl;?)yIno=?WgY=s&~_l@2$H-OAtM917L&^5PhrXB;Wxz!|YOMG$GfJ;#m zDWc7hyghN(I8_ZU4v{@jgU|(pE>I+~>Mq5n&{ew#N>nRmtM1ip7_#2AVxCn-F2^3V zi+pSDJCE9T<{tRej!|c8f_r^xZ^evV_|)FIJ@cy_C2%PE)IRF<`XLS>#BX!+iWEz6 R8B+iN002ovPDHLkV1j(0QNsWL diff --git a/graphics/pokemon/banette/normal.pal b/graphics/pokemon/banette/normal.pal index cebcb7757b..45f7058eaa 100644 --- a/graphics/pokemon/banette/normal.pal +++ b/graphics/pokemon/banette/normal.pal @@ -10,8 +10,8 @@ JASC-PAL 222 123 49 189 90 16 131 65 41 -255 255 49 -255 255 49 +96 104 128 +128 128 160 189 189 205 148 148 172 115 115 139 diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 869a9bd1f2..b0bb7f62f0 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -483,6 +483,9 @@ $(OBJEVENTGFXDIR)/pokemon/togetic.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/pokemon/charizard.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 +$(OBJEVENTGFXDIR)/pokemon/banette.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + $(OBJEVENTGFXDIR)/berry_trees/aguav.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 400586a93c..a75353caed 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -365,4 +365,5 @@ const u32 gObjectEventPic_Marshtomp[] = INCBIN_U32("graphics/object_events/pics/ const u32 gObjectEventPic_Altaria[] = INCBIN_U32("graphics/object_events/pics/pokemon/altaria.4bpp"); const u32 gObjectEventPic_Togetic[] = INCBIN_U32("graphics/object_events/pics/pokemon/togetic.4bpp"); const u32 gObjectEventPic_Charizard[] = INCBIN_U32("graphics/object_events/pics/pokemon/charizard.4bpp"); +const u32 gObjectEventPic_Banette[] = INCBIN_U32("graphics/object_events/pics/pokemon/banette.4bpp"); const u16 gObjectEventPalette31[] = INCBIN_U16("graphics/object_events/palettes/31.gbapal"); diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index f4597d2c7c..ef19fabe6a 100755 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -249,3 +249,4 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Altaria = {0xFFFF, const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Togetic = {0xFFFF, OBJ_EVENT_PAL_TAG_DYNAMIC, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Following, gObjectEventPicTable_Togetic, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Charizard = {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_Charizard, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Follower = {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_Togetic, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Banette = {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_Banette, gDummySpriteAffineAnimTable}; diff --git a/src/data/object_events/object_event_pic_tables.h b/src/data/object_events/object_event_pic_tables.h index ccfaa376ef..2889f0bc72 100755 --- a/src/data/object_events/object_event_pic_tables.h +++ b/src/data/object_events/object_event_pic_tables.h @@ -2197,6 +2197,15 @@ const struct SpriteFrameImage gObjectEventPicTable_Charizard[] = { overworld_frame(gObjectEventPic_Charizard, 4, 4, 5), }; +const struct SpriteFrameImage gObjectEventPicTable_Banette[] = { + overworld_frame(gObjectEventPic_Banette, 4, 4, 0), + overworld_frame(gObjectEventPic_Banette, 4, 4, 1), + overworld_frame(gObjectEventPic_Banette, 4, 4, 2), + overworld_frame(gObjectEventPic_Banette, 4, 4, 3), + overworld_frame(gObjectEventPic_Banette, 4, 4, 4), + overworld_frame(gObjectEventPic_Banette, 4, 4, 5), +}; + const struct SpriteFrameImage gObjectEventPicTable_RubySapphireBrendan[] = { overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 0), overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 1), diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 382b4ca4cc..96ce02c3ef 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1632,6 +1632,9 @@ static const struct ObjectEventGraphicsInfo * SpeciesToGraphicsInfo(u16 species) case SPECIES_CHARIZARD : return &gObjectEventGraphicsInfo_Charizard; break; + case SPECIES_BANETTE : + return &gObjectEventGraphicsInfo_Banette; + break; default: return &gObjectEventGraphicsInfo_Dusclops; }