fixing merge conflicts

This commit is contained in:
golem galvanize
2018-12-07 14:47:20 -05:00
1142 changed files with 128897 additions and 161276 deletions

View File

@@ -9,7 +9,8 @@ struct ApprenticeTrainer
u16 otId;
u8 facilityClass;
u16 species[APPRENTICE_SPECIES_COUNT];
u8 rest[14];
u8 id;
u16 easyChatWords[6];
};
extern const struct ApprenticeTrainer gApprentices[];

View File

@@ -498,10 +498,12 @@ struct BattleStruct
struct BattleTv tv;
u8 notSureWhatFieldLol[0x28];
u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_298[8];
u8 field_2A0;
u8 field_2A1;
u8 field_2A2;
s8 arenaMindPoints[2];
s8 arenaSkillPoints[2];
u16 arenaStartHp[2];
u8 arenaLostPlayerMons; // Bits for party member, lost as in referee's decision, not by fainting.
u8 arenaLostOpponentMons;
u8 alreadyStatusedMoveAttempt; // As bits for battlers; For example when using Thunder Wave on an already paralyzed pokemon.
};
#define GET_MOVE_TYPE(move, typeArg) \
@@ -561,6 +563,7 @@ struct BattleScripting
u8 field_23;
u8 windowsType; // 0 - normal, 1 - battle arena
u8 multiplayerId;
u8 specialTrainerBattleType;
};
// rom_80A5C6C
@@ -657,10 +660,22 @@ struct MonSpritesGfx
u8 field_F4[0x80];
u8 *barFontGfx;
void *field_178;
void *field_17C;
u16 *field_17C;
};
// All battle variables are declared in battle_main.c
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG3_X;
extern u16 gBattle_BG3_Y;
extern u16 gBattle_WIN0H;
extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1H;
extern u16 gBattle_WIN1V;
extern u8 gDisplayedStringBattle[300];
extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];

View File

@@ -1,12 +1,15 @@
#ifndef GUARD_BATTLE_ANIM_H
#define GUARD_BATTLE_ANIM_H
#include "battle.h"
#include "constants/battle_anim.h"
enum
{
BG_ANIM_SCREEN_SIZE,
BG_ANIM_AREA_OVERFLOW_MODE,
BG_ANIM2,
BG_ANIM3,
BG_ANIM_CHAR_BASE_BLOCK,
BG_ANIM_PRIORITY,
BG_ANIM_5,
BG_ANIM_6
@@ -24,16 +27,13 @@ struct UnknownAnimStruct2
struct BattleAnimBackground
{
void *image;
void *palette;
void *tilemap;
const u32 *image;
const u32 *palette;
const u32 *tilemap;
};
#define ANIM_ARGS_COUNT 8
#define PAN_SIDE_PLAYER -64
#define PAN_SIDE_OPPONENT 63
extern void (*gAnimScriptCallback)(void);
extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
@@ -64,6 +64,7 @@ s8 BattleAnimAdjustPanning2(s8 pan);
s16 KeepPanInRange(s16 a);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
void sub_80A4720(u16 a, u16 *b, u32 c, u8 d);
void sub_80A477C(bool8);
// battle_anim_80FE840.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
@@ -72,9 +73,35 @@ void HandleIntroSlide(u8 terrainId);
u32 GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_80A5C6C.s
void sub_80A6EEC(struct Sprite *sprite);
void sub_80A68D4(struct Sprite *sprite);
void sub_80A6450(struct Sprite *sprite);
void SetAverageBattlerPositions(u8 battlerId, bool8 a2, s16 *x, s16 *y);
void move_anim_8074EE0(struct Sprite *sprite);
void sub_80A656C(struct Sprite *sprite);
void InitAnimSpritePos(struct Sprite *sprite, u8 a2);
void sub_80A6980(struct Sprite *sprite, bool8 a2);
void StartAnimLinearTranslation(struct Sprite *sprite);
void InitAnimArcTranslation(struct Sprite *sprite);
bool8 TranslateAnimLinear(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void sub_80A8EE4(struct Sprite *sprite);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId);
void sub_80A6FD4(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b);
void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
void sub_80A67BC(struct Sprite *sprite);
void sub_80A66DC(struct Sprite *sprite);
void sub_80A6838(struct Sprite *sprite);
void sub_80A67D8(struct Sprite *sprite);
void sub_80A6864(struct Sprite *sprite, s16 a2);
s16 sub_80A861C(u8 battlerId, u8 a2);
u8 GetBattlerYCoordWithElevation(u8 battlerId);
void WaitAnimForDuration(struct Sprite *sprite);
void sub_80A7938(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void sub_80A6F98(struct Sprite *sprite);
u8 sub_80A8328(u8 battlerId);
void *sub_80A8050(s16 bottom, s16 top);
void sub_80A8048(s16 *bottom, s16 *top, const void *ptr);
void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
@@ -84,9 +111,19 @@ void sub_80A6630(struct Sprite *sprite);
void sub_80A6680(struct Sprite *sprite);
void sub_80A7344(u8 spriteId);
void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void sub_80A6E14(struct Sprite *sprite);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void sub_80A7270(u8 spriteId, u8 objMode);
void sub_80A73A0(u8 spriteId);
u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4);
u8 sub_80A77AC(u8 a1);
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
u8 sub_80A89C8(int, u8, int);
void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32);
void sub_80A6CC0(u32, const void*, u32);
void sub_80A6DAC(bool8);
void sub_80A634C(struct Sprite *);
enum
{
@@ -127,6 +164,56 @@ u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
// battle_anim_utility_funcs.s
void sub_8116EB4(u8);
u32 UnpackSelectedBattleAnimPalettes(s16);
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
extern const struct OamData gUnknown_08524944;
extern const struct OamData gUnknown_08524A8C;
extern const struct OamData gUnknown_08524904;
extern const struct OamData gUnknown_085249C4;
extern const struct OamData gUnknown_0852490C;
extern const struct OamData gUnknown_08524934;
extern const struct OamData gUnknown_08524974;
extern const struct OamData gUnknown_0852499C;
extern const struct OamData gUnknown_085249CC;
extern const struct OamData gUnknown_08524914;
extern const struct OamData gUnknown_0852496C;
extern const struct OamData gUnknown_08524A34;
extern const struct OamData gUnknown_08524A3C;
extern const struct OamData gUnknown_08524A94;
extern const struct OamData gUnknown_08524954;
extern const struct OamData gUnknown_08524AE4;
extern const struct OamData gUnknown_085249D4;
extern const struct OamData gUnknown_08524A9C;
extern const struct OamData gUnknown_08524ADC;
extern const struct OamData gUnknown_08524B14;
extern const struct OamData gUnknown_08524A54;
extern const struct OamData gUnknown_08524A14;
extern const struct OamData gUnknown_08524A1C;
extern const struct OamData gUnknown_085249BC;
extern const struct OamData gUnknown_08524AF4;
extern const struct OamData gUnknown_085249DC;
extern const struct OamData gUnknown_08524AFC;
extern const struct OamData gUnknown_08524B1C;
extern const struct OamData gUnknown_08524A04;
extern const struct OamData gUnknown_08524A2C;
extern const struct OamData gUnknown_08524AEC;
extern const struct OamData gUnknown_08524964;
extern const struct OamData gUnknown_08524B24;
extern const struct OamData gUnknown_08524A24;
extern const struct OamData gUnknown_08524AC4;
extern const struct OamData gUnknown_08524A84;
extern const struct OamData gUnknown_08524A64;
extern const struct OamData gUnknown_0852491C;
extern const struct OamData gUnknown_0852495C;
extern const struct OamData gUnknown_0852497C;
extern const struct OamData gUnknown_085249F4;
extern const struct OamData gUnknown_0852493C;
extern const struct OamData gUnknown_08524A5C;
extern const struct OamData gUnknown_08524A74;
#endif // GUARD_BATTLE_ANIM_H

14
include/battle_arena.h Normal file
View File

@@ -0,0 +1,14 @@
#ifndef GUARD_BATTLE_ARENA_H
#define GUARD_BATTLE_ARENA_H
void CallBattleArenaFunction(void);
u8 BattleArena_ShowJudgmentWindow(u8 *state);
void BattleArena_InitPoints(void);
void BattleArena_AddMindPoints(u8 battler);
void BattleArena_AddSkillPoints(u8 battler);
void BattleArena_DeductMindPoints(u8 battler, u16 stringId);
void sub_81A586C(u8 battler);
void sub_81A5BF8(void);
void sub_81A5D44(void);
#endif //GUARD_BATTLE_ARENA_H

View File

@@ -1,8 +1,6 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H
#include "battle.h"
enum
{
REQUEST_ALL_BATTLE,
@@ -177,6 +175,7 @@ enum
CONTROLLER_CMDS_COUNT
};
extern struct UnusedControllerStruct gUnknown_02022D0C;
// general functions
void HandleLinkBattleSetup(void);

View File

@@ -3,7 +3,7 @@
extern u32 gUnknown_0203CD70;
s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId);
s32 TrainerIdToDomeTournamentId(u16 trainerId);
#endif // GUARD_BATTLE_DOME_H

View File

@@ -1,7 +1,12 @@
#ifndef GUARD_BATTLE_FACTORY_H
#define GUARD_BATTLE_FACTORY_H
void DoBattleFactorySelectScreen(void);
void DoBattleFactorySwapScreen(void);
void CallBattleFactoryFunction(void);
bool8 sub_81A6BF4(void);
u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1);
void FillFactoryBrainParty(void);
u8 sub_81A6F70(u8 battleMode, u8 lvlMode);
u32 GetAiScriptsInBattleFactory(void);
void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 moveArg, u8 moveSlot);
#endif // GUARD_BATTLE_FACTORY_H

View File

@@ -0,0 +1,7 @@
#ifndef GUARD_BATTLE_FACTORY_SCREEN_H
#define GUARD_BATTLE_FACTORY_SCREEN_H
void DoBattleFactorySelectScreen(void);
void DoBattleFactorySwapScreen(void);
#endif // GUARD_BATTLE_FACTORY_SCREEN_H

View File

@@ -1,6 +0,0 @@
#ifndef GUARD_BATTLE_FRONTIER_1_H
#define GUARD_BATTLE_FRONTIER_1_H
bool32 sub_8196034(void);
#endif // GUARD_BATTLE_FRONTIER_1_H

View File

@@ -1,18 +0,0 @@
#ifndef GUARD_BATTLE_FRONTIER_2_H
#define GUARD_BATTLE_FRONTIER_2_H
#define FRONTIER_BEFORE_TEXT 0
#define FRONTIER_WIN_TEXT 1
#define FRONTIER_LOSE_TEXT 2
void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
void sub_81A8934(u8);
void sub_81A895C(void);
u16 sub_81A89A0(u8);
void sub_81A8AF8(void);
bool8 InBattlePike(void);
void sub_81AA078(u16*, u8);
void sub_81A4C30(void);
bool8 sub_81A6BF4(void);
#endif // GUARD_BATTLE_FRONTIER_2_H

View File

@@ -1,8 +1,6 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
#include "battle_controllers.h"
enum
{
HP_CURRENT,

9
include/battle_pike.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef GUARD_BATTLE_PIKE_H
#define GUARD_BATTLE_PIKE_H
void CallBattlePikeFunction(void);
u8 GetBattlePikeWildMonHeaderId(void);
bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate);
bool8 InBattlePike(void);
#endif // GUARD_BATTLE_PIKE_H

24
include/battle_pyramid.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef GUARD_BATTLE_PYRAMID_H
#define GUARD_BATTLE_PYRAMID_H
void CallBattlePyramidFunction(void);
u16 LocalIdToPyramidTrainerId(u8 localId);
bool8 GetBattlePyramidTrainerFlag(u8 eventId);
void sub_81A9B04(void);
void GenerateBattlePyramidWildMon(void);
u8 GetPyramidRunMultiplier(void);
u8 InBattlePyramid(void);
bool8 InBattlePyramid_(void);
void sub_81A9E90(void);
void sub_81A9EC8(void);
void CopyPyramidTrainerSpeechBefore(u16 trainerId);
void CopyPyramidTrainerWinSpeech(u16 trainerId);
void CopyPyramidTrainerLoseSpeech(u16 trainerId);
u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerId);
void sub_81AA078(u16 *mapArg, u8 arg1);
void sub_81AA1D8(void);
void sub_81AA2F8(void);
u8 sub_81AAA40(void);
u16 GetBattlePyramidPickupItemId(void);
#endif // GUARD_BATTLE_PYRAMID_H

View File

@@ -34,6 +34,7 @@ struct PyramidBagCursorData
extern struct PyramidBagResources *gPyramidBagResources;
extern struct PyramidBagCursorData gPyramidBagCursorData;
void sub_81C4EEC(void);
void CB2_PyramidBagMenuFromStartMenu(void);
void sub_81C4F84(void);
void sub_81C5924(void);

View File

@@ -206,7 +206,7 @@ extern const u8 BattleScript_BerryFocusEnergyEnd2[];
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
extern const u8 BattleScript_ArenaTurnBeginning[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_ArenaDoJudgment[];
extern const u8 BattleScript_82DAA0B[];
extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
extern const u8 BattleScript_PrintPlayerForfeited[];

View File

@@ -1,23 +1,6 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
enum
{
TRAINER_BATTLE_NORMAL,
TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC,
TRAINER_BATTLE_CONTINUE_SCRIPT,
TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT,
TRAINER_BATTLE_DOUBLE,
TRAINER_BATTLE_REMATCH,
TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE,
TRAINER_BATTLE_REMATCH_DOUBLE,
TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC,
TRAINER_BATTLE_9,
TRAINER_BATTLE_SET_TRAINER_A,
TRAINER_BATTLE_SET_TRAINER_B,
TRAINER_BATTLE_12,
};
#define REMATCHES_COUNT 5
#define REMATCH_TABLE_ENTRIES 78
#define REMATCH_WALLY_ENTRY 64

View File

@@ -3,35 +3,25 @@
struct RSBattleTowerRecord
{
/*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
/*0x01*/ u8 trainerClass;
/*0x00*/ u8 lvlMode; // 0 = level 50, 1 = level 100
/*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ struct {
u16 easyChat[6];
} greeting;
/*0x10*/ u16 greeting[6];
/*0x1C*/ struct UnknownPokemonStruct party[3];
/*0xA0*/ u32 checksum;
/*0xA4*/ u16 unk_11c8;
};
union BattleTowerRecord
{
struct RSBattleTowerRecord ruby_sapphire;
struct EmeraldBattleTowerRecord emerald;
};
#define FRONTIER_TRAINER_NAME_LENGTH 7
struct BattleFrontierTrainer
{
u32 facilityClass;
u8 trainerName[FRONTIER_TRAINER_NAME_LENGTH + 1];
u8 facilityClass;
u8 filler1[3];
u8 trainerName[PLAYER_NAME_LENGTH + 1];
u16 speechBefore[6];
u16 speechWin[6];
u16 speechLose[6];
const u16 *btMonPool;
const u16 *monSets;
};
struct FacilityMon
@@ -43,17 +33,49 @@ struct FacilityMon
u8 nature;
};
extern const u8 gTowerMaleFacilityClasses[30];
extern const u8 gTowerMaleTrainerGfxIds[30];
extern const u8 gTowerFemaleFacilityClasses[20];
extern const u8 gTowerFemaleTrainerGfxIds[20];
extern u16 gUnknown_03006298[];
extern const struct BattleFrontierTrainer *gFacilityTrainers;
extern const struct FacilityMon *gFacilityTrainerMons;
u16 sub_8164FCC(u8, u8);
void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
void sub_81628A0(union BattleTowerRecord *);
void sub_8162614(u16 trainerId, u8);
void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
void GetEreaderTrainerName(u8 *dest);
void sub_8161F74(void);
u16 sub_8162548(u8 challengeNum, u8 battleNum);
void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId);
void SetEReaderTrainerGfxId(void);
u8 GetBattleFacilityTrainerGfxId(u16 trainerId);
void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm);
u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
u8 GetFrontierOpponentClass(u16 trainerId);
void GetFrontierTrainerName(u8 *dst, u16 trainerId);
void FillFrontierTrainerParty(u8 monsCount);
void FillFrontierTrainersParties(u8 monsCount);
u16 RandomizeFacilityTrainerMonSet(u16 trainerId);
void FrontierSpeechToString(const u16 *words);
void DoSpecialTrainerBattle(void);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record);
void CalcRubyBattleTowerChecksum(struct RSBattleTowerRecord *record);
u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode);
u8 GetEreaderTrainerFrontSpriteId(void);
u8 GetEreaderTrainerClassId(void);
void GetEreaderTrainerName(u8 *dst);
void ValidateEReaderTrainer(void);
void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer);
void CopyEReaderTrainerGreeting(void);
void sub_81653CC(void);
bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst);
bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst);
void CalcApprenticeChecksum(struct Apprentice *apprentice);
void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId);
u8 SetFacilityPtrsGetLevel(void);
u8 GetFrontierEnemyMonLevel(u8 lvlMode);
s32 GetHighestLevelInPlayerParty(void);
u8 sub_81660B8(u8 facilityClass);
bool32 ValidateBattleTowerRecord(u8 recordId); // unused
void sub_8166188(void);
#endif //GUARD_BATTLE_TOWER_H

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
#define BERRY_NONE 0
enum
{
BERRY_FIRMNESS_UNKNOWN,
@@ -21,6 +23,17 @@ enum
FLAVOR_COUNT
};
enum
{
BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat.
BERRY_STAGE_PLANTED,
BERRY_STAGE_SPROUTED,
BERRY_STAGE_TALLER,
BERRY_STAGE_FLOWERING,
BERRY_STAGE_BERRIES,
BERRY_STAGE_SPARKLING = 0xFF,
};
#define NUM_BERRIES 44
extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[];
@@ -29,7 +42,6 @@ extern const u8 *const gBerryTreePaletteSlotTablePointers[];
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
struct BerryTree *GetBerryTreeInfo(u8 id);
@@ -37,28 +49,20 @@ bool32 EventObjectInteractionWaterBerryTree(void);
bool8 IsPlayerFacingPlantedBerryTree(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
bool32 BerryTreeGrow(struct BerryTree *tree);
void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
u16 BerryTypeToItemId(u16 berry);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
u8 GetNumStagesWateredByBerryTreeId(u8 id);
u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
u8 CalcBerryYield(struct BerryTree *tree);
u8 GetBerryCountByBerryTreeId(u8 id);
u16 GetStageDurationByBerryType(u8);
void Bag_ChooseBerry(void);
void EventObjectInteractionGetBerryTreeData(void);
void EventObjectInteractionPlantBerryTree(void);
void EventObjectInteractionPickBerryTree(void);
void EventObjectInteractionRemoveBerryTree(void);
u8 PlayerHasBerries(void);
bool8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
extern const struct Berry gBerries[];

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_BERRY_BLENDER_H
#define GUARD_BERRY_BLENDER_H
extern u8 gInGameOpponentsNo;
void DoBerryBlending(void);
u16 GetBlenderArrowPosition(void);
void ShowBerryBlenderRecordWindow(void);

View File

@@ -70,14 +70,14 @@ void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 unused, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, s16 palette1, s16 tileOffset);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
u16 GetBgMetricTextMode(u8 bg, u8 whichMetric);
u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric);
u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight);
void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2);
void CopyTileMapEntry(const u16 *src, u16 *dest, s32 palette1, s32 tileOffset, s32 palette2);
u32 GetBgType(u8 bg);
bool32 IsInvalidBg32(u8 bg);
bool32 IsTileMapOutsideWram(u8 bg);

View File

@@ -1,6 +1,13 @@
#ifndef GUARD_BLIT_H
#define GUARD_BLIT_H
struct Bitmap
{
u8* pixels;
u32 width:16;
u32 height:16;
};
void BlitBitmapRect4BitWithoutColorKey(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height);
void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height, u8 colorKey);
void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);

View File

