Document Battle Factory App graphics (#978)

This commit is contained in:
VicSevenT 2026-02-27 20:42:28 -06:00 committed by GitHub
parent e975136357
commit b5701c9dea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
44 changed files with 4008 additions and 4239 deletions

View File

@ -362,7 +362,7 @@ TEXT_BANK_UNK_0360
TEXT_BANK_MENU_ENTRIES
TEXT_BANK_DUMMY_0362
TEXT_BANK_UNK_0363
TEXT_BANK_UNK_0364
TEXT_BANK_BATTLE_FACTORY_APP
TEXT_BANK_BATTLE_FACTORY_SCENE
TEXT_BANK_JOURNAL_ENTRIES
TEXT_BANK_START_MENU

View File

@ -0,0 +1,27 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_CURSOR_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_CURSOR_H
#include "applications/frontier/battle_factory/sprite_manager.h"
#include "coordinates.h"
typedef struct BattleFactoryAppCursorSprite {
u8 unk_00;
u8 unk_01;
u8 currentSlot;
u8 unk_03;
const CoordinatesS16 *positions;
const u8 *animIDs;
Sprite *sprite;
u8 unk_10;
} BattleFactoryAppCursor;
BattleFactoryAppCursor *BattleFactoryAppCursor_New(BattleFactoryAppSpriteManager *spriteMan, u8 param1, u8 param2, u8 param3, 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);
u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor);
void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1);
void BattleFactoryAppCursor_UpdatePosition(BattleFactoryAppCursor *cursor, u8 slot);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_CURSOR_H

View File

@ -0,0 +1,13 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_HELPERS_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_HELPERS_H
#include "struct_defs/pokemon.h"
#include "pokemon_sprite.h"
void BattleFactoryApp_Setup3D(void);
void BattleFactoryApp_UpdateMonGraphics(PokemonSpriteManager *spriteMan);
PokemonSprite *BattleFactoryApp_CreateMonSprite(PokemonSpriteManager *spriteMan, int polygonID, Pokemon *mon, int x, int y, int z);
void BattleFactoryApp_FlipMonSprite(PokemonSprite *sprite, BOOL flipHorizontal);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_HELPERS_H

View File

@ -0,0 +1,14 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_MAIN_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_MAIN_H
#include "overlay_manager.h"
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);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_MAIN_H

View File

@ -0,0 +1,16 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SCREEN_SPRITE_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SCREEN_SPRITE_H
#include "applications/frontier/battle_factory/sprite_manager.h"
typedef struct BattleFactoryAppPanelSprite {
int x;
int y;
Sprite *sprite;
} BattleFactoryAppPanelSprite;
BattleFactoryAppPanelSprite *BattleFactoryAppPanelSprite_New(BattleFactoryAppSpriteManager *spriteMan, u32 animID, int x, int y, enum HeapID heapID);
void *BattleFactoryAppPanelSprite_Free(BattleFactoryAppPanelSprite *sprite);
BOOL BattleFactoryAppPanelSprite_IsAnimated(BattleFactoryAppPanelSprite *sprite);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SCREEN_SPRITE_H

View File

@ -0,0 +1,31 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_POKEBALL_SPRITE_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_POKEBALL_SPRITE_H
#include <nitro/fx/fx.h>
#include "applications/frontier/battle_factory/sprite_manager.h"
typedef struct BattleFactoryAppPokeballSprite {
u16 isSelected;
u16 unused;
int x;
int y;
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);
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_SetAnim(BattleFactoryAppPokeballSprite *ballSprite, u32 animID);
void BattleFactoryAppPokeballSprite_UpdatePalette(BattleFactoryAppPokeballSprite *ballSprite, u32 palette);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_POKEBALL_SPRITE_H

View File

@ -0,0 +1,36 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SPRITE_MANAGER_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SPRITE_MANAGER_H
#include "sprite.h"
#include "sprite_resource.h"
#include "sprite_util.h"
enum BattleFactoryAppAnimIDs {
ANIM_ID_MON_PANEL_OPEN = 0,
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_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_CURSOR_SELECTED,
};
typedef struct {
SpriteList *spriteList;
G2dRenderer unk_04;
SpriteResourceCollection *resourceCollection[4];
SpriteResource *resources[1][4];
} BattleFactoryAppSpriteManager;
void BattleFactoryApp_InitSpriteManager(BattleFactoryAppSpriteManager *sprites);
Sprite *BattleFactoryApp_InitSprite(BattleFactoryAppSpriteManager *spriteMan, u32 resourceID, u32 animID, u32 priority, int resourcePriority, u8 onSubScreen);
void BattleFactoryApp_FreeSprites(BattleFactoryAppSpriteManager *spriteMan);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_SPRITE_MANAGER_H

View File

@ -0,0 +1,11 @@
#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_WINDOWS_H
#define POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_WINDOWS_H
#include "bg_window.h"
void BattleFactoryApp_InitWindows(BgConfig *bgConfig, Window *windows);
void BattleFactoryApp_FreeWindows(Window *windows);
void BattleFactoryApp_DrawWindow(BgConfig *bgConfig, Window *window);
void BattleFactoryApp_DrawMessageBox(Window *window, int frame);
#endif // POKEPLATINUM_APPLICATIONS_BATTLE_FACTORY_WINDOWS_H

View File

