mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
Document Pokedex Forms Subscreen (#815)
This commit is contained in:
parent
9f9ecd01b5
commit
d12c696ff0
12
include/applications/pokedex/formsub.h
Normal file
12
include/applications/pokedex/formsub.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef POKEPLATINUM_POKEDEX_FORMSUB_H
|
||||
#define POKEPLATINUM_POKEDEX_FORMSUB_H
|
||||
|
||||
#include "applications/pokedex/pokedex_app.h"
|
||||
#include "applications/pokedex/struct_ov21_021E68F4.h"
|
||||
|
||||
#include "heap.h"
|
||||
|
||||
void FormSub_Init(PokedexScreenManager *screenMan, PokedexApp *pokedexApp, enum HeapID heapID);
|
||||
void FormSub_Free(PokedexScreenManager *screenMan);
|
||||
|
||||
#endif // POKEPLATINUM_POKEDEX_FORMSUB_H
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#ifndef POKEPLATINUM_OV21_021E8484_H
|
||||
#define POKEPLATINUM_OV21_021E8484_H
|
||||
|
||||
#include "applications/pokedex/pokedex_app.h"
|
||||
#include "applications/pokedex/struct_ov21_021E68F4.h"
|
||||
|
||||
#include "heap.h"
|
||||
|
||||
void ov21_021E8484(PokedexScreenManager *param0, PokedexApp *param1, enum HeapID heapID);
|
||||
void ov21_021E84E4(PokedexScreenManager *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV21_021E8484_H
|
||||
|
|
@ -71,7 +71,7 @@ PokedexGraphicData *PokedexMain_GetGraphicData(PokedexApp *pokedexApp);
|
|||
PokedexScreenManager *ov21_021D1410(PokedexApp *pokedexApp, int param1);
|
||||
PokedexScreenManager *ov21_021D1430(PokedexApp *pokedexApp, int param1);
|
||||
void ov21_021D144C(Sprite *param0, int param1);
|
||||
void ov21_021D1498(Sprite *param0, PokedexTextData *textData, int param2);
|
||||
void PokedexMain_SetButtonY(Sprite *param0, PokedexTextData *textData, int setY);
|
||||
void ov21_021D1524(Sprite *param0, PokedexTextData *textData, int param2, int param3, int param4);
|
||||
void PokedexMain_SetHitTableRect(TouchScreenHitTable *hitTable, int top, int bottom, int left, int right);
|
||||
void PokedexMain_SetLoadingScreenParams(PokedexLoadingScreen *pokedexLoadingScreen, BgConfig *bgConfig, int layer, NNSG2dScreenData *screenData, int topStart, int topEnd, int bottomStart, int bottomEnd, int duration);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "applications/pokedex/pokedex_updater.h"
|
||||
#include "applications/pokedex/struct_ov21_021D4660.h"
|
||||
|
||||
typedef struct {
|
||||
typedef struct PokedexScreenManager {
|
||||
void *pageData;
|
||||
void *pageGraphics;
|
||||
PokedexDataFunction dataFunc[3];
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ void sub_020127BC(UnkStruct_02012744 *param0);
|
|||
FontOAM *sub_020127E8(const UnkStruct_020127E8 *param0);
|
||||
void sub_02012870(FontOAM *param0);
|
||||
int sub_02012898(const Window *param0, int param1, int heapID);
|
||||
void sub_020128C4(FontOAM *param0, int param1, int param2);
|
||||
void FontOAM_SetXY(FontOAM *fontOAM, int x, int y);
|
||||
void sub_02012938(FontOAM *param0);
|
||||
void sub_020129A4(const FontOAM *param0, int *param1, int *param2);
|
||||
void FontOAM_GetXY(const FontOAM *fontOAM, int *x, int *y);
|
||||
void sub_020129D0(FontOAM *param0, BOOL param1);
|
||||
void sub_02012A00(FontOAM *param0, u8 param1);
|
||||
void sub_02012A30(FontOAM *param0, u32 param1);
|
||||
|
|
|
|||
|
|
@ -810,7 +810,7 @@ Overlay pokedex
|
|||
Object main.nef.p/src_applications_pokedex_pokedex_height_check.c.o
|
||||
Object main.nef.p/src_applications_pokedex_ov21_021E68F4.c.o
|
||||
Object main.nef.p/src_applications_pokedex_ov21_021E737C.c.o
|
||||
Object main.nef.p/src_applications_pokedex_ov21_021E8484.c.o
|
||||
Object main.nef.p/src_applications_pokedex_formsub.c.o
|
||||
Object main.nef.p/src_applications_pokedex_ov21_021E8D48.c.o
|
||||
}
|
||||
|
||||
|
|
|
|||
659
src/applications/pokedex/formsub.c
Normal file
659
src/applications/pokedex/formsub.c
Normal file
|
|
@ -0,0 +1,659 @@
|
|||
#include "applications/pokedex/formsub.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "applications/pokedex/ov21_021DF734.h"
|
||||
#include "applications/pokedex/ov21_021E29DC.h"
|
||||
#include "applications/pokedex/pokedex_app.h"
|
||||
#include "applications/pokedex/pokedex_data_manager.h"
|
||||
#include "applications/pokedex/pokedex_graphics.h"
|
||||
#include "applications/pokedex/pokedex_graphics_manager.h"
|
||||
#include "applications/pokedex/pokedex_main.h"
|
||||
#include "applications/pokedex/pokedex_sort.h"
|
||||
#include "applications/pokedex/pokedex_sort_data.h"
|
||||
#include "applications/pokedex/pokedex_text_manager.h"
|
||||
#include "applications/pokedex/struct_ov21_021D4660.h"
|
||||
#include "applications/pokedex/struct_ov21_021E68F4.h"
|
||||
|
||||
#include "bg_window.h"
|
||||
#include "brightness_controller.h"
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
#include "pltt_transfer.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_resource.h"
|
||||
#include "sprite_transfer.h"
|
||||
#include "sprite_util.h"
|
||||
#include "system.h"
|
||||
#include "touch_screen.h"
|
||||
#include "touch_screen_actions.h"
|
||||
#include "unk_02012744.h"
|
||||
#include "vram_transfer.h"
|
||||
|
||||
#include "res/graphics/pokedex/zukan.naix.h"
|
||||
#include "res/text/bank/pokedex.h"
|
||||
|
||||
/*
|
||||
* Pokedex Forms Page Sub Screen
|
||||
*/
|
||||
|
||||
// constants used in this file
|
||||
#define FORMSUB_GRAPHIC_ID 13000
|
||||
// form button constants
|
||||
#define BUTTON_X 128
|
||||
#define BUTTON_Y 144
|
||||
#define BUTTON_WIDTH 228
|
||||
#define BUTTON_HEIGHT 64
|
||||
#define BUTTON_HITBOX_WIDTH 240
|
||||
#define BUTTON_HITBOX_HEIGHT 80
|
||||
|
||||
enum FormSubButtons {
|
||||
FORMSUB_ANOTHER = 0,
|
||||
MAX_FORMSUBBUTTONS,
|
||||
};
|
||||
|
||||
typedef struct FormSubData {
|
||||
int *unk_00;
|
||||
PokedexSortData *sortData;
|
||||
PokedexScreenManager *subScreen;
|
||||
PokedexScreenManager *mainScreen;
|
||||
} FormSubData;
|
||||
|
||||
typedef struct Context {
|
||||
void *formSubData;
|
||||
void *formSubPageData;
|
||||
} Context;
|
||||
|
||||
typedef struct FormSubPageData {
|
||||
TouchScreenActions *buttonTouchScreenActions;
|
||||
TouchScreenHitTable *buttonHitTable;
|
||||
Context context;
|
||||
enum TouchScreenButtonState buttonState[MAX_FORMSUBBUTTONS];
|
||||
BOOL buttonPressed;
|
||||
} FormSubPageData;
|
||||
|
||||
typedef struct FormSubGraphics {
|
||||
Sprite *buttonSprite;
|
||||
PokedexTextData *buttonText;
|
||||
SpriteResource *buttonSpriteResource[MAX_SPRITE_RESOURCE_GEN4];
|
||||
Sprite *unused[4];
|
||||
int backgroundState;
|
||||
void *paletteFile;
|
||||
} FormSubGraphics;
|
||||
|
||||
static FormSubData *LoadAppData(enum HeapID heapID, PokedexApp *pokedexApp);
|
||||
static PokedexGraphicData **LoadAppGraphics(enum HeapID heapID, PokedexApp *pokedexApp);
|
||||
static UnkStruct_ov21_021D4660 *ScreenStates(enum HeapID heapID, PokedexApp *pokedexApp);
|
||||
static void FreeFormSubData(FormSubData *formSubData);
|
||||
static void FreeGraphicData(PokedexGraphicData **graphicData);
|
||||
static void FreeScreenStates(UnkStruct_ov21_021D4660 *param0);
|
||||
static int NumStates(void);
|
||||
static BOOL FormSubDataEnter(PokedexDataManager *dataMan, void *data);
|
||||
static BOOL FormSubDataUpdate(PokedexDataManager *dataMan, void *data);
|
||||
static BOOL FormSubDataExit(PokedexDataManager *dataMan, void *data);
|
||||
static BOOL FormSubGraphicsEnter(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static BOOL FormSubGraphicsUpdate(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static BOOL FormSubGraphicsExit(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static void SetSpriteOAMModesXLU(FormSubGraphics *formSubGraphics);
|
||||
static void SetSpriteOAMModesNormal(FormSubGraphics *formSubGraphics);
|
||||
static void InitBlendTransition(FormSubGraphics *formSubGraphics, PokedexGraphicData **param1, const FormSubData *formSubData, BOOL isEntering);
|
||||
static BOOL AdvanceBlendTransition(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, const FormSubData *formSubData, BOOL isEntering);
|
||||
static void SetTouchScreen(FormSubPageData *formSubPageData, FormSubData *formSubData, enum HeapID heapID);
|
||||
static void SetButtonOutOfBounds(FormSubPageData *formSubPageData);
|
||||
static void RunButtonAction(FormSubPageData *formSubPageData, FormSubData *formSubData);
|
||||
static void FreeTouchScreen(FormSubPageData *formSubPageData);
|
||||
static void ButtonTouchActions(u32 button, enum TouchScreenButtonState touchScreenButtonState, void *data);
|
||||
static void UpdateButtonText(Sprite *sprite, PokedexTextData *textData, int y, int textPaletteOffsetUnpressed, int textPaletteOffsetPressed);
|
||||
static void UpdateButtonDisplay(PokedexGraphicData **graphicData, FormSubGraphics *formSubGraphics, const FormSubPageData *formSubPageData, enum HeapID heapID);
|
||||
static void AdvanceMainScreen(const FormSubData *formSubData);
|
||||
static void CheckButtonKeyHeld(FormSubPageData *formSubPageData, FormSubData *formSubData);
|
||||
static void CursorToButton(PokedexGraphicData **graphicdata, const FormSubData *formSubData);
|
||||
static void TransformCursor(PokedexGraphicData **graphicdata, int x, int y, int width, int height);
|
||||
static void LoadFormSubGraphics(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, enum HeapID heapID);
|
||||
static void FreeGraphics(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, enum HeapID heapID);
|
||||
static void LoadBackgroundTilemaps(PokedexGraphicData **graphicData, enum HeapID heapID);
|
||||
static void LoadButtonSprite(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID);
|
||||
static void FreeButtonSpriteResource(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData);
|
||||
static void AnimateSprites(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID);
|
||||
static void FreeButtonSprite(FormSubGraphics *formSubGraphics);
|
||||
static void LoadButtonText(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID);
|
||||
static void FreeTextData(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData);
|
||||
static void UpdateButtonGraphics(PokedexGraphicData **graphicData, Sprite *sprite, PokedexTextData *textData, int buttonState, int y, int destAddr, int *backgroundState, enum HeapID heapID, int textPaletteOffsetUnpressed, int textPaletteOffsetPressed, void **paletteFile);
|
||||
|
||||
void FormSub_Init(PokedexScreenManager *screenMan, PokedexApp *pokedexApp, enum HeapID heapID)
|
||||
{
|
||||
FormSubData *formSubData = LoadAppData(heapID, pokedexApp);
|
||||
PokedexGraphicData **pokedexGraphicData = LoadAppGraphics(heapID, pokedexApp);
|
||||
UnkStruct_ov21_021D4660 *screenStates = ScreenStates(heapID, pokedexApp);
|
||||
|
||||
screenMan->pageData = formSubData;
|
||||
screenMan->pageGraphics = pokedexGraphicData;
|
||||
screenMan->screenStates = screenStates;
|
||||
screenMan->numStates = NumStates();
|
||||
|
||||
screenMan->dataFunc[0] = FormSubDataEnter;
|
||||
screenMan->dataFunc[1] = FormSubDataUpdate;
|
||||
screenMan->dataFunc[2] = FormSubDataExit;
|
||||
screenMan->graphicsFunc[0] = FormSubGraphicsEnter;
|
||||
screenMan->graphicsFunc[1] = FormSubGraphicsUpdate;
|
||||
screenMan->graphicsFunc[2] = FormSubGraphicsExit;
|
||||
}
|
||||
|
||||
void FormSub_Free(PokedexScreenManager *screenMan)
|
||||
{
|
||||
FreeFormSubData(screenMan->pageData);
|
||||
FreeGraphicData(screenMan->pageGraphics);
|
||||
FreeScreenStates(screenMan->screenStates);
|
||||
}
|
||||
|
||||
static FormSubData *LoadAppData(enum HeapID heapID, PokedexApp *pokedexApp)
|
||||
{
|
||||
FormSubData *formSubData = Heap_Alloc(heapID, sizeof(FormSubData));
|
||||
|
||||
GF_ASSERT(formSubData);
|
||||
memset(formSubData, 0, sizeof(FormSubData));
|
||||
|
||||
formSubData->unk_00 = ov21_021D13A0(pokedexApp);
|
||||
formSubData->subScreen = ov21_021D1430(pokedexApp, 3);
|
||||
formSubData->mainScreen = ov21_021D1410(pokedexApp, 3);
|
||||
formSubData->sortData = PokedexMain_GetSortData(pokedexApp);
|
||||
|
||||
return formSubData;
|
||||
}
|
||||
|
||||
static PokedexGraphicData **LoadAppGraphics(enum HeapID heapID, PokedexApp *pokedexApp)
|
||||
{
|
||||
PokedexGraphicData **graphicData = Heap_Alloc(heapID, sizeof(PokedexGraphicData *));
|
||||
|
||||
GF_ASSERT(graphicData);
|
||||
memset(graphicData, 0, sizeof(PokedexGraphicData *));
|
||||
|
||||
*graphicData = PokedexMain_GetGraphicData(pokedexApp);
|
||||
|
||||
return graphicData;
|
||||
}
|
||||
|
||||
static UnkStruct_ov21_021D4660 *ScreenStates(enum HeapID heapID, PokedexApp *param1)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void FreeFormSubData(FormSubData *formSubData)
|
||||
{
|
||||
GF_ASSERT(formSubData);
|
||||
Heap_Free(formSubData);
|
||||
}
|
||||
|
||||
static void FreeGraphicData(PokedexGraphicData **graphicData)
|
||||
{
|
||||
GF_ASSERT(graphicData);
|
||||
Heap_Free(graphicData);
|
||||
}
|
||||
|
||||
static void FreeScreenStates(UnkStruct_ov21_021D4660 *param0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static int NumStates(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL FormSubDataEnter(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
FormSubData *formSubData = data;
|
||||
|
||||
FormSubPageData *formSubPageData = Heap_Alloc(dataMan->heapID, sizeof(FormSubPageData));
|
||||
memset(formSubPageData, 0, sizeof(FormSubPageData));
|
||||
|
||||
formSubPageData->buttonState[FORMSUB_ANOTHER] = TOUCH_BUTTON_HELD_OUT_OF_BOUNDS + 1;
|
||||
|
||||
SetTouchScreen(formSubPageData, formSubData, dataMan->heapID);
|
||||
RunButtonAction(formSubPageData, formSubData);
|
||||
|
||||
dataMan->pageData = formSubPageData;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL FormSubDataUpdate(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
FormSubData *formSubData = data;
|
||||
FormSubPageData *formSubPageData = dataMan->pageData;
|
||||
|
||||
if (dataMan->exit == TRUE) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (dataMan->unchanged == TRUE) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ov21_021E33AC(formSubData->subScreen)) {
|
||||
SetButtonOutOfBounds(formSubPageData);
|
||||
|
||||
if (ov21_021E33BC(formSubData->subScreen) && (ov21_021D3998(formSubData->sortData) == 2)) {
|
||||
CheckButtonKeyHeld(formSubPageData, formSubData);
|
||||
}
|
||||
|
||||
RunButtonAction(formSubPageData, formSubData);
|
||||
|
||||
if (formSubPageData->buttonPressed) {
|
||||
AdvanceMainScreen(formSubData);
|
||||
formSubPageData->buttonPressed = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FormSubDataExit(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
FormSubPageData *formSubPageData = dataMan->pageData;
|
||||
|
||||
FreeTouchScreen(formSubPageData);
|
||||
Heap_Free(formSubPageData);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL FormSubGraphicsEnter(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const FormSubData *formSubData = data;
|
||||
PokedexGraphicData **graphicData = graphics;
|
||||
FormSubGraphics *formSubGraphics = graphicsMan->pageGraphics;
|
||||
|
||||
switch (graphicsMan->state) {
|
||||
case 0:
|
||||
graphicsMan->pageGraphics = Heap_Alloc(graphicsMan->heapID, sizeof(FormSubGraphics));
|
||||
memset(graphicsMan->pageGraphics, 0, sizeof(FormSubGraphics));
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 1:
|
||||
LoadFormSubGraphics(formSubGraphics, graphicData, graphicsMan->heapID);
|
||||
InitBlendTransition(formSubGraphics, graphicData, formSubData, TRUE);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 2:
|
||||
if (AdvanceBlendTransition(formSubGraphics, graphicData, formSubData, TRUE)) {
|
||||
graphicsMan->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
PokedexGraphics_SetStaticCursorSize(&(*graphicData)->cursorGraphics, FALSE);
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FormSubGraphicsUpdate(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const FormSubData *formSubData = data;
|
||||
const FormSubPageData *formSubPageData = dataMan->pageData;
|
||||
PokedexGraphicData **graphicData = graphics;
|
||||
FormSubGraphics *formSubGraphics = graphicsMan->pageGraphics;
|
||||
|
||||
if (ov21_021E33AC(formSubData->subScreen)) {
|
||||
UpdateButtonDisplay(graphicData, formSubGraphics, formSubPageData, graphicsMan->heapID);
|
||||
CursorToButton(graphicData, formSubData);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FormSubGraphicsExit(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const FormSubData *formSubData = data;
|
||||
PokedexGraphicData **graphicData = graphics;
|
||||
FormSubGraphics *formSubGraphics = graphicsMan->pageGraphics;
|
||||
|
||||
switch (graphicsMan->state) {
|
||||
case 0:
|
||||
PokedexGraphics_SetStaticCursorSize(&(*graphicData)->cursorGraphics, TRUE);
|
||||
InitBlendTransition(formSubGraphics, graphicData, formSubData, FALSE);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (AdvanceBlendTransition(formSubGraphics, graphicData, formSubData, FALSE)) {
|
||||
graphicsMan->state++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
FreeGraphics(formSubGraphics, graphicData, graphicsMan->heapID);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 3:
|
||||
Heap_Free(graphicsMan->pageGraphics);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 4:
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SetSpriteOAMModesXLU(FormSubGraphics *formSubGraphics)
|
||||
{
|
||||
Sprite_SetExplicitOAMMode(formSubGraphics->buttonSprite, GX_OAM_MODE_XLU);
|
||||
sub_02012AF0(formSubGraphics->buttonText->fontOAM, GX_OAM_MODE_XLU);
|
||||
}
|
||||
|
||||
static void SetSpriteOAMModesNormal(FormSubGraphics *formSubGraphics)
|
||||
{
|
||||
Sprite_SetExplicitOAMMode(formSubGraphics->buttonSprite, GX_OAM_MODE_NORMAL);
|
||||
sub_02012AF0(formSubGraphics->buttonText->fontOAM, GX_OAM_MODE_NORMAL);
|
||||
}
|
||||
|
||||
static void InitBlendTransition(FormSubGraphics *formSubGraphics, PokedexGraphicData **param1, const FormSubData *formSubData, BOOL isEntering)
|
||||
{
|
||||
SetSpriteOAMModesXLU(formSubGraphics);
|
||||
|
||||
if (ov21_021E33A4(formSubData->subScreen)) {
|
||||
if (isEntering) {
|
||||
PokedexGraphics_InitBlendTransition(&(*param1)->blendSub, 1, -16, 0, 0, 16, (GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), (GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), 1);
|
||||
} else {
|
||||
PokedexGraphics_InitBlendTransition(&(*param1)->blendSub, 1, 0, -16, 16, 0, (GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), (GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL AdvanceBlendTransition(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, const FormSubData *formSubData, BOOL isEntering)
|
||||
{
|
||||
BOOL transitionComplete;
|
||||
|
||||
if (ov21_021E33A4(formSubData->subScreen)) {
|
||||
transitionComplete = PokedexGraphics_TakeBlendTransitionStep(&(*graphicData)->blendSub);
|
||||
} else {
|
||||
transitionComplete = BrightnessController_IsTransitionComplete(BRIGHTNESS_SUB_SCREEN);
|
||||
}
|
||||
|
||||
if (transitionComplete) {
|
||||
if (isEntering) {
|
||||
SetSpriteOAMModesNormal(formSubGraphics);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SetTouchScreen(FormSubPageData *formSubPageData, FormSubData *formSubData, enum HeapID heapID)
|
||||
{
|
||||
formSubPageData->buttonHitTable = Heap_Alloc(heapID, sizeof(TouchScreenHitTable));
|
||||
|
||||
PokedexMain_SetHitTableRect(formSubPageData->buttonHitTable, BUTTON_Y - (BUTTON_HITBOX_HEIGHT / 2), BUTTON_Y + (BUTTON_HITBOX_HEIGHT / 2), BUTTON_X - (BUTTON_HITBOX_WIDTH / 2), BUTTON_X + (BUTTON_HITBOX_WIDTH / 2));
|
||||
|
||||
formSubPageData->context.formSubData = formSubData;
|
||||
formSubPageData->context.formSubPageData = formSubPageData;
|
||||
formSubPageData->buttonTouchScreenActions = TouchScreenActions_RegisterHandler(formSubPageData->buttonHitTable, 1, ButtonTouchActions, &formSubPageData->context, heapID);
|
||||
}
|
||||
|
||||
static void SetButtonOutOfBounds(FormSubPageData *formSubPageData)
|
||||
{
|
||||
formSubPageData->buttonState[FORMSUB_ANOTHER] = TOUCH_BUTTON_HELD_OUT_OF_BOUNDS;
|
||||
}
|
||||
|
||||
static void RunButtonAction(FormSubPageData *formSubPageData, FormSubData *formSubData)
|
||||
{
|
||||
TouchScreenActions_HandleAction(formSubPageData->buttonTouchScreenActions);
|
||||
|
||||
if (formSubPageData->buttonPressed) {
|
||||
formSubPageData->buttonState[FORMSUB_ANOTHER] = TOUCH_BUTTON_HELD;
|
||||
}
|
||||
}
|
||||
|
||||
static void FreeTouchScreen(FormSubPageData *formSubPageData)
|
||||
{
|
||||
TouchScreenActions_Free(formSubPageData->buttonTouchScreenActions);
|
||||
Heap_Free(formSubPageData->buttonHitTable);
|
||||
|
||||
formSubPageData->buttonHitTable = NULL;
|
||||
}
|
||||
|
||||
static void ButtonTouchActions(u32 button, enum TouchScreenButtonState touchScreenButtonState, void *data)
|
||||
{
|
||||
Context *context = data;
|
||||
FormSubData *formSubData = context->formSubData;
|
||||
FormSubPageData *formSubPageData = context->formSubPageData;
|
||||
|
||||
formSubPageData->buttonState[button] = touchScreenButtonState;
|
||||
|
||||
switch (touchScreenButtonState) {
|
||||
case TOUCH_BUTTON_PRESSED:
|
||||
switch (button) {
|
||||
case FORMSUB_ANOTHER:
|
||||
ov21_021E33B4(formSubData->subScreen, TRUE);
|
||||
formSubPageData->buttonPressed = TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case TOUCH_BUTTON_HELD:
|
||||
switch (button) {
|
||||
case FORMSUB_ANOTHER:
|
||||
formSubPageData->buttonPressed = TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadFormSubGraphics(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, enum HeapID heapID)
|
||||
{
|
||||
LoadBackgroundTilemaps(graphicData, heapID);
|
||||
LoadButtonSprite(formSubGraphics, graphicData, heapID);
|
||||
AnimateSprites(formSubGraphics, graphicData, heapID);
|
||||
LoadButtonText(formSubGraphics, graphicData, heapID);
|
||||
}
|
||||
|
||||
static void FreeGraphics(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData, enum HeapID heapID)
|
||||
{
|
||||
PokedexGraphics_LoadGraphicNarcPaletteData(*graphicData, background_sub_2_NCLR, PAL_LOAD_SUB_BG, 4 * 32, 32, heapID);
|
||||
FreeButtonSprite(formSubGraphics);
|
||||
FreeTextData(formSubGraphics, graphicData);
|
||||
FreeButtonSpriteResource(formSubGraphics, graphicData);
|
||||
|
||||
if (formSubGraphics->paletteFile) {
|
||||
Heap_Free(formSubGraphics->paletteFile);
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadBackgroundTilemaps(PokedexGraphicData **graphicData, enum HeapID heapID)
|
||||
{
|
||||
NNSG2dScreenData *screenData;
|
||||
|
||||
PokedexGraphics_LoadGraphicNarcCharacterData(*graphicData, entry_sub_NCGR_lz, (*graphicData)->bgConfig, BG_LAYER_SUB_2, 0, 0, TRUE, heapID);
|
||||
|
||||
void *tilemap = PokedexGraphics_GetGraphicNarcTilemapData(*graphicData, forms_sub_NSCR_lz, TRUE, &screenData, heapID);
|
||||
|
||||
Bg_LoadToTilemapRect((*graphicData)->bgConfig, BG_LAYER_SUB_2, screenData->rawData, 0, 0, screenData->screenWidth / 8, screenData->screenHeight / 8);
|
||||
Heap_Free(tilemap);
|
||||
Bg_ScheduleTilemapTransfer((*graphicData)->bgConfig, BG_LAYER_SUB_2);
|
||||
}
|
||||
|
||||
static void LoadButtonSprite(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID)
|
||||
{
|
||||
PokedexGraphicData *graphicData = *pokedexGraphicData;
|
||||
NARC *narc = PokedexGraphics_GetNARC(graphicData);
|
||||
|
||||
formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CHAR] = SpriteResourceCollection_AddTilesFrom(graphicData->spriteResourceCollection[SPRITE_RESOURCE_CHAR], narc, size_buttons_pressed_NCGR_lz, TRUE, size_buttons_pressed_NCGR_lz + FORMSUB_GRAPHIC_ID, NNS_G2D_VRAM_TYPE_2DSUB, heapID);
|
||||
|
||||
SpriteTransfer_RequestCharAtEnd(formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CHAR]);
|
||||
SpriteResource_ReleaseData(formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CHAR]);
|
||||
|
||||
formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CELL] = SpriteResourceCollection_AddFrom(graphicData->spriteResourceCollection[SPRITE_RESOURCE_CELL], narc, size_buttons_pressed_cell_NCER_lz, TRUE, size_buttons_pressed_cell_NCER_lz + FORMSUB_GRAPHIC_ID, SPRITE_RESOURCE_CELL, heapID);
|
||||
formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_ANIM] = SpriteResourceCollection_AddFrom(graphicData->spriteResourceCollection[SPRITE_RESOURCE_ANIM], narc, size_buttons_pressed_anim_NANR_lz, TRUE, size_buttons_pressed_anim_NANR_lz + FORMSUB_GRAPHIC_ID, SPRITE_RESOURCE_ANIM, heapID);
|
||||
}
|
||||
|
||||
static void FreeButtonSpriteResource(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData)
|
||||
{
|
||||
PokedexGraphicData *graphicData = *pokedexGraphicData;
|
||||
|
||||
SpriteTransfer_ResetCharTransfer(formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CHAR]);
|
||||
SpriteResourceCollection_Remove(graphicData->spriteResourceCollection[SPRITE_RESOURCE_CHAR], formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CHAR]);
|
||||
SpriteResourceCollection_Remove(graphicData->spriteResourceCollection[SPRITE_RESOURCE_CELL], formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_CELL]);
|
||||
SpriteResourceCollection_Remove(graphicData->spriteResourceCollection[SPRITE_RESOURCE_ANIM], formSubGraphics->buttonSpriteResource[SPRITE_RESOURCE_ANIM]);
|
||||
}
|
||||
|
||||
static void AnimateSprites(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID)
|
||||
{
|
||||
SpriteResourcesHeader spriteResourcesHeader;
|
||||
SpriteListTemplate spriteListTemplate;
|
||||
PokedexGraphicData *graphicData = *pokedexGraphicData;
|
||||
|
||||
SpriteResourcesHeader_Init(&spriteResourcesHeader, size_buttons_pressed_NCGR_lz + FORMSUB_GRAPHIC_ID, info_NCLR + 2100, size_buttons_pressed_cell_NCER_lz + FORMSUB_GRAPHIC_ID, size_buttons_pressed_anim_NANR_lz + FORMSUB_GRAPHIC_ID, 0xffffffff, 0xffffffff, FALSE, 2, graphicData->spriteResourceCollection[SPRITE_RESOURCE_CHAR], graphicData->spriteResourceCollection[SPRITE_RESOURCE_PLTT], graphicData->spriteResourceCollection[SPRITE_RESOURCE_CELL], graphicData->spriteResourceCollection[SPRITE_RESOURCE_ANIM], NULL, NULL);
|
||||
|
||||
spriteListTemplate.list = graphicData->spriteList;
|
||||
spriteListTemplate.resourceData = &spriteResourcesHeader;
|
||||
spriteListTemplate.priority = 31;
|
||||
spriteListTemplate.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
|
||||
spriteListTemplate.heapID = heapID;
|
||||
|
||||
spriteListTemplate.position.x = BUTTON_X << FX32_SHIFT;
|
||||
spriteListTemplate.position.y = BUTTON_Y << FX32_SHIFT;
|
||||
spriteListTemplate.position.y += (HW_LCD_HEIGHT << FX32_SHIFT);
|
||||
|
||||
formSubGraphics->buttonSprite = SpriteList_Add(&spriteListTemplate);
|
||||
|
||||
Sprite_SetAnim(formSubGraphics->buttonSprite, 2);
|
||||
}
|
||||
|
||||
static void FreeButtonSprite(FormSubGraphics *formSubGraphics)
|
||||
{
|
||||
Sprite_Delete(formSubGraphics->buttonSprite);
|
||||
}
|
||||
|
||||
static void LoadButtonText(FormSubGraphics *formSubGraphics, PokedexGraphicData **pokedexGraphicData, enum HeapID heapID)
|
||||
{
|
||||
PokedexGraphicData *graphicData = *pokedexGraphicData;
|
||||
|
||||
GF_ASSERT(formSubGraphics->buttonSprite);
|
||||
|
||||
SpriteResource *spriteResource = SpriteResourceCollection_Find(graphicData->spriteResourceCollection[SPRITE_RESOURCE_PLTT], info_NCLR + 2100);
|
||||
|
||||
PokedexDisplayBox displayBox;
|
||||
displayBox.textMan = graphicData->textMan;
|
||||
displayBox.paletteProxy = SpriteTransfer_GetPaletteProxy(spriteResource, NULL);
|
||||
displayBox.y = -8;
|
||||
displayBox.spriteResourcePriority = 2;
|
||||
displayBox.spriteListPriority = 0;
|
||||
displayBox.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
|
||||
displayBox.heapID = heapID;
|
||||
|
||||
int plttOffset = PlttTransfer_GetPlttOffset(displayBox.paletteProxy, NNS_G2D_VRAM_TYPE_2DSUB);
|
||||
Window *window = PokedexTextManager_NewWindow(graphicData->textMan, 16, 2);
|
||||
u32 strWidth = PokedexTextManager_DisplayMessage(graphicData->textMan, window, TEXT_BANK_POKEDEX, pl_msg_pokedex_anotherform, 0, 0);
|
||||
|
||||
displayBox.x = -(strWidth / 2);
|
||||
displayBox.window = window;
|
||||
displayBox.sprite = formSubGraphics->buttonSprite;
|
||||
|
||||
formSubGraphics->buttonText = PokedexTextManager_NextTextData(&displayBox);
|
||||
|
||||
sub_02012A60(formSubGraphics->buttonText->fontOAM, plttOffset + 4);
|
||||
PokedexTextManager_FreeWindow(window);
|
||||
}
|
||||
|
||||
static void FreeTextData(FormSubGraphics *formSubGraphics, PokedexGraphicData **graphicData)
|
||||
{
|
||||
PokedexTextManager_FreeTextData(formSubGraphics->buttonText);
|
||||
}
|
||||
|
||||
static void UpdateButtonGraphics(PokedexGraphicData **graphicData, Sprite *sprite, PokedexTextData *textData, int buttonState, int y, int destAddr, int *backgroundState, enum HeapID heapID, int textPaletteOffsetUnpressed, int textPaletteOffsetPressed, void **paletteFile)
|
||||
{
|
||||
NNSG2dPaletteData *paletteData;
|
||||
BOOL validFrame = FALSE;
|
||||
int memberIndex;
|
||||
|
||||
ov21_021D144C(sprite, buttonState);
|
||||
UpdateButtonText(sprite, textData, y, textPaletteOffsetUnpressed, textPaletteOffsetPressed);
|
||||
|
||||
switch (Sprite_GetAnimFrame(sprite)) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*backgroundState != 0) {
|
||||
validFrame = TRUE;
|
||||
memberIndex = background_sub_2_NCLR;
|
||||
*backgroundState = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (*backgroundState != 1) {
|
||||
validFrame = TRUE;
|
||||
memberIndex = background_sub_3_NCLR;
|
||||
*backgroundState = 1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (*backgroundState != 2) {
|
||||
validFrame = TRUE;
|
||||
memberIndex = background_sub_1_NCLR;
|
||||
*backgroundState = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (validFrame) {
|
||||
if (*paletteFile) {
|
||||
Heap_Free(*paletteFile);
|
||||
}
|
||||
|
||||
*paletteFile = PokedexGraphics_GetGraphicNarcPaletteData(*graphicData, memberIndex, &paletteData, heapID);
|
||||
|
||||
GF_ASSERT(VramTransfer_Request(NNS_GFD_DST_2D_BG_PLTT_SUB, destAddr * 32, paletteData->pRawData, 32));
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateButtonText(Sprite *sprite, PokedexTextData *textData, int y, int textPaletteOffsetUnpressed, int textPaletteOffsetPressed)
|
||||
{
|
||||
PokedexMain_SetButtonY(sprite, textData, y);
|
||||
|
||||
if ((int)Sprite_GetAnimFrame(sprite) < 2) {
|
||||
sub_02012AC0(textData->fontOAM, textPaletteOffsetUnpressed);
|
||||
} else {
|
||||
sub_02012AC0(textData->fontOAM, textPaletteOffsetPressed);
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateButtonDisplay(PokedexGraphicData **graphicData, FormSubGraphics *formSubGraphics, const FormSubPageData *formSubPageData, enum HeapID heapID)
|
||||
{
|
||||
UpdateButtonGraphics(graphicData, formSubGraphics->buttonSprite, formSubGraphics->buttonText, formSubPageData->buttonState[FORMSUB_ANOTHER], -8, 4, &formSubGraphics->backgroundState, heapID, 4, 1, &formSubGraphics->paletteFile);
|
||||
}
|
||||
|
||||
static void CheckButtonKeyHeld(FormSubPageData *formSubPageData, FormSubData *formSubData)
|
||||
{
|
||||
if (gSystem.heldKeys & PAD_BUTTON_A) {
|
||||
formSubPageData->buttonPressed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void CursorToButton(PokedexGraphicData **graphicdata, const FormSubData *formSubData)
|
||||
{
|
||||
if (ov21_021E33BC(formSubData->subScreen) == 1) {
|
||||
TransformCursor(graphicdata, BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
static void TransformCursor(PokedexGraphicData **graphicdata, int x, int y, int width, int height)
|
||||
{
|
||||
PokedexGraphics_TransformCursor(*graphicdata, x, y, width, height);
|
||||
}
|
||||
|
||||
static void AdvanceMainScreen(const FormSubData *formSubData)
|
||||
{
|
||||
ov21_021DF7A0(formSubData->mainScreen, 1);
|
||||
}
|
||||
|
|
@ -1163,7 +1163,7 @@ static void ov21_021D6C44(UnkStruct_ov21_021D71A8 *param0, PokedexGraphicData *p
|
|||
for (v0 = 0; v0 < 9; v0++) {
|
||||
if (param0->unk_28[v4]) {
|
||||
ov21_021D6CA4(param0->unk_00[v4], &v1, &v2);
|
||||
sub_020128C4(param0->unk_28[v4]->fontOAM, v1, v2);
|
||||
FontOAM_SetXY(param0->unk_28[v4]->fontOAM, v1, v2);
|
||||
|
||||
v5 = Sprite_GetPriority(param0->unk_00[v4]);
|
||||
v5--;
|
||||
|
|
|
|||
|
|
@ -1,699 +0,0 @@
|
|||
#include "applications/pokedex/ov21_021E8484.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "applications/pokedex/ov21_021DF734.h"
|
||||
#include "applications/pokedex/ov21_021E29DC.h"
|
||||
#include "applications/pokedex/pokedex_app.h"
|
||||
#include "applications/pokedex/pokedex_data_manager.h"
|
||||
#include "applications/pokedex/pokedex_graphics.h"
|
||||
#include "applications/pokedex/pokedex_graphics_manager.h"
|
||||
#include "applications/pokedex/pokedex_main.h"
|
||||
#include "applications/pokedex/pokedex_sort.h"
|
||||
#include "applications/pokedex/pokedex_sort_data.h"
|
||||
#include "applications/pokedex/pokedex_text_manager.h"
|
||||
#include "applications/pokedex/struct_ov21_021D4660.h"
|
||||
#include "applications/pokedex/struct_ov21_021E68F4.h"
|
||||
|
||||
#include "bg_window.h"
|
||||
#include "brightness_controller.h"
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
#include "pltt_transfer.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_resource.h"
|
||||
#include "sprite_transfer.h"
|
||||
#include "sprite_util.h"
|
||||
#include "system.h"
|
||||
#include "touch_screen.h"
|
||||
#include "touch_screen_actions.h"
|
||||
#include "unk_02012744.h"
|
||||
#include "vram_transfer.h"
|
||||
|
||||
#include "res/graphics/pokedex/zukan.naix.h"
|
||||
#include "res/text/bank/pokedex.h"
|
||||
|
||||
typedef struct {
|
||||
int *unk_00;
|
||||
PokedexSortData *unk_04;
|
||||
PokedexScreenManager *unk_08;
|
||||
PokedexScreenManager *unk_0C;
|
||||
} UnkStruct_ov21_021E8570;
|
||||
|
||||
typedef struct {
|
||||
void *unk_00;
|
||||
void *unk_04;
|
||||
} UnkStruct_ov21_021E88E8;
|
||||
|
||||
typedef struct {
|
||||
TouchScreenActions *unk_00;
|
||||
TouchScreenHitTable *unk_04;
|
||||
UnkStruct_ov21_021E88E8 unk_08;
|
||||
int unk_10[1];
|
||||
BOOL unk_14;
|
||||
} UnkStruct_ov21_021E88B0;
|
||||
|
||||
typedef struct {
|
||||
Sprite *unk_00[1];
|
||||
PokedexTextData *unk_04[1];
|
||||
SpriteResource *unk_08[4];
|
||||
Sprite *unk_18[4];
|
||||
int unk_28[1];
|
||||
void *unk_2C[1];
|
||||
} UnkStruct_ov21_021E8794;
|
||||
|
||||
static UnkStruct_ov21_021E8570 *ov21_021E84FC(enum HeapID heapID, PokedexApp *param1);
|
||||
static PokedexGraphicData **ov21_021E8544(enum HeapID heapID, PokedexApp *param1);
|
||||
static UnkStruct_ov21_021D4660 *ov21_021E856C(enum HeapID heapID, PokedexApp *param1);
|
||||
static void ov21_021E8570(UnkStruct_ov21_021E8570 *param0);
|
||||
static void ov21_021E8584(PokedexGraphicData **param0);
|
||||
static void ov21_021E8598(UnkStruct_ov21_021D4660 *param0);
|
||||
static int ov21_021E859C(void);
|
||||
static int ov21_021E85A0(PokedexDataManager *dataMan, void *data);
|
||||
static int ov21_021E85DC(PokedexDataManager *dataMan, void *data);
|
||||
static int ov21_021E8640(PokedexDataManager *dataMan, void *data);
|
||||
static int ov21_021E8654(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static int ov21_021E86DC(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static int ov21_021E870C(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan);
|
||||
static void ov21_021E8794(UnkStruct_ov21_021E8794 *param0);
|
||||
static void ov21_021E87AC(UnkStruct_ov21_021E8794 *param0);
|
||||
static void ov21_021E87C4(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, const UnkStruct_ov21_021E8570 *param2, BOOL param3);
|
||||
static BOOL ov21_021E8830(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, const UnkStruct_ov21_021E8570 *param2, BOOL param3);
|
||||
static void ov21_021E886C(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1, enum HeapID heapID);
|
||||
static void ov21_021E88B0(UnkStruct_ov21_021E88B0 *param0);
|
||||
static void ov21_021E88B8(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1);
|
||||
static void ov21_021E88D0(UnkStruct_ov21_021E88B0 *param0);
|
||||
static void ov21_021E88E8(u32 param0, enum TouchScreenButtonState param1, void *param2);
|
||||
static void ov21_021E8C94(Sprite *param0, PokedexTextData *textData, int param2, int param3, int param4);
|
||||
static void ov21_021E8CBC(PokedexGraphicData **param0, UnkStruct_ov21_021E8794 *param1, const UnkStruct_ov21_021E88B0 *param2, int param3);
|
||||
static void ov21_021E8D3C(const UnkStruct_ov21_021E8570 *param0);
|
||||
static void ov21_021E8CF0(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1);
|
||||
static void ov21_021E8D04(PokedexGraphicData **param0, const UnkStruct_ov21_021E8570 *param1);
|
||||
static void ov21_021E8D28(PokedexGraphicData **param0, int param1, int param2, int param3, int param4);
|
||||
static void ov21_021E891C(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int heapID);
|
||||
static void ov21_021E894C(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int heapID);
|
||||
static void ov21_021E898C(PokedexGraphicData **param0, int heapID);
|
||||
static void ov21_021E89F4(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2);
|
||||
static void ov21_021E8A74(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1);
|
||||
static void ov21_021E8AA8(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2);
|
||||
static void ov21_021E8B34(UnkStruct_ov21_021E8794 *param0);
|
||||
static void ov21_021E8B40(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2);
|
||||
static void ov21_021E8BDC(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1);
|
||||
|
||||
void ov21_021E8484(PokedexScreenManager *param0, PokedexApp *param1, enum HeapID heapID)
|
||||
{
|
||||
UnkStruct_ov21_021E8570 *v0;
|
||||
PokedexGraphicData **v1;
|
||||
UnkStruct_ov21_021D4660 *v2;
|
||||
|
||||
v0 = ov21_021E84FC(heapID, param1);
|
||||
v1 = ov21_021E8544(heapID, param1);
|
||||
v2 = ov21_021E856C(heapID, param1);
|
||||
|
||||
param0->pageData = v0;
|
||||
param0->pageGraphics = v1;
|
||||
param0->screenStates = v2;
|
||||
param0->numStates = ov21_021E859C();
|
||||
|
||||
param0->dataFunc[0] = ov21_021E85A0;
|
||||
param0->dataFunc[1] = ov21_021E85DC;
|
||||
param0->dataFunc[2] = ov21_021E8640;
|
||||
param0->graphicsFunc[0] = ov21_021E8654;
|
||||
param0->graphicsFunc[1] = ov21_021E86DC;
|
||||
param0->graphicsFunc[2] = ov21_021E870C;
|
||||
}
|
||||
|
||||
void ov21_021E84E4(PokedexScreenManager *param0)
|
||||
{
|
||||
ov21_021E8570(param0->pageData);
|
||||
ov21_021E8584(param0->pageGraphics);
|
||||
ov21_021E8598(param0->screenStates);
|
||||
}
|
||||
|
||||
static UnkStruct_ov21_021E8570 *ov21_021E84FC(enum HeapID heapID, PokedexApp *param1)
|
||||
{
|
||||
UnkStruct_ov21_021E8570 *v0 = Heap_Alloc(heapID, sizeof(UnkStruct_ov21_021E8570));
|
||||
|
||||
GF_ASSERT(v0);
|
||||
memset(v0, 0, sizeof(UnkStruct_ov21_021E8570));
|
||||
|
||||
v0->unk_00 = ov21_021D13A0(param1);
|
||||
v0->unk_08 = ov21_021D1430(param1, 3);
|
||||
v0->unk_0C = ov21_021D1410(param1, 3);
|
||||
v0->unk_04 = PokedexMain_GetSortData(param1);
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
static PokedexGraphicData **ov21_021E8544(enum HeapID heapID, PokedexApp *param1)
|
||||
{
|
||||
PokedexGraphicData **v0;
|
||||
PokedexScreenManager *v1;
|
||||
|
||||
v0 = Heap_Alloc(heapID, sizeof(PokedexGraphicData **));
|
||||
|
||||
GF_ASSERT(v0);
|
||||
memset(v0, 0, sizeof(PokedexGraphicData **));
|
||||
|
||||
*v0 = PokedexMain_GetGraphicData(param1);
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
static UnkStruct_ov21_021D4660 *ov21_021E856C(enum HeapID heapID, PokedexApp *param1)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void ov21_021E8570(UnkStruct_ov21_021E8570 *param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
Heap_Free(param0);
|
||||
}
|
||||
|
||||
static void ov21_021E8584(PokedexGraphicData **param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
Heap_Free(param0);
|
||||
}
|
||||
|
||||
static void ov21_021E8598(UnkStruct_ov21_021D4660 *param0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static int ov21_021E859C(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov21_021E85A0(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
UnkStruct_ov21_021E8570 *v0 = data;
|
||||
UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
int v2;
|
||||
|
||||
v1 = Heap_Alloc(dataMan->heapID, sizeof(UnkStruct_ov21_021E88B0));
|
||||
memset(v1, 0, sizeof(UnkStruct_ov21_021E88B0));
|
||||
|
||||
for (v2 = 0; v2 < 1; v2++) {
|
||||
v1->unk_10[v2] = (3 + 1);
|
||||
}
|
||||
|
||||
ov21_021E886C(v1, v0, dataMan->heapID);
|
||||
ov21_021E88B8(v1, v0);
|
||||
|
||||
dataMan->pageData = v1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ov21_021E85DC(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
UnkStruct_ov21_021E8570 *v0 = data;
|
||||
UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
|
||||
if (dataMan->exit == 1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (dataMan->unchanged == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ov21_021E33AC(v0->unk_08)) {
|
||||
ov21_021E88B0(v1);
|
||||
|
||||
if (ov21_021E33BC(v0->unk_08) && (ov21_021D3998(v0->unk_04) == 2)) {
|
||||
ov21_021E8CF0(v1, v0);
|
||||
}
|
||||
|
||||
ov21_021E88B8(v1, v0);
|
||||
|
||||
if (v1->unk_14) {
|
||||
ov21_021E8D3C(v0);
|
||||
v1->unk_14 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov21_021E8640(PokedexDataManager *dataMan, void *data)
|
||||
{
|
||||
UnkStruct_ov21_021E8570 *v0 = data;
|
||||
UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
|
||||
ov21_021E88D0(v1);
|
||||
Heap_Free(v1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ov21_021E8654(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const UnkStruct_ov21_021E8570 *v0 = data;
|
||||
const UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
PokedexGraphicData **v2 = graphics;
|
||||
UnkStruct_ov21_021E8794 *v3 = graphicsMan->pageGraphics;
|
||||
|
||||
switch (graphicsMan->state) {
|
||||
case 0:
|
||||
graphicsMan->pageGraphics = Heap_Alloc(graphicsMan->heapID, sizeof(UnkStruct_ov21_021E8794));
|
||||
memset(graphicsMan->pageGraphics, 0, sizeof(UnkStruct_ov21_021E8794));
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 1:
|
||||
ov21_021E891C(v3, v2, graphicsMan->heapID);
|
||||
ov21_021E87C4(v3, v2, v0, 1);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 2:
|
||||
if (ov21_021E8830(v3, v2, v0, 1)) {
|
||||
graphicsMan->state++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
PokedexGraphics_SetStaticCursorSize(&(*v2)->cursorGraphics, 0);
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov21_021E86DC(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const UnkStruct_ov21_021E8570 *v0 = data;
|
||||
const UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
PokedexGraphicData **v2 = graphics;
|
||||
UnkStruct_ov21_021E8794 *v3 = graphicsMan->pageGraphics;
|
||||
|
||||
if (ov21_021E33AC(v0->unk_08)) {
|
||||
ov21_021E8CBC(v2, v3, v1, graphicsMan->heapID);
|
||||
ov21_021E8D04(v2, v0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov21_021E870C(void *graphics, PokedexGraphicsManager *graphicsMan, const void *data, const PokedexDataManager *dataMan)
|
||||
{
|
||||
const UnkStruct_ov21_021E8570 *v0 = data;
|
||||
const UnkStruct_ov21_021E88B0 *v1 = dataMan->pageData;
|
||||
PokedexGraphicData **v2 = graphics;
|
||||
UnkStruct_ov21_021E8794 *v3 = graphicsMan->pageGraphics;
|
||||
|
||||
switch (graphicsMan->state) {
|
||||
case 0:
|
||||
PokedexGraphics_SetStaticCursorSize(&(*v2)->cursorGraphics, 1);
|
||||
ov21_021E87C4(v3, v2, v0, 0);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov21_021E8830(v3, v2, v0, 0)) {
|
||||
graphicsMan->state++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
ov21_021E894C(v3, v2, graphicsMan->heapID);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 3:
|
||||
Heap_Free(graphicsMan->pageGraphics);
|
||||
graphicsMan->state++;
|
||||
break;
|
||||
case 4:
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov21_021E8794(UnkStruct_ov21_021E8794 *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
Sprite_SetExplicitOAMMode(param0->unk_00[v0], GX_OAM_MODE_XLU);
|
||||
sub_02012AF0(param0->unk_04[v0]->fontOAM, GX_OAM_MODE_XLU);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E87AC(UnkStruct_ov21_021E8794 *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
Sprite_SetExplicitOAMMode(param0->unk_00[v0], GX_OAM_MODE_NORMAL);
|
||||
sub_02012AF0(param0->unk_04[v0]->fontOAM, GX_OAM_MODE_NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E87C4(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, const UnkStruct_ov21_021E8570 *param2, BOOL param3)
|
||||
{
|
||||
ov21_021E8794(param0);
|
||||
|
||||
if (ov21_021E33A4(param2->unk_08)) {
|
||||
if (param3) {
|
||||
PokedexGraphics_InitBlendTransition(&(*param1)->blendSub, 1, -16, 0, 0, 16, (GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), (GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), 1);
|
||||
} else {
|
||||
PokedexGraphics_InitBlendTransition(&(*param1)->blendSub, 1, 0, -16, 16, 0, (GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), (GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_BD), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL ov21_021E8830(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, const UnkStruct_ov21_021E8570 *param2, BOOL param3)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
if (ov21_021E33A4(param2->unk_08)) {
|
||||
v0 = PokedexGraphics_TakeBlendTransitionStep(&(*param1)->blendSub);
|
||||
} else {
|
||||
v0 = BrightnessController_IsTransitionComplete(BRIGHTNESS_SUB_SCREEN);
|
||||
}
|
||||
|
||||
if (v0) {
|
||||
if (param3) {
|
||||
ov21_021E87AC(param0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov21_021E886C(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1, enum HeapID heapID)
|
||||
{
|
||||
param0->unk_04 = Heap_Alloc(heapID, sizeof(TouchScreenHitTable) * 1);
|
||||
|
||||
PokedexMain_SetHitTableRect(¶m0->unk_04[0], 144 - (80 / 2), 144 + (80 / 2), 128 - (240 / 2), 128 + (240 / 2));
|
||||
|
||||
param0->unk_08.unk_00 = param1;
|
||||
param0->unk_08.unk_04 = param0;
|
||||
param0->unk_00 = TouchScreenActions_RegisterHandler(param0->unk_04, 1, ov21_021E88E8, ¶m0->unk_08, heapID);
|
||||
}
|
||||
|
||||
static void ov21_021E88B0(UnkStruct_ov21_021E88B0 *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
param0->unk_10[v0] = 3;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E88B8(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1)
|
||||
{
|
||||
TouchScreenActions_HandleAction(param0->unk_00);
|
||||
|
||||
if (param0->unk_14) {
|
||||
param0->unk_10[0] = 2;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E88D0(UnkStruct_ov21_021E88B0 *param0)
|
||||
{
|
||||
TouchScreenActions_Free(param0->unk_00);
|
||||
Heap_Free(param0->unk_04);
|
||||
|
||||
param0->unk_04 = NULL;
|
||||
}
|
||||
|
||||
static void ov21_021E88E8(u32 param0, enum TouchScreenButtonState param1, void *param2)
|
||||
{
|
||||
UnkStruct_ov21_021E88E8 *v0 = param2;
|
||||
UnkStruct_ov21_021E8570 *v1 = v0->unk_00;
|
||||
UnkStruct_ov21_021E88B0 *v2 = v0->unk_04;
|
||||
|
||||
v2->unk_10[param0] = param1;
|
||||
|
||||
switch (param1) {
|
||||
case TOUCH_BUTTON_PRESSED:
|
||||
switch (param0) {
|
||||
case 0:
|
||||
ov21_021E33B4(v1->unk_08, 1);
|
||||
v2->unk_14 = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case TOUCH_BUTTON_HELD:
|
||||
switch (param0) {
|
||||
case 0:
|
||||
v2->unk_14 = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E891C(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int heapID)
|
||||
{
|
||||
ov21_021E898C(param1, heapID);
|
||||
ov21_021E89F4(param0, param1, heapID);
|
||||
ov21_021E8AA8(param0, param1, heapID);
|
||||
ov21_021E8B40(param0, param1, heapID);
|
||||
}
|
||||
|
||||
static void ov21_021E894C(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int heapID)
|
||||
{
|
||||
int v0;
|
||||
|
||||
PokedexGraphics_LoadGraphicNarcPaletteData(*param1, background_sub_2_NCLR, 4, 4 * 32, 32, heapID);
|
||||
ov21_021E8B34(param0);
|
||||
ov21_021E8BDC(param0, param1);
|
||||
ov21_021E8A74(param0, param1);
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
if (param0->unk_2C[v0]) {
|
||||
Heap_Free(param0->unk_2C[v0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E898C(PokedexGraphicData **param0, int heapID)
|
||||
{
|
||||
void *v0;
|
||||
NNSG2dScreenData *v1;
|
||||
|
||||
PokedexGraphics_LoadGraphicNarcCharacterData(*param0, entry_sub_NCGR_lz, (*param0)->bgConfig, 6, 0, 0, TRUE, heapID);
|
||||
|
||||
v0 = PokedexGraphics_GetGraphicNarcTilemapData(*param0, forms_sub_NSCR_lz, TRUE, &v1, heapID);
|
||||
|
||||
Bg_LoadToTilemapRect((*param0)->bgConfig, 6, v1->rawData, 0, 0, v1->screenWidth / 8, v1->screenHeight / 8);
|
||||
Heap_Free(v0);
|
||||
Bg_ScheduleTilemapTransfer((*param0)->bgConfig, 6);
|
||||
}
|
||||
|
||||
static void ov21_021E89F4(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2)
|
||||
{
|
||||
PokedexGraphicData *v0 = *param1;
|
||||
NARC *v1 = PokedexGraphics_GetNARC(v0);
|
||||
|
||||
param0->unk_08[0] = SpriteResourceCollection_AddTilesFrom(v0->spriteResourceCollection[0], v1, size_buttons_pressed_NCGR_lz, TRUE, size_buttons_pressed_NCGR_lz + 13000, NNS_G2D_VRAM_TYPE_2DSUB, param2);
|
||||
|
||||
SpriteTransfer_RequestCharAtEnd(param0->unk_08[0]);
|
||||
SpriteResource_ReleaseData(param0->unk_08[0]);
|
||||
|
||||
param0->unk_08[2] = SpriteResourceCollection_AddFrom(v0->spriteResourceCollection[2], v1, size_buttons_pressed_cell_NCER_lz, TRUE, size_buttons_pressed_cell_NCER_lz + 13000, 2, param2);
|
||||
param0->unk_08[3] = SpriteResourceCollection_AddFrom(v0->spriteResourceCollection[3], v1, size_buttons_pressed_anim_NANR_lz, TRUE, size_buttons_pressed_anim_NANR_lz + 13000, 3, param2);
|
||||
}
|
||||
|
||||
static void ov21_021E8A74(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1)
|
||||
{
|
||||
PokedexGraphicData *v0 = *param1;
|
||||
|
||||
SpriteTransfer_ResetCharTransfer(param0->unk_08[0]);
|
||||
SpriteResourceCollection_Remove(v0->spriteResourceCollection[0], param0->unk_08[0]);
|
||||
SpriteResourceCollection_Remove(v0->spriteResourceCollection[2], param0->unk_08[2]);
|
||||
SpriteResourceCollection_Remove(v0->spriteResourceCollection[3], param0->unk_08[3]);
|
||||
}
|
||||
|
||||
static void ov21_021E8AA8(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2)
|
||||
{
|
||||
SpriteResourcesHeader v0;
|
||||
SpriteListTemplate v1;
|
||||
PokedexGraphicData *v2 = *param1;
|
||||
int v3;
|
||||
|
||||
SpriteResourcesHeader_Init(&v0, size_buttons_pressed_NCGR_lz + 13000, info_NCLR + 2100, size_buttons_pressed_cell_NCER_lz + 13000, size_buttons_pressed_anim_NANR_lz + 13000, 0xffffffff, 0xffffffff, FALSE, 2, v2->spriteResourceCollection[0], v2->spriteResourceCollection[1], v2->spriteResourceCollection[2], v2->spriteResourceCollection[3], NULL, NULL);
|
||||
|
||||
v1.list = v2->spriteList;
|
||||
v1.resourceData = &v0;
|
||||
v1.priority = 31;
|
||||
v1.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
|
||||
v1.heapID = param2;
|
||||
|
||||
v1.position.x = 128 << FX32_SHIFT;
|
||||
v1.position.y = 144 << FX32_SHIFT;
|
||||
v1.position.y += (192 << FX32_SHIFT);
|
||||
|
||||
param0->unk_00[0] = SpriteList_Add(&v1);
|
||||
|
||||
Sprite_SetAnim(param0->unk_00[0], 2);
|
||||
}
|
||||
|
||||
static void ov21_021E8B34(UnkStruct_ov21_021E8794 *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
Sprite_Delete(param0->unk_00[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8B40(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1, int param2)
|
||||
{
|
||||
Window *v0;
|
||||
PokedexDisplayBox displayBox;
|
||||
SpriteResource *v2;
|
||||
PokedexGraphicData *v3 = *param1;
|
||||
int v4;
|
||||
u32 v5;
|
||||
|
||||
GF_ASSERT(param0->unk_00[0]);
|
||||
|
||||
v2 = SpriteResourceCollection_Find(v3->spriteResourceCollection[1], info_NCLR + 2100);
|
||||
|
||||
displayBox.textMan = v3->textMan;
|
||||
displayBox.paletteProxy = SpriteTransfer_GetPaletteProxy(v2, NULL);
|
||||
displayBox.y = -8;
|
||||
displayBox.spriteResourcePriority = 2;
|
||||
displayBox.spriteListPriority = 0;
|
||||
displayBox.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
|
||||
displayBox.heapID = param2;
|
||||
|
||||
v4 = PlttTransfer_GetPlttOffset(displayBox.paletteProxy, NNS_G2D_VRAM_TYPE_2DSUB);
|
||||
v0 = PokedexTextManager_NewWindow(v3->textMan, 16, 2);
|
||||
v5 = PokedexTextManager_DisplayMessage(v3->textMan, v0, TEXT_BANK_POKEDEX, pl_msg_pokedex_anotherform, 0, 0);
|
||||
|
||||
displayBox.x = -(v5 / 2);
|
||||
displayBox.window = v0;
|
||||
displayBox.sprite = param0->unk_00[0];
|
||||
|
||||
param0->unk_04[0] = PokedexTextManager_NextTextData(&displayBox);
|
||||
|
||||
sub_02012A60(param0->unk_04[0]->fontOAM, v4 + 4);
|
||||
PokedexTextManager_FreeWindow(v0);
|
||||
}
|
||||
|
||||
static void ov21_021E8BDC(UnkStruct_ov21_021E8794 *param0, PokedexGraphicData **param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
PokedexTextManager_FreeTextData(param0->unk_04[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8BE8(PokedexGraphicData **param0, Sprite *param1, PokedexTextData *textData, int param3, int param4, int param5, int *param6, int heapID, int param8, int param9, void **param10)
|
||||
{
|
||||
int v0;
|
||||
NNSG2dPaletteData *v1;
|
||||
BOOL v2;
|
||||
BOOL v3 = 0;
|
||||
int v4;
|
||||
|
||||
ov21_021D144C(param1, param3);
|
||||
ov21_021E8C94(param1, textData, param4, param8, param9);
|
||||
|
||||
v0 = Sprite_GetAnimFrame(param1);
|
||||
|
||||
switch (v0) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (*param6 != 0) {
|
||||
v3 = 1;
|
||||
v4 = background_sub_2_NCLR;
|
||||
*param6 = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (*param6 != 1) {
|
||||
v3 = 1;
|
||||
v4 = background_sub_3_NCLR;
|
||||
*param6 = 1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (*param6 != 2) {
|
||||
v3 = 1;
|
||||
v4 = background_sub_1_NCLR;
|
||||
*param6 = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (v3) {
|
||||
if (*param10) {
|
||||
Heap_Free(*param10);
|
||||
}
|
||||
|
||||
*param10 = PokedexGraphics_GetGraphicNarcPaletteData(*param0, v4, &v1, heapID);
|
||||
|
||||
v2 = VramTransfer_Request(NNS_GFD_DST_2D_BG_PLTT_SUB, param5 * 32, v1->pRawData, 32);
|
||||
GF_ASSERT(v2);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8C94(Sprite *param0, PokedexTextData *textData, int param2, int param3, int param4)
|
||||
{
|
||||
int v0;
|
||||
|
||||
ov21_021D1498(param0, textData, param2);
|
||||
v0 = Sprite_GetAnimFrame(param0);
|
||||
|
||||
if (v0 < 2) {
|
||||
sub_02012AC0(textData->fontOAM, param3);
|
||||
} else {
|
||||
sub_02012AC0(textData->fontOAM, param4);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8CBC(PokedexGraphicData **param0, UnkStruct_ov21_021E8794 *param1, const UnkStruct_ov21_021E88B0 *param2, int param3)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
|
||||
for (v0 = 0; v0 < 1; v0++) {
|
||||
v1 = 4;
|
||||
|
||||
ov21_021E8BE8(param0, param1->unk_00[v0], param1->unk_04[v0], param2->unk_10[v0], -8, v1, ¶m1->unk_28[v0], param3, 4, 1, ¶m1->unk_2C[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8CF0(UnkStruct_ov21_021E88B0 *param0, UnkStruct_ov21_021E8570 *param1)
|
||||
{
|
||||
if (gSystem.heldKeys & PAD_BUTTON_A) {
|
||||
param0->unk_14 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8D04(PokedexGraphicData **param0, const UnkStruct_ov21_021E8570 *param1)
|
||||
{
|
||||
if (ov21_021E33BC(param1->unk_08) == 1) {
|
||||
ov21_021E8D28(param0, 128, 144, 228, 64);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov21_021E8D28(PokedexGraphicData **param0, int param1, int param2, int param3, int param4)
|
||||
{
|
||||
PokedexGraphicData *v0 = *param0;
|
||||
PokedexGraphics_TransformCursor(v0, param1, param2, param3, param4);
|
||||
}
|
||||
|
||||
static void ov21_021E8D3C(const UnkStruct_ov21_021E8570 *param0)
|
||||
{
|
||||
ov21_021DF7A0(param0->unk_0C, 1);
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
#include "struct_defs/struct_02099F80.h"
|
||||
|
||||
#include "applications/pokedex/crysub.h"
|
||||
#include "applications/pokedex/formsub.h"
|
||||
#include "applications/pokedex/funcptr_ov21_021E9B74.h"
|
||||
#include "applications/pokedex/funcptr_ov21_021E9B9C.h"
|
||||
#include "applications/pokedex/ov21_021D423C.h"
|
||||
|
|
@ -24,7 +25,6 @@
|
|||
#include "applications/pokedex/ov21_021E3FFC.h"
|
||||
#include "applications/pokedex/ov21_021E68F4.h"
|
||||
#include "applications/pokedex/ov21_021E737C.h"
|
||||
#include "applications/pokedex/ov21_021E8484.h"
|
||||
#include "applications/pokedex/pokedex_app.h"
|
||||
#include "applications/pokedex/pokedex_graphics.h"
|
||||
#include "applications/pokedex/pokedex_height_check.h"
|
||||
|
|
@ -222,7 +222,7 @@ const static UnkFuncPtr_ov21_021E9B74 Unk_ov21_021E9B34[8] = {
|
|||
ov21_021DDD2C,
|
||||
CrySub_Init,
|
||||
ov21_021E68F4,
|
||||
ov21_021E8484
|
||||
FormSub_Init
|
||||
};
|
||||
|
||||
const static UnkFuncPtr_ov21_021E9B9C Unk_ov21_021E9B9C[10] = {
|
||||
|
|
@ -246,7 +246,7 @@ const static UnkFuncPtr_ov21_021E9B9C Unk_ov21_021E9B54[8] = {
|
|||
ov21_021DDD8C,
|
||||
CrySub_Free,
|
||||
ov21_021E6954,
|
||||
ov21_021E84E4
|
||||
FormSub_Free
|
||||
};
|
||||
|
||||
PokedexApp *PokedexMain_NewPokedexApp(enum HeapID heapID, const PokedexOverlayArgs *pokedexOverlayArgs)
|
||||
|
|
@ -509,31 +509,31 @@ void ov21_021D144C(Sprite *param0, int param1)
|
|||
}
|
||||
}
|
||||
|
||||
void ov21_021D1498(Sprite *param0, PokedexTextData *textData, int param2)
|
||||
void PokedexMain_SetButtonY(Sprite *sprite, PokedexTextData *textData, int setY)
|
||||
{
|
||||
int v0 = Sprite_GetAnimFrame(param0);
|
||||
int v1, v2;
|
||||
int frame = Sprite_GetAnimFrame(sprite);
|
||||
int x, y;
|
||||
|
||||
switch (v0) {
|
||||
switch (frame) {
|
||||
case 0:
|
||||
sub_020129A4(textData->fontOAM, &v1, &v2);
|
||||
v2 = param2;
|
||||
sub_020128C4(textData->fontOAM, v1, v2);
|
||||
FontOAM_GetXY(textData->fontOAM, &x, &y);
|
||||
y = setY;
|
||||
FontOAM_SetXY(textData->fontOAM, x, y);
|
||||
break;
|
||||
case 1:
|
||||
sub_020129A4(textData->fontOAM, &v1, &v2);
|
||||
v2 = param2 + -2;
|
||||
sub_020128C4(textData->fontOAM, v1, v2);
|
||||
FontOAM_GetXY(textData->fontOAM, &x, &y);
|
||||
y = setY + -2;
|
||||
FontOAM_SetXY(textData->fontOAM, x, y);
|
||||
break;
|
||||
case 2:
|
||||
sub_020129A4(textData->fontOAM, &v1, &v2);
|
||||
v2 = param2 + -4;
|
||||
sub_020128C4(textData->fontOAM, v1, v2);
|
||||
FontOAM_GetXY(textData->fontOAM, &x, &y);
|
||||
y = setY + -4;
|
||||
FontOAM_SetXY(textData->fontOAM, x, y);
|
||||
break;
|
||||
case 3:
|
||||
sub_020129A4(textData->fontOAM, &v1, &v2);
|
||||
v2 = param2 + -2;
|
||||
sub_020128C4(textData->fontOAM, v1, v2);
|
||||
FontOAM_GetXY(textData->fontOAM, &x, &y);
|
||||
y = setY + -2;
|
||||
FontOAM_SetXY(textData->fontOAM, x, y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -542,7 +542,7 @@ void ov21_021D1524(Sprite *param0, PokedexTextData *textData, int param2, int pa
|
|||
{
|
||||
int v0;
|
||||
|
||||
ov21_021D1498(param0, textData, param2);
|
||||
PokedexMain_SetButtonY(param0, textData, param2);
|
||||
v0 = Sprite_GetAnimFrame(param0);
|
||||
|
||||
if (v0 < 2) {
|
||||
|
|
|
|||
|
|
@ -1835,7 +1835,7 @@ static void ov16_02269668(UnkStruct_ov16_02268A14 *param0, int param1, int param
|
|||
ov16_0226A698(param0);
|
||||
v8 = ov16_0226A7A4(param0, v7, v5, v6->unk_04, v6->unk_06, v6->unk_03);
|
||||
|
||||
sub_020129A4(param0->unk_4CC[0].unk_00, &v9, &v10);
|
||||
FontOAM_GetXY(param0->unk_4CC[0].unk_00, &v9, &v10);
|
||||
|
||||
if (v5 == 4) {
|
||||
v9 += param0->unk_4CC[0].unk_10 + 32 / 2;
|
||||
|
|
@ -2678,7 +2678,7 @@ static void ov16_0226A98C(UnkStruct_ov16_02268A14 *param0, UnkStruct_ov16_0226A9
|
|||
v4 = sub_020127E8(&v0);
|
||||
|
||||
sub_02012AC0(v4, param5);
|
||||
sub_020128C4(v4, param7, param8);
|
||||
FontOAM_SetXY(v4, param7, param8);
|
||||
|
||||
if (param10 == NULL) {
|
||||
Window_Remove(&v1);
|
||||
|
|
@ -3236,8 +3236,8 @@ static void ov16_0226B390(SysTask *param0, void *param1)
|
|||
switch (v0->unk_67C.unk_00) {
|
||||
case 0:
|
||||
ov16_0226B31C(v0, v0->unk_67C.unk_04_val3.unk_00, v0->unk_67C.unk_04_val3.unk_04, v0->unk_67C.unk_04_val3.unk_0C, 2);
|
||||
sub_020129A4(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, v2, v3 + -2);
|
||||
|
||||
if ((v0->unk_67C.unk_04_val3.unk_0E != 0xff) && (v0->unk_60C[v0->unk_67C.unk_04_val3.unk_0E] != NULL)) {
|
||||
ManagedSprite_OffsetPositionXY(v0->unk_60C[v0->unk_67C.unk_04_val3.unk_0E], 0, -2);
|
||||
|
|
@ -3256,8 +3256,8 @@ static void ov16_0226B390(SysTask *param0, void *param1)
|
|||
v0->unk_67C.unk_00++;
|
||||
case 2:
|
||||
ov16_0226B31C(v0, v0->unk_67C.unk_04_val3.unk_00, v0->unk_67C.unk_04_val3.unk_04, v0->unk_67C.unk_04_val3.unk_0C, 1);
|
||||
sub_020129A4(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v0->unk_67C.unk_04_val3.unk_0D].unk_00, v2, v3 + 1);
|
||||
|
||||
if ((v0->unk_67C.unk_04_val3.unk_0E != 0xff) && (v0->unk_60C[v0->unk_67C.unk_04_val3.unk_0E] != NULL)) {
|
||||
ManagedSprite_OffsetPositionXY(v0->unk_60C[v0->unk_67C.unk_04_val3.unk_0E], 0, 1);
|
||||
|
|
@ -3338,12 +3338,12 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
|
|||
ov16_0226B31C(v0, v0->unk_67C.unk_04_val3.unk_00, v0->unk_67C.unk_04_val3.unk_04, v0->unk_67C.unk_04_val3.unk_0C, 2);
|
||||
|
||||
if (v0->unk_67C.unk_04_val3.unk_08 != 0xff) {
|
||||
sub_020129A4(v0->unk_4CC[v4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v4].unk_00, v2, v3 + -2);
|
||||
sub_020129A4(v0->unk_4CC[v5].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v5].unk_00, v2, v3 + -2);
|
||||
sub_020129A4(v0->unk_4CC[v6].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v6].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[v4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v4].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[v5].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v5].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[v6].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v6].unk_00, v2, v3 + -2);
|
||||
|
||||
if (v9 != 0) {
|
||||
Sprite_OffsetPositionXY(v0->moveSelectSprites[v7]->sprite, 0, -2);
|
||||
|
|
@ -3353,8 +3353,8 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
|
|||
}
|
||||
}
|
||||
} else {
|
||||
sub_020129A4(v0->unk_4CC[4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[4].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[4].unk_00, v2, v3 + -2);
|
||||
}
|
||||
|
||||
v0->unk_67C.unk_00++;
|
||||
|
|
@ -3372,12 +3372,12 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
|
|||
ov16_0226B31C(v0, v0->unk_67C.unk_04_val3.unk_00, v0->unk_67C.unk_04_val3.unk_04, v0->unk_67C.unk_04_val3.unk_0C, 1);
|
||||
|
||||
if (v0->unk_67C.unk_04_val3.unk_08 != 0xff) {
|
||||
sub_020129A4(v0->unk_4CC[v4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v4].unk_00, v2, v3 + 1);
|
||||
sub_020129A4(v0->unk_4CC[v5].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v5].unk_00, v2, v3 + 1);
|
||||
sub_020129A4(v0->unk_4CC[v6].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[v6].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[v4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v4].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[v5].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v5].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[v6].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[v6].unk_00, v2, v3 + 1);
|
||||
|
||||
if (v9 != 0) {
|
||||
Sprite_OffsetPositionXY(v0->moveSelectSprites[v7]->sprite, 0, 1);
|
||||
|
|
@ -3387,8 +3387,8 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
|
|||
}
|
||||
}
|
||||
} else {
|
||||
sub_020129A4(v0->unk_4CC[4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[4].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[4].unk_00, v2, v3 + 1);
|
||||
}
|
||||
|
||||
v0->unk_67C.unk_00++;
|
||||
|
|
@ -3423,8 +3423,8 @@ static void ov16_0226B780(SysTask *param0, void *param1)
|
|||
ov16_0226B31C(v0, Unk_ov16_022703D4[i], &Unk_ov16_0227033C[i], 4, 2);
|
||||
|
||||
if (v0->unk_4CC[0 + i].unk_00 != NULL) {
|
||||
sub_020129A4(v0->unk_4CC[0 + i].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[0 + i].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_4CC[0 + i].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[0 + i].unk_00, v2, v3 + -2);
|
||||
}
|
||||
|
||||
if (v0->unk_60C[i] != NULL) {
|
||||
|
|
@ -3452,8 +3452,8 @@ static void ov16_0226B780(SysTask *param0, void *param1)
|
|||
ov16_0226B31C(v0, Unk_ov16_022703D4[i], &Unk_ov16_0227033C[i], 4, 1);
|
||||
|
||||
if (v0->unk_4CC[0 + i].unk_00 != NULL) {
|
||||
sub_020129A4(v0->unk_4CC[0 + i].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_4CC[0 + i].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_4CC[0 + i].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_4CC[0 + i].unk_00, v2, v3 + 1);
|
||||
}
|
||||
|
||||
if (v0->unk_60C[i] != NULL) {
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ pokeplatinum_c = files(
|
|||
'applications/pokedex/pokedex_height_check.c',
|
||||
'applications/pokedex/ov21_021E68F4.c',
|
||||
'applications/pokedex/ov21_021E737C.c',
|
||||
'applications/pokedex/ov21_021E8484.c',
|
||||
'applications/pokedex/formsub.c',
|
||||
'applications/pokedex/ov21_021E8D48.c',
|
||||
'overlay022/ov22_02254DE0.c',
|
||||
'overlay022/ov22_02255094.c',
|
||||
|
|
|
|||
|
|
@ -1590,7 +1590,7 @@ static void ov10_022213B8(UnkStruct_ov10_0221FB28 *param0)
|
|||
|
||||
static void ov10_02221440(UnkStruct_ov10_0221FB28 *param0, u32 param1, s16 param2, s16 param3)
|
||||
{
|
||||
sub_020128C4(param0->unk_B3C[param1], param0->unk_B60[param1] + param2, param0->unk_B64[param1] + param3);
|
||||
FontOAM_SetXY(param0->unk_B3C[param1], param0->unk_B60[param1] + param2, param0->unk_B64[param1] + param3);
|
||||
}
|
||||
|
||||
static void ov10_0222146C(UnkStruct_ov10_0221FB28 *param0)
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ void ov17_0223F1E8(int heapID, BgConfig *param1, SpriteManager *param2, UnkStruc
|
|||
sub_02012A90(v4, param8);
|
||||
}
|
||||
|
||||
sub_020128C4(v4, param10, param11);
|
||||
FontOAM_SetXY(v4, param10, param11);
|
||||
Window_Remove(&v1);
|
||||
|
||||
param4->unk_00 = v4;
|
||||
|
|
@ -176,7 +176,7 @@ void ov17_0223F2F8(UnkStruct_ov17_0223F2E4 *param0, int param1, int param2, int
|
|||
}
|
||||
|
||||
param2 += 0 - 8;
|
||||
sub_020128C4(param0->unk_00, param1, param2);
|
||||
FontOAM_SetXY(param0->unk_00, param1, param2);
|
||||
}
|
||||
|
||||
Strbuf *ov17_0223F310(u32 param0, u32 heapID)
|
||||
|
|
|
|||
|
|
@ -1039,7 +1039,7 @@ static void ov17_02240138(UnkStruct_ov17_0223F7E4 *param0, UnkStruct_ov17_022401
|
|||
v4 = sub_020127E8(&v0);
|
||||
|
||||
sub_02012AC0(v4, param5);
|
||||
sub_020128C4(v4, param7, param8);
|
||||
FontOAM_SetXY(v4, param7, param8);
|
||||
|
||||
if (param10 == NULL) {
|
||||
Window_Remove(&v1);
|
||||
|
|
@ -1212,8 +1212,8 @@ static void ov17_0224051C(SysTask *param0, void *param1)
|
|||
switch (v0->unk_2CC.unk_00) {
|
||||
case 0:
|
||||
ov17_022403B0(v0, v0->unk_2CC.unk_04_val1.unk_0C, v0->unk_2CC.unk_04_val1.unk_10, v0->unk_2CC.unk_04_val1.unk_18, 2);
|
||||
sub_020129A4(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, v2, v3 + -2);
|
||||
|
||||
for (v4 = 0; v4 < 3; v4++) {
|
||||
if (v0->unk_2CC.unk_04_val1.unk_00[v4] != NULL) {
|
||||
|
|
@ -1235,8 +1235,8 @@ static void ov17_0224051C(SysTask *param0, void *param1)
|
|||
|
||||
case 2:
|
||||
ov17_022403B0(v0, v0->unk_2CC.unk_04_val1.unk_0C, v0->unk_2CC.unk_04_val1.unk_10, v0->unk_2CC.unk_04_val1.unk_18, 1);
|
||||
sub_020129A4(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v0->unk_2CC.unk_04_val1.unk_19].unk_00, v2, v3 + 1);
|
||||
|
||||
for (v4 = 0; v4 < 3; v4++) {
|
||||
if (v0->unk_2CC.unk_04_val1.unk_00[v4] != NULL) {
|
||||
|
|
@ -1321,12 +1321,12 @@ static void ov17_02240658(SysTask *param0, void *param1)
|
|||
ov17_022403B0(v0, v0->unk_2CC.unk_04_val1.unk_0C, v0->unk_2CC.unk_04_val1.unk_10, v0->unk_2CC.unk_04_val1.unk_18, 2);
|
||||
|
||||
if (1) {
|
||||
sub_020129A4(v0->unk_40[v4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v4].unk_00, v2, v3 + -2);
|
||||
sub_020129A4(v0->unk_40[v5].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v5].unk_00, v2, v3 + -2);
|
||||
sub_020129A4(v0->unk_40[v6].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v6].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_40[v4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v4].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_40[v5].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v5].unk_00, v2, v3 + -2);
|
||||
FontOAM_GetXY(v0->unk_40[v6].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v6].unk_00, v2, v3 + -2);
|
||||
|
||||
if (v8 != 0) {
|
||||
Sprite_OffsetPositionXY(v0->unk_118[v7]->sprite, 0, -2);
|
||||
|
|
@ -1356,12 +1356,12 @@ static void ov17_02240658(SysTask *param0, void *param1)
|
|||
ov17_022403B0(v0, v0->unk_2CC.unk_04_val1.unk_0C, v0->unk_2CC.unk_04_val1.unk_10, v0->unk_2CC.unk_04_val1.unk_18, 1);
|
||||
|
||||
if (1) {
|
||||
sub_020129A4(v0->unk_40[v4].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v4].unk_00, v2, v3 + 1);
|
||||
sub_020129A4(v0->unk_40[v5].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v5].unk_00, v2, v3 + 1);
|
||||
sub_020129A4(v0->unk_40[v6].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_40[v6].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_40[v4].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v4].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_40[v5].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v5].unk_00, v2, v3 + 1);
|
||||
FontOAM_GetXY(v0->unk_40[v6].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_40[v6].unk_00, v2, v3 + 1);
|
||||
|
||||
if (v8 != 0) {
|
||||
Sprite_OffsetPositionXY(v0->unk_118[v7]->sprite, 0, 1);
|
||||
|
|
|
|||
|
|
@ -709,7 +709,7 @@ static void ov17_02249BC4(UnkStruct_ov17_022492DC *param0, UnkStruct_ov17_02249B
|
|||
v4 = sub_020127E8(&v0);
|
||||
|
||||
sub_02012AC0(v4, param5);
|
||||
sub_020128C4(v4, param7, param8);
|
||||
FontOAM_SetXY(v4, param7, param8);
|
||||
Window_Remove(&v1);
|
||||
|
||||
param1->unk_00 = v4;
|
||||
|
|
@ -797,8 +797,8 @@ static void ov17_02249DA0(SysTask *param0, void *param1)
|
|||
case 0:
|
||||
v0->unk_8C.unk_04_val1.unk_00 = ov17_02249B08(v0, 4, v0->unk_8C.unk_04_val1.unk_2C, v0->unk_8C.unk_04_val1.unk_1C[0], v0->unk_8C.unk_04_val1.unk_04[0], v0->unk_8C.unk_04_val1.unk_2E);
|
||||
|
||||
sub_020129A4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + 16);
|
||||
FontOAM_GetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + 16);
|
||||
|
||||
for (v4 = 0; v4 < 3; v4++) {
|
||||
if (v0->unk_8C.unk_04_val1.unk_10[v4] != NULL) {
|
||||
|
|
@ -826,8 +826,8 @@ static void ov17_02249DA0(SysTask *param0, void *param1)
|
|||
case 3:
|
||||
v0->unk_8C.unk_04_val1.unk_00 = ov17_02249B08(v0, 4, v0->unk_8C.unk_04_val1.unk_2C, v0->unk_8C.unk_04_val1.unk_1C[1], v0->unk_8C.unk_04_val1.unk_04[1], v0->unk_8C.unk_04_val1.unk_2E);
|
||||
|
||||
sub_020129A4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + -4);
|
||||
FontOAM_GetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + -4);
|
||||
|
||||
for (v4 = 0; v4 < 3; v4++) {
|
||||
if (v0->unk_8C.unk_04_val1.unk_10[v4] != NULL) {
|
||||
|
|
@ -855,8 +855,8 @@ static void ov17_02249DA0(SysTask *param0, void *param1)
|
|||
case 6:
|
||||
v0->unk_8C.unk_04_val1.unk_00 = ov17_02249B08(v0, 4, v0->unk_8C.unk_04_val1.unk_2C, v0->unk_8C.unk_04_val1.unk_1C[2], v0->unk_8C.unk_04_val1.unk_04[2], v0->unk_8C.unk_04_val1.unk_2E);
|
||||
|
||||
sub_020129A4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
sub_020128C4(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + (-(16 + -4)));
|
||||
FontOAM_GetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, &v2, &v3);
|
||||
FontOAM_SetXY(v0->unk_1C[v0->unk_8C.unk_04_val1.unk_30].unk_00, v2, v3 + (-(16 + -4)));
|
||||
|
||||
for (v4 = 0; v4 < 3; v4++) {
|
||||
if (v0->unk_8C.unk_04_val1.unk_10[v4] != NULL) {
|
||||
|
|
|
|||
|
|
@ -708,9 +708,9 @@ static void ov17_0224A8D4(SysTask *param0, void *param1)
|
|||
|
||||
switch (v0->unk_10) {
|
||||
case 0:
|
||||
sub_020129A4(v0->unk_04->unk_00, &v1, &v2);
|
||||
FontOAM_GetXY(v0->unk_04->unk_00, &v1, &v2);
|
||||
v2 += -4;
|
||||
sub_020128C4(v0->unk_04->unk_00, v1, v2);
|
||||
FontOAM_SetXY(v0->unk_04->unk_00, v1, v2);
|
||||
ManagedSprite_OffsetPositionXY(v0->unk_00, 0, -4);
|
||||
|
||||
v0->unk_0C++;
|
||||
|
|
|
|||
|
|
@ -406,15 +406,15 @@ static void ov22_0225A2D0(UnkStruct_ov22_02259C58 *param0, int param1)
|
|||
static void ov22_0225A2F4(UnkStruct_ov22_0225A154 *param0, int param1)
|
||||
{
|
||||
if (param1 == 0) {
|
||||
sub_020128C4(param0->unk_10, 0, 15);
|
||||
FontOAM_SetXY(param0->unk_10, 0, 15);
|
||||
sub_02012A60(param0->unk_10, 4);
|
||||
} else {
|
||||
if (param1 == 1) {
|
||||
sub_020128C4(param0->unk_10, 0, 19);
|
||||
FontOAM_SetXY(param0->unk_10, 0, 19);
|
||||
}
|
||||
|
||||
if (param1 == 3) {
|
||||
sub_020128C4(param0->unk_10, 0, 19);
|
||||
FontOAM_SetXY(param0->unk_10, 0, 19);
|
||||
sub_02012A60(param0->unk_10, 3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,7 +325,7 @@ void ov62_022307C0(UnkStruct_0208C06C *param0)
|
|||
|
||||
for (v0 = 0; v0 < 5; v0++) {
|
||||
ov62_02230E68(v1->unk_00[v0].unk_00, 42 + 8, (25 + (36 * 4) + (16 * (5 - (param0->unk_534.unk_1AC)))) + 48);
|
||||
sub_020128C4(param0->unk_534.unk_00[v0].unk_14, 36, -8);
|
||||
FontOAM_SetXY(param0->unk_534.unk_00[v0].unk_14, 36, -8);
|
||||
}
|
||||
|
||||
v0 = 0;
|
||||
|
|
@ -477,7 +477,7 @@ void ov62_02230AF0(UnkStruct_0208C06C *param0)
|
|||
for (v0 = 0; v0 < param0->unk_534.unk_1A4; v0++) {
|
||||
ManagedSprite_SetAnim(param0->unk_534.unk_00[v0].unk_00, param0->unk_534.unk_190[v0]->unk_0C);
|
||||
ov62_02230FC8(param0, ¶m0->unk_534.unk_00[v0], param0->unk_534.unk_190[v0]->unk_08, param0->unk_534.unk_190[v0]);
|
||||
sub_020128C4(param0->unk_534.unk_00[v0].unk_14, 36, -8);
|
||||
FontOAM_SetXY(param0->unk_534.unk_00[v0].unk_14, 36, -8);
|
||||
sub_020129D0(param0->unk_534.unk_00[v0].unk_14, 1);
|
||||
ManagedSprite_SetDrawFlag(param0->unk_534.unk_00[v0].unk_00, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2512,7 +2512,7 @@ void ov62_0223454C(UnkStruct_0208C06C *param0, UnkStruct_ov62_022312B0 *param1,
|
|||
ov62_0223118C(param1, ¶m0->unk_14, param2);
|
||||
ov62_0223124C(param1, ¶m0->unk_14, param3);
|
||||
ManagedSprite_SetPositionXY(param1->unk_08, param4, param5);
|
||||
sub_020128C4(param1->unk_0C, param6, param7);
|
||||
FontOAM_SetXY(param1->unk_0C, param6, param7);
|
||||
sub_020129D0(param1->unk_0C, param9);
|
||||
ManagedSprite_SetAnim(param1->unk_08, param8);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -297,7 +297,7 @@ BOOL ov62_02235008(UnkStruct_0208C06C *param0)
|
|||
ov62_02230E68(param0->unk_534.unk_C8[v1].unk_00, 42, (25 + (36 * (5 - 1)) + (16 * (5 - (param0->unk_534.unk_1AC)))));
|
||||
ManagedSprite_GetPositionFxXY(param0->unk_534.unk_C8[v1].unk_00, &v0->unk_00[v1].unk_0C, &v2);
|
||||
ManagedSprite_SetPositionFxXY(param0->unk_534.unk_C8[v1].unk_00, v0->unk_00[v1].unk_0C, (25 + (36 * (5 - 1)) + (16 * (5 - (param0->unk_534.unk_1AC)))) * FX32_ONE);
|
||||
sub_020128C4(param0->unk_534.unk_C8[v1].unk_14, 36, -8);
|
||||
FontOAM_SetXY(param0->unk_534.unk_C8[v1].unk_14, 36, -8);
|
||||
sub_020129D0(param0->unk_534.unk_C8[v1].unk_14, 1);
|
||||
}
|
||||
|
||||
|
|
@ -340,7 +340,7 @@ BOOL ov62_02235008(UnkStruct_0208C06C *param0)
|
|||
v0->unk_00[v3].unk_04 += (-4 * 1);
|
||||
|
||||
ManagedSprite_SetPositionFxXY(param0->unk_534.unk_C8[v3].unk_00, v7, v8);
|
||||
sub_020128C4(param0->unk_534.unk_C8[v3].unk_14, 36, -8);
|
||||
FontOAM_SetXY(param0->unk_534.unk_C8[v3].unk_14, 36, -8);
|
||||
}
|
||||
if (v4 == param0->unk_534.unk_1AC) {
|
||||
param0->unk_08++;
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ void ov62_022354A4(SysTask *param0, void *param1)
|
|||
}
|
||||
|
||||
ov62_02230E68(v0->unk_20, v1, v2);
|
||||
sub_020128C4(v0->unk_24, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_24, 36, -8);
|
||||
|
||||
*(v0->unk_2C) = 1;
|
||||
} break;
|
||||
|
|
|
|||
|
|
@ -739,7 +739,7 @@ static void ov62_02236C20(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetAnim(v0->unk_158[0].unk_08, 0);
|
||||
ManagedSprite_SetPositionXY(v0->unk_158[0].unk_08, 80, 232);
|
||||
sub_020128C4(v0->unk_158[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_158[0].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_158[0].unk_0C, 1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ static void ov62_02236CBC(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_9C[1].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_9C[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_9C[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_02236CF8(UnkStruct_0208C06C *param0, int param1)
|
||||
|
|
@ -107,7 +107,7 @@ static void ov62_02236D48(UnkStruct_0208C06C *param0)
|
|||
ov62_0223124C(&v0->unk_9C[1], ¶m0->unk_14, 3);
|
||||
|
||||
ManagedSprite_SetPositionXY(v0->unk_9C[1].unk_08, 128, 232);
|
||||
sub_020128C4(v0->unk_9C[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_9C[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_9C[1].unk_0C, 1);
|
||||
|
||||
v0->unk_94[1] = ov62_022313E0(param0, NNS_G2D_VRAM_TYPE_2DSUB);
|
||||
|
|
|
|||
|
|
@ -1311,8 +1311,8 @@ static void ov62_0223958C(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_198[0].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_198[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_198[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_198[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_198[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_02239608(UnkStruct_0208C06C *param0)
|
||||
|
|
@ -1333,8 +1333,8 @@ static void ov62_02239608(UnkStruct_0208C06C *param0)
|
|||
ManagedSprite_SetAnim(v0->unk_198[1].unk_08, 4);
|
||||
ManagedSprite_SetPositionXY(v0->unk_198[0].unk_08, 32, 232);
|
||||
ManagedSprite_SetPositionXY(v0->unk_198[1].unk_08, 128, 232);
|
||||
sub_020128C4(v0->unk_198[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_198[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_198[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_198[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_198[0].unk_0C, 1);
|
||||
sub_020129D0(v0->unk_198[1].unk_0C, 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -580,8 +580,8 @@ static void ov62_0223A4C8(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_348[0].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_348[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_348[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_348[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_348[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static BOOL ov62_0223A544(UnkStruct_0208C06C *param0)
|
||||
|
|
|
|||
|
|
@ -521,8 +521,8 @@ static void ov62_0223D3A8(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_A4[1].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_A4[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_A4[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_A4[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_A4[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_0223D424(UnkStruct_0208C06C *param0)
|
||||
|
|
@ -541,8 +541,8 @@ static void ov62_0223D424(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetPositionXY(v0->unk_A4[0].unk_08, 32, 232);
|
||||
ManagedSprite_SetPositionXY(v0->unk_A4[1].unk_08, 128, 232);
|
||||
sub_020128C4(v0->unk_A4[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_A4[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_A4[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_A4[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_A4[0].unk_0C, 0);
|
||||
sub_020129D0(v0->unk_A4[1].unk_0C, 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -224,8 +224,8 @@ static void ov62_0223E01C(UnkStruct_0208C06C *param0)
|
|||
ManagedSprite_SetAnim(v0->unk_114[1].unk_08, 3);
|
||||
ManagedSprite_SetPositionXY(v0->unk_114[0].unk_08, 32, 232);
|
||||
ManagedSprite_SetPositionXY(v0->unk_114[1].unk_08, 128, 232);
|
||||
sub_020128C4(v0->unk_114[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_114[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_114[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_114[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_114[0].unk_0C, 1);
|
||||
sub_020129D0(v0->unk_114[1].unk_0C, 1);
|
||||
|
||||
|
|
@ -870,7 +870,7 @@ static void ov62_0223EF60(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetPositionXY(v0->unk_114[v1].unk_08, 42 + 8, (25 + (36 * (v1)) + (16 * (5 - 4))) + 64);
|
||||
ManagedSprite_SetAnim(v0->unk_114[v1].unk_08, v3[v1]);
|
||||
sub_020128C4(v0->unk_114[v1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_114[v1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_114[v1].unk_0C, 1);
|
||||
}
|
||||
}
|
||||
|
|
@ -913,8 +913,8 @@ static void ov62_0223F0A8(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_114[0].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_114[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_114[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_114[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_114[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_0223F124(UnkStruct_0208C06C *param0)
|
||||
|
|
|
|||
|
|
@ -3148,7 +3148,7 @@ static void ov62_02244BE4(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetPositionXY(v0->unk_10[v1].unk_08, 42 + 8, (25 + (36 * (v1)) + (16 * (5 - 4))) + 64);
|
||||
ManagedSprite_SetAnim(v0->unk_10[v1].unk_08, v3[v1]);
|
||||
sub_020128C4(v0->unk_10[v1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[v1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_10[v1].unk_0C, 1);
|
||||
}
|
||||
}
|
||||
|
|
@ -3925,8 +3925,8 @@ static void ov62_02245AC8(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_10[1].unk_08, 80, 232 - 64);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_10[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_10[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_02245B24(UnkStruct_0208C06C *param0)
|
||||
|
|
@ -3945,8 +3945,8 @@ static void ov62_02245B24(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetPositionXY(v0->unk_10[0].unk_08, 32, 232 - 64);
|
||||
ManagedSprite_SetPositionXY(v0->unk_10[1].unk_08, 128, 232 - 64);
|
||||
sub_020128C4(v0->unk_10[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_10[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_10[0].unk_0C, 1);
|
||||
sub_020129D0(v0->unk_10[1].unk_0C, 1);
|
||||
ManagedSprite_SetAnim(v0->unk_10[0].unk_08, 0);
|
||||
|
|
@ -3982,8 +3982,8 @@ static void ov62_02245C08(UnkStruct_0208C06C *param0, int param1)
|
|||
ManagedSprite_SetPositionXY(v0->unk_10[0].unk_08, 80, 232);
|
||||
}
|
||||
|
||||
sub_020128C4(v0->unk_10[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_10[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[1].unk_0C, 36, -8);
|
||||
}
|
||||
|
||||
static void ov62_02245C64(UnkStruct_0208C06C *param0)
|
||||
|
|
@ -4012,8 +4012,8 @@ static void ov62_02245C64(UnkStruct_0208C06C *param0)
|
|||
|
||||
ManagedSprite_SetPositionXY(v0->unk_10[0].unk_08, 32, 232);
|
||||
ManagedSprite_SetPositionXY(v0->unk_10[1].unk_08, 128, 232);
|
||||
sub_020128C4(v0->unk_10[0].unk_0C, 36, -8);
|
||||
sub_020128C4(v0->unk_10[1].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[0].unk_0C, 36, -8);
|
||||
FontOAM_SetXY(v0->unk_10[1].unk_0C, 36, -8);
|
||||
sub_020129D0(v0->unk_10[0].unk_0C, 1);
|
||||
sub_020129D0(v0->unk_10[1].unk_0C, 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -6042,7 +6042,7 @@ static void ov65_02234E50(UnkStruct_ov65_02234E50 *param0, u32 param1)
|
|||
Sprite_SetAnimFrame(param0->unk_21C[param1], 5 - 1);
|
||||
|
||||
if (param1 == 1) {
|
||||
sub_020128C4(param0->unk_234, -18, Unk_ov65_0223893C[0]);
|
||||
FontOAM_SetXY(param0->unk_234, -18, Unk_ov65_0223893C[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6065,7 +6065,7 @@ static BOOL ov65_02234E8C(UnkStruct_ov65_02234E50 *param0, u32 param1, u32 param
|
|||
v1 = Sprite_GetAnimFrame(param0->unk_21C[param1]);
|
||||
|
||||
if (param1 == 1) {
|
||||
sub_020128C4(param0->unk_234, -18, Unk_ov65_0223893C[v1]);
|
||||
FontOAM_SetXY(param0->unk_234, -18, Unk_ov65_0223893C[v1]);
|
||||
}
|
||||
|
||||
if (v1 >= 3) {
|
||||
|
|
|
|||
|
|
@ -467,8 +467,8 @@ static void ov76_0223D984(FontOAM *param0, int param1, int param2)
|
|||
int v1;
|
||||
|
||||
if (param0 != NULL) {
|
||||
sub_020129A4(param0, &v0, &v1);
|
||||
sub_020128C4(param0, v0 + param1, v1 + param2);
|
||||
FontOAM_GetXY(param0, &v0, &v1);
|
||||
FontOAM_SetXY(param0, v0 + param1, v1 + param2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -465,7 +465,7 @@ static void ov104_0223E29C(UnkStruct_ov104_0223DD30 *param0, UnkStruct_ov104_022
|
|||
v4 = sub_020127E8(&v0);
|
||||
|
||||
sub_02012AC0(v4, param5);
|
||||
sub_020128C4(v4, param7, param8);
|
||||
FontOAM_SetXY(v4, param7, param8);
|
||||
|
||||
if (param10 == NULL) {
|
||||
Window_Remove(&v1);
|
||||
|
|
|
|||
|
|
@ -1526,7 +1526,7 @@ static void ov113_0225E15C(UnkStruct_ov113_0225DBCC *param0, UnkStruct_ov113_022
|
|||
v4 = sub_020127E8(&v0);
|
||||
|
||||
sub_02012AC0(v4, param5);
|
||||
sub_020128C4(v4, param7, param8);
|
||||
FontOAM_SetXY(v4, param7, param8);
|
||||
Window_Remove(&v1);
|
||||
|
||||
param1->unk_00 = v4;
|
||||
|
|
|
|||
|
|
@ -2051,7 +2051,7 @@ void ov117_02265DB8(BgConfig *param0, SpriteManager *param1, UnkStruct_02012744
|
|||
sub_02012A90(v4, param7);
|
||||
}
|
||||
|
||||
sub_020128C4(v4, param9, param10);
|
||||
FontOAM_SetXY(v4, param9, param10);
|
||||
Window_Remove(&v1);
|
||||
|
||||
param3->unk_00 = v4;
|
||||
|
|
@ -2086,9 +2086,9 @@ void ov117_02265EC8(UnkStruct_ov117_02265EC8 *param0)
|
|||
v6 = v5 - v2;
|
||||
}
|
||||
|
||||
sub_020129A4(param0->unk_04[v0][0].unk_00, &v3, &v4);
|
||||
sub_020128C4(param0->unk_04[v0][0].unk_00, v3, 168 - v5);
|
||||
sub_020128C4(param0->unk_04[v0][1].unk_00, v3, 168 - v6);
|
||||
FontOAM_GetXY(param0->unk_04[v0][0].unk_00, &v3, &v4);
|
||||
FontOAM_SetXY(param0->unk_04[v0][0].unk_00, v3, 168 - v5);
|
||||
FontOAM_SetXY(param0->unk_04[v0][1].unk_00, v3, 168 - v6);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2232,7 +2232,7 @@ void ov117_02266150(UnkStruct_ov117_02261280 *param0)
|
|||
GF_ASSERT(param0->unk_15A8.unk_108[v1].unk_00 == NULL);
|
||||
v0 = MessageLoader_GetNewStrbuf(param0->unk_80, 4 + (v4 % 10));
|
||||
v4 /= 10;
|
||||
sub_020129A4(param0->unk_15A8.unk_04[v1][0].unk_00, &v2, &v3);
|
||||
FontOAM_GetXY(param0->unk_15A8.unk_04[v1][0].unk_00, &v2, &v3);
|
||||
ov117_02265DB8(param0->unk_2C, param0->unk_28, param0->unk_90, ¶m0->unk_15A8.unk_108[v1], v0, FONT_SYSTEM, TEXT_COLOR(14, 15, 0), 0, 10003, v2, 168, 0, 1, 12, 2 * 1);
|
||||
Strbuf_Free(v0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ typedef struct FontOAM {
|
|||
UnkStruct_02012CE0_sub1 *unk_00;
|
||||
int unk_04;
|
||||
const Sprite *unk_08;
|
||||
int unk_0C;
|
||||
int unk_10;
|
||||
int x;
|
||||
int y;
|
||||
} FontOAM;
|
||||
|
||||
typedef struct UnkStruct_02012744_t {
|
||||
|
|
@ -140,8 +140,8 @@ FontOAM *sub_020127E8(const UnkStruct_020127E8 *param0)
|
|||
GF_ASSERT(v0);
|
||||
|
||||
v0->unk_08 = param0->unk_10;
|
||||
v0->unk_0C = param0->unk_18;
|
||||
v0->unk_10 = param0->unk_1C;
|
||||
v0->x = param0->unk_18;
|
||||
v0->y = param0->unk_1C;
|
||||
|
||||
v1.unk_0C = &v1;
|
||||
v1.unk_10 = &v1;
|
||||
|
|
@ -185,34 +185,31 @@ int sub_02012898(const Window *param0, int param1, int heapID)
|
|||
return v1;
|
||||
}
|
||||
|
||||
void sub_020128C4(FontOAM *param0, int param1, int param2)
|
||||
void FontOAM_SetXY(FontOAM *fontOAM, int x, int y)
|
||||
{
|
||||
int v0;
|
||||
VecFx32 v1;
|
||||
const VecFx32 *v2;
|
||||
GF_ASSERT(fontOAM);
|
||||
|
||||
GF_ASSERT(param0);
|
||||
fontOAM->x = x;
|
||||
fontOAM->y = y;
|
||||
|
||||
param0->unk_0C = param1;
|
||||
param0->unk_10 = param2;
|
||||
x *= FX32_ONE;
|
||||
y *= FX32_ONE;
|
||||
|
||||
param1 *= FX32_ONE;
|
||||
param2 *= FX32_ONE;
|
||||
if (fontOAM->unk_08) {
|
||||
const VecFx32 *fontPos = Sprite_GetPosition(fontOAM->unk_08);
|
||||
|
||||
if (param0->unk_08) {
|
||||
v2 = Sprite_GetPosition(param0->unk_08);
|
||||
|
||||
param1 += v2->x;
|
||||
param2 += v2->y;
|
||||
x += fontPos->x;
|
||||
y += fontPos->y;
|
||||
}
|
||||
|
||||
v1.z = 0;
|
||||
VecFx32 spritePos;
|
||||
spritePos.z = 0;
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_04; v0++) {
|
||||
v1.x = param1 + (param0->unk_00[v0].unk_04 << FX32_SHIFT);
|
||||
v1.y = param2 + (param0->unk_00[v0].unk_08 << FX32_SHIFT);
|
||||
for (int v0 = 0; v0 < fontOAM->unk_04; v0++) {
|
||||
spritePos.x = x + (fontOAM->unk_00[v0].unk_04 << FX32_SHIFT);
|
||||
spritePos.y = y + (fontOAM->unk_00[v0].unk_08 << FX32_SHIFT);
|
||||
|
||||
Sprite_SetPosition(param0->unk_00[v0].unk_00, &v1);
|
||||
Sprite_SetPosition(fontOAM->unk_00[v0].unk_00, &spritePos);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -226,8 +223,8 @@ void sub_02012938(FontOAM *param0)
|
|||
GF_ASSERT(param0);
|
||||
|
||||
if (param0->unk_08) {
|
||||
v3 = param0->unk_0C << FX32_SHIFT;
|
||||
v4 = param0->unk_10 << FX32_SHIFT;
|
||||
v3 = param0->x << FX32_SHIFT;
|
||||
v4 = param0->y << FX32_SHIFT;
|
||||
v2 = Sprite_GetPosition(param0->unk_08);
|
||||
|
||||
v3 += v2->x;
|
||||
|
|
@ -244,14 +241,14 @@ void sub_02012938(FontOAM *param0)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_020129A4(const FontOAM *param0, int *param1, int *param2)
|
||||
void FontOAM_GetXY(const FontOAM *fontOAM, int *x, int *y)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(param1);
|
||||
GF_ASSERT(param2);
|
||||
GF_ASSERT(fontOAM);
|
||||
GF_ASSERT(x);
|
||||
GF_ASSERT(y);
|
||||
|
||||
*param1 = param0->unk_0C;
|
||||
*param2 = param0->unk_10;
|
||||
*x = fontOAM->x;
|
||||
*y = fontOAM->y;
|
||||
}
|
||||
|
||||
void sub_020129D0(FontOAM *param0, BOOL param1)
|
||||
|
|
@ -364,8 +361,8 @@ FontOAM *sub_02012B60(const UnkStruct_020127E8 *param0, const UnkStruct_02012B20
|
|||
GF_ASSERT(v0);
|
||||
|
||||
v0->unk_08 = param0->unk_10;
|
||||
v0->unk_0C = param0->unk_18;
|
||||
v0->unk_10 = param0->unk_1C;
|
||||
v0->x = param0->unk_18;
|
||||
v0->y = param0->unk_1C;
|
||||
|
||||
v1 = Heap_AllocAtEnd(param0->heapID, sizeof(NNSG2dImageProxy) * param1->unk_14);
|
||||
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@ static void sub_0208AC80(FontOAM *param0, int param1, int param2)
|
|||
int v1;
|
||||
|
||||
if (param0 != NULL) {
|
||||
sub_020128C4(param0, param1, param2);
|
||||
FontOAM_SetXY(param0, param1, param2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user