@@ -7,312 +7,316 @@
// Particle ids.
#define ANIM_SPRITES_START 10000
#define ANIM_TAG_BONE (ANIM_SPRITES_START + 0)
#define ANIM_TAG_SPARK (ANIM_SPRITES_START + 1)
#define ANIM_TAG_PENCIL (ANIM_SPRITES_START + 2)
#define ANIM_TAG_AIR_WAVE (ANIM_SPRITES_START + 3)
#define ANIM_TAG_004 (ANIM_SPRITES_START + 4) // ?
#define ANIM_TAG_SWORD (ANIM_SPRITES_START + 5)
#define ANIM_TAG_SEED (ANIM_SPRITES_START + 6)
#define ANIM_TAG_007 (ANIM_SPRITES_START + 7) // ?
#define ANIM_TAG_008 (ANIM_SPRITES_START + 8) // ?
#define ANIM_TAG_GUST (ANIM_SPRITES_START + 9)
#define ANIM_TAG_ICE_CUBE (ANIM_SPRITES_START + 10)
#define ANIM_TAG_SPARK_2 (ANIM_SPRITES_START + 11)
#define ANIM_TAG_012 (ANIM_SPRITES_START + 12) // ?
#define ANIM_TAG_YELLOW_BALL (ANIM_SPRITES_START + 13)
#define ANIM_TAG_LOCK_ON (ANIM_SPRITES_START + 14)
#define ANIM_TAG_TIED_BAG (ANIM_SPRITES_START + 15)
#define ANIM_TAG_BLACK_SMOKE (ANIM_SPRITES_START + 16)
#define ANIM_TAG_BLACK_BALL (ANIM_SPRITES_START + 17)
#define ANIM_TAG_CONVERSION (ANIM_SPRITES_START + 18)
#define ANIM_TAG_019 (ANIM_SPRITES_START + 19) // ?
#define ANIM_TAG_HORN_HIT (ANIM_SPRITES_START + 20)
#define ANIM_TAG_021 (ANIM_SPRITES_START + 21) // ?
#define ANIM_TAG_022 (ANIM_SPRITES_START + 22) // ?
#define ANIM_TAG_023 (ANIM_SPRITES_START + 23) // ?
#define ANIM_TAG_024 (ANIM_SPRITES_START + 24) // ?
#define ANIM_TAG_025 (ANIM_SPRITES_START + 25) // ?
#define ANIM_TAG_026 (ANIM_SPRITES_START + 26) // ?
#define ANIM_TAG_GLARE (ANIM_SPRITES_START + 27)
#define ANIM_TAG_028 (ANIM_SPRITES_START + 28) // ?
#define ANIM_TAG_SMALL_EMBER (ANIM_SPRITES_START + 29)
#define ANIM_TAG_GRAY_SMOKE (ANIM_SPRITES_START + 30)
#define ANIM_TAG_BLUE_STAR (ANIM_SPRITES_START + 31)
#define ANIM_TAG_032 (ANIM_SPRITES_START + 32) // ?
#define ANIM_TAG_FIRE (ANIM_SPRITES_START + 33)
#define ANIM_TAG_034 (ANIM_SPRITES_START + 34) // ?
#define ANIM_TAG_035 (ANIM_SPRITES_START + 35) // ?
#define ANIM_TAG_036 (ANIM_SPRITES_START + 36) // ?
#define ANIM_TAG_LIGHTNING (ANIM_SPRITES_START + 37)
#define ANIM_TAG_038 (ANIM_SPRITES_START + 38) // ?
#define ANIM_TAG_CLAW_SLASH (ANIM_SPRITES_START + 39)
#define ANIM_TAG_040 (ANIM_SPRITES_START + 40) // ?
#define ANIM_TAG_041 (ANIM_SPRITES_START + 41) // ?
#define ANIM_TAG_042 (ANIM_SPRITES_START + 42) // ?
#define ANIM_TAG_ICE_CHUNK (ANIM_SPRITES_START + 43)
#define ANIM_TAG_044 (ANIM_SPRITES_START + 44) // ?
#define ANIM_TAG_PINK_HEART (ANIM_SPRITES_START + 45) // ?
#define ANIM_TAG_046 (ANIM_SPRITES_START + 46) // ?
#define ANIM_TAG_047 (ANIM_SPRITES_START + 47) // ?
#define ANIM_TAG_048 (ANIM_SPRITES_START + 48) // ?
#define ANIM_TAG_SPARKLE (ANIM_SPRITES_START + 49)
#define ANIM_TAG_050 (ANIM_SPRITES_START + 50) // ?
#define ANIM_TAG_051 (ANIM_SPRITES_START + 51)
#define ANIM_TAG_052 (ANIM_SPRITES_START + 52)
#define ANIM_TAG_053 (ANIM_SPRITES_START + 53)
#define ANIM_TAG_054 (ANIM_SPRITES_START + 54)
#define ANIM_TAG_RED_FIST (ANIM_SPRITES_START + 55)
#define ANIM_TAG_056 (ANIM_SPRITES_START + 56)
#define ANIM_TAG_057 (ANIM_SPRITES_START + 57)
#define ANIM_TAG_058 (ANIM_SPRITES_START + 58)
#define ANIM_TAG_059 (ANIM_SPRITES_START + 59)
#define ANIM_TAG_060 (ANIM_SPRITES_START + 60)
#define ANIM_TAG_061 (ANIM_SPRITES_START + 61)
#define ANIM_TAG_062 (ANIM_SPRITES_START + 62)
#define ANIM_TAG_063 (ANIM_SPRITES_START + 63)
#define ANIM_TAG_064 (ANIM_SPRITES_START + 64)
#define ANIM_TAG_065 (ANIM_SPRITES_START + 65)
#define ANIM_TAG_066 (ANIM_SPRITES_START + 66)
#define ANIM_TAG_067 (ANIM_SPRITES_START + 67)
#define ANIM_TAG_068 (ANIM_SPRITES_START + 68)
#define ANIM_TAG_069 (ANIM_SPRITES_START + 69)
#define ANIM_TAG_070 (ANIM_SPRITES_START + 70)
#define ANIM_TAG_071 (ANIM_SPRITES_START + 71)
#define ANIM_TAG_MUSIC_NOTES2 (ANIM_SPRITES_START + 72)
#define ANIM_TAG_DUCK (ANIM_SPRITES_START + 73)
#define ANIM_TAG_074 (ANIM_SPRITES_START + 74)
#define ANIM_TAG_075 (ANIM_SPRITES_START + 75)
#define ANIM_TAG_076 (ANIM_SPRITES_START + 76)
#define ANIM_TAG_077 (ANIM_SPRITES_START + 77)
#define ANIM_TAG_078 (ANIM_SPRITES_START + 78)
#define ANIM_TAG_079 (ANIM_SPRITES_START + 79)
#define ANIM_TAG_080 (ANIM_SPRITES_START + 80)
#define ANIM_TAG_081 (ANIM_SPRITES_START + 81)
#define ANIM_TAG_082 (ANIM_SPRITES_START + 82)
#define ANIM_TAG_083 (ANIM_SPRITES_START + 83)
#define ANIM_TAG_084 (ANIM_SPRITES_START + 84)
#define ANIM_TAG_085 (ANIM_SPRITES_START + 85)
#define ANIM_TAG_086 (ANIM_SPRITES_START + 86)
#define ANIM_TAG_ANGER (ANIM_SPRITES_START + 87)
#define ANIM_TAG_088 (ANIM_SPRITES_START + 88)
#define ANIM_TAG_089 (ANIM_SPRITES_START + 89)
#define ANIM_TAG_090 (ANIM_SPRITES_START + 90)
#define ANIM_TAG_091 (ANIM_SPRITES_START + 91)
#define ANIM_TAG_092 (ANIM_SPRITES_START + 92)
#define ANIM_TAG_093 (ANIM_SPRITES_START + 93)
#define ANIM_TAG_094 (ANIM_SPRITES_START + 94)
#define ANIM_TAG_095 (ANIM_SPRITES_START + 95)
#define ANIM_TAG_096 (ANIM_SPRITES_START + 96)
#define ANIM_TAG_BENT_SPOON (ANIM_SPRITES_START + 97)
#define ANIM_TAG_098 (ANIM_SPRITES_START + 98)
#define ANIM_TAG_MILK_BOTTLE (ANIM_SPRITES_START + 99)
#define ANIM_TAG_100 (ANIM_SPRITES_START + 100)
#define ANIM_TAG_101 (ANIM_SPRITES_START + 101)
#define ANIM_TAG_102 (ANIM_SPRITES_START + 102)
#define ANIM_TAG_103 (ANIM_SPRITES_START + 103)
#define ANIM_TAG_104 (ANIM_SPRITES_START + 104)
#define ANIM_TAG_105 (ANIM_SPRITES_START + 105)
#define ANIM_TAG_106 (ANIM_SPRITES_START + 106)
#define ANIM_TAG_107 (ANIM_SPRITES_START + 107)
#define ANIM_TAG_108 (ANIM_SPRITES_START + 108)
#define ANIM_TAG_109 (ANIM_SPRITES_START + 109)
#define ANIM_TAG_110 (ANIM_SPRITES_START + 110)
#define ANIM_TAG_111 (ANIM_SPRITES_START + 111)
#define ANIM_TAG_112 (ANIM_SPRITES_START + 112)
#define ANIM_TAG_113 (ANIM_SPRITES_START + 113)
#define ANIM_TAG_114 (ANIM_SPRITES_START + 114)
#define ANIM_TAG_115 (ANIM_SPRITES_START + 115)
#define ANIM_TAG_116 (ANIM_SPRITES_START + 116)
#define ANIM_TAG_117 (ANIM_SPRITES_START + 117)
#define ANIM_TAG_118 (ANIM_SPRITES_START + 118)
#define ANIM_TAG_119 (ANIM_SPRITES_START + 119)
#define ANIM_TAG_ITEM_BAG2 (ANIM_SPRITES_START + 120)
#define ANIM_TAG_121 (ANIM_SPRITES_START + 121)
#define ANIM_TAG_122 (ANIM_SPRITES_START + 122)
#define ANIM_TAG_123 (ANIM_SPRITES_START + 123)
#define ANIM_TAG_124 (ANIM_SPRITES_START + 124)
#define ANIM_TAG_125 (ANIM_SPRITES_START + 125)
#define ANIM_TAG_126 (ANIM_SPRITES_START + 126)
#define ANIM_TAG_127 (ANIM_SPRITES_START + 127)
#define ANIM_TAG_128 (ANIM_SPRITES_START + 128)
#define ANIM_TAG_129 (ANIM_SPRITES_START + 129)
#define ANIM_TAG_130 (ANIM_SPRITES_START + 130)
#define ANIM_TAG_131 (ANIM_SPRITES_START + 131)
#define ANIM_TAG_132 (ANIM_SPRITES_START + 132)
#define ANIM_TAG_133 (ANIM_SPRITES_START + 133)
#define ANIM_TAG_134 (ANIM_SPRITES_START + 134)
#define ANIM_TAG_135 (ANIM_SPRITES_START + 135)
#define ANIM_TAG_136 (ANIM_SPRITES_START + 136)
#define ANIM_TAG_137 (ANIM_SPRITES_START + 137)
#define ANIM_TAG_138 (ANIM_SPRITES_START + 138)
#define ANIM_TAG_139 (ANIM_SPRITES_START + 139)
#define ANIM_TAG_140 (ANIM_SPRITES_START + 140)
#define ANIM_TAG_141 (ANIM_SPRITES_START + 141)
#define ANIM_TAG_142 (ANIM_SPRITES_START + 142)
#define ANIM_TAG_143 (ANIM_SPRITES_START + 143)
#define ANIM_TAG_144 (ANIM_SPRITES_START + 144)
#define ANIM_TAG_145 (ANIM_SPRITES_START + 145)
#define ANIM_TAG_146 (ANIM_SPRITES_START + 146)
#define ANIM_TAG_147 (ANIM_SPRITES_START + 147)
#define ANIM_TAG_148 (ANIM_SPRITES_START + 148)
#define ANIM_TAG_149 (ANIM_SPRITES_START + 149)
#define ANIM_TAG_POISON_BUBBLE (ANIM_SPRITES_START + 150)
#define ANIM_TAG_TOXIC_BUBBLE (ANIM_SPRITES_START + 151)
#define ANIM_TAG_152 (ANIM_SPRITES_START + 152)
#define ANIM_TAG_153 (ANIM_SPRITES_START + 153)
#define ANIM_TAG_154 (ANIM_SPRITES_START + 154)
#define ANIM_TAG_155 (ANIM_SPRITES_START + 155)
#define ANIM_TAG_156 (ANIM_SPRITES_START + 156)
#define ANIM_TAG_157 (ANIM_SPRITES_START + 157)
#define ANIM_TAG_158 (ANIM_SPRITES_START + 158)
#define ANIM_TAG_159 (ANIM_SPRITES_START + 159)
#define ANIM_TAG_160 (ANIM_SPRITES_START + 160)
#define ANIM_TAG_161 (ANIM_SPRITES_START + 161)
#define ANIM_TAG_162 (ANIM_SPRITES_START + 162)
#define ANIM_TAG_163 (ANIM_SPRITES_START + 163)
#define ANIM_TAG_164 (ANIM_SPRITES_START + 164)
#define ANIM_TAG_165 (ANIM_SPRITES_START + 165)
#define ANIM_TAG_166 (ANIM_SPRITES_START + 166)
#define ANIM_TAG_167 (ANIM_SPRITES_START + 167)
#define ANIM_TAG_168 (ANIM_SPRITES_START + 168)
#define ANIM_TAG_169 (ANIM_SPRITES_START + 169)
#define ANIM_TAG_170 (ANIM_SPRITES_START + 170)
#define ANIM_TAG_171 (ANIM_SPRITES_START + 171)
#define ANIM_TAG_172 (ANIM_SPRITES_START + 172)
#define ANIM_TAG_173 (ANIM_SPRITES_START + 173)
#define ANIM_TAG_174 (ANIM_SPRITES_START + 174)
#define ANIM_TAG_175 (ANIM_SPRITES_START + 175)
#define ANIM_TAG_176 (ANIM_SPRITES_START + 176)
#define ANIM_TAG_177 (ANIM_SPRITES_START + 177)
#define ANIM_TAG_178 (ANIM_SPRITES_START + 178)
#define ANIM_TAG_179 (ANIM_SPRITES_START + 179)
#define ANIM_TAG_WEB_THREAD (ANIM_SPRITES_START + 180)
#define ANIM_TAG_SPIDER_WEB (ANIM_SPRITES_START + 181)
#define ANIM_TAG_182 (ANIM_SPRITES_START + 182)
#define ANIM_TAG_183 (ANIM_SPRITES_START + 183)
#define ANIM_TAG_184 (ANIM_SPRITES_START + 184)
#define ANIM_TAG_185 (ANIM_SPRITES_START + 185)
#define ANIM_TAG_186 (ANIM_SPRITES_START + 186)
#define ANIM_TAG_EYE (ANIM_SPRITES_START + 187)
#define ANIM_TAG_188 (ANIM_SPRITES_START + 188)
#define ANIM_TAG_189 (ANIM_SPRITES_START + 189)
#define ANIM_TAG_OPENING_EYE (ANIM_SPRITES_START + 190)
#define ANIM_TAG_191 (ANIM_SPRITES_START + 191)
#define ANIM_TAG_192 (ANIM_SPRITES_START + 192)
#define ANIM_TAG_193 (ANIM_SPRITES_START + 193)
#define ANIM_TAG_MOON (ANIM_SPRITES_START + 194)
#define ANIM_TAG_GREEN_SPARKLE (ANIM_SPRITES_START + 195)
#define ANIM_TAG_196 (ANIM_SPRITES_START + 196)
#define ANIM_TAG_197 (ANIM_SPRITES_START + 197)
#define ANIM_TAG_EXPLOSION (ANIM_SPRITES_START + 198)
#define ANIM_TAG_NAIL (ANIM_SPRITES_START + 199)
#define ANIM_TAG_200 (ANIM_SPRITES_START + 200)
#define ANIM_TAG_201 (ANIM_SPRITES_START + 201)
#define ANIM_TAG_BREAKING_EGG (ANIM_SPRITES_START + 202)
#define ANIM_TAG_203 (ANIM_SPRITES_START + 203)
#define ANIM_TAG_204 (ANIM_SPRITES_START + 204)
#define ANIM_TAG_BELL (ANIM_SPRITES_START + 205)
#define ANIM_TAG_MUSIC_NOTES (ANIM_SPRITES_START + 206)
#define ANIM_TAG_207 (ANIM_SPRITES_START + 207)
#define ANIM_TAG_208 (ANIM_SPRITES_START + 208)
#define ANIM_TAG_209 (ANIM_SPRITES_START + 209)
#define ANIM_TAG_PURPLE_HEART (ANIM_SPRITES_START + 210)
#define ANIM_TAG_211 (ANIM_SPRITES_START + 211)
#define ANIM_TAG_212 (ANIM_SPRITES_START + 212)
#define ANIM_TAG_213 (ANIM_SPRITES_START + 213)
#define ANIM_TAG_214 (ANIM_SPRITES_START + 214)
#define ANIM_TAG_215 (ANIM_SPRITES_START + 215)
#define ANIM_TAG_216 (ANIM_SPRITES_START + 216)
#define ANIM_TAG_217 (ANIM_SPRITES_START + 217)
#define ANIM_TAG_218 (ANIM_SPRITES_START + 218)
#define ANIM_TAG_219 (ANIM_SPRITES_START + 219)
#define ANIM_TAG_ANGEL (ANIM_SPRITES_START + 220)
#define ANIM_TAG_EVIL_ANGEL (ANIM_SPRITES_START + 221)
#define ANIM_TAG_222 (ANIM_SPRITES_START + 222)
#define ANIM_TAG_223 (ANIM_SPRITES_START + 223)
#define ANIM_TAG_ITEM_BAG (ANIM_SPRITES_START + 224)
#define ANIM_TAG_225 (ANIM_SPRITES_START + 225)
#define ANIM_TAG_226 (ANIM_SPRITES_START + 226)
#define ANIM_TAG_227 (ANIM_SPRITES_START + 227)
#define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228)
#define ANIM_TAG_229 (ANIM_SPRITES_START + 229)
#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230)
#define ANIM_TAG_231 (ANIM_SPRITES_START + 231)
#define ANIM_TAG_232 (ANIM_SPRITES_START + 232)
#define ANIM_TAG_233 (ANIM_SPRITES_START + 233)
#define ANIM_TAG_234 (ANIM_SPRITES_START + 234)
#define ANIM_TAG_235 (ANIM_SPRITES_START + 235)
#define ANIM_TAG_236 (ANIM_SPRITES_START + 236)
#define ANIM_TAG_237 (ANIM_SPRITES_START + 237)
#define ANIM_TAG_238 (ANIM_SPRITES_START + 238)
#define ANIM_TAG_239 (ANIM_SPRITES_START + 239)
#define ANIM_TAG_240 (ANIM_SPRITES_START + 240)
#define ANIM_TAG_GREEN_STAR (ANIM_SPRITES_START + 241)
#define ANIM_TAG_242 (ANIM_SPRITES_START + 242)
#define ANIM_TAG_243 (ANIM_SPRITES_START + 243)
#define ANIM_TAG_244 (ANIM_SPRITES_START + 244)
#define ANIM_TAG_245 (ANIM_SPRITES_START + 245)
#define ANIM_TAG_246 (ANIM_SPRITES_START + 246)
#define ANIM_TAG_HAND (ANIM_SPRITES_START + 247)
#define ANIM_TAG_248 (ANIM_SPRITES_START + 248)
#define ANIM_TAG_249 (ANIM_SPRITES_START + 249)
#define ANIM_TAG_X_SIGN (ANIM_SPRITES_START + 250)
#define ANIM_TAG_251 (ANIM_SPRITES_START + 251)
#define ANIM_TAG_252 (ANIM_SPRITES_START + 252)
#define ANIM_TAG_253 (ANIM_SPRITES_START + 253)
#define ANIM_TAG_254 (ANIM_SPRITES_START + 254)
#define ANIM_TAG_255 (ANIM_SPRITES_START + 255)
#define ANIM_TAG_256 (ANIM_SPRITES_START + 256)
#define ANIM_TAG_257 (ANIM_SPRITES_START + 257)
#define ANIM_TAG_MAGNIFYING_GLASS (ANIM_SPRITES_START + 258)
#define ANIM_TAG_259 (ANIM_SPRITES_START + 259)
#define ANIM_TAG_260 (ANIM_SPRITES_START + 260)
#define ANIM_TAG_261 (ANIM_SPRITES_START + 261)
#define ANIM_TAG_262 (ANIM_SPRITES_START + 262)
#define ANIM_TAG_263 (ANIM_SPRITES_START + 263)
#define ANIM_TAG_264 (ANIM_SPRITES_START + 264)
#define ANIM_TAG_265 (ANIM_SPRITES_START + 265)
#define ANIM_TAG_266 (ANIM_SPRITES_START + 266)
#define ANIM_TAG_267 (ANIM_SPRITES_START + 267)
#define ANIM_TAG_268 (ANIM_SPRITES_START + 268)
#define ANIM_TAG_269 (ANIM_SPRITES_START + 269)
#define ANIM_TAG_270 (ANIM_SPRITES_START + 270)
#define ANIM_TAG_271 (ANIM_SPRITES_START + 271)
#define ANIM_TAG_272 (ANIM_SPRITES_START + 272)
#define ANIM_TAG_273 (ANIM_SPRITES_START + 273)
#define ANIM_TAG_274 (ANIM_SPRITES_START + 274)
#define ANIM_TAG_275 (ANIM_SPRITES_START + 275)
#define ANIM_TAG_276 (ANIM_SPRITES_START + 276)
#define ANIM_TAG_277 (ANIM_SPRITES_START + 277)
#define ANIM_TAG_RECYCLE (ANIM_SPRITES_START + 278)
#define ANIM_TAG_279 (ANIM_SPRITES_START + 279)
#define ANIM_TAG_PROTECT (ANIM_SPRITES_START + 280)
#define ANIM_TAG_281 (ANIM_SPRITES_START + 281)
#define ANIM_TAG_282 (ANIM_SPRITES_START + 282)
#define ANIM_TAG_283 (ANIM_SPRITES_START + 283)
#define ANIM_TAG_284 (ANIM_SPRITES_START + 284)
#define ANIM_TAG_285 (ANIM_SPRITES_START + 285)
#define ANIM_TAG_286 (ANIM_SPRITES_START + 286)
#define ANIM_TAG_287 (ANIM_SPRITES_START + 287)
#define ANIM_TAG_288 (ANIM_SPRITES_START + 288)
#define ANIM_TAG_289 (ANIM_SPRITES_START + 289)
#define ANIM_TAG_290 (ANIM_SPRITES_START + 290)
#define ANIM_TAG_291 (ANIM_SPRITES_START + 291)
#define ANIM_TAG_292 (ANIM_SPRITES_START + 292)
#define ANIM_TAG_293 (ANIM_SPRITES_START + 293)
#define ANIM_TAG_294 (ANIM_SPRITES_START + 294)
#define ANIM_TAG_295 (ANIM_SPRITES_START + 295)
#define ANIM_TAG_296 (ANIM_SPRITES_START + 296)
#define ANIM_TAG_297 (ANIM_SPRITES_START + 297)
#define ANIM_TAG_298 (ANIM_SPRITES_START + 298)
#define ANIM_TAG_BONE (ANIM_SPRITES_START + 0)
#define ANIM_TAG_SPARK (ANIM_SPRITES_START + 1)
#define ANIM_TAG_PENCIL (ANIM_SPRITES_START + 2)
#define ANIM_TAG_AIR_WAVE (ANIM_SPRITES_START + 3)
#define ANIM_TAG_UNUSED_ORB (ANIM_SPRITES_START + 4)
#define ANIM_TAG_SWORD (ANIM_SPRITES_START + 5)
#define ANIM_TAG_SEED (ANIM_SPRITES_START + 6)
#define ANIM_TAG_UNUSED_EXPLOSION (ANIM_SPRITES_START + 7)
#define ANIM_TAG_UNUSED_PINK_ORB (ANIM_SPRITES_START + 8)
#define ANIM_TAG_GUST (ANIM_SPRITES_START + 9)
#define ANIM_TAG_ICE_CUBE (ANIM_SPRITES_START + 10)
#define ANIM_TAG_SPARK_2 (ANIM_SPRITES_START + 11)
#define ANIM_TAG_UNUSED_ORANGE (ANIM_SPRITES_START + 12)
#define ANIM_TAG_YELLOW_BALL (ANIM_SPRITES_START + 13)
#define ANIM_TAG_LOCK_ON (ANIM_SPRITES_START + 14)
#define ANIM_TAG_TIED_BAG (ANIM_SPRITES_START + 15)
#define ANIM_TAG_BLACK_SMOKE (ANIM_SPRITES_START + 16)
#define ANIM_TAG_BLACK_BALL (ANIM_SPRITES_START + 17)
#define ANIM_TAG_CONVERSION (ANIM_SPRITES_START + 18)
#define ANIM_TAG_UNUSED_GLASS (ANIM_SPRITES_START + 19)
#define ANIM_TAG_HORN_HIT (ANIM_SPRITES_START + 20)
#define ANIM_TAG_UNUSED_HIT (ANIM_SPRITES_START + 21)
#define ANIM_TAG_UNUSED_HIT_2 (ANIM_SPRITES_START + 22)
#define ANIM_TAG_UNUSED_BLUE_SHARDS (ANIM_SPRITES_START + 23)
#define ANIM_TAG_UNUSED_CLOSING_EYE (ANIM_SPRITES_START + 24)
#define ANIM_TAG_UNUSED_WAVING_HAND (ANIM_SPRITES_START + 25)
#define ANIM_TAG_UNUSED_HIT_DUPLICATE (ANIM_SPRITES_START + 26)
#define ANIM_TAG_LEER (ANIM_SPRITES_START + 27)
#define ANIM_TAG_UNUSED_BLUE_BURST (ANIM_SPRITES_START + 28)
#define ANIM_TAG_SMALL_EMBER (ANIM_SPRITES_START + 29)
#define ANIM_TAG_GRAY_SMOKE (ANIM_SPRITES_START + 30)
#define ANIM_TAG_BLUE_STAR (ANIM_SPRITES_START + 31)
#define ANIM_TAG_UNUSED_BUBBLE_BURST (ANIM_SPRITES_START + 32)
#define ANIM_TAG_FIRE (ANIM_SPRITES_START + 33)
#define ANIM_TAG_UNUSED_SPINNING_FIRE (ANIM_SPRITES_START + 34)
#define ANIM_TAG_FIRE_PLUME (ANIM_SPRITES_START + 35)
#define ANIM_TAG_UNUSED_LIGHTNING (ANIM_SPRITES_START + 36)
#define ANIM_TAG_LIGHTNING (ANIM_SPRITES_START + 37)
#define ANIM_TAG_UNUSED_CLAW_SLASH (ANIM_SPRITES_START + 38)
#define ANIM_TAG_CLAW_SLASH (ANIM_SPRITES_START + 39)
#define ANIM_TAG_UNUSED_SCRATCH (ANIM_SPRITES_START + 40)
#define ANIM_TAG_UNUSED_SCRATCH_2 (ANIM_SPRITES_START + 41)
#define ANIM_TAG_UNUSED_BUBBLE_BURST_2 (ANIM_SPRITES_START + 42)
#define ANIM_TAG_ICE_CHUNK (ANIM_SPRITES_START + 43)
#define ANIM_TAG_UNUSED_GLASS_2 (ANIM_SPRITES_START + 44)
#define ANIM_TAG_UNUSED_PINK_HEART (ANIM_SPRITES_START + 45)
#define ANIM_TAG_UNUSED_SAP_DRIP (ANIM_SPRITES_START + 46)
#define ANIM_TAG_UNUSED_SAP_DRIP_2 (ANIM_SPRITES_START + 47)
#define ANIM_TAG_SPARKLE_1 (ANIM_SPRITES_START + 48)
#define ANIM_TAG_SPARKLE_2 (ANIM_SPRITES_START + 49)
#define ANIM_TAG_HUMANOID_FOOT (ANIM_SPRITES_START + 50)
#define ANIM_TAG_UNUSED_MONSTER_FOOT (ANIM_SPRITES_START + 51)
#define ANIM_TAG_UNUSED_HUMANOID_HAND (ANIM_SPRITES_START + 52)
#define ANIM_TAG_NOISE_LINE (ANIM_SPRITES_START + 53)
#define ANIM_TAG_UNUSED_YELLOW_UNK (ANIM_SPRITES_START + 54)
#define ANIM_TAG_UNUSED_RED_FIST (ANIM_SPRITES_START + 55)
#define ANIM_TAG_SLAM_HIT (ANIM_SPRITES_START + 56)
#define ANIM_TAG_UNUSED_RING (ANIM_SPRITES_START + 57)
#define ANIM_TAG_ROCKS (ANIM_SPRITES_START + 58)
#define ANIM_TAG_UNUSED_Z (ANIM_SPRITES_START + 59)
#define ANIM_TAG_UNUSED_YELLOW_UNK_2 (ANIM_SPRITES_START + 60)
#define ANIM_TAG_UNUSED_AIR_SLASH (ANIM_SPRITES_START + 61)
#define ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS (ANIM_SPRITES_START + 62)
#define ANIM_TAG_LEAF (ANIM_SPRITES_START + 63)
#define ANIM_TAG_FINGER (ANIM_SPRITES_START + 64)
#define ANIM_TAG_POISON_POWDER (ANIM_SPRITES_START + 65)
#define ANIM_TAG_UNUSED_BROWN_TRIANGLE (ANIM_SPRITES_START + 66)
#define ANIM_TAG_SLEEP_POWDER (ANIM_SPRITES_START + 67)
#define ANIM_TAG_STUN_SPORE (ANIM_SPRITES_START + 68)
#define ANIM_TAG_UNUSED_POWDER (ANIM_SPRITES_START + 69)
#define ANIM_TAG_SPARKLE_3 (ANIM_SPRITES_START + 70)
#define ANIM_TAG_SPARKLE_4 (ANIM_SPRITES_START + 71)
#define ANIM_TAG_MUSIC_NOTES (ANIM_SPRITES_START + 72)
#define ANIM_TAG_DUCK (ANIM_SPRITES_START + 73)
#define ANIM_TAG_MUD_SAND (ANIM_SPRITES_START + 74)
#define ANIM_TAG_ALERT (ANIM_SPRITES_START + 75)
#define ANIM_TAG_UNUSED_BLUE_FLAMES (ANIM_SPRITES_START + 76)
#define ANIM_TAG_UNUSED_BLUE_FLAMES_2 (ANIM_SPRITES_START + 77)
#define ANIM_TAG_UNUSED_SHOCK (ANIM_SPRITES_START + 78)
#define ANIM_TAG_SHOCK (ANIM_SPRITES_START + 79)
#define ANIM_TAG_UNUSED_BELL (ANIM_SPRITES_START + 80)
#define ANIM_TAG_UNUSED_PINK_GLOVE (ANIM_SPRITES_START + 81)
#define ANIM_TAG_UNUSED_BLUE_LINES (ANIM_SPRITES_START + 82)
#define ANIM_TAG_UNUSED_IMPACT (ANIM_SPRITES_START + 83)
#define ANIM_TAG_UNUSED_IMPACT_2 (ANIM_SPRITES_START + 84)
#define ANIM_TAG_UNUSED_RETICLE (ANIM_SPRITES_START + 85)
#define ANIM_TAG_BREATH (ANIM_SPRITES_START + 86)
#define ANIM_TAG_ANGER (ANIM_SPRITES_START + 87)
#define ANIM_TAG_UNUSED_SNOWBALL (ANIM_SPRITES_START + 88)
#define ANIM_TAG_UNUSED_VINE (ANIM_SPRITES_START + 89)
#define ANIM_TAG_UNUSED_SWORD (ANIM_SPRITES_START + 90)
#define ANIM_TAG_UNUSED_CLAPPING (ANIM_SPRITES_START + 91)
#define ANIM_TAG_UNUSED_RED_TUBE (ANIM_SPRITES_START + 92)
#define ANIM_TAG_AMNESIA (ANIM_SPRITES_START + 93)
#define ANIM_TAG_UNUSED_STRING (ANIM_SPRITES_START + 94)
#define ANIM_TAG_UNUSED_PENCIL (ANIM_SPRITES_START + 95)
#define ANIM_TAG_UNUSED_PETAL (ANIM_SPRITES_START + 96)
#define ANIM_TAG_BENT_SPOON (ANIM_SPRITES_START + 97)
#define ANIM_TAG_UNUSED_WEB (ANIM_SPRITES_START + 98)
#define ANIM_TAG_MILK_BOTTLE (ANIM_SPRITES_START + 99)
#define ANIM_TAG_COIN (ANIM_SPRITES_START + 100)
#define ANIM_TAG_UNUSED_CRACKED_EGG (ANIM_SPRITES_START + 101)
#define ANIM_TAG_UNUSED_HATCHED_EGG (ANIM_SPRITES_START + 102)
#define ANIM_TAG_UNUSED_FRESH_EGG (ANIM_SPRITES_START + 103)
#define ANIM_TAG_UNUSED_FANGS (ANIM_SPRITES_START + 104)
#define ANIM_TAG_UNUSED_EXPLOSION_2 (ANIM_SPRITES_START + 105)
#define ANIM_TAG_UNUSED_EXPLOSION_3 (ANIM_SPRITES_START + 106)
#define ANIM_TAG_UNUSED_WATER_DROPLET (ANIM_SPRITES_START + 107)
#define ANIM_TAG_UNUSED_WATER_DROPLET_2 (ANIM_SPRITES_START + 108)
#define ANIM_TAG_UNUSED_SEED (ANIM_SPRITES_START + 109)
#define ANIM_TAG_UNUSED_SPROUT (ANIM_SPRITES_START + 110)
#define ANIM_TAG_UNUSED_RED_WAND (ANIM_SPRITES_START + 111)
#define ANIM_TAG_UNUSED_PURPLE_GREEN_UNK (ANIM_SPRITES_START + 112)
#define ANIM_TAG_UNUSED_WATER_COLUMN (ANIM_SPRITES_START + 113)
#define ANIM_TAG_UNUSED_MUD_UNK (ANIM_SPRITES_START + 114)
#define ANIM_TAG_RAIN_DROPS (ANIM_SPRITES_START + 115)
#define ANIM_TAG_UNUSED_FURY_SWIPES (ANIM_SPRITES_START + 116)
#define ANIM_TAG_UNUSED_VINE_2 (ANIM_SPRITES_START + 117)
#define ANIM_TAG_UNUSED_TEETH (ANIM_SPRITES_START + 118)
#define ANIM_TAG_UNUSED_BONE (ANIM_SPRITES_START + 119)
#define ANIM_TAG_UNUSED_WHITE_BAG (ANIM_SPRITES_START + 120)
#define ANIM_TAG_UNUSED_UNKNOWN (ANIM_SPRITES_START + 121)
#define ANIM_TAG_UNUSED_PURPLE_CORAL (ANIM_SPRITES_START + 122)
#define ANIM_TAG_UNUSED_PURPLE_DROPLET (ANIM_SPRITES_START + 123)
#define ANIM_TAG_UNUSED_SHOCK_2 (ANIM_SPRITES_START + 124)
#define ANIM_TAG_UNUSED_CLOSING_EYE_2 (ANIM_SPRITES_START + 125)
#define ANIM_TAG_UNUSED_METAL_BALL (ANIM_SPRITES_START + 126)
#define ANIM_TAG_UNUSED_MONSTER_DOLL (ANIM_SPRITES_START + 127)
#define ANIM_TAG_UNUSED_WHIRLWIND (ANIM_SPRITES_START + 128)
#define ANIM_TAG_UNUSED_WHIRLWIND_2 (ANIM_SPRITES_START + 129)
#define ANIM_TAG_UNUSED_EXPLOSION_4 (ANIM_SPRITES_START + 130)
#define ANIM_TAG_UNUSED_EXPLOSION_5 (ANIM_SPRITES_START + 131)
#define ANIM_TAG_UNUSED_TONGUE (ANIM_SPRITES_START + 132)
#define ANIM_TAG_UNUSED_SMOKE (ANIM_SPRITES_START + 133)
#define ANIM_TAG_UNUSED_SMOKE_2 (ANIM_SPRITES_START + 134)
#define ANIM_TAG_IMPACT (ANIM_SPRITES_START + 135)
#define ANIM_TAG_CIRCLE_IMPACT (ANIM_SPRITES_START + 136)
#define ANIM_TAG_SCRATCH (ANIM_SPRITES_START + 137)
#define ANIM_TAG_CUT (ANIM_SPRITES_START + 138)
#define ANIM_TAG_SHARP_TEETH (ANIM_SPRITES_START + 139)
#define ANIM_TAG_RAINBOW_RINGS (ANIM_SPRITES_START + 140)
#define ANIM_TAG_ICE_CRYSTALS (ANIM_SPRITES_START + 141)
#define ANIM_TAG_ICE_SPIKES (ANIM_SPRITES_START + 142)
#define ANIM_TAG_HANDS_AND_FEET (ANIM_SPRITES_START + 143)
#define ANIM_TAG_MIST_CLOUD (ANIM_SPRITES_START + 144)
#define ANIM_TAG_CLAMP (ANIM_SPRITES_START + 145)
#define ANIM_TAG_BUBBLE (ANIM_SPRITES_START + 146)
#define ANIM_TAG_ORBS (ANIM_SPRITES_START + 147)
#define ANIM_TAG_WATER_IMPACT (ANIM_SPRITES_START + 148)
#define ANIM_TAG_WATER_ORB (ANIM_SPRITES_START + 149)
#define ANIM_TAG_POISON_BUBBLE (ANIM_SPRITES_START + 150)
#define ANIM_TAG_TOXIC_BUBBLE (ANIM_SPRITES_START + 151)
#define ANIM_TAG_SPIKES (ANIM_SPRITES_START + 152)
#define ANIM_TAG_HORN_HIT_2 (ANIM_SPRITES_START + 153)
#define ANIM_TAG_AIR_WAVE_2 (ANIM_SPRITES_START + 154)
#define ANIM_TAG_SMALL_BUBBLES (ANIM_SPRITES_START + 155)
#define ANIM_TAG_ROUND_SHADOW (ANIM_SPRITES_START + 156)
#define ANIM_TAG_SUNLIGHT (ANIM_SPRITES_START + 157)
#define ANIM_TAG_SPORE (ANIM_SPRITES_START + 158)
#define ANIM_TAG_FLOWER (ANIM_SPRITES_START + 159)
#define ANIM_TAG_RAZOR_LEAF (ANIM_SPRITES_START + 160)
#define ANIM_TAG_NEEDLE (ANIM_SPRITES_START + 161)
#define ANIM_TAG_WHIRLWIND_LINES (ANIM_SPRITES_START + 162)
#define ANIM_TAG_GOLD_RING (ANIM_SPRITES_START + 163)
#define ANIM_TAG_PURPLE_RING (ANIM_SPRITES_START + 164)
#define ANIM_TAG_BLUE_RING (ANIM_SPRITES_START + 165)
#define ANIM_TAG_GREEN_LIGHT_WALL (ANIM_SPRITES_START + 166)
#define ANIM_TAG_BLUE_LIGHT_WALL (ANIM_SPRITES_START + 167)
#define ANIM_TAG_RED_LIGHT_WALL (ANIM_SPRITES_START + 168)
#define ANIM_TAG_GRAY_LIGHT_WALL (ANIM_SPRITES_START + 169)
#define ANIM_TAG_ORANGE_LIGHT_WALL (ANIM_SPRITES_START + 170)
#define ANIM_TAG_BLACK_BALL_2 (ANIM_SPRITES_START + 171)
#define ANIM_TAG_PURPLE_GAS_CLOUD (ANIM_SPRITES_START + 172)
#define ANIM_TAG_SPARK_H (ANIM_SPRITES_START + 173)
#define ANIM_TAG_YELLOW_STAR (ANIM_SPRITES_START + 174)
#define ANIM_TAG_LARGE_FRESH_EGG (ANIM_SPRITES_START + 175)
#define ANIM_TAG_SHADOW_BALL (ANIM_SPRITES_START + 176)
#define ANIM_TAG_LICK (ANIM_SPRITES_START + 177)
#define ANIM_TAG_UNUSED_VOID_LINES (ANIM_SPRITES_START + 178)
#define ANIM_TAG_STRING (ANIM_SPRITES_START + 179)
#define ANIM_TAG_WEB_THREAD (ANIM_SPRITES_START + 180)
#define ANIM_TAG_SPIDER_WEB (ANIM_SPRITES_START + 181)
#define ANIM_TAG_UNUSED_LIGHTBULB (ANIM_SPRITES_START + 182)
#define ANIM_TAG_SLASH (ANIM_SPRITES_START + 183)
#define ANIM_TAG_FOCUS_ENERGY (ANIM_SPRITES_START + 184)
#define ANIM_TAG_SPHERE_TO_CUBE (ANIM_SPRITES_START + 185)
#define ANIM_TAG_TENDRILS (ANIM_SPRITES_START + 186)
#define ANIM_TAG_EYE (ANIM_SPRITES_START + 187)
#define ANIM_TAG_WHITE_SHADOW (ANIM_SPRITES_START + 188)
#define ANIM_TAG_TEAL_ALERT (ANIM_SPRITES_START + 189)
#define ANIM_TAG_OPENING_EYE (ANIM_SPRITES_START + 190)
#define ANIM_TAG_ROUND_WHITE_HALO (ANIM_SPRITES_START + 191)
#define ANIM_TAG_FANG_ATTACK (ANIM_SPRITES_START + 192)
#define ANIM_TAG_PURPLE_HAND_OUTLINE (ANIM_SPRITES_START + 193)
#define ANIM_TAG_MOON (ANIM_SPRITES_START + 194)
#define ANIM_TAG_GREEN_SPARKLE (ANIM_SPRITES_START + 195)
#define ANIM_TAG_SPIRAL (ANIM_SPRITES_START + 196)
#define ANIM_TAG_SNORE_Z (ANIM_SPRITES_START + 197)
#define ANIM_TAG_EXPLOSION (ANIM_SPRITES_START + 198)
#define ANIM_TAG_NAIL (ANIM_SPRITES_START + 199)
#define ANIM_TAG_GHOSTLY_SPIRIT (ANIM_SPRITES_START + 200)
#define ANIM_TAG_WARM_ROCK (ANIM_SPRITES_START + 201)
#define ANIM_TAG_BREAKING_EGG (ANIM_SPRITES_START + 202)
#define ANIM_TAG_THIN_RING (ANIM_SPRITES_START + 203)
#define ANIM_TAG_UNUSED_PUNCH_IMPACT (ANIM_SPRITES_START + 204)
#define ANIM_TAG_BELL (ANIM_SPRITES_START + 205)
#define ANIM_TAG_MUSIC_NOTES_2 (ANIM_SPRITES_START + 206)
#define ANIM_TAG_SPEED_DUST (ANIM_SPRITES_START + 207)
#define ANIM_TAG_TORN_METAL (ANIM_SPRITES_START + 208)
#define ANIM_TAG_THOUGHT_BUBBLE (ANIM_SPRITES_START + 209)
#define ANIM_TAG_MAGENTA_HEART (ANIM_SPRITES_START + 210)
#define ANIM_TAG_ELECTRIC_ORBS (ANIM_SPRITES_START + 211)
#define ANIM_TAG_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 212)
#define ANIM_TAG_ELECTRICITY (ANIM_SPRITES_START + 213)
#define ANIM_TAG_FINGER_2 (ANIM_SPRITES_START + 214)
#define ANIM_TAG_MOVEMENT_WAVES (ANIM_SPRITES_START + 215)
#define ANIM_TAG_RED_HEART (ANIM_SPRITES_START + 216)
#define ANIM_TAG_RED_ORB (ANIM_SPRITES_START + 217)
#define ANIM_TAG_EYE_SPARKLE (ANIM_SPRITES_START + 218)
#define ANIM_TAG_PINK_HEART (ANIM_SPRITES_START + 219)
#define ANIM_TAG_ANGEL (ANIM_SPRITES_START + 220)
#define ANIM_TAG_DEVIL (ANIM_SPRITES_START + 221)
#define ANIM_TAG_SWIPE (ANIM_SPRITES_START + 222)
#define ANIM_TAG_ROOTS (ANIM_SPRITES_START + 223)
#define ANIM_TAG_ITEM_BAG (ANIM_SPRITES_START + 224)
#define ANIM_TAG_JAGGED_MUSIC_NOTE (ANIM_SPRITES_START + 225)
#define ANIM_TAG_POKEBALL (ANIM_SPRITES_START + 226)
#define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227)
#define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228)
#define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229)
#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230)
#define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231)
#define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232)
#define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233)
#define ANIM_TAG_ECLIPSING_ORB (ANIM_SPRITES_START + 234)
#define ANIM_TAG_GRAY_ORB (ANIM_SPRITES_START + 235)
#define ANIM_TAG_BLUE_ORB (ANIM_SPRITES_START + 236)
#define ANIM_TAG_RED_ORB_2 (ANIM_SPRITES_START + 237)
#define ANIM_TAG_PINK_PETAL (ANIM_SPRITES_START + 238)
#define ANIM_TAG_PAIN_SPLIT (ANIM_SPRITES_START + 239)
#define ANIM_TAG_CONFETTI (ANIM_SPRITES_START + 240)
#define ANIM_TAG_GREEN_STAR (ANIM_SPRITES_START + 241)
#define ANIM_TAG_PINK_CLOUD (ANIM_SPRITES_START + 242)
#define ANIM_TAG_SWEAT_DROP (ANIM_SPRITES_START + 243)
#define ANIM_TAG_GUARD_RING (ANIM_SPRITES_START + 244)
#define ANIM_TAG_PURPLE_SCRATCH (ANIM_SPRITES_START + 245)
#define ANIM_TAG_PURPLE_SWIPE (ANIM_SPRITES_START + 246)
#define ANIM_TAG_TAG_HAND (ANIM_SPRITES_START + 247)
#define ANIM_TAG_SMALL_RED_EYE (ANIM_SPRITES_START + 248)
#define ANIM_TAG_HOLLOW_ORB (ANIM_SPRITES_START + 249)
#define ANIM_TAG_X_SIGN (ANIM_SPRITES_START + 250)
#define ANIM_TAG_BLUEGREEN_ORB (ANIM_SPRITES_START + 251)
#define ANIM_TAG_PAW_PRINT (ANIM_SPRITES_START + 252)
#define ANIM_TAG_PURPLE_FLAME (ANIM_SPRITES_START + 253)
#define ANIM_TAG_RED_BALL (ANIM_SPRITES_START + 254)
#define ANIM_TAG_SMELLINGSALT_EFFECT (ANIM_SPRITES_START + 255)
#define ANIM_TAG_METEOR (ANIM_SPRITES_START + 256)
#define ANIM_TAG_FLAT_ROCK (ANIM_SPRITES_START + 257)
#define ANIM_TAG_MAGNIFYING_GLASS (ANIM_SPRITES_START + 258)
#define ANIM_TAG_BROWN_ORB (ANIM_SPRITES_START + 259)
#define ANIM_TAG_METAL_SOUND_WAVES (ANIM_SPRITES_START + 260)
#define ANIM_TAG_FLYING_DIRT (ANIM_SPRITES_START + 261)
#define ANIM_TAG_ICICLE_SPEAR (ANIM_SPRITES_START + 262)
#define ANIM_TAG_HAIL (ANIM_SPRITES_START + 263)
#define ANIM_TAG_GLOWY_RED_ORB (ANIM_SPRITES_START + 264)
#define ANIM_TAG_GLOWY_GREEN_ORB (ANIM_SPRITES_START + 265)
#define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266)
#define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267)
#define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268)
#define ANIM_TAG_UNUSED_RED_BRICK (ANIM_SPRITES_START + 269)
#define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270)
#define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271)
#define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272)
#define ANIM_TAG_SWEAT_BEAD (ANIM_SPRITES_START + 273)
#define ANIM_TAG_UNUSED_GEM_1 (ANIM_SPRITES_START + 274)
#define ANIM_TAG_UNUSED_GEM_2 (ANIM_SPRITES_START + 275)
#define ANIM_TAG_UNUSED_GEM_3 (ANIM_SPRITES_START + 276)
#define ANIM_TAG_SLAM_HIT_2 (ANIM_SPRITES_START + 277)
#define ANIM_TAG_RECYCLE (ANIM_SPRITES_START + 278)
#define ANIM_TAG_UNUSED_RED_PARTICLES (ANIM_SPRITES_START + 279)
#define ANIM_TAG_PROTECT (ANIM_SPRITES_START + 280)
#define ANIM_TAG_DIRT_MOUND (ANIM_SPRITES_START + 281)
#define ANIM_TAG_SHOCK_3 (ANIM_SPRITES_START + 282)
#define ANIM_TAG_WEATHER_BALL (ANIM_SPRITES_START + 283)
#define ANIM_TAG_BIRD (ANIM_SPRITES_START + 284)
#define ANIM_TAG_CROSS_IMPACT (ANIM_SPRITES_START + 285)
#define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286)
#define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287)
#define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288)
// battlers
#define ANIM_ATTACKER 0
#define ANIM_TARGET 1
#define ANIM_ATTACKER 0
#define ANIM_TARGET 1
#define ANIM_ATK_PARTNER 2
#define ANIM_DEF_PARTNER 3
// stereo panning constants [0-255]
//
// 0
// . .
// . .
// 192 . . 63
// . .
// . .
// . .
// 127
//
#define SOUND_PAN_ATTACKER -64
#define SOUND_PAN_TARGET 63
// move background ids
#define BG_DARK_ 0 // the same as BG_DARK but is unused
#define BG_DARK 1
@@ -406,4 +410,33 @@
#define ANIM_WEATHER_SANDSTORM 3
#define ANIM_WEATHER_HAIL 4
// Battle mon back animations.
#define BACK_ANIM_NONE 0x00
#define BACK_ANIM_H_SLIDE_QUICK 0x01
#define BACK_ANIM_H_SLIDE 0x02
#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03
#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04
#define BACK_ANIM_SHRINK_GROW_1 0x05
#define BACK_ANIM_GROW_1 0x06
#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07
#define BACK_ANIM_HORIZONTAL_SHAKE 0x08
#define BACK_ANIM_VERTICAL_SHAKE 0x09
#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a
#define BACK_ANIM_VERTICAL_STRETCH 0x0b
#define BACK_ANIM_HORIZONTAL_STRETCH 0x0c
#define BACK_ANIM_GROW_2 0x0d
#define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e
#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f
#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10
#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11
#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12
#define BACK_ANIM_DIP_RIGHT_SIDE 0x13
#define BACK_ANIM_SHRINK_GROW_2 0x14
#define BACK_ANIM_JOLT_RIGHT 0x15
#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16
#define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17
#define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18
#define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19
#endif // GUARD_CONSTANTS_BATTLE_ANIM_H