@ -95,7 +95,7 @@ enum HeapID {
HEAP_ID_90,
HEAP_ID_91,
HEAP_ID_92,
HEAP_ID_93,
HEAP_ID_BATTLE_FACTORY_APP,
HEAP_ID_94,
HEAP_ID_95,
HEAP_ID_96,
@ -135,6 +135,7 @@ enum HeapSize {
HEAP_SIZE_APPLICATION = 0x10D800,
HEAP_SIZE_BATTLE_HALL_APP = 0x20000,
HEAP_SIZE_BATTLE_FACTORY_APP = 0x20000,
HEAP_SIZE_BAG = 0x30000,
HEAP_SIZE_PRE_POKETCH_SUBSCREEN = 0x18000,

9
include/coordinates.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef POKEPLATINUM_COORDINATES_H
#define POKEPLATINUM_COORDINATES_H
typedef struct CoordinatesS16 {
s16 x;
s16 y;
} CoordinatesS16;
#endif // POKEPLATINUM_COORDINATES_H

View File

@ -8,6 +8,14 @@
#define BATTLE_FACTORY_BATTLE_ROOM_TILEMAP 1
#define BATTLE_FACTORY_CORRIDOR_TILEMAP 2
#define BATTLE_FACTORY_CORRIDOR_FLOOR_TILEMAP 3
#define BATTLE_FACTORY_APP_TILES 4
#define BATTLE_FACTORY_APP_MON_SELECTION_TILEMAP 5
#define BATTLE_FACTORY_APP_NO_SCREENS_TILEMAP 7
#define BATTLE_FACTORY_APP_CONVEYOR_TILEMAP 8
#define BATTLE_FACTORY_APP_WHEEL_TILEMAP 9
#define BATTLE_FACTORY_APP_SUMMARY_TILEMAP 10
#define BATTLE_FACTORY_APP_MULTI_MON_SELECTION_TILEMAP 11
#define BATTLE_FACTORY_APP_MULTI_SUMMARY_TILEMAP 12
#define BATTLE_HALL_BATTLE_ROOM_TILES 14
#define BATTLE_HALL_CORRIDOR_TILES 16
#define BATTLE_HALL_CORRIDOR_TILEMAP 17
@ -48,6 +56,7 @@
#define BATTLE_FRONTIER_APP_SUB_SCREEN_TILES 125
#define BATTLE_FRONTIER_APP_SUB_SCREEN_TILEMAP 126
#define BATTLE_FACTORY_PLTT 129
#define BATTLE_FACTORY_APP_PLTT 130
#define BATTLE_HALL_BATTLE_ROOM_PLTT 131
#define BATTLE_HALL_CORRIDOR_PLTT 132
#define BATTLE_HALL_BATTLE_ROOM_LIGHTS_PLTT 133

View File

@ -4,12 +4,16 @@
// frontier_obj.narc. This file should eventually be deleted and the constants
// replaced with those from a naix file once the NARC is unpacked.
#define BATTLE_FACTORY_APP_SPRITES_NCGR 0
#define BATTLE_FACTORY_APP_SPRITES_NANR 1
#define BATTLE_FACTORY_APP_SPRITES_NCER 2
#define BATTLE_HALL_APP_CURSOR_BOX_NCGR 12
#define BATTLE_HALL_APP_CURSOR_BOX_NANR 13
#define BATTLE_HALL_APP_CURSOR_BOX_NCER 14
#define BATTLE_CASTLE_APP_SPRITES_NCGR 15
#define BATTLE_CASTLE_APP_SPRITES_NANR 16
#define BATTLE_CASTLE_APP_SPRITES_NCER 17
#define BATTLE_FACTORY_APP_SPRITES_PLTT 36
#define BATTLE_HALL_APP_CURSOR_BOX_PLTT 38
#define BATTLE_CASTLE_APP_SPRITES_PLTT 39

View File

@ -1,14 +0,0 @@
#ifndef POKEPLATINUM_OV105_02241AE0_H
#define POKEPLATINUM_OV105_02241AE0_H
#include "overlay_manager.h"
int ov105_02241AE0(ApplicationManager *appMan, int *param1);
int ov105_02241BD8(ApplicationManager *appMan, int *param1);
int ov105_02241F54(ApplicationManager *appMan, int *param1);
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);
#endif // POKEPLATINUM_OV105_02241AE0_H

View File

@ -1,12 +0,0 @@
#ifndef POKEPLATINUM_OV105_02245AAC_H
#define POKEPLATINUM_OV105_02245AAC_H
#include "overlay105/struct_ov105_02245AAC.h"
#include "sprite.h"
void ov105_02245AAC(UnkStruct_ov105_02245AAC *param0);
Sprite *ov105_02245BA4(UnkStruct_ov105_02245AAC *param0, u32 param1, u32 param2, u32 param3, int param4, u8 param5);
void ov105_02245C50(UnkStruct_ov105_02245AAC *param0);
#endif // POKEPLATINUM_OV105_02245AAC_H

View File

@ -1,12 +0,0 @@
#ifndef POKEPLATINUM_OV105_02245CD0_H
#define POKEPLATINUM_OV105_02245CD0_H
#include "pokemon.h"
#include "pokemon_sprite.h"
void ov105_02245CD0(void);
void ov105_02245D50(PokemonSpriteManager *param0);
PokemonSprite *ov105_02245D88(PokemonSpriteManager *param0, int param1, Pokemon *param2, int param3, int param4, int param5);
void ov105_02245DB8(PokemonSprite *param0, int param1);
#endif // POKEPLATINUM_OV105_02245CD0_H

View File

@ -1,12 +0,0 @@
#ifndef POKEPLATINUM_OV105_02245DC4_H
#define POKEPLATINUM_OV105_02245DC4_H
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245E1C_decl.h"
UnkStruct_ov105_02245E1C *ov105_02245DC4(UnkStruct_ov105_02245AAC *param0, u32 param1, int param2, int param3, enum HeapID heapID);
void *ov105_02245E1C(UnkStruct_ov105_02245E1C *param0);
void ov105_02245E30(UnkStruct_ov105_02245E1C *param0, int param1, int param2);
BOOL ov105_02245E48(UnkStruct_ov105_02245E1C *param0);
#endif // POKEPLATINUM_OV105_02245DC4_H

View File

@ -1,25 +0,0 @@
#ifndef POKEPLATINUM_OV105_02245E54_H
#define POKEPLATINUM_OV105_02245E54_H
#include <nitro/fx/fx.h>
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245EA8_decl.h"
UnkStruct_ov105_02245EA8 *ov105_02245E54(UnkStruct_ov105_02245AAC *param0, int param1, int param2, u32 heapID);
void *ov105_02245EA8(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245EBC(UnkStruct_ov105_02245EA8 *param0, int param1);
VecFx32 ov105_02245EC8(UnkStruct_ov105_02245EA8 *param0, int param1, int param2);
void ov105_02245F14(UnkStruct_ov105_02245EA8 *param0, int param1, int param2);
const VecFx32 *ov105_02245F2C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F38(UnkStruct_ov105_02245EA8 *param0, u8 param1);
u8 ov105_02245F3C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F44(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F50(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F5C(UnkStruct_ov105_02245EA8 *param0);
int ov105_02245F88(UnkStruct_ov105_02245EA8 *param0);
int ov105_02245F8C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F90(UnkStruct_ov105_02245EA8 *param0, u32 param1);
void ov105_02245FAC(UnkStruct_ov105_02245EA8 *param0, u32 param1);
#endif // POKEPLATINUM_OV105_02245E54_H

View File

@ -1,16 +0,0 @@
#ifndef POKEPLATINUM_OV105_02245FB8_H
#define POKEPLATINUM_OV105_02245FB8_H
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02246060_decl.h"
#include "overlay105/struct_ov105_02246394.h"
UnkStruct_ov105_02246060 *ov105_02245FB8(UnkStruct_ov105_02245AAC *param0, u8 param1, u8 param2, u8 param3, u8 param4, const UnkStruct_ov105_02246394 *param5, const u8 *param6);
void *ov105_02246060(UnkStruct_ov105_02246060 *param0);
void ov105_02246074(UnkStruct_ov105_02246060 *param0, int param1);
void ov105_02246080(UnkStruct_ov105_02246060 *param0);
u8 ov105_022461A0(UnkStruct_ov105_02246060 *param0);
void ov105_022461A4(UnkStruct_ov105_02246060 *param0, int param1);
void ov105_022461C0(UnkStruct_ov105_02246060 *param0, u8 param1);
#endif // POKEPLATINUM_OV105_02245FB8_H

View File

@ -1,11 +0,0 @@
#ifndef POKEPLATINUM_OV105_02246214_H
#define POKEPLATINUM_OV105_02246214_H
#include "bg_window.h"
void ov105_02246214(BgConfig *param0, Window *param1);
void ov105_02246244(Window *param0);
void ov105_02246260(BgConfig *param0, Window *param1);
void ov105_0224628C(Window *param0, int param1);
#endif // POKEPLATINUM_OV105_02246214_H

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02241FF4_DECL_H
#define POKEPLATINUM_STRUCT_OV105_02241FF4_DECL_H
typedef struct UnkStruct_ov105_02241FF4_t UnkStruct_ov105_02241FF4;
#endif // POKEPLATINUM_STRUCT_OV105_02241FF4_DECL_H

View File

@ -1,15 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02245AAC_H
#define POKEPLATINUM_STRUCT_OV105_02245AAC_H
#include "sprite.h"
#include "sprite_resource.h"
#include "sprite_util.h"
typedef struct {
SpriteList *unk_00;
G2dRenderer unk_04;
SpriteResourceCollection *unk_190[4];
SpriteResource *unk_1A0[1][4];
} UnkStruct_ov105_02245AAC;
#endif // POKEPLATINUM_STRUCT_OV105_02245AAC_H

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02245E1C_DECL_H
#define POKEPLATINUM_STRUCT_OV105_02245E1C_DECL_H
typedef struct UnkStruct_ov105_02245E1C_t UnkStruct_ov105_02245E1C;
#endif // POKEPLATINUM_STRUCT_OV105_02245E1C_DECL_H

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02245EA8_DECL_H
#define POKEPLATINUM_STRUCT_OV105_02245EA8_DECL_H
typedef struct UnkStruct_ov105_02245EA8_t UnkStruct_ov105_02245EA8;
#endif // POKEPLATINUM_STRUCT_OV105_02245EA8_DECL_H

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02246060_DECL_H
#define POKEPLATINUM_STRUCT_OV105_02246060_DECL_H
typedef struct UnkStruct_ov105_02246060_t UnkStruct_ov105_02246060;
#endif // POKEPLATINUM_STRUCT_OV105_02246060_DECL_H

View File

@ -1,9 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV105_02246394_H
#define POKEPLATINUM_STRUCT_OV105_02246394_H
typedef struct {
s16 unk_00;
s16 unk_02;
} UnkStruct_ov105_02246394;
#endif // POKEPLATINUM_STRUCT_OV105_02246394_H

View File

@ -1573,13 +1573,13 @@ Overlay overlay104
Overlay overlay105
{
After overlay104
Object main.nef.p/src_overlay105_ov105_02241AE0.c.o
Object main.nef.p/src_overlay105_ov105_02245AAC.c.o
Object main.nef.p/src_overlay105_ov105_02245CD0.c.o
Object main.nef.p/src_overlay105_ov105_02245DC4.c.o
Object main.nef.p/src_overlay105_ov105_02245E54.c.o
Object main.nef.p/src_overlay105_ov105_02245FB8.c.o
Object main.nef.p/src_overlay105_ov105_02246214.c.o
Object main.nef.p/src_applications_frontier_battle_factory_main.c.o
Object main.nef.p/src_applications_frontier_battle_factory_sprite_manager.c.o
Object main.nef.p/src_applications_frontier_battle_factory_helpers.c.o
Object main.nef.p/src_applications_frontier_battle_factory_panel_sprite.c.o
Object main.nef.p/src_applications_frontier_battle_factory_pokeball_sprite.c.o
Object main.nef.p/src_applications_frontier_battle_factory_cursor.c.o
Object main.nef.p/src_applications_frontier_battle_factory_windows.c.o
}
Overlay battle_hall_app

View File

@ -2,89 +2,89 @@
"key": 3949,
"messages": [
{
"id": "pl_msg_00000364_00000",
"id": "BattleFactoryApp_Text_ChoosePokemon",
"en_US": [
"Please choose Pokémon\n",
"no. {STRVAR_1 50, 0, 0}."
]
},
{
"id": "pl_msg_00000364_00001",
"id": "BattleFactoryApp_Text_OkWithSelection",
"en_US": [
"Are you OK with the\n",
"chosen {STRVAR_1 50, 0, 0} Pokémon?"
]
},
{
"id": "pl_msg_00000364_00002",
"id": "BattleFactoryApp_Text_PleaseWait",
"en_US": "Please wait a moment."
},
{
"id": "pl_msg_00000364_00003",
"id": "BattleFactoryApp_Text_Yes",
"en_US": "YES"
},
{
"id": "pl_msg_00000364_00004",
"id": "BattleFactoryApp_Text_No",
"en_US": "NO"
},
{
"id": "pl_msg_00000364_00005",
"id": "BattleFactoryApp_Text_Summary",
"en_US": "SUMMARY"
},
{
"id": "pl_msg_00000364_00006",
"id": "BattleFactoryApp_Text_Rent",
"en_US": "RENT"
},
{
"id": "pl_msg_00000364_00007",
"id": "BattleFactoryApp_Text_Cancel",
"en_US": "CANCEL"
},
{
"id": "pl_msg_00000364_00008",
"id": "BattleFactoryApp_Text_Remove",
"en_US": "REMOVE"
},
{
"id": "pl_msg_00000364_00009",
"id": "BattleFactoryApp_Text_ChooseExchange",
"en_US": [
"Choose the Pokémon to\n",
"be exchanged."
]
},
{
"id": "pl_msg_00000364_00010",
"id": "BattleFactoryApp_Text_CancelTrade",
"en_US": [
"Cancel the Pokémon\n",
"trade?"
]
},
{
"id": "pl_msg_00000364_00011",
"id": "BattleFactoryApp_Text_Dummy1",
"garbage": 2
},
{
"id": "pl_msg_00000364_00012",
"id": "BattleFactoryApp_Text_Dummy2",
"garbage": 3
},
{
"id": "pl_msg_00000364_00013",
"id": "BattleFactoryApp_Text_ChooseReceive",
"en_US": [
"Choose the Pokémon you\n",
"want to receive."
]
},
{
"id": "pl_msg_00000364_00014",
"id": "BattleFactoryApp_Text_AcceptPokemon",
"en_US": [
"Will you accept this\n",
"Pokémon?"
]
},
{
"id": "pl_msg_00000364_00015",
"id": "BattleFactoryApp_Text_PleaseWait2",
"en_US": "Please wait a moment."
},
{
"id": "pl_msg_00000364_00016",
"id": "BattleFactoryApp_Text_TradeOccurred",
"en_US": [
"{STRVAR_1 3, 0, 0} traded\n",
"away {STRVAR_1 0, 1, 0} and\f",
@ -92,43 +92,43 @@
]
},
{
"id": "pl_msg_00000364_00017",
"id": "BattleFactoryApp_Text_Dummy3",
"garbage": 2
},
{
"id": "pl_msg_00000364_00018",
"id": "BattleFactoryApp_Text_Dummy4",
"garbage": 3
},
{
"id": "pl_msg_00000364_00019",
"id": "BattleFactoryApp_Text_Cancel2",
"en_US": "CANCEL"
},
{
"id": "pl_msg_00000364_00020",
"id": "BattleFactoryApp_Text_Dummy5",
"garbage": 6
},
{
"id": "pl_msg_00000364_00021",
"id": "BattleFactoryApp_Text_Exchange",
"en_US": "EXCHANGE"
},
{
"id": "pl_msg_00000364_00022",
"id": "BattleFactoryApp_Text_Dummy6",
"garbage": 3
},
{
"id": "pl_msg_00000364_00023",
"id": "BattleFactoryApp_Text_Back",
"en_US": "BACK"
},
{
"id": "pl_msg_00000364_00024",
"id": "BattleFactoryApp_Text_Cancel3",
"en_US": "CANCEL"
},
{
"id": "pl_msg_00000364_00025",
"id": "BattleFactoryApp_Text_MaleSymbol",
"en_US": "♂"
},
{
"id": "pl_msg_00000364_00026",
"id": "BattleFactoryApp_Text_FemaleSymbol",
"en_US": "♀"
}
]

View File

@ -0,0 +1,159 @@
#include "applications/frontier/battle_factory/cursor.h"
#include <nitro.h>
#include <string.h>
#include "applications/frontier/battle_factory/sprite_manager.h"
#include "heap.h"
#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 *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->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) {
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);
}
}
VecFx32 position;
position.x = cursor->positions[cursor->currentSlot].x * FX32_ONE;
position.y = cursor->positions[cursor->currentSlot].y * FX32_ONE;
Sprite_SetPosition(cursor->sprite, &position);
return cursor;
}
void *BattleFactoryAppCursor_Free(BattleFactoryAppCursor *cursor)
{
Sprite_Delete(cursor->sprite);
Heap_Free(cursor);
return NULL;
}
void BattleFactoryAppCursor_SetDrawFlag(BattleFactoryAppCursor *cursor, BOOL draw)
{
Sprite_SetDrawFlag(cursor->sprite, draw);
}
void ov105_02246080(BattleFactoryAppCursor *cursor)
{
if (cursor->unk_03 == 1) {
return;
}
if (gSystem.pressedKeys == 0) {
return;
}
if (cursor->unk_01 == 2) {
if (JOY_NEW(PAD_KEY_LEFT)) {
if (cursor->currentSlot == 0) {
cursor->currentSlot = (cursor->unk_00 - 1);
} else {
cursor->currentSlot--;
}
} else if (JOY_NEW(PAD_KEY_RIGHT)) {
if (cursor->currentSlot == (cursor->unk_00 - 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)) {
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);
} else {
cursor->currentSlot--;
}
}
} else {
u32 v1, v2;
if (cursor->unk_01 == 0) {
v1 = PAD_KEY_RIGHT;
v2 = PAD_KEY_LEFT;
} else {
v1 = PAD_KEY_DOWN;
v2 = PAD_KEY_UP;
}
if (JOY_NEW(v1)) {
cursor->currentSlot++;
if (cursor->currentSlot >= cursor->unk_00) {
cursor->currentSlot = 0;
}
} else if (JOY_NEW(v2)) {
if (cursor->currentSlot == 0) {
cursor->currentSlot = cursor->unk_00;
}
cursor->currentSlot--;
}
}
if (cursor->animIDs != NULL) {
Sprite_SetAnimNoRestart(cursor->sprite, cursor->animIDs[cursor->currentSlot]);
}
VecFx32 position = *Sprite_GetPosition(cursor->sprite);
position.x = cursor->positions[cursor->currentSlot].x * FX32_ONE;
position.y = cursor->positions[cursor->currentSlot].y * FX32_ONE;
Sprite_SetPosition(cursor->sprite, &position);
}
u8 BattleFactoryAppCursor_GetCurrentSlot(BattleFactoryAppCursor *cursor)
{
return cursor->currentSlot;
}
void ov105_022461A4(BattleFactoryAppCursor *cursor, int param1)
{
cursor->unk_03 = param1;
if (param1 == 0) {
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR);
} else {
Sprite_SetAnimNoRestart(cursor->sprite, ANIM_ID_CURSOR_SELECTED);
}
}
void BattleFactoryAppCursor_UpdatePosition(BattleFactoryAppCursor *cursor, u8 slot)
{
cursor->currentSlot = slot;
if (cursor->animIDs != NULL) {
Sprite_SetAnimNoRestart(cursor->sprite, cursor->animIDs[cursor->currentSlot]);
}
VecFx32 position = *Sprite_GetPosition(cursor->sprite);
position.x = cursor->positions[cursor->currentSlot].x * FX32_ONE;
position.y = cursor->positions[cursor->currentSlot].y * FX32_ONE;
Sprite_SetPosition(cursor->sprite, &position);
}

