more labels and finish decompiling battle_ai.c except for unk_24 (#184)

* labels for save_menu_util.c

* formatting, i suck at it

* fix sub_80712B4 to not use MyTask struct

* pls don't kill me

* current changes

* decompile BattleAICmd_if_damage_bonus

* formatting

* label thinking struct unk8

* decompile BattleAICMd_if_status_not_in_party

* decompile more battle_ai.c functions

* Began decompilation of a random file

* decompile BattleAICmd_if_can_faint and BattleAICmd_if_cant_faint

* decompile unk_3F and unk_40

* decompile if_move_effect and if_not_move_effect

* formatting, silly

* decompile if_last_move_did_damage and if_encored

* decompile unk_45 if_random_2 and unk_47

* decompile get_hold_effect and get_gender

* decompile is_first_turn and get_stockpile_count

* decompile unk_4C and get_item

* decompile unk_4E unk_4F and unk_50

* decompile get_protect_count and the remaining stub macros

* decompile call jump and unk_5A

* decompile if_level_cond

* decompile the last AI macros besides unk_24

* finish decompiling battle_ai.c except for unk_24
This commit is contained in:
ProjectRevoTPP 2017-01-10 23:17:43 -05:00 committed by YamaArashi
parent 6b0268e0c0
commit f88eeb6074
13 changed files with 950 additions and 2734 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,185 +6,6 @@
.text
thumb_func_start palette_bg_fill_white
palette_bg_fill_white: @ 8080874
push {lr}
sub sp, 0x4
ldr r0, _0808088C @ =0x7fff7fff
str r0, [sp]
ldr r1, _08080890 @ =gPlttBufferFaded
ldr r2, _08080894 @ =0x01000100
mov r0, sp
bl CpuFastSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0808088C: .4byte 0x7fff7fff
_08080890: .4byte gPlttBufferFaded
_08080894: .4byte 0x01000100
thumb_func_end palette_bg_fill_white
thumb_func_start palette_bg_fill_black
palette_bg_fill_black: @ 8080898
push {lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r1, _080808B0 @ =gPlttBufferFaded
ldr r2, _080808B4 @ =0x01000100
mov r0, sp
bl CpuFastSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080808B0: .4byte gPlttBufferFaded
_080808B4: .4byte 0x01000100
thumb_func_end palette_bg_fill_black
thumb_func_start pal_fill_for_map_transition
pal_fill_for_map_transition: @ 80808B8
push {r4,lr}
bl get_map_light_from_warp0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sav1_map_get_light_level
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl fade_type_for_given_maplight_pair
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080808E2
cmp r0, 0x1
beq _080808F0
b _080808FC
_080808E2:
movs r0, 0
movs r1, 0
bl fade_screen
bl palette_bg_fill_black
b _080808FC
_080808F0:
movs r0, 0x2
movs r1, 0
bl fade_screen
bl palette_bg_fill_white
_080808FC:
pop {r4}
pop {r0}
bx r0
thumb_func_end pal_fill_for_map_transition
thumb_func_start pal_fill_black
pal_fill_black: @ 8080904
push {lr}
movs r0, 0
movs r1, 0
bl fade_screen
bl palette_bg_fill_black
pop {r0}
bx r0
thumb_func_end pal_fill_black
thumb_func_start fade_8080918
fade_8080918: @ 8080918
push {r4,lr}
bl sav1_map_get_light_level
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl warp1_get_mapheader
ldrb r1, [r0, 0x17]
adds r0, r4, 0
bl sub_810CDB8
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _0808093E
cmp r0, 0x1
beq _08080948
b _08080950
_0808093E:
movs r0, 0x1
movs r1, 0
bl fade_screen
b _08080950
_08080948:
movs r0, 0x3
movs r1, 0
bl fade_screen
_08080950:
pop {r4}
pop {r0}
bx r0
thumb_func_end fade_8080918
thumb_func_start sub_8080958
sub_8080958: @ 8080958
push {lr}
lsls r0, 24
movs r1, 0
cmp r0, 0
bne _08080964
movs r1, 0x1
_08080964:
adds r0, r1, 0
bl sub_8059B88
pop {r0}
bx r0
thumb_func_end sub_8080958
thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running
task0A_asap_script_env_2_enable_and_set_ctx_running: @ 8080970
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8080E70
cmp r0, 0x1
bne _08080988
adds r0, r4, 0
bl DestroyTask
bl EnableBothScriptContexts
_08080988:
pop {r4}
pop {r0}
bx r0
thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running
thumb_func_start sub_8080990
sub_8080990: @ 8080990
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
bl pal_fill_black
ldr r0, _080809AC @ =task0A_asap_script_env_2_enable_and_set_ctx_running
movs r1, 0xA
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_080809AC: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
thumb_func_end sub_8080990
thumb_func_start sub_80809B0
sub_80809B0: @ 80809B0
push {lr}
bl ScriptContext2_Enable
bl pal_fill_black
ldr r0, _080809C8 @ =task0A_asap_script_env_2_enable_and_set_ctx_running
movs r1, 0xA
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_080809C8: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
thumb_func_end sub_80809B0
thumb_func_start task_mpl_807DD60
task_mpl_807DD60: @ 80809CC
push {r4,r5,lr}

View File

@ -6,320 +6,6 @@
.text
thumb_func_start unref_sub_8094928
unref_sub_8094928: @ 8094928
push {lr}
ldr r1, _08094938 @ =gPokemonStorage
ldr r2, _0809493C @ =0x000083d0
bl memcpy
pop {r0}
bx r0
.align 2, 0
_08094938: .4byte gPokemonStorage
_0809493C: .4byte 0x000083d0
thumb_func_end unref_sub_8094928
thumb_func_start unref_sub_8094940
unref_sub_8094940: @ 8094940
push {lr}
adds r1, r0, 0
ldr r0, _08094950 @ =gPokemonStorage
ldr r2, _08094954 @ =0x000083d0
bl memcpy
pop {r0}
bx r0
.align 2, 0
_08094950: .4byte gPokemonStorage
_08094954: .4byte 0x000083d0
thumb_func_end unref_sub_8094940
thumb_func_start sub_8094958
sub_8094958: @ 8094958
push {r4,lr}
ldr r4, _08094974 @ =gUnknown_02038470
bl sub_803FBBC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_8094998
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08094974: .4byte gUnknown_02038470
thumb_func_end sub_8094958
thumb_func_start sub_8094978
sub_8094978: @ 8094978
push {lr}
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
lsls r1, 24
lsrs r1, 24
lsls r0, r2, 1
adds r0, r2
ldr r3, _08094994 @ =0x0201606c
adds r0, r3
bl sub_8094A74
pop {r0}
bx r0
.align 2, 0
_08094994: .4byte 0x0201606c
thumb_func_end sub_8094978
thumb_func_start sub_8094998
sub_8094998: @ 8094998
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
lsls r1, 24
lsrs r4, r1, 24
bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080949CE
cmp r4, 0
beq _080949C0
movs r0, 0x30
strb r0, [r6]
movs r0, 0x45
strb r0, [r6, 0x1]
movs r0, 0x12
strb r0, [r6, 0x2]
b _08094A68
_080949C0:
movs r0, 0x3
strb r0, [r6]
movs r0, 0x12
strb r0, [r6, 0x1]
movs r0, 0x45
strb r0, [r6, 0x2]
b _08094A68
_080949CE:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094A0C
movs r5, 0x1
movs r0, 0
bl battle_get_side_with_given_state
mov r2, sp
ldr r1, _08094A08 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r0, [r0]
strb r0, [r2]
movs r4, 0
mov r1, sp
_080949F2:
ldrb r0, [r1]
cmp r4, r0
beq _08094A00
mov r2, sp
adds r0, r2, r5
strb r4, [r0]
adds r5, 0x1
_08094A00:
adds r4, 0x1
cmp r4, 0x5
ble _080949F2
b _08094A50
.align 2, 0
_08094A08: .4byte gUnknown_02024A6A
_08094A0C:
movs r5, 0x2
movs r0, 0
bl battle_get_side_with_given_state
mov r1, sp
ldr r4, _08094A70 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r4
ldrh r0, [r0]
strb r0, [r1]
movs r0, 0x2
bl battle_get_side_with_given_state
mov r1, sp
lsls r0, 24
lsrs r0, 23
adds r0, r4
ldrh r0, [r0]
strb r0, [r1, 0x1]
movs r4, 0
_08094A36:
ldrb r0, [r1]
cmp r4, r0
beq _08094A4A
ldrb r0, [r1, 0x1]
cmp r4, r0
beq _08094A4A
mov r2, sp
adds r0, r2, r5
strb r4, [r0]
adds r5, 0x1
_08094A4A:
adds r4, 0x1
cmp r4, 0x5
ble _08094A36
_08094A50:
movs r4, 0
mov r3, sp
_08094A54:
adds r0, r6, r4
ldrb r1, [r3]
lsls r1, 4
ldrb r2, [r3, 0x1]
orrs r1, r2
strb r1, [r0]
adds r3, 0x2
adds r4, 0x1
cmp r4, 0x2
ble _08094A54
_08094A68:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08094A70: .4byte gUnknown_02024A6A
thumb_func_end sub_8094998
thumb_func_start sub_8094A74
sub_8094A74: @ 8094A74
push {r4-r7,lr}
sub sp, 0x8
adds r5, r0, 0
adds r0, r2, 0
lsls r1, 24
lsrs r7, r1, 24
lsls r0, 24
lsrs r0, 24
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08094A9C
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
b _08094AA8
_08094A9C:
movs r0, 0x1
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x3
_08094AA8:
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r6, r0, 24
bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08094ADC
cmp r7, 0
beq _08094ACE
movs r0, 0x30
strb r0, [r5]
movs r0, 0x45
strb r0, [r5, 0x1]
movs r0, 0x12
strb r0, [r5, 0x2]
b _08094B5E
_08094ACE:
movs r0, 0x3
strb r0, [r5]
movs r0, 0x12
strb r0, [r5, 0x1]
movs r0, 0x45
strb r0, [r5, 0x2]
b _08094B5E
_08094ADC:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08094B14
movs r3, 0x1
mov r2, sp
ldr r1, _08094B10 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r1
ldrh r0, [r0]
strb r0, [r2]
movs r4, 0
mov r1, sp
_08094AF8:
ldrb r0, [r1]
cmp r4, r0
beq _08094B06
mov r2, sp
adds r0, r2, r3
strb r4, [r0]
adds r3, 0x1
_08094B06:
adds r4, 0x1
cmp r4, 0x5
ble _08094AF8
b _08094B46
.align 2, 0
_08094B10: .4byte gUnknown_02024A6A
_08094B14:
movs r3, 0x2
mov r1, sp
ldr r2, _08094B68 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r2
ldrh r0, [r0]
strb r0, [r1]
lsls r0, r6, 1
adds r0, r2
ldrh r0, [r0]
strb r0, [r1, 0x1]
movs r4, 0
_08094B2C:
ldrb r0, [r1]
cmp r4, r0
beq _08094B40
ldrb r0, [r1, 0x1]
cmp r4, r0
beq _08094B40
mov r2, sp
adds r0, r2, r3
strb r4, [r0]
adds r3, 0x1
_08094B40:
adds r4, 0x1
cmp r4, 0x5
ble _08094B2C
_08094B46:
movs r4, 0
mov r3, sp
_08094B4A:
adds r0, r5, r4
ldrb r1, [r3]
lsls r1, 4
ldrb r2, [r3, 0x1]
orrs r1, r2
strb r1, [r0]
adds r3, 0x2
adds r4, 0x1
cmp r4, 0x2
ble _08094B4A
_08094B5E:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08094B68: .4byte gUnknown_02024A6A
thumb_func_end sub_8094A74
thumb_func_start sub_8094B6C
sub_8094B6C: @ 8094B6C
push {r4-r7,lr}

View File

@ -38,7 +38,7 @@ struct AI_ThinkingStruct /* 0x2016800 */
/* 0x01 */ u8 moveConsidered;
/* 0x02 */ u16 unk2;
/* 0x04 */ s8 score[4]; // score?
/* 0x08 */ u32 unk8;
/* 0x08 */ u32 funcResult;
/* 0x0C */ u32 aiFlags;
/* 0x10 */ u8 unk10;
/* 0x11 */ u8 aiLogicId;
@ -54,14 +54,22 @@ struct SmallBattleStruct1
u8 unk4;
};
struct SmallItemStruct
{
u8 item[2][2];
};
struct BattleStruct /* 0x2000000 */
{
u8 filler0[0x1601C];
struct SmallBattleStruct1 unk;
u8 filler1[0xAB]; // 0x2016020
u8 filler1[0x68]; // 0x2016020
u8 unk88;
u8 filler1_2[0x42];
/* 0x160CB */ u8 linkPlayerIndex;
u8 filler2[0x734];
struct AI_ThinkingStruct ai;
struct SmallItemStruct item;
u8 filler2[0x730];
struct AI_ThinkingStruct ai; /* 0x2016800 */
};
extern struct BattleStruct battle_2000000;

View File

@ -370,8 +370,8 @@ struct BattleMove
struct PokemonStorage
{
u8 currentBox;
struct BoxPokemon boxes[14][30];
/* 0x00 */ u8 currentBox;
/* 0x01 */ struct BoxPokemon boxes[14][30];
u8 boxNames[14][9];
u8 unkArray[14];
};

View File

@ -2,8 +2,8 @@
#define GUARD_SAVE_MENU_UTIL_H
void HandleDrawSaveWindowInfo(s16 left, s16 top);
void sub_80946C8(u16 left, u16 top);
u8 sub_809473C(void);
void HandleCloseSaveWindow(u16 left, u16 top);
u8 IsResizeSaveWindowEnabled(void);
void PrintSavePlayerName(s16 x, s16 y);
void PrintSaveMapName(s16 x, s16 y);
void PrintSaveBadges(s16 x, s16 y);

View File

@ -113,6 +113,7 @@ SECTIONS {
src/title_screen.o(.text);
src/weather.o(.text);
asm/weather.o(.text);
src/rom_8080874.o(.text);
asm/rom_8080874.o(.text);
src/battle_setup.o(.text);
asm/cable_club.o(.text);
@ -128,6 +129,7 @@ SECTIONS {
asm/pokedex.o(.text);
src/trainer_card.o(.text);
src/save_menu_util.o(.text);
src/rom_8094928.o(.text);
asm/rom_8094928.o(.text);
asm/battle_party_menu.o(.text);
asm/pokemon_storage_system.o(.text);
@ -192,7 +194,6 @@ SECTIONS {
asm/slot_machine.o(.text);
src/contest_painting.o(.text);
src/battle_ai.o(.text);
asm/battle_ai.o(.text);
asm/trader.o(.text);
src/starter_choose.o(.text);
src/wallclock.o(.text);

File diff suppressed because it is too large Load Diff

85
src/rom_8080874.c Normal file
View File

@ -0,0 +1,85 @@
#include "global.h"
#include "global.fieldmap.h"
#include "gba/syscall.h"
#include "weather.h"
#include "task.h"
#include "script.h"
void palette_bg_fill_white(void);
void palette_bg_fill_black(void);
void pal_fill_black(void);
void task0A_asap_script_env_2_enable_and_set_ctx_running(u8);
extern u8 get_map_light_from_warp0(void);
extern u8 sav1_map_get_light_level(void);
extern u8 fade_type_for_given_maplight_pair(u8, u8);
extern u16 gPlttBufferFaded[];
extern struct MapHeader * warp1_get_mapheader(void);
extern void sub_8059B88(u8);
extern void sub_8053E90(void);
extern u8 sub_810CDB8(u8, u8);
extern int sub_8080E70(void);
void palette_bg_fill_white (void) {
u32 source_color = 0x7fff7fff;
CpuFastSet(&source_color, gPlttBufferFaded, 0x100 | (1 << 24));
}
void palette_bg_fill_black (void) {
u32 source_color = 0;
CpuFastSet(&source_color, gPlttBufferFaded, 0x100 | (1 << 24));
}
void pal_fill_for_map_transition (void) {
u8 map_light = get_map_light_from_warp0();
switch (fade_type_for_given_maplight_pair(map_light, sav1_map_get_light_level())) {
case 0:
fade_screen(0, 0);
palette_bg_fill_black();
break;
case 1:
fade_screen(2, 0);
palette_bg_fill_white();
}
}
void pal_fill_black (void) {
fade_screen(0, 0);
palette_bg_fill_black();
}
void fade_8080918 (void) {
u8 light_level = sav1_map_get_light_level();
switch (sub_810CDB8(light_level, warp1_get_mapheader() -> mapType)) {
case 0:
fade_screen(1, 0);
break;
case 1:
fade_screen(3, 0);
}
}
void sub_8080958 (u8 arg) {
sub_8059B88(!arg);
}
void task0A_asap_script_env_2_enable_and_set_ctx_running (u8 taskID) {
if (sub_8080E70() == 1) {
DestroyTask(taskID);
EnableBothScriptContexts();
}
}
void sub_8080990 (void) {
ScriptContext2_Enable();
sub_8053E90();
pal_fill_black();
CreateTask(&task0A_asap_script_env_2_enable_and_set_ctx_running, 0x0a);
}
void sub_80809B0 (void) {
ScriptContext2_Enable();
pal_fill_black();
CreateTask(&task0A_asap_script_env_2_enable_and_set_ctx_running, 0x0a);
}

94
src/rom_8094928.c Normal file
View File

@ -0,0 +1,94 @@
#include "global.h"
#include "pokemon.h"
extern struct PokemonStorage gPokemonStorage;
extern u8 IsLinkDoubleBattle(void);
extern u8 IsDoubleBattle(void);
extern u8 battle_get_side_with_given_state(u8);
extern u8 battle_side_get_owner(u8);
void sub_8094998(u8 [3], u8);
void sub_8094A74(u8 [3], u8, u32);
extern u8 gUnknown_02038470[3];
extern u8 sub_803FBBC(void);
extern u16 gUnknown_02024A6A[];
void unref_sub_8094928 (void * ptr) {
memcpy(ptr, &gPokemonStorage, 0x83d0);
}
void unref_sub_8094940 (void * ptr) {
memcpy(&gPokemonStorage, ptr, 0x83d0);
}
void sub_8094958 (void) {
sub_8094998(gUnknown_02038470, sub_803FBBC());
}
void sub_8094978 (u8 arg1, u8 arg2) {
sub_8094A74((((u8 (*) [3]) 0x0201606c))[arg1], arg2, arg1);
}
void sub_8094998 (u8 arg[3], u8 player_number) {
int i;
u32 pos;
u8 temp[6];
if (IsLinkDoubleBattle() == 1)
if (player_number) {
*arg = 0x30;
arg[1] = 0x45;
arg[2] = 0x12;
} else {
*arg = 0x03;
arg[1] = 0x12;
arg[2] = 0x45;
}
else {
if (!IsDoubleBattle()) {
pos = 1;
*temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
for (i = 0; i <= 5; i ++) if (i != *temp) temp[pos ++] = i;
} else {
pos = 2;
*temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
temp[1] = gUnknown_02024A6A[battle_get_side_with_given_state(2)];
for (i = 0; i <= 5; i ++) if ((i != *temp) && (i != temp[1])) temp[pos ++] = i;
}
for (i = 0; i <= 2; i ++) arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
}
}
void sub_8094A74 (u8 arg[3], u8 player_number, u32 arg3) {
int i, j;
u8 temp[6];
if (!battle_side_get_owner(arg3)) {
i = battle_get_side_with_given_state(0);
j = battle_get_side_with_given_state(2);
} else {
i = battle_get_side_with_given_state(1);
j = battle_get_side_with_given_state(3);
}
if (IsLinkDoubleBattle() == 1)
if (player_number) {
*arg = 0x30;
arg[1] = 0x45;
arg[2] = 0x12;
} else {
*arg = 0x03;
arg[1] = 0x12;
arg[2] = 0x45;
}
else {
if (!IsDoubleBattle()) {
int pos = 1;
*temp = gUnknown_02024A6A[i];
for (i = 0; i <= 5; i ++) if (i != *temp) temp[pos ++] = i;
} else {
int pos = 2;
*temp = gUnknown_02024A6A[i];
temp[1] = gUnknown_02024A6A[j];
for (i = 0; i <= 5; i ++) if ((i != *temp) && (i != temp[1])) temp[pos ++] = i;
}
for (i = 0; i <= 2; i ++) arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
}
}

View File

@ -15,7 +15,8 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
{
u32 width = 12;
if (sub_809473C())
// old handle for setting window width?
if (IsResizeSaveWindowEnabled())
width = 13;
if (FlagGet(SYS_POKEDEX_GET))
@ -39,11 +40,12 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
}
}
void sub_80946C8(u16 left, u16 top)
void HandleCloseSaveWindow(u16 left, u16 top)
{
u32 width = 12;
if (sub_809473C())
// old handle for setting window width?
if (IsResizeSaveWindowEnabled())
width = 13;
if (FlagGet(SYS_POKEDEX_GET))
@ -52,9 +54,14 @@ void sub_80946C8(u16 left, u16 top)
MenuZeroFillWindowRect(left, top, left + width, top + 9);
}
u8 sub_809473C()
/*
theory: This function was used to handle the save menu window's width being auto sized from
either 12 or 13 in an older source. Whatever was here might have either been optimized out by
GF's compiler or was dummied out to always return a TRUE at some point.
*/
u8 IsResizeSaveWindowEnabled(void) // i don't know what else to name it..
{
return 1;
return TRUE;
}
void PrintSavePlayerName(s16 x, s16 y)

View File

@ -561,7 +561,7 @@ bool8 ScrCmd_darken(struct ScriptContext *ctx)
return FALSE;
}
bool8 sub_8066248(void)
bool8 IsPaletteNotActive(void)
{
if (!gPaletteFade.active)
return TRUE;
@ -572,7 +572,7 @@ bool8 sub_8066248(void)
bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
{
fade_screen(ScriptReadByte(ctx), 0);
SetupNativeScript(ctx, sub_8066248);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@ -581,7 +581,7 @@ bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
u8 duration = ScriptReadByte(ctx);
u8 delay = ScriptReadByte(ctx);
fade_screen(duration, delay);
SetupNativeScript(ctx, sub_8066248);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@ -1170,7 +1170,7 @@ bool8 ScrCmd_closebutton(struct ScriptContext *ctx)
return FALSE;
}
bool8 sub_80670C0()
bool8 WaitForAorBPress(void)
{
if (gMain.newKeys & A_BUTTON)
return TRUE;
@ -1181,7 +1181,7 @@ bool8 sub_80670C0()
bool8 ScrCmd_waitbutton(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, sub_80670C0);
SetupNativeScript(ctx, WaitForAorBPress);
return TRUE;
}

View File

@ -281,22 +281,15 @@ void CreateStartMenuTask(void (*func)(u8))
SetTaskFuncWithFollowupFunc(taskId, Task_StartMenu, func);
}
struct MyTask {
TaskFunc func;
bool8 isActive;
u8 prev;
u8 next;
u8 priority;
s16 var1;
};
void sub_80712B4(u8 taskId)
{
switch(((struct MyTask *)&gTasks[taskId])->var1)
struct Task *task = &gTasks[taskId];
switch(task->data[0])
{
case 0:
gCallback_03004AE8 = StartMenu_InputProcessCallback;
((struct MyTask *)&gTasks[taskId])->var1++;
task->data[0]++;
break;
case 1:
if(gCallback_03004AE8() == 1)
@ -554,7 +547,7 @@ static void Task_SaveDialog(u8 taskId)
static void sub_8071700(void)
{
sub_80946C8(0, 0);
HandleCloseSaveWindow(0, 0);
}
static void HideSaveDialog(void)