battle2 more and more and more

This commit is contained in:
DizzyEggg
2017-10-06 00:12:01 +02:00
parent d87d19cfe5
commit 342e616d4b
16 changed files with 1046 additions and 2754 deletions
+31 -23
View File
@@ -56,6 +56,7 @@
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_OPPONENT_800 0x800
#define STEVEN_PARTNER_ID 0xC03
@@ -71,8 +72,11 @@
#define BATTLE_PLAYER_TELEPORTED 0x5
#define BATTLE_POKE_FLED 0x6
#define BATTLE_CAUGHT 0x7
#define BATTLE_FORFEITED 0x9
#define BATTLE_OPPONENT_TELEPORTED 0xA
#define BATTLE_OUTCOME_BIT_x80 0x80
#define STATUS_SLEEP 0x7
#define STATUS_POISON 0x8
#define STATUS_BURN 0x10
@@ -171,8 +175,10 @@
#define ACTION_GO_NEAR 7
#define ACTION_SAFARI_ZONE_RUN 8
#define ACTION_9 9
#define ACTION_CANCEL_PARTNER 12
#define ACTION_NOTHING_FAINTED 13
#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
#define ACTION_CANCEL_PARTNER 12 // when choosing an action
#define ACTION_FINISHED 12 // when executing an action
#define ACTION_NOTHING_FAINTED 13 // when choosing an action
#define ACTION_INIT_VALUE 0xFF
#define ABILITYEFFECT_ON_SWITCHIN 0x0
@@ -559,22 +565,19 @@ struct BattleResults
u8 playerSwitchesCounter; // 0x2
u8 unk3; // 0x3
u8 unk4; // 0x4
u8 unk5_0:1; // 0x5
u8 unk5_1:1; // 0x5
u8 caughtMonBall:4; // 0x5
u8 unk5_6:1; // 0x5
u8 unk5_7:1; // 0x5
u16 poke1Species; // 0x6
u8 pokeString1[10]; // 0x8
u8 unk12;
u8 unk5_0:1; // 0x5 , 0x1
u8 unk5_1:1; // 0x5 , 0x2
u8 caughtMonBall:4; // 0x5 , 0x4/0x8/0x10/0x20
u8 unk5_6:1; // 0x5 , 0x40
u8 unk5_7:1; // 0x5 , 0x80
u16 playerMon1Species; // 0x6
u8 playerMon1Name[11]; // 0x8
u8 battleTurnCounter; // 0x13
u8 pokeString2[10]; // 0x14
u8 field_1E; // 0x1E
u8 field_1F; // 0x1F
u8 playerMon2Name[11]; // 0x14
u16 lastOpponentSpecies; // 0x20
u16 lastUsedMove; // 0x22
u16 opponentMove; // 0x24
u16 opponentSpecies; // 0x26
u16 lastUsedMovePlayer; // 0x22
u16 lastUsedMoveOpponent; // 0x24
u16 playerMon2Species; // 0x26
u16 caughtMonSpecies; // 0x28
u8 caughtMonNick[10]; // 0x2A
u8 filler34[2];
@@ -605,7 +608,7 @@ struct BattleStruct
u8 field_45;
u8 field_46;
u8 field_47;
u8 field_48;
u8 focusPunchBank;
u8 field_49;
u8 moneyMultiplier;
u8 field_4B;
@@ -620,7 +623,7 @@ struct BattleStruct
u8 field_58[4];
u8 field_5C[4];
u8 field_60[4][3];
u8 field_6C;
u8 runTries;
u8 caughtMonNick[11];
u8 field_78;
u8 field_79;
@@ -630,7 +633,7 @@ struct BattleStruct
u8 field_7D;
u8 field_7E;
u8 formToChangeInto;
u8 chosenMovesIds[BATTLE_BANKS_COUNT];
u8 chosenMovePositions[BATTLE_BANKS_COUNT];
u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT];
u8 field_88;
u8 field_89;
@@ -665,7 +668,9 @@ struct BattleStruct
u8 field_B3;
void (*savedCallback)(void);
u16 usedHeldItems[BATTLE_BANKS_COUNT];
u8 field_C0[8];
u8 field_C0[4];
u8 field_C4[2];
u8 field_C6[2];
u16 choicedMove[BATTLE_BANKS_COUNT];
u16 changedItems[BATTLE_BANKS_COUNT];
u8 intimidateBank;
@@ -818,6 +823,7 @@ extern struct BattleStruct* gBattleStruct;
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_CAN_RUN_FROM_BATTLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
@@ -901,13 +907,15 @@ void sub_803FA70(u8 bank);
void BattleMainCB2(void);
void VBlankCB_Battle(void);
void ResetSentPokesToOpponentValue(void);
bool8 CanRunFromBattle(u8 bank);
bool8 TryRunFromBattle(u8 bank);
bool8 IsRunningFromBattleImpossible(void);
void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
void SwapTurnOrder(u8, u8);
void BattleTurnPassed(void);
void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
// battle_3
#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
@@ -928,7 +936,7 @@ u8 UpdateTurnCounters(void);
u8 TurnBasedEffects(void);
bool8 sub_8041364(void);
bool8 sub_8041728(void);
void b_clear_atk_up_if_hit_flag_unless_enraged(void);
void TryClearRageStatuses(void);
u8 AtkCanceller_UnableToUseMove(void);
bool8 sub_80423F4(u8 bank, u8 r1, u8 r2);
u8 CastformDataTypeChange(u8 bank);
@@ -936,7 +944,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
void BattleScriptExecute(const u8* BS_ptr);
void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
void sub_8045868(u8 bank);
void ClearFuryCutterDestinyBondGrudge(u8 bank);
void sub_80458B4(void);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 IsPokeDisobedient(void);
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_EVOLUTION_SCENE_H
#define GUARD_EVOLUTION_SCENE_H
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
extern void (*gCB2_AfterEvolution)(void);
#endif // GUARD_EVOLUTION_SCENE_H
+6
View File
@@ -634,6 +634,12 @@ bool16 sub_806D82C(u8 id);
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
void sub_8068AA4(void); // sets stats for deoxys
bool8 HasTwoFramesAnimation(u16 species);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
void RandomlyGivePartyPokerus(struct Pokemon *party);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party);
#include "sprite.h"
+1
View File
@@ -14,5 +14,6 @@ u8 sub_8185FB8(void);
u8 MoveRecordedBattleToSaveData(void);
void sub_818603C(u8);
void sub_8185FD0(void);
void sub_8186444(void);
#endif // GUARD_RECORDED_BATTLE_H
+42 -42
View File
@@ -252,23 +252,23 @@ enum
SE_W114,
SE_W063B,
BGM_STOP = 349,
BGM_TETSUJI,
BGM_FIELD13,
BGM_KACHI22,
BGM_KACHI2,
BGM_KACHI3,
BGM_KACHI5,
BGM_PCC,
BGM_NIBI,
BGM_SUIKUN,
BGM_DOORO1,
BGM_DOORO_X1,
BGM_DOORO_X3,
BGM_MACHI_S2,
BGM_MACHI_S4,
BGM_GIM,
BGM_NAMINORI,
BGM_DAN01,
/*0x15E*/ BGM_TETSUJI,
/*0x15F*/ BGM_FIELD13,
/*0x160*/ BGM_KACHI22,
/*0x161*/ BGM_KACHI2,
/*0x162*/ BGM_KACHI3,
/*0x163*/ BGM_KACHI5,
/*0x164*/ BGM_PCC,
/*0x165*/ BGM_NIBI,
/*0x166*/ BGM_SUIKUN,
/*0x167*/ BGM_DOORO1,
/*0x168*/ BGM_DOORO_X1,
/*0x169*/ BGM_DOORO_X3,
/*0x16A*/ BGM_MACHI_S2,
/*0x16B*/ BGM_MACHI_S4,
/*0x16C*/ BGM_GIM,
/*0x16D*/ BGM_NAMINORI,
/*0x16E*/ BGM_DAN01,
/*0x16F*/ BGM_FANFA1,
/*0x170*/ BGM_ME_ASA,
/*0x171*/ BGM_ME_BACHI,
@@ -306,31 +306,31 @@ enum
/*0x191*/ BGM_NEXTROAD,
/*0x192*/ BGM_GRANROAD,
/*0x193*/ BGM_CYCLING,
BGM_FRIENDLY,
BGM_MISHIRO,
BGM_TOZAN,
BGM_GIRLEYE,
BGM_MINAMO,
BGM_ASHROAD,
BGM_EVENT0,
BGM_DEEPDEEP,
BGM_KACHI1,
BGM_TITLE3,
BGM_DEMO1,
BGM_GIRL_SUP,
BGM_HAGESHII,
BGM_KAKKOII,
BGM_KAZANBAI,
BGM_AQA_0,
BGM_TSURETEK,
BGM_BOY_SUP,
BGM_RAINBOW,
BGM_AYASII,
BGM_KACHI4,
BGM_ROPEWAY,
BGM_CASINO,
BGM_HIGHTOWN,
BGM_SAFARI,
/*0x194*/ BGM_FRIENDLY,
/*0x195*/ BGM_MISHIRO,
/*0x196*/ BGM_TOZAN,
/*0x197*/ BGM_GIRLEYE,
/*0x198*/ BGM_MINAMO,
/*0x199*/ BGM_ASHROAD,
/*0x19A*/ BGM_EVENT0,
/*0x19B*/ BGM_DEEPDEEP,
/*0x19C*/ BGM_KACHI1,
/*0x19D*/ BGM_TITLE3,
/*0x19E*/ BGM_DEMO1,
/*0x19F*/ BGM_GIRL_SUP,
/*0x1A0*/ BGM_HAGESHII,
/*0x1A1*/ BGM_KAKKOII,
/*0x1A2*/ BGM_KAZANBAI,
/*0x1A3*/ BGM_AQA_0,
/*0x1A4*/ BGM_TSURETEK,
/*0x1A5*/ BGM_BOY_SUP,
/*0x1A6*/ BGM_RAINBOW,
/*0x1A7*/ BGM_AYASII,
/*0x1A8*/ BGM_KACHI4,
/*0x1A9*/ BGM_ROPEWAY,
/*0x1AA*/ BGM_CASINO,
/*0x1AB*/ BGM_HIGHTOWN,
/*0x1AC*/ BGM_SAFARI,
BGM_C_ROAD,
BGM_AJITO,
BGM_M_BOAT,