Merge remote-tracking branch 'EternalCode/master'

This commit is contained in:
Diegoisawesome 2018-01-01 16:31:35 -06:00
commit 4f726232b8
3 changed files with 57 additions and 85 deletions

View File

@ -1,84 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start SetUpFieldMove_Teleport
SetUpFieldMove_Teleport: @ 817C8BC
push {lr}
ldr r0, =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0817C8D8
movs r0, 0
b _0817C8E6
.pool
_0817C8D8:
ldr r1, =gUnknown_03005DB0
ldr r0, =hm_add_c3_launch_phase_2
str r0, [r1]
ldr r1, =gUnknown_0203CEEC
ldr r0, =hm_teleport_run_dp02scr
str r0, [r1]
movs r0, 0x1
_0817C8E6:
pop {r1}
bx r1
.pool
thumb_func_end SetUpFieldMove_Teleport
thumb_func_start hm_teleport_run_dp02scr
hm_teleport_run_dp02scr: @ 817C8FC
push {lr}
bl sub_808469C
movs r0, 0x3F
bl FieldEffectStart
bl GetCursorSelectionMonId
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end hm_teleport_run_dp02scr
thumb_func_start FldEff_UseTeleport
FldEff_UseTeleport: @ 817C91C
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, =sub_817C94C
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
movs r0, 0
pop {r1}
bx r1
.pool
thumb_func_end FldEff_UseTeleport
thumb_func_start sub_817C94C
sub_817C94C: @ 817C94C
push {lr}
movs r0, 0x3F
bl FieldEffectActiveListRemove
bl sub_80B7FC8
pop {r0}
bx r0
thumb_func_end sub_817C94C
.align 2, 0 @ Don't pad with nop.

View File

@ -237,7 +237,7 @@ SECTIONS {
asm/intro_credits_graphics.o(.text);
src/evolution_graphics.o(.text);
src/bard_music.o(.text);
asm/fldeff_teleport.o(.text);
src/fldeff_teleport.o(.text);
asm/battle_link_817C95C.o(.text);
asm/pokemon_animation.o(.text);
src/recorded_battle.o(.text);

56
src/fldeff_teleport.c Normal file
View File

@ -0,0 +1,56 @@
#include "global.h"
#include "field_effect.h"
#include "task.h"
extern bool8 is_light_level_1_2_3_or_6(u8 mapType);
extern void* hm_add_c3_launch_phase_2(void);
extern void sub_808469C(void);
extern u8 GetCursorSelectionMonId(void);
extern u8 oei_task_add(void);
extern void FieldEffectActiveListRemove(u8 id);
extern void sub_80B7FC8(void);
extern void SetPlayerAvatarTransitionFlags(u8);
extern void* gUnknown_0203CEEC;
extern void* gUnknown_03005DB0;
void hm_teleport_run_dp02scr(void);
void sub_817C94C(void);
// 817C8BC
bool8 SetUpFieldMove_Teleport(void)
{
if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE)
{
gUnknown_03005DB0 = hm_add_c3_launch_phase_2;
gUnknown_0203CEEC = hm_teleport_run_dp02scr;
return TRUE;
}
return FALSE;
}
// 817C8FC
void hm_teleport_run_dp02scr(void)
{
sub_808469C();
FieldEffectStart(0x3F);
gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId();
}
// 817C91C
u8 FldEff_UseTeleport(void)
{
u8 taskID = oei_task_add();
gTasks[taskID].data[8] = (u32)sub_817C94C >> 16;
gTasks[taskID].data[9] = (u32)sub_817C94C;
SetPlayerAvatarTransitionFlags(1);
return 0;
}
void sub_817C94C(void)
{
FieldEffectActiveListRemove(0x3F);
sub_80B7FC8();
}