mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-06-02 21:54:45 -05:00
documentation, 3
This commit is contained in:
parent
4ffacbe6d1
commit
e9ce2988e3
Binary file not shown.
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "overlay_manager.h"
|
||||
#include "pm_string.h"
|
||||
#include "options.h"
|
||||
|
||||
extern const OVY_MGR_TEMPLATE _02102610;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user