Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions include/applications/frontier/battle_factory/cursor.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,27 @@

#include "coordinates.h"

#define CURSOR_MODE_MON_ONLY 0
#define CURSOR_MODE_MENU_ONLY 1
#define CURSOR_MODE_MON_AND_MENU 2

typedef struct BattleFactoryAppCursorSprite {
u8 unk_00;
u8 unk_01;
u8 numSlots;
u8 cursorMode;
u8 currentSlot;
u8 unk_03;
u8 selectionActive;
const CoordinatesS16 *positions;
const u8 *animIDs;
Sprite *sprite;
u8 unk_10;
u8 numBallSlots;
} BattleFactoryAppCursor;

BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 param1, u8 param2, u8 param3, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs);
BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 numSlots, u8 numBallSlots, u8 cursorMode, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs);
void *BattleFactoryAppCursor_Free(BattleFactoryAppCursor *cursor);
void BattleFactoryAppCursor_SetDrawFlag(BattleFactoryAppCursor *cursor, BOOL draw);
void ov105_02246080(BattleFactoryAppCursor *cursor);
void BattleFactoryAppCursor_ProcessInput(BattleFactoryAppCursor *cursor);
u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor);
void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1);
void UpdateMonCursorState(BattleFactoryAppCursor *cursor, BOOL selectionActive);
void BattleFactoryAppCursor_UpdatePosition(BattleFactoryAppCursor *cursor, u8 slot);

#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_CURSOR_H
8 changes: 4 additions & 4 deletions include/applications/frontier/battle_factory/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
int BattleFactoryApp_Init(ApplicationManager *appMan, int *state);
int BattleFactoryApp_Main(ApplicationManager *appMan, int *state);
int BattleFactoryApp_Exit(ApplicationManager *appMan, int *state);
void ov105_0224569C(int param0, int param1, void *param2, void *param3);
void ov105_02245744(int param0, int param1, void *param2, void *param3);
void ov105_022457B8(int param0, int param1, void *param2, void *param3);
void ov105_022458A4(int param0, int param1, void *param2, void *param3);
void BattleFactoryApp_DummyCommCommand(int netID, int unused, void *data, void *context);
void BattleFactoryApp_HandleSelectionUpdateCmd(int netID, int unused, void *data, void *context);
void BattleFactoryApp_DummyCommCommand2(int netID, int unused, void *data, void *context);
void BattleFactoryApp_HandleTradeResultCmd(int netID, int unused, void *data, void *context);

#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_MAIN_H
15 changes: 9 additions & 6 deletions include/applications/frontier/battle_factory/pokeball_sprite.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,29 @@

#include "applications/frontier/battle_factory/sprite_manager.h"

#define PALETTE_POKEBALL_SELECTED 0
#define PALETTE_POKEBALL_NOT_SELECTED 1

typedef struct BattleFactoryAppPokeballSprite {
u16 isSelected;
u16 unused;
int x;
int y;
int restingX;
int restingY;
Sprite *sprite;
} BattleFactoryAppPokeballSprite;

BattleFactoryAppPokeballSprite *BattleFactoryAppPokeballSprite_New(BattleFactoryAppSpriteManager *spriteMan, int x, int y, u32 heapID);
void *BattleFactoryAppPokeballSprite_Free(BattleFactoryAppPokeballSprite *ballSprite);
void BattleFactoryAppPokeballSprite_SetDrawFlag(BattleFactoryAppPokeballSprite *ballSprite, BOOL draw);
VecFx32 BattleFactoryAppPokeballSprite_SetAndGetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
VecFx32 BattleFactoryAppPokeballSprite_ShiftPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
void BattleFactoryAppPokeballSprite_SetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
const VecFx32 *BattleFactoryAppPokeballSprite_GetPosition(BattleFactoryAppPokeballSprite *ballSprite);
u8 BattleFactoryAppPokeballSprite_IsSelected(BattleFactoryAppPokeballSprite *ballSprite);
void BattleFactoryAppPokeballSprite_SelectMon(BattleFactoryAppPokeballSprite *ballSprite);
void BattleFactoryAppPokeballSprite_UnselectMon(BattleFactoryAppPokeballSprite *ballSprite);
void ov105_02245F5C(BattleFactoryAppPokeballSprite *ballSprite);
int BattleFactoryAppPokeballSprite_GetX(BattleFactoryAppPokeballSprite *ballSprite);
int BattleFactoryAppPokeballSprite_GetY(BattleFactoryAppPokeballSprite *ballSprite);
void BattleFactoryAppPokeballSprite_SetPositionForConveyorStart(BattleFactoryAppPokeballSprite *ballSprite);
int BattleFactoryAppPokeballSprite_GetRestingPointX(BattleFactoryAppPokeballSprite *ballSprite);
int BattleFactoryAppPokeballSprite_GetRestingPointY(BattleFactoryAppPokeballSprite *ballSprite);
void BattleFactoryAppPokeballSprite_SetAnim(BattleFactoryAppPokeballSprite *ballSprite, u32 animID);
void BattleFactoryAppPokeballSprite_UpdatePalette(BattleFactoryAppPokeballSprite *ballSprite, u32 palette);