View File

@@ -10,6 +10,10 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3
#define TENT_SLATEPORT 4
// Battle Frontier lvl modes.
#define FRONTIER_LVL_50 0
#define FRONTIER_LVL_OPEN 1
@@ -21,4 +25,20 @@
#define FRONTIER_MODE_MULTIS 2
#define FRONTIER_MODE_LINK_MULTIS 3
// Special trainer battles.
#define SPECIAL_BATTLE_TOWER 0
#define SPECIAL_BATTLE_SECRET_BASE 1
#define SPECIAL_BATTLE_EREADER 2
#define SPECIAL_BATTLE_DOME 3
#define SPECIAL_BATTLE_PALACE 4
#define SPECIAL_BATTLE_ARENA 5
#define SPECIAL_BATTLE_FACTORY 6
#define SPECIAL_BATTLE_PIKE_SINGLE 7
#define SPECIAL_BATTLE_STEVEN 8
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H

View File

@@ -11,9 +11,9 @@
#define sB_ANIM_ARG2 gBattleScripting + 0x11
#define sTRIPLE_KICK_POWER gBattleScripting + 0x12
#define sMOVEEND_STATE gBattleScripting + 0x14
#define sBANK_WITH_ABILITY gBattleScripting + 0x15
#define sBATTLER_WITH_ABILITY gBattleScripting + 0x15
#define sMULTIHIT_EFFECT gBattleScripting + 0x16
#define sBANK gBattleScripting + 0x17
#define sBATTLER gBattleScripting + 0x17
#define sB_ANIM_TURN gBattleScripting + 0x18
#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19
#define sSTATCHANGER gBattleScripting + 0x1A
@@ -26,8 +26,9 @@
#define sRESHOW_MAIN_STATE gBattleScripting + 0x21
#define sRESHOW_HELPER_STATE gBattleScripting + 0x22
#define sFIELD_23 gBattleScripting + 0x23
#define sFIELD_24 gBattleScripting + 0x24
#define sWINDOWS_TYPE gBattleScripting + 0x24
#define sMULTIPLAYER_ID gBattleScripting + 0x25
#define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26
#define cEFFECT_CHOOSER gBattleCommunication + 3
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
@@ -67,12 +68,19 @@
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_ARENA_JUDGMENT_WINDOW 9
#define VARIOUS_ARENA_OPPONENT_MON_LOST 10
#define VARIOUS_ARENA_PLAYER_MON_LOST 11
#define VARIOUS_ARENA_BOTH_MONS_LOST 12
#define VARIOUS_EMIT_YESNOBOX 13
#define VARIOUS_ARENA_JUDGMENT_STRING 16
#define VARIOUS_ARENA_WAIT_STRING 17
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
#define VARIOUS_VOLUME_DOWN 21
#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 23
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26

