Merge branch 'master' of https://github.com/pret/pokeemerald into decompile_party_menu
This commit is contained in:
+210
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+1
-3
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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];
|
||||
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+21
-21
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 BERRY’s 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 BERRY’s 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[] = _("world’s 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
@@ -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[] = _("You’ve 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,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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Executable
+1006
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -3389,7 +3389,7 @@ const struct Item gItems[] =
|
||||
|
||||
[ITEM_KINGS_ROCK] =
|
||||
{
|
||||
.name = _("KING’S 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 = _("OAK’S PARCEL"),
|
||||
.name = _("OAK'S PARCEL"),
|
||||
.itemId = ITEM_OAKS_PARCEL,
|
||||
.price = 0,
|
||||
.holdEffect = HOLD_EFFECT_NONE,
|
||||
|
||||
+135
-135
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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 sun’s rays, the seed\n"
|
||||
"By soaking up the sun's rays, the seed\n"
|
||||
"grows progressively larger.");
|
||||
|
||||
const u8 gIvysaurPokedexText[] = _(
|
||||
"To support its bulb, IVYSAUR’s 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[] = _(
|
||||
"VENUSAUR’s 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 flower’s 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éMON’s 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 RATICATE’s 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éMON’s 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 NIDOKING’s 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"
|
||||
"JIGGLYPUFF’s 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 PERSIAN’s 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, it’s 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 won’t 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éMON’s 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 ALAKAZAM’s 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 BELLSPROUT’s 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 water’s 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 can’t 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"
|
||||
"GRIMER’s 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 GASTLY’s\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, don’t 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, it’s 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 HYPNO’s 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, EXEGGUTOR’s\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 doesn’t stop.\n"
|
||||
"Once it starts running, it doesn't stop.\n"
|
||||
"Its tiny brain makes it so stupid that it\n"
|
||||
"can’t 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 baby’s 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 fur’s 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[] = _(
|
||||
"FLAREON’s 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[] = _(
|
||||
"SNORLAX’s 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 BAYLEEF’s 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 MEGANIUM’s 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 foe’s 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, TOTODILE’s 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 earth’s 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 fluid’s 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"
|
||||
"sunlight’s 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 NATU’s 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 water’s 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 flower’s\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, AIPOM’s 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 doesn’t 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"
|
||||
"moon’s 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 shell’s\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 earth’s 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"
|
||||
"MAGCARGO’s 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éMON’s 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[] = _(
|
||||
"PHANPY’s 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 won’t 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[] = _(
|
||||
"STANTLER’s 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 lake’s surface to make\n"
|
||||
"sure its face hasn’t 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 can’t 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 forest’s trees.");
|
||||
"to be the protector of the forest's trees.");
|
||||
|
||||
const u8 gGrovylePokedexText[] = _(
|
||||
"Leaves grow out of this POKéMON’s 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"
|
||||
"can’t 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 water’s 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 leader’s 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 can’t\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 doesn’t 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 can’t 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"
|
||||
"doesn’t, it can’t 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"
|
||||
"It’s 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 SKITTY’s 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"
|
||||
"AGGRON’s 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 foe’s\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éMON’s 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 can’t 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 locomotive’s horn.");
|
||||
"similar to a locomotive's horn.");
|
||||
|
||||
const u8 gSpoinkPokedexText[] = _(
|
||||
"A POKéMON that manipulates psychic power\n"
|
||||
"at will. It doesn’t 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 foe’s 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 VIBRAVA’s 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 ZANGOOSE’s 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éMON’s 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"
|
||||
"BARBOACH’s 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éMON’s\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 one’s 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
@@ -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
@@ -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[] = _("DIGLETT’S 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.");
|
||||
|
||||
@@ -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 foe’s 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 foe’s ATTACK.");
|
||||
static const u8 sShadowTagDescription[] = _("Prevents the foe’s 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 foe’s 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.");
|
||||
|
||||
@@ -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éMON’s\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 move’s\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\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 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 DEVON’s\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 can’t\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\nfoe’s 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\nMART’s 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\nGYM’s 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\nZONE’s 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\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 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 MAGMA’s 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.");
|
||||
|
||||
+709
-709
File diff suppressed because it is too large
Load Diff
@@ -82,7 +82,7 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = {
|
||||
[SPECIES_SLOWBRO] = _("SLOWBRO"),
|
||||
[SPECIES_MAGNEMITE] = _("MAGNEMITE"),
|
||||
[SPECIES_MAGNETON] = _("MAGNETON"),
|
||||
[SPECIES_FARFETCHD] = _("FARFETCH’D"),
|
||||
[SPECIES_FARFETCHD] = _("FARFETCH'D"),
|
||||
[SPECIES_DODUO] = _("DODUO"),
|
||||
[SPECIES_DODRIO] = _("DODRIO"),
|
||||
[SPECIES_SEEL] = _("SEEL"),
|
||||
|
||||
+9875
-9875
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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) = {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -496,7 +496,7 @@ u16 GetBehaviorByMetatileId(u16 metatile)
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0xff;
|
||||
return 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+903
-20
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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,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
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+96
-96
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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. BRINEY’S 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 LADY’S 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[] = _("TUNNELER’S 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[] = _("LANETTE’S 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 MASTER’S 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 MANIAC’S HOUSE");
|
||||
static const u8 LandmarkName_HuntersHouse[] = _("HUNTER’S 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Reference in New Issue
Block a user