View File

@ -0,0 +1,56 @@
#include "applications/frontier/battle_factory/helpers.h"
#include "nitro/hw/common/lcd.h"
#include <nitro.h>
#include "constants/graphics.h"
#include "gx_layers.h"
#include "pokemon.h"
#include "pokemon_sprite.h"
#include "unk_0202419C.h"
void BattleFactoryApp_Setup3D(void)
{
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, TRUE);
G2_SetBG0Priority(0);
G3X_SetShading(GX_SHADING_TOON);
G3X_AntiAlias(TRUE);
G3X_AlphaTest(FALSE, 0);
G3X_AlphaBlend(TRUE);
G3X_EdgeMarking(FALSE);
G3X_SetFog(FALSE, GX_FOGBLEND_COLOR_ALPHA, GX_FOGSLOPE_0x8000, 0);
G3X_SetClearColor(GX_RGB(0, 0, 0), 0, G3X_DEPTH_MAX, 63, FALSE);
G3_ViewPort(0, 0, HW_LCD_WIDTH - 1, HW_LCD_HEIGHT - 1);
}
void BattleFactoryApp_UpdateMonGraphics(PokemonSpriteManager *spriteMan)
{
G3_ResetG3X();
G3_MtxMode(GX_MTXMODE_PROJECTION);
G3_Identity();
G3_MtxMode(GX_MTXMODE_POSITION_VECTOR);
G3_Identity();
NNS_G3dGlbFlush();
NNS_G2dSetupSoftwareSpriteCamera();
PokemonSpriteManager_DrawSprites(spriteMan);
G3_SwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_Z);
}
PokemonSprite *BattleFactoryApp_CreateMonSprite(PokemonSpriteManager *spriteMan, int polygonID, Pokemon *mon, int x, int y, int z)
{
PokemonSpriteTemplate template;
Pokemon_BuildSpriteTemplate(&template, mon, FACE_FRONT);
return PokemonSpriteManager_CreateSprite(spriteMan, &template, x, y, z, polygonID, NULL, NULL);
}
void BattleFactoryApp_FlipMonSprite(PokemonSprite *sprite, BOOL flipHorizontal)
{
PokemonSprite_SetAttribute(sprite, MON_SPRITE_FLIP_H, flipHorizontal);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
#include "applications/frontier/battle_factory/panel_sprite.h"
#include <nitro.h>
#include <string.h>
#include "applications/frontier/battle_factory/sprite_manager.h"
#include "heap.h"
#include "sprite.h"
static void SetSpritePosition(BattleFactoryAppPanelSprite *sprite, int x, int y);
BattleFactoryAppPanelSprite *BattleFactoryAppPanelSprite_New(BattleFactoryAppSpriteManager *spriteMan, u32 animID, int x, int y, enum HeapID heapID)
{
BattleFactoryAppPanelSprite *panelSprite = Heap_Alloc(heapID, sizeof(BattleFactoryAppPanelSprite));
memset(panelSprite, 0, sizeof(BattleFactoryAppPanelSprite));
panelSprite->x = x;
panelSprite->y = y;
panelSprite->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, animID, 0, 1, FALSE);
SetSpritePosition(panelSprite, x, y);
return panelSprite;
}
void *BattleFactoryAppPanelSprite_Free(BattleFactoryAppPanelSprite *panelSprite)
{
Sprite_Delete(panelSprite->sprite);
Heap_Free(panelSprite);
return NULL;
}
static void SetSpritePosition(BattleFactoryAppPanelSprite *panelSprite, int x, int y)
{
VecFx32 position;
position.x = x * FX32_ONE;
position.y = y * FX32_ONE;
Sprite_SetPosition(panelSprite->sprite, &position);
}
BOOL BattleFactoryAppPanelSprite_IsAnimated(BattleFactoryAppPanelSprite *panelSprite)
{
return Sprite_IsAnimated(panelSprite->sprite);
}

