lil bit of battle code

This commit is contained in:
Adrienn Tindall 2023-10-12 16:44:01 -04:00
parent 990023eefd
commit 7db4002cc6
21 changed files with 231 additions and 318 deletions

View File

@ -189,7 +189,7 @@
.public ov06_0221BAF0
.public ov07_0221BEDC
.public ov07_0221BFE0
.public ov12_022378C0
.public Battle_Main
.public ov12_02237B0C
.public ov12_02237B6C
.public ov12_02237BB8
@ -227,7 +227,7 @@
.public ov12_0223BFCC
.public ov12_0223BFEC
.public BattleContext_New
.public BattleMain
.public BattleContext_Main
.public BattleContext_Delete
.public ov12_02256F28
.public ov12_022581D4

View File

@ -52,7 +52,7 @@
.public ov12_0223C0C4
.public RunBattleScript
.public BattleContext_New
.public BattleMain
.public BattleContext_Main
.public BattleContext_Delete
.public BattleSystem_CheckMoveHitEffect
.public BattleSystem_GetBattleMon

View File

@ -216,7 +216,7 @@
.public _02102830
.public _02103A1C
.public ov02_0224E4EC
.public ov12_022378C0
.public Battle_Main
.public ov14_021E5900
.public ov14_021E596C
.public ov14_021E5988

View File