Expand Down
10 changes: 5 additions & 5 deletions include/applications/frontier/battle_factory/sprite_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ enum BattleFactoryAppAnimIDs {
ANIM_ID_MON_PANEL_CLOSE,
ANIM_ID_PARTNER_PANEL_OPEN,
ANIM_ID_PARTNER_PANEL_CLOSE,
ANIM_ID_UNK_4,
ANIM_ID_UNK_5,
ANIM_ID_CONFIRM_PANEL_OPEN,
ANIM_ID_CONFIRM_PANEL_CLOSE,
ANIM_ID_BALL_STATIC,
ANIM_ID_BALL_SHAKING,
ANIM_ID_CURSOR,
ANIM_ID_MENU_CURSOR,
ANIM_ID_BALL_ONE_SHAKE,
ANIM_ID_UNK_11,
ANIM_ID_UNK_12,
ANIM_ID_MULTI_CONFIRM_OPEN,
ANIM_ID_MULTI_CONFIRM_CLOSE,
ANIM_ID_CURSOR_SELECTED,
};

typedef struct {
SpriteList *spriteList;
G2dRenderer unk_04;
G2dRenderer g2dRenderer;
SpriteResourceCollection *resourceCollection[4];
SpriteResource *resources[1][4];
} BattleFactoryAppSpriteManager;
Expand Down
14 changes: 14 additions & 0 deletions include/applications/frontier/battle_factory/windows.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@

#include "bg_window.h"

enum BattleFactoryAppWindows {
WINDOW_PLAYERS_NAME = 0,
WINDOW_PARTNERS_NAME,
WINDOW_SELECTED_MON_NAME_1,
WINDOW_SELECTED_MON_NAME_2,
WINDOW_SELECTED_MON_NAME_3,
WINDOW_MESSAGE_BOX,
WINDOW_UNUSED,
WINDOW_MENU,
WINDOW_PARTNERS_MON_NAME_1,
WINDOW_PARTNERS_MON_NAME_2,
NUM_FACTORY_APP_WINDOWS,
};

void BattleFactoryApp_InitWindows(BgConfig *bgConfig, Window *windows);
void BattleFactoryApp_FreeWindows(Window *windows);
void BattleFactoryApp_DrawWindow(BgConfig *bgConfig, Window *window);
Expand Down
5 changes: 5 additions & 0 deletions include/coordinates.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,9 @@ typedef struct CoordinatesS16 {
s16 y;
} CoordinatesS16;

typedef struct CoordinatesU16 {
u16 x;
u16 y;
} CoordinatesU16;

#endif // POKEPLATINUM_COORDINATES_H
2 changes: 1 addition & 1 deletion include/overlay104/ov104_0223A7F4.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
void ov104_0223A860(u8 param0, int param1, u16 param2[], u8 param3);
const UnkStruct_ov104_0224028C *ov104_0223A8A8(int param0, int param1);
BOOL ov104_0223A918(const u16 param0[], const u16 param1[], int param2, int param3, u16 param4[], int param5, const UnkStruct_ov104_0224028C *param6, u16 param7, u8 param8[]);
u8 ov104_0223AA50(u8 param0);
u8 BattleFactory_GetPartySize(u8 param0);
u8 ov104_0223AA74(u8 param0, BOOL param1);
void ov104_0223AAA0(u16 param0, u8 param1, u16 *param2, FrontierPokemonDataDTO *param3, u8 *param4, u32 *param5, u16 param6, u16 *param7, u16 *param8);
void ov104_0223AB0C(u8 param0, u16 param1, u8 param2, FrontierPokemonDataDTO *param3, u16 *param4, FrontierPokemonDataDTO *param5, u8 *param6, u32 *param7, int param8);
Expand Down
2 changes: 1 addition & 1 deletion platinum.us/main.lsf
Original file line number Diff line number Diff line change
Expand Up @@ -1570,7 +1570,7 @@ Overlay overlay104
Object main.nef.p/src_overlay104_ov104_0223E894.c.o
}