View File

@ -0,0 +1,117 @@
#include "applications/frontier/battle_factory/pokeball_sprite.h"
#include <nitro.h>
#include <string.h>
#include "applications/frontier/battle_factory/sprite_manager.h"
#include "heap.h"
#include "sprite.h"
static void BattleFactoryAppPokeballSprite_SetSelected(BattleFactoryAppPokeballSprite *ballSprite, u8 isSelected);
BattleFactoryAppPokeballSprite *BattleFactoryAppPokeballSprite_New(BattleFactoryAppSpriteManager *spriteMan, int x, int y, u32 heapID)
{
BattleFactoryAppPokeballSprite *ballSprite = Heap_Alloc(heapID, sizeof(BattleFactoryAppPokeballSprite));
memset(ballSprite, 0, sizeof(BattleFactoryAppPokeballSprite));
ballSprite->isSelected = 0;
ballSprite->x = x;
ballSprite->y = y;
ballSprite->sprite = BattleFactoryApp_InitSprite(spriteMan, 0, ANIM_ID_BALL_STATIC, 0, 0, FALSE);
BattleFactoryAppPokeballSprite_SetPosition(ballSprite, x, y);
Sprite_SetExplicitPalette(ballSprite->sprite, 1);
return ballSprite;
}
void *BattleFactoryAppPokeballSprite_Free(BattleFactoryAppPokeballSprite *ballSprite)
{
Sprite_Delete(ballSprite->sprite);
Heap_Free(ballSprite);
return NULL;
}
void BattleFactoryAppPokeballSprite_SetDrawFlag(BattleFactoryAppPokeballSprite *ballSprite, BOOL draw)
{
Sprite_SetDrawFlag(ballSprite->sprite, draw);
}
VecFx32 BattleFactoryAppPokeballSprite_SetAndGetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y)
{
VecFx32 position = *Sprite_GetPosition(ballSprite->sprite);
position.x += x * FX32_ONE;
position.y += y * FX32_ONE;
Sprite_SetPosition(ballSprite->sprite, &position);
return *Sprite_GetPosition(ballSprite->sprite);
}
void BattleFactoryAppPokeballSprite_SetPosition(BattleFactoryAppPokeballSprite *ballSprite, int x, int y)
{
VecFx32 position;
position.x = x * FX32_ONE;
position.y = y * FX32_ONE;
Sprite_SetPosition(ballSprite->sprite, &position);
}
const VecFx32 *BattleFactoryAppPokeballSprite_GetPosition(BattleFactoryAppPokeballSprite *ballSprite)
{
return Sprite_GetPosition(ballSprite->sprite);
}
static void BattleFactoryAppPokeballSprite_SetSelected(BattleFactoryAppPokeballSprite *ballSprite, u8 isSelected)
{
ballSprite->isSelected = isSelected;
}
u8 BattleFactoryAppPokeballSprite_IsSelected(BattleFactoryAppPokeballSprite *ballSprite)
{
return ballSprite->isSelected;
}
void BattleFactoryAppPokeballSprite_SelectMon(BattleFactoryAppPokeballSprite *ballSprite)
{
BattleFactoryAppPokeballSprite_SetSelected(ballSprite, TRUE);
}
void BattleFactoryAppPokeballSprite_UnselectMon(BattleFactoryAppPokeballSprite *ballSprite)
{
BattleFactoryAppPokeballSprite_SetSelected(ballSprite, FALSE);
}
void ov105_02245F5C(BattleFactoryAppPokeballSprite *ballSprite)
{
const VecFx32 *oldPos = BattleFactoryAppPokeballSprite_GetPosition(ballSprite);
VecFx32 newPos;
newPos.x = ((oldPos->x / FX32_ONE) + 248) * FX32_ONE;
newPos.y = oldPos->y;
Sprite_SetPosition(ballSprite->sprite, &newPos);
}
int BattleFactoryAppPokeballSprite_GetX(BattleFactoryAppPokeballSprite *ballSprite)
{
return ballSprite->x;
}
int BattleFactoryAppPokeballSprite_GetY(BattleFactoryAppPokeballSprite *ballSprite)
{
return ballSprite->y;
}
void BattleFactoryAppPokeballSprite_SetAnim(BattleFactoryAppPokeballSprite *ballSprite, u32 animID)
{
Sprite_SetAnimSpeed(ballSprite->sprite, FX32_ONE);
Sprite_SetAnim(ballSprite->sprite, animID);
}
void BattleFactoryAppPokeballSprite_UpdatePalette(BattleFactoryAppPokeballSprite *ballSprite, u32 palette)
{
Sprite_SetExplicitPalette(ballSprite->sprite, palette);
}

View File

