Trade through sub_804FFE4
This commit is contained in:
-389
@@ -5,395 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_804FE24
|
||||
sub_804FE24: @ 804FE24
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x20
|
||||
ldr r0, _0804FEB0 @ =gUnknown_2031DAC
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
adds r0, 0xD4
|
||||
ldrh r1, [r0]
|
||||
lsls r1, 8
|
||||
adds r0, 0x2
|
||||
ldrh r2, [r0]
|
||||
lsls r2, 8
|
||||
adds r0, 0x6
|
||||
movs r4, 0
|
||||
ldrsh r3, [r0, r4]
|
||||
adds r0, 0x2
|
||||
movs r5, 0
|
||||
ldrsh r0, [r0, r5]
|
||||
str r0, [sp]
|
||||
mov r4, r12
|
||||
adds r4, 0xE8
|
||||
movs r5, 0
|
||||
ldrsh r0, [r4, r5]
|
||||
str r0, [sp, 0x4]
|
||||
movs r5, 0
|
||||
ldrsh r0, [r4, r5]
|
||||
str r0, [sp, 0x8]
|
||||
mov r0, r12
|
||||
adds r0, 0xEC
|
||||
ldrh r0, [r0]
|
||||
str r0, [sp, 0xC]
|
||||
add r0, sp, 0x10
|
||||
bl DoBgAffineSet
|
||||
add r0, sp, 0x10
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x20
|
||||
bl SetGpuReg
|
||||
add r0, sp, 0x10
|
||||
ldrh r1, [r0, 0x2]
|
||||
movs r0, 0x22
|
||||
bl SetGpuReg
|
||||
add r0, sp, 0x10
|
||||
ldrh r1, [r0, 0x4]
|
||||
movs r0, 0x24
|
||||
bl SetGpuReg
|
||||
add r0, sp, 0x10
|
||||
ldrh r1, [r0, 0x6]
|
||||
movs r0, 0x26
|
||||
bl SetGpuReg
|
||||
ldr r1, [sp, 0x18]
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x28
|
||||
bl SetGpuReg
|
||||
ldr r1, [sp, 0x1C]
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x2C
|
||||
bl SetGpuReg
|
||||
add sp, 0x20
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804FEB0: .4byte gUnknown_2031DAC
|
||||
thumb_func_end sub_804FE24
|
||||
|
||||
thumb_func_start sub_804FEB4
|
||||
sub_804FEB4: @ 804FEB4
|
||||
push {r4,lr}
|
||||
ldr r4, _0804FEFC @ =gUnknown_2031DAC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xE0
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x16
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xE2
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x14
|
||||
bl SetGpuReg
|
||||
movs r0, 0
|
||||
bl GetGpuReg
|
||||
lsls r0, 16
|
||||
movs r1, 0xE0
|
||||
lsls r1, 11
|
||||
ands r1, r0
|
||||
cmp r1, 0
|
||||
bne _0804FF00
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xE4
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x1A
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xE6
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x18
|
||||
bl SetGpuReg
|
||||
b _0804FF04
|
||||
.align 2, 0
|
||||
_0804FEFC: .4byte gUnknown_2031DAC
|
||||
_0804FF00:
|
||||
bl sub_804FE24
|
||||
_0804FF04:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804FEB4
|
||||
|
||||
thumb_func_start sub_804FF0C
|
||||
sub_804FF0C: @ 804FF0C
|
||||
push {lr}
|
||||
bl sub_804FEB4
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
bl TransferPlttBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804FF0C
|
||||
|
||||
thumb_func_start sub_804FF24
|
||||
sub_804FF24: @ 804FF24
|
||||
push {r4,lr}
|
||||
ldr r3, _0804FF48 @ =gUnknown_2031DAC
|
||||
ldr r1, [r3]
|
||||
movs r0, 0x8A
|
||||
adds r0, r1
|
||||
mov r12, r0
|
||||
movs r2, 0
|
||||
movs r0, 0
|
||||
mov r4, r12
|
||||
strh r0, [r4]
|
||||
adds r1, 0x88
|
||||
strb r2, [r1]
|
||||
ldr r0, [r3]
|
||||
adds r0, 0x89
|
||||
strb r2, [r0]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804FF48: .4byte gUnknown_2031DAC
|
||||
thumb_func_end sub_804FF24
|
||||
|
||||
thumb_func_start sub_804FF4C
|
||||
sub_804FF4C: @ 804FF4C
|
||||
push {r4,r5,lr}
|
||||
ldr r0, _0804FF70 @ =gUnknown_2031DAC
|
||||
ldr r2, [r0]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x88
|
||||
adds r3, r2, 0
|
||||
adds r3, 0x89
|
||||
ldrb r1, [r1]
|
||||
adds r5, r0, 0
|
||||
ldrb r3, [r3]
|
||||
cmp r1, r3
|
||||
bne _0804FF74
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x8A
|
||||
ldrh r0, [r1]
|
||||
adds r0, 0x1
|
||||
b _0804FF7A
|
||||
.align 2, 0
|
||||
_0804FF70: .4byte gUnknown_2031DAC
|
||||
_0804FF74:
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x8A
|
||||
movs r0, 0
|
||||
_0804FF7A:
|
||||
strh r0, [r1]
|
||||
adds r4, r5, 0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x8A
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x96
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bls _0804FFAC
|
||||
bl CloseLink
|
||||
ldr r0, _0804FFC0 @ =CB2_LinkError
|
||||
bl SetMainCallback2
|
||||
ldr r1, [r4]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0x8A
|
||||
movs r2, 0
|
||||
movs r0, 0
|
||||
strh r0, [r3]
|
||||
adds r1, 0x89
|
||||
strb r2, [r1]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x88
|
||||
strb r2, [r0]
|
||||
_0804FFAC:
|
||||
ldr r0, [r5]
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x88
|
||||
ldrb r1, [r1]
|
||||
adds r0, 0x89
|
||||
strb r1, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804FFC0: .4byte CB2_LinkError
|
||||
thumb_func_end sub_804FF4C
|
||||
|
||||
thumb_func_start sub_804FFC4
|
||||
sub_804FFC4: @ 804FFC4
|
||||
push {lr}
|
||||
ldr r0, _0804FFD4 @ =gReceivedRemoteLinkPlayers
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0804FFD8
|
||||
movs r0, 0
|
||||
b _0804FFE0
|
||||
.align 2, 0
|
||||
_0804FFD4: .4byte gReceivedRemoteLinkPlayers
|
||||
_0804FFD8:
|
||||
bl GetMultiplayerId
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0804FFE0:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_804FFC4
|
||||
|
||||
thumb_func_start sub_804FFE4
|
||||
sub_804FFE4: @ 804FFE4
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
movs r4, 0
|
||||
mov r8, r4
|
||||
cmp r6, 0
|
||||
bne _0805000A
|
||||
ldr r0, _08050034 @ =gUnknown_2031DA4
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x64
|
||||
muls r1, r0
|
||||
ldr r0, _08050038 @ =gPlayerParty
|
||||
adds r1, r0
|
||||
mov r8, r1
|
||||
movs r4, 0x1
|
||||
_0805000A:
|
||||
cmp r6, 0x1
|
||||
bne _08050028
|
||||
ldr r0, _08050034 @ =gUnknown_2031DA4
|
||||
ldrb r0, [r0, 0x1]
|
||||
movs r1, 0x6
|
||||
bl __umodsi3
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x64
|
||||
muls r1, r0
|
||||
ldr r0, _0805003C @ =gEnemyParty
|
||||
adds r1, r0
|
||||
mov r8, r1
|
||||
movs r4, 0x3
|
||||
_08050028:
|
||||
cmp r5, 0
|
||||
beq _08050040
|
||||
cmp r5, 0x1
|
||||
beq _080500C8
|
||||
b _0805011E
|
||||
.align 2, 0
|
||||
_08050034: .4byte gUnknown_2031DA4
|
||||
_08050038: .4byte gPlayerParty
|
||||
_0805003C: .4byte gEnemyParty
|
||||
_08050040:
|
||||
mov r0, r8
|
||||
movs r1, 0x41
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
mov r0, r8
|
||||
movs r1, 0
|
||||
bl GetMonData
|
||||
adds r7, r0, 0
|
||||
cmp r6, 0
|
||||
bne _0805007C
|
||||
lsls r0, r5, 3
|
||||
ldr r1, _08050074 @ =gMonFrontPicTable
|
||||
adds r0, r1
|
||||
ldr r1, _08050078 @ =gMonSpritesGfxPtr
|
||||
ldr r1, [r1]
|
||||
ldr r1, [r1, 0x8]
|
||||
adds r2, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl HandleLoadSpecialPokePic
|
||||
movs r4, 0
|
||||
b _0805009A
|
||||
.align 2, 0
|
||||
_08050074: .4byte gMonFrontPicTable
|
||||
_08050078: .4byte gMonSpritesGfxPtr
|
||||
_0805007C:
|
||||
lsls r0, r5, 3
|
||||
ldr r1, _080500BC @ =gMonFrontPicTable
|
||||
adds r0, r1
|
||||
ldr r1, _080500C0 @ =gMonSpritesGfxPtr
|
||||
ldr r2, [r1]
|
||||
lsls r4, r6, 1
|
||||
adds r1, r4, 0x1
|
||||
lsls r1, 2
|
||||
adds r2, 0x4
|
||||
adds r2, r1
|
||||
ldr r1, [r2]
|
||||
adds r2, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
||||
_0805009A:
|
||||
mov r0, r8
|
||||
bl GetMonSpritePalStruct
|
||||
bl LoadCompressedSpritePalette
|
||||
ldr r0, _080500C4 @ =gUnknown_2031DAC
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xF0
|
||||
adds r0, r4
|
||||
strh r5, [r0]
|
||||
lsls r0, r6, 2
|
||||
adds r1, 0x68
|
||||
adds r1, r0
|
||||
str r7, [r1]
|
||||
b _0805011E
|
||||
.align 2, 0
|
||||
_080500BC: .4byte gMonFrontPicTable
|
||||
_080500C0: .4byte gMonSpritesGfxPtr
|
||||
_080500C4: .4byte gUnknown_2031DAC
|
||||
_080500C8:
|
||||
mov r0, r8
|
||||
bl GetMonSpritePalStruct
|
||||
ldrh r0, [r0, 0x4]
|
||||
adds r1, r4, 0
|
||||
bl SetMultiuseSpriteTemplateToPokemon
|
||||
ldr r0, _08050128 @ =gMultiuseSpriteTemplate
|
||||
movs r1, 0x78
|
||||
movs r2, 0x3C
|
||||
movs r3, 0x6
|
||||
bl CreateSprite
|
||||
ldr r4, _0805012C @ =gUnknown_2031DAC
|
||||
ldr r1, [r4]
|
||||
adds r1, 0x8E
|
||||
adds r1, r6
|
||||
strb r0, [r1]
|
||||
ldr r3, _08050130 @ =gSprites
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x8E
|
||||
adds r0, r6
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r3
|
||||
adds r0, 0x3E
|
||||
ldrb r1, [r0]
|
||||
movs r2, 0x4
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x8E
|
||||
adds r0, r6
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r3, 0x1C
|
||||
adds r0, r3
|
||||
ldr r1, _08050134 @ =SpriteCallbackDummy
|
||||
str r1, [r0]
|
||||
_0805011E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08050128: .4byte gMultiuseSpriteTemplate
|
||||
_0805012C: .4byte gUnknown_2031DAC
|
||||
_08050130: .4byte gSprites
|
||||
_08050134: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_804FFE4
|
||||
|
||||
thumb_func_start sub_8050138
|
||||
sub_8050138: @ 8050138
|
||||
push {r4-r6,lr}
|
||||
|
||||
+1
-1
@@ -809,7 +809,7 @@ gUnknown_826CF30:: @ 826CF30
|
||||
gUnknown_826CF48:: @ 826CF48
|
||||
spr_template 5556, 5555, gOamData_826CED0, gSpriteAnimTable_826CF24, NULL, gDummySpriteAffineAnimTable, sub_804FE00
|
||||
|
||||
gUnknown_826CF60:: @ 826CF60
|
||||
gTradeGlow2PaletteAnimTable:: @ 826CF60
|
||||
.2byte RGB(18, 24, 31)
|
||||
.2byte RGB(18, 24, 31)
|
||||
.2byte RGB(18, 24, 31)
|
||||
|
||||
@@ -23,7 +23,6 @@ void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buf
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
|
||||
|
||||
@@ -16,5 +16,6 @@ u16 CalcCRC16(const u8 *data, u32 length);
|
||||
u16 CalcCRC16WithTable(const u8 *data, u32 length);
|
||||
u32 CalcByteArraySum(const u8* data, u32 length);
|
||||
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
|
||||
void DoBgAffineSet(struct BgAffineDstData * dest, u32 texX, u32 texY, s16 srcX, s16 srcY, s16 sx, s16 sy, u16 alpha);
|
||||
|
||||
#endif // GUARD_UTIL_H
|
||||
|
||||
+168
-6
@@ -22,6 +22,7 @@
|
||||
#include "overworld.h"
|
||||
#include "battle_anim.h"
|
||||
#include "party_menu.h"
|
||||
#include "util.h"
|
||||
#include "daycare.h"
|
||||
#include "event_data.h"
|
||||
#include "battle_interface.h"
|
||||
@@ -74,6 +75,52 @@ struct TradeResources
|
||||
/*0x08F0*/ u16 tilemapBuffer[BG_SCREEN_SIZE / 2];
|
||||
};
|
||||
|
||||
struct TradeResources2 {
|
||||
/*0x00*/ struct Pokemon mon;
|
||||
/*0x64*/ u32 timer;
|
||||
/*0x68*/ u32 unk_68[2];
|
||||
/*0x70*/ u8 filler_70[2];
|
||||
/*0x72*/ u8 unk_72;
|
||||
/*0x73*/ u8 unk_73;
|
||||
/*0x74*/ u16 linkData[10];
|
||||
/*0x88*/ u8 unk_88;
|
||||
/*0x89*/ u8 unk_89;
|
||||
/*0x8A*/ u16 unk_8A;
|
||||
/*0x8C*/ u16 unk_8C;
|
||||
/*0x8E*/ u8 pokePicSpriteIdxs[2];
|
||||
/*0x90*/ u8 unk_90;
|
||||
/*0x91*/ u8 unk_91;
|
||||
/*0x92*/ u8 unk_92;
|
||||
/*0x93*/ u8 unk_93;
|
||||
/*0x94*/ u16 state;
|
||||
/*0x96*/ u8 filler_96[0xD2 - 0x96];
|
||||
/*0xD2*/ u8 unk_D2;
|
||||
/*0xD3*/ u8 unk_D3;
|
||||
/*0xD4*/ u16 unk_D4;
|
||||
/*0xD6*/ u16 unk_D6;
|
||||
/*0xD8*/ u16 unk_D8;
|
||||
/*0xDA*/ u16 unk_DA;
|
||||
/*0xDC*/ u16 unk_DC;
|
||||
/*0xDE*/ u16 unk_DE;
|
||||
/*0xE0*/ s16 bg1vofs;
|
||||
/*0xE2*/ s16 bg1hofs;
|
||||
/*0xE4*/ s16 bg2vofs;
|
||||
/*0xE6*/ s16 bg2hofs;
|
||||
/*0xE8*/ u16 unk_E8;
|
||||
/*0xEA*/ u16 unk_EA;
|
||||
/*0xEC*/ u16 unk_EC;
|
||||
/*0xEE*/ bool8 isLinkTrade;
|
||||
/*0xF0*/ u16 tradeSpecies[2];
|
||||
/*0xF4*/ u16 cachedMapMusic;
|
||||
/*0xF6*/ u8 unk_F6[3];
|
||||
/*0xF9*/ u8 filler_F9;
|
||||
/*0xFA*/ u8 unk_FA;
|
||||
/*0xFB*/ u8 unk_FB;
|
||||
/*0xFC*/ u8 unk_FC;
|
||||
/*0xFD*/ u8 unk_FD;
|
||||
/*0xFE*/ u8 unk_FE;
|
||||
};
|
||||
|
||||
IWRAM_DATA vu16 gUnknown_3000E78;
|
||||
|
||||
EWRAM_DATA u8 *gUnknown_2031C90 = NULL;
|
||||
@@ -81,7 +128,7 @@ EWRAM_DATA u8 *gUnknown_2031C94[14] = {};
|
||||
EWRAM_DATA u8 gUnknown_2031CCC[216] = {};
|
||||
EWRAM_DATA u8 gUnknown_2031DA4[2] = {0};
|
||||
EWRAM_DATA struct TradeResources * gUnknown_2031DA8 = NULL;
|
||||
EWRAM_DATA void * gUnknown_2031DAC = NULL;
|
||||
EWRAM_DATA struct TradeResources2 * gUnknown_2031DAC = NULL;
|
||||
|
||||
void sub_804C728(void);
|
||||
void sub_804D4F8(void);
|
||||
@@ -137,7 +184,7 @@ extern const u8 *const gUnknown_8261EF4[];
|
||||
extern const struct SpritePalette gUnknown_8261D00;
|
||||
extern const struct SpritePalette gUnknown_8261C60;
|
||||
extern const struct SpriteSheet gUnknown_8261C58;
|
||||
extern const u16 gUnknown_826CF60[];
|
||||
extern const u16 gTradeGlow2PaletteAnimTable[];
|
||||
|
||||
void sub_804C600(void)
|
||||
{
|
||||
@@ -3959,7 +4006,7 @@ int sub_804FCE0(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species, u16 a
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Sprite callback for link cable transfer glow
|
||||
// Sprite callback for link cable trade glow
|
||||
void sub_804FD24(struct Sprite * sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
@@ -3970,7 +4017,7 @@ void sub_804FD24(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
// Sprite callback for wireless transfer glow
|
||||
// Sprite callback for wireless trade glow
|
||||
void sub_804FD48(struct Sprite * sprite)
|
||||
{
|
||||
if (!sprite->invisible)
|
||||
@@ -3984,7 +4031,7 @@ void sub_804FD48(struct Sprite * sprite)
|
||||
}
|
||||
}
|
||||
|
||||
// Palette flash for transfer glow core
|
||||
// Palette flash for trade glow core
|
||||
void sub_804FD78(struct Sprite * sprite)
|
||||
{
|
||||
if (sprite->data[1] == 0)
|
||||
@@ -3992,7 +4039,7 @@ void sub_804FD78(struct Sprite * sprite)
|
||||
sprite->data[0]++;
|
||||
if (sprite->data[0] == 12)
|
||||
sprite->data[0] = 0;
|
||||
LoadPalette(&gUnknown_826CF60[sprite->data[0]], 16 * (sprite->oam.paletteNum + 16) + 4, 2);
|
||||
LoadPalette(&gTradeGlow2PaletteAnimTable[sprite->data[0]], 16 * (sprite->oam.paletteNum + 16) + 4, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4021,3 +4068,118 @@ void sub_804FE00(struct Sprite * sprite)
|
||||
sprite->data[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804FE24(void)
|
||||
{
|
||||
struct BgAffineDstData affine;
|
||||
DoBgAffineSet(&affine, gUnknown_2031DAC->unk_D4 * 0x100, gUnknown_2031DAC->unk_D6 * 0x100, gUnknown_2031DAC->unk_DC, gUnknown_2031DAC->unk_DE, gUnknown_2031DAC->unk_E8, gUnknown_2031DAC->unk_E8, gUnknown_2031DAC->unk_EC);
|
||||
SetGpuReg(REG_OFFSET_BG2PA, affine.pa);
|
||||
SetGpuReg(REG_OFFSET_BG2PB, affine.pb);
|
||||
SetGpuReg(REG_OFFSET_BG2PC, affine.pc);
|
||||
SetGpuReg(REG_OFFSET_BG2PD, affine.pd);
|
||||
SetGpuReg(REG_OFFSET_BG2X, affine.dx);
|
||||
SetGpuReg(REG_OFFSET_BG2Y, affine.dy);
|
||||
}
|
||||
|
||||
void sub_804FEB4(void)
|
||||
{
|
||||
u16 dispcnt;
|
||||
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gUnknown_2031DAC->bg1vofs);
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gUnknown_2031DAC->bg1hofs);
|
||||
|
||||
dispcnt = GetGpuReg(REG_OFFSET_DISPCNT);
|
||||
if ((dispcnt & 7) == DISPCNT_MODE_0)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_2031DAC->bg2vofs);
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_2031DAC->bg2hofs);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804FE24();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804FF0C(void)
|
||||
{
|
||||
sub_804FEB4();
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_804FF24(void)
|
||||
{
|
||||
gUnknown_2031DAC->unk_8A = 0;
|
||||
gUnknown_2031DAC->unk_88 = 0;
|
||||
gUnknown_2031DAC->unk_89 = 0;
|
||||
}
|
||||
|
||||
void sub_804FF4C(void)
|
||||
{
|
||||
if (gUnknown_2031DAC->unk_88 == gUnknown_2031DAC->unk_89)
|
||||
gUnknown_2031DAC->unk_8A++;
|
||||
else
|
||||
gUnknown_2031DAC->unk_8A = 0;
|
||||
|
||||
if (gUnknown_2031DAC->unk_8A > 300)
|
||||
{
|
||||
CloseLink();
|
||||
SetMainCallback2(CB2_LinkError);
|
||||
gUnknown_2031DAC->unk_8A = 0;
|
||||
gUnknown_2031DAC->unk_89 = 0;
|
||||
gUnknown_2031DAC->unk_88 = 0;
|
||||
}
|
||||
|
||||
gUnknown_2031DAC->unk_89 = gUnknown_2031DAC->unk_88;
|
||||
}
|
||||
|
||||
u32 sub_804FFC4(void)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
return GetMultiplayerId();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_804FFE4(u8 whichParty, u8 a1)
|
||||
{
|
||||
int pos = 0;
|
||||
struct Pokemon *mon = NULL;
|
||||
u16 species;
|
||||
u32 personality;
|
||||
|
||||
if (whichParty == 0)
|
||||
{
|
||||
mon = &gPlayerParty[gUnknown_2031DA4[0]];
|
||||
pos = 1;
|
||||
}
|
||||
|
||||
if (whichParty == 1)
|
||||
{
|
||||
mon = &gEnemyParty[gUnknown_2031DA4[1] % PARTY_SIZE];
|
||||
pos = 3;
|
||||
}
|
||||
|
||||
switch (a1)
|
||||
{
|
||||
case 0:
|
||||
species = GetMonData(mon, MON_DATA_SPECIES2);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
|
||||
if (whichParty == 0)
|
||||
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[whichParty * 2 + 1], species, personality);
|
||||
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
gUnknown_2031DAC->tradeSpecies[whichParty] = species;
|
||||
gUnknown_2031DAC->unk_68[whichParty] = personality;
|
||||
break;
|
||||
case 1:
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos);
|
||||
gUnknown_2031DAC->pokePicSpriteIdxs[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6);
|
||||
gSprites[gUnknown_2031DAC->pokePicSpriteIdxs[whichParty]].invisible = TRUE;
|
||||
gSprites[gUnknown_2031DAC->pokePicSpriteIdxs[whichParty]].callback = SpriteCallbackDummy;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user