Overlay overlay105
Overlay battle_factory_app
{
After overlay104
Object main.nef.p/src_applications_frontier_battle_factory_main.c.o
Expand Down
2 changes: 1 addition & 1 deletion platinum.us/sbins_shared.sha1
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ e93f9eb3382856feb76c8b0ba400b7d2593db5c5 *overlay99.sbin
20e1299cf7365fe4e84445238d3fd3712279b1a3 *diploma.sbin
de8a847bff8c343d69b853a215e6ee775ef2ef96 *dummy6.sbin
a3f4dcf6634992ff3367fe5a377825fb913a39f6 *overlay104.sbin
0e6e923a1a359b9482646b3dd0a7a2562e140672 *overlay105.sbin
0e6e923a1a359b9482646b3dd0a7a2562e140672 *battle_factory_app.sbin
c3a66997e55fb3e761d521136a42f07f4761f5da *battle_hall_app.sbin
f8d3fd65261098ff45b3a31319c904b520814fa2 *battle_castle_app.sbin
901f6afe6c1b0b54dc42af812f13560758814d2b *overlay108.sbin
Expand Down
56 changes: 28 additions & 28 deletions src/applications/frontier/battle_factory/cursor.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@
#include "sprite.h"
#include "system.h"

BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 param1, u8 param2, u8 param3, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs)
BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 numSlots, u8 numBallSlots, u8 cursorMode, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs)
{
BattleFactoryAppCursor *cursor = Heap_Alloc(HEAP_ID_BATTLE_FACTORY_APP, sizeof(BattleFactoryAppCursor));
memset(cursor, 0, sizeof(BattleFactoryAppCursor));

cursor->unk_00 = param1;
cursor->unk_10 = param2;
cursor->unk_01 = param3;
cursor->numSlots = numSlots;
cursor->numBallSlots = numBallSlots;
cursor->cursorMode = cursorMode;
cursor->currentSlot = startingSlot;
cursor->positions = positions;
cursor->animIDs = animIDs;

if (animIDs != NULL) {
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, cursor->animIDs[startingSlot], 0, 0, FALSE);
} else {
if (param3 == 0) {
if (cursorMode == CURSOR_MODE_MON_ONLY) {
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, ANIM_ID_CURSOR, 0, 0, FALSE);
} else {
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, ANIM_ID_MENU_CURSOR, 0, 0, FALSE);
Expand Down Expand Up @@ -52,63 +52,63 @@ void BattleFactoryAppCursor_SetDrawFlag(BattleFactoryAppCursor *cursor, BOOL dra
Sprite_SetDrawFlag(cursor->sprite, draw);
}

void ov105_02246080(BattleFactoryAppCursor *cursor)
void BattleFactoryAppCursor_ProcessInput(BattleFactoryAppCursor *cursor)
{
if (cursor->unk_03 == 1) {
if (cursor->selectionActive == TRUE) {
return;
}

if (gSystem.pressedKeys == 0) {
return;
}

if (cursor->unk_01 == 2) {
if (cursor->cursorMode == CURSOR_MODE_MON_AND_MENU) {
if (JOY_NEW(PAD_KEY_LEFT)) {
if (cursor->currentSlot == 0) {
cursor->currentSlot = (cursor->unk_00 - 1);
cursor->currentSlot = cursor->numSlots - 1;
} else {
cursor->currentSlot--;
}
} else if (JOY_NEW(PAD_KEY_RIGHT)) {
if (cursor->currentSlot == (cursor->unk_00 - 1)) {
if (cursor->currentSlot == cursor->numSlots - 1) {
cursor->currentSlot = 0;
} else {
cursor->currentSlot++;
}
} else if (JOY_NEW(PAD_KEY_DOWN)) {
if (cursor->currentSlot < (cursor->unk_10)) {
cursor->currentSlot = cursor->unk_10;
} else if (cursor->currentSlot == (cursor->unk_00 - 1)) {
if (cursor->currentSlot < cursor->numBallSlots) {
cursor->currentSlot = cursor->numBallSlots;
} else if (cursor->currentSlot == cursor->numSlots - 1) {
cursor->currentSlot = 0;
} else {
cursor->currentSlot++;
}
} else if (JOY_NEW(PAD_KEY_UP)) {
if (cursor->currentSlot < (cursor->unk_10)) {
cursor->currentSlot = (cursor->unk_00 - 1);
if (cursor->currentSlot < cursor->numBallSlots) {
cursor->currentSlot = cursor->numSlots - 1;
} else {
cursor->currentSlot--;
}
}
} else {
u32 v1, v2;
if (cursor->unk_01 == 0) {
v1 = PAD_KEY_RIGHT;
v2 = PAD_KEY_LEFT;
u32 nextDir, prevDir;
if (cursor->cursorMode == CURSOR_MODE_MON_ONLY) {
nextDir = PAD_KEY_RIGHT;
prevDir = PAD_KEY_LEFT;
} else {
v1 = PAD_KEY_DOWN;
v2 = PAD_KEY_UP;
nextDir = PAD_KEY_DOWN;
prevDir = PAD_KEY_UP;
}

if (JOY_NEW(v1)) {
if (JOY_NEW(nextDir)) {
cursor->currentSlot++;

if (cursor->currentSlot >= cursor->unk_00) {
if (cursor->currentSlot >= cursor->numSlots) {
cursor->currentSlot = 0;
}
} else if (JOY_NEW(v2)) {
} else if (JOY_NEW(prevDir)) {
if (cursor->currentSlot == 0) {
cursor->currentSlot = cursor->unk_00;
cursor->currentSlot = cursor->numSlots;
}

cursor->currentSlot--;
Expand All @@ -131,11 +131,11 @@ u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor)
return cursor->currentSlot;
}

void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1)
void UpdateMonCursorState(BattleFactoryAppCursor *cursor, BOOL selectionActive)
{
cursor->unk_03 = param1;
cursor->selectionActive = selectionActive;

if (param1 == 0) {
if (selectionActive == FALSE) {
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR);
} else {
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR_SELECTED);
Expand Down
Loading