@ -0,0 +1,107 @@
#include "applications/frontier/battle_factory/sprite_manager.h"
#include <nitro.h>
#include "char_transfer.h"
#include "gx_layers.h"
#include "narc_frontier_obj.h"
#include "pltt_transfer.h"
#include "render_oam.h"
#include "sprite.h"
#include "sprite_resource.h"
#include "sprite_transfer.h"
#include "sprite_util.h"
static void InitCharPlttTransferBuffers(void);
static const u8 sCapacities[4] = { 1, 1, 1, 1 };
void BattleFactoryApp_InitSpriteManager(BattleFactoryAppSpriteManager *sprites)
{
InitCharPlttTransferBuffers();
NNS_G2dInitOamManagerModule();
RenderOam_Init(0, 128, 0, 32, 0, 128, 0, 32, HEAP_ID_BATTLE_FACTORY_APP);
sprites->spriteList = SpriteList_InitRendering(9, &sprites->unk_04, HEAP_ID_BATTLE_FACTORY_APP);
for (int i = 0; i < MAX_SPRITE_RESOURCE_GEN4; i++) {
sprites->resourceCollection[i] = SpriteResourceCollection_New(sCapacities[i], i, HEAP_ID_BATTLE_FACTORY_APP);
}
sprites->resources[0][0] = SpriteResourceCollection_AddTiles(sprites->resourceCollection[0], NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_OBJ, BATTLE_FACTORY_APP_SPRITES_NCGR, TRUE, 0, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_BATTLE_FACTORY_APP);
sprites->resources[0][1] = SpriteResourceCollection_AddPalette(sprites->resourceCollection[1], NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_OBJ, BATTLE_FACTORY_APP_SPRITES_PLTT, FALSE, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 8, HEAP_ID_BATTLE_FACTORY_APP);
sprites->resources[0][2] = SpriteResourceCollection_Add(sprites->resourceCollection[2], NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_OBJ, BATTLE_FACTORY_APP_SPRITES_NCER, TRUE, 0, SPRITE_RESOURCE_CELL, HEAP_ID_BATTLE_FACTORY_APP);
sprites->resources[0][3] = SpriteResourceCollection_Add(sprites->resourceCollection[3], NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_OBJ, BATTLE_FACTORY_APP_SPRITES_NANR, TRUE, 0, SPRITE_RESOURCE_ANIM, HEAP_ID_BATTLE_FACTORY_APP);
SpriteTransfer_RequestChar(sprites->resources[0][SPRITE_RESOURCE_CHAR]);
SpriteTransfer_RequestPlttWholeRange(sprites->resources[0][SPRITE_RESOURCE_PLTT]);
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, TRUE);
}
Sprite *BattleFactoryApp_InitSprite(BattleFactoryAppSpriteManager *spriteMan, u32 resourceID, u32 animID, u32 priority, int resourcePriority, u8 onSubScreen)
{
SpriteResourcesHeader resourceHeader;
SpriteResourcesHeader_Init(&resourceHeader, resourceID, resourceID, resourceID, resourceID, -1, -1, FALSE, resourcePriority, spriteMan->resourceCollection[SPRITE_RESOURCE_CHAR], spriteMan->resourceCollection[SPRITE_RESOURCE_PLTT], spriteMan->resourceCollection[SPRITE_RESOURCE_CELL], spriteMan->resourceCollection[SPRITE_RESOURCE_ANIM], NULL, NULL);
AffineSpriteListTemplate spriteTemplate;
spriteTemplate.list = spriteMan->spriteList;
spriteTemplate.resourceData = &resourceHeader;
spriteTemplate.position.x = 0;
spriteTemplate.position.y = 0;
spriteTemplate.position.z = 0;
spriteTemplate.affineScale.x = FX32_ONE;
spriteTemplate.affineScale.y = FX32_ONE;
spriteTemplate.affineScale.z = FX32_ONE;
spriteTemplate.affineZRotation = 0;
spriteTemplate.priority = priority;
if (!onSubScreen) {
spriteTemplate.vramType = NNS_G2D_VRAM_TYPE_2DMAIN;
} else {
spriteTemplate.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
}
spriteTemplate.heapID = HEAP_ID_BATTLE_FACTORY_APP;
if (onSubScreen == TRUE) {
spriteTemplate.position.y += FX32_CONST(HW_LCD_HEIGHT);
}
Sprite *sprite = SpriteList_AddAffine(&spriteTemplate);
Sprite_SetAnimateFlag(sprite, TRUE);
Sprite_SetAnim(sprite, animID);
return sprite;
}
void BattleFactoryApp_FreeSprites(BattleFactoryAppSpriteManager *spriteMan)
{
SpriteTransfer_ResetCharTransfer(spriteMan->resources[0][SPRITE_RESOURCE_CHAR]);
SpriteTransfer_ResetPlttTransfer(spriteMan->resources[0][SPRITE_RESOURCE_PLTT]);
for (u8 i = 0; i < MAX_SPRITE_RESOURCE_GEN4; i++) {
SpriteResourceCollection_Delete(spriteMan->resourceCollection[i]);
}
SpriteList_Delete(spriteMan->spriteList);
RenderOam_Free();
CharTransfer_Free();
PlttTransfer_Free();
}
static void InitCharPlttTransferBuffers(void)
{
CharTransferTemplate transferTemplate = {
32, 2048, 2048, HEAP_ID_BATTLE_FACTORY_APP
};
CharTransfer_InitWithVramModes(&transferTemplate, GX_OBJVRAMMODE_CHAR_1D_64K, GX_OBJVRAMMODE_CHAR_1D_64K);
PlttTransfer_Init(8, HEAP_ID_BATTLE_FACTORY_APP);
CharTransfer_ClearBuffers();
PlttTransfer_Clear();
}

View File

@ -0,0 +1,51 @@
#include "applications/frontier/battle_factory/windows.h"
#include <nitro.h>
#include "constants/field_base_tiles.h"
#include "bg_window.h"
#include "render_window.h"
#define BASE_TILE_WINDOW_FRAME (1024 - STANDARD_WINDOW_TILE_COUNT)
void BattleFactoryApp_InitWindows(BgConfig *bgConfig, Window *windows)
{
static const WindowTemplate sWinTemplates[] = {
{ BG_LAYER_MAIN_1, 1, 1, 10, 2, 13, 1 },
{ BG_LAYER_MAIN_1, 22, 1, 10, 2, 13, 21 },
{ BG_LAYER_MAIN_1, 1, 4, 9, 2, 13, 41 },
{ BG_LAYER_MAIN_1, 1, 6, 9, 2, 13, 59 },
{ BG_LAYER_MAIN_1, 1, 8, 9, 2, 13, 77 },
{ BG_LAYER_MAIN_1, 2, 19, 17, 4, 12, 95 },
{ BG_LAYER_MAIN_1, 23, 19, 8, 4, 13, 163 },
{ BG_LAYER_MAIN_1, 23, 17, 8, 6, 13, 195 },
{ BG_LAYER_MAIN_1, 22, 4, 9, 2, 13, 243 },
{ BG_LAYER_MAIN_1, 22, 6, 9, 2, 13, 261 }
};
for (u8 i = 0; i < 10; i++) {
Window_AddFromTemplate(bgConfig, &windows[i], &sWinTemplates[i]);
Window_FillTilemap(&windows[i], 0);
}
}
void BattleFactoryApp_FreeWindows(Window *windows)
{
for (u16 i = 0; i < 10; i++) {
Window_Remove(&windows[i]);
}
}
void BattleFactoryApp_DrawWindow(BgConfig *bgConfig, Window *window)
{
LoadStandardWindowGraphics(bgConfig, BG_LAYER_MAIN_1, BASE_TILE_WINDOW_FRAME, PLTT_11, STANDARD_WINDOW_SYSTEM, HEAP_ID_BATTLE_FACTORY_APP);
Window_DrawStandardFrame(window, TRUE, BASE_TILE_WINDOW_FRAME, PLTT_11);
}
void BattleFactoryApp_DrawMessageBox(Window *window, int frame)
{
LoadMessageBoxGraphics(window->bgConfig, Window_GetBgLayer(window), BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_10, frame, HEAP_ID_BATTLE_FACTORY_APP);
Window_FillTilemap(window, 15);
Window_DrawMessageBoxWithScrollCursor(window, TRUE, BASE_TILE_STANDARD_WINDOW_FRAME, PLTT_10);
}

View File

