Merge pull request #297 from DizzyEggg/contest_table

Decompile contest_effect
This commit is contained in:
Diegoisawesome
2018-08-16 14:16:00 -07:00
committed by GitHub
11 changed files with 4133 additions and 6066 deletions

View File

@@ -3233,7 +3233,7 @@ _080DD166:
ands r0, r2
strb r0, [r1, 0x15]
_080DD1B4:
ldr r0, =gContestEffectFunctionTable
ldr r0, =gContestEffectFuncs
add r0, r9
ldr r0, [r0]
bl _call_via_r0
@@ -3506,8 +3506,8 @@ _080DD3C4:
.pool
thumb_func_end sub_80DD080
thumb_func_start sub_80DD3D4
sub_80DD3D4: @ 80DD3D4
thumb_func_start SetContestantEffectStringID
SetContestantEffectStringID: @ 80DD3D4
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
@@ -3520,10 +3520,10 @@ sub_80DD3D4: @ 80DD3D4
strb r1, [r2, 0x13]
bx lr
.pool
thumb_func_end sub_80DD3D4
thumb_func_end SetContestantEffectStringID
thumb_func_start sub_80DD3F0
sub_80DD3F0: @ 80DD3F0
thumb_func_start SetContestantEffectStringID2
SetContestantEffectStringID2: @ 80DD3F0
lsls r0, 24
lsrs r0, 24
ldr r2, =gContestResources
@@ -3536,10 +3536,10 @@ sub_80DD3F0: @ 80DD3F0
strb r1, [r2, 0x14]
bx lr
.pool
thumb_func_end sub_80DD3F0
thumb_func_end SetContestantEffectStringID2
thumb_func_start sub_80DD40C
sub_80DD40C: @ 80DD40C
thumb_func_start SetStartledString
SetStartledString: @ 80DD40C
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -3550,36 +3550,36 @@ sub_80DD40C: @ 80DD40C
cmp r1, 0x3B
bls _080DD426
movs r1, 0x35
bl sub_80DD3D4
bl SetContestantEffectStringID
b _080DD456
_080DD426:
cmp r1, 0x27
bls _080DD432
movs r1, 0x34
bl sub_80DD3D4
bl SetContestantEffectStringID
b _080DD456
_080DD432:
cmp r1, 0x1D
bls _080DD43E
movs r1, 0x33
bl sub_80DD3D4
bl SetContestantEffectStringID
b _080DD456
_080DD43E:
cmp r1, 0x13
bls _080DD44A
movs r1, 0x32
bl sub_80DD3D4
bl SetContestantEffectStringID
b _080DD456
_080DD44A:
cmp r2, 0x9
bls _080DD456
adds r0, r3, 0
movs r1, 0x31
bl sub_80DD3D4
bl SetContestantEffectStringID
_080DD456:
pop {r0}
bx r0
thumb_func_end sub_80DD40C
thumb_func_end SetStartledString
thumb_func_start sub_80DD45C
sub_80DD45C: @ 80DD45C
@@ -3678,8 +3678,8 @@ _080DD52C:
.pool
thumb_func_end sub_80DD45C
thumb_func_start sub_80DD560
sub_80DD560: @ 80DD560
thumb_func_start MakeContestantNervous
MakeContestantNervous: @ 80DD560
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -3703,7 +3703,7 @@ sub_80DD560: @ 80DD560
pop {r0}
bx r0
.pool
thumb_func_end sub_80DD560
thumb_func_end MakeContestantNervous
thumb_func_start sub_80DD590
sub_80DD590: @ 80DD590

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
@ 858C2B4
.include "data/contest_moves.inc"
@ 858CDCC
.include "data/contest_effects.inc"
@ A lookup table with a 1 for each combo starter ID and a 0 for ID 0,
@ which means "not a combo starter move".
gComboStarterLookupTable:: @ 858CE8C
.byte 0
.rept 62
.byte 1
.endr
.align 2
@ 858CECC
.include "data/contest_effect_function_table.inc"

View File

