mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-24 23:17:08 -05:00
few more funcs
This commit is contained in:
parent
400e6aea2b
commit
764a3db869
|
|
@ -7,83 +7,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_02047174
|
||||
sub_02047174: ; 0x02047174
|
||||
push {r3-r7, lr}
|
||||
add r5, r2, #0x0
|
||||
add r7, r0, #0x0
|
||||
add r4, r1, #0x0
|
||||
bl TaskManager_GetFieldSystem
|
||||
add r6, r0, #0x0
|
||||
mov r0, #0xb
|
||||
add r1, r5, #0x0
|
||||
bl BattleSetup_New
|
||||
add r5, r0, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r4, #0x0
|
||||
bl sub_02047F1C
|
||||
add r0, r5, #0x0
|
||||
bl sub_020475A0
|
||||
add r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl sub_020475B0
|
||||
add r2, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r1, r4, #0x0
|
||||
mov r3, #0x0
|
||||
bl Encounter_New
|
||||
add r2, r0, #0x0
|
||||
ldr r1, _020471BC ; =sub_02046758
|
||||
add r0, r7, #0x0
|
||||
bl TaskManager_Call
|
||||
pop {r3-r7, pc}
|
||||
nop
|
||||
_020471BC: .word sub_02046758
|
||||
|
||||
thumb_func_start sub_020471C0
|
||||
sub_020471C0: ; 0x020471C0
|
||||
push {r3-r7, lr}
|
||||
str r0, [sp, #0x0]
|
||||
add r5, r1, #0x0
|
||||
add r6, r2, #0x0
|
||||
add r4, r3, #0x0
|
||||
bl TaskManager_GetFieldSystem
|
||||
add r7, r0, #0x0
|
||||
cmp r4, #0x0
|
||||
beq _020471DE
|
||||
mov r0, #0xb
|
||||
mov r1, #0x5
|
||||
bl BattleSetup_New
|
||||
b _020471E6
|
||||
_020471DE:
|
||||
mov r0, #0xb
|
||||
mov r1, #0x7
|
||||
bl BattleSetup_New
|
||||
_020471E6:
|
||||
add r4, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r1, r7, #0x0
|
||||
add r2, r6, #0x0
|
||||
bl sub_02047BC0
|
||||
add r0, r4, #0x0
|
||||
bl sub_020475A0
|
||||
add r6, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl sub_020475B0
|
||||
add r2, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r1, r6, #0x0
|
||||
mov r3, #0x0
|
||||
bl Encounter_New
|
||||
add r2, r0, #0x0
|
||||
ldr r0, [sp, #0x0]
|
||||
ldr r1, _0204721C ; =sub_020467FC
|
||||
str r5, [r2, #0xc]
|
||||
bl TaskManager_Call
|
||||
pop {r3-r7, pc}
|
||||
nop
|
||||
_0204721C: .word sub_020467FC
|
||||
|
||||
thumb_func_start sub_02047220
|
||||
sub_02047220: ; 0x02047220
|
||||
push {r3-r7, lr}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ extern void sub_0204BAA0(FieldSystem *fieldSystem, BattleSetup *setup);
|
|||
extern u32 sub_0204BAB0(FieldSystem *fieldSystem);
|
||||
extern void StartScriptFromMenu(TaskManager *taskManager, u16 script, LocalMapObject *lastInteracted);
|
||||
extern BattleSetup *sub_02047814(HeapID heapId, FieldSystem *fieldSystem);
|
||||
extern void sub_02047F1C(BattleSetup *setup, FieldSystem *fieldSystem, void *param2);
|
||||
extern void sub_02047BC0(BattleSetup *setup, FieldSystem *fieldSystem, s32 maxLevel);
|
||||
|
||||
extern void sub_020472F4(FieldSystem *fieldSystem, BattleSetup *setup);
|
||||
extern void sub_020473CC(FieldSystem *fieldSystem, BattleSetup *setup);
|
||||
|
|
@ -197,7 +199,7 @@ static void sub_0204671C(s32 flag, FieldSystem *fieldSystem) {
|
|||
}
|
||||
}
|
||||
|
||||
/*static*/ BOOL sub_02046758(TaskManager *taskManager) {
|
||||
/*static*/ BOOL sub_02046758(TaskManager *taskManager) { //Task_02046758
|
||||
FieldSystem *fieldSystem = TaskManager_GetFieldSystem(taskManager);
|
||||
Encounter *encounter = TaskManager_GetEnvironment(taskManager);
|
||||
u32 *state = TaskManager_GetStatePtr(taskManager);
|
||||
|
|
@ -654,9 +656,9 @@ void SetupAndStartTrainerBattle(TaskManager *taskManager, u32 opponentTrainer1,
|
|||
setup = BattleSetup_New(HEAP_ID_FIELD, battleType);
|
||||
BattleSetup_InitFromFieldSystem(setup, fieldSystem);
|
||||
|
||||
setup->trainerId[1] = opponentTrainer1;
|
||||
setup->trainerId[3] = opponentTrainer2;
|
||||
setup->trainerId[2] = followerTrainerNum;
|
||||
setup->trainerId[BATTLER_ENEMY] = opponentTrainer1;
|
||||
setup->trainerId[BATTLER_ENEMY2] = opponentTrainer2;
|
||||
setup->trainerId[BATTLER_PLAYER2] = followerTrainerNum;
|
||||
|
||||
EnemyTrainerSet_Init(setup, fieldSystem->saveData, heapId);
|
||||
|
||||
|
|
@ -664,3 +666,36 @@ void SetupAndStartTrainerBattle(TaskManager *taskManager, u32 opponentTrainer1,
|
|||
|
||||
CallTask_StartEncounter(taskManager, setup, sub_020475A0(setup), sub_020475B0(setup), winFlag);
|
||||
}
|
||||
|
||||
void sub_02047174(TaskManager *taskManager, void *param1, u32 battleType) {
|
||||
FieldSystem *fieldSystem = TaskManager_GetFieldSystem(taskManager);
|
||||
Encounter *encounter;
|
||||
BattleSetup *setup;
|
||||
|
||||
setup = BattleSetup_New(HEAP_ID_FIELD, battleType);
|
||||
|
||||
sub_02047F1C(setup, fieldSystem, param1);
|
||||
|
||||
encounter = Encounter_New(setup, sub_020475A0(setup), sub_020475B0(setup), NULL);
|
||||
|
||||
TaskManager_Call(taskManager, sub_02046758, encounter);
|
||||
}
|
||||
|
||||
void sub_020471C0(TaskManager *taskManager, s32 target, s32 maxLevel, u32 flag) {
|
||||
FieldSystem *fieldSystem = TaskManager_GetFieldSystem(taskManager);
|
||||
Encounter *encounter;
|
||||
BattleSetup *setup;
|
||||
|
||||
if (flag != 0) {
|
||||
setup = BattleSetup_New(HEAP_ID_FIELD, (BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER));
|
||||
} else {
|
||||
setup = BattleSetup_New(HEAP_ID_FIELD, (BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLES | BATTLE_TYPE_TRAINER));
|
||||
}
|
||||
|
||||
sub_02047BC0(setup, fieldSystem, maxLevel);
|
||||
|
||||
encounter = Encounter_New(setup, sub_020475A0(setup), sub_020475B0(setup), NULL);
|
||||
encounter->unkC = target;
|
||||
|
||||
TaskManager_Call(taskManager, sub_020467FC, encounter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,7 +206,6 @@ extern u32 ov06_022407DC(void);
|
|||
extern void ov06_02240790(FieldSystem *fieldSystem, u16 param1, u16 param2, u16 param3);
|
||||
extern void ov06_022407F8(FieldSystem *fieldSystem, u16 param1, u16 param2, u16 param3);
|
||||
extern u32 ov06_02240844(void);
|
||||
extern void sub_02047174(TaskManager *taskManager, u32 *param1, u32 param2);
|
||||
extern void LocalFieldData_SetDynamicWarp(LocalFieldData *localFieldData, Location *warp);
|
||||
extern void sub_02080C38(TaskManager *taskManager);
|
||||
extern Location *LocalFieldData_GetDynamicWarp(LocalFieldData *localFieldData);
|
||||
|
|
|
|||
|
|
@ -31,5 +31,7 @@ void sub_02046F70(FieldSystem *fieldSystem, BattleSetup *setup);
|
|||
void SetupAndStartFirstBattle(TaskManager *taskManager, u16 species, u8 level);
|
||||
void SetupAndStartTutorialBattle(TaskManager *taskManager);
|
||||
void SetupAndStartTrainerBattle(TaskManager *taskManager, u32 opponentTrainer1, u32 opponentTrainer2, u32 followerTrainerNum, HeapID heapId, u32 *winFlag);
|
||||
void sub_02047174(TaskManager *taskManager, void *param1, u32 battleType);
|
||||
void sub_020471C0(TaskManager *taskManager, s32 target, s32 maxLevel, u32 flag);
|
||||
|
||||
#endif //POKEDIAMOND_ENCOUNTER_H
|
||||
|
|
@ -64,7 +64,7 @@ typedef struct BagScreenAppData {
|
|||
|
||||
typedef struct ScrCmdUnkStruct00F4 {
|
||||
u8 padding[0x2C];
|
||||
u32 unk2C;
|
||||
void *unk2C;
|
||||
} ScrCmdUnkStruct00F4; //todo identify and move to own file
|
||||
|
||||
typedef struct LocalFieldData {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user