@ -952,13 +952,13 @@ pokeplatinum_c = files(
'overlay104/ov104_0223D9E4.c',
'overlay104/ov104_0223DC7C.c',
'overlay104/ov104_0223E894.c',
'overlay105/ov105_02241AE0.c',
'overlay105/ov105_02245AAC.c',
'overlay105/ov105_02245CD0.c',
'overlay105/ov105_02245DC4.c',
'overlay105/ov105_02245E54.c',
'overlay105/ov105_02245FB8.c',
'overlay105/ov105_02246214.c',
'applications/frontier/battle_factory/main.c',
'applications/frontier/battle_factory/sprite_manager.c',
'applications/frontier/battle_factory/helpers.c',
'applications/frontier/battle_factory/panel_sprite.c',
'applications/frontier/battle_factory/pokeball_sprite.c',
'applications/frontier/battle_factory/cursor.c',
'applications/frontier/battle_factory/windows.c',
'applications/frontier/battle_hall/main.c',
'applications/frontier/battle_hall/sprite_manager.c',
'applications/frontier/battle_hall/sprites.c',

View File

@ -3,6 +3,7 @@
#include "constants/heap.h"
#include "applications/frontier/battle_factory/main.h"
#include "overlay104/frontier_script_context.h"
#include "overlay104/frscrcmd.h"
#include "overlay104/ov104_0222DCE0.h"
@ -15,7 +16,6 @@
#include "overlay104/struct_ov104_02234130.h"
#include "overlay104/struct_ov104_0223ADA0.h"
#include "overlay104/struct_ov104_0223C4CC.h"
#include "overlay105/ov105_02241AE0.h"
#include "bg_window.h"
#include "field_battle_data_transfer.h"
@ -85,9 +85,9 @@ BOOL FrontierScrCmd_5F(FrontierScriptContext *param0)
FS_EXTERN_OVERLAY(overlay105);
static const ApplicationManagerTemplate v4 = {
ov105_02241AE0,
ov105_02241BD8,
ov105_02241F54,
BattleFactoryApp_Init,
BattleFactoryApp_Main,
BattleFactoryApp_Exit,
FS_OVERLAY_ID(overlay105)
};
@ -144,9 +144,9 @@ BOOL FrontierScrCmd_62(FrontierScriptContext *param0)
FS_EXTERN_OVERLAY(overlay105);
static const ApplicationManagerTemplate v4 = {
ov105_02241AE0,
ov105_02241BD8,
ov105_02241F54,
BattleFactoryApp_Init,
BattleFactoryApp_Main,
BattleFactoryApp_Exit,
FS_OVERLAY_ID(overlay105)
};

File diff suppressed because it is too large Load Diff

View File

@ -1,138 +0,0 @@
#include "overlay105/ov105_02245AAC.h"
#include <nitro.h>
#include <string.h>
#include "overlay105/struct_ov105_02245AAC.h"
#include "char_transfer.h"
#include "gx_layers.h"
#include "pltt_transfer.h"
#include "render_oam.h"
#include "sprite.h"
#include "sprite_resource.h"
#include "sprite_transfer.h"
#include "sprite_util.h"
void ov105_02245AAC(UnkStruct_ov105_02245AAC *param0);
Sprite *ov105_02245BA4(UnkStruct_ov105_02245AAC *param0, u32 param1, u32 param2, u32 param3, int param4, u8 param5);
void ov105_02245C50(UnkStruct_ov105_02245AAC *param0);
static void ov105_02245C98(void);
static const u8 Unk_ov105_02246444[4] = {
0x1,
0x1,
0x1,
0x1
};
void ov105_02245AAC(UnkStruct_ov105_02245AAC *param0)
{
int v0;
ov105_02245C98();
NNS_G2dInitOamManagerModule();
RenderOam_Init(0, 128, 0, 32, 0, 128, 0, 32, 93);
param0->unk_00 = SpriteList_InitRendering((6 + 2 + 1), &param0->unk_04, HEAP_ID_93);
for (v0 = 0; v0 < 4; v0++) {
param0->unk_190[v0] = SpriteResourceCollection_New(Unk_ov105_02246444[v0], v0, HEAP_ID_93);
}
param0->unk_1A0[0][0] = SpriteResourceCollection_AddTiles(param0->unk_190[0], 151, 0, 1, 0, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_93);
param0->unk_1A0[0][1] = SpriteResourceCollection_AddPalette(param0->unk_190[1], 151, 36, 0, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 8, HEAP_ID_93);
param0->unk_1A0[0][2] = SpriteResourceCollection_Add(param0->unk_190[2], 151, 2, 1, 0, 2, HEAP_ID_93);
param0->unk_1A0[0][3] = SpriteResourceCollection_Add(param0->unk_190[3], 151, 1, 1, 0, 3, HEAP_ID_93);
for (v0 = 0; v0 < 1; v0++) {
SpriteTransfer_RequestChar(param0->unk_1A0[v0][0]);
SpriteTransfer_RequestPlttWholeRange(param0->unk_1A0[v0][1]);
}
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, 1);
return;
}
Sprite *ov105_02245BA4(UnkStruct_ov105_02245AAC *param0, u32 param1, u32 param2, u32 param3, int param4, u8 param5)
{
int v0;
SpriteResourcesHeader v1;
Sprite *v2;
SpriteResourcesHeader_Init(&v1, param1, param1, param1, param1, 0xffffffff, 0xffffffff, 0, param4, param0->unk_190[0], param0->unk_190[1], param0->unk_190[2], param0->unk_190[3], NULL, NULL);
{
AffineSpriteListTemplate v3;
v3.list = param0->unk_00;
v3.resourceData = &v1;
v3.position.x = 0;
v3.position.y = 0;
v3.position.z = 0;
v3.affineScale.x = FX32_ONE;
v3.affineScale.y = FX32_ONE;
v3.affineScale.z = FX32_ONE;
v3.affineZRotation = 0;
v3.priority = param3;
if (param5 == 0) {
v3.vramType = NNS_G2D_VRAM_TYPE_2DMAIN;
} else {
v3.vramType = NNS_G2D_VRAM_TYPE_2DSUB;
}
v3.heapID = HEAP_ID_93;
if (param5 == 1) {
v3.position.y += (192 << FX32_SHIFT);
}
v2 = SpriteList_AddAffine(&v3);
Sprite_SetAnimateFlag(v2, 1);
Sprite_SetAnim(v2, param2);
}
return v2;
}
void ov105_02245C50(UnkStruct_ov105_02245AAC *param0)
{
u8 v0;
for (v0 = 0; v0 < 1; v0++) {
SpriteTransfer_ResetCharTransfer(param0->unk_1A0[v0][0]);
SpriteTransfer_ResetPlttTransfer(param0->unk_1A0[v0][1]);
}
for (v0 = 0; v0 < 4; v0++) {
SpriteResourceCollection_Delete(param0->unk_190[v0]);
}
SpriteList_Delete(param0->unk_00);
RenderOam_Free();
CharTransfer_Free();
PlttTransfer_Free();
return;
}
static void ov105_02245C98(void)
{
{
CharTransferTemplate v0 = {
32, 2048, 2048, 93
};
CharTransfer_InitWithVramModes(&v0, GX_OBJVRAMMODE_CHAR_1D_64K, GX_OBJVRAMMODE_CHAR_1D_64K);
}
PlttTransfer_Init(8, HEAP_ID_93);
CharTransfer_ClearBuffers();
PlttTransfer_Clear();
return;
}

View File

@ -1,68 +0,0 @@
#include <nitro.h>
#include <string.h>
#include "gx_layers.h"
#include "pokemon.h"
#include "pokemon_sprite.h"
#include "unk_0202419C.h"
void ov105_02245CD0(void);
void ov105_02245D50(PokemonSpriteManager *param0);
PokemonSprite *ov105_02245D88(PokemonSpriteManager *param0, int param1, Pokemon *param2, int param3, int param4, int param5);
void ov105_02245DB8(PokemonSprite *param0, int param1);
void ov105_02245CD0(void)
{
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1);
G2_SetBG0Priority(0);
G3X_SetShading(GX_SHADING_TOON);
G3X_AntiAlias(1);
G3X_AlphaTest(0, 0);
G3X_AlphaBlend(1);
G3X_EdgeMarking(0);
G3X_SetFog(0, GX_FOGBLEND_COLOR_ALPHA, GX_FOGSLOPE_0x8000, 0);
G3X_SetClearColor(GX_RGB(0, 0, 0), 0, 0x7fff, 63, 0);
G3_ViewPort(0, 0, 255, 191);
return;
}
void ov105_02245D50(PokemonSpriteManager *param0)
{
G3_ResetG3X();
G3_MtxMode(GX_MTXMODE_PROJECTION);
G3_Identity();
G3_MtxMode(GX_MTXMODE_POSITION_VECTOR);
G3_Identity();
NNS_G3dGlbFlush();
NNS_G2dSetupSoftwareSpriteCamera();
PokemonSpriteManager_DrawSprites(param0);
G3_SwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_Z);
return;
}
PokemonSprite *ov105_02245D88(PokemonSpriteManager *param0, int param1, Pokemon *param2, int param3, int param4, int param5)
{
PokemonSpriteTemplate v0;
PokemonSprite *v1;
int v2;
u32 v3;
Pokemon_BuildSpriteTemplate(&v0, param2, 2);
v2 = 0;
v1 = PokemonSpriteManager_CreateSprite(param0, &v0, param3, param4 + v2, param5, param1, NULL, NULL);
return v1;
}
void ov105_02245DB8(PokemonSprite *param0, int param1)
{
PokemonSprite_SetAttribute(param0, MON_SPRITE_FLIP_H, param1);
return;
}