View File

@@ -0,0 +1,18 @@
#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H
#define GUARD_CONSTANTS_BATTLE_SETUP_H
#define TRAINER_BATTLE_SINGLE 0
#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1
#define TRAINER_BATTLE_CONTINUE_SCRIPT 2
#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3
#define TRAINER_BATTLE_DOUBLE 4
#define TRAINER_BATTLE_REMATCH 5
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
#define TRAINER_BATTLE_9 9
#define TRAINER_BATTLE_SET_TRAINER_A 10
#define TRAINER_BATTLE_SET_TRAINER_B 11
#define TRAINER_BATTLE_12 12
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H

View File

@@ -0,0 +1,72 @@
#ifndef GUARD_FIELD_EFFECT_CONSTANTS_H
#define GUARD_FIELD_EFFECT_CONSTANTS_H
#define FLDEFF_EXCLAMATION_MARK_ICON 0
#define FLDEFF_USE_CUT_ON_GRASS 1
#define FLDEFF_USE_CUT_ON_TREE 2
#define FLDEFF_SHADOW 3
#define FLDEFF_TALL_GRASS 4
#define FLDEFF_RIPPLE 5
#define FLDEFF_FIELD_MOVE_SHOW_MON 6
#define FLDEFF_ASH 7
#define FLDEFF_SURF_BLOB 8
#define FLDEFF_USE_SURF 9
#define FLDEFF_DUST 10
#define FLDEFF_USE_SECRET_POWER_CAVE 11
#define FLDEFF_JUMP_TALL_GRASS 12
#define FLDEFF_SAND_FOOTPRINTS 13
#define FLDEFF_JUMP_BIG_SPLASH 14
#define FLDEFF_SPLASH 15
#define FLDEFF_JUMP_SMALL_SPLASH 16
#define FLDEFF_LONG_GRASS 17
#define FLDEFF_JUMP_LONG_GRASS 18
#define FLDEFF_UNKNOWN_19 19
#define FLDEFF_UNKNOWN_20 20
#define FLDEFF_UNKNOWN_21 21
#define FLDEFF_UNKNOWN_22 22
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
#define FLDEFF_DEEP_SAND_FOOTPRINTS 24
#define FLDEFF_POKECENTER_HEAL 25
#define FLDEFF_USE_SECRET_POWER_TREE 26
#define FLDEFF_USE_SECRET_POWER_SHRUB 27
#define FLDEFF_TREE_DISGUISE 28
#define FLDEFF_MOUNTAIN_DISGUISE 29
#define FLDEFF_NPCFLY_OUT 30
#define FLDEFF_USE_FLY 31
#define FLDEFF_FLY_IN 32
#define FLDEFF_QUESTION_MARK_ICON 33
#define FLDEFF_FEET_IN_FLOWING_WATER 34
#define FLDEFF_BIKE_TIRE_TRACKS 35
#define FLDEFF_SAND_DISGUISE 36
#define FLDEFF_USE_ROCK_SMASH 37
#define FLDEFF_USE_DIG 38
#define FLDEFF_SAND_PILE 39
#define FLDEFF_USE_STRENGTH 40
#define FLDEFF_SHORT_GRASS 41
#define FLDEFF_HOT_SPRINGS_WATER 42
#define FLDEFF_USE_WATERFALL 43
#define FLDEFF_USE_DIVE 44
#define FLDEFF_POKEBALL 45
#define FLDEFF_HEART_ICON 46
#define FLDEFF_NOP_47 47
#define FLDEFF_NOP_48 48
#define FLDEFF_POP_OUT_OF_ASH 49
#define FLDEFF_LAVARIDGE_GYM_WARP 50
#define FLDEFF_SWEET_SCENT 51
#define FLDEFF_SAND_PILLAR 52
#define FLDEFF_BUBBLES 53
#define FLDEFF_SPARKLE 54
#define FLDEFF_SECRET_POWER_CAVE 55
#define FLDEFF_SECRET_POWER_TREE 56
#define FLDEFF_SECRET_POWER_SHRUB 57
#define FLDEFF_CUT_GRASS 58
#define FLDEFF_FIELD_MOVE_SHOW_MON_INIT 59
#define FLDEFF_USE_FLY_ANCIENT_TOMB 60
#define FLDEFF_PCTURN_ON 61
#define FLDEFF_HALL_OF_FAME_RECORD 62
#define FLDEFF_USE_TELEPORT 63
#define FLDEFF_64 64
#define FLDEFF_65 65
#define FLDEFF_66 66
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
#define TYPE_NONE 0xFF
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
@@ -22,6 +23,7 @@
#define TYPE_DARK 0x11
#define NUMBER_OF_MON_TYPES 0x12
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
@@ -74,7 +76,10 @@
#define STAT_SPEED 3
#define STAT_SPATK 4
#define STAT_SPDEF 5
#define STAT_ACC 6 // only in battles
#define STAT_EVASION 7 // only in battles
#define STAT_ACC 6 // Only in battles.
#define STAT_EVASION 7 // Only in battles.
#define NUM_STATS 6
#define NUM_BATTLE_STATS 8
#endif // GUARD_CONSTANTS_POKEMON_H

View File

@@ -449,6 +449,7 @@
// National Dex Index Defines
#define NATIONAL_DEX_NONE 0
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
@@ -865,6 +866,7 @@
// Hoenn Dex Index Defines
#define HOENN_DEX_NONE 0
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205

View File

@@ -4,17 +4,20 @@
#include "constants/opponents.h"
// Special Trainer Ids.
#define TRAINER_FRONTIER_BRAIN 1022
#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_OPPONENT_C00 3072
#define TRAINER_STEVEN_PARTNER 3075
#define TRAINER_RECORD_MIXING_FRIEND 300
#define TRAINER_RECORD_MIXING_APPRENTICE 400
#define TRAINER_EREADER 500
#define TRAINER_FRONTIER_BRAIN 1022
#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_OPPONENT_C00 3072
#define TRAINER_STEVEN_PARTNER 3075
#define TRAINER_PIC_HIKER 0
#define TRAINER_PIC_AQUA_GRUNT_M 1
#define TRAINER_PIC_POKEMON_BREEDER_F 2
#define TRAINER_PIC_COOL_TRAINER_M 3
#define TRAINER_PIC_COOLTRAINER_M 3
#define TRAINER_PIC_BIRD_KEEPER 4
#define TRAINER_PIC_COLLECTOR 5
#define TRAINER_PIC_AQUA_GRUNT_F 6
@@ -31,7 +34,7 @@
#define TRAINER_PIC_INTERVIEWER 17
#define TRAINER_PIC_TUBER_F 18
#define TRAINER_PIC_TUBER_M 19
#define TRAINER_PIC_COOL_TRAINER_F 20
#define TRAINER_PIC_COOLTRAINER_F 20
#define TRAINER_PIC_LADY 21
#define TRAINER_PIC_BEAUTY 22
#define TRAINER_PIC_RICH_BOY 23
@@ -62,8 +65,8 @@
#define TRAINER_PIC_SCHOOL_KID_M 48
#define TRAINER_PIC_SCHOOL_KID_F 49
#define TRAINER_PIC_SR_AND_JR 50
#define TRAINER_PIC_WINSTRATE_M 51
#define TRAINER_PIC_WINSTRATE_F 52
#define TRAINER_PIC_POKEFAN_M 51
#define TRAINER_PIC_POKEFAN_F 52
#define TRAINER_PIC_YOUNGSTER 53
#define TRAINER_PIC_CHAMPION_WALLACE 54
#define TRAINER_PIC_FISHERMAN 55
@@ -102,8 +105,8 @@
#define TRAINER_PIC_PYRAMID_KING_BRANDON 88
#define TRAINER_PIC_RED 89
#define TRAINER_PIC_LEAF 90
#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91
#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92
#define TRAINER_PIC_RS_BRENDAN 91
#define TRAINER_PIC_RS_MAY 92
#define TRAINER_BACK_PIC_BRENDAN 0
#define TRAINER_BACK_PIC_MAY 1
@@ -114,95 +117,95 @@
#define TRAINER_BACK_PIC_WALLY 6
#define TRAINER_BACK_PIC_STEVEN 7
#define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_TEAM_AQUA_1 0x1
#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
#define FACILITY_CLASS_COOLTRAINER_M 0x3
#define FACILITY_CLASS_BIRD_KEEPER 0x4
#define FACILITY_CLASS_COLLECTOR 0x5
#define FACILITY_CLASS_TEAM_AQUA_2 0x6
#define FACILITY_CLASS_SWIMMER_M 0x7
#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
#define FACILITY_CLASS_EXPERT_M 0x9
#define FACILITY_CLASS_BLACK_BELT 0xa
#define FACILITY_CLASS_AQUA_LEADER 0xb
#define FACILITY_CLASS_HEX_MANIAC 0xc
#define FACILITY_CLASS_AROMA_LADY 0xd
#define FACILITY_CLASS_RUIN_MANIAC 0xe
#define FACILITY_CLASS_INTERVIEWER 0xf
#define FACILITY_CLASS_TUBER_1 0x10
#define FACILITY_CLASS_TUBER_2 0x11
#define FACILITY_CLASS_COOLTRAINER_F 0x12
#define FACILITY_CLASS_LADY 0x13
#define FACILITY_CLASS_BEAUTY 0x14
#define FACILITY_CLASS_RICH_BOY 0x15
#define FACILITY_CLASS_EXPERT_2 0x16
#define FACILITY_CLASS_POKEMANIAC 0x17
#define FACILITY_CLASS_TEAM_MAGMA_2 0x18
#define FACILITY_CLASS_GUITARIST 0x19
#define FACILITY_CLASS_KINDLER 0x1a
#define FACILITY_CLASS_CAMPER 0x1b
#define FACILITY_CLASS_PICNICKER 0x1c
#define FACILITY_CLASS_BUG_MANIAC 0x1d
#define FACILITY_CLASS_PSYCHIC_M 0x1e
#define FACILITY_CLASS_PSYCHIC_F 0x1f
#define FACILITY_CLASS_GENTLEMAN 0x20
#define FACILITY_CLASS_ELITE_FOUR_1 0x21
#define FACILITY_CLASS_ELITE_FOUR_2 0x22
#define FACILITY_CLASS_LEADER_1 0x23
#define FACILITY_CLASS_LEADER_2 0x24
#define FACILITY_CLASS_LEADER_3 0x25
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
#define FACILITY_CLASS_SR_AND_JR 0x28
#define FACILITY_CLASS_POKEFAN_1 0x29
#define FACILITY_CLASS_POKEFAN_2 0x2a
#define FACILITY_CLASS_YOUNGSTER 0x2b
#define FACILITY_CLASS_CHAMPION 0x2c
#define FACILITY_CLASS_FISHERMAN 0x2d
#define FACILITY_CLASS_TRIATHLETE_1 0x2e
#define FACILITY_CLASS_TRIATHLETE_2 0x2f
#define FACILITY_CLASS_TRIATHLETE_3 0x30
#define FACILITY_CLASS_TRIATHLETE_4 0x31
#define FACILITY_CLASS_TRIATHLETE_5 0x32
#define FACILITY_CLASS_TRIATHLETE_6 0x33
#define FACILITY_CLASS_DRAGON_TAMER 0x34
#define FACILITY_CLASS_NINJA_BOY 0x35
#define FACILITY_CLASS_BATTLE_GIRL 0x36
#define FACILITY_CLASS_PARASOL_LADY 0x37
#define FACILITY_CLASS_SWIMMER_F 0x38
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
#define FACILITY_CLASS_BUG_CATCHER 0x43
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
#define FACILITY_CLASS_MAGMA_LEADER 0x46
#define FACILITY_CLASS_LASS 0x47
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
#define FACILITY_CLASS_OLD_COUPLE 0x49
#define FACILITY_CLASS_SIS_AND_BRO 0x4a
#define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b
#define FACILITY_CLASS_SALON_MAIDEN 0x4c
#define FACILITY_CLASS_DOME_ACE 0x4d
#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
#define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_AQUA_GRUNT_M 0x1
#define FACILITY_CLASS_POKEMON_BREEDER_F 0x2
#define FACILITY_CLASS_COOLTRAINER_M 0x3
#define FACILITY_CLASS_BIRD_KEEPER 0x4
#define FACILITY_CLASS_COLLECTOR 0x5
#define FACILITY_CLASS_AQUA_GRUNT_F 0x6
#define FACILITY_CLASS_SWIMMER_M 0x7
#define FACILITY_CLASS_MAGMA_GRUNT_M 0x8
#define FACILITY_CLASS_EXPERT_M 0x9
#define FACILITY_CLASS_BLACK_BELT 0xa
#define FACILITY_CLASS_AQUA_LEADER_ARCHIE 0xb
#define FACILITY_CLASS_HEX_MANIAC 0xc
#define FACILITY_CLASS_AROMA_LADY 0xd
#define FACILITY_CLASS_RUIN_MANIAC 0xe
#define FACILITY_CLASS_INTERVIEWER 0xf
#define FACILITY_CLASS_TUBER_F 0x10
#define FACILITY_CLASS_TUBER_M 0x11
#define FACILITY_CLASS_COOLTRAINER_F 0x12
#define FACILITY_CLASS_LADY 0x13
#define FACILITY_CLASS_BEAUTY 0x14
#define FACILITY_CLASS_RICH_BOY 0x15
#define FACILITY_CLASS_EXPERT_F 0x16
#define FACILITY_CLASS_POKEMANIAC 0x17
#define FACILITY_CLASS_MAGMA_GRUNT_F 0x18
#define FACILITY_CLASS_GUITARIST 0x19
#define FACILITY_CLASS_KINDLER 0x1a
#define FACILITY_CLASS_CAMPER 0x1b
#define FACILITY_CLASS_PICNICKER 0x1c
#define FACILITY_CLASS_BUG_MANIAC 0x1d
#define FACILITY_CLASS_PSYCHIC_M 0x1e
#define FACILITY_CLASS_PSYCHIC_F 0x1f
#define FACILITY_CLASS_GENTLEMAN 0x20
#define FACILITY_CLASS_ELITE_FOUR_SIDNEY 0x21
#define FACILITY_CLASS_ELITE_FOUR_PHOEBE 0x22
#define FACILITY_CLASS_LEADER_ROXANNE 0x23
#define FACILITY_CLASS_LEADER_BRAWLY 0x24
#define FACILITY_CLASS_LEADER_TATE_AND_LIZA 0x25
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
#define FACILITY_CLASS_SR_AND_JR 0x28
#define FACILITY_CLASS_POKEFAN_M 0x29
#define FACILITY_CLASS_POKEFAN_F 0x2a
#define FACILITY_CLASS_YOUNGSTER 0x2b
#define FACILITY_CLASS_CHAMPION_WALLACE 0x2c
#define FACILITY_CLASS_FISHERMAN 0x2d
#define FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x2e
#define FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x2f
#define FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x30
#define FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x31
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x32
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x33
#define FACILITY_CLASS_DRAGON_TAMER 0x34
#define FACILITY_CLASS_NINJA_BOY 0x35
#define FACILITY_CLASS_BATTLE_GIRL 0x36
#define FACILITY_CLASS_PARASOL_LADY 0x37
#define FACILITY_CLASS_SWIMMER_F 0x38
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_WALLY 0x3b
#define FACILITY_CLASS_BRENDAN 0x3c
#define FACILITY_CLASS_BRENDAN_2 0x3d
#define FACILITY_CLASS_BRENDAN_3 0x3e
#define FACILITY_CLASS_MAY 0x3f
#define FACILITY_CLASS_MAY_2 0x40
#define FACILITY_CLASS_MAY_3 0x41
#define FACILITY_CLASS_PKMN_BREEDER_M 0x42
#define FACILITY_CLASS_BUG_CATCHER 0x43
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
#define FACILITY_CLASS_MAGMA_LEADER_MAXIE 0x46
#define FACILITY_CLASS_LASS 0x47
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
#define FACILITY_CLASS_OLD_COUPLE 0x49
#define FACILITY_CLASS_SIS_AND_BRO 0x4a
#define FACILITY_CLASS_STEVEN 0x4b
#define FACILITY_CLASS_SALON_MAIDEN_ANABEL 0x4c
#define FACILITY_CLASS_DOME_ACE_TUCKER 0x4d
#define FACILITY_CLASS_RED 0x4e
#define FACILITY_CLASS_LEAF 0x4f
#define FACILITY_CLASS_RS_BRENDAN 0x50
#define FACILITY_CLASS_RS_MAY 0x51
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
#define TRAINER_CLASS_HIKER 0x2
#define TRAINER_CLASS_TEAM_AQUA 0x3
#define TRAINER_CLASS_PKMN_BREEDER 0x4
#define TRAINER_CLASS_COOLTRAINER_1 0x5
#define TRAINER_CLASS_COOLTRAINER 0x5
#define TRAINER_CLASS_BIRD_KEEPER 0x6
#define TRAINER_CLASS_COLLECTOR 0x7
#define TRAINER_CLASS_SWIMMER_M 0x8
@@ -215,8 +218,8 @@
#define TRAINER_CLASS_AROMA_LADY 0xf
#define TRAINER_CLASS_RUIN_MANIAC 0x10
#define TRAINER_CLASS_INTERVIEWER 0x11
#define TRAINER_CLASS_TUBER_1 0x12
#define TRAINER_CLASS_TUBER_2 0x13
#define TRAINER_CLASS_TUBER_F 0x12
#define TRAINER_CLASS_TUBER_M 0x13
#define TRAINER_CLASS_LADY 0x14
#define TRAINER_CLASS_BEAUTY 0x15
#define TRAINER_CLASS_RICH_BOY 0x16
@@ -245,7 +248,7 @@
#define TRAINER_CLASS_SWIMMER_F 0x2d
#define TRAINER_CLASS_TWINS 0x2e
#define TRAINER_CLASS_SAILOR 0x2f
#define TRAINER_CLASS_COOLTRAINER_2 0x30
#define TRAINER_CLASS_COOLTRAINER_UNUSED 0x30
#define TRAINER_CLASS_MAGMA_ADMIN 0x31
#define TRAINER_CLASS_PKMN_TRAINER_3 0x32
#define TRAINER_CLASS_BUG_CATCHER 0x33

View File

