From e9ce2988e3747677e5cc9f9e3329a95ce04c0da5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 5 Jul 2024 17:48:16 -0400 Subject: [PATCH] documentation, 3 --- files/graphic/plist_gra.narc | Bin 51400 -> 0 bytes include/filesystem_files_def.h | 2 +- include/party_menu.h | 28 ++--- include/unk_02082908.h | 1 + src/battle_arcade_game_board.c | 4 +- src/party_context_menu.c | 6 +- src/party_menu.c | 71 ++++++------ src/party_menu_list_items.c | 202 ++++++++++++++++----------------- src/party_menu_sprites.c | 36 +++--- 9 files changed, 176 insertions(+), 174 deletions(-) delete mode 100644 files/graphic/plist_gra.narc diff --git a/files/graphic/plist_gra.narc b/files/graphic/plist_gra.narc deleted file mode 100644 index ccb0411d4318610eff441ce6d877e2bba0c46c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51400 zcmeHQ4|o*SwZAJH3^c-Bpz=p75Q2h;OfpGPk;f*x5e*Omn?d182n2!@1Q9hVViv6J zV*Q7I2}Omz*Q#6XmwvT=zHXtk&sMY%zn0gpR=be*p1krZEPQSK%4^kmzjJ5q?(FQ$ zZU|t2?wLJv|D1czJ?Gqe?(ELqJ5yUZC-9lhJbU&q##t{`RbP4Shm5g{fCO8C+klsO z7`q&JQ-Oio`Xe9shR?uP2QWtH9b{nnm5dSIbhUvqCNoC3@)`q&2N@&0X^DYfZDx${ z#Z?9#+Q=9of55=^5C?wOz*s%?a(V4Su$uo`Q@pu#{ z$05U<%Ig9n5!V5|&<@#G0P>vVljQ6n_c8ACao^^MQ#l_D?!zfElww^15{nR{mXKq_ z2=t+eh%XX}YyfVGY(doLLvT-I$c`4DZ%s=CjetZr)VC?p=JRc7d%@S%)-r5!TgzY{ z@e|{K1TmSjp-2!K(m@x-e`O%sVHT6}K#w&oErWNow7lTEr{%XkUp)Sb@BMf@z5_@R zYNKV?ui`HtK~zCRA&`erS!&~A6Nj11krXl^$O+uHBTlx4d?bDb#E1Dj)JT^tox#C1 zV>>8>CTx$g?a}D==-V-TV$oPE_9LLAM*A`r#VPi3v~LV2kO*IvbbE;6j1UktaQoY6 zju2@=1AZL)CHO?62#&C5&*9%4lJa$f_5oQP+FYh5oA|s+{_@slNo2M;Q)Wio+nQ$uvdWmqXsA)6^iVA01?MV}i_IQB_=Aj4r8GgTWwSIWP^Z(xBT!?*>&WYCr`T zsP!Nq8IYNl5L8Vo2~`J6LIuI{kTa4?eTH()^Hq?$S&1$V(| z6A&sfS=C|?EItAKKgvLDB8})j)x$sP>ne)t{S|6G{G*E1s{ss275;$&S~;-VL<9zq za8+hJfHKl2Fd)rbBLGdKvV=Auo+Z_gp&I^CT^uT?Rzuzr_(!=~jk$*A8{r>nHvbU5 z2SL=)0hoGpDNe>bDP~;EnihZz)x|zvu{i`uH$XKxsH&BhsRPT@kP3UzJV*UX{s3`$ z%s((5#P=nVgXDp*$?L}{@{gVHkC?hM7TXt#C3eOVi5LbGf~23249H3w^B}_$b|z?S z#^4{Z82lp^gMY-}AG@eJp{SG1KRz)0BL@HY2)?lsXz`5!^_p5%Z}K7E_{icLA?i3_ zMK<36U6a1C3k;-hkbls4BqlL*_AdAb)S&q$=^NGXk?PSH8ju105yJH&0Cy;df0Ud4 z5itFOnn{A>TaKI{8X(`OR%w)W8H8Rajj9zvlA!|rQI6|J01go_{iD2#{t+mL8G|Z3 zI*9o=5OnhoG*(@XK}FL>ntxOWAU}C`IekvpKSHzW0-Pp!Kmoon&Y5BS{vCTBeSh?@ z`uZ7lLl94XcNF=IJu*h^_w=y$E?FOVKBTX{W#sK+c1{>^^?@lPs*YDKta*Aq?jT$; zSzSN*xoHM(`+4ZXwY76Aq>#O#S#4qSDU`rNe1>cvy-<@4#!*8-1> zIWqh5hFca7SUtaK+uB=3_Mftzt*^Lx+=!~sgy&12o-gm=9D`W$9?oNkdvVb3iW`A< z0VU9HZ&XBw>R0qL?zPK+$x_i;Oln==y^kzPBUuY^D%y#RCbV`?iYE55fORuz~ z5Bb?{#tQu`JQC-T;j!$HfA>!n#CLC~!?|U%KKU{O7gxI;u-g~kY}|o z(IvoK86asCW)P8a7SQ`k8A)2)J2cTrn{z2o>gg7qOS(Gg;-8BJrNq4&GPHlES&&}>KKa=yR)laq~Lo0V3|A1uxU4G5EF=hW_Y1L2wHLaavC1-FX zh88%Z=unJ=LqOLDMEi@YgU}B;IvL1G{gg7qt$KA;Za2MUepmUNt>vViZsFzoo@Yd@wezo*8(dbZOoS@j}$HK0zv=Mr$eqbdyt;G z*3q@#7)B%wJ8KlG*!4-*?(9vGy7bM!RN1($Ls{vUXRl^mlU(YV5t=sX8ke)Tl<}>Q z#sGD?skAXDa$4Zj_ykEHzDnBX8evpH6q1OqY2suEip4)RAbE`MZ^mo_rKoxaaeAkNS z2tn%U7M^Z3Gut)h82Dn3%ps>+-(37HQ{)+}KY9%lB|bJ8ta-GtZ}Xb>FA8;ZTiY|u7mhmm^6Z^Gz|*T z`v{!@1(_?+xr$qEryGIt#qh*Q%r!Wfa%EHz@<10khZr?8iY4h(E|c2xIZ}Q%`A#*x ztLqXEPx-}=-HnTvkGYMnTkn~_Hh$IZ6L^*0&{F%ux%<~W&ks*29JPNPThq8cldiYw zt%s-7jN8BNCzBSA|LjYxwXGL_GGuM-Ut8b3@3Q+ISWZ@7ef7A~y;te2?W@^tw6m?=X0i|huT`FDJM-l1sK|c<9VINwjIG7pfV_{y0HECfM_TqeO1D!iJ z6yeP428sM3BA?Ek8%DC@Va~_0D*a)g~%@x`Q;*?&YhK4iaoMHv`27C z)@_>W4BO97tux$?INh7J?w<`K&$`agkN{^N?TZDJs;UpGuYK6KlNGTz+ee6fN3J-k zxR`hn?_@hJ5o(%%)_l|2Z+kI=nxa#glL2an0OC7>L3O9gN>VPnyt(N1@^<^%>9QS? zi}cRgH%=SCY{n9O2VQP{mrH+9FH8TPu>KgQ;xFr2!Jv+od@FJe%1a^Dc z(uZ`j7V-5;qfE99b+e@P#ap{zr;&qcS-7a8+`$&C0|<&yD?x!a~+&h~BN zC2M~=^p$-)*~dyQy1hKBb@`}AjiPYK-2}>42;Ee9UuMg z0*@wiJ(19lT2OWlLhElP8K?H~JOEdqHe0e_T3gn3&A4pGEp%!a+q#qB)OG~&Br#bM zo5&p?Sq^pD98m6!mm&5Trh$Agg$(21k%nod9TN8PwzQjF%zU{&*jB7T!@frW>4a21 zw)2TSz$U#Rk#dY`F+r1KV2^mhLNI1-gCKVSrm8tnRqTrf2SRg?GC3_c)Dst)0L}JA zprK&0912o7D_zD7eg{QanP-NAgDJA$Kpd@UQ#Uk?`4^L^v;)ZlbyeEqXu#;=(YOG( z<5*_@w^Aig+nc)&7%N=EUzR8%dp2X35f*JE!5&92@%rCflm8B1*GUH9zk#e zQIsLwQ9mGf810l%Tht(mj3y?eA6Dob{_A#d3kM&?ZF!&ce08|5i(Ovz2A?Bck=tIN6$^Ia=#F>Nugly>mJ&u8%$bb*^ zY{Dp}YGuhCvAgjTiEz=+iJBo4UP!95y(K8@W zjQXX7#v+O(d8+E4^)g^_8L;?IdI?Y~0cwBI8(>d;p_b5RX$SRL_4K`2)29aO^{IiN zK2;6s6V-r}gF@1q7;A{s!G|mFPzss?qlvZKMw1gbt=X#=$b2(7^!=9koP^A46V<3Yjq;aiZPV^izq- zr^$i@=|(05in4aPE$!NG)CUB%@KJ|0F#CA)EbVvLlhe^OHJ&Dd)>F=1=;4e4o=6)uu20Ug9#hb}~!a>JLYESORuvLR+8b2>ubA!gW&%EBEB+ zEWNsMoagm;sdX=&$=kadM}gOi`sc$R`mny;IQkS7de6uD+oEpQFY9U2VTf z)S1qf6fP}n28U%u%|%O#mUOxPLbLvKwz#OVa8co+qDIl1U2XrSWc}%EL19B-L(zgF z>Wi<4@zYaRu6(;^h6R#qQSq+5AsCcne)ET$7b!^=f5$jwI#N#^Q zQLN88Kno^Q3n=NoT)Bdg;_1{##DN}1?cV_p0pGLJt-L5s|M$k@p9*w}yNYkBW%-kO z8{(TfI<`d+7`QDG*|v$^`F2w99%>%~QkW4pbgo9s<)kP z*WXUJ=r5w6cc9s~fO`mGjtI<=L?k0tMAA_&nGgA&1#U_to`Wu%B5^2|F!duH0eiBc zwJoPO>K+108D2*`4WB~>wL?hpZ`zQQP2xj{6C%SvBy9X_=|gsY_B4zNUL6k!<2szE z0SVMv$AiG=gFs_|N}5xs9}u}x_d`h8<7Don?oM&pPBO$xzNo*+)(A5E+dh6Q{)rbG zC1Rk*Q0?DFb`RL*b-0L)$WKdqkn;E^Cvv{Z)osuSXUn<#L0=T zW%<2MJUY;bfiENMc$thQ0nKIric>iO8ALNf(sPAp##JvbMRzSgYosp0ApUiS{;9yY zuKzl&e_D*Z609&JI*sv9^>;fyJ@D>BpXvu5{`5fn9m=B>h}~@$-%jxU)-`w!mmO%c z(278O=JkV1+#QH9H;KmG(&Tl+!6YY? z1*2h35o6rZei(|uNjPDS3DR6+e5Xjgr`+1ZVt)`e&CquX`i?;l$~Ylm91EZL_%koB zkiqA($|vLL^vv-Gy7+#9>Tq}KH99lyDDnwpI{Uxz{ekwaOPQ@)Yw-&W56tb;^kze#Hc&ghiTcX1>lp z`@r<6_g=M3Z><@(`s$IM-M(8U`@h64-0nMg*{d~&)m{T%t$7Dmx~cbG+3{6=UM4}@ZZg6p1&17<*j4S_&~3nda;$>IK1=9jrZ+d+NiP0 z@XS|hNOmio+J86DJl=chw~DEKJ6*ItS?{~6_k#1NeLJ1n|4Fg#dEPU^L+#t?)P7y- z#``L7>s;#8{#%!fS0A7L$kdgSXH2?Wwb$Qw=e#CETCxl2PWpX&ZDZ|_rF#a&TUM+e zSE{$}Z{4|WTg$q&^H#@OsQnbISU<7mKN_q@ibk=0cV5%(QH^&r5kB@5B4L9$(-E!;AO@jz>S0JS?ibZF9ZX;%I7_Rlr`d*1%%5AQw5eU=%UwSPoWc-nKNo z16J1$f`?xEng2d}Fa&y+lAxy|QDJ_dgBebr&a>Hni%A`d4(BT(o;zbD6pJiNNz z!|(cf3M=Y8_^n4p=_j8Lj~5$&X9oHcXL>l>2h8IUYJBq(M?E4pe|03Ux z;l5uD|LMj2o!^W4U0vsz>v^_9ko@VKwLn*XTVQpc5>&2pJg!%2lw8JHtTZW0l$#xo z<;qu-TK_D6oqxW+-r>;vbNw5Y`<1UM5yxYb@}RQHzuJGR{~rJC4#yq-JN?zlwaPSQ zx;XqwrP63Q7AZ58NBocaAMXi9Py~Cj?bCu2h$Nf+E zpK(04_}l!el-0_u%00^M4#yqJol0$ZR=6%aKV0u{XyLixN0djE$CRzglMcsI%G1iK z@apib;d{cjI~;d}?+njY<|rZM261HCf1dJ4_|foV;jQ5(9ge5MPlwkiw<&9t7RTc* zl^&*NYd%lQTOevGyBv|BYkp+@OL?oS_n}1f*VgDT6nK3YNwRrpnJVW{h$58G=IBUZSdOmqPPEW~p3bS@@o|v~l z4htmxe-y6wqi{XPbKG@ohQbRMRK2VR{a(&HcE86f9^ybe?_Hk>bn|;7f5BPn_9?-g z{a(xmzsXBi+PhPHuGitX1<(%g|FZ%`7LSXmhh!K%s23j{C-#b8vikn&SNQ{cJKw>-#s9?>zr$bPFY=dolz*4M%wI_>_pkihd^i6o{~7;xSNsKk zlkeeg@wfRec?W+dt=t>@=e(2uC;u=0->&#S{15yP|6l$`{t-XSkEE6RkRR-U5p!y< z*K&>Fc5JGWYYfAP_rVS^+Gi!95ecXLVzjFYk3+-$DLlW&hi4qwK>k-x|2fjVFB@5G z&GPv?OdaTBK^6P7e0XM379<{7p&Wd&AY>#tfq4F#z){6Qejy2?=bs6n=fg>mI*{ym z`iekoA!7mu(AKf!7PEBq>NJhv3qJzj!9<;wh*=9*e+$sF66x7h>GT4sPFR3<`4+?y zT0xz*E0zt3M^^X+sfWYXK`?>J(}-ou0A}{!=aps$`!4WOhd>w`*7qK3NbllAOTe kVgtt@Oxed6J=xxmtQFv2paQ%#*}ysJ_OX74?*%XXe-*D?QUCw| diff --git a/include/filesystem_files_def.h b/include/filesystem_files_def.h index adf63be46..f199f9528 100644 --- a/include/filesystem_files_def.h +++ b/include/filesystem_files_def.h @@ -26,7 +26,7 @@ typedef enum NarcId NARC_itemtool_itemdata_item_icon = 18, NARC_a_0_1_9 = 19, NARC_poketool_icongra_poke_icon = 20, - NARC_a_0_2_1 = 21, + NARC_graphic_plist_gra = 21, NARC_a_0_2_2 = 22, NARC_a_0_2_3 = 23, NARC_a_0_2_4 = 24, diff --git a/include/party_menu.h b/include/party_menu.h index 249beec98..19a286c47 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -135,7 +135,7 @@ typedef enum PartyMonContextMenuItem { PARTY_MON_CONTEXT_MENU_SOFTBOILED, PARTY_MON_CONTEXT_MENU_MAX, - PARTY_MON_CONTEXT_MENU_FIELD_MOVES_BEGIN = PARTY_MON_CONTEXT_MENU_CUT, + PARTY_MON_CONTEXT_MENU_FIELD_MOVES_BEGIN = PARTY_MON_CONTEXT_MENU_CUT,PARTY_MON_CONTEXT_MENU_FIELD_MOVES_COUNT = PARTY_MON_CONTEXT_MENU_MAX - PARTY_MON_CONTEXT_MENU_FIELD_MOVES_BEGIN, PARTY_MON_CONTEXT_MENU_NUM_STRINGS = PARTY_MON_CONTEXT_MENU_CUT + MAX_MON_MOVES, } PartyMonContextMenuItem; @@ -372,21 +372,21 @@ typedef struct PartyMenuMonsDrawState { s16 unk_1E; // 846 s16 unk_20; // 848 u8 filler_22[2]; // alignment padding - Sprite *unk_24; // 84C + Sprite *iconSprite; // 84C Sprite *mainScreenIconSprite; // 850 u8 unk_2C; // 854 u8 active; // 855 } PartyMenuMonsDrawState; -typedef struct UnkPartyMenuSub_94C { - u16 unk_000[2][0x60]; - u16 unk_180[2][0x60]; - u8 unk_300[2]; - u8 unk_302[2]; - u8 unk_304; - u8 unk_305; - u8 unk_306; -} UnkPartyMenuSub_94C; +typedef struct PartyMenuSwapMonsData { + u16 bg2Tilemaps[2][0x60]; + u16 bg1Tilemaps[2][0x60]; + u8 slots[2]; + u8 directions[2]; + u8 active; + u8 state; + u8 xOffset; +} PartyMenuSwapMonsData; struct PartyMenuStruct { BgConfig *bgConfig; @@ -396,7 +396,7 @@ struct PartyMenuStruct { u16 unk_314[6 * 0x10]; u16 unk_3D4[6 * 0x10]; u16 unk_494[6 * 0x10]; - u16 unk_554[0x80]; + u16 hpBarPalettes[0x80]; PartyMenuArgs *args; //0x654 SpriteRenderer *spriteRenderer; SpriteGfxHandler *spriteGfxHandler; @@ -413,7 +413,7 @@ struct PartyMenuStruct { PartyMenuContextMenuCursor *contextMenuCursor; PartyMenuMonsDrawState monsDrawState[PARTY_SIZE]; //0x828 const UnkStruct_02020654 *unk_948; - UnkPartyMenuSub_94C unk_94C; + PartyMenuSwapMonsData swapMonsData; int (*itemUseCallback)(PartyMenuStruct *); int (*yesCallback)(PartyMenuStruct *); //0xc58 int (*noCallback)(PartyMenuStruct *); //0xc5c @@ -421,7 +421,7 @@ struct PartyMenuStruct { u8 unk_C61; u8 afterTextPrinterState; u8 softboiledDonorSlot:6; - u8 unk_C63_6:1; + u8 secondCursorActive:1; u8 cancelDisabled:1; u8 textPrinterId; u8 partyMonIndex; // 0xc65 diff --git a/include/unk_02082908.h b/include/unk_02082908.h index d78e98679..85e4b2bf5 100644 --- a/include/unk_02082908.h +++ b/include/unk_02082908.h @@ -3,6 +3,7 @@ #include "overlay_manager.h" #include "pm_string.h" +#include "options.h" extern const OVY_MGR_TEMPLATE _02102610; diff --git a/src/battle_arcade_game_board.c b/src/battle_arcade_game_board.c index b5601c85c..7e59a6feb 100644 --- a/src/battle_arcade_game_board.c +++ b/src/battle_arcade_game_board.c @@ -1314,10 +1314,10 @@ static void ov84_0223F4B4(GAME_BOARD_SUB_3E8 *work) { } static void ov84_0223F538(GAME_BOARD_SUB_3E8 *work) { - NARC *narc = NARC_New(NARC_a_0_2_1, HEAP_ID_GAME_BOARD); + NARC *narc = NARC_New(NARC_graphic_plist_gra, HEAP_ID_GAME_BOARD); work->resourceObj[2][GF_GFX_RES_TYPE_CHAR] = AddCharResObjFromOpenNarc(work->resourceMan[0], narc, sub_0207CA9C(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_GAME_BOARD); - work->resourceObj[2][GF_GFX_RES_TYPE_PLTT] = AddPlttResObjFromNarc(work->resourceMan[1], NARC_a_0_2_1, sub_0207CAA0(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 3, HEAP_ID_GAME_BOARD); + work->resourceObj[2][GF_GFX_RES_TYPE_PLTT] = AddPlttResObjFromNarc(work->resourceMan[1], NARC_graphic_plist_gra, sub_0207CAA0(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 3, HEAP_ID_GAME_BOARD); work->resourceObj[2][GF_GFX_RES_TYPE_CELL] = AddCellOrAnimResObjFromOpenNarc(work->resourceMan[2], narc, sub_0207CAA4(), FALSE, 2, GF_GFX_RES_TYPE_CELL, HEAP_ID_GAME_BOARD); work->resourceObj[2][GF_GFX_RES_TYPE_ANIM] = AddCellOrAnimResObjFromOpenNarc(work->resourceMan[3], narc, sub_0207CAA8(), FALSE, 2, GF_GFX_RES_TYPE_ANIM, HEAP_ID_GAME_BOARD); diff --git a/src/party_context_menu.c b/src/party_context_menu.c index 0cc9ff30c..5e2979275 100644 --- a/src/party_context_menu.c +++ b/src/party_context_menu.c @@ -576,13 +576,13 @@ void PartyMenu_DrawMonHpBarOnWindow(PartyMenuStruct *partyMenu, u8 partySlot) { return; case 4: case 3: - BG_LoadPlttData(1, &partyMenu->unk_554[9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); + BG_LoadPlttData(1, &partyMenu->hpBarPalettes[9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); break; case 2: - BG_LoadPlttData(1, &partyMenu->unk_554[16 + 9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); + BG_LoadPlttData(1, &partyMenu->hpBarPalettes[16 + 9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); break; case 1: - BG_LoadPlttData(1, &partyMenu->unk_554[32 + 9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); + BG_LoadPlttData(1, &partyMenu->hpBarPalettes[32 + 9], 4, (window->paletteNum * 16 + 9) * sizeof(u16)); break; } diff --git a/src/party_menu.c b/src/party_menu.c index fd5444ce1..e1d84b18c 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -28,6 +28,7 @@ #include "vram_transfer_manager.h" #include "constants/moves.h" #include "msgdata/msg/msg_0300.h" +#include "graphic/plist_gra.naix" FS_EXTERN_OVERLAY(OVY_94); @@ -98,7 +99,7 @@ static u8 sub_0207B23C(PartyMenuStruct *partyMenu, u8 *buf); static u8 sub_0207B32C(PartyMenuStruct *partyMenu, u8 *buf); static u8 sub_0207B28C(PartyMenuStruct *partyMenu, u8 *buf); static u8 sub_0207B2DC(PartyMenuStruct *partyMenu, u8 *buf); -static u8 sub_0207BCC0(u16 move); +static u8 MoveId_GetFieldEffectId(u16 move); static int PartyMenu_SoftboiledTryTargetCheck(PartyMenuStruct *partyMenu); static void sub_0207B51C(PartyMenuStruct *partyMenu, u8 selection, BOOL active); static u8 sub_0207B600(PartyMenuStruct *partyMenu); @@ -195,7 +196,7 @@ static const UnkStruct_02020654 _021014CC[8] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, }; -static const u16 sFieldMoves[16] = { +static const u16 sFieldMoves[PARTY_MON_CONTEXT_MENU_FIELD_MOVES_COUNT] = { MOVE_CUT, MOVE_FLY, MOVE_SURF, @@ -230,7 +231,7 @@ static BOOL PartyMenuApp_Init(OVY_MANAGER *manager, int *pState) { SetKeyRepeatTimers(4, 8); CreateHeap(HEAP_ID_3, HEAP_ID_PARTY_MENU, 0x30000); - narc = NARC_New(NARC_a_0_2_1, HEAP_ID_PARTY_MENU); + narc = NARC_New(NARC_graphic_plist_gra, HEAP_ID_PARTY_MENU); partyMenu = sub_02079BD8(manager); BeginNormalPaletteFade(2, 3, 3, RGB_BLACK, 6, 1, HEAP_ID_PARTY_MENU); sub_02079CE4(partyMenu); @@ -912,10 +913,10 @@ static void sub_02079A0C(GF3DVramMan *gf3dVramMan) { } static void sub_02079A14(PartyMenuStruct *partyMenu, NARC *narc) { - GfGfxLoader_LoadCharDataFromOpenNarc(narc, 15, partyMenu->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadScrnDataFromOpenNarc(narc, 17, partyMenu->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000015_NCGR, partyMenu->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadScrnDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000017_NSCR, partyMenu->bgConfig, GF_BG_LYR_MAIN_3, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - void *nclrFile = NARC_AllocAndReadWholeMember(narc, 16, HEAP_ID_PARTY_MENU); + void *nclrFile = NARC_AllocAndReadWholeMember(narc, NARC_plist_gra_plist_gra_00000016_NCLR, HEAP_ID_PARTY_MENU); NNSG2dPaletteData *plttData; NNS_G2dGetUnpackedPaletteData(nclrFile, &plttData); u16 *plttBuf = AllocFromHeap(HEAP_ID_PARTY_MENU, plttData->szByte); @@ -923,20 +924,20 @@ static void sub_02079A14(PartyMenuStruct *partyMenu, NARC *narc) { plttBuf[0] = RGB_BLACK; BG_LoadPlttData(GF_PAL_LOCATION_MAIN_OBJEXT, plttBuf, plttData->szByte, 0); FreeToHeap(plttBuf); - memcpy(partyMenu->unk_554, (u8 *)plttData->pRawData + 0x60, 0x100); + memcpy(partyMenu->hpBarPalettes, (u8 *)plttData->pRawData + 0x60, 0x100); FreeToHeap(nclrFile); LoadFontPal1(GF_PAL_LOCATION_MAIN_BG, (enum GFPalSlotOffset)0x1A0, HEAP_ID_PARTY_MENU); LoadFontPal1(GF_PAL_LOCATION_SUB_BG, (enum GFPalSlotOffset)0x40, HEAP_ID_PARTY_MENU); LoadUserFrameGfx1(partyMenu->bgConfig, GF_BG_LYR_MAIN_0, 1, 14, 0, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadCharDataFromOpenNarc(narc, 26, partyMenu->bgConfig, GF_BG_LYR_MAIN_0, 10, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000026_NCGR, partyMenu->bgConfig, GF_BG_LYR_MAIN_0, 10, 0, FALSE, HEAP_ID_PARTY_MENU); LoadUserFrameGfx2(partyMenu->bgConfig, GF_BG_LYR_MAIN_0, 42, 15, Options_GetFrame(partyMenu->args->options), HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadCharDataFromOpenNarc(narc, 3, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_GXLoadPalFromOpenNarc(narc, 4, GF_PAL_LOCATION_SUB_BG, (enum GFPalSlotOffset)0x20, 0x20, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadCharDataFromOpenNarc(narc, 12, partyMenu->bgConfig, GF_BG_LYR_SUB_1, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadScrnDataFromOpenNarc(narc, 14, partyMenu->bgConfig, GF_BG_LYR_SUB_1, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadCharDataFromOpenNarc(narc, 24, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_LoadScrnDataFromOpenNarc(narc, 25, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); - GfGfxLoader_GXLoadPalFromOpenNarc(narc, 13, GF_PAL_LOCATION_SUB_BG, (enum GFPalSlotOffset)0, 0x40, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000003_NCGR, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_GXLoadPalFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000004_NCLR, GF_PAL_LOCATION_SUB_BG, (enum GFPalSlotOffset)0x20, 0x20, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000012_NCGR, partyMenu->bgConfig, GF_BG_LYR_SUB_1, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadScrnDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000014_NSCR, partyMenu->bgConfig, GF_BG_LYR_SUB_1, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000024_NCGR, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_LoadScrnDataFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000025_NSCR, partyMenu->bgConfig, GF_BG_LYR_SUB_0, 0, 0, FALSE, HEAP_ID_PARTY_MENU); + GfGfxLoader_GXLoadPalFromOpenNarc(narc, NARC_plist_gra_plist_gra_00000013_NCLR, GF_PAL_LOCATION_SUB_BG, (enum GFPalSlotOffset)0, 0x40, HEAP_ID_PARTY_MENU); sub_0207CAAC(HEAP_ID_PARTY_MENU, partyMenu->unk_314, partyMenu->unk_3D4, partyMenu->unk_494); BG_SetMaskColor(GF_BG_LYR_MAIN_0, RGB_BLACK); BG_SetMaskColor(GF_BG_LYR_SUB_0, RGB_BLACK); @@ -1262,7 +1263,7 @@ static void sub_0207A780(PartyMenuStruct *partyMenu, u8 partySlot, s16 x, s16 y) void sub_0207A7F4(PartyMenuStruct *partyMenu, u8 partySlot) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partySlot); u8 paletteSlot; - if (partyMenu->unk_C63_6 == TRUE && (partySlot == partyMenu->partyMonIndex || partySlot == partyMenu->softboiledDonorSlot)) { + if (partyMenu->secondCursorActive == TRUE && (partySlot == partyMenu->partyMonIndex || partySlot == partyMenu->softboiledDonorSlot)) { paletteSlot = 7; } else { if (partySlot == partyMenu->partyMonIndex) { @@ -1276,7 +1277,7 @@ void sub_0207A7F4(PartyMenuStruct *partyMenu, u8 partySlot) { paletteSlot += 1; } } - BG_LoadPlttData(GF_BG_LYR_MAIN_2, &partyMenu->unk_554[16 * paletteSlot], 0x10, (partySlot + 3) * 32); + BG_LoadPlttData(GF_BG_LYR_MAIN_2, &partyMenu->hpBarPalettes[16 * paletteSlot], 0x10, (partySlot + 3) * 32); } static BOOL sub_0207A880(PartyMenuStruct *partyMenu, u8 partySlot) { @@ -1571,35 +1572,35 @@ static u8 PartyMenu_HandleInput(PartyMenuStruct *partyMenu) { static void sub_0207AFC4(PartyMenuStruct *partyMenu) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_32], TRUE); u8 *buf = AllocFromHeap(HEAP_ID_PARTY_MENU, 8); - u8 r2; + u8 numItems; switch (partyMenu->args->context) { case PARTY_MENU_CONTEXT_0: - r2 = sub_0207B0B0(partyMenu, buf); + numItems = sub_0207B0B0(partyMenu, buf); break; case PARTY_MENU_CONTEXT_2: case PARTY_MENU_CONTEXT_17: - r2 = sub_0207B23C(partyMenu, buf); + numItems = sub_0207B23C(partyMenu, buf); break; case PARTY_MENU_CONTEXT_15: - r2 = sub_0207B1BC(partyMenu, buf); + numItems = sub_0207B1BC(partyMenu, buf); break; case PARTY_MENU_CONTEXT_18: - r2 = sub_0207B1C8(partyMenu, buf); + numItems = sub_0207B1C8(partyMenu, buf); break; case PARTY_MENU_CONTEXT_21: - r2 = sub_0207B32C(partyMenu, buf); + numItems = sub_0207B32C(partyMenu, buf); break; case PARTY_MENU_CONTEXT_22: - r2 = sub_0207B28C(partyMenu, buf); + numItems = sub_0207B28C(partyMenu, buf); break; case PARTY_MENU_CONTEXT_23: - r2 = sub_0207B2DC(partyMenu, buf); + numItems = sub_0207B2DC(partyMenu, buf); break; default: - r2 = sub_0207B200(partyMenu, buf); + numItems = sub_0207B200(partyMenu, buf); break; } - PartyMenu_OpenContextMenu(partyMenu, buf, r2); + PartyMenu_OpenContextMenu(partyMenu, buf, numItems); FreeToHeapExplicit(HEAP_ID_PARTY_MENU, buf); sub_0207D1C8(partyMenu); PartyMenu_PrintMessageOnWindow33(partyMenu, -1, TRUE); @@ -1609,7 +1610,7 @@ static void sub_0207AFC4(PartyMenuStruct *partyMenu) { static u8 sub_0207B0B0(PartyMenuStruct *partyMenu, u8 *buf) { Pokemon *pokemon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); u16 move; - u8 r4 = 0; + u8 fieldMoveIndex = 0; u8 i; u8 count = 0; u8 fieldEffect; @@ -1633,12 +1634,12 @@ static u8 sub_0207B0B0(PartyMenuStruct *partyMenu, u8 *buf) { if (move == MOVE_NONE) { break; } - fieldEffect = sub_0207BCC0(move); + fieldEffect = MoveId_GetFieldEffectId(move); if (fieldEffect != 0xFF) { buf[count] = fieldEffect; ++count; - PartyMenu_ContextMenuAddFieldMove(partyMenu, move, r4); - ++r4; + PartyMenu_ContextMenuAddFieldMove(partyMenu, move, fieldMoveIndex); + ++fieldMoveIndex; } } } else { @@ -2168,10 +2169,10 @@ static BOOL PartyMenu_Subtask_HandleContextMenuInput(PartyMenuStruct *partyMenu, return FALSE; } -static u8 sub_0207BCC0(u16 move) { - for (u8 i = 0; i < 16; ++i) { +static u8 MoveId_GetFieldEffectId(u16 move) { + for (u8 i = 0; i < PARTY_MON_CONTEXT_MENU_FIELD_MOVES_COUNT; ++i) { if (move == sFieldMoves[i]) { - return i + 16; + return i + PARTY_MON_CONTEXT_MENU_FIELD_MOVES_BEGIN; } } return 0xFF; @@ -2690,7 +2691,7 @@ void sub_0207CAAC(HeapID heapId, u16 *a1, u16 *a2, u16 *a3) { const u16 *src; u32 i; - pNscrFile = AllocAndReadWholeNarcMemberByIdPair(NARC_a_0_2_1, 22, heapId); + pNscrFile = AllocAndReadWholeNarcMemberByIdPair(NARC_graphic_plist_gra, NARC_plist_gra_plist_gra_00000022_NSCR, heapId); NNS_G2dGetUnpackedScreenData(pNscrFile, &screenData); src = (const u16 *)screenData->rawData; diff --git a/src/party_menu_list_items.c b/src/party_menu_list_items.c index 8b61794a8..a6b28152c 100644 --- a/src/party_menu_list_items.c +++ b/src/party_menu_list_items.c @@ -322,7 +322,7 @@ int sub_0207FAD4(PartyMenuStruct *partyMenu) { } static void PartyMonContextMenuAction_Switch(PartyMenuStruct *partyMenu, int *pState) { - partyMenu->unk_C63_6 = 1; + partyMenu->secondCursorActive = 1; partyMenu->softboiledDonorSlot = partyMenu->partyMonIndex; thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); @@ -340,7 +340,7 @@ static void PartyMonContextMenuAction_Switch(PartyMenuStruct *partyMenu, int *pS } void sub_0207FBC8(PartyMenuStruct *partyMenu) { - partyMenu->unk_C63_6 = 0; + partyMenu->secondCursorActive = 0; Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_SWITCH_MON_CURSOR], FALSE); if (partyMenu->partyMonIndex < PARTY_SIZE) { sub_0207A7F4(partyMenu, partyMenu->partyMonIndex); @@ -358,83 +358,83 @@ void sub_0207FC1C(PartyMenuStruct *partyMenu) { s8 sp4; s8 sp0; u16 i; - partyMenu->unk_94C.unk_300[0] = partyMenu->partyMonIndex; - partyMenu->unk_94C.unk_300[1] = partyMenu->softboiledDonorSlot; - partyMenu->unk_94C.unk_304 = 1; - partyMenu->unk_94C.unk_306 = 0; - partyMenu->unk_94C.unk_305 = 0; - if (partyMenu->unk_94C.unk_300[0] & 1) { - partyMenu->unk_94C.unk_302[0] = 1; + partyMenu->swapMonsData.slots[0] = partyMenu->partyMonIndex; + partyMenu->swapMonsData.slots[1] = partyMenu->softboiledDonorSlot; + partyMenu->swapMonsData.active = 1; + partyMenu->swapMonsData.xOffset = 0; + partyMenu->swapMonsData.state = 0; + if (partyMenu->swapMonsData.slots[0] & 1) { + partyMenu->swapMonsData.directions[0] = 1; } else { - partyMenu->unk_94C.unk_302[0] = 0; + partyMenu->swapMonsData.directions[0] = 0; } - if (partyMenu->unk_94C.unk_300[1] & 1) { - partyMenu->unk_94C.unk_302[1] = 1; + if (partyMenu->swapMonsData.slots[1] & 1) { + partyMenu->swapMonsData.directions[1] = 1; } else { - partyMenu->unk_94C.unk_302[1] = 0; + partyMenu->swapMonsData.directions[1] = 0; } bg2Tilemap = GetBgTilemapBuffer(partyMenu->bgConfig, GF_BG_LYR_MAIN_2); bg1Tilemap = GetBgTilemapBuffer(partyMenu->bgConfig, GF_BG_LYR_MAIN_1); - spC = partyMenu->monsDrawState[partyMenu->unk_94C.unk_300[0]].unk_15; - sp8 = partyMenu->monsDrawState[partyMenu->unk_94C.unk_300[0]].unk_14; - sp4 = partyMenu->monsDrawState[partyMenu->unk_94C.unk_300[1]].unk_15; - sp0 = partyMenu->monsDrawState[partyMenu->unk_94C.unk_300[1]].unk_14; + spC = partyMenu->monsDrawState[partyMenu->swapMonsData.slots[0]].unk_15; + sp8 = partyMenu->monsDrawState[partyMenu->swapMonsData.slots[0]].unk_14; + sp4 = partyMenu->monsDrawState[partyMenu->swapMonsData.slots[1]].unk_15; + sp0 = partyMenu->monsDrawState[partyMenu->swapMonsData.slots[1]].unk_14; for (i = 0; i < PARTY_SIZE; ++i) { - memcpy(&partyMenu->unk_94C.unk_000[0][i * 16], &bg2Tilemap[sp8 + (spC + i) * 32], 0x20); - memcpy(&partyMenu->unk_94C.unk_180[0][i * 16], &bg1Tilemap[sp8 + (spC + i) * 32], 0x20); - memcpy(&partyMenu->unk_94C.unk_000[1][i * 16], &bg2Tilemap[sp0 + (sp4 + i) * 32], 0x20); - memcpy(&partyMenu->unk_94C.unk_180[1][i * 16], &bg1Tilemap[sp0 + (sp4 + i) * 32], 0x20); + memcpy(&partyMenu->swapMonsData.bg2Tilemaps[0][i * 16], &bg2Tilemap[sp8 + (spC + i) * 32], 0x20); + memcpy(&partyMenu->swapMonsData.bg1Tilemaps[0][i * 16], &bg1Tilemap[sp8 + (spC + i) * 32], 0x20); + memcpy(&partyMenu->swapMonsData.bg2Tilemaps[1][i * 16], &bg2Tilemap[sp0 + (sp4 + i) * 32], 0x20); + memcpy(&partyMenu->swapMonsData.bg1Tilemaps[1][i * 16], &bg1Tilemap[sp0 + (sp4 + i) * 32], 0x20); } Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], FALSE); Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_SWITCH_MON_CURSOR], FALSE); } BOOL sub_0207FD6C(PartyMenuStruct *partyMenu) { - UnkPartyMenuSub_94C *r4 = &partyMenu->unk_94C; + PartyMenuSwapMonsData *r4 = &partyMenu->swapMonsData; - switch (r4->unk_305) { + switch (r4->state) { case 0: PlaySE(SEQ_SE_DP_POKELIST_001); PartyMenu_SetTopScreenSelectionPanelVisibility(partyMenu, FALSE); - r4->unk_305 = 1; + r4->state = 1; break; case 1: - ++r4->unk_306; + ++r4->xOffset; PartyMenu_SwapMonsPanelsStep(partyMenu, 0); PartyMenu_SwapMonsPanelsStep(partyMenu, 1); - PartyMenu_SwapMonsSpritesStep(partyMenu, 0, r4->unk_302[0]); - PartyMenu_SwapMonsSpritesStep(partyMenu, 1, r4->unk_302[1]); + PartyMenu_SwapMonsSpritesStep(partyMenu, 0, r4->directions[0]); + PartyMenu_SwapMonsSpritesStep(partyMenu, 1, r4->directions[1]); ScheduleBgTilemapBufferTransfer(partyMenu->bgConfig, GF_BG_LYR_MAIN_2); ScheduleBgTilemapBufferTransfer(partyMenu->bgConfig, GF_BG_LYR_MAIN_1); - if (r4->unk_306 == 16) { - r4->unk_305 = 2; + if (r4->xOffset == 16) { + r4->state = 2; } break; case 2: PartyMenu_SwapMonsData(partyMenu); PlaySE(SEQ_SE_DP_POKELIST_001); - r4->unk_305 = 3; + r4->state = 3; break; case 3: - --r4->unk_306; + --r4->xOffset; PartyMenu_SwapMonsPanelsStep(partyMenu, 0); PartyMenu_SwapMonsPanelsStep(partyMenu, 1); - PartyMenu_SwapMonsSpritesStep(partyMenu, 0, r4->unk_302[0] ^ 1); - PartyMenu_SwapMonsSpritesStep(partyMenu, 1, r4->unk_302[1] ^ 1); + PartyMenu_SwapMonsSpritesStep(partyMenu, 0, r4->directions[0] ^ 1); + PartyMenu_SwapMonsSpritesStep(partyMenu, 1, r4->directions[1] ^ 1); ScheduleBgTilemapBufferTransfer(partyMenu->bgConfig, GF_BG_LYR_MAIN_2); ScheduleBgTilemapBufferTransfer(partyMenu->bgConfig, GF_BG_LYR_MAIN_1); - if (r4->unk_306 == 0) { - r4->unk_305 = 4; + if (r4->xOffset == 0) { + r4->state = 4; } break; case 4: - Party_SwapSlots(partyMenu->args->party, r4->unk_300[0], r4->unk_300[1]); + Party_SwapSlots(partyMenu->args->party, r4->slots[0], r4->slots[1]); Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], TRUE); - r4->unk_304 = 0; - partyMenu->unk_C63_6 = 0; + r4->active = 0; + partyMenu->secondCursorActive = 0; sub_0207A7F4(partyMenu, partyMenu->partyMonIndex); sub_0207A7F4(partyMenu, partyMenu->softboiledDonorSlot); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00029, FALSE); @@ -445,105 +445,105 @@ BOOL sub_0207FD6C(PartyMenuStruct *partyMenu) { } static void PartyMenu_SwapMonsPanelsStep(PartyMenuStruct *partyMenu, u8 slot) { - UnkPartyMenuSub_94C *r4 = &partyMenu->unk_94C; - s8 x = partyMenu->monsDrawState[r4->unk_300[slot]].unk_14; - s8 y = partyMenu->monsDrawState[r4->unk_300[slot]].unk_15; + PartyMenuSwapMonsData *r4 = &partyMenu->swapMonsData; + s8 x = partyMenu->monsDrawState[r4->slots[slot]].unk_14; + s8 y = partyMenu->monsDrawState[r4->slots[slot]].unk_15; FillBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_2, 0, x, y, 16, 6, TILEMAP_FILL_KEEP_PAL); FillBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_1, 0, x, y, 16, 6, TILEMAP_FILL_KEEP_PAL); - if (r4->unk_302[slot] == 0) { - CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_2, x, y, 16 - r4->unk_306, 6, r4->unk_000[slot], r4->unk_306, 0, 16, 6); - CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_1, x, y, 16 - r4->unk_306, 6, r4->unk_180[slot], r4->unk_306, 0, 16, 6); + if (r4->directions[slot] == 0) { + CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_2, x, y, 16 - r4->xOffset, 6, r4->bg2Tilemaps[slot], r4->xOffset, 0, 16, 6); + CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_1, x, y, 16 - r4->xOffset, 6, r4->bg1Tilemaps[slot], r4->xOffset, 0, 16, 6); } else { - CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_2, x + r4->unk_306, y, 16 - r4->unk_306, 6, r4->unk_000[slot], 0, 0, 16, 6); - CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_1, x + r4->unk_306, y, 16 - r4->unk_306, 6, r4->unk_180[slot], 0, 0, 16, 6); + CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_2, x + r4->xOffset, y, 16 - r4->xOffset, 6, r4->bg2Tilemaps[slot], 0, 0, 16, 6); + CopyToBgTilemapRect(partyMenu->bgConfig, GF_BG_LYR_MAIN_1, x + r4->xOffset, y, 16 - r4->xOffset, 6, r4->bg1Tilemaps[slot], 0, 0, 16, 6); } } static void PartyMenu_SwapMonsSpritesStep(PartyMenuStruct *partyMenu, u8 slot, u8 direction) { - UnkPartyMenuSub_94C *r4 = &partyMenu->unk_94C; + PartyMenuSwapMonsData *r4 = &partyMenu->swapMonsData; s16 x, y; - Sprite_GetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_BALL + r4->unk_300[slot]], &x, &y); + Sprite_GetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_BALL + r4->slots[slot]], &x, &y); if (direction == 0) { - partyMenu->monsDrawState[r4->unk_300[slot]].unk_16 -= 8; - partyMenu->monsDrawState[r4->unk_300[slot]].unk_1A -= 8; - partyMenu->monsDrawState[r4->unk_300[slot]].unk_1E -= 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_16 -= 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_1A -= 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_1E -= 8; x -= 8; } else { - partyMenu->monsDrawState[r4->unk_300[slot]].unk_16 += 8; - partyMenu->monsDrawState[r4->unk_300[slot]].unk_1A += 8; - partyMenu->monsDrawState[r4->unk_300[slot]].unk_1E += 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_16 += 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_1A += 8; + partyMenu->monsDrawState[r4->slots[slot]].unk_1E += 8; x += 8; } - Sprite_SetPositionXY(partyMenu->monsDrawState[r4->unk_300[slot]].unk_24, partyMenu->monsDrawState[r4->unk_300[slot]].unk_16, partyMenu->monsDrawState[r4->unk_300[slot]].unk_18); - Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_10 + r4->unk_300[slot]], partyMenu->monsDrawState[r4->unk_300[slot]].unk_1A, partyMenu->monsDrawState[r4->unk_300[slot]].unk_1C); - Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_HELD_ITEM_ICON + r4->unk_300[slot]], partyMenu->monsDrawState[r4->unk_300[slot]].unk_1E, partyMenu->monsDrawState[r4->unk_300[slot]].unk_20); - Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CAPSULE_ICON + r4->unk_300[slot]], partyMenu->monsDrawState[r4->unk_300[slot]].unk_1E + 8, partyMenu->monsDrawState[r4->unk_300[slot]].unk_20); - Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_BALL + r4->unk_300[slot]], x, y); + Sprite_SetPositionXY(partyMenu->monsDrawState[r4->slots[slot]].iconSprite, partyMenu->monsDrawState[r4->slots[slot]].unk_16, partyMenu->monsDrawState[r4->slots[slot]].unk_18); + Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_10 + r4->slots[slot]], partyMenu->monsDrawState[r4->slots[slot]].unk_1A, partyMenu->monsDrawState[r4->slots[slot]].unk_1C); + Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_HELD_ITEM_ICON + r4->slots[slot]], partyMenu->monsDrawState[r4->slots[slot]].unk_1E, partyMenu->monsDrawState[r4->slots[slot]].unk_20); + Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CAPSULE_ICON + r4->slots[slot]], partyMenu->monsDrawState[r4->slots[slot]].unk_1E + 8, partyMenu->monsDrawState[r4->slots[slot]].unk_20); + Sprite_SetPositionXY(partyMenu->sprites[PARTY_MENU_SPRITE_ID_BALL + r4->slots[slot]], x, y); } static void PartyMenu_SwapMonsData(PartyMenuStruct *partyMenu) { - UnkPartyMenuSub_94C *r4 = &partyMenu->unk_94C; + PartyMenuSwapMonsData *r4 = &partyMenu->swapMonsData; PartyMenuMonsDrawState *monBuf; s16 pos; monBuf = AllocFromHeap(HEAP_ID_PARTY_MENU, sizeof(PartyMenuMonsDrawState)); - *monBuf = partyMenu->monsDrawState[r4->unk_300[0]]; - partyMenu->monsDrawState[r4->unk_300[0]] = partyMenu->monsDrawState[r4->unk_300[1]]; - partyMenu->monsDrawState[r4->unk_300[1]] = *monBuf; + *monBuf = partyMenu->monsDrawState[r4->slots[0]]; + partyMenu->monsDrawState[r4->slots[0]] = partyMenu->monsDrawState[r4->slots[1]]; + partyMenu->monsDrawState[r4->slots[1]] = *monBuf; FreeToHeapExplicit(HEAP_ID_PARTY_MENU, monBuf); - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_16; - partyMenu->monsDrawState[r4->unk_300[0]].unk_16 = partyMenu->monsDrawState[r4->unk_300[1]].unk_16; - partyMenu->monsDrawState[r4->unk_300[1]].unk_16 = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_18; - partyMenu->monsDrawState[r4->unk_300[0]].unk_18 = partyMenu->monsDrawState[r4->unk_300[1]].unk_18; - partyMenu->monsDrawState[r4->unk_300[1]].unk_18 = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_16; + partyMenu->monsDrawState[r4->slots[0]].unk_16 = partyMenu->monsDrawState[r4->slots[1]].unk_16; + partyMenu->monsDrawState[r4->slots[1]].unk_16 = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_18; + partyMenu->monsDrawState[r4->slots[0]].unk_18 = partyMenu->monsDrawState[r4->slots[1]].unk_18; + partyMenu->monsDrawState[r4->slots[1]].unk_18 = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_1A; - partyMenu->monsDrawState[r4->unk_300[0]].unk_1A = partyMenu->monsDrawState[r4->unk_300[1]].unk_1A; - partyMenu->monsDrawState[r4->unk_300[1]].unk_1A = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_1C; - partyMenu->monsDrawState[r4->unk_300[0]].unk_1C = partyMenu->monsDrawState[r4->unk_300[1]].unk_1C; - partyMenu->monsDrawState[r4->unk_300[1]].unk_1C = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_1A; + partyMenu->monsDrawState[r4->slots[0]].unk_1A = partyMenu->monsDrawState[r4->slots[1]].unk_1A; + partyMenu->monsDrawState[r4->slots[1]].unk_1A = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_1C; + partyMenu->monsDrawState[r4->slots[0]].unk_1C = partyMenu->monsDrawState[r4->slots[1]].unk_1C; + partyMenu->monsDrawState[r4->slots[1]].unk_1C = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_1E; - partyMenu->monsDrawState[r4->unk_300[0]].unk_1E = partyMenu->monsDrawState[r4->unk_300[1]].unk_1E; - partyMenu->monsDrawState[r4->unk_300[1]].unk_1E = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_20; - partyMenu->monsDrawState[r4->unk_300[0]].unk_20 = partyMenu->monsDrawState[r4->unk_300[1]].unk_20; - partyMenu->monsDrawState[r4->unk_300[1]].unk_20 = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_1E; + partyMenu->monsDrawState[r4->slots[0]].unk_1E = partyMenu->monsDrawState[r4->slots[1]].unk_1E; + partyMenu->monsDrawState[r4->slots[1]].unk_1E = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_20; + partyMenu->monsDrawState[r4->slots[0]].unk_20 = partyMenu->monsDrawState[r4->slots[1]].unk_20; + partyMenu->monsDrawState[r4->slots[1]].unk_20 = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_14; - partyMenu->monsDrawState[r4->unk_300[0]].unk_14 = partyMenu->monsDrawState[r4->unk_300[1]].unk_14; - partyMenu->monsDrawState[r4->unk_300[1]].unk_14 = pos; - pos = partyMenu->monsDrawState[r4->unk_300[0]].unk_15; - partyMenu->monsDrawState[r4->unk_300[0]].unk_15 = partyMenu->monsDrawState[r4->unk_300[1]].unk_15; - partyMenu->monsDrawState[r4->unk_300[1]].unk_15 = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_14; + partyMenu->monsDrawState[r4->slots[0]].unk_14 = partyMenu->monsDrawState[r4->slots[1]].unk_14; + partyMenu->monsDrawState[r4->slots[1]].unk_14 = pos; + pos = partyMenu->monsDrawState[r4->slots[0]].unk_15; + partyMenu->monsDrawState[r4->slots[0]].unk_15 = partyMenu->monsDrawState[r4->slots[1]].unk_15; + partyMenu->monsDrawState[r4->slots[1]].unk_15 = pos; - sub_0207D5DC(partyMenu, r4->unk_300[0]); - sub_0207D5DC(partyMenu, r4->unk_300[1]); - PartyMenu_CommitPartyMonPanelWindowsToVram_NotInVBlank(partyMenu, r4->unk_300[0]); - PartyMenu_CommitPartyMonPanelWindowsToVram_NotInVBlank(partyMenu, r4->unk_300[1]); + sub_0207D5DC(partyMenu, r4->slots[0]); + sub_0207D5DC(partyMenu, r4->slots[1]); + PartyMenu_CommitPartyMonPanelWindowsToVram_NotInVBlank(partyMenu, r4->slots[0]); + PartyMenu_CommitPartyMonPanelWindowsToVram_NotInVBlank(partyMenu, r4->slots[1]); PartyMenu_RedrawMonHpBarAfterSwap(partyMenu, 0); PartyMenu_RedrawMonHpBarAfterSwap(partyMenu, 1); - PartyMenu_DrawMonStatusIcon(partyMenu, r4->unk_300[0], partyMenu->monsDrawState[r4->unk_300[0]].status); - PartyMenu_DrawMonStatusIcon(partyMenu, r4->unk_300[1], partyMenu->monsDrawState[r4->unk_300[1]].status); - PartyMenu_DrawMonHeldItemIcon(partyMenu, r4->unk_300[0], partyMenu->monsDrawState[r4->unk_300[0]].heldItem); - PartyMenu_DrawMonHeldItemIcon(partyMenu, r4->unk_300[1], partyMenu->monsDrawState[r4->unk_300[1]].heldItem); - PartyMenu_DrawMonCapsuleIcon(partyMenu, r4->unk_300[0]); - PartyMenu_DrawMonCapsuleIcon(partyMenu, r4->unk_300[1]); + PartyMenu_DrawMonStatusIcon(partyMenu, r4->slots[0], partyMenu->monsDrawState[r4->slots[0]].status); + PartyMenu_DrawMonStatusIcon(partyMenu, r4->slots[1], partyMenu->monsDrawState[r4->slots[1]].status); + PartyMenu_DrawMonHeldItemIcon(partyMenu, r4->slots[0], partyMenu->monsDrawState[r4->slots[0]].heldItem); + PartyMenu_DrawMonHeldItemIcon(partyMenu, r4->slots[1], partyMenu->monsDrawState[r4->slots[1]].heldItem); + PartyMenu_DrawMonCapsuleIcon(partyMenu, r4->slots[0]); + PartyMenu_DrawMonCapsuleIcon(partyMenu, r4->slots[1]); } static void PartyMenu_RedrawMonHpBarAfterSwap(PartyMenuStruct *partyMenu, u8 slot) { - UnkPartyMenuSub_94C *r4 = &partyMenu->unk_94C; - u16 *r5 = r4->unk_000[slot]; + PartyMenuSwapMonsData *r4 = &partyMenu->swapMonsData; + u16 *r5 = r4->bg2Tilemaps[slot]; const u16 *r3 = sub_0207A16C(partyMenu); u16 color; u16 i; - if (partyMenu->monsDrawState[r4->unk_300[slot]].isEgg == TRUE) { + if (partyMenu->monsDrawState[r4->slots[slot]].isEgg == TRUE) { for (i = 0; i < 9; ++i) { color = r5[0x36 + i] & 0xF000; r5[0x36 + i] = color | 0x04B; @@ -806,7 +806,7 @@ static int sub_02080A58(PartyMenuStruct *partyMenu) { PartyMenu_PrintMessageOnWindow34(partyMenu, msg_0300_00127, TRUE);partyMenu->afterTextPrinterState = PARTY_MENU_STATE_3; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } - partyMenu->unk_C63_6 = 1; + partyMenu->secondCursorActive = 1; partyMenu->softboiledDonorSlot = partyMenu->partyMonIndex; thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); s16 x, y; diff --git a/src/party_menu_sprites.c b/src/party_menu_sprites.c index 4d9527877..6cea7491e 100644 --- a/src/party_menu_sprites.c +++ b/src/party_menu_sprites.c @@ -6,8 +6,8 @@ #include "vram_transfer_manager.h" #include "data/resdat.naix" -void sub_0207F0FC(Sprite *sprite, u8 seqNo); -int sub_0207F11C(PartyMenuMonsDrawState *monDraw); +static void sub_0207F0FC(Sprite *sprite, u8 seqNo); +static int sub_0207F11C(PartyMenuMonsDrawState *monDraw); static const UnkStruct_0200D2B4 sSpriteTemplates[24] = { { @@ -340,7 +340,7 @@ void sub_0207EBE4(PartyMenuStruct *partyMenu, u8 partySlot, u16 x, u16 y, NARC * sp1C.unk_1C = 0; sp1C.unk_20 = 0; sp1C.unk_24 = 0; - partyMenu->monsDrawState[partySlot].unk_24 = SpriteRenderer_CreateSprite(partyMenu->spriteRenderer, partyMenu->spriteGfxHandler, &sp1C); + partyMenu->monsDrawState[partySlot].iconSprite = SpriteRenderer_CreateSprite(partyMenu->spriteRenderer, partyMenu->spriteGfxHandler, &sp1C); sp1C.whichScreen = NNS_G2D_VRAM_TYPE_2DMAIN; sp1C.unk_10 = GetMonIconPaletteEx(partyMenu->monsDrawState[partySlot].species, partyMenu->monsDrawState[partySlot].form, isEgg) + 1; sp1C.x = x; @@ -362,7 +362,7 @@ void sub_0207ECE0(PartyMenuStruct *partyMenu, u8 partySlot) { species = GetMonData(mon, MON_DATA_SPECIES, NULL); form = GetMonData(mon, MON_DATA_FORM, NULL); narc = NARC_New(NARC_poketool_icongra_poke_icon, HEAP_ID_PARTY_MENU); - imageLocation = NNS_G2dGetImageLocation(Sprite_GetImageProxy(partyMenu->monsDrawState[partySlot].unk_24), NNS_G2D_VRAM_TYPE_2DMAIN); + imageLocation = NNS_G2dGetImageLocation(Sprite_GetImageProxy(partyMenu->monsDrawState[partySlot].iconSprite), NNS_G2D_VRAM_TYPE_2DMAIN); ncgrFile = GfGfxLoader_LoadFromOpenNarc(narc, Pokemon_GetIconNaix(mon), FALSE, HEAP_ID_PARTY_MENU, TRUE); if (NNS_G2dGetUnpackedCharacterData(ncgrFile, &pCharData)) { DC_FlushRange(pCharData->pRawData, pCharData->szByte); @@ -372,7 +372,7 @@ void sub_0207ECE0(PartyMenuStruct *partyMenu, u8 partySlot) { GXS_LoadOBJ(pCharData->pRawData, subImageLocation, pCharData->szByte); } FreeToHeap(ncgrFile); - thunk_Sprite_SetPalIndex(partyMenu->monsDrawState[partySlot].unk_24, GetMonIconPaletteEx(species, form, FALSE) + 3); + thunk_Sprite_SetPalIndex(partyMenu->monsDrawState[partySlot].iconSprite, GetMonIconPaletteEx(species, form, FALSE) + 3); thunk_Sprite_SetPalIndex(partyMenu->monsDrawState[partySlot].mainScreenIconSprite, GetMonIconPaletteEx(species, form, FALSE) + 1); NARC_Delete(narc); } @@ -476,14 +476,14 @@ void PartyMenu_DrawMonCapsuleIcon(PartyMenuStruct *partyMenu, u8 partySlot) { } } -void sub_0207F0FC(Sprite *sprite, u8 seqNo) { +static void sub_0207F0FC(Sprite *sprite, u8 seqNo) { if (seqNo != Get2dSpriteCurrentAnimSeqNo(sprite)) { Sprite_SetAnimCtrlCurrentFrame(sprite, 0); Set2dSpriteAnimSeqNo(sprite, seqNo); } } -int sub_0207F11C(PartyMenuMonsDrawState *monDraw) { +static int sub_0207F11C(PartyMenuMonsDrawState *monDraw) { if (monDraw->hp == 0) { return 0; } @@ -512,22 +512,22 @@ void sub_0207F178(PartyMenuStruct *partyMenu) { for (i = 0; i < 6; ++i) { monDraw = &partyMenu->monsDrawState[i]; if (monDraw->active) { - int r7; - if (partyMenu->unk_94C.unk_304 == 1 && (partyMenu->unk_94C.unk_300[0] == i || partyMenu->unk_94C.unk_300[1] == i)) { - r7 = 0; + int animSeqNo; + if (partyMenu->swapMonsData.active == 1 && (partyMenu->swapMonsData.slots[0] == i || partyMenu->swapMonsData.slots[1] == i)) { + animSeqNo = 0; } else { - r7 = sub_0207F11C(monDraw); + animSeqNo = sub_0207F11C(monDraw); } - sub_0207F0FC(monDraw->unk_24, r7); - Sprite_TickCellOrMulticellAnimation(monDraw->unk_24, FX32_ONE); - if (partyMenu->partyMonIndex == i && r7 != 0 && r7 != 5) { - if (Sprite_GetAnimCtrlCurrentFrame(monDraw->unk_24) == 0) { - Sprite_SetPositionXY(monDraw->unk_24, monDraw->unk_16, monDraw->unk_18 - 3); + sub_0207F0FC(monDraw->iconSprite, animSeqNo); + Sprite_TickCellOrMulticellAnimation(monDraw->iconSprite, FX32_ONE); + if (partyMenu->partyMonIndex == i && animSeqNo != 0 && animSeqNo != 5) { + if (Sprite_GetAnimCtrlCurrentFrame(monDraw->iconSprite) == 0) { + Sprite_SetPositionXY(monDraw->iconSprite, monDraw->unk_16, monDraw->unk_18 - 3); } else { - Sprite_SetPositionXY(monDraw->unk_24, monDraw->unk_16, monDraw->unk_18 + 1); + Sprite_SetPositionXY(monDraw->iconSprite, monDraw->unk_16, monDraw->unk_18 + 1); } } else { - Sprite_SetPositionXY(monDraw->unk_24, monDraw->unk_16, monDraw->unk_18); + Sprite_SetPositionXY(monDraw->iconSprite, monDraw->unk_16, monDraw->unk_18); } } }