View File

@ -1,59 +0,0 @@
#include "overlay105/ov105_02245DC4.h"
#include <nitro.h>
#include <string.h>
#include "overlay105/ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245E1C_decl.h"
#include "heap.h"
#include "sprite.h"
struct UnkStruct_ov105_02245E1C_t {
int unk_00;
int unk_04;
Sprite *unk_08;
};
void *ov105_02245E1C(UnkStruct_ov105_02245E1C *param0);
void ov105_02245E30(UnkStruct_ov105_02245E1C *param0, int param1, int param2);
BOOL ov105_02245E48(UnkStruct_ov105_02245E1C *param0);
UnkStruct_ov105_02245E1C *ov105_02245DC4(UnkStruct_ov105_02245AAC *param0, u32 param1, int param2, int param3, enum HeapID heapID)
{
UnkStruct_ov105_02245E1C *v0 = Heap_Alloc(heapID, sizeof(UnkStruct_ov105_02245E1C));
memset(v0, 0, sizeof(UnkStruct_ov105_02245E1C));
v0->unk_00 = param2;
v0->unk_04 = param3;
v0->unk_08 = ov105_02245BA4(param0, 0, param1, 0, 1, 0);
ov105_02245E30(v0, param2, param3);
return v0;
}
void *ov105_02245E1C(UnkStruct_ov105_02245E1C *param0)
{
Sprite_Delete(param0->unk_08);
Heap_Free(param0);
return NULL;
}
void ov105_02245E30(UnkStruct_ov105_02245E1C *param0, int param1, int param2)
{
VecFx32 v0;
v0.x = (param1 * FX32_ONE);
v0.y = (param2 * FX32_ONE);
Sprite_SetPosition(param0->unk_08, &v0);
return;
}
BOOL ov105_02245E48(UnkStruct_ov105_02245E1C *param0)
{
return Sprite_IsAnimated(param0->unk_08);
}

View File