@@ -226,6 +226,11 @@ extern u8 gUnknown_02039F24;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
extern u8 gUnknown_02039F30;
extern u8 gContestFinalStandings[4];
extern u8 gContestPlayerMonIndex;
extern s16 gUnknown_02039F08[4];
extern s16 gContestMonConditions[4];
extern u8 gIsLinkContest;
struct Shared18000
{
@@ -239,7 +244,7 @@ struct Shared18000
struct ContestStruct_field_18
{
u16 unk0;
u16 species;
u16 unk2;
u8 unk4_0:1;
u8 unk5;
@@ -428,5 +433,6 @@ bool8 sub_80DE1E8(u8 a);
void SetStartledString(u8 a, u8 b);
s8 Contest_GetMoveExcitement(u16);
u8 sub_80DAE0C(struct Pokemon *);
void sub_80DEDA8(u8);
#endif //GUARD_CONTEST_H

View File

@@ -1,7 +1,10 @@
#ifndef GUARD_CONTEST_LINK_80F57C4_H
#define GUARD_CONTEST_LINK_80F57C4_H
void sub_80F8264(void);
void sub_80F8290(void);
void sub_80F840C(void);
void sub_80F8438(void);
void sub_80F8484(void);
void sub_80F84C4(u8);
void sub_80FC998(u8 taskId);

View File

@@ -2,5 +2,6 @@
#define GUARD_CONTESTPAINTING_H
void sub_812FDA8(u32);
void sub_812FDEC(void);
#endif

View File

@@ -5,8 +5,8 @@
extern u8 gDecompressionBuffer[0x4000];
void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
void LZDecompressWram(const u32 *src, void *dest);
void LZDecompressVram(const u32 *src, void *dest);
u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
@@ -28,6 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
u32 GetDecompressedDataSize(const u8 *ptr);
u32 GetDecompressedDataSize(const u32 *ptr);
#endif // GUARD_DECOMPRESS_H

View File

@@ -1,12 +1,15 @@
#ifndef GUARD_DECORATION_INVENTORY_H
#define GUARD_DECORATION_INVENTORY_H
struct DecorationInventory {
struct DecorationInventory
{
u8 *items;
u8 size;
};
extern struct DecorationInventory gDecorationInventories[];
void SetDecorationInventoriesPointers(void);
void ClearDecorationInventories(void);
s8 GetFirstEmptyDecorSlot(u8 idx);
u8 CheckHasDecoration(u8);

View File

@@ -19,7 +19,8 @@ enum SpinnerRunnerFollowPatterns
RUNFOLLOW_SOUTH_EAST_WEST
};
struct UnkStruct_085094AC {
struct UnkStruct_085094AC
{
const union AnimCmd *const *anims;
u8 animPos[4];
};
@@ -45,28 +46,6 @@ struct UnkStruct_085094AC {
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
#define movement_type_def(setup, table) \
static u8 setup##_callback(struct EventObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
}\
static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
{\
return table[sprite->data[1]](eventObject, sprite);\
}
#define movement_type_empty_callback(setup) \
static u8 setup##_callback(struct EventObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
}\
static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
{\
return 0;\
}
struct PairedPalettes
{
u16 tag;
@@ -75,14 +54,14 @@ struct PairedPalettes
struct LockedAnimEventObjects
{
u8 eventObjectIds[NUM_EVENT_OBJECTS];
u8 eventObjectIds[EVENT_OBJECTS_COUNT];
u8 count;
};
extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[];
extern const u8 gReflectionEffectPaletteMap[];
void sub_808D438(void);
void ResetEventObjects(void);
u8 GetMoveDirectionAnimNum(u8);
u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetEventObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
@@ -143,9 +122,27 @@ u8 GetCollisionFlagsAtCoords(struct EventObject *eventObject, s16 x, s16 y, u8 d
u8 GetFaceDirectionMovementAction(u32);
u8 GetWalkNormalMovementAction(u32);
u8 GetWalkFastMovementAction(u32);
u8 GetRideWaterCurrentMovementAction(u32);
u8 GetWalkFastestMovementAction(u32);
u8 GetPlayerRunMovementAction(u32);
u8 GetJumpInPlaceMovementAction(u32);
u8 GetAcroWheelieFaceDirectionMovementAction(u32);
u8 GetAcroPopWheelieFaceDirectionMovementAction(u32);
u8 GetAcroEndWheelieFaceDirectionMovementAction(u32);
u8 GetAcroWheelieHopFaceDirectionMovementAction(u32);
u8 GetAcroWheelieHopDirectionMovementAction(u32);
u8 GetAcroWheelieJumpDirectionMovementAction(u32);
u8 GetJumpInPlaceTurnAroundMovementAction(u32);
u8 GetAcroWheelieInPlaceDirectionMovementAction(u32);
u8 GetAcroPopWheelieMoveDirectionMovementAction(u32);
u8 GetAcroWheelieMoveDirectionMovementAction(u32);
u8 GetAcroEndWheelieMoveDirectionMovementAction(u32);
u8 GetFishingDirectionAnimNum(u8 direction);
u8 GetAcroWheelieDirectionAnimNum(u8 direction);
u8 GetFishingBiteDirectionAnimNum(u8 direction);
u8 GetFishingNoCatchDirectionAnimNum(u8 direction);
bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId);
void EventObjectForceSetHeldMovement(struct EventObject *eventObject, u8 movementActionId);
bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject);
u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject);
u8 EventObjectGetHeldMovementActionId(struct EventObject *eventObject);
@@ -162,9 +159,7 @@ u8 ZCoordToPriority(u8);
void EventObjectUpdateZCoord(struct EventObject *pObject);
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
bool8 IsZCoordMismatchAt(u8, s16, s16);
void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *);
void UnfreezeEventObject(struct EventObject *);
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
u8 FindLockedEventObjectIndex(struct EventObject *);
bool8 obj_npc_ministep(struct Sprite *sprite);
bool8 sub_80976EC(struct Sprite *sprite);
@@ -194,6 +189,7 @@ u16 GetObjectPaletteTag(u8 palSlot);
void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible);
s16 sub_809773C(s16 a1);
s16 sub_8097728(s16 a1);
void CameraObjectReset2(void);
void MovementType_None(struct Sprite *);
void MovementType_LookAround(struct Sprite *);

View File

@@ -1,7 +1,3 @@
//
// Created by scott on 9/12/2017.
//
#ifndef GUARD_EVENT_SCRIPTS_H
#define GUARD_EVENT_SCRIPTS_H
@@ -528,4 +524,59 @@ extern const u8 MauvilleCity_PokemonCenter_1F_Text_290097[];
extern const u8 MauvilleCity_PokemonCenter_1F_Text_2900B5[];
extern const u8 MauvilleCity_PokemonCenter_1F_Text_2900CB[];
#endif //GUARD_EVENT_SCRIPTS_H
extern const u8 EventScript_PlayerPCMale[];
extern const u8 EventScript_PlayerPCFemale[];
extern const u8 EventScript_SecretBasePC[];
extern const u8 EventScript_RecordMixingSecretBasePC[];
extern const u8 EventScript_SecretPower1[];
extern const u8 EventScript_SecretPower2[];
extern const u8 EventScript_PC[];
extern const u8 EventScript_TestSignpostMsg[];
extern const u8 EventScript_HiddenItemScript[];
extern const u8 EventScript_2759F1[];
extern const u8 EventScript_TV[];
extern const u8 EventScript_ClosedSootopolisDoor[];
extern const u8 SkyPillar_Outside_EventScript_2393F9[];
extern const u8 EventScript_CableBoxResults[];
extern const u8 EventScript_2A4BAC[];
extern const u8 Route110_TrickHouseEntrance_EventScript_26A22A[];
extern const u8 EventScript_RegionMap[];
extern const u8 EventScript_RunningShoesManual[];
extern const u8 EventScript_PictureBookShelf[];
extern const u8 EventScript_BookShelf[];
extern const u8 EventScript_PokemonCenterBookshelf[];
extern const u8 EventScript_Vase[];
extern const u8 EventScript_TrashCan[];
extern const u8 EventScript_ShopShelf[];
extern const u8 EventScript_Blueprint[];
extern const u8 EventScript_WirelessBoxResults[];
extern const u8 EventScript_CableBoxResults[];
extern const u8 EventScript_Questionnaire[];
extern const u8 EventScript_TrainerHillTimer[];
extern const u8 EventScript_SecretBaseSandOrnament[];
extern const u8 EventScript_SecretBaseShieldOrToyTV[];
extern const u8 EventScript_UseSurf[];
extern const u8 EventScript_UseWaterfall[];
extern const u8 EventScript_CannotUseWaterfall[];
extern const u8 EventScript_UseDive[];
extern const u8 EventScript_UseDiveUnderwater[];
extern const u8 EventScript_FallDownHole[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8[];
extern const u8 EventScript_Poison[];
extern const u8 EventScript_EggHatch[];
extern const u8 gUnknown_08273D1F[];
extern const u8 IslandCave_EventScript_238EAF[];
extern const u8 MauvilleCity_EventScript_1DF7BA[];
extern const u8 Route119_EventScript_1F49EC[];
extern const u8 LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6[];
extern const u8 RustboroCity_Gym_EventScript_21307B[];
extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224175[];
extern const u8 SSTidalCorridor_EventScript_23C050[];
extern const u8 gUnknown_082A8350[];
// Battle Pyramid.
extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A[];
#endif // GUARD_EVENT_SCRIPTS_H

View File

@@ -7,16 +7,16 @@ struct CameraObject
{
void (*callback)(struct CameraObject *);
u32 spriteId;
s32 unk8;
s32 unkC;
s32 movementSpeedX;
s32 movementSpeedY;
s32 x;
s32 y;
};
// Exported RAM declarations
extern struct CameraObject gUnknown_03005DD0;
extern u16 gUnknown_03005DEC;
extern u16 gUnknown_03005DE8;
extern struct CameraObject gFieldCamera;
extern u16 gTotalCameraPixelOffsetX;
extern u16 gTotalCameraPixelOffsetY;
// Exported ROM declarations
void DrawWholeMapView(void);

View File

@@ -25,7 +25,7 @@ struct FieldInput
void FieldClearPlayerInput(struct FieldInput *pStruct);
void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys);
int sub_809C014(struct FieldInput *pStruct);
int ProcessPlayerFieldInput(struct FieldInput *pStruct);
u8 *sub_80682A8(struct MapPosition *, u8, u8);
void overworld_poison_timer_set(void);
void RestartWildEncounterImmunitySteps(void);

View File

