Skip to content

Commit 007a26c

Browse files
authored
Document remainder of Battle Factory App (Overlay 105) (#983)
1 parent 3c0d125 commit 007a26c

File tree

20 files changed

+1616
-1617
lines changed

20 files changed

+1616
-1617
lines changed

include/applications/frontier/battle_factory/cursor.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,27 @@
55

66
#include "coordinates.h"
77

8+
#define CURSOR_MODE_MON_ONLY 0
9+
#define CURSOR_MODE_MENU_ONLY 1
10+
#define CURSOR_MODE_MON_AND_MENU 2
11+
812
typedef struct BattleFactoryAppCursorSprite {
9-
u8 unk_00;
10-
u8 unk_01;
13+
u8 numSlots;
14+
u8 cursorMode;
1115
u8 currentSlot;
12-
u8 unk_03;
16+
u8 selectionActive;
1317
const CoordinatesS16 *positions;
1418
const u8 *animIDs;
1519
Sprite *sprite;
16-
u8 unk_10;
20+
u8 numBallSlots;
1721
} BattleFactoryAppCursor;
1822

19-
BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 param1, u8 param2, u8 param3, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs);
23+
BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 numSlots, u8 numBallSlots, u8 cursorMode, u8 startingSlot, const CoordinatesS16 *positions, const u8 *animIDs);
2024
void *BattleFactoryAppCursor_Free(BattleFactoryAppCursor *cursor);
2125
void BattleFactoryAppCursor_SetDrawFlag(BattleFactoryAppCursor *cursor, BOOL draw);
22-
void ov105_02246080(BattleFactoryAppCursor *cursor);
26+
void BattleFactoryAppCursor_ProcessInput(BattleFactoryAppCursor *cursor);
2327
u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor);
24-
void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1);
28+
void UpdateMonCursorState(BattleFactoryAppCursor *cursor, BOOL selectionActive);
2529
void BattleFactoryAppCursor_UpdatePosition(BattleFactoryAppCursor *cursor, u8 slot);
2630

2731
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_CURSOR_H

include/applications/frontier/battle_factory/main.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
int BattleFactoryApp_Init(ApplicationManager *appMan, int *state);
77
int BattleFactoryApp_Main(ApplicationManager *appMan, int *state);
88
int BattleFactoryApp_Exit(ApplicationManager *appMan, int *state);
9-
void ov105_0224569C(int param0, int param1, void *param2, void *param3);
10-
void ov105_02245744(int param0, int param1, void *param2, void *param3);
11-
void ov105_022457B8(int param0, int param1, void *param2, void *param3);
12-
void ov105_022458A4(int param0, int param1, void *param2, void *param3);
9+
void BattleFactoryApp_DummyCommCommand(int netID, int unused, void *data, void *context);
10+
void BattleFactoryApp_HandleSelectionUpdateCmd(int netID, int unused, void *data, void *context);
11+
void BattleFactoryApp_DummyCommCommand2(int netID, int unused, void *data, void *context);
12+
void BattleFactoryApp_HandleTradeResultCmd(int netID, int unused, void *data, void *context);
1313

1414
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_MAIN_H

include/applications/frontier/battle_factory/pokeball_sprite.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,29 @@
55

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

8+
#define PALETTE_POKEBALL_SELECTED 0
9+
#define PALETTE_POKEBALL_NOT_SELECTED 1
10+
811
typedef struct BattleFactoryAppPokeballSprite {
912
u16 isSelected;
1013
u16 unused;
11-
int x;
12-
int y;
14+
int restingX;
15+
int restingY;
1316
Sprite *sprite;
1417
} BattleFactoryAppPokeballSprite;
1518