@@ -1,50 +0,0 @@
.align 2
gContestEffectFunctionTable:: @ 858CECC
.4byte ContestEffectFunc_080E547C
.4byte ContestEffectFunc_080E5480
.4byte ContestEffectFunc_080E54B0
.4byte ContestEffectFunc_080E54E0
.4byte ContestEffectFunc_080E5534
.4byte ContestEffectFunc_080E5560
.4byte ContestEffectFunc_080E5590
.4byte ContestEffectFunc_080E55BC
.4byte ContestEffectFunc_080E55EC
.4byte ContestEffectFunc_080E5664
.4byte ContestEffectFunc_080E55EC
.4byte ContestEffectFunc_080E5664
.4byte ContestEffectFunc_080E55EC
.4byte ContestEffectFunc_080E5664
.4byte ContestEffectFunc_080E56E0
.4byte ContestEffectFunc_080E5718
.4byte ContestEffectFunc_080E57CC
.4byte ContestEffectFunc_080E588C
.4byte ContestEffectFunc_080E5938
.4byte ContestEffectFunc_080E5970
.4byte ContestEffectFunc_080E59B0
.4byte ContestEffectFunc_080E59D0
.4byte ContestEffectFunc_080E59F0
.4byte ContestEffectFunc_080E5A10
.4byte ContestEffectFunc_080E5A30
.4byte ContestEffectFunc_080E5A50
.4byte ContestEffectFunc_080E5AD4
.4byte ContestEffectFunc_080E5CD4
.4byte ContestEffectFunc_080E5D7C
.4byte ContestEffectFunc_080E5E04
.4byte ContestEffectFunc_080E5E5C
.4byte ContestEffectFunc_080E5EB4
.4byte ContestEffectFunc_080E5F64
.4byte ContestEffectFunc_080E5FE4
.4byte ContestEffectFunc_080E6068
.4byte ContestEffectFunc_080E611C
.4byte ContestEffectFunc_080E620C
.4byte ContestEffectFunc_080E62B8
.4byte ContestEffectFunc_080E6334
.4byte ContestEffectFunc_080E6398
.4byte ContestEffectFunc_080E63E8
.4byte ContestEffectFunc_080E6520
.4byte ContestEffectFunc_080E6664
.4byte ContestEffectFunc_080E6668
.4byte ContestEffectFunc_080E6778
.4byte ContestEffectFunc_080E67BC
.4byte ContestEffectFunc_080E6868
.4byte ContestEffectFunc_080E68EC

View File

@@ -1,289 +0,0 @@
.align 2
gContestEffects:: @ 858CDCC
@ 0x00
.byte 0 @ effect type
.byte 40 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x01
.byte 0 @ effect type
.byte 60 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x02
.byte 0 @ effect type
.byte 80 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x03
.byte 0 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x04
.byte 1 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x05
.byte 1 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x06
.byte 1 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x07
.byte 1 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x08
.byte 2 @ effect type
.byte 30 @ appeal
.byte 20 @ jam
.byte 0 @ padding
@ 0x09
.byte 3 @ effect type
.byte 30 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x0a
.byte 2 @ effect type
.byte 20 @ appeal
.byte 30 @ jam
.byte 0 @ padding
@ 0x0b
.byte 3 @ effect type
.byte 20 @ appeal
.byte 20 @ jam
.byte 0 @ padding
@ 0x0c
.byte 2 @ effect type
.byte 10 @ appeal
.byte 40 @ jam
.byte 0 @ padding
@ 0x0d
.byte 3 @ effect type
.byte 10 @ appeal
.byte 30 @ jam
.byte 0 @ padding
@ 0x0e
.byte 2 @ effect type
.byte 30 @ appeal
.byte 20 @ jam
.byte 0 @ padding
@ 0x0f
.byte 3 @ effect type
.byte 30 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x10
.byte 4 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x11
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x12
.byte 3 @ effect type
.byte 40 @ appeal
.byte 40 @ jam
.byte 0 @ padding
@ 0x13
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x14
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x15
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x16
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x17
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x18
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x19
.byte 4 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x1a
.byte 4 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x1b
.byte 4 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x1c
.byte 3 @ effect type
.byte 30 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x1d
.byte 5 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x1e
.byte 5 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x1f
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x20
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x21
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x22
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x23
.byte 5 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x24
.byte 5 @ effect type
.byte 20 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x25
.byte 5 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x26
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x27
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x28
.byte 6 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x29
.byte 6 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x2a
.byte 6 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x2b
.byte 6 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x2c
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x2d
.byte 3 @ effect type
.byte 20 @ appeal
.byte 10 @ jam
.byte 0 @ padding
@ 0x2e
.byte 5 @ effect type
.byte 10 @ appeal
.byte 0 @ jam
.byte 0 @ padding
@ 0x2f
.byte 4 @ effect type
.byte 30 @ appeal
.byte 0 @ jam
.byte 0 @ padding

