From 3bc2f3c3f3232843b0bdcfb61f1976f771b63788 Mon Sep 17 00:00:00 2001 From: laqieer Date: Tue, 10 Sep 2024 20:13:19 +0800 Subject: [PATCH] Add unit sprites for unpromoted Anna: Mercenary (F) Axe --- README.md | 7 +++++++ gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.grit | 4 ++++ gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.png | Bin 0 -> 1112 bytes gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.grit | 4 ++++ gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.png | Bin 0 -> 2342 bytes ldscript/hack.lds | 1 + ldscript/unitsprites.lds | 2 ++ source/mu.c | 5 +++++ source/unitsprites.c | 9 +++++++++ 9 files changed, 32 insertions(+) create mode 100644 gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.grit create mode 100644 gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.png create mode 100644 gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.grit create mode 100644 gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.png create mode 100644 ldscript/unitsprites.lds create mode 100644 source/unitsprites.c diff --git a/README.md b/README.md index 348b3c6f..a17ad1b1 100644 --- a/README.md +++ b/README.md @@ -110,3 +110,10 @@ Supported emulators: ### [References](.gitmodules) ### [Musics](music/appeared_musics.json) + +### Map Sprites + +Mercenary (F) Axe {Pushwall, Argo, Flasuban, ArcherBias} + +![Mercenary (F) Axe {Pushwall, Argo, Flasuban, ArcherBias}-stand.png](gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.png) +![Mercenary (F) Axe {Pushwall, Argo, Flasuban, ArcherBias}-walk.png](gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.png) diff --git a/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.grit b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.grit new file mode 100644 index 00000000..7ba843c4 --- /dev/null +++ b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.grit @@ -0,0 +1,4 @@ +-gB4 +-gzl +-gu8 +-p! diff --git a/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.png b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Stand.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1bdeb8f503d018f95bf22e2d8fb4c3fd1db9ba GIT binary patch literal 1112 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!3-qz8@W<}6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?L7-m>B|mLR=dbG(>n*OxW?_#)}UH2?-k}MEv-1!NOvKMZg1%1wSM{{CFWC z@#BX>Lr1|6AZ1|zG-niyhQP210sksbKA>kf3p^r=85sBugD~Uq{1quc!H1qMjv*HQ zdnbAG9ai9B&1~{?Y%2eM``b@umAhf9#64{evbp&QCLCGL8kPOkZC%t-J4UWsybMdH zL@eB^VClUspS^ki%uVT29K0_2-c-(7!g0=UM^MiP+XC74Nk+f>J{uVI8=YjE`b4QB z@|N}ag-=Q@h%R83d{L|W!1xn~ZDdW+5i1N5^SCwHv93(&}HgYOZh0psvb-EYesHrH7cxz sMvU7QGCVuX6S=R(BEoLl!ne#G^0Rq`Ux%}5aDbxI)78&qol`;+0Jx-?lK=n! literal 0 HcmV?d00001 diff --git a/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.grit b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.grit new file mode 100644 index 00000000..7ba843c4 --- /dev/null +++ b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.grit @@ -0,0 +1,4 @@ +-gB4 +-gzl +-gu8 +-p! diff --git a/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.png b/gfx/misc/Unit_Sprite_Mercenary_F_Axe_Walk.png new file mode 100644 index 0000000000000000000000000000000000000000..ffbca130ace3e457589b42265689d748e8cad87e GIT binary patch literal 2342 zcmeH|`&-h77so#ciiY%I>6TYMu<3M56O9_hl8ZXjWvR1tt_r^-gosKRLr|Qh0P|SNi#0Lld zH4f}J7_!=Yj7@6r_j~|Y-TOWfcX+Y{0I+Nf31mbi2fT`X_RI7Z+lzKji?^1jS61Et z_D8-AcHc0U&fSrlH~jfWdt8v`?BTQnBKfC3=B-bND{BpsCRWb2itMH2kceYJc!FQp zPz8Ur&6%^ra`LvHp=m$R2HO`_P~q7&MZ@5`myB7R_nPH>?j*Q1VK)fZZG>AV#*6GC z7d3q-;s(gB;r{ubZ5>*iXEUe0c%N*U-c{>`Ni!t1d%#ppjkf4X=Uv*Gw_mPgx_r4( zON39R>;Hb>GP7{e+1RMfIMmJkO8ur2crJ$AWwknVNB>PY+sTqDF;x%7@f>P<2VlHmJv z8GO8wn9n~;4HTufO}Eq%seRA1EkhplTF`N)somFGZS9$%8`5%LXru<;6Je%7Qs=j( z^f$Igmab$qEwW_lU$IQ%I)uuk(BLy$Mr$$2(5YrSwBGHVb^v}9&;5`gXQ7$il>&Q&8QgUpI;4Zc6&}tp8~n_RC*mI6%_%Z8wCb8-SZJON^?>HGVK!P@y;lzP z^-^qmXSJ*gOOd9DsLB6!u5r?q|0d$5Xnne4|5F0%Uefv}h3FJ*%S=vghRZLaAnKMl zLCXo(HbL7d=Zb14>$JDhY#EJ=6`2$=sE($fk+385$580q%JY2hU9kLQ^t?W_-lTR9 z&AdGi%8U_=7`134Tq5lJzA+=%`#o236u*j>rDcVm1rCiKFA%1JYftzRgE_O^upD8WLxfgWeBq}eOGhq&1@S? zHV|;EK=I@`Nm5#K-(qdPwVl@UH9wdR;<&{&1Ib|cp24^4Zoz!P>C-Vu-JU*_t4c)M ztGiYTVOxG*1}SP}ZCcS_4_A4`?RnbTp&wcFmg{AqsgCyP?x`Nj?*iF)D+}}mTTC@z z(SX<;nDLYMsOFH_*xJ{B7%ohd8TNr;`e^2NCjLo1@@&5nTSR^d$(;2g+S#GKGYiYv z%5T*F&n7W@@in_~%tMN557Mw4Uq`EvcA2Ycz)rd~%4+jCe#=Boqu7=A7z~f=r^gM0 zZtPqfiA`|Cm-3aMiV^0C)<#>DgYIZlps&q=p1nD)J^KlVqi?-M-+Bz4nn79{4y(X= zY|Z#6w2P?%W52GqJ&un!p67h@nXxutFuXz7lk6*V@!#}n$wo0u)%sj|hnVLYar$0y z8nqn6!m|FnbB2{Hqrj`$beYzqh(P8W7&DVvbj=)i6ds2t1GiN{sR-wx5=;`*apyPv zU+#w=U}er$6XnF zJjSW&7Q#Nlw9FF4xolUTC4MxCEcEHH4$jaNbEd8>vZ6F&`RI=uT@T5o5?KsrXL}f2 zL)Pm+1H(}Qt3bdJ3j-uk8O@V0HVRpj8{&o~o$rvb#~d!w*v;$Xm-7^aO|WugK?zTR zDgIT+M|&pPzoEG;;C4==Pa%sHLUNKOU2H_K`(lm6{fUccr|iCmqXtd^e&J8>i+z{a zgP+}p)YsVL*E~tcU+Aq%ji>cF_=CSL=Ox_1Z-T{5f9DjzLr_PD38}$m$DyK1?B749 Mkf7~>4NSK1ABbN3kN^Mx literal 0 HcmV?d00001 diff --git a/ldscript/hack.lds b/ldscript/hack.lds index 63a0267f..9e4d7d7e 100644 --- a/ldscript/hack.lds +++ b/ldscript/hack.lds @@ -53,3 +53,4 @@ INCLUDE ../ldscript/item.lds INCLUDE ../ldscript/mapwork.lds INCLUDE ../ldscript/banim_dragon.lds INCLUDE ../ldscript/banim_dragonfx_manakete.lds +INCLUDE ../ldscript/unitsprites.lds diff --git a/ldscript/unitsprites.lds b/ldscript/unitsprites.lds new file mode 100644 index 00000000..bf38e868 --- /dev/null +++ b/ldscript/unitsprites.lds @@ -0,0 +1,2 @@ +. = UnitSpriteTable + 8 * 2; +.rodata.UnitSpriteAxeMercenaryF : {*(.rodata.UnitSpriteAxeMercenaryF)} diff --git a/source/mu.c b/source/mu.c index b1bed883..90a345a1 100644 --- a/source/mu.c +++ b/source/mu.c @@ -2,6 +2,8 @@ #include "jobs.h" #include "log.h" +#include "gfx_misc.h" + int getMuId(int jid) { Assertf(jid < JID_COUNT, "jid=%d, JID_COUNT=%d", jid, JID_COUNT); @@ -26,6 +28,9 @@ int getMuId(int jid) u8 const * GetMuImgNew(struct MuProc * mu) { + if (mu->jid == JID_MERCENARY_F) + return Unit_Sprite_Mercenary_F_Axe_WalkTiles; + return MuInfoTable[getMuId(mu->jid) - 1].img; } diff --git a/source/unitsprites.c b/source/unitsprites.c new file mode 100644 index 00000000..f71fdc01 --- /dev/null +++ b/source/unitsprites.c @@ -0,0 +1,9 @@ +#include "unitsprite.h" + +#include "gfx_misc.h" + +const struct UnitSpriteInfo UnitSpriteAxeMercenaryF = { + .unk_00 = 2, + .size = UNITSPRITE_16x16, + .img = Unit_Sprite_Mercenary_F_Axe_StandTiles, +};