1619
BattleFactoryAppPokeballSprite *BattleFactoryAppPokeballSprite_New(BattleFactoryAppSpriteManager *spriteMan, int x, int y, u32 heapID);
1720
void *BattleFactoryAppPokeballSprite_Free(BattleFactoryAppPokeballSprite *ballSprite);
1821
void BattleFactoryAppPokeballSprite_SetDrawFlag(BattleFactoryAppPokeballSprite *ballSprite, BOOL draw);
19-
VecFx32 BattleFactoryAppPokeballSprite_SetAndGetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
22+
VecFx32 BattleFactoryAppPokeballSprite_ShiftPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
2023
void BattleFactoryAppPokeballSprite_SetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y);
2124
const VecFx32 *BattleFactoryAppPokeballSprite_GetPosition(BattleFactoryAppPokeballSprite *ballSprite);
2225
u8 BattleFactoryAppPokeballSprite_IsSelected(BattleFactoryAppPokeballSprite *ballSprite);
2326
void BattleFactoryAppPokeballSprite_SelectMon(BattleFactoryAppPokeballSprite *ballSprite);
2427
void BattleFactoryAppPokeballSprite_UnselectMon(BattleFactoryAppPokeballSprite *ballSprite);
25-
void ov105_02245F5C(BattleFactoryAppPokeballSprite *ballSprite);
26-
int BattleFactoryAppPokeballSprite_GetX(BattleFactoryAppPokeballSprite *ballSprite);
27-
int BattleFactoryAppPokeballSprite_GetY(BattleFactoryAppPokeballSprite *ballSprite);
28+
void BattleFactoryAppPokeballSprite_SetPositionForConveyorStart(BattleFactoryAppPokeballSprite *ballSprite);
29+
int BattleFactoryAppPokeballSprite_GetRestingPointX(BattleFactoryAppPokeballSprite *ballSprite);
30+
int BattleFactoryAppPokeballSprite_GetRestingPointY(BattleFactoryAppPokeballSprite *ballSprite);
2831
void BattleFactoryAppPokeballSprite_SetAnim(BattleFactoryAppPokeballSprite *ballSprite, u32 animID);
2932
void BattleFactoryAppPokeballSprite_UpdatePalette(BattleFactoryAppPokeballSprite *ballSprite, u32 palette);
3033

include/applications/frontier/battle_factory/sprite_manager.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ enum BattleFactoryAppAnimIDs {
1010
ANIM_ID_MON_PANEL_CLOSE,
1111
ANIM_ID_PARTNER_PANEL_OPEN,
1212
ANIM_ID_PARTNER_PANEL_CLOSE,
13-
ANIM_ID_UNK_4,
14-
ANIM_ID_UNK_5,
13+
ANIM_ID_CONFIRM_PANEL_OPEN,
14+
ANIM_ID_CONFIRM_PANEL_CLOSE,
1515
ANIM_ID_BALL_STATIC,
1616
ANIM_ID_BALL_SHAKING,
1717
ANIM_ID_CURSOR,
1818
ANIM_ID_MENU_CURSOR,
1919
ANIM_ID_BALL_ONE_SHAKE,
20-
ANIM_ID_UNK_11,
21-
ANIM_ID_UNK_12,
20+
ANIM_ID_MULTI_CONFIRM_OPEN,
21+
ANIM_ID_MULTI_CONFIRM_CLOSE,
2222
ANIM_ID_CURSOR_SELECTED,
2323
};
2424

2525
typedef struct {
2626
SpriteList *spriteList;
27-
G2dRenderer unk_04;
27+
G2dRenderer g2dRenderer;
2828
SpriteResourceCollection *resourceCollection[4];
2929
SpriteResource *resources[1][4];
3030
} BattleFactoryAppSpriteManager;

include/applications/frontier/battle_factory/windows.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@
33

44
#include "bg_window.h"
55

6+
enum BattleFactoryAppWindows {
7+
WINDOW_PLAYERS_NAME = 0,
8+
WINDOW_PARTNERS_NAME,
9+
WINDOW_SELECTED_MON_NAME_1,
10+
WINDOW_SELECTED_MON_NAME_2,
11+
WINDOW_SELECTED_MON_NAME_3,
12+
WINDOW_MESSAGE_BOX,
13+
WINDOW_UNUSED,
14+
WINDOW_MENU,
15+
WINDOW_PARTNERS_MON_NAME_1,
16+
WINDOW_PARTNERS_MON_NAME_2,
17+
NUM_FACTORY_APP_WINDOWS,
18+
};
19+
620
void BattleFactoryApp_InitWindows(BgConfig *bgConfig, Window *windows);
721
void BattleFactoryApp_FreeWindows(Window *windows);
822
void BattleFactoryApp_DrawWindow(BgConfig *bgConfig, Window *window);

