finished fldeff_strength + lots of clean up

This commit is contained in:
jiangzhengwenjz
2019-06-29 03:30:48 +08:00
parent c994998aad
commit d09d78dca3
10 changed files with 86 additions and 129 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ sub_8097898: @ 8097898
cmp r0, 0x1
beq _080978E0
movs r0, 0x5F
bl npc_before_player_of_type
bl CheckObjectGraphicsInFrontOfPlayer
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
-111
View File
@@ -1,111 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80D07EC
sub_80D07EC: @ 80D07EC
push {r4,lr}
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
bne _080D0808
movs r0, 0x61
bl npc_before_player_of_type
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080D080C
_080D0808:
movs r0, 0
b _080D0826
_080D080C:
ldr r4, _080D082C @ =gSpecialVar_Result
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
ldr r1, _080D0830 @ =gFieldCallback2
ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu
str r0, [r1]
ldr r1, _080D0838 @ =gPostMenuFieldCallback
ldr r0, _080D083C @ =sub_80D0840
str r0, [r1]
movs r0, 0x1
_080D0826:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080D082C: .4byte gSpecialVar_Result
_080D0830: .4byte gFieldCallback2
_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu
_080D0838: .4byte gPostMenuFieldCallback
_080D083C: .4byte sub_80D0840
thumb_func_end sub_80D07EC
thumb_func_start sub_80D0840
sub_80D0840: @ 80D0840
push {lr}
bl GetCursorSelectionMonId
ldr r1, _080D0858 @ =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
str r0, [r1]
ldr r0, _080D085C @ =gUnknown_81BE16E
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_080D0858: .4byte gFieldEffectArguments
_080D085C: .4byte gUnknown_81BE16E
thumb_func_end sub_80D0840
thumb_func_start sub_80D0860
sub_80D0860: @ 80D0860
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _080D0894 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _080D0898 @ =sub_80D08A8
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
ldr r0, _080D089C @ =gFieldEffectArguments
ldr r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080D08A0 @ =gPlayerParty
adds r0, r1
ldr r1, _080D08A4 @ =gStringVar1
bl GetMonNickname
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_080D0894: .4byte gTasks
_080D0898: .4byte sub_80D08A8
_080D089C: .4byte gFieldEffectArguments
_080D08A0: .4byte gPlayerParty
_080D08A4: .4byte gStringVar1
thumb_func_end sub_80D0860
thumb_func_start sub_80D08A8
sub_80D08A8: @ 80D08A8
push {lr}
movs r0, 0x28
bl FieldEffectActiveListRemove
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_80D08A8
.align 2, 0 @ Don't pad with nop.
+4 -4
View File
@@ -5,8 +5,8 @@
.text
thumb_func_start npc_before_player_of_type
npc_before_player_of_type: @ 80C97A8
thumb_func_start CheckObjectGraphicsInFrontOfPlayer
CheckObjectGraphicsInFrontOfPlayer: @ 80C97A8
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
@@ -46,7 +46,7 @@ _080C97F6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end npc_before_player_of_type
thumb_func_end CheckObjectGraphicsInFrontOfPlayer
thumb_func_start oei_task_add
oei_task_add: @ 80C97FC
@@ -283,7 +283,7 @@ _080C99D4: .4byte gPlayerAvatar
SetUpFieldMove_RockSmash: @ 80C99D8
push {lr}
movs r0, 0x60
bl npc_before_player_of_type
bl CheckObjectGraphicsInFrontOfPlayer
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
+1 -1
View File
@@ -3566,7 +3566,7 @@ SeafoamIslands_B1F_EventScript_1BE11D:: @ 81BE11D
VictoryRoad_2F_EventScript_1BE11D:: @ 81BE11D
.incbin "baserom.gba", 0x1BE11D, 0x51
gUnknown_81BE16E:: @ 81BE16E
EventScript_FldEffStrength:: @ 81BE16E
.incbin "baserom.gba", 0x1BE16E, 0x149
gUnknown_81BE2B7:: @ 81BE2B7
+2
View File
@@ -1144,4 +1144,6 @@ extern const u8 gUnknown_81BB084[];
extern const u8 gUnknown_81BB0DF[];
extern const u8 gUnknown_81BB156[];
extern const u8 EventScript_FldEffStrength[];
#endif //GUARD_EVENT_SCRIPTS_H
+20 -1
View File
@@ -1,11 +1,30 @@
#ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H
// rock smash
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
// rock smash
// berrytree
void nullsub_56(void);
// poison
void FldEffPoison_Start(void);
bool32 FldEffPoison_IsActive(void);
// strength
bool8 SetUpFieldMove_Strength(void);
bool8 sub_80D0860(void);
// teleport
bool8 SetUpFieldMove_Teleport(void);
bool8 FldEff_UseTeleport(void);
// softboiled
bool8 hm_prepare_dive_probably(void);
void sub_80E56DC(u8 taskId);
void sub_80E5724(u8 taskId);
#endif // GUARD_FLDEFF_H
+1 -1
View File
@@ -190,7 +190,7 @@ SECTIONS {
asm/battle_records.o(.text);
asm/evolution_scene.o(.text);
src/coins.o(.text);
asm/fldeff_strength.o(.text);
src/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
asm/battle_controller_link_partner.o(.text);
asm/battle_message.o(.text);
+10 -9
View File
@@ -4,11 +4,12 @@
#include "string_util.h"
#include "menu.h"
#include "constants/songs.h"
#include "fldeff.h"
void sub_80E57E8(u8 taskId);
void sub_80E583C(u8 taskId);
void sub_80E58A0(u8 taskId);
void sub_80E5934(u8 taskId);
static void sub_80E57E8(u8 taskId);
static void sub_80E583C(u8 taskId);
static void sub_80E58A0(u8 taskId);
static void sub_80E5934(u8 taskId);
extern const u8 gUnknown_84169F8[];
extern const u8 gUnknown_8416F27[];
@@ -61,13 +62,13 @@ void sub_80E5724(u8 taskId)
}
}
void sub_80E57E8(u8 taskId)
static void sub_80E57E8(u8 taskId)
{
PlaySE(SE_KAIFUKU);
sub_8120760(taskId, gUnknown_203B0A0.unkA, 1, GetMonData(&gPlayerParty[gUnknown_203B0A0.unk9], MON_DATA_MAX_HP) / 5, sub_80E583C);
}
void sub_80E583C(u8 taskId)
static void sub_80E583C(u8 taskId)
{
GetMonNickname(&gPlayerParty[gUnknown_203B0A0.unkA], gStringVar1);
StringExpandPlaceholders(gStringVar4, gUnknown_8416F27);
@@ -76,7 +77,7 @@ void sub_80E583C(u8 taskId)
gTasks[taskId].func = sub_80E58A0;
}
void sub_80E58A0(u8 taskId)
static void sub_80E58A0(u8 taskId)
{
if (sub_8120370() != TRUE)
{
@@ -91,7 +92,7 @@ void sub_80E58A0(u8 taskId)
}
}
void sub_80E5900(u8 taskId)
static void sub_80E5900(u8 taskId)
{
if (sub_8120370() != TRUE)
{
@@ -100,7 +101,7 @@ void sub_80E5900(u8 taskId)
}
}
void sub_80E5934(u8 taskId)
static void sub_80E5934(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81202F8(gUnknown_84169F8, 0);
+46
View File
@@ -0,0 +1,46 @@
#include "global.h"
#include "field_player_avatar.h"
#include "field_effect.h"
#include "party_menu.h"
#include "event_data.h"
#include "script.h"
#include "fldeff.h"
#include "event_scripts.h"
static void FldEff_UseStrength(void);
static void sub_80D08A8(void);
bool8 SetUpFieldMove_Strength(void)
{
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(0x61) != TRUE)
{
return FALSE;
}
else
{
gSpecialVar_Result = GetCursorSelectionMonId();
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = FldEff_UseStrength;
return TRUE;
}
}
static void FldEff_UseStrength(void)
{
gFieldEffectArguments[0] = GetCursorSelectionMonId();
ScriptContext1_SetupScript(EventScript_FldEffStrength);
}
bool8 sub_80D0860(void)
{
u8 taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)sub_80D08A8 >> 16;
gTasks[taskId].data[9] = (u32)sub_80D08A8;
GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);
return FALSE;
}
static void sub_80D08A8(void)
{
FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH);
EnableBothScriptContexts();
}
+1 -1
View File
@@ -612,7 +612,7 @@ void sub_815A540(void)
s16 x, y;
PlayerGetDestCoords(&x, &y);
if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(0x08))
if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
SetPlayerAvatarTransitionFlags(0x01);