Merge pull request #537 from YakosWG/type-rendering

Document type_icon.c
This commit is contained in:
Yako 2025-06-08 07:50:24 +02:00 committed by GitHub
parent 8953d194ce
commit fbb209a4b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 1187 additions and 1170 deletions

View File

@ -14,7 +14,7 @@ void ov21_021DE6C0(UnkStruct_ov21_021E68F4 *param0);
BOOL ov21_021DE6D4(UnkStruct_ov21_021DE6D4 *param0, int param1);
BOOL ov21_021DE6D8(UnkStruct_ov21_021DE6D4 *param0, int param1);
void ov21_021DEB8C(Window *param0, int param1, enum HeapId heapID, int param3, u32 param4);
int ov21_021DF180(int param0);
int PokedexGraphics_GetAnimIDfromType(int monType);
Window *ov21_021DF30C(PokedexTextManager *textMan, int param1, int param2);
#endif // POKEPLATINUM_OV21_021DE668_H

View File

@ -30,6 +30,7 @@
#include "party.h"
#include "pokemon.h"
#include "pokemon_sprite.h"
#include "render_window.h"
#include "sprite_system.h"
#include "strbuf.h"
#include "string_template.h"
@ -84,12 +85,12 @@ int BattleSystem_PartyCount(BattleSystem *battleSys, int battler);
Pokemon *BattleSystem_PartyPokemon(BattleSystem *battleSys, int battler, int slot);
PokemonSpriteManager *ov16_0223E000(BattleSystem *battleSys);
UnkStruct_ov12_0221FCDC *ov16_0223E008(BattleSystem *battleSys);
SpriteSystem *ov16_0223E010(BattleSystem *battleSys);
SpriteManager *ov16_0223E018(BattleSystem *battleSys);
SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSys);
SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSys);
UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSys, int param1);
UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSys);
PartyGauge *ov16_0223E034(BattleSystem *battleSys, enum PartyGaugeSide param1);
void ov16_0223E040(BattleSystem *battleSys, enum PartyGaugeSide param1, PartyGauge *param2);
PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide param1);
void BattleSystem_SetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide param1, PartyGauge *param2);
UnkStruct_0200C440 *ov16_0223E04C(BattleSystem *battleSys);
UnkStruct_0200C440 *ov16_0223E054(BattleSystem *battleSys);
MessageLoader *BattleSystem_MessageLoader(BattleSystem *battleSys);
@ -128,7 +129,7 @@ Trainer *BattleSystem_GetTrainer(BattleSystem *battleSys, int param1);
TrainerInfo *BattleSystem_TrainerInfo(BattleSystem *battleSys, int battler);
Bag *BattleSystem_Bag(BattleSystem *battleSys);
BagCursor *BattleSystem_BagCursor(BattleSystem *battleSys);
u32 BattleSystem_GetTrainerGender(BattleSystem *battleSys, int param1);
u32 BattleSystem_GetTrainerGender(BattleSystem *battleSys, int battler);
/**
* @brief Get a battler of a particular type.
@ -195,7 +196,7 @@ u8 ov16_0223ED60(BattleSystem *battleSys);
u8 ov16_0223ED6C(BattleSystem *battleSys);
int BattleSystem_NumSafariBalls(BattleSystem *battleSys);
void BattleSystem_SetSafariBalls(BattleSystem *battleSys, int param1);
Options *ov16_0223EDA4(BattleSystem *battleSys);
Options *BattleSystem_GetOptions(BattleSystem *battleSys);
/**
* @brief Check if battle animations are turned on.
@ -227,8 +228,8 @@ void ov16_0223F24C(BattleSystem *battleSys, int param1);
void ov16_0223F268(BattleSystem *battleSys);
void BattleSystem_SetCommandSelectionFlags(BattleSystem *battleSys, int flags);
void ov16_0223F290(BattleSystem *battleSys, int param1);
void *Battle_WaitDial(BattleSystem *battleSys);
void Battle_SetWaitDial(BattleSystem *battleSys, void *param1);
WaitDial *Battle_GetWaitDial(BattleSystem *battleSys);
void Battle_SetWaitDial(BattleSystem *battleSys, WaitDial *waitDial);
UnkStruct_ov16_0223E0C8 *ov16_0223F2AC(BattleSystem *battleSys, int param1);
u8 *ov16_0223F2B8(UnkStruct_ov16_0223E0C8 *param0, int param1);
void ov16_0223F2CC(UnkStruct_ov16_0223E0C8 *param0, int param1, int param2);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_OV16_02260C00_H
typedef struct {
u16 unk_00[4];
u16 moveIDs[4];
u8 unk_08[4];
u8 unk_0C[4];
u8 unk_10;

View File

@ -1,23 +0,0 @@
#ifndef POKEPLATINUM_CONSTANTS_PALETTE_H
#define POKEPLATINUM_CONSTANTS_PALETTE_H
enum Palette {
PLTT_0 = 0,
PLTT_1,
PLTT_2,
PLTT_3,
PLTT_4,
PLTT_5,
PLTT_6,
PLTT_7,
PLTT_8,
PLTT_9,
PLTT_10,
PLTT_11,
PLTT_12,
PLTT_13,
PLTT_14,
PLTT_15,
};
#endif // POKEPLATINUM_CONSTANTS_PALETTE_H

View File

@ -0,0 +1,11 @@
#ifndef POKEPLATINUM_MOVE_PALETTES_H
#define POKEPLATINUM_MOVE_PALETTES_H
#include "generated/pokemon_types.h"
#include "palette.h"
const u16 *GetMoveTypePalette(int moveType);
void LoadMoveSelectPltt(PaletteData *paletteSys, enum PokemonType moveType, int unused, enum PaletteBufferID bufferID, enum Palette paletteDest);
#endif // POKEPLATINUM_MOVE_PALETTES_H

View File

@ -1,9 +0,0 @@
#ifndef POKEPLATINUM_OV11_0221F800_H
#define POKEPLATINUM_OV11_0221F800_H
#include "palette.h"
const u16 *ov11_0221F800(int param0);
void ov11_0221F81C(PaletteData *param0, int param1, int param2, int param3, int param4);
#endif // POKEPLATINUM_OV11_0221F800_H

View File

@ -41,7 +41,7 @@ typedef struct {
MessageLoader *unk_1FA4;
StringTemplate *unk_1FA8;
Strbuf *unk_1FAC;
SpriteManager *unk_1FB0;
SpriteManager *spriteMan;
ManagedSprite *unk_1FB4[38];
Window unk_204C[2];
Window *unk_206C;

View File

@ -10,6 +10,14 @@
#define PALETTE_SIZE_BYTES (PALETTE_SIZE * sizeof(u16))
#define PALETTE_SIZE_EXT_BYTES (PALETTE_SIZE_EXT * sizeof(u16))
#define PLTT_OFFSET(i) ((i) * PALETTE_SIZE_BYTES)
#define PLTT_DEST(i) ((i) * PALETTE_SIZE)
#define BlendColor(source, target, fraction) ((source) + (((target) - (source)) * (fraction) >> 4))
#define ColorR(source) ((source) & 0x1F)
#define ColorG(source) (((source) >> 5) & 0x1F)
#define ColorB(source) (((source) >> 10) & 0x1F)
#define RGB(r, g, b) (((b) << 10) | ((g) << 5) | (r))
enum PaletteBufferID {
PLTTBUF_MAIN_BG = 0,
@ -54,6 +62,25 @@ enum PaletteSelector {
PLTTSEL_BOTH,
};
enum Palette {
PLTT_0 = 0,
PLTT_1,
PLTT_2,
PLTT_3,
PLTT_4,
PLTT_5,
PLTT_6,
PLTT_7,
PLTT_8,
PLTT_9,
PLTT_10,
PLTT_11,
PLTT_12,
PLTT_13,
PLTT_14,
PLTT_15,
};
typedef struct RgbColor {
u16 r : 5;
u16 g : 5;

View File

@ -33,6 +33,7 @@
#include "palette.h"
#include "party.h"
#include "poketch.h"
#include "render_window.h"
#include "sprite_system.h"
#include "strbuf.h"
#include "string_template.h"
@ -50,22 +51,22 @@ struct BattleSystem {
SysTask *unk_1C;
SysTask *unk_20;
SysTask *unk_24;
PaletteData *unk_28;
PaletteData *paletteSys;
u32 battleType;
BattleContext *battleCtx;
BattlerData *battlers[MAX_BATTLERS];
int maxBattlers;
TrainerInfo *trainerInfo[MAX_BATTLERS];
Bag *unk_58;
BagCursor *unk_5C;
Bag *bag;
BagCursor *bagCursor;
Pokedex *pokedex;
PCBoxes *pcBoxes;
Party *parties[MAX_BATTLERS];
ChatotCry *unk_78[MAX_BATTLERS];
PokemonSpriteManager *unk_88;
UnkStruct_ov12_0221FCDC *unk_8C;
SpriteSystem *unk_90;
SpriteManager *unk_94;
SpriteSystem *spriteSys;
SpriteManager *spriteMan;
Poketch *poketch;
UnkStruct_0206D140 *unk_9C;
u16 trainerIDs[MAX_BATTLERS];
@ -73,16 +74,16 @@ struct BattleSystem {
Trainer trainers[MAX_BATTLERS];
UnkStruct_ov16_02268520 unk_17C[2];
UnkStruct_ov16_02268A14 *unk_198;
PartyGauge *unk_19C[2];
PartyGauge *partyGauges[2];
UnkStruct_0200C440 *unk_1A4;
UnkStruct_0200C440 *unk_1A8;
void *unk_1AC;
Options *unk_1B0;
Options *options;
PalPad *unk_1B4;
void *unk_1B8;
WaitDial *waitDial;
u8 *unk_1BC;
UnkStruct_ov10_0221F800 *unk_1C0;
PokemonAnimationSys *unk_1C4;
PokemonAnimationSys *pokemonAnimationSys;
NNSG2dCellTransferState *cellTransferState;
UnkStruct_ov16_0223E0C8 unk_1CC[4];
BattleRecords unusedBattleRecords;
@ -111,7 +112,7 @@ struct BattleSystem {
u8 unk_23FB_5 : 3;
enum BattleTerrain terrain;
int unk_2400;
int unk_2404;
int mapHeader;
u32 battleStatusMask;
enum Time time;
int safariBalls;
@ -137,7 +138,7 @@ struct BattleSystem {
u16 unk_2454[4];
u16 unk_245C[4];
int unk_2464[4];
u32 unk_2474_0 : 1;
u32 recordingStopped : 1;
u32 unk_2474_1 : 31;
SysTask *playbackStopButton;
u8 unk_247C[4];

34
include/type_icon.h Normal file
View File

@ -0,0 +1,34 @@
#ifndef POKEPLATINUM_TYPE_ICON_H
#define POKEPLATINUM_TYPE_ICON_H
#include <nnsys.h>
#include "generated/move_classes.h"
#include "generated/pokemon_types.h"
#include "palette.h"
#include "sprite_system.h"
u32 TypeIcon_GetChar(enum PokemonType moveType);
u32 TypeIcon_GetPlttSrc(void);
u32 TypeIcon_GetCell(void);
u32 TypeIcon_GetAnim(void);
u8 TypeIcon_GetPltt(enum PokemonType moveType);
enum NarcID TypeIcon_GetNARC(void);
void TypeIcon_LoadChar(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, enum PokemonType moveType, u32 resourceID);
void TypeIcon_LoadPlttSrc(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, u32 resourceID);
void TypeIcon_LoadPltt(PaletteData *paletteData, enum PaletteBufferID bufferID, SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, u32 resourceID);
void TypeIcon_LoadAnim(SpriteSystem *spriteSys, SpriteManager *spriteMan, u32 cellResourceID, u32 animResourceID);
void TypeIcon_UnloadChar(SpriteManager *spriteMan, u32 resourceID);
void TypeIcon_UnloadPlttSrc(SpriteManager *spriteMan, u32 resourceID);
void TypeIcon_UnloadAnim(SpriteManager *spriteMan, u32 cellResourceID, u32 animResourceID);
ManagedSprite *TypeIcon_NewTypeIconSprite(SpriteSystem *spriteSys, SpriteManager *spriteMan, enum PokemonType moveType, const SpriteTemplate *spriteTemplate);
void TypeIcon_DeleteSprite(ManagedSprite *managedSprite);
u32 CategoryIcon_GetChar(enum MoveClass moveCat);
u8 CategoryIcon_GetPltt(enum MoveClass moveCat);
enum NarcID CategoryIcon_GetNARC(void);
void CategoryIcon_LoadChar(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, enum MoveClass moveCat, u32 resourceID);
void CategoryIcon_UnloadChar(SpriteManager *spriteMan, u32 resourceID);
void CategoryIcon_DeleteSprite(ManagedSprite *managedSprite);
#endif // POKEPLATINUM_TYPE_ICON_H

View File

@ -1,31 +0,0 @@
#ifndef POKEPLATINUM_UNK_0207C908_H
#define POKEPLATINUM_UNK_0207C908_H
#include <nnsys.h>
#include "palette.h"
#include "sprite_system.h"
u32 sub_0207C908(int param0);
u32 sub_0207C920(void);
u32 sub_0207C924(void);
u32 sub_0207C928(void);
u8 sub_0207C92C(int param0);
enum NarcID sub_0207C944(void);
void sub_0207C948(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, int param3, u32 param4);
void sub_0207C97C(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, u32 param3);
void sub_0207C9B0(PaletteData *param0, int param1, SpriteSystem *param2, SpriteManager *param3, NNS_G2D_VRAM_TYPE param4, u32 param5);
void sub_0207C9EC(SpriteSystem *param0, SpriteManager *param1, u32 param2, u32 param3);
void sub_0207CA34(SpriteManager *param0, u32 param1);
void sub_0207CA3C(SpriteManager *param0, u32 param1);
void sub_0207CA44(SpriteManager *param0, u32 param1, u32 param2);
ManagedSprite *sub_0207CA58(SpriteSystem *param0, SpriteManager *param1, int param2, const SpriteTemplate *param3);
void sub_0207CA88(ManagedSprite *param0);
u32 sub_0207CA90(int param0);
u8 sub_0207CAA8(int param0);
enum NarcID sub_0207CAC0(void);
void sub_0207CAC4(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, int param3, u32 param4);
void sub_0207CAF8(SpriteManager *param0, u32 param1);
void sub_0207CB00(ManagedSprite *param0);
#endif // POKEPLATINUM_UNK_0207C908_H

View File

@ -297,7 +297,7 @@ Static main
Object main.nef.p/src_unk_0207A6DC.c.o
Object main.nef.p/src_unk_0207AE68.c.o
Object main.nef.p/src_unk_0207C63C.c.o
Object main.nef.p/src_unk_0207C908.c.o
Object main.nef.p/src_type_icon.c.o
Object main.nef.p/src_unk_0207CB08.c.o
Object main.nef.p/src_item.c.o
Object main.nef.p/src_bag.c.o
@ -625,7 +625,7 @@ Overlay overlay10
Overlay overlay11
{
After overlay4
Object main.nef.p/src_overlay011_ov11_0221F800.c.o
Object main.nef.p/src_overlay011_move_palettes.c.o
Object main.nef.p/src_overlay011_ov11_0221F840.c.o
}

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "generated/pokemon_types.h"
#include "applications/pokedex/ov21_021E29DC.h"
#include "applications/pokedex/pokedex_app.h"
#include "applications/pokedex/pokedex_data_manager.h"
@ -623,8 +625,8 @@ static void ov21_021DF098(UnkStruct_ov21_021DF374 *param0, PokedexGraphicData **
type1 = SpeciesData_GetFormValue(species, v6, SPECIES_DATA_TYPE_1);
type2 = SpeciesData_GetFormValue(species, v6, SPECIES_DATA_TYPE_2);
type1 = ov21_021DF180(type1);
type2 = ov21_021DF180(type2);
type1 = PokedexGraphics_GetAnimIDfromType(type1);
type2 = PokedexGraphics_GetAnimIDfromType(type2);
SpriteResourcesHeader_Init(&v0, 90 + 4000, 13 + 4000, 88 + 4000, 89 + 4000, 0xffffffff, 0xffffffff, 0, 0, v2->spriteResourceCollection[0], v2->spriteResourceCollection[1], v2->spriteResourceCollection[2], v2->spriteResourceCollection[3], NULL, NULL);
@ -650,66 +652,67 @@ static void ov21_021DF098(UnkStruct_ov21_021DF374 *param0, PokedexGraphicData **
}
}
int ov21_021DF180(int param0)
// This maps the type to an animation ID used in the Pokedex graphics. See zukan.narc -> files 88 (NCER), 89 (NANR), 90 (NCGR)
int PokedexGraphics_GetAnimIDfromType(int monType)
{
int v0;
int animID;
switch (param0) {
case 0:
v0 = 0x0;
switch (monType) {
case TYPE_NORMAL:
animID = 0x0;
break;
case 1:
v0 = 0x6;
case TYPE_FIGHTING:
animID = 0x6;
break;
case 2:
v0 = 0xe;
case TYPE_FLYING:
animID = 0xe;
break;
case 3:
v0 = 0xa;
case TYPE_POISON:
animID = 0xa;
break;
case 4:
v0 = 0x8;
case TYPE_GROUND:
animID = 0x8;
break;
case 5:
v0 = 0x5;
case TYPE_ROCK:
animID = 0x5;
break;
case 6:
v0 = 0xb;
case TYPE_BUG:
animID = 0xb;
break;
case 7:
case 9:
v0 = 0x7;
case TYPE_GHOST:
case TYPE_MYSTERY:
animID = 0x7;
break;
case 8:
v0 = 0x9;
case TYPE_STEEL:
animID = 0x9;
break;
case 10:
v0 = 0x1;
case TYPE_FIRE:
animID = 0x1;
break;
case 11:
v0 = 0x3;
case TYPE_WATER:
animID = 0x3;
break;
case 12:
v0 = 0x2;
case TYPE_GRASS:
animID = 0x2;
break;
case 13:
v0 = 0x4;
case TYPE_ELECTRIC:
animID = 0x4;
break;
case 14:
v0 = 0xf;
case TYPE_PSYCHIC:
animID = 0xf;
break;
case 15:
v0 = 0xd;
case TYPE_ICE:
animID = 0xd;
break;
case 16:
v0 = 0x10;
case TYPE_DRAGON:
animID = 0x10;
break;
case 17:
v0 = 0xc;
case TYPE_DARK:
animID = 0xc;
break;
}
return v0;
return animID;
}
static void ov21_021DF1F8(UnkStruct_ov21_021DF374 *param0)

View File

@ -577,8 +577,8 @@ static void ov21_021E95F8(UnkStruct_ov21_021E968C *param0, SpriteList *param1, S
SpriteResourcesHeader v1;
int type1 = SpeciesData_GetSpeciesValue(param4, SPECIES_DATA_TYPE_1);
int type2 = SpeciesData_GetSpeciesValue(param4, SPECIES_DATA_TYPE_2);
type1 = ov21_021DF180(type1);
type2 = ov21_021DF180(type2);
type1 = PokedexGraphics_GetAnimIDfromType(type1);
type2 = PokedexGraphics_GetAnimIDfromType(type2);
ov21_021E93F8(param0->unk_08, param2, &v1, 2);

View File

@ -18,7 +18,7 @@
#include "ribbon.h"
#include "sprite.h"
#include "sprite_system.h"
#include "unk_0207C908.h"
#include "type_icon.h"
#include "vram_transfer.h"
#include "res/graphics/pokemon_summary_screen/pl_pst_gra.naix.h"
@ -1197,8 +1197,8 @@ void PokemonSummaryScreen_SetMonTypeIcons(PokemonSummaryScreen *summaryScreen)
static void SetTypeIcon(PokemonSummaryScreen *summaryScreen, u8 spriteIndex, u8 param2, u8 type)
{
SpriteSystem_ReplaceCharResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, sub_0207C944(), sub_0207C908(type), 1, param2);
Sprite_SetExplicitPalette2(summaryScreen->sprites[spriteIndex], sub_0207C92C(type) + 3);
SpriteSystem_ReplaceCharResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, TypeIcon_GetNARC(), TypeIcon_GetChar(type), 1, param2);
Sprite_SetExplicitPalette2(summaryScreen->sprites[spriteIndex], TypeIcon_GetPltt(type) + 3);
}
static void GetMoveTypeIconPos(PokemonSummaryScreen *summaryScreen, u8 *moveIndex, s16 *outX, s16 *outY)
@ -1230,8 +1230,8 @@ void PokemonSummaryScreen_UpdateMoveCategoryIcon(PokemonSummaryScreen *summarySc
{
u32 category = MoveTable_LoadParam(move, MOVEATTRIBUTE_CLASS);
SpriteSystem_ReplaceCharResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, sub_0207CAC0(), sub_0207CA90(category), 1, 10);
Sprite_SetExplicitPalette2(summaryScreen->sprites[SUMMARY_SPRITE_MOVE_CATEGORY_ICON], sub_0207CAA8(category) + 3);
SpriteSystem_ReplaceCharResObj(summaryScreen->spriteSys, summaryScreen->spriteMan, CategoryIcon_GetNARC(), CategoryIcon_GetChar(category), 1, 10);
Sprite_SetExplicitPalette2(summaryScreen->sprites[SUMMARY_SPRITE_MOVE_CATEGORY_ICON], CategoryIcon_GetPltt(category) + 3);
}
void PokemonSummaryScreen_UpdateMoveSelectorPos(PokemonSummaryScreen *summaryScreen)

View File

@ -1905,7 +1905,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1)
v2.heapID = HEAP_ID_BATTLE;
v2.target = v0->unk_81;
v2.ballID = v0->unk_8E;
v2.cellActorSys = ov16_0223E010(v0->unk_00);
v2.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00);
v2.paletteSys = BattleSystem_PaletteSys(v0->unk_00);
v2.bgPrio = 1;
v2.surface = 0;
@ -2158,7 +2158,7 @@ static void ov16_0225F764(SysTask *param0, void *param1)
v5.mode = 5;
v5.target = v0->unk_69;
v5.ballID = v0->unk_6E;
v5.cellActorSys = ov16_0223E010(v0->unk_00);
v5.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00);
v5.paletteSys = BattleSystem_PaletteSys(v0->unk_00);
v5.bgPrio = 1;
v5.surface = 0;
@ -2174,7 +2174,7 @@ static void ov16_0225F764(SysTask *param0, void *param1)
v6.mode = 5;
v6.target = v0->unk_69;
v6.ballID = v0->unk_6E;
v6.cellActorSys = ov16_0223E010(v0->unk_00);
v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00);
v6.paletteSys = BattleSystem_PaletteSys(v0->unk_00);
v6.bgPrio = 1;
v6.surface = 0;
@ -2512,7 +2512,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1)
v6.heapID = HEAP_ID_BATTLE;
v6.mode = 4;
v6.target = v0->unk_09;
v6.cellActorSys = ov16_0223E010(v0->unk_00);
v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00);
v6.paletteSys = BattleSystem_PaletteSys(v0->unk_00);
v6.surface = 0;
v6.battleSys = v0->unk_00;
@ -2555,7 +2555,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1)
{
SpriteManager *v8;
v8 = ov16_0223E018(v0->unk_00);
v8 = BattleSystem_GetSpriteManager(v0->unk_00);
Sprite_DeleteAndFreeResources(v0->unk_04->unk_18);
v0->unk_04->unk_18 = NULL;
@ -2608,7 +2608,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1)
{
SpriteManager *v10;
v10 = ov16_0223E018(v0->unk_00);
v10 = BattleSystem_GetSpriteManager(v0->unk_00);
Sprite_DeleteAndFreeResources(v0->unk_04->unk_18);
v0->unk_04->unk_18 = NULL;
@ -2698,7 +2698,7 @@ static void ov16_02260284(SysTask *param0, void *param1)
case 1: {
SpriteManager *v3;
v3 = ov16_0223E018(v0->unk_00);
v3 = BattleSystem_GetSpriteManager(v0->unk_00);
Sprite_DeleteAndFreeResources(v0->unk_04->unk_18);
v0->unk_04->unk_18 = NULL;
@ -3216,7 +3216,7 @@ static void ov16_02260C00(SysTask *param0, void *param1)
NARC *v11 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
for (i = 0; i < 4; i++) {
v8.unk_00[i] = v0->unk_0C[i];
v8.moveIDs[i] = v0->unk_0C[i];
v8.unk_08[i] = v0->unk_14[i];
v8.unk_0C[i] = v0->unk_18[i];
}
@ -4954,8 +4954,8 @@ static void WaitForBattleMessagePrint(SysTask *task, void *data)
{
BattleMessageWaitTask *waitTask = data;
if (Battle_WaitDial(waitTask->battleSys)) {
DestroyWaitDial(Battle_WaitDial(waitTask->battleSys));
if (Battle_GetWaitDial(waitTask->battleSys)) {
DestroyWaitDial(Battle_GetWaitDial(waitTask->battleSys));
Battle_SetWaitDial(waitTask->battleSys, NULL);
}
@ -5297,13 +5297,13 @@ static void ShowPartyGaugeTask(SysTask *param0, void *param1)
}
}
v3 = PartyGauge_Show(v0->status, v1, v4, v5, ov16_0223E010(v0->battleSys), ov16_0223E018(v0->battleSys));
ov16_0223E040(v0->battleSys, v1, v3);
v3 = PartyGauge_Show(v0->status, v1, v4, v5, BattleSystem_GetSpriteSystem(v0->battleSys), BattleSystem_GetSpriteManager(v0->battleSys));
BattleSystem_SetPartyGauge(v0->battleSys, v1, v3);
}
v0->state++;
break;
case 1:
if (PartyGauge_ShowIsDone(ov16_0223E034(v0->battleSys, v1)) == 1) {
if (PartyGauge_ShowIsDone(BattleSystem_GetPartyGauge(v0->battleSys, v1)) == 1) {
v0->state++;
}
break;
@ -5329,7 +5329,7 @@ static void HidePartyGaugeTask(SysTask *param0, void *param1)
v1 = PARTY_GAUGE_THEIRS;
}
v2 = ov16_0223E034(v0->battleSys, v1);
v2 = BattleSystem_GetPartyGauge(v0->battleSys, v1);
switch (v0->state) {
case 0:
@ -5347,7 +5347,7 @@ static void HidePartyGaugeTask(SysTask *param0, void *param1)
case 1:
if (PartyGauge_HideIsDone(v2) == 1) {
PartyGauge_Free(v2);
ov16_0223E040(v0->battleSys, v1, NULL);
BattleSystem_SetPartyGauge(v0->battleSys, v1, NULL);
v0->state++;
}
break;
@ -6075,8 +6075,8 @@ static ManagedSprite *ov16_022643B8(BattleSystem *battleSys, int param1, int par
ManagedSprite *v3;
int v4;
v0 = ov16_0223E010(battleSys);
v1 = ov16_0223E018(battleSys);
v0 = BattleSystem_GetSpriteSystem(battleSys);
v1 = BattleSystem_GetSpriteManager(battleSys);
v2 = BattleSystem_PaletteSys(battleSys);
if (param1 & 0x1) {
@ -6106,7 +6106,7 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *param1, UnkStruc
v0.unk_04 = BattleSystem_BGL(battleSys);
v0.unk_08 = BattleSystem_PaletteSys(battleSys);
v0.unk_00 = ov16_0223E010(battleSys);
v0.unk_00 = BattleSystem_GetSpriteSystem(battleSys);
for (i = 0; i < 4; i++) {
v0.unk_0C[i] = ov16_0223F2AC(battleSys, i);

View File

@ -186,7 +186,7 @@ void ov16_0225C038(BattleSystem *battleSys, BattlerData *param1, int param2, int
v0.mode = 4;
v0.target = param1->battler;
v0.ballID = param2;
v0.cellActorSys = ov16_0223E010(battleSys);
v0.cellActorSys = BattleSystem_GetSpriteSystem(battleSys);
v0.paletteSys = BattleSystem_PaletteSys(battleSys);
v0.surface = 0;
v0.bgPrio = 1;
@ -845,8 +845,8 @@ static void ov16_0225C8E0(BattleSystem *battleSys, BattlerData *param1)
SpriteManager *v1;
PaletteData *v2;
v0 = ov16_0223E010(battleSys);
v1 = ov16_0223E018(battleSys);
v0 = BattleSystem_GetSpriteSystem(battleSys);
v1 = BattleSystem_GetSpriteManager(battleSys);
v2 = BattleSystem_PaletteSys(battleSys);
PartyGauge_LoadGraphics(v0, v1, v2);
@ -856,7 +856,7 @@ static void ov16_0225C8E0(BattleSystem *battleSys, BattlerData *param1)
static void ov16_0225C91C(BattleSystem *battleSys, BattlerData *param1)
{
SpriteManager *v0 = ov16_0223E018(battleSys);
SpriteManager *v0 = BattleSystem_GetSpriteManager(battleSys);
PartyGauge_FreeGraphics(v0);
ClearCommand(battleSys, param1->battler, 53);

View File

@ -10562,7 +10562,7 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1)
v7.heapID = HEAP_ID_BATTLE;
v7.target = v1 + 20000;
v7.ballID = v2->ball;
v7.cellActorSys = ov16_0223E010(v2->battleSys);
v7.cellActorSys = BattleSystem_GetSpriteSystem(v2->battleSys);
v7.paletteSys = BattleSystem_PaletteSys(v2->battleSys);
v7.bgPrio = 1;
v7.surface = 0;
@ -10860,7 +10860,7 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1)
SetScreenColorBrightness(DS_SCREEN_SUB, FADE_TO_BLACK);
v3 = BattleSystem_PartyPokemon(v2->battleSys, v1, v2->battleCtx->selectedPartySlot[v1]);
v16 = sub_0208712C(HEAP_ID_BATTLE, 1, Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL), 10, ov16_0223EDA4(v2->battleSys));
v16 = sub_0208712C(HEAP_ID_BATTLE, 1, Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL), 10, BattleSystem_GetOptions(v2->battleSys));
v2->tmpPtr[1] = v16;
if (BattleSystem_PartyCount(v2->battleSys, 0) < 6) {
@ -12201,8 +12201,8 @@ static void BattleScript_LoadPartyLevelUpIcon(BattleSystem *battleSys, BattleScr
v7 = ov16_0223E0D4(battleSys);
v5 = BattleSystem_StringTemplate(battleSys);
v8 = BattleSystem_BGL(battleSys);
v1 = ov16_0223E010(battleSys);
v2 = ov16_0223E018(battleSys);
v1 = BattleSystem_GetSpriteSystem(battleSys);
v2 = BattleSystem_GetSpriteManager(battleSys);
v3 = BattleSystem_PaletteSys(battleSys);
SpriteSystem_LoadCharResObj(v1, v2, NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, 256, TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, 20021);
@ -12272,7 +12272,7 @@ static void BattleScript_LoadPartyLevelUpIcon(BattleSystem *battleSys, BattleScr
static void BattleScript_FreePartyLevelUpIcon(BattleSystem *battleSys, BattleScriptTaskData *param1)
{
SpriteManager *v0 = ov16_0223E018(battleSys);
SpriteManager *v0 = BattleSystem_GetSpriteManager(battleSys);
Sprite_DeleteAndFreeResources(param1->sprites[0]);
Sprite_DeleteAndFreeResources(param1->sprites[1]);

View File

@ -697,8 +697,8 @@ void ov16_02267258(Healthbar *param0)
SpriteSystem *v0;
SpriteManager *v1;
const SpriteTemplate *v2 = Healthbar_SpriteTemplate(param0->type);
v0 = ov16_0223E010(param0->battleSys);
v1 = ov16_0223E018(param0->battleSys);
v0 = BattleSystem_GetSpriteSystem(param0->battleSys);
v1 = BattleSystem_GetSpriteManager(param0->battleSys);
SpriteManager_UnloadCharObjById(v1, v2->resources[0]);
SpriteManager_UnloadCellObjById(v1, v2->resources[2]);
@ -715,8 +715,8 @@ static void ov16_0226728C(Healthbar *param0)
return;
}
v0 = ov16_0223E010(param0->battleSys);
v1 = ov16_0223E018(param0->battleSys);
v0 = BattleSystem_GetSpriteSystem(param0->battleSys);
v1 = BattleSystem_GetSpriteManager(param0->battleSys);
SpriteManager_UnloadCharObjById(v1, v2->resources[0]);
SpriteManager_UnloadCellObjById(v1, v2->resources[2]);
@ -730,8 +730,8 @@ void ov16_022672C4(Healthbar *param0)
SpriteManager *v2;
PaletteData *v3;
NARC *v4 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
v1 = ov16_0223E010(param0->battleSys);
v2 = ov16_0223E018(param0->battleSys);
v1 = BattleSystem_GetSpriteSystem(param0->battleSys);
v2 = BattleSystem_GetSpriteManager(param0->battleSys);
v3 = BattleSystem_PaletteSys(param0->battleSys);
v0 = Healthbar_SpriteTemplate(param0->type);
@ -1756,7 +1756,7 @@ static void ov16_02268380(SysTask *param0, void *param1)
int v2;
PaletteData *v3;
v1 = ov16_0223E018(v0->unk_00->battleSys);
v1 = BattleSystem_GetSpriteManager(v0->unk_00->battleSys);
v3 = BattleSystem_PaletteSys(v0->unk_00->battleSys);
switch (v0->unk_08) {

View File

@ -316,8 +316,8 @@ void ov16_0223B3E4(BattleSystem *battleSys)
ov16_0223C288(battleSys->unk_04);
ov16_0223C2BC(battleSys);
SpriteSystem_FreeResourcesAndManager(battleSys->unk_90, battleSys->unk_94);
SpriteSystem_Free(battleSys->unk_90);
SpriteSystem_FreeResourcesAndManager(battleSys->spriteSys, battleSys->spriteMan);
SpriteSystem_Free(battleSys->spriteSys);
VramTransfer_Free();
Font_Free(FONT_SUBSCREEN);
}
@ -358,7 +358,7 @@ void ov16_0223B430(BattleSystem *battleSys)
NARC_dtor(v1);
TextPrinter_SetScrollArrowBaseTile(1);
ov16_0223DD4C(battleSys);
SetSubScreenViewRect(SpriteSystem_GetRenderer(battleSys->unk_90), 0, ((192 + 80) << FX32_SHIFT));
SetSubScreenViewRect(SpriteSystem_GetRenderer(battleSys->spriteSys), 0, ((192 + 80) << FX32_SHIFT));
}
void ov16_0223B53C(BattleSystem *battleSys)
@ -445,9 +445,9 @@ void ov16_0223B578(BattleSystem *battleSys)
ReplaceTransparentTiles(battleSys->unk_04, 1, 1, 10, v1, 5);
Graphics_LoadTilesToBgLayer(7, 3 + battleSys->unk_2400, battleSys->unk_04, 3, 0, 0, 1, HEAP_ID_BATTLE);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 7, 172 + (battleSys->unk_2400 * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 38, GetMessageBoxPaletteNARCMember(v1), 5, 0, 0x20, 10 * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 14, 7, 5, 0, 0x20, 0xb * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 7, 172 + (battleSys->unk_2400 * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 38, GetMessageBoxPaletteNARCMember(v1), 5, 0, 0x20, 10 * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 14, 7, 5, 0, 0x20, 0xb * 0x10);
Graphics_LoadTilemapToBgLayer(7, 2, battleSys->unk_04, 3, 0, 0, 1, HEAP_ID_BATTLE);
}
@ -538,13 +538,13 @@ static void ov16_0223B790(ApplicationManager *appMan)
}
battleSys->unk_1A8 = battleSys->unk_1A4;
battleSys->unk_28 = PaletteData_New(HEAP_ID_BATTLE);
battleSys->paletteSys = PaletteData_New(HEAP_ID_BATTLE);
PaletteData_SetAutoTransparent(battleSys->unk_28, 1);
PaletteData_AllocBuffer(battleSys->unk_28, 0, 0x200, HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->unk_28, 1, 0x200, HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->unk_28, 2, (((16 - 2) * 16) * sizeof(u16)), HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->unk_28, 3, 0x200, HEAP_ID_BATTLE);
PaletteData_SetAutoTransparent(battleSys->paletteSys, 1);
PaletteData_AllocBuffer(battleSys->paletteSys, 0, 0x200, HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->paletteSys, 1, 0x200, HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->paletteSys, 2, (((16 - 2) * 16) * sizeof(u16)), HEAP_ID_BATTLE);
PaletteData_AllocBuffer(battleSys->paletteSys, 3, 0x200, HEAP_ID_BATTLE);
battleSys->unk_04 = BgConfig_New(HEAP_ID_BATTLE);
battleSys->windows = Window_New(HEAP_ID_BATTLE, 3);
@ -571,17 +571,17 @@ static void ov16_0223B790(ApplicationManager *appMan)
Window_FillTilemap(&battleSys->windows[0], 0xff);
Window_DrawMessageBoxWithScrollCursor(&battleSys->windows[0], 0, 1, 10);
battleSys->unk_90 = SpriteSystem_Alloc(5);
battleSys->spriteSys = SpriteSystem_Alloc(5);
SpriteSystem_Init(battleSys->unk_90, &Unk_ov16_0226E2E4, &Unk_ov16_0226E29C, (16 + 16));
SpriteSystem_Init(battleSys->spriteSys, &Unk_ov16_0226E2E4, &Unk_ov16_0226E29C, (16 + 16));
ReserveVramForWirelessIconChars(NNS_G2D_VRAM_TYPE_2DMAIN, GX_OBJVRAMMODE_CHAR_1D_64K);
ReserveSlotsForWirelessIconPalette(NNS_G2D_VRAM_TYPE_2DMAIN);
battleSys->unk_94 = SpriteManager_New(battleSys->unk_90);
battleSys->spriteMan = SpriteManager_New(battleSys->spriteSys);
SpriteSystem_InitSprites(battleSys->unk_90, battleSys->unk_94, (64 + 64));
SpriteSystem_InitManagerWithCapacities(battleSys->unk_90, battleSys->unk_94, &Unk_ov16_0226E2B0);
SetSubScreenViewRect(SpriteSystem_GetRenderer(battleSys->unk_90), 0, ((192 + 80) << FX32_SHIFT));
SpriteSystem_InitSprites(battleSys->spriteSys, battleSys->spriteMan, (64 + 64));
SpriteSystem_InitManagerWithCapacities(battleSys->spriteSys, battleSys->spriteMan, &Unk_ov16_0226E2B0);
SetSubScreenViewRect(SpriteSystem_GetRenderer(battleSys->spriteSys), 0, ((192 + 80) << FX32_SHIFT));
ov16_02268A88(battleSys->unk_198);
@ -617,23 +617,23 @@ static void ov16_0223B790(ApplicationManager *appMan)
battleSys->strFormatter = StringTemplate_Default(HEAP_ID_BATTLE);
battleSys->msgBuffer = Strbuf_Init((2 * 160), HEAP_ID_BATTLE);
MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->unk_28, 0), &battleSys->unk_2224[0], 0x20 * 7);
MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->unk_28, 2), &battleSys->unk_2304[0], 0x20 * 7);
MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteSys, 0), &battleSys->unk_2224[0], 0x20 * 7);
MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteSys, 2), &battleSys->unk_2304[0], 0x20 * 7);
{
int v10;
v10 = ov16_0223EC04(battleSys);
PaletteData_FillBufferRange(battleSys->unk_28, 0, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0, 112);
PaletteData_FillBufferRange(battleSys->unk_28, 0, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0xc * 16, 0xc * 16 + 4 * 16);
PaletteData_FillBufferRange(battleSys->unk_28, 2, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0, ((16 - 2) * 16) - 1);
PaletteData_FillBufferRange(battleSys->paletteSys, 0, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0, 112);
PaletteData_FillBufferRange(battleSys->paletteSys, 0, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0xc * 16, 0xc * 16 + 4 * 16);
PaletteData_FillBufferRange(battleSys->paletteSys, 2, 2, Unk_ov16_0226E44C[battleSys->unk_2400][v10], 0, ((16 - 2) * 16) - 1);
}
PaletteData_FillBufferRange(battleSys->unk_28, 0, 0, 0x0, 0xa * 16, 0xa * 16 + 2 * 16);
PaletteData_FillBufferRange(battleSys->unk_28, 1, 0, 0x0, 0, 255);
PaletteData_FillBufferRange(battleSys->unk_28, 3, 0, 0xffff, 0, 255);
PaletteData_FillBufferRange(battleSys->paletteSys, 0, 0, 0x0, 0xa * 16, 0xa * 16 + 2 * 16);
PaletteData_FillBufferRange(battleSys->paletteSys, 1, 0, 0x0, 0, 255);
PaletteData_FillBufferRange(battleSys->paletteSys, 3, 0, 0xffff, 0, 255);
battleSys->unk_1AC = sub_0201567C(battleSys->unk_28, 0, 0xb, HEAP_ID_BATTLE);
battleSys->unk_1AC = sub_0201567C(battleSys->paletteSys, 0, 0xb, HEAP_ID_BATTLE);
sub_02015738(battleSys->unk_1AC, 1);
battleSys->unk_1C = SysTask_Start(ov16_0223CF48, battleSys, 60000);
@ -644,7 +644,7 @@ static void ov16_0223B790(ApplicationManager *appMan)
ov16_0223DD4C(battleSys);
BagCursor_ResetBattle(BattleSystem_BagCursor(battleSys));
battleSys->unk_1C4 = sub_02015F84(HEAP_ID_BATTLE, 4, 0);
battleSys->pokemonAnimationSys = sub_02015F84(HEAP_ID_BATTLE, 4, 0);
battleSys->cellTransferState = CellTransfer_New(4, HEAP_ID_BATTLE);
if (battleSys->battleStatusMask & 0x10) {
@ -727,12 +727,12 @@ static void ov16_0223BCB4(ApplicationManager *appMan)
}
sub_02015760(battleSystem->unk_1AC);
Bag_Copy(battleSystem->unk_58, v1->bag);
Heap_FreeToHeap(battleSystem->unk_58);
Bag_Copy(battleSystem->bag, v1->bag);
Heap_FreeToHeap(battleSystem->bag);
Pokedex_Copy(battleSystem->pokedex, v1->pokedex);
Heap_FreeToHeap(battleSystem->pokedex);
v1->pcBoxes = battleSystem->pcBoxes;
v1->bagCursor = battleSystem->unk_5C;
v1->bagCursor = battleSystem->bagCursor;
v1->subscreenCursorOn = battleSystem->unk_1BC;
v1->poketch = battleSystem->poketch;
v1->unk_10C = battleSystem->unk_9C;
@ -744,22 +744,22 @@ static void ov16_0223BCB4(ApplicationManager *appMan)
v1->battleRecords.totalFainted += (BattleContext_Get(battleSystem, battleSystem->battleCtx, 6, 0) + BattleContext_Get(battleSystem, battleSystem->battleCtx, 6, 2));
v1->battleRecords.totalDamage += (BattleContext_Get(battleSystem, battleSystem->battleCtx, 7, 0) + BattleContext_Get(battleSystem, battleSystem->battleCtx, 7, 2));
v1->totalTurnsElapsed = BattleContext_Get(battleSystem, battleSystem->battleCtx, 3, NULL);
v1->unk_19C = battleSystem->unk_2474_0;
v1->unk_19C = battleSystem->recordingStopped;
for (battlerId = 0; battlerId < 4; battlerId++) {
Heap_FreeToHeap(battleSystem->unk_1CC[battlerId].unk_00);
}
Heap_FreeToHeap(battleSystem->msgBuffer);
PaletteData_FreeBuffer(battleSystem->unk_28, 0);
PaletteData_FreeBuffer(battleSystem->unk_28, 1);
PaletteData_FreeBuffer(battleSystem->unk_28, 2);
PaletteData_FreeBuffer(battleSystem->unk_28, 3);
PaletteData_Free(battleSystem->unk_28);
PaletteData_FreeBuffer(battleSystem->paletteSys, 0);
PaletteData_FreeBuffer(battleSystem->paletteSys, 1);
PaletteData_FreeBuffer(battleSystem->paletteSys, 2);
PaletteData_FreeBuffer(battleSystem->paletteSys, 3);
PaletteData_Free(battleSystem->paletteSys);
MessageLoader_Free(battleSystem->unk_0C);
MessageLoader_Free(battleSystem->unk_10);
StringTemplate_Free(battleSystem->strFormatter);
sub_02015FB8(battleSystem->unk_1C4);
sub_02015FB8(battleSystem->pokemonAnimationSys);
ParticleSystem_FreeAll();
ov12_0221FDF4(battleSystem->unk_8C);
@ -929,9 +929,9 @@ static void ov16_0223C004(BattleSystem *battleSys, BgConfig *param1)
ReplaceTransparentTiles(param1, 1, 1, 10, v3, 5);
Graphics_LoadTilesToBgLayer(7, 3 + battleSys->unk_2400, param1, 3, 0, 0, 1, HEAP_ID_BATTLE);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 7, 172 + (battleSys->unk_2400 * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 38, GetMessageBoxPaletteNARCMember(v3), 5, 0, 0x20, 10 * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->unk_28, 14, 7, 5, 0, 0x20, 0xb * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 7, 172 + (battleSys->unk_2400 * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 38, GetMessageBoxPaletteNARCMember(v3), 5, 0, 0x20, 10 * 0x10);
PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 14, 7, 5, 0, 0x20, 0xb * 0x10);
Graphics_LoadTilemapToBgLayer(7, 2, param1, 3, 0, 0, 1, HEAP_ID_BATTLE);
}
@ -1078,16 +1078,16 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *param1)
battleSys->unk_2444 = param1->seed;
battleSys->unk_2448 = param1->seed;
battleSys->battleStatusMask = param1->battleStatusMask;
battleSys->unk_58 = Bag_New(HEAP_ID_BATTLE);
battleSys->bag = Bag_New(HEAP_ID_BATTLE);
Bag_Copy(param1->bag, battleSys->unk_58);
Bag_Copy(param1->bag, battleSys->bag);
battleSys->pokedex = Pokedex_New(5);
Pokedex_Copy(param1->pokedex, battleSys->pokedex);
battleSys->pcBoxes = param1->pcBoxes;
battleSys->unk_1B0 = param1->options;
battleSys->options = param1->options;
battleSys->unk_1B4 = param1->unk_124;
battleSys->unk_5C = param1->bagCursor;
battleSys->bagCursor = param1->bagCursor;
battleSys->unk_1BC = param1->subscreenCursorOn;
battleSys->poketch = param1->poketch;
battleSys->unk_2420 = param1->mapEvolutionMethod;
@ -1095,7 +1095,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *param1)
battleSys->safariBalls = param1->countSafariBalls;
battleSys->terrain = param1->terrain;
battleSys->unk_2400 = param1->background;
battleSys->unk_2404 = param1->mapLabelTextID;
battleSys->mapHeader = param1->mapLabelTextID;
battleSys->time = param1->timeOfDay;
battleSys->unk_2418 = param1->rulesetMask;
battleSys->unk_2424 = param1->visitedContestHall;
@ -1387,12 +1387,12 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *param1)
if ((ov16_0223CD3C(battleSys->trainers[1].header.trainerType) == 1) || (ov16_0223CD3C(battleSys->trainers[3].header.trainerType) == 1)) {
for (v0 = 0; v0 < Party_GetCurrentCount(battleSys->parties[0]); v0++) {
v3 = Party_GetPokemonBySlotIndex(battleSys->parties[0], v0);
Pokemon_UpdateFriendship(v3, 3, battleSys->unk_2404);
Pokemon_UpdateFriendship(v3, 3, battleSys->mapHeader);
}
for (v0 = 0; v0 < Party_GetCurrentCount(battleSys->parties[2]); v0++) {
v3 = Party_GetPokemonBySlotIndex(battleSys->parties[2], v0);
Pokemon_UpdateFriendship(v3, 3, battleSys->unk_2404);
Pokemon_UpdateFriendship(v3, 3, battleSys->mapHeader);
}
}
}
@ -1517,7 +1517,7 @@ static void ov16_0223CE68(void *param0)
PokemonSpriteManager_UpdateCharAndPltt(v0->unk_88);
VramTransfer_Process();
SpriteSystem_TransferOam();
PaletteData_CommitFadedBuffers(v0->unk_28);
PaletteData_CommitFadedBuffers(v0->paletteSys);
Bg_RunScheduledUpdates(v0->unk_04);
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
@ -1546,7 +1546,7 @@ static void ov16_0223CF48(SysTask *param0, void *param1)
}
PokemonSpriteManager_DrawSprites(v0->unk_88);
SpriteSystem_DrawSprites(v0->unk_94);
SpriteSystem_DrawSprites(v0->spriteMan);
SpriteSystem_UpdateTransfer();
G3_RequestSwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_Z);
}

View File

@ -54,6 +54,7 @@
#include "pokemon_sprite.h"
#include "poketch.h"
#include "render_text.h"
#include "render_window.h"
#include "screen_fade.h"
#include "sound.h"
#include "sound_playback.h"
@ -78,8 +79,8 @@ int BattleSystem_PartyCount(BattleSystem *battleSys, int battler);
Pokemon *BattleSystem_PartyPokemon(BattleSystem *battleSys, int battler, int slot);
PokemonSpriteManager *ov16_0223E000(BattleSystem *battleSystem);
UnkStruct_ov12_0221FCDC *ov16_0223E008(BattleSystem *battleSystem);
SpriteSystem *ov16_0223E010(BattleSystem *battleSystem);
SpriteManager *ov16_0223E018(BattleSystem *battleSystem);
SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSystem);
SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSystem);
UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSystem, int param1);
UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSystem);
UnkStruct_0200C440 *ov16_0223E04C(BattleSystem *battleSystem);
@ -125,7 +126,7 @@ u8 ov16_0223ED60(BattleSystem *battleSystem);
u8 ov16_0223ED6C(BattleSystem *battleSystem);
int BattleSystem_NumSafariBalls(BattleSystem *battleSystem);
void BattleSystem_SetSafariBalls(BattleSystem *battleSystem, int param1);
Options *ov16_0223EDA4(BattleSystem *battleSystem);
Options *BattleSystem_GetOptions(BattleSystem *battleSystem);
BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys);
int ov16_0223EDE0(BattleSystem *battleSystem);
u8 BattleSystem_TextSpeed(BattleSystem *battleSystem);
@ -149,8 +150,8 @@ void ov16_0223F24C(BattleSystem *battleSystem, int param1);
void ov16_0223F268(BattleSystem *battleSystem);
void BattleSystem_SetCommandSelectionFlags(BattleSystem *battleSys, int flags);
void ov16_0223F290(BattleSystem *battleSystem, int param1);
void *Battle_WaitDial(BattleSystem *battleSystem);
void Battle_SetWaitDial(BattleSystem *battleSystem, void *param1);
WaitDial *Battle_GetWaitDial(BattleSystem *battleSystem);
void Battle_SetWaitDial(BattleSystem *battleSystem, WaitDial *waitDial);
u8 *ov16_0223F2B8(UnkStruct_ov16_0223E0C8 *param0, int param1);
void ov16_0223F2CC(UnkStruct_ov16_0223E0C8 *param0, int param1, int param2);
void ov16_0223F2E4(UnkStruct_ov16_0223E0C8 *param0, int param1, int param2);
@ -297,14 +298,14 @@ UnkStruct_ov12_0221FCDC *ov16_0223E008(BattleSystem *battleSystem)
return battleSystem->unk_8C;
}
SpriteSystem *ov16_0223E010(BattleSystem *battleSystem)
SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSystem)
{
return battleSystem->unk_90;
return battleSystem->spriteSys;
}
SpriteManager *ov16_0223E018(BattleSystem *battleSystem)
SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSystem)
{
return battleSystem->unk_94;
return battleSystem->spriteMan;
}
UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSystem, int param1)
@ -317,14 +318,14 @@ UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSystem)
return battleSystem->unk_198;
}
PartyGauge *ov16_0223E034(BattleSystem *battleSystem, enum PartyGaugeSide param1)
PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSystem, enum PartyGaugeSide partyGaugeSide)
{
return battleSystem->unk_19C[param1];
return battleSystem->partyGauges[partyGaugeSide];
}
void ov16_0223E040(BattleSystem *battleSystem, enum PartyGaugeSide param1, PartyGauge *param2)
void BattleSystem_SetPartyGauge(BattleSystem *battleSystem, enum PartyGaugeSide partyGaugeSide, PartyGauge *partyGauge)
{
battleSystem->unk_19C[param1] = param2;
battleSystem->partyGauges[partyGaugeSide] = partyGauge;
}
UnkStruct_0200C440 *ov16_0223E04C(BattleSystem *battleSystem)
@ -349,7 +350,7 @@ MessageLoader *ov16_0223E060(BattleSystem *battleSystem)
PaletteData *BattleSystem_PaletteSys(BattleSystem *battleSystem)
{
return battleSystem->unk_28;
return battleSystem->paletteSys;
}
Pokedex *BattleSystem_GetPokedex(BattleSystem *battleSystem)
@ -454,17 +455,17 @@ TrainerInfo *BattleSystem_TrainerInfo(BattleSystem *battleSys, int battler)
Bag *BattleSystem_Bag(BattleSystem *battleSystem)
{
return battleSystem->unk_58;
return battleSystem->bag;
}
BagCursor *BattleSystem_BagCursor(BattleSystem *battleSystem)
{
return battleSystem->unk_5C;
return battleSystem->bagCursor;
}
u32 BattleSystem_GetTrainerGender(BattleSystem *battleSystem, int param1)
u32 BattleSystem_GetTrainerGender(BattleSystem *battleSystem, int battler)
{
return TrainerInfo_Gender(battleSystem->trainerInfo[param1]);
return TrainerInfo_Gender(battleSystem->trainerInfo[battler]);
}
int BattleSystem_BattlerOfType(BattleSystem *battleSys, int type)
@ -485,9 +486,9 @@ u8 BattleSystem_BattlerSlot(BattleSystem *battleSys, int battler)
return Battler_Type(battleSys->battlers[battler]);
}
u8 Battler_Side(BattleSystem *battleSystem, int param1)
u8 Battler_Side(BattleSystem *battleSystem, int battler)
{
return Battler_Type(battleSystem->battlers[param1]) & 1;
return Battler_Type(battleSystem->battlers[battler]) & 1;
}
void *ov16_0223E220(BattleSystem *battleSystem)
@ -516,7 +517,7 @@ int ov16_0223E240(BattleSystem *battleSystem)
int BattleSystem_MapHeader(BattleSystem *battleSystem)
{
return battleSystem->unk_2404;
return battleSystem->mapHeader;
}
int BattleSystem_Partner(BattleSystem *battleSys, int battler)
@ -1003,9 +1004,9 @@ void BattleSystem_SetSafariBalls(BattleSystem *battleSystem, int param1)
battleSystem->safariBalls = param1;
}
Options *ov16_0223EDA4(BattleSystem *battleSystem)
Options *BattleSystem_GetOptions(BattleSystem *battleSystem)
{
return battleSystem->unk_1B0;
return battleSystem->options;
}
BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys)
@ -1015,12 +1016,12 @@ BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys)
return TRUE;
}
return Options_BattleScene(battleSys->unk_1B0) == OPTIONS_BATTLE_SCENE_ON;
return Options_BattleScene(battleSys->options) == OPTIONS_BATTLE_SCENE_ON;
}
int ov16_0223EDE0(BattleSystem *battleSystem)
{
return Options_Frame(battleSystem->unk_1B0);
return Options_Frame(battleSystem->options);
}
u8 BattleSystem_TextSpeed(BattleSystem *battleSystem)
@ -1029,17 +1030,17 @@ u8 BattleSystem_TextSpeed(BattleSystem *battleSystem)
return 1;
}
return Options_TextFrameDelay(battleSystem->unk_1B0);
return Options_TextFrameDelay(battleSystem->options);
}
int BattleSystem_Ruleset(BattleSystem *battleSystem)
{
return Options_BattleStyle(battleSystem->unk_1B0);
return Options_BattleStyle(battleSystem->options);
}
PokemonAnimationSys *BattleSystem_GetPokemonAnimationSystem(BattleSystem *battleSystem)
{
return battleSystem->unk_1C4;
return battleSystem->pokemonAnimationSys;
}
ChatotCry *BattleSystem_ChatotVoice(BattleSystem *battleSystem, int param1)
@ -1127,7 +1128,7 @@ void ov16_0223EF8C(BattleSystem *battleSystem)
battleSystem->unk_220 = Heap_AllocFromHeap(HEAP_ID_BATTLE, 0x200);
MI_CpuCopy32((void *)(HW_BG_VRAM + 0x10000), battleSystem->unk_21C, 0x10000);
MI_CpuCopy32(PaletteData_GetUnfadedBuffer(battleSystem->unk_28, 0), battleSystem->unk_220, HW_BG_PLTT_SIZE);
MI_CpuCopy32(PaletteData_GetUnfadedBuffer(battleSystem->paletteSys, 0), battleSystem->unk_220, HW_BG_PLTT_SIZE);
v7 = G2_GetOBJCharPtr();
v0 = Sprite_GetImageProxy(battleSystem->unk_17C[1].unk_00->sprite);
@ -1274,14 +1275,14 @@ void ov16_0223F290(BattleSystem *battleSystem, int param1)
battleSystem->unk_2440 = param1;
}
void *Battle_WaitDial(BattleSystem *battleSystem)
WaitDial *Battle_GetWaitDial(BattleSystem *battleSystem)
{
return battleSystem->unk_1B8;
return battleSystem->waitDial;
}
void Battle_SetWaitDial(BattleSystem *battleSystem, void *param1)
void Battle_SetWaitDial(BattleSystem *battleSystem, WaitDial *waitDial)
{
battleSystem->unk_1B8 = param1;
battleSystem->waitDial = waitDial;
}
UnkStruct_ov16_0223E0C8 *ov16_0223F2AC(BattleSystem *battleSystem, int param1)
@ -1549,12 +1550,12 @@ u16 BattleSystem_TrainerItems(BattleSystem *battleSystem, int param1, int param2
u32 BattleSystem_RecordingStopped(BattleSystem *battleSystem)
{
return battleSystem->unk_2474_0;
return battleSystem->recordingStopped;
}
void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag)
{
if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) || (battleSys->unk_2474_0) || (BattleContext_Get(battleSys, battleSys->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSys, battleSys->battleCtx, 14, 0) == 43)) {
if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) || (battleSys->recordingStopped) || (BattleContext_Get(battleSys, battleSys->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSys, battleSys->battleCtx, 14, 0) == 43)) {
return;
}
@ -1564,14 +1565,14 @@ void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag)
Sound_StopWaveOutAndSequences();
Sound_SetMasterVolume(0);
battleSys->unk_2474_0 = 1;
battleSys->recordingStopped = 1;
return;
}
BOOL ov16_0223F7A4(BattleSystem *battleSystem)
{
if (((battleSystem->battleStatusMask & 0x10) == 0) || (battleSystem->unk_2474_0) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 14, 0) == 43)) {
if (((battleSystem->battleStatusMask & 0x10) == 0) || (battleSystem->recordingStopped) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 14, 0) == 43)) {
return 0;
}

View File

@ -176,8 +176,8 @@ void ov16_02268520(UnkStruct_ov16_02268520 *param0)
int v3, v4, v5, v6, v7, v8;
int v9;
NARC *v10 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
v0 = ov16_0223E010(param0->unk_04);
v1 = ov16_0223E018(param0->unk_04);
v0 = BattleSystem_GetSpriteSystem(param0->unk_04);
v1 = BattleSystem_GetSpriteManager(param0->unk_04);
v9 = ov16_0223EC04(param0->unk_04);
v2 = &Unk_ov16_022700CC[param0->unk_08];
@ -211,8 +211,8 @@ void ov16_0226862C(UnkStruct_ov16_02268520 *param0)
SpriteManager *v1;
const SpriteTemplate *v2;
v0 = ov16_0223E010(param0->unk_04);
v1 = ov16_0223E018(param0->unk_04);
v0 = BattleSystem_GetSpriteSystem(param0->unk_04);
v1 = BattleSystem_GetSpriteManager(param0->unk_04);
v2 = &Unk_ov16_022700CC[param0->unk_08];
param0->unk_00 = SpriteSystem_NewSprite(v0, v1, v2);
@ -234,7 +234,7 @@ void ov16_02268674(UnkStruct_ov16_02268520 *param0)
SpriteManager *v0;
int v1, v2, v3;
v0 = ov16_0223E018(param0->unk_04);
v0 = BattleSystem_GetSpriteManager(param0->unk_04);
if (param0->unk_08 == 0) {
v1 = 20013;

View File

@ -3,6 +3,10 @@
#include <nitro.h>
#include <string.h>
#include "constants/moves.h"
#include "generated/moves.h"
#include "generated/pokemon_types.h"
#include "struct_decls/battle_system.h"
#include "struct_decls/font_oam.h"
#include "struct_decls/struct_02012744_decl.h"
@ -21,7 +25,7 @@
#include "battle/struct_ov16_0226C378.h"
#include "battle/struct_ov16_0226DC24_decl.h"
#include "battle/struct_ov16_0226DEEC_decl.h"
#include "overlay011/ov11_0221F800.h"
#include "overlay011/move_palettes.h"
#include "assert.h"
#include "bg_window.h"
@ -51,8 +55,8 @@
#include "system.h"
#include "text.h"
#include "touch_screen.h"
#include "type_icon.h"
#include "unk_02012744.h"
#include "unk_0207C908.h"
#include "unk_0208C098.h"
typedef struct {
@ -182,14 +186,14 @@ typedef struct {
typedef struct {
MoveDisplayInfo unk_00;
u16 *unk_18[4];
u16 *moveIcons[4];
UnkStruct_ov16_0226AEA0 unk_28[4];
UnkStruct_ov16_0226AEA0 unk_78[4];
UnkStruct_ov16_0226AEA0 unk_C8[4];
} UnkStruct_ov16_0226ABD4;
typedef struct UnkStruct_ov16_02268A14_t {
BattleSystem *unk_00;
BattleSystem *battleSys;
u8 *unk_04;
SysTask *unk_08;
SysTask *unk_0C;
@ -207,7 +211,7 @@ typedef struct UnkStruct_ov16_02268A14_t {
UnkStruct_02012B20 *unk_5B8;
ManagedSprite *unk_5BC[6];
ManagedSprite *unk_5D4[6];
ManagedSprite *unk_5EC[4];
ManagedSprite *moveSelectSprites[4];
ManagedSprite *unk_5FC[4];
ManagedSprite *unk_60C[4];
SysTask *unk_61C[4];
@ -241,7 +245,7 @@ typedef struct UnkStruct_ov16_02268A14_t {
u8 unk_05;
u8 unk_06;
} unk_6C4;
} UnkStruct_ov16_02268A14;
} UnkStruct_ov16_02268A14_t;
typedef struct {
u16 unk_00;
@ -284,7 +288,7 @@ static void ov16_02269E94(UnkStruct_ov16_02268A14 *param0, int param1, int param
static int ov16_0226A318(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static int ov16_0226A3F4(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void ov16_022699AC(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void ov16_0226AF0C(UnkStruct_ov16_02268A14 *param0);
static void DrawMoveTypeIcons(UnkStruct_ov16_02268A14 *param0);
static void ov16_0226AFF4(UnkStruct_ov16_02268A14 *param0);
static void ov16_0226B028(UnkStruct_ov16_02268A14 *param0);
static void ov16_0226B2BC(SysTaskFunc param0, UnkStruct_ov16_02268A14 *param1);
@ -298,7 +302,7 @@ static void ov16_02269DB0(UnkStruct_ov16_02268A14 *param0, int param1, int param
static void ov16_02269F68(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void ov16_0226A04C(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void ov16_0226B06C(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
static void LoadMoveSelectPlttSlot(UnkStruct_ov16_02268A14 *param0, enum PokemonType moveType, int moveSlot);
static void ov16_0226B088(UnkStruct_ov16_02268A14 *param0, int param1);
static void ov16_0226B0DC(UnkStruct_ov16_02268A14 *param0, int param1);
static int ov16_0226A934(u8 param0);
@ -1048,7 +1052,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par
int v2;
v0 = ov16_0226871C();
v0->unk_00 = battleSys;
v0->battleSys = battleSys;
v0->unk_66D = param3;
v0->unk_04 = param4;
@ -1121,7 +1125,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
v0->unk_68[i].unk_18[j] = Heap_AllocFromHeap(HEAP_ID_BATTLE, sub_0208C098(6));
v0->unk_68[i].moveIcons[j] = Heap_AllocFromHeap(HEAP_ID_BATTLE, sub_0208C098(6));
}
}
}
@ -1193,20 +1197,20 @@ void ov16_02268A14(UnkStruct_ov16_02268A14 *param0)
void ov16_02268A88(UnkStruct_ov16_02268A14 *param0)
{
BgConfig *v0;
SpriteSystem *v1;
SpriteManager *v2;
SpriteSystem *spriteSys;
SpriteManager *spriteMan;
PaletteData *v3;
int i;
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
v0 = BattleSystem_BGL(param0->unk_00);
v3 = BattleSystem_PaletteSys(param0->unk_00);
spriteSys = BattleSystem_GetSpriteSystem(param0->battleSys);
spriteMan = BattleSystem_GetSpriteManager(param0->battleSys);
v0 = BattleSystem_BGL(param0->battleSys);
v3 = BattleSystem_PaletteSys(param0->battleSys);
{
int v5;
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_FRONTIER) {
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_FRONTIER) {
v5 = 169;
} else {
v5 = 28;
@ -1215,16 +1219,16 @@ void ov16_02268A88(UnkStruct_ov16_02268A14 *param0)
Graphics_LoadTilesToBgLayer(7, v5, v0, 4, 0, 0x6000, 1, HEAP_ID_BATTLE);
}
sub_0207C9EC(v1, v2, 20017, 20017);
sub_0207C9B0(BattleSystem_PaletteSys(param0->unk_00), 3, v1, v2, NNS_G2D_VRAM_TYPE_2DSUB, 20020);
TypeIcon_LoadAnim(spriteSys, spriteMan, 20017, 20017);
TypeIcon_LoadPltt(BattleSystem_PaletteSys(param0->battleSys), PLTTBUF_SUB_OBJ, spriteSys, spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, 20020);
for (i = 0; i < 4; i++) {
sub_0207C948(v1, v2, NNS_G2D_VRAM_TYPE_2DSUB, 0, 20025 + i);
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
TypeIcon_LoadChar(spriteSys, spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, TYPE_NORMAL, 20025 + i);
}
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_CATCH_TUTORIAL) {
ov16_0226DE44(v1, v2, 5, v3, 20412, 20036, 20406, 20395);
param0->unk_6C4.unk_00 = ov16_0226DEEC(v1, v2, HEAP_ID_BATTLE, 20412, 20036, 20406, 20395, 10, 0);
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) {
ov16_0226DE44(spriteSys, spriteMan, 5, v3, 20412, 20036, 20406, 20395);
param0->unk_6C4.unk_00 = ov16_0226DEEC(spriteSys, spriteMan, HEAP_ID_BATTLE, 20412, 20036, 20406, 20395, 10, 0);
}
}
@ -1234,17 +1238,17 @@ void ov16_02268B8C(UnkStruct_ov16_02268A14 *param0)
SpriteSystem *v1;
SpriteManager *v2;
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
v1 = BattleSystem_GetSpriteSystem(param0->battleSys);
v2 = BattleSystem_GetSpriteManager(param0->battleSys);
for (i = 0; i < 4; i++) {
sub_0207CA34(v2, 20025 + i);
TypeIcon_UnloadChar(v2, 20025 + i);
}
sub_0207CA3C(v2, 20020);
sub_0207CA44(v2, 20017, 20017);
TypeIcon_UnloadPlttSrc(v2, 20020);
TypeIcon_UnloadAnim(v2, 20017, 20017);
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_CATCH_TUTORIAL) {
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) {
ov16_0226DF68(param0->unk_6C4.unk_00);
ov16_0226DEC4(v2, 20412, 20036, 20406, 20395);
}
@ -1264,9 +1268,9 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2,
param2->unk_66E = 0;
v3 = BattleSystem_BGL(param2->unk_00);
v4 = ov16_0223E010(param2->unk_00);
v5 = ov16_0223E018(param2->unk_00);
v3 = BattleSystem_BGL(param2->battleSys);
v4 = BattleSystem_GetSpriteSystem(param2->battleSys);
v5 = BattleSystem_GetSpriteManager(param2->battleSys);
if (param2->unk_66B == -1) {
param4 = 1;
@ -1280,7 +1284,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2,
if (0) {
int v6;
if (BattleSystem_BattleType(param2->unk_00) & BATTLE_TYPE_FRONTIER) {
if (BattleSystem_BattleType(param2->battleSys) & BATTLE_TYPE_FRONTIER) {
v6 = 169;
} else {
v6 = v0->unk_00;
@ -1296,7 +1300,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2,
}
if (1) {
PaletteData_LoadBuffer(BattleSystem_PaletteSys(param2->unk_00), param2->unk_58, 1, 0, 0x200);
PaletteData_LoadBuffer(BattleSystem_PaletteSys(param2->battleSys), param2->unk_58, 1, 0, 0x200);
}
for (i = 0; i < 4; i++) {
@ -1306,7 +1310,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2,
}
}
SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_PaletteSys(param2->unk_00), 3, v4, v5, param1, 72, 0, 7, NNS_G2D_VRAM_TYPE_2DSUB, 20023);
SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_PaletteSys(param2->battleSys), 3, v4, v5, param1, 72, 0, 7, NNS_G2D_VRAM_TYPE_2DSUB, 20023);
param2->unk_66B = param3;
G2S_SetBlendAlpha((GX_BLEND_PLANEMASK_BG1), (GX_BLEND_BGALL), 8, 12);
@ -1327,8 +1331,8 @@ void ov16_02268D40(NARC *param0, UnkStruct_ov16_02268A14 *param1)
GF_ASSERT(param1->unk_5BC[0] == NULL && param1->unk_5D4[0] == NULL);
v1 = ov16_0223E010(param1->unk_00);
v2 = ov16_0223E018(param1->unk_00);
v1 = BattleSystem_GetSpriteSystem(param1->battleSys);
v2 = BattleSystem_GetSpriteManager(param1->battleSys);
SpriteSystem_LoadCharResObjFromOpenNarc(v1, v2, param0, 208, TRUE, NNS_G2D_VRAM_TYPE_2DSUB, 20023);
SpriteSystem_LoadCellResObjFromOpenNarc(v1, v2, param0, 207, TRUE, 20015);
@ -1355,7 +1359,7 @@ void ov16_02268D40(NARC *param0, UnkStruct_ov16_02268A14 *param1)
{
PaletteData *v3;
v3 = BattleSystem_PaletteSys(param1->unk_00);
v3 = BattleSystem_PaletteSys(param1->battleSys);
ov16_0226DB7C(v1, v2, v3, 5, 20411, 20035, 20405, 20394);
param1->unk_6B8 = ov16_0226DC24(v1, v2, HEAP_ID_BATTLE, 20411, 20035, 20405, 20394, 5, 0);
}
@ -1369,8 +1373,8 @@ static void ov16_02268F00(UnkStruct_ov16_02268A14 *param0)
GF_ASSERT(param0->unk_5BC[0] != NULL && param0->unk_5D4[0] != NULL);
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
v1 = BattleSystem_GetSpriteSystem(param0->battleSys);
v2 = BattleSystem_GetSpriteManager(param0->battleSys);
SpriteManager_UnloadCharObjById(v2, 20023);
SpriteManager_UnloadCellObjById(v2, 20015);
@ -1517,7 +1521,7 @@ void ov16_022691BC(UnkStruct_ov16_02268A14 *param0)
Sprite_SetDrawFlag2(param0->unk_5BC[i]->sprite, 1);
}
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_TRAINER) {
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_TRAINER) {
for (i = 0; i < 6; i++) {
Sprite_SetDrawFlag2(param0->unk_5D4[i]->sprite, 1);
}
@ -1552,7 +1556,7 @@ int ov16_0226925C(UnkStruct_ov16_02268A14 *param0)
GF_ASSERT(v4->unk_18 != NULL);
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_CATCH_TUTORIAL) {
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) {
v1 = ov16_0226CD18(param0);
} else {
v1 = TouchScreen_CheckRectanglePressed(v4->unk_14);
@ -1665,7 +1669,7 @@ static void ov16_022694A8(SysTask *param0, void *param1)
{
UnkStruct_ov16_02268A14 *v0 = param1;
int v1 = 0;
BgConfig *v2 = BattleSystem_BGL(v0->unk_00);
BgConfig *v2 = BattleSystem_BGL(v0->battleSys);
v0->unk_6AC += v0->unk_6B0;
if (((v0->unk_6B0 <= 0) && (v0->unk_6AC <= v0->unk_6B4)) || ((v0->unk_6B0 > 0) && (v0->unk_6AC >= v0->unk_6B4))) {
@ -1737,15 +1741,15 @@ static void ov16_02269668(UnkStruct_ov16_02268A14 *param0, int param1, int param
param0->unk_6C1 = v6->unk_08;
v4 = BattleSystem_MessageLoader(param0->unk_00);
v4 = BattleSystem_MessageLoader(param0->battleSys);
param0->unk_66A = v5;
if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_SAFARI) {
if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_SAFARI) {
v0 = MessageLoader_GetNewStrbuf(v4, 931);
v1 = MessageLoader_GetNewStrbuf(v4, 932);
v2 = MessageLoader_GetNewStrbuf(v4, 933);
} else if (BattleSystem_BattleType(param0->unk_00) & BATTLE_TYPE_PAL_PARK) {
} else if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_PAL_PARK) {
v0 = MessageLoader_GetNewStrbuf(v4, 1223);
v1 = MessageLoader_GetNewStrbuf(v4, 932);
v2 = MessageLoader_GetNewStrbuf(v4, 933);
@ -1773,12 +1777,12 @@ static void ov16_02269668(UnkStruct_ov16_02268A14 *param0, int param1, int param
Strbuf_Free(v2);
Strbuf_Free(v3);
if ((BattleSystem_BattleType(param0->unk_00) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) {
if ((BattleSystem_BattleType(param0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) {
Pokemon *v7;
ManagedSprite *v8;
int v9, v10;
v7 = BattleSystem_PartyPokemon(param0->unk_00, v6->unk_01, v6->unk_02);
v7 = BattleSystem_PartyPokemon(param0->battleSys, v6->unk_01, v6->unk_02);
ov16_0226A698(param0);
v8 = ov16_0226A7A4(param0, v7, v5, v6->unk_04, v6->unk_06, v6->unk_03);
@ -1811,7 +1815,7 @@ static void ov16_022698BC(UnkStruct_ov16_02268A14 *param0, int param1, int param
{
BgConfig *v1;
v1 = BattleSystem_BGL(param0->unk_00);
v1 = BattleSystem_BGL(param0->battleSys);
Bg_FillTilemapRect(v1, 4, (0x6000 / 0x20 - 1), 0, 0x10, 32, 8, 17);
Bg_ScheduleTilemapTransfer(v1, 5);
@ -1839,7 +1843,7 @@ static void ov16_02269938(UnkStruct_ov16_02268A14 *param0, int param1, int param
{
BgConfig *v1;
v1 = BattleSystem_BGL(param0->unk_00);
v1 = BattleSystem_BGL(param0->battleSys);
Bg_FillTilemapRect(v1, 4, (0x6000 / 0x20 - 1), 0, 0x10, 10, 8, 17);
Bg_FillTilemapRect(v1, 4, (0x6000 / 0x20 - 1), 0x16, 0x10, 10, 8, 17);
@ -1854,19 +1858,19 @@ static void ov16_022699AC(UnkStruct_ov16_02268A14 *param0, int param1, int param
{
UnkStruct_ov16_02260C00 *v0;
int i;
MessageLoader *v2;
MessageLoader *messageLoader;
UnkStruct_ov16_0226ABD4 *v3;
TextColor v4;
TextColor textColor;
v0 = &param0->unk_1A.val2;
GF_ASSERT(v0 != NULL);
param0->unk_66A = v0->unk_10;
v2 = BattleSystem_MessageLoader(param0->unk_00);
messageLoader = BattleSystem_MessageLoader(param0->battleSys);
v3 = ov16_0226ABD4(param0, v0->unk_10);
ov16_0226AF0C(param0);
DrawMoveTypeIcons(param0);
{
ov16_0226A98C(param0, &param0->unk_4CC[0], NULL, FONT_SUBSCREEN, TEXT_COLOR(7, 8, 9), 3, 20023, 64, 46, 1, &v3->unk_28[0]);
@ -1877,27 +1881,27 @@ static void ov16_022699AC(UnkStruct_ov16_02268A14 *param0, int param1, int param
{
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
v4 = ov16_0226B924(v0->unk_08[i], v0->unk_0C[i]);
ov16_0226A98C(param0, &param0->unk_4CC[9 + i], NULL, FONT_SYSTEM, v4, 4, 20023, Unk_ov16_022702D4[i][0], Unk_ov16_022702D4[i][1], 0, &v3->unk_78[i]);
ov16_0226A98C(param0, &param0->unk_4CC[5 + i], NULL, FONT_SYSTEM, v4, 4, 20023, Unk_ov16_02270284[i][0], Unk_ov16_02270284[i][1], 0, &v3->unk_C8[i]);
textColor = ov16_0226B924(v0->unk_08[i], v0->unk_0C[i]);
ov16_0226A98C(param0, &param0->unk_4CC[9 + i], NULL, FONT_SYSTEM, textColor, 4, 20023, Unk_ov16_022702D4[i][0], Unk_ov16_022702D4[i][1], 0, &v3->unk_78[i]);
ov16_0226A98C(param0, &param0->unk_4CC[5 + i], NULL, FONT_SYSTEM, textColor, 4, 20023, Unk_ov16_02270284[i][0], Unk_ov16_02270284[i][1], 0, &v3->unk_C8[i]);
}
}
{
Strbuf *v5;
v5 = MessageLoader_GetNewStrbuf(v2, 929);
v5 = MessageLoader_GetNewStrbuf(messageLoader, 929);
ov16_0226A98C(param0, &param0->unk_4CC[4], v5, FONT_SUBSCREEN, TEXT_COLOR(10, 11, 12), 2, 20023, 128, 178, 1, NULL);
Strbuf_Free(v5);
}
{
int v6;
int moveType;
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
if (v0->unk_00[i] != 0) {
v6 = MoveTable_LoadParam(v0->unk_00[i], MOVEATTRIBUTE_TYPE);
ov16_0226B06C(param0, v6, i);
if (v0->moveIDs[i] != 0) {
moveType = MoveTable_LoadParam(v0->moveIDs[i], MOVEATTRIBUTE_TYPE);
LoadMoveSelectPlttSlot(param0, moveType, i);
} else {
ov16_0226B088(param0, i);
break;
@ -1908,27 +1912,27 @@ static void ov16_022699AC(UnkStruct_ov16_02268A14 *param0, int param1, int param
{
BgConfig *v7;
v7 = BattleSystem_BGL(param0->unk_00);
v7 = BattleSystem_BGL(param0->battleSys);
if (v0->unk_00[0] == 0) {
if (v0->moveIDs[0] == 0) {
sub_020129D0(param0->unk_4CC[0].unk_00, 0);
sub_020129D0(param0->unk_4CC[5].unk_00, 0);
sub_020129D0(param0->unk_4CC[9].unk_00, 0);
}
if (v0->unk_00[1] == 0) {
if (v0->moveIDs[1] == 0) {
sub_020129D0(param0->unk_4CC[1].unk_00, 0);
sub_020129D0(param0->unk_4CC[6].unk_00, 0);
sub_020129D0(param0->unk_4CC[10].unk_00, 0);
}
if (v0->unk_00[2] == 0) {
if (v0->moveIDs[2] == 0) {
sub_020129D0(param0->unk_4CC[2].unk_00, 0);
sub_020129D0(param0->unk_4CC[7].unk_00, 0);
sub_020129D0(param0->unk_4CC[11].unk_00, 0);
}
if (v0->unk_00[3] == 0) {
if (v0->moveIDs[3] == 0) {
sub_020129D0(param0->unk_4CC[3].unk_00, 0);
sub_020129D0(param0->unk_4CC[8].unk_00, 0);
sub_020129D0(param0->unk_4CC[12].unk_00, 0);
@ -1941,7 +1945,7 @@ static void ov16_02269C7C(UnkStruct_ov16_02268A14 *param0, int param1, int param
MessageLoader *v0;
Strbuf *v1, *v2;
v0 = BattleSystem_MessageLoader(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 940);
v2 = MessageLoader_GetNewStrbuf(v0, 941);
@ -1957,7 +1961,7 @@ static void ov16_02269D14(UnkStruct_ov16_02268A14 *param0, int param1, int param
MessageLoader *v0;
Strbuf *v1, *v2;
v0 = BattleSystem_MessageLoader(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 1181);
v2 = MessageLoader_GetNewStrbuf(v0, 1182);
@ -1974,8 +1978,8 @@ static void ov16_02269DB0(UnkStruct_ov16_02268A14 *param0, int param1, int param
Strbuf *v1, *v2, *v3, *v4;
StringTemplate *v5;
UnkStruct_ov16_022623F0 *v6 = &param0->unk_1A.val4;
v0 = BattleSystem_MessageLoader(param0->unk_00);
v5 = BattleSystem_StringTemplate(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v5 = BattleSystem_StringTemplate(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 1186);
v2 = MessageLoader_GetNewStrbuf(v0, 1187);
v3 = Strbuf_Init(100, HEAP_ID_BATTLE);
@ -2001,7 +2005,7 @@ static void ov16_02269E94(UnkStruct_ov16_02268A14 *param0, int param1, int param
G2S_SetBlendAlpha((GX_BLEND_PLANEMASK_BG1), (GX_BLEND_BGALL), 31, 0);
v0 = BattleSystem_MessageLoader(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 1260);
{
@ -2013,13 +2017,13 @@ static void ov16_02269E94(UnkStruct_ov16_02268A14 *param0, int param1, int param
MI_CpuCopy32(v3->rawData, param0->unk_3C[6], 0x800);
Heap_FreeToHeap(v4);
v2 = BattleSystem_BGL(param0->unk_00);
v2 = BattleSystem_BGL(param0->battleSys);
Bg_LoadTilemapBuffer(v2, 4, param0->unk_3C[6], 0x800);
Bg_ScheduleTilemapTransfer(v2, 4);
}
{
BgConfig *v5 = BattleSystem_BGL(param0->unk_00);
BgConfig *v5 = BattleSystem_BGL(param0->battleSys);
MI_CpuClear32(param0->unk_3C[4], 0x800);
Bg_LoadTilemapBuffer(v5, 5, param0->unk_3C[4], 0x800);
@ -2036,8 +2040,8 @@ static void ov16_02269F68(UnkStruct_ov16_02268A14 *param0, int param1, int param
Strbuf *v1, *v2, *v3, *v4;
StringTemplate *v5;
UnkStruct_ov16_022623F0 *v6 = &param0->unk_1A.val4;
v0 = BattleSystem_MessageLoader(param0->unk_00);
v5 = BattleSystem_StringTemplate(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v5 = BattleSystem_StringTemplate(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 1217);
v2 = MessageLoader_GetNewStrbuf(v0, 1218);
v3 = Strbuf_Init(100, HEAP_ID_BATTLE);
@ -2062,8 +2066,8 @@ static void ov16_0226A04C(UnkStruct_ov16_02268A14 *param0, int param1, int param
Strbuf *v1, *v2, *v3, *v4;
StringTemplate *v5;
UnkStruct_ov16_022623F0 *v6 = &param0->unk_1A.val4;
v0 = BattleSystem_MessageLoader(param0->unk_00);
v5 = BattleSystem_StringTemplate(param0->unk_00);
v0 = BattleSystem_MessageLoader(param0->battleSys);
v5 = BattleSystem_StringTemplate(param0->battleSys);
v1 = MessageLoader_GetNewStrbuf(v0, 1215);
v2 = MessageLoader_GetNewStrbuf(v0, 1216);
v3 = Strbuf_Init(100, HEAP_ID_BATTLE);
@ -2102,14 +2106,14 @@ static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param
param0->unk_66C = v0->unk_21;
param0->unk_66A = v0->unk_20;
v2 = BattleSystem_MessageLoader(param0->unk_00);
v8 = BattleSystem_StringTemplate(param0->unk_00);
v2 = BattleSystem_MessageLoader(param0->battleSys);
v8 = BattleSystem_StringTemplate(param0->battleSys);
ov16_0226B20C(param0, v3, 0);
ov16_0226A698(param0);
ov16_0226AAF8(param0);
ov16_0223F87C(param0->unk_00, v10);
ov16_0223F858(param0->unk_00, v11);
ov16_0223F87C(param0->battleSys, v10);
ov16_0223F858(param0->battleSys, v11);
v4 = Strbuf_Init((12 + 2 + (5 * 2)), HEAP_ID_BATTLE);
@ -2125,7 +2129,7 @@ static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param
v5 = MessageLoader_GetNewStrbuf(v2, 964);
}
v6 = BattleSystem_PartyPokemon(param0->unk_00, v12, v0->unk_00[v12].unk_00);
v6 = BattleSystem_PartyPokemon(param0->battleSys, v12, v0->unk_00[v12].unk_00);
v7 = Pokemon_GetBoxPokemon(v6);
StringTemplate_SetNickname(v8, 0, v7);
@ -2238,7 +2242,7 @@ static int ov16_0226A3F4(UnkStruct_ov16_02268A14 *param0, int param1, int param2
v0 = &param0->unk_1A.val2;
if ((param1 >= 1) && (param1 <= 4)) {
if (v0->unk_00[param1 - 1] == 0) {
if (v0->moveIDs[param1 - 1] == 0) {
return 0xffffffff;
}
}
@ -2361,7 +2365,7 @@ static int ov16_0226A528(UnkStruct_ov16_02268A14 *param0, int param1, int param2
{
BgConfig *v2;
v2 = BattleSystem_BGL(param0->unk_00);
v2 = BattleSystem_BGL(param0->battleSys);
Bg_FillTilemap(v2, 5, (0x6000 / 0x20 - 1));
Bg_ScheduleTilemapTransfer(v2, 5);
}
@ -2405,9 +2409,9 @@ static void ov16_0226A698(UnkStruct_ov16_02268A14 *param0)
int v2, v3, v4;
PaletteData *v5;
v0 = ov16_0223E010(param0->unk_00);
v1 = ov16_0223E018(param0->unk_00);
v5 = BattleSystem_PaletteSys(param0->unk_00);
v0 = BattleSystem_GetSpriteSystem(param0->battleSys);
v1 = BattleSystem_GetSpriteManager(param0->battleSys);
v5 = BattleSystem_PaletteSys(param0->battleSys);
SpriteSystem_LoadPaletteBuffer(v5, 3, v0, v1, 19, PokeIconPalettesFileIndex(), 0, 3, NNS_G2D_VRAM_TYPE_2DSUB, 20022);
SpriteSystem_LoadCellResObj(v0, v1, 19, PokeIcon32KCellsFileIndex(), 0, 20021);
@ -2416,7 +2420,7 @@ static void ov16_0226A698(UnkStruct_ov16_02268A14 *param0)
static void ov16_0226A718(UnkStruct_ov16_02268A14 *param0)
{
SpriteManager *v0 = ov16_0223E018(param0->unk_00);
SpriteManager *v0 = BattleSystem_GetSpriteManager(param0->battleSys);
SpriteManager_UnloadCharObjById(v0, 20036);
SpriteManager_UnloadCharObjById(v0, 20037);
@ -2478,8 +2482,8 @@ static ManagedSprite *ov16_0226A7A4(UnkStruct_ov16_02268A14 *param0, Pokemon *pa
return NULL;
}
v0 = ov16_0223E010(param0->unk_00);
v1 = ov16_0223E018(param0->unk_00);
v0 = BattleSystem_GetSpriteSystem(param0->battleSys);
v1 = BattleSystem_GetSpriteManager(param0->battleSys);
SpriteSystem_LoadCharResObj(v0, v1, NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, Pokemon_IconSpriteIndex(param1), 0, NNS_G2D_VRAM_TYPE_2DSUB, v2);
@ -2582,8 +2586,8 @@ static void ov16_0226A98C(UnkStruct_ov16_02268A14 *param0, UnkStruct_ov16_0226A9
GF_ASSERT(param1->unk_00 == NULL);
v6 = ov16_0223E018(param0->unk_00);
v5 = BattleSystem_BGL(param0->unk_00);
v6 = BattleSystem_GetSpriteManager(param0->battleSys);
v5 = BattleSystem_BGL(param0->battleSys);
if (param10 == NULL) {
ov16_0226A95C(param2, param3, &v7, &v8);
@ -2654,7 +2658,7 @@ static void ov16_0226AAF8(UnkStruct_ov16_02268A14 *param0)
u8 v0[4], v1[4];
int j, i;
u16 *v4, *v5;
BgConfig *v6 = BattleSystem_BGL(param0->unk_00);
BgConfig *v6 = BattleSystem_BGL(param0->battleSys);
v4 = Bg_GetTilemapBuffer(v6, 5);
ov16_0226B20C(param0, v0, 0);
@ -2723,7 +2727,7 @@ static void ov16_0226ABE8(UnkStruct_ov16_02268A14 *param0)
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
Heap_FreeToHeap(param0->unk_68[i].unk_18[j]);
Heap_FreeToHeap(param0->unk_68[i].moveIcons[j]);
if (param0->unk_68[i].unk_28[j].unk_00.pixels != NULL) {
Window_Remove(&param0->unk_68[i].unk_28[j].unk_00);
@ -2752,19 +2756,19 @@ void ov16_0226AC98(UnkStruct_ov16_02268A14 *param0, int param1, const MoveDispla
Strbuf *v9;
StringTemplate *v10;
TextColor v11;
MessageLoader *v12 = BattleSystem_MessageLoader(param0->unk_00);
MessageLoader *v12 = BattleSystem_MessageLoader(param0->battleSys);
v0 = ov16_0226ABD4(param0, param1);
v3 = sub_0208C098(6);
v9 = MessageLoader_GetNewStrbuf(v12, 938);
v10 = BattleSystem_StringTemplate(param0->unk_00);
v10 = BattleSystem_StringTemplate(param0->battleSys);
v7 = Strbuf_Init(((2 + 2 + 1 + 2) * 2 + 2), HEAP_ID_BATTLE);
v8 = MessageLoader_GetNewStrbuf(v12, 937);
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
if ((param2->move[i] != v0->unk_00.move[i]) && (param2->move[i] != 0)) {
v5 = MoveTable_LoadParam(param2->move[i], MOVEATTRIBUTE_TYPE);
v1 = Graphics_GetCharData(sub_0207C944(), sub_0207C908(v5), 1, &v2, HEAP_ID_BATTLE);
MI_CpuCopy32(v2->pRawData, v0->unk_18[i], v3);
v1 = Graphics_GetCharData(TypeIcon_GetNARC(), TypeIcon_GetChar(v5), 1, &v2, HEAP_ID_BATTLE);
MI_CpuCopy32(v2->pRawData, v0->moveIcons[i], v3);
Heap_FreeToHeap(v1);
}
@ -2812,48 +2816,48 @@ static void ov16_0226AEA0(UnkStruct_ov16_02268A14 *param0, const Strbuf *param1,
}
Window_Init(&param3->unk_00);
Window_AddToTopLeftCorner(BattleSystem_BGL(param0->unk_00), &param3->unk_00, v1, 16 / 8, 0, 0);
Window_AddToTopLeftCorner(BattleSystem_BGL(param0->battleSys), &param3->unk_00, v1, 16 / 8, 0, 0);
Text_AddPrinterWithParamsColorAndSpacing(&param3->unk_00, param2, param1, 0, 0, TEXT_SPEED_NO_TRANSFER, param4, 0, 0, NULL);
}
static void ov16_0226AF0C(UnkStruct_ov16_02268A14 *param0)
static void DrawMoveTypeIcons(UnkStruct_ov16_02268A14 *param0)
{
int i;
SpriteSystem *v1;
SpriteManager *v2;
SpriteTemplate v3;
SpriteSystem *spriteSys;
SpriteManager *spriteMan;
SpriteTemplate spriteTemplate;
UnkStruct_ov16_02260C00 *v4;
int v5;
int moveType;
int v6;
UnkStruct_ov16_0226ABD4 *v7;
v4 = &param0->unk_1A.val2;
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
spriteSys = BattleSystem_GetSpriteSystem(param0->battleSys);
spriteMan = BattleSystem_GetSpriteManager(param0->battleSys);
v7 = ov16_0226ABD4(param0, param0->unk_66A);
v3 = Unk_ov16_0227047C;
spriteTemplate = Unk_ov16_0227047C;
for (i = 0; i < LEARNED_MOVES_MAX; i++) {
GF_ASSERT(param0->unk_5EC[i] == NULL);
GF_ASSERT(param0->moveSelectSprites[i] == NULL);
if (v4->unk_00[i] != 0) {
v5 = MoveTable_LoadParam(v4->unk_00[i], MOVEATTRIBUTE_TYPE);
v3.resources[0] = 20025 + i;
v3.x = Unk_ov16_022702B4[i][0];
v3.y = Unk_ov16_022702B4[i][1];
if (v4->moveIDs[i] != 0) {
moveType = MoveTable_LoadParam(v4->moveIDs[i], MOVEATTRIBUTE_TYPE);
spriteTemplate.resources[0] = 20025 + i;
spriteTemplate.x = Unk_ov16_022702B4[i][0];
spriteTemplate.y = Unk_ov16_022702B4[i][1];
param0->unk_5EC[i] = sub_0207CA58(v1, v2, v5, &v3);
param0->moveSelectSprites[i] = TypeIcon_NewTypeIconSprite(spriteSys, spriteMan, moveType, &spriteTemplate);
ManagedSprite_SetPositionXYWithSubscreenOffset(param0->unk_5EC[i], v3.x, v3.y, ((192 + 80) << FX32_SHIFT));
ManagedSprite_SetPositionXYWithSubscreenOffset(param0->moveSelectSprites[i], spriteTemplate.x, spriteTemplate.y, ((192 + 80) << FX32_SHIFT));
{
void *v8;
NNSG2dImageProxy *v9;
v8 = G2S_GetOBJCharPtr();
v9 = Sprite_GetImageProxy(param0->unk_5EC[i]->sprite);
v9 = Sprite_GetImageProxy(param0->moveSelectSprites[i]->sprite);
MI_CpuCopy16(v7->unk_18[i], (void *)((u32)v8 + v9->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DSUB]), sub_0208C098(6));
MI_CpuCopy16(v7->moveIcons[i], (void *)((u32)v8 + v9->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DSUB]), sub_0208C098(6));
}
}
}
@ -2865,13 +2869,13 @@ static void ov16_0226AFF4(UnkStruct_ov16_02268A14 *param0)
SpriteSystem *v1;
SpriteManager *v2;
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
v1 = BattleSystem_GetSpriteSystem(param0->battleSys);
v2 = BattleSystem_GetSpriteManager(param0->battleSys);
for (i = 0; i < 4; i++) {
if (param0->unk_5EC[i] != NULL) {
sub_0207CA88(param0->unk_5EC[i]);
param0->unk_5EC[i] = NULL;
if (param0->moveSelectSprites[i] != NULL) {
TypeIcon_DeleteSprite(param0->moveSelectSprites[i]);
param0->moveSelectSprites[i] = NULL;
}
}
}
@ -2882,33 +2886,33 @@ static void ov16_0226B028(UnkStruct_ov16_02268A14 *param0)
SpriteSystem *v1;
SpriteManager *v2;
v1 = ov16_0223E010(param0->unk_00);
v2 = ov16_0223E018(param0->unk_00);
v1 = BattleSystem_GetSpriteSystem(param0->battleSys);
v2 = BattleSystem_GetSpriteManager(param0->battleSys);
for (i = 0; i < 4; i++) {
if (param0->unk_5FC[i] != NULL) {
sub_0207CB00(param0->unk_5FC[i]);
sub_0207CAF8(v2, 20029 + i);
CategoryIcon_DeleteSprite(param0->unk_5FC[i]);
CategoryIcon_UnloadChar(v2, 20029 + i);
param0->unk_5FC[i] = NULL;
}
}
}
static void ov16_0226B06C(UnkStruct_ov16_02268A14 *param0, int param1, int param2)
static void LoadMoveSelectPlttSlot(UnkStruct_ov16_02268A14 *param0, enum PokemonType moveType, int moveSlot)
{
ov11_0221F81C(BattleSystem_PaletteSys(param0->unk_00), param1, 5, 1, 8 + param2);
LoadMoveSelectPltt(BattleSystem_PaletteSys(param0->battleSys), moveType, 5, PLTTBUF_SUB_BG, PLTT_8 + moveSlot);
}
static void ov16_0226B088(UnkStruct_ov16_02268A14 *param0, int param1)
{
PaletteData *v0;
PaletteData *paletteSys;
int i;
v0 = BattleSystem_PaletteSys(param0->unk_00);
paletteSys = BattleSystem_PaletteSys(param0->battleSys);
for (i = param1; i < 4; i++) {
ov16_0226B31C(param0, &Unk_ov16_0227022C[i], &Unk_ov16_02270274[i], 3, 0);
PaletteData_LoadBuffer(v0, &param0->unk_58[0xe * 16], 1, (8 + i) * 16, 0x20);
PaletteData_LoadBuffer(paletteSys, &param0->unk_58[0xe * 16], 1, (8 + i) * 16, 0x20);
}
}
@ -2917,8 +2921,8 @@ static void ov16_0226B0DC(UnkStruct_ov16_02268A14 *param0, int param1)
PaletteData *v0;
int v1;
const u8 v2[] = { 6, 0xc, 0xd, 5 };
BgConfig *v3 = BattleSystem_BGL(param0->unk_00);
v0 = BattleSystem_PaletteSys(param0->unk_00);
BgConfig *v3 = BattleSystem_BGL(param0->battleSys);
v0 = BattleSystem_PaletteSys(param0->battleSys);
ov16_0226B31C(param0, &Unk_ov16_022701FC[param1], &Unk_ov16_022702C4[param1], 4, 0);
@ -2969,7 +2973,7 @@ static void ov16_0226B20C(UnkStruct_ov16_02268A14 *param0, u8 *param1, int param
int v3;
v0 = &param0->unk_1A.val3;
ov16_0223F858(param0->unk_00, v2);
ov16_0223F858(param0->battleSys, v2);
for (i = 0; i < 4; i++) {
v3 = v2[2 + i];
@ -3072,7 +3076,7 @@ static void inline_ov16_0226B318_1(SysTask *param0, void *param1)
int v4, v5;
v1 = &v0->unk_6A0;
v3 = BattleSystem_PaletteSys(v0->unk_00);
v3 = BattleSystem_PaletteSys(v0->battleSys);
v5 = 0;
switch (v1->unk_08) {
@ -3115,7 +3119,7 @@ static void inline_ov16_0226B314_1(SysTask *param0, void *param1)
u8 v6[4];
v1 = &v0->unk_6A0;
v3 = BattleSystem_PaletteSys(v0->unk_00);
v3 = BattleSystem_PaletteSys(v0->battleSys);
v5 = 0;
switch (v1->unk_08) {
@ -3161,7 +3165,7 @@ static void ov16_0226B31C(UnkStruct_ov16_02268A14 *param0, const s16 *param1, co
u16 *v5, *v6;
int v7;
v2 = BattleSystem_BGL(param0->unk_00);
v2 = BattleSystem_BGL(param0->battleSys);
v3 = Bg_GetTilemapBuffer(v2, 4);
v5 = param0->unk_3C[param3];
v7 = param1[param4];
@ -3184,7 +3188,7 @@ static void ov16_0226B390(SysTask *param0, void *param1)
BgConfig *v1;
int v2, v3;
v1 = BattleSystem_BGL(v0->unk_00);
v1 = BattleSystem_BGL(v0->battleSys);
switch (v0->unk_67C.unk_00) {
case 0:
@ -3239,7 +3243,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
int v7, v8, v9;
UnkStruct_ov16_02260C00 *v10;
v1 = BattleSystem_BGL(v0->unk_00);
v1 = BattleSystem_BGL(v0->battleSys);
v10 = &v0->unk_1A.val2;
switch (v0->unk_67C.unk_04_val3.unk_08) {
@ -3249,7 +3253,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
v6 = 5;
v7 = 0;
v8 = 0;
v9 = v10->unk_00[0];
v9 = v10->moveIDs[0];
break;
case 2:
v4 = 1;
@ -3257,7 +3261,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
v6 = 6;
v7 = 1;
v8 = 1;
v9 = v10->unk_00[1];
v9 = v10->moveIDs[1];
break;
case 3:
v4 = 2;
@ -3265,7 +3269,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
v6 = 7;
v7 = 2;
v8 = 2;
v9 = v10->unk_00[2];
v9 = v10->moveIDs[2];
break;
case 4:
v4 = 3;
@ -3273,7 +3277,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
v6 = 8;
v7 = 3;
v8 = 3;
v9 = v10->unk_00[3];
v9 = v10->moveIDs[3];
break;
case 0xff:
default:
@ -3299,7 +3303,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
sub_020128C4(v0->unk_4CC[v6].unk_00, v2, v3 + -2);
if (v9 != 0) {
Sprite_OffsetPositionXY(v0->unk_5EC[v7]->sprite, 0, -2);
Sprite_OffsetPositionXY(v0->moveSelectSprites[v7]->sprite, 0, -2);
if (v0->unk_5FC[v7] != NULL) {
Sprite_OffsetPositionXY(v0->unk_5FC[v7]->sprite, 0, -2);
@ -3333,7 +3337,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1)
sub_020128C4(v0->unk_4CC[v6].unk_00, v2, v3 + 1);
if (v9 != 0) {
Sprite_OffsetPositionXY(v0->unk_5EC[v7]->sprite, 0, 1);
Sprite_OffsetPositionXY(v0->moveSelectSprites[v7]->sprite, 0, 1);
if (v0->unk_5FC[v7] != NULL) {
Sprite_OffsetPositionXY(v0->unk_5FC[v7]->sprite, 0, 1);
@ -3365,7 +3369,7 @@ static void ov16_0226B780(SysTask *param0, void *param1)
int i, v2, v3;
u8 v4[4];
v1 = BattleSystem_BGL(v0->unk_00);
v1 = BattleSystem_BGL(v0->battleSys);
switch (v0->unk_67C.unk_00) {
case 0:
@ -3469,7 +3473,7 @@ static TextColor ov16_0226B924(int param0, int param1)
static void ov16_0226B988(SysTask *param0, void *param1)
{
UnkStruct_ov16_0226B988 *v0 = param1;
BgConfig *v1 = BattleSystem_BGL(v0->unk_00->unk_00);
BgConfig *v1 = BattleSystem_BGL(v0->unk_00->battleSys);
switch (v0->unk_13) {
case 0:
@ -3503,7 +3507,7 @@ static void ov16_0226B988(SysTask *param0, void *param1)
Bg_SetOffset(v1, 4, 3, 0);
Bg_SetOffset(v1, 5, 0, 0);
Bg_SetOffset(v1, 5, 3, 0);
BattleSystem_SetCommandSelectionFlags(v0->unk_00->unk_00, 1);
BattleSystem_SetCommandSelectionFlags(v0->unk_00->battleSys, 1);
Heap_FreeToHeap(param1);
SysTask_Done(param0);
@ -3517,7 +3521,7 @@ static void ov16_0226BA88(SysTask *param0, void *param1)
BgConfig *v1;
s32 v2, v3, v4;
v1 = BattleSystem_BGL(v0->unk_00->unk_00);
v1 = BattleSystem_BGL(v0->unk_00->battleSys);
if (v0->unk_12 == 4) {
v4 = 255 - v0->unk_0C;
@ -3581,14 +3585,14 @@ static void ov16_0226BB94(void *param0)
v1 = GX_GetVCount();
if (v1 == (18 * 8)) {
BgConfig *v3 = BattleSystem_BGL(v0->unk_00->unk_00);
BgConfig *v3 = BattleSystem_BGL(v0->unk_00->battleSys);
Bg_SetOffset(v3, 4, 0, 0);
Bg_SetOffset(v3, 4, 3, v0->unk_10);
Bg_SetOffset(v3, 5, 0, 0);
Bg_SetOffset(v3, 5, 3, v0->unk_10);
} else if (v1 > 192) {
BgConfig *v4 = BattleSystem_BGL(v0->unk_00->unk_00);
BgConfig *v4 = BattleSystem_BGL(v0->unk_00->battleSys);
if (v0->unk_12 == 4) {
v2 = 255 - v0->unk_0C;
@ -3668,7 +3672,7 @@ static void ov16_0226BCE4(SysTask *param0, void *param1)
PaletteData *v3;
s16 v4;
v3 = BattleSystem_PaletteSys(v0->unk_00);
v3 = BattleSystem_PaletteSys(v0->battleSys);
if (PaletteData_GetSelectedBuffersMask(v3) != 0) {
return;
@ -3705,7 +3709,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1)
RenderControlFlags_ZeroSpeedUpBattle();
RenderControlFlags_ZeroWaitBattle();
v1 = BattleSystem_PaletteSys(v0->unk_00);
v1 = BattleSystem_PaletteSys(v0->battleSys);
if (PaletteData_GetSelectedBuffersMask(v1) != 0) {
return;
@ -3716,7 +3720,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1)
if (gSystem.touchHeld && ((v4 == 1) || (v5 == 1))) {
if (memcmp(&v2[8], &v0->unk_5C[8], v3) == 0) {
if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_FRONTIER) {
if (BattleSystem_BattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) {
MI_CpuCopy16(&v0->unk_60[0], &v2[0], 0x20);
MI_CpuCopy16(&v0->unk_60[16], &v2[7 * 16], 0x20);
} else {
@ -3725,7 +3729,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1)
}
} else {
if (memcmp(&v2[8], &v0->unk_60[8], v3) == 0) {
if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_FRONTIER) {
if (BattleSystem_BattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) {
MI_CpuCopy16(&v0->unk_5C[0], &v2[0], 0x20);
MI_CpuCopy16(&v0->unk_5C[16], &v2[7 * 16], 0x20);
} else {
@ -3774,8 +3778,8 @@ static int ov16_0226BEC0(UnkStruct_ov16_02268A14 *param0, int param1)
v0 = &param0->unk_6BC;
v2 = &Unk_ov16_02270670[param0->unk_66B];
v5 = BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A);
v6 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, v5));
v5 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A);
v6 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v5));
if (param1 == 1) {
v0->unk_02 = v6->unk_00;
@ -3844,10 +3848,10 @@ static void ov16_0226C0A0(UnkStruct_ov16_02268A14 *param0, int param1)
UnkStruct_ov16_0226C378 *v0;
int v1, j, i;
v1 = BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A);
v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A);
if ((param1 != 3) || (param0->unk_6C1 == 0)) {
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, v1));
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1));
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
@ -3907,7 +3911,7 @@ static int ov16_0226C1F8(UnkStruct_ov16_02268A14 *param0, int param1)
int v3, i;
u8 v5[3][2];
UnkStruct_ov16_02260C00 *v6;
UnkStruct_ov16_0226C378 *v7 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A)));
UnkStruct_ov16_0226C378 *v7 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A)));
v0 = &param0->unk_6BC;
v2 = &Unk_ov16_02270670[param0->unk_66B];
v6 = &param0->unk_1A.val2;
@ -3917,7 +3921,7 @@ static int ov16_0226C1F8(UnkStruct_ov16_02268A14 *param0, int param1)
v0->unk_01 = v7->unk_03;
v3 = Unk_ov16_022701E4[v0->unk_01][v0->unk_02];
if ((v3 != 0) && (v6->unk_00[v3 - 1] == 0)) {
if ((v3 != 0) && (v6->moveIDs[v3 - 1] == 0)) {
v7->unk_02 = 0;
v7->unk_03 = 0;
v0->unk_02 = 0;
@ -3964,8 +3968,8 @@ static void ov16_0226C378(UnkStruct_ov16_02268A14 *param0, int param1)
return;
}
v1 = BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A);
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, v1));
v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A);
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1));
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
@ -3993,7 +3997,7 @@ static int ov16_0226C3C8(UnkStruct_ov16_02268A14 *param0, int param1)
int v23, v24, v25, v26;
int v27, v28;
int v29;
UnkStruct_ov16_0226C378 *v30 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A)));
UnkStruct_ov16_0226C378 *v30 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A)));
v0 = &param0->unk_6BC;
v2 = &Unk_ov16_02270670[param0->unk_66B];
@ -4242,8 +4246,8 @@ static void ov16_0226C9B8(UnkStruct_ov16_02268A14 *param0, int param1)
return;
}
v1 = BattleSystem_BattlerOfType(param0->unk_00, param0->unk_66A);
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->unk_00, v1));
v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A);
v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1));
v0->unk_06 = param0->unk_66C;
@ -4440,12 +4444,12 @@ static int ov16_0226CD18(UnkStruct_ov16_02268A14 *param0)
PaletteData *v2;
int v3;
v0 = ov16_0223E010(param0->unk_00);
v1 = ov16_0223E018(param0->unk_00);
v2 = BattleSystem_PaletteSys(param0->unk_00);
v0 = BattleSystem_GetSpriteSystem(param0->battleSys);
v1 = BattleSystem_GetSpriteManager(param0->battleSys);
v2 = BattleSystem_PaletteSys(param0->battleSys);
v3 = 0xffffffff;
if (ov16_0223F228(param0->unk_00) == 0) {
if (ov16_0223F228(param0->battleSys) == 0) {
GF_ASSERT(param0->unk_6C4.unk_04 < NELEMS(Unk_ov16_0227020C));
v3 = Unk_ov16_0227020C[param0->unk_6C4.unk_04](param0);
} else {
@ -4529,8 +4533,8 @@ static int ov16_0226CE34(UnkStruct_ov16_02268A14 *param0)
void ov16_0226CEB0(UnkStruct_ov16_02268A14 *param0, int param1)
{
BgConfig *v0 = BattleSystem_BGL(param0->unk_00);
PaletteData *v1 = BattleSystem_PaletteSys(param0->unk_00);
BgConfig *v0 = BattleSystem_BGL(param0->battleSys);
PaletteData *v1 = BattleSystem_PaletteSys(param0->battleSys);
GF_ASSERT(param0->unk_66B == 18);
@ -4560,7 +4564,7 @@ void ov16_0226CEB0(UnkStruct_ov16_02268A14 *param0, int param1)
{
Strbuf *v8;
MessageLoader *v9 = BattleSystem_MessageLoader(param0->unk_00);
MessageLoader *v9 = BattleSystem_MessageLoader(param0->battleSys);
int i;
const u16 v11[][2] = {
{ 1261, 1262 },

View File

@ -282,7 +282,7 @@ pokeplatinum_c = files(
'unk_0207A6DC.c',
'unk_0207AE68.c',
'unk_0207C63C.c',
'unk_0207C908.c',
'type_icon.c',
'unk_0207CB08.c',
'bag.c',
'unk_0207DA28.c',
@ -489,7 +489,7 @@ pokeplatinum_c = files(
'overlay008/ov8_02249960.c',
'overlay009/ov9_02249960.c',
'overlay010/ov10_0221F800.c',
'overlay011/ov11_0221F800.c',
'overlay011/move_palettes.c',
'overlay011/ov11_0221F840.c',
'overlay012/is_form_symmetrical.c',
'overlay012/ov12_0221FC20.c',

View File

@ -4,7 +4,6 @@
#include <string.h>
#include "constants/narc.h"
#include "constants/palette.h"
#include "constants/scrcmd.h"
#include "generated/map_headers.h"

View File

@ -5,7 +5,6 @@
#include "constants/forms.h"
#include "constants/heap.h"
#include "constants/palette.h"
#include "constants/species.h"
#include "generated/items.h"
#include "generated/moves.h"

View File

@ -0,0 +1,439 @@
#include "overlay011/move_palettes.h"
#include <nitro.h>
#include <string.h>
#include "generated/pokemon_types.h"
#include "pch/global_pch.h"
#include "palette.h"
ALIGN_4 static const u16 sMovePaletteNormal[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(23, 22, 26),
RGB(21, 19, 25),
RGB(19, 17, 24),
RGB(15, 12, 20),
RGB(13, 11, 17),
RGB(12, 10, 14),
RGB(10, 9, 11),
RGB(25, 24, 28),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0)
};
ALIGN_4 static const u16 sMovePaletteFighting[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(31, 22, 14),
RGB(31, 20, 10),
RGB(31, 18, 6),
RGB(28, 12, 0),
RGB(25, 10, 0),
RGB(20, 8, 1),
RGB(15, 6, 0),
RGB(31, 25, 17),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0)
};
ALIGN_4 static const u16 sMovePaletteFlying[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(15, 21, 31),
RGB(10, 18, 31),
RGB(6, 15, 31),
RGB(0, 10, 28),
RGB(1, 8, 23),
RGB(2, 7, 18),
RGB(3, 6, 13),
RGB(19, 23, 31),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0)
};
ALIGN_4 static const u16 sMovePalettePoison[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(26, 16, 31),
RGB(26, 11, 31),
RGB(26, 6, 31),
RGB(22, 0, 28),
RGB(18, 1, 24),
RGB(15, 2, 19),
RGB(11, 4, 15),
RGB(28, 19, 31),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0)
};
ALIGN_4 static const u16 sMovePaletteGround[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(30, 22, 12),
RGB(28, 20, 8),
RGB(26, 17, 4),
RGB(24, 14, 0),
RGB(21, 12, 0),
RGB(17, 9, 0),
RGB(13, 7, 1),
RGB(31, 24, 15),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteRock[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(22, 19, 16),
RGB(21, 17, 13),
RGB(20, 16, 11),
RGB(16, 12, 6),
RGB(15, 10, 5),
RGB(12, 8, 5),
RGB(10, 6, 4),
RGB(26, 21, 18),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteBug[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(26, 25, 13),
RGB(25, 23, 9),
RGB(24, 21, 4),
RGB(22, 18, 0),
RGB(18, 15, 0),
RGB(15, 13, 0),
RGB(11, 10, 1),
RGB(28, 27, 15),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteGhost[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(25, 6, 20),
RGB(21, 6, 18),
RGB(18, 6, 15),
RGB(14, 7, 12),
RGB(13, 6, 12),
RGB(11, 5, 9),
RGB(9, 5, 8),
RGB(26, 11, 22),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteSteel[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(28, 28, 26),
RGB(25, 25, 24),
RGB(22, 22, 22),
RGB(18, 18, 19),
RGB(16, 16, 16),
RGB(13, 13, 12),
RGB(11, 11, 9),
RGB(29, 29, 27),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteMystery[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(26, 19, 22),
RGB(23, 16, 19),
RGB(21, 13, 17),
RGB(18, 11, 15),
RGB(16, 9, 12),
RGB(13, 7, 10),
RGB(11, 6, 8),
RGB(27, 23, 25),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteFire[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(31, 17, 14),
RGB(30, 12, 10),
RGB(29, 7, 6),
RGB(28, 3, 2),
RGB(24, 3, 3),
RGB(19, 4, 5),
RGB(14, 5, 7),
RGB(31, 20, 17),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteWater[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(18, 28, 29),
RGB(12, 24, 28),
RGB(6, 20, 26),
RGB(0, 16, 24),
RGB(0, 13, 20),
RGB(0, 9, 15),
RGB(1, 6, 10),
RGB(22, 29, 29),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteGrass[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(15, 29, 8),
RGB(12, 27, 6),
RGB(9, 24, 3),
RGB(6, 22, 0),
RGB(6, 19, 1),
RGB(6, 15, 2),
RGB(6, 12, 3),
RGB(21, 30, 14),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteElectric[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(31, 29, 13),
RGB(31, 28, 10),
RGB(28, 25, 6),
RGB(26, 23, 0),
RGB(23, 20, 0),
RGB(20, 16, 0),
RGB(16, 13, 1),
RGB(31, 30, 19),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePalettePsychic[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(31, 15, 31),
RGB(31, 12, 28),
RGB(30, 9, 24),
RGB(29, 7, 20),
RGB(25, 5, 18),
RGB(20, 3, 17),
RGB(15, 2, 15),
RGB(31, 22, 31),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteIce[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(20, 28, 31),
RGB(17, 26, 30),
RGB(13, 24, 29),
RGB(10, 21, 28),
RGB(9, 17, 24),
RGB(9, 13, 19),
RGB(8, 12, 17),
RGB(23, 31, 31),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteDragon[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(18, 15, 27),
RGB(15, 13, 27),
RGB(13, 11, 26),
RGB(10, 9, 25),
RGB(8, 7, 23),
RGB(7, 5, 20),
RGB(6, 4, 17),
RGB(18, 18, 29),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteDark[] = {
RGB(13, 14, 29),
RGB(31, 31, 31),
RGB(21, 14, 15),
RGB(18, 13, 13),
RGB(15, 11, 12),
RGB(12, 10, 10),
RGB(11, 8, 8),
RGB(11, 6, 7),
RGB(10, 5, 6),
RGB(23, 16, 17),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 sMovePaletteNone[] = {
RGB(13, 14, 29),
RGB(25, 25, 29),
RGB(13, 13, 18),
RGB(12, 12, 15),
RGB(10, 11, 13),
RGB(9, 9, 10),
RGB(8, 8, 8),
RGB(7, 7, 7),
RGB(6, 6, 6),
RGB(15, 15, 20),
RGB(6, 6, 6),
RGB(0, 0, 0),
RGB(12, 12, 12),
RGB(28, 26, 13),
RGB(30, 29, 21),
RGB(0, 0, 0),
};
ALIGN_4 static const u16 Unk_ov11_0221FBAC[] = {
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
RGB(19, 1, 0),
};
ALIGN_4 static const u16 *const sMovePaletteTable[] = {
sMovePaletteNormal,
sMovePaletteFighting,
sMovePaletteFlying,
sMovePalettePoison,
sMovePaletteGround,
sMovePaletteRock,
sMovePaletteBug,
sMovePaletteGhost,
sMovePaletteSteel,
sMovePaletteMystery,
sMovePaletteFire,
sMovePaletteWater,
sMovePaletteGrass,
sMovePaletteElectric,
sMovePalettePsychic,
sMovePaletteIce,
sMovePaletteDragon,
sMovePaletteDark
};
void include_unk_ov11_0221FBAC();
void include_unk_ov11_0221FBAC()
{
Unk_ov11_0221FBAC[0];
}
const u16 *GetMoveTypePalette(int moveType)
{
const u16 *paletteSourceAdr;
if (moveType != -1) {
paletteSourceAdr = sMovePaletteTable[moveType];
} else {
paletteSourceAdr = sMovePaletteNone;
}
return paletteSourceAdr;
}
void LoadMoveSelectPltt(PaletteData *paletteSys, enum PokemonType moveType, int unused, enum PaletteBufferID bufferID, enum Palette paletteDest)
{
const u16 *paletteSource = GetMoveTypePalette(moveType);
PaletteData_LoadBuffer(paletteSys, paletteSource, bufferID, PLTT_DEST(paletteDest), PALETTE_SIZE_BYTES);
}

View File

@ -1,435 +0,0 @@
#include "overlay011/ov11_0221F800.h"
#include <nitro.h>
#include <string.h>
#include "palette.h"
__attribute__((aligned(4))) const u16 Unk_ov11_0221F94C[] = {
0x75CD,
0x7fff,
0x6AD7,
0x6675,
0x6233,
0x518f,
0x456D,
0x394C,
0x2D2A,
0x7319,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FB8C[] = {
0x75CD,
0x7fff,
0x3adf,
0x2a9f,
0x1a5f,
0x19C,
0x159,
0x514,
0x00cf,
0x473f,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FB6C[] = {
0x75CD,
0x7fff,
0x7eaf,
0x7E4A,
0x7DE6,
0x7140,
0x5D01,
0x48E2,
0x34C3,
0x7ef3,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FB4C[] = {
0x75CD,
0x7fff,
0x7E1A,
0x7D7A,
0x7CDA,
0x7016,
0x6032,
0x4c4f,
0x3C8B,
0x7E7C,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FB2C[] = {
0x75CD,
0x7fff,
0x32DE,
0x229C,
0x123A,
0x1D8,
0x195,
0x131,
0x4ED,
0x3f1f,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FB0C[] = {
0x75CD,
0x7fff,
0x4276,
0x3635,
0x2E14,
0x1990,
0x154f,
0x150C,
0x10CA,
0x4ABA,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FAEC[] = {
0x75CD,
0x7fff,
0x373A,
0x26f9,
0x12B8,
0x256,
0x01f2,
0x01af,
0x54B,
0x3f7c,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FACC[] = {
0x75CD,
0x7fff,
0x50D9,
0x48D5,
0x3CD2,
0x30EE,
0x30CD,
0x24AB,
0x20A9,
0x597A,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FAAC[] = {
0x75CD,
0x7fff,
0x6B9C,
0x6339,
0x5AD6,
0x4E52,
0x4210,
0x31AD,
0x256B,
0x6fbd,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FA8C[] = {
0x75CD,
0x7fff,
0x5A7A,
0x4E17,
0x45B5,
0x3D72,
0x3130,
0x28ED,
0x20CB,
0x66fb,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FA6C[] = {
0x75CD,
0x7fff,
0x3a3f,
0x299E,
0x18fd,
0x87C,
0xC78,
0x1493,
0x1CAE,
0x469f,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FA4C[] = {
0x75CD,
0x7fff,
0x7792,
0x730C,
0x6A86,
0x6200,
0x51A0,
0x3D20,
0x28C1,
0x77B6,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FA2C[] = {
0x75CD,
0x7fff,
0x23af,
0x1B6C,
0x0f09,
0x2C6,
0x666,
0x9E6,
0xD86,
0x3BD5,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221FA0C[] = {
0x75CD,
0x7fff,
0x37bf,
0x2b9f,
0x1B3C,
0x02fa,
0x297,
0x214,
0x5B0,
0x4fdf,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221F9EC[] = {
0x75CD,
0x7fff,
0x7dff,
0x719f,
0x613E,
0x50fd,
0x48B9,
0x4474,
0x3c4f,
0x7edf,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221F9CC[] = {
0x75CD,
0x7fff,
0x7f94,
0x7B51,
0x770D,
0x72AA,
0x6229,
0x4DA9,
0x4588,
0x7ff7,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221F9AC[] = {
0x75CD,
0x7fff,
0x6df2,
0x6daf,
0x696D,
0x652A,
0x5CE8,
0x50A7,
0x4486,
0x7652,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221F98C[] = {
0x75CD,
0x7fff,
0x3DD5,
0x35B2,
0x316f,
0x294C,
0x210B,
0x1CCB,
0x18AA,
0x4617,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) const u16 Unk_ov11_0221F96C[] = {
0x75CD,
0x7739,
0x49AD,
0x3D8C,
0x356A,
0x2929,
0x2108,
0x1CE7,
0x18C6,
0x51ef,
0x18C6,
0x0,
0x318C,
0x375C,
0x57BE,
0x0
};
__attribute__((aligned(4))) static const u16 Unk_ov11_0221FBAC[] = {
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33,
0x33
};
__attribute__((aligned(4))) static const u16 *const Unk_ov11_0221FBD0[] = {
Unk_ov11_0221F94C,
Unk_ov11_0221FB8C,
Unk_ov11_0221FB6C,
Unk_ov11_0221FB4C,
Unk_ov11_0221FB2C,
Unk_ov11_0221FB0C,
Unk_ov11_0221FAEC,
Unk_ov11_0221FACC,
Unk_ov11_0221FAAC,
Unk_ov11_0221FA8C,
Unk_ov11_0221FA6C,
Unk_ov11_0221FA4C,
Unk_ov11_0221FA2C,
Unk_ov11_0221FA0C,
Unk_ov11_0221F9EC,
Unk_ov11_0221F9CC,
Unk_ov11_0221F9AC,
Unk_ov11_0221F98C
};
void include_unk_ov11_0221FBAC();
void include_unk_ov11_0221FBAC()
{
Unk_ov11_0221FBAC[0];
}
const u16 *ov11_0221F800(int param0)
{
const u16 *v0;
if (param0 != -1) {
v0 = Unk_ov11_0221FBD0[param0];
} else {
v0 = Unk_ov11_0221F96C;
}
return v0;
}
void ov11_0221F81C(PaletteData *param0, int param1, int param2, int param3, int param4)
{
const u16 *v0 = ov11_0221F800(param1);
PaletteData_LoadBuffer(param0, v0, param3, param4 * 16, 0x20);
}

View File

@ -4152,8 +4152,8 @@ UnkStruct_ov12_02223764 *ov12_022234F8(BattleSystem *battleSys, int heapID, int
v2->heapID = heapID;
v2->unk_04 = param2;
v2->unk_08.unk_00 = ov16_0223E010(battleSys);
v2->unk_08.unk_04 = ov16_0223E018(battleSys);
v2->unk_08.unk_00 = BattleSystem_GetSpriteSystem(battleSys);
v2->unk_08.unk_04 = BattleSystem_GetSpriteManager(battleSys);
v2->unk_08.unk_08 = BattleSystem_PaletteSys(battleSys);
{

View File

@ -284,7 +284,7 @@ static void ov13_0221FCAC(SysTask *param0, void *param1)
}
ov13_0222537C(v0);
SpriteSystem_DrawSprites(v0->unk_1FB0);
SpriteSystem_DrawSprites(v0->spriteMan);
ov13_0222601C(v0);
}

View File

@ -3,6 +3,9 @@
#include <nitro.h>
#include <string.h>
#include "generated/move_classes.h"
#include "generated/pokemon_types.h"
#include "applications/pokemon_summary_screen/main.h"
#include "battle/ov16_0223DF00.h"
#include "battle/ov16_0226DB7C.h"
@ -20,7 +23,7 @@
#include "party.h"
#include "pokemon_icon.h"
#include "sprite_system.h"
#include "unk_0207C908.h"
#include "type_icon.h"
#include "unk_0207E0B8.h"
#include "unk_0208C098.h"
@ -234,12 +237,12 @@ void ov13_02224500(UnkStruct_ov13_022213F0 *param0)
static void ov13_0222453C(UnkStruct_ov13_022213F0 *param0)
{
SpriteResourceCapacities v0 = { 18, 6, 6, 6, 0, 0 };
SpriteSystem *v1 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v1 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
param0->unk_1FB0 = SpriteManager_New(v1);
param0->spriteMan = SpriteManager_New(v1);
SpriteSystem_InitSprites(v1, param0->unk_1FB0, 38 + 5);
SpriteSystem_InitManagerWithCapacities(v1, param0->unk_1FB0, &v0);
SpriteSystem_InitSprites(v1, param0->spriteMan, 38 + 5);
SpriteSystem_InitManagerWithCapacities(v1, param0->spriteMan, &v0);
}
static void ov13_02224588(UnkStruct_ov13_022213F0 *param0)
@ -247,17 +250,17 @@ static void ov13_02224588(UnkStruct_ov13_022213F0 *param0)
SpriteSystem *v0;
u32 v1;
NARC *v2 = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, param0->unk_00->heapID);
v0 = ov16_0223E010(param0->unk_00->unk_08);
v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->unk_1FB0, v2, PokeIconPalettesFileIndex(), FALSE, 3, NNS_G2D_VRAM_TYPE_2DSUB, 45063);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->unk_1FB0, v2, PokeIcon32KCellsFileIndex(), FALSE, 45063);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->unk_1FB0, v2, PokeIcon32KAnimationFileIndex(), FALSE, 45063);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->spriteMan, v2, PokeIconPalettesFileIndex(), FALSE, 3, NNS_G2D_VRAM_TYPE_2DSUB, 45063);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->spriteMan, v2, PokeIcon32KCellsFileIndex(), FALSE, 45063);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->spriteMan, v2, PokeIcon32KAnimationFileIndex(), FALSE, 45063);
for (v1 = 0; v1 < 6; v1++) {
if (param0->unk_04[v1].unk_04 != 0) {
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->unk_1FB0, v2, Pokemon_IconSpriteIndex(param0->unk_04[v1].unk_00), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->spriteMan, v2, Pokemon_IconSpriteIndex(param0->unk_04[v1].unk_00), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
} else {
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->unk_1FB0, v2, PokeIconSpriteIndex(0, 0, 0), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->spriteMan, v2, PokeIconSpriteIndex(0, 0, 0), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45063 + v1);
}
}
@ -266,31 +269,31 @@ static void ov13_02224588(UnkStruct_ov13_022213F0 *param0)
static void ov13_02224670(UnkStruct_ov13_022213F0 *param0)
{
SpriteSystem *v0 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
NARC *v1 = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PST_GRA, param0->unk_00->heapID);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->unk_1FB0, v1, PokemonSummaryScreen_StatusIconPltt(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45064);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->unk_1FB0, v1, PokemonSummaryScreen_StatusIconCell(), FALSE, 45064);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->unk_1FB0, v1, PokemonSummaryScreen_StatusIconAnim(), FALSE, 45064);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->unk_1FB0, v1, PokemonSummaryScreen_StatusIconChar(), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45069);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->spriteMan, v1, PokemonSummaryScreen_StatusIconPltt(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45064);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->spriteMan, v1, PokemonSummaryScreen_StatusIconCell(), FALSE, 45064);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->spriteMan, v1, PokemonSummaryScreen_StatusIconAnim(), FALSE, 45064);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->spriteMan, v1, PokemonSummaryScreen_StatusIconChar(), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45069);
NARC_dtor(v1);
}
static void ov13_02224720(UnkStruct_ov13_022213F0 *param0)
{
SpriteSystem *v0;
SpriteSystem *spriteSys;
u32 v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
spriteSys = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
sub_0207C9B0(param0->unk_1E4, 3, v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 45065);
sub_0207C9EC(v0, param0->unk_1FB0, 45065, 45065);
TypeIcon_LoadPltt(param0->unk_1E4, PLTTBUF_SUB_OBJ, spriteSys, param0->spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, 45065);
TypeIcon_LoadAnim(spriteSys, param0->spriteMan, 45065, 45065);
for (v1 = 45070; v1 <= 45076; v1++) {
sub_0207C948(v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 0, v1);
TypeIcon_LoadChar(spriteSys, param0->spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, TYPE_NORMAL, v1);
}
sub_0207CAC4(v0, param0->unk_1FB0, NNS_G2D_VRAM_TYPE_2DSUB, 0, 45077);
CategoryIcon_LoadChar(spriteSys, param0->spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, CLASS_PHYSICAL, 45077);
}
static void ov13_02224798(UnkStruct_ov13_022213F0 *param0)
@ -298,29 +301,29 @@ static void ov13_02224798(UnkStruct_ov13_022213F0 *param0)
SpriteSystem *v0;
u32 v1;
NARC *v2 = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PLIST_GRA, param0->unk_00->heapID);
v0 = ov16_0223E010(param0->unk_00->unk_08);
v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->unk_1FB0, v2, sub_02081934(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45066);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->unk_1FB0, v2, sub_02081938(), FALSE, 45066);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->unk_1FB0, v2, sub_0208193C(), FALSE, 45066);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->unk_1FB0, v2, sub_02081930(), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45078);
SpriteSystem_LoadPaletteBufferFromOpenNarc(param0->unk_1E4, PLTTBUF_SUB_OBJ, v0, param0->spriteMan, v2, sub_02081934(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45066);
SpriteSystem_LoadCellResObjFromOpenNarc(v0, param0->spriteMan, v2, sub_02081938(), FALSE, 45066);
SpriteSystem_LoadAnimResObjFromOpenNarc(v0, param0->spriteMan, v2, sub_0208193C(), FALSE, 45066);
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->spriteMan, v2, sub_02081930(), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45078);
NARC_dtor(v2);
}
static void ov13_02224848(UnkStruct_ov13_022213F0 *param0)
{
SpriteSystem *v0 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
SpriteSystem_LoadPaletteBuffer(param0->unk_1E4, 3, v0, param0->unk_1FB0, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 27, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45067);
SpriteSystem_LoadCellResObj(v0, param0->unk_1FB0, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 25, FALSE, 45067);
SpriteSystem_LoadAnimResObj(v0, param0->unk_1FB0, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 24, FALSE, 45067);
SpriteSystem_LoadCharResObj(v0, param0->unk_1FB0, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 26, FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45079);
SpriteSystem_LoadPaletteBuffer(param0->unk_1E4, 3, v0, param0->spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 27, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 45067);
SpriteSystem_LoadCellResObj(v0, param0->spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 25, FALSE, 45067);
SpriteSystem_LoadAnimResObj(v0, param0->spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 24, FALSE, 45067);
SpriteSystem_LoadCharResObj(v0, param0->spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 26, FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 45079);
}
static ManagedSprite *ov13_022248D8(UnkStruct_ov13_022213F0 *param0, u32 param1)
{
SpriteTemplate v0;
SpriteSystem *v1 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v1 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
v0.x = 0;
v0.y = 0;
@ -336,7 +339,7 @@ static ManagedSprite *ov13_022248D8(UnkStruct_ov13_022213F0 *param0, u32 param1)
v0.bgPriority = 1;
v0.vramTransfer = FALSE;
return SpriteSystem_NewSprite(v1, param0->unk_1FB0, &v0);
return SpriteSystem_NewSprite(v1, param0->spriteMan, &v0);
}
static void ov13_02224948(UnkStruct_ov13_022213F0 *param0)
@ -355,14 +358,14 @@ void ov13_02224970(UnkStruct_ov13_022213F0 *param0)
SpriteSystem *v0;
u32 v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
for (v1 = 0; v1 < 38; v1++) {
Sprite_DeleteAndFreeResources(param0->unk_1FB4[v1]);
}
ov13_022255B8(param0);
SpriteSystem_FreeResourcesAndManager(v0, param0->unk_1FB0);
SpriteSystem_FreeResourcesAndManager(v0, param0->spriteMan);
}
static void ov13_022249AC(ManagedSprite *param0, const int param1, const int param2)
@ -384,20 +387,20 @@ static void ov13_022249CC(UnkStruct_ov13_022213F0 *param0)
}
}
static void ov13_02224A0C(UnkStruct_ov13_022213F0 *param0, ManagedSprite *param1, u32 param2, u8 param3)
static void ov13_02224A0C(UnkStruct_ov13_022213F0 *param0, ManagedSprite *param1, u32 param2, u8 moveType)
{
SpriteSystem *v0 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
SpriteSystem_ReplaceCharResObj(v0, param0->unk_1FB0, sub_0207C944(), sub_0207C908(param3), 1, param2);
ManagedSprite_SetExplicitPalette(param1, sub_0207C92C(param3) + 4);
SpriteSystem_ReplaceCharResObj(v0, param0->spriteMan, TypeIcon_GetNARC(), TypeIcon_GetChar(moveType), 1, param2);
ManagedSprite_SetExplicitPalette(param1, TypeIcon_GetPltt(moveType) + 4);
}
static void ov13_02224A5C(UnkStruct_ov13_022213F0 *param0, ManagedSprite *param1, u32 param2)
{
SpriteSystem *v0 = ov16_0223E010(param0->unk_00->unk_08);
SpriteSystem *v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
SpriteSystem_ReplaceCharResObj(v0, param0->unk_1FB0, sub_0207CAC0(), sub_0207CA90(param2), 1, 45077);
ManagedSprite_SetExplicitPalette(param1, sub_0207CAA8(param2) + 4);
SpriteSystem_ReplaceCharResObj(v0, param0->spriteMan, CategoryIcon_GetNARC(), CategoryIcon_GetChar(param2), 1, 45077);
ManagedSprite_SetExplicitPalette(param1, CategoryIcon_GetPltt(param2) + 4);
}
static void ov13_02224AB0(u16 param0, ManagedSprite *param1, const int param2, const int param3)
@ -785,9 +788,9 @@ static void ov13_0222554C(UnkStruct_ov13_022213F0 *param0)
SpriteSystem *v0;
UnkStruct_ov16_0226DC24 *v1;
v0 = ov16_0223E010(param0->unk_00->unk_08);
ov16_0226DB7C(v0, param0->unk_1FB0, param0->unk_1E4, param0->unk_00->heapID, 45080, 45068, 45068, 45068);
v1 = ov16_0226DC24(v0, param0->unk_1FB0, param0->unk_00->heapID, 45080, 45068, 45068, 45068, 0, 1);
v0 = BattleSystem_GetSpriteSystem(param0->unk_00->unk_08);
ov16_0226DB7C(v0, param0->spriteMan, param0->unk_1E4, param0->unk_00->heapID, 45080, 45068, 45068, 45068);
v1 = ov16_0226DC24(v0, param0->spriteMan, param0->unk_00->heapID, 45080, 45068, 45068, 45068, 0, 1);
SetBattleSubMenuCursorSprites(param0->unk_2084, v1);
}
@ -795,7 +798,7 @@ static void ov13_0222554C(UnkStruct_ov13_022213F0 *param0)
static void ov13_022255B8(UnkStruct_ov13_022213F0 *param0)
{
ov16_0226DCA8(GetBattleSubMenuCursorSprites(param0->unk_2084));
ov16_0226DBFC(param0->unk_1FB0, 45080, 45068, 45068, 45068);
ov16_0226DBFC(param0->spriteMan, 45080, 45068, 45068, 45068);
}
static const GridMenuCursorPosition Unk_ov13_02229464[] = {

View File

@ -74,7 +74,7 @@ void ov13_02227BDC(BattleBag *param0)
static void ov13_02227C08(BattleBag *param0)
{
SpriteResourceCapacities v0 = { 8, 8, 3, 3, 0, 0 };
SpriteSystem *v1 = ov16_0223E010(param0->context->battleSystem);
SpriteSystem *v1 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
param0->spriteManager = SpriteManager_New(v1);
@ -87,7 +87,7 @@ static void ov13_02227C54(BattleBag *param0)
SpriteSystem *v0;
u32 v1;
NARC *v2 = NARC_ctor(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, param0->context->heapID);
v0 = ov16_0223E010(param0->context->battleSystem);
v0 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
for (v1 = 0; v1 < 6; v1++) {
SpriteSystem_LoadCharResObjFromOpenNarc(v0, param0->spriteManager, v2, Item_FileID(1, 1), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 46263 + v1);
@ -101,7 +101,7 @@ static void ov13_02227C54(BattleBag *param0)
static void ov13_02227D10(BattleBag *param0, u16 param1, u32 param2)
{
SpriteSystem *v0 = ov16_0223E010(param0->context->battleSystem);
SpriteSystem *v0 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
SpriteSystem_ReplaceCharResObj(v0, param0->spriteManager, 16, Item_FileID(param1, 1), 0, param2);
}
@ -113,7 +113,7 @@ static void ov13_02227D48(BattleBag *param0, u16 param1, u16 param2, u32 param3)
static ManagedSprite *ov13_02227D78(BattleBag *param0, u32 param1)
{
SpriteTemplate v0;
SpriteSystem *v1 = ov16_0223E010(param0->context->battleSystem);
SpriteSystem *v1 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
v0.x = 0;
v0.y = 0;
@ -146,7 +146,7 @@ void ov13_02227E08(BattleBag *param0)
SpriteSystem *v0;
u32 v1;
v0 = ov16_0223E010(param0->context->battleSystem);
v0 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
for (v1 = 0; v1 < 6; v1++) {
Sprite_DeleteAndFreeResources(param0->unk_310[v1]);
@ -227,7 +227,7 @@ static void ov13_02227F7C(BattleBag *param0)
SpriteSystem *v0;
UnkStruct_ov16_0226DC24 *v1;
v0 = ov16_0223E010(param0->context->battleSystem);
v0 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
ov16_0226DB7C(v0, param0->spriteManager, param0->palette, param0->context->heapID, 46270, 46270, 46265, 46265);
v1 = ov16_0226DC24(v0, param0->spriteManager, param0->context->heapID, 46270, 46270, 46265, 46265, 0, 1);
@ -300,7 +300,7 @@ static void ov13_02228070(BattleBag *param0)
SpriteSystem *v0;
UnkStruct_ov16_0226DEEC *v1;
v0 = ov16_0223E010(param0->context->battleSystem);
v0 = BattleSystem_GetSpriteSystem(param0->context->battleSystem);
ov16_0226DE44(v0, param0->spriteManager, param0->context->heapID, param0->palette, 46269, 46269, 46264, 46264);
param0->unk_38 = ov16_0226DEEC(v0, param0->spriteManager, param0->context->heapID, 46269, 46269, 46264, 46264, 0, 0);

View File

@ -22,8 +22,8 @@
#include "sys_task.h"
#include "sys_task_manager.h"
#include "text.h"
#include "type_icon.h"
#include "unk_0200C440.h"
#include "unk_0207C908.h"
typedef struct {
u16 unk_00;
@ -33,12 +33,6 @@ typedef struct {
UnkStruct_ov19_021DA9E0 *unk_08;
} UnkStruct_ov19_021DAE2C;
u32 sub_0207C908(int param0);
u32 sub_0207C920(void);
u32 sub_0207C924(void);
u32 sub_0207C928(void);
u8 sub_0207C92C(int param0);
enum NarcID sub_0207C944(void);
void Window_PutRectToTilemap(Window *param0, u32 param1, u32 param2);
static void ov19_021DAB44(UnkStruct_ov19_021DA9E0 *param0);
static void ov19_021DAC4C(UnkStruct_ov19_021DA9E0 *param0);
@ -76,7 +70,7 @@ BOOL ov19_021DA92C(UnkStruct_ov19_021DA9E0 *param0, UnkStruct_ov19_021D61B0 *par
param0->unk_30 = NULL;
param0->unk_44 = MessageLoader_GetNewStrbuf(param5, 21);
param0->unk_48 = MessageLoader_GetNewStrbuf(param5, 22);
param0->unk_34 = Graphics_GetCellBank(sub_0207C944(), sub_0207C924(), 1, &(param0->unk_38), HEAP_ID_10);
param0->unk_34 = Graphics_GetCellBank(TypeIcon_GetNARC(), TypeIcon_GetCell(), 1, &(param0->unk_38), HEAP_ID_10);
for (v0 = 0; v0 < 2; v0++) {
param0->unk_3C[v0] = NULL;
@ -214,10 +208,10 @@ static void ov19_021DAB44(UnkStruct_ov19_021DA9E0 *param0)
enum NarcID v2;
u32 v3, v4;
v2 = sub_0207C944();
v3 = sub_0207C908(2);
v2 = TypeIcon_GetNARC();
v3 = TypeIcon_GetChar(2);
Graphics_LoadPalette(v2, sub_0207C920(), 1, 10 * 0x20, 0x20 * 3, HEAP_ID_10);
Graphics_LoadPalette(v2, TypeIcon_GetPlttSrc(), 1, 10 * 0x20, 0x20 * 3, HEAP_ID_10);
for (v4 = 0; v4 < 2; v4++) {
NNS_G2dInitImageProxy(&v0);
@ -408,25 +402,25 @@ static void ov19_021DAE60(Window *param0, UnkStruct_ov19_021DA9E0 *param1, u32 p
VecFx32 v2;
u32 v3, v4;
v3 = sub_0207C944();
v4 = sub_0207C908(param1->unk_10->pcMonPreview.type1);
v3 = TypeIcon_GetNARC();
v4 = TypeIcon_GetChar(param1->unk_10->pcMonPreview.type1);
Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->pcMonPreview.type1), 0, 1504 * 0x20, 0, 1, HEAP_ID_10);
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type1), 0, 1504 * 0x20, 0, 1, HEAP_ID_10);
v2 = *Sprite_GetPosition(param1->unk_3C[0]);
v2.y = (176 + (16 * param3)) << FX32_SHIFT;
Sprite_SetPosition(param1->unk_3C[0], &v2);
Sprite_SetExplicitPalette(param1->unk_3C[0], 10 + sub_0207C92C(param1->unk_10->pcMonPreview.type1));
Sprite_SetExplicitPalette(param1->unk_3C[0], 10 + TypeIcon_GetPltt(param1->unk_10->pcMonPreview.type1));
Sprite_SetDrawFlag(param1->unk_3C[0], 1);
if (param1->unk_10->pcMonPreview.type1 != param1->unk_10->pcMonPreview.type2) {
Graphics_LoadObjectTiles(sub_0207C944(), sub_0207C908(param1->unk_10->pcMonPreview.type2), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_10);
Graphics_LoadObjectTiles(TypeIcon_GetNARC(), TypeIcon_GetChar(param1->unk_10->pcMonPreview.type2), 0, (1504 + 8) * 0x20, 0, 1, HEAP_ID_10);
v2.x += (36 << FX32_SHIFT);
Sprite_SetPosition(param1->unk_3C[1], &v2);
Sprite_SetExplicitPalette(param1->unk_3C[1], 10 + sub_0207C92C(param1->unk_10->pcMonPreview.type2));
Sprite_SetExplicitPalette(param1->unk_3C[1], 10 + TypeIcon_GetPltt(param1->unk_10->pcMonPreview.type2));
Sprite_SetDrawFlag(param1->unk_3C[1], 1);
} else {
Sprite_SetDrawFlag(param1->unk_3C[1], 0);

View File

@ -72,11 +72,11 @@
#include "touch_screen.h"
#include "touch_screen_actions.h"
#include "trainer_info.h"
#include "type_icon.h"
#include "unk_0202419C.h"
#include "unk_02024220.h"
#include "unk_020366A0.h"
#include "unk_020393C8.h"
#include "unk_0207C908.h"
#include "vram_transfer.h"
typedef struct {
@ -2419,7 +2419,7 @@ static void ov70_0225F95C(SysTask *param0, void *param1)
}
{
Graphics_LoadPalette(sub_0207C944(), sub_0207C920(), 4, 11 * 32, 3 * 32, v0->unk_156);
Graphics_LoadPalette(TypeIcon_GetNARC(), TypeIcon_GetPlttSrc(), 4, 11 * 32, 3 * 32, v0->unk_156);
}
SysTask_Done(param0);
@ -2618,14 +2618,14 @@ static void ov70_0225FDA0(UnkStruct_ov70_0225F350 *param0, UnkStruct_ov70_0225FA
if (v0 != 0) {
v2 = ov66_022316E8(v0);
v3 = LoadMemberFromNARC(sub_0207C944(), sub_0207C908(v2), 1, param3, 1);
v3 = LoadMemberFromNARC(TypeIcon_GetNARC(), TypeIcon_GetChar(v2), 1, param3, 1);
NNS_G2dGetUnpackedCharacterData(v3, &v4);
Bg_LoadTiles(param2->unk_00, Unk_ov70_0226D5CC[3], v4->pRawData, 4 * 2 * 32, Unk_ov70_0226D590[v1]);
Heap_FreeToHeap(v3);
Bg_CopyToTilemapRect(param2->unk_00, Unk_ov70_0226D5CC[3], 26, 2 + (2 * v1), 4, 2, Unk_ov70_0226D624[v1], 0, 0, 4, 2);
Bg_ChangeTilemapRectPalette(param2->unk_00, Unk_ov70_0226D5CC[3], 26, 2 + (2 * v1), 4, 2, 11 + sub_0207C92C(v2));
Bg_ChangeTilemapRectPalette(param2->unk_00, Unk_ov70_0226D5CC[3], 26, 2 + (2 * v1), 4, 2, 11 + TypeIcon_GetPltt(v2));
Bg_ScheduleTilemapTransfer(param2->unk_00, Unk_ov70_0226D5CC[3]);
}
}

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "generated/pokemon_types.h"
#include "struct_defs/struct_0207CB08.h"
#include "overlay084/struct_ov84_0223B5A0.h"
@ -12,7 +14,7 @@
#include "move_table.h"
#include "sprite.h"
#include "sprite_system.h"
#include "unk_0207C908.h"
#include "type_icon.h"
#include "vram_transfer.h"
static void ov84_02240424(UnkStruct_ov84_0223B5A0 *param0);
@ -232,13 +234,13 @@ static void ov84_022404C0(UnkStruct_ov84_0223B5A0 *param0)
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 36, FALSE, NNS_G2D_VRAM_TYPE_2DSUB, 49406);
SpriteSystem_LoadCharResObj(param0->unk_D8, param0->unk_DC, 62, 4, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49408);
SpriteSystem_LoadCharResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(0, 1), FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 49407);
sub_0207C948(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 49409);
sub_0207CAC4(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 49410);
TypeIcon_LoadChar(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, TYPE_NORMAL, 49409);
CategoryIcon_LoadChar(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 49410);
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, v1, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 49401);
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 20, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 49402);
SpriteSystem_LoadPlttResObj(param0->unk_D8, param0->unk_DC, 16, Item_FileID(0, 2), 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 49404);
SpriteSystem_LoadPlttResObj(param0->unk_D8, param0->unk_DC, 62, 10, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 49405);
sub_0207C97C(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 49406);
TypeIcon_LoadPlttSrc(param0->unk_D8, param0->unk_DC, NNS_G2D_VRAM_TYPE_2DMAIN, 49406);
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 37, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 49403);
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 1, FALSE, 49401);
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 24, FALSE, 49402);
@ -256,7 +258,7 @@ static void ov84_022404C0(UnkStruct_ov84_0223B5A0 *param0)
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_D8, param0->unk_DC, param0->unk_D4, 34, FALSE, 49406);
SpriteSystem_LoadAnimResObj(param0->unk_D8, param0->unk_DC, 16, Item_IconNANRFile(), FALSE, 49407);
SpriteSystem_LoadAnimResObj(param0->unk_D8, param0->unk_DC, 62, 6, FALSE, 49408);
sub_0207C9EC(param0->unk_D8, param0->unk_DC, 49409, 49409);
TypeIcon_LoadAnim(param0->unk_D8, param0->unk_DC, 49409, 49409);
}
static void ov84_02240950(UnkStruct_ov84_0223B5A0 *param0)
@ -443,10 +445,10 @@ void ov84_02240D5C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u8 param2)
v1 = MoveTable_LoadParam(v0, MOVEATTRIBUTE_TYPE);
v2 = MoveTable_LoadParam(v0, MOVEATTRIBUTE_CLASS);
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, sub_0207C944(), sub_0207C908(v1), 1, 49409);
ManagedSprite_SetExplicitPalette(param0->unk_E0[10], sub_0207C92C(v1) + 6);
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, sub_0207CAC0(), sub_0207CA90(v2), 1, 49410);
ManagedSprite_SetExplicitPalette(param0->unk_E0[11], sub_0207CAA8(v2) + 6);
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, TypeIcon_GetNARC(), TypeIcon_GetChar(v1), 1, 49409);
ManagedSprite_SetExplicitPalette(param0->unk_E0[10], TypeIcon_GetPltt(v1) + 6);
SpriteSystem_ReplaceCharResObj(param0->unk_D8, param0->unk_DC, CategoryIcon_GetNARC(), CategoryIcon_GetChar(v2), 1, 49410);
ManagedSprite_SetExplicitPalette(param0->unk_E0[11], CategoryIcon_GetPltt(v2) + 6);
}
void ov84_02240E24(UnkStruct_ov84_0223B5A0 *param0, s16 param1, s16 param2)

View File

@ -3,6 +3,8 @@
#include <nitro.h>
#include <string.h>
#include "generated/pokemon_types.h"
#include "struct_defs/struct_020997B8.h"
#include "struct_defs/struct_02099F80.h"
@ -32,7 +34,7 @@
#include "string_template.h"
#include "system.h"
#include "text.h"
#include "unk_0207C908.h"
#include "type_icon.h"
#include "unk_0208C098.h"
#include "unk_02094EDC.h"
#include "vram_transfer.h"
@ -1326,19 +1328,19 @@ static void ov91_021D2110(UnkStruct_ov91_021D0ED8 *param0, NARC *param1)
SpriteSystem_LoadCharResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 2, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 47274);
for (v0 = 47276; v0 <= 47282; v0++) {
sub_0207C948(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, 0, v0);
TypeIcon_LoadChar(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, TYPE_NORMAL, v0);
}
sub_0207CAC4(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 47275);
CategoryIcon_LoadChar(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, 0, 47275);
SpriteSystem_LoadPlttResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 9, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 47272);
sub_0207C97C(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, 47273);
TypeIcon_LoadPlttSrc(param0->unk_110, param0->unk_114, NNS_G2D_VRAM_TYPE_2DMAIN, 47273);
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 4, FALSE, 47272);
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 7, FALSE, 47273);
SpriteSystem_LoadCellResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 1, FALSE, 47274);
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 3, FALSE, 47272);
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 6, FALSE, 47273);
SpriteSystem_LoadAnimResObjFromOpenNarc(param0->unk_110, param0->unk_114, param1, 0, FALSE, 47274);
sub_0207C9EC(param0->unk_110, param0->unk_114, 47275, 47275);
TypeIcon_LoadAnim(param0->unk_110, param0->unk_114, 47275, 47275);
}
static void ov91_021D22A0(UnkStruct_ov91_021D0ED8 *param0, u16 param1, u16 param2)
@ -1351,8 +1353,8 @@ static void ov91_021D22A0(UnkStruct_ov91_021D0ED8 *param0, u16 param1, u16 param
v0 = MoveTable_LoadParam(param1, MOVEATTRIBUTE_CONTEST_TYPE) + 18;
}
SpriteSystem_ReplaceCharResObj(param0->unk_110, param0->unk_114, sub_0207C944(), sub_0207C908(v0), 1, 47276 + param2);
ManagedSprite_SetExplicitPalette(param0->unk_118[6 + param2], sub_0207C92C(v0) + 2);
SpriteSystem_ReplaceCharResObj(param0->unk_110, param0->unk_114, TypeIcon_GetNARC(), TypeIcon_GetChar(v0), 1, 47276 + param2);
ManagedSprite_SetExplicitPalette(param0->unk_118[6 + param2], TypeIcon_GetPltt(v0) + 2);
}
static void ov91_021D2314(UnkStruct_ov91_021D0ED8 *param0)
@ -1429,8 +1431,8 @@ static void ov91_021D24B4(UnkStruct_ov91_021D0ED8 *param0, u16 param1)
{
u32 v0 = MoveTable_LoadParam(param1, MOVEATTRIBUTE_CLASS);
SpriteSystem_ReplaceCharResObj(param0->unk_110, param0->unk_114, sub_0207CAC0(), sub_0207CA90(v0), 1, 47275);
ManagedSprite_SetExplicitPalette(param0->unk_118[5], sub_0207CAA8(v0) + 2);
SpriteSystem_ReplaceCharResObj(param0->unk_110, param0->unk_114, CategoryIcon_GetNARC(), CategoryIcon_GetChar(v0), 1, 47275);
ManagedSprite_SetExplicitPalette(param0->unk_118[5], CategoryIcon_GetPltt(v0) + 2);
}
static void ov91_021D2508(UnkStruct_ov91_021D0ED8 *param0, NARC *param1)

View File

@ -3,7 +3,6 @@
#include "constants/heap.h"
#include "constants/narc.h"
#include "constants/palette.h"
#include "generated/string_padding_mode.h"
#include "overlay097/ov97_0222D04C.h"

View File

@ -293,13 +293,6 @@ static void WaitAndApplyBlendStepToPaletteBuffer(PaletteData *paletteData, u16 b
ApplyBlendStepToPaletteBuffer(paletteData, bufferID, paletteSize);
}
#define BlendColor(source, target, fraction) ((source) + (((target) - (source)) * (fraction) >> 4))
#define ColorR(source) ((source) & 0x1F)
#define ColorG(source) (((source) >> 5) & 0x1F)
#define ColorB(source) (((source) >> 10) & 0x1F)
#define RGB(r, g, b) (((b) << 10) | ((g) << 5) | (r))
static void ApplyBlendStepToPaletteBuffer(PaletteData *paletteData, u16 bufferID, u16 paletteSize)
{
for (u32 i = 0; i < SLOTS_PER_PALETTE; i++) {

194
src/type_icon.c Normal file
View File

@ -0,0 +1,194 @@
#include "type_icon.h"
#include <nitro.h>
#include <string.h>
#include "constants/narc.h"
#include "generated/move_classes.h"
#include "pch/global_pch.h"
#include "palette.h"
#include "sprite_system.h"
ALIGN_4 static const u32 sMoveTypeIconIndex[] = {
0xEA, // 0 to 17 are pokemon types
0xE1,
0xE3,
0xEB,
0xE5,
0xED,
0xE7,
0xE4,
0xEE,
0xEC,
0xE2,
0xF1,
0xE9,
0xDE,
0xDF,
0xE6,
0xDD,
0xE0,
0xF0, // 18 to 22 are contest types
0xDB,
0xDC,
0xE8,
0xEF
};
ALIGN_4 static const u8 sMoveTypeIconPaletteIndex[] = {
0x0, // 0 to 17 are pokemon types
0x0,
0x1,
0x1,
0x0,
0x0,
0x2,
0x1,
0x0,
0x2,
0x0,
0x1,
0x2,
0x0,
0x1,
0x1,
0x2,
0x0,
0x0, // 18 to 22 are contest types
0x1,
0x1,
0x2,
0x0
};
ALIGN_4 static const u32 sMoveCategoryIconIndex[] = {
0xF4,
0xF6,
0xF5
};
ALIGN_4 static const u8 sMoveCategoryIconPaletteIndex[] = {
0x0,
0x1,
0x0
};
u32 TypeIcon_GetChar(enum PokemonType moveType)
{
GF_ASSERT(moveType < NELEMS(sMoveTypeIconIndex));
return sMoveTypeIconIndex[moveType];
}
u32 TypeIcon_GetPlttSrc(void)
{
return 74;
}
u32 TypeIcon_GetCell(void)
{
return 242;
}
u32 TypeIcon_GetAnim(void)
{
return 243;
}
u8 TypeIcon_GetPltt(enum PokemonType moveType)
{
GF_ASSERT(moveType < NELEMS(sMoveTypeIconPaletteIndex));
return sMoveTypeIconPaletteIndex[moveType];
}
enum NarcID TypeIcon_GetNARC(void)
{
return NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ;
}
void TypeIcon_LoadChar(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, enum PokemonType moveType, u32 resourceID)
{
SpriteSystem_LoadCharResObj(spriteSys, spriteMan, TypeIcon_GetNARC(), TypeIcon_GetChar(moveType), TRUE, vramType, resourceID);
}
void TypeIcon_LoadPlttSrc(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, u32 resourceID)
{
SpriteSystem_LoadPlttResObj(spriteSys, spriteMan, TypeIcon_GetNARC(), TypeIcon_GetPlttSrc(), FALSE, PLTT_3, vramType, resourceID);
}
void TypeIcon_LoadPltt(PaletteData *paletteData, enum PaletteBufferID bufferID, SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, u32 resourceID)
{
SpriteSystem_LoadPaletteBuffer(paletteData, bufferID, spriteSys, spriteMan, TypeIcon_GetNARC(), TypeIcon_GetPlttSrc(), FALSE, PLTT_3, vramType, resourceID);
}
void TypeIcon_LoadAnim(SpriteSystem *spriteSys, SpriteManager *spriteMan, u32 cellResourceID, u32 animResourceID)
{
SpriteSystem_LoadCellResObj(spriteSys, spriteMan, TypeIcon_GetNARC(), TypeIcon_GetCell(), TRUE, cellResourceID);
SpriteSystem_LoadAnimResObj(spriteSys, spriteMan, TypeIcon_GetNARC(), TypeIcon_GetAnim(), TRUE, animResourceID);
}
void TypeIcon_UnloadChar(SpriteManager *spriteMan, u32 resourceID)
{
SpriteManager_UnloadCharObjById(spriteMan, resourceID);
}
void TypeIcon_UnloadPlttSrc(SpriteManager *spriteMan, u32 resourceID)
{
SpriteManager_UnloadPlttObjById(spriteMan, resourceID);
}
void TypeIcon_UnloadAnim(SpriteManager *spriteMan, u32 cellResourceID, u32 animResourceID)
{
SpriteManager_UnloadCellObjById(spriteMan, cellResourceID);
SpriteManager_UnloadAnimObjById(spriteMan, animResourceID);
}
ManagedSprite *TypeIcon_NewTypeIconSprite(SpriteSystem *spriteSys, SpriteManager *spriteMan, enum PokemonType moveType, const SpriteTemplate *spriteTemplate)
{
ManagedSprite *managedSprite;
SpriteTemplate template;
template = *spriteTemplate;
template.plttIdx = TypeIcon_GetPltt(moveType);
managedSprite = SpriteSystem_NewSprite(spriteSys, spriteMan, &template);
return managedSprite;
}
void TypeIcon_DeleteSprite(ManagedSprite *managedSprite)
{
Sprite_DeleteAndFreeResources(managedSprite);
}
u32 CategoryIcon_GetChar(enum MoveClass moveCat)
{
GF_ASSERT(moveCat < NELEMS(sMoveCategoryIconIndex));
return sMoveCategoryIconIndex[moveCat];
}
u8 CategoryIcon_GetPltt(enum MoveClass moveCat)
{
GF_ASSERT(moveCat < NELEMS(sMoveCategoryIconPaletteIndex));
return sMoveCategoryIconPaletteIndex[moveCat];
}
enum NarcID CategoryIcon_GetNARC(void)
{
return NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ;
}
void CategoryIcon_LoadChar(SpriteSystem *spriteSys, SpriteManager *spriteMan, NNS_G2D_VRAM_TYPE vramType, enum MoveClass moveCat, u32 resourceID)
{
SpriteSystem_LoadCharResObj(spriteSys, spriteMan, CategoryIcon_GetNARC(), CategoryIcon_GetChar(moveCat), TRUE, vramType, resourceID);
}
void CategoryIcon_UnloadChar(SpriteManager *spriteMan, u32 resourceID)
{
SpriteManager_UnloadCharObjById(spriteMan, resourceID);
}
void CategoryIcon_DeleteSprite(ManagedSprite *managedSprite)
{
Sprite_DeleteAndFreeResources(managedSprite);
}

View File

@ -1,191 +0,0 @@
#include "unk_0207C908.h"
#include <nitro.h>
#include <string.h>
#include "constants/narc.h"
#include "palette.h"
#include "sprite_system.h"
__attribute__((aligned(4))) static const u32 Unk_020F0AF0[] = {
0xEA,
0xE1,
0xE3,
0xEB,
0xE5,
0xED,
0xE7,
0xE4,
0xEE,
0xEC,
0xE2,
0xF1,
0xE9,
0xDE,
0xDF,
0xE6,
0xDD,
0xE0,
0xF0,
0xDB,
0xDC,
0xE8,
0xEF
};
__attribute__((aligned(4))) static const u8 Unk_020F0B4C[] = {
0x0,
0x0,
0x1,
0x1,
0x0,
0x0,
0x2,
0x1,
0x0,
0x2,
0x0,
0x1,
0x2,
0x0,
0x1,
0x1,
0x2,
0x0,
0x0,
0x1,
0x1,
0x2,
0x0
};
__attribute__((aligned(4))) static const u32 Unk_020F0AE4[] = {
0xF4,
0xF6,
0xF5
};
__attribute__((aligned(4))) static const u8 Unk_020F0AE0[] = {
0x0,
0x1,
0x0
};
u32 sub_0207C908(int param0)
{
GF_ASSERT(param0 < NELEMS(Unk_020F0AF0));
return Unk_020F0AF0[param0];
}
u32 sub_0207C920(void)
{
return 74;
}
u32 sub_0207C924(void)
{
return 242;
}
u32 sub_0207C928(void)
{
return 243;
}
u8 sub_0207C92C(int param0)
{
GF_ASSERT(param0 < NELEMS(Unk_020F0B4C));
return Unk_020F0B4C[param0];
}
enum NarcID sub_0207C944(void)
{
return NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ;
}
void sub_0207C948(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, int param3, u32 param4)
{
SpriteSystem_LoadCharResObj(param0, param1, sub_0207C944(), sub_0207C908(param3), TRUE, param2, param4);
}
void sub_0207C97C(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, u32 param3)
{
SpriteSystem_LoadPlttResObj(param0, param1, sub_0207C944(), sub_0207C920(), FALSE, 3, param2, param3);
}
void sub_0207C9B0(PaletteData *param0, int param1, SpriteSystem *param2, SpriteManager *param3, NNS_G2D_VRAM_TYPE param4, u32 param5)
{
SpriteSystem_LoadPaletteBuffer(param0, param1, param2, param3, sub_0207C944(), sub_0207C920(), FALSE, 3, param4, param5);
}
void sub_0207C9EC(SpriteSystem *param0, SpriteManager *param1, u32 param2, u32 param3)
{
SpriteSystem_LoadCellResObj(param0, param1, sub_0207C944(), sub_0207C924(), TRUE, param2);
SpriteSystem_LoadAnimResObj(param0, param1, sub_0207C944(), sub_0207C928(), TRUE, param3);
}
void sub_0207CA34(SpriteManager *param0, u32 param1)
{
SpriteManager_UnloadCharObjById(param0, param1);
}
void sub_0207CA3C(SpriteManager *param0, u32 param1)
{
SpriteManager_UnloadPlttObjById(param0, param1);
}
void sub_0207CA44(SpriteManager *param0, u32 param1, u32 param2)
{
SpriteManager_UnloadCellObjById(param0, param1);
SpriteManager_UnloadAnimObjById(param0, param2);
}
ManagedSprite *sub_0207CA58(SpriteSystem *param0, SpriteManager *param1, int param2, const SpriteTemplate *param3)
{
ManagedSprite *v0;
SpriteTemplate v1;
v1 = *param3;
v1.plttIdx = sub_0207C92C(param2);
v0 = SpriteSystem_NewSprite(param0, param1, &v1);
return v0;
}
void sub_0207CA88(ManagedSprite *param0)
{
Sprite_DeleteAndFreeResources(param0);
}
u32 sub_0207CA90(int param0)
{
GF_ASSERT(param0 < NELEMS(Unk_020F0AE4));
return Unk_020F0AE4[param0];
}
u8 sub_0207CAA8(int param0)
{
GF_ASSERT(param0 < NELEMS(Unk_020F0AE0));
return Unk_020F0AE0[param0];
}
enum NarcID sub_0207CAC0(void)
{
return NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ;
}
void sub_0207CAC4(SpriteSystem *param0, SpriteManager *param1, NNS_G2D_VRAM_TYPE param2, int param3, u32 param4)
{
SpriteSystem_LoadCharResObj(param0, param1, sub_0207CAC0(), sub_0207CA90(param3), TRUE, param2, param4);
}
void sub_0207CAF8(SpriteManager *param0, u32 param1)
{
SpriteManager_UnloadCharObjById(param0, param1);
}
void sub_0207CB00(ManagedSprite *param0)
{
Sprite_DeleteAndFreeResources(param0);
}