include/coordinates.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,9 @@ typedef struct CoordinatesS16 {
66
s16 y;
77
} CoordinatesS16;
88

9+
typedef struct CoordinatesU16 {
10+
u16 x;
11+
u16 y;
12+
} CoordinatesU16;
13+
914
#endif // POKEPLATINUM_COORDINATES_H

include/overlay104/ov104_0223A7F4.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
void ov104_0223A860(u8 param0, int param1, u16 param2[], u8 param3);
1212
const UnkStruct_ov104_0224028C *ov104_0223A8A8(int param0, int param1);
1313
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[]);
14-
u8 ov104_0223AA50(u8 param0);
14+
u8 BattleFactory_GetPartySize(u8 param0);
1515
u8 ov104_0223AA74(u8 param0, BOOL param1);
1616
void ov104_0223AAA0(u16 param0, u8 param1, u16 *param2, FrontierPokemonDataDTO *param3, u8 *param4, u32 *param5, u16 param6, u16 *param7, u16 *param8);
1717
void ov104_0223AB0C(u8 param0, u16 param1, u8 param2, FrontierPokemonDataDTO *param3, u16 *param4, FrontierPokemonDataDTO *param5, u8 *param6, u32 *param7, int param8);

platinum.us/main.lsf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,7 @@ Overlay overlay104
15701570
Object main.nef.p/src_overlay104_ov104_0223E894.c.o
15711571
}
15721572

