Merge branch 'master' into document-eventscripts
This commit is contained in:
@@ -1559,8 +1559,8 @@ static void CreateMenuWithAnswers(u8 arg0)
|
||||
pixelWidth = width;
|
||||
}
|
||||
|
||||
width = convert_pixel_width_to_tile_width(pixelWidth);
|
||||
left = sub_80E2D5C(left, width);
|
||||
width = ConvertPixelWidthToTileWidth(pixelWidth);
|
||||
left = ScriptMenu_AdjustLeftCoordFromWidth(left, width);
|
||||
windowId = CreateAndShowWindow(left, top, width, count * 2);
|
||||
SetStandardWindowBorderStyle(windowId, 0);
|
||||
|
||||
|
||||
1006
src/data/script_menu.h
Normal file
1006
src/data/script_menu.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,7 @@
|
||||
#include "constants/heal_locations.h"
|
||||
#include "constants/map_types.h"
|
||||
#include "constants/maps.h"
|
||||
#include "constants/script_menu.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
@@ -2270,144 +2271,160 @@ void BufferBattleTowerElevatorFloors(void)
|
||||
gSpecialVar_0x8006 = 12;
|
||||
}
|
||||
|
||||
// data[1]: number of options in the multichoice
|
||||
// Scrollable Multichoice task data defines
|
||||
#define tMaxItemsOnScreen data[0]
|
||||
#define tNumItems data[1]
|
||||
#define tLeft data[2]
|
||||
#define tTop data[3]
|
||||
#define tWidth data[4]
|
||||
#define tHeight data[5]
|
||||
#define tKeepOpenAfterSelect data[6]
|
||||
#define tScrollOffset data[7]
|
||||
#define tSelectedRow data[8]
|
||||
#define tScrollMultiId data[11]
|
||||
#define tScrollArrowId data[12]
|
||||
#define tWindowId data[13]
|
||||
#define tListTaskId data[14]
|
||||
#define tTaskId data[15]
|
||||
// data[9] and [10] unused
|
||||
|
||||
void ShowScrollableMultichoice(void)
|
||||
{
|
||||
u8 taskId = CreateTask(Task_ShowScrollableMultichoice, 8);
|
||||
struct Task *task = &gTasks[taskId];
|
||||
task->data[11] = gSpecialVar_0x8004;
|
||||
task->tScrollMultiId = gSpecialVar_0x8004;
|
||||
|
||||
switch (gSpecialVar_0x8004)
|
||||
{
|
||||
case SCROLL_MULTI_NONE:
|
||||
task->data[0] = 1;
|
||||
task->data[1] = 1;
|
||||
task->data[2] = 1;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 1;
|
||||
task->data[5] = 1;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = 1;
|
||||
task->tNumItems = 1;
|
||||
task->tLeft = 1;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 1;
|
||||
task->tHeight = 1;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_GLASS_WORKSHOP_VENDOR:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN - 1;
|
||||
task->data[1] = 8;
|
||||
task->data[2] = 1;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 9;
|
||||
task->data[5] = 10;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN - 1;
|
||||
task->tNumItems = 8;
|
||||
task->tLeft = 1;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 9;
|
||||
task->tHeight = 10;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_POKEMON_FAN_CLUB_RATER:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 12;
|
||||
task->data[2] = 1;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 7;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 12;
|
||||
task->tLeft = 1;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 7;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 11;
|
||||
task->data[2] = 14;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 15;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 11;
|
||||
task->tLeft = 14;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 15;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 6;
|
||||
task->data[2] = 14;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 15;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 6;
|
||||
task->tLeft = 14;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 15;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 7;
|
||||
task->data[2] = 14;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 15;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 7;
|
||||
task->tLeft = 14;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 15;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 10;
|
||||
task->data[2] = 14;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 15;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 10;
|
||||
task->tLeft = 14;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 15;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BERRY_POWDER_VENDOR:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 12;
|
||||
task->data[2] = 15;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 14;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 12;
|
||||
task->tLeft = 15;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 14;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_RECEPTIONIST:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 10;
|
||||
task->data[2] = 17;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 11;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 10;
|
||||
task->tLeft = 17;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 11;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BF_MOVE_TUTOR_1:
|
||||
case SCROLL_MULTI_BF_MOVE_TUTOR_2:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 11;
|
||||
task->data[2] = 15;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 14;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 11;
|
||||
task->tLeft = 15;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 14;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_SS_TIDAL_DESTINATION:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 7;
|
||||
task->data[2] = 19;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 10;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 7;
|
||||
task->tLeft = 19;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 10;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
case SCROLL_MULTI_BATTLE_TENT_RULES:
|
||||
task->data[0] = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->data[1] = 7;
|
||||
task->data[2] = 17;
|
||||
task->data[3] = 1;
|
||||
task->data[4] = 12;
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 0;
|
||||
task->data[15] = taskId;
|
||||
task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN;
|
||||
task->tNumItems = 7;
|
||||
task->tLeft = 17;
|
||||
task->tTop = 1;
|
||||
task->tWidth = 12;
|
||||
task->tHeight = 12;
|
||||
task->tKeepOpenAfterSelect = FALSE;
|
||||
task->tTaskId = taskId;
|
||||
break;
|
||||
default:
|
||||
gSpecialVar_Result = 0x7F;
|
||||
gSpecialVar_Result = MULTI_B_PRESSED;
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static const u8 *const sScrollableMenuOptions[][MAX_SCROLL_MULTI_LENGTH] =
|
||||
static const u8 *const sScrollableMultichoiceOptions[][MAX_SCROLL_MULTI_LENGTH] =
|
||||
{
|
||||
[SCROLL_MULTI_NONE] =
|
||||
{
|
||||
@@ -2565,7 +2582,7 @@ static const u8 *const sScrollableMenuOptions[][MAX_SCROLL_MULTI_LENGTH] =
|
||||
|
||||
static void Task_ShowScrollableMultichoice(u8 taskId)
|
||||
{
|
||||
u32 unk1;
|
||||
u32 width;
|
||||
u8 i, windowId;
|
||||
struct WindowTemplate template;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
@@ -2573,46 +2590,46 @@ static void Task_ShowScrollableMultichoice(u8 taskId)
|
||||
ScriptContext2_Enable();
|
||||
sScrollableMultichoice_ScrollOffset = 0;
|
||||
sScrollableMultichoice_ItemSpriteId = MAX_SPRITES;
|
||||
FillFrontierExchangeCornerWindowAndItemIcon(task->data[11], 0);
|
||||
ShowBattleFrontierTutorWindow(task->data[11], 0);
|
||||
sScrollableMultichoice_ListMenuItem = AllocZeroed(task->data[1] * 8);
|
||||
FillFrontierExchangeCornerWindowAndItemIcon(task->tScrollMultiId, 0);
|
||||
ShowBattleFrontierTutorWindow(task->tScrollMultiId, 0);
|
||||
sScrollableMultichoice_ListMenuItem = AllocZeroed(task->tNumItems * 8);
|
||||
sFrontierExchangeCorner_NeverRead = 0;
|
||||
InitScrollableMultichoice();
|
||||
|
||||
for (unk1 = 0, i = 0; i < task->data[1]; i++)
|
||||
for (width = 0, i = 0; i < task->tNumItems; i++)
|
||||
{
|
||||
const u8 *text = sScrollableMenuOptions[gSpecialVar_0x8004][i];
|
||||
const u8 *text = sScrollableMultichoiceOptions[gSpecialVar_0x8004][i];
|
||||
sScrollableMultichoice_ListMenuItem[i].name = text;
|
||||
sScrollableMultichoice_ListMenuItem[i].id = i;
|
||||
unk1 = display_text_and_get_width(text, unk1);
|
||||
width = DisplayTextAndGetWidth(text, width);
|
||||
}
|
||||
|
||||
task->data[4] = convert_pixel_width_to_tile_width(unk1);
|
||||
task->tWidth = ConvertPixelWidthToTileWidth(width);
|
||||
|
||||
if (task->data[2] + task->data[4] > 0x1D)
|
||||
if (task->tLeft + task->tWidth > MAX_MULTICHOICE_WIDTH + 1)
|
||||
{
|
||||
int unk2 = 0x1D - task->data[4];
|
||||
if (unk2 < 0)
|
||||
int adjustedLeft = MAX_MULTICHOICE_WIDTH + 1 - task->tWidth;
|
||||
if (adjustedLeft < 0)
|
||||
{
|
||||
task->data[2] = 0;
|
||||
task->tLeft = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[2] = unk2;
|
||||
task->tLeft = adjustedLeft;
|
||||
}
|
||||
}
|
||||
|
||||
template = CreateWindowTemplate(0, task->data[2], task->data[3], task->data[4], task->data[5], 0xF, 0x64);
|
||||
template = CreateWindowTemplate(0, task->tLeft, task->tTop, task->tWidth, task->tHeight, 0xF, 0x64);
|
||||
windowId = AddWindow(&template);
|
||||
task->data[13] = windowId;
|
||||
task->tWindowId = windowId;
|
||||
SetStandardWindowBorderStyle(windowId, 0);
|
||||
|
||||
gScrollableMultichoice_ListMenuTemplate.totalItems = task->data[1];
|
||||
gScrollableMultichoice_ListMenuTemplate.maxShowed = task->data[0];
|
||||
gScrollableMultichoice_ListMenuTemplate.windowId = task->data[13];
|
||||
gScrollableMultichoice_ListMenuTemplate.totalItems = task->tNumItems;
|
||||
gScrollableMultichoice_ListMenuTemplate.maxShowed = task->tMaxItemsOnScreen;
|
||||
gScrollableMultichoice_ListMenuTemplate.windowId = task->tWindowId;
|
||||
|
||||
ScrollableMultichoice_UpdateScrollArrows(taskId);
|
||||
task->data[14] = ListMenuInit(&gScrollableMultichoice_ListMenuTemplate, task->data[7], task->data[8]);
|
||||
task->tListTaskId = ListMenuInit(&gScrollableMultichoice_ListMenuTemplate, task->tScrollOffset, task->tSelectedRow);
|
||||
schedule_bg_copy_tilemap_to_vram(0);
|
||||
gTasks[taskId].func = ScrollableMultichoice_ProcessInput;
|
||||
}
|
||||
@@ -2648,12 +2665,12 @@ static void ScrollableMultichoice_MoveCursor(s32 itemIndex, bool8 onInit, struct
|
||||
{
|
||||
u16 selection;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
ListMenuGetScrollAndRow(task->data[14], &selection, NULL);
|
||||
ListMenuGetScrollAndRow(task->tListTaskId, &selection, NULL);
|
||||
sScrollableMultichoice_ScrollOffset = selection;
|
||||
ListMenuGetCurrentItemArrayId(task->data[14], &selection);
|
||||
HideFrontierExchangeCornerItemIcon(task->data[11], sFrontierExchangeCorner_NeverRead);
|
||||
FillFrontierExchangeCornerWindowAndItemIcon(task->data[11], selection);
|
||||
ShowBattleFrontierTutorMoveDescription(task->data[11], selection);
|
||||
ListMenuGetCurrentItemArrayId(task->tListTaskId, &selection);
|
||||
HideFrontierExchangeCornerItemIcon(task->tScrollMultiId, sFrontierExchangeCorner_NeverRead);
|
||||
FillFrontierExchangeCornerWindowAndItemIcon(task->tScrollMultiId, selection);
|
||||
ShowBattleFrontierTutorMoveDescription(task->tScrollMultiId, selection);
|
||||
sFrontierExchangeCorner_NeverRead = selection;
|
||||
}
|
||||
}
|
||||
@@ -2661,25 +2678,26 @@ static void ScrollableMultichoice_MoveCursor(s32 itemIndex, bool8 onInit, struct
|
||||
static void ScrollableMultichoice_ProcessInput(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
s32 input = ListMenu_ProcessInput(task->data[14]);
|
||||
s32 input = ListMenu_ProcessInput(task->tListTaskId);
|
||||
|
||||
switch (input)
|
||||
{
|
||||
case LIST_NOTHING_CHOSEN:
|
||||
break;
|
||||
case LIST_CANCEL:
|
||||
gSpecialVar_Result = 0x7F;
|
||||
gSpecialVar_Result = MULTI_B_PRESSED;
|
||||
PlaySE(SE_SELECT);
|
||||
CloseScrollableMultichoice(taskId);
|
||||
break;
|
||||
default:
|
||||
gSpecialVar_Result = input;
|
||||
PlaySE(SE_SELECT);
|
||||
if (!task->data[6])
|
||||
if (!task->tKeepOpenAfterSelect)
|
||||
{
|
||||
CloseScrollableMultichoice(taskId);
|
||||
}
|
||||
else if (input == task->data[1] - 1)
|
||||
// if selected option was the last one (Exit)
|
||||
else if (input == task->tNumItems - 1)
|
||||
{
|
||||
CloseScrollableMultichoice(taskId);
|
||||
}
|
||||
@@ -2697,28 +2715,29 @@ static void CloseScrollableMultichoice(u8 taskId)
|
||||
{
|
||||
u16 selection;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
ListMenuGetCurrentItemArrayId(task->data[14], &selection);
|
||||
HideFrontierExchangeCornerItemIcon(task->data[11], selection);
|
||||
ListMenuGetCurrentItemArrayId(task->tListTaskId, &selection);
|
||||
HideFrontierExchangeCornerItemIcon(task->tScrollMultiId, selection);
|
||||
ScrollableMultichoice_RemoveScrollArrows(taskId);
|
||||
DestroyListMenuTask(task->data[14], NULL, NULL);
|
||||
DestroyListMenuTask(task->tListTaskId, NULL, NULL);
|
||||
Free(sScrollableMultichoice_ListMenuItem);
|
||||
ClearStdWindowAndFrameToTransparent(task->data[13], 1);
|
||||
FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0));
|
||||
CopyWindowToVram(task->data[13], 2);
|
||||
RemoveWindow(task->data[13]);
|
||||
ClearStdWindowAndFrameToTransparent(task->tWindowId, 1);
|
||||
FillWindowPixelBuffer(task->tWindowId, PIXEL_FILL(0));
|
||||
CopyWindowToVram(task->tWindowId, 2);
|
||||
RemoveWindow(task->tWindowId);
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
// Functionally unused; tKeepOpenAfterSelect is only != 0 in unused functions
|
||||
static void sub_813A600(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].data[6])
|
||||
switch (gTasks[taskId].tKeepOpenAfterSelect)
|
||||
{
|
||||
case 1:
|
||||
default:
|
||||
break;
|
||||
case 2:
|
||||
gTasks[taskId].data[6] = 1;
|
||||
gTasks[taskId].tKeepOpenAfterSelect = 1;
|
||||
gTasks[taskId].func = sub_813A664;
|
||||
break;
|
||||
}
|
||||
@@ -2734,7 +2753,7 @@ void sub_813A630(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[6]++;
|
||||
gTasks[taskId].tKeepOpenAfterSelect++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2763,24 +2782,24 @@ static void ScrollableMultichoice_UpdateScrollArrows(u8 taskId)
|
||||
|
||||
struct Task *task = &gTasks[taskId];
|
||||
struct ScrollArrowsTemplate template = sScrollableMultichoice_ScrollArrowsTemplate;
|
||||
if (task->data[0] != task->data[1])
|
||||
if (task->tMaxItemsOnScreen != task->data[1])
|
||||
{
|
||||
template.firstX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
|
||||
template.firstX = (task->tWidth / 2) * 8 + 12 + (task->tLeft - 1) * 8;
|
||||
template.firstY = 8;
|
||||
template.secondX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
|
||||
template.secondY = task->data[5] * 8 + 10;
|
||||
template.secondX = (task->tWidth / 2) * 8 + 12 + (task->tLeft - 1) * 8;
|
||||
template.secondY = task->tHeight * 8 + 10;
|
||||
template.fullyUpThreshold = 0;
|
||||
template.fullyDownThreshold = task->data[1] - task->data[0];
|
||||
task->data[12] = AddScrollIndicatorArrowPair(&template, &sScrollableMultichoice_ScrollOffset);
|
||||
template.fullyDownThreshold = task->data[1] - task->tMaxItemsOnScreen;
|
||||
task->tScrollArrowId = AddScrollIndicatorArrowPair(&template, &sScrollableMultichoice_ScrollOffset);
|
||||
}
|
||||
}
|
||||
|
||||
static void ScrollableMultichoice_RemoveScrollArrows(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (task->data[0] != task->data[1])
|
||||
if (task->tMaxItemsOnScreen != task->data[1])
|
||||
{
|
||||
RemoveScrollIndicatorArrowPair(task->data[12]);
|
||||
RemoveScrollIndicatorArrowPair(task->tScrollArrowId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3041,7 +3060,7 @@ static void FillFrontierExchangeCornerWindowAndItemIcon(u16 menu, u16 selection)
|
||||
{
|
||||
#include "data/battle_frontier/battle_frontier_exchange_corner.h"
|
||||
|
||||
if (menu > SCROLL_MULTI_POKEMON_FAN_CLUB_RATER && menu < SCROLL_MULTI_BERRY_POWDER_VENDOR)
|
||||
if (menu >= SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1 && menu <= SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR)
|
||||
{
|
||||
FillWindowPixelRect(0, PIXEL_FILL(1), 0, 0, 216, 32);
|
||||
switch (menu)
|
||||
@@ -3240,17 +3259,17 @@ void sub_813ADD4(void)
|
||||
if (taskId != 0xFF)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow);
|
||||
SetStandardWindowBorderStyle(task->data[13], 0);
|
||||
ListMenuGetScrollAndRow(task->tListTaskId, &scrollOffset, &selectedRow);
|
||||
SetStandardWindowBorderStyle(task->tWindowId, 0);
|
||||
|
||||
for (i = 0; i < MAX_SCROLL_MULTI_ON_SCREEN; i++)
|
||||
{
|
||||
AddTextPrinterParameterized5(task->data[13], 1, sScrollableMenuOptions[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
|
||||
AddTextPrinterParameterized5(task->tWindowId, 1, sScrollableMultichoiceOptions[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
|
||||
}
|
||||
|
||||
AddTextPrinterParameterized(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
|
||||
PutWindowTilemap(task->data[13]);
|
||||
CopyWindowToVram(task->data[13], 3);
|
||||
AddTextPrinterParameterized(task->tWindowId, 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
|
||||
PutWindowTilemap(task->tWindowId);
|
||||
CopyWindowToVram(task->tWindowId, 3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3299,17 +3318,33 @@ void sub_813AF48(void)
|
||||
if (taskId != 0xFF)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
DestroyListMenuTask(task->data[14], NULL, NULL);
|
||||
DestroyListMenuTask(task->tListTaskId, NULL, NULL);
|
||||
Free(sScrollableMultichoice_ListMenuItem);
|
||||
ClearStdWindowAndFrameToTransparent(task->data[13], TRUE);
|
||||
FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0));
|
||||
ClearWindowTilemap(task->data[13]);
|
||||
CopyWindowToVram(task->data[13], 2);
|
||||
RemoveWindow(task->data[13]);
|
||||
ClearStdWindowAndFrameToTransparent(task->tWindowId, TRUE);
|
||||
FillWindowPixelBuffer(task->tWindowId, PIXEL_FILL(0));
|
||||
ClearWindowTilemap(task->tWindowId);
|
||||
CopyWindowToVram(task->tWindowId, 2);
|
||||
RemoveWindow(task->tWindowId);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
// Undefine Scrollable Multichoice task data macros
|
||||
#undef tMaxItemsOnScreen
|
||||
#undef tNumItems
|
||||
#undef tLeft
|
||||
#undef tTop
|
||||
#undef tWidth
|
||||
#undef tHeight
|
||||
#undef tKeepOpenAfterSelect
|
||||
#undef tScrollOffset
|
||||
#undef tSelectedRow
|
||||
#undef tScrollMultiId
|
||||
#undef tScrollArrowId
|
||||
#undef tWindowId
|
||||
#undef tListTaskId
|
||||
#undef tTaskId
|
||||
|
||||
void DoDeoxysRockInteraction(void)
|
||||
{
|
||||
CreateTask(Task_DeoxysRockInteraction, 8);
|
||||
|
||||
@@ -27,7 +27,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
ScrSpecial_CreatePCMenu();
|
||||
ScriptMenu_CreatePCMultichoice();
|
||||
ScriptMenu_DisplayPCStartupPrompt();
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
||||
CreateTask(Task_WaitForPaletteFade, 10);
|
||||
|
||||
@@ -45,7 +45,7 @@ int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1)
|
||||
var = stringWidth;
|
||||
}
|
||||
|
||||
return convert_pixel_width_to_tile_width(var);
|
||||
return ConvertPixelWidthToTileWidth(var);
|
||||
}
|
||||
|
||||
int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2)
|
||||
@@ -59,7 +59,7 @@ int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2)
|
||||
var = stringWidth;
|
||||
}
|
||||
|
||||
return convert_pixel_width_to_tile_width(var);
|
||||
return ConvertPixelWidthToTileWidth(var);
|
||||
}
|
||||
|
||||
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu)
|
||||
|
||||
@@ -1155,7 +1155,7 @@ static void PrintStoryList(void)
|
||||
if (curWidth > width)
|
||||
width = curWidth;
|
||||
}
|
||||
sStorytellerWindowId = CreateWindowFromRect(0, 0, convert_pixel_width_to_tile_width(width), GetFreeStorySlot() * 2 + 2);
|
||||
sStorytellerWindowId = CreateWindowFromRect(0, 0, ConvertPixelWidthToTileWidth(width), GetFreeStorySlot() * 2 + 2);
|
||||
SetStandardWindowBorderStyle(sStorytellerWindowId, 0);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
|
||||
@@ -4817,11 +4817,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
||||
{
|
||||
if (evCount >= MAX_TOTAL_EVS)
|
||||
return TRUE;
|
||||
if (dataSigned >= 100)
|
||||
if (dataSigned >= EV_ITEM_RAISE_LIMIT)
|
||||
break;
|
||||
|
||||
if (dataSigned + r2 > 100)
|
||||
r5 = 100 - (dataSigned + r2) + r2;
|
||||
if (dataSigned + r2 > EV_ITEM_RAISE_LIMIT)
|
||||
r5 = EV_ITEM_RAISE_LIMIT - (dataSigned + r2) + r2;
|
||||
else
|
||||
r5 = r2;
|
||||
|
||||
@@ -5021,11 +5021,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
||||
{
|
||||
if (evCount >= MAX_TOTAL_EVS)
|
||||
return TRUE;
|
||||
if (dataSigned >= 100)
|
||||
if (dataSigned >= EV_ITEM_RAISE_LIMIT)
|
||||
break;
|
||||
|
||||
if (dataSigned + r2 > 100)
|
||||
r5 = 100 - (dataSigned + r2) + r2;
|
||||
if (dataSigned + r2 > EV_ITEM_RAISE_LIMIT)
|
||||
r5 = EV_ITEM_RAISE_LIMIT - (dataSigned + r2) + r2;
|
||||
else
|
||||
r5 = r2;
|
||||
|
||||
|
||||
@@ -1624,7 +1624,7 @@ bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx)
|
||||
u8 stringVarIndex = ScriptReadByte(ctx);
|
||||
u16 index = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
StringCopy(sScriptStringVars[stringVarIndex], gUnknown_0858BAF0[index]);
|
||||
StringCopy(sScriptStringVars[stringVarIndex], gStdStrings[index]);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
1279
src/script_menu.c
1279
src/script_menu.c
File diff suppressed because it is too large
Load Diff
@@ -585,14 +585,14 @@ void HasEnoughMonsForDoubleBattle(void)
|
||||
{
|
||||
switch (GetMonsStateToDoubles())
|
||||
{
|
||||
case 0:
|
||||
gSpecialVar_Result = 0;
|
||||
case PLAYER_HAS_TWO_USABLE_MONS:
|
||||
gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS;
|
||||
break;
|
||||
case 1:
|
||||
gSpecialVar_Result = 1;
|
||||
case PLAYER_HAS_ONE_MON:
|
||||
gSpecialVar_Result = PLAYER_HAS_ONE_MON;
|
||||
break;
|
||||
case 2:
|
||||
gSpecialVar_Result = 2;
|
||||
case PLAYER_HAS_ONE_USABLE_MON:
|
||||
gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,20 +505,20 @@ const u8 *GetExpandedPlaceholder(u32 id)
|
||||
|
||||
static const ExpandPlaceholderFunc funcs[] =
|
||||
{
|
||||
ExpandPlaceholder_UnknownStringVar,
|
||||
ExpandPlaceholder_PlayerName,
|
||||
ExpandPlaceholder_StringVar1,
|
||||
ExpandPlaceholder_StringVar2,
|
||||
ExpandPlaceholder_StringVar3,
|
||||
ExpandPlaceholder_KunChan,
|
||||
ExpandPlaceholder_RivalName,
|
||||
ExpandPlaceholder_Version,
|
||||
ExpandPlaceholder_Aqua,
|
||||
ExpandPlaceholder_Magma,
|
||||
ExpandPlaceholder_Archie,
|
||||
ExpandPlaceholder_Maxie,
|
||||
ExpandPlaceholder_Kyogre,
|
||||
ExpandPlaceholder_Groudon,
|
||||
[PLACEHOLDER_ID_UNKNOWN] = ExpandPlaceholder_UnknownStringVar,
|
||||
[PLACEHOLDER_ID_PLAYER] = ExpandPlaceholder_PlayerName,
|
||||
[PLACEHOLDER_ID_STRING_VAR_1] = ExpandPlaceholder_StringVar1,
|
||||
[PLACEHOLDER_ID_STRING_VAR_2] = ExpandPlaceholder_StringVar2,
|
||||
[PLACEHOLDER_ID_STRING_VAR_3] = ExpandPlaceholder_StringVar3,
|
||||
[PLACEHOLDER_ID_KUN] = ExpandPlaceholder_KunChan,
|
||||
[PLACEHOLDER_ID_RIVAL] = ExpandPlaceholder_RivalName,
|
||||
[PLACEHOLDER_ID_VERSION] = ExpandPlaceholder_Version,
|
||||
[PLACEHOLDER_ID_AQUA] = ExpandPlaceholder_Aqua,
|
||||
[PLACEHOLDER_ID_MAGMA] = ExpandPlaceholder_Magma,
|
||||
[PLACEHOLDER_ID_ARCHIE] = ExpandPlaceholder_Archie,
|
||||
[PLACEHOLDER_ID_MAXIE] = ExpandPlaceholder_Maxie,
|
||||
[PLACEHOLDER_ID_KYOGRE] = ExpandPlaceholder_Kyogre,
|
||||
[PLACEHOLDER_ID_GROUDON] = ExpandPlaceholder_Groudon,
|
||||
};
|
||||
|
||||
if (id >= ARRAY_COUNT(funcs))
|
||||
|
||||
255
src/strings.c
255
src/strings.c
@@ -599,89 +599,89 @@ const u8 gText_Brawly[] = _("BRAWLY");
|
||||
const u8 gText_Winona[] = _("WINONA");
|
||||
const u8 gText_Phoebe[] = _("PHOEBE");
|
||||
const u8 gText_Glacia[] = _("GLACIA");
|
||||
const u8 gUnknown_085EAD37[] = _("PETALBURG");
|
||||
const u8 gUnknown_085EAD41[] = _("SLATEPORT");
|
||||
const u8 gUnknown_085EAD4B[] = _("LITTLEROOT");
|
||||
const u8 gUnknown_085EAD56[] = _("LILYCOVE");
|
||||
const u8 gUnknown_085EAD5F[] = _("DEWFORD");
|
||||
const u8 gUnknown_085EAD67[] = _("ENTER");
|
||||
const u8 gUnknown_085EAD6D[] = _("INFO");
|
||||
const u8 gUnknown_085EAD72[] = _("What's a CONTEST?");
|
||||
const u8 gUnknown_085EAD84[] = _("Types of CONTESTS");
|
||||
const u8 gUnknown_085EAD96[] = _("Ranks");
|
||||
const u8 gUnknown_085EAD9C[] = _("Judging");
|
||||
const u8 gText_Petalburg[] = _("PETALBURG");
|
||||
const u8 gText_Slateport[] = _("SLATEPORT");
|
||||
const u8 gText_Littleroot[] = _("LITTLEROOT"); // Unused. Given the context, Briney may at one point have been able to sail the player here
|
||||
const u8 gText_Lilycove[] = _("LILYCOVE"); // Unused. Given the context, Briney may at one point have been able to sail the player here
|
||||
const u8 gText_Dewford[] = _("DEWFORD");
|
||||
const u8 gText_Enter2[] = _("ENTER");
|
||||
const u8 gText_Info2[] = _("INFO");
|
||||
const u8 gText_WhatsAContest[] = _("What's a CONTEST?");
|
||||
const u8 gText_TypesOfContests[] = _("Types of CONTESTS");
|
||||
const u8 gText_Ranks[] = _("Ranks");
|
||||
const u8 gText_Judging[] = _("Judging"); //unused
|
||||
const u8 gText_CoolnessContest[] = _("COOLNESS CONTEST");
|
||||
const u8 gText_BeautyContest[] = _("BEAUTY CONTEST");
|
||||
const u8 gText_CutenessContest[] = _("CUTENESS CONTEST");
|
||||
const u8 gText_SmartnessContest[] = _("SMARTNESS CONTEST");
|
||||
const u8 gText_ToughnessContest[] = _("TOUGHNESS CONTEST");
|
||||
const u8 gUnknown_085EADF9[] = _("DECORATION");
|
||||
const u8 gUnknown_085EAE04[] = _("PACK UP");
|
||||
const u8 gUnknown_085EAE0C[] = _("COUNT");
|
||||
const u8 gUnknown_085EAE12[] = _("REGISTRY");
|
||||
const u8 gUnknown_085EAE1B[] = _("INFORMATION");
|
||||
const u8 gUnknown_085EAE27[] = _("MACH");
|
||||
const u8 gUnknown_085EAE2C[] = _("ACRO");
|
||||
const u8 gUnknown_085EAE31[] = _("PSN");
|
||||
const u8 gUnknown_085EAE35[] = _("PAR");
|
||||
const u8 gUnknown_085EAE39[] = _("SLP");
|
||||
const u8 gUnknown_085EAE3D[] = _("BRN");
|
||||
const u8 gUnknown_085EAE41[] = _("FRZ");
|
||||
const u8 gText_Decoration2[] = _("DECORATION");
|
||||
const u8 gText_PackUp[] = _("PACK UP");
|
||||
const u8 gText_Count[] = _("COUNT"); //unused
|
||||
const u8 gText_Registry[] = _("REGISTRY");
|
||||
const u8 gText_Information[] = _("INFORMATION");
|
||||
const u8 gText_Mach[] = _("MACH");
|
||||
const u8 gText_Acro[] = _("ACRO");
|
||||
const u8 gText_Psn[] = _("PSN");
|
||||
const u8 gText_Par[] = _("PAR");
|
||||
const u8 gText_Slp[] = _("SLP");
|
||||
const u8 gText_Brn[] = _("BRN");
|
||||
const u8 gText_Frz[] = _("FRZ");
|
||||
const u8 gUnknown_085EAE45[] = _("TOXIC");
|
||||
const u8 gUnknown_085EAE4B[] = _("OK");
|
||||
const u8 gUnknown_085EAE4E[] = _("QUIT");
|
||||
const u8 gUnknown_085EAE53[] = _("Saw it");
|
||||
const u8 gUnknown_085EAE5A[] = _("Not yet");
|
||||
const u8 gText_SawIt[] = _("Saw it");
|
||||
const u8 gText_NotYet[] = _("Not yet");
|
||||
const u8 gText_Yes[] = _("YES");
|
||||
const u8 gText_No[] = _("NO");
|
||||
const u8 gUnknown_085EAE69[] = _("INFO");
|
||||
const u8 gUnknown_085EAE6E[] = _("SINGLE BATTLE");
|
||||
const u8 gUnknown_085EAE7C[] = _("DOUBLE BATTLE");
|
||||
const u8 gUnknown_085EAE8A[] = _("MULTI BATTLE");
|
||||
const u8 gText_SingleBattle[] = _("SINGLE BATTLE");
|
||||
const u8 gText_DoubleBattle[] = _("DOUBLE BATTLE");
|
||||
const u8 gText_MultiBattle[] = _("MULTI BATTLE");
|
||||
const u8 gUnknown_085EAE97[] = _("MR. BRINEY");
|
||||
const u8 gUnknown_085EAEA2[] = _("CHALLENGE");
|
||||
const u8 gUnknown_085EAEAC[] = _("INFO");
|
||||
const u8 gText_Challenge[] = _("CHALLENGE");
|
||||
const u8 gText_Info3[] = _("INFO");
|
||||
const u8 gText_Lv50[] = _("LV. 50");
|
||||
const u8 gText_OpenLevel[] = _("OPEN LEVEL");
|
||||
const u8 gUnknown_085EAEC3[] = _("FRESH WATER{CLEAR_TO 0x48}¥200");
|
||||
const u8 gUnknown_085EAED6[] = _("SODA POP{CLEAR_TO 0x48}¥300");
|
||||
const u8 gUnknown_085EAEE6[] = _("LEMONADE{CLEAR_TO 0x48}¥350");
|
||||
const u8 gUnknown_085EAEF6[] = _("HOW TO RIDE");
|
||||
const u8 gUnknown_085EAF02[] = _("HOW TO TURN");
|
||||
const u8 gUnknown_085EAF0E[] = _("SANDY SLOPES");
|
||||
const u8 gUnknown_085EAF1B[] = _("WHEELIES");
|
||||
const u8 gUnknown_085EAF24[] = _("BUNNY-HOPS");
|
||||
const u8 gUnknown_085EAF2F[] = _("JUMP");
|
||||
const u8 gUnknown_085EAF34[] = _("Satisfied");
|
||||
const u8 gUnknown_085EAF3E[] = _("Dissatisfied");
|
||||
const u8 gUnknown_085EAF4B[] = _("DEEPSEATOOTH");
|
||||
const u8 gUnknown_085EAF58[] = _("DEEPSEASCALE");
|
||||
const u8 gUnknown_085EAF65[] = _("BLUE FLUTE");
|
||||
const u8 gUnknown_085EAF70[] = _("YELLOW FLUTE");
|
||||
const u8 gUnknown_085EAF7D[] = _("RED FLUTE");
|
||||
const u8 gUnknown_085EAF87[] = _("WHITE FLUTE");
|
||||
const u8 gUnknown_085EAF93[] = _("BLACK FLUTE");
|
||||
const u8 gUnknown_085EAF9F[] = _("GLASS CHAIR");
|
||||
const u8 gUnknown_085EAFAB[] = _("GLASS DESK");
|
||||
const u8 gUnknown_085EAFB6[] = _("TREECKO DOLL 1,000 COINS");
|
||||
const u8 gUnknown_085EAFCF[] = _("TORCHIC DOLL 1,000 COINS");
|
||||
const u8 gUnknown_085EAFE8[] = _("MUDKIP DOLL 1,000 COINS");
|
||||
const u8 gUnknown_085EB002[] = _(" 50 COINS ¥1,000");
|
||||
const u8 gUnknown_085EB017[] = _("500 COINS ¥10,000");
|
||||
const u8 gUnknown_085EB02A[] = _("Excellent");
|
||||
const u8 gUnknown_085EB034[] = _("Not so good");
|
||||
const u8 gUnknown_085EB040[] = _("RED SHARD");
|
||||
const u8 gUnknown_085EB04A[] = _("YELLOW SHARD");
|
||||
const u8 gUnknown_085EB057[] = _("BLUE SHARD");
|
||||
const u8 gUnknown_085EB062[] = _("GREEN SHARD");
|
||||
const u8 gText_FreshWaterAndPrice[] = _("FRESH WATER{CLEAR_TO 0x48}¥200");
|
||||
const u8 gText_SodaPopAndPrice[] = _("SODA POP{CLEAR_TO 0x48}¥300");
|
||||
const u8 gText_LemonadeAndPrice[] = _("LEMONADE{CLEAR_TO 0x48}¥350");
|
||||
const u8 gText_HowToRide[] = _("HOW TO RIDE");
|
||||
const u8 gText_HowToTurn[] = _("HOW TO TURN");
|
||||
const u8 gText_SandySlopes[] = _("SANDY SLOPES");
|
||||
const u8 gText_Wheelies[] = _("WHEELIES");
|
||||
const u8 gText_BunnyHops[] = _("BUNNY-HOPS");
|
||||
const u8 gText_Jump[] = _("JUMP");
|
||||
const u8 gText_Satisfied[] = _("Satisfied");
|
||||
const u8 gText_Dissatisfied[] = _("Dissatisfied");
|
||||
const u8 gText_DeepSeaTooth[] = _("DEEPSEATOOTH");
|
||||
const u8 gText_DeepSeaScale[] = _("DEEPSEASCALE");
|
||||
const u8 gText_BlueFlute2[] = _("BLUE FLUTE");
|
||||
const u8 gText_YellowFlute2[] = _("YELLOW FLUTE");
|
||||
const u8 gText_RedFlute2[] = _("RED FLUTE");
|
||||
const u8 gText_WhiteFlute2[] = _("WHITE FLUTE");
|
||||
const u8 gText_BlackFlute2[] = _("BLACK FLUTE");
|
||||
const u8 gText_GlassChair[] = _("GLASS CHAIR");
|
||||
const u8 gText_GlassDesk[] = _("GLASS DESK");
|
||||
const u8 gText_TreeckoDollAndPrice[] = _("TREECKO DOLL 1,000 COINS");
|
||||
const u8 gText_TorchicDollAndPrice[] = _("TORCHIC DOLL 1,000 COINS");
|
||||
const u8 gText_MudkipDollAndPrice[] = _("MUDKIP DOLL 1,000 COINS");
|
||||
const u8 gText_50CoinsAndPrice[] = _(" 50 COINS ¥1,000");
|
||||
const u8 gText_500CoinsAndPrice[] = _("500 COINS ¥10,000");
|
||||
const u8 gText_Excellent2[] = _("Excellent");
|
||||
const u8 gText_NotSoGood[] = _("Not so good");
|
||||
const u8 gText_RedShard[] = _("RED SHARD");
|
||||
const u8 gText_YellowShard[] = _("YELLOW SHARD");
|
||||
const u8 gText_BlueShard[] = _("BLUE SHARD");
|
||||
const u8 gText_GreenShard[] = _("GREEN SHARD");
|
||||
const u8 gText_BattleFrontier[] = _("BATTLE FRONTIER");
|
||||
const u8 gUnknown_085EB07E[] = _("Right");
|
||||
const u8 gUnknown_085EB084[] = _("Left");
|
||||
const u8 gUnknown_085EB089[] = _("TM32{CLEAR_TO 0x48}1,500 COINS");
|
||||
const u8 gUnknown_085EB09C[] = _("TM29{CLEAR_TO 0x48}3,500 COINS");
|
||||
const u8 gUnknown_085EB0AF[] = _("TM35{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gUnknown_085EB0C2[] = _("TM24{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gUnknown_085EB0D5[] = _("TM13{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gText_Right[] = _("Right");
|
||||
const u8 gText_Left[] = _("Left");
|
||||
const u8 gText_TM32AndPrice[] = _("TM32{CLEAR_TO 0x48}1,500 COINS");
|
||||
const u8 gText_TM29AndPrice[] = _("TM29{CLEAR_TO 0x48}3,500 COINS");
|
||||
const u8 gText_TM35AndPrice[] = _("TM35{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gText_TM24AndPrice[] = _("TM24{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gText_TM13AndPrice[] = _("TM13{CLEAR_TO 0x48}4,000 COINS");
|
||||
const u8 gText_Cool[] = _("COOL");
|
||||
const u8 gText_Beauty[] = _("BEAUTY");
|
||||
const u8 gText_Cute[] = _("CUTE");
|
||||
@@ -728,82 +728,81 @@ const u8 gText_MenuOptionPokedex[] = _("POKéDEX");
|
||||
const u8 gText_MenuOptionPokemon[] = _("POKéMON");
|
||||
const u8 gText_MenuOptionBag[] = _("BAG");
|
||||
const u8 gText_MenuOptionPokenav[] = _("POKéNAV");
|
||||
const u8 gUnknown_085EB278[] = _("");
|
||||
const u8 gText_Blank[] = _("");
|
||||
const u8 gText_MenuOptionSave[] = _("SAVE");
|
||||
const u8 gText_MenuOptionOption[] = _("OPTION");
|
||||
const u8 gText_MenuOptionExit[] = _("EXIT");
|
||||
const u8 gUnknown_085EB28A[] = __(" ");
|
||||
const u8 gUnknown_085EB28C[] = _("5BP");
|
||||
const u8 gUnknown_085EB290[] = _("10BP");
|
||||
const u8 gUnknown_085EB295[] = _("15BP");
|
||||
const u8 gUnknown_085EB29A[] = _("RED TENT");
|
||||
const u8 gUnknown_085EB2A3[] = _("BLUE TENT");
|
||||
const u8 gText_5BP[] = _(" 5BP");
|
||||
const u8 gText_10BP[] = _("10BP");
|
||||
const u8 gText_15BP[] = _("15BP");
|
||||
const u8 gText_RedTent[] = _("RED TENT");
|
||||
const u8 gText_BlueTent[] = _("BLUE TENT");
|
||||
const u8 gText_SouthernIsland[] = _("SOUTHERN ISLAND");
|
||||
const u8 gText_BirthIsland[] = _("BIRTH ISLAND");
|
||||
const u8 gText_FarawayIsland[] = _("FARAWAY ISLAND");
|
||||
const u8 gText_NavelRock[] = _("NAVEL ROCK");
|
||||
const u8 gUnknown_085EB2E4[] = _("CLAW FOSSIL");
|
||||
const u8 gUnknown_085EB2F0[] = _("ROOT FOSSIL");
|
||||
const u8 gUnknown_085EB2FC[] = _("NO");
|
||||
const u8 gUnknown_085EB2FF[] = _("I'll battle now!");
|
||||
const u8 gUnknown_085EB310[] = _("I won!");
|
||||
const u8 gUnknown_085EB317[] = _("I lost!");
|
||||
const u8 gUnknown_085EB31F[] = _("I won't tell.");
|
||||
const u8 gText_ClawFossil[] = _("CLAW FOSSIL");
|
||||
const u8 gText_RootFossil[] = _("ROOT FOSSIL");
|
||||
const u8 gText_No4[] = _("NO");
|
||||
const u8 gText_IllBattleNow[] = _("I'll battle now!");
|
||||
const u8 gText_IWon[] = _("I won!");
|
||||
const u8 gText_ILost[] = _("I lost!");
|
||||
const u8 gText_IWontTell[] = _("I won't tell.");
|
||||
const u8 gText_NormalTagMatch[] = _("NORMAL TAG MATCH");
|
||||
const u8 gText_VarietyTagMatch[] = _("VARIETY TAG MATCH");
|
||||
const u8 gText_UniqueTagMatch[] = _("UNIQUE TAG MATCH");
|
||||
const u8 gText_ExpertTagMatch[] = _("EXPERT TAG MATCH");
|
||||
const u8 gUnknown_085EB372[] = _("TRADE CENTER");
|
||||
const u8 gUnknown_085EB37F[] = _("COLOSSEUM");
|
||||
const u8 gUnknown_085EB389[] = _("RECORD CORNER");
|
||||
const u8 gUnknown_085EB397[] = _("BERRY CRUSH");
|
||||
const u8 gText_TradeCenter[] = _("TRADE CENTER");
|
||||
const u8 gText_Colosseum[] = _("COLOSSEUM");
|
||||
const u8 gText_RecordCorner[] = _("RECORD CORNER");
|
||||
const u8 gText_BerryCrush3[] = _("BERRY CRUSH");
|
||||
const u8 gUnknown_085EB3A3[] = _("");
|
||||
const u8 gUnknown_085EB3A4[] = _("POKéMON JUMP");
|
||||
const u8 gUnknown_085EB3B1[] = _("DODRIO BERRY-PICKING");
|
||||
const u8 gUnknown_085EB3C6[] = _("BECOME LEADER");
|
||||
const u8 gUnknown_085EB3D4[] = _("JOIN GROUP");
|
||||
const u8 gUnknown_085EB3DF[] = _("TWO STYLES");
|
||||
const u8 gUnknown_085EB3EA[] = _("LV. 50");
|
||||
const u8 gUnknown_085EB3F1[] = _("OPEN LEVEL");
|
||||
const u8 gUnknown_085EB3FC[] = _("{PKMN} TYPE & NO.");
|
||||
const u8 gUnknown_085EB40A[] = _("HOLD ITEMS");
|
||||
const u8 gUnknown_085EB415[] = _("SYMBOLS");
|
||||
const u8 gUnknown_085EB41D[] = _("RECORD");
|
||||
const u8 gUnknown_085EB424[] = _("BATTLE PTS");
|
||||
const u8 gUnknown_085EB42F[] = _("TOWER INFO");
|
||||
const u8 gUnknown_085EB43A[] = _("BATTLE {PKMN}");
|
||||
const u8 gUnknown_085EB444[] = _("BATTLE SALON");
|
||||
const u8 gUnknown_085EB451[] = _("MULTI-LINK");
|
||||
const u8 gUnknown_085EB45C[] = _("BATTLE RULES");
|
||||
const u8 gUnknown_085EB469[] = _("JUDGE: MIND");
|
||||
const u8 gUnknown_085EB475[] = _("JUDGE: SKILL");
|
||||
const u8 gUnknown_085EB482[] = _("JUDGE: BODY");
|
||||
const u8 gUnknown_085EB48E[] = _("MATCHUP");
|
||||
const u8 gUnknown_085EB496[] = _("TOURNEY TREE");
|
||||
const u8 gUnknown_085EB4A3[] = _("DOUBLE KO");
|
||||
const u8 gUnknown_085EB4AD[] = _("BASIC RULES");
|
||||
const u8 gUnknown_085EB4B9[] = _("SWAP: PARTNER");
|
||||
const u8 gUnknown_085EB4C7[] = _("SWAP: NUMBER");
|
||||
const u8 gUnknown_085EB4D4[] = _("SWAP: NOTES");
|
||||
const u8 gUnknown_085EB4E0[] = _("OPEN LEVEL");
|
||||
const u8 gText_PokemonJump[] = _("POKéMON JUMP");
|
||||
const u8 gText_DodrioBerryPicking[] = _("DODRIO BERRY-PICKING");
|
||||
const u8 gText_BecomeLeader[] = _("BECOME LEADER");
|
||||
const u8 gText_JoinGroup[] = _("JOIN GROUP");
|
||||
const u8 gText_TwoStyles[] = _("TWO STYLES");
|
||||
const u8 gText_Lv50_3[] = _("LV. 50");
|
||||
const u8 gText_OpenLevel2[] = _("OPEN LEVEL");
|
||||
const u8 gText_MonTypeAndNo[] = _("{PKMN} TYPE & NO.");
|
||||
const u8 gText_HoldItems[] = _("HOLD ITEMS");
|
||||
const u8 gText_Symbols2[] = _("SYMBOLS");
|
||||
const u8 gText_Record3[] = _("RECORD");
|
||||
const u8 gText_BattlePts[] = _("BATTLE PTS");
|
||||
const u8 gText_TowerInfo[] = _("TOWER INFO");
|
||||
const u8 gText_BattleMon[] = _("BATTLE {PKMN}");
|
||||
const u8 gText_BattleSalon[] = _("BATTLE SALON");
|
||||
const u8 gText_MultiLink2[] = _("MULTI-LINK");
|
||||
const u8 gText_BattleRules[] = _("BATTLE RULES");
|
||||
const u8 gText_JudgeMind[] = _("JUDGE: MIND");
|
||||
const u8 gText_JudgeSkill[] = _("JUDGE: SKILL");
|
||||
const u8 gText_JudgeBody[] = _("JUDGE: BODY");
|
||||
const u8 gText_Matchup[] = _("MATCHUP");
|
||||
const u8 gText_TourneyTree[] = _("TOURNEY TREE");
|
||||
const u8 gText_DoubleKO[] = _("DOUBLE KO");
|
||||
const u8 gText_BasicRules[] = _("BASIC RULES");
|
||||
const u8 gText_SwapPartners[] = _("SWAP: PARTNER");
|
||||
const u8 gText_SwapNumber[] = _("SWAP: NUMBER");
|
||||
const u8 gText_SwapNotes[] = _("SWAP: NOTES");
|
||||
const u8 gText_OpenLevel3[] = _("OPEN LEVEL");
|
||||
const u8 gText_BattleBasics[] = _("BATTLE BASICS");
|
||||
const u8 gText_PokemonNature[] = _("POKéMON NATURE");
|
||||
const u8 gText_PokemonMoves[] = _("POKéMON MOVES");
|
||||
const u8 gText_Underpowered[] = _("UNDERPOWERED");
|
||||
const u8 gText_WhenInDanger[] = _("WHEN IN DANGER");
|
||||
const u8 gUnknown_085EB532[] = _("PYRAMID: POKéMON");
|
||||
const u8 gUnknown_085EB543[] = _("PYRAMID: TRAINERS");
|
||||
const u8 gUnknown_085EB555[] = _("PYRAMID: MAZE");
|
||||
const u8 gUnknown_085EB563[] = _("BATTLE BAG");
|
||||
const u8 gUnknown_085EB56E[] = _("POKéNAV AND BAG");
|
||||
const u8 gUnknown_085EB57E[] = _("HELD ITEMS");
|
||||
const u8 gUnknown_085EB589[] = _("POKéMON ORDER");
|
||||
const u8 gUnknown_085EB597[] = _("BATTLE POKéMON");
|
||||
const u8 gText_PyramidPokemon[] = _("PYRAMID: POKéMON");
|
||||
const u8 gText_PyramidTrainers[] = _("PYRAMID: TRAINERS");
|
||||
const u8 gText_PyramidMaze[] = _("PYRAMID: MAZE");
|
||||
const u8 gText_BattleBag2[] = _("BATTLE BAG");
|
||||
const u8 gText_PokenavAndBag[] = _("POKéNAV AND BAG");
|
||||
const u8 gText_HeldItems[] = _("HELD ITEMS");
|
||||
const u8 gText_PokemonOrder[] = _("POKéMON ORDER");
|
||||
const u8 gText_BattlePokemon[] = _("BATTLE POKéMON");
|
||||
const u8 gText_BattleTrainers[] = _("BATTLE TRAINERS");
|
||||
const u8 gUnknown_085EB5B6[] = _("GO ON");
|
||||
const u8 gUnknown_085EB5BC[] = _("RECORD");
|
||||
const u8 gUnknown_085EB5C3[] = _("REST");
|
||||
const u8 gUnknown_085EB5C8[] = _("RETIRE");
|
||||
const u8 gText_GoOn[] = _("GO ON");
|
||||
const u8 gText_Record2[] = _("RECORD");
|
||||
const u8 gText_Rest[] = _("REST");
|
||||
const u8 gText_Retire[] = _("RETIRE");
|
||||
const u8 gText_99TimesPlus[] = _("99 times +");
|
||||
const u8 gText_1MinutePlus[] = _("1 minute +");
|
||||
const u8 gText_SpaceSeconds[] = _(" seconds");
|
||||
@@ -1419,8 +1418,8 @@ const u8 gUnknown_085EE0FA[] = _("つうしん しゅうりょう!");
|
||||
const u8 gUnknown_085EE107[] = _("あらたな トレーナーが\nホウエンに やってきた!");
|
||||
const u8 gUnknown_085EE120[] = _("しばらく おまちください");
|
||||
const u8 gUnknown_085EE12D[] = _("かきこみ エラー です\nデータが ほぞん できませんでした");
|
||||
const u8 gUnknown_085EE14B[] = _("RED");
|
||||
const u8 gUnknown_085EE14F[] = _("BLUE");
|
||||
const u8 gText_Red[] = _("RED");
|
||||
const u8 gText_Blue[] = _("BLUE");
|
||||
const u8 gUnknown_085EE154[] = _("---");
|
||||
const u8 gText_SingleBattleRoomResults[] = _("{PLAYER}'s Single Battle Room Results");
|
||||
const u8 gText_DoubleBattleRoomResults[] = _("{PLAYER}'s Double Battle Room Results");
|
||||
|
||||
@@ -71,7 +71,7 @@ void CreateAvailableDecorationsMenu(u8 taskId)
|
||||
if (curWidth > windowWidth)
|
||||
windowWidth = curWidth;
|
||||
}
|
||||
windowTemplate.width = convert_pixel_width_to_tile_width(windowWidth);
|
||||
windowTemplate.width = ConvertPixelWidthToTileWidth(windowWidth);
|
||||
data[3] = AddWindow(&windowTemplate);
|
||||
DrawStdFrameWithCustomTileAndPalette(data[3], FALSE, 0x214, 14);
|
||||
for (i = 0; i < 4; i++)
|
||||
|
||||
38
src/tv.c
38
src/tv.c
@@ -38,8 +38,10 @@
|
||||
#include "secret_base.h"
|
||||
#include "tv.h"
|
||||
#include "data.h"
|
||||
#include "constants/contest.h"
|
||||
#include "constants/layouts.h"
|
||||
#include "constants/metatile_behaviors.h"
|
||||
#include "constants/script_menu.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
@@ -2870,17 +2872,17 @@ void CopyContestRankToStringVar(u8 varIdx, u8 rank)
|
||||
{
|
||||
switch (rank)
|
||||
{
|
||||
case 0: // NORMAL
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[5]);
|
||||
case CONTEST_RANK_NORMAL:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_NORMAL]);
|
||||
break;
|
||||
case 1: // SUPER
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[6]);
|
||||
case CONTEST_RANK_SUPER:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SUPER]);
|
||||
break;
|
||||
case 2: // HYPER
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[7]);
|
||||
case CONTEST_RANK_HYPER:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_HYPER]);
|
||||
break;
|
||||
case 3: // MASTER
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[8]);
|
||||
case CONTEST_RANK_MASTER:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_MASTER]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2889,20 +2891,20 @@ void CopyContestCategoryToStringVar(u8 varIdx, u8 category)
|
||||
{
|
||||
switch (category)
|
||||
{
|
||||
case 0: // COOL
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[0]);
|
||||
case CONTEST_CATEGORY_COOL:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_COOL]);
|
||||
break;
|
||||
case 1: // BEAUTY
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[1]);
|
||||
case CONTEST_CATEGORY_BEAUTY:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_BEAUTY]);
|
||||
break;
|
||||
case 2: // CUTE
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[2]);
|
||||
case CONTEST_CATEGORY_CUTE:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_CUTE]);
|
||||
break;
|
||||
case 3: // SMART
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[3]);
|
||||
case CONTEST_CATEGORY_SMART:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_SMART]);
|
||||
break;
|
||||
case 4: // TOUGH
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[4]);
|
||||
case CONTEST_CATEGORY_TOUGH:
|
||||
StringCopy(gTVStringVarPtrs[varIdx], gStdStrings[STDSTRING_TOUGH]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user