@ -1,151 +0,0 @@
#include "overlay105/ov105_02245E54.h"
#include <nitro.h>
#include <string.h>
#include "overlay105/ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245EA8_decl.h"
#include "heap.h"
#include "sprite.h"
struct UnkStruct_ov105_02245EA8_t {
u16 unk_00;
u16 unk_02;
int unk_04;
int unk_08;
Sprite *unk_0C;
};
void *ov105_02245EA8(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245EBC(UnkStruct_ov105_02245EA8 *param0, int param1);
VecFx32 ov105_02245EC8(UnkStruct_ov105_02245EA8 *param0, int param1, int param2);
void ov105_02245F14(UnkStruct_ov105_02245EA8 *param0, int param1, int param2);
const VecFx32 *ov105_02245F2C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F38(UnkStruct_ov105_02245EA8 *param0, u8 param1);
u8 ov105_02245F3C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F44(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F50(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F5C(UnkStruct_ov105_02245EA8 *param0);
int ov105_02245F88(UnkStruct_ov105_02245EA8 *param0);
int ov105_02245F8C(UnkStruct_ov105_02245EA8 *param0);
void ov105_02245F90(UnkStruct_ov105_02245EA8 *param0, u32 param1);
void ov105_02245FAC(UnkStruct_ov105_02245EA8 *param0, u32 param1);
UnkStruct_ov105_02245EA8 *ov105_02245E54(UnkStruct_ov105_02245AAC *param0, int param1, int param2, u32 heapID)
{
UnkStruct_ov105_02245EA8 *v0 = Heap_Alloc(heapID, sizeof(UnkStruct_ov105_02245EA8));
memset(v0, 0, sizeof(UnkStruct_ov105_02245EA8));
v0->unk_00 = 0;
v0->unk_04 = param1;
v0->unk_08 = param2;
v0->unk_0C = ov105_02245BA4(param0, 0, 6, 0, 0, 0);
ov105_02245F14(v0, param1, param2);
Sprite_SetExplicitPalette(v0->unk_0C, 1);
return v0;
}
void *ov105_02245EA8(UnkStruct_ov105_02245EA8 *param0)
{
Sprite_Delete(param0->unk_0C);
Heap_Free(param0);
return NULL;
}
void ov105_02245EBC(UnkStruct_ov105_02245EA8 *param0, int param1)
{
Sprite_SetDrawFlag(param0->unk_0C, param1);
return;
}
VecFx32 ov105_02245EC8(UnkStruct_ov105_02245EA8 *param0, int param1, int param2)
{
VecFx32 v0;
v0 = *(Sprite_GetPosition(param0->unk_0C));
v0.x += (param1 * FX32_ONE);
v0.y += (param2 * FX32_ONE);
Sprite_SetPosition(param0->unk_0C, &v0);
return *(Sprite_GetPosition(param0->unk_0C));
}
void ov105_02245F14(UnkStruct_ov105_02245EA8 *param0, int param1, int param2)
{
VecFx32 v0;
v0.x = (param1 * FX32_ONE);
v0.y = (param2 * FX32_ONE);
Sprite_SetPosition(param0->unk_0C, &v0);
return;
}
const VecFx32 *ov105_02245F2C(UnkStruct_ov105_02245EA8 *param0)
{
return Sprite_GetPosition(param0->unk_0C);
}
void ov105_02245F38(UnkStruct_ov105_02245EA8 *param0, u8 param1)
{
param0->unk_00 = param1;
return;
}
u8 ov105_02245F3C(UnkStruct_ov105_02245EA8 *param0)
{
return param0->unk_00;
}
void ov105_02245F44(UnkStruct_ov105_02245EA8 *param0)
{
ov105_02245F38(param0, 1);
return;
}
void ov105_02245F50(UnkStruct_ov105_02245EA8 *param0)
{
ov105_02245F38(param0, 0);
return;
}
void ov105_02245F5C(UnkStruct_ov105_02245EA8 *param0)
{
VecFx32 v0;
const VecFx32 *v1 = ov105_02245F2C(param0);
v0.x = ((v1->x / FX32_ONE) + 248) * FX32_ONE;
v0.y = v1->y;
Sprite_SetPosition(param0->unk_0C, &v0);
return;
}
int ov105_02245F88(UnkStruct_ov105_02245EA8 *param0)
{
return param0->unk_04;
}
int ov105_02245F8C(UnkStruct_ov105_02245EA8 *param0)
{
return param0->unk_08;
}
void ov105_02245F90(UnkStruct_ov105_02245EA8 *param0, u32 param1)
{
Sprite_SetAnimSpeed(param0->unk_0C, FX32_ONE);
Sprite_SetAnim(param0->unk_0C, param1);
return;
}
void ov105_02245FAC(UnkStruct_ov105_02245EA8 *param0, u32 param1)
{
Sprite_SetExplicitPalette(param0->unk_0C, param1);
return;
}

View File

@ -1,192 +0,0 @@
#include "overlay105/ov105_02245FB8.h"
#include <nitro.h>
#include <string.h>
#include "overlay105/ov105_02245AAC.h"
#include "overlay105/struct_ov105_02245AAC.h"
#include "overlay105/struct_ov105_02246060_decl.h"
#include "overlay105/struct_ov105_02246394.h"
#include "heap.h"
#include "sprite.h"
#include "system.h"
struct UnkStruct_ov105_02246060_t {
u8 unk_00;
u8 unk_01;
u8 unk_02;
u8 unk_03;
const UnkStruct_ov105_02246394 *unk_04;
const u8 *unk_08;
Sprite *unk_0C;
u8 unk_10;
};
UnkStruct_ov105_02246060 *ov105_02245FB8(UnkStruct_ov105_02245AAC *param0, u8 param1, u8 param2, u8 param3, u8 param4, const UnkStruct_ov105_02246394 *param5, const u8 *param6);
void *ov105_02246060(UnkStruct_ov105_02246060 *param0);
void ov105_02246074(UnkStruct_ov105_02246060 *param0, int param1);
void ov105_02246080(UnkStruct_ov105_02246060 *param0);
u8 ov105_022461A0(UnkStruct_ov105_02246060 *param0);
void ov105_022461A4(UnkStruct_ov105_02246060 *param0, int param1);
void ov105_022461C0(UnkStruct_ov105_02246060 *param0, u8 param1);
UnkStruct_ov105_02246060 *ov105_02245FB8(UnkStruct_ov105_02245AAC *param0, u8 param1, u8 param2, u8 param3, u8 param4, const UnkStruct_ov105_02246394 *param5, const u8 *param6)
{
UnkStruct_ov105_02246060 *v0;
VecFx32 v1;
v0 = Heap_Alloc(HEAP_ID_93, sizeof(UnkStruct_ov105_02246060));
memset(v0, 0, sizeof(UnkStruct_ov105_02246060));
v0->unk_00 = param1;
v0->unk_10 = param2;
v0->unk_01 = param3;
v0->unk_02 = param4;
v0->unk_04 = param5;
v0->unk_08 = param6;
if (param6 != NULL) {
v0->unk_0C = ov105_02245BA4(param0, 0, v0->unk_08[param4], 0, 0, 0);
} else {
if (param3 == 0) {
v0->unk_0C = ov105_02245BA4(param0, 0, 8, 0, 0, 0);
} else {
v0->unk_0C = ov105_02245BA4(param0, 0, 9, 0, 0, 0);
}
}
v1.x = (v0->unk_04[v0->unk_02].unk_00 * FX32_ONE);
v1.y = (v0->unk_04[v0->unk_02].unk_02 * FX32_ONE);
Sprite_SetPosition(v0->unk_0C, &v1);
return v0;
}
void *ov105_02246060(UnkStruct_ov105_02246060 *param0)
{
Sprite_Delete(param0->unk_0C);
Heap_Free(param0);
return NULL;
}
void ov105_02246074(UnkStruct_ov105_02246060 *param0, int param1)
{
Sprite_SetDrawFlag(param0->unk_0C, param1);
return;
}
void ov105_02246080(UnkStruct_ov105_02246060 *param0)
{
VecFx32 v0;
u32 v1, v2;
if (param0->unk_03 == 1) {
return;
}
if (gSystem.pressedKeys == 0) {
return;
}
if (param0->unk_01 == 2) {
if (gSystem.pressedKeys & PAD_KEY_LEFT) {
if (param0->unk_02 == 0) {
param0->unk_02 = (param0->unk_00 - 1);
} else {
param0->unk_02--;
}
} else if (gSystem.pressedKeys & PAD_KEY_RIGHT) {
if (param0->unk_02 == (param0->unk_00 - 1)) {
param0->unk_02 = 0;
} else {
param0->unk_02++;
}
} else if (gSystem.pressedKeys & PAD_KEY_DOWN) {
if (param0->unk_02 < (param0->unk_10)) {
param0->unk_02 = param0->unk_10;
} else if (param0->unk_02 == (param0->unk_00 - 1)) {
param0->unk_02 = 0;
} else {
param0->unk_02++;
}
} else if (gSystem.pressedKeys & PAD_KEY_UP) {
if (param0->unk_02 < (param0->unk_10)) {
param0->unk_02 = (param0->unk_00 - 1);
} else {
param0->unk_02--;
}
}
} else {
if (param0->unk_01 == 0) {
v1 = PAD_KEY_RIGHT;
v2 = PAD_KEY_LEFT;
} else {
v1 = PAD_KEY_DOWN;
v2 = PAD_KEY_UP;
}
if (gSystem.pressedKeys & v1) {
param0->unk_02++;
if (param0->unk_02 >= param0->unk_00) {
param0->unk_02 = 0;
}
} else if (gSystem.pressedKeys & v2) {
if (param0->unk_02 == 0) {
param0->unk_02 = param0->unk_00;
}
param0->unk_02--;
}
}
if (param0->unk_08 != NULL) {
Sprite_SetAnimNoRestart(param0->unk_0C, param0->unk_08[param0->unk_02]);
}
v0 = *(Sprite_GetPosition(param0->unk_0C));
v0.x = (param0->unk_04[param0->unk_02].unk_00 * FX32_ONE);
v0.y = (param0->unk_04[param0->unk_02].unk_02 * FX32_ONE);
Sprite_SetPosition(param0->unk_0C, &v0);
return;
}
u8 ov105_022461A0(UnkStruct_ov105_02246060 *param0)
{
return param0->unk_02;
}
void ov105_022461A4(UnkStruct_ov105_02246060 *param0, int param1)
{
param0->unk_03 = param1;
if (param1 == 0) {
Sprite_SetAnimNoRestart(param0->unk_0C, 8);
} else {
Sprite_SetAnimNoRestart(param0->unk_0C, 13);
}
return;
}
void ov105_022461C0(UnkStruct_ov105_02246060 *param0, u8 param1)
{
VecFx32 v0;
param0->unk_02 = param1;
if (param0->unk_08 != NULL) {
Sprite_SetAnimNoRestart(param0->unk_0C, param0->unk_08[param0->unk_02]);
}
v0 = *(Sprite_GetPosition(param0->unk_0C));
v0.x = (param0->unk_04[param0->unk_02].unk_00 * FX32_ONE);
v0.y = (param0->unk_04[param0->unk_02].unk_02 * FX32_ONE);
Sprite_SetPosition(param0->unk_0C, &v0);
return;
}

View File

@ -1,66 +0,0 @@
#include "overlay105/ov105_02246214.h"
#include <nitro.h>
#include <string.h>
#include "bg_window.h"
#include "render_window.h"
void ov105_02246214(BgConfig *param0, Window *param1);
void ov105_02246244(Window *param0);
void ov105_02246260(BgConfig *param0, Window *param1);
void ov105_0224628C(Window *param0, int param1);
static const WindowTemplate Unk_ov105_02246458[] = {
{ 0x1, 0x1, 0x1, 0xA, 0x2, 0xD, 0x1 },
{ 0x1, 0x16, 0x1, 0xA, 0x2, 0xD, 0x15 },
{ 0x1, 0x1, 0x4, 0x9, 0x2, 0xD, 0x29 },
{ 0x1, 0x1, 0x6, 0x9, 0x2, 0xD, 0x3B },
{ 0x1, 0x1, 0x8, 0x9, 0x2, 0xD, 0x4D },
{ 0x1, 0x2, 0x13, 0x11, 0x4, 0xC, 0x5F },
{ 0x1, 0x17, 0x13, 0x8, 0x4, 0xD, 0xA3 },
{ 0x1, 0x17, 0x11, 0x8, 0x6, 0xD, 0xC3 },
{ 0x1, 0x16, 0x4, 0x9, 0x2, 0xD, 0xF3 },
{ 0x1, 0x16, 0x6, 0x9, 0x2, 0xD, 0x105 }
};
void ov105_02246214(BgConfig *param0, Window *param1)
{
u8 v0;
const WindowTemplate *v1 = Unk_ov105_02246458;
for (v0 = 0; v0 < 10; v0++) {
Window_AddFromTemplate(param0, &param1[v0], &v1[v0]);
Window_FillTilemap(&param1[v0], 0);
}
return;
}
void ov105_02246244(Window *param0)
{
u16 v0;
for (v0 = 0; v0 < 10; v0++) {
Window_Remove(&param0[v0]);
}
return;
}
void ov105_02246260(BgConfig *param0, Window *param1)
{
LoadStandardWindowGraphics(param0, BG_LAYER_MAIN_1, (1024 - 9), 11, 0, HEAP_ID_93);
Window_DrawStandardFrame(param1, 1, (1024 - 9), 11);
return;
}
void ov105_0224628C(Window *param0, int param1)
{
LoadMessageBoxGraphics(param0->bgConfig, Window_GetBgLayer(param0), ((1024 - 9) - (18 + 12)), 10, param1, HEAP_ID_93);
Window_FillTilemap(param0, 15);
Window_DrawMessageBoxWithScrollCursor(param0, 1, ((1024 - 9) - (18 + 12)), 10);
return;
}

View File

@ -11,10 +11,10 @@
#include "applications/frontier/battle_castle/opponent_app.h"
#include "applications/frontier/battle_castle/self_app.h"
#include "applications/frontier/battle_factory/main.h"
#include "applications/frontier/battle_hall/main.h"
#include "overlay104/ov104_0222ECE8.h"
#include "overlay104/ov104_0223C164.h"
#include "overlay105/ov105_02241AE0.h"
#include "overlay108/ov108_02241AE0.h"
#include "communication_system.h"