1573-
Overlay overlay105
1573+
Overlay battle_factory_app
15741574
{
15751575
After overlay104
15761576
Object main.nef.p/src_applications_frontier_battle_factory_main.c.o

platinum.us/sbins_shared.sha1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ e93f9eb3382856feb76c8b0ba400b7d2593db5c5 *overlay99.sbin
102102
20e1299cf7365fe4e84445238d3fd3712279b1a3 *diploma.sbin
103103
de8a847bff8c343d69b853a215e6ee775ef2ef96 *dummy6.sbin
104104
a3f4dcf6634992ff3367fe5a377825fb913a39f6 *overlay104.sbin
105-
0e6e923a1a359b9482646b3dd0a7a2562e140672 *overlay105.sbin
105+
0e6e923a1a359b9482646b3dd0a7a2562e140672 *battle_factory_app.sbin
106106
c3a66997e55fb3e761d521136a42f07f4761f5da *battle_hall_app.sbin
107107
f8d3fd65261098ff45b3a31319c904b520814fa2 *battle_castle_app.sbin
108108
901f6afe6c1b0b54dc42af812f13560758814d2b *overlay108.sbin

src/applications/frontier/battle_factory/cursor.c

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@
99
#include "sprite.h"
1010
#include "system.h"
1111

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

17-
cursor->unk_00 = param1;
18-
cursor->unk_10 = param2;
19-
cursor->unk_01 = param3;
17+
cursor->numSlots = numSlots;
18+
cursor->numBallSlots = numBallSlots;
19+
cursor->cursorMode = cursorMode;
2020
cursor->currentSlot = startingSlot;
2121
cursor->positions = positions;
2222
cursor->animIDs = animIDs;
2323

2424
if (animIDs != NULL) {
2525
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, cursor->animIDs[startingSlot], 0, 0, FALSE);
2626
} else {
27-
if (param3 == 0) {
27+
if (cursorMode == CURSOR_MODE_MON_ONLY) {
2828
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, ANIM_ID_CURSOR, 0, 0, FALSE);
2929
} else {
3030
cursor->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, ANIM_ID_MENU_CURSOR, 0, 0, FALSE);
@@ -52,63 +52,63 @@ void BattleFactoryAppCursor_SetDrawFlag(BattleFactoryAppCursor *cursor, BOOL dra
5252
Sprite_SetDrawFlag(cursor->sprite, draw);
5353
}
5454

55-
void ov105_02246080(BattleFactoryAppCursor *cursor)
55+
void BattleFactoryAppCursor_ProcessInput(BattleFactoryAppCursor *cursor)
5656
{
57-
if (cursor->unk_03 == 1) {
57+
if (cursor->selectionActive == TRUE) {
5858
return;
5959
}
6060

6161
if (gSystem.pressedKeys == 0) {
6262
return;
6363
}
6464

65-
if (cursor->unk_01 == 2) {
65+
if (cursor->cursorMode == CURSOR_MODE_MON_AND_MENU) {
6666
if (JOY_NEW(PAD_KEY_LEFT)) {
6767
if (cursor->currentSlot == 0) {
68-
cursor->currentSlot = (cursor->unk_00 - 1);
68+
cursor->currentSlot = cursor->numSlots - 1;
6969
} else {
7070
cursor->currentSlot--;
7171
}
7272
} else if (JOY_NEW(PAD_KEY_RIGHT)) {
73-
if (cursor->currentSlot == (cursor->unk_00 - 1)) {
73+
if (cursor->currentSlot == cursor->numSlots - 1) {
7474
cursor->currentSlot = 0;
7575
} else {
7676
cursor->currentSlot++;
7777
}
7878
} else if (JOY_NEW(PAD_KEY_DOWN)) {
79-
if (cursor->currentSlot < (cursor->unk_10)) {
80-
cursor->currentSlot = cursor->unk_10;
81-
} else if (cursor->currentSlot == (cursor->unk_00 - 1)) {
79+
if (cursor->currentSlot < cursor->numBallSlots) {
80+
cursor->currentSlot = cursor->numBallSlots;
81+
} else if (cursor->currentSlot == cursor->numSlots - 1) {
8282
cursor->currentSlot = 0;
8383
} else {
8484
cursor->currentSlot++;
8585
}
8686
} else if (JOY_NEW(PAD_KEY_UP)) {
87-
if (cursor->currentSlot < (cursor->unk_10)) {
88-
cursor->currentSlot = (cursor->unk_00 - 1);
87+
if (cursor->currentSlot < cursor->numBallSlots) {
88+
cursor->currentSlot = cursor->numSlots - 1;
8989
} else {
9090
cursor->currentSlot--;
9191
}
9292
}
9393
} else {
94-
u32 v1, v2;
95-
if (cursor->unk_01 == 0) {
96-
v1 = PAD_KEY_RIGHT;
97-
v2 = PAD_KEY_LEFT;
94+
u32 nextDir, prevDir;
95+
if (cursor->cursorMode == CURSOR_MODE_MON_ONLY) {
96+
nextDir = PAD_KEY_RIGHT;
97+
prevDir = PAD_KEY_LEFT;
9898
} else {
99-
v1 = PAD_KEY_DOWN;
100-
v2 = PAD_KEY_UP;
99+
nextDir = PAD_KEY_DOWN;
100+
prevDir = PAD_KEY_UP;
101101
}
102102

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

106-
if (cursor->currentSlot >= cursor->unk_00) {
106+
if (cursor->currentSlot >= cursor->numSlots) {
107107
cursor->currentSlot = 0;
108108
}
109-
} else if (JOY_NEW(v2)) {
109+
} else if (JOY_NEW(prevDir)) {
110110
if (cursor->currentSlot == 0) {
111-
cursor->currentSlot = cursor->unk_00;
111+
cursor->currentSlot = cursor->numSlots;
112112
}
113113

114114
cursor->currentSlot--;
@@ -131,11 +131,11 @@ u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor)
131131
return cursor->currentSlot;
132132
}
133133

134-
void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1)
134+
void UpdateMonCursorState(BattleFactoryAppCursor *cursor, BOOL selectionActive)
135135
{
136-
cursor->unk_03 = param1;
136+
cursor->selectionActive = selectionActive;
137137

138-
if (param1 == 0) {
138+
if (selectionActive == FALSE) {
139139
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR);
140140
} else {
141141
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR_SELECTED);

0 commit comments

Comments
 (0)