Document all of frontier pass

This commit is contained in:
DizzyEggg
2019-01-26 20:56:06 +01:00
parent 03549349f8
commit 01c3f3fc05
12 changed files with 763 additions and 2052 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1541,7 +1541,7 @@ static const u8 gHandCursorTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cu
static const u8 gHandCursorShadowTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor_shadow.4bpp");
// code
void sub_80C6D80(u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4)
void sub_80C6D80(const u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4)
{
s32 i, val, val2;
u16 windowId;
@@ -1586,121 +1586,29 @@ void sub_80C6D80(u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4)
RemoveWindow(windowId);
}
NAKED
void sub_80C6EAC()
// Unused
void sub_80C6EAC(const u8 *string, void *dst, u16 arg2, u8 arg3, u8 clr2, u8 clr3)
{
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, 0x2C\n\
str r0, [sp, 0x20]\n\
str r1, [sp, 0x24]\n\
adds r6, r3, 0\n\
ldr r0, [sp, 0x4C]\n\
mov r9, r0\n\
ldr r1, [sp, 0x50]\n\
mov r10, r1\n\
lsls r2, 16\n\
lsrs r2, 16\n\
str r2, [sp, 0x28]\n\
lsls r6, 24\n\
lsrs r6, 24\n\
mov r2, r9\n\
lsls r2, 24\n\
lsrs r2, 24\n\
mov r9, r2\n\
mov r0, r10\n\
lsls r0, 24\n\
lsrs r0, 24\n\
mov r10, r0\n\
movs r0, 0\n\
movs r1, 0\n\
str r0, [sp, 0x18]\n\
str r1, [sp, 0x1C]\n\
ldr r0, [sp, 0x20]\n\
bl StringLength_Multibyte\n\
lsls r0, 24\n\
ldr r2, =0x00ffffff\n\
ldr r1, [sp, 0x18]\n\
ands r1, r2\n\
orrs r1, r0\n\
str r1, [sp, 0x18]\n\
ldr r1, =0xffffff00\n\
add r2, sp, 0x18\n\
mov r8, r2\n\
ldr r0, [r2, 0x4]\n\
ands r0, r1\n\
movs r1, 0x2\n\
orrs r0, r1\n\
str r0, [r2, 0x4]\n\
ldr r5, [sp, 0x18]\n\
lsrs r5, 24\n\
lsls r5, 5\n\
mov r0, r8\n\
bl AddWindow\n\
adds r4, r0, 0\n\
lsls r4, 24\n\
lsrs r4, 24\n\
lsls r1, r6, 4\n\
orrs r1, r6\n\
lsls r1, 24\n\
lsrs r1, 24\n\
adds r0, r4, 0\n\
bl FillWindowPixelBuffer\n\
adds r0, r4, 0\n\
movs r1, 0x7\n\
bl GetWindowAttribute\n\
adds r7, r0, 0\n\
mov r0, r8\n\
ldrb r0, [r0, 0x3]\n\
lsls r0, 5\n\
mov r8, r0\n\
add r8, r7\n\
add r0, sp, 0x14\n\
movs r1, 0\n\
strb r6, [r0]\n\
mov r2, r9\n\
strb r2, [r0, 0x1]\n\
mov r2, r10\n\
strb r2, [r0, 0x2]\n\
str r1, [sp]\n\
str r1, [sp, 0x4]\n\
str r0, [sp, 0x8]\n\
movs r0, 0x1\n\
negs r0, r0\n\
str r0, [sp, 0xC]\n\
ldr r0, [sp, 0x20]\n\
str r0, [sp, 0x10]\n\
adds r0, r4, 0\n\
movs r1, 0x1\n\
movs r2, 0\n\
movs r3, 0x2\n\
bl AddTextPrinterParameterized4\n\
lsrs r5, 1\n\
adds r0, r7, 0\n\
ldr r1, [sp, 0x24]\n\
adds r2, r5, 0\n\
bl CpuSet\n\
ldr r2, [sp, 0x24]\n\
ldr r0, [sp, 0x28]\n\
adds r1, r2, r0\n\
mov r0, r8\n\
adds r2, r5, 0\n\
bl CpuSet\n\
adds r0, r4, 0\n\
bl RemoveWindow\n\
add sp, 0x2C\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");
u32 var;
u8 windowId;
u8 txtColor[3];
u8 *tileData1, *tileData2;
struct WindowTemplate winTemplate = {0};
winTemplate.width = StringLength_Multibyte(string);
winTemplate.height = 2;
var = winTemplate.width * 32;
windowId = AddWindow(&winTemplate);
FillWindowPixelBuffer(windowId, (arg3 << 4) | arg3);
tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA);
tileData2 = (winTemplate.width * 32) + tileData1;
txtColor[0] = arg3;
txtColor[1] = clr2;
txtColor[2] = clr3;
AddTextPrinterParameterized4(windowId, 1, 0, 2, 0, 0, txtColor, -1, string);
CpuCopy16(tileData1, dst, var);
CpuCopy16(tileData2, dst + arg2, var);
RemoveWindow(windowId);
}
u8 CountMonsInBox(u8 boxId)

View File

@@ -587,7 +587,7 @@ u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n)
return dest;
}
u32 StringLength_Multibyte(u8 *str)
u32 StringLength_Multibyte(const u8 *str)
{
u32 length = 0;

View File

@@ -26,6 +26,7 @@
#include "pokedex.h"
#include "pokemon_icon.h"
#include "pokemon_summary_screen.h"
#include "pokemon_storage_system.h"
#include "random.h"
#include "rom_8011DC0.h"
#include "save.h"
@@ -49,8 +50,6 @@
#define Trade_SendData(ptr) (SendBlock(bitmask_all_link_players_but_self(), ptr->linkData, 20))
extern void sub_80C6D80(const u8 *, u8 *, u8, u8, u8);
struct InGameTrade {
/*0x00*/ u8 name[11];
/*0x0C*/ u16 species;