Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_party_menu

This commit is contained in:
golem galvanize
2018-12-13 00:31:06 -05:00
525 changed files with 76142 additions and 91660 deletions
+210
View File
@@ -0,0 +1,210 @@
#include "global.h"
static void *sHeapStart;
static u32 sHeapSize;
static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss)
#define MALLOC_SYSTEM_ID 0xA3A3
struct MemBlock {
// Whether this block is currently allocated.
bool16 flag;
// Magic number used for error checking. Should equal MALLOC_SYSTEM_ID.
u16 magic;
// Size of the block (not including this header struct).
u32 size;
// Previous block pointer. Equals sHeapStart if this is the first block.
struct MemBlock *prev;
// Next block pointer. Equals sHeapStart if this is the last block.
struct MemBlock *next;
// Data in the memory block. (Arrays of length 0 are a GNU extension.)
u8 data[0];
};
void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size)
{
struct MemBlock *header = (struct MemBlock *)block;
header->flag = FALSE;
header->magic = MALLOC_SYSTEM_ID;
header->size = size;
header->prev = prev;
header->next = next;
}
void PutFirstMemBlockHeader(void *block, u32 size)
{
PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock));
}
void *AllocInternal(void *heapStart, u32 size)
{
struct MemBlock *pos = (struct MemBlock *)heapStart;
struct MemBlock *head = pos;
struct MemBlock *splitBlock;
u32 foundBlockSize;
// Alignment
if (size & 3)
size = 4 * ((size / 4) + 1);
for (;;) {
// Loop through the blocks looking for unused block that's big enough.
if (!pos->flag) {
foundBlockSize = pos->size;
if (foundBlockSize >= size) {
if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) {
// The block isn't much bigger than the requested size,
// so just use it.
pos->flag = TRUE;
} else {
// The block is significantly bigger than the requested
// size, so split the rest into a separate block.
foundBlockSize -= sizeof(struct MemBlock);
foundBlockSize -= size;
splitBlock = (struct MemBlock *)(pos->data + size);
pos->flag = TRUE;
pos->size = size;
PutMemBlockHeader(splitBlock, pos, pos->next, foundBlockSize);
pos->next = splitBlock;
if (splitBlock->next != head)
splitBlock->next->prev = splitBlock;
}
return pos->data;
}
}
if (pos->next == head)
return NULL;
pos = pos->next;
}
}
void FreeInternal(void *heapStart, void *pointer)
{
if (pointer) {
struct MemBlock *head = (struct MemBlock *)heapStart;
struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock));
block->flag = FALSE;
// If the freed block isn't the last one, merge with the next block
// if it's not in use.
if (block->next != head) {
if (!block->next->flag) {
block->size += sizeof(struct MemBlock) + block->next->size;
block->next->magic = 0;
block->next = block->next->next;
if (block->next != head)
block->next->prev = block;
}
}
// If the freed block isn't the first one, merge with the previous block
// if it's not in use.
if (block != head) {
if (!block->prev->flag) {
block->prev->next = block->next;
if (block->next != head)
block->next->prev = block->prev;
block->magic = 0;
block->prev->size += sizeof(struct MemBlock) + block->size;
}
}
}
}
void *AllocZeroedInternal(void *heapStart, u32 size)
{
void *mem = AllocInternal(heapStart, size);
if (mem != NULL) {
if (size & 3)
size = 4 * ((size / 4) + 1);
CpuFill32(0, mem, size);
}
return mem;
}
bool32 CheckMemBlockInternal(void *heapStart, void *pointer)
{
struct MemBlock *head = (struct MemBlock *)heapStart;
struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock));
if (block->magic != MALLOC_SYSTEM_ID)
return FALSE;
if (block->next->magic != MALLOC_SYSTEM_ID)
return FALSE;
if (block->next != head && block->next->prev != block)
return FALSE;
if (block->prev->magic != MALLOC_SYSTEM_ID)
return FALSE;
if (block->prev != head && block->prev->next != block)
return FALSE;
if (block->next != head && block->next != (struct MemBlock *)(block->data + block->size))
return FALSE;
return TRUE;
}
void InitHeap(void *heapStart, u32 heapSize)
{
sHeapStart = heapStart;
sHeapSize = heapSize;
PutFirstMemBlockHeader(heapStart, heapSize);
}
void *Alloc(u32 size)
{
AllocInternal(sHeapStart, size);
}
void *AllocZeroed(u32 size)
{
AllocZeroedInternal(sHeapStart, size);
}
void Free(void *pointer)
{
FreeInternal(sHeapStart, pointer);
}
bool32 CheckMemBlock(void *pointer)
{
return CheckMemBlockInternal(sHeapStart, pointer);
}
bool32 CheckHeap()
{
struct MemBlock *pos = (struct MemBlock *)sHeapStart;
do {
if (!CheckMemBlockInternal(sHeapStart, pos->data))
return FALSE;
pos = pos->next;
} while (pos != (struct MemBlock *)sHeapStart);
return TRUE;
}
+160 -160
View File
@@ -9,7 +9,7 @@
#include "item.h"
#include "item_menu.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "menu.h"
#include "new_game.h"
#include "party_menu.h"
@@ -2047,172 +2047,172 @@ NAKED
static void sub_81A1224(void)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r9\n\
mov r6, r8\n\
push {r6,r7}\n\
ldr r1, =gSaveBlock2Ptr\n\
ldr r3, [r1]\n\
adds r0, r3, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
adds r7, r1, 0\n\
cmp r0, 0x2\n\
bhi _081A1242\n\
b _081A1362\n\
push {r4-r7,lr}\n\
mov r7, r9\n\
mov r6, r8\n\
push {r6,r7}\n\
ldr r1, =gSaveBlock2Ptr\n\
ldr r3, [r1]\n\
adds r0, r3, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
adds r7, r1, 0\n\
cmp r0, 0x2\n\
bhi _081A1242\n\
b _081A1362\n\
_081A1242:\n\
movs r5, 0\n\
movs r2, 0\n\
adds r0, r3, 0\n\
adds r0, 0xB8\n\
ldrb r0, [r0]\n\
lsls r0, 30\n\
ldr r1, =gSpecialVar_0x8005\n\
mov r12, r1\n\
ldr r1, =gSpecialVar_Result\n\
mov r8, r1\n\
cmp r0, 0\n\
beq _081A127C\n\
adds r3, r7, 0\n\
movs r5, 0\n\
movs r2, 0\n\
adds r0, r3, 0\n\
adds r0, 0xB8\n\
ldrb r0, [r0]\n\
lsls r0, 30\n\
ldr r1, =gSpecialVar_0x8005\n\
mov r12, r1\n\
ldr r1, =gSpecialVar_Result\n\
mov r8, r1\n\
cmp r0, 0\n\
beq _081A127C\n\
adds r3, r7, 0\n\
_081A125C:\n\
adds r0, r5, 0x1\n\
lsls r0, 24\n\
lsrs r5, r0, 24\n\
adds r0, r2, 0x1\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
cmp r2, 0x8\n\
bhi _081A127C\n\
ldr r0, [r3]\n\
lsls r1, r2, 2\n\
adds r0, r1\n\
adds r0, 0xB8\n\
ldrb r0, [r0]\n\
lsls r0, 30\n\
cmp r0, 0\n\
bne _081A125C\n\
adds r0, r5, 0x1\n\
lsls r0, 24\n\
lsrs r5, r0, 24\n\
adds r0, r2, 0x1\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
cmp r2, 0x8\n\
bhi _081A127C\n\
ldr r0, [r3]\n\
lsls r1, r2, 2\n\
adds r0, r1\n\
adds r0, 0xB8\n\
ldrb r0, [r0]\n\
lsls r0, 30\n\
cmp r0, 0\n\
bne _081A125C\n\
_081A127C:\n\
movs r4, 0\n\
cmp r4, r5\n\
bcs _081A1322\n\
ldr r0, [r7]\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
cmp r4, r0\n\
bge _081A1322\n\
adds r6, r7, 0\n\
mov r9, r4\n\
movs r4, 0\n\
cmp r4, r5\n\
bcs _081A1322\n\
ldr r0, [r7]\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
cmp r4, r0\n\
bge _081A1322\n\
adds r6, r7, 0\n\
mov r9, r4\n\
_081A1296:\n\
ldr r3, [r6]\n\
lsls r0, r4, 2\n\
adds r2, r3, r0\n\
adds r0, r2, 0\n\
adds r0, 0xB8\n\
ldrb r1, [r0]\n\
lsls r0, r1, 30\n\
lsrs r0, 30\n\
cmp r0, 0x1\n\
bne _081A1308\n\
lsrs r0, r1, 6\n\
cmp r0, 0\n\
beq _081A1308\n\
adds r0, r2, 0\n\
adds r0, 0xBA\n\
ldrh r0, [r0]\n\
mov r2, r12\n\
ldrh r2, [r2]\n\
cmp r0, r2\n\
bne _081A1308\n\
adds r0, r3, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r0, r3, r0\n\
adds r0, 0xB8\n\
ldrb r2, [r0]\n\
movs r1, 0x3F\n\
ands r1, r2\n\
strb r1, [r0]\n\
ldr r1, [r6]\n\
adds r0, r1, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r1, r0\n\
mov r2, r12\n\
ldrh r0, [r2]\n\
adds r1, 0xBA\n\
strh r0, [r1]\n\
mov r1, r9\n\
mov r0, r8\n\
strh r1, [r0]\n\
b _081A1362\n\
.pool\n\
ldr r3, [r6]\n\
lsls r0, r4, 2\n\
adds r2, r3, r0\n\
adds r0, r2, 0\n\
adds r0, 0xB8\n\
ldrb r1, [r0]\n\
lsls r0, r1, 30\n\
lsrs r0, 30\n\
cmp r0, 0x1\n\
bne _081A1308\n\
lsrs r0, r1, 6\n\
cmp r0, 0\n\
beq _081A1308\n\
adds r0, r2, 0\n\
adds r0, 0xBA\n\
ldrh r0, [r0]\n\
mov r2, r12\n\
ldrh r2, [r2]\n\
cmp r0, r2\n\
bne _081A1308\n\
adds r0, r3, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r0, r3, r0\n\
adds r0, 0xB8\n\
ldrb r2, [r0]\n\
movs r1, 0x3F\n\
ands r1, r2\n\
strb r1, [r0]\n\
ldr r1, [r6]\n\
adds r0, r1, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r1, r0\n\
mov r2, r12\n\
ldrh r0, [r2]\n\
adds r1, 0xBA\n\
strh r0, [r1]\n\
mov r1, r9\n\
mov r0, r8\n\
strh r1, [r0]\n\
b _081A1362\n\
.pool\n\
_081A1308:\n\
adds r0, r4, 0x1\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
cmp r4, r5\n\
bcs _081A1322\n\
ldr r0, [r6]\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
cmp r4, r0\n\
blt _081A1296\n\
adds r0, r4, 0x1\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
cmp r4, r5\n\
bcs _081A1322\n\
ldr r0, [r6]\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
cmp r4, r0\n\
blt _081A1296\n\
_081A1322:\n\
ldr r2, [r7]\n\
adds r0, r2, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r2, r0\n\
adds r2, 0xB8\n\
ldrb r1, [r2]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
movs r1, 0x40\n\
orrs r0, r1\n\
strb r0, [r2]\n\
ldr r1, [r7]\n\
adds r0, r1, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r1, r0\n\
mov r2, r12\n\
ldrh r0, [r2]\n\
adds r1, 0xBA\n\
strh r0, [r1]\n\
movs r0, 0x1\n\
mov r1, r8\n\
strh r0, [r1]\n\
ldr r2, [r7]\n\
adds r0, r2, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r2, r0\n\
adds r2, 0xB8\n\
ldrb r1, [r2]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
movs r1, 0x40\n\
orrs r0, r1\n\
strb r0, [r2]\n\
ldr r1, [r7]\n\
adds r0, r1, 0\n\
adds r0, 0xB1\n\
ldrb r0, [r0]\n\
lsls r0, 26\n\
lsrs r0, 28\n\
subs r0, 0x3\n\
lsls r0, 2\n\
adds r1, r0\n\
mov r2, r12\n\
ldrh r0, [r2]\n\
adds r1, 0xBA\n\
strh r0, [r1]\n\
movs r0, 0x1\n\
mov r1, r8\n\
strh r0, [r1]\n\
_081A1362:\n\
pop {r3,r4}\n\
mov r8, r3\n\
mov r9, r4\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
pop {r3,r4}\n\
mov r8, r3\n\
mov r9, r4\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
");
}
#endif // NONMATCHING
+1 -1
View File
@@ -463,7 +463,7 @@ static u8 ChooseMoveOrAction_Doubles(void)
{
if (i == sBattler_AI || gBattleMons[i].hp == 0)
{
actionOrMoveIndex[i] = -1;
actionOrMoveIndex[i] = 0xFF;
bestMovePointsForTarget[i] = -1;
}
else
+48 -48
View File
@@ -1386,54 +1386,54 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
static void (* const sScriptCmdTable[])(void) =
{
ScriptCmd_loadspritegfx,
ScriptCmd_unloadspritegfx,
ScriptCmd_createsprite,
ScriptCmd_createvisualtask,
ScriptCmd_delay,
ScriptCmd_waitforvisualfinish,
ScriptCmd_hang1,
ScriptCmd_hang2,
ScriptCmd_end,
ScriptCmd_playse,
ScriptCmd_monbg,
ScriptCmd_clearmonbg,
ScriptCmd_setalpha,
ScriptCmd_blendoff,
ScriptCmd_call,
ScriptCmd_return,
ScriptCmd_setarg,
ScriptCmd_choosetwoturnanim,
ScriptCmd_jumpifmoveturn,
ScriptCmd_goto,
ScriptCmd_fadetobg,
ScriptCmd_restorebg,
ScriptCmd_waitbgfadeout,
ScriptCmd_waitbgfadein,
ScriptCmd_changebg,
ScriptCmd_playsewithpan,
ScriptCmd_setpan,
ScriptCmd_panse_1B,
ScriptCmd_loopsewithpan,
ScriptCmd_waitplaysewithpan,
ScriptCmd_setbldcnt,
ScriptCmd_createsoundtask,
ScriptCmd_waitsound,
ScriptCmd_jumpargeq,
ScriptCmd_monbg_22,
ScriptCmd_clearmonbg_23,
ScriptCmd_jumpifcontest,
ScriptCmd_fadetobgfromset,
ScriptCmd_panse_26,
ScriptCmd_panse_27,
ScriptCmd_monbgprio_28,
ScriptCmd_monbgprio_29,
ScriptCmd_monbgprio_2A,
ScriptCmd_invisible,
ScriptCmd_visible,
ScriptCmd_doublebattle_2D,
ScriptCmd_doublebattle_2E,
ScriptCmd_stopsound
ScriptCmd_loadspritegfx,
ScriptCmd_unloadspritegfx,
ScriptCmd_createsprite,
ScriptCmd_createvisualtask,
ScriptCmd_delay,
ScriptCmd_waitforvisualfinish,
ScriptCmd_hang1,
ScriptCmd_hang2,
ScriptCmd_end,
ScriptCmd_playse,
ScriptCmd_monbg,
ScriptCmd_clearmonbg,
ScriptCmd_setalpha,
ScriptCmd_blendoff,
ScriptCmd_call,
ScriptCmd_return,
ScriptCmd_setarg,
ScriptCmd_choosetwoturnanim,
ScriptCmd_jumpifmoveturn,
ScriptCmd_goto,
ScriptCmd_fadetobg,
ScriptCmd_restorebg,
ScriptCmd_waitbgfadeout,
ScriptCmd_waitbgfadein,
ScriptCmd_changebg,
ScriptCmd_playsewithpan,
ScriptCmd_setpan,
ScriptCmd_panse_1B,
ScriptCmd_loopsewithpan,
ScriptCmd_waitplaysewithpan,
ScriptCmd_setbldcnt,
ScriptCmd_createsoundtask,
ScriptCmd_waitsound,
ScriptCmd_jumpargeq,
ScriptCmd_monbg_22,
ScriptCmd_clearmonbg_23,
ScriptCmd_jumpifcontest,
ScriptCmd_fadetobgfromset,
ScriptCmd_panse_26,
ScriptCmd_panse_27,
ScriptCmd_monbgprio_28,
ScriptCmd_monbgprio_29,
ScriptCmd_monbgprio_2A,
ScriptCmd_invisible,
ScriptCmd_visible,
ScriptCmd_doublebattle_2D,
ScriptCmd_doublebattle_2E,
ScriptCmd_stopsound
};
// code
+1 -1
View File
@@ -7,7 +7,7 @@
#include "decompress.h"
#include "dma3.h"
#include "gpu_regs.h"
#include "malloc.h"
#include "alloc.h"
#include "palette.h"
#include "pokemon_icon.h"
#include "sprite.h"
+43 -43
View File
@@ -389,50 +389,50 @@ void sub_8159308(u8 taskId)
NAKED
void sub_8159308(u8 taskId)
{
asm_unified(" push {r4,r5,lr}\n\
lsls r0, 24\n\
lsrs r0, 24\n\
adds r5, r0, 0\n\
ldr r1, =gTasks\n\
lsls r0, r5, 2\n\
adds r0, r5\n\
lsls r0, 3\n\
adds r4, r0, r1\n\
ldrh r2, [r4, 0xE]\n\
ldrh r0, [r4, 0x1C]\n\
adds r1, r0, 0x1\n\
strh r1, [r4, 0x1C]\n\
lsls r0, 16\n\
asrs r0, 16\n\
movs r3, 0x12\n\
ldrsh r1, [r4, r3]\n\
cmp r0, r1\n\
bne _08159342\n\
movs r0, 0\n\
strh r0, [r4, 0x1C]\n\
ldrh r1, [r4, 0x1E]\n\
adds r0, r2, r1\n\
strh r0, [r4, 0x1E]\n\
movs r2, 0x1E\n\
ldrsh r0, [r4, r2]\n\
bl KeepPanInRange\n\
strh r0, [r4, 0x1E]\n\
asm_unified(" push {r4,r5,lr}\n\
lsls r0, 24\n\
lsrs r0, 24\n\
adds r5, r0, 0\n\
ldr r1, =gTasks\n\
lsls r0, r5, 2\n\
adds r0, r5\n\
lsls r0, 3\n\
adds r4, r0, r1\n\
ldrh r2, [r4, 0xE]\n\
ldrh r0, [r4, 0x1C]\n\
adds r1, r0, 0x1\n\
strh r1, [r4, 0x1C]\n\
lsls r0, 16\n\
asrs r0, 16\n\
movs r3, 0x12\n\
ldrsh r1, [r4, r3]\n\
cmp r0, r1\n\
bne _08159342\n\
movs r0, 0\n\
strh r0, [r4, 0x1C]\n\
ldrh r1, [r4, 0x1E]\n\
adds r0, r2, r1\n\
strh r0, [r4, 0x1E]\n\
movs r2, 0x1E\n\
ldrsh r0, [r4, r2]\n\
bl KeepPanInRange\n\
strh r0, [r4, 0x1E]\n\
_08159342:\n\
ldr r1, =gUnknown_02038440\n\
ldrh r0, [r4, 0x1E]\n\
strb r0, [r1]\n\
movs r3, 0x1E\n\
ldrsh r1, [r4, r3]\n\
movs r2, 0xC\n\
ldrsh r0, [r4, r2]\n\
cmp r1, r0\n\
bne _0815935A\n\
adds r0, r5, 0\n\
bl DestroyAnimVisualTask\n\
ldr r1, =gUnknown_02038440\n\
ldrh r0, [r4, 0x1E]\n\
strb r0, [r1]\n\
movs r3, 0x1E\n\
ldrsh r1, [r4, r3]\n\
movs r2, 0xC\n\
ldrsh r0, [r4, r2]\n\
cmp r1, r0\n\
bne _0815935A\n\
adds r0, r5, 0\n\
bl DestroyAnimVisualTask\n\
_0815935A:\n\
pop {r4,r5}\n\
pop {r0}\n\
bx r0\n\
.pool");
pop {r4,r5}\n\
pop {r0}\n\
bx r0\n\
.pool");
}
#endif
+5 -5
View File
@@ -3,7 +3,7 @@
#include "contest.h"
#include "gpu_regs.h"
#include "graphics.h"
#include "malloc.h"
#include "alloc.h"
#include "palette.h"
#include "sound.h"
#include "sprite.h"
@@ -40,10 +40,10 @@ static void sub_8117FD0(u8);
const u16 gUnknown_08597418 = RGB(31, 31, 31);
// no clue what these are...
// possibly some register offsets
const u8 gUnknown_0859741A[] = {0x08, 0x0a, 0x0c, 0x0e};
const u8 gUnknown_0859741E[] = {0x08, 0x0a, 0x0c, 0x0e};
// These belong in battle_intro.c, but there putting them there causes 2 bytes of alignment padding
// between the two .rodata segments. Perhaps battle_intro.c actually belongs in this file, too.
const u8 gUnknown_0859741A[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
const u8 gUnknown_0859741E[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT};
void sub_8116620(u8 taskId)
{
+605 -614
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -13,11 +13,6 @@
#include "constants/trainers.h"
#include "constants/moves.h"
extern const struct FacilityMon gBattleFrontierMons[];
extern const struct FacilityMon gSlateportBattleTentMons[];
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
extern const u16 gBattleFrontierHeldItems[];
// IWRAM bss
static IWRAM_DATA bool8 gUnknown_03001288;
+1 -1
View File
@@ -10,7 +10,7 @@
#include "palette.h"
#include "task.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "bg.h"
#include "gpu_regs.h"
#include "string_util.h"
+1 -1
View File
@@ -6,7 +6,7 @@
#include "constants/battle_anim.h"
#include "battle_interface.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "graphics.h"
#include "random.h"
#include "util.h"
+210 -210
View File
@@ -543,11 +543,11 @@ enum
static const u16 sStatusIconColors[] =
{
RGB(24, 12, 24), // PAL_STATUS_PSN
RGB(23, 23, 3), // PAL_STATUS_PAR
RGB(20, 20, 17), // PAL_STATUS_SLP
RGB(17, 22, 28), // PAL_STATUS_FRZ
RGB(28, 14, 10) // PAL_STATUS_BRN
[PAL_STATUS_PSN] = RGB(24, 12, 24),
[PAL_STATUS_PAR] = RGB(23, 23, 3),
[PAL_STATUS_SLP] = RGB(20, 20, 17),
[PAL_STATUS_FRZ] = RGB(17, 22, 28),
[PAL_STATUS_BRN] = RGB(28, 14, 10),
};
static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2
@@ -647,225 +647,225 @@ NAKED
static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x4\n\
adds r7, r1, 0\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
lsls r2, 24\n\
lsrs r2, 24\n\
mov r10, r2\n\
movs r3, 0\n\
movs r2, 0\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x4\n\
adds r7, r1, 0\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
lsls r2, 24\n\
lsrs r2, 24\n\
mov r10, r2\n\
movs r3, 0\n\
movs r2, 0\n\
_08072324:\n\
lsls r0, r3, 24\n\
asrs r0, 24\n\
mov r3, sp\n\
adds r1, r3, r0\n\
strb r2, [r1]\n\
adds r0, 0x1\n\
lsls r0, 24\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _08072324\n\
movs r3, 0x3\n\
movs r0, 0x1\n\
negs r0, r0\n\
mov r9, r0\n\
mov r8, sp\n\
lsls r0, r3, 24\n\
asrs r0, 24\n\
mov r3, sp\n\
adds r1, r3, r0\n\
strb r2, [r1]\n\
adds r0, 0x1\n\
lsls r0, 24\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _08072324\n\
movs r3, 0x3\n\
movs r0, 0x1\n\
negs r0, r0\n\
mov r9, r0\n\
mov r8, sp\n\
_08072344:\n\
lsls r0, r5, 16\n\
asrs r6, r0, 16\n\
cmp r6, 0\n\
ble _08072372\n\
lsls r4, r3, 24\n\
asrs r4, 24\n\
mov r1, sp\n\
adds r5, r1, r4\n\
adds r0, r6, 0\n\
movs r1, 0xA\n\
bl __modsi3\n\
strb r0, [r5]\n\
adds r0, r6, 0\n\
movs r1, 0xA\n\
bl __divsi3\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
subs r4, 0x1\n\
lsls r4, 24\n\
lsrs r3, r4, 24\n\
b _08072344\n\
lsls r0, r5, 16\n\
asrs r6, r0, 16\n\
cmp r6, 0\n\
ble _08072372\n\
lsls r4, r3, 24\n\
asrs r4, 24\n\
mov r1, sp\n\
adds r5, r1, r4\n\
adds r0, r6, 0\n\
movs r1, 0xA\n\
bl __modsi3\n\
strb r0, [r5]\n\
adds r0, r6, 0\n\
movs r1, 0xA\n\
bl __divsi3\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
subs r4, 0x1\n\
lsls r4, 24\n\
lsrs r3, r4, 24\n\
b _08072344\n\
_08072372:\n\
lsls r1, r3, 24\n\
asrs r0, r1, 24\n\
cmp r0, r9\n\
ble _08072396\n\
movs r4, 0xFF\n\
movs r3, 0x1\n\
negs r3, r3\n\
lsls r1, r3, 24\n\
asrs r0, r1, 24\n\
cmp r0, r9\n\
ble _08072396\n\
movs r4, 0xFF\n\
movs r3, 0x1\n\
negs r3, r3\n\
_08072380:\n\
asrs r2, r1, 24\n\
mov r5, sp\n\
adds r1, r5, r2\n\
ldrb r0, [r1]\n\
orrs r0, r4\n\
strb r0, [r1]\n\
subs r2, 0x1\n\
lsls r1, r2, 24\n\
asrs r0, r1, 24\n\
cmp r0, r3\n\
bgt _08072380\n\
asrs r2, r1, 24\n\
mov r5, sp\n\
adds r1, r5, r2\n\
ldrb r0, [r1]\n\
orrs r0, r4\n\
strb r0, [r1]\n\
subs r2, 0x1\n\
lsls r1, r2, 24\n\
asrs r0, r1, 24\n\
cmp r0, r3\n\
bgt _08072380\n\
_08072396:\n\
mov r1, r8\n\
ldrb r0, [r1, 0x3]\n\
cmp r0, 0xFF\n\
bne _080723A2\n\
movs r0, 0\n\
strb r0, [r1, 0x3]\n\
mov r1, r8\n\
ldrb r0, [r1, 0x3]\n\
cmp r0, 0xFF\n\
bne _080723A2\n\
movs r0, 0\n\
strb r0, [r1, 0x3]\n\
_080723A2:\n\
mov r2, r10\n\
cmp r2, 0\n\
bne _08072432\n\
movs r3, 0\n\
movs r1, 0\n\
movs r6, 0xFC\n\
lsls r6, 8\n\
movs r5, 0x1E\n\
mov r12, r5\n\
mov r2, r10\n\
cmp r2, 0\n\
bne _08072432\n\
movs r3, 0\n\
movs r1, 0\n\
movs r6, 0xFC\n\
lsls r6, 8\n\
movs r5, 0x1E\n\
mov r12, r5\n\
_080723B4:\n\
lsls r1, 24\n\
asrs r2, r1, 24\n\
mov r0, sp\n\
adds r5, r0, r2\n\
ldrb r0, [r5]\n\
mov r8, r1\n\
cmp r0, 0xFF\n\
bne _080723EA\n\
lsls r1, r2, 1\n\
adds r1, r7\n\
ldrh r2, [r1]\n\
adds r0, r6, 0\n\
ands r0, r2\n\
mov r2, r12\n\
orrs r0, r2\n\
strh r0, [r1]\n\
lsls r3, 24\n\
asrs r1, r3, 23\n\
adds r1, r7\n\
adds r1, 0x40\n\
ldrh r2, [r1]\n\
adds r0, r6, 0\n\
ands r0, r2\n\
mov r5, r12\n\
orrs r0, r5\n\
strh r0, [r1]\n\
b _0807241A\n\
lsls r1, 24\n\
asrs r2, r1, 24\n\
mov r0, sp\n\
adds r5, r0, r2\n\
ldrb r0, [r5]\n\
mov r8, r1\n\
cmp r0, 0xFF\n\
bne _080723EA\n\
lsls r1, r2, 1\n\
adds r1, r7\n\
ldrh r2, [r1]\n\
adds r0, r6, 0\n\
ands r0, r2\n\
mov r2, r12\n\
orrs r0, r2\n\
strh r0, [r1]\n\
lsls r3, 24\n\
asrs r1, r3, 23\n\
adds r1, r7\n\
adds r1, 0x40\n\
ldrh r2, [r1]\n\
adds r0, r6, 0\n\
ands r0, r2\n\
mov r5, r12\n\
orrs r0, r5\n\
strh r0, [r1]\n\
b _0807241A\n\
_080723EA:\n\
lsls r2, 1\n\
adds r2, r7\n\
ldrh r0, [r2]\n\
adds r1, r6, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x14\n\
orrs r1, r0\n\
strh r1, [r2]\n\
lsls r4, r3, 24\n\
asrs r3, r4, 24\n\
lsls r2, r3, 1\n\
adds r2, r7\n\
adds r2, 0x40\n\
ldrh r0, [r2]\n\
adds r1, r6, 0\n\
ands r1, r0\n\
mov r5, sp\n\
adds r0, r5, r3\n\
ldrb r0, [r0]\n\
adds r0, 0x34\n\
orrs r1, r0\n\
strh r1, [r2]\n\
adds r3, r4, 0\n\
lsls r2, 1\n\
adds r2, r7\n\
ldrh r0, [r2]\n\
adds r1, r6, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x14\n\
orrs r1, r0\n\
strh r1, [r2]\n\
lsls r4, r3, 24\n\
asrs r3, r4, 24\n\
lsls r2, r3, 1\n\
adds r2, r7\n\
adds r2, 0x40\n\
ldrh r0, [r2]\n\
adds r1, r6, 0\n\
ands r1, r0\n\
mov r5, sp\n\
adds r0, r5, r3\n\
ldrb r0, [r0]\n\
adds r0, 0x34\n\
orrs r1, r0\n\
strh r1, [r2]\n\
adds r3, r4, 0\n\
_0807241A:\n\
movs r0, 0x80\n\
lsls r0, 17\n\
add r0, r8\n\
lsrs r1, r0, 24\n\
movs r2, 0x80\n\
lsls r2, 17\n\
adds r0, r3, r2\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _080723B4\n\
b _08072496\n\
movs r0, 0x80\n\
lsls r0, 17\n\
add r0, r8\n\
lsrs r1, r0, 24\n\
movs r2, 0x80\n\
lsls r2, 17\n\
adds r0, r3, r2\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _080723B4\n\
b _08072496\n\
_08072432:\n\
movs r3, 0\n\
movs r4, 0xFC\n\
lsls r4, 8\n\
movs r6, 0x1E\n\
movs r3, 0\n\
movs r4, 0xFC\n\
lsls r4, 8\n\
movs r6, 0x1E\n\
_0807243A:\n\
lsls r1, r3, 24\n\
asrs r2, r1, 24\n\
mov r3, sp\n\
adds r5, r3, r2\n\
ldrb r0, [r5]\n\
adds r3, r1, 0\n\
cmp r0, 0xFF\n\
bne _08072466\n\
lsls r1, r2, 1\n\
adds r1, r7\n\
ldrh r2, [r1]\n\
adds r0, r4, 0\n\
ands r0, r2\n\
orrs r0, r6\n\
strh r0, [r1]\n\
adds r1, 0x40\n\
ldrh r2, [r1]\n\
adds r0, r4, 0\n\
ands r0, r2\n\
orrs r0, r6\n\
strh r0, [r1]\n\
b _08072488\n\
lsls r1, r3, 24\n\
asrs r2, r1, 24\n\
mov r3, sp\n\
adds r5, r3, r2\n\
ldrb r0, [r5]\n\
adds r3, r1, 0\n\
cmp r0, 0xFF\n\
bne _08072466\n\
lsls r1, r2, 1\n\
adds r1, r7\n\
ldrh r2, [r1]\n\
adds r0, r4, 0\n\
ands r0, r2\n\
orrs r0, r6\n\
strh r0, [r1]\n\
adds r1, 0x40\n\
ldrh r2, [r1]\n\
adds r0, r4, 0\n\
ands r0, r2\n\
orrs r0, r6\n\
strh r0, [r1]\n\
b _08072488\n\
_08072466:\n\
lsls r2, 1\n\
adds r2, r7\n\
ldrh r0, [r2]\n\
adds r1, r4, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x14\n\
orrs r1, r0\n\
strh r1, [r2]\n\
adds r2, 0x40\n\
ldrh r0, [r2]\n\
adds r1, r4, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x34\n\
orrs r1, r0\n\
strh r1, [r2]\n\
lsls r2, 1\n\
adds r2, r7\n\
ldrh r0, [r2]\n\
adds r1, r4, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x14\n\
orrs r1, r0\n\
strh r1, [r2]\n\
adds r2, 0x40\n\
ldrh r0, [r2]\n\
adds r1, r4, 0\n\
ands r1, r0\n\
ldrb r0, [r5]\n\
adds r0, 0x34\n\
orrs r1, r0\n\
strh r1, [r2]\n\
_08072488:\n\
movs r5, 0x80\n\
lsls r5, 17\n\
adds r0, r3, r5\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _0807243A\n\
movs r5, 0x80\n\
lsls r5, 17\n\
adds r0, r3, r5\n\
lsrs r3, r0, 24\n\
asrs r0, 24\n\
cmp r0, 0x3\n\
ble _0807243A\n\
_08072496:\n\
add sp, 0x4\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
add sp, 0x4\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.syntax divided");
}
+727 -15
View File
@@ -1,21 +1,733 @@
#include "global.h"
#include "battle.h"
#include "battle_anim.h"
#include "battle_main.h"
#include "battle_setup.h"
#include "bg.h"
#include "gpu_regs.h"
#include "main.h"
#include "scanline_effect.h"
#include "task.h"
#include "trig.h"
#include "constants/trainers.h"
extern void task_battle_intro_80BC47C(u8);
extern void task00_battle_intro_80BC6C8(u8);
extern void task_battle_intro_80BC47C(u8);
extern void task_battle_intro_anim(u8);
static EWRAM_DATA u16 sBgCnt = 0;
const TaskFunc gUnknown_08597424[] =
extern const u8 gUnknown_0859741A[];
extern const u8 gUnknown_0859741E[];
static void BattleIntroSlide1(u8);
static void BattleIntroSlide2(u8);
static void BattleIntroSlide3(u8);
static void BattleIntroSlideLink(u8);
static void BattleIntroSlidePartner(u8);
static const TaskFunc sBattleIntroSlideFuncs[] =
{
task_battle_intro_80BC47C,
task_battle_intro_80BC47C,
task00_battle_intro_80BC6C8,
task00_battle_intro_80BC6C8,
task00_battle_intro_80BC6C8,
task_battle_intro_80BC47C,
task_battle_intro_80BC47C,
task_battle_intro_80BC47C,
task_battle_intro_anim,
task_battle_intro_anim,
BattleIntroSlide1, // BATTLE_TERRAIN_GRASS
BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS
BattleIntroSlide2, // BATTLE_TERRAIN_SAND
BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER
BattleIntroSlide2, // BATTLE_TERRAIN_WATER
BattleIntroSlide1, // BATTLE_TERRAIN_POND
BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN
BattleIntroSlide1, // BATTLE_TERRAIN_CAVE
BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING
BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN
};
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value)
{
if (bgId < 4)
{
sBgCnt = GetGpuReg(gUnknown_0859741A[bgId]);
switch (attributeId)
{
case BG_ANIM_SCREEN_SIZE:
((struct BgCnt *)&sBgCnt)->screenSize = value;
break;
case BG_ANIM_AREA_OVERFLOW_MODE:
((struct BgCnt *)&sBgCnt)->areaOverflowMode = value;
break;
case BG_ANIM_MOSAIC:
((struct BgCnt *)&sBgCnt)->mosaic = value;
break;
case BG_ANIM_CHAR_BASE_BLOCK:
((struct BgCnt *)&sBgCnt)->charBaseBlock = value;
break;
case BG_ANIM_PRIORITY:
((struct BgCnt *)&sBgCnt)->priority = value;
break;
case BG_ANIM_PALETTES_MODE:
((struct BgCnt *)&sBgCnt)->palettes = value;
break;
case BG_ANIM_SCREEN_BASE_BLOCK:
((struct BgCnt *)&sBgCnt)->screenBaseBlock = value;
break;
}
SetGpuReg(gUnknown_0859741A[bgId], sBgCnt);
}
}
int GetAnimBgAttribute(u8 bgId, u8 attributeId)
{
u16 bgCnt;
if (bgId < 4)
{
bgCnt = GetGpuReg(gUnknown_0859741E[bgId]);
switch (attributeId)
{
case BG_ANIM_SCREEN_SIZE:
return ((struct BgCnt *)&bgCnt)->screenSize;
case BG_ANIM_AREA_OVERFLOW_MODE:
return ((struct BgCnt *)&bgCnt)->areaOverflowMode;
case BG_ANIM_MOSAIC:
return ((struct BgCnt *)&bgCnt)->mosaic;
case BG_ANIM_CHAR_BASE_BLOCK:
return ((struct BgCnt *)&bgCnt)->charBaseBlock;
case BG_ANIM_PRIORITY:
return ((struct BgCnt *)&bgCnt)->priority;
case BG_ANIM_PALETTES_MODE:
return ((struct BgCnt *)&bgCnt)->palettes;
case BG_ANIM_SCREEN_BASE_BLOCK:
return ((struct BgCnt *)&bgCnt)->screenBaseBlock;
}
}
return 0;
}
void HandleIntroSlide(u8 terrain)
{
u8 taskId;
if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gPartnerTrainerId != TRAINER_STEVEN_PARTNER)
{
taskId = CreateTask(BattleIntroSlidePartner, 0);
}
else if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
taskId = CreateTask(BattleIntroSlideLink, 0);
}
else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
taskId = CreateTask(BattleIntroSlide3, 0);
}
else if ((gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) && gGameVersion != VERSION_RUBY)
{
terrain = BATTLE_TERRAIN_UNDERWATER;
taskId = CreateTask(BattleIntroSlide2, 0);
}
else
{
taskId = CreateTask(sBattleIntroSlideFuncs[terrain], 0);
}
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = terrain;
gTasks[taskId].data[2] = 0;
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[4] = 0;
gTasks[taskId].data[5] = 0;
gTasks[taskId].data[6] = 0;
}
void sub_811828C(u8 taskId)
{
DestroyTask(taskId);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
}
static void BattleIntroSlide1(u8 taskId)
{
int i;
gBattle_BG1_X += 6;
switch (gTasks[taskId].data[0])
{
case 0:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTasks[taskId].data[2] = 16;
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[2] = 1;
gTasks[taskId].data[0]++;
}
break;
case 1:
if (--gTasks[taskId].data[2] == 0)
{
gTasks[taskId].data[0]++;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
}
break;
case 2:
gBattle_WIN0V -= 0xFF;
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
{
gTasks[taskId].data[0]++;
gTasks[taskId].data[2] = 240;
gTasks[taskId].data[3] = 32;
gIntroSlideFlags &= ~1;
}
break;
case 3:
if (gTasks[taskId].data[3])
{
gTasks[taskId].data[3]--;
}
else
{
if (gTasks[taskId].data[1] == 1)
{
if (gBattle_BG1_Y != 0xFFB0)
gBattle_BG1_Y -= 2;
}
else
{
if (gBattle_BG1_Y != 0xFFC8)
gBattle_BG1_Y -= 1;
}
}
if (gBattle_WIN0V & 0xFF00)
gBattle_WIN0V -= 0x3FC;
if (gTasks[taskId].data[2])
gTasks[taskId].data[2] -= 2;
// Scanline settings have already been set in CB2_InitBattleInternal()
for (i = 0; i < 80; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
for (; i < 160; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
if (!gTasks[taskId].data[2])
{
gScanlineEffect.state = 3;
gTasks[taskId].data[0]++;
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
}
break;
case 4:
sub_811828C(taskId);
break;
}
}
static void BattleIntroSlide2(u8 taskId)
{
int i;
switch (gTasks[taskId].data[1])
{
case 2:
case 4:
gBattle_BG1_X += 8;
break;
case 3:
gBattle_BG1_X += 6;
break;
}
if (gTasks[taskId].data[1] == 4)
{
u16 *bg1Y = &gBattle_BG1_Y;
int cos = Cos2(gTasks[taskId].data[6]);
if (cos < 0)
cos += 0x1FF;
*bg1Y = (cos >> 9) - 8;
if (gTasks[taskId].data[6] < 180)
gTasks[taskId].data[6] += 4;
else
gTasks[taskId].data[6] += 6;
if (gTasks[taskId].data[6] == 360)
gTasks[taskId].data[6] = 0;
}
switch (gTasks[taskId].data[0])
{
case 0:
gTasks[taskId].data[4] = 16;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTasks[taskId].data[2] = 16;
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[2] = 1;
gTasks[taskId].data[0]++;
}
break;
case 1:
if (--gTasks[taskId].data[2] == 0)
{
gTasks[taskId].data[0]++;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
}
break;
case 2:
gBattle_WIN0V -= 0xFF;
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
{
gTasks[taskId].data[0]++;
gTasks[taskId].data[2] = 240;
gTasks[taskId].data[3] = 32;
gTasks[taskId].data[5] = 1;
gIntroSlideFlags &= ~1;
}
break;
case 3:
if (gTasks[taskId].data[3])
{
if (--gTasks[taskId].data[3] == 0)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(15, 0));
SetGpuReg(REG_OFFSET_BLDY, 0);
}
}
else
{
if ((gTasks[taskId].data[4] & 0x1F) && --gTasks[taskId].data[5] == 0)
{
gTasks[taskId].data[4] += 0xFF;
gTasks[taskId].data[5] = 4;
}
}
if (gBattle_WIN0V & 0xFF00)
gBattle_WIN0V -= 0x3FC;
if (gTasks[taskId].data[2])
gTasks[taskId].data[2] -= 2;
// Scanline settings have already been set in CB2_InitBattleInternal()
for (i = 0; i < 80; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
for (; i < 160; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
if (!gTasks[taskId].data[2])
{
gScanlineEffect.state = 3;
gTasks[taskId].data[0]++;
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
}
break;
case 4:
sub_811828C(taskId);
break;
}
if (gTasks[taskId].data[0] != 4)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
}
static void BattleIntroSlide3(u8 taskId)
{
int i;
gBattle_BG1_X += 8;
switch (gTasks[taskId].data[0])
{
case 0:
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8));
SetGpuReg(REG_OFFSET_BLDY, 0);
gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8);
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
{
gTasks[taskId].data[2] = 16;
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[2] = 1;
gTasks[taskId].data[0]++;
}
break;
case 1:
if (--gTasks[taskId].data[2] == 0)
{
gTasks[taskId].data[0]++;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
}
break;
case 2:
gBattle_WIN0V -= 0xFF;
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
{
gTasks[taskId].data[0]++;
gTasks[taskId].data[2] = 240;
gTasks[taskId].data[3] = 32;
gTasks[taskId].data[5] = 1;
gIntroSlideFlags &= ~1;
}
break;
case 3:
if (gTasks[taskId].data[3])
{
gTasks[taskId].data[3]--;
}
else
{
if ((gTasks[taskId].data[4] & 0xF) && --gTasks[taskId].data[5] == 0)
{
gTasks[taskId].data[4] += 0xFF;
gTasks[taskId].data[5] = 6;
}
}
if (gBattle_WIN0V & 0xFF00)
gBattle_WIN0V -= 0x3FC;
if (gTasks[taskId].data[2])
gTasks[taskId].data[2] -= 2;
// Scanline settings have already been set in CB2_InitBattleInternal()
for (i = 0; i < 80; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
for (; i < 160; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
if (!gTasks[taskId].data[2])
{
gScanlineEffect.state = 3;
gTasks[taskId].data[0]++;
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
}
break;
case 4:
sub_811828C(taskId);
break;
}
if (gTasks[taskId].data[0] != 4)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0));
}
static void BattleIntroSlideLink(u8 taskId)
{
int i;
if (gTasks[taskId].data[0] > 1 && !gTasks[taskId].data[4])
{
u16 var0 = gBattle_BG1_X & 0x8000;
if (var0 || gBattle_BG1_X < 80)
{
gBattle_BG1_X += 3;
gBattle_BG2_X -= 3;
}
else
{
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE);
CpuFill32(0, (void *)BG_SCREEN_ADDR(30), BG_SCREEN_SIZE);
gTasks[taskId].data[4] = 1;
}
}
switch (gTasks[taskId].data[0])
{
case 0:
gTasks[taskId].data[2] = 32;
gTasks[taskId].data[0]++;
break;
case 1:
if (--gTasks[taskId].data[2] == 0)
{
gTasks[taskId].data[0]++;
gSprites[gBattleStruct->field_7D].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[gBattleStruct->field_7D].callback = sub_8038B74;
gSprites[gBattleStruct->field_7E].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[gBattleStruct->field_7E].callback = sub_8038B74;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2);
}
break;
case 2:
gBattle_WIN0V -= 0xFF;
if ((gBattle_WIN0V & 0xFF00) == 0x3000)
{
gTasks[taskId].data[0]++;
gTasks[taskId].data[2] = 240;
gTasks[taskId].data[3] = 32;
gIntroSlideFlags &= ~1;
}
break;
case 3:
if (gBattle_WIN0V & 0xFF00)
gBattle_WIN0V -= 0x3FC;
if (gTasks[taskId].data[2])
gTasks[taskId].data[2] -= 2;
// Scanline settings have already been set in CB2_InitBattleInternal()
for (i = 0; i < 80; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2];
for (; i < 160; i++)
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2];
if (!gTasks[taskId].data[2])
{
gScanlineEffect.state = 3;
gTasks[taskId].data[0]++;
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
}
break;
case 4:
sub_811828C(taskId);
break;
}
}
static void BattleIntroSlidePartner(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
gTasks[taskId].data[2] = 1;
gTasks[taskId].data[0]++;
break;
case 1:
if (--gTasks[taskId].data[2] == 0)
{
gTasks[taskId].data[0]++;
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
gBattle_BG0_Y = -48;
gBattle_BG1_X = 240;
gBattle_BG2_X = -240;
}
break;
case 2:
gBattle_WIN0V += 0x100;
if ((gBattle_WIN0V & 0xFF00) != 0x100)
gBattle_WIN0V--;
if ((gBattle_WIN0V & 0xFF00) == 0x2000)
{
gTasks[taskId].data[0]++;
gTasks[taskId].data[2] = 240;
gIntroSlideFlags &= ~1;
}
break;
case 3:
if ((gBattle_WIN0V & 0xFF00) != 0x4C00)
gBattle_WIN0V += 0x3FC;
if (gTasks[taskId].data[2])
gTasks[taskId].data[2] -= 2;
gBattle_BG1_X = gTasks[taskId].data[2];
gBattle_BG2_X = -gTasks[taskId].data[2];
if (!gTasks[taskId].data[2])
gTasks[taskId].data[0]++;
break;
case 4:
gBattle_BG0_Y += 2;
gBattle_BG2_Y += 2;
if ((gBattle_WIN0V & 0xFF00) != 0x5000)
gBattle_WIN0V += 0xFF;
if (!gBattle_BG0_Y)
{
CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE * 4);
SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) & ~DISPCNT_WIN1_ON);
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512);
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256);
gScanlineEffect.state = 3;
gTasks[taskId].data[0]++;
}
break;
case 5:
sub_811828C(taskId);
break;
}
}
void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset)
{
int i, j;
u8 battler = GetBattlerAtPosition(battlerPosition);
int offset = tilesOffset;
CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE);
LoadBgTiles(bgId, arg5, 0x1000, tilesOffset);
for (i = arg2; i < arg2 + 8; i++)
{
for (j = arg1; j < arg1 + 8; j++)
{
arg6[i * 32 + j] = offset | (arg4 << 12);
offset++;
}
}
LoadBgTilemap(bgId, arg6, BG_SCREEN_SIZE, 0);
}
#ifdef NONMATCHING
void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7)
{
int i, j;
int offset;
DmaCopy16(3, gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * arg3, (void *)BG_SCREEN_ADDR(0) + arg5, BG_SCREEN_SIZE);
offset = (arg5 >> 5) - (arg7 << 9);
for (i = arg1; i < arg1 + 8; i++)
{
for (j = arg0; j < arg0 + 8; j++)
{
((u16 *)BG_VRAM)[i * 32 + j + (arg6 * 0x400) + arg0] = offset | (arg4 << 12);
offset++;
}
}
}
#else
NAKED
void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x4\n\
ldr r4, [sp, 0x24]\n\
ldr r5, [sp, 0x28]\n\
mov r8, r5\n\
ldr r5, [sp, 0x2C]\n\
ldr r6, [sp, 0x30]\n\
mov r9, r6\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r12, r0\n\
lsls r1, 24\n\
lsls r2, 24\n\
lsls r3, 24\n\
lsls r4, 24\n\
lsrs r4, 24\n\
mov r10, r4\n\
mov r7, r8\n\
lsls r7, 16\n\
lsrs r6, r7, 16\n\
lsls r5, 24\n\
lsrs r5, 24\n\
mov r0, r9\n\
lsls r0, 24\n\
mov r9, r0\n\
ldr r4, =0x040000d4\n\
ldr r0, =gMonSpritesGfxPtr\n\
ldr r0, [r0]\n\
lsrs r2, 22\n\
adds r0, 0x4\n\
adds r0, r2\n\
lsrs r3, 13\n\
ldr r0, [r0]\n\
adds r0, r3\n\
str r0, [r4]\n\
movs r0, 0xC0\n\
lsls r0, 19\n\
adds r6, r0\n\
str r6, [r4, 0x4]\n\
ldr r0, =0x80000400\n\
str r0, [r4, 0x8]\n\
ldr r0, [r4, 0x8]\n\
adds r2, r7, 0\n\
lsrs r2, 21\n\
mov r6, r9\n\
lsrs r6, 15\n\
subs r4, r2, r6\n\
lsrs r0, r1, 24\n\
adds r1, r0, 0\n\
adds r1, 0x8\n\
cmp r0, r1\n\
bge _08119148\n\
mov r9, r1\n\
mov r7, r12\n\
lsls r7, 1\n\
mov r8, r7\n\
lsls r5, 11\n\
str r5, [sp]\n\
_08119110:\n\
mov r2, r12\n\
adds r3, r2, 0\n\
adds r3, 0x8\n\
adds r5, r0, 0x1\n\
cmp r2, r3\n\
bge _08119142\n\
mov r1, r10\n\
lsls r6, r1, 12\n\
lsls r0, 6\n\
movs r7, 0xC0\n\
lsls r7, 19\n\
adds r0, r7\n\
ldr r1, [sp]\n\
adds r0, r1, r0\n\
mov r7, r8\n\
adds r1, r7, r0\n\
subs r2, r3, r2\n\
_08119132:\n\
adds r0, r4, 0\n\
orrs r0, r6\n\
strh r0, [r1]\n\
adds r4, 0x1\n\
adds r1, 0x2\n\
subs r2, 0x1\n\
cmp r2, 0\n\
bne _08119132\n\
_08119142:\n\
adds r0, r5, 0\n\
cmp r0, r9\n\
blt _08119110\n\
_08119148:\n\
add sp, 0x4\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool");
}
#endif
+107 -107
View File
@@ -24,7 +24,7 @@
#include "link_rfu.h"
#include "load_save.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "m4a.h"
#include "palette.h"
#include "party_menu.h"
@@ -68,7 +68,7 @@ extern const u8 *const gBattlescriptsForBallThrow[];
extern const u8 *const gBattlescriptsForRunningByItem[];
extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[];
extern const struct ScanlineEffectParams gUnknown_0831AC70;
extern const struct ScanlineEffectParams gBattleIntroSlideScanlineEffectParams;
// strings
extern const u8 gText_LinkStandby3[];
@@ -494,35 +494,35 @@ const struct TrainerMoney gTrainerMoneyTable[] =
static void (* const sTurnActionsFuncsTable[])(void) =
{
HandleAction_UseMove, // B_ACTION_USE_MOVE
HandleAction_UseItem, // B_ACTION_USE_ITEM
HandleAction_Switch, // B_ACTION_SWITCH
HandleAction_Run, // B_ACTION_RUN
HandleAction_WatchesCarefully, // B_ACTION_SAFARI_WATCH_CAREFULLY
HandleAction_SafariZoneBallThrow, // B_ACTION_SAFARI_BALL
HandleAction_ThrowPokeblock, // B_ACTION_SAFARI_POKEBLOCK
HandleAction_GoNear, // B_ACTION_SAFARI_GO_NEAR
HandleAction_SafariZoneRun, // B_ACTION_SAFARI_RUN
HandleAction_WallyBallThrow, // B_ACTION_WALLY_THROW
HandleAction_RunBattleScript, // B_ACTION_EXEC_SCRIPT
HandleAction_Action11, // not sure about this one
HandleAction_ActionFinished, // B_ACTION_FINISHED
HandleAction_NothingIsFainted, // B_ACTION_NOTHING_FAINTED
[B_ACTION_USE_MOVE] = HandleAction_UseMove,
[B_ACTION_USE_ITEM] = HandleAction_UseItem,
[B_ACTION_SWITCH] = HandleAction_Switch,
[B_ACTION_RUN] = HandleAction_Run,
[B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully,
[B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow,
[B_ACTION_SAFARI_POKEBLOCK] = HandleAction_ThrowPokeblock,
[B_ACTION_SAFARI_GO_NEAR] = HandleAction_GoNear,
[B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun,
[B_ACTION_WALLY_THROW] = HandleAction_WallyBallThrow,
[B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript,
[11] = HandleAction_Action11, // not sure about this one
[B_ACTION_FINISHED] = HandleAction_ActionFinished,
[B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted,
};
static void (* const sEndTurnFuncsTable[])(void) =
{
HandleEndTurn_ContinueBattle, // battle outcome 0
HandleEndTurn_BattleWon, // B_OUTCOME_WON
HandleEndTurn_BattleLost, // B_OUTCOME_LOST
HandleEndTurn_BattleLost, // B_OUTCOME_DREW
HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN
HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED
HandleEndTurn_MonFled, // B_OUTCOME_MON_FLED
HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT
HandleEndTurn_FinishBattle, // B_OUTCOME_NO_SAFARI_BALLS
HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED
HandleEndTurn_FinishBattle, // B_OUTCOME_MON_TELEPORTED
[0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE?
[B_OUTCOME_WON] = HandleEndTurn_BattleWon,
[B_OUTCOME_LOST] = HandleEndTurn_BattleLost,
[B_OUTCOME_DREW] = HandleEndTurn_BattleLost,
[B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle,
[B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle,
[B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled,
[B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle,
[B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle,
[B_OUTCOME_FORFEITED] = HandleEndTurn_FinishBattle,
[B_OUTCOME_MON_TELEPORTED] = HandleEndTurn_FinishBattle,
};
const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
@@ -620,7 +620,7 @@ static void CB2_InitBattleInternal(void)
gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
ScanlineEffect_SetParams(gUnknown_0831AC70);
ScanlineEffect_SetParams(gBattleIntroSlideScanlineEffectParams);
}
ResetPaletteFade();
@@ -3058,7 +3058,7 @@ static void BattleStartClearSetData(void)
*(gBattleStruct->AI_monToSwitchIntoId + i) = PARTY_SIZE;
}
gBattleStruct->field_DF = 0;
gBattleStruct->givenExpMons = 0;
gBattleStruct->field_92 = 0;
gRandomTurnNumber = Random();
@@ -3179,7 +3179,7 @@ void SwitchInClearSetData(void)
gBattleResources->flags->flags[gActiveBattler] = 0;
gCurrentMove = 0;
gBattleStruct->field_DA = 0xFF;
gBattleStruct->arenaTurnCounter = 0xFF;
ClearBattlerMoveHistory(gActiveBattler);
ClearBattlerAbilityHistory(gActiveBattler);
@@ -3597,85 +3597,85 @@ NAKED
static void BattleIntroOpponent1SendsOutMonAnimation(void)
{
asm(".syntax unified\n\
push {r4-r6,lr}\n\
ldr r0, =gBattleTypeFlags\n\
ldr r2, [r0]\n\
movs r0, 0x80\n\
lsls r0, 17\n\
ands r0, r2\n\
cmp r0, 0\n\
beq _0803B298\n\
movs r0, 0x80\n\
lsls r0, 18\n\
ands r0, r2\n\
cmp r0, 0\n\
beq _0803B298\n\
movs r1, 0x80\n\
lsls r1, 24\n\
ands r1, r2\n\
negs r0, r1\n\
orrs r0, r1\n\
lsrs r5, r0, 31\n\
b _0803B29A\n\
.pool\n\
push {r4-r6,lr}\n\
ldr r0, =gBattleTypeFlags\n\
ldr r2, [r0]\n\
movs r0, 0x80\n\
lsls r0, 17\n\
ands r0, r2\n\
cmp r0, 0\n\
beq _0803B298\n\
movs r0, 0x80\n\
lsls r0, 18\n\
ands r0, r2\n\
cmp r0, 0\n\
beq _0803B298\n\
movs r1, 0x80\n\
lsls r1, 24\n\
ands r1, r2\n\
negs r0, r1\n\
orrs r0, r1\n\
lsrs r5, r0, 31\n\
b _0803B29A\n\
.pool\n\
_0803B288:\n\
ldr r1, =gBattleMainFunc\n\
ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\
b _0803B2F0\n\
.pool\n\
ldr r1, =gBattleMainFunc\n\
ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\
b _0803B2F0\n\
.pool\n\
_0803B298:\n\
movs r5, 0x1\n\
movs r5, 0x1\n\
_0803B29A:\n\
ldr r0, =gBattleControllerExecFlags\n\
ldr r2, [r0]\n\
cmp r2, 0\n\
bne _0803B2F2\n\
ldr r0, =gActiveBattler\n\
strb r2, [r0]\n\
ldr r1, =gBattlersCount\n\
adds r4, r0, 0\n\
ldrb r1, [r1]\n\
cmp r2, r1\n\
bcs _0803B2EC\n\
adds r6, r4, 0\n\
ldr r0, =gBattleControllerExecFlags\n\
ldr r2, [r0]\n\
cmp r2, 0\n\
bne _0803B2F2\n\
ldr r0, =gActiveBattler\n\
strb r2, [r0]\n\
ldr r1, =gBattlersCount\n\
adds r4, r0, 0\n\
ldrb r1, [r1]\n\
cmp r2, r1\n\
bcs _0803B2EC\n\
adds r6, r4, 0\n\
_0803B2B2:\n\
ldrb r0, [r4]\n\
bl GetBattlerPosition\n\
lsls r0, 24\n\
lsrs r0, 24\n\
cmp r0, r5\n\
bne _0803B2D8\n\
movs r0, 0\n\
bl BtlController_EmitIntroTrainerBallThrow\n\
ldrb r0, [r4]\n\
bl MarkBattlerForControllerExec\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
ldr r1, =0x00008040\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0803B288\n\
ldrb r0, [r4]\n\
bl GetBattlerPosition\n\
lsls r0, 24\n\
lsrs r0, 24\n\
cmp r0, r5\n\
bne _0803B2D8\n\
movs r0, 0\n\
bl BtlController_EmitIntroTrainerBallThrow\n\
ldrb r0, [r4]\n\
bl MarkBattlerForControllerExec\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
ldr r1, =0x00008040\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0803B288\n\
_0803B2D8:\n\
ldrb r0, [r6]\n\
adds r0, 0x1\n\
strb r0, [r6]\n\
ldr r1, =gBattlersCount\n\
lsls r0, 24\n\
lsrs r0, 24\n\
ldr r4, =gActiveBattler\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
bcc _0803B2B2\n\
ldrb r0, [r6]\n\
adds r0, 0x1\n\
strb r0, [r6]\n\
ldr r1, =gBattlersCount\n\
lsls r0, 24\n\
lsrs r0, 24\n\
ldr r4, =gActiveBattler\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
bcc _0803B2B2\n\
_0803B2EC:\n\
ldr r1, =gBattleMainFunc\n\
ldr r0, =BattleIntroRecordMonsToDex\n\
ldr r1, =gBattleMainFunc\n\
ldr r0, =BattleIntroRecordMonsToDex\n\
_0803B2F0:\n\
str r0, [r1]\n\
str r0, [r1]\n\
_0803B2F2:\n\
pop {r4-r6}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
pop {r4-r6}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
.syntax divided");
}
#endif // NONMATCHING
@@ -3981,7 +3981,7 @@ void BattleTurnPassed(void)
if (gBattleResults.battleTurnCounter < 0xFF)
{
gBattleResults.battleTurnCounter++;
gBattleStruct->field_DA++;
gBattleStruct->arenaTurnCounter++;
}
for (i = 0; i < gBattlersCount; i++)
@@ -4000,7 +4000,7 @@ void BattleTurnPassed(void)
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
BattleScriptExecute(BattleScript_82DB881);
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0)
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaTurnCounter == 0)
BattleScriptExecute(BattleScript_ArenaTurnBeginning);
}
@@ -4578,10 +4578,10 @@ static void sub_803CDF8(void)
void SwapTurnOrder(u8 id1, u8 id2)
{
u32 temp;
u32 temp;
SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
}
u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
@@ -5581,7 +5581,7 @@ bool8 TryRunFromBattle(u8 battler)
if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
{
gLastUsedItem = gBattleMons[battler].item ;
gLastUsedItem = gBattleMons[battler].item;
gProtectStructs[battler].fleeFlag = 1;
effect++;
}
+1080 -1080
View File
File diff suppressed because it is too large Load Diff
+1 -3
View File
@@ -9,7 +9,7 @@
#include "task.h"
#include "battle_tower.h"
#include "party_menu.h"
#include "malloc.h"
#include "alloc.h"
#include "palette.h"
#include "script.h"
#include "battle_setup.h"
@@ -50,8 +50,6 @@ struct PikeWildMon
u16 moves[4];
};
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
// IWRAM bss
static IWRAM_DATA u8 sRoomType;
static IWRAM_DATA u8 sStatusMon;
+3 -6
View File
@@ -21,7 +21,7 @@
#include "main.h"
#include "load_save.h"
#include "script.h"
#include "malloc.h"
#include "alloc.h"
#include "overworld.h"
#include "event_scripts.h"
#include "constants/battle_frontier.h"
@@ -37,9 +37,6 @@ extern void door_upload_tiles(void);
extern const struct MapLayout *const gMapLayouts[];
extern const u16 gUnknown_08D856C8[][16];
extern const u16 gBattleFrontierHeldItems[];
extern const struct FacilityMon gBattleFrontierMons[];
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
#define TOTAL_ROUNDS 20
#define PICKUP_ITEMS_PER_ROUND 10
@@ -1458,7 +1455,7 @@ static u16 sub_81A9F90(u8 count)
do
{
trainerId = sub_8162548(challengeNum + 1, battleNum);
for (i = 0 ; i < count; i++)
for (i = 0; i < count; i++)
{
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
break;
@@ -1470,7 +1467,7 @@ static u16 sub_81A9F90(u8 count)
do
{
trainerId = sub_8162548(challengeNum, battleNum);
for (i = 0 ; i < count; i++)
for (i = 0; i < count; i++)
{
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
break;
+1 -1
View File
@@ -17,7 +17,7 @@
#include "list_menu.h"
#include "mail.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "menu.h"
#include "menu_helpers.h"
#include "overworld.h"
+1 -1
View File
@@ -18,7 +18,7 @@
#include "international_string_util.h"
#include "sound.h"
#include "constants/songs.h"
#include "malloc.h"
#include "alloc.h"
#include "gpu_regs.h"
#include "constants/game_stat.h"
+112 -112
View File
@@ -677,45 +677,45 @@ static const u32 sStatusFlagsForMoveEffects[] =
static const u8* const sMoveEffectBS_Ptrs[] =
{
BattleScript_MoveEffectSleep, // 0
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SLEEP
BattleScript_MoveEffectPoison, // MOVE_EFFECT_POISON
BattleScript_MoveEffectBurn, // MOVE_EFFECT_BURN
BattleScript_MoveEffectFreeze, // MOVE_EFFECT_FREEZE
BattleScript_MoveEffectParalysis, // MOVE_EFFECT_PARALYSIS
BattleScript_MoveEffectToxic, // MOVE_EFFECT_TOXIC
BattleScript_MoveEffectConfusion, // MOVE_EFFECT_CONFUSION
BattleScript_MoveEffectSleep, // MOVE_EFFECT_FLINCH
BattleScript_MoveEffectSleep, // MOVE_EFFECT_TRI_ATTACK
BattleScript_MoveEffectUproar, // MOVE_EFFECT_UPROAR
BattleScript_MoveEffectPayDay, // MOVE_EFFECT_PAYDAY
BattleScript_MoveEffectSleep, // MOVE_EFFECT_CHARGING
BattleScript_MoveEffectWrap, // MOVE_EFFECT_WRAP
BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_25
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_PLUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_MINUS_1
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RECHARGE
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAGE
BattleScript_MoveEffectSleep, // MOVE_EFFECT_STEAL_ITEM
BattleScript_MoveEffectSleep, // MOVE_EFFECT_PREVENT_ESCAPE
BattleScript_MoveEffectSleep, // MOVE_EFFECT_NIGHTMARE
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ALL_STATS_UP
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAPIDSPIN
BattleScript_MoveEffectSleep, // MOVE_EFFECT_REMOVE_PARALYSIS
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_DEF_DOWN
BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_33
[0] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison,
[MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn,
[MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze,
[MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis,
[MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic,
[MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion,
[MOVE_EFFECT_FLINCH] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_TRI_ATTACK] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar,
[MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay,
[MOVE_EFFECT_CHARGING] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap,
[MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil,
[MOVE_EFFECT_ATK_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_DEF_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SPD_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SP_ATK_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SP_DEF_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_ACC_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_EVS_PLUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_ATK_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_DEF_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SPD_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SP_ATK_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_SP_DEF_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_ACC_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_EVS_MINUS_1] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_RECHARGE] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_RAGE] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_STEAL_ITEM] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_PREVENT_ESCAPE] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_NIGHTMARE] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_ALL_STATS_UP] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_RAPIDSPIN] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_REMOVE_PARALYSIS] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_ATK_DEF_DOWN] = BattleScript_MoveEffectSleep,
[MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil,
};
static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F};
@@ -768,26 +768,26 @@ static const u16 sProtectSuccessRates[] = {USHRT_MAX, USHRT_MAX / 2, USHRT_MAX /
static const u16 sMovesForbiddenToCopy[] =
{
MOVE_METRONOME,
MOVE_STRUGGLE,
MOVE_SKETCH,
MOVE_MIMIC,
MIMIC_FORBIDDEN_END,
MOVE_COUNTER,
MOVE_MIRROR_COAT,
MOVE_PROTECT,
MOVE_DETECT,
MOVE_ENDURE,
MOVE_DESTINY_BOND,
MOVE_SLEEP_TALK,
MOVE_THIEF,
MOVE_FOLLOW_ME,
MOVE_SNATCH,
MOVE_HELPING_HAND,
MOVE_COVET,
MOVE_TRICK,
MOVE_FOCUS_PUNCH,
METRONOME_FORBIDDEN_END
MOVE_METRONOME,
MOVE_STRUGGLE,
MOVE_SKETCH,
MOVE_MIMIC,
MIMIC_FORBIDDEN_END,
MOVE_COUNTER,
MOVE_MIRROR_COAT,
MOVE_PROTECT,
MOVE_DETECT,
MOVE_ENDURE,
MOVE_DESTINY_BOND,
MOVE_SLEEP_TALK,
MOVE_THIEF,
MOVE_FOLLOW_ME,
MOVE_SNATCH,
MOVE_HELPING_HAND,
MOVE_COVET,
MOVE_TRICK,
MOVE_FOCUS_PUNCH,
METRONOME_FORBIDDEN_END
};
static const u8 sFlailHpScaleToPowerTable[] =
@@ -828,38 +828,38 @@ static const u16 sWeightToDamageTable[] =
static const u16 sPickupItems[] =
{
ITEM_POTION,
ITEM_ANTIDOTE,
ITEM_SUPER_POTION,
ITEM_GREAT_BALL,
ITEM_REPEL,
ITEM_ESCAPE_ROPE,
ITEM_X_ATTACK,
ITEM_FULL_HEAL,
ITEM_ULTRA_BALL,
ITEM_HYPER_POTION,
ITEM_RARE_CANDY,
ITEM_PROTEIN,
ITEM_REVIVE,
ITEM_HP_UP,
ITEM_FULL_RESTORE,
ITEM_MAX_REVIVE,
ITEM_PP_UP,
ITEM_MAX_ELIXIR,
ITEM_ANTIDOTE,
ITEM_SUPER_POTION,
ITEM_GREAT_BALL,
ITEM_REPEL,
ITEM_ESCAPE_ROPE,
ITEM_X_ATTACK,
ITEM_FULL_HEAL,
ITEM_ULTRA_BALL,
ITEM_HYPER_POTION,
ITEM_RARE_CANDY,
ITEM_PROTEIN,
ITEM_REVIVE,
ITEM_HP_UP,
ITEM_FULL_RESTORE,
ITEM_MAX_REVIVE,
ITEM_PP_UP,
ITEM_MAX_ELIXIR,
};
static const u16 sRarePickupItems[] =
{
ITEM_HYPER_POTION,
ITEM_NUGGET,
ITEM_KINGS_ROCK,
ITEM_FULL_RESTORE,
ITEM_ETHER,
ITEM_WHITE_HERB,
ITEM_TM44_REST,
ITEM_ELIXIR,
ITEM_TM01_FOCUS_PUNCH,
ITEM_LEFTOVERS,
ITEM_TM26_EARTHQUAKE,
ITEM_NUGGET,
ITEM_KINGS_ROCK,
ITEM_FULL_RESTORE,
ITEM_ETHER,
ITEM_WHITE_HERB,
ITEM_TM44_REST,
ITEM_ELIXIR,
ITEM_TM01_FOCUS_PUNCH,
ITEM_LEFTOVERS,
ITEM_TM26_EARTHQUAKE,
};
static const u8 sPickupProbabilities[] =
@@ -917,10 +917,10 @@ const ALIGNED(4) u8 gUnknown_0831C494[][4] =
static const u8 sUnknown_0831C4F8[] =
{
0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00,
0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01,
0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02,
0x03, 0x00, 0x00, 0x00
0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00,
0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01,
0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02,
0x03, 0x00, 0x00, 0x00
};
static void atk00_attackcanceler(void)
@@ -3270,7 +3270,7 @@ static void atk23_getexp(void)
else
{
gBattleScripting.atk23_state++;
gBattleStruct->field_DF |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]];
gBattleStruct->givenExpMons |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]];
}
break;
case 1: // calculate experience points to redistribute
@@ -3403,8 +3403,8 @@ static void atk23_getexp(void)
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId)
// buffer 'gained' or 'gained a boosted'
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
// buffer 'gained' or 'gained a boosted'
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage)
@@ -4490,24 +4490,24 @@ static void atk48_playstatchangeanimation(void)
enum
{
ATK49_RAGE,
ATK49_DEFROST,
ATK49_SYNCHRONIZE_TARGET,
ATK49_MOVE_END_ABILITIES,
ATK49_STATUS_IMMUNITY_ABILITIES,
ATK49_SYNCHRONIZE_ATTACKER,
ATK49_CHOICE_MOVE,
ATK49_CHANGED_ITEMS,
ATK49_ATTACKER_INVISIBLE,
ATK49_ATTACKER_VISIBLE,
ATK49_TARGET_VISIBLE,
ATK49_ITEM_EFFECTS_ALL,
ATK49_KINGSROCK_SHELLBELL,
ATK49_SUBSTITUTE,
ATK49_UPDATE_LAST_MOVES,
ATK49_MIRROR_MOVE,
ATK49_NEXT_TARGET,
ATK49_COUNT,
ATK49_RAGE,
ATK49_DEFROST,
ATK49_SYNCHRONIZE_TARGET,
ATK49_MOVE_END_ABILITIES,
ATK49_STATUS_IMMUNITY_ABILITIES,
ATK49_SYNCHRONIZE_ATTACKER,
ATK49_CHOICE_MOVE,
ATK49_CHANGED_ITEMS,
ATK49_ATTACKER_INVISIBLE,
ATK49_ATTACKER_VISIBLE,
ATK49_TARGET_VISIBLE,
ATK49_ITEM_EFFECTS_ALL,
ATK49_KINGSROCK_SHELLBELL,
ATK49_SUBSTITUTE,
ATK49_UPDATE_LAST_MOVES,
ATK49_MIRROR_MOVE,
ATK49_NEXT_TARGET,
ATK49_COUNT,
};
static void atk49_moveend(void)
@@ -5560,7 +5560,7 @@ static void atk52_switchineffects(void)
gDisableStructs[gActiveBattler].truantUnknownBit = 0;
if (!AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0)
&& !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE))
&& !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE))
{
gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
+10 -10
View File
@@ -306,7 +306,7 @@ const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] =
{{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b},
{{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc},
{{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e},
{{TRAINER_WALLY_3, 0x292, 0x293, 0x294, 0x294}, 0x18, 0x2b},
{{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b},
{{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3},
{{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb},
{{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2},
@@ -1088,7 +1088,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
{
case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT:
TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data);
return EventScript_2713C2;
return EventScript_DoTainerBattle;
case TRAINER_BATTLE_DOUBLE:
TrainerBattleLoadArgs(sDoubleBattleParams, data);
SetMapVarsToTrainer();
@@ -1103,11 +1103,11 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
{
TrainerBattleLoadArgs(sTrainerBContinueScriptBattleParams, data);
}
return EventScript_271362;
return EventScript_TryDoNormalTrainerBattle;
case TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC:
TrainerBattleLoadArgs(sContinueScriptBattleParams, data);
SetMapVarsToTrainer();
return EventScript_271362;
return EventScript_TryDoNormalTrainerBattle;
case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE:
case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC:
TrainerBattleLoadArgs(sContinueScriptDoubleBattleParams, data);
@@ -1122,8 +1122,8 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
SetMapVarsToTrainer();
gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
return EventScript_2713D1;
case TRAINER_BATTLE_9:
return EventScript_TryDoRematchBattle;
case TRAINER_BATTLE_PYRAMID:
if (gApproachingTrainerId == 0)
{
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
@@ -1135,7 +1135,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
gTrainerBattleOpponent_B = LocalIdToPyramidTrainerId(gSpecialVar_LastTalked);
}
return EventScript_271362;
return EventScript_TryDoNormalTrainerBattle;
case TRAINER_BATTLE_SET_TRAINER_A:
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
return NULL;
@@ -1154,7 +1154,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
gTrainerBattleOpponent_B = sub_81D6180(gSpecialVar_LastTalked);
}
return EventScript_271362;
return EventScript_TryDoNormalTrainerBattle;
default:
if (gApproachingTrainerId == 0)
{
@@ -1165,7 +1165,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
{
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
}
return EventScript_271362;
return EventScript_TryDoNormalTrainerBattle;
}
}
@@ -1197,7 +1197,7 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
return FlagGet(FLAG_TRAINER_FLAG_START + flag);
}
void sub_80B16D8(void)
void SetUpTrainerMovement(void)
{
struct EventObject *eventObject = &gEventObjects[gSelectedEventObject];
-4
View File
@@ -14,10 +14,6 @@
#include "constants/items.h"
#include "constants/region_map_sections.h"
extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[];
extern const struct FacilityMon gSlateportBattleTentMons[];
extern const u16 gBattleFrontierHeldItems[];
// This file's functions.
static void sub_81B99D4(void);
static void sub_81B9A28(void);
+985 -33
View File
File diff suppressed because it is too large Load Diff
+21 -21
View File
@@ -7,7 +7,7 @@
#include "field_effect.h"
#include "gpu_regs.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "overworld.h"
#include "palette.h"
#include "random.h"
@@ -59,7 +59,7 @@ typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
extern const struct OamData gEventObjectBaseOam_32x32;
extern void sub_80AC3D0(void);
extern void SetWeatherScreenFadeOut(void);
// this file's functions
static void LaunchBattleTransitionTask(u8 transitionId);
@@ -612,32 +612,32 @@ static const s16 gUnknown_085C8CF2[] = {4, 517, -1};
static const s16 *const gUnknown_085C8CF8[] =
{
gUnknown_085C8C90,
gUnknown_085C8CA4,
gUnknown_085C8C98,
gUnknown_085C8C9E,
gUnknown_085C8CEA,
gUnknown_085C8CE4,
gUnknown_085C8CF2,
gUnknown_085C8CDE
gUnknown_085C8C90,
gUnknown_085C8CA4,
gUnknown_085C8C98,
gUnknown_085C8C9E,
gUnknown_085C8CEA,
gUnknown_085C8CE4,
gUnknown_085C8CF2,
gUnknown_085C8CDE
};
static const s16 *const gUnknown_085C8D18[] =
{
gUnknown_085C8CBC,
gUnknown_085C8CB0,
gUnknown_085C8CB6,
gUnknown_085C8CAA,
gUnknown_085C8CCA,
gUnknown_085C8CD8,
gUnknown_085C8CC4,
gUnknown_085C8CD2
gUnknown_085C8CBC,
gUnknown_085C8CB0,
gUnknown_085C8CB6,
gUnknown_085C8CAA,
gUnknown_085C8CCA,
gUnknown_085C8CD8,
gUnknown_085C8CC4,
gUnknown_085C8CD2
};
static const s16 *const *const gUnknown_085C8D38[] =
{
gUnknown_085C8CF8,
gUnknown_085C8D18
gUnknown_085C8CF8,
gUnknown_085C8D18
};
static const TransitionStateFunc sPhase2_Groudon_Funcs[] =
@@ -981,7 +981,7 @@ static void Task_BattleTransitionMain(u8 taskId)
static bool8 Transition_Phase1(struct Task *task)
{
sub_80AC3D0();
SetWeatherScreenFadeOut();
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
if (sPhase1_Tasks[task->tTransitionId] != NULL)
{
+297 -297
View File
@@ -815,324 +815,324 @@ void TryPutLinkBattleTvShowOnAir(void)
{
asm_unified(
"push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x20\n\
movs r0, 0\n\
str r0, [sp]\n\
movs r1, 0\n\
str r1, [sp, 0x4]\n\
movs r2, 0\n\
str r2, [sp, 0x8]\n\
ldr r3, =0x00007fff\n\
str r3, [sp, 0xC]\n\
movs r4, 0\n\
str r4, [sp, 0x10]\n\
movs r7, 0\n\
str r7, [sp, 0x14]\n\
mov r8, r0\n\
ldr r0, =gBattleStruct\n\
ldr r1, [r0]\n\
adds r0, r1, 0\n\
adds r0, 0xB3\n\
ldrb r0, [r0]\n\
cmp r0, 0\n\
beq _0817E42A\n\
b _0817E670\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x20\n\
movs r0, 0\n\
str r0, [sp]\n\
movs r1, 0\n\
str r1, [sp, 0x4]\n\
movs r2, 0\n\
str r2, [sp, 0x8]\n\
ldr r3, =0x00007fff\n\
str r3, [sp, 0xC]\n\
movs r4, 0\n\
str r4, [sp, 0x10]\n\
movs r7, 0\n\
str r7, [sp, 0x14]\n\
mov r8, r0\n\
ldr r0, =gBattleStruct\n\
ldr r1, [r0]\n\
adds r0, r1, 0\n\
adds r0, 0xB3\n\
ldrb r0, [r0]\n\
cmp r0, 0\n\
beq _0817E42A\n\
b _0817E670\n\
_0817E42A:\n\
movs r2, 0xD2\n\
lsls r2, 1\n\
adds r2, r1\n\
mov r10, r2\n\
movs r6, 0\n\
movs r2, 0xD2\n\
lsls r2, 1\n\
adds r2, r1\n\
mov r10, r2\n\
movs r6, 0\n\
_0817E434:\n\
movs r0, 0x64\n\
adds r4, r6, 0\n\
muls r4, r0\n\
ldr r0, =gPlayerParty\n\
adds r0, r4, r0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
beq _0817E454\n\
mov r0, r8\n\
adds r0, 0x1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r8, r0\n\
movs r0, 0x64\n\
adds r4, r6, 0\n\
muls r4, r0\n\
ldr r0, =gPlayerParty\n\
adds r0, r4, r0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
beq _0817E454\n\
mov r0, r8\n\
adds r0, 0x1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r8, r0\n\
_0817E454:\n\
ldr r5, =gEnemyParty\n\
adds r0, r4, r5\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
beq _0817E46A\n\
adds r0, r7, 0x1\n\
lsls r0, 24\n\
lsrs r7, r0, 24\n\
ldr r5, =gEnemyParty\n\
adds r0, r4, r5\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
beq _0817E46A\n\
adds r0, r7, 0x1\n\
lsls r0, 24\n\
lsrs r7, r0, 24\n\
_0817E46A:\n\
adds r6, 0x1\n\
cmp r6, 0x5\n\
ble _0817E434\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
movs r1, 0x2\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0817E47E\n\
b _0817E670\n\
adds r6, 0x1\n\
cmp r6, 0x5\n\
ble _0817E434\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
movs r1, 0x2\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0817E47E\n\
b _0817E670\n\
_0817E47E:\n\
cmp r8, r7\n\
beq _0817E484\n\
b _0817E670\n\
cmp r8, r7\n\
beq _0817E484\n\
b _0817E670\n\
_0817E484:\n\
movs r6, 0\n\
lsls r3, r6, 1\n\
str r3, [sp, 0x18]\n\
movs r4, 0x64\n\
mov r8, r4\n\
movs r6, 0\n\
lsls r3, r6, 1\n\
str r3, [sp, 0x18]\n\
movs r4, 0x64\n\
mov r8, r4\n\
_0817E48E:\n\
mov r1, r8\n\
muls r1, r6\n\
ldr r0, =gPlayerParty\n\
adds r4, r1, r0\n\
adds r0, r4, 0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r7, r0, 16\n\
adds r0, r6, 0x1\n\
mov r9, r0\n\
cmp r7, 0\n\
beq _0817E4EE\n\
adds r0, r4, 0\n\
movs r1, 0x2D\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
bne _0817E4EE\n\
movs r4, 0\n\
lsls r0, r6, 3\n\
mov r2, r10\n\
adds r1, r0, r2\n\
movs r3, 0x3\n\
mov r1, r8\n\
muls r1, r6\n\
ldr r0, =gPlayerParty\n\
adds r4, r1, r0\n\
adds r0, r4, 0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r7, r0, 16\n\
adds r0, r6, 0x1\n\
mov r9, r0\n\
cmp r7, 0\n\
beq _0817E4EE\n\
adds r0, r4, 0\n\
movs r1, 0x2D\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
bne _0817E4EE\n\
movs r4, 0\n\
lsls r0, r6, 3\n\
mov r2, r10\n\
adds r1, r0, r2\n\
movs r3, 0x3\n\
_0817E4C4:\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
ldrh r4, [r1]\n\
adds r0, r4\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
adds r1, 0x2\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0817E4C4\n\
ldr r1, [sp, 0x8]\n\
lsls r0, r1, 16\n\
lsls r1, r4, 16\n\
cmp r0, r1\n\
bge _0817E4EE\n\
lsls r0, r6, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x10]\n\
lsrs r1, 16\n\
str r1, [sp, 0x8]\n\
str r7, [sp]\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
ldrh r4, [r1]\n\
adds r0, r4\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
adds r1, 0x2\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0817E4C4\n\
ldr r1, [sp, 0x8]\n\
lsls r0, r1, 16\n\
lsls r1, r4, 16\n\
cmp r0, r1\n\
bge _0817E4EE\n\
lsls r0, r6, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x10]\n\
lsrs r1, 16\n\
str r1, [sp, 0x8]\n\
str r7, [sp]\n\
_0817E4EE:\n\
mov r0, r8\n\
muls r0, r6\n\
ldr r2, =gEnemyParty\n\
adds r4, r0, r2\n\
adds r0, r4, 0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r7, r0, 16\n\
ldr r3, [sp, 0x8]\n\
lsls r3, 16\n\
str r3, [sp, 0x1C]\n\
cmp r7, 0\n\
beq _0817E5A0\n\
adds r0, r4, 0\n\
movs r1, 0x2D\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
bne _0817E5A0\n\
movs r4, 0\n\
ldr r0, [sp, 0xC]\n\
lsls r2, r0, 16\n\
movs r3, 0x1\n\
lsls r1, r3, 1\n\
adds r1, 0x1\n\
lsls r1, 4\n\
lsls r0, r6, 3\n\
adds r0, r1\n\
mov r3, r10\n\
adds r1, r0, r3\n\
movs r3, 0x3\n\
mov r0, r8\n\
muls r0, r6\n\
ldr r2, =gEnemyParty\n\
adds r4, r0, r2\n\
adds r0, r4, 0\n\
movs r1, 0xB\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r7, r0, 16\n\
ldr r3, [sp, 0x8]\n\
lsls r3, 16\n\
str r3, [sp, 0x1C]\n\
cmp r7, 0\n\
beq _0817E5A0\n\
adds r0, r4, 0\n\
movs r1, 0x2D\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r0, 0\n\
bne _0817E5A0\n\
movs r4, 0\n\
ldr r0, [sp, 0xC]\n\
lsls r2, r0, 16\n\
movs r3, 0x1\n\
lsls r1, r3, 1\n\
adds r1, 0x1\n\
lsls r1, 4\n\
lsls r0, r6, 3\n\
adds r0, r1\n\
mov r3, r10\n\
adds r1, r0, r3\n\
movs r3, 0x3\n\
_0817E534:\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
ldrh r4, [r1]\n\
adds r0, r4\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
adds r1, 0x2\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0817E534\n\
asrs r1, r2, 16\n\
lsls r5, r4, 16\n\
asrs r0, r5, 16\n\
cmp r1, r0\n\
bne _0817E590\n\
mov r0, r8\n\
muls r0, r6\n\
ldr r1, =gEnemyParty\n\
adds r0, r1\n\
movs r1, 0x19\n\
movs r2, 0\n\
bl GetMonData\n\
adds r4, r0, 0\n\
ldr r2, [sp, 0x14]\n\
mov r0, r8\n\
muls r0, r2\n\
ldr r3, =gEnemyParty\n\
adds r0, r3\n\
movs r1, 0x19\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r4, r0\n\
bls _0817E5A0\n\
b _0817E594\n\
.pool\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
ldrh r4, [r1]\n\
adds r0, r4\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
adds r1, 0x2\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0817E534\n\
asrs r1, r2, 16\n\
lsls r5, r4, 16\n\
asrs r0, r5, 16\n\
cmp r1, r0\n\
bne _0817E590\n\
mov r0, r8\n\
muls r0, r6\n\
ldr r1, =gEnemyParty\n\
adds r0, r1\n\
movs r1, 0x19\n\
movs r2, 0\n\
bl GetMonData\n\
adds r4, r0, 0\n\
ldr r2, [sp, 0x14]\n\
mov r0, r8\n\
muls r0, r2\n\
ldr r3, =gEnemyParty\n\
adds r0, r3\n\
movs r1, 0x19\n\
movs r2, 0\n\
bl GetMonData\n\
cmp r4, r0\n\
bls _0817E5A0\n\
b _0817E594\n\
.pool\n\
_0817E590:\n\
cmp r1, r0\n\
ble _0817E5A0\n\
cmp r1, r0\n\
ble _0817E5A0\n\
_0817E594:\n\
lsls r0, r6, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x14]\n\
lsrs r5, 16\n\
str r5, [sp, 0xC]\n\
str r7, [sp, 0x4]\n\
lsls r0, r6, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x14]\n\
lsrs r5, 16\n\
str r5, [sp, 0xC]\n\
str r7, [sp, 0x4]\n\
_0817E5A0:\n\
mov r6, r9\n\
cmp r6, 0x5\n\
bgt _0817E5A8\n\
b _0817E48E\n\
mov r6, r9\n\
cmp r6, 0x5\n\
bgt _0817E5A8\n\
b _0817E48E\n\
_0817E5A8:\n\
movs r4, 0\n\
movs r6, 0\n\
movs r3, 0\n\
ldr r5, =gPlayerParty\n\
ldr r7, [sp, 0x10]\n\
lsls r0, r7, 3\n\
mov r1, r10\n\
adds r2, r0, r1\n\
movs r4, 0\n\
movs r6, 0\n\
movs r3, 0\n\
ldr r5, =gPlayerParty\n\
ldr r7, [sp, 0x10]\n\
lsls r0, r7, 3\n\
mov r1, r10\n\
adds r2, r0, r1\n\
_0817E5B8:\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
movs r7, 0\n\
ldrsh r1, [r2, r7]\n\
cmp r0, r1\n\
bge _0817E5C8\n\
ldrh r4, [r2]\n\
adds r6, r3, 0\n\
lsls r0, r4, 16\n\
asrs r0, 16\n\
movs r7, 0\n\
ldrsh r1, [r2, r7]\n\
cmp r0, r1\n\
bge _0817E5C8\n\
ldrh r4, [r2]\n\
adds r6, r3, 0\n\
_0817E5C8:\n\
adds r2, 0x2\n\
adds r3, 0x1\n\
cmp r3, 0x3\n\
ble _0817E5B8\n\
movs r0, 0x64\n\
ldr r1, [sp, 0x10]\n\
muls r0, r1\n\
adds r0, r5\n\
adds r1, r6, 0\n\
adds r1, 0xD\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
ldr r2, [sp, 0x1C]\n\
cmp r2, 0\n\
beq _0817E670\n\
cmp r4, 0\n\
beq _0817E670\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
movs r1, 0x40\n\
ands r0, r1\n\
cmp r0, 0\n\
beq _0817E65C\n\
ldr r3, [sp, 0x10]\n\
cmp r3, 0x2\n\
bhi _0817E620\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E630\n\
b _0817E670\n\
.pool\n\
adds r2, 0x2\n\
adds r3, 0x1\n\
cmp r3, 0x3\n\
ble _0817E5B8\n\
movs r0, 0x64\n\
ldr r1, [sp, 0x10]\n\
muls r0, r1\n\
adds r0, r5\n\
adds r1, r6, 0\n\
adds r1, 0xD\n\
movs r2, 0\n\
bl GetMonData\n\
lsls r0, 16\n\
lsrs r4, r0, 16\n\
ldr r2, [sp, 0x1C]\n\
cmp r2, 0\n\
beq _0817E670\n\
cmp r4, 0\n\
beq _0817E670\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
movs r1, 0x40\n\
ands r0, r1\n\
cmp r0, 0\n\
beq _0817E65C\n\
ldr r3, [sp, 0x10]\n\
cmp r3, 0x2\n\
bhi _0817E620\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E630\n\
b _0817E670\n\
.pool\n\
_0817E620:\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E670\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r0, [r0]\n\
bl GetLinkTrainerFlankId\n\
lsls r0, 16\n\
cmp r0, 0\n\
beq _0817E670\n\
_0817E630:\n\
movs r3, 0\n\
ldr r7, [sp, 0x14]\n\
cmp r7, 0x2\n\
bls _0817E63A\n\
movs r3, 0x1\n\
movs r3, 0\n\
ldr r7, [sp, 0x14]\n\
cmp r7, 0x2\n\
bls _0817E63A\n\
movs r3, 0x1\n\
_0817E63A:\n\
lsls r0, r3, 24\n\
lsrs r0, 24\n\
ldr r1, =gBattleScripting\n\
adds r1, 0x25\n\
ldrb r1, [r1]\n\
bl sub_806EF84\n\
lsls r0, 24\n\
lsrs r0, 24\n\
adds r1, r4, 0\n\
ldr r2, [sp]\n\
ldr r3, [sp, 0x4]\n\
bl PutBattleUpdateOnTheAir\n\
b _0817E670\n\
.pool\n\
lsls r0, r3, 24\n\
lsrs r0, 24\n\
ldr r1, =gBattleScripting\n\
adds r1, 0x25\n\
ldrb r1, [r1]\n\
bl sub_806EF84\n\
lsls r0, 24\n\
lsrs r0, 24\n\
adds r1, r4, 0\n\
ldr r2, [sp]\n\
ldr r3, [sp, 0x4]\n\
bl PutBattleUpdateOnTheAir\n\
b _0817E670\n\
.pool\n\
_0817E65C:\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r1, [r0]\n\
movs r0, 0x1\n\
eors r0, r1\n\
adds r1, r4, 0\n\
ldr r2, [sp]\n\
ldr r3, [sp, 0x4]\n\
bl PutBattleUpdateOnTheAir\n\
ldr r0, =gBattleScripting\n\
adds r0, 0x25\n\
ldrb r1, [r0]\n\
movs r0, 0x1\n\
eors r0, r1\n\
adds r1, r4, 0\n\
ldr r2, [sp]\n\
ldr r3, [sp, 0x4]\n\
bl PutBattleUpdateOnTheAir\n\
_0817E670:\n\
add sp, 0x20\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool");
add sp, 0x20\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool");
}
#endif
+11 -11
View File
@@ -17,13 +17,13 @@
#include "string_util.h"
#include "battle_message.h"
#include "constants/battle_string_ids.h"
#include "constants/weather.h"
#include "battle_ai_script_commands.h"
#include "battle_controllers.h"
#include "event_data.h"
#include "link.h"
#include "berry.h"
extern u8 weather_get_current(void);
#include "field_weather.h"
// rom const data
static const u16 sSoundMovesTable[] =
@@ -1192,7 +1192,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
// fall through
case 2:
if ((gBattleTypeFlags & BATTLE_TYPE_ARENA)
&& gBattleStruct->field_DA == 2
&& gBattleStruct->arenaTurnCounter == 2
&& gBattleMons[0].hp != 0 && gBattleMons[1].hp != 0)
{
s32 i;
@@ -1238,7 +1238,7 @@ bool8 HandleFaintedMonActions(void)
{
gBattlerFainted = gBattlerTarget = gBattleStruct->faintedActionsBattlerId;
if (gBattleMons[gBattleStruct->faintedActionsBattlerId].hp == 0
&& !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]])
&& !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]])
&& !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBattlerId]))
{
BattleScriptExecute(BattleScript_GiveExp);
@@ -1827,11 +1827,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
case ABILITYEFFECT_SWITCH_IN_WEATHER:
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
{
switch (weather_get_current())
switch (GetCurrentWeather())
{
case 3:
case 5:
case 13:
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
if (!(gBattleWeather & WEATHER_RAIN_ANY))
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
@@ -1840,7 +1840,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
effect++;
}
break;
case 8:
case WEATHER_SANDSTORM:
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
@@ -1849,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
effect++;
}
break;
case 12:
case WEATHER_DROUGHT:
if (!(gBattleWeather & WEATHER_SUN_ANY))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
@@ -1862,7 +1862,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
}
if (effect)
{
gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current();
gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather();
BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
}
break;
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "battle.h"
#include "battle_controllers.h"
#include "malloc.h"
#include "alloc.h"
#include "pokemon.h"
#include "event_data.h"
#include "constants/abilities.h"
+3 -3
View File
@@ -32,7 +32,7 @@ static u16 GetStageDurationByBerryType(u8);
//.rodata
static const u8 sBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers.");
static const u8 sBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy.");
static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRYs thick skin and fruit are");
static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRY's thick skin and fruit are");
static const u8 sBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over.");
static const u8 sBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious.");
static const u8 sBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care.");
@@ -44,7 +44,7 @@ static const u8 sBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and
static const u8 sBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier.");
static const u8 sBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors.");
static const u8 sBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day.");
static const u8 sBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRYs color");
static const u8 sBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY's color");
static const u8 sBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun.");
static const u8 sBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving");
static const u8 sBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES.");
@@ -113,7 +113,7 @@ static const u8 sBerryDescriptionPart2_Apicot[] = _("what may happen or how it c
static const u8 sBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY.");
static const u8 sBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy.");
static const u8 sBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the");
static const u8 sBerryDescriptionPart2_Starf[] = _("worlds edge. Considered a mirage.");
static const u8 sBerryDescriptionPart2_Starf[] = _("world's edge. Considered a mirage.");
static const u8 sBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY.");
static const u8 sBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars.");
+3 -3
View File
@@ -12,7 +12,7 @@
#include "bg.h"
#include "palette.h"
#include "decompress.h"
#include "malloc.h"
#include "alloc.h"
#include "gpu_regs.h"
#include "text.h"
#include "text_window.h"
@@ -260,10 +260,10 @@ static const u8 sText_PressAToStart[] = _("Press the A Button to start.");
static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while.");
static const u8 sText_CommunicationStandby[] = _("Communication standby…");
static const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Would you like to blend another BERRY?");
static const u8 sText_RunOutOfBerriesForBlending[] = _("Youve run out of BERRIES for\nblending in the BERRY BLENDER.\p");
static const u8 sText_RunOutOfBerriesForBlending[] = _("You've run out of BERRIES for\nblending in the BERRY BLENDER.\p");
static const u8 sText_YourPokeblockCaseIsFull[] = _("Your {POKEBLOCK} CASE is full.\p");
static const u8 sText_HasNoBerriesToPut[] = _(" has no BERRIES to put in\nthe BERRY BLENDER.");
static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("s {POKEBLOCK} CASE is full.\p");
static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("'s {POKEBLOCK} CASE is full.\p");
static const u8 sText_BlendingResults[] = _("RESULTS OF BLENDING");
static const u8 sText_BerryUsed[] = _("BERRY USED");
static const u8 sText_SpaceBerry[] = _(" BERRY");
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "gpu_regs.h"
#include "multiboot.h"
#include "malloc.h"
#include "alloc.h"
#include "bg.h"
#include "graphics.h"
#include "main.h"
+1 -1
View File
@@ -21,7 +21,7 @@
#include "string_util.h"
#include "strings.h"
#include "bg.h"
#include "malloc.h"
#include "alloc.h"
#include "scanline_effect.h"
#include "gpu_regs.h"
#include "graphics.h"
+1006
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -5,7 +5,7 @@
#include "lottery_corner.h"
#include "dewford_trend.h"
#include "tv.h"
#include "field_screen.h"
#include "field_weather.h"
#include "berry.h"
#include "main.h"
#include "overworld.h"
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "gpu_regs.h"
#include "bg.h"
#include "malloc.h"
#include "alloc.h"
#include "constants/items.h"
#include "constants/event_objects.h"
#include "constants/moves.h"
+1 -1
View File
@@ -3,7 +3,7 @@
#include "main.h"
#include "task.h"
#include "bg.h"
#include "malloc.h"
#include "alloc.h"
#include "window.h"
#include "text.h"
#include "menu.h"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+3120 -2880
View File
File diff suppressed because it is too large Load Diff
@@ -247,253 +247,253 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldM
const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] = {
&gEventObjectGraphicsInfo_BrendanNormal,
&gEventObjectGraphicsInfo_BrendanMachBike,
&gEventObjectGraphicsInfo_BrendanSurfing,
&gEventObjectGraphicsInfo_BrendanFieldMove,
&gEventObjectGraphicsInfo_QuintyPlump,
&gEventObjectGraphicsInfo_NinjaBoy,
&gEventObjectGraphicsInfo_Twin,
&gEventObjectGraphicsInfo_Boy1,
&gEventObjectGraphicsInfo_Girl1,
&gEventObjectGraphicsInfo_Boy2,
&gEventObjectGraphicsInfo_Girl2,
&gEventObjectGraphicsInfo_LittleBoy,
&gEventObjectGraphicsInfo_LittleGirl,
&gEventObjectGraphicsInfo_Boy3,
&gEventObjectGraphicsInfo_Girl3,
&gEventObjectGraphicsInfo_RichBoy,
&gEventObjectGraphicsInfo_Woman1,
&gEventObjectGraphicsInfo_FatMan,
&gEventObjectGraphicsInfo_PokefanF,
&gEventObjectGraphicsInfo_Man1,
&gEventObjectGraphicsInfo_Woman2,
&gEventObjectGraphicsInfo_ExpertM,
&gEventObjectGraphicsInfo_ExpertF,
&gEventObjectGraphicsInfo_Man2,
&gEventObjectGraphicsInfo_Woman3,
&gEventObjectGraphicsInfo_PokefanM,
&gEventObjectGraphicsInfo_Woman4,
&gEventObjectGraphicsInfo_Cook,
&gEventObjectGraphicsInfo_LinkReceptionist,
&gEventObjectGraphicsInfo_OldMan,
&gEventObjectGraphicsInfo_OldWoman,
&gEventObjectGraphicsInfo_Camper,
&gEventObjectGraphicsInfo_Picnicker,
&gEventObjectGraphicsInfo_Man3,
&gEventObjectGraphicsInfo_Woman5,
&gEventObjectGraphicsInfo_Youngster,
&gEventObjectGraphicsInfo_BugCatcher,
&gEventObjectGraphicsInfo_PsychicM,
&gEventObjectGraphicsInfo_SchoolKidM,
&gEventObjectGraphicsInfo_Maniac,
&gEventObjectGraphicsInfo_HexManiac,
&gEventObjectGraphicsInfo_Rayquaza1,
&gEventObjectGraphicsInfo_SwimmerM,
&gEventObjectGraphicsInfo_SwimmerF,
&gEventObjectGraphicsInfo_BlackBelt,
&gEventObjectGraphicsInfo_Beauty,
&gEventObjectGraphicsInfo_Scientist1,
&gEventObjectGraphicsInfo_Lass,
&gEventObjectGraphicsInfo_Gentleman,
&gEventObjectGraphicsInfo_Sailor,
&gEventObjectGraphicsInfo_Fisherman,
&gEventObjectGraphicsInfo_RunningTriathleteM,
&gEventObjectGraphicsInfo_RunningTriathleteF,
&gEventObjectGraphicsInfo_TuberF,
&gEventObjectGraphicsInfo_TuberM,
&gEventObjectGraphicsInfo_Hiker,
&gEventObjectGraphicsInfo_CyclingTriathleteM,
&gEventObjectGraphicsInfo_CyclingTriathleteF,
&gEventObjectGraphicsInfo_Nurse,
&gEventObjectGraphicsInfo_ItemBall,
&gEventObjectGraphicsInfo_BerryTree,
&gEventObjectGraphicsInfo_BerryTreeEarlyStages,
&gEventObjectGraphicsInfo_BerryTreeLateStages,
&gEventObjectGraphicsInfo_BrendanAcroBike,
&gEventObjectGraphicsInfo_ProfBirch,
&gEventObjectGraphicsInfo_Man4,
&gEventObjectGraphicsInfo_Man5,
&gEventObjectGraphicsInfo_ReporterM,
&gEventObjectGraphicsInfo_ReporterF,
&gEventObjectGraphicsInfo_Bard,
&gEventObjectGraphicsInfo_Anabel,
&gEventObjectGraphicsInfo_Tucker,
&gEventObjectGraphicsInfo_Greta,
&gEventObjectGraphicsInfo_Spenser,
&gEventObjectGraphicsInfo_Noland,
&gEventObjectGraphicsInfo_Lucy,
&gEventObjectGraphicsInfo_UnusedNatuDoll,
&gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
&gEventObjectGraphicsInfo_UnusedSquirtleDoll,
&gEventObjectGraphicsInfo_UnusedWooperDoll,
&gEventObjectGraphicsInfo_UnusedPikachuDoll,
&gEventObjectGraphicsInfo_UnusedPorygon2Doll,
&gEventObjectGraphicsInfo_CuttableTree,
&gEventObjectGraphicsInfo_MartEmployee,
&gEventObjectGraphicsInfo_RooftopSaleWoman,
&gEventObjectGraphicsInfo_Teala,
&gEventObjectGraphicsInfo_BreakableRock,
&gEventObjectGraphicsInfo_PushableBoulder,
&gEventObjectGraphicsInfo_MrBrineysBoat,
&gEventObjectGraphicsInfo_MayNormal,
&gEventObjectGraphicsInfo_MayMachBike,
&gEventObjectGraphicsInfo_MayAcroBike,
&gEventObjectGraphicsInfo_MaySurfing,
&gEventObjectGraphicsInfo_MayFieldMove,
&gEventObjectGraphicsInfo_Truck,
&gEventObjectGraphicsInfo_VigorothCarryingBox,
&gEventObjectGraphicsInfo_VigorothFacingAway,
&gEventObjectGraphicsInfo_BirchsBag,
&gEventObjectGraphicsInfo_EnemyZigzagoon,
&gEventObjectGraphicsInfo_Artist,
&gEventObjectGraphicsInfo_RivalBrendanNormal,
&gEventObjectGraphicsInfo_RivalBrendanMachBike,
&gEventObjectGraphicsInfo_RivalBrendanAcroBike,
&gEventObjectGraphicsInfo_RivalBrendanSurfing,
&gEventObjectGraphicsInfo_RivalBrendanFieldMove,
&gEventObjectGraphicsInfo_RivalMayNormal,
&gEventObjectGraphicsInfo_RivalMayMachBike,
&gEventObjectGraphicsInfo_RivalMayAcroBike,
&gEventObjectGraphicsInfo_RivalMaySurfing,
&gEventObjectGraphicsInfo_RivalMayFieldMove,
&gEventObjectGraphicsInfo_Cameraman,
&gEventObjectGraphicsInfo_BrendanUnderwater,
&gEventObjectGraphicsInfo_MayUnderwater,
&gEventObjectGraphicsInfo_MovingBox,
&gEventObjectGraphicsInfo_CableCar,
&gEventObjectGraphicsInfo_Scientist2,
&gEventObjectGraphicsInfo_DevonEmployee,
&gEventObjectGraphicsInfo_AquaMemberM,
&gEventObjectGraphicsInfo_AquaMemberF,
&gEventObjectGraphicsInfo_MagmaMemberM,
&gEventObjectGraphicsInfo_MagmaMemberF,
&gEventObjectGraphicsInfo_Sidney,
&gEventObjectGraphicsInfo_Phoebe,
&gEventObjectGraphicsInfo_Glacia,
&gEventObjectGraphicsInfo_Drake,
&gEventObjectGraphicsInfo_Roxanne,
&gEventObjectGraphicsInfo_Brawly,
&gEventObjectGraphicsInfo_Wattson,
&gEventObjectGraphicsInfo_Flannery,
&gEventObjectGraphicsInfo_Norman,
&gEventObjectGraphicsInfo_Winona,
&gEventObjectGraphicsInfo_Liza,
&gEventObjectGraphicsInfo_Tate,
&gEventObjectGraphicsInfo_Wallace,
&gEventObjectGraphicsInfo_Steven,
&gEventObjectGraphicsInfo_Wally,
&gEventObjectGraphicsInfo_RubySapphireLittleBoy,
&gEventObjectGraphicsInfo_BrendanFishing,
&gEventObjectGraphicsInfo_MayFishing,
&gEventObjectGraphicsInfo_HotSpringsOldWoman,
&gEventObjectGraphicsInfo_SSTidal,
&gEventObjectGraphicsInfo_SubmarineShadow,
&gEventObjectGraphicsInfo_PichuDoll,
&gEventObjectGraphicsInfo_PikachuDoll,
&gEventObjectGraphicsInfo_MarillDoll,
&gEventObjectGraphicsInfo_TogepiDoll,
&gEventObjectGraphicsInfo_CyndaquilDoll,
&gEventObjectGraphicsInfo_ChikoritaDoll,
&gEventObjectGraphicsInfo_TotodileDoll,
&gEventObjectGraphicsInfo_JigglypuffDoll,
&gEventObjectGraphicsInfo_MeowthDoll,
&gEventObjectGraphicsInfo_ClefairyDoll,
&gEventObjectGraphicsInfo_DittoDoll,
&gEventObjectGraphicsInfo_SmoochumDoll,
&gEventObjectGraphicsInfo_TreeckoDoll,
&gEventObjectGraphicsInfo_TorchicDoll,
&gEventObjectGraphicsInfo_MudkipDoll,
&gEventObjectGraphicsInfo_DuskullDoll,
&gEventObjectGraphicsInfo_WynautDoll,
&gEventObjectGraphicsInfo_BaltoyDoll,
&gEventObjectGraphicsInfo_KecleonDoll,
&gEventObjectGraphicsInfo_AzurillDoll,
&gEventObjectGraphicsInfo_SkittyDoll,
&gEventObjectGraphicsInfo_SwabluDoll,
&gEventObjectGraphicsInfo_GulpinDoll,
&gEventObjectGraphicsInfo_LotadDoll,
&gEventObjectGraphicsInfo_SeedotDoll,
&gEventObjectGraphicsInfo_PikaCushion,
&gEventObjectGraphicsInfo_RoundCushion,
&gEventObjectGraphicsInfo_KissCushion,
&gEventObjectGraphicsInfo_ZigzagCushion,
&gEventObjectGraphicsInfo_SpinCushion,
&gEventObjectGraphicsInfo_DiamondCushion,
&gEventObjectGraphicsInfo_BallCushion,
&gEventObjectGraphicsInfo_GrassCushion,
&gEventObjectGraphicsInfo_FireCushion,
&gEventObjectGraphicsInfo_WaterCushion,
&gEventObjectGraphicsInfo_BigSnorlaxDoll,
&gEventObjectGraphicsInfo_BigRhydonDoll,
&gEventObjectGraphicsInfo_BigLaprasDoll,
&gEventObjectGraphicsInfo_BigVenusaurDoll,
&gEventObjectGraphicsInfo_BigCharizardDoll,
&gEventObjectGraphicsInfo_BigBlastoiseDoll,
&gEventObjectGraphicsInfo_BigWailmerDoll,
&gEventObjectGraphicsInfo_BigRegirockDoll,
&gEventObjectGraphicsInfo_BigRegiceDoll,
&gEventObjectGraphicsInfo_BigRegisteelDoll,
&gEventObjectGraphicsInfo_Latias,
&gEventObjectGraphicsInfo_Latios,
&gEventObjectGraphicsInfo_GameboyKid,
&gEventObjectGraphicsInfo_ContestJudge,
&gEventObjectGraphicsInfo_BrendanWatering,
&gEventObjectGraphicsInfo_MayWatering,
&gEventObjectGraphicsInfo_BrendanDecorating,
&gEventObjectGraphicsInfo_MayDecorating,
&gEventObjectGraphicsInfo_Archie,
&gEventObjectGraphicsInfo_Maxie,
&gEventObjectGraphicsInfo_Kyogre1,
&gEventObjectGraphicsInfo_Groudon1,
&gEventObjectGraphicsInfo_Fossil,
&gEventObjectGraphicsInfo_Regirock,
&gEventObjectGraphicsInfo_Regice,
&gEventObjectGraphicsInfo_Registeel,
&gEventObjectGraphicsInfo_Skitty,
&gEventObjectGraphicsInfo_Kecleon1,
&gEventObjectGraphicsInfo_Kyogre2,
&gEventObjectGraphicsInfo_Groudon2,
&gEventObjectGraphicsInfo_Rayquaza2,
&gEventObjectGraphicsInfo_Zigzagoon,
&gEventObjectGraphicsInfo_Pikachu,
&gEventObjectGraphicsInfo_Azumarill,
&gEventObjectGraphicsInfo_Wingull,
&gEventObjectGraphicsInfo_Kecleon2,
&gEventObjectGraphicsInfo_TuberMSwimming,
&gEventObjectGraphicsInfo_Azurill,
&gEventObjectGraphicsInfo_Mom,
&gEventObjectGraphicsInfo_LinkBrendan,
&gEventObjectGraphicsInfo_LinkMay,
&gEventObjectGraphicsInfo_Juan,
&gEventObjectGraphicsInfo_Scott,
&gEventObjectGraphicsInfo_Poochyena,
&gEventObjectGraphicsInfo_Kyogre3,
&gEventObjectGraphicsInfo_Groudon3,
&gEventObjectGraphicsInfo_MysteryEventDeliveryman,
&gEventObjectGraphicsInfo_Statue,
&gEventObjectGraphicsInfo_Kirlia,
&gEventObjectGraphicsInfo_Dusclops,
&gEventObjectGraphicsInfo_UnionRoomAttendant,
&gEventObjectGraphicsInfo_Sudowoodo,
&gEventObjectGraphicsInfo_Mew,
&gEventObjectGraphicsInfo_Red,
&gEventObjectGraphicsInfo_Leaf,
&gEventObjectGraphicsInfo_Deoxys,
&gEventObjectGraphicsInfo_BirthIslandStone,
&gEventObjectGraphicsInfo_Brandon,
&gEventObjectGraphicsInfo_RubySapphireBrendan,
&gEventObjectGraphicsInfo_RubySapphireMay,
&gEventObjectGraphicsInfo_Lugia,
&gEventObjectGraphicsInfo_HoOh,
&gEventObjectGraphicsInfo_BrendanNormal,
&gEventObjectGraphicsInfo_BrendanMachBike,
&gEventObjectGraphicsInfo_BrendanSurfing,
&gEventObjectGraphicsInfo_BrendanFieldMove,
&gEventObjectGraphicsInfo_QuintyPlump,
&gEventObjectGraphicsInfo_NinjaBoy,
&gEventObjectGraphicsInfo_Twin,
&gEventObjectGraphicsInfo_Boy1,
&gEventObjectGraphicsInfo_Girl1,
&gEventObjectGraphicsInfo_Boy2,
&gEventObjectGraphicsInfo_Girl2,
&gEventObjectGraphicsInfo_LittleBoy,
&gEventObjectGraphicsInfo_LittleGirl,
&gEventObjectGraphicsInfo_Boy3,
&gEventObjectGraphicsInfo_Girl3,
&gEventObjectGraphicsInfo_RichBoy,
&gEventObjectGraphicsInfo_Woman1,
&gEventObjectGraphicsInfo_FatMan,
&gEventObjectGraphicsInfo_PokefanF,
&gEventObjectGraphicsInfo_Man1,
&gEventObjectGraphicsInfo_Woman2,
&gEventObjectGraphicsInfo_ExpertM,
&gEventObjectGraphicsInfo_ExpertF,
&gEventObjectGraphicsInfo_Man2,
&gEventObjectGraphicsInfo_Woman3,
&gEventObjectGraphicsInfo_PokefanM,
&gEventObjectGraphicsInfo_Woman4,
&gEventObjectGraphicsInfo_Cook,
&gEventObjectGraphicsInfo_LinkReceptionist,
&gEventObjectGraphicsInfo_OldMan,
&gEventObjectGraphicsInfo_OldWoman,
&gEventObjectGraphicsInfo_Camper,
&gEventObjectGraphicsInfo_Picnicker,
&gEventObjectGraphicsInfo_Man3,
&gEventObjectGraphicsInfo_Woman5,
&gEventObjectGraphicsInfo_Youngster,
&gEventObjectGraphicsInfo_BugCatcher,
&gEventObjectGraphicsInfo_PsychicM,
&gEventObjectGraphicsInfo_SchoolKidM,
&gEventObjectGraphicsInfo_Maniac,
&gEventObjectGraphicsInfo_HexManiac,
&gEventObjectGraphicsInfo_Rayquaza1,
&gEventObjectGraphicsInfo_SwimmerM,
&gEventObjectGraphicsInfo_SwimmerF,
&gEventObjectGraphicsInfo_BlackBelt,
&gEventObjectGraphicsInfo_Beauty,
&gEventObjectGraphicsInfo_Scientist1,
&gEventObjectGraphicsInfo_Lass,
&gEventObjectGraphicsInfo_Gentleman,
&gEventObjectGraphicsInfo_Sailor,
&gEventObjectGraphicsInfo_Fisherman,
&gEventObjectGraphicsInfo_RunningTriathleteM,
&gEventObjectGraphicsInfo_RunningTriathleteF,
&gEventObjectGraphicsInfo_TuberF,
&gEventObjectGraphicsInfo_TuberM,
&gEventObjectGraphicsInfo_Hiker,
&gEventObjectGraphicsInfo_CyclingTriathleteM,
&gEventObjectGraphicsInfo_CyclingTriathleteF,
&gEventObjectGraphicsInfo_Nurse,
&gEventObjectGraphicsInfo_ItemBall,
&gEventObjectGraphicsInfo_BerryTree,
&gEventObjectGraphicsInfo_BerryTreeEarlyStages,
&gEventObjectGraphicsInfo_BerryTreeLateStages,
&gEventObjectGraphicsInfo_BrendanAcroBike,
&gEventObjectGraphicsInfo_ProfBirch,
&gEventObjectGraphicsInfo_Man4,
&gEventObjectGraphicsInfo_Man5,
&gEventObjectGraphicsInfo_ReporterM,
&gEventObjectGraphicsInfo_ReporterF,
&gEventObjectGraphicsInfo_Bard,
&gEventObjectGraphicsInfo_Anabel,
&gEventObjectGraphicsInfo_Tucker,
&gEventObjectGraphicsInfo_Greta,
&gEventObjectGraphicsInfo_Spenser,
&gEventObjectGraphicsInfo_Noland,
&gEventObjectGraphicsInfo_Lucy,
&gEventObjectGraphicsInfo_UnusedNatuDoll,
&gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
&gEventObjectGraphicsInfo_UnusedSquirtleDoll,
&gEventObjectGraphicsInfo_UnusedWooperDoll,
&gEventObjectGraphicsInfo_UnusedPikachuDoll,
&gEventObjectGraphicsInfo_UnusedPorygon2Doll,
&gEventObjectGraphicsInfo_CuttableTree,
&gEventObjectGraphicsInfo_MartEmployee,
&gEventObjectGraphicsInfo_RooftopSaleWoman,
&gEventObjectGraphicsInfo_Teala,
&gEventObjectGraphicsInfo_BreakableRock,
&gEventObjectGraphicsInfo_PushableBoulder,
&gEventObjectGraphicsInfo_MrBrineysBoat,
&gEventObjectGraphicsInfo_MayNormal,
&gEventObjectGraphicsInfo_MayMachBike,
&gEventObjectGraphicsInfo_MayAcroBike,
&gEventObjectGraphicsInfo_MaySurfing,
&gEventObjectGraphicsInfo_MayFieldMove,
&gEventObjectGraphicsInfo_Truck,
&gEventObjectGraphicsInfo_VigorothCarryingBox,
&gEventObjectGraphicsInfo_VigorothFacingAway,
&gEventObjectGraphicsInfo_BirchsBag,
&gEventObjectGraphicsInfo_EnemyZigzagoon,
&gEventObjectGraphicsInfo_Artist,
&gEventObjectGraphicsInfo_RivalBrendanNormal,
&gEventObjectGraphicsInfo_RivalBrendanMachBike,
&gEventObjectGraphicsInfo_RivalBrendanAcroBike,
&gEventObjectGraphicsInfo_RivalBrendanSurfing,
&gEventObjectGraphicsInfo_RivalBrendanFieldMove,
&gEventObjectGraphicsInfo_RivalMayNormal,
&gEventObjectGraphicsInfo_RivalMayMachBike,
&gEventObjectGraphicsInfo_RivalMayAcroBike,
&gEventObjectGraphicsInfo_RivalMaySurfing,
&gEventObjectGraphicsInfo_RivalMayFieldMove,
&gEventObjectGraphicsInfo_Cameraman,
&gEventObjectGraphicsInfo_BrendanUnderwater,
&gEventObjectGraphicsInfo_MayUnderwater,
&gEventObjectGraphicsInfo_MovingBox,
&gEventObjectGraphicsInfo_CableCar,
&gEventObjectGraphicsInfo_Scientist2,
&gEventObjectGraphicsInfo_DevonEmployee,
&gEventObjectGraphicsInfo_AquaMemberM,
&gEventObjectGraphicsInfo_AquaMemberF,
&gEventObjectGraphicsInfo_MagmaMemberM,
&gEventObjectGraphicsInfo_MagmaMemberF,
&gEventObjectGraphicsInfo_Sidney,
&gEventObjectGraphicsInfo_Phoebe,
&gEventObjectGraphicsInfo_Glacia,
&gEventObjectGraphicsInfo_Drake,
&gEventObjectGraphicsInfo_Roxanne,
&gEventObjectGraphicsInfo_Brawly,
&gEventObjectGraphicsInfo_Wattson,
&gEventObjectGraphicsInfo_Flannery,
&gEventObjectGraphicsInfo_Norman,
&gEventObjectGraphicsInfo_Winona,
&gEventObjectGraphicsInfo_Liza,
&gEventObjectGraphicsInfo_Tate,
&gEventObjectGraphicsInfo_Wallace,
&gEventObjectGraphicsInfo_Steven,
&gEventObjectGraphicsInfo_Wally,
&gEventObjectGraphicsInfo_RubySapphireLittleBoy,
&gEventObjectGraphicsInfo_BrendanFishing,
&gEventObjectGraphicsInfo_MayFishing,
&gEventObjectGraphicsInfo_HotSpringsOldWoman,
&gEventObjectGraphicsInfo_SSTidal,
&gEventObjectGraphicsInfo_SubmarineShadow,
&gEventObjectGraphicsInfo_PichuDoll,
&gEventObjectGraphicsInfo_PikachuDoll,
&gEventObjectGraphicsInfo_MarillDoll,
&gEventObjectGraphicsInfo_TogepiDoll,
&gEventObjectGraphicsInfo_CyndaquilDoll,
&gEventObjectGraphicsInfo_ChikoritaDoll,
&gEventObjectGraphicsInfo_TotodileDoll,
&gEventObjectGraphicsInfo_JigglypuffDoll,
&gEventObjectGraphicsInfo_MeowthDoll,
&gEventObjectGraphicsInfo_ClefairyDoll,
&gEventObjectGraphicsInfo_DittoDoll,
&gEventObjectGraphicsInfo_SmoochumDoll,
&gEventObjectGraphicsInfo_TreeckoDoll,
&gEventObjectGraphicsInfo_TorchicDoll,
&gEventObjectGraphicsInfo_MudkipDoll,
&gEventObjectGraphicsInfo_DuskullDoll,
&gEventObjectGraphicsInfo_WynautDoll,
&gEventObjectGraphicsInfo_BaltoyDoll,
&gEventObjectGraphicsInfo_KecleonDoll,
&gEventObjectGraphicsInfo_AzurillDoll,
&gEventObjectGraphicsInfo_SkittyDoll,
&gEventObjectGraphicsInfo_SwabluDoll,
&gEventObjectGraphicsInfo_GulpinDoll,
&gEventObjectGraphicsInfo_LotadDoll,
&gEventObjectGraphicsInfo_SeedotDoll,
&gEventObjectGraphicsInfo_PikaCushion,
&gEventObjectGraphicsInfo_RoundCushion,
&gEventObjectGraphicsInfo_KissCushion,
&gEventObjectGraphicsInfo_ZigzagCushion,
&gEventObjectGraphicsInfo_SpinCushion,
&gEventObjectGraphicsInfo_DiamondCushion,
&gEventObjectGraphicsInfo_BallCushion,
&gEventObjectGraphicsInfo_GrassCushion,
&gEventObjectGraphicsInfo_FireCushion,
&gEventObjectGraphicsInfo_WaterCushion,
&gEventObjectGraphicsInfo_BigSnorlaxDoll,
&gEventObjectGraphicsInfo_BigRhydonDoll,
&gEventObjectGraphicsInfo_BigLaprasDoll,
&gEventObjectGraphicsInfo_BigVenusaurDoll,
&gEventObjectGraphicsInfo_BigCharizardDoll,
&gEventObjectGraphicsInfo_BigBlastoiseDoll,
&gEventObjectGraphicsInfo_BigWailmerDoll,
&gEventObjectGraphicsInfo_BigRegirockDoll,
&gEventObjectGraphicsInfo_BigRegiceDoll,
&gEventObjectGraphicsInfo_BigRegisteelDoll,
&gEventObjectGraphicsInfo_Latias,
&gEventObjectGraphicsInfo_Latios,
&gEventObjectGraphicsInfo_GameboyKid,
&gEventObjectGraphicsInfo_ContestJudge,
&gEventObjectGraphicsInfo_BrendanWatering,
&gEventObjectGraphicsInfo_MayWatering,
&gEventObjectGraphicsInfo_BrendanDecorating,
&gEventObjectGraphicsInfo_MayDecorating,
&gEventObjectGraphicsInfo_Archie,
&gEventObjectGraphicsInfo_Maxie,
&gEventObjectGraphicsInfo_Kyogre1,
&gEventObjectGraphicsInfo_Groudon1,
&gEventObjectGraphicsInfo_Fossil,
&gEventObjectGraphicsInfo_Regirock,
&gEventObjectGraphicsInfo_Regice,
&gEventObjectGraphicsInfo_Registeel,
&gEventObjectGraphicsInfo_Skitty,
&gEventObjectGraphicsInfo_Kecleon1,
&gEventObjectGraphicsInfo_Kyogre2,
&gEventObjectGraphicsInfo_Groudon2,
&gEventObjectGraphicsInfo_Rayquaza2,
&gEventObjectGraphicsInfo_Zigzagoon,
&gEventObjectGraphicsInfo_Pikachu,
&gEventObjectGraphicsInfo_Azumarill,
&gEventObjectGraphicsInfo_Wingull,
&gEventObjectGraphicsInfo_Kecleon2,
&gEventObjectGraphicsInfo_TuberMSwimming,
&gEventObjectGraphicsInfo_Azurill,
&gEventObjectGraphicsInfo_Mom,
&gEventObjectGraphicsInfo_LinkBrendan,
&gEventObjectGraphicsInfo_LinkMay,
&gEventObjectGraphicsInfo_Juan,
&gEventObjectGraphicsInfo_Scott,
&gEventObjectGraphicsInfo_Poochyena,
&gEventObjectGraphicsInfo_Kyogre3,
&gEventObjectGraphicsInfo_Groudon3,
&gEventObjectGraphicsInfo_MysteryEventDeliveryman,
&gEventObjectGraphicsInfo_Statue,
&gEventObjectGraphicsInfo_Kirlia,
&gEventObjectGraphicsInfo_Dusclops,
&gEventObjectGraphicsInfo_UnionRoomAttendant,
&gEventObjectGraphicsInfo_Sudowoodo,
&gEventObjectGraphicsInfo_Mew,
&gEventObjectGraphicsInfo_Red,
&gEventObjectGraphicsInfo_Leaf,
&gEventObjectGraphicsInfo_Deoxys,
&gEventObjectGraphicsInfo_BirthIslandStone,
&gEventObjectGraphicsInfo_Brandon,
&gEventObjectGraphicsInfo_RubySapphireBrendan,
&gEventObjectGraphicsInfo_RubySapphireMay,
&gEventObjectGraphicsInfo_Lugia,
&gEventObjectGraphicsInfo_HoOh,
};
const struct EventObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = {
&gEventObjectGraphicsInfo_Bard,
&gEventObjectGraphicsInfo_Hipster,
&gEventObjectGraphicsInfo_Trader,
&gEventObjectGraphicsInfo_Storyteller,
&gEventObjectGraphicsInfo_Giddy,
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
&gEventObjectGraphicsInfo_Bard,
&gEventObjectGraphicsInfo_Hipster,
&gEventObjectGraphicsInfo_Trader,
&gEventObjectGraphicsInfo_Storyteller,
&gEventObjectGraphicsInfo_Giddy,
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
};
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -134,7 +134,7 @@ const u32 gItemIconPalette_GreenShard[] = INCBIN_U32("graphics/items/icon_palett
const u32 gItemIcon_HPUp[] = INCBIN_U32("graphics/items/icons/hp_up.4bpp.lz");
const u32 gItemIconPalette_HPUp[] = INCBIN_U32("graphics/items/icon_palettes/hp_up.gbapal.lz");
const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz");
const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz");
const u32 gItemIconPalette_Protein[] = INCBIN_U32("graphics/items/icon_palettes/protein.gbapal.lz");
const u32 gItemIconPalette_Iron[] = INCBIN_U32("graphics/items/icon_palettes/iron.gbapal.lz");
const u32 gItemIconPalette_Carbos[] = INCBIN_U32("graphics/items/icon_palettes/carbos.gbapal.lz");
+58 -58
View File
@@ -311,64 +311,64 @@ const u32 *const gItemIconTable[][2] =
[ITEM_CLAW_FOSSIL] = {gItemIcon_ClawFossil, gItemIconPalette_HoennFossil},
[ITEM_DEVON_SCOPE] = {gItemIcon_DevonScope, gItemIconPalette_DevonScope},
// TMs / HMs
[ITEM_TM01] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM01
[ITEM_TM02] = {gItemIcon_TM, gItemIconPalette_DragonTMHM}, // TM02
[ITEM_TM03] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, // TM03
[ITEM_TM04] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM04
[ITEM_TM05] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM05
[ITEM_TM06] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, // TM06
[ITEM_TM07] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM07
[ITEM_TM08] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM08
[ITEM_TM09] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM09
[ITEM_TM10] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM10
[ITEM_TM11] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM11
[ITEM_TM12] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM12
[ITEM_TM13] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM13
[ITEM_TM14] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM14
[ITEM_TM15] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM15
[ITEM_TM16] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM16
[ITEM_TM17] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM17
[ITEM_TM18] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, // TM18
[ITEM_TM19] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM19
[ITEM_TM20] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM20
[ITEM_TM21] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM21
[ITEM_TM22] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM22
[ITEM_TM23] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, // TM23
[ITEM_TM24] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM24
[ITEM_TM25] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM25
[ITEM_TM26] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, // TM26
[ITEM_TM27] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM27
[ITEM_TM28] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, // TM28
[ITEM_TM29] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM29
[ITEM_TM30] = {gItemIcon_TM, gItemIconPalette_GhostTMHM}, // TM30
[ITEM_TM31] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM31
[ITEM_TM32] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM32
[ITEM_TM33] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM33
[ITEM_TM34] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM34
[ITEM_TM35] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM35
[ITEM_TM36] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, // TM36
[ITEM_TM37] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, // TM37
[ITEM_TM38] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM38
[ITEM_TM39] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, // TM39
[ITEM_TM40] = {gItemIcon_TM, gItemIconPalette_FlyingTMHM}, // TM40
[ITEM_TM41] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM41
[ITEM_TM42] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM42
[ITEM_TM43] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM43
[ITEM_TM44] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM44
[ITEM_TM45] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM45
[ITEM_TM46] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM46
[ITEM_TM47] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, // TM47
[ITEM_TM48] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM48
[ITEM_TM49] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM49
[ITEM_TM50] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM50
[ITEM_HM01] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM01
[ITEM_HM02] = {gItemIcon_HM, gItemIconPalette_FlyingTMHM}, // HM02
[ITEM_HM03] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM03
[ITEM_HM04] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM04
[ITEM_HM05] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM05
[ITEM_HM06] = {gItemIcon_HM, gItemIconPalette_FightingTMHM}, // HM06
[ITEM_HM07] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM07
[ITEM_HM08] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM08
[ITEM_TM01] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
[ITEM_TM02] = {gItemIcon_TM, gItemIconPalette_DragonTMHM},
[ITEM_TM03] = {gItemIcon_TM, gItemIconPalette_WaterTMHM},
[ITEM_TM04] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM05] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM06] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM},
[ITEM_TM07] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
[ITEM_TM08] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
[ITEM_TM09] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
[ITEM_TM10] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM11] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
[ITEM_TM12] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
[ITEM_TM13] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
[ITEM_TM14] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
[ITEM_TM15] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM16] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM17] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM18] = {gItemIcon_TM, gItemIconPalette_WaterTMHM},
[ITEM_TM19] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
[ITEM_TM20] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM21] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM22] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
[ITEM_TM23] = {gItemIcon_TM, gItemIconPalette_SteelTMHM},
[ITEM_TM24] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
[ITEM_TM25] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
[ITEM_TM26] = {gItemIcon_TM, gItemIconPalette_GroundTMHM},
[ITEM_TM27] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM28] = {gItemIcon_TM, gItemIconPalette_GroundTMHM},
[ITEM_TM29] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM30] = {gItemIcon_TM, gItemIconPalette_GhostTMHM},
[ITEM_TM31] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
[ITEM_TM32] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM33] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM34] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
[ITEM_TM35] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
[ITEM_TM36] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM},
[ITEM_TM37] = {gItemIcon_TM, gItemIconPalette_RockTMHM},
[ITEM_TM38] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
[ITEM_TM39] = {gItemIcon_TM, gItemIconPalette_RockTMHM},
[ITEM_TM40] = {gItemIcon_TM, gItemIconPalette_FlyingTMHM},
[ITEM_TM41] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
[ITEM_TM42] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM43] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM44] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM45] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
[ITEM_TM46] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
[ITEM_TM47] = {gItemIcon_TM, gItemIconPalette_SteelTMHM},
[ITEM_TM48] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
[ITEM_TM49] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
[ITEM_TM50] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
[ITEM_HM01] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
[ITEM_HM02] = {gItemIcon_HM, gItemIconPalette_FlyingTMHM},
[ITEM_HM03] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
[ITEM_HM04] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
[ITEM_HM05] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
[ITEM_HM06] = {gItemIcon_HM, gItemIconPalette_FightingTMHM},
[ITEM_HM07] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
[ITEM_HM08] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
// ????????
[ITEM_15B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_15C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
+2 -2
View File
@@ -3389,7 +3389,7 @@ const struct Item gItems[] =
[ITEM_KINGS_ROCK] =
{
.name = _("KINGS ROCK"),
.name = _("KING'S ROCK"),
.itemId = ITEM_KINGS_ROCK,
.price = 100,
.holdEffect = HOLD_EFFECT_FLINCH,
@@ -6311,7 +6311,7 @@ const struct Item gItems[] =
[ITEM_OAKS_PARCEL] =
{
.name = _("OAKS PARCEL"),
.name = _("OAK'S PARCEL"),
.itemId = ITEM_OAKS_PARCEL,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
+135 -135
View File
@@ -1,138 +1,138 @@
const u16 gSpeciesIdToCryId[] =
{
273, // TREECKO
274, // GROVYLE
275, // SCEPTILE
270, // TORCHIC
271, // COMBUSKEN
272, // BLAZIKEN
276, // MUDKIP
277, // MARSHTOMP
278, // SWAMPERT
359, // POOCHYENA
360, // MIGHTYENA
378, // ZIGZAGOON
375, // LINOONE
290, // WURMPLE
291, // SILCOON
292, // BEAUTIFLY
293, // CASCOON
294, // DUSTOX
283, // LOTAD
284, // LOMBRE
285, // LUDICOLO
286, // SEEDOT
287, // NUZLEAF
288, // SHIFTRY
301, // NINCADA
302, // NINJASK
303, // SHEDINJA
266, // TAILLOW
267, // SWELLOW
374, // SHROOMISH
373, // BRELOOM
269, // SPINDA
280, // WINGULL
279, // PELIPPER
310, // SURSKIT
311, // MASQUERAIN
377, // WAILMER
381, // WAILORD
312, // SKITTY
313, // DELCATTY
251, // KECLEON
329, // BALTOY
330, // CLAYDOL
306, // NOSEPASS
253, // TORKOAL
362, // SABLEYE
318, // BARBOACH
319, // WHISCASH
368, // LUVDISC
320, // CORPHISH
321, // CRAWDAUNT
333, // FEEBAS
334, // MILOTIC
289, // CARVANHA
260, // SHARPEDO
324, // TRAPINCH
325, // VIBRAVA
326, // FLYGON
304, // MAKUHITA
305, // HARIYAMA
254, // ELECTRIKE
255, // MANECTRIC
316, // NUMEL
317, // CAMERUPT
338, // SPHEAL
339, // SEALEO
340, // WALREIN
327, // CACNEA
328, // CACTURNE
383, // SNORUNT
307, // GLALIE
331, // LUNATONE
332, // SOLROCK
262, // AZURILL
322, // SPOINK
323, // GRUMPIG
308, // PLUSLE
309, // MINUN
363, // MAWILE
336, // MEDITITE
337, // MEDICHAM
263, // SWABLU
264, // ALTARIA
258, // WYNAUT
256, // DUSKULL
361, // DUSCLOPS
252, // ROSELIA
298, // SLAKOTH
299, // VIGOROTH
300, // SLAKING
314, // GULPIN
315, // SWALOT
376, // TROPIUS
382, // WHISMUR
380, // LOUDRED
379, // EXPLOUD
341, // CLAMPERL
342, // HUNTAIL
343, // GOREBYSS
335, // ABSOL
282, // SHUPPET
281, // BANETTE
259, // SEVIPER
261, // ZANGOOSE
367, // RELICANTH
364, // ARON
365, // LAIRON
366, // AGGRON
356, // CASTFORM
357, // VOLBEAT
358, // ILLUMISE
344, // LILEEP
345, // CRADILY
346, // ANORITH
347, // ARMALDO
295, // RALTS
296, // KIRLIA
297, // GARDEVOIR
351, // BAGON
352, // SHELGON
372, // SALAMENCE
348, // BELDUM
349, // METANG
350, // METAGROSS
353, // REGIROCK
354, // REGICE
355, // REGISTEEL
370, // KYOGRE
369, // GROUDON
371, // RAYQUAZA
257, // LATIAS
384, // LATIOS
385, // JIRACHI
386, // DEOXYS
387 // CHIMECHO
[SPECIES_TREECKO - 277] = 273,
[SPECIES_GROVYLE - 277] = 274,
[SPECIES_SCEPTILE - 277] = 275,
[SPECIES_TORCHIC - 277] = 270,
[SPECIES_COMBUSKEN - 277] = 271,
[SPECIES_BLAZIKEN - 277] = 272,
[SPECIES_MUDKIP - 277] = 276,
[SPECIES_MARSHTOMP - 277] = 277,
[SPECIES_SWAMPERT - 277] = 278,
[SPECIES_POOCHYENA - 277] = 359,
[SPECIES_MIGHTYENA - 277] = 360,
[SPECIES_ZIGZAGOON - 277] = 378,
[SPECIES_LINOONE - 277] = 375,
[SPECIES_WURMPLE - 277] = 290,
[SPECIES_SILCOON - 277] = 291,
[SPECIES_BEAUTIFLY - 277] = 292,
[SPECIES_CASCOON - 277] = 293,
[SPECIES_DUSTOX - 277] = 294,
[SPECIES_LOTAD - 277] = 283,
[SPECIES_LOMBRE - 277] = 284,
[SPECIES_LUDICOLO - 277] = 285,
[SPECIES_SEEDOT - 277] = 286,
[SPECIES_NUZLEAF - 277] = 287,
[SPECIES_SHIFTRY - 277] = 288,
[SPECIES_NINCADA - 277] = 301,
[SPECIES_NINJASK - 277] = 302,
[SPECIES_SHEDINJA - 277] = 303,
[SPECIES_TAILLOW - 277] = 266,
[SPECIES_SWELLOW - 277] = 267,
[SPECIES_SHROOMISH - 277] = 374,
[SPECIES_BRELOOM - 277] = 373,
[SPECIES_SPINDA - 277] = 269,
[SPECIES_WINGULL - 277] = 280,
[SPECIES_PELIPPER - 277] = 279,
[SPECIES_SURSKIT - 277] = 310,
[SPECIES_MASQUERAIN - 277] = 311,
[SPECIES_WAILMER - 277] = 377,
[SPECIES_WAILORD - 277] = 381,
[SPECIES_SKITTY - 277] = 312,
[SPECIES_DELCATTY - 277] = 313,
[SPECIES_KECLEON - 277] = 251,
[SPECIES_BALTOY - 277] = 329,
[SPECIES_CLAYDOL - 277] = 330,
[SPECIES_NOSEPASS - 277] = 306,
[SPECIES_TORKOAL - 277] = 253,
[SPECIES_SABLEYE - 277] = 362,
[SPECIES_BARBOACH - 277] = 318,
[SPECIES_WHISCASH - 277] = 319,
[SPECIES_LUVDISC - 277] = 368,
[SPECIES_CORPHISH - 277] = 320,
[SPECIES_CRAWDAUNT - 277] = 321,
[SPECIES_FEEBAS - 277] = 333,
[SPECIES_MILOTIC - 277] = 334,
[SPECIES_CARVANHA - 277] = 289,
[SPECIES_SHARPEDO - 277] = 260,
[SPECIES_TRAPINCH - 277] = 324,
[SPECIES_VIBRAVA - 277] = 325,
[SPECIES_FLYGON - 277] = 326,
[SPECIES_MAKUHITA - 277] = 304,
[SPECIES_HARIYAMA - 277] = 305,
[SPECIES_ELECTRIKE - 277] = 254,
[SPECIES_MANECTRIC - 277] = 255,
[SPECIES_NUMEL - 277] = 316,
[SPECIES_CAMERUPT - 277] = 317,
[SPECIES_SPHEAL - 277] = 338,
[SPECIES_SEALEO - 277] = 339,
[SPECIES_WALREIN - 277] = 340,
[SPECIES_CACNEA - 277] = 327,
[SPECIES_CACTURNE - 277] = 328,
[SPECIES_SNORUNT - 277] = 383,
[SPECIES_GLALIE - 277] = 307,
[SPECIES_LUNATONE - 277] = 331,
[SPECIES_SOLROCK - 277] = 332,
[SPECIES_AZURILL - 277] = 262,
[SPECIES_SPOINK - 277] = 322,
[SPECIES_GRUMPIG - 277] = 323,
[SPECIES_PLUSLE - 277] = 308,
[SPECIES_MINUN - 277] = 309,
[SPECIES_MAWILE - 277] = 363,
[SPECIES_MEDITITE - 277] = 336,
[SPECIES_MEDICHAM - 277] = 337,
[SPECIES_SWABLU - 277] = 263,
[SPECIES_ALTARIA - 277] = 264,
[SPECIES_WYNAUT - 277] = 258,
[SPECIES_DUSKULL - 277] = 256,
[SPECIES_DUSCLOPS - 277] = 361,
[SPECIES_ROSELIA - 277] = 252,
[SPECIES_SLAKOTH - 277] = 298,
[SPECIES_VIGOROTH - 277] = 299,
[SPECIES_SLAKING - 277] = 300,
[SPECIES_GULPIN - 277] = 314,
[SPECIES_SWALOT - 277] = 315,
[SPECIES_TROPIUS - 277] = 376,
[SPECIES_WHISMUR - 277] = 382,
[SPECIES_LOUDRED - 277] = 380,
[SPECIES_EXPLOUD - 277] = 379,
[SPECIES_CLAMPERL - 277] = 341,
[SPECIES_HUNTAIL - 277] = 342,
[SPECIES_GOREBYSS - 277] = 343,
[SPECIES_ABSOL - 277] = 335,
[SPECIES_SHUPPET - 277] = 282,
[SPECIES_BANETTE - 277] = 281,
[SPECIES_SEVIPER - 277] = 259,
[SPECIES_ZANGOOSE - 277] = 261,
[SPECIES_RELICANTH - 277] = 367,
[SPECIES_ARON - 277] = 364,
[SPECIES_LAIRON - 277] = 365,
[SPECIES_AGGRON - 277] = 366,
[SPECIES_CASTFORM - 277] = 356,
[SPECIES_VOLBEAT - 277] = 357,
[SPECIES_ILLUMISE - 277] = 358,
[SPECIES_LILEEP - 277] = 344,
[SPECIES_CRADILY - 277] = 345,
[SPECIES_ANORITH - 277] = 346,
[SPECIES_ARMALDO - 277] = 347,
[SPECIES_RALTS - 277] = 295,
[SPECIES_KIRLIA - 277] = 296,
[SPECIES_GARDEVOIR - 277] = 297,
[SPECIES_BAGON - 277] = 351,
[SPECIES_SHELGON - 277] = 352,
[SPECIES_SALAMENCE - 277] = 372,
[SPECIES_BELDUM - 277] = 348,
[SPECIES_METANG - 277] = 349,
[SPECIES_METAGROSS - 277] = 350,
[SPECIES_REGIROCK - 277] = 353,
[SPECIES_REGICE - 277] = 354,
[SPECIES_REGISTEEL - 277] = 355,
[SPECIES_KYOGRE - 277] = 370,
[SPECIES_GROUDON - 277] = 369,
[SPECIES_RAYQUAZA - 277] = 371,
[SPECIES_LATIAS - 277] = 257,
[SPECIES_LATIOS - 277] = 384,
[SPECIES_JIRACHI - 277] = 385,
[SPECIES_DEOXYS - 277] = 386,
[SPECIES_CHIMECHO - 277] = 387,
};
+78 -78
View File
@@ -7,19 +7,19 @@ const u8 gDummyPokedexText[] = _(
const u8 gBulbasaurPokedexText[] = _(
"BULBASAUR can be seen napping in bright\n"
"sunlight. There is a seed on its back.\n"
"By soaking up the suns rays, the seed\n"
"By soaking up the sun's rays, the seed\n"
"grows progressively larger.");
const u8 gIvysaurPokedexText[] = _(
"To support its bulb, IVYSAURs legs\n"
"To support its bulb, IVYSAUR's legs\n"
"grow sturdy. If it spends more time lying in\n"
"the sunlight, the bud will soon bloom into\n"
"a large flower.");
const u8 gVenusaurPokedexText[] = _(
"VENUSAURs flower is said to take on vivid\n"
"VENUSAUR's flower is said to take on vivid\n"
"colors if it gets plenty of nutrition and\n"
"sunlight. The flowers aroma soothes the\n"
"sunlight. The flower's aroma soothes the\n"
"emotions of people.");
const u8 gCharmanderPokedexText[] = _(
@@ -50,7 +50,7 @@ const u8 gWartortlePokedexText[] = _(
"Its large tail is covered with rich, thick\n"
"fur that deepens in color with age.\n"
"The scratches on its shell are evidence\n"
"of this POKéMONs toughness in battle.");
"of this POKéMON's toughness in battle.");
const u8 gBlastoisePokedexText[] = _(
"The waterspouts that protrude from its\n"
@@ -119,7 +119,7 @@ const u8 gRattataPokedexText[] = _(
"It will make its nest anywhere.");
const u8 gRaticatePokedexText[] = _(
"A RATICATEs sturdy fangs grow steadily.\n"
"A RATICATE's sturdy fangs grow steadily.\n"
"To keep them ground down, it gnaws on\n"
"rocks and logs. It may even chew on the\n"
"walls of houses.");
@@ -194,7 +194,7 @@ const u8 gNidoranMPokedexText[] = _(
"The male NIDORAN has developed muscles\n"
"that freely move its ears in any direction.\n"
"Even the slightest sound does not escape\n"
"this POKéMONs notice.");
"this POKéMON's notice.");
const u8 gNidorinoPokedexText[] = _(
"Its horn is harder than a diamond.\n"
@@ -203,7 +203,7 @@ const u8 gNidorinoPokedexText[] = _(
"challenges the foe with all its might.");
const u8 gNidokingPokedexText[] = _(
"A NIDOKINGs thick tail packs enormously\n"
"A NIDOKING's thick tail packs enormously\n"
"destructive power capable of toppling\n"
"a metal transmission tower. Once it goes\n"
"on a rampage, there is no stopping it.");
@@ -222,7 +222,7 @@ const u8 gClefablePokedexText[] = _(
const u8 gVulpixPokedexText[] = _(
"It can freely control fire, making fiery\n"
"orbs fly like will-o-the-wisps. Just\n"
"orbs fly like will-o'-the-wisps. Just\n"
"before evolution, its six tails grow hot \n"
"as if on fire.");
@@ -234,7 +234,7 @@ const u8 gNinetalesPokedexText[] = _(
const u8 gJigglypuffPokedexText[] = _(
"Nothing can avoid falling asleep hearing a\n"
"JIGGLYPUFFs song. The sound waves of its\n"
"JIGGLYPUFF's song. The sound waves of its\n"
"singing voice match the brain waves of\n"
"someone in a deep sleep.");
@@ -317,7 +317,7 @@ const u8 gMeowthPokedexText[] = _(
"shiny coins that glitter with light.");
const u8 gPersianPokedexText[] = _(
"A PERSIANs six bold whiskers sense air\n"
"A PERSIAN's six bold whiskers sense air\n"
"movements to determine what is in its\n"
"vicinity. It becomes docile if grabbed\n"
"by the whiskers.");
@@ -336,7 +336,7 @@ const u8 gGolduckPokedexText[] = _(
const u8 gMankeyPokedexText[] = _(
"When it starts shaking and its nasal\n"
"breathing turns rough, its a sure sign\n"
"breathing turns rough, it's a sure sign\n"
"of anger. However, since this happens\n"
"instantly, there is no time to flee.");
@@ -348,7 +348,7 @@ const u8 gPrimeapePokedexText[] = _(
const u8 gGrowlithePokedexText[] = _(
"Its superb sense of smell ensures that\n"
"this POKéMON wont forget any scent,\n"
"this POKéMON won't forget any scent,\n"
"no matter what. It uses its sense of smell\n"
"to detect the emotions of others.");
@@ -359,7 +359,7 @@ const u8 gArcaninePokedexText[] = _(
"is its source of power.");
const u8 gPoliwagPokedexText[] = _(
"It is possible to see this POKéMONs spiral\n"
"It is possible to see this POKéMON's spiral\n"
"innards right through its thin skin.\n"
"However, the skin is also very flexible.\n"
"Even sharp fangs bounce right off it.");
@@ -390,7 +390,7 @@ const u8 gKadabraPokedexText[] = _(
const u8 gAlakazamPokedexText[] = _(
"While it has strong psychic abilities and\n"
"high intelligence, an ALAKAZAMs muscles\n"
"high intelligence, an ALAKAZAM's muscles\n"
"are very weak. It uses psychic power to\n"
"move its body.");
@@ -413,7 +413,7 @@ const u8 gMachampPokedexText[] = _(
"a tough opponent.");
const u8 gBellsproutPokedexText[] = _(
"A BELLSPROUTs thin and flexible body lets\n"
"A BELLSPROUT's thin and flexible body lets\n"
"it bend and sway to avoid any attack,\n"
"however strong it may be. From its mouth,\n"
"it leaks a fluid that melts even iron.");
@@ -476,11 +476,11 @@ const u8 gSlowpokePokedexText[] = _(
"It catches prey by dipping its tail in\n"
"water at the side of a river. But it often\n"
"forgets what it is doing and spends entire\n"
"days just loafing at waters edge.");
"days just loafing at water's edge.");
const u8 gSlowbroPokedexText[] = _(
"Its tail has a SHELLDER firmly attached\n"
"with a bite. As a result, the tail cant be\n"
"with a bite. As a result, the tail can't be\n"
"used for fishing anymore. This forces it\n"
"to reluctantly swim and catch prey.");
@@ -528,7 +528,7 @@ const u8 gDewgongPokedexText[] = _(
const u8 gGrimerPokedexText[] = _(
"Born from polluted sludge in the sea,\n"
"GRIMERs favorite food is anything filthy.\n"
"GRIMER's favorite food is anything filthy.\n"
"They feed on wastewater pumped out from\n"
"factories.");
@@ -551,14 +551,14 @@ const u8 gCloysterPokedexText[] = _(
"shell using the same system.");
const u8 gGastlyPokedexText[] = _(
"When exposed to a strong wind, a GASTLYs\n"
"When exposed to a strong wind, a GASTLY's\n"
"gaseous body quickly dwindles away.\n"
"They cluster under the eaves of houses\n"
"to escape the ravages of wind.");
const u8 gHaunterPokedexText[] = _(
"If a HAUNTER beckons you while it is\n"
"floating in darkness, dont approach it.\n"
"floating in darkness, don't approach it.\n"
"This POKéMON will try to lick you with its\n"
"tongue and steal your life away.");
@@ -576,13 +576,13 @@ const u8 gOnixPokedexText[] = _(
const u8 gDrowzeePokedexText[] = _(
"If your nose becomes itchy while you are\n"
"sleeping, its a sure sign that a DROWZEE is\n"
"sleeping, it's a sure sign that a DROWZEE is\n"
"standing above your pillow and trying to\n"
"eat your dream through your nostrils.");
const u8 gHypnoPokedexText[] = _(
"The arcing movement and glitter of the\n"
"pendulum in a HYPNOs hand lull the foe\n"
"pendulum in a HYPNO's hand lull the foe\n"
"into deep hypnosis. While searching for\n"
"prey, it polishes the pendulum.");
@@ -617,7 +617,7 @@ const u8 gExeggcutePokedexText[] = _(
"appear, it is close to evolution.");
const u8 gExeggutorPokedexText[] = _(
"Originally from the tropics, EXEGGUTORs\n"
"Originally from the tropics, EXEGGUTOR's\n"
"heads grow larger from exposure to strong\n"
"sunlight. It is said that when the heads\n"
"fall, they group to form an EXEGGCUTE.");
@@ -665,9 +665,9 @@ const u8 gWeezingPokedexText[] = _(
"from garbage are the ultimate feast.");
const u8 gRhyhornPokedexText[] = _(
"Once it starts running, it doesnt stop.\n"
"Once it starts running, it doesn't stop.\n"
"Its tiny brain makes it so stupid that it\n"
"cant remember why it started running in\n"
"can't remember why it started running in\n"
"the first place.");
const u8 gRhydonPokedexText[] = _(
@@ -691,7 +691,7 @@ const u8 gTangelaPokedexText[] = _(
const u8 gKangaskhanPokedexText[] = _(
"If you come across a young KANGASKHAN\n"
"playing by itself, never try to catch it.\n"
"The babys parent is sure to be in the area,\n"
"The baby's parent is sure to be in the area,\n"
"and it will become violently enraged.");
const u8 gHorseaPokedexText[] = _(
@@ -810,12 +810,12 @@ const u8 gVaporeonPokedexText[] = _(
const u8 gJolteonPokedexText[] = _(
"Its cells generate weak power that is\n"
"amplified by its furs static electricity\n"
"amplified by its fur's static electricity\n"
"to drop thunderbolts. The bristling fur is\n"
"made of electrically charged needles.");
const u8 gFlareonPokedexText[] = _(
"FLAREONs fluffy fur releases heat into\n"
"FLAREON's fluffy fur releases heat into\n"
"the air so that its body does not get\n"
"excessively hot. Its body temperature can\n"
"rise to a maximum of 1,650 degrees F.");
@@ -857,7 +857,7 @@ const u8 gAerodactylPokedexText[] = _(
"have been the king of the skies.");
const u8 gSnorlaxPokedexText[] = _(
"SNORLAXs typical day consists of nothing\n"
"SNORLAX's typical day consists of nothing\n"
"more than eating and sleeping. It is such\n"
"a docile POKéMON that there are children\n"
"who use its big belly as a place to play.");
@@ -917,16 +917,16 @@ const u8 gChikoritaPokedexText[] = _(
"atmosphere that becalms the battlers.");
const u8 gBayleefPokedexText[] = _(
"A BAYLEEFs neck is ringed by curled-up\n"
"A BAYLEEF's neck is ringed by curled-up\n"
"leaves. Inside each leaf is a small tree\n"
"shoot. The fragrance of this shoot\n"
"makes people peppy.");
const u8 gMeganiumPokedexText[] = _(
"The fragrance of a MEGANIUMs flower\n"
"The fragrance of a MEGANIUM's flower\n"
"soothes and calms emotions. In battle,\n"
"it gives off more of its becalming scent\n"
"to blunt the foes fighting spirit.");
"to blunt the foe's fighting spirit.");
const u8 gCyndaquilPokedexText[] = _(
"It flares flames from its back to protect\n"
@@ -947,7 +947,7 @@ const u8 gTyphlosionPokedexText[] = _(
"blasts that burn everything to cinders.");
const u8 gTotodilePokedexText[] = _(
"Despite its small body, TOTODILEs jaws\n"
"Despite its small body, TOTODILE's jaws\n"
"are very powerful. While it may think it is\n"
"just playfully nipping, its bite has enough\n"
"strength to cause serious injury.");
@@ -978,7 +978,7 @@ const u8 gFurretPokedexText[] = _(
const u8 gHoothootPokedexText[] = _(
"It has an internal organ that senses\n"
"the earths rotation. Using this special\n"
"the earth's rotation. Using this special\n"
"organ, a HOOTHOOT begins hooting at\n"
"precisely the same time every day.");
@@ -992,7 +992,7 @@ const u8 gLedybaPokedexText[] = _(
"LEDYBA communicate using a fluid that\n"
"they secrete from where the legs join the\n"
"body. They are said to convey feelings to\n"
"others by altering the fluids scent.");
"others by altering the fluid's scent.");
const u8 gLedianPokedexText[] = _(
"It is said that in lands with clean air,\n"
@@ -1022,7 +1022,7 @@ const u8 gChinchouPokedexText[] = _(
"When it senses danger, it discharges\n"
"positive and negative electricity from its\n"
"two antennae. It lives in depths beyond\n"
"sunlights reach.");
"sunlight's reach.");
const u8 gLanturnPokedexText[] = _(
"The light-emitting orbs on its back are\n"
@@ -1063,7 +1063,7 @@ const u8 gTogeticPokedexText[] = _(
const u8 gNatuPokedexText[] = _(
"It runs up short trees that grow on the\n"
"savanna to peck at new shoots.\n"
"A NATUs eyes look as if they are\n"
"A NATU's eyes look as if they are\n"
"always observing something.");
const u8 gXatuPokedexText[] = _(
@@ -1100,7 +1100,7 @@ const u8 gMarillPokedexText[] = _(
"Its body is covered with water-repellent\n"
"fur. Because of the fur, it can swim\n"
"through water at high speed without being\n"
"slowed by the waters resistance.");
"slowed by the water's resistance.");
const u8 gAzumarillPokedexText[] = _(
"It lives in water virtually all day long.\n"
@@ -1128,7 +1128,7 @@ const u8 gHoppipPokedexText[] = _(
const u8 gSkiploomPokedexText[] = _(
"It blossoms when the temperature rises\n"
"above 64 degrees F. Because its flowers\n"
"above 64 degrees F. Because its flower's\n"
"blooming changes with the temperature,\n"
"it is sometimes used as a thermometer.");
@@ -1141,7 +1141,7 @@ const u8 gJumpluffPokedexText[] = _(
const u8 gAipomPokedexText[] = _(
"Its tail ends with a dexterous, handlike\n"
"appendage. However, because it uses the\n"
"tail so much, AIPOMs real hands have\n"
"tail so much, AIPOM's real hands have\n"
"become rather clumsy.");
const u8 gSunkernPokedexText[] = _(
@@ -1171,7 +1171,7 @@ const u8 gWooperPokedexText[] = _(
const u8 gQuagsirePokedexText[] = _(
"A QUAGSIRE hunts by leaving its mouth wide\n"
"open in water and waiting for its prey to\n"
"blunder in. Because it doesnt move, it\n"
"blunder in. Because it doesn't move, it\n"
"does not get very hungry.");
const u8 gEspeonPokedexText[] = _(
@@ -1182,7 +1182,7 @@ const u8 gEspeonPokedexText[] = _(
const u8 gUmbreonPokedexText[] = _(
"UMBREON evolved from exposure to the\n"
"moons energy pulses. It lurks in darkness\n"
"moon's energy pulses. It lurks in darkness\n"
"and waits for its foes to move. The rings\n"
"on its body glow when it leaps to attack.");
@@ -1231,7 +1231,7 @@ const u8 gPinecoPokedexText[] = _(
const u8 gForretressPokedexText[] = _(
"It keeps itself inside its steel shell.\n"
"The shell is opened when it is catching\n"
"prey, but it is so quick that the shells\n"
"prey, but it is so quick that the shell's\n"
"inside cannot be seen.");
const u8 gDunsparcePokedexText[] = _(
@@ -1249,7 +1249,7 @@ const u8 gGligarPokedexText[] = _(
const u8 gSteelixPokedexText[] = _(
"STEELIX live even further underground\n"
"than ONIX. This POKéMON is known to dig\n"
"toward the earths core, reaching a depth\n"
"toward the earth's core, reaching a depth\n"
"of over six-tenths of a mile underground.");
const u8 gSnubbullPokedexText[] = _(
@@ -1316,7 +1316,7 @@ const u8 gMagcargoPokedexText[] = _(
"The shell on its back is made of hardened\n"
"magma. Tens of thousands of years spent\n"
"living in volcanic craters have turned\n"
"MAGCARGOs bodies into magma.");
"MAGCARGO's bodies into magma.");
const u8 gSwinubPokedexText[] = _(
"It roots for food by rubbing its snout\n"
@@ -1369,7 +1369,7 @@ const u8 gSkarmoryPokedexText[] = _(
const u8 gHoundourPokedexText[] = _(
"HOUNDOUR communicate with each other\n"
"using a variety of cries to corner their\n"
"prey. This POKéMONs remarkable teamwork\n"
"prey. This POKéMON's remarkable teamwork\n"
"is simply unparalleled.");
const u8 gHoundoomPokedexText[] = _(
@@ -1385,7 +1385,7 @@ const u8 gKingdraPokedexText[] = _(
"even ships.");
const u8 gPhanpyPokedexText[] = _(
"PHANPYs big ears serve as broad fans.\n"
"PHANPY's big ears serve as broad fans.\n"
"When it becomes hot, it flaps the ears\n"
"busily to cool down. Even the young are\n"
"very strong.");
@@ -1394,7 +1394,7 @@ const u8 gDonphanPokedexText[] = _(
"A DONPHAN is so strong it can easily haul\n"
"a dump truck. Its hide has toughened to a\n"
"rock-hard state. An ordinary sort of\n"
"attack wont even leave a scratch.");
"attack won't even leave a scratch.");
const u8 gPorygon2PokedexText[] = _(
"It was created by humans using the power\n"
@@ -1403,7 +1403,7 @@ const u8 gPorygon2PokedexText[] = _(
"gestures and emotions on its own.");
const u8 gStantlerPokedexText[] = _(
"STANTLERs magnificent antlers were\n"
"STANTLER's magnificent antlers were\n"
"once traded at high prices as works of art.\n"
"As a result, this POKéMON was hunted\n"
"close to extinction.");
@@ -1429,8 +1429,8 @@ const u8 gHitmontopPokedexText[] = _(
const u8 gSmoochumPokedexText[] = _(
"It actively runs about, but also falls\n"
"often. Whenever it falls, it will check its\n"
"reflection on a lakes surface to make\n"
"sure its face hasnt become dirty.");
"reflection on a lake's surface to make\n"
"sure its face hasn't become dirty.");
const u8 gElekidPokedexText[] = _(
"If it touches metal and discharges the\n"
@@ -1447,7 +1447,7 @@ const u8 gMagbyPokedexText[] = _(
const u8 gMiltankPokedexText[] = _(
"It gives over five gallons of milk daily.\n"
"Its sweet milk is enjoyed by children and\n"
"grown-ups alike. People who cant drink\n"
"grown-ups alike. People who can't drink\n"
"milk turn it into yogurt and eat it instead.");
const u8 gBlisseyPokedexText[] = _(
@@ -1478,7 +1478,7 @@ const u8 gLarvitarPokedexText[] = _(
"A LARVITAR is born deep under the ground.\n"
"It must eat its way through the soil above\n"
"and reach the surface for it to see its\n"
"parents faces.");
"parents' faces.");
const u8 gPupitarPokedexText[] = _(
"A PUPITAR creates a gas inside its body\n"
@@ -1514,10 +1514,10 @@ const u8 gTreeckoPokedexText[] = _(
"It makes its nest in a giant tree in the\n"
"forest. It ferociously guards against\n"
"anything nearing its territory. It is said\n"
"to be the protector of the forests trees.");
"to be the protector of the forest's trees.");
const u8 gGrovylePokedexText[] = _(
"Leaves grow out of this POKéMONs body.\n"
"Leaves grow out of this POKéMON's body.\n"
"They help obscure a GROVYLE from the eyes\n"
"of its enemies while it is in a thickly\n"
"overgrown forest.");
@@ -1532,7 +1532,7 @@ const u8 gTorchicPokedexText[] = _(
"If attacked, it strikes back by spitting\n"
"balls of fire it forms in its stomach.\n"
"A TORCHIC dislikes darkness because it\n"
"cant see its surroundings.");
"can't see its surroundings.");
const u8 gCombuskenPokedexText[] = _(
"It lashes out with 10 kicks per second.\n"
@@ -1550,7 +1550,7 @@ const u8 gMudkipPokedexText[] = _(
"On land, it can powerfully lift large\n"
"boulders by planting its four feet and\n"
"heaving. It sleeps by burying itself in soil\n"
"at the waters edge.");
"at the water's edge.");
const u8 gMarshtompPokedexText[] = _(
"Its toughened hind legs enable it to stand\n"
@@ -1572,7 +1572,7 @@ const u8 gPoochyenaPokedexText[] = _(
const u8 gMightyenaPokedexText[] = _(
"In the wild, MIGHTYENA live in a pack.\n"
"They never defy their leaders orders.\n"
"They never defy their leader's orders.\n"
"They defeat foes with perfectly\n"
"coordinated teamwork.");
@@ -1704,7 +1704,7 @@ const u8 gSurskitPokedexText[] = _(
const u8 gMasquerainPokedexText[] = _(
"It intimidates foes with the large eyelike\n"
"patterns on its antennae. Because it cant\n"
"patterns on its antennae. Because it can't\n"
"fly if its wings get wet, it shelters itself\n"
"from rain under large trees and eaves.");
@@ -1722,15 +1722,15 @@ const u8 gBreloomPokedexText[] = _(
const u8 gSlakothPokedexText[] = _(
"It sleeps virtually all day and night long.\n"
"It doesnt change its nest its entire life,\n"
"It doesn't change its nest its entire life,\n"
"but it sometimes travels great distances\n"
"by swimming in rivers.");
const u8 gVigorothPokedexText[] = _(
"It cant keep still because its blood boils\n"
"It can't keep still because its blood boils\n"
"with energy. It runs through the fields\n"
"and mountains all day to calm itself. If it\n"
"doesnt, it cant sleep at night.");
"doesn't, it can't sleep at night.");
const u8 gSlakingPokedexText[] = _(
"Hordes of SLAKING gather around trees\n"
@@ -1783,7 +1783,7 @@ const u8 gMakuhitaPokedexText[] = _(
const u8 gHariyamaPokedexText[] = _(
"It has the habit of challenging others\n"
"without hesitation to tests of strength.\n"
"Its been known to stand on train tracks\n"
"It's been known to stand on train tracks\n"
"and stop trains using forearm thrusts.");
const u8 gAzurillPokedexText[] = _(
@@ -1799,7 +1799,7 @@ const u8 gNosepassPokedexText[] = _(
"seasons.");
const u8 gSkittyPokedexText[] = _(
"A SKITTYs adorably cute behavior makes it\n"
"A SKITTY's adorably cute behavior makes it\n"
"highly popular. In battle, it makes its tail\n"
"puff out. It threatens foes with a sharp\n"
"growl.");
@@ -1837,7 +1837,7 @@ const u8 gLaironPokedexText[] = _(
const u8 gAggronPokedexText[] = _(
"Its iron horns grow longer a little at\n"
"a time. They are used to determine the\n"
"AGGRONs age. The gouges in its armor are\n"
"AGGRON's age. The gouges in its armor are\n"
"worn with pride as mementos from battles.");
const u8 gMedititePokedexText[] = _(
@@ -1848,7 +1848,7 @@ const u8 gMedititePokedexText[] = _(
const u8 gMedichamPokedexText[] = _(
"Through crushingly harsh yoga training, it\n"
"gained the power to foretell its foes\n"
"gained the power to foretell its foe's\n"
"actions. It battles with elegant, dance-\n"
"like movement.");
@@ -1895,7 +1895,7 @@ const u8 gRoseliaPokedexText[] = _(
"effect of making its foes careless.");
const u8 gGulpinPokedexText[] = _(
"This POKéMONs stomach fluid can even\n"
"This POKéMON's stomach fluid can even\n"
"digest scrap iron. In one gulp, it can\n"
"swallow something that is as large as\n"
"itself.");
@@ -1903,7 +1903,7 @@ const u8 gGulpinPokedexText[] = _(
const u8 gSwalotPokedexText[] = _(
"Its powerful stomach acid is capable of\n"
"digesting almost anything. The one thing\n"
"in the whole world a SWALOT cant digest is\n"
"in the whole world a SWALOT can't digest is\n"
"its own stomach.");
const u8 gCarvanhaPokedexText[] = _(
@@ -1946,11 +1946,11 @@ const u8 gTorkoalPokedexText[] = _(
"It battles using energy it gets from\n"
"burning coal. When loosing smoke from its\n"
"nostrils, it lets off a sound that is\n"
"similar to a locomotives horn.");
"similar to a locomotive's horn.");
const u8 gSpoinkPokedexText[] = _(
"A POKéMON that manipulates psychic power\n"
"at will. It doesnt stop bouncing even when\n"
"at will. It doesn't stop bouncing even when\n"
"it is asleep. It loves eating mushrooms\n"
"that grow underground.");
@@ -1964,7 +1964,7 @@ const u8 gSpindaPokedexText[] = _(
"It is distinguished by a pattern of\n"
"spots that is always different. Its\n"
"unsteady, tottering walk has the\n"
"effect of fouling its foes aim.");
"effect of fouling its foe's aim.");
const u8 gTrapinchPokedexText[] = _(
"Its big jaws crunch through boulders.\n"
@@ -1974,7 +1974,7 @@ const u8 gTrapinchPokedexText[] = _(
const u8 gVibravaPokedexText[] = _(
"It looses ultrasonic waves by rubbing its\n"
"wings together. Since a VIBRAVAs wings\n"
"wings together. Since a VIBRAVA's wings\n"
"are still in the process of growing, it can\n"
"only fly short distances.");
@@ -2016,7 +2016,7 @@ const u8 gZangoosePokedexText[] = _(
const u8 gSeviperPokedexText[] = _(
"SEVIPER and ZANGOOSE are eternal rivals.\n"
"It counters a ZANGOOSEs dazzling agility\n"
"It counters a ZANGOOSE's dazzling agility\n"
"with its swordlike tail, which also oozes\n"
"a horrible poison.");
@@ -2028,7 +2028,7 @@ const u8 gLunatonePokedexText[] = _(
const u8 gSolrockPokedexText[] = _(
"Solar energy is the source of this \n"
"POKéMONs power. On sunny days, groups of\n"
"POKéMON's power. On sunny days, groups of\n"
"SOLROCK line up facing the sun and absorb\n"
"its light.");
@@ -2036,7 +2036,7 @@ const u8 gBarboachPokedexText[] = _(
"Its body is covered with a slimy film.\n"
"The film acts as a barrier to prevent germs\n"
"in muddy water from entering the\n"
"BARBOACHs body.");
"BARBOACH's body.");
const u8 gWhiscashPokedexText[] = _(
"Mysteriously, it can foretell earthquakes.\n"
@@ -2065,7 +2065,7 @@ const u8 gBaltoyPokedexText[] = _(
const u8 gClaydolPokedexText[] = _(
"A CLAYDOL sleeps while hovering in midair.\n"
"Its arms are separate from its body.\n"
"They are kept floating by the POKéMONs\n"
"They are kept floating by the POKéMON's\n"
"manipulation of psychic power.");
const u8 gLileepPokedexText[] = _(
@@ -2222,7 +2222,7 @@ const u8 gLuvdiscPokedexText[] = _(
"LUVDISC make the branches of CORSOLA\n"
"their nests. There is a custom from long\n"
"ago of giving a LUVDISC as a gift to\n"
"express ones feelings of love.");
"express one's feelings of love.");
const u8 gBagonPokedexText[] = _(
"Although it is small, this POKéMON is very\n"
File diff suppressed because it is too large Load Diff
+414 -412
View File
@@ -1,417 +1,419 @@
#include "constants/species.h"
// This determines how much higher above the usual position the enemy Pokémon
// is during battle. Species that float or fly have nonzero values.
const u8 gEnemyMonElevation[] =
{
0, // 0
0, // SPECIES_BULBASAUR
0, // SPECIES_IVYSAUR
0, // SPECIES_VENUSAUR
0, // SPECIES_CHARMANDER
0, // SPECIES_CHARMELEON
0, // SPECIES_CHARIZARD
0, // SPECIES_SQUIRTLE
0, // SPECIES_WARTORTLE
0, // SPECIES_BLASTOISE
0, // SPECIES_CATERPIE
0, // SPECIES_METAPOD
8, // SPECIES_BUTTERFREE
0, // SPECIES_WEEDLE
0, // SPECIES_KAKUNA
8, // SPECIES_BEEDRILL
16, // SPECIES_PIDGEY
0, // SPECIES_PIDGEOTTO
4, // SPECIES_PIDGEOT
0, // SPECIES_RATTATA
0, // SPECIES_RATICATE
0, // SPECIES_SPEAROW
6, // SPECIES_FEAROW
0, // SPECIES_EKANS
0, // SPECIES_ARBOK
0, // SPECIES_PIKACHU
0, // SPECIES_RAICHU
0, // SPECIES_SANDSHREW
0, // SPECIES_SANDSLASH
0, // SPECIES_NIDORAN_F
0, // SPECIES_NIDORINA
0, // SPECIES_NIDOQUEEN
0, // SPECIES_NIDORAN_M
0, // SPECIES_NIDORINO
0, // SPECIES_NIDOKING
0, // SPECIES_CLEFAIRY
0, // SPECIES_CLEFABLE
0, // SPECIES_VULPIX
0, // SPECIES_NINETALES
0, // SPECIES_JIGGLYPUFF
0, // SPECIES_WIGGLYTUFF
8, // SPECIES_ZUBAT
8, // SPECIES_GOLBAT
0, // SPECIES_ODDISH
0, // SPECIES_GLOOM
0, // SPECIES_VILEPLUME
0, // SPECIES_PARAS
0, // SPECIES_PARASECT
0, // SPECIES_VENONAT
8, // SPECIES_VENOMOTH
0, // SPECIES_DIGLETT
0, // SPECIES_DUGTRIO
0, // SPECIES_MEOWTH
0, // SPECIES_PERSIAN
0, // SPECIES_PSYDUCK
0, // SPECIES_GOLDUCK
0, // SPECIES_MANKEY
0, // SPECIES_PRIMEAPE
0, // SPECIES_GROWLITHE
0, // SPECIES_ARCANINE
0, // SPECIES_POLIWAG
0, // SPECIES_POLIWHIRL
0, // SPECIES_POLIWRATH
0, // SPECIES_ABRA
0, // SPECIES_KADABRA
0, // SPECIES_ALAKAZAM
0, // SPECIES_MACHOP
0, // SPECIES_MACHOKE
0, // SPECIES_MACHAMP
0, // SPECIES_BELLSPROUT
0, // SPECIES_WEEPINBELL
0, // SPECIES_VICTREEBEL
0, // SPECIES_TENTACOOL
0, // SPECIES_TENTACRUEL
16, // SPECIES_GEODUDE
0, // SPECIES_GRAVELER
0, // SPECIES_GOLEM
0, // SPECIES_PONYTA
0, // SPECIES_RAPIDASH
0, // SPECIES_SLOWPOKE
0, // SPECIES_SLOWBRO
16, // SPECIES_MAGNEMITE
8, // SPECIES_MAGNETON
0, // SPECIES_FARFETCHD
0, // SPECIES_DODUO
0, // SPECIES_DODRIO
0, // SPECIES_SEEL
0, // SPECIES_DEWGONG
0, // SPECIES_GRIMER
0, // SPECIES_MUK
0, // SPECIES_SHELLDER
0, // SPECIES_CLOYSTER
4, // SPECIES_GASTLY
4, // SPECIES_HAUNTER
0, // SPECIES_GENGAR
0, // SPECIES_ONIX
0, // SPECIES_DROWZEE
0, // SPECIES_HYPNO
0, // SPECIES_KRABBY
0, // SPECIES_KINGLER
10, // SPECIES_VOLTORB
12, // SPECIES_ELECTRODE
0, // SPECIES_EXEGGCUTE
0, // SPECIES_EXEGGUTOR
0, // SPECIES_CUBONE
0, // SPECIES_MAROWAK
0, // SPECIES_HITMONLEE
0, // SPECIES_HITMONCHAN
0, // SPECIES_LICKITUNG
8, // SPECIES_KOFFING
6, // SPECIES_WEEZING
0, // SPECIES_RHYHORN
0, // SPECIES_RHYDON
0, // SPECIES_CHANSEY
0, // SPECIES_TANGELA
0, // SPECIES_KANGASKHAN
0, // SPECIES_HORSEA
0, // SPECIES_SEADRA
0, // SPECIES_GOLDEEN
0, // SPECIES_SEAKING
0, // SPECIES_STARYU
0, // SPECIES_STARMIE
0, // SPECIES_MR_MIME
0, // SPECIES_SCYTHER
0, // SPECIES_JYNX
0, // SPECIES_ELECTABUZZ
0, // SPECIES_MAGMAR
0, // SPECIES_PINSIR
0, // SPECIES_TAUROS
0, // SPECIES_MAGIKARP
0, // SPECIES_GYARADOS
0, // SPECIES_LAPRAS
0, // SPECIES_DITTO
0, // SPECIES_EEVEE
0, // SPECIES_VAPOREON
0, // SPECIES_JOLTEON
0, // SPECIES_FLAREON
0, // SPECIES_PORYGON
0, // SPECIES_OMANYTE
0, // SPECIES_OMASTAR
0, // SPECIES_KABUTO
0, // SPECIES_KABUTOPS
7, // SPECIES_AERODACTYL
0, // SPECIES_SNORLAX
6, // SPECIES_ARTICUNO
8, // SPECIES_ZAPDOS
5, // SPECIES_MOLTRES
0, // SPECIES_DRATINI
0, // SPECIES_DRAGONAIR
6, // SPECIES_DRAGONITE
0, // SPECIES_MEWTWO
8, // SPECIES_MEW
0, // SPECIES_CHIKORITA
0, // SPECIES_BAYLEEF
0, // SPECIES_MEGANIUM
0, // SPECIES_CYNDAQUIL
0, // SPECIES_QUILAVA
0, // SPECIES_TYPHLOSION
0, // SPECIES_TOTODILE
0, // SPECIES_CROCONAW
0, // SPECIES_FERALIGATR
0, // SPECIES_SENTRET
0, // SPECIES_FURRET
0, // SPECIES_HOOTHOOT
0, // SPECIES_NOCTOWL
0, // SPECIES_LEDYBA
8, // SPECIES_LEDIAN
0, // SPECIES_SPINARAK
0, // SPECIES_ARIADOS
6, // SPECIES_CROBAT
0, // SPECIES_CHINCHOU
0, // SPECIES_LANTURN
0, // SPECIES_PICHU
0, // SPECIES_CLEFFA
0, // SPECIES_IGGLYBUFF
0, // SPECIES_TOGEPI
0, // SPECIES_TOGETIC
0, // SPECIES_NATU
0, // SPECIES_XATU
0, // SPECIES_MAREEP
0, // SPECIES_FLAAFFY
0, // SPECIES_AMPHAROS
0, // SPECIES_BELLOSSOM
0, // SPECIES_MARILL
0, // SPECIES_AZUMARILL
0, // SPECIES_SUDOWOODO
0, // SPECIES_POLITOED
11, // SPECIES_HOPPIP
12, // SPECIES_SKIPLOOM
9, // SPECIES_JUMPLUFF
0, // SPECIES_AIPOM
0, // SPECIES_SUNKERN
0, // SPECIES_SUNFLORA
8, // SPECIES_YANMA
0, // SPECIES_WOOPER
0, // SPECIES_QUAGSIRE
0, // SPECIES_ESPEON
0, // SPECIES_UMBREON
0, // SPECIES_MURKROW
0, // SPECIES_SLOWKING
8, // SPECIES_MISDREAVUS
8, // SPECIES_UNOWN
0, // SPECIES_WOBBUFFET
0, // SPECIES_GIRAFARIG
0, // SPECIES_PINECO
0, // SPECIES_FORRETRESS
0, // SPECIES_DUNSPARCE
6, // SPECIES_GLIGAR
0, // SPECIES_STEELIX
0, // SPECIES_SNUBBULL
0, // SPECIES_GRANBULL
0, // SPECIES_QWILFISH
0, // SPECIES_SCIZOR
0, // SPECIES_SHUCKLE
0, // SPECIES_HERACROSS
0, // SPECIES_SNEASEL
0, // SPECIES_TEDDIURSA
0, // SPECIES_URSARING
0, // SPECIES_SLUGMA
0, // SPECIES_MAGCARGO
0, // SPECIES_SWINUB
0, // SPECIES_PILOSWINE
0, // SPECIES_CORSOLA
0, // SPECIES_REMORAID
0, // SPECIES_OCTILLERY
0, // SPECIES_DELIBIRD
0, // SPECIES_MANTINE
0, // SPECIES_SKARMORY
0, // SPECIES_HOUNDOUR
0, // SPECIES_HOUNDOOM
0, // SPECIES_KINGDRA
0, // SPECIES_PHANPY
0, // SPECIES_DONPHAN
0, // SPECIES_PORYGON2
0, // SPECIES_STANTLER
0, // SPECIES_SMEARGLE
0, // SPECIES_TYROGUE
0, // SPECIES_HITMONTOP
0, // SPECIES_SMOOCHUM
0, // SPECIES_ELEKID
0, // SPECIES_MAGBY
0, // SPECIES_MILTANK
0, // SPECIES_BLISSEY
0, // SPECIES_RAIKOU
0, // SPECIES_ENTEI
0, // SPECIES_SUICUNE
0, // SPECIES_LARVITAR
0, // SPECIES_PUPITAR
0, // SPECIES_TYRANITAR
6, // SPECIES_LUGIA
6, // SPECIES_HO_OH
15, // SPECIES_CELEBI
0, // 252
0, // 253
0, // 254
0, // 255
0, // 256
0, // 257
0, // 258
0, // 259
0, // 260
0, // 261
0, // 262
0, // 263
0, // 264
0, // 265
0, // 266
0, // 267
0, // 268
0, // 269
0, // 270
0, // 271
0, // 272
0, // 273
0, // 274
0, // 275
0, // 276
0, // SPECIES_TREECKO
0, // SPECIES_GROVYLE
0, // SPECIES_SCEPTILE
0, // SPECIES_TORCHIC
0, // SPECIES_COMBUSKEN
0, // SPECIES_BLAZIKEN
0, // SPECIES_MUDKIP
0, // SPECIES_MARSHTOMP
0, // SPECIES_SWAMPERT
0, // SPECIES_POOCHYENA
0, // SPECIES_MIGHTYENA
0, // SPECIES_ZIGZAGOON
0, // SPECIES_LINOONE
0, // SPECIES_WURMPLE
0, // SPECIES_SILCOON
8, // SPECIES_BEAUTIFLY
0, // SPECIES_CASCOON
10, // SPECIES_DUSTOX
0, // SPECIES_LOTAD
0, // SPECIES_LOMBRE
0, // SPECIES_LUDICOLO
0, // SPECIES_SEEDOT
0, // SPECIES_NUZLEAF
0, // SPECIES_SHIFTRY
0, // SPECIES_NINCADA
10, // SPECIES_NINJASK
8, // SPECIES_SHEDINJA
0, // SPECIES_TAILLOW
0, // SPECIES_SWELLOW
0, // SPECIES_SHROOMISH
0, // SPECIES_BRELOOM
0, // SPECIES_SPINDA
16, // SPECIES_WINGULL
8, // SPECIES_PELIPPER
0, // SPECIES_SURSKIT
10, // SPECIES_MASQUERAIN
0, // SPECIES_WAILMER
0, // SPECIES_WAILORD
0, // SPECIES_SKITTY
0, // SPECIES_DELCATTY
0, // SPECIES_KECLEON
4, // SPECIES_BALTOY
10, // SPECIES_CLAYDOL
0, // SPECIES_NOSEPASS
0, // SPECIES_TORKOAL
0, // SPECIES_SABLEYE
0, // SPECIES_BARBOACH
0, // SPECIES_WHISCASH
0, // SPECIES_LUVDISC
0, // SPECIES_CORPHISH
0, // SPECIES_CRAWDAUNT
0, // SPECIES_FEEBAS
0, // SPECIES_MILOTIC
0, // SPECIES_CARVANHA
0, // SPECIES_SHARPEDO
0, // SPECIES_TRAPINCH
0, // SPECIES_VIBRAVA
7, // SPECIES_FLYGON
0, // SPECIES_MAKUHITA
0, // SPECIES_HARIYAMA
0, // SPECIES_ELECTRIKE
0, // SPECIES_MANECTRIC
0, // SPECIES_NUMEL
0, // SPECIES_CAMERUPT
0, // SPECIES_SPHEAL
0, // SPECIES_SEALEO
0, // SPECIES_WALREIN
0, // SPECIES_CACNEA
0, // SPECIES_CACTURNE
0, // SPECIES_SNORUNT
12, // SPECIES_GLALIE
13, // SPECIES_LUNATONE
4, // SPECIES_SOLROCK
0, // SPECIES_AZURILL
0, // SPECIES_SPOINK
0, // SPECIES_GRUMPIG
0, // SPECIES_PLUSLE
0, // SPECIES_MINUN
0, // SPECIES_MAWILE
0, // SPECIES_MEDITITE
0, // SPECIES_MEDICHAM
12, // SPECIES_SWABLU
8, // SPECIES_ALTARIA
0, // SPECIES_WYNAUT
9, // SPECIES_DUSKULL
0, // SPECIES_DUSCLOPS
0, // SPECIES_ROSELIA
0, // SPECIES_SLAKOTH
0, // SPECIES_VIGOROTH
0, // SPECIES_SLAKING
0, // SPECIES_GULPIN
0, // SPECIES_SWALOT
0, // SPECIES_TROPIUS
0, // SPECIES_WHISMUR
0, // SPECIES_LOUDRED
0, // SPECIES_EXPLOUD
0, // SPECIES_CLAMPERL
0, // SPECIES_HUNTAIL
0, // SPECIES_GOREBYSS
0, // SPECIES_ABSOL
12, // SPECIES_SHUPPET
8, // SPECIES_BANETTE
0, // SPECIES_SEVIPER
0, // SPECIES_ZANGOOSE
0, // SPECIES_RELICANTH
0, // SPECIES_ARON
0, // SPECIES_LAIRON
0, // SPECIES_AGGRON
16, // SPECIES_CASTFORM
0, // SPECIES_VOLBEAT
0, // SPECIES_ILLUMISE
0, // SPECIES_LILEEP
0, // SPECIES_CRADILY
0, // SPECIES_ANORITH
0, // SPECIES_ARMALDO
0, // SPECIES_RALTS
0, // SPECIES_KIRLIA
0, // SPECIES_GARDEVOIR
0, // SPECIES_BAGON
0, // SPECIES_SHELGON
0, // SPECIES_SALAMENCE
8, // SPECIES_BELDUM
0, // SPECIES_METANG
0, // SPECIES_METAGROSS
0, // SPECIES_REGIROCK
0, // SPECIES_REGICE
0, // SPECIES_REGISTEEL
0, // SPECIES_KYOGRE
0, // SPECIES_GROUDON
6, // SPECIES_RAYQUAZA
6, // SPECIES_LATIAS
6, // SPECIES_LATIOS
12, // SPECIES_JIRACHI
8, // SPECIES_DEOXYS
12, // SPECIES_CHIMECHO
[SPECIES_NONE] = 0,
[SPECIES_BULBASAUR] = 0,
[SPECIES_IVYSAUR] = 0,
[SPECIES_VENUSAUR] = 0,
[SPECIES_CHARMANDER] = 0,
[SPECIES_CHARMELEON] = 0,
[SPECIES_CHARIZARD] = 0,
[SPECIES_SQUIRTLE] = 0,
[SPECIES_WARTORTLE] = 0,
[SPECIES_BLASTOISE] = 0,
[SPECIES_CATERPIE] = 0,
[SPECIES_METAPOD] = 0,
[SPECIES_BUTTERFREE] = 8,
[SPECIES_WEEDLE] = 0,
[SPECIES_KAKUNA] = 0,
[SPECIES_BEEDRILL] = 8,
[SPECIES_PIDGEY] = 16,
[SPECIES_PIDGEOTTO] = 0,
[SPECIES_PIDGEOT] = 4,
[SPECIES_RATTATA] = 0,
[SPECIES_RATICATE] = 0,
[SPECIES_SPEAROW] = 0,
[SPECIES_FEAROW] = 6,
[SPECIES_EKANS] = 0,
[SPECIES_ARBOK] = 0,
[SPECIES_PIKACHU] = 0,
[SPECIES_RAICHU] = 0,
[SPECIES_SANDSHREW] = 0,
[SPECIES_SANDSLASH] = 0,
[SPECIES_NIDORAN_F] = 0,
[SPECIES_NIDORINA] = 0,
[SPECIES_NIDOQUEEN] = 0,
[SPECIES_NIDORAN_M] = 0,
[SPECIES_NIDORINO] = 0,
[SPECIES_NIDOKING] = 0,
[SPECIES_CLEFAIRY] = 0,
[SPECIES_CLEFABLE] = 0,
[SPECIES_VULPIX] = 0,
[SPECIES_NINETALES] = 0,
[SPECIES_JIGGLYPUFF] = 0,
[SPECIES_WIGGLYTUFF] = 0,
[SPECIES_ZUBAT] = 8,
[SPECIES_GOLBAT] = 8,
[SPECIES_ODDISH] = 0,
[SPECIES_GLOOM] = 0,
[SPECIES_VILEPLUME] = 0,
[SPECIES_PARAS] = 0,
[SPECIES_PARASECT] = 0,
[SPECIES_VENONAT] = 0,
[SPECIES_VENOMOTH] = 8,
[SPECIES_DIGLETT] = 0,
[SPECIES_DUGTRIO] = 0,
[SPECIES_MEOWTH] = 0,
[SPECIES_PERSIAN] = 0,
[SPECIES_PSYDUCK] = 0,
[SPECIES_GOLDUCK] = 0,
[SPECIES_MANKEY] = 0,
[SPECIES_PRIMEAPE] = 0,
[SPECIES_GROWLITHE] = 0,
[SPECIES_ARCANINE] = 0,
[SPECIES_POLIWAG] = 0,
[SPECIES_POLIWHIRL] = 0,
[SPECIES_POLIWRATH] = 0,
[SPECIES_ABRA] = 0,
[SPECIES_KADABRA] = 0,
[SPECIES_ALAKAZAM] = 0,
[SPECIES_MACHOP] = 0,
[SPECIES_MACHOKE] = 0,
[SPECIES_MACHAMP] = 0,
[SPECIES_BELLSPROUT] = 0,
[SPECIES_WEEPINBELL] = 0,
[SPECIES_VICTREEBEL] = 0,
[SPECIES_TENTACOOL] = 0,
[SPECIES_TENTACRUEL] = 0,
[SPECIES_GEODUDE] = 16,
[SPECIES_GRAVELER] = 0,
[SPECIES_GOLEM] = 0,
[SPECIES_PONYTA] = 0,
[SPECIES_RAPIDASH] = 0,
[SPECIES_SLOWPOKE] = 0,
[SPECIES_SLOWBRO] = 0,
[SPECIES_MAGNEMITE] = 16,
[SPECIES_MAGNETON] = 8,
[SPECIES_FARFETCHD] = 0,
[SPECIES_DODUO] = 0,
[SPECIES_DODRIO] = 0,
[SPECIES_SEEL] = 0,
[SPECIES_DEWGONG] = 0,
[SPECIES_GRIMER] = 0,
[SPECIES_MUK] = 0,
[SPECIES_SHELLDER] = 0,
[SPECIES_CLOYSTER] = 0,
[SPECIES_GASTLY] = 4,
[SPECIES_HAUNTER] = 4,
[SPECIES_GENGAR] = 0,
[SPECIES_ONIX] = 0,
[SPECIES_DROWZEE] = 0,
[SPECIES_HYPNO] = 0,
[SPECIES_KRABBY] = 0,
[SPECIES_KINGLER] = 0,
[SPECIES_VOLTORB] = 10,
[SPECIES_ELECTRODE] = 12,
[SPECIES_EXEGGCUTE] = 0,
[SPECIES_EXEGGUTOR] = 0,
[SPECIES_CUBONE] = 0,
[SPECIES_MAROWAK] = 0,
[SPECIES_HITMONLEE] = 0,
[SPECIES_HITMONCHAN] = 0,
[SPECIES_LICKITUNG] = 0,
[SPECIES_KOFFING] = 8,
[SPECIES_WEEZING] = 6,
[SPECIES_RHYHORN] = 0,
[SPECIES_RHYDON] = 0,
[SPECIES_CHANSEY] = 0,
[SPECIES_TANGELA] = 0,
[SPECIES_KANGASKHAN] = 0,
[SPECIES_HORSEA] = 0,
[SPECIES_SEADRA] = 0,
[SPECIES_GOLDEEN] = 0,
[SPECIES_SEAKING] = 0,
[SPECIES_STARYU] = 0,
[SPECIES_STARMIE] = 0,
[SPECIES_MR_MIME] = 0,
[SPECIES_SCYTHER] = 0,
[SPECIES_JYNX] = 0,
[SPECIES_ELECTABUZZ] = 0,
[SPECIES_MAGMAR] = 0,
[SPECIES_PINSIR] = 0,
[SPECIES_TAUROS] = 0,
[SPECIES_MAGIKARP] = 0,
[SPECIES_GYARADOS] = 0,
[SPECIES_LAPRAS] = 0,
[SPECIES_DITTO] = 0,
[SPECIES_EEVEE] = 0,
[SPECIES_VAPOREON] = 0,
[SPECIES_JOLTEON] = 0,
[SPECIES_FLAREON] = 0,
[SPECIES_PORYGON] = 0,
[SPECIES_OMANYTE] = 0,
[SPECIES_OMASTAR] = 0,
[SPECIES_KABUTO] = 0,
[SPECIES_KABUTOPS] = 0,
[SPECIES_AERODACTYL] = 7,
[SPECIES_SNORLAX] = 0,
[SPECIES_ARTICUNO] = 6,
[SPECIES_ZAPDOS] = 8,
[SPECIES_MOLTRES] = 5,
[SPECIES_DRATINI] = 0,
[SPECIES_DRAGONAIR] = 0,
[SPECIES_DRAGONITE] = 6,
[SPECIES_MEWTWO] = 0,
[SPECIES_MEW] = 8,
[SPECIES_CHIKORITA] = 0,
[SPECIES_BAYLEEF] = 0,
[SPECIES_MEGANIUM] = 0,
[SPECIES_CYNDAQUIL] = 0,
[SPECIES_QUILAVA] = 0,
[SPECIES_TYPHLOSION] = 0,
[SPECIES_TOTODILE] = 0,
[SPECIES_CROCONAW] = 0,
[SPECIES_FERALIGATR] = 0,
[SPECIES_SENTRET] = 0,
[SPECIES_FURRET] = 0,
[SPECIES_HOOTHOOT] = 0,
[SPECIES_NOCTOWL] = 0,
[SPECIES_LEDYBA] = 0,
[SPECIES_LEDIAN] = 8,
[SPECIES_SPINARAK] = 0,
[SPECIES_ARIADOS] = 0,
[SPECIES_CROBAT] = 6,
[SPECIES_CHINCHOU] = 0,
[SPECIES_LANTURN] = 0,
[SPECIES_PICHU] = 0,
[SPECIES_CLEFFA] = 0,
[SPECIES_IGGLYBUFF] = 0,
[SPECIES_TOGEPI] = 0,
[SPECIES_TOGETIC] = 0,
[SPECIES_NATU] = 0,
[SPECIES_XATU] = 0,
[SPECIES_MAREEP] = 0,
[SPECIES_FLAAFFY] = 0,
[SPECIES_AMPHAROS] = 0,
[SPECIES_BELLOSSOM] = 0,
[SPECIES_MARILL] = 0,
[SPECIES_AZUMARILL] = 0,
[SPECIES_SUDOWOODO] = 0,
[SPECIES_POLITOED] = 0,
[SPECIES_HOPPIP] = 11,
[SPECIES_SKIPLOOM] = 12,
[SPECIES_JUMPLUFF] = 9,
[SPECIES_AIPOM] = 0,
[SPECIES_SUNKERN] = 0,
[SPECIES_SUNFLORA] = 0,
[SPECIES_YANMA] = 8,
[SPECIES_WOOPER] = 0,
[SPECIES_QUAGSIRE] = 0,
[SPECIES_ESPEON] = 0,
[SPECIES_UMBREON] = 0,
[SPECIES_MURKROW] = 0,
[SPECIES_SLOWKING] = 0,
[SPECIES_MISDREAVUS] = 8,
[SPECIES_UNOWN] = 8,
[SPECIES_WOBBUFFET] = 0,
[SPECIES_GIRAFARIG] = 0,
[SPECIES_PINECO] = 0,
[SPECIES_FORRETRESS] = 0,
[SPECIES_DUNSPARCE] = 0,
[SPECIES_GLIGAR] = 6,
[SPECIES_STEELIX] = 0,
[SPECIES_SNUBBULL] = 0,
[SPECIES_GRANBULL] = 0,
[SPECIES_QWILFISH] = 0,
[SPECIES_SCIZOR] = 0,
[SPECIES_SHUCKLE] = 0,
[SPECIES_HERACROSS] = 0,
[SPECIES_SNEASEL] = 0,
[SPECIES_TEDDIURSA] = 0,
[SPECIES_URSARING] = 0,
[SPECIES_SLUGMA] = 0,
[SPECIES_MAGCARGO] = 0,
[SPECIES_SWINUB] = 0,
[SPECIES_PILOSWINE] = 0,
[SPECIES_CORSOLA] = 0,
[SPECIES_REMORAID] = 0,
[SPECIES_OCTILLERY] = 0,
[SPECIES_DELIBIRD] = 0,
[SPECIES_MANTINE] = 0,
[SPECIES_SKARMORY] = 0,
[SPECIES_HOUNDOUR] = 0,
[SPECIES_HOUNDOOM] = 0,
[SPECIES_KINGDRA] = 0,
[SPECIES_PHANPY] = 0,
[SPECIES_DONPHAN] = 0,
[SPECIES_PORYGON2] = 0,
[SPECIES_STANTLER] = 0,
[SPECIES_SMEARGLE] = 0,
[SPECIES_TYROGUE] = 0,
[SPECIES_HITMONTOP] = 0,
[SPECIES_SMOOCHUM] = 0,
[SPECIES_ELEKID] = 0,
[SPECIES_MAGBY] = 0,
[SPECIES_MILTANK] = 0,
[SPECIES_BLISSEY] = 0,
[SPECIES_RAIKOU] = 0,
[SPECIES_ENTEI] = 0,
[SPECIES_SUICUNE] = 0,
[SPECIES_LARVITAR] = 0,
[SPECIES_PUPITAR] = 0,
[SPECIES_TYRANITAR] = 0,
[SPECIES_LUGIA] = 6,
[SPECIES_HO_OH] = 6,
[SPECIES_CELEBI] = 15,
[SPECIES_OLD_UNOWN_B] = 0,
[SPECIES_OLD_UNOWN_C] = 0,
[SPECIES_OLD_UNOWN_D] = 0,
[SPECIES_OLD_UNOWN_E] = 0,
[SPECIES_OLD_UNOWN_F] = 0,
[SPECIES_OLD_UNOWN_G] = 0,
[SPECIES_OLD_UNOWN_H] = 0,
[SPECIES_OLD_UNOWN_I] = 0,
[SPECIES_OLD_UNOWN_J] = 0,
[SPECIES_OLD_UNOWN_K] = 0,
[SPECIES_OLD_UNOWN_L] = 0,
[SPECIES_OLD_UNOWN_M] = 0,
[SPECIES_OLD_UNOWN_N] = 0,
[SPECIES_OLD_UNOWN_O] = 0,
[SPECIES_OLD_UNOWN_P] = 0,
[SPECIES_OLD_UNOWN_Q] = 0,
[SPECIES_OLD_UNOWN_R] = 0,
[SPECIES_OLD_UNOWN_S] = 0,
[SPECIES_OLD_UNOWN_T] = 0,
[SPECIES_OLD_UNOWN_U] = 0,
[SPECIES_OLD_UNOWN_V] = 0,
[SPECIES_OLD_UNOWN_W] = 0,
[SPECIES_OLD_UNOWN_X] = 0,
[SPECIES_OLD_UNOWN_Y] = 0,
[SPECIES_OLD_UNOWN_Z] = 0,
[SPECIES_TREECKO] = 0,
[SPECIES_GROVYLE] = 0,
[SPECIES_SCEPTILE] = 0,
[SPECIES_TORCHIC] = 0,
[SPECIES_COMBUSKEN] = 0,
[SPECIES_BLAZIKEN] = 0,
[SPECIES_MUDKIP] = 0,
[SPECIES_MARSHTOMP] = 0,
[SPECIES_SWAMPERT] = 0,
[SPECIES_POOCHYENA] = 0,
[SPECIES_MIGHTYENA] = 0,
[SPECIES_ZIGZAGOON] = 0,
[SPECIES_LINOONE] = 0,
[SPECIES_WURMPLE] = 0,
[SPECIES_SILCOON] = 0,
[SPECIES_BEAUTIFLY] = 8,
[SPECIES_CASCOON] = 0,
[SPECIES_DUSTOX] = 10,
[SPECIES_LOTAD] = 0,
[SPECIES_LOMBRE] = 0,
[SPECIES_LUDICOLO] = 0,
[SPECIES_SEEDOT] = 0,
[SPECIES_NUZLEAF] = 0,
[SPECIES_SHIFTRY] = 0,
[SPECIES_NINCADA] = 0,
[SPECIES_NINJASK] = 10,
[SPECIES_SHEDINJA] = 8,
[SPECIES_TAILLOW] = 0,
[SPECIES_SWELLOW] = 0,
[SPECIES_SHROOMISH] = 0,
[SPECIES_BRELOOM] = 0,
[SPECIES_SPINDA] = 0,
[SPECIES_WINGULL] = 16,
[SPECIES_PELIPPER] = 8,
[SPECIES_SURSKIT] = 0,
[SPECIES_MASQUERAIN] = 10,
[SPECIES_WAILMER] = 0,
[SPECIES_WAILORD] = 0,
[SPECIES_SKITTY] = 0,
[SPECIES_DELCATTY] = 0,
[SPECIES_KECLEON] = 0,
[SPECIES_BALTOY] = 4,
[SPECIES_CLAYDOL] = 10,
[SPECIES_NOSEPASS] = 0,
[SPECIES_TORKOAL] = 0,
[SPECIES_SABLEYE] = 0,
[SPECIES_BARBOACH] = 0,
[SPECIES_WHISCASH] = 0,
[SPECIES_LUVDISC] = 0,
[SPECIES_CORPHISH] = 0,
[SPECIES_CRAWDAUNT] = 0,
[SPECIES_FEEBAS] = 0,
[SPECIES_MILOTIC] = 0,
[SPECIES_CARVANHA] = 0,
[SPECIES_SHARPEDO] = 0,
[SPECIES_TRAPINCH] = 0,
[SPECIES_VIBRAVA] = 0,
[SPECIES_FLYGON] = 7,
[SPECIES_MAKUHITA] = 0,
[SPECIES_HARIYAMA] = 0,
[SPECIES_ELECTRIKE] = 0,
[SPECIES_MANECTRIC] = 0,
[SPECIES_NUMEL] = 0,
[SPECIES_CAMERUPT] = 0,
[SPECIES_SPHEAL] = 0,
[SPECIES_SEALEO] = 0,
[SPECIES_WALREIN] = 0,
[SPECIES_CACNEA] = 0,
[SPECIES_CACTURNE] = 0,
[SPECIES_SNORUNT] = 0,
[SPECIES_GLALIE] = 12,
[SPECIES_LUNATONE] = 13,
[SPECIES_SOLROCK] = 4,
[SPECIES_AZURILL] = 0,
[SPECIES_SPOINK] = 0,
[SPECIES_GRUMPIG] = 0,
[SPECIES_PLUSLE] = 0,
[SPECIES_MINUN] = 0,
[SPECIES_MAWILE] = 0,
[SPECIES_MEDITITE] = 0,
[SPECIES_MEDICHAM] = 0,
[SPECIES_SWABLU] = 12,
[SPECIES_ALTARIA] = 8,
[SPECIES_WYNAUT] = 0,
[SPECIES_DUSKULL] = 9,
[SPECIES_DUSCLOPS] = 0,
[SPECIES_ROSELIA] = 0,
[SPECIES_SLAKOTH] = 0,
[SPECIES_VIGOROTH] = 0,
[SPECIES_SLAKING] = 0,
[SPECIES_GULPIN] = 0,
[SPECIES_SWALOT] = 0,
[SPECIES_TROPIUS] = 0,
[SPECIES_WHISMUR] = 0,
[SPECIES_LOUDRED] = 0,
[SPECIES_EXPLOUD] = 0,
[SPECIES_CLAMPERL] = 0,
[SPECIES_HUNTAIL] = 0,
[SPECIES_GOREBYSS] = 0,
[SPECIES_ABSOL] = 0,
[SPECIES_SHUPPET] = 12,
[SPECIES_BANETTE] = 8,
[SPECIES_SEVIPER] = 0,
[SPECIES_ZANGOOSE] = 0,
[SPECIES_RELICANTH] = 0,
[SPECIES_ARON] = 0,
[SPECIES_LAIRON] = 0,
[SPECIES_AGGRON] = 0,
[SPECIES_CASTFORM] = 16,
[SPECIES_VOLBEAT] = 0,
[SPECIES_ILLUMISE] = 0,
[SPECIES_LILEEP] = 0,
[SPECIES_CRADILY] = 0,
[SPECIES_ANORITH] = 0,
[SPECIES_ARMALDO] = 0,
[SPECIES_RALTS] = 0,
[SPECIES_KIRLIA] = 0,
[SPECIES_GARDEVOIR] = 0,
[SPECIES_BAGON] = 0,
[SPECIES_SHELGON] = 0,
[SPECIES_SALAMENCE] = 0,
[SPECIES_BELDUM] = 8,
[SPECIES_METANG] = 0,
[SPECIES_METAGROSS] = 0,
[SPECIES_REGIROCK] = 0,
[SPECIES_REGICE] = 0,
[SPECIES_REGISTEEL] = 0,
[SPECIES_KYOGRE] = 0,
[SPECIES_GROUDON] = 0,
[SPECIES_RAYQUAZA] = 6,
[SPECIES_LATIAS] = 6,
[SPECIES_LATIOS] = 6,
[SPECIES_JIRACHI] = 12,
[SPECIES_DEOXYS] = 8,
[SPECIES_CHIMECHO] = 12,
};
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -126,7 +126,7 @@ static const u8 sMapName_MtMoon[] = _("MT. MOON");
static const u8 sMapName_SSAnne[] = _("S.S. ANNE");
static const u8 sMapName_UndergroundPath[] = _("UNDERGROUND PATH");
static const u8 sMapName_UndergroundPath2[] = _("UNDERGROUND PATH");
static const u8 sMapName_DiglettsCave[] = _("DIGLETTS CAVE");
static const u8 sMapName_DiglettsCave[] = _("DIGLETT'S CAVE");
static const u8 sMapName_KantoVictoryRoad[] = _("VICTORY ROAD");
static const u8 sMapName_RocketHideout[] = _("ROCKET HIDEOUT");
static const u8 sMapName_SilphCo[] = _("SILPH CO.");
+4 -4
View File
@@ -14,14 +14,14 @@ static const u8 sObliviousDescription[] = _("Prevents attraction.");
static const u8 sCloudNineDescription[] = _("Negates weather effects.");
static const u8 sCompoundEyesDescription[] = _("Raises accuracy.");
static const u8 sInsomniaDescription[] = _("Prevents sleep.");
static const u8 sColorChangeDescription[] = _("Changes type to foes move.");
static const u8 sColorChangeDescription[] = _("Changes type to foe's move.");
static const u8 sImmunityDescription[] = _("Prevents poisoning.");
static const u8 sFlashFireDescription[] = _("Powers up if hit by fire.");
static const u8 sShieldDustDescription[] = _("Prevents added effects.");
static const u8 sOwnTempoDescription[] = _("Prevents confusion.");
static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body.");
static const u8 sIntimidateDescription[] = _("Lowers the foes ATTACK.");
static const u8 sShadowTagDescription[] = _("Prevents the foes escape.");
static const u8 sIntimidateDescription[] = _("Lowers the foe's ATTACK.");
static const u8 sShadowTagDescription[] = _("Prevents the foe's escape.");
static const u8 sRoughSkinDescription[] = _("Hurts to touch.");
static const u8 sWonderGuardDescription[] = _("“Super effective” hits.");
static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks.");
@@ -44,7 +44,7 @@ static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON.");
static const u8 sSoundproofDescription[] = _("Avoids sound-based moves.");
static const u8 sRainDishDescription[] = _("Slight HP recovery in rain.");
static const u8 sSandStreamDescription[] = _("Summons a sandstorm.");
static const u8 sPressureDescription[] = _("Raises foes PP usage.");
static const u8 sPressureDescription[] = _("Raises foe's PP usage.");
static const u8 sThickFatDescription[] = _("Heat-and-cold protection.");
static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep.");
static const u8 sFlameBodyDescription[] = _("Burns the foe on contact.");
+20 -20
View File
@@ -7,7 +7,7 @@ const u8 gPokeBallItemDescription[] = _("A tool used for\ncatching wild\nPOKéMO
const u8 gSafariBallItemDescription[] = _("A special BALL that\nis used only in the\nSAFARI ZONE.");
const u8 gNetBallItemDescription[] = _("A BALL that works\nwell on WATER- and\nBUG-type POKéMON.");
const u8 gDiveBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\non the ocean floor.");
const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON.");
const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON.");
const u8 gRepeatBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\ncaught before.");
const u8 gTimerBallItemDescription[] = _("A BALL that gains\npower in battles\ntaking many turns.");
const u8 gLuxuryBallItemDescription[] = _("A cozy BALL that\nmakes POKéMON\nmore friendly.");
@@ -37,7 +37,7 @@ const u8 gRevivalHerbItemDescription[] = _("A very bitter herb\nthat revives a\n
const u8 gEtherItemDescription[] = _("Restores the PP\nof a selected move\nby 10.");
const u8 gMaxEtherItemDescription[] = _("Fully restores the\nPP of a selected\nmove.");
const u8 gElixirItemDescription[] = _("Restores the PP\nof all moves by 10.");
const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMONs\nmoves.");
const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMON's\nmoves.");
const u8 gLavaCookieItemDescription[] = _("A local specialty\nthat heals all\nstatus problems.");
const u8 gBlueFluteItemDescription[] = _("A glass flute that\nawakens sleeping\nPOKéMON.");
const u8 gYellowFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of confusion.");
@@ -159,7 +159,7 @@ const u8 gExpShareItemDescription[] = _("A hold item that\ngets EXP. points\nfro
const u8 gQuickClawItemDescription[] = _("A hold item that\noccasionally allows\nthe first strike.");
const u8 gSootheBellItemDescription[] = _("A hold item that\ncalms spirits and\nfosters friendship.");
const u8 gMentalHerbItemDescription[] = _("A hold item that\nsnaps POKéMON out\nof infatuation.");
const u8 gChoiceBandItemDescription[] = _("Raises a moves\npower, but permits\nonly that move.");
const u8 gChoiceBandItemDescription[] = _("Raises a move's\npower, but permits\nonly that move.");
const u8 gKingsRockItemDescription[] = _("A hold item that\nmay cause flinching\nwhen the foe is hit.");
const u8 gSilverPowderItemDescription[] = _("A hold item that\nraises the power of\nBUG-type moves.");
const u8 gAmuletCoinItemDescription[] = _("Doubles money in\nbattle if the\nholder takes part.");
@@ -194,11 +194,11 @@ const u8 gSilkScarfItemDescription[] = _("A hold item that\nraises the power of\
const u8 gUpGradeItemDescription[] = _("A peculiar box made\nby SILPH CO.");
const u8 gShellBellItemDescription[] = _("A hold item that\nrestores HP upon\nstriking the foe.");
const u8 gSeaIncenseItemDescription[] = _("A hold item that\nslightly boosts\nWATER-type moves.");
const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoes accuracy.");
const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEYs\ncritical-hit rate.");
const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTOs\nDEFENSE.");
const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAKs ATTACK.");
const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCHDs\ncritical-hit ratio.");
const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoe's accuracy.");
const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEY's\ncritical-hit rate.");
const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTO's\nDEFENSE.");
const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAK's ATTACK.");
const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCH'D's\ncritical-hit ratio.");
const u8 gRedScarfItemDescription[] = _("A hold item that\nraises COOL in\nCONTESTS.");
const u8 gBlueScarfItemDescription[] = _("A hold item that\nraises BEAUTY in\nCONTESTS.");
const u8 gPinkScarfItemDescription[] = _("A hold item that\nraises CUTE in\nCONTESTS.");
@@ -214,7 +214,7 @@ const u8 gSuperRodItemDescription[] = _("The best fishing\nrod for catching\nwil
const u8 gSSTicketItemDescription[] = _("The ticket required\nfor sailing on a\nferry.");
const u8 gContestPassItemDescription[] = _("The pass required\nfor entering\nPOKéMON CONTESTS.");
const u8 gWailmerPailItemDescription[] = _("A tool used for\nwatering BERRIES\nand plants.");
const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVONs\nmachine parts.");
const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVON's\nmachine parts.");
const u8 gSootSackItemDescription[] = _("A sack used to\ngather and hold\nvolcanic ash.");
const u8 gBasementKeyItemDescription[] = _("The key for NEW\nMAUVILLE beneath\nMAUVILLE CITY.");
const u8 gAcroBikeItemDescription[] = _("A folding bicycle\ncapable of jumps\nand wheelies.");
@@ -274,13 +274,13 @@ const u8 gTM36ItemDescription[] = _("Hurls sludge at the\nfoe. It may poison\nth
const u8 gTM37ItemDescription[] = _("Causes a sandstorm\nthat hits the foe\nover several turns.");
const u8 gTM38ItemDescription[] = _("A powerful fire\nattack that may\nburn the foe.");
const u8 gTM39ItemDescription[] = _("Stops the foe from\nmoving with rocks.\nMay lower SPEED.");
const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that cant\nbe avoided.");
const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that can't\nbe avoided.");
const u8 gTM41ItemDescription[] = _("Prevents the foe\nfrom using the same\nmove in a row.");
const u8 gTM42ItemDescription[] = _("Raises ATTACK when\npoisoned, burned,\nor paralyzed.");
const u8 gTM43ItemDescription[] = _("Adds an effect to\nattack depending\non the location.");
const u8 gTM44ItemDescription[] = _("The user sleeps for\n2 turns to restore\nhealth and status.");
const u8 gTM45ItemDescription[] = _("Makes it tough to\nattack a foe of the\nopposite gender.");
const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoes held item.");
const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoe's held item.");
const u8 gTM47ItemDescription[] = _("Spreads hard-\nedged wings and\nslams into the foe.");
const u8 gTM48ItemDescription[] = _("Switches abilities\nwith the foe on the\nturn this is used.");
const u8 gTM49ItemDescription[] = _("Steals the effects\nof the move the foe\nis trying to use.");
@@ -295,17 +295,17 @@ const u8 gHM06ItemDescription[] = _("A rock-crushingly\ntough attack that\nmay l
const u8 gHM07ItemDescription[] = _("Attacks the foe\nwith enough power\nto climb waterfalls.");
const u8 gHM08ItemDescription[] = _("Dives underwater\nthe 1st turn, then\nattacks next turn.");
// FireRed/LeafGreen key items
const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMARTs clerk.");
const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMART's clerk.");
const u8 gPokeFluteItemDescription[] = _("A sweet-sounding\nflute that awakens\nPOKéMON.");
const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYMs entrance.");
const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYM's entrance.");
const u8 gBikeVoucherItemDescription[] = _("A voucher for\nobtaining a bicycle\nfrom the BIKE SHOP.");
const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONEs WARDEN.");
const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONE's WARDEN.");
const u8 gOldAmberItemDescription[] = _("A stone containing\nthe genes of an\nancient POKéMON.");
const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCOs office.");
const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKETs HIDEOUT.");
const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMONs seashell.");
const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMONs shell.");
const u8 gSilphScopeItemDescription[] = _("SILPH COs scope\nmakes unseeable\nPOKéMON visible.");
const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCO's office.");
const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKET's HIDEOUT.");
const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON's seashell.");
const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON's shell.");
const u8 gSilphScopeItemDescription[] = _("SILPH CO's scope\nmakes unseeable\nPOKéMON visible.");
const u8 gBicycleItemDescription[] = _("A folding bicycle\nthat is faster than\nthe RUNNING SHOES.");
const u8 gTownMapItemDescription[] = _("Can be viewed\nanytime. Shows your\npresent location.");
const u8 gVSSeekerItemDescription[] = _("A rechargeable unit\nthat flags battle-\nready TRAINERS.");
@@ -322,5 +322,5 @@ const u8 gPowderJarItemDescription[] = _("Stores BERRY\nPOWDER made using\na BER
const u8 gRubyItemDescription[] = _("An exquisite, red-\nglowing gem that\nsymbolizes passion.");
const u8 gSapphireItemDescription[] = _("A brilliant blue gem\nthat symbolizes\nhonesty.");
// Emerald-specific key items
const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMAs mark.");
const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMA's mark.");
const u8 gOldSeaMapItemDescription[] = _("A faded sea chart\nthat shows the way\nto a certain island.");
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -82,7 +82,7 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = {
[SPECIES_SLOWBRO] = _("SLOWBRO"),
[SPECIES_MAGNEMITE] = _("MAGNEMITE"),
[SPECIES_MAGNETON] = _("MAGNETON"),
[SPECIES_FARFETCHD] = _("FARFETCHD"),
[SPECIES_FARFETCHD] = _("FARFETCH'D"),
[SPECIES_DODUO] = _("DODUO"),
[SPECIES_DODRIO] = _("DODRIO"),
[SPECIES_SEEL] = _("SEEL"),
+9875 -9875
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "data2.h"
#include "graphics.h"
#include "malloc.h"
#include "alloc.h"
#include "constants/species.h"
const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal");
+6 -9
View File
@@ -19,6 +19,7 @@
#include "task.h"
#include "window.h"
#include "list_menu.h"
#include "overworld.h"
#define EGG_MOVES_ARRAY_COUNT 10
#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
@@ -39,12 +40,8 @@ extern const u8 gDaycareText_PlayOther[];
extern u8 GetCursorSelectionMonId(void);
extern u16 ItemIdToBattleMoveId(u16);
extern s32 ListMenuHandleInputGetItemId(u8);
extern void DestroyListMenuTask(u8, u16*, u16*);
extern void sub_819746C(u8, bool8);
extern void NewMenuHelpers_DrawStdWindowFrame(u8, bool8);
extern void sub_81B9328(void);
extern void CB2_ReturnToField(void);
// this file's functions
static void ClearDaycareMonMail(struct DayCareMail *mail);
@@ -535,7 +532,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
s32 i, j;
u8 temp[NUM_STATS];
ivs[selectedIv] = 0xff;
ivs[selectedIv] = 0xFF;
for (i = 0; i < NUM_STATS; i++)
{
temp[i] = ivs[i];
@@ -544,7 +541,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
j = 0;
for (i = 0; i < NUM_STATS; i++)
{
if (temp[i] != 0xff)
if (temp[i] != 0xFF)
ivs[j++] = temp[i];
}
}
@@ -684,7 +681,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j])
{
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff)
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
break;
}
@@ -703,7 +700,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j))
{
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff)
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
}
}
@@ -728,7 +725,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
{
if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j])
{
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xffff)
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]);
break;
}
+298 -298
View File
@@ -2,7 +2,7 @@
#include "decompress.h"
#include "constants/species.h"
#include "text.h"
#include "malloc.h"
#include "alloc.h"
#include "pokemon.h"
EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0};
@@ -122,346 +122,346 @@ void sub_803471C()
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x24\n\
mov r9, r0\n\
str r1, [sp]\n\
str r2, [sp, 0x4]\n\
adds r5, r3, 0\n\
movs r0, 0x1\n\
mov r1, r9\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0803473C\n\
b _080348D4\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x24\n\
mov r9, r0\n\
str r1, [sp]\n\
str r2, [sp, 0x4]\n\
adds r5, r3, 0\n\
movs r0, 0x1\n\
mov r1, r9\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0803473C\n\
b _080348D4\n\
_0803473C:\n\
asrs r0, r1, 1\n\
adds r0, 0x4\n\
lsls r0, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x8]\n\
movs r0, 0\n\
ldr r2, [sp]\n\
cmp r0, r2\n\
blt _08034750\n\
b _08034964\n\
asrs r0, r1, 1\n\
adds r0, 0x4\n\
lsls r0, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x8]\n\
movs r0, 0\n\
ldr r2, [sp]\n\
cmp r0, r2\n\
blt _08034750\n\
b _08034964\n\
_08034750:\n\
movs r4, 0x8\n\
subs r1, r4, r1\n\
str r1, [sp, 0x10]\n\
movs r4, 0x8\n\
subs r1, r4, r1\n\
str r1, [sp, 0x10]\n\
_08034756:\n\
movs r7, 0\n\
adds r0, 0x1\n\
str r0, [sp, 0x14]\n\
ldr r0, [sp, 0x10]\n\
cmp r7, r0\n\
bge _080347D2\n\
ldr r1, [sp, 0x8]\n\
lsls r1, 8\n\
str r1, [sp, 0x18]\n\
movs r2, 0\n\
mov r10, r2\n\
mov r0, r9\n\
movs r4, 0x8\n\
subs r0, r4, r0\n\
str r0, [sp, 0xC]\n\
movs r7, 0\n\
adds r0, 0x1\n\
str r0, [sp, 0x14]\n\
ldr r0, [sp, 0x10]\n\
cmp r7, r0\n\
bge _080347D2\n\
ldr r1, [sp, 0x8]\n\
lsls r1, 8\n\
str r1, [sp, 0x18]\n\
movs r2, 0\n\
mov r10, r2\n\
mov r0, r9\n\
movs r4, 0x8\n\
subs r0, r4, r0\n\
str r0, [sp, 0xC]\n\
_08034774:\n\
movs r3, 0\n\
asrs r0, r7, 1\n\
adds r1, r7, 0\n\
movs r2, 0x1\n\
ands r1, r2\n\
str r1, [sp, 0x20]\n\
lsls r0, 8\n\
mov r8, r0\n\
mov r12, r5\n\
movs r3, 0\n\
asrs r0, r7, 1\n\
adds r1, r7, 0\n\
movs r2, 0x1\n\
ands r1, r2\n\
str r1, [sp, 0x20]\n\
lsls r0, 8\n\
mov r8, r0\n\
mov r12, r5\n\
_08034786:\n\
lsls r1, r3, 5\n\
ldr r4, [sp, 0x18]\n\
adds r0, r5, r4\n\
adds r0, r1\n\
mov r1, r8\n\
adds r2, r0, r1\n\
mov r1, r12\n\
add r1, r8\n\
movs r6, 0xF\n\
lsls r1, r3, 5\n\
ldr r4, [sp, 0x18]\n\
adds r0, r5, r4\n\
adds r0, r1\n\
mov r1, r8\n\
adds r2, r0, r1\n\
mov r1, r12\n\
add r1, r8\n\
movs r6, 0xF\n\
_08034798:\n\
ldr r4, [sp, 0x20]\n\
cmp r4, 0\n\
bne _080347A8\n\
strb r4, [r1]\n\
add r4, sp, 0x20\n\
ldrb r4, [r4]\n\
strb r4, [r2, 0x10]\n\
b _080347B6\n\
ldr r4, [sp, 0x20]\n\
cmp r4, 0\n\
bne _080347A8\n\
strb r4, [r1]\n\
add r4, sp, 0x20\n\
ldrb r4, [r4]\n\
strb r4, [r2, 0x10]\n\
b _080347B6\n\
_080347A8:\n\
mov r0, r10\n\
strb r0, [r1, 0x10]\n\
movs r4, 0x80\n\
lsls r4, 1\n\
adds r4, r2, r4\n\
str r4, [sp, 0x1C]\n\
strb r0, [r4]\n\
mov r0, r10\n\
strb r0, [r1, 0x10]\n\
movs r4, 0x80\n\
lsls r4, 1\n\
adds r4, r2, r4\n\
str r4, [sp, 0x1C]\n\
strb r0, [r4]\n\
_080347B6:\n\
adds r2, 0x1\n\
adds r1, 0x1\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _08034798\n\
movs r0, 0x20\n\
add r12, r0\n\
adds r3, 0x1\n\
cmp r3, 0x7\n\
ble _08034786\n\
adds r7, 0x1\n\
ldr r1, [sp, 0xC]\n\
cmp r7, r1\n\
blt _08034774\n\
adds r2, 0x1\n\
adds r1, 0x1\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _08034798\n\
movs r0, 0x20\n\
add r12, r0\n\
adds r3, 0x1\n\
cmp r3, 0x7\n\
ble _08034786\n\
adds r7, 0x1\n\
ldr r1, [sp, 0xC]\n\
cmp r7, r1\n\
blt _08034774\n\
_080347D2:\n\
movs r7, 0\n\
movs r2, 0\n\
movs r7, 0\n\
movs r2, 0\n\
_080347D6:\n\
movs r6, 0\n\
adds r4, r7, 0x1\n\
mov r8, r4\n\
lsls r4, r7, 5\n\
movs r6, 0\n\
adds r4, r7, 0x1\n\
mov r8, r4\n\
lsls r4, r7, 5\n\
_080347DE:\n\
adds r0, r6, 0x1\n\
mov r10, r0\n\
lsls r1, r6, 8\n\
adds r0, r1, 0\n\
adds r0, 0xC0\n\
adds r0, r5, r0\n\
adds r0, r4\n\
adds r1, r5, r1\n\
adds r1, r4\n\
movs r3, 0x1F\n\
adds r0, r6, 0x1\n\
mov r10, r0\n\
lsls r1, r6, 8\n\
adds r0, r1, 0\n\
adds r0, 0xC0\n\
adds r0, r5, r0\n\
adds r0, r4\n\
adds r1, r5, r1\n\
adds r1, r4\n\
movs r3, 0x1F\n\
_080347F2:\n\
strb r2, [r1]\n\
strb r2, [r0]\n\
adds r0, 0x1\n\
adds r1, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _080347F2\n\
mov r6, r10\n\
cmp r6, 0x7\n\
ble _080347DE\n\
mov r7, r8\n\
cmp r7, 0x1\n\
ble _080347D6\n\
mov r1, r9\n\
cmp r1, 0x5\n\
bne _08034818\n\
movs r2, 0x90\n\
lsls r2, 1\n\
adds r5, r2\n\
strb r2, [r1]\n\
strb r2, [r0]\n\
adds r0, 0x1\n\
adds r1, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _080347F2\n\
mov r6, r10\n\
cmp r6, 0x7\n\
ble _080347DE\n\
mov r7, r8\n\
cmp r7, 0x1\n\
ble _080347D6\n\
mov r1, r9\n\
cmp r1, 0x5\n\
bne _08034818\n\
movs r2, 0x90\n\
lsls r2, 1\n\
adds r5, r2\n\
_08034818:\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _080348AE\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _080348AE\n\
_0803481E:\n\
movs r3, 0\n\
adds r7, 0x1\n\
mov r8, r7\n\
cmp r3, r9\n\
bge _0803488E\n\
movs r3, 0\n\
adds r7, 0x1\n\
mov r8, r7\n\
cmp r3, r9\n\
bge _0803488E\n\
_08034828:\n\
adds r3, 0x1\n\
mov r10, r3\n\
ldr r4, [sp, 0x4]\n\
adds r4, 0x20\n\
adds r7, r5, 0\n\
adds r7, 0x20\n\
movs r0, 0x12\n\
adds r0, r5\n\
mov r12, r0\n\
ldr r2, [sp, 0x4]\n\
adds r3, r5, 0\n\
movs r6, 0x3\n\
adds r3, 0x1\n\
mov r10, r3\n\
ldr r4, [sp, 0x4]\n\
adds r4, 0x20\n\
adds r7, r5, 0\n\
adds r7, 0x20\n\
movs r0, 0x12\n\
adds r0, r5\n\
mov r12, r0\n\
ldr r2, [sp, 0x4]\n\
adds r3, r5, 0\n\
movs r6, 0x3\n\
_08034840:\n\
ldrb r0, [r2]\n\
mov r1, r12\n\
strb r0, [r1]\n\
ldrb r0, [r2, 0x1]\n\
strb r0, [r1, 0x1]\n\
ldrb r0, [r2, 0x2]\n\
strb r0, [r1, 0x1E]\n\
ldrb r0, [r2, 0x3]\n\
strb r0, [r1, 0x1F]\n\
movs r0, 0x81\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x10]\n\
strb r0, [r1]\n\
ldr r0, =0x00000103\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x11]\n\
strb r0, [r1]\n\
movs r0, 0x90\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x12]\n\
strb r0, [r1]\n\
ldr r0, =0x00000121\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x13]\n\
strb r0, [r1]\n\
movs r1, 0x4\n\
add r12, r1\n\
adds r2, 0x4\n\
adds r3, 0x4\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _08034840\n\
str r4, [sp, 0x4]\n\
adds r5, r7, 0\n\
mov r3, r10\n\
cmp r3, r9\n\
blt _08034828\n\
ldrb r0, [r2]\n\
mov r1, r12\n\
strb r0, [r1]\n\
ldrb r0, [r2, 0x1]\n\
strb r0, [r1, 0x1]\n\
ldrb r0, [r2, 0x2]\n\
strb r0, [r1, 0x1E]\n\
ldrb r0, [r2, 0x3]\n\
strb r0, [r1, 0x1F]\n\
movs r0, 0x81\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x10]\n\
strb r0, [r1]\n\
ldr r0, =0x00000103\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x11]\n\
strb r0, [r1]\n\
movs r0, 0x90\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x12]\n\
strb r0, [r1]\n\
ldr r0, =0x00000121\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x13]\n\
strb r0, [r1]\n\
movs r1, 0x4\n\
add r12, r1\n\
adds r2, 0x4\n\
adds r3, 0x4\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _08034840\n\
str r4, [sp, 0x4]\n\
adds r5, r7, 0\n\
mov r3, r10\n\
cmp r3, r9\n\
blt _08034828\n\
_0803488E:\n\
mov r2, r9\n\
cmp r2, 0x7\n\
bne _080348A0\n\
adds r5, 0x20\n\
b _080348A8\n\
.pool\n\
mov r2, r9\n\
cmp r2, 0x7\n\
bne _080348A0\n\
adds r5, 0x20\n\
b _080348A8\n\
.pool\n\
_080348A0:\n\
mov r4, r9\n\
cmp r4, 0x5\n\
bne _080348A8\n\
adds r5, 0x60\n\
mov r4, r9\n\
cmp r4, 0x5\n\
bne _080348A8\n\
adds r5, 0x60\n\
_080348A8:\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _0803481E\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _0803481E\n\
_080348AE:\n\
mov r0, r9\n\
cmp r0, 0x7\n\
bne _080348BC\n\
movs r1, 0x80\n\
lsls r1, 1\n\
adds r5, r1\n\
b _080348C8\n\
mov r0, r9\n\
cmp r0, 0x7\n\
bne _080348BC\n\
movs r1, 0x80\n\
lsls r1, 1\n\
adds r5, r1\n\
b _080348C8\n\
_080348BC:\n\
mov r2, r9\n\
cmp r2, 0x5\n\
bne _080348C8\n\
movs r4, 0xF0\n\
lsls r4, 1\n\
adds r5, r4\n\
mov r2, r9\n\
cmp r2, 0x5\n\
bne _080348C8\n\
movs r4, 0xF0\n\
lsls r4, 1\n\
adds r5, r4\n\
_080348C8:\n\
ldr r0, [sp, 0x14]\n\
ldr r1, [sp]\n\
cmp r0, r1\n\
bge _080348D2\n\
b _08034756\n\
ldr r0, [sp, 0x14]\n\
ldr r1, [sp]\n\
cmp r0, r1\n\
bge _080348D2\n\
b _08034756\n\
_080348D2:\n\
b _08034964\n\
b _08034964\n\
_080348D4:\n\
movs r6, 0\n\
ldr r2, [sp]\n\
cmp r6, r2\n\
bge _08034964\n\
movs r6, 0\n\
ldr r2, [sp]\n\
cmp r6, r2\n\
bge _08034964\n\
_080348DC:\n\
adds r6, 0x1\n\
mov r10, r6\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _080348F4\n\
movs r0, 0\n\
movs r3, 0xFF\n\
adds r6, 0x1\n\
mov r10, r6\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _080348F4\n\
movs r0, 0\n\
movs r3, 0xFF\n\
_080348EA:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _080348EA\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _080348EA\n\
_080348F4:\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _08034948\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _08034948\n\
_080348FA:\n\
adds r7, 0x1\n\
mov r8, r7\n\
mov r1, r9\n\
lsls r0, r1, 5\n\
cmp r1, 0x6\n\
bne _08034914\n\
movs r1, 0\n\
movs r3, 0x1F\n\
adds r7, 0x1\n\
mov r8, r7\n\
mov r1, r9\n\
lsls r0, r1, 5\n\
cmp r1, 0x6\n\
bne _08034914\n\
movs r1, 0\n\
movs r3, 0x1F\n\
_0803490A:\n\
strb r1, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0803490A\n\
strb r1, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0803490A\n\
_08034914:\n\
adds r1, r0, 0\n\
cmp r1, 0\n\
ble _0803492E\n\
adds r3, r1, 0\n\
adds r1, r0, 0\n\
cmp r1, 0\n\
ble _0803492E\n\
adds r3, r1, 0\n\
_0803491C:\n\
ldr r2, [sp, 0x4]\n\
ldrb r0, [r2]\n\
strb r0, [r5]\n\
adds r2, 0x1\n\
str r2, [sp, 0x4]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bne _0803491C\n\
ldr r2, [sp, 0x4]\n\
ldrb r0, [r2]\n\
strb r0, [r5]\n\
adds r2, 0x1\n\
str r2, [sp, 0x4]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bne _0803491C\n\
_0803492E:\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _08034942\n\
movs r0, 0\n\
movs r3, 0x1F\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _08034942\n\
movs r0, 0\n\
movs r3, 0x1F\n\
_08034938:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _08034938\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _08034938\n\
_08034942:\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _080348FA\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _080348FA\n\
_08034948:\n\
mov r0, r9\n\
cmp r0, 0x6\n\
bne _0803495C\n\
movs r0, 0\n\
movs r3, 0xFF\n\
mov r0, r9\n\
cmp r0, 0x6\n\
bne _0803495C\n\
movs r0, 0\n\
movs r3, 0xFF\n\
_08034952:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _08034952\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _08034952\n\
_0803495C:\n\
mov r6, r10\n\
ldr r1, [sp]\n\
cmp r6, r1\n\
blt _080348DC\n\
mov r6, r10\n\
ldr r1, [sp]\n\
cmp r6, r1\n\
blt _080348DC\n\
_08034964:\n\
add sp, 0x24\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
add sp, 0x24\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.syntax divided");
}
u32 GetDecompressedDataSize(const u32 *ptr)
{
const u8 *ptr8 = (const u8 *)ptr;
const u8 *ptr8 = (const u8 *)ptr;
return (ptr8[3] << 16) | (ptr8[2] << 8) | (ptr8[1]);
}
+3 -3
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "constants/decorations.h"
#include "decompress.h"
#include "malloc.h"
#include "alloc.h"
#include "text.h"
#include "string_util.h"
#include "international_string_util.h"
@@ -16,7 +16,7 @@
#include "field_weather.h"
#include "field_player_avatar.h"
#include "field_camera.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "event_object_movement.h"
#include "list_menu.h"
#include "menu_helpers.h"
@@ -312,7 +312,7 @@ const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = {
};
const struct SpriteTemplate sDecorSelectorSpriteTemplate = {
0xffff,
0xFFFF,
OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG,
&sDecorSelectorOam,
sDecorSelectorAnims,
+1 -1
View File
@@ -3,7 +3,7 @@
#include "easy_chat.h"
#include "event_data.h"
#include "link.h"
#include "malloc.h"
#include "alloc.h"
#include "random.h"
#include "text.h"
#include "tv.h"
+1 -1
View File
@@ -5,7 +5,7 @@
#include "gpu_regs.h"
#include "scanline_effect.h"
#include "task.h"
#include "malloc.h"
#include "alloc.h"
#include "decompress.h"
#include "bg.h"
#include "window.h"
+4 -1
View File
@@ -1,7 +1,7 @@
// Includes
#include "global.h"
#include "malloc.h"
#include "alloc.h"
#include "constants/songs.h"
#include "sound.h"
#include "overworld.h"
@@ -51,6 +51,9 @@ EWRAM_DATA struct
u16 ecWordBuffer[9];
} *gUnknown_0203A118 = NULL;
EWRAM_DATA void *gUnknown_0203A11C = 0;
EWRAM_DATA void *gUnknown_0203A120 = 0;
// Static ROM declarations
static void sub_811A2C0(u8);
+4 -4
View File
@@ -17,7 +17,7 @@
#include "menu.h"
#include "trig.h"
#include "random.h"
#include "malloc.h"
#include "alloc.h"
#include "dma3.h"
#include "gpu_regs.h"
#include "bg.h"
@@ -30,7 +30,7 @@
#include "field_weather.h"
#include "international_string_util.h"
#include "naming_screen.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "battle.h" // to get rid of later
struct EggHatchData
@@ -60,7 +60,7 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
extern const u8 gText_HatchedFromEgg[];
extern const u8 gText_NickHatchPrompt[];
extern void play_some_sound(void);
extern void PlayRainSoundEffect(void);
extern u16 sub_80D22D0(void);
extern u8 CountPartyAliveNonEggMonsExcept(u8);
@@ -581,7 +581,7 @@ static void Task_EggHatchPlayBGM(u8 taskID)
if (gTasks[taskID].data[0] == 0)
{
StopMapMusic();
play_some_sound();
PlayRainSoundEffect();
}
if (gTasks[taskID].data[0] == 1)
PlayBGM(MUS_ME_SHINKA);
+388 -388
View File
@@ -9,7 +9,7 @@
#include "field_effect_helpers.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
#include "malloc.h"
#include "alloc.h"
#include "mauville_old_man.h"
#include "metatile_behavior.h"
#include "overworld.h"
@@ -142,255 +142,255 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = {
// movement type callbacks
static void (*const sMovementTypeCallbacks[])(struct Sprite *) =
{
MovementType_None, // MOVEMENT_TYPE_NONE
MovementType_LookAround, // MOVEMENT_TYPE_LOOK_AROUND
MovementType_WanderAround, // MOVEMENT_TYPE_WANDER_AROUND
MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_UP
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_DOWN
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_LEFT
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_RIGHT
MovementType_Player, // MOVEMENT_TYPE_PLAYER
MovementType_BerryTreeGrowth, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
MovementType_FaceDownAndUp, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
MovementType_FaceLeftAndRight, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
MovementType_FaceUpAndLeft, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
MovementType_FaceUpAndRight, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
MovementType_FaceDownAndLeft, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
MovementType_FaceDownAndRight, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
MovementType_FaceDownUpAndLeft, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
MovementType_FaceDownUpAndRight, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
MovementType_FaceUpRightAndLeft, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
MovementType_FaceDownRightAndLeft, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
MovementType_RotateCounterclockwise, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
MovementType_RotateClockwise, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
MovementType_WalkSequenceUpRightLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
MovementType_WalkSequenceRightLeftDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
MovementType_WalkSequenceDownUpRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
MovementType_WalkSequenceLeftDownUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
MovementType_WalkSequenceUpLeftRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
MovementType_WalkSequenceLeftRightDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
MovementType_WalkSequenceDownUpLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
MovementType_WalkSequenceRightDownUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
MovementType_WalkSequenceLeftUpDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
MovementType_WalkSequenceUpDownRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
MovementType_WalkSequenceRightLeftUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
MovementType_WalkSequenceDownRightLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
MovementType_WalkSequenceRightUpDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
MovementType_WalkSequenceUpDownLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
MovementType_WalkSequenceLeftRightUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
MovementType_WalkSequenceDownLeftRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
MovementType_WalkSequenceUpLeftDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
MovementType_WalkSequenceDownRightUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
MovementType_WalkSequenceLeftDownRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
MovementType_WalkSequenceRightUpLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
MovementType_WalkSequenceUpRightDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
MovementType_WalkSequenceDownLeftUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
MovementType_WalkSequenceLeftUpRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
MovementType_WalkSequenceRightDownLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
MovementType_TreeDisguise, // MOVEMENT_TYPE_TREE_DISGUISE
MovementType_MountainDisguise, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
MovementType_Hidden, // MOVEMENT_TYPE_HIDDEN
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
MovementType_Invisible, // MOVEMENT_TYPE_INVISIBLE
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
[MOVEMENT_TYPE_NONE] = MovementType_None,
[MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround,
[MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround,
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown,
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown,
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight,
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight,
[MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection,
[MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection,
[MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection,
[MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection,
[MOVEMENT_TYPE_PLAYER] = MovementType_Player,
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = MovementType_BerryTreeGrowth,
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp,
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight,
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft,
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight,
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft,
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight,
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft,
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft,
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise,
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise,
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth,
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth,
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth,
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp,
[MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer,
[MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise,
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise,
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
[MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace,
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = MovementType_RunInPlace,
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = MovementType_RunInPlace,
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = MovementType_RunInPlace,
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = MovementType_RunInPlace,
[MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace,
};
const u8 gRangedMovementTypes[] = {
0, // MOVEMENT_TYPE_NONE
0, // MOVEMENT_TYPE_LOOK_AROUND
1, // MOVEMENT_TYPE_WANDER_AROUND
1, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
1, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
1, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
1, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
0, // MOVEMENT_TYPE_FACE_UP
0, // MOVEMENT_TYPE_FACE_DOWN
0, // MOVEMENT_TYPE_FACE_LEFT
0, // MOVEMENT_TYPE_FACE_RIGHT
0, // MOVEMENT_TYPE_PLAYER
0, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
0, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
0, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
0, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
0, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
0, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
0, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
0, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
0, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
0, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
0, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
1, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
1, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
1, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
1, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
1, // MOVEMENT_TYPE_COPY_PLAYER
1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
0, // MOVEMENT_TYPE_TREE_DISGUISE
0, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
1, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
0, // MOVEMENT_TYPE_HIDDEN
0, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
0, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
0, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
0, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
0, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
0, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
0, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
0, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
0, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
0, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
0, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
0, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
0, // MOVEMENT_TYPE_INVISIBLE
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
[MOVEMENT_TYPE_NONE] = 0,
[MOVEMENT_TYPE_LOOK_AROUND] = 0,
[MOVEMENT_TYPE_WANDER_AROUND] = 1,
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = 1,
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = 1,
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = 1,
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = 1,
[MOVEMENT_TYPE_FACE_UP] = 0,
[MOVEMENT_TYPE_FACE_DOWN] = 0,
[MOVEMENT_TYPE_FACE_LEFT] = 0,
[MOVEMENT_TYPE_FACE_RIGHT] = 0,
[MOVEMENT_TYPE_PLAYER] = 0,
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = 0,
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = 0,
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = 0,
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = 0,
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = 0,
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = 0,
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = 0,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = 0,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = 0,
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = 0,
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = 0,
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = 0,
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = 0,
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = 1,
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = 1,
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = 1,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = 1,
[MOVEMENT_TYPE_COPY_PLAYER] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = 1,
[MOVEMENT_TYPE_TREE_DISGUISE] = 0,
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = 0,
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1,
[MOVEMENT_TYPE_HIDDEN] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = 0,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = 0,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = 0,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = 0,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = 0,
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = 0,
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = 0,
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = 0,
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = 0,
[MOVEMENT_TYPE_INVISIBLE] = 0,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = 0,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = 0,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = 0,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = 0,
};
const u8 gInitialMovementTypeFacingDirections[] = {
DIR_SOUTH, // MOVEMENT_TYPE_NONE
DIR_SOUTH, // MOVEMENT_TYPE_LOOK_AROUND
DIR_SOUTH, // MOVEMENT_TYPE_WANDER_AROUND
DIR_NORTH, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
DIR_SOUTH, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
DIR_WEST, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
DIR_EAST, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN
DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT
DIR_EAST, // MOVEMENT_TYPE_FACE_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_PLAYER
DIR_SOUTH, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
DIR_NORTH, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
DIR_SOUTH, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
DIR_WEST, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
DIR_EAST, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER
DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
DIR_SOUTH, // MOVEMENT_TYPE_TREE_DISGUISE
DIR_SOUTH, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
DIR_SOUTH, // MOVEMENT_TYPE_HIDDEN
DIR_SOUTH, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
DIR_NORTH, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
DIR_WEST, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
DIR_EAST, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
DIR_NORTH, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
DIR_WEST, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
DIR_EAST, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
DIR_NORTH, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
DIR_WEST, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
DIR_EAST, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
DIR_SOUTH, // MOVEMENT_TYPE_INVISIBLE
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
DIR_NORTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
DIR_WEST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
DIR_EAST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
[MOVEMENT_TYPE_NONE] = DIR_SOUTH,
[MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH,
[MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH,
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = DIR_NORTH,
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = DIR_SOUTH,
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = DIR_WEST,
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = DIR_EAST,
[MOVEMENT_TYPE_FACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_FACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_FACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_PLAYER] = DIR_SOUTH,
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = DIR_WEST,
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = DIR_NORTH,
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = DIR_NORTH,
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = DIR_SOUTH,
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = DIR_NORTH,
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = DIR_SOUTH,
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = DIR_SOUTH,
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = DIR_EAST,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = DIR_EAST,
[MOVEMENT_TYPE_COPY_PLAYER] = DIR_NORTH,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = DIR_SOUTH,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = DIR_WEST,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = DIR_EAST,
[MOVEMENT_TYPE_TREE_DISGUISE] = DIR_SOUTH,
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = DIR_SOUTH,
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = DIR_NORTH,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST,
[MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST,
};
#define EVENT_OBJ_PAL_TAG_0 0x1103
@@ -668,181 +668,181 @@ const s16 gMovementDelaysShort[] = {32, 48, 64, 80};
#include "data/field_event_obj/movement_type_func_tables.h"
const u8 gFaceDirectionAnimNums[] = {
0, // DIR_NONE
0, // DIR_SOUTH
1, // DIR_NORTH
2, // DIR_WEST
3, // DIR_EAST
0, // DIR_SOUTHWEST
0, // DIR_SOUTHEAST
1, // DIR_NORTHWEST
1, // DIR_NORTHEAST
[DIR_NONE] = 0,
[DIR_SOUTH] = 0,
[DIR_NORTH] = 1,
[DIR_WEST] = 2,
[DIR_EAST] = 3,
[DIR_SOUTHWEST] = 0,
[DIR_SOUTHEAST] = 0,
[DIR_NORTHWEST] = 1,
[DIR_NORTHEAST] = 1,
};
const u8 gMoveDirectionAnimNums[] = {
4, // DIR_NONE
4, // DIR_SOUTH
5, // DIR_NORTH
6, // DIR_WEST
7, // DIR_EAST
4, // DIR_SOUTHWEST
4, // DIR_SOUTHEAST
5, // DIR_NORTHWEST
5, // DIR_NORTHEAST
[DIR_NONE] = 4,
[DIR_SOUTH] = 4,
[DIR_NORTH] = 5,
[DIR_WEST] = 6,
[DIR_EAST] = 7,
[DIR_SOUTHWEST] = 4,
[DIR_SOUTHEAST] = 4,
[DIR_NORTHWEST] = 5,
[DIR_NORTHEAST] = 5,
};
const u8 gMoveDirectionFastAnimNums[] = {
8, // DIR_NONE
8, // DIR_SOUTH
9, // DIR_NORTH
10, // DIR_WEST
11, // DIR_EAST
8, // DIR_SOUTHWEST
8, // DIR_SOUTHEAST
9, // DIR_NORTHWEST
9, // DIR_NORTHEAST
[DIR_NONE] = 8,
[DIR_SOUTH] = 8,
[DIR_NORTH] = 9,
[DIR_WEST] = 10,
[DIR_EAST] = 11,
[DIR_SOUTHWEST] = 8,
[DIR_SOUTHEAST] = 8,
[DIR_NORTHWEST] = 9,
[DIR_NORTHEAST] = 9,
};
const u8 gMoveDirectionFasterAnimNums[] = {
12, // DIR_NONE
12, // DIR_SOUTH
13, // DIR_NORTH
14, // DIR_WEST
15, // DIR_EAST
12, // DIR_SOUTHWEST
12, // DIR_SOUTHEAST
13, // DIR_NORTHWEST
13, // DIR_NORTHEAST
[DIR_NONE] = 12,
[DIR_SOUTH] = 12,
[DIR_NORTH] = 13,
[DIR_WEST] = 14,
[DIR_EAST] = 15,
[DIR_SOUTHWEST] = 12,
[DIR_SOUTHEAST] = 12,
[DIR_NORTHWEST] = 13,
[DIR_NORTHEAST] = 13,
};
const u8 gMoveDirectionFastestAnimNums[] = {
16, // DIR_NONE
16, // DIR_SOUTH
17, // DIR_NORTH
18, // DIR_WEST
19, // DIR_EAST
16, // DIR_SOUTHWEST
16, // DIR_SOUTHEAST
17, // DIR_NORTHWEST
17, // DIR_NORTHEAST
[DIR_NONE] = 16,
[DIR_SOUTH] = 16,
[DIR_NORTH] = 17,
[DIR_WEST] = 18,
[DIR_EAST] = 19,
[DIR_SOUTHWEST] = 16,
[DIR_SOUTHEAST] = 16,
[DIR_NORTHWEST] = 17,
[DIR_NORTHEAST] = 17,
};
const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon
20, // DIR_NONE
20, // DIR_SOUTH
21, // DIR_NORTH
22, // DIR_WEST
23, // DIR_EAST
20, // DIR_SOUTHWEST
20, // DIR_SOUTHEAST
21, // DIR_NORTHWEST
21, // DIR_NORTHEAST
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
[DIR_WEST] = 22,
[DIR_EAST] = 23,
[DIR_SOUTHWEST] = 20,
[DIR_SOUTHEAST] = 20,
[DIR_NORTHWEST] = 21,
[DIR_NORTHEAST] = 21,
};
const u8 gAcroWheelieDirectionAnimNums[] = {
20, // DIR_NONE
20, // DIR_SOUTH
21, // DIR_NORTH
22, // DIR_WEST
23, // DIR_EAST
20, // DIR_SOUTHWEST
20, // DIR_SOUTHEAST
21, // DIR_NORTHWEST
21, // DIR_NORTHEAST
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
[DIR_WEST] = 22,
[DIR_EAST] = 23,
[DIR_SOUTHWEST] = 20,
[DIR_SOUTHEAST] = 20,
[DIR_NORTHWEST] = 21,
[DIR_NORTHEAST] = 21,
};
const u8 gUnrefAnimNums_08375633[] = {
24, // DIR_NONE
24, // DIR_SOUTH
25, // DIR_NORTH
26, // DIR_WEST
27, // DIR_EAST
24, // DIR_SOUTHWEST
24, // DIR_SOUTHEAST
25, // DIR_NORTHWEST
25, // DIR_NORTHEAST
[DIR_NONE] = 24,
[DIR_SOUTH] = 24,
[DIR_NORTH] = 25,
[DIR_WEST] = 26,
[DIR_EAST] = 27,
[DIR_SOUTHWEST] = 24,
[DIR_SOUTHEAST] = 24,
[DIR_NORTHWEST] = 25,
[DIR_NORTHEAST] = 25,
};
const u8 gAcroEndWheelieDirectionAnimNums[] = {
28, // DIR_NONE
28, // DIR_SOUTH
29, // DIR_NORTH
30, // DIR_WEST
31, // DIR_EAST
28, // DIR_SOUTHWEST
28, // DIR_SOUTHEAST
29, // DIR_NORTHWEST
29, // DIR_NORTHEAST
[DIR_NONE] = 28,
[DIR_SOUTH] = 28,
[DIR_NORTH] = 29,
[DIR_WEST] = 30,
[DIR_EAST] = 31,
[DIR_SOUTHWEST] = 28,
[DIR_SOUTHEAST] = 28,
[DIR_NORTHWEST] = 29,
[DIR_NORTHEAST] = 29,
};
const u8 gAcroUnusedActionDirectionAnimNums[] = {
32, // DIR_NONE
32, // DIR_SOUTH
33, // DIR_NORTH
34, // DIR_WEST
35, // DIR_EAST
32, // DIR_SOUTHWEST
32, // DIR_SOUTHEAST
33, // DIR_NORTHWEST
33, // DIR_NORTHEAST
[DIR_NONE] = 32,
[DIR_SOUTH] = 32,
[DIR_NORTH] = 33,
[DIR_WEST] = 34,
[DIR_EAST] = 35,
[DIR_SOUTHWEST] = 32,
[DIR_SOUTHEAST] = 32,
[DIR_NORTHWEST] = 33,
[DIR_NORTHEAST] = 33,
};
const u8 gAcroWheeliePedalDirectionAnimNums[] = {
36, // DIR_NONE
36, // DIR_SOUTH
37, // DIR_NORTH
38, // DIR_WEST
39, // DIR_EAST
36, // DIR_SOUTHWEST
36, // DIR_SOUTHEAST
37, // DIR_NORTHWEST
37, // DIR_NORTHEAST
[DIR_NONE] = 36,
[DIR_SOUTH] = 36,
[DIR_NORTH] = 37,
[DIR_WEST] = 38,
[DIR_EAST] = 39,
[DIR_SOUTHWEST] = 36,
[DIR_SOUTHEAST] = 36,
[DIR_NORTHWEST] = 37,
[DIR_NORTHEAST] = 37,
};
const u8 gFishingDirectionAnimNums[] = {
0, // DIR_NONE
0, // DIR_SOUTH
1, // DIR_NORTH
2, // DIR_WEST
3, // DIR_EAST
0, // DIR_SOUTHWEST
0, // DIR_SOUTHEAST
1, // DIR_NORTHWEST
1, // DIR_NORTHEAST
[DIR_NONE] = 0,
[DIR_SOUTH] = 0,
[DIR_NORTH] = 1,
[DIR_WEST] = 2,
[DIR_EAST] = 3,
[DIR_SOUTHWEST] = 0,
[DIR_SOUTHEAST] = 0,
[DIR_NORTHWEST] = 1,
[DIR_NORTHEAST] = 1,
};
const u8 gFishingNoCatchDirectionAnimNums[] = {
4, // DIR_NONE
4, // DIR_SOUTH
5, // DIR_NORTH
6, // DIR_WEST
7, // DIR_EAST
4, // DIR_SOUTHWEST
4, // DIR_SOUTHEAST
5, // DIR_NORTHWEST
5, // DIR_NORTHEAST
[DIR_NONE] = 4,
[DIR_SOUTH] = 4,
[DIR_NORTH] = 5,
[DIR_WEST] = 6,
[DIR_EAST] = 7,
[DIR_SOUTHWEST] = 4,
[DIR_SOUTHEAST] = 4,
[DIR_NORTHWEST] = 5,
[DIR_NORTHEAST] = 5,
};
const u8 gFishingBiteDirectionAnimNums[] = {
8, // DIR_NONE
8, // DIR_SOUTH
9, // DIR_NORTH
10, // DIR_WEST
11, // DIR_EAST
8, // DIR_SOUTHWEST
8, // DIR_SOUTHEAST
9, // DIR_NORTHWEST
9, // DIR_NORTHEAST
[DIR_NONE] = 8,
[DIR_SOUTH] = 8,
[DIR_NORTH] = 9,
[DIR_WEST] = 10,
[DIR_EAST] = 11,
[DIR_SOUTHWEST] = 8,
[DIR_SOUTHEAST] = 8,
[DIR_NORTHWEST] = 9,
[DIR_NORTHEAST] = 9,
};
const u8 gRunningDirectionAnimNums[] = {
20, // DIR_NONE
20, // DIR_SOUTH
21, // DIR_NORTH
22, // DIR_WEST
23, // DIR_EAST
20, // DIR_SOUTHWEST
20, // DIR_SOUTHEAST
21, // DIR_NORTHWEST
21, // DIR_NORTHEAST
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
[DIR_WEST] = 22,
[DIR_EAST] = 23,
[DIR_SOUTHWEST] = 20,
[DIR_SOUTHEAST] = 20,
[DIR_NORTHWEST] = 21,
[DIR_NORTHEAST] = 21,
};
const u8 gTrainerFacingDirectionMovementTypes[] = {
MOVEMENT_TYPE_FACE_DOWN, // DIR_NONE
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTH
MOVEMENT_TYPE_FACE_UP, // DIR_NORTH
MOVEMENT_TYPE_FACE_LEFT, // DIR_WEST
MOVEMENT_TYPE_FACE_RIGHT, // DIR_EAST
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHWEST
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHEAST
MOVEMENT_TYPE_FACE_UP, // DIR_NORTHWEST
MOVEMENT_TYPE_FACE_UP, // DIR_NORTHEAST
[DIR_NONE] = MOVEMENT_TYPE_FACE_DOWN,
[DIR_SOUTH] = MOVEMENT_TYPE_FACE_DOWN,
[DIR_NORTH] = MOVEMENT_TYPE_FACE_UP,
[DIR_WEST] = MOVEMENT_TYPE_FACE_LEFT,
[DIR_EAST] = MOVEMENT_TYPE_FACE_RIGHT,
[DIR_SOUTHWEST] = MOVEMENT_TYPE_FACE_DOWN,
[DIR_SOUTHEAST] = MOVEMENT_TYPE_FACE_DOWN,
[DIR_NORTHWEST] = MOVEMENT_TYPE_FACE_UP,
[DIR_NORTHEAST] = MOVEMENT_TYPE_FACE_UP,
};
bool8 (*const gOppositeDirectionBlockedMetatileFuncs[])(u8) = {
+1 -1
View File
@@ -2,7 +2,7 @@
#include "evolution_scene.h"
#include "evolution_graphics.h"
#include "sprite.h"
#include "malloc.h"
#include "alloc.h"
#include "task.h"
#include "palette.h"
#include "main.h"
+1 -2
View File
@@ -8,10 +8,9 @@
#include "event_scripts.h"
#include "fieldmap.h"
#include "field_control_avatar.h"
#include "field_fadetransition.h"
#include "field_player_avatar.h"
#include "field_poison.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_specials.h"
#include "fldeff_80F9BCC.h"
#include "item_menu.h"
+19 -19
View File
@@ -6,7 +6,7 @@
#include "field_effect.h"
#include "field_effect_helpers.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "fldeff_groundshake.h"
@@ -244,7 +244,7 @@ extern void pal_fill_for_maplights(void);
extern void sub_80E1558(u8);
extern void sub_80E1570(void);
extern bool8 sub_80E1584(void);
extern void sub_80AF0B4(void);
extern void WarpFadeScreen(void);
// .rodata
const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
@@ -305,7 +305,7 @@ const union AnimCmd *const gNewGameBirchImageAnimTable[] = {
};
const struct SpriteTemplate gNewGameBirchObjectTemplate = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4102,
.oam = &gNewGameBirchOamAttributes,
.anims = gNewGameBirchImageAnimTable,
@@ -383,7 +383,7 @@ const union AnimCmd *const gSpriteAnimTable_855C300[] = {
};
const struct SpriteTemplate gSpriteTemplate_855C304 = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4103,
.oam = &gOamData_855C218,
.anims = gSpriteAnimTable_855C2F8,
@@ -393,7 +393,7 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = {
};
const struct SpriteTemplate gSpriteTemplate_855C31C = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4100,
.oam = &gOamData_855C220,
.anims = gSpriteAnimTable_855C2F8,
@@ -403,7 +403,7 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = {
};
const struct SpriteTemplate gSpriteTemplate_855C334 = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4112,
.oam = &gOamData_855C220,
.anims = gSpriteAnimTable_855C300,
@@ -413,7 +413,7 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = {
};
const struct SpriteTemplate gSpriteTemplate_855C34C = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4112,
.oam = &gOamData_855C26C,
.anims = gSpriteAnimTable_855C300,
@@ -1593,8 +1593,8 @@ static void sub_80B7004(struct Task *task)
static void sub_80B7050(void)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
static void sub_80B7060(void)
@@ -1943,8 +1943,8 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str
static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
task->data[0]++;
return FALSE;
}
@@ -2099,8 +2099,8 @@ static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, str
{
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
task->data[0]++;
}
return FALSE;
@@ -2161,8 +2161,8 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task)
u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
if (task->data[14] != 0 && (--task->data[14]) == 0)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject))
@@ -2314,8 +2314,8 @@ static void TeleportFieldEffectTask3(struct Task *task)
if (task->data[4] >= 0xa8)
{
task->data[0]++;
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
}
@@ -3123,7 +3123,7 @@ static void sub_80B9474(struct Task *task)
{
if (sub_80B9508(task->data[1]))
{
sub_80AF0B4();
WarpFadeScreen();
task->data[0]++;
}
}
@@ -3591,7 +3591,7 @@ const union AnimCmd *const gSpriteAnimTable_855C5DC[] = {
};
const struct SpriteTemplate gUnknown_0855C5EC = {
.tileTag = 0xffff,
.tileTag = 0xFFFF,
.paletteTag = 4378,
.oam = &gOamData_855C218,
.anims = gSpriteAnimTable_855C5DC,
+9 -9
View File
@@ -1007,15 +1007,15 @@ void UpdateSurfBlobFieldEffect(struct Sprite *sprite)
static void SynchroniseSurfAnim(struct EventObject *eventObject, struct Sprite *sprite)
{
u8 surfBlobDirectionAnims[] = {
0, // DIR_NONE
0, // DIR_SOUTH
1, // DIR_NORTH
2, // DIR_WEST
3, // DIR_EAST
0,
0,
1,
1,
[DIR_NONE] = 0,
[DIR_SOUTH] = 0,
[DIR_NORTH] = 1,
[DIR_WEST] = 2,
[DIR_EAST] = 3,
[DIR_SOUTHWEST] = 0,
[DIR_SOUTHEAST] = 0,
[DIR_NORTHWEST] = 1,
[DIR_NORTHEAST] = 1,
};
if (sub_8155640(sprite) == 0)
+1 -1
View File
@@ -3,7 +3,7 @@
#include "gpu_regs.h"
#include "international_string_util.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "menu.h"
#include "palette.h"
#include "region_map.h"
-15
View File
@@ -1,15 +0,0 @@
// Includes
#include "global.h"
// Static type declarations
// Static RAM declarations
IWRAM_DATA u8 *gUnknown_03000F50;
IWRAM_DATA u32 filler_03000f54;
// Static ROM declarations
// .rodata
// .text
File diff suppressed because it is too large Load Diff
+24 -24
View File
@@ -12,7 +12,7 @@
#include "field_effect.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_specials.h"
#include "field_weather.h"
#include "international_string_util.h"
@@ -20,7 +20,7 @@
#include "link.h"
#include "list_menu.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "match_call.h"
#include "menu.h"
#include "overworld.h"
@@ -1691,22 +1691,22 @@ const struct WindowTemplate gUnknown_085B2BAC = {
};
const u8 *const gElevatorFloorsTable[] = {
gText_B4F,
gText_B3F,
gText_B2F,
gText_B1F,
gText_1F,
gText_2F,
gText_3F,
gText_4F,
gText_5F,
gText_6F,
gText_7F,
gText_8F,
gText_9F,
gText_10F,
gText_11F,
gText_Rooftop
gText_B4F,
gText_B3F,
gText_B2F,
gText_B1F,
gText_1F,
gText_2F,
gText_3F,
gText_4F,
gText_5F,
gText_6F,
gText_7F,
gText_8F,
gText_9F,
gText_10F,
gText_11F,
gText_Rooftop
};
const u16 gUnknown_085B2BF4[][3] =
@@ -1957,7 +1957,7 @@ void sub_8139D98(void)
bool32 warp0_in_pokecenter(void)
{
static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff };
static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xFFFF };
int i;
u16 map = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum;
@@ -2946,10 +2946,10 @@ void sub_813AA44(void)
static void sub_813AA60(u16 a0, u16 a1)
{
static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff };
static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff };
static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff };
static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff };
static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xFFFF };
static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xFFFF };
static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xFFFF };
static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xFFFF };
static const u8 *const gUnknown_085B3170[] = {
BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA,
@@ -3841,7 +3841,7 @@ bool32 sub_813B9C0(void)
MAP_TRADE_CENTER,
MAP_RECORD_CORNER,
MAP_DOUBLE_BATTLE_COLOSSEUM,
0xffff
0xFFFF
};
int i;
+1095
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -496,7 +496,7 @@ u16 GetBehaviorByMetatileId(u16 metatile)
}
else
{
return 0xff;
return 0xFF;
}
}
+903 -20
View File
@@ -1,24 +1,43 @@
#include "global.h"
#include "battle_anim.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "sound.h"
#include "util.h"
#include "task.h"
#include "trig.h"
extern void sub_8108EC8(struct Sprite *);
extern void sub_8108F08(struct Sprite *);
extern void sub_8108FBC(struct Sprite *);
extern void sub_8108F4C(struct Sprite *);
extern void sub_8109064(struct Sprite *);
extern void sub_810916C(struct Sprite *);
extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
extern void sub_8109198(struct Sprite *);
extern void sub_8109200(struct Sprite *);
extern void sub_810921C(struct Sprite *);
extern void sub_8109364(struct Sprite *);
extern void sub_81093A4(struct Sprite *);
extern void sub_80A8EE4(struct Sprite *);
extern void sub_81098EC(struct Sprite *);
extern void sub_8109A10(struct Sprite *);
extern void sub_8109AFC(struct Sprite *);
extern void sub_8109CB0(struct Sprite *);
static void sub_8108EC8(struct Sprite *);
static void sub_8108F08(struct Sprite *);
static void sub_8108F4C(struct Sprite *);
static void sub_8108FBC(struct Sprite *);
static void sub_8109028(struct Sprite *);
static void sub_8109064(struct Sprite *);
static void sub_81090D8(struct Sprite *);
static void sub_810916C(struct Sprite *);
static void AnimEmberFlare(struct Sprite *);
static void sub_8109200(struct Sprite *);
static void AnimFireRing(struct Sprite *);
static void AnimFireRingStep1(struct Sprite *);
static void AnimFireRingStep2(struct Sprite *);
static void AnimFireRingStep3(struct Sprite *);
static void UpdateFireRingCircleOffset(struct Sprite *);
static void AnimFireCross(struct Sprite *);
static void sub_81093A4(struct Sprite *);
static void sub_81093E4(struct Sprite *);
static void sub_810940C(struct Sprite *);
static void sub_81094D0(u8 taskId);
static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3);
static void sub_81098EC(struct Sprite *);
static u16 sub_8109930(u8 spriteId);
static void sub_8109984(struct Sprite *sprite, s16 x, s16 y);
static void sub_81099A0(struct Sprite *);
static void sub_8109A10(struct Sprite *);
static void sub_8109A64(struct Sprite *);
static void sub_8109AFC(struct Sprite *);
static void sub_8109C4C(struct Sprite *);
static void sub_8109CB0(struct Sprite *);
static void sub_8109E2C(u8 taskId);
const union AnimCmd gUnknown_08595340[] =
{
@@ -234,7 +253,7 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate =
.anims = gUnknown_085954D0,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8109198,
.callback = AnimEmberFlare,
};
const struct SpriteTemplate gUnknown_08595504 =
@@ -256,7 +275,7 @@ const struct SpriteTemplate gUnknown_0859551C =
.anims = gUnknown_085954D0,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_810921C,
.callback = AnimFireRing,
};
const union AnimCmd gUnknown_08595534[] =
@@ -297,7 +316,7 @@ const struct SpriteTemplate gUnknown_0859556C =
.anims = gUnknown_08595540,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8109364,
.callback = AnimFireCross,
};
const struct SpriteTemplate gBattleAnimSpriteTemplate_8595584 =
@@ -436,3 +455,867 @@ const s8 gUnknown_08595694[16] =
{
-1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1,
};
static void sub_8108EC8(struct Sprite *sprite)
{
sprite->data[0] = gBattleAnimArgs[0];
sprite->data[1] = 0x3C;
sprite->data[2] = 0x9;
sprite->data[3] = 0x1E;
sprite->data[4] = 0xFE00;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A634C;
sprite->callback(sprite);
}
static void sub_8108F08(struct Sprite *sprite)
{
sub_80A6864(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[2] = gBattleAnimArgs[3];
sprite->callback = sub_80A656C;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_8108F4C(struct Sprite *sprite)
{
sub_80A6838(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
{
sprite->pos1.x -= gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[2] = -gBattleAnimArgs[4];
}
else
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[2] = gBattleAnimArgs[4];
}
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[4] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[5];
sprite->callback = sub_8109028;
}
static void sub_8108FBC(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker))
{
sprite->pos1.x -= gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[2] = gBattleAnimArgs[4];
}
else
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[2] = -gBattleAnimArgs[4];
}
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[4] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[5];
sprite->callback = sub_8109028;
}
static void sub_8109028(struct Sprite *sprite)
{
if (++sprite->data[0] < sprite->data[4])
{
sprite->pos2.x += sprite->data[2];
sprite->pos2.y += sprite->data[3];
}
if (sprite->data[0] == sprite->data[1])
move_anim_8074EE0(sprite);
}
static void sub_8109064(struct Sprite *sprite)
{
sub_80A6838(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
{
sprite->pos1.x -= gBattleAnimArgs[0];
}
else
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->subpriority = 8;
}
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[2] = gBattleAnimArgs[4];
sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6];
sprite->data[5] = 0;
sprite->callback = sub_81090D8;
}
static void sub_81090D8(struct Sprite *sprite)
{
if (sprite->data[3])
{
if(sprite->data[5] > 10000)
sprite->subpriority = 1;
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8));
sprite->pos2.y = Cos(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8));
sprite->data[0] += sprite->data[2];
sprite->data[5] += sprite->data[4];
if (sprite->data[0] > 255)
sprite->data[0] -= 256;
else if (sprite->data[0] < 0)
sprite->data[0] += 256;
sprite->data[3]--;
}
else
{
move_anim_8074EE0(sprite);
}
}
//sunlight
static void sub_810916C(struct Sprite *sprite)
{
sprite->pos1.x = 0;
sprite->pos1.y = 0;
sprite->data[0] = 60;
sprite->data[2] = 140;
sprite->data[4] = 80;
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
//fire 2
// Animates the secondary effect of MOVE_EMBER, where the flames grow and slide
// horizontally a bit.
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
// arg 2: target x pixel offset
// arg 3: target y pixel offset
// arg 4: duration
// arg 5: ? (todo: something related to which mon the pixel offsets are based on)
// arg 6: ? (todo: something related to which mon the pixel offsets are based on)
static void AnimEmberFlare(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)
&& (gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)
|| gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->callback = sub_80A7938;
sprite->callback(sprite);
}
static void sub_8109200(struct Sprite *sprite)
{
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->callback = sub_80A7938;
}
// Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST
// animation. The fire sprite first moves in a circle around the mon,
// and then it is translated towards the target mon, while still rotating.
// Lastly, it moves in a circle around the target mon.
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
// arg 2: initial wave offset
//void AnimFireRing(struct Sprite *sprite)
void AnimFireRing(struct Sprite *sprite)
{
InitAnimSpritePos(sprite, 1);
sprite->data[7] = gBattleAnimArgs[2];
sprite->data[0] = 0;
sprite->callback = AnimFireRingStep1;
}
static void AnimFireRingStep1(struct Sprite *sprite)
{
UpdateFireRingCircleOffset(sprite);
if (++sprite->data[0] == 0x12)
{
sprite->data[0] = 0x19;
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
InitAnimLinearTranslation(sprite);
sprite->callback = AnimFireRingStep2;
}
}
static void AnimFireRingStep2(struct Sprite *sprite)
{
if (TranslateAnimLinear(sprite))
{
sprite->data[0] = 0;
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->pos2.y = 0;
sprite->pos2.x = 0;
sprite->callback = AnimFireRingStep3;
sprite->callback(sprite);
}
else
{
sprite->pos2.x += Sin(sprite->data[7], 28);
sprite->pos2.y += Cos(sprite->data[7], 28);
sprite->data[7] = (sprite->data[7] + 20) & 0xFF;
}
}
static void AnimFireRingStep3(struct Sprite *sprite)
{
UpdateFireRingCircleOffset(sprite);
if (++sprite->data[0] == 0x1F)
DestroyAnimSprite(sprite);
}
static void UpdateFireRingCircleOffset(struct Sprite *sprite)
{
sprite->pos2.x = Sin(sprite->data[7], 28);
sprite->pos2.y = Cos(sprite->data[7], 28);
sprite->data[7] = (sprite->data[7] + 20) & 0xFF;
}
// arg 0: initial x pixel offset
// arg 1: initial y pixel offset
// arg 2: duration
// arg 3: x delta
// arg 4: y delta
// AnimFireCross(struct Sprite *sprite)
static void AnimFireCross(struct Sprite *sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[2] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A653C; //TranslateSpriteOverDuration
}
static void sub_81093A4(struct Sprite *sprite)
{
InitAnimSpritePos(sprite, 1);
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[3];
sprite->invisible = TRUE;
sprite->callback = WaitAnimForDuration;
StoreSpriteCallbackInData6(sprite, sub_81093E4);
}
static void sub_81093E4(struct Sprite *sprite)
{
sprite->invisible = FALSE;
sprite->data[0] = sprite->data[1];
sprite->data[1] = 0;
sprite->callback = sub_810940C;
sprite->callback(sprite);
}
static void sub_810940C(struct Sprite *sprite)
{
sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8);
sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8);
sprite->data[1] = (sprite->data[1] + 10) & 0xFF;
sprite->data[2] += 0xD0;
if (--sprite->data[0] == -1)
DestroyAnimSprite(sprite);
}
void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION?
{
struct Task *task = &gTasks[taskId];
task->data[15] = GetAnimBattlerSpriteId(0);
task->data[0] = 0;
task->data[1] = 0;
task->data[2] = 0;
task->data[3] = 0;
task->data[4] = gSprites[task->data[15]].pos1.y;
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
task->data[6] = 0;
sub_80A7270(task->data[15], 0);
task->func = sub_81094D0;
}
static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
{
struct Task *task = &gTasks[taskId];
switch (task->data[0])
{
case 0:
sub_80A805C(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20);
task->data[0]++;
case 1:
if (++task->data[1] > 1)
{
task->data[1] = 0;
if (++task->data[2] & 0x1)
gSprites[task->data[15]].pos2.x = 3;
else
gSprites[task->data[15]].pos2.x = -3;
}
if (task->data[5])
{
if (++task->data[3] > 4)
{
task->data[3] = 0;
gSprites[task->data[15]].pos1.y++;
}
}
if(!sub_80A80C8(task))
{
sub_80A7E6C(task->data[15]);
gSprites[task->data[15]].pos2.x = 0;
task->data[1] = 0;
task->data[2] = 0;
task->data[3] = 0;
task->data[0]++;
}
break;
case 2:
if (++task->data[1] > 4)
{
if (task->data[5])
sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6);
else
sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6);
task->data[1] = 0;
task->data[0]++;
}
break;
case 3:
if (!sub_80A80C8(task))
{
sub_81097B4(task->data[15], taskId, 6);
task->data[0]++;
}
break;
case 4:
if (++task->data[1] > 1)
{
task->data[1] = 0;
if (++task->data[2] & 1)
gSprites[task->data[15]].pos2.y += 3;
else
gSprites[task->data[15]].pos2.y -= 3;
}
if (++task->data[3] > 0x18)
{
if (task->data[5])
sub_80A805C(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8);
else
sub_80A805C(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8);
if (task->data[2] & 1)
gSprites[task->data[15]].pos2.y -= 3;
task->data[1] = 0;
task->data[2] = 0;
task->data[3] = 0;
task->data[0]++;
}
break;
case 5:
if (task->data[5])
gSprites[task->data[15]].pos1.y--;
if (!sub_80A80C8(task))
{
gSprites[task->data[15]].pos1.y = task->data[4];
sub_80A7344(task->data[15]);
task->data[2] = 0;
task->data[0]++;
}
break;
case 6:
if (!task->data[6])
DestroyAnimVisualTask(taskId);
break;
default:
}
}
static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3)
{
u16 i, j;
s8 sign;
u16 y = sub_8109930(spriteId);
u16 x = gSprites[spriteId].pos1.x;
if(!GetBattlerSide(gBattleAnimAttacker))
{
x -= 0xC;
sign = 1;
}
else
{
x += 0x10;
sign = -1;
}
for (i = 0, j = 0; i <= 6; i++)
{
u8 spriteId = CreateSprite(&gUnknown_085955B4, x, y, 2);
if (spriteId != 0x40)
{
gSprites[spriteId].oam.tileNum += j * 4 + 0x40;
if (++j >= 5)
j = 0;
//gHeatedRockCoords
sub_8109984(&gSprites[spriteId], gUnknown_085955CC[i][0] * sign, gUnknown_085955CC[i][1]);
gSprites[spriteId].data[6] = taskId;
gSprites[spriteId].data[7] = a3;
gTasks[taskId].data[a3]++;
}
}
}
static void sub_81098EC(struct Sprite *sprite)
{
sub_81099A0(sprite);
if (sprite->invisible)
{
gTasks[sprite->data[6]].data[sprite->data[7]]--;
DestroySprite(sprite);
}
}
static u16 sub_8109930(u8 spriteId)
{
u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY;
if (GetBattlerSide(gBattleAnimAttacker) == 0)
{
var1 = ((var1 << 16) + 0x4A0000) >> 16;
}
else
{
var1 = ((var1 << 16) + 0x2C0000) >> 16;
}
return var1;
}
static void sub_8109984(struct Sprite *sprite, s16 x, s16 y)
{
sprite->data[0] = 0;
sprite->data[1] = 0;
sprite->data[2] = (u16)sprite->pos1.x * 8;
sprite->data[3] = (u16)sprite->pos1.y * 8;
sprite->data[4] = x * 8;
sprite->data[5] = y * 8;
}
static void sub_81099A0(struct Sprite *sprite)
{
int var1;
if (++sprite->data[0] > 2)
{
sprite->data[0] = 0;
++sprite->data[1];
var1 = (u16)sprite->data[1] * (u16)sprite->data[1];
sprite->data[3] += var1;
}
sprite->data[2] += sprite->data[4];
sprite->pos1.x = sprite->data[2] >> 3;
sprite->data[3] += sprite->data[5];
sprite->pos1.y = sprite->data[3] >> 3;
if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120)
sprite->invisible = TRUE;
}
static void sub_8109A10(struct Sprite *sprite)
{
sprite->pos1.x = gBattleAnimArgs[0];
sprite->pos1.y = gBattleAnimArgs[1];
sprite->data[0] = 0;
sprite->data[1] = 0;
sprite->data[2] = 0;
sprite->data[6] = gBattleAnimArgs[2];
sprite->data[7] = gBattleAnimArgs[3];
sprite->oam.tileNum += gBattleAnimArgs[4] * 16;
sprite->callback = sub_8109A64;
}
static void sub_8109A64(struct Sprite *sprite)
{
switch (sprite->data[0])
{
case 0:
if (sprite->data[6] != 0)
{
sprite->data[6]--;
return;
}
sprite->data[0]++;
// fall through
case 1:
sprite->pos1.y += 8;
if (sprite->pos1.y >= sprite->data[7])
{
sprite->pos1.y = sprite->data[7];
sprite->data[0]++;
}
break;
case 2:
if (++sprite->data[1] > 1)
{
sprite->data[1] = 0;
if ((++sprite->data[2] & 1) != 0)
{
sprite->pos2.y = -3;
}
else
{
sprite->pos2.y = 3;
}
}
if (++sprite->data[3] > 16)
{
DestroyAnimSprite(sprite);
}
break;
}
}
//wisp orb
static void sub_8109AFC(struct Sprite *sprite)
{
switch (sprite->data[0])
{
case 0:
InitAnimSpritePos(sprite, 0);
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
sprite->data[7] = gBattleAnimArgs[2];
if (GetBattlerSide(gBattleAnimAttacker) != 0)
{
sprite->data[4] = 4;
}
else
{
sprite->data[4] = -4;
}
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
sprite->data[0]++;
break;
case 1:
sprite->data[1] += 192;
if (GetBattlerSide(gBattleAnimAttacker) != 0)
{
sprite->pos2.y = -(sprite->data[1] >> 8);
}
else
{
sprite->pos2.y = sprite->data[1] >> 8;
}
sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
if (++sprite->data[3] == 1)
{
sprite->data[3] = 0;
sprite->data[0]++;
}
break;
case 2:
sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
if (++sprite->data[3] == 31)
{
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.y = 0;
sprite->pos2.x = 0;
sprite->data[0] = 256;
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sub_80A6FD4(sprite);
sprite->callback = sub_8109C4C;
}
break;
}
}
static void sub_8109C4C(struct Sprite *sprite)
{
s16 initialData5;
s16 newData5;
if (!TranslateAnimLinear(sprite))
{
sprite->pos2.x += Sin(sprite->data[5], 16);
initialData5 = sprite->data[5];
sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
newData5 = sprite->data[5];
if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
{
PlaySE12WithPanning(SE_W172, gUnknown_02038440);
}
}
else
{
DestroyAnimSprite(sprite);
}
}
//wisp fire
void sub_8109CB0(struct Sprite *sprite)
{
if (!sprite->data[0])
{
sprite->data[1] = gBattleAnimArgs[0];
sprite->data[0] += 1;
}
sprite->data[3] += 0xC0 * 2;
sprite->data[4] += 0xA0;
sprite->pos2.x = Sin(sprite->data[1], sprite->data[3] >> 8);
sprite->pos2.y = Cos(sprite->data[1], sprite->data[4] >> 8);
sprite->data[1] = (sprite->data[1] + 7) & 0xFF;
if (!IsContest())
{
if (sprite->data[1] < 64 || sprite->data[1] > 195)
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
else
sprite->oam.priority = sub_80A8328(gBattleAnimTarget) + 1;
}
else
{
if (sprite->data[1] < 64 || sprite->data[1] > 195)
sprite->subpriority = 0x1D;
else
sprite->subpriority = 0x1F;
}
if (++sprite->data[2] > 0x14)
sprite->invisible ^= 1;
if (sprite->data[2] == 0x1E)
DestroyAnimSprite(sprite);
}
void sub_8109DBC(u8 taskId)
{
struct Task *task = &gTasks[taskId];
task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1;
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1;
task->data[14] = GetAnimBattlerSpriteId(1);
task->data[15] = GetAnimBattlerSpriteId(3);
task->func = sub_8109E2C;
}
static void sub_8109E2C(u8 taskId)
{
struct Task *task = &gTasks[taskId];
switch (task->data[0])
{
case 0:
task->data[10] += task->data[12] * 2;
if (++task->data[1] >= 2)
{
task->data[1] = 0;
task->data[2]++;
if (task->data[2] & 1)
task->data[11] = 2;
else
task->data[11] = -2;
}
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
{
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
}
if (++task->data[9] == 16)
{
task->data[9] = 0;
task->data[0]++;
}
break;
case 1:
if (++task->data[1] >= 5)
{
task->data[1] = 0;
task->data[2]++;
if (task->data[2] & 1)
task->data[11] = 2;
else
task->data[11] = -2;
}
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
{
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
}
if (++task->data[9] == 96)
{
task->data[9] = 0;
task->data[0]++;
}
break;
case 2:
task->data[10] -= task->data[12] * 2;
if (++task->data[1] >= 2)
{
task->data[1] = 0;
task->data[2]++;
if (task->data[2] & 1)
task->data[11] = 2;
else
task->data[11] = -2;
}
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
{
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
}
if (++task->data[9] == 16)
{
task->data[0]++;
}
break;
case 3:
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
{
gSprites[task->data[task->data[3] + 14]].pos2.x = 0;
}
DestroyAnimVisualTask(taskId);
break;
}
}
// Used to add a color mask to the battle interface / HUD in Heat Wave.
// arg 0: opacity
// arg 1: color code
void AnimTask_BlendBackground(u8 taskId)
{
struct UnknownAnimStruct2 unk;
sub_80A6B30(&unk);
BlendPalette(unk.unk8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor
DestroyAnimVisualTask(taskId);
}
void sub_810A094(u8 taskId)
{
s8 unk;
u8 spriteId;
if (gTasks[taskId].data[0] == 0)
{
gTasks[taskId].data[1] = gBattleAnimArgs[0];
gTasks[taskId].data[2] = gBattleAnimArgs[1];
gTasks[taskId].data[3] = gBattleAnimArgs[2];
gTasks[taskId].data[4] = gBattleAnimArgs[3];
}
gTasks[taskId].data[0]++;
spriteId = gBattlerSpriteIds[gBattleAnimTarget];
if (!gTasks[taskId].data[4])
unk = gUnknown_08595684[gTasks[taskId].data[0] % 10];
else
unk = gUnknown_08595694[gTasks[taskId].data[0] % 10];
if (gTasks[taskId].data[3] == 1)
gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk;
else
gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk;
if (gTasks[taskId].data[0] == gTasks[taskId].data[1])
{
gSprites[spriteId].pos2.x = 0;
gSprites[spriteId].pos2.y = 0;
DestroyAnimVisualTask(taskId);
}
}
+1 -1
View File
@@ -6,7 +6,7 @@
#include "field_player_avatar.h"
#include "fieldmap.h"
#include "fldeff_cut.h"
#include "malloc.h"
#include "alloc.h"
#include "metatile_behavior.h"
#include "overworld.h"
#include "party_menu.h"
+2 -2
View File
@@ -170,7 +170,7 @@ static bool8 sub_8137304(void)
return FALSE;
}
bool8 sub_8137360(u8 a1, u8 a2)
bool8 GetMapPairFadeToType(u8 a1, u8 a2)
{
u8 i;
u8 v0 = a1;
@@ -187,7 +187,7 @@ bool8 sub_8137360(u8 a1, u8 a2)
return FALSE;
}
bool8 fade_type_for_given_maplight_pair(u8 a1, u8 a2)
bool8 GetMapPairFadeFromType(u8 a1, u8 a2)
{
u8 i;
u8 v0 = a1;
+13 -3
View File
@@ -2,7 +2,7 @@
#include "event_data.h"
#include "event_object_movement.h"
#include "field_camera.h"
#include "malloc.h"
#include "alloc.h"
#include "random.h"
#include "roulette_util.h"
#include "script.h"
@@ -32,7 +32,17 @@ static void sub_81BEA20(void);
static void sub_81BEAD8(struct Sprite* sprite);
// rodata
static const u8 gUnknown_08617E18[] = {0x3b, 0x43, 0x61, 0x00, 0x0f, 0x05, 0xff, 0x9b};
const struct InnerStruct203CF18_3 gUnknown_08617E18 = {
.unk0 = 0x433b,
.unk2 = 0x61,
.unk4 = 0x0F,
.unk5 = 0x05,
.unk6 = 0xFF,
.unk7_0 = 0xB,
.unk7_4 = 0x1,
.unk7_6 = 0,
.unk7_7 = 1,
};
static const union AnimCmd gSpriteAnim_8617E20[] =
{
@@ -131,7 +141,7 @@ void sub_81BE6B8(void)
gUnknown_0203CF18 = (struct Struct203CF18 *)AllocZeroed(sizeof(struct Struct203CF18));
sub_8151B3C(&(gUnknown_0203CF18->unk4));
sub_8151B68(&(gUnknown_0203CF18->unk4), gUnknown_08617E18);
sub_8151B68(&(gUnknown_0203CF18->unk4), &gUnknown_08617E18);
sub_8151CA8(&(gUnknown_0203CF18->unk4), 1, 1);
gUnknown_0203CF18->taskId = CreateTask(sub_81BE698, 0xFF);
}
+3 -2
View File
@@ -3,7 +3,8 @@
#include "event_scripts.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "palette.h"
#include "party_menu.h"
#include "rom6.h"
@@ -40,7 +41,7 @@ bool8 FldEff_SweetScent(void)
{
u8 taskId;
sub_80AC3D0();
SetWeatherScreenFadeOut();
taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect;
+99 -99
View File
@@ -8,7 +8,7 @@
#include "fieldmap.h"
#include "global.fieldmap.h"
#include "gpu_regs.h"
#include "malloc.h"
#include "alloc.h"
#include "menu.h"
#include "random.h"
#include "script.h"
@@ -458,104 +458,104 @@ static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x8\n\
str r0, [sp]\n\
mov r10, r1\n\
adds r6, r2, 0\n\
mov r8, r3\n\
ldr r0, [sp, 0x28]\n\
mov r9, r0\n\
lsls r1, 16\n\
lsrs r1, 16\n\
mov r10, r1\n\
lsls r6, 24\n\
lsrs r6, 24\n\
mov r0, r8\n\
lsls r0, 24\n\
mov r8, r0\n\
lsrs r7, r0, 24\n\
mov r1, r9\n\
lsls r1, 24\n\
lsrs r1, 24\n\
mov r9, r1\n\
mov r0, r10\n\
adds r1, r7, 0\n\
bl __divsi3\n\
adds r5, r0, 0\n\
lsls r5, 24\n\
lsrs r4, r5, 24\n\
ldr r3, =gUnknown_030012A8\n\
strh r4, [r3]\n\
mov r0, r10\n\
adds r1, r7, 0\n\
str r3, [sp, 0x4]\n\
bl __modsi3\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r3, [sp, 0x4]\n\
strh r2, [r3, 0x2]\n\
movs r1, 0x7\n\
ands r4, r1\n\
ands r2, r1\n\
strh r4, [r3, 0x4]\n\
strh r2, [r3, 0x6]\n\
lsrs r0, 27\n\
lsrs r5, 27\n\
strh r0, [r3, 0x8]\n\
strh r5, [r3, 0xA]\n\
mov r1, r8\n\
lsrs r1, 27\n\
lsls r1, 6\n\
mov r8, r1\n\
mov r1, r8\n\
muls r1, r5\n\
lsls r0, 6\n\
adds r1, r0\n\
lsls r1, 16\n\
lsrs r1, 16\n\
strh r1, [r3, 0xC]\n\
lsls r4, 3\n\
adds r4, r2\n\
adds r1, r4\n\
lsls r4, r1, 16\n\
lsrs r4, 17\n\
strh r1, [r3, 0xE]\n\
movs r1, 0x1\n\
mov r0, r10\n\
ands r1, r0\n\
movs r2, 0x1\n\
eors r1, r2\n\
lsls r0, r1, 2\n\
lsls r6, r0\n\
eors r1, r2\n\
lsls r1, 2\n\
movs r0, 0xF\n\
lsls r0, r1\n\
orrs r6, r0\n\
lsls r6, 24\n\
lsrs r6, 24\n\
mov r1, r9\n\
lsls r1, 5\n\
mov r9, r1\n\
add r9, r4\n\
ldr r1, [sp]\n\
add r1, r9\n\
ldrb r0, [r1]\n\
ands r6, r0\n\
strb r6, [r1]\n\
add sp, 0x8\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x8\n\
str r0, [sp]\n\
mov r10, r1\n\
adds r6, r2, 0\n\
mov r8, r3\n\
ldr r0, [sp, 0x28]\n\
mov r9, r0\n\
lsls r1, 16\n\
lsrs r1, 16\n\
mov r10, r1\n\
lsls r6, 24\n\
lsrs r6, 24\n\
mov r0, r8\n\
lsls r0, 24\n\
mov r8, r0\n\
lsrs r7, r0, 24\n\
mov r1, r9\n\
lsls r1, 24\n\
lsrs r1, 24\n\
mov r9, r1\n\
mov r0, r10\n\
adds r1, r7, 0\n\
bl __divsi3\n\
adds r5, r0, 0\n\
lsls r5, 24\n\
lsrs r4, r5, 24\n\
ldr r3, =gUnknown_030012A8\n\
strh r4, [r3]\n\
mov r0, r10\n\
adds r1, r7, 0\n\
str r3, [sp, 0x4]\n\
bl __modsi3\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r3, [sp, 0x4]\n\
strh r2, [r3, 0x2]\n\
movs r1, 0x7\n\
ands r4, r1\n\
ands r2, r1\n\
strh r4, [r3, 0x4]\n\
strh r2, [r3, 0x6]\n\
lsrs r0, 27\n\
lsrs r5, 27\n\
strh r0, [r3, 0x8]\n\
strh r5, [r3, 0xA]\n\
mov r1, r8\n\
lsrs r1, 27\n\
lsls r1, 6\n\
mov r8, r1\n\
mov r1, r8\n\
muls r1, r5\n\
lsls r0, 6\n\
adds r1, r0\n\
lsls r1, 16\n\
lsrs r1, 16\n\
strh r1, [r3, 0xC]\n\
lsls r4, 3\n\
adds r4, r2\n\
adds r1, r4\n\
lsls r4, r1, 16\n\
lsrs r4, 17\n\
strh r1, [r3, 0xE]\n\
movs r1, 0x1\n\
mov r0, r10\n\
ands r1, r0\n\
movs r2, 0x1\n\
eors r1, r2\n\
lsls r0, r1, 2\n\
lsls r6, r0\n\
eors r1, r2\n\
lsls r1, 2\n\
movs r0, 0xF\n\
lsls r0, r1\n\
orrs r6, r0\n\
lsls r6, 24\n\
lsrs r6, 24\n\
mov r1, r9\n\
lsls r1, 5\n\
mov r9, r1\n\
add r9, r4\n\
ldr r1, [sp]\n\
add r1, r9\n\
ldrb r0, [r1]\n\
ands r6, r0\n\
strb r6, [r1]\n\
add sp, 0x8\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
");
}
#endif // NONMATCHING
+1 -3
View File
@@ -24,7 +24,7 @@
#include "data2.h"
#include "record_mixing.h"
#include "strings.h"
#include "malloc.h"
#include "alloc.h"
#include "save.h"
#include "load_save.h"
#include "battle_dome.h"
@@ -48,8 +48,6 @@ struct FrontierBrainMon
u16 moves[4];
};
extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
extern void sub_81B8558(void);
// This file's functions.
+1151 -10
View File
File diff suppressed because it is too large Load Diff
+96 -96
View File
@@ -20,166 +20,166 @@ static void UpdateRegDispstatIntrBits(u16 regIE);
void InitGpuRegManager(void)
{
s32 i;
s32 i;
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
{
sGpuRegBuffer[i] = 0;
sGpuRegWaitingList[i] = EMPTY_SLOT;
}
sGpuRegBuffer[i] = 0;
sGpuRegWaitingList[i] = EMPTY_SLOT;
}
sGpuRegBufferLocked = FALSE;
sShouldSyncRegIE = FALSE;
sRegIE = 0;
sGpuRegBufferLocked = FALSE;
sShouldSyncRegIE = FALSE;
sRegIE = 0;
}
static void CopyBufferedValueToGpuReg(u8 regOffset)
{
if (regOffset == REG_OFFSET_DISPSTAT)
if (regOffset == REG_OFFSET_DISPSTAT)
{
REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT);
}
else
REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT);
}
else
{
GPU_REG(regOffset) = GPU_REG_BUF(regOffset);
}
GPU_REG(regOffset) = GPU_REG_BUF(regOffset);
}
}
void CopyBufferedValuesToGpuRegs(void)
{
if (!sGpuRegBufferLocked)
if (!sGpuRegBufferLocked)
{
s32 i;
s32 i;
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
{
u8 regOffset = sGpuRegWaitingList[i];
if (regOffset == EMPTY_SLOT)
return;
CopyBufferedValueToGpuReg(regOffset);
sGpuRegWaitingList[i] = EMPTY_SLOT;
}
}
u8 regOffset = sGpuRegWaitingList[i];
if (regOffset == EMPTY_SLOT)
return;
CopyBufferedValueToGpuReg(regOffset);
sGpuRegWaitingList[i] = EMPTY_SLOT;
}
}
}
void SetGpuReg(u8 regOffset, u16 value)
{
if (regOffset < GPU_REG_BUF_SIZE)
{
u16 vcount;
if (regOffset < GPU_REG_BUF_SIZE)
{
u16 vcount;
GPU_REG_BUF(regOffset) = value;
vcount = REG_VCOUNT & 0xFF;
GPU_REG_BUF(regOffset) = value;
vcount = REG_VCOUNT & 0xFF;
if ((vcount >= 161 && vcount <= 225)
|| (REG_DISPCNT & DISPCNT_FORCED_BLANK)) {
CopyBufferedValueToGpuReg(regOffset);
} else {
s32 i;
if ((vcount >= 161 && vcount <= 225)
|| (REG_DISPCNT & DISPCNT_FORCED_BLANK)) {
CopyBufferedValueToGpuReg(regOffset);
} else {
s32 i;
sGpuRegBufferLocked = TRUE;
sGpuRegBufferLocked = TRUE;
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
if (sGpuRegWaitingList[i] == regOffset) {
sGpuRegBufferLocked = FALSE;
return;
}
}
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
if (sGpuRegWaitingList[i] == regOffset) {
sGpuRegBufferLocked = FALSE;
return;
}
}
sGpuRegWaitingList[i] = regOffset;
sGpuRegBufferLocked = FALSE;
}
}
sGpuRegWaitingList[i] = regOffset;
sGpuRegBufferLocked = FALSE;
}
}
}
void SetGpuReg_ForcedBlank(u8 regOffset, u16 value)
{
if (regOffset < GPU_REG_BUF_SIZE)
{
GPU_REG_BUF(regOffset) = value;
if (regOffset < GPU_REG_BUF_SIZE)
{
GPU_REG_BUF(regOffset) = value;
if (REG_DISPCNT & DISPCNT_FORCED_BLANK) {
CopyBufferedValueToGpuReg(regOffset);
} else {
s32 i;
if (REG_DISPCNT & DISPCNT_FORCED_BLANK) {
CopyBufferedValueToGpuReg(regOffset);
} else {
s32 i;
sGpuRegBufferLocked = TRUE;
sGpuRegBufferLocked = TRUE;
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
if (sGpuRegWaitingList[i] == regOffset) {
sGpuRegBufferLocked = FALSE;
return;
}
}
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
if (sGpuRegWaitingList[i] == regOffset) {
sGpuRegBufferLocked = FALSE;
return;
}
}
sGpuRegWaitingList[i] = regOffset;
sGpuRegBufferLocked = FALSE;
}
}
sGpuRegWaitingList[i] = regOffset;
sGpuRegBufferLocked = FALSE;
}
}
}
u16 GetGpuReg(u8 regOffset)
{
if (regOffset == REG_OFFSET_DISPSTAT)
return REG_DISPSTAT;
if (regOffset == REG_OFFSET_DISPSTAT)
return REG_DISPSTAT;
if (regOffset == REG_OFFSET_VCOUNT)
return REG_VCOUNT;
if (regOffset == REG_OFFSET_VCOUNT)
return REG_VCOUNT;
return GPU_REG_BUF(regOffset);
return GPU_REG_BUF(regOffset);
}
void SetGpuRegBits(u8 regOffset, u16 mask)
{
u16 regValue = GPU_REG_BUF(regOffset);
SetGpuReg(regOffset, regValue | mask);
u16 regValue = GPU_REG_BUF(regOffset);
SetGpuReg(regOffset, regValue | mask);
}
void ClearGpuRegBits(u8 regOffset, u16 mask)
{
u16 regValue = GPU_REG_BUF(regOffset);
SetGpuReg(regOffset, regValue & ~mask);
u16 regValue = GPU_REG_BUF(regOffset);
SetGpuReg(regOffset, regValue & ~mask);
}
static void SyncRegIE(void)
{
if (sShouldSyncRegIE) {
u16 temp = REG_IME;
REG_IME = 0;
REG_IE = sRegIE;
REG_IME = temp;
sShouldSyncRegIE = FALSE;
}
if (sShouldSyncRegIE) {
u16 temp = REG_IME;
REG_IME = 0;
REG_IE = sRegIE;
REG_IME = temp;
sShouldSyncRegIE = FALSE;
}
}
void EnableInterrupts(u16 mask)
{
sRegIE |= mask;
sShouldSyncRegIE = TRUE;
SyncRegIE();
UpdateRegDispstatIntrBits(sRegIE);
sRegIE |= mask;
sShouldSyncRegIE = TRUE;
SyncRegIE();
UpdateRegDispstatIntrBits(sRegIE);
}
void DisableInterrupts(u16 mask)
{
sRegIE &= ~mask;
sShouldSyncRegIE = TRUE;
SyncRegIE();
UpdateRegDispstatIntrBits(sRegIE);
sRegIE &= ~mask;
sShouldSyncRegIE = TRUE;
SyncRegIE();
UpdateRegDispstatIntrBits(sRegIE);
}
static void UpdateRegDispstatIntrBits(u16 regIE)
{
u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
u16 newValue = 0;
u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
u16 newValue = 0;
if (regIE & INTR_FLAG_VBLANK)
newValue |= DISPSTAT_VBLANK_INTR;
if (regIE & INTR_FLAG_VBLANK)
newValue |= DISPSTAT_VBLANK_INTR;
if (regIE & INTR_FLAG_HBLANK)
newValue |= DISPSTAT_HBLANK_INTR;
if (regIE & INTR_FLAG_HBLANK)
newValue |= DISPSTAT_HBLANK_INTR;
if (oldValue != newValue)
SetGpuReg(REG_OFFSET_DISPSTAT, newValue);
if (oldValue != newValue)
SetGpuReg(REG_OFFSET_DISPSTAT, newValue);
}
+1 -1
View File
@@ -6,7 +6,7 @@
#include "pokemon.h"
#include "text.h"
#include "text_window.h"
#include "malloc.h"
#include "alloc.h"
#include "gpu_regs.h"
#include "graphics.h"
#include "main.h"
+3 -3
View File
@@ -5,7 +5,7 @@
#include "task.h"
#include "title_screen.h"
#include "libgcnmultiboot.h"
#include "malloc.h"
#include "alloc.h"
#include "gpu_regs.h"
#include "link.h"
#include "multiboot_pokemon_colosseum.h"
@@ -62,10 +62,10 @@ static const u32 gIntro3MiscTiles[] = INCBIN_U32("graphics/intro/intro3_misc.4bp
static const u16 gIntro1FlygonPalette[] = INCBIN_U16("graphics/intro/intro1_flygon.gbapal");
static const u32 gIntro1EonTiles_Unused[] = INCBIN_U32("graphics/intro/intro1_eon.4bpp.lz");
static const u8 sUnknownBytes[] = {
0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D,
0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D,
0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x02, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x02, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00
0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00
};
static const struct CompressedSpriteSheet gUnknown_085E4A74[] =
{
+135 -135
View File
@@ -4,7 +4,7 @@
#include "string_util.h"
#include "text.h"
#include "event_data.h"
#include "malloc.h"
#include "alloc.h"
#include "secret_base.h"
#include "item_menu.h"
#include "strings.h"
@@ -244,152 +244,152 @@ NAKED
bool8 CheckBagHasSpace(u16 itemId, u16 count)
{
asm_unified("push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x4\n\
lsls r0, 16\n\
lsrs r0, 16\n\
mov r8, r0\n\
lsls r1, 16\n\
lsrs r5, r1, 16\n\
bl ItemId_GetPocket\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _080D6906\n\
bl InBattlePyramid\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _080D6838\n\
ldr r0, =0x00004004\n\
bl FlagGet\n\
lsls r0, 24\n\
lsrs r0, 24\n\
cmp r0, 0x1\n\
bne _080D684C\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x4\n\
lsls r0, 16\n\
lsrs r0, 16\n\
mov r8, r0\n\
lsls r1, 16\n\
lsrs r5, r1, 16\n\
bl ItemId_GetPocket\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _080D6906\n\
bl InBattlePyramid\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _080D6838\n\
ldr r0, =0x00004004\n\
bl FlagGet\n\
lsls r0, 24\n\
lsrs r0, 24\n\
cmp r0, 0x1\n\
bne _080D684C\n\
_080D6838:\n\
mov r0, r8\n\
adds r1, r5, 0\n\
bl CheckPyramidBagHasSpace\n\
lsls r0, 24\n\
lsrs r0, 24\n\
b _080D6916\n\
.pool\n\
mov r0, r8\n\
adds r1, r5, 0\n\
bl CheckPyramidBagHasSpace\n\
lsls r0, 24\n\
lsrs r0, 24\n\
b _080D6916\n\
.pool\n\
_080D684C:\n\
mov r0, r8\n\
bl ItemId_GetPocket\n\
subs r0, 0x1\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r7, =0x000003e7\n\
cmp r2, 0x3\n\
beq _080D6860\n\
movs r7, 0x63\n\
mov r0, r8\n\
bl ItemId_GetPocket\n\
subs r0, 0x1\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r7, =0x000003e7\n\
cmp r2, 0x3\n\
beq _080D6860\n\
movs r7, 0x63\n\
_080D6860:\n\
movs r6, 0\n\
ldr r1, =gBagPockets\n\
lsls r4, r2, 3\n\
adds r0, r4, r1\n\
mov r9, r4\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcs _080D68BC\n\
subs r0, r2, 0x2\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r10, r0\n\
movs r6, 0\n\
ldr r1, =gBagPockets\n\
lsls r4, r2, 3\n\
adds r0, r4, r1\n\
mov r9, r4\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcs _080D68BC\n\
subs r0, r2, 0x2\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r10, r0\n\
_080D6878:\n\
adds r0, r4, r1\n\
ldr r1, [r0]\n\
lsls r0, r6, 2\n\
adds r1, r0, r1\n\
ldrh r0, [r1]\n\
cmp r0, r8\n\
bne _080D68AC\n\
adds r0, r1, 0x2\n\
str r2, [sp]\n\
bl GetBagItemQuantity\n\
lsls r0, 16\n\
lsrs r1, r0, 16\n\
adds r0, r1, r5\n\
ldr r2, [sp]\n\
cmp r0, r7\n\
ble _080D6914\n\
mov r0, r10\n\
cmp r0, 0x1\n\
bls _080D6906\n\
subs r0, r7, r1\n\
subs r0, r5, r0\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
cmp r5, 0\n\
beq _080D6914\n\
adds r0, r4, r1\n\
ldr r1, [r0]\n\
lsls r0, r6, 2\n\
adds r1, r0, r1\n\
ldrh r0, [r1]\n\
cmp r0, r8\n\
bne _080D68AC\n\
adds r0, r1, 0x2\n\
str r2, [sp]\n\
bl GetBagItemQuantity\n\
lsls r0, 16\n\
lsrs r1, r0, 16\n\
adds r0, r1, r5\n\
ldr r2, [sp]\n\
cmp r0, r7\n\
ble _080D6914\n\
mov r0, r10\n\
cmp r0, 0x1\n\
bls _080D6906\n\
subs r0, r7, r1\n\
subs r0, r5, r0\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
cmp r5, 0\n\
beq _080D6914\n\
_080D68AC:\n\
adds r0, r6, 0x1\n\
lsls r0, 24\n\
lsrs r6, r0, 24\n\
ldr r1, =gBagPockets\n\
adds r0, r4, r1\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcc _080D6878\n\
adds r0, r6, 0x1\n\
lsls r0, 24\n\
lsrs r6, r0, 24\n\
ldr r1, =gBagPockets\n\
adds r0, r4, r1\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcc _080D6878\n\
_080D68BC:\n\
cmp r5, 0\n\
beq _080D6914\n\
movs r6, 0\n\
ldr r3, =gBagPockets\n\
mov r1, r9\n\
adds r0, r1, r3\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcs _080D6902\n\
adds r4, r3, 0\n\
subs r0, r2, 0x2\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
cmp r5, 0\n\
beq _080D6914\n\
movs r6, 0\n\
ldr r3, =gBagPockets\n\
mov r1, r9\n\
adds r0, r1, r3\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcs _080D6902\n\
adds r4, r3, 0\n\
subs r0, r2, 0x2\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
_080D68D6:\n\
adds r0, r1, r4\n\
ldr r1, [r0]\n\
lsls r0, r6, 2\n\
adds r0, r1\n\
ldrh r0, [r0]\n\
cmp r0, 0\n\
bne _080D68F2\n\
cmp r5, r7\n\
bls _080D6914\n\
cmp r2, 0x1\n\
bls _080D6906\n\
subs r0, r5, r7\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
adds r0, r1, r4\n\
ldr r1, [r0]\n\
lsls r0, r6, 2\n\
adds r0, r1\n\
ldrh r0, [r0]\n\
cmp r0, 0\n\
bne _080D68F2\n\
cmp r5, r7\n\
bls _080D6914\n\
cmp r2, 0x1\n\
bls _080D6906\n\
subs r0, r5, r7\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
_080D68F2:\n\
adds r0, r6, 0x1\n\
lsls r0, 24\n\
lsrs r6, r0, 24\n\
mov r1, r9\n\
adds r0, r1, r3\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcc _080D68D6\n\
adds r0, r6, 0x1\n\
lsls r0, 24\n\
lsrs r6, r0, 24\n\
mov r1, r9\n\
adds r0, r1, r3\n\
ldrb r0, [r0, 0x4]\n\
cmp r6, r0\n\
bcc _080D68D6\n\
_080D6902:\n\
cmp r5, 0\n\
beq _080D6914\n\
cmp r5, 0\n\
beq _080D6914\n\
_080D6906:\n\
movs r0, 0\n\
b _080D6916\n\
.pool\n\
movs r0, 0\n\
b _080D6916\n\
.pool\n\
_080D6914:\n\
movs r0, 0x1\n\
movs r0, 0x1\n\
_080D6916:\n\
add sp, 0x4\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r1}\n\
bx r1");
add sp, 0x4\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r1}\n\
bx r1");
}
#endif // NONMATCHING
+1 -1
View File
@@ -2,7 +2,7 @@
#include "decompress.h"
#include "graphics.h"
#include "item_icon.h"
#include "malloc.h"
#include "alloc.h"
#include "sprite.h"
#include "constants/items.h"
+45 -45
View File
@@ -23,7 +23,7 @@
#include "link.h"
#include "mail.h"
#include "main.h"
#include "malloc.h"
#include "alloc.h"
#include "map_name_popup.h"
#include "menu.h"
#include "money.h"
@@ -432,8 +432,8 @@ struct ListBuffer2 {
struct TempWallyStruct {
struct ItemSlot bagPocket_Items[30];
struct ItemSlot bagPocket_PokeBalls[16];
u16 cursorPosition[5];
u16 scrollPosition[5];
u16 cursorPosition[POCKETS_COUNT];
u16 scrollPosition[POCKETS_COUNT];
u8 filler[0x2];
u16 pocket;
};
@@ -455,60 +455,60 @@ extern const u16 gUnknown_0860F074[];
void ResetBagScrollPositions(void)
{
gUnknown_0203CE58.pocket = 0;
gUnknown_0203CE58.pocket = ITEMS_POCKET;
memset(gUnknown_0203CE58.cursorPosition, 0, 10);
memset(gUnknown_0203CE58.scrollPosition, 0, 10);
}
void CB2_BagMenuFromStartMenu(void)
{
GoToBagMenu(0, 5, CB2_ReturnToFieldWithOpenMenu);
GoToBagMenu(RETURN_LOCATION_FIELD, POCKETS_COUNT, CB2_ReturnToFieldWithOpenMenu);
}
void sub_81AABB0(void)
{
if (!InBattlePyramid())
GoToBagMenu(1, 5, SetCB2ToReshowScreenAfterMenu2);
GoToBagMenu(RETURN_LOCATION_BATTLE, POCKETS_COUNT, SetCB2ToReshowScreenAfterMenu2);
else
sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
}
void CB2_ChooseBerry(void)
{
GoToBagMenu(4, 3, CB2_ReturnToFieldContinueScript);
GoToBagMenu(RETURN_LOCATION_FIELD_2, BERRIES_POCKET, CB2_ReturnToFieldContinueScript);
}
void sub_81AABF0(void(*callback)(void))
{
GoToBagMenu(5, 3, callback);
GoToBagMenu(RETURN_LOCATION_FIELD_3, BERRIES_POCKET, callback);
}
void CB2_GoToSellMenu(void)
{
GoToBagMenu(3, 5, CB2_ExitSellMenu);
GoToBagMenu(RETURN_LOCATION_SHOP, POCKETS_COUNT, CB2_ExitSellMenu);
}
void sub_81AAC14(void)
{
GoToBagMenu(6, 5, sub_816B31C);
GoToBagMenu(RETURN_LOCATION_PC, POCKETS_COUNT, sub_816B31C);
}
void sub_81AAC28(void)
{
GoToBagMenu(9, 5, bag_menu_leave_maybe_3);
GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe_3);
gSpecialVar_0x8005 = 0;
gSpecialVar_Result = 0;
}
void sub_81AAC50(void)
{
GoToBagMenu(7, 5, bag_menu_leave_maybe_2);
GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, bag_menu_leave_maybe_2);
gSpecialVar_Result = 0;
}
void sub_81AAC70(void)
{
GoToBagMenu(8, 5, bag_menu_leave_maybe);
GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, bag_menu_leave_maybe);
gSpecialVar_Result = 0;
}
@@ -522,13 +522,13 @@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)
}
else
{
if (bagMenuType != 12)
if (bagMenuType != RETURN_LOCATION_UNCHANGED)
gUnknown_0203CE58.location = bagMenuType;
if (postExitMenuMainCallback2)
gUnknown_0203CE58.bagCallback = postExitMenuMainCallback2;
if (pocketId <= 4)
if (pocketId < POCKETS_COUNT)
gUnknown_0203CE58.pocket = pocketId;
temp = gUnknown_0203CE58.location - 4;
temp = gUnknown_0203CE58.location - (POCKETS_COUNT - 1);
if (temp <= 1)
gUnknown_0203CE54->unk81B = 1;
gUnknown_0203CE54->unk0 = 0;
@@ -788,7 +788,7 @@ void get_name(s8 *dest, u16 itemId)
{
switch (gUnknown_0203CE58.pocket)
{
case 2:
case TMHM_POCKET:
StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(itemId)]);
if (itemId >= ITEM_HM01)
{
@@ -801,7 +801,7 @@ void get_name(s8 *dest, u16 itemId)
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
}
break;
case 3:
case BERRIES_POCKET:
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_CHERI_BERRY + 1, 2, 2);
CopyItemName(itemId, gStringVar2);
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
@@ -851,14 +851,14 @@ void sub_81AB520(u8 rboxId, int item_index_in_pocket, u8 a)
itemQuantity = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, item_index_in_pocket);
if (itemId >= ITEM_HM01 && itemId <= ITEM_HM08)
BlitBitmapToWindow(rboxId, gBagMenuHMIcon_Gfx, 8, a - 1, 16, 16);
if (gUnknown_0203CE58.pocket == 3)
if (gUnknown_0203CE58.pocket == BERRIES_POCKET)
{
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
offset = GetStringRightAlignXOffset(7, gStringVar4, 0x77);
bag_menu_print(rboxId, 7, gStringVar4, offset, a, 0, 0, -1, 0);
}
else if (gUnknown_0203CE58.pocket != 4 && (unique = ItemId_GetImportance(itemId)) == FALSE)
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && (unique = ItemId_GetImportance(itemId)) == FALSE)
{
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 2);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
@@ -973,8 +973,8 @@ void sub_81AB9A8(u8 pocketId)
struct BagPocket *pocket = &gBagPockets[pocketId];
switch (pocketId)
{
case 2:
case 3:
case TMHM_POCKET:
case BERRIES_POCKET:
SortBerriesOrTMHMs(pocket);
break;
default:
@@ -995,7 +995,7 @@ void sub_81AB9A8(u8 pocketId)
void sub_81ABA6C(void)
{
u8 i;
for (i = 0; i < 5; i++)
for (i = 0; i < POCKETS_COUNT; i++)
sub_81AB9A8(i);
}
@@ -1007,14 +1007,14 @@ void sub_81ABA88(u8 a)
void sub_81ABAC4(void)
{
u8 i;
for (i = 0; i < 5; i++)
for (i = 0; i < POCKETS_COUNT; i++)
sub_81ABA88(i);
}
void sub_81ABAE0(void)
{
u8 i;
for (i = 0; i < 5; i++)
for (i = 0; i < POCKETS_COUNT; i++)
sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->unk82E[i], gUnknown_0203CE54->unk829[i], 8);
}
@@ -1055,7 +1055,7 @@ void sub_81ABC3C(u8 a)
void sub_81ABC54(u8 a, s16 b)
{
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2;
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0);
@@ -1063,7 +1063,7 @@ void sub_81ABC54(u8 a, s16 b)
void sub_81ABCC0(int a, int b, int c)
{
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2;
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0);
@@ -1164,10 +1164,10 @@ u8 GetSwitchBagPocketDirection(void)
void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId)
{
if (deltaBagPocketId == 1 && *bagPocketId == 4)
if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1)
*bagPocketId = 0;
else if (deltaBagPocketId == -1 && *bagPocketId == 0)
*bagPocketId = 4;
*bagPocketId = POCKETS_COUNT - 1;
else
*bagPocketId += deltaBagPocketId;
}
@@ -1444,7 +1444,7 @@ void sub_81AC644(u8 unused)
default:
if (sub_81221AC() == TRUE || InUnionRoom() == TRUE)
{
if (gUnknown_0203CE58.pocket == 4 || !sub_8122148(gSpecialVar_ItemId))
if (gUnknown_0203CE58.pocket == KEYITEMS_POCKET || !sub_8122148(gSpecialVar_ItemId))
{
gUnknown_0203CE54->unk820 = &gUnknown_08614046;
gUnknown_0203CE54->unk828 = 1;
@@ -1459,14 +1459,14 @@ void sub_81AC644(u8 unused)
{
switch (gUnknown_0203CE58.pocket)
{
case 0:
case ITEMS_POCKET:
gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824;
gUnknown_0203CE54->unk828 = 4;
memcpy(&gUnknown_0203CE54->unk824, &gUnknown_0861402C, 4);
if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
gUnknown_0203CE54->unk824 = 6;
break;
case 4:
case KEYITEMS_POCKET:
gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824;
gUnknown_0203CE54->unk828 = 4;
memcpy(&gUnknown_0203CE54->unk824, &gUnknown_08614030, 4);
@@ -1478,22 +1478,22 @@ void sub_81AC644(u8 unused)
gUnknown_0203CE54->unk824 = 7;
}
break;
case 1:
case BALLS_POCKET:
gUnknown_0203CE54->unk820 = gUnknown_08614034;
gUnknown_0203CE54->unk828 = 4;
break;
case 2:
case TMHM_POCKET:
gUnknown_0203CE54->unk820 = gUnknown_08614038;
gUnknown_0203CE54->unk828 = 4;
break;
case 3:
case BERRIES_POCKET:
gUnknown_0203CE54->unk820 = gUnknown_0861403C;
gUnknown_0203CE54->unk828 = 6;
break;
}
}
}
if (gUnknown_0203CE58.pocket == 2)
if (gUnknown_0203CE58.pocket == TMHM_POCKET)
{
ClearWindowTilemap(1);
PrintTMHMMoveData(gSpecialVar_ItemId);
@@ -1624,17 +1624,17 @@ bool8 sub_81ACDFC(s8 a)
void bag_menu_remove_some_window(void)
{
if (gUnknown_0203CE54->unk828 == 1)
bag_menu_remove_window(0);
bag_menu_remove_window(0);
else if (gUnknown_0203CE54->unk828 == 2)
{
bag_menu_remove_window(1);
bag_menu_remove_window(1);
}
else if (gUnknown_0203CE54->unk828 == 4)
{
bag_menu_remove_window(2);
bag_menu_remove_window(2);
}
else
bag_menu_remove_window(3);
bag_menu_remove_window(3);
}
void ItemMenu_UseOutOfBattle(u8 taskId)
@@ -1648,7 +1648,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId)
{
FillWindowPixelBuffer(1, 0);
schedule_bg_copy_tilemap_to_vram(0);
if (gUnknown_0203CE58.pocket != 3)
if (gUnknown_0203CE58.pocket != BERRIES_POCKET)
ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
else
sub_80FDD10(taskId);
@@ -1842,7 +1842,7 @@ void ItemMenu_UseInBattle(u8 taskId)
void bag_menu_mail_related(void)
{
GoToBagMenu(12, 5, NULL);
GoToBagMenu(RETURN_LOCATION_UNCHANGED, POCKETS_COUNT, NULL);
}
void item_menu_type_2(u8 taskId)
@@ -1857,7 +1857,7 @@ void item_menu_type_2(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeldHere);
DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD350);
}
else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId))
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
{
unknown_ItemMenu_Confirm(taskId);
}
@@ -1871,7 +1871,7 @@ void item_menu_type_b(u8 taskId)
{
if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350);
else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId))
else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
gTasks[taskId].func = unknown_ItemMenu_Confirm;
else
bag_menu_print_cant_be_held_msg(taskId);
@@ -2157,7 +2157,7 @@ void DoWallyTutorialBagMenu(void)
PrepareBagForWallyTutorial();
AddBagItem(ITEM_POTION, 1);
AddBagItem(ITEM_POKE_BALL, 1);
GoToBagMenu(10, 0, SetCB2ToReshowScreenAfterMenu2);
GoToBagMenu(RETURN_LOCATION_BATTLE_2, ITEMS_POCKET, SetCB2ToReshowScreenAfterMenu2);
}
void Task_WallyTutorialBagMenu(u8 taskId)
+1 -1
View File
@@ -10,7 +10,7 @@
#include "fieldmap.h"
#include "event_object_movement.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "item.h"
#include "item_menu.h"
+9 -9
View File
@@ -17,21 +17,21 @@ struct LandmarkList
static const u8 LandmarkName_FlowerShop[] = _("FLOWER SHOP");
static const u8 LandmarkName_PetalburgWoods[] = _("PETALBURG WOODS");
static const u8 LandmarkName_MrBrineysCottage[] = _("MR. BRINEYS COTTAGE");
static const u8 LandmarkName_MrBrineysCottage[] = _("MR. BRINEY'S COTTAGE");
static const u8 LandmarkName_AbandonedShip[] = _("ABANDONED SHIP");
static const u8 LandmarkName_SeashoreHouse[] = _("SEASHORE HOUSE");
static const u8 LandmarkName_SlateportBeach[] = _("SLATEPORT BEACH");
static const u8 LandmarkName_CyclingRoad[] = _("CYCLING ROAD");
static const u8 LandmarkName_NewMauville[] = _("NEW MAUVILLE");
static const u8 LandmarkName_TrickHouse[] = _("TRICK HOUSE");
static const u8 LandmarkName_OldLadysRestShop[] = _("OLD LADYS REST STOP");
static const u8 LandmarkName_OldLadysRestShop[] = _("OLD LADY'S REST STOP");
static const u8 LandmarkName_Desert[] = _("DESERT");
static const u8 LandmarkName_WinstrateFamily[] = _("THE WINSTRATE FAMILY");
static const u8 LandmarkName_CableCar[] = _("CABLE CAR");
static const u8 LandmarkName_GlassWorkshop[] = _("GLASS WORKSHOP");
static const u8 LandmarkName_WeatherInstitute[] = _("WEATHER INSTITUTE");
static const u8 LandmarkName_MeteorFalls[] = _("METEOR FALLS");
static const u8 LandmarkName_TunnelersRestHouse[] = _("TUNNELERS RESTHOUSE");
static const u8 LandmarkName_TunnelersRestHouse[] = _("TUNNELER'S RESTHOUSE");
static const u8 LandmarkName_RusturfTunnel[] = _("RUSTURF TUNNEL");
static const u8 LandmarkName_PokemonDayCare[] = _("POKéMON DAY CARE");
static const u8 LandmarkName_SafariZoneEntrance[] = _("SAFARI ZONE ENTRANCE");
@@ -40,18 +40,18 @@ static const u8 LandmarkName_ShoalCave[] = _("SHOAL CAVE");
static const u8 LandmarkName_SeafloorCavern[] = _("SEAFLOOR CAVERN");
static const u8 LandmarkName_GraniteCave[] = _("GRANITE CAVE");
static const u8 LandmarkName_OceanCurrent[] = _("OCEAN CURRENT");
static const u8 LandmarkName_LanettesHouse[] = _("LANETTES HOUSE");
static const u8 LandmarkName_LanettesHouse[] = _("LANETTE'S HOUSE");
static const u8 LandmarkName_FieryPath[] = _("FIERY PATH");
static const u8 LandmarkName_JaggedPass[] = _("JAGGED PASS");
static const u8 LandmarkName_SkyPillar[] = _("SKY PILLAR");
static const u8 LandmarkName_BerryMastersHouse[] = _("BERRY MASTERS HOUSE");
static const u8 LandmarkName_BerryMastersHouse[] = _("BERRY MASTER'S HOUSE");
static const u8 LandmarkName_IslandCave[] = _("ISLAND CAVE");
static const u8 LandmarkName_DesertRuins[] = _("DESERT RUINS");
static const u8 LandmarkName_ScorchedSlab[] = _("SCORCHED SLAB");
static const u8 LandmarkName_AncientTomb[] = _("ANCIENT TOMB");
static const u8 LandmarkName_SealedChamber[] = _("SEALED CHAMBER");
static const u8 LandmarkName_FossilManiacsHouse[] = _("FOSSIL MANIACS HOUSE");
static const u8 LandmarkName_HuntersHouse[] = _("HUNTERS HOUSE");
static const u8 LandmarkName_FossilManiacsHouse[] = _("FOSSIL MANIAC'S HOUSE");
static const u8 LandmarkName_HuntersHouse[] = _("HUNTER'S HOUSE");
static const u8 LandmarkName_MagmaHideout[] = _("MAGMA HIDEOUT");
static const u8 LandmarkName_MirageTower[] = _("MIRAGE TOWER");
static const u8 LandmarkName_AlteringCave[] = _("ALTERING CAVE");
@@ -338,8 +338,8 @@ static const struct Landmark *const Landmarks_MtChimney_2[] =
static const struct LandmarkList gLandmarkLists[] =
{
{MAPSEC_ROUTE_103, 2, Landmarks_Route103_2},
{MAPSEC_ROUTE_104, 0, Landmarks_Route104_0},
{MAPSEC_ROUTE_103, 2, Landmarks_Route103_2},
{MAPSEC_ROUTE_104, 0, Landmarks_Route104_0},
{MAPSEC_ROUTE_104, 1, Landmarks_Route104_1},
{MAPSEC_ROUTE_105, 0, Landmarks_Route105_0},
{MAPSEC_ROUTE_106, 1, Landmarks_Route106_1},
+18 -18
View File
@@ -5,11 +5,11 @@
#include "contest_effect.h"
#include "data2.h"
#include "event_data.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "gpu_regs.h"
#include "learn_move.h"
#include "list_menu.h"
#include "malloc.h"
#include "alloc.h"
#include "menu.h"
#include "menu_helpers.h"
#include "overworld.h"
@@ -52,7 +52,7 @@ static EWRAM_DATA struct {
const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal");
const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp");
const struct OamData gUnknown_085CEB98 =
const struct OamData gUnknown_085CEB98 =
{
.y = 0,
.affineMode = 0,
@@ -69,7 +69,7 @@ const struct OamData gUnknown_085CEB98 =
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA0 =
const struct OamData gUnknown_085CEBA0 =
{
.y = 0,
.affineMode = 0,
@@ -86,7 +86,7 @@ const struct OamData gUnknown_085CEBA0 =
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA8 =
const struct OamData gUnknown_085CEBA8 =
{
.y = 0,
.affineMode = 0,
@@ -103,20 +103,20 @@ const struct OamData gUnknown_085CEBA8 =
.affineParam = 0,
};
const struct SpriteSheet gUnknown_085CEBB0 =
const struct SpriteSheet gUnknown_085CEBB0 =
{
.data = gUnknown_085CEA18,
.size = 0x180,
.tag = 5525
};
const struct SpritePalette gUnknown_085CEBB8 =
const struct SpritePalette gUnknown_085CEBB8 =
{
.data = gUnknown_085CE9F8,
.tag = 5526
};
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
{
.firstArrowType = 0,
.firstX = 27,
@@ -131,7 +131,7 @@ const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
.palNum = 0,
};
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
{
.firstArrowType = 2,
.firstX = 192,
@@ -146,31 +146,31 @@ const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
.palNum = 0,
};
const union AnimCmd gUnknown_085CEBE0[] =
const union AnimCmd gUnknown_085CEBE0[] =
{
ANIMCMD_FRAME(8, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBE8[] =
const union AnimCmd gUnknown_085CEBE8[] =
{
ANIMCMD_FRAME(9, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF0[] =
const union AnimCmd gUnknown_085CEBF0[] =
{
ANIMCMD_FRAME(10, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF8[] =
const union AnimCmd gUnknown_085CEBF8[] =
{
ANIMCMD_FRAME(11, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd *const gUnknown_085CEC00[] =
const union AnimCmd *const gUnknown_085CEC00[] =
{
gUnknown_085CEBE0,
gUnknown_085CEBE8,
@@ -178,7 +178,7 @@ const union AnimCmd *const gUnknown_085CEC00[] =
gUnknown_085CEBF8,
};
const struct SpriteTemplate gUnknown_085CEC10 =
const struct SpriteTemplate gUnknown_085CEC10 =
{
.tileTag = 5525,
.paletteTag = 5526,
@@ -707,7 +707,7 @@ static void CreateHearts(void)
sLearnMoveStruct->scrollArrowTaskId2 = -1;
sLearnMoveStruct->scrollArrowTaskId1 = -1;
AddScrollArrows();
for (i = 0; i < 8; i++)
{
sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0);
@@ -791,7 +791,7 @@ void ShowHideHearts(s32 item)
else
{
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10);
if (numHearts == 0xFF)
{
numHearts = 0;
@@ -811,7 +811,7 @@ void ShowHideHearts(s32 item)
}
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10);
if (numHearts == 0xFF)
{
numHearts = 0;
+1 -1
View File
@@ -2,7 +2,7 @@
// Includes
#include "global.h"
#include "m4a.h"
#include "malloc.h"
#include "alloc.h"
#include "reset_save_heap.h"
#include "save.h"
#include "bg.h"
+6 -6
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "alloc.h"
#include "battle.h"
#include "berry_blender.h"
#include "decompress.h"
@@ -7,7 +8,6 @@
#include "librfu.h"
#include "link.h"
#include "link_rfu.h"
#include "malloc.h"
#include "overworld.h"
#include "random.h"
#include "palette.h"
@@ -276,7 +276,7 @@ const struct {
{ gBlockSendBuffer, 40 }
};
const u16 gUnknown_082ED6E0[] = {
0x0002, 0x7f7d, 0x0000, 0xffff
0x0002, 0x7f7d, 0x0000, 0xFFFF
};
const char sUnref_082ED6E8[][15] = {
@@ -1469,7 +1469,7 @@ static u8 sub_800D294(void)
for (i = 0; i < gUnknown_03007890->unk_08; i++)
{
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xffff; ptr++)
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++)
{
if (gUnknown_03007890->unk_14[i].unk_04 == *ptr)
{
@@ -3077,7 +3077,7 @@ bool32 sub_800F1E0(void)
{
if (gUnknown_03005000.unk_14[i][1])
{
if (gUnknown_03005000.unk_cee[i] != 0xff && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7))
if (gUnknown_03005000.unk_cee[i] != 0xFF && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7))
{
if (++gUnknown_03005000.unk_cea[i] > 4)
sub_8011170(0x8100);
@@ -3778,7 +3778,7 @@ bool32 sub_8010454(u32 a0)
s32 i;
for (i = 0; gUnknown_082ED6E0[i] != a0; i++)
{
if (gUnknown_082ED6E0[i] == 0xffff)
if (gUnknown_082ED6E0[i] == 0xFFFF)
return FALSE;
}
return TRUE;
@@ -3906,7 +3906,7 @@ void sub_80106D4(void)
u32 sub_8010714(u16 a0, const u8 *a1)
{
u8 r0 = sub_8011CE4(a1, a0);
if (r0 == 0xff)
if (r0 == 0xFF)
return 2;
if (gUnknown_03007880[r0]->unk_0 == 0)
return 1;
+17 -17
View File
@@ -8,7 +8,7 @@
#include "trig.h"
#include "decompress.h"
#include "palette.h"
#include "malloc.h"
#include "alloc.h"
#include "strings.h"
#include "sound.h"
#include "constants/songs.h"
@@ -953,52 +953,52 @@ void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
case 0:
case 1:
data->field_4 = (void*)(value);
break;
break;
case 2:
data->field_C = value;
break;
break;
case 3:
data->field_E = value;
break;
break;
case 4:
data->field_10 = value;
break;
break;
case 5:
data->field_11 = value;
break;
break;
case 6:
data->field_12 = value;
break;
break;
case 7:
data->field_13 = value;
break;
break;
case 8:
data->field_14_0 = value;
break;
break;
case 9:
data->field_14_1 = value;
break;
break;
case 10:
data->field_15_0 = value;
break;
break;
case 11:
data->field_15_1 = value;
break;
break;
case 12:
data->field_16_0 = value;
break;
break;
case 13:
data->field_16_1 = value;
break;
break;
case 14:
data->field_16_2 = value;
break;
break;
case 15:
data->field_17_0 = value;
break;
break;
case 16:
data->field_17_1 = value;
break;
break;
}
}
+1 -1
View File
@@ -4,7 +4,7 @@
#include "main.h"
#include "pokemon.h"
#include "random.h"
#include "malloc.h"
#include "alloc.h"
#include "item.h"
#include "overworld.h"
#include "decoration_inventory.h"
+1 -1
View File
@@ -17,7 +17,7 @@
#include "bg.h"
#include "pokemon_icon.h"
#include "constants/species.h"
#include "malloc.h"
#include "alloc.h"
#include "easy_chat.h"
extern const u16 gMailPalette_Orange[];
+1 -1
View File
@@ -1,6 +1,6 @@
#include "global.h"
#include "crt0.h"
#include "malloc.h"
#include "alloc.h"
#include "link.h"
#include "link_rfu.h"
#include "librfu.h"
+19 -19
View File
@@ -335,25 +335,25 @@ static const struct MenuAction sMenuActions_Gender[] = {
static const u8 *const gMalePresetNames[] = {
gText_DefaultNameStu,
gText_DefaultNameMilton,
gText_DefaultNameTom,
gText_DefaultNameKenny,
gText_DefaultNameReid,
gText_DefaultNameJude,
gText_DefaultNameJaxson,
gText_DefaultNameEaston,
gText_DefaultNameWalker,
gText_DefaultNameTeru,
gText_DefaultNameJohnny,
gText_DefaultNameBrett,
gText_DefaultNameSeth,
gText_DefaultNameTerry,
gText_DefaultNameCasey,
gText_DefaultNameDarren,
gText_DefaultNameLandon,
gText_DefaultNameCollin,
gText_DefaultNameStanley,
gText_DefaultNameQuincy
gText_DefaultNameMilton,
gText_DefaultNameTom,
gText_DefaultNameKenny,
gText_DefaultNameReid,
gText_DefaultNameJude,
gText_DefaultNameJaxson,
gText_DefaultNameEaston,
gText_DefaultNameWalker,
gText_DefaultNameTeru,
gText_DefaultNameJohnny,
gText_DefaultNameBrett,
gText_DefaultNameSeth,
gText_DefaultNameTerry,
gText_DefaultNameCasey,
gText_DefaultNameDarren,
gText_DefaultNameLandon,
gText_DefaultNameCollin,
gText_DefaultNameStanley,
gText_DefaultNameQuincy
};
static const u8 *const gFemalePresetNames[] = {

Some files were not shown because too many files have changed in this diff Show More