mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
commit
7c8bc0fbe3
112
gflib/bg.c
112
gflib/bg.c
@ -34,8 +34,8 @@ struct BgConfig2
|
||||
u32 unk_3:18;
|
||||
|
||||
void* tilemap;
|
||||
s32 bg_x;
|
||||
s32 bg_y;
|
||||
s32 bg_x; // Maybe unsigned, but game treats it as if it is signed a LOT.
|
||||
s32 bg_y; // Same for this variable.
|
||||
};
|
||||
|
||||
static struct BgControl sGpuBgConfigs;
|
||||
@ -621,17 +621,15 @@ s32 GetBgX(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg))
|
||||
return -1;
|
||||
else if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
return -1;
|
||||
else
|
||||
return sGpuBgConfigs2[bg].bg_x;
|
||||
return sGpuBgConfigs2[bg].bg_x;
|
||||
}
|
||||
|
||||
s32 ChangeBgY(u8 bg, s32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
u16 temp2;
|
||||
u16 temp1, temp2;
|
||||
|
||||
if (IsInvalidBg32(bg) || !GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
{
|
||||
@ -700,8 +698,7 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op)
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
u16 temp2;
|
||||
u16 temp1, temp2;
|
||||
|
||||
if (IsInvalidBg32(bg) || !GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
{
|
||||
@ -772,10 +769,9 @@ s32 GetBgY(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg))
|
||||
return -1;
|
||||
else if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
return -1;
|
||||
else
|
||||
return sGpuBgConfigs2[bg].bg_y;
|
||||
return sGpuBgConfigs2[bg].bg_y;
|
||||
}
|
||||
|
||||
void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle)
|
||||
@ -874,81 +870,77 @@ void* GetBgTilemapBuffer(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg))
|
||||
return NULL;
|
||||
else if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
if (!GetBgControlAttribute(bg, BG_CTRL_ATTR_VISIBLE))
|
||||
return NULL;
|
||||
else
|
||||
return sGpuBgConfigs2[bg].tilemap;
|
||||
return sGpuBgConfigs2[bg].tilemap;
|
||||
}
|
||||
|
||||
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset)
|
||||
{
|
||||
if (!IsInvalidBg32(bg) && !IsTileMapOutsideWram(bg))
|
||||
{
|
||||
if (mode != 0)
|
||||
CpuCopy16(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2)), mode);
|
||||
else
|
||||
LZ77UnCompWram(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2)));
|
||||
}
|
||||
if (IsInvalidBg32(bg) || IsTileMapOutsideWram(bg))
|
||||
return;
|
||||
if (mode != 0)
|
||||
CpuCopy16(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2)), mode);
|
||||
else
|
||||
LZ77UnCompWram(src, (void *)(sGpuBgConfigs2[bg].tilemap + (destOffset * 2)));
|
||||
}
|
||||
|
||||
void CopyBgTilemapBufferToVram(u8 bg)
|
||||
{
|
||||
u16 sizeToLoad;
|
||||
|
||||
if (!IsInvalidBg32(bg) && !IsTileMapOutsideWram(bg))
|
||||
if (IsInvalidBg32(bg) || IsTileMapOutsideWram(bg))
|
||||
return;
|
||||
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
case 0:
|
||||
sizeToLoad = GetBgMetricTextMode(bg, 0) * 0x800;
|
||||
break;
|
||||
case 1:
|
||||
sizeToLoad = GetBgMetricAffineMode(bg, 0) * 0x100;
|
||||
break;
|
||||
default:
|
||||
sizeToLoad = 0;
|
||||
break;
|
||||
}
|
||||
LoadBgVram(bg, sGpuBgConfigs2[bg].tilemap, sizeToLoad, 0, 2);
|
||||
case 0:
|
||||
sizeToLoad = GetBgMetricTextMode(bg, 0) * 0x800;
|
||||
break;
|
||||
case 1:
|
||||
sizeToLoad = GetBgMetricAffineMode(bg, 0) * 0x100;
|
||||
break;
|
||||
default:
|
||||
sizeToLoad = 0;
|
||||
break;
|
||||
}
|
||||
LoadBgVram(bg, sGpuBgConfigs2[bg].tilemap, sizeToLoad, 0, 2);
|
||||
}
|
||||
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height)
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height)
|
||||
{
|
||||
u16 destX16;
|
||||
u16 destY16;
|
||||
u16 destX16, destY16;
|
||||
u16 mode;
|
||||
|
||||
if (!IsInvalidBg32(bg) && !IsTileMapOutsideWram(bg))
|
||||
if (IsInvalidBg32(bg) || IsTileMapOutsideWram(bg))
|
||||
return;
|
||||
switch (GetBgType(bg))
|
||||
{
|
||||
switch (GetBgType(bg))
|
||||
case 0:
|
||||
{
|
||||
const u16 *srcCopy = src;
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
const u16 * srcCopy = src;
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
|
||||
}
|
||||
((u16 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
const u8 *srcCopy = src;
|
||||
mode = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
{
|
||||
const u8 * srcCopy = src;
|
||||
mode = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
|
||||
}
|
||||
((u8 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
10
gflib/text.c
10
gflib/text.c
@ -154,7 +154,7 @@ u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8
|
||||
printerTemplate.currentY = y;
|
||||
printerTemplate.letterSpacing = gFonts[fontId].letterSpacing;
|
||||
printerTemplate.lineSpacing = gFonts[fontId].lineSpacing;
|
||||
printerTemplate.unk = gFonts[fontId].unk;
|
||||
printerTemplate.style = gFonts[fontId].style;
|
||||
printerTemplate.fgColor = gFonts[fontId].fgColor;
|
||||
printerTemplate.bgColor = gFonts[fontId].bgColor;
|
||||
printerTemplate.shadowColor = gFonts[fontId].shadowColor;
|
||||
@ -484,7 +484,7 @@ u8 GetLastTextColor(u8 colorType)
|
||||
{ \
|
||||
dst = windowTiles + ((j / 8) * 32) + ((j & 7) >> 1) + ((i / 8) * widthOffset) + ((i & 7) * 4); \
|
||||
bits = ((j & 1) * 4); \
|
||||
*dst = (toOrr << bits) | ((0xF0 >> bits) & *dst); \
|
||||
*dst = (toOrr << bits) | (*dst & (0xF0 >> bits)); \
|
||||
} \
|
||||
r5 >>= 4; \
|
||||
} \
|
||||
@ -1567,7 +1567,7 @@ void SetDefaultFontsPointer(void)
|
||||
|
||||
u8 GetFontAttribute(u8 fontId, u8 attributeId)
|
||||
{
|
||||
int result = 0;
|
||||
u8 result = 0;
|
||||
switch (attributeId)
|
||||
{
|
||||
case FONTATTR_MAX_LETTER_WIDTH:
|
||||
@ -1582,8 +1582,8 @@ u8 GetFontAttribute(u8 fontId, u8 attributeId)
|
||||
case FONTATTR_LINE_SPACING:
|
||||
result = gFontInfos[fontId].lineSpacing;
|
||||
break;
|
||||
case FONTATTR_UNKNOWN:
|
||||
result = gFontInfos[fontId].unk;
|
||||
case FONTATTR_STYLE:
|
||||
result = gFontInfos[fontId].style;
|
||||
break;
|
||||
case FONTATTR_COLOR_FOREGROUND:
|
||||
result = gFontInfos[fontId].fgColor;
|
||||
|
@ -282,7 +282,7 @@ enum
|
||||
FONTATTR_MAX_LETTER_HEIGHT,
|
||||
FONTATTR_LETTER_SPACING,
|
||||
FONTATTR_LINE_SPACING,
|
||||
FONTATTR_UNKNOWN, // dunno what this is yet
|
||||
FONTATTR_STYLE,
|
||||
FONTATTR_COLOR_FOREGROUND,
|
||||
FONTATTR_COLOR_BACKGROUND,
|
||||
FONTATTR_COLOR_SHADOW
|
||||
@ -310,7 +310,7 @@ struct TextPrinterTemplate
|
||||
u8 currentY;
|
||||
u8 letterSpacing;
|
||||
u8 lineSpacing;
|
||||
u8 unk:4; // 0xC
|
||||
u8 style:4; // 0xC
|
||||
u8 fgColor:4;
|
||||
u8 bgColor:4;
|
||||
u8 shadowColor:4;
|
||||
@ -339,7 +339,7 @@ struct FontInfo
|
||||
u8 maxLetterHeight;
|
||||
u8 letterSpacing;
|
||||
u8 lineSpacing;
|
||||
u8 unk:4;
|
||||
u8 style:4; //unused
|
||||
u8 fgColor:4;
|
||||
u8 bgColor:4;
|
||||
u8 shadowColor:4;
|
||||
|
@ -30,21 +30,18 @@ static void nullsub_8(void)
|
||||
|
||||
bool16 InitWindows(const struct WindowTemplate *templates)
|
||||
{
|
||||
int i;
|
||||
void *bgTilemapBuffer;
|
||||
int j;
|
||||
u8 bgLayer;
|
||||
u16 attrib;
|
||||
int i, j;
|
||||
u8* allocatedTilemapBuffer;
|
||||
u16 attrib;
|
||||
int allocatedBaseBlock;
|
||||
u8 bgLayer;
|
||||
|
||||
for (i = 0; i < 0x4; ++i)
|
||||
{
|
||||
bgTilemapBuffer = GetBgTilemapBuffer(i);
|
||||
if (bgTilemapBuffer != NULL)
|
||||
if (GetBgTilemapBuffer(i) != NULL)
|
||||
gUnknown_03002F70[i] = nullsub_8;
|
||||
else
|
||||
gUnknown_03002F70[i] = bgTilemapBuffer;
|
||||
gUnknown_03002F70[i] = NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x20; ++i)
|
||||
@ -567,19 +564,19 @@ u32 GetWindowAttribute(u8 windowId, u8 attributeId)
|
||||
switch (attributeId)
|
||||
{
|
||||
case WINDOW_BG:
|
||||
return gWindows[windowId].window.bg;
|
||||
return (u32)gWindows[windowId].window.bg;
|
||||
case WINDOW_TILEMAP_LEFT:
|
||||
return gWindows[windowId].window.tilemapLeft;
|
||||
return (u32)gWindows[windowId].window.tilemapLeft;
|
||||
case WINDOW_TILEMAP_TOP:
|
||||
return gWindows[windowId].window.tilemapTop;
|
||||
return (u32)gWindows[windowId].window.tilemapTop;
|
||||
case WINDOW_WIDTH:
|
||||
return gWindows[windowId].window.width;
|
||||
return (u32)gWindows[windowId].window.width;
|
||||
case WINDOW_HEIGHT:
|
||||
return gWindows[windowId].window.height;
|
||||
return (u32)gWindows[windowId].window.height;
|
||||
case WINDOW_PALETTE_NUM:
|
||||
return gWindows[windowId].window.paletteNum;
|
||||
return (u32)gWindows[windowId].window.paletteNum;
|
||||
case WINDOW_BASE_BLOCK:
|
||||
return gWindows[windowId].window.baseBlock;
|
||||
return (u32)gWindows[windowId].window.baseBlock;
|
||||
case WINDOW_TILE_DATA:
|
||||
return (u32)(gWindows[windowId].tileData);
|
||||
default:
|
||||
@ -643,12 +640,9 @@ u16 AddWindow8Bit(const struct WindowTemplate *template)
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
gWindows[windowId].tileData = memAddress;
|
||||
gWindows[windowId].window = *template;
|
||||
return windowId;
|
||||
}
|
||||
gWindows[windowId].tileData = memAddress;
|
||||
gWindows[windowId].window = *template;
|
||||
return windowId;
|
||||
}
|
||||
|
||||
void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue)
|
||||
|
@ -24,7 +24,7 @@ struct ListMenu;
|
||||
struct ListMenuItem
|
||||
{
|
||||
const u8 *name;
|
||||
s32 id;
|
||||
u32 id;
|
||||
};
|
||||
|
||||
struct ListMenuTemplate
|
||||
@ -98,7 +98,7 @@ struct CursorStruct
|
||||
extern struct ScrollArrowsTemplate gTempScrollArrowTemplate;
|
||||
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
|
||||
|
||||
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
|
||||
u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
|
||||
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
|
||||
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow);
|
||||
s32 ListMenu_ProcessInput(u8 listTaskId);
|
||||
|
@ -4547,7 +4547,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||
textPrinter.currentY = textPrinter.y;
|
||||
textPrinter.letterSpacing = 2;
|
||||
textPrinter.lineSpacing = 0;
|
||||
textPrinter.unk = 0;
|
||||
textPrinter.style = 0;
|
||||
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
|
||||
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
|
||||
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
|
||||
@ -5080,7 +5080,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
textPrinter.currentY = textPrinter.y;
|
||||
textPrinter.letterSpacing = 0;
|
||||
textPrinter.lineSpacing = 0;
|
||||
textPrinter.unk = 0;
|
||||
textPrinter.style = 0;
|
||||
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
|
||||
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
|
||||
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
|
||||
@ -5534,7 +5534,7 @@ static void Task_ShowTourneyTree(u8 taskId)
|
||||
gTasks[taskId].tState++;
|
||||
break;
|
||||
case 2:
|
||||
sTilemapBuffer = AllocZeroed(0x800);
|
||||
sTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE);
|
||||
LZDecompressWram(gDomeTourneyLineMask_Tilemap, sTilemapBuffer);
|
||||
SetBgTilemapBuffer(1, sTilemapBuffer);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
@ -5578,7 +5578,7 @@ static void Task_ShowTourneyTree(u8 taskId)
|
||||
textPrinter.lineSpacing = 0;
|
||||
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x70, textPrinter.letterSpacing);
|
||||
textPrinter.currentY = 1;
|
||||
textPrinter.unk = 0;
|
||||
textPrinter.style = 0;
|
||||
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
|
||||
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
|
||||
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
|
||||
@ -5759,7 +5759,7 @@ static void Task_HandleStaticTourneyTreeInput(u8 taskId)
|
||||
textPrinter.y = 0;
|
||||
textPrinter.letterSpacing = 2;
|
||||
textPrinter.lineSpacing = 0;
|
||||
textPrinter.unk = 0;
|
||||
textPrinter.style = 0;
|
||||
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2;
|
||||
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
|
||||
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
|
||||
|
@ -2995,7 +2995,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
|
||||
printerTemplate.currentY = printerTemplate.y;
|
||||
printerTemplate.letterSpacing = textInfo[windowId].letterSpacing;
|
||||
printerTemplate.lineSpacing = textInfo[windowId].lineSpacing;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = textInfo[windowId].fgColor;
|
||||
printerTemplate.bgColor = textInfo[windowId].bgColor;
|
||||
printerTemplate.shadowColor = textInfo[windowId].shadowColor;
|
||||
|
@ -485,7 +485,7 @@ static void CB2_ShowTrainerHillRecords(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 2:
|
||||
sTilemapBuffer = AllocZeroed(0x800);
|
||||
sTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sTrainerHillRecordsBgTemplates, ARRAY_COUNT(sTrainerHillRecordsBgTemplates));
|
||||
SetBgTilemapBuffer(3, sTilemapBuffer);
|
||||
|
@ -6036,7 +6036,7 @@ static void PutLevelAndGenderOnLvlUpBox(void)
|
||||
printerTemplate.currentY = 0;
|
||||
printerTemplate.letterSpacing = 0;
|
||||
printerTemplate.lineSpacing = 0;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = TEXT_COLOR_WHITE;
|
||||
printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT;
|
||||
printerTemplate.shadowColor = TEXT_COLOR_DARK_GREY;
|
||||
|
@ -30,10 +30,8 @@ static void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 hei
|
||||
|
||||
static void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused.
|
||||
{
|
||||
u8 i;
|
||||
u8 j;
|
||||
u8 x;
|
||||
u8 y;
|
||||
u8 i, j;
|
||||
u8 x, y;
|
||||
const u16 *_src;
|
||||
|
||||
for (i = 0, _src = src, y = top; i < height; i++)
|
||||
|
@ -5411,7 +5411,7 @@ static void Contest_PrintTextToBg0WindowStd(u32 windowId, const u8 *b)
|
||||
printerTemplate.currentY = 1;
|
||||
printerTemplate.letterSpacing = 0;
|
||||
printerTemplate.lineSpacing = 0;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = 15;
|
||||
printerTemplate.bgColor = 0;
|
||||
printerTemplate.shadowColor = 8;
|
||||
@ -5434,7 +5434,7 @@ void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s3
|
||||
printerTemplate.currentY = y;
|
||||
printerTemplate.letterSpacing = 0;
|
||||
printerTemplate.lineSpacing = 0;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = 15;
|
||||
printerTemplate.bgColor = 0;
|
||||
printerTemplate.shadowColor = 8;
|
||||
@ -5458,7 +5458,7 @@ static void Contest_StartTextPrinter(const u8 *currChar, bool32 b)
|
||||
printerTemplate.currentY = 1;
|
||||
printerTemplate.letterSpacing = 0;
|
||||
printerTemplate.lineSpacing = 0;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = 1;
|
||||
printerTemplate.bgColor = 0;
|
||||
printerTemplate.shadowColor = 8;
|
||||
|
@ -2201,7 +2201,7 @@ static void AddContestTextPrinter(int windowId, u8 *str, int x)
|
||||
textPrinter.currentY = 2;
|
||||
textPrinter.letterSpacing = 0;
|
||||
textPrinter.lineSpacing = 0;
|
||||
textPrinter.unk = 0;
|
||||
textPrinter.style = 0;
|
||||
textPrinter.fgColor = 1;
|
||||
textPrinter.bgColor = 0;
|
||||
textPrinter.shadowColor = 8;
|
||||
|
@ -1160,7 +1160,7 @@ static void sub_8175548(void)
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sBackgroundTemplates, 1);
|
||||
SetBgTilemapBuffer(0, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
|
||||
LoadPalette(gUnknown_085E56F0, 0x80, 0x40);
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
|
@ -1186,7 +1186,7 @@ static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
|
||||
printer.y = y;
|
||||
printer.currentX = x;
|
||||
printer.currentY = y;
|
||||
printer.unk = 0;
|
||||
printer.style = 0;
|
||||
gTextFlags.useAlternateDownArrow = 0;
|
||||
printer.letterSpacing = 0;
|
||||
printer.lineSpacing = 1;
|
||||
|
@ -312,7 +312,7 @@ static void ListMenuDummyTask(u8 taskId)
|
||||
|
||||
}
|
||||
|
||||
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
|
||||
u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
|
||||
{
|
||||
switch (sMysteryGiftLinkMenu.state)
|
||||
{
|
||||
|
@ -1335,7 +1335,7 @@ static void InitMatchCallTextPrinter(int windowId, const u8 *str)
|
||||
printerTemplate.currentY = 1;
|
||||
printerTemplate.letterSpacing = 0;
|
||||
printerTemplate.lineSpacing = 0;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
printerTemplate.fgColor = 10;
|
||||
printerTemplate.bgColor = 8;
|
||||
printerTemplate.shadowColor = 14;
|
||||
|
26
src/menu.c
26
src/menu.c
@ -180,7 +180,7 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed
|
||||
printer.currentY = 1;
|
||||
printer.letterSpacing = 0;
|
||||
printer.lineSpacing = 0;
|
||||
printer.unk = 0;
|
||||
printer.style = 0;
|
||||
printer.fgColor = fgColor;
|
||||
printer.bgColor = bgColor;
|
||||
printer.shadowColor = shadowColor;
|
||||
@ -1075,17 +1075,17 @@ s8 Menu_ProcessInputNoWrapAround_other(void)
|
||||
PlaySE(SE_SELECT);
|
||||
return sMenu.cursorPos;
|
||||
}
|
||||
else if (gMain.newKeys & B_BUTTON)
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
return MENU_B_PRESSED;
|
||||
}
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
|
||||
if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
|
||||
{
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
|
||||
PlaySE(SE_SELECT);
|
||||
return MENU_NOTHING_CHOSEN;
|
||||
}
|
||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
|
||||
if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
|
||||
{
|
||||
if (oldPos != Menu_MoveCursorNoWrapAround(1))
|
||||
PlaySE(SE_SELECT);
|
||||
@ -1130,7 +1130,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
|
||||
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
|
||||
printer.letterSpacing = letterSpacing;
|
||||
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
|
||||
printer.x = left;
|
||||
@ -1194,7 +1194,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
|
||||
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
|
||||
printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
|
||||
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
|
||||
|
||||
@ -1252,7 +1252,7 @@ void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u
|
||||
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
|
||||
printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
|
||||
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
|
||||
|
||||
@ -1616,7 +1616,7 @@ void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *strs, const
|
||||
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(1, FONTATTR_STYLE);
|
||||
printer.letterSpacing = 0;
|
||||
printer.lineSpacing = 0;
|
||||
printer.x = 8;
|
||||
@ -1650,7 +1650,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
|
||||
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(1, FONTATTR_STYLE);
|
||||
printer.letterSpacing = 0;
|
||||
printer.lineSpacing = 0;
|
||||
|
||||
@ -1681,7 +1681,7 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M
|
||||
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
|
||||
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
|
||||
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
|
||||
printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
|
||||
printer.style = GetFontAttribute(1, FONTATTR_STYLE);
|
||||
printer.letterSpacing = 0;
|
||||
printer.lineSpacing = 0;
|
||||
|
||||
@ -1949,7 +1949,7 @@ void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const
|
||||
printer.currentY = printer.y;
|
||||
printer.letterSpacing = GetFontAttribute(fontId, 2);
|
||||
printer.lineSpacing = GetFontAttribute(fontId, 3);
|
||||
printer.unk = 0;
|
||||
printer.style = 0;
|
||||
printer.fgColor = color[1];
|
||||
printer.bgColor = color[0];
|
||||
printer.shadowColor = color[2];
|
||||
@ -1970,7 +1970,7 @@ void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 le
|
||||
printer.currentY = printer.y;
|
||||
printer.letterSpacing = letterSpacing;
|
||||
printer.lineSpacing = lineSpacing;
|
||||
printer.unk = 0;
|
||||
printer.style = 0;
|
||||
printer.fgColor = color[1];
|
||||
printer.bgColor = color[0];
|
||||
printer.shadowColor = color[2];
|
||||
@ -1991,7 +1991,7 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left
|
||||
printer.currentY = top;
|
||||
printer.letterSpacing = letterSpacing;
|
||||
printer.lineSpacing = lineSpacing;
|
||||
printer.unk = 0;
|
||||
printer.style = 0;
|
||||
|
||||
printer.fgColor = GetFontAttribute(fontId, 5);
|
||||
printer.bgColor = GetFontAttribute(fontId, 6);
|
||||
|
@ -430,7 +430,7 @@ static const struct ListMenuTemplate sPokeblockListMenuTemplate =
|
||||
// code
|
||||
void OpenPokeblockCase(u8 caseId, void (*callback)(void))
|
||||
{
|
||||
sPokeblockMenu = Alloc(sizeof(*sPokeblockMenu));
|
||||
sPokeblockMenu = Alloc(sizeof(struct PokeblockMenuStruct));
|
||||
sPokeblockMenu->caseId = caseId;
|
||||
sPokeblockMenu->callbackOnUse = NULL;
|
||||
sPokeblockMenu->unkTaskId = 0xFF;
|
||||
|
@ -172,16 +172,16 @@ struct PokedexView
|
||||
u16 ownCount;
|
||||
u16 monSpriteIds[MAX_MONS_ON_SCREEN];
|
||||
u16 selectedMonSpriteId;
|
||||
u16 pokeBallRotationStep;
|
||||
u16 pokeBallRotationBackup;
|
||||
s16 pokeBallRotationStep;
|
||||
s16 pokeBallRotationBackup;
|
||||
u8 pokeBallRotation;
|
||||
u8 initialVOffset;
|
||||
u8 scrollTimer;
|
||||
u8 scrollDirection;
|
||||
s16 listVOffset;
|
||||
s16 listMovingVOffset;
|
||||
u16 scrollMonIncrement;
|
||||
u16 maxScrollTimer;
|
||||
s16 scrollMonIncrement;
|
||||
s16 maxScrollTimer;
|
||||
u16 scrollSpeed;
|
||||
u16 unkArr1[4]; // Cleared, never read
|
||||
u8 filler[8];
|
||||
@ -2060,10 +2060,10 @@ static bool8 LoadPokedexListPage(u8 page)
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sPokedex_BgTemplate, ARRAY_COUNT(sPokedex_BgTemplate));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
|
||||
CopyToBgTilemapBuffer(1, gPokedexList_Tilemap, 0, 0);
|
||||
CopyToBgTilemapBuffer(3, gPokedexListUnderlay_Tilemap, 0, 0);
|
||||
@ -3186,10 +3186,10 @@ static u8 LoadInfoScreen(struct PokedexListItem* item, u8 monSpriteId)
|
||||
gTasks[taskId].data[5] = 255;
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sInfoScreen_BgTemplate, ARRAY_COUNT(sInfoScreen_BgTemplate));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
|
||||
InitWindows(sInfoScreen_WindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
|
||||
@ -3951,8 +3951,8 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId)
|
||||
ResetOtherVideoRegisters(DISPCNT_BG0_ON);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sNewEntryInfoScreen_BgTemplate, ARRAY_COUNT(sNewEntryInfoScreen_BgTemplate));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(BG_SCREEN_SIZE));
|
||||
InitWindows(sNewEntryInfoScreen_WindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
gTasks[taskId].tState = 1;
|
||||
@ -4820,10 +4820,10 @@ static void Task_LoadSearchMenu(u8 taskId)
|
||||
ResetOtherVideoRegisters(0);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sSearchMenu_BgTemplate, ARRAY_COUNT(sSearchMenu_BgTemplate));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(0x800));
|
||||
SetBgTilemapBuffer(3, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(2, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
|
||||
InitWindows(sSearchMenu_WindowTemplate);
|
||||
DeactivateAllTextPrinters();
|
||||
PutWindowTilemap(0);
|
||||
|
@ -406,7 +406,7 @@ void StartPokemonJump(u16 partyIndex, MainCallback callback)
|
||||
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
gUnknown_02022CFC = Alloc(sizeof(*gUnknown_02022CFC));
|
||||
gUnknown_02022CFC = Alloc(sizeof(struct PokemonJump1));
|
||||
if (gUnknown_02022CFC)
|
||||
{
|
||||
ResetTasks();
|
||||
|
@ -2157,7 +2157,7 @@ static void Cb2_EnterPSS(u8 boxOption)
|
||||
{
|
||||
ResetTasks();
|
||||
sCurrentBoxOption = boxOption;
|
||||
sPSSData = Alloc(sizeof(*sPSSData));
|
||||
sPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
|
||||
if (sPSSData == NULL)
|
||||
{
|
||||
SetMainCallback2(Cb2_ExitPSS);
|
||||
@ -2177,7 +2177,7 @@ static void Cb2_EnterPSS(u8 boxOption)
|
||||
static void Cb2_ReturnToPSS(void)
|
||||
{
|
||||
ResetTasks();
|
||||
sPSSData = Alloc(sizeof(*sPSSData));
|
||||
sPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
|
||||
if (sPSSData == NULL)
|
||||
{
|
||||
SetMainCallback2(Cb2_ExitPSS);
|
||||
|
@ -317,7 +317,7 @@ static void Task_RunLoopedTask_LinkMode(u8 taskId)
|
||||
|
||||
void CB2_InitPokeNav(void)
|
||||
{
|
||||
gPokenavResources = Alloc(sizeof(*gPokenavResources));
|
||||
gPokenavResources = Alloc(sizeof(struct PokenavResources));
|
||||
if (gPokenavResources == NULL)
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
|
||||
@ -345,7 +345,7 @@ static void CB2_InitPokenavForTutorial(void)
|
||||
if (gPaletteFade.active)
|
||||
return;
|
||||
|
||||
gPokenavResources = Alloc(sizeof(*gPokenavResources));
|
||||
gPokenavResources = Alloc(sizeof(struct PokenavResources));
|
||||
if (gPokenavResources == NULL)
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
||||
|
@ -3754,7 +3754,7 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str
|
||||
printerTemplate.y = y;
|
||||
printerTemplate.currentX = x;
|
||||
printerTemplate.currentY = y;
|
||||
printerTemplate.unk = 0;
|
||||
printerTemplate.style = 0;
|
||||
|
||||
gTextFlags.useAlternateDownArrow = FALSE;
|
||||
switch (colorIdx)
|
||||
|
@ -2121,7 +2121,7 @@ static void Task_ReceiveChatMessage(u8 taskId)
|
||||
|
||||
static bool8 TryAllocDisplay(void)
|
||||
{
|
||||
sDisplay = Alloc(sizeof(*sDisplay));
|
||||
sDisplay = Alloc(sizeof(struct UnionRoomChatDisplay));
|
||||
if (sDisplay && TryAllocSprites())
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
|
@ -237,7 +237,7 @@ static void PrintHeaderTexts(void)
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(0));
|
||||
FillWindowPixelBuffer(2, PIXEL_FILL(0));
|
||||
WCSS_AddTextPrinterParameterized(0, 1, sHeaderTexts[0], GetStringCenterAlignXOffset(1, sHeaderTexts[0], 0xC0), 6, COLORMODE_GREEN);
|
||||
for (i = 0; i < (int)ARRAY_COUNT(*sHeaderTexts) - 1; i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(sHeaderTexts[0]) - 1; i++)
|
||||
{
|
||||
WCSS_AddTextPrinterParameterized(1, 1, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_WHITE_LGRAY);
|
||||
}
|
||||
@ -362,12 +362,12 @@ static u32 CountPlayersInGroupAndGetActivity(struct UnkStruct_x20 * unk20, u32 *
|
||||
{
|
||||
if (group_players(i) == 0)
|
||||
{
|
||||
k = 0;
|
||||
k = 0; //Should just be 1 without the increment after the loop ends but that doesn't match.
|
||||
for (j = 0; j < RFU_CHILD_MAX; j++)
|
||||
{
|
||||
if (unk20->gname_uname.gname.child_sprite_gender[j] != 0) k++;
|
||||
}
|
||||
k++;
|
||||
k++; //See above comment.
|
||||
groupCounts[group_type(i)] += k;
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user