File diff suppressed because it is too large Load Diff

View File

@@ -415,6 +415,7 @@ extern struct ContestResources *gContestResources;
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
extern u32 gContestRngValue;
extern u8 gUnknown_02039F26[4];
bool8 IsSpeciesNotUnown(u16 species);
void LoadContestBgAfterMoveAnim(void);

View File

@@ -143,7 +143,7 @@ SECTIONS {
asm/script_menu.o(.text);
src/naming_screen.o(.text);
src/money.o(.text);
asm/contest_effect.o(.text);
src/contest_effect.o(.text);
src/record_mixing.o(.text);
src/secret_base.o(.text);
src/tv.o(.text);
@@ -445,7 +445,7 @@ SECTIONS {
data/script_menu.o(.rodata);
src/naming_screen.o(.rodata);
src/money.o(.rodata);
data/contest_effect.o(.rodata);
src/contest_effect.o(.rodata);
src/record_mixing.o(.rodata);
src/secret_base.o(.rodata);
src/tv.o(.rodata);

1080
src/contest_effect.c Normal file

File diff suppressed because it is too large Load Diff

3008
src/data/contest_moves.h Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -253,7 +253,7 @@ static void sub_81C4D18(u8 a);
#include "data/text/move_descriptions.h"
#include "data/text/nature_names.h"
static const struct BgTemplate gUnknown_0861CBB4[] =
static const struct BgTemplate gUnknown_0861CBB4[] =
{
{
.bg = 0,
@@ -526,13 +526,13 @@ static const union AnimCmd *const gSpriteAnimTable_861CF60[] = {
gSpriteAnim_861CF50,
gSpriteAnim_861CF58,
};
static const struct CompressedSpriteSheet gUnknown_0861CFBC =
static const struct CompressedSpriteSheet gUnknown_0861CFBC =
{
.data = gMoveTypes_Gfx,
.size = 0x1700,
.tag = 30002
};
static const struct SpriteTemplate gUnknown_0861CFC4 =
static const struct SpriteTemplate gUnknown_0861CFC4 =
{
.tileTag = 30002,
.paletteTag = 30002,
@@ -622,7 +622,7 @@ static const struct CompressedSpritePalette gUnknown_0861D07C =
.data = gUnknown_08D97CF4,
.tag = 30000
};
static const struct SpriteTemplate gUnknown_0861D084 =
static const struct SpriteTemplate gUnknown_0861D084 =
{
.tileTag = 30000,
.paletteTag = 30000,
@@ -696,7 +696,7 @@ static const struct CompressedSpritePalette gUnknown_0861D100 =
.data = gStatusPal_Icons,
.tag = 30001
};
static const struct SpriteTemplate gUnknown_0861D108 =
static const struct SpriteTemplate gUnknown_0861D108 =
{
.tileTag = 30001,
.paletteTag = 30001,
@@ -722,7 +722,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
pssData->isBoxMon = TRUE;
else
pssData->isBoxMon = FALSE;
switch (mode)
{
case PSS_MODE_NORMAL:
@@ -747,7 +747,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
if (gMonSpritesGfxPtr == 0)
sub_806F2AC(0, 0);
SetMainCallback2(SummaryScreen_LoadingCB2);
}
@@ -1029,7 +1029,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a)
sum->isEgg = TRUE;
else
sum->isEgg = GetMonData(a, MON_DATA_IS_EGG);
break;
case 1:
for (i = 0; i < 4; i++)
@@ -1384,7 +1384,7 @@ static void sub_81C0A8C(u8 taskId, s8 b)
return;
else if (b == 1 && pssData->currPageIndex == pssData->maxPageIndex)
return;
PlaySE(SE_SELECT);
sub_81C2C38(pssData->currPageIndex);
pssData->currPageIndex += b;
@@ -1751,7 +1751,7 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2)
SetMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp);
SetMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp);
SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
summary->moves[moveIndex1] = move2;
summary->moves[moveIndex2] = move1;
@@ -1786,7 +1786,7 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2
SetBoxMonData(mon, MON_DATA_PP1 + moveIndex1, &move2pp);
SetBoxMonData(mon, MON_DATA_PP1 + moveIndex2, &move1pp);
SetBoxMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses);
summary->moves[moveIndex1] = move2;
summary->moves[moveIndex2] = move1;
@@ -2289,10 +2289,10 @@ static void sub_81C240C(u16 move)
if (move != MOVE_NONE)
{
effectValue = gContestEffects[gContestMoves[move].effect].appeal;
if (effectValue != 0xFF)
effectValue /= 10;
for (i = 0; i < 8; i++)
{
if (effectValue != 0xFF && i < effectValue)
@@ -2309,7 +2309,7 @@ static void sub_81C240C(u16 move)
if (effectValue != 0xFF)
effectValue /= 10;
for (i = 0; i < 8; i++)
{
if (effectValue != 0xFF && i < effectValue)
@@ -2458,21 +2458,21 @@ static void PrintPageNamesAndStatsPageToWindows(void)
iconXPos = 0;
PrintAOrBButtonIcon(4, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(4, gText_Cancel2, stringXPos, 1, 0, 0);
stringXPos = GetStringRightAlignXOffset(1, gText_Info, 0x3E);
iconXPos = stringXPos - 16;
if (iconXPos < 0)
iconXPos = 0;
PrintAOrBButtonIcon(5, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(5, gText_Info, stringXPos, 1, 0, 0);
stringXPos = GetStringRightAlignXOffset(1, gText_Switch, 0x3E);
iconXPos = stringXPos - 16;
if (iconXPos < 0)
iconXPos = 0;
PrintAOrBButtonIcon(6, FALSE, iconXPos);
SummaryScreen_PrintTextOnWindow(6, gText_Switch, stringXPos, 1, 0, 0);
SummaryScreen_PrintTextOnWindow(8, gText_RentalPkmn, 0, 1, 0, 1);
SummaryScreen_PrintTextOnWindow(9, gText_TypeSlash, 0, 1, 0, 0);
statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_HP4, 42);
@@ -2733,7 +2733,7 @@ static void BufferMonTrainerMemo(void)
{
struct PokeSummary *sum = &pssData->summary;
const u8 *text;
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B);
@@ -2886,7 +2886,7 @@ static void PrintEggState(void)
text = gText_EggWillTakeSomeTime;
else
text = gText_EggWillTakeALongTime;
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0);
}
@@ -3013,14 +3013,14 @@ static void BufferLeftColumnStats(void)
ConvertIntToDecimalStringN(maxHPString, pssData->summary.maxHP, 1, 3);
ConvertIntToDecimalStringN(attackString, pssData->summary.atk, 1, 7);
ConvertIntToDecimalStringN(defenseString, pssData->summary.def, 1, 7);
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82);
Free(currentHPString);
Free(maxHPString);
Free(attackString);
@@ -3037,7 +3037,7 @@ static void BufferRightColumnStats(void)
ConvertIntToDecimalStringN(gStringVar1, pssData->summary.spatk, 1, 3);
ConvertIntToDecimalStringN(gStringVar2, pssData->summary.spdef, 1, 3);
ConvertIntToDecimalStringN(gStringVar3, pssData->summary.speed, 1, 3);
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2);
@@ -3065,7 +3065,7 @@ static void PrintExpPointsNextLevel(void)
expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp;
else
expToNextLevel = 0;
ConvertIntToDecimalStringN(gStringVar1, expToNextLevel, 1, 6);
offset = GetStringRightAlignXOffset(1, gStringVar1, 42) + 2;
SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0);
@@ -3660,7 +3660,7 @@ static void sub_81C48F0(void)
sub_806EE98();
paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100;
for (i = 0; i < 16; i++)
{
gPlttBufferUnfaded[(u16)(i + paletteIndex)] = gPlttBufferFaded[(u16)(i + paletteIndex)];