mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 19:54:21 +01:00
Some EWRAM offsets abstracted away
This commit is contained in:
parent
263fbdb2c1
commit
3503444d3b
28
asm/link.s
28
asm/link.s
@ -5,30 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_800A3EC
|
||||
sub_800A3EC: @ 800A3EC
|
||||
ldr r1, =gUnknown_03003140
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_800A3EC
|
||||
|
||||
thumb_func_start sub_800A3F8
|
||||
sub_800A3F8: @ 800A3F8
|
||||
push {lr}
|
||||
bl GetMultiplayerId
|
||||
ldr r0, =0x00004444
|
||||
bl sub_8009D90
|
||||
ldr r1, =gUnknown_020223C0
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_800A3F8
|
||||
|
||||
thumb_func_start sub_800A418
|
||||
sub_800A418: @ 800A418
|
||||
push {lr}
|
||||
@ -22370,7 +22346,7 @@ _08016118:
|
||||
movs r0, 0x21
|
||||
strb r0, [r6, 0x14]
|
||||
ldr r0, =gStringVar1
|
||||
ldr r4, =gUnknown_02022A0C
|
||||
ldr r4, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
|
||||
adds r1, r4, 0
|
||||
bl StringCopy
|
||||
adds r0, r4, 0
|
||||
@ -29144,7 +29120,7 @@ _08019870:
|
||||
_08019884:
|
||||
bl task_add_05_task_del_08FA224_when_no_RfuFunc
|
||||
ldr r0, =gStringVar1
|
||||
ldr r1, =gUnknown_02022A0C
|
||||
ldr r1, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
|
||||
bl StringCopy
|
||||
movs r0, 0x22
|
||||
strb r0, [r5, 0x8]
|
||||
|
@ -136,7 +136,7 @@ extern u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer
|
||||
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
|
||||
extern u16 gLinkType;
|
||||
extern u32 gLinkStatus;
|
||||
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
|
||||
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS + 1][BLOCK_BUFFER_SIZE / 2];
|
||||
extern u16 gSendCmd[CMD_LENGTH];
|
||||
extern u8 gShouldAdvanceLinkState;
|
||||
extern struct LinkPlayer gLinkPlayers[];
|
||||
|
@ -12,7 +12,6 @@
|
||||
#include "abilities.h"
|
||||
#include "battle_message.h"
|
||||
|
||||
extern u32 gBattleTypeFlags;
|
||||
extern u32 gBattleExecBuffer;
|
||||
extern void (*gBattleMainFunc)(void);
|
||||
extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
|
||||
@ -27,7 +26,6 @@ extern u8 gUnknown_0203C7B4;
|
||||
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
|
||||
extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
|
||||
extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
|
||||
extern u8 gBattleBuffersTransferData[0x100];
|
||||
extern u8 gUnknown_02022D08;
|
||||
extern u8 gUnknown_02022D09;
|
||||
extern u8 gUnknown_02022D0A;
|
||||
@ -39,11 +37,11 @@ extern u16 gBattleWeather;
|
||||
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
|
||||
extern u16 gCurrentMove;
|
||||
extern u16 gLastUsedMove;
|
||||
extern u16 gLastUsedItem;
|
||||
extern u8 gBattleOutcome;
|
||||
extern u8 gLastUsedAbility;
|
||||
extern u8 gStringBank;
|
||||
|
||||
static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {};
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
|
||||
extern void task00_08081A90(u8 taskId); // cable_club
|
||||
@ -941,171 +939,171 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
|
||||
|
||||
void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
|
||||
gBattleBuffersTransferData[1] = requestId;
|
||||
gBattleBuffersTransferData[2] = monToCheck;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
|
||||
sBattleBuffersTransferData[1] = requestId;
|
||||
sBattleBuffersTransferData[2] = monToCheck;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
|
||||
gBattleBuffersTransferData[1] = monId;
|
||||
gBattleBuffersTransferData[2] = bytes;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
|
||||
sBattleBuffersTransferData[1] = monId;
|
||||
sBattleBuffersTransferData[2] = bytes;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
|
||||
gBattleBuffersTransferData[1] = requestId;
|
||||
gBattleBuffersTransferData[2] = monToCheck;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
|
||||
sBattleBuffersTransferData[1] = requestId;
|
||||
sBattleBuffersTransferData[2] = monToCheck;
|
||||
for (i = 0; i < bytes; i++)
|
||||
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
|
||||
}
|
||||
|
||||
void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
|
||||
gBattleBuffersTransferData[1] = monId;
|
||||
gBattleBuffersTransferData[2] = bytes;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
|
||||
sBattleBuffersTransferData[1] = monId;
|
||||
sBattleBuffersTransferData[2] = bytes;
|
||||
for (i = 0; i < bytes; i++)
|
||||
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3);
|
||||
}
|
||||
|
||||
void EmitLoadMonSprite(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_LOADMONSPRITE;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_LOADMONSPRITE;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
|
||||
gBattleBuffersTransferData[1] = partyId;
|
||||
gBattleBuffersTransferData[2] = dontClearSubstituteBit;
|
||||
gBattleBuffersTransferData[3] = 5;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
|
||||
sBattleBuffersTransferData[1] = partyId;
|
||||
sBattleBuffersTransferData[2] = dontClearSubstituteBit;
|
||||
sBattleBuffersTransferData[3] = 5;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitReturnMonToBall(u8 bufferId, u8 arg1)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitDrawTrainerPic(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_DRAWTRAINERPIC;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_DRAWTRAINERPIC;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitTrainerSlide(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDE;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDE;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitTrainerSlideBack(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_TRAINERSLIDEBACK;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitFaintAnimation(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_FAINTANIMATION;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_FAINTANIMATION;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitPaletteFade(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_PALETTEFADE;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_PALETTEFADE;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitSuccessBallThrowAnim(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitBallThrowAnim(u8 bufferId, u8 caseId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
|
||||
gBattleBuffersTransferData[1] = caseId;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
|
||||
sBattleBuffersTransferData[1] = caseId;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitPause(u8 bufferId, u8 toWait, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
|
||||
gBattleBuffersTransferData[1] = toWait;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
|
||||
sBattleBuffersTransferData[1] = toWait;
|
||||
for (i = 0; i < toWait * 3; i++)
|
||||
gBattleBuffersTransferData[2 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2);
|
||||
sBattleBuffersTransferData[2 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, toWait * 3 + 2);
|
||||
}
|
||||
|
||||
void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
|
||||
gBattleBuffersTransferData[1] = move;
|
||||
gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = turnOfMove;
|
||||
gBattleBuffersTransferData[4] = movePower;
|
||||
gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[6] = dmg;
|
||||
gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
|
||||
gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
|
||||
gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
|
||||
gBattleBuffersTransferData[10] = friendship;
|
||||
gBattleBuffersTransferData[11] = multihit;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
|
||||
sBattleBuffersTransferData[1] = move;
|
||||
sBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = turnOfMove;
|
||||
sBattleBuffersTransferData[4] = movePower;
|
||||
sBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[6] = dmg;
|
||||
sBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
|
||||
sBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
|
||||
sBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
|
||||
sBattleBuffersTransferData[10] = friendship;
|
||||
sBattleBuffersTransferData[11] = multihit;
|
||||
if (WEATHER_HAS_EFFECT2)
|
||||
{
|
||||
gBattleBuffersTransferData[12] = gBattleWeather;
|
||||
gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[12] = gBattleWeather;
|
||||
sBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleBuffersTransferData[12] = 0;
|
||||
gBattleBuffersTransferData[13] = 0;
|
||||
sBattleBuffersTransferData[12] = 0;
|
||||
sBattleBuffersTransferData[13] = 0;
|
||||
}
|
||||
gBattleBuffersTransferData[14] = 0;
|
||||
gBattleBuffersTransferData[15] = 0;
|
||||
memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
|
||||
sBattleBuffersTransferData[14] = 0;
|
||||
sBattleBuffersTransferData[15] = 0;
|
||||
memcpy(&sBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
|
||||
}
|
||||
|
||||
void EmitPrintString(u8 bufferId, u16 stringID)
|
||||
@ -1113,12 +1111,12 @@ void EmitPrintString(u8 bufferId, u16 stringID)
|
||||
s32 i;
|
||||
struct StringInfoBattle* stringInfo;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
|
||||
gBattleBuffersTransferData[1] = gBattleOutcome;
|
||||
gBattleBuffersTransferData[2] = stringID;
|
||||
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
|
||||
sBattleBuffersTransferData[1] = gBattleOutcome;
|
||||
sBattleBuffersTransferData[2] = stringID;
|
||||
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
|
||||
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
|
||||
stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo->currentMove = gCurrentMove;
|
||||
stringInfo->lastMove = gLastUsedMove;
|
||||
stringInfo->lastItem = gLastUsedItem;
|
||||
@ -1137,7 +1135,7 @@ void EmitPrintString(u8 bufferId, u16 stringID)
|
||||
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
|
||||
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
|
||||
}
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
|
||||
}
|
||||
|
||||
void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
|
||||
@ -1145,12 +1143,12 @@ void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
|
||||
s32 i;
|
||||
struct StringInfoBattle* stringInfo;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
|
||||
gBattleBuffersTransferData[2] = stringID;
|
||||
gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
|
||||
sBattleBuffersTransferData[2] = stringID;
|
||||
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
|
||||
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
|
||||
stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo->currentMove = gCurrentMove;
|
||||
stringInfo->lastMove = gLastUsedMove;
|
||||
stringInfo->lastItem = gLastUsedItem;
|
||||
@ -1166,386 +1164,386 @@ void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
|
||||
stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
|
||||
stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
|
||||
}
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
|
||||
}
|
||||
|
||||
void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
gBattleBuffersTransferData[2] = arg2;
|
||||
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = arg2;
|
||||
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitUnknownYesNoBox(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_UNKNOWNYESNOBOX;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
|
||||
gBattleBuffersTransferData[1] = isDoubleBattle;
|
||||
gBattleBuffersTransferData[2] = NoPpNumber;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
|
||||
sBattleBuffersTransferData[1] = isDoubleBattle;
|
||||
sBattleBuffersTransferData[2] = NoPpNumber;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
for (i = 0; i < sizeof(*movePpData); i++)
|
||||
gBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4);
|
||||
sBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
|
||||
}
|
||||
|
||||
void EmitChooseItem(u8 bufferId, u8 *arg1)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
|
||||
for (i = 0; i < 3; i++)
|
||||
gBattleBuffersTransferData[1 + i] = arg1[i];
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[1 + i] = arg1[i];
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
|
||||
gBattleBuffersTransferData[1] = caseId;
|
||||
gBattleBuffersTransferData[2] = arg2;
|
||||
gBattleBuffersTransferData[3] = abilityId;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
|
||||
sBattleBuffersTransferData[1] = caseId;
|
||||
sBattleBuffersTransferData[2] = arg2;
|
||||
sBattleBuffersTransferData[3] = abilityId;
|
||||
for (i = 0; i < 3; i++)
|
||||
gBattleBuffersTransferData[4 + i] = arg4[i];
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written
|
||||
sBattleBuffersTransferData[4 + i] = arg4[i];
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // but only 7 bytes were written
|
||||
}
|
||||
|
||||
void EmitCmd23(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_23;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_23;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_23;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_23;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_23;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_23;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_23;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_23;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
// why is the argument u16 if it's being cast to s16 anyway?
|
||||
void EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
|
||||
gBattleBuffersTransferData[1] = 0;
|
||||
gBattleBuffersTransferData[2] = (s16)hpValue;
|
||||
gBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
|
||||
sBattleBuffersTransferData[1] = 0;
|
||||
sBattleBuffersTransferData[2] = (s16)hpValue;
|
||||
sBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
// why is the argument u16 if it's being cast to s16 anyway?
|
||||
void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
|
||||
gBattleBuffersTransferData[1] = partyId;
|
||||
gBattleBuffersTransferData[2] = (s16)expPoints;
|
||||
gBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
|
||||
sBattleBuffersTransferData[1] = partyId;
|
||||
sBattleBuffersTransferData[2] = (s16)expPoints;
|
||||
sBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
|
||||
gBattleBuffersTransferData[1] = status1;
|
||||
gBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
|
||||
gBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
|
||||
gBattleBuffersTransferData[5] = status2;
|
||||
gBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
|
||||
gBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
|
||||
gBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
|
||||
sBattleBuffersTransferData[1] = status1;
|
||||
sBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
|
||||
sBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
|
||||
sBattleBuffersTransferData[5] = status2;
|
||||
sBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
|
||||
sBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
|
||||
sBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 9);
|
||||
}
|
||||
|
||||
void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
|
||||
gBattleBuffersTransferData[1] = status2;
|
||||
gBattleBuffersTransferData[2] = status;
|
||||
gBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
|
||||
gBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
|
||||
gBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
|
||||
sBattleBuffersTransferData[1] = status2;
|
||||
sBattleBuffersTransferData[2] = status;
|
||||
sBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
|
||||
sBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
|
||||
sBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
|
||||
}
|
||||
|
||||
void EmitStatusXor(u8 bufferId, u8 b)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
|
||||
gBattleBuffersTransferData[1] = b;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitDataTransfer(u8 bufferId, u16 size, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER;
|
||||
gBattleBuffersTransferData[2] = size;
|
||||
gBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER;
|
||||
sBattleBuffersTransferData[2] = size;
|
||||
sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
gBattleBuffersTransferData[4 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4);
|
||||
sBattleBuffersTransferData[4 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
|
||||
}
|
||||
|
||||
void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
|
||||
gBattleBuffersTransferData[1] = (u32)(dst);
|
||||
gBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
|
||||
gBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
|
||||
gBattleBuffersTransferData[5] = size;
|
||||
gBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
|
||||
sBattleBuffersTransferData[1] = (u32)(dst);
|
||||
sBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
|
||||
sBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
|
||||
sBattleBuffersTransferData[5] = size;
|
||||
sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
gBattleBuffersTransferData[7 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7);
|
||||
sBattleBuffersTransferData[7 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7);
|
||||
}
|
||||
|
||||
void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_31;
|
||||
gBattleBuffersTransferData[1] = songId;
|
||||
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_31;
|
||||
sBattleBuffersTransferData[1] = songId;
|
||||
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
for (i = 0; i < songId; i++) // ????
|
||||
gBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
|
||||
}
|
||||
|
||||
void EmitCmd32(u8 bufferId, u16 size, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_32;
|
||||
gBattleBuffersTransferData[1] = size;
|
||||
gBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_32;
|
||||
sBattleBuffersTransferData[1] = size;
|
||||
sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
|
||||
}
|
||||
|
||||
void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
gBattleBuffersTransferData[2] = arg2;
|
||||
gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = arg2;
|
||||
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
|
||||
gBattleBuffersTransferData[1] = b;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
for (i = 0; i < 3; i++)
|
||||
gBattleBuffersTransferData[2 + i] = c[i];
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5);
|
||||
sBattleBuffersTransferData[2 + i] = c[i];
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
||||
}
|
||||
|
||||
void EmitOneReturnValue(u8 bufferId, u16 arg1)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
gBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
|
||||
gBattleBuffersTransferData[1] = b;
|
||||
gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitCmd37(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_37;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_37;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_37;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_37;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_37;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_37;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_37;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_37;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitCmd38(u8 bufferId, u8 b)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_38;
|
||||
gBattleBuffersTransferData[1] = b;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_38;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitCmd39(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_39;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_39;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_39;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_39;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_39;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_39;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_39;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_39;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitCmd40(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_40;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_40;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_40;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_40;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_40;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_40;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_40;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_40;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitHitAnimation(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_HITANIMATION;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_HITANIMATION;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitCmd42(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_42;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_42;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_42;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_42;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_42;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_42;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_42;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_42;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitEffectivenessSound(u8 bufferId, u16 songId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
|
||||
gBattleBuffersTransferData[1] = songId;
|
||||
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
|
||||
sBattleBuffersTransferData[1] = songId;
|
||||
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
|
||||
gBattleBuffersTransferData[1] = songId;
|
||||
gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
gBattleBuffersTransferData[3] = playBGM;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
|
||||
sBattleBuffersTransferData[1] = songId;
|
||||
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = playBGM;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitFaintingCry(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_FAINTINGCRY;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_FAINTINGCRY;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitIntroSlide(u8 bufferId, u8 terrainId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
|
||||
gBattleBuffersTransferData[1] = terrainId;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
|
||||
sBattleBuffersTransferData[1] = terrainId;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitIntroTrainerBallThrow(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_INTROTRAINERBALLTHROW;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
gBattleBuffersTransferData[1] = arg2 & 0x7F;
|
||||
gBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
sBattleBuffersTransferData[1] = arg2 & 0x7F;
|
||||
sBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++)
|
||||
gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
|
||||
sBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
|
||||
}
|
||||
|
||||
void EmitCmd49(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_49;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_49;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_49;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_49;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_49;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_49;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_49;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_49;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitCmd50(u8 bufferId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_50;
|
||||
gBattleBuffersTransferData[1] = CONTROLLER_50;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_50;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_50;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_50;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_50;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_50;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_50;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
gBattleBuffersTransferData[1] = isInvisible;
|
||||
gBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
gBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
sBattleBuffersTransferData[1] = isInvisible;
|
||||
sBattleBuffersTransferData[2] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_SPRITEINVISIBILITY;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
|
||||
gBattleBuffersTransferData[1] = animationId;
|
||||
gBattleBuffersTransferData[2] = argument;
|
||||
gBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
|
||||
sBattleBuffersTransferData[1] = animationId;
|
||||
sBattleBuffersTransferData[2] = argument;
|
||||
sBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
|
||||
{
|
||||
bool8 arg2_ = arg2;
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
|
||||
if (arg2_)
|
||||
gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = sub_81850DC(&gBattleBuffersTransferData[4]);
|
||||
sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = sub_81850DC(&sBattleBuffersTransferData[4]);
|
||||
else
|
||||
gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = 0;
|
||||
sBattleBuffersTransferData[3] = sBattleBuffersTransferData[2] = 0;
|
||||
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[2] + 4);
|
||||
}
|
||||
|
||||
void EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
|
||||
gBattleBuffersTransferData[1] = caseId;
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
|
||||
sBattleBuffersTransferData[1] = caseId;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void EmitCmd55(u8 bufferId, u8 arg1)
|
||||
{
|
||||
gBattleBuffersTransferData[0] = CONTROLLER_55;
|
||||
gBattleBuffersTransferData[1] = arg1;
|
||||
gBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
|
||||
gBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
|
||||
gBattleBuffersTransferData[5] = gBattleBuffersTransferData[4] = sub_81850DC(&gBattleBuffersTransferData[6]);
|
||||
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[4] + 6);
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_55;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
|
||||
sBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
|
||||
sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = sub_81850DC(&sBattleBuffersTransferData[6]);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[4] + 6);
|
||||
}
|
||||
|
31
src/link.c
31
src/link.c
@ -98,12 +98,17 @@ u16 gUnknown_03003148[MAX_LINK_PLAYERS];
|
||||
u8 gUnknown_03003150;
|
||||
u8 gUnknown_03003160;
|
||||
|
||||
u8 gUnknown_020223BC = 0;
|
||||
u8 gUnknown_020223BD = 0;
|
||||
bool8 gUnknown_020229C4 = FALSE;
|
||||
u16 gUnknown_020229C6 = 0;
|
||||
u16 gUnknown_020229C8 = 0;
|
||||
struct LinkPlayer gUnknown_020229CC = {};
|
||||
EWRAM_DATA u8 gUnknown_020223BC = 0;
|
||||
EWRAM_DATA u8 gUnknown_020223BD = 0;
|
||||
EWRAM_DATA u32 gUnknown_020223C0 = 0;
|
||||
EWRAM_DATA u16 gBlockRecvBuffer[MAX_LINK_PLAYERS + 1][BLOCK_BUFFER_SIZE / 2] = {};
|
||||
EWRAM_DATA u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE] = {};
|
||||
EWRAM_DATA bool8 gUnknown_020229C4 = FALSE;
|
||||
EWRAM_DATA u16 gUnknown_020229C6 = 0;
|
||||
EWRAM_DATA u16 gUnknown_020229C8 = 0;
|
||||
EWRAM_DATA struct LinkPlayer gUnknown_020229CC = {};
|
||||
EWRAM_DATA struct LinkPlayer gLinkPlayers[MAX_LINK_PLAYERS + 1] = {};
|
||||
EWRAM_DATA struct LinkPlayer gUnknown_02022A74[MAX_LINK_PLAYERS + 1] = {};
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
@ -116,7 +121,7 @@ static void sub_800A2E0(void);
|
||||
bool32 sub_800A2F4(const void *src, size_t size);
|
||||
static void sub_800A364(void);
|
||||
static void sub_800A388(void);
|
||||
void sub_800A3EC(void);
|
||||
static void sub_800A3EC(void);
|
||||
void sub_800A418(void);
|
||||
void task00_link_test(u8 taskId);
|
||||
void sub_800A588(u8 who);
|
||||
@ -950,3 +955,15 @@ static void sub_800A388(void)
|
||||
gUnknown_03003140 = sub_800A3EC;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_800A3EC(void)
|
||||
{
|
||||
gUnknown_03003140 = NULL;
|
||||
}
|
||||
|
||||
void sub_800A3F8(void)
|
||||
{
|
||||
GetMultiplayerId();
|
||||
sub_8009D90(0x4444);
|
||||
gUnknown_020223C0 ++;
|
||||
}
|
||||
|
@ -18,42 +18,7 @@ gStringVar4: @ 2021FC4
|
||||
.space 0x3E8
|
||||
|
||||
.include "src/string_util.o"
|
||||
|
||||
gUnknown_020223BC: @ 20223BC
|
||||
.space 0x1
|
||||
|
||||
gUnknown_020223BD: @ 20223BD
|
||||
.space 0x3
|
||||
|
||||
gUnknown_020223C0: @ 20223C0
|
||||
.space 0x4
|
||||
|
||||
gBlockRecvBuffer: @ 20223C4
|
||||
.space 0x500
|
||||
|
||||
gUnknown_020228C4: @ 20228C4 gBlockSendBuffer
|
||||
.space 0x100
|
||||
|
||||
gUnknown_020229C4: @ 20229C4
|
||||
.space 0x2
|
||||
|
||||
gUnknown_020229C6: @ 20229C6
|
||||
.space 0x2
|
||||
|
||||
gUnknown_020229C8: @ 20229C8
|
||||
.space 0x4
|
||||
|
||||
gUnknown_020229CC: @ 20229CC
|
||||
.space 0x1C
|
||||
|
||||
gLinkPlayers: @ 20229E8
|
||||
.space 0x24
|
||||
|
||||
gUnknown_02022A0C: @ 2022A0C
|
||||
.space 0x68
|
||||
|
||||
gUnknown_02022A74: @ 2022A74
|
||||
.space 0x8C
|
||||
.include "src/link.o"
|
||||
|
||||
gUnknown_02022B00: @ 2022B00
|
||||
.space 0x8
|
||||
@ -175,6 +140,7 @@ gUnknown_02022CFC: @ 2022CFC
|
||||
gUnknown_02022D00: @ 2022D00
|
||||
.space 0x4
|
||||
|
||||
@ src/main_menu.c
|
||||
gUnknown_02022D04: @ 2022D04
|
||||
.space 0x2
|
||||
|
||||
@ -193,8 +159,7 @@ gUnknown_02022D0A: @ 2022D0A
|
||||
gUnknown_02022D0C: @ 2022D0C
|
||||
.space 0x4
|
||||
|
||||
gBattleBuffersTransferData: @ 2022D10
|
||||
.space 0x100
|
||||
.include "src/battle_controllers.o"
|
||||
|
||||
gUnknown_02022E10: @ 2022E10
|
||||
.space 0x4
|
||||
|
Loading…
Reference in New Issue
Block a user