@ -7,295 +7,6 @@
.text
thumb_func_start ov12_022378C0
ov12_022378C0: ; 0x022378C0
push {r3, r4, r5, r6, lr}
sub sp, #0x24
add r4, r1, #0
add r6, r0, #0
bl OverlayManager_GetArgs
ldr r1, [r4]
add r5, r0, #0
cmp r1, #0xf
bls _022378D6
b _02237AFA
_022378D6:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_022378E2: ; jump table
.short _02237902 - _022378E2 - 2 ; case 0
.short _0223792E - _022378E2 - 2 ; case 1
.short _02237974 - _022378E2 - 2 ; case 2
.short _0223798A - _022378E2 - 2 ; case 3
.short _022379A0 - _022378E2 - 2 ; case 4
.short _022379B0 - _022378E2 - 2 ; case 5
.short _022379C6 - _022378E2 - 2 ; case 6
.short _022379E2 - _022378E2 - 2 ; case 7
.short _022379F4 - _022378E2 - 2 ; case 8
.short _02237A10 - _022378E2 - 2 ; case 9
.short _02237A2C - _022378E2 - 2 ; case 10
.short _02237A48 - _022378E2 - 2 ; case 11
.short _02237A64 - _022378E2 - 2 ; case 12
.short _02237A6A - _022378E2 - 2 ; case 13
.short _02237AD2 - _022378E2 - 2 ; case 14
.short _02237AF4 - _022378E2 - 2 ; case 15
_02237902:
mov r2, #0xb
mov r0, #3
mov r1, #5
lsl r2, r2, #0x10
bl CreateHeap
ldr r1, [r5]
mov r0, #4
tst r0, r1
beq _02237928
mov r0, #0x63
lsl r0, r0, #2
ldr r1, [r5, r0]
mov r0, #0x10
tst r0, r1
bne _02237928
mov r0, #1
str r0, [r4]
b _02237AFA
_02237928:
mov r0, #3
str r0, [r4]
b _02237AFA
_0223792E:
add r0, r6, #0
add r1, r5, #0
bl ov12_022399D4
mov r0, #0x4b
lsl r0, r0, #2
ldr r0, [r5, r0]
bl sub_02039F68
bl sub_02039998
cmp r0, #0
bne _02237962
mov r0, #0x51
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x15
bl GameStats_Inc
ldr r0, [r5]
cmp r0, #0x8f
beq _0223796E
mov r0, #1
bl sub_02005BEC
b _0223796E
_02237962:
mov r0, #0x51
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0x1a
bl GameStats_Inc
_0223796E:
mov r0, #2
str r0, [r4]
b _02237AFA
_02237974:
add r0, r6, #0
bl ov12_02239C28
cmp r0, #1
bne _022379EC
add r0, r6, #0
bl ov12_0223A088
mov r0, #3
str r0, [r4]
b _02237AFA
_0223798A:
add r0, r6, #0
bl ov12_0223A0D4
cmp r0, #1
bne _0223799A
mov r0, #4
str r0, [r4]
b _02237AFA
_0223799A:
mov r0, #5
str r0, [r4]
b _02237AFA
_022379A0:
add r0, r6, #0
bl ov12_0223A218
cmp r0, #1
bne _022379EC
mov r0, #5
str r0, [r4]
b _02237AFA
_022379B0:
add r0, r6, #0
bl ov12_0223A260
cmp r0, #1
bne _022379C0
mov r0, #6
str r0, [r4]
b _02237AFA
_022379C0:
mov r0, #8
str r0, [r4]
b _02237AFA
_022379C6:
add r0, r6, #0
bl ov12_0223A3A8
cmp r0, #1
bne _022379EC
ldr r0, _02237B00 ; =FS_OVERLAY_ID(OVY_5)
bl UnloadOverlayByID
mov r0, #7
str r0, [r4]
mov r0, #0x3d
bl sub_02037AC0
b _02237AFA
_022379E2:
mov r0, #0x3d
bl sub_02037B38
cmp r0, #0
bne _022379EE
_022379EC:
b _02237AFA
_022379EE:
mov r0, #8
str r0, [r4]
b _02237AFA
_022379F4:
ldr r0, _02237B04 ; =FS_OVERLAY_ID(OVY_6)
mov r1, #2
bl HandleLoadOverlay
ldr r0, _02237B08 ; =FS_OVERLAY_ID(OVY_7)
mov r1, #2
bl HandleLoadOverlay
add r0, r6, #0
bl ov12_02237F18
mov r0, #9
str r0, [r4]
b _02237AFA
_02237A10:
add r0, r6, #0
bl ov12_02238358
cmp r0, #1
bne _02237AFA
add r0, r6, #0
bl ov12_0223843C
mov r0, #0
bl sub_02005BEC
mov r0, #0xa
str r0, [r4]
b _02237AFA
_02237A2C:
add r0, r6, #0
bl ov12_0223A3F0
cmp r0, #1
bne _02237A3C
mov r0, #0xb
str r0, [r4]
b _02237AFA
_02237A3C:
mov r0, #5
bl DestroyHeap
mov r0, #0xd
str r0, [r4]
b _02237AFA
_02237A48:
add r0, r6, #0
bl ov12_0223A5E4
cmp r0, #1
bne _02237AFA
ldr r0, _02237B00 ; =FS_OVERLAY_ID(OVY_5)
bl UnloadOverlayByID
mov r0, #5
bl DestroyHeap
mov r0, #0xc
str r0, [r4]
b _02237AFA
_02237A64:
mov r0, #0xf
str r0, [r4]
b _02237AFA
_02237A6A:
add r1, sp, #0x20
add r2, sp, #0x1c
bl BattleSystem_CheckEvolution
add r6, r0, #0
beq _02237ACC
mov r0, #3
mov r1, #0x47
lsl r2, r0, #0x10
bl CreateHeap
ldr r0, [r5, #4]
ldr r1, [sp, #0x20]
bl Party_GetMonByIndex
mov r2, #0x59
lsl r2, r2, #2
add r1, r0, #0
ldr r0, [r5, r2]
mov r3, #0x47
str r0, [sp]
add r0, r2, #0
sub r0, #0x54
ldr r0, [r5, r0]
str r0, [sp, #4]
add r0, r2, #0
sub r0, #0x5c
ldr r0, [r5, r0]
sub r2, #0x20
str r0, [sp, #8]
ldr r0, [r5, r2]
add r2, r6, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x1c]
str r0, [sp, #0x10]
mov r0, #3
str r0, [sp, #0x14]
str r3, [sp, #0x18]
add r3, #0xe9
ldr r0, [r5, #4]
ldr r3, [r5, r3]
bl sub_02075A7C
mov r1, #0x66
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0xe
str r0, [r4]
b _02237AFA
_02237ACC:
mov r0, #0xf
str r0, [r4]
b _02237AFA
_02237AD2:
mov r0, #0x66
lsl r0, r0, #2
ldr r5, [r5, r0]
add r0, r5, #0
bl sub_02075D3C
cmp r0, #1
bne _02237AFA
add r0, r5, #0
bl sub_02075D4C
mov r0, #0x47
bl DestroyHeap
mov r0, #0xd
str r0, [r4]
b _02237AFA
_02237AF4:
add sp, #0x24
mov r0, #1
pop {r3, r4, r5, r6, pc}
_02237AFA:
mov r0, #0
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.balign 4, 0
_02237B00: .word FS_OVERLAY_ID(OVY_5)
_02237B04: .word FS_OVERLAY_ID(OVY_6)
_02237B08: .word FS_OVERLAY_ID(OVY_7)
thumb_func_end ov12_022378C0
thumb_func_start ov12_02237B0C
ov12_02237B0C: ; 0x02237B0C
push {r4, lr}
@ -1221,7 +932,7 @@ ov12_02238358: ; 0x02238358
cmp r1, #0
beq _02238380
ldr r1, [r4, #0x30]
bl BattleMain
bl BattleContext_Main
_02238380:
ldr r0, [r4, #0x44]
mov r6, #0
@ -1245,7 +956,7 @@ _0223839E:
beq _022383BA
ldr r1, [r4, #0x30]
add r0, r4, #0
bl BattleMain
bl BattleContext_Main
ldr r1, _02238438 ; =0x000023FE
strb r0, [r4, r1]
add r0, r4, #0
@ -1281,7 +992,7 @@ _022383E0:
beq _02238404
ldr r1, [r4, #0x30]
add r0, r4, #0
bl BattleMain
bl BattleContext_Main
ldr r1, _02238438 ; =0x000023FE
strb r0, [r4, r1]
add r0, r4, #0

View File

@ -181,7 +181,7 @@ sub_0203E3A8: ; 0x0203E3A8
thumb_func_start sub_0203E3AC
sub_0203E3AC: ; 0x0203E3AC
push {r3, lr}
bl ov12_022378C0
bl Battle_Main
cmp r0, #0
beq _0203E3BA
mov r0, #1

View File

@ -0,0 +1,24 @@
#ifndef POKEHEARTGOLD_BATTLE_022378C0_H
#define POKEHEARTGOLD_BATTLE_022378C0_H
#include "battle.h"
#include "battle_setup.h"
#include "overlay_manager.h"
BOOL Battle_Main(OVY_MANAGER *man, int *state);
//the following functions are static and have yet to be decompiled
void ov12_022399D4(OVY_MANAGER *man, BattleSetup *setup);
BOOL ov12_02239C28(OVY_MANAGER *man);
void ov12_0223A088(OVY_MANAGER *man);
BOOL ov12_0223A0D4(OVY_MANAGER *man);
BOOL ov12_0223A218(OVY_MANAGER *man);
BOOL ov12_0223A260(OVY_MANAGER *man);
BOOL ov12_0223A3A8(OVY_MANAGER *man);
void ov12_02237F18(OVY_MANAGER *man);
BOOL ov12_02238358(OVY_MANAGER *man);
void ov12_0223843C(OVY_MANAGER *man);
BOOL ov12_0223A3F0(OVY_MANAGER *man);
BOOL ov12_0223A5E4(OVY_MANAGER *man);
#endif

View File

@ -4,7 +4,7 @@
#include "battle/battle.h"
BattleContext *BattleContext_New(BattleSystem *bsys);
BOOL BattleMain(BattleSystem *bsys, BattleContext *ctx);
BOOL BattleContext_Main(BattleSystem *bsys, BattleContext *ctx);
void BattleContext_Delete(BattleContext *ctx);
void BattleSystem_CheckMoveHitEffect(BattleSystem *bsys, BattleContext *ctx, int battlerIdAttacker, int battlerIdTarget, int moveNo);

View File

@ -23,7 +23,7 @@ struct BattleSetupSub_138 {
};
struct BattleSetup { //declared in trainer_data.h
u32 flags; // 0
u32 battleType; // 0
Party* party[BATTLER_MAX]; // 4
int winFlag; // 14
int trainerId[BATTLER_MAX]; // 18
@ -54,10 +54,10 @@ struct BattleSetup { //declared in trainer_data.h
u32 weatherType; // 174
int levelUpFlag; // 178
u8 filler_17C[0x10];
u32 unk_18C;
u32 battleSpecial; //18C
int safariBalls; // 190
int unk_194;
u8 filler_198[4];
void *unk198;
int unk_19C;
int unk_1A0[4];
u16 unk1B0;

View File

@ -11,8 +11,9 @@
#define GAME_STAT_UNK12 12
#define GAME_STAT_UNK17 17
#define GAME_STAT_UNK20 20
#define GAME_STAT_UNK21 21
#define GAME_STAT_UNK21 21 //link battles?
#define GAME_STAT_BADGE_GET 22
#define GAME_STAT_UNK26 26
#define GAME_STAT_UNK46 46
#define GAME_STAT_BATTLE_POINTS 69

View File

@ -1,6 +1,8 @@
#ifndef POKEHEARTGOLD_HEAP_H
#define POKEHEARTGOLD_HEAP_H
#include "global.h"
typedef enum HeapID {
HEAP_ID_DEFAULT,
HEAP_ID_1,
@ -18,6 +20,7 @@ typedef enum HeapID {
HEAP_ID_32 = 32,
HEAP_ID_OV55 = 40,
HEAP_ID_CHOOSE_STARTER = 46,
HEAP_ID_EVOLUTION = 71,
HEAP_ID_CREDITS = 73,
HEAP_ID_89 = 89,
HEAP_ID_ALPH_PUZZLE = 97,

View File

@ -2,5 +2,6 @@
#define POKEHEARTGOLD_UNK_02004A44_H
void sub_02004AD8(int a0);
void sub_02005BEC();
#endif //POKEHEARTGOLD_UNK_02004A44_H

View File

@ -15,7 +15,7 @@ BOOL sub_02039AA4(void);
int sub_020399B8(void);
BOOL sub_02038D90(void);
BOOL sub_0203A05C(SaveData *saveData);
void sub_02039F68(void);
void sub_02039F68(void *);
void sub_02039AD8(int);
#endif //POKEHEARTGOLD_UNK_02037C94_H

15
include/unk_020755E8.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef POKEHEARTGOLD_UNK_020755E8_H
#define POKEHEARTGOLD_UNK_020755E8_H
#include "pokemon.h"
#include "party.h"
#include "heap.h"
//This file is related to handling evolutions of Pokemon
void sub_02075D4C(void *);
void *sub_02075A7C(Party *party, Pokemon *mon, int species, Options *options, u32 a4, Pokedex *dex, Bag *bag, GAME_STATS *stats, u32 evolutionCondition, u32 a9, HeapID heapId);
BOOL sub_02075D3C(void *);
void sub_02075D4C(void *);
#endif //POKEHEARTGOLD_UNK_020755E8_H

View File

@ -564,6 +564,7 @@ Overlay OVY_11
Overlay OVY_12
{
After OVY_7
Object src/battle/battle_022378C0.o
Object asm/overlay_12_022378C0.o
Object src/battle/battle_system.o
Object asm/overlay_12_battle_system.o

View File

@ -0,0 +1,158 @@
#include "battle/battle_022378C0.h"
#include "battle/battle_system.h"
#include "unk_02037C94.h"
#include "unk_02004A44.h"
#include "unk_020379A0.h"
#include "unk_020755E8.h"
#include "constants/game_stats.h"
FS_EXTERN_OVERLAY(OVY_5);
FS_EXTERN_OVERLAY(OVY_6);
FS_EXTERN_OVERLAY(OVY_7);
typedef enum BattleState {
BSTATE_INIT,
BSTATE_LINK_INIT,
BSTATE_LINK_MAIN,
BSTATE_UNK_A_INIT,
BSTATE_UNK_A_MAIN,
BSTATE_UNK_B_INIT,
BSTATE_UNK_B_MAIN,
BSTATE_SYNC,
BSTATE_BATTLE_INIT,
BSTATE_BATTLE_MAIN,
BSTATE_END_INIT,
BSTATE_END_MAIN,
BSTATE_END_WAIT,
BSTATE_EVOLUTION_INIT,
BSTATE_EVOLUTION_MAIN,
BSTATE_EXIT
} BattleState;
BOOL Battle_Main(OVY_MANAGER *man, int *state) {
BattleSetup *setup = OverlayManager_GetArgs(man);
switch (*state) {
case BSTATE_INIT:
CreateHeap(HEAP_ID_3, HEAP_ID_BATTLE, 0xB0000);
if ((setup->battleType & BATTLE_TYPE_LINK) && !(setup->battleSpecial & BATTLE_SPECIAL_RECORDED)) {
*state = BSTATE_LINK_INIT;
} else {
*state = BSTATE_UNK_A_INIT;
}
break;
case BSTATE_LINK_INIT:
ov12_022399D4(man, setup);
sub_02039F68(setup->unk_12C);
if (!sub_02039998()) {
GameStats_Inc(setup->gameStats, GAME_STAT_UNK21);
if (setup->battleType != 0x8F) {
sub_02005BEC(1);
}
} else {
GameStats_Inc(setup->gameStats, GAME_STAT_UNK26);
}
*state = BSTATE_LINK_MAIN;
break;
case BSTATE_LINK_MAIN:
if (ov12_02239C28(man) == TRUE) {
ov12_0223A088(man);
*state = BSTATE_UNK_A_INIT;
}
break;
case BSTATE_UNK_A_INIT:
if (ov12_0223A0D4(man) == TRUE) {
*state = BSTATE_UNK_A_MAIN;
} else {
*state = BSTATE_UNK_B_INIT;
}
break;
case BSTATE_UNK_A_MAIN:
if (ov12_0223A218(man) == TRUE) {
*state = BSTATE_UNK_B_INIT;
}
break;
case BSTATE_UNK_B_INIT:
if (ov12_0223A260(man) == TRUE) {
*state = BSTATE_UNK_B_MAIN;
} else {
*state = BSTATE_BATTLE_INIT;
}
break;
case BSTATE_UNK_B_MAIN:
if (ov12_0223A3A8(man) == TRUE) {
UnloadOverlayByID(FS_OVERLAY_ID(OVY_5));
*state = BSTATE_SYNC;
sub_02037AC0(0x3D);
}
break;
case BSTATE_SYNC:
if (sub_02037B38(0x3D)) {
*state = BSTATE_BATTLE_INIT;
}
break;
case BSTATE_BATTLE_INIT:
HandleLoadOverlay(FS_OVERLAY_ID(OVY_6), OVY_LOAD_ASYNC);
HandleLoadOverlay(FS_OVERLAY_ID(OVY_7), OVY_LOAD_ASYNC);
ov12_02237F18(man);
*state = BSTATE_BATTLE_MAIN;
break;
case BSTATE_BATTLE_MAIN:
if (ov12_02238358(man) == TRUE) {
ov12_0223843C(man);
sub_02005BEC(0);
*state = BSTATE_END_INIT;
}
break;
case BSTATE_END_INIT:
if (ov12_0223A3F0(man) == TRUE) {
*state = BSTATE_END_MAIN;
} else {
DestroyHeap(HEAP_ID_BATTLE);
*state = BSTATE_EVOLUTION_INIT;
}
break;
case BSTATE_END_MAIN:
if (ov12_0223A5E4(man) == TRUE) {
UnloadOverlayByID(FS_OVERLAY_ID(OVY_5));
DestroyHeap(HEAP_ID_BATTLE);
*state = BSTATE_END_WAIT;
}
break;
case BSTATE_END_WAIT:
*state = BSTATE_EXIT;
break;
case BSTATE_EVOLUTION_INIT:
int selectedMonIndex;
int evolutionSpecies;
int evolutionCondition;
Pokemon *mon;
evolutionSpecies = BattleSystem_CheckEvolution(setup, &selectedMonIndex, &evolutionCondition);
if (evolutionSpecies) {
CreateHeap(HEAP_ID_3, HEAP_ID_EVOLUTION, 0x30000);
mon = Party_GetMonByIndex(setup->party[BATTLER_PLAYER], selectedMonIndex);
setup->unk198 = sub_02075A7C(setup->party[BATTLER_PLAYER], mon, evolutionSpecies,
setup->options, setup->unk_164, setup->pokedex,
setup->bag, setup->gameStats, evolutionCondition,
3, HEAP_ID_EVOLUTION);
*state = BSTATE_EVOLUTION_MAIN;
} else {
*state = BSTATE_EXIT;
}
break;
case BSTATE_EVOLUTION_MAIN:
void *data = setup->unk198;
if (sub_02075D3C(data) == TRUE) {
sub_02075D4C(data);
DestroyHeap(HEAP_ID_EVOLUTION);
*state = BSTATE_EVOLUTION_INIT;
}
break;
case BSTATE_EXIT:
return TRUE;
}
return FALSE;
}

View File

@ -24,7 +24,7 @@ BattleContext *BattleContext_New(BattleSystem *bsys) {
return ctx;
}
BOOL BattleMain(BattleSystem *bsys, BattleContext *ctx) {
BOOL BattleContext_Main(BattleSystem *bsys, BattleContext *ctx) {
if (!ctx->battleEndFlag) {
if (BattleSystem_GetBattleOutcomeFlags(bsys) && !(BattleSystem_GetBattleOutcomeFlags(bsys) & 0x40)) {
ctx->command = CONTROLLER_COMMAND_42;

View File

@ -35,8 +35,8 @@ BattleSetup* BattleSetup_New(HeapID heapId, u32 battleTypeFlags) {
int i;
BattleSetup* setup = AllocFromHeap(heapId, sizeof(BattleSetup));
MI_CpuClear8(setup, sizeof(BattleSetup));
setup->flags = battleTypeFlags;
setup->unk_18C = 0;
setup->battleType = battleTypeFlags;
setup->battleSpecial = 0;
setup->winFlag = 0;
setup->battleBg = 0;
setup->unk_150 = 24;
@ -229,7 +229,7 @@ void sub_02051D18(BattleSetup* setup, FieldSystem* fieldSystem, SaveData* saveDa
setup->timeOfDay = GF_RTC_GetTimeOfDayByHour(Save_SysInfo_RTC_Get(saveData)->time.hour);
}
BattleSetup_SetProfile(setup, profile, BATTLER_PLAYER);
if (setup->flags & BATTLE_TYPE_BUG_CONTEST) {
if (setup->battleType & BATTLE_TYPE_BUG_CONTEST) {
Party_InitWithMaxSize(setup->party[BATTLER_PLAYER], 1);
BattleSetup_AddMonToParty(setup, Party_GetMonByIndex(party, 0), BATTLER_PLAYER);
} else {

View File

@ -111,7 +111,7 @@ static BOOL Encounter_GetResult(Encounter *encounter, FieldSystem *fieldSystem)
}
static void sub_02050724(BattleSetup *setup, FieldSystem *fieldSystem) {
if (!(setup->flags & BATTLE_TYPE_DEBUG)) {
if (!(setup->battleType & BATTLE_TYPE_DEBUG)) {
sub_0205239C(setup, fieldSystem);
}
}
@ -137,7 +137,7 @@ static BOOL Task_StartEncounter(TaskManager *taskManager) { //todo: better name
break;
case 3:
sub_02050724(encounter->setup, fieldSystem);
if (encounter->setup->flags == BATTLE_TYPE_NONE || encounter->setup->flags == BATTLE_TYPE_8 || encounter->setup->flags == (BATTLE_TYPE_DOUBLES | BATTLE_TYPE_MULTI | BATTLE_TYPE_6)) {
if (encounter->setup->battleType == BATTLE_TYPE_NONE || encounter->setup->battleType == BATTLE_TYPE_8 || encounter->setup->battleType == (BATTLE_TYPE_DOUBLES | BATTLE_TYPE_MULTI | BATTLE_TYPE_6)) {
sub_02093070(fieldSystem);
sub_020930C4(fieldSystem);
}
@ -146,7 +146,7 @@ static BOOL Task_StartEncounter(TaskManager *taskManager) { //todo: better name
fieldSystem->unk7C = 0;
if (Encounter_GetResult(encounter, fieldSystem) == FALSE) {
if (encounter->setup->flags & BATTLE_TYPE_11) {
if (encounter->setup->battleType & BATTLE_TYPE_11) {
HealParty(SaveArray_Party_Get(fieldSystem->saveData));
} else {
Encounter_Delete(encounter);
@ -550,7 +550,7 @@ void SetupAndStartWildBattle(TaskManager *taskManager, u16 species, u8 level, u3
ov02_02247F30(fieldSystem, species, level, shiny, setup);
if (canFlee) {
setup->unk_18C |= 8;
setup->battleSpecial |= 8;
}
GameStats_Inc(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK8);
@ -570,7 +570,7 @@ void SetupAndStartFatefulWildBattle(TaskManager *taskManager, u16 species, u8 le
SetMonData(Party_GetMonByIndex(setup->party[BATTLER_ENEMY], 0), MON_DATA_FATEFUL_ENCOUNTER, &var);
if (canRun) {
setup->unk_18C |= 8;
setup->battleSpecial |= 8;
}
GameStats_Inc(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK8);
@ -640,7 +640,7 @@ void SetupAndStartFirstBattle(TaskManager *taskManager, u16 species, u8 level) {
ov02_02247F30(fieldSystem, species, level, FALSE, setup);
setup->unk_18C = 1;
setup->battleSpecial = BATTLE_SPECIAL_FIRST_RIVAL;
GameStats_Inc(Save_GameStats_Get(fieldSystem->saveData), GAME_STAT_UNK8);
@ -857,7 +857,7 @@ void sub_020515FC(FieldSystem *fieldSystem, Party *party, s32 battleType) {
static void sub_02051660(FieldSystem *fieldSystem, BattleSetup *setup) {
Pokemon *mon;
u32 battleType = setup->flags;
u32 battleType = setup->battleType;
u32 winFlag = setup->winFlag;
if (battleType & BATTLE_TYPE_LINK || battleType & BATTLE_TYPE_TOWER) {

View File

@ -662,8 +662,8 @@ BOOL ScrCmd_700(ScriptContext *ctx) {
}
BOOL ScrCmd_BattleTowerSetUpMultiBattle(ScriptContext *ctx) {
sub_0202CA44(ctx->fieldSystem->saveData);
sub_02039F68();
void *data = sub_0202CA44(ctx->fieldSystem->saveData);
sub_02039F68(data);
return TRUE;
}

View File

@ -143,7 +143,6 @@ BOOL ov36_App_MainMenu_SelectOption_Continue_AppInit(OVY_MANAGER* man, int* stat
}
BOOL ov36_App_MainMenu_SelectOption_Continue_AppExec(OVY_MANAGER* man, int* state) {
#pragma unused(state)
struct UnkStruct_02111868_sub* unk_work = OverlayManager_GetArgs(man);
SaveData* saveData = unk_work->saveData;
SysInfo* sys_info = Save_SysInfo_Get(saveData);

View File

@ -35,7 +35,7 @@ void EnemyTrainerSet_Init(BattleSetup *battleSetup, SaveData *saveData, HeapID h
CreateNPCTrainerParty(battleSetup, i, heapId);
}
}
battleSetup->flags |= trainer.data.doubleBattle;
battleSetup->battleType |= trainer.data.doubleBattle;
DestroyMsgData(msgData);
}