@@ -1,85 +1,12 @@
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
#include "task.h"
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2];
extern const struct SpritePalette gNewGameBirchObjectPaletteInfo;
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2];
extern const struct SpriteTemplate gNewGameBirchObjectTemplate;
extern const struct OamData gNewGameBirchOamAttributes;
enum FieldEffectScriptIdx
{
FLDEFF_EXCLAMATION_MARK_ICON,
FLDEFF_USE_CUT_ON_GRASS,
FLDEFF_USE_CUT_ON_TREE,
FLDEFF_SHADOW,
FLDEFF_TALL_GRASS,
FLDEFF_RIPPLE,
FLDEFF_FIELD_MOVE_SHOW_MON,
FLDEFF_ASH,
FLDEFF_SURF_BLOB,
FLDEFF_USE_SURF,
FLDEFF_DUST,
FLDEFF_USE_SECRET_POWER_CAVE,
FLDEFF_JUMP_TALL_GRASS,
FLDEFF_SAND_FOOTPRINTS,
FLDEFF_JUMP_BIG_SPLASH,
FLDEFF_SPLASH,
FLDEFF_JUMP_SMALL_SPLASH,
FLDEFF_LONG_GRASS,
FLDEFF_JUMP_LONG_GRASS,
FLDEFF_UNKNOWN_19,
FLDEFF_UNKNOWN_20,
FLDEFF_UNKNOWN_21,
FLDEFF_UNKNOWN_22,
FLDEFF_BERRY_TREE_GROWTH_SPARKLE,
FLDEFF_DEEP_SAND_FOOTPRINTS,
FLDEFF_POKECENTER_HEAL,
FLDEFF_USE_SECRET_POWER_TREE,
FLDEFF_USE_SECRET_POWER_SHRUB,
FLDEFF_TREE_DISGUISE,
FLDEFF_MOUNTAIN_DISGUISE,
FLDEFF_NPCFLY_OUT,
FLDEFF_USE_FLY,
FLDEFF_FLY_IN,
FLDEFF_QUESTION_MARK_ICON,
FLDEFF_FEET_IN_FLOWING_WATER,
FLDEFF_BIKE_TIRE_TRACKS,
FLDEFF_SAND_DISGUISE,
FLDEFF_USE_ROCK_SMASH,
FLDEFF_USE_DIG,
FLDEFF_SAND_PILE,
FLDEFF_USE_STRENGTH,
FLDEFF_SHORT_GRASS,
FLDEFF_HOT_SPRINGS_WATER,
FLDEFF_USE_WATERFALL,
FLDEFF_USE_DIVE,
FLDEFF_POKEBALL,
FLDEFF_HEART_ICON,
FLDEFF_NOP_47,
FLDEFF_NOP_48,
FLDEFF_POP_OUT_OF_ASH,
FLDEFF_LAVARIDGE_GYM_WARP,
FLDEFF_SWEET_SCENT,
FLDEFF_SAND_PILLAR,
FLDEFF_BUBBLES,
FLDEFF_SPARKLE,
FLDEFF_SECRET_POWER_CAVE,
FLDEFF_SECRET_POWER_TREE,
FLDEFF_SECRET_POWER_SHRUB,
FLDEFF_CUT_GRASS,
FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
FLDEFF_USE_FLY_ANCIENT_TOMB,
FLDEFF_PCTURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
FLDEFF_USE_TELEPORT,
FLDEFF_64,
FLDEFF_65,
FLDEFF_66,
};
extern s32 gFieldEffectArguments[8];
extern void (*gPostMenuFieldCallback)(void);
extern bool8 (*gFieldCallback2)(void);
@@ -109,126 +36,6 @@ bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val);
bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val);
bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val);
void PokecenterHealEffect_0(struct Task *);
void PokecenterHealEffect_1(struct Task *);
void PokecenterHealEffect_2(struct Task *);
void PokecenterHealEffect_3(struct Task *);
void HallOfFameRecordEffect_0(struct Task *);
void HallOfFameRecordEffect_1(struct Task *);
void HallOfFameRecordEffect_2(struct Task *);
void HallOfFameRecordEffect_3(struct Task *);
void PokeballGlowEffect_0(struct Sprite *);
void PokeballGlowEffect_1(struct Sprite *);
void PokeballGlowEffect_2(struct Sprite *);
void PokeballGlowEffect_3(struct Sprite *);
void PokeballGlowEffect_4(struct Sprite *);
void PokeballGlowEffect_5(struct Sprite *);
void PokeballGlowEffect_6(struct Sprite *);
void PokeballGlowEffect_7(struct Sprite *);
bool8 sub_80B6BCC(struct Task *);
bool8 sub_80B6C74(struct Task *);
bool8 sub_80B6C90(struct Task *);
bool8 sub_80B6D04(struct Task *);
bool8 sub_80B6DBC(struct Task *);
bool8 sub_80B6DD8(struct Task *);
bool8 sub_80B6E18(struct Task *);
bool8 sub_80B6EC0(struct Task *);
bool8 sub_80B6EE0(struct Task *);
bool8 sub_80B6F50(struct Task *);
bool8 sub_80B6F74(struct Task *);
bool8 sub_80B6F84(struct Task *);
bool8 sub_80B6FA8(struct Task *);
bool8 sub_80B7114(struct Task *);
bool8 sub_80B7190(struct Task *);
bool8 sub_80B71D0(struct Task *);
bool8 sub_80B7230(struct Task *);
bool8 sub_80B7270(struct Task *);
bool8 sub_80B72D0(struct Task *);
bool8 sub_80B72F4(struct Task *);
bool8 sub_80B73D0(struct Task *, struct EventObject *);
bool8 waterfall_1_do_anim_probably(struct Task *, struct EventObject *);
bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct EventObject *);
bool8 sub_80B7450(struct Task *, struct EventObject *);
bool8 sub_80B7478(struct Task *, struct EventObject *);
bool8 dive_1_lock(struct Task *);
bool8 dive_2_unknown(struct Task *);
bool8 dive_3_unknown(struct Task *);
bool8 sub_80B764C(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7684(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B76B8(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7704(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B77F8(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7814(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B78EC(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B791C(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7968(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B79BC(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7AE8(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7B18(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7B94(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7BCC(struct Task *, struct EventObject *, struct Sprite *);
bool8 sub_80B7BF4(struct Task *, struct EventObject *, struct Sprite *);
void sub_80B7D14(struct Task *);
void sub_80B7D34(struct Task *);
void sub_80B7EC4(struct Task *);
void sub_80B7EE8(struct Task *);
void sub_80B8280(struct Task *);
void sub_80B830C(struct Task *);
void sub_80B8410(struct Task *);
void sub_80B8584(struct Task *);
void sub_80B85F8(struct Task *);
void sub_80B8660(struct Task *);
void sub_80B86EC(struct Task *);
void sub_80B871C(struct Task *);
void sub_80B8770(struct Task *);
void overworld_bg_setup_2(struct Task *);
void sub_80B88E4(struct Task *);
void sub_80B8920(struct Task *);
void sub_80B898C(struct Task *);
void sub_80B89DC(struct Task *);
void sub_80B8A0C(struct Task *);
void sub_80B8A44(struct Task *);
void sub_80B8A64(struct Task *);
void sub_80B8DB4(struct Task *);
void sub_80B8E14(struct Task *);
void sub_80B8E60(struct Task *);
void sub_80B8EA8(struct Task *);
void sub_80B8F24(struct Task *);
void sub_80B9204(struct Task *);
void sub_80B925C(struct Task *);
void sub_80B92A0(struct Task *);
void sub_80B92F8(struct Task *);
void sub_80B933C(struct Task *);
void sub_80B9390(struct Task *);
void sub_80B9418(struct Task *);
void sub_80B9474(struct Task *);
void sub_80B9494(struct Task *);
void sub_80B9804(struct Task *);
void sub_80B98B8(struct Task *);
void sub_80B9924(struct Task *);
void sub_80B9978(struct Task *);
void sub_80B99F0(struct Task *);
void sub_80B9A28(struct Task *);
void sub_80B9A60(struct Task *);
void sub_80B9C28(s16*, u8);
void sub_80B9C54(s16*, u8);
void sub_80B9CDC(s16*, u8);
@@ -237,5 +44,7 @@ void sub_80B7CAC(struct Sprite*);
void sub_80B7A58(struct Sprite*);
void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority);
#endif //GUARD_FIELD_EFFECTS_H

View File

@@ -7,9 +7,10 @@
// Exported ROM declarations
u8 CreateWarpArrowSprite(void);
u8 sub_8155800(u8 oldSpriteId);
void sub_81555AC(u8, u8);
bool8 sub_8155DA0(struct EventObject *);
void sub_8155D78(struct EventObject *);
void sub_81555AC(u8, u8);
void StartAshFieldEffect(s16, s16, u16, s16);
void SetUpReflection(struct EventObject*, struct Sprite*, u8);
u32 StartFieldEffectForEventObject(u8, struct EventObject*);
@@ -17,7 +18,7 @@ u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s
void sub_8155F80(struct Sprite*);
void UpdateShadowFieldEffect(struct Sprite*);
void UpdateTallGrassFieldEffect(struct Sprite*);
void sub_81561D0(struct Sprite*);
void WaitFieldEffectSpriteAnim(struct Sprite*);
void UpdateAshFieldEffect(struct Sprite*);
void UpdateSurfBlobFieldEffect(struct Sprite*);
void sub_8156194(struct Sprite*);
@@ -30,5 +31,8 @@ void UpdateShortGrassFieldEffect(struct Sprite*);
void UpdateHotSpringsWaterFieldEffect(struct Sprite*);
void UpdateBubblesFieldEffect(struct Sprite*);
void UpdateSparkleFieldEffect(struct Sprite*);
void SetSpriteInvisible(u8 spriteId);
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
void sub_8155604(u8 spriteId, u8 value, s16 data1);
#endif //GUARD_FIELD_EFFECT_HELPERS_H

View File

@@ -1,6 +1,17 @@
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
enum {
PLAYER_AVATAR_STATE_NORMAL,
PLAYER_AVATAR_STATE_MACH_BIKE,
PLAYER_AVATAR_STATE_ACRO_BIKE,
PLAYER_AVATAR_STATE_SURFING,
PLAYER_AVATAR_STATE_UNDERWATER,
PLAYER_AVATAR_STATE_FIELD_MOVE,
PLAYER_AVATAR_STATE_FISHING,
PLAYER_AVATAR_STATE_WATERING,
};
void player_step(u8 a, u16 b, u16 c);
void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
@@ -13,7 +24,7 @@ u8 GetPlayerMovementDirection(void);
u8 PlayerGetCopyableMovement(void);
void PlayerGoSpeed1(u8);
void PlayerGoSpeed2(u8);
void PlayerGoSpeed3(u8);
void PlayerRideWaterCurrent(u8);
void PlayerGoSpeed4(u8);
void PlayerOnBikeCollide(u8);
void PlayerFaceDirection(u8 a);
@@ -48,22 +59,4 @@ bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerFacingSurfableFishableWater(void);
bool8 IsPlayerSurfingNorth(void);
bool8 ForcedMovement_None(void);
bool8 ForcedMovement_Slip(void);
bool8 ForcedMovement_WalkSouth(void);
bool8 ForcedMovement_WalkNorth(void);
bool8 ForcedMovement_WalkWest(void);
bool8 ForcedMovement_WalkEast(void);
bool8 ForcedMovement_PushedSouthByCurrent(void);
bool8 ForcedMovement_PushedNorthByCurrent(void);
bool8 ForcedMovement_PushedWestByCurrent(void);
bool8 ForcedMovement_PushedEastByCurrent(void);
bool8 ForcedMovement_SlideSouth(void);
bool8 ForcedMovement_SlideNorth(void);
bool8 ForcedMovement_SlideWest(void);
bool8 ForcedMovement_SlideEast(void);
bool8 ForcedMovement_0xBB(void);
bool8 ForcedMovement_0xBC(void);
bool8 ForcedMovement_MuddySlope(void);
#endif // GUARD_FIELD_PLAYER_AVATAR_H

View File

@@ -13,7 +13,7 @@ enum {
FLDPSN_FNT
};
void sub_80F972C(void);
int DoPoisonFieldEffect(void);
void ExecuteWhiteOut(void);
s32 DoPoisonFieldEffect(void);
#endif //GUARD_FIELD_POISON_H

View File

@@ -1,6 +0,0 @@
#ifndef GUARD_FIELD_REGION_MAP_H
#define GUARD_FIELD_REGION_MAP_H
void FieldInitRegionMap(MainCallback callback);
#endif // GUARD_FIELD_REGION_MAP_H

View File

@@ -15,5 +15,7 @@ bool32 sub_8138168(void);
bool32 sub_81381B0(void);
bool32 sub_81381F8(void);
bool32 CountSSTidalStep(u16 delta);
void sub_813A128(void);
void sub_813A878(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H

View File

@@ -35,6 +35,7 @@ bool8 sub_8088BF0(u16*, u16, u8);
struct MapConnection *sub_8088950(u8 direction, int x, int y);
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
void save_serialize_map(void);
void SpriteCB_PokeballGlow(struct Sprite *);
void SpriteCB_PokecenterMonitor(struct Sprite *);

View File

@@ -11,7 +11,7 @@ void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
void CreateRecordMixingSprite(void);
void DestroyRecordMixingSprite(void);
void overworld_poison_effect(void);
void FldeffPoison_Start(void);
void sub_80FA970(s16);
void sub_80FA9D0(void);
bool8 sub_80FADE4(u16, u8);

View File

@@ -1,7 +0,0 @@
#ifndef GUARD_FLDEFF_TELEPORT_H
#define GUARD_FLDEFF_TELEPORT_H
void hm_teleport_run_dp02scr(void);
void sub_817C94C(void);
#endif // GUARD_FLDEFF_TELEPORT_H

34
include/frontier_util.h Normal file
View File

@@ -0,0 +1,34 @@
#ifndef GUARD_FRONTIER_UTIL_H
#define GUARD_FRONTIER_UTIL_H
#define FRONTIER_BEFORE_TEXT 0
#define FRONTIER_PLAYER_LOST_TEXT 1
#define FRONTIER_PLAYER_WON_TEXT 2
void CallFrontierUtilFunc(void);
u8 sub_81A3610(void);
void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
void sub_81A3908(void);
u32 GetCurrentFacilityWinStreak(void);
void sub_81A3ACC(void);
u8 GetPlayerSymbolCountForFacility(u8 facility);
void ShowRankingHallRecordsWindow(void);
void ScrollRankingHallRecordsWindow(void);
void ClearRankingHallRecords(void);
void sub_81A4C30(void);
u8 GetFrontierBrainTrainerPicIndex(void);
u8 GetFrontierBrainTrainerClass(void);
void CopyFrontierBrainTrainerName(u8 *dst);
bool8 IsFrontierBrainFemale(void);
void SetFrontierBrainEventObjGfx_2(void);
void CreateFrontierBrainPokemon(void);
u16 GetFrontierBrainMonSpecies(u8 monId);
void SetFrontierBrainEventObjGfx(u8 facility);
u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
u8 GetFrontierBrainMonNature(u8 monId);
u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId);
s32 GetFronterBrainSymbol(void);
extern const u16 gFrontierBannedSpecies[];
#endif // GUARD_FRONTIER_UTIL_H

View File

@@ -565,12 +565,14 @@
#define WINOUT_WIN01_BG1 (1 << 1)
#define WINOUT_WIN01_BG2 (1 << 2)
#define WINOUT_WIN01_BG3 (1 << 3)
#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
#define WINOUT_WIN01_OBJ (1 << 4)
#define WINOUT_WIN01_CLR (1 << 5)
#define WINOUT_WINOBJ_BG0 (1 << 8)
#define WINOUT_WINOBJ_BG1 (1 << 9)
#define WINOUT_WINOBJ_BG2 (1 << 10)
#define WINOUT_WINOBJ_BG3 (1 << 11)
#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
#define WINOUT_WINOBJ_OBJ (1 << 12)
#define WINOUT_WINOBJ_CLR (1 << 13)

View File

@@ -35,9 +35,9 @@ void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
void LZ77UnCompWram(const void *src, void *dest);
void LZ77UnCompWram(const u32 *src, void *dest);
void LZ77UnCompVram(const void *src, void *dest);
void LZ77UnCompVram(const u32 *src, void *dest);
void RLUnCompWram(const void *src, void *dest);

View File

@@ -1,8 +1,6 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
#define NUM_EVENT_OBJECTS 16
enum
{
CONNECTION_SOUTH = 1,
@@ -194,8 +192,8 @@ struct EventObject
struct __attribute__((packed)) {
u8 x:4;
u8 y:4;
} __attribute__((aligned (1))) as_nybbles;
} __attribute__((aligned (1))) range;
} ALIGNED(1) as_nybbles;
} ALIGNED(1) range;
/*0x1A*/ u8 fieldEffectSpriteId;
/*0x1B*/ u8 warpArrowSpriteId;
/*0x1C*/ u8 movementActionId;
@@ -228,14 +226,14 @@ struct EventObjectGraphicsInfo
/*0x20*/ const union AffineAnimCmd *const *affineAnims;
};
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
#define PLAYER_AVATAR_FLAG_4 (1 << 4)
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
enum
{
@@ -311,7 +309,7 @@ struct Camera
s32 y;
};
extern struct EventObject gEventObjects[NUM_EVENT_OBJECTS];
extern struct EventObject gEventObjects[EVENT_OBJECTS_COUNT];
extern u8 gSelectedEventObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;

View File

@@ -61,11 +61,6 @@
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
// There are many quirks in the source code which have overarching behavioral differences from
// a number of other files. For example, diploma.c seems to declare rodata before each use while
// other files declare out of order and must be at the beginning. There are also a number of
@@ -119,24 +114,26 @@ enum LanguageId
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
// capacities of various saveblock objects
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
#define EVENT_OBJECTS_COUNT 16
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
#define EVENT_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 300
#define VARS_COUNT 256
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
#define TV_SHOWS_COUNT 25
#define POKE_NEWS_COUNT 16
#define PC_ITEMS_COUNT 50
#define BAG_ITEMS_COUNT 30
#define BAG_KEYITEMS_COUNT 30
#define BAG_POKEBALLS_COUNT 16
#define BAG_TMHM_COUNT 64
#define BAG_BERRIES_COUNT 46
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
#define TV_SHOWS_COUNT 25
#define POKE_NEWS_COUNT 16
#define PC_ITEMS_COUNT 50
#define BAG_ITEMS_COUNT 30
#define BAG_KEYITEMS_COUNT 30
#define BAG_POKEBALLS_COUNT 16
#define BAG_TMHM_COUNT 64
#define BAG_BERRIES_COUNT 46
#define EVENT_OBJECT_TEMPLATES_COUNT 64
#define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.
// string lengths
#define ITEM_NAME_LENGTH 14
@@ -275,26 +272,6 @@ struct BerryCrush
u32 unk;
};
struct UnknownSaveBlock2Struct
{
u8 field_0;
u8 field_1;
u8 field_2[2];
u8 field_4[8];
u8 field_C[16];
u16 field_1C[6];
u16 field_28[6];
u8 field_34[176];
u8 field_E4;
u8 field_E5;
u8 field_E6;
u8 field_E7;
u8 field_E8;
u8 field_E9;
u8 field_EA;
u8 field_EB;
}; // sizeof = 0xEC
struct ApprenticeMon
{
u16 species;
@@ -308,12 +285,12 @@ struct Apprentice
u8 lvlMode:2; // + 1
u8 field_1;
u8 number;
struct ApprenticeMon monData[3];
struct ApprenticeMon party[3];
u16 easyChatWords[6];
u8 playerId[4];
u8 playerName[PLAYER_NAME_LENGTH];
u8 language;
u32 unk40;
u32 checksum;
};
struct UnknownPokemonStruct
@@ -345,20 +322,33 @@ struct UnknownPokemonStruct
struct EmeraldBattleTowerRecord
{
/*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
/*0x01*/ u8 trainerClass;
/*0x00*/ u8 lvlMode; // 0 = level 50, 1 = level 100
/*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ struct {
u16 easyChat[6];
} greeting;
/*0x1C*/ u8 filler_1c[0x18];
/*0x10*/ u16 greeting[6];
/*0x1C*/ u16 speechWon[6];
/*0x28*/ u16 speechLost[6];
/*0x34*/ struct UnknownPokemonStruct party[4];
/*0xE4*/ u8 language;
/*0xE8*/ u32 checksum;
};
struct BattleTowerEReaderTrainer
{
/*0x00*/ u8 unk0;
/*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ u16 greeting[6];
/*0x1C*/ u16 farewellPlayerLost[6];
/*0x28*/ u16 farewellPlayerWon[6];
/*0x34*/ struct UnknownPokemonStruct party[3];
/*0xB8*/ u32 checksum;
};
struct FrontierMonData
{
u16 moves[4];
@@ -386,18 +376,14 @@ struct BattleDomeTrainer
struct BattleFrontier
{
/*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
/*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
/*0x64C*/ struct EmeraldBattleTowerRecord towerPlayer;
/*0x738*/ struct EmeraldBattleTowerRecord towerRecords[5]; // From record mixing.
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
/*0xBD8*/ u8 field_BD8[11];
/*0xBE3*/ u8 field_BE3[8];
/*0xBD8*/ u8 field_BD8[PLAYER_NAME_LENGTH + 1];
/*0xBE3*/ u8 field_BE0[POKEMON_NAME_LENGTH + 1];
/*0xBEB*/ u8 field_BEB;
/*0xBEC*/ u8 filler_BEC[16];
/*0xBFC*/ u16 ecwords_BFC[6];
/*0xC08*/ u16 ecwords_C08[6];
/*0xC14*/ u16 ecwords_C14[6];
/*0xC20*/ u8 filler_C20[0x88];
/*0xBEC*/ struct BattleTowerEReaderTrainer ereaderTrainer;
/*0xCA8*/ u8 field_CA8;
/*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a:1; // 0x4
@@ -406,16 +392,16 @@ struct BattleFrontier
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
/*0xCAA*/ u16 field_CAA[3];
/*0xCAA*/ u16 selectedPartyMons[3];
/*0xCB0*/ u16 field_CB0;
/*0xCB2*/ u16 field_CB2;
/*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
/*0xCB4*/ u16 field_CB4[20];
/*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
/*0xCF8*/ u16 field_CF8[2];
/*0xCFC*/ u16 field_CFC[5];
/*0xCE0*/ u16 towerWinStreaks[4][2];
/*0xCF0*/ u16 towerRecordWinStreaks[4][2];
/*0xD00*/ u16 field_D00;
/*0xD02*/ u16 field_D02;
/*0xD04*/ u16 field_D04;
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xD08*/ u8 field_D08_0:1;
@@ -429,47 +415,44 @@ struct BattleFrontier
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 field_D0A;
/*0xD0B*/ u8 field_D0B;
/*0xD0C*/ u16 field_D0C[2][2];
/*0xD14*/ u16 field_D14[2][2];
/*0xD1C*/ u16 field_D1C[2][2];
/*0xD0C*/ u16 domeWinStreaks[2][2];
/*0xD14*/ u16 domeRecordWinStreaks[2][2];
/*0xD1C*/ u16 domeTotalChampionships[2][2];
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
/*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xD64*/ u16 field_DC4[2];
/*0xDC8*/ u16 field_DC8[2][2];
/*0xDD0*/ u16 field_DD0[2][2];
/*0xD64*/ u16 domeMonIds[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xDC4*/ u16 field_DC4;
/*0xDC6*/ u16 field_DC6;
/*0xDC8*/ u16 palaceWinStreaks[2][2];
/*0xDD0*/ u16 palaceRecordWinStreaks[2][2];
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
/*0xDE2*/ u16 field_DE2[2][2];
/*0xDEA*/ u16 field_DEA[2];
/*0xDEE*/ u16 field_DEE;
/*0xDF0*/ u16 field_DF0;
/*0xDF2*/ u16 field_DF2;
/*0xDF4*/ u16 field_DF4;
/*0xDF6*/ u16 field_DF6;
/*0xDF8*/ u16 field_DF8;
/*0xDFA*/ u16 field_DFA;
/*0xDFC*/ u16 field_DFC;
/*0xDFE*/ u16 field_DFE;
/*0xE00*/ u16 field_E00;
/*0xDDA*/ u16 arenaWinStreaks[2];
/*0xDDE*/ u16 arenaRecordStreaks[2];
/*0xDE2*/ u16 factoryWinStreaks[2][2];
/*0xDEA*/ u16 factoryRecordWinStreaks[2][2];
/*0xDF6*/ u16 factoryRentsCount[2][2];
/*0xDFA*/ u16 factoryRecordRentsCount[2][2];
/*0xE02*/ u16 field_E02;
/*0xE04*/ u16 field_E04[2];
/*0xE08*/ u16 field_E08[9];
/*0xE1A*/ u16 field_E1A[2];
/*0xE1E*/ u16 field_E1E[7];
/*0xE04*/ u16 pikeWinStreaks[2];
/*0xE08*/ u16 pikeRecordStreaks[2];
/*0xE0C*/ u16 pikeTotalStreaks[2];
/*0xE10*/ u8 field_E10_1:3;
/*0xE10*/ u8 field_E10_2:4;
/*0xE10*/ u8 field_E10_3:1;
/*0xE12*/ u16 field_E12[3];
/*0xE18*/ u16 field_E18;
/*0xE1A*/ u16 pyramidWinStreaks[2];
/*0xE1E*/ u16 pyramidRecordStreaks[2];
/*0xE22*/ u16 field_E22[4];
/*0xE2A*/ u8 field_E2A;
/*0xE2C*/ struct PyramidBag pyramidBag;
/*0xE58*/ u16 field_E58;
/*0xE68*/ u8 field_E68;
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
/*0xE70*/ struct Struct_field_E70 field_E70[6];
/*0xEB8*/ u16 frontierBattlePoints;
/*0xEBA*/ u8 field_EBA;
/*0xEBB*/ u8 field_EBB;
/*0xEBC*/ u8 field_EBC;
/*0xEBD*/ u8 field_EBD;
/*0xEBE*/ u8 field_EBE;
/*0xEBF*/ u8 field_EBF;
/*0xEB8*/ u16 battlePoints;
/*0xEBA*/ u16 field_EBA;
/*0xEBC*/ u32 battlesCount;
/*0xEC0*/ u16 field_EC0[16];
/*0xEE0*/ u8 field_EE0;
/*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH + 1];
@@ -502,6 +485,24 @@ struct PlayersApprentice
/*0xB8*/ struct Sav2_B8 field_B8[9];
};
struct RankingHall1P
{
u8 id[4];
u16 winStreak;
u8 name[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct RankingHall2P
{
u8 id1[4];
u8 id2[4];
u16 winStreak;
u8 name1[PLAYER_NAME_LENGTH + 1];
u8 name2[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@@ -526,12 +527,13 @@ struct SaveBlock2
/*0xA8*/ u32 field_A8;
/*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice;
/*0xDC*/ struct Apprentice apprentices[4];
/*0xDC*/ struct Apprentice apprentices[4]; // From record mixing.
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
/*0x21C*/ u8 field_21C[1032];
/*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
/*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing.
/*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing.
/*0x624*/ u16 contestLinkResults[5][4]; // 4 positions for 5 categories.
/*0x64C*/ struct BattleFrontier frontier;
}; // sizeof=0xF2C
@@ -901,7 +903,7 @@ struct SaveBlock1
/*0x9C8*/ u16 trainerRematchStepCounter;
/*0x9CA*/ u8 trainerRematches[100];
/*0xA30*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT];
/*0xC70*/ struct EventObjectTemplate eventObjectTemplates[64];
/*0xC70*/ struct EventObjectTemplate eventObjectTemplates[EVENT_OBJECT_TEMPLATES_COUNT];
/*0x1270*/ u8 flags[FLAGS_COUNT];
/*0x139C*/ u16 vars[VARS_COUNT];
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
@@ -976,13 +978,4 @@ struct UnkStruct_8054FF8
u16 field_C;
};
struct Bitmap // TODO: Find a better spot for this
{
u8* pixels;
u32 width:16;
u32 height:16;
};
extern u8 gReservedSpritePaletteCount;
#endif // GUARD_GLOBAL_H

File diff suppressed because it is too large Load Diff

View File

@@ -2,22 +2,23 @@
#define GUARD_INTERNATIONAL_STRING_UTIL_H
#include "menu.h"
#include "list_menu.h"
void sub_81DB52C(const u8 *src);
void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language);
s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2);
// sub_81DB41C
// CopyMonCategoryText
// sub_81DB494
void PadNameString(u8 *dst, u8 padWith);
void sub_81DB52C(u8 *src);
void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language);
int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth);
int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth);
int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing);
int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing);
int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1);
int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2);
int sub_81DB41C(const struct ListMenuTemplate *listMenu);
void CopyMonCategoryText(int dexNum, u8 *dest);
u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth);
void PadNameString(u8 *dest, u8 padChar);
void sub_81DB554(u8 *, u8);
// sub_81DB5AC
u32 sub_81DB604(const u8 *);
// sub_81DB620
void sub_81DB5AC(u8 *);
int sub_81DB604(u8 *);
void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows);
#endif // GUARD_INTERNATIONAL_STRING_UTIL_H

View File

@@ -59,5 +59,6 @@ void bag_menu_mail_related(void);
void CB2_BagMenuFromStartMenu(void);
u8 sub_81ABB2C(u8 pocketId);
bool8 UseRegisteredKeyItemOnField(void);
void CB2_GoToSellMenu(void);
#endif //GUARD_item_menu_H

View File

@@ -1,3 +1,6 @@
#ifndef GUARD_LIBRFU_H
#define GUARD_LIBRFU_H
#include "main.h"
enum
@@ -81,7 +84,7 @@ struct UnkLinkRfuStruct_02022B14Substruct
u8 playerTrainerId[2];
};
struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14
{
struct UnkLinkRfuStruct_02022B14Substruct unk_00;
u8 unk_04[4];
@@ -169,13 +172,14 @@ struct RfuUnk3
u32 unk_dc;
};
struct RfuUnk5Sub {
struct RfuUnk5Sub
{
u16 unk_00;
u8 unk_02;
u16 unk_04;
struct UnkLinkRfuStruct_02022B14 unk_06;
u8 fill_13[2];
u8 unk_15[8];
u8 fill_13[1];
u8 playerName[PLAYER_NAME_LENGTH + 1];
};
struct RfuUnk5
@@ -252,3 +256,5 @@ void rfu_UNI_readySendData(u8 a0);
void rfu_UNI_clearRecvNewDataFlag(u8 a0);
void rfu_REQ_PARENT_resumeRetransmitAndChange(void);
void rfu_NI_setSendData(u8, u8, u8 *, u8);
#endif // GUARD_LIBRFU_H

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_LINK_RFU_H
#define GUARD_LINK_RFU_H
#include "librfu.h"
// Exported type declarations
struct UnkLinkRfuStruct_02022B2C
@@ -32,7 +34,8 @@ struct UnkLinkRfuStruct_02022B44
u8 fill_84[0x58];
};
struct UnkRfuStruct_1 {
struct UnkRfuStruct_1
{
/* 0x000 */ u8 unk_00;
/* 0x001 */ u8 unk_01;
/* 0x002 */ vu8 unk_02;
@@ -75,7 +78,8 @@ struct UnkRfuStruct_1 {
/* 0xeb4 */ u8 filler_e64[12];
};
struct UnkRfuStruct_2_Sub_6c {
struct UnkRfuStruct_2_Sub_6c
{
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 unk_02;
/* 0x04 */ const u8 *unk_04;
@@ -86,7 +90,8 @@ struct UnkRfuStruct_2_Sub_6c {
/* 0x12 */ u8 unk_12;
};
struct UnkRfuStruct_2_Sub_124 {
struct UnkRfuStruct_2_Sub_124
{
/* 0x000 */ u8 unk_00[32][70];
/* 0x8c0 */ vu8 unk_8c0;
/* 0x8c1 */ vu8 unk_8c1;
@@ -94,7 +99,8 @@ struct UnkRfuStruct_2_Sub_124 {
/* 0x8c3 */ vu8 unk_8c3;
};
struct UnkRfuStruct_2_Sub_9e8 {
struct UnkRfuStruct_2_Sub_9e8
{
/* 0x000 */ u8 unk_00[40][14];
/* 0x230 */ vu8 unk_230;
/* 0x231 */ vu8 unk_231;
@@ -102,14 +108,16 @@ struct UnkRfuStruct_2_Sub_9e8 {
/* 0x233 */ vu8 unk_233;
};
struct UnkRfuStruct_2_Sub_c1c {
struct UnkRfuStruct_2_Sub_c1c
{
/* 0x00 */ u8 unk_00[2][14];
/* 0x1c */ vu8 unk_1c;
/* 0x1d */ vu8 unk_1d;
/* 0x1e */ vu8 unk_1e;
};
struct UnkRfuStruct_Sub_Unused {
struct UnkRfuStruct_Sub_Unused
{
/* 0x000 */ u8 unk_00[2][256];
/* 0x200 */ vu8 unk_200;
/* 0x201 */ vu8 unk_201;
@@ -117,7 +125,8 @@ struct UnkRfuStruct_Sub_Unused {
/* 0x203 */ vu8 unk_203;
};
struct UnkRfuStruct_2 {
struct UnkRfuStruct_2
{
/* 0x000 */ void (*unk_00)(void);
/* 0x004 */ u16 unk_04;
/* 0x006 */ u8 filler_06[4];
@@ -149,7 +158,10 @@ struct UnkRfuStruct_2 {
/* 0x0fe */ u16 unk_fe;
/* 0x100 */ u16 unk_100;
/* 0x102 */ u8 unk_102;
/* 0x103 */ u8 filler_103[0x21];
/* 0x103 */ u8 filler_103[0x10A - 0x103];
/* 0x10A */ struct UnkLinkRfuStruct_02022B14 unk_10A;
u8 filler_;
u8 playerName[PLAYER_NAME_LENGTH + 1];
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
@@ -184,7 +196,8 @@ struct UnkRfuStruct_2 {
/* 0xcee */ u8 unk_cee[4];
}; // size = 0xcf4
struct UnkRfuStruct_8010A14 {
struct UnkRfuStruct_8010A14
{
char unk_00[15];
u8 unk_0f;
u8 unk_10[4];
@@ -252,17 +265,18 @@ void sub_800E3A8(void);
void sub_800ED10(void);
void sub_800ED28(void);
void sub_8011090(u8 a0, u32 a1, u32 a2);
void sub_8011FC8(u8 *a0, u16 a1);
void sub_8011FC8(const u8 *src, u16 trainerId);
void sub_8010FA0(bool32 a0, bool32 a1);
void sub_8010F60(void);
void sub_8010FCC(u32 a0, u32 a1, u32 a2);
void sub_8011C84(void);
void sub_8012188(const u8 *a0, struct UnkLinkRfuStruct_02022B14 *arg1, u8 arg2);
void sub_8012188(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2);
bool32 sub_8011B90(void);
void sub_800FE50(u16 *a0);
bool32 sub_800E540(u16 id, u8 *name);
void sub_8011DE0(u32 arg0);
u8 sub_801100C(int a0);
void sub_800EF7C(void);
bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
#endif //GUARD_LINK_RFU_H

View File

@@ -17,7 +17,7 @@ void SetSaveBlocksPointers(u16 offset);
void MoveSaveBlocks_ResetHeap(void);
u32 GetSecretBase2Field_9(void);
void ClearSecretBase2Field_9(void);
void sub_8076D48(void);
void SetSecretBase2Field_9(void);
void sub_8076D5C(void);
void sav2_gender2_inplace_and_xFE(void);
void SavePlayerParty(void);
@@ -30,6 +30,5 @@ void LoadPlayerBag(void);
void SavePlayerBag(void);
void ApplyNewEncryptionKeyToHword(u16 *hWord, u32 newKey);
void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey);
void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
#endif // GUARD_LOAD_SAVE_H

View File

@@ -1,8 +1,6 @@
#ifndef GUARD_MAIN_H
#define GUARD_MAIN_H
#include "global.h"
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
@@ -53,7 +51,7 @@ extern bool8 gSoftResetDisabled;
extern IntrFunc gIntrTable[];
extern u8 gLinkVSyncDisabled;
extern u32 IntrMain_Buffer[];
extern u8 gPcmDmaCounter;
extern s8 gPcmDmaCounter;
void AgbMain(void);
void SetMainCallback2(MainCallback callback);

View File

@@ -26,16 +26,16 @@ u16 RunTextPrintersAndIsPrinter0Active(void);
void sub_81973A4(void);
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 windowId, bool8 copyToVram);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
void DisplayYesNoMenu(void);
u32 GetPlayerTextSpeed(void);
u8 GetPlayerTextSpeedDelay(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16));
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
@@ -44,8 +44,8 @@ void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 Menu_ProcessInputNoWrapAround(void);
s8 Menu_ProcessInput(void);
s8 Menu_ProcessInputNoWrap(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
@@ -53,7 +53,7 @@ bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrap_(void);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
@@ -83,10 +83,12 @@ void sub_819A344(u8 a0, u8 *dest, u8 color);
void RemoveMapNamePopUpWindow(void);
u8 GetMapNamePopUpWindowId(void);
u8 AddMapNamePopUpWindow(void);
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing);
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram);
void sub_8197AE8(bool8 copyToVram);
void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs);
s8 Menu_ProcessInputGridLayout(void);
#endif // GUARD_MENU_H

View File

@@ -77,7 +77,7 @@ bool8 MetatileBehavior_IsBerryTreeSoil(u8);
bool8 MetatileBehavior_IsAshGrass(u8);
bool8 MetatileBehavior_IsFootprints(u8);
bool8 MetatileBehavior_IsBridge(u8);
u8 MetatileBehavior_GetBridgeSth(u8);
u8 MetatileBehavior_GetBridgeType(u8);
u8 MetatileBehavior_8089510(u8);
bool8 MetatileBehavior_IsLandWildEncounter(u8);
bool8 MetatileBehavior_IsWaterWildEncounter(u8);

9
include/mossdeep_gym.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef GUARD_MOSSDEEP_GYM_H
#define GUARD_MOSSDEEP_GYM_H
void InitMossdeepGymTiles(bool8 arg0);
void FinishMossdeepGymTiles(void);
u16 MossdeepGym_MoveEvents(u8 arg0);
void MossdeepGym_TurnEvents(void);
#endif // GUARD_MOSSDEEP_GYM_H

View File

@@ -1,9 +1,12 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
void WriteUnalignedWord(u32 var, u8 *dataPtr);
u32 ReadUnalignedWord(u8* dataPtr);
void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
extern bool8 gDifferentSaveFile;
extern bool8 gUnknown_020322D5; // The purpose of this variable is unknown as it's read only 3 times(2 times in contest.c and 1 time in berry_blender.c), never written to.
void SetTrainerId(u32 trainerId, u8 *dst);
u32 GetTrainerId(u8 *trainerId);
void CopyTrainerId(u8 *dst, u8 *src);
void NewGameInitData(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);

View File

@@ -22,9 +22,9 @@ extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4];
extern u16 *gBGTilemapBuffers1;
extern u16 *gBGTilemapBuffers2;
extern u16 *gBGTilemapBuffers3;
extern u16 gUnknown_03005DA8;
extern void (*gFieldCallback)(void);
extern bool8 (*gFieldCallback2)(void);
extern u8 gUnknown_03005DB4;
extern u8 gFieldLinkPlayerCount;
@@ -47,13 +47,8 @@ void Overworld_SetEventObjTemplateMovementType(u8 localId, u8 movementType);
const struct MapLayout *GetMapLayout(void);
void ApplyCurrentWarp(void);
void set_warp2_warp3_to_neg_1(void);
void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
bool32 IsDummyWarp(struct WarpData *warp);
struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);
struct MapHeader const *const GetDestinationWarpMapHeader(void);
void LoadCurrentMapData(void);
void LoadSaveblockMapHeader(void);
void SetPlayerCoordsFromWarp(void);
void WarpIntoMap(void);
void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId);
@@ -67,15 +62,13 @@ void sub_8084D5C(s16 a1, s16 a2);
void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8084E14(void);
void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedDiveWarpAsDestination(void);
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedHoleWarpAsDestination(s16 x, s16 y);
void warp1_set_to_sav1w(void);
void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void sub_8084F6C(u8 a1);
void sub_8084FAC(void);
void sub_8084FAC(int unused);
const struct MapConnection *GetMapConnection(u8 dir);
bool8 SetDiveWarp(u8 dir, u16 x, u16 y);
bool8 SetDiveWarpEmerge(u16 x, u16 y);
bool8 SetDiveWarpDive(u16 x, u16 y);
void mliX_load_map(u8 mapGroup, u8 mapNum);
@@ -105,7 +98,7 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter);
u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
u8 GetMapTypeByWarpData(struct WarpData *warp);
u8 Overworld_GetMapTypeOfSaveblockLocation(void);
u8 get_map_light_from_warp0(void);
u8 GetLastUsedWarpMapType(void);
bool8 is_map_type_1_2_3_5_or_6(u8 mapType);
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
bool8 Overworld_MapTypeIsIndoors(u8 mapType);

View File

@@ -77,6 +77,5 @@ extern void sub_81B67C8(u8, TaskFunc);
extern void sub_81B79E8(u8, TaskFunc);
extern void sub_81B6DC4(u8, TaskFunc);
extern void sub_81B7C74(u8, TaskFunc);
extern u16 ItemIdToBattleMoveId(u16);
#endif // GUARD_PARTY_MENU_H

View File

@@ -1,12 +1,8 @@
#ifndef GUARD_POKEDEX_H
#define GUARD_POKEDEX_H
void ResetPokedex(void);
void CopyMonCategoryText(u32 species, u8 *dst);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
extern u8 gUnknown_030060B0;
extern void (*gUnknown_030060B4)(void);
enum
{
@@ -16,6 +12,24 @@ enum
FLAG_SET_CAUGHT
};
struct PokedexEntry
{
/*0x00*/ u8 categoryName[12];
/*0x0C*/ u16 height; //in decimeters
/*0x0E*/ u16 weight; //in hectograms
/*0x10*/ const u8 *description;
/*0x14*/ u16 unused;
/*0x16*/ u16 pokemonScale;
/*0x18*/ u16 pokemonOffset;
/*0x1A*/ u16 trainerScale;
/*0x1C*/ u16 trainerOffset;
}; /*size = 0x20*/
void ResetPokedex(void);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 sub_80C0E9C(u16, s16, s16, u16);

View File

@@ -1,6 +1,6 @@
#ifndef GUARD_POKEDEX_AREA_SCREEN_H
#define GUARD_POKEDEX_AREA_SCREEN_H
void sub_813D3D8(u16, u8*);
void ShowPokedexAreaScreen(u16, u8*);
#endif // GUARD_POKEDEX_AREA_SCREEN_H

View File

@@ -13,7 +13,7 @@ struct CryRelatedStruct
bool8 sub_8145354(struct CryRelatedStruct*, u8);
void sub_814545C(u8);
void sub_8145534(u16);
void sub_8145914(void);
bool8 sub_8145850(struct CryRelatedStruct*, u8);
void sub_8145914(void);
#endif

View File

@@ -112,25 +112,6 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
#define TYPE_POISON 0x03
#define TYPE_GROUND 0x04
#define TYPE_ROCK 0x05
#define TYPE_BUG 0x06
#define TYPE_GHOST 0x07
#define TYPE_STEEL 0x08
#define TYPE_MYSTERY 0x09
#define TYPE_FIRE 0x0a
#define TYPE_WATER 0x0b
#define TYPE_GRASS 0x0c
#define TYPE_ELECTRIC 0x0d
#define TYPE_PSYCHIC 0x0e
#define TYPE_ICE 0x0f
#define TYPE_DRAGON 0x10
#define TYPE_DARK 0x11
#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused
#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused
@@ -151,7 +132,6 @@
#define STATUS_PRIMARY_FAINTED 0x7
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
struct PokemonSubstruct0
@@ -293,8 +273,6 @@ struct Unknown_806F160_Struct
struct SpriteFrameImage *frameImages;
};
#define BATTLE_STATS_NO 8
struct BattlePokemon
{
/*0x00*/ u16 species;
@@ -312,7 +290,7 @@ struct BattlePokemon
/*0x17*/ u32 spDefenseIV:5;
/*0x17*/ u32 isEgg:1;
/*0x17*/ u32 altAbility:1;
/*0x18*/ s8 statStages[BATTLE_STATS_NO];
/*0x18*/ s8 statStages[NUM_BATTLE_STATS];
/*0x20*/ u8 ability;
/*0x21*/ u8 type1;
/*0x22*/ u8 type2;
@@ -468,7 +446,6 @@ extern const u8 gUnknown_08329D2A[];
extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const s8 gNatureStatTable[][5];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
@@ -486,7 +463,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
bool8 sub_80688F8(u8 caseId, u8 battlerId);
@@ -595,8 +572,8 @@ u16 GetBattleBGM(void);
void PlayBattleBGM(void);
void PlayMapChosenOrBattleBGM(u16 songId);
void sub_806E694(u16 songId);
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
const u32 *GetMonFrontSpritePal(struct Pokemon *mon);
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
bool32 IsHMMove2(u16 move);

View File

@@ -1,35 +1,13 @@
#ifndef GUARD_RECORD_MIXING_H
#define GUARD_RECORD_MIXING_H
// Exported type declarations
struct UnkRecordMixingStruct2a
struct PlayerHallRecords
{
u8 playerId[4];
u16 field_4;
u8 playerName[PLAYER_NAME_LENGTH + 1];
u8 language;
struct RankingHall1P onePlayer[9][2];
struct RankingHall2P twoPlayers[2];
};
struct UnkRecordMixingStruct2b
{
u8 playerId1[4];
u8 playerId2[4];
u16 field_8;
u8 playerName1[PLAYER_NAME_LENGTH + 1];
u8 playerName2[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct UnkRecordMixingStruct2
{
struct UnkRecordMixingStruct2a field_0[9][2];
struct UnkRecordMixingStruct2b field_120[2];
};
// Exported RAM declarations
// Exported ROM declarations
void sub_80E6BE8(void);
void sub_80E8260(struct UnkRecordMixingStruct2 *arg0);
void GetPlayerHallRecords(struct PlayerHallRecords *dst);
#endif //GUARD_RECORD_MIXING_H

View File

@@ -14,16 +14,16 @@ u8 sub_81850D0(void);
u8 sub_81850DC(u8 *arg0);
void sub_81851A8(u8 *arg0);
bool32 CanCopyRecordedBattleSaveData(void);
u32 MoveRecordedBattleToSaveData(void);
bool32 MoveRecordedBattleToSaveData(void);
void PlayRecordedBattle(void (*CB2_After)(void));
u8 GetRecordedBattleFrontierFacility(void);
u8 sub_8185EAC(void);
u8 GetRecordedBattleFronterBrainSymbol(void);
void RecordedBattle_SaveParties(void);
u8 GetActiveBattlerLinkPlayerGender(void);
void sub_8185F84(void);
void sub_8185F90(u16 arg0);
u8 sub_8185FAC(void);
u8 GetBattleStyleInRecordedBattle(void);
u8 GetBattleSceneInRecordedBattle(void);
u8 GetTextSpeedInRecordedBattle(void);
void RecordedBattle_CopyBattlerMoves(void);
void sub_818603C(u8 arg0);
@@ -31,11 +31,11 @@ u32 GetAiScriptsInRecordedBattle(void);
void sub_8186444(void);
bool8 sub_8186450(void);
void sub_8186468(u8 *dst);
u8 sub_818649C(void);
u8 sub_81864A8(void);
u8 sub_81864B4(void);
u8 sub_81864C0(void);
void sub_81864CC(void);
u16 *sub_81864E0(void);
u8 GetRecordedBattleRecordMixFriendClass(void);
u8 GetRecordedBattleApprenticeId(void);
u8 GetRecordedBattleRecordMixFriendLanguage(void);
u8 GetRecordedBattleApprenticeLanguage(void);
void RecordedBattle_SaveBattleOutcome(void);
u16 *GetRecordedBattleEasyChatSpeech(void);
#endif // GUARD_RECORDED_BATTLE_H

View File

@@ -78,6 +78,15 @@ struct RegionMap {
/*0x284*/ u8 cursorLargeImage[0x600];
}; // size = 0x884
struct RegionMapLocation
{
u8 x;
u8 y;
u8 width;
u8 height;
const u8 *name;
};
// Exported RAM declarations
// Exported ROM declarations
@@ -95,5 +104,10 @@ u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
u8 *sub_81245DC(u8 *dest, u16 mapSecId);
u8 *sub_8124610(u8 *dest, u16 mapSecId);
u16 CorrectSpecialMapSecId(u16 mapSecId);
void sub_8122D88(struct RegionMap *regionMap);
void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y);
extern const struct RegionMapLocation gRegionMapEntries[];
#endif //GUARD_REGION_MAP_H

View File

@@ -54,7 +54,12 @@ enum
SAVE_HALL_OF_FAME_ERASE_BEFORE // unused
};
#define SECTION_ID_RECORDED_BATTLE 31
#define SECTOR_SAVE_SLOT_LENGTH 14
#define SECTOR_ID_HOF_1 28
#define SECTOR_ID_HOF_2 29
#define SECTOR_ID_TRAINER_HILL 30
#define SECTOR_ID_RECORDED_BATTLE 31
#define SECTORS_COUNT 32
extern u16 gLastWrittenSector;
extern u32 gLastSaveCounter;
@@ -72,29 +77,9 @@ extern struct SaveSection gSaveDataBuffer;
void ClearSaveData(void);
void Save_ResetSaveCounters(void);
bool32 SetDamagedSectorBits(u8 op, u8 bit);
u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location);
u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
u8 TryWriteSector(u8 sector, u8 *data);
u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location);
u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location);
u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
u8 sub_81530DC(u8 a1, u8 *data, u16 size);
u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
u16 CalculateChecksum(void *data, u16 size);
void UpdateSaveAddresses(void);
u8 HandleSavingData(u8 saveType);
u8 TrySavingData(u8 saveType);
u8 sub_8153380(void);
bool8 sub_8153380(void);
bool8 sub_81533AC(void);
u8 sub_81533E0(void);
u8 sub_8153408(void);

View File

@@ -1,7 +1,6 @@
#ifndef GUARD_SAVE_LOCATION_H
#define GUARD_SAVE_LOCATION_H
bool32 sub_81AFCEC(void);
void TrySetMapSaveWarpStatus(void);
void sub_81AFDA0(void);
void sub_81AFDD0(void);

View File

@@ -1,7 +1,7 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
extern const u8 *const gUnknown_0858BAF0[9];
extern const u8 *const gUnknown_0858BAF0[];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
@@ -9,10 +9,10 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
s32 convert_pixel_width_to_tile_width(s32);
int convert_pixel_width_to_tile_width(int);
u8 CreateWindowFromRect(u8, u8, u8, u8);
void sub_80E2A78(u8);
u32 display_text_and_get_width(const u8*, u32);
u8 sub_80E2D5C(u8 arg0, u8 tileWidth);
int display_text_and_get_width(const u8*, int);
int sub_80E2D5C(int arg0, int tileWidth);
#endif //GUARD_SCRIPT_MENU_H

View File

@@ -1,8 +1,8 @@
#ifndef GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
u16 sub_80F903C(void);
void ReducePlayerPartyToThree(void);
void ReducePlayerPartyToSelectedMons(void);
void HealPlayerParty(void);
#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H

View File

@@ -1,7 +1,7 @@
#ifndef GUARD_SHOP_H
#define GUARD_SHOP_H
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
extern EWRAM_DATA struct ItemSlot gMartPurchaseHistory[3];
enum
{
@@ -10,9 +10,19 @@ enum
MART_TYPE_2,
};
// shop view window NPC info enum
enum
{
EVENT_OBJ_ID,
X_COORD,
Y_COORD,
ANIM_NUM,
LAYER_TYPE
};
struct MartInfo
{
/*0x0*/ void (* callback) (void);
/*0x0*/ void (*callback)(void);
/*0x4*/ const struct MenuAction *menuActions;
/*0x8*/ const u16 *itemList;
/*0xC*/ u16 itemCount;
@@ -20,23 +30,18 @@ struct MartInfo
/*0xF*/ u8 martType;
};
struct BuyMenuLabel
{
u8 label[16];
};
struct ShopData
{
/*0x0000*/ u8 tilemapBuffers[4][0x800];
/*0x2000*/ u8 filler2000[0x4];
/*0x2004*/ u16 unk2004;
/*0x2006*/ u8 filler2006[0x2];
/*0x2008*/ u16 unk2008;
/*0x200A*/ u8 filler200A;
/*0x0000*/ u16 tilemapBuffers[4][0x400];
/*0x2000*/ u32 totalCost;
/*0x2004*/ u16 itemsShowed;
/*0x2006*/ u16 selectedRow;
/*0x2008*/ u16 scrollOffset;
/*0x200A*/ u8 maxQuantity;
/*0x200B*/ u8 scrollIndicatorsTaskId;
/*0x200C*/ u8 unk200C;
/*0x200D*/ u8 unk200D[2];
/*0x200F*/ u8 filler200F[0xA1];
/*0x200C*/ u8 iconSlot;
/*0x200D*/ u8 itemSpriteIds[2];
/*0x2010*/ s16 viewportObjects[16][5];
};
void CreatePokemartMenu(const u16 *);

View File

@@ -6,21 +6,21 @@
struct SpriteSheet
{
const u8 *data; // Raw uncompressed pixel data
const void *data; // Raw uncompressed pixel data
u16 size;
u16 tag;
};
struct CompressedSpriteSheet
{
const u8 *data; // LZ77 compressed pixel data
const u32 *data; // LZ77 compressed pixel data
u16 size; // Uncompressed size of pixel data
u16 tag;
};
struct SpriteFrameImage
{
const u8 *data;
const void *data;
u16 size;
};
@@ -36,7 +36,7 @@ struct SpritePalette
struct CompressedSpritePalette
{
const u8 *data; // LZ77 compressed palette data
const u32 *data; // LZ77 compressed palette data
u16 tag;
};
@@ -103,12 +103,19 @@ struct AffineAnimJumpCmd
u16 target;
};
struct AffineAnimEndCmdAlt
{
s16 type;
u16 val;
};
union AffineAnimCmd
{
s16 type;
struct AffineAnimFrameCmd frame;
struct AffineAnimLoopCmd loop;
struct AffineAnimJumpCmd jump;
struct AffineAnimEndCmdAlt end; // unused in code
};
#define AFFINEANIMCMDTYPE_LOOP 0x7FFD
@@ -123,6 +130,8 @@ union AffineAnimCmd
{.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
#define AFFINEANIMCMD_END \
{.type = AFFINEANIMCMDTYPE_END}
#define AFFINEANIMCMD_END_ALT(_val) \
{.end = {.type = AFFINEANIMCMDTYPE_END, .val = _val}}
struct AffineAnimState
{
@@ -235,11 +244,15 @@ extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern const struct SpriteTemplate gDummySpriteTemplate;
extern u8 gReservedSpritePaletteCount;
extern struct Sprite gSprites[];
extern u8 gOamLimit;
extern u16 gReservedSpriteTileCount;
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern struct Sprite gSprites[];
extern struct OamMatrix gOamMatrices[];
extern bool8 gAffineAnimsDisabled;
void ResetSpriteData(void);
void AnimateSprites(void);

View File

@@ -1,7 +1,7 @@
#ifndef GUARD_START_MENU_H
#define GUARD_START_MENU_H
extern bool8 (*gMenuCallback)(void); // Defined in sym_common.txt
extern bool8 (*gMenuCallback)(void);
void sub_809FA18(void);
void sub_809FA34(u8 taskId);

View File

@@ -2,9 +2,9 @@
#define GUARD_STARTER_CHOOSE_H
extern const u16 gBirchBagGrassPal[2][16];
extern const u8 gBirchBagTilemap[];
extern const u8 gBirchGrassTilemap[];
extern const u8 gBirchHelpGfx[];
extern const u32 gBirchBagTilemap[];
extern const u32 gBirchGrassTilemap[];
extern const u32 gBirchHelpGfx[];
u16 GetStarterPokemon(u16 chosenStarterId);
void CB2_ChooseStarter(void);

View File

@@ -1,6 +1,11 @@
#ifndef GUARD_STRING_UTIL_H
#define GUARD_STRING_UTIL_H
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
enum StringConvertMode
{
STR_CONV_MODE_LEFT_ALIGN,
@@ -34,7 +39,6 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
bool32 IsStringJapanese(u8 *str);
bool32 sub_800924C(u8 *str, s32 n);
u8 GetExtCtrlCodeLength(u8 code);
static const u8 *SkipExtCtrlCode(const u8 *s);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
void ConvertInternationalString(u8 *s, u8 language);
void StripExtCtrlCodes(u8 *str);

View File

@@ -15,6 +15,28 @@ extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
extern const u8 gText_Normal[];
extern const u8 gText_Super[];
extern const u8 gText_Hyper[];
extern const u8 gText_Master[];
extern const u8 gText_Cool2[];
extern const u8 gText_Beauty2[];
extern const u8 gText_Cute2[];
extern const u8 gText_Smart2[];
extern const u8 gText_Tough2[];
extern const u8 gText_Items[];
extern const u8 gText_Key_Items[];
extern const u8 gText_Poke_Balls[];
extern const u8 gText_TMs_Hms[];
extern const u8 gText_Berries2[];
extern const u8 gText_Single2[];
extern const u8 gText_Double2[];
extern const u8 gText_Multi[];
extern const u8 gText_MultiLink[];
extern const u8 gText_Single[];
extern const u8 gText_Double[];
@@ -201,6 +223,14 @@ extern const u8 gText_Peak[];
extern const u8 gText_SafariBallStock[];
extern const u8 gText_BattlePyramidFloor[];
extern const u8 gText_MenuOptionPokedex[];
extern const u8 gText_MenuOptionPokemon[];
extern const u8 gText_MenuOptionBag[];
extern const u8 gText_MenuOptionPokenav[];
extern const u8 gText_MenuOptionSave[];
extern const u8 gText_MenuOptionOption[];
extern const u8 gText_MenuOptionExit[];
// save menu texts
extern const u8 gText_ConfirmSave[];
extern const u8 gText_DifferentSaveFile[];
@@ -862,5 +892,522 @@ extern const u8 gText_CanIHelpWithAnythingElse[];
extern const u8 gText_AnythingElseICanHelp[];
extern const u8 gText_QuitShopping[];
extern const u8 gText_PokedollarVar1[];
extern const u8 gText_YouDontHaveMoney[];
extern const u8 gText_Var1CertainlyHowMany2[];
extern const u8 gText_Var1CertainlyHowMany[];
extern const u8 gText_Var1IsItThatllBeVar2[];
extern const u8 gText_YouWantedVar1ThatllBeVar2[];
extern const u8 gText_InBagVar1[];
extern const u8 gText_Var1AndYouWantedVar2[];
extern const u8 gText_HereYouGoThankYou[];
extern const u8 gText_NoMoreRoomForThis[];
extern const u8 gText_ThankYouIllSendItHome[];
extern const u8 gText_ThanksIllSendItHome[];
extern const u8 gText_SpaceForVar1Full[];
extern const u8 gText_ThrowInPremierBall[];
extern const u8 gText_ShopBuy[];
extern const u8 gText_ShopSell[];
extern const u8 gText_ShopQuit[];
extern const u8 gText_OhABite[];
extern const u8 gText_PokemonOnHook[];
extern const u8 gText_NotEvenANibble[];
extern const u8 gText_ItGotAway[];
extern const u8 gText_HallOfFame[];
extern const u8 gText_LogOff[];
extern const u8 gText_LanettesPC[];
extern const u8 gText_SomeonesPC[];
extern const u8 gText_PlayersPC[];
extern const u8 gText_WhichPCShouldBeAccessed[];
extern const u8 gUnknown_085EAD37[];
extern const u8 gUnknown_085EAD41[];
extern const u8 gUnknown_085EAD67[];
extern const u8 gUnknown_085EAD6D[];
extern const u8 gUnknown_085EAD72[];
extern const u8 gUnknown_085EAD84[];
extern const u8 gUnknown_085EAD96[];
extern const u8 gUnknown_085EADA4[];
extern const u8 gUnknown_085EADB5[];
extern const u8 gUnknown_085EADC4[];
extern const u8 gUnknown_085EADD5[];
extern const u8 gUnknown_085EADE7[];
extern const u8 gUnknown_085EADF9[];
extern const u8 gUnknown_085EAE04[];
extern const u8 gUnknown_085EAE12[];
extern const u8 gUnknown_085EAE1B[];
extern const u8 gUnknown_085EAE27[];
extern const u8 gUnknown_085EAE2C[];
extern const u8 gUnknown_085EAE31[];
extern const u8 gUnknown_085EAE35[];
extern const u8 gUnknown_085EAE39[];
extern const u8 gUnknown_085EAE3D[];
extern const u8 gUnknown_085EAE41[];
extern const u8 gUnknown_085EAD5F[];
extern const u8 gUnknown_085EAE53[];
extern const u8 gUnknown_085EAE5A[];
extern const u8 gText_Yes[];
extern const u8 gText_No[];
extern const u8 gUnknown_085EAEA2[];
extern const u8 gUnknown_085EAEAC[];
extern const u8 gUnknown_0827ECBC[];
extern const u8 gUnknown_0827ECC3[];
extern const u8 gUnknown_0827ECCD[];
extern const u8 gUnknown_0827ECD5[];
extern const u8 gUnknown_0827ECDD[];
extern const u8 gUnknown_0827ECE3[];
extern const u8 gUnknown_0827ECEB[];
extern const u8 gUnknown_0827ECF2[];
extern const u8 gUnknown_0827ECF8[];
extern const u8 gUnknown_0827ED00[];
extern const u8 gUnknown_0827ED06[];
extern const u8 gUnknown_0827ED10[];
extern const u8 gUnknown_0827ED18[];
extern const u8 gUnknown_0827ED22[];
extern const u8 gUnknown_0827ED2C[];
extern const u8 gUnknown_0827ED36[];
extern const u8 gUnknown_0827ED40[];
extern const u8 gUnknown_0827ED46[];
extern const u8 gUnknown_0827ED4F[];
extern const u8 gUnknown_0827ED59[];
extern const u8 gUnknown_0827ED65[];
extern const u8 gUnknown_0827ED70[];
extern const u8 gUnknown_0827ED74[];
extern const u8 gUnknown_0827ED78[];
extern const u8 gUnknown_0827ED80[];
extern const u8 gUnknown_0827ED95[];
extern const u8 gUnknown_0827EDAA[];
extern const u8 gUnknown_0827EDB5[];
extern const u8 gUnknown_0827EDBA[];
extern const u8 gUnknown_0827EDC1[];
extern const u8 gUnknown_0827EDC9[];
extern const u8 gUnknown_0827EDD5[];
extern const u8 gUnknown_0827EDE4[];
extern const u8 gUnknown_0827EDF0[];
extern const u8 gUnknown_0827EDF5[];
extern const u8 gUnknown_0827EDF7[];
extern const u8 gUnknown_0827EDF9[];
extern const u8 gUnknown_0827EDFB[];
extern const u8 gUnknown_0827EDFD[];
extern const u8 gUnknown_0827EDFF[];
extern const u8 gUnknown_0827EE01[];
extern const u8 gUnknown_0827EE03[];
extern const u8 gUnknown_0827EE05[];
extern const u8 gUnknown_0827EE07[];
extern const u8 gUnknown_0827EE09[];
// Pokedex strings
extern const u8 gUnknown_085E87A5[];
extern const u8 gUnknown_085E87D6[];
extern const u8 gUnknown_085E87EF[];
extern const u8 gUnknown_085E8806[];
extern const u8 gUnknown_085E881F[];
extern const u8 gUnknown_085E8840[];
extern const u8 gUnknown_085E887C[];
extern const u8 gUnknown_085E88A6[];
extern const u8 gUnknown_085E88C8[];
extern const u8 gText_DexHoennTitle[];
extern const u8 gText_DexNatTitle[];
extern const u8 gText_DexSortNumericalTitle[];
extern const u8 gText_DexSortAtoZTitle[];
extern const u8 gText_DexSortHeaviestTitle[];
extern const u8 gText_DexSortLightestTitle[];
extern const u8 gText_DexSortTallestTitle[];
extern const u8 gText_DexSortSmallestTitle[];
extern const u8 gText_DexSearchAlphaABC[];
extern const u8 gText_DexSearchAlphaDEF[];
extern const u8 gText_DexSearchAlphaGHI[];
extern const u8 gText_DexSearchAlphaJKL[];
extern const u8 gText_DexSearchAlphaMNO[];
extern const u8 gText_DexSearchAlphaPQR[];
extern const u8 gText_DexSearchAlphaSTU[];
extern const u8 gText_DexSearchAlphaVWX[];
extern const u8 gText_DexSearchAlphaYZ[];
extern const u8 gText_DexSearchColorRed[];
extern const u8 gText_DexSearchColorBlue[];
extern const u8 gText_DexSearchColorYellow[];
extern const u8 gText_DexSearchColorGreen[];
extern const u8 gText_DexSearchColorBlack[];
extern const u8 gText_DexSearchColorBrown[];
extern const u8 gText_DexSearchColorPurple[];
extern const u8 gText_DexSearchColorGray[];
extern const u8 gText_DexSearchColorWhite[];
extern const u8 gText_DexSearchColorPink[];
extern const u8 gText_DexHoennDescription[];
extern const u8 gText_DexNatDescription[];
extern const u8 gText_DexSortNumericalDescription[];
extern const u8 gText_DexSortAtoZDescription[];
extern const u8 gText_DexSortHeaviestDescription[];
extern const u8 gText_DexSortLightestDescription[];
extern const u8 gText_DexSortTallestDescription[];
extern const u8 ggText_DexSortSmallestDescription[];
extern const u8 gText_DexEmptyString[];
extern const u8 gText_DexSearchDontSpecify[];
extern const u8 gText_DexSearchTypeNone[];
extern const u8 gUnknown_085EAEC3[];
extern const u8 gUnknown_085EAED6[];
extern const u8 gUnknown_085EAEE6[];
extern const u8 gUnknown_085EAEF6[];
extern const u8 gUnknown_085EAF02[];
extern const u8 gUnknown_085EAF0E[];
extern const u8 gUnknown_085EAF1B[];
extern const u8 gUnknown_085EAF24[];
extern const u8 gUnknown_085EAF2F[];
extern const u8 gUnknown_085EAF34[];
extern const u8 gUnknown_085EAF3E[];
extern const u8 gUnknown_085EAF4B[];
extern const u8 gUnknown_085EAF58[];
extern const u8 gUnknown_085EAF65[];
extern const u8 gUnknown_085EAF70[];
extern const u8 gUnknown_085EAF7D[];
extern const u8 gUnknown_085EAF87[];
extern const u8 gUnknown_085EAF93[];
extern const u8 gUnknown_085EAF9F[];
extern const u8 gUnknown_085EAFAB[];
extern const u8 gUnknown_085EAFB6[];
extern const u8 gUnknown_085EAFCF[];
extern const u8 gUnknown_085EAFE8[];
extern const u8 gUnknown_085EB089[];
extern const u8 gUnknown_085EB09C[];
extern const u8 gUnknown_085EB0AF[];
extern const u8 gUnknown_085EB0C2[];
extern const u8 gUnknown_085EB0D5[];
extern const u8 gUnknown_085EB002[];
extern const u8 gUnknown_085EB017[];
extern const u8 gUnknown_085EB02A[];
extern const u8 gUnknown_085EB034[];
extern const u8 gText_LilycoveCity[];
extern const u8 gUnknown_085EB07E[];
extern const u8 gUnknown_085EB084[];
extern const u8 gUnknown_085EB040[];
extern const u8 gUnknown_085EB04A[];
extern const u8 gUnknown_085EB057[];
extern const u8 gUnknown_085EB062[];
extern const u8 gText_Opponent[];
extern const u8 gText_Tourney_Tree[];
extern const u8 gText_ReadyToStart[];
extern const u8 gUnknown_085EB5BC[];
extern const u8 gUnknown_085EB5C3[];
extern const u8 gUnknown_085EB5C8[];
extern const u8 gUnknown_085EB29A[];
extern const u8 gUnknown_085EB2A3[];
extern const u8 gUnknown_085EB372[];
extern const u8 gUnknown_085EB37F[];
extern const u8 gUnknown_085EB389[];
extern const u8 gUnknown_085EAE6E[];
extern const u8 gUnknown_085EAE7C[];
extern const u8 gUnknown_085EAE8A[];
extern const u8 gUnknown_085EAD6D[];
extern const u8 gUnknown_085EB397[];
extern const u8 gUnknown_085EB3A4[];
extern const u8 gUnknown_085EB3B1[];
extern const u8 gUnknown_085EB3D4[];
extern const u8 gUnknown_085EB3C6[];
extern const u8 gText_NormalRank[];
extern const u8 gText_SuperRank[];
extern const u8 gText_HyperRank[];
extern const u8 gText_MasterRank[];
extern const u8 gText_BattleBag[];
extern const u8 gText_HeldItem[];
extern const u8 gText_LinkContest[];
extern const u8 gText_AboutE_Mode[];
extern const u8 gText_AboutG_Mode[];
extern const u8 gText_E_Mode[];
extern const u8 gText_G_Mode[];
extern const u8 gUnknown_085EB278[];
extern const u8 gUnknown_085EB28A[];
extern const u8 gUnknown_085EB290[];
extern const u8 gUnknown_085EB295[];
extern const u8 gUnknown_085EB2E4[];
extern const u8 gUnknown_085EB2F0[];
extern const u8 gUnknown_085EB2FC[];
extern const u8 gUnknown_085EB3DF[];
extern const u8 gUnknown_085EB3EA[];
extern const u8 gUnknown_085EB3F1[];
extern const u8 gUnknown_085EB3FC[];
extern const u8 gUnknown_085EB40A[];
extern const u8 gUnknown_085EB415[];
extern const u8 gUnknown_085EB41D[];
extern const u8 gUnknown_085EB424[];
extern const u8 gUnknown_085EB45C[];
extern const u8 gUnknown_085EB469[];
extern const u8 gUnknown_085EB475[];
extern const u8 gUnknown_085EB482[];
extern const u8 gUnknown_085EB42F[];
extern const u8 gUnknown_085EB43A[];
extern const u8 gUnknown_085EB444[];
extern const u8 gUnknown_085EB451[];
extern const u8 gUnknown_085EB48E[];
extern const u8 gUnknown_085EB496[];
extern const u8 gUnknown_085EB4A3[];
extern const u8 gUnknown_085EB4AD[];
extern const u8 gUnknown_085EB4B9[];
extern const u8 gUnknown_085EB4C7[];
extern const u8 gUnknown_085EB4D4[];
extern const u8 gUnknown_085EB4E0[];
extern const u8 gUnknown_085EB532[];
extern const u8 gUnknown_085EB543[];
extern const u8 gUnknown_085EB555[];
extern const u8 gUnknown_085EB563[];
extern const u8 gUnknown_085EB56E[];
extern const u8 gUnknown_085EB57E[];
extern const u8 gUnknown_085EB589[];
extern const u8 gUnknown_085EB5B6[];
extern const u8 gUnknown_085EE14B[];
extern const u8 gUnknown_085EE14F[];
extern const u8 gUnknown_085EB2FF[];
extern const u8 gUnknown_085EB310[];
extern const u8 gUnknown_085EB317[];
extern const u8 gUnknown_085EB31F[];
extern const u8 gText_CaveOfOrigin[];
extern const u8 gText_MtPyre[];
extern const u8 gText_SkyPillar[];
extern const u8 gText_DontRemember[];
extern const u8 gUnknown_085EB597[];
extern const u8 gUnknown_085EB32D[];
extern const u8 gUnknown_085EB33E[];
extern const u8 gUnknown_085EB350[];
extern const u8 gUnknown_085EB361[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F96[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
// Frontier records.
extern const u8 gText_WinStreak[];
extern const u8 gText_Record[];
extern const u8 gText_Current[];
extern const u8 gText_RoomsCleared[];
extern const u8 gText_Prev[];
extern const u8 gText_SingleBattleRoomResults[];
extern const u8 gText_DoubleBattleRoomResults[];
extern const u8 gText_MultiBattleRoomResults[];
extern const u8 gText_LinkMultiBattleRoomResults[];
extern const u8 gText_Lv502[];
extern const u8 gText_OpenLv[];
extern const u8 gText_RentalSwap[];
extern const u8 gText_ClearStreak[];
extern const u8 gText_Total[];
extern const u8 gText_Championships[];
extern const u8 gText_SingleBattleTourneyResults[];
extern const u8 gText_DoubleBattleTourneyResults[];
extern const u8 gText_SingleBattleHallResults[];
extern const u8 gText_DoubleBattleHallResults[];
extern const u8 gText_BattleChoiceResults[];
extern const u8 gText_TimesCleared[];
extern const u8 gText_KOsInARow[];
extern const u8 gText_SetKOTourneyResults[];
extern const u8 gText_TimesVar1[];
extern const u8 gText_BattleSwapSingleResults[];
extern const u8 gText_BattleSwapDoubleResults[];
extern const u8 gText_FloorsCleared[];
extern const u8 gText_BattleQuestResults[];
extern const u8 gText_LinkContestResults[];
extern const u8 gText_4th[];
extern const u8 gText_3rd[];
extern const u8 gText_2nd[];
extern const u8 gText_1st[];
extern const u8 gText_SpaceAndSpace[];
extern const u8 gText_CommaSpace[];
extern const u8 gText_NewLine[];
extern const u8 gText_ScrollTextUp[];
extern const u8 gText_Space2[];
extern const u8 gText_Are[];
extern const u8 gText_Are2[];
extern const u8 gText_123Dot[][3];
// Frontier util.
extern const u8 gUnknown_085ED164[];
extern const u8 gUnknown_085ED170[];
extern const u8 gUnknown_085ED17C[];
extern const u8 gUnknown_085ED188[];
extern const u8 gUnknown_085ED190[];
extern const u8 gText_RecordsLv50[];
extern const u8 gText_RecordsOpenLevel[];
extern const u8 gText_FrontierFacilityWinStreak[];
extern const u8 gText_FrontierFacilityClearStreak[];
extern const u8 gText_FrontierFacilityRoomsCleared[];
extern const u8 gText_FrontierFacilityKOsStreak[];
extern const u8 gText_FrontierFacilityFloorsCleared[];
extern const u8 gText_082C843F[];
extern const u8 gText_082C848B[];
extern const u8 gText_082C8628[];
extern const u8 gText_082C85B4[];
extern const u8 gText_082C8512[];
extern const u8 gText_082C859D[];
extern const u8 gText_082C86C3[];
extern const u8 gText_082C8458[];
extern const u8 gText_082C84C1[];
extern const u8 gText_082C8662[];
extern const u8 gText_082C85E3[];
extern const u8 gText_082C853B[];
extern const u8 gText_082C85A4[];
extern const u8 gText_082C86FE[];
extern const u8 gText_082C846C[];
extern const u8 gText_082C84D0[];
extern const u8 gText_082C8682[];
extern const u8 gText_082C85F5[];
extern const u8 gText_082C8561[];
extern const u8 gText_082C85A9[];
extern const u8 gText_082C8739[];
extern const u8 gText_082C8480[];
extern const u8 gText_082C84F7[];
extern const u8 gText_082C86B3[];
extern const u8 gText_082C8611[];
extern const u8 gText_082C8589[];
extern const u8 gText_082C85AE[];
extern const u8 gText_082C877B[];
// Battle Pyramid.
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D2D[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D57[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D81[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DAB[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25330B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2532CC[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25328B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253248[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253206[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2531C4[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253183[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253140[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530FD[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544A6[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25445A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25440B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2543BA[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25436A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25431A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2542CB[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25427A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DD5[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E03[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E31[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E5F[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25362E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2535D4[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253578[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25351A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2534BD[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253460[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253404[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2533A6[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25334D[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25471E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2546CC[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25467C[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25462A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2545D9[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254588[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254538[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544E6[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E8D[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EAA[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EC7[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EE4[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2539EC[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253980[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253915[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2538A8[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25383C[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2537D0[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253765[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2536F8[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25368B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A0B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2549AE[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25494D[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2548EB[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25488A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254829[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2547C9[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254767[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F01[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F3A[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F73[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FAC[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D3E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253CE0[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C87[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C2C[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253BD2[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B78[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B1F[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253AC4[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253A69[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C3E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BF1[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BAE[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B69[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B25[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254AE1[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A9E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A59[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FE5[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253000[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25301B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253036[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F6C[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F34[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EFA[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EBE[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E83[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E48[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E0E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253DD2[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D96[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E6E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E27[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254DE0[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D97[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D4F[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D07[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254CC0[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C77[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253051[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25307C[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530A7[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530D2[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25422B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2541DD[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25418D[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25413B[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2540EA[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254099[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254049[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FF7[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FA5[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_255068[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25502F[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FF6[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FBB[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F81[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F47[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F0E[];
extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254ED3[];
#endif //GUARD_STRINGS_H

View File

@@ -89,6 +89,13 @@
#define EXT_CTRL_CODE_COLOR 0x1
#define EXT_CTRL_CODE_HIGHLIGHT 0x2
#define EXT_CTRL_CODE_SHADOW 0x3
//
#define EXT_CTRL_CODE_UNKNOWN_7 0x7
//
#define EXT_CTRL_CODE_CLEAR 0x11
//
#define EXT_CTRL_CODE_JPN 0x15
#define EXT_CTRL_CODE_ENG 0x16
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
@@ -102,19 +109,17 @@
// battle placeholders are located in battle_message.h
#define EXT_CTRL_CODE_JPN 0x15
#define EXT_CTRL_CODE_ENG 0x16
#define NUM_TEXT_PRINTERS 32
#define TEXT_SPEED_FF 0xFF
enum {
enum
{
FONTATTR_MAX_LETTER_WIDTH,
FONTATTR_MAX_LETTER_HEIGHT,
FONTATTR_LETTER_SPACING,
FONTATTR_LINE_SPACING,
FONTATTR_COLOR_LOWNIBBLE, // dunno what this is yet
FONTATTR_UNKNOWN, // dunno what this is yet
FONTATTR_COLOR_FOREGROUND,
FONTATTR_COLOR_BACKGROUND,
FONTATTR_COLOR_SHADOW
@@ -122,23 +127,18 @@ enum {
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
u8 font_type_upper:1;
u8 font_type_5:3;
u8 field_1:5;
u8 field_1_upmid:2;
u8 field_1_top:1;
u8 frames_visible_counter;
u8 field_3;
u8 field_4; // 0x18
u8 field_5;
u8 field_6;
u8 active;
u8 glyphId:4; // 0x14
bool8 hasPrintBeenSpedUp:1;
u8 unk:3;
u8 downArrowDelay:5;
u8 downArrowYPosIdx:2;
bool8 hasGlyphIdBeenSet:1;
u8 autoScrollDelay;
};
struct TextSubPrinter // TODO: Better name
struct TextPrinterTemplate
{
const u8* current_text_offset;
const u8* currentChar;
u8 windowId;
u8 fontId;
u8 x;
@@ -147,7 +147,7 @@ struct TextSubPrinter // TODO: Better name
u8 currentY;
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4; // 0xC
u8 unk:4; // 0xC
u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
@@ -155,18 +155,18 @@ struct TextSubPrinter // TODO: Better name
struct TextPrinter
{
struct TextSubPrinter subPrinter;
struct TextPrinterTemplate printerTemplate;
void (*callback)(struct TextSubPrinter *, u16); // 0x10
void (*callback)(struct TextPrinterTemplate *, u16); // 0x10
union {
union __attribute__((packed)) {
struct TextPrinterSubStruct sub;
u8 fields[7];
} subUnion;
u8 sub_fields[8];
} sub_union;
u8 active;
u8 state; // 0x1C
u8 text_speed;
u8 textSpeed;
u8 delayCounter;
u8 scrollDistance;
u8 minLetterSpacing; // 0x20
@@ -180,7 +180,7 @@ struct FontInfo
u8 maxLetterHeight;
u8 letterSpacing;
u8 lineSpacing;
u8 fontColor_l:4;
u8 unk:4;
u8 fgColor:4;
u8 bgColor:4;
u8 shadowColor:4;
@@ -190,49 +190,50 @@ extern const struct FontInfo *gFonts;
struct GlyphWidthFunc
{
u32 font_id;
u32 fontId;
u32 (*func)(u16 glyphId, bool32 isJapanese);
};
struct KeypadIcon
{
u16 tile_offset;
u16 tileOffset;
u8 width;
u8 height;
};
typedef struct {
u8 flag_0:1;
u8 flag_1:1;
u8 flag_2:1;
u8 flag_3:1;
bool8 canABSpeedUpPrint:1;
bool8 useAlternateDownArrow:1;
bool8 autoScroll:1;
bool8 forceMidTextSpeed:1;
} TextFlags;
struct Struct_03002F90
{
u32 unk0[8];
u32 unk20[8];
u32 unk40[8];
u32 unk60[8];
u8 unk80;
u8 unk81;
};
extern TextFlags gTextFlags;
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
u8 gUnknown_03002F84;
u8 gUnknown_03002F90[0x20];
u8 gUnknown_03002FB0[0x20];
u8 gUnknown_03002FD0[0x20];
u8 gUnknown_03002FF0[0x20];
u8 gGlyphDimensions[0x2];
extern u8 gUnknown_03002F84;
extern struct Struct_03002F90 gUnknown_03002F90;
void SetFontsPointer(const struct FontInfo *fonts);
void DeactivateAllTextPrinters(void);
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16));
bool16 AddTextPrinter(struct TextPrinterTemplate *template, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16));
void RunTextPrinters(void);
bool16 IsTextPrinterActive(u8 id);
u32 RenderFont(struct TextPrinter *textPrinter);
void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor);
void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void DecompressGlyphTile(const u16 *src, u16 *dest);
void DecompressGlyphTile(const void *src_, void *dest_);
u8 GetLastTextColor(u8 colorType);
void CopyGlyphToWindow(struct TextPrinter *x);
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);

View File

@@ -51,5 +51,7 @@ void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
void UpdateTVScreensOnMap(int, int);
void TV_PrintIntToStringVar(u8 varIdx, int value);
void SaveRecordedItemPurchasesForTVShow(void);
bool8 sub_80EE818(void);
void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
#endif //GUARD_TV_H

View File

@@ -0,0 +1,17 @@
#ifndef GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
#define GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
struct UnkStruct_1C4D70
{
u32 bg:2;
u32 unk2:8;
u32 unk10:2;
u32 unk12:20;
};
void sub_81C4D70(const struct UnkStruct_1C4D70 *);
bool32 sub_81C4E90(void);
void sub_81C4ED0(u32);
void sub_81C4EB4(void);
#endif // GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H

View File

@@ -3,7 +3,7 @@
enum
{
WINDOW_PRIORITY,
WINDOW_BG,
WINDOW_TILEMAP_LEFT,
WINDOW_TILEMAP_TOP,
WINDOW_WIDTH,
@@ -15,7 +15,7 @@ enum
struct WindowTemplate
{
u8 priority;
u8 bg;
u8 tilemapLeft;
u8 tilemapTop;
u8 width;
@@ -55,7 +55,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);
void CopyToWindowPixelBuffer(u8 windowId, const void *src, u16 size, u16 tileOffset);
void FillWindowPixelBuffer(u8 windowId, u8 fillValue);
void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue);
void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8));