mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 07:28:17 -05:00
more documentation
This commit is contained in:
parent
f184a6750d
commit
040c4a486e
|
|
@ -866,7 +866,7 @@ _08023F02:
|
|||
lsls r2, 2
|
||||
adds r0, r2
|
||||
adds r1, r7, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
mov r4, r8
|
||||
ldr r0, [r4]
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ _0803B2DC:
|
|||
ldr r1, _0803B340
|
||||
adds r4, r1
|
||||
adds r1, r5, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r2, [r4, 0x4]
|
||||
ldr r0, [r6]
|
||||
|
|
|
|||
|
|
@ -3496,7 +3496,7 @@ _0806361E:
|
|||
bl BufferMoveName
|
||||
ldr r0, _08063690
|
||||
mov r1, r9
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r4, r0, 0
|
||||
ldrb r1, [r7]
|
||||
movs r0, 0x2
|
||||
|
|
@ -7171,7 +7171,7 @@ _080652D2:
|
|||
bl PrintFormattedStringOnWindow
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080653E0
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7181,7 +7181,7 @@ _080652D2:
|
|||
bl PrintFormattedStringOnWindow
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080653E4
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7191,7 +7191,7 @@ _080652D2:
|
|||
bl PrintFormattedStringOnWindow
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080653E8
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7202,7 +7202,7 @@ _080652D2:
|
|||
movs r5, 0x4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080653EC
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7225,7 +7225,7 @@ _080652D2:
|
|||
movs r5, 0x5
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080653F0
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7248,7 +7248,7 @@ _080653F4:
|
|||
movs r5, 0x5
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _08065440
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7259,7 +7259,7 @@ _080653F4:
|
|||
_0806540E:
|
||||
ldr r0, _08065444
|
||||
adds r1, r5, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r0, _08065448
|
||||
ldr r2, [r0]
|
||||
|
|
@ -7381,7 +7381,7 @@ sub_806544C:
|
|||
bl PrintFormattedStringOnWindow
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldr r6, _08065570
|
||||
movs r2, 0xAC
|
||||
|
|
@ -7394,7 +7394,7 @@ sub_806544C:
|
|||
bl PrintFormattedStringOnWindow
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
movs r2, 0xB8
|
||||
lsls r2, 1
|
||||
|
|
@ -7512,15 +7512,15 @@ CreateFieldGameOptionsMenu:
|
|||
bl sub_80137B0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x8]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
|
|
@ -7666,23 +7666,23 @@ CreateFieldDungeonMenu:
|
|||
bl sub_80137B0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x8]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0xC]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x10]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
str r0, [sp, 0x14]
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
|
|
@ -7961,7 +7961,7 @@ CreateFieldOthersMenu:
|
|||
_08065A0A:
|
||||
ldr r0, _08065A7C
|
||||
adds r1, r4, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
stm r5!, {r0}
|
||||
adds r4, 0x1
|
||||
cmp r4, 0
|
||||
|
|
@ -8418,7 +8418,7 @@ sub_8065CAC:
|
|||
_08065D7A:
|
||||
ldr r0, _08065DB0
|
||||
adds r1, r4, 0
|
||||
bl sub_8013800
|
||||
bl GetMenuEntryYCoord
|
||||
adds r1, r0, 0
|
||||
ldm r5!, {r2}
|
||||
movs r0, 0
|
||||
|
|
|
|||
|
|
@ -526,7 +526,7 @@ _08068D1C:
|
|||
add r1, sp, 0x214
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8092638
|
||||
bl GetFriendAreaCapacity2
|
||||
movs r7, 0
|
||||
add r1, sp, 0x1F0
|
||||
ldrh r0, [r1]
|
||||
|
|
|
|||
|
|
@ -720,7 +720,7 @@ _080A7D12:
|
|||
mov r1, sp
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8092638
|
||||
bl GetFriendAreaCapacity2
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
|
|
@ -923,7 +923,7 @@ _080A7EB8:
|
|||
mov r1, sp
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8092638
|
||||
bl GetFriendAreaCapacity2
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
|
|
@ -2965,7 +2965,7 @@ _080A8DF8:
|
|||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8092638
|
||||
bl GetFriendAreaCapacity2
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r5, r0
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@ typedef struct FriendAreaSettings
|
|||
} FriendAreaSettings;
|
||||
|
||||
// size: 0xC
|
||||
typedef struct unkStruct_8092638
|
||||
{
|
||||
/* 0x0 */ s16 numPokemon;
|
||||
s16 unk2;
|
||||
typedef struct FriendAreaCapacity
|
||||
{
|
||||
/* 0x0 */ s16 maxPokemon;
|
||||
/* 0x2 */ s16 currNoPokemon;
|
||||
/* 0x4 */ bool8 hasFriendArea;
|
||||
s32 unk8;
|
||||
} unkStruct_8092638;
|
||||
} FriendAreaCapacity;
|
||||
|
||||
extern bool8 *gFriendAreas;
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ void sub_8092404(u8, u16 *, bool8, bool8);
|
|||
void sub_809249C(u8 friendArea, bool8 clear);
|
||||
void sub_8092558(u8 *buffer, u8 index);
|
||||
void WriteFriendAreaName(u8 *buffer, u8 index, bool8 printPrice);
|
||||
void sub_8092638(u8 friendArea, unkStruct_8092638 *, bool8 checkLeader, bool8 checkDungeon);
|
||||
void sub_80926F8(u8, unkStruct_8092638 *, u8);
|
||||
void GetFriendAreaCapacity2(u8 friendArea, FriendAreaCapacity *dst, bool8 checkLeader, bool8 checkPartner);
|
||||
void GetFriendAreaCapacity(u8 areaId, FriendAreaCapacity *dst, bool8 checkPartner);
|
||||
|
||||
#endif // GUARD_FRIEND_AREA_H
|
||||
#endif // GUARD_FRIEND_AREA_H
|
||||
|
|
|
|||
|
|
@ -25,7 +25,42 @@ struct MapLocation
|
|||
axdata sprite;
|
||||
};
|
||||
|
||||
#define NUM_FRIEND_AREA_LOCATIONS 32
|
||||
enum FriendAreaLocations
|
||||
{
|
||||
LOCATION_MOUNTAIN_RANGE,
|
||||
LOCATION_GLACIER,
|
||||
LOCATION_PLAINS,
|
||||
LOCATION_SOUTH_PLAINS,
|
||||
LOCATION_BADLANDS,
|
||||
LOCATION_EASTERN_FOREST,
|
||||
LOCATION_WESTERN_FOREST,
|
||||
LOCATION_RIVER,
|
||||
LOCATION_EASTERN_PONDS,
|
||||
LOCATION_POND,
|
||||
LOCATION_NORTHERN_LAKES,
|
||||
LOCATION_EASTERN_LAKES,
|
||||
LOCATION_MARSH,
|
||||
LOCATION_CAVE,
|
||||
LOCATION_JUNGLE,
|
||||
LOCATION_RUINS,
|
||||
LOCATION_VOLCANO,
|
||||
LOCATION_DESERT,
|
||||
LOCATION_RELICS,
|
||||
LOCATION_SKY,
|
||||
LOCATION_NORTHERN_ISLES,
|
||||
LOCATION_SOUTHERN_ISLES,
|
||||
LOCATION_SOUTHWEST_ISLES,
|
||||
LOCATION_WESTERN_ISLES,
|
||||
LOCATION_NORTHERN_SEA,
|
||||
LOCATION_SOUTHERN_SEA,
|
||||
LOCATION_BEACH,
|
||||
LOCATION_TEAM_BASE,
|
||||
LOCATION_UNUSED_28,
|
||||
LOCATION_UNUSED_29,
|
||||
LOCATION_UNUSED_30,
|
||||
LOCATION_UNUSED_31,
|
||||
NUM_FRIEND_AREA_LOCATIONS
|
||||
};
|
||||
|
||||
// size: 0x4DD8
|
||||
struct FriendAreasMap
|
||||
|
|
@ -65,7 +100,7 @@ struct struct_unk800F990
|
|||
u32 unk0;
|
||||
u8 startingFriendAreaId;
|
||||
u8 unk5;
|
||||
struct FriendAreasMap *unk8;
|
||||
struct FriendAreasMap *friendAreasMapPtr;
|
||||
u8 unkC;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ void sub_8013780(MenuInputStruct *param_1, s32 param_2);
|
|||
s32 sub_80137A8(MenuInputStruct *param_1);
|
||||
void sub_80137B0(MenuInputStruct *param_1, s32 param_2);
|
||||
void sub_80137F8(MenuInputStruct *param_1, u32 param_2);
|
||||
s32 sub_8013800(MenuInputStruct *param_1, s32 param_2);
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId);
|
||||
void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4);
|
||||
void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4);
|
||||
void sub_8013878(MenuInputStruct *param_1, s32 param_2);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ typedef struct MenuInputStruct
|
|||
{
|
||||
s32 unk0;
|
||||
u16 unk4;
|
||||
s16 unk6;
|
||||
s16 firstEntryY;
|
||||
DungeonPos unk8;
|
||||
s16 unkC; // Maybe DungeonPos
|
||||
s16 unkE;
|
||||
|
|
|
|||
|
|
@ -107,31 +107,31 @@ static void DisplayAdventureLog(void)
|
|||
case AA_NUM_FLOORS_EXPLORED: {
|
||||
s32 v1 = GetAdventureFloorsExplored();
|
||||
gFormatArgs[0] = (s16)v1;
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_MOVES_LEARNED: {
|
||||
s32 v2 = GetAdventureMovesLearned();
|
||||
gFormatArgs[0] = (s16)v2;
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_THIEVING_SUCCESSES: {
|
||||
s32 v3 = GetThievingSuccesses();
|
||||
gFormatArgs[0] = (s16)v3;
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_FRIEND_RESCUE_SUCCESSES: {
|
||||
s32 v4 = GetFriendRescueSuccesses();
|
||||
gFormatArgs[0] = v4;
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_POKEMON_EVOLVED: {
|
||||
s32 v5 = GetAdventureNumEvolved();
|
||||
gFormatArgs[0] = v5;
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_POKEMON_JOINED: {
|
||||
|
|
@ -140,13 +140,13 @@ static void DisplayAdventureLog(void)
|
|||
// fallthrough
|
||||
}
|
||||
default: {
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, sub_8013800(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.unk34, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sAdventureLog->s0.unk34);
|
||||
|
|
|
|||
|
|
@ -161,13 +161,13 @@ void sub_801CCD8(void)
|
|||
for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.unk1A; index++) {
|
||||
itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + index];
|
||||
BufferItemName(buffer, itemID, NULL);
|
||||
y = sub_8013800(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.unk34, 0);
|
||||
y2 = sub_8013800(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.unk34);
|
||||
|
||||
if (sub_801CFE0(itemID) & 1)
|
||||
sub_8007B7C(sUnknown_203B244->unk4B4.s0.unk34, 8, sub_8013800(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * '\b', 10); // TODO: Ghidra being crazy
|
||||
sub_8007B7C(sUnknown_203B244->unk4B4.s0.unk34, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * '\b', 10); // TODO: Ghidra being crazy
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B244->unk4B4.s0.unk34);
|
||||
|
|
|
|||
|
|
@ -125,10 +125,10 @@ static void sub_801DBD4(void)
|
|||
temp = &gGroundConversion_811BAF4[index];
|
||||
temp2 = &gUnknown_81188F0[temp->unk4];
|
||||
|
||||
y = sub_8013800(&sUnknown_203B258->s0.input, counter);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter);
|
||||
PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.unk34, 0);
|
||||
|
||||
y = sub_8013800(&sUnknown_203B258->s0.input, counter);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter);
|
||||
PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.unk34, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ void sub_801F280(bool8 param_1)
|
|||
}
|
||||
|
||||
sub_80928A0(gFormatBuffer_Items[0],move,&uStack_30);
|
||||
y = sub_8013800(&gUnknown_203B270->input,i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B270->input,i);
|
||||
linkChain = MoveFlagLinkChain(move);
|
||||
x = !linkChain ? 0x8 : 0xD;
|
||||
if (!linkChain && i != 0) {
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ void sub_801F700(void)
|
|||
for(index = 0; index < gUnknown_203B274->s348.s0.input.unk1A; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->s348.s0.input, index);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B274->s348.s0.input, index);
|
||||
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.unk34,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->s348.s0.unk34);
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ static void sub_80234BC(void)
|
|||
s32 i;
|
||||
u8 buffer2[256];
|
||||
u8 buffer1[100];
|
||||
unkStruct_8092638 auStack_2c;
|
||||
FriendAreaCapacity auStack_2c;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.unk34);
|
||||
sub_80073B8(gUnknown_3001B5C->s35C.s0.unk34);
|
||||
|
|
@ -165,9 +165,9 @@ static void sub_80234BC(void)
|
|||
sub_8012BC4((gUnknown_3001B5C->s35C.unk9C.f2 * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.unk1E + 1, 2, 7, gUnknown_3001B5C->s35C.s0.unk34);
|
||||
|
||||
for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.unk1A; i++) {
|
||||
y = sub_8013800(&gUnknown_3001B5C->s35C.s0.input, i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i);
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.unk1C) + i];
|
||||
sub_8092638(GetFriendArea(species), &auStack_2c, FALSE, FALSE);
|
||||
GetFriendAreaCapacity2(GetFriendArea(species), &auStack_2c, FALSE, FALSE);
|
||||
color = COLOR_WHITE_2;
|
||||
if (auStack_2c.hasFriendArea)
|
||||
color = HasRecruitedMon(species) ? COLOR_CYAN : COLOR_GREEN;
|
||||
|
|
|
|||
|
|
@ -1561,7 +1561,7 @@ void DrawFieldMenu(u8 a0)
|
|||
gUnknown_202EE10.unk1C = 5;
|
||||
gUnknown_202EE10.unk1E = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = 2;
|
||||
gUnknown_202EE10.firstEntryY = 2;
|
||||
gUnknown_202EE10.unkC = 0;
|
||||
gUnknown_202EE10.unkE = 0;
|
||||
gUnknown_202EE10.unk0 = 0;
|
||||
|
|
@ -1592,19 +1592,19 @@ void DrawFieldMenu(u8 a0)
|
|||
gUnknown_202749A[5] = 7;
|
||||
}
|
||||
|
||||
y = sub_8013800(&gUnknown_202EE10, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 0);
|
||||
PrintStringOnWindow(8, y, gFieldMenuMovesPtr, 0, 0);
|
||||
|
||||
y = sub_8013800(&gUnknown_202EE10, 1);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 1);
|
||||
PrintStringOnWindow(8, y, gFieldMenuItemsPtr, 0, 0);
|
||||
|
||||
y = sub_8013800(&gUnknown_202EE10, 2);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 2);
|
||||
PrintStringOnWindow(8, y, gFieldMenuTeamPtr, 0, 0);
|
||||
|
||||
y = sub_8013800(&gUnknown_202EE10, 3);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 3);
|
||||
PrintStringOnWindow(8, y, gFieldMenuOthersPtr, 0, 0);
|
||||
|
||||
y = sub_8013800(&gUnknown_202EE10, 4);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 4);
|
||||
PrintStringOnWindow(8, y, gFieldMenuGroundPtr, 0, 0);
|
||||
|
||||
sub_80073E0(0);
|
||||
|
|
@ -1708,7 +1708,7 @@ void sub_805FC30(Windows *a0, s32 a1)
|
|||
gUnknown_202EE10.unk1E = 0;
|
||||
gUnknown_202EE10.unk20 = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = 0;
|
||||
gUnknown_202EE10.firstEntryY = 0;
|
||||
gUnknown_202EE10.unk0 = 1;
|
||||
gUnknown_202EE10.unkC = 0;
|
||||
gUnknown_202EE10.unkE = 0;
|
||||
|
|
@ -1729,7 +1729,7 @@ void sub_805FC30(Windows *a0, s32 a1)
|
|||
|
||||
r4 = (sub_8044F3C(i) != 0) ? 7 : 2;
|
||||
sprintfStatic(text, gUnknown_8106B50, r4, sub_8044EC8(i));
|
||||
y = sub_8013800(&gUnknown_202EE10, i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, i);
|
||||
PrintStringOnWindow(8, y, text, 1, 0);
|
||||
}
|
||||
sub_80073E0(1);
|
||||
|
|
@ -2066,7 +2066,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
windows->id[0].unk10 = 0x10;
|
||||
windows->id[0].height = 0x10;
|
||||
a5->f2 = 0xC;
|
||||
gUnknown_202EE10.unk6 = 0x10;
|
||||
gUnknown_202EE10.firstEntryY = 0x10;
|
||||
gUnknown_202EE10.unk1C = 0xA;
|
||||
gDungeon->unk181e8.unk18212 = 1;
|
||||
break;
|
||||
|
|
@ -2074,7 +2074,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
windows->id[0].unk10 = 4;
|
||||
windows->id[0].height = 4;
|
||||
a5->f2 = 6;
|
||||
gUnknown_202EE10.unk6 = 0x12;
|
||||
gUnknown_202EE10.firstEntryY = 0x12;
|
||||
gUnknown_202EE10.unk1C = 1;
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -2082,7 +2082,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
windows->id[0].unk10 = 4;
|
||||
windows->id[0].height = 4;
|
||||
a5->f2 = 0xC;
|
||||
gUnknown_202EE10.unk6 = 0x12;
|
||||
gUnknown_202EE10.firstEntryY = 0x12;
|
||||
gUnknown_202EE10.unk1C = 1;
|
||||
break;
|
||||
}
|
||||
|
|
@ -2112,7 +2112,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
if (ItemExists(&gTeamInventoryRef->teamItems[i])) {
|
||||
gUnknown_202EE10.unk1A++;
|
||||
sub_8090E14(txtBuff, &gTeamInventoryRef->teamItems[i], &gUnknown_8106B60);
|
||||
y = sub_8013800(&gUnknown_202EE10, i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, i);
|
||||
PrintFormattedStringOnWindow(8, y, txtBuff, 0, 0);
|
||||
}
|
||||
else {
|
||||
|
|
@ -2126,7 +2126,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
if (ItemExists(&gTeamInventoryRef->teamItems[i + 10])) {
|
||||
gUnknown_202EE10.unk1A++;
|
||||
sub_8090E14(txtBuff, &gTeamInventoryRef->teamItems[i + 10], &gUnknown_8106B60);
|
||||
y = sub_8013800(&gUnknown_202EE10, i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, i);
|
||||
PrintFormattedStringOnWindow(8, y, txtBuff, 0, 0);
|
||||
}
|
||||
else {
|
||||
|
|
@ -2141,7 +2141,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
if (item->flags & ITEM_FLAG_EXISTS) {
|
||||
gUnknown_202EE10.unk1A++;
|
||||
sub_8090E14(txtBuff, item, &gUnknown_8106B60);
|
||||
y = sub_8013800(&gUnknown_202EE10, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 0);
|
||||
PrintFormattedStringOnWindow(8, y, txtBuff, 0, 0);
|
||||
}
|
||||
if (a3) {
|
||||
|
|
@ -2156,7 +2156,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
if (item->flags & ITEM_FLAG_EXISTS) {
|
||||
gUnknown_202EE10.unk1A++;
|
||||
sub_8090E14(txtBuff, item, &gUnknown_8106B60);
|
||||
y = sub_8013800(&gUnknown_202EE10, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 0);
|
||||
PrintFormattedStringOnWindow(8, y, txtBuff, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
@ -2171,7 +2171,7 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, Windows
|
|||
if (item->flags & ITEM_FLAG_EXISTS) {
|
||||
gUnknown_202EE10.unk1A++;
|
||||
sub_8090E14(txtBuff, item, &gUnknown_8106B60);
|
||||
y = sub_8013800(&gUnknown_202EE10, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, 0);
|
||||
PrintFormattedStringOnWindow(8, y, txtBuff, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
@ -2723,7 +2723,7 @@ void DrawFieldTeamMenu(struct UnkFieldTeamMenuStruct *a0, Windows *windows, bool
|
|||
gUnknown_202EE10.unk1E = 0;
|
||||
gUnknown_202EE10.unk20 = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = (r10 != FALSE) * 16;
|
||||
gUnknown_202EE10.firstEntryY = (r10 != FALSE) * 16;
|
||||
gUnknown_202EE10.unkC = 0;
|
||||
gUnknown_202EE10.unkE = 0;
|
||||
gUnknown_202EE10.unk14.x = 0;
|
||||
|
|
@ -2790,7 +2790,7 @@ void DrawFieldTeamMenu(struct UnkFieldTeamMenuStruct *a0, Windows *windows, bool
|
|||
|
||||
gFormatArgs[0] = monInfo->HP;
|
||||
gFormatArgs[1] = monInfo->maxHPStat;
|
||||
y = sub_8013800(&gUnknown_202EE10, i);
|
||||
y = GetMenuEntryYCoord(&gUnknown_202EE10, i);
|
||||
if (monInfo->isTeamLeader) {
|
||||
PrintFormattedStringOnWindow(9, y, gUnknown_8106BD4, 0, 0);
|
||||
}
|
||||
|
|
@ -2922,7 +2922,7 @@ void ShowTacticsMenu(ActionContainer *a0)
|
|||
gUnknown_202EE10.unk1E = 0;
|
||||
gUnknown_202EE10.unk20 = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = 16;
|
||||
gUnknown_202EE10.firstEntryY = 16;
|
||||
gUnknown_202EE10.unkC = 0;
|
||||
gUnknown_202EE10.unkE = 0;
|
||||
gUnknown_202EE10.unk14.x = 0;
|
||||
|
|
|
|||
|
|
@ -994,7 +994,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3)
|
|||
gUnknown_202EE10.unk1E = 0;
|
||||
gUnknown_202EE10.unk20 = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = 18;
|
||||
gUnknown_202EE10.firstEntryY = 18;
|
||||
gUnknown_202EE10.unkC = 0;
|
||||
gUnknown_202EE10.unkE = 0;
|
||||
gUnknown_202EE10.unk14.x = 0;
|
||||
|
|
@ -1292,7 +1292,7 @@ void sub_806806C(PokemonStruct1 *a0)
|
|||
gUnknown_202EE10.menuIndex = 0;
|
||||
gUnknown_202EE10.unk1C = 0;
|
||||
gUnknown_202EE10.unk4 = 0;
|
||||
gUnknown_202EE10.unk6 = 16;
|
||||
gUnknown_202EE10.firstEntryY = 16;
|
||||
gUnknown_202EE10.unk14.x = 0;
|
||||
gUnknown_202EE10.unk0 = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ bool8 sub_806F9BC(s16 species)
|
|||
{
|
||||
u8 friendArea;
|
||||
s32 id;
|
||||
unkStruct_8092638 auStack_18;
|
||||
FriendAreaCapacity auStack_18;
|
||||
|
||||
id = species;
|
||||
if (((gDungeon->unk644.unk14 == 0) || (sub_808529C(id) == 0)) ||
|
||||
|
|
@ -359,7 +359,7 @@ bool8 sub_806F9BC(s16 species)
|
|||
else {
|
||||
if (GetUnk12(id) == 0) {
|
||||
friendArea = GetFriendArea(id);
|
||||
sub_8092638(friendArea, &auStack_18, FALSE, FALSE);
|
||||
GetFriendAreaCapacity2(friendArea, &auStack_18, FALSE, FALSE);
|
||||
if (auStack_18.hasFriendArea == FALSE)
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ void sub_802FA50(void)
|
|||
if (gUnknown_203B314->unkB8 != 0) {
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y = sub_8013800(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter;
|
||||
sVar1 = gUnknown_203B314->unk0[index];
|
||||
if (gUnknown_203B314->unk5C[index] != 0) {
|
||||
|
|
@ -218,7 +218,7 @@ void sub_802FA50(void)
|
|||
else {
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y2 = sub_8013800(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter]);
|
||||
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.unk34,0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ bool8 HasAllFriendAreas(void)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8092638(u8 friendArea, unkStruct_8092638 *param_2, bool8 checkLeader, bool8 checkDungeon)
|
||||
void GetFriendAreaCapacity2(u8 friendArea, FriendAreaCapacity *dst, bool8 checkLeader, bool8 checkPartner)
|
||||
{
|
||||
PokemonStruct1 *pokeStruct;
|
||||
s32 i;
|
||||
|
|
@ -166,30 +166,30 @@ void sub_8092638(u8 friendArea, unkStruct_8092638 *param_2, bool8 checkLeader, b
|
|||
for (i = 0; i < friendArea; i++)
|
||||
iVar4 += sFriendAreaSettings[i].num_pokemon;
|
||||
|
||||
param_2->unk8 = iVar4;
|
||||
param_2->hasFriendArea = gFriendAreas[i];
|
||||
dst->unk8 = iVar4;
|
||||
dst->hasFriendArea = gFriendAreas[i];
|
||||
|
||||
if (param_2->hasFriendArea) {
|
||||
param_2->unk2 = 0;
|
||||
param_2->numPokemon = sFriendAreaSettings[i].num_pokemon;
|
||||
if (dst->hasFriendArea) {
|
||||
dst->currNoPokemon = 0;
|
||||
dst->maxPokemon = sFriendAreaSettings[i].num_pokemon;
|
||||
|
||||
for (i = 0; i < param_2->numPokemon; i++, iVar4++) {
|
||||
for (i = 0; i < dst->maxPokemon; i++, iVar4++) {
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[iVar4];
|
||||
|
||||
if (PokemonFlag1(pokeStruct) &&
|
||||
(!checkLeader || !IsMonTeamLeader(pokeStruct)) &&
|
||||
(!checkDungeon || pokeStruct->dungeonLocation.id != DUNGEON_JOIN_LOCATION_PARTNER)) {
|
||||
param_2->unk2++;
|
||||
(!checkPartner || pokeStruct->dungeonLocation.id != DUNGEON_JOIN_LOCATION_PARTNER)) {
|
||||
dst->currNoPokemon++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
param_2->unk2 = 0;
|
||||
param_2->numPokemon = 0;
|
||||
dst->currNoPokemon = 0;
|
||||
dst->maxPokemon = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80926F8(u8 a0, unkStruct_8092638 *a1, u8 a2)
|
||||
void GetFriendAreaCapacity(u8 areaId, FriendAreaCapacity *dst, bool8 checkPartner)
|
||||
{
|
||||
PokemonStruct1 *mon;
|
||||
s32 r5;
|
||||
|
|
@ -198,30 +198,30 @@ void sub_80926F8(u8 a0, unkStruct_8092638 *a1, u8 a2)
|
|||
|
||||
r5 = 0;
|
||||
|
||||
for (i = 0; i < a0; i++)
|
||||
for (i = 0; i < areaId; i++)
|
||||
r5 += sFriendAreaSettings[i].num_pokemon;
|
||||
|
||||
a1->unk8 = r5;
|
||||
a1->hasFriendArea = gFriendAreas[i];
|
||||
dst->unk8 = r5;
|
||||
dst->hasFriendArea = gFriendAreas[i];
|
||||
|
||||
if (a1->hasFriendArea) {
|
||||
a1->unk2 = 0;
|
||||
a1->numPokemon = sFriendAreaSettings[i].num_pokemon;
|
||||
max = a1->numPokemon;
|
||||
if (dst->hasFriendArea) {
|
||||
dst->currNoPokemon = 0;
|
||||
dst->maxPokemon = sFriendAreaSettings[i].num_pokemon;
|
||||
max = dst->maxPokemon;
|
||||
|
||||
for (i = 0; i < max; i++, r5++) {
|
||||
mon = &gRecruitedPokemonRef->pokemon[r5];
|
||||
if (PokemonFlag1(mon)) {
|
||||
if (mon->isTeamLeader || (a2 == 0 && mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER))
|
||||
a1->numPokemon--;
|
||||
if (mon->isTeamLeader || (!checkPartner && mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER))
|
||||
dst->maxPokemon--;
|
||||
else
|
||||
a1->unk2++;
|
||||
dst->currNoPokemon++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
a1->unk2 = 0;
|
||||
a1->numPokemon = 0;
|
||||
dst->currNoPokemon = 0;
|
||||
dst->maxPokemon = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,230 +50,515 @@ extern u16 gUnknown_2026E4E;
|
|||
|
||||
#define NO_AREA NUM_FRIEND_AREAS + 5
|
||||
|
||||
// ななし means without name
|
||||
// ななし means 'without name'
|
||||
#define DUMMY_LOCATION \
|
||||
{ \
|
||||
.name = _("ななし"), \
|
||||
.pos = {0, 0}, \
|
||||
.areasIds = {NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA}, \
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, \
|
||||
.adjacentLocations = {-1, -1, -1, -1, -1, -1, -1, -1}, \
|
||||
}
|
||||
|
||||
static const struct FriendAreaLocationInfo gFriendAreaLocations[64] =
|
||||
// The second set is all dummies, maybe it was used for testing purposes?
|
||||
static const struct FriendAreaLocationInfo sFriendAreaLocations[2][NUM_FRIEND_AREA_LOCATIONS] =
|
||||
{
|
||||
{
|
||||
.name = "Mountain Range",
|
||||
.pos = {0x1C5, 0x71},
|
||||
.areasIds = {8, 9, 0xA, 0x27, 0x2F, 0xB, 0x3F, 0x3F},
|
||||
.adjacentLocations = {5, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC, 2, 7},
|
||||
[LOCATION_MOUNTAIN_RANGE] =
|
||||
{
|
||||
.name = "Mountain Range",
|
||||
.pos = {0x1C5, 0x71},
|
||||
.areasIds = {MT_DEEPGREEN, MT_CLEFT, MT_MOONVIEW, MT_DISCIPLINE, DARKNESS_RIDGE, RAINBOW_PEAK, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_EASTERN_FOREST,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_MARSH,
|
||||
[DIRECTION_WEST] = LOCATION_PLAINS,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_RIVER,
|
||||
},
|
||||
},
|
||||
[LOCATION_GLACIER] =
|
||||
{
|
||||
.name = "Glacier",
|
||||
.pos = {0x1CD, 0x1C},
|
||||
.areasIds = {FRIGID_CAVERN, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_NORTHERN_LAKES,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_MARSH,
|
||||
},
|
||||
},
|
||||
[LOCATION_PLAINS] =
|
||||
{
|
||||
.name = "Plains",
|
||||
.pos = {0x161, 0x78},
|
||||
.areasIds = {BEAU_PLAINS, SKY_BLUE_PLAINS, SACRED_FIELD, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_RIVER,
|
||||
[DIRECTION_EAST] = 0,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_MARSH,
|
||||
[DIRECTION_NORTH] = LOCATION_CAVE,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_POND,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_SOUTH_PLAINS] =
|
||||
{
|
||||
.name = "South Plains",
|
||||
.pos = {0x162, 0x12D},
|
||||
.areasIds = {SAFARI, WILD_PLAINS, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_BADLANDS,
|
||||
[DIRECTION_NORTH] = LOCATION_JUNGLE,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_RELICS,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_BADLANDS] =
|
||||
{
|
||||
.name = "Badlands",
|
||||
.pos = {0x194, 0x102},
|
||||
.areasIds = {RAVAGED_FIELD, MAGNETIC_QUARRY, THUNDER_MEADOW, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_DESERT,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_EASTERN_LAKES,
|
||||
[DIRECTION_NORTH] = LOCATION_EASTERN_PONDS,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_JUNGLE,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_SOUTH_PLAINS,
|
||||
},
|
||||
},
|
||||
[LOCATION_EASTERN_FOREST] =
|
||||
{
|
||||
.name = "Eastern Forest",
|
||||
.pos = {0x1C7, 0x9D},
|
||||
.areasIds = {MIST_RISE_FOREST, FLYAWAY_FOREST, OVERGROWN_FOREST, ENERGETIC_FOREST, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_EASTERN_LAKES,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = 0,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_RIVER,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_EASTERN_PONDS,
|
||||
},
|
||||
},
|
||||
[LOCATION_WESTERN_FOREST] =
|
||||
{
|
||||
.name = "Western Forest",
|
||||
.pos = {0x108, 0x9D},
|
||||
.areasIds = {MUSHROOM_FOREST, HEALING_FOREST, TRANSFORM_FOREST, SECRETIVE_FOREST, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_VOLCANO,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_POND,
|
||||
[DIRECTION_NORTH] = LOCATION_NORTHERN_ISLES,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_BEACH,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_RIVER] =
|
||||
{
|
||||
.name = "River",
|
||||
.pos = {0x197, 0xA0},
|
||||
.areasIds = {RUB_A_DUB_RIVER, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_EASTERN_PONDS,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_EASTERN_LAKES,
|
||||
[DIRECTION_EAST] = LOCATION_EASTERN_FOREST,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_MOUNTAIN_RANGE,
|
||||
[DIRECTION_NORTH] = LOCATION_MARSH,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_PLAINS,
|
||||
[DIRECTION_WEST] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_EASTERN_PONDS] =
|
||||
{
|
||||
.name = "Eastern Ponds",
|
||||
.pos = {0x198, 0xCF},
|
||||
.areasIds = {TADPOLE_POND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_BADLANDS,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_EASTERN_LAKES,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_EASTERN_FOREST,
|
||||
[DIRECTION_NORTH] = LOCATION_RIVER,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_JUNGLE,
|
||||
},
|
||||
},
|
||||
[LOCATION_POND] =
|
||||
{
|
||||
.name = "Pond",
|
||||
.pos = {0x133, 0x79},
|
||||
.areasIds = {TURTLESHELL_POND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_EAST] = LOCATION_PLAINS,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_CAVE,
|
||||
[DIRECTION_NORTH] = LOCATION_RUINS,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_NORTHERN_ISLES,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_WESTERN_FOREST,
|
||||
},
|
||||
},
|
||||
[LOCATION_NORTHERN_LAKES] =
|
||||
{
|
||||
.name = "Northern Lakes",
|
||||
.pos = {0x182, 0x1D},
|
||||
.areasIds = {MYSTIC_LAKE, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_MARSH,
|
||||
[DIRECTION_EAST] = 1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_RUINS,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_CAVE,
|
||||
},
|
||||
},
|
||||
[LOCATION_EASTERN_LAKES] =
|
||||
{
|
||||
.name = "Eastern Lakes",
|
||||
.pos = {0x1C6, 0xD0},
|
||||
.areasIds = {WATERFALL_LAKE, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = LOCATION_EASTERN_FOREST,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_RIVER,
|
||||
[DIRECTION_WEST] = LOCATION_EASTERN_PONDS,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_BADLANDS,
|
||||
},
|
||||
},
|
||||
[LOCATION_MARSH] =
|
||||
{
|
||||
.name = "Marsh",
|
||||
.pos = {0x1A2, 0x46},
|
||||
.areasIds = {PEANUT_SWAMP, POISON_SWAMP, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_RIVER,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_MOUNTAIN_RANGE,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = 1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_NORTHERN_LAKES,
|
||||
[DIRECTION_WEST] = LOCATION_CAVE,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_PLAINS,
|
||||
},
|
||||
},
|
||||
[LOCATION_CAVE] =
|
||||
{
|
||||
.name = "Cave",
|
||||
.pos = {0x160, 0x47},
|
||||
.areasIds = {ECHO_CAVE, DRAGON_CAVE, BOULDER_CAVE, CRYPTIC_CAVE, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_PLAINS,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_MARSH,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_NORTHERN_LAKES,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_RUINS,
|
||||
[DIRECTION_WEST] = LOCATION_NORTHERN_ISLES,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_POND,
|
||||
},
|
||||
},
|
||||
[LOCATION_JUNGLE] =
|
||||
{
|
||||
.name = "Jungle",
|
||||
.pos = {0x163, 0x104},
|
||||
.areasIds = {JUNGLE, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_SOUTH_PLAINS,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_BADLANDS,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_EASTERN_PONDS,
|
||||
[DIRECTION_NORTH] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_RELICS,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_RUINS] =
|
||||
{
|
||||
.name = "Ruins",
|
||||
.pos = {0x136, 0x1C},
|
||||
.areasIds = {DECREPIT_LAB, POWER_PLANT, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_POND,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_CAVE,
|
||||
[DIRECTION_EAST] = LOCATION_NORTHERN_LAKES,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_NORTHERN_SEA,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_NORTHERN_ISLES,
|
||||
},
|
||||
},
|
||||
[LOCATION_VOLCANO] =
|
||||
{
|
||||
.name = "Volcano",
|
||||
.pos = {0x107, 0xCB},
|
||||
.areasIds = {SCORCHED_PLAINS, CRATER, VOLCANIC_PIT, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_RELICS,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_TEAM_BASE,
|
||||
[DIRECTION_NORTH] = LOCATION_WESTERN_FOREST,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_SOUTHERN_SEA,
|
||||
},
|
||||
},
|
||||
[LOCATION_DESERT] =
|
||||
{
|
||||
.name = "Desert",
|
||||
.pos = {0x1C4, 0x12D},
|
||||
.areasIds = {FURNACE_DESERT, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_BADLANDS,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_RELICS] =
|
||||
{
|
||||
.name = "Relics",
|
||||
.pos = {0x131, 0x105},
|
||||
.areasIds = {ANCIENT_RELIC, AGED_CHAMBER_AN, AGED_CHAMBER_O_EXCLAIM, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_SOUTH_PLAINS,
|
||||
[DIRECTION_EAST] = LOCATION_JUNGLE,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_VOLCANO,
|
||||
[DIRECTION_WEST] = LOCATION_SOUTHERN_SEA,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_SKY] =
|
||||
{
|
||||
.name = "Sky",
|
||||
.pos = {0x2F, 0x15},
|
||||
.areasIds = {STRATOS_LOOKOUT, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_WESTERN_ISLES,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_BEACH,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_NORTHERN_ISLES] =
|
||||
{
|
||||
.name = "Northern Isles",
|
||||
.pos = {0x107, 0x47},
|
||||
.areasIds = {LEGENDARY_ISLAND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = 6,
|
||||
[DIRECTION_SOUTHEAST] = 9,
|
||||
[DIRECTION_EAST] = 0xD,
|
||||
[DIRECTION_NORTHEAST] = 0xF,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = 0x18,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_SOUTHERN_ISLES] =
|
||||
{
|
||||
.name = "Southern Isles",
|
||||
.pos = {0x5D, 0x10C},
|
||||
.areasIds = {SOUTHERN_ISLAND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_SOUTHERN_SEA,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_SOUTHWEST_ISLES,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_SOUTHWEST_ISLES] =
|
||||
{
|
||||
.name = "Southwest Isles",
|
||||
.pos = {0x2D, 0xCB},
|
||||
.areasIds = {ENCLOSED_ISLAND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_SOUTHERN_ISLES,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = LOCATION_WESTERN_ISLES,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_WESTERN_ISLES] =
|
||||
{
|
||||
.name = "Western Isles",
|
||||
.pos = {0x2D, 0x70},
|
||||
.areasIds = {FINAL_ISLAND, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_SOUTHWEST_ISLES,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_BEACH,
|
||||
[DIRECTION_NORTH] = LOCATION_SKY,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_NORTHERN_SEA] =
|
||||
{
|
||||
.name = "Northern Sea",
|
||||
.pos = {0xD0, 0x16},
|
||||
.areasIds = {BOUNTIFUL_SEA, SERENE_SEA, DEEP_SEA_CURRENT, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_NORTHERN_ISLES,
|
||||
[DIRECTION_EAST] = LOCATION_RUINS,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_BEACH,
|
||||
},
|
||||
},
|
||||
[LOCATION_SOUTHERN_SEA] =
|
||||
{
|
||||
.name = "Southern Sea",
|
||||
.pos = {0xB2, 0x10D},
|
||||
.areasIds = {TREASURE_SEA, DEEP_SEA_FLOOR, SEAFLOOR_CAVE, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = -1,
|
||||
[DIRECTION_EAST] = LOCATION_RELICS,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_VOLCANO,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = -1,
|
||||
[DIRECTION_WEST] = LOCATION_SOUTHERN_ISLES,
|
||||
[DIRECTION_SOUTHWEST] = -1,
|
||||
},
|
||||
},
|
||||
[LOCATION_BEACH] =
|
||||
{
|
||||
.name = "Beach",
|
||||
.pos = {0x81, 0x42},
|
||||
.areasIds = {SHALLOW_BEACH, ICE_FLOE_BEACH, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = -1,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_WESTERN_FOREST,
|
||||
[DIRECTION_EAST] = -1,
|
||||
[DIRECTION_NORTHEAST] = LOCATION_NORTHERN_SEA,
|
||||
[DIRECTION_NORTH] = -1,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_SKY,
|
||||
[DIRECTION_WEST] = -1,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_WESTERN_ISLES,
|
||||
},
|
||||
},
|
||||
[LOCATION_TEAM_BASE] =
|
||||
{
|
||||
.name = _("$t"),
|
||||
.pos = {0x163, 0xA1},
|
||||
.areasIds = {FRIEND_AREA_NONE, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA, NO_AREA},
|
||||
.adjacentLocations = {
|
||||
[DIRECTION_SOUTH] = LOCATION_JUNGLE,
|
||||
[DIRECTION_SOUTHEAST] = LOCATION_EASTERN_PONDS,
|
||||
[DIRECTION_EAST] = LOCATION_RIVER,
|
||||
[DIRECTION_NORTHEAST] = -1,
|
||||
[DIRECTION_NORTH] = LOCATION_PLAINS,
|
||||
[DIRECTION_NORTHWEST] = LOCATION_POND,
|
||||
[DIRECTION_WEST] = LOCATION_WESTERN_FOREST,
|
||||
[DIRECTION_SOUTHWEST] = LOCATION_VOLCANO,
|
||||
},
|
||||
},
|
||||
[LOCATION_UNUSED_28] = DUMMY_LOCATION,
|
||||
[LOCATION_UNUSED_29] = DUMMY_LOCATION,
|
||||
[LOCATION_UNUSED_30] = DUMMY_LOCATION,
|
||||
[LOCATION_UNUSED_31] = DUMMY_LOCATION,
|
||||
},
|
||||
{
|
||||
.name = "Glacier",
|
||||
.pos = {0x1CD, 0x1C},
|
||||
.areasIds = {0x30, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xA, 0xC},
|
||||
},
|
||||
{
|
||||
.name = "Plains",
|
||||
.pos = {0x161, 0x78},
|
||||
.areasIds = {0xD, 0xE, 0x11, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0x1B, 7, 0, 0xC, 0xD, 0xFFFF, 9, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "South Plains",
|
||||
.pos = {0x162, 0x12D},
|
||||
.areasIds = {0xF, 0xC, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0xFFFF, 4, 0xE, 0x12, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Badlands",
|
||||
.pos = {0x194, 0x102},
|
||||
.areasIds = {0x34, 0x35, 0x28, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0x11, 0xFFFF, 0xB, 8, 0xFFFF, 0xE, 3},
|
||||
},
|
||||
{
|
||||
.name = "Eastern Forest",
|
||||
.pos = {0x1C7, 0x9D},
|
||||
.areasIds = {0x12, 0x13, 0x14, 0x15, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xB, 0xFFFF, 0xFFFF, 0xFFFF, 0, 0xFFFF, 7, 8},
|
||||
},
|
||||
{
|
||||
.name = "Western Forest",
|
||||
.pos = {0x108, 0x9D},
|
||||
.areasIds = {0x16, 0x17, 0x18, 0x19, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0x10, 0xFFFF, 0x1B, 9, 0x14, 0x1A, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "River",
|
||||
.pos = {0x197, 0xA0},
|
||||
.areasIds = {0x1A, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {8, 0xB, 5, 0, 0xC, 2, 0x1B, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Eastern Ponds",
|
||||
.pos = {0x198, 0xCF},
|
||||
.areasIds = {0x1B, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {4, 0xFFFF, 0xB, 5, 7, 0x1B, 0xFFFF, 0xE},
|
||||
},
|
||||
{
|
||||
.name = "Pond",
|
||||
.pos = {0x133, 0x79},
|
||||
.areasIds = {0x1C, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0x1B, 2, 0xD, 0xF, 0x14, 0xFFFF, 6},
|
||||
},
|
||||
{
|
||||
.name = "Northern Lakes",
|
||||
.pos = {0x182, 0x1D},
|
||||
.areasIds = {0x1D, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xC, 1, 0xFFFF, 0xFFFF, 0xFFFF, 0xF, 0xD},
|
||||
},
|
||||
{
|
||||
.name = "Eastern Lakes",
|
||||
.pos = {0x1C6, 0xD0},
|
||||
.areasIds = {0x1E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 5, 7, 8, 4},
|
||||
},
|
||||
{
|
||||
.name = "Marsh",
|
||||
.pos = {0x1A2, 0x46},
|
||||
.areasIds = {0x1F, 0x20, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {7, 0, 0xFFFF, 1, 0xFFFF, 0xA, 0xD, 2},
|
||||
},
|
||||
{
|
||||
.name = "Cave",
|
||||
.pos = {0x160, 0x47},
|
||||
.areasIds = {0x21, 0x23, 0x24, 0x22, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {2, 0xFFFF, 0xC, 0xA, 0xFFFF, 0xF, 0x14, 9},
|
||||
},
|
||||
{
|
||||
.name = "Jungle",
|
||||
.pos = {0x163, 0x104},
|
||||
.areasIds = {0x25, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {3, 0xFFFF, 4, 8, 0x1B, 0xFFFF, 0x12, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Ruins",
|
||||
.pos = {0x136, 0x1C},
|
||||
.areasIds = {0x26, 0x29, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {9, 0xD, 0xA, 0xFFFF, 0xFFFF, 0xFFFF, 0x18, 0x14},
|
||||
},
|
||||
{
|
||||
.name = "Volcano",
|
||||
.pos = {0x107, 0xCB},
|
||||
.areasIds = {0x10, 0x2A, 0x32, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0x12, 0xFFFF, 0x1B, 6, 0xFFFF, 0xFFFF, 0x19},
|
||||
},
|
||||
{
|
||||
.name = "Desert",
|
||||
.pos = {0x1C4, 0x12D},
|
||||
.areasIds = {0x2B, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 4, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Relics",
|
||||
.pos = {0x131, 0x105},
|
||||
.areasIds = {0x2E, 0x2C, 0x2D, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 3, 0xE, 0xFFFF, 0xFFFF, 0x10, 0x19, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Sky",
|
||||
.pos = {0x2F, 0x15},
|
||||
.areasIds = {0x33, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0x17, 0x1A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Northern Isles",
|
||||
.pos = {0x107, 0x47},
|
||||
.areasIds = {0x36, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {6, 9, 0xD, 0xF, 0xFFFF, 0x18, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Southern Isles",
|
||||
.pos = {0x5D, 0x10C},
|
||||
.areasIds = {0x37, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0x19, 0xFFFF, 0xFFFF, 0x16, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Southwest Isles",
|
||||
.pos = {0x2D, 0xCB},
|
||||
.areasIds = {0x38, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0x15, 0xFFFF, 0xFFFF, 0x17, 0xFFFF, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Western Isles",
|
||||
.pos = {0x2D, 0x70},
|
||||
.areasIds = {0x39, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0x16, 0xFFFF, 0xFFFF, 0x1A, 0x13, 0xFFFF, 0xFFFF, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Northern Sea",
|
||||
.pos = {0xD0, 0x16},
|
||||
.areasIds = {1, 3, 5, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0x14, 0xF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x1A},
|
||||
},
|
||||
{
|
||||
.name = "Southern Sea",
|
||||
.pos = {0xB2, 0x10D},
|
||||
.areasIds = {2, 4, 6, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 0xFFFF, 0x12, 0x10, 0xFFFF, 0xFFFF, 0x15, 0xFFFF},
|
||||
},
|
||||
{
|
||||
.name = "Beach",
|
||||
.pos = {0x81, 0x42},
|
||||
.areasIds = {7, 0x31, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xFFFF, 6, 0xFFFF, 0x18, 0xFFFF, 0x13, 0xFFFF, 0x17},
|
||||
},
|
||||
{
|
||||
.name = _("$t"),
|
||||
.pos = {0x163, 0xA1},
|
||||
.areasIds = {0, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F},
|
||||
.adjacentLocations = {0xE, 8, 7, 0xFFFF, 2, 9, 6, 0x10},
|
||||
},
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
DUMMY_LOCATION,
|
||||
}
|
||||
};
|
||||
|
||||
void ShowFriendAreasMap(struct struct_unk800F990 *param_1)
|
||||
{
|
||||
gFriendAreasMapPtr = param_1->unk8;
|
||||
gFriendAreasMapPtr = param_1->friendAreasMapPtr;
|
||||
gUnknown_2026E4E = 0x1010;
|
||||
sub_80095CC(0,0x14);
|
||||
UpdateFadeInTile(2);
|
||||
gFriendAreasMapPtr->locationsInfo = gFriendAreaLocations;
|
||||
gFriendAreasMapPtr->locationsInfo = sFriendAreaLocations[0];
|
||||
gFriendAreasMapPtr->unk4A2C = param_1->unk5;
|
||||
FriendAreasMap_InitGfx();
|
||||
gFriendAreasMapPtr->unk4A28 = -1;
|
||||
|
|
@ -645,7 +930,7 @@ static UNUSED void GetAreaMapPosition(u8 areaId, DungeonPos *dst)
|
|||
s32 i, j;
|
||||
|
||||
for (i = 0; i < NUM_FRIEND_AREA_LOCATIONS; i++) {
|
||||
const struct FriendAreaLocationInfo *locationInfo = &gFriendAreaLocations[i];
|
||||
const struct FriendAreaLocationInfo *locationInfo = &sFriendAreaLocations[0][i];
|
||||
for (j = 0; j < MAX_AREAS_PER_LOCATION; j++) {
|
||||
if (locationInfo->areasIds[j] == areaId) {
|
||||
dst->x = locationInfo->pos.x;
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ void FriendAreasMap_PrintAvailableSubAreas(void)
|
|||
menuInput->unk1E = 0;
|
||||
menuInput->unk20 = 0;
|
||||
menuInput->unk4 = 0;
|
||||
menuInput->unk6 = 16;
|
||||
menuInput->firstEntryY = 16;
|
||||
menuInput->unk0 = 0;
|
||||
menuInput->unkC = 0;
|
||||
menuInput->unkE = 0;
|
||||
|
|
@ -360,19 +360,19 @@ void FriendAreasMap_PrintAvailableSubAreas(void)
|
|||
PrintFormattedStringOnWindow(16, 0, _("Where would you like to go?"), 0, '\0');
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
unkStruct_8092638 unkFriendAreaStruct;
|
||||
s32 r4 = sub_8013800(menuInput, i);
|
||||
FriendAreaCapacity friendAreaCapacity;
|
||||
s32 y = GetMenuEntryYCoord(menuInput, i);
|
||||
u8 areaId = gFriendAreasMapPtr->displayedAreas[i];
|
||||
|
||||
PrintFriendAreaNameInMap(gFormatBuffer_Items[0], areaId);
|
||||
if (areaId == 0) {
|
||||
PrintFormattedStringOnWindow(12, r4, _("{MOVE_ITEM_0}"), 0, '\0');
|
||||
PrintFormattedStringOnWindow(12, y, _("{MOVE_ITEM_0}"), 0, '\0');
|
||||
}
|
||||
else {
|
||||
sub_80926F8(areaId, &unkFriendAreaStruct, gFriendAreasMapPtr->unk4A2C);
|
||||
gFormatArgs[0] = unkFriendAreaStruct.unk2;
|
||||
gFormatArgs[1] = unkFriendAreaStruct.numPokemon;
|
||||
PrintFormattedStringOnWindow(12, r4, _("{MOVE_ITEM_0}($v02/$v12)"), 0, '\0');
|
||||
GetFriendAreaCapacity(areaId, &friendAreaCapacity, gFriendAreasMapPtr->unk4A2C);
|
||||
gFormatArgs[0] = friendAreaCapacity.currNoPokemon;
|
||||
gFormatArgs[1] = friendAreaCapacity.maxPokemon;
|
||||
PrintFormattedStringOnWindow(12, y, _("{MOVE_ITEM_0}($v02/$v12)"), 0, '\0');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ static void DrawHintSelectionMenu(void)
|
|||
PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->unk34, 0);
|
||||
|
||||
for (hintIndex = 0; hintIndex < HINT_MAX; hintIndex++) {
|
||||
y = sub_8013800(&sUnknown_203B264->input, hintIndex);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B264->input, hintIndex);
|
||||
PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->unk34, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ void BuildIQSkillList(void)
|
|||
for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.unk1A; counter++) {
|
||||
skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + counter];
|
||||
|
||||
y = sub_8013800(&sIQSkillListMenu->s24.s0.input, counter);
|
||||
y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.s0.input, counter);
|
||||
strncpy(gFormatBuffer_Items[1], GetIQSkillName(skillIndex), 80);
|
||||
|
||||
if (IsIQSkillSet(&sIQSkillListMenu->pokeStruct->IQSkills, 1 << skillIndex))
|
||||
|
|
|
|||
|
|
@ -145,12 +145,12 @@ void sub_801A0D8(void)
|
|||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = sub_8013800(&gUnknown_203B214->s0.input, index);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
|
||||
PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.unk34, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(auStack112, sFmtRed, auStack204);
|
||||
y = sub_8013800(&gUnknown_203B214->s0.input, index);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
|
||||
PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,12 +146,12 @@ void sub_801A4A4(void)
|
|||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = sub_8013800(&gUnknown_203B21C->s0.input, index);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.unk34, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtRed, buffer1);
|
||||
y = sub_8013800(&gUnknown_203B21C->s0.input, index);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ void sub_801A9E0(void)
|
|||
switch (gUnknown_203B224->unk0) {
|
||||
case 0: {
|
||||
sub_8090E14(buf1, &item, 0);
|
||||
PrintStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
|
|
@ -218,7 +218,7 @@ void sub_801A9E0(void)
|
|||
item.flags = 1;
|
||||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
PrintStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
|
|
@ -231,10 +231,10 @@ void sub_801A9E0(void)
|
|||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex))
|
||||
PrintStringOnWindow(8,sub_8013800(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
else {
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -252,15 +252,15 @@ void sub_801A9E0(void)
|
|||
|
||||
if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) {
|
||||
sprintfStatic(buf2, sFmtRed, buf1);
|
||||
PrintStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
}
|
||||
else {
|
||||
sub_8090E14(buf1, &item, 0);
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -275,17 +275,17 @@ void sub_801A9E0(void)
|
|||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
if (IsGummiItem(item.id))
|
||||
PrintStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
else {
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (sub_801AED0(teamItemIndex) & 1)
|
||||
sub_8007B7C(gUnknown_203B224->unk54.s0.unk34, 8, sub_8013800(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10);
|
||||
sub_8007B7C(gUnknown_203B224->unk54.s0.unk34, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10);
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B224->unk54.s0.unk34);
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ static void MakuhitaDojo_DrawCourseList(void)
|
|||
|
||||
mazeIndex = sub_80A2668(iVar6);
|
||||
|
||||
y = sub_8013800(&sMakuhitaDojoWork2->s30.s0.input, i);
|
||||
y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.s0.input, i);
|
||||
color = COLOR_WHITE_2; // COLOR_WHITE again?
|
||||
if ((bool8)IsMazeCompleted(mazeIndex)) {
|
||||
PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.unk34, 0);
|
||||
|
|
|
|||
|
|
@ -424,7 +424,7 @@ void sub_8012EBC(MenuStruct *param_1)
|
|||
color = colorArray[0]; // Use the default white
|
||||
|
||||
sprintfStatic(buffer,gUnknown_80D4828, color, textPtr);
|
||||
y = sub_8013800(¶m_1->input, counter);
|
||||
y = GetMenuEntryYCoord(¶m_1->input, counter);
|
||||
PrintFormattedStringOnWindow(8, y, buffer, param_1->index, 0);
|
||||
menuItemsPtr++;
|
||||
counter++;
|
||||
|
|
@ -552,9 +552,9 @@ static void sub_8013134(MenuInputStruct *param_1, u32 menuItemCounter, u32 index
|
|||
param_1->unk4 = 0;
|
||||
|
||||
if (temp->unkC == 6)
|
||||
param_1->unk6 = 16;
|
||||
param_1->firstEntryY = 16;
|
||||
else
|
||||
param_1->unk6 = 2;
|
||||
param_1->firstEntryY = 2;
|
||||
|
||||
param_1->unkC = 0;
|
||||
param_1->unkE = 0;
|
||||
|
|
@ -701,7 +701,7 @@ void UpdateMenuCursorSpriteCoords(MenuInputStruct *param_1)
|
|||
index = param_1->unk0;
|
||||
temp = &gUnknown_2027370[index];
|
||||
param_1->unk8.x = temp->unk0 * 8 + param_1->unk4;
|
||||
param_1->unk8.y = temp->unk2 * 8 + sub_8013800(param_1, param_1->menuIndex);
|
||||
param_1->unk8.y = temp->unk2 * 8 + GetMenuEntryYCoord(param_1, param_1->menuIndex);
|
||||
}
|
||||
|
||||
void MoveMenuCursorDown(MenuInputStruct *param_1)
|
||||
|
|
@ -810,15 +810,12 @@ void sub_80137F8(MenuInputStruct *param_1, u32 param_2)
|
|||
param_1->unk10 = param_2 << 8;
|
||||
}
|
||||
|
||||
s32 sub_8013800(MenuInputStruct *param_1, s32 param_2)
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId)
|
||||
{
|
||||
s32 iVar1;
|
||||
s32 iVar2;
|
||||
s32 firstY = menu->firstEntryY;
|
||||
s32 iVar1 = entryId * menu->unk10;
|
||||
|
||||
iVar2 = param_1->unk6;
|
||||
iVar1 = param_2 * param_1->unk10;
|
||||
|
||||
return iVar2 + (iVar1 / 256);
|
||||
return firstY + (iVar1 / 256);
|
||||
}
|
||||
|
||||
void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4)
|
||||
|
|
@ -957,9 +954,9 @@ void sub_8013984(MenuInputStruct *param_1)
|
|||
param_1->unk4 = 0;
|
||||
|
||||
if (ptr->unkC == 6)
|
||||
param_1->unk6 = 16;
|
||||
param_1->firstEntryY = 16;
|
||||
else
|
||||
param_1->unk6 = 0;
|
||||
param_1->firstEntryY = 0;
|
||||
|
||||
if (param_1->unk20 < 2)
|
||||
param_1->unkC = 0;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ static void CreateOptionsMenu(void)
|
|||
sub_80073B8(sUnknown_203B260->unk44);
|
||||
PrintStringOnWindow(16, 0, sGameOptions,sUnknown_203B260->unk44, 0);
|
||||
|
||||
y = sub_8013800(&sUnknown_203B260->input, 0);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B260->input, 0);
|
||||
PrintStringOnWindow(8, y, sUnknown_80DC064, sUnknown_203B260->unk44, 0);
|
||||
|
||||
switch (sUnknown_203B260->optionsMenu->windowColor) {
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ static void RedrawPartnerSelectionMenu(void)
|
|||
|
||||
monCounter = 0;
|
||||
while (monCounter < gUnknown_203B404->s18.s0.input.unk1A) {
|
||||
yCoord = sub_8013800(&gUnknown_203B404->s18.s0.input, monCounter);
|
||||
yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.s0.input, monCounter);
|
||||
monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]);
|
||||
PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.unk34, 0);
|
||||
monCounter++;
|
||||
|
|
|
|||
|
|
@ -928,7 +928,7 @@ void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3
|
|||
u8 friendArea;
|
||||
u8 uVar2;
|
||||
s32 numPokemon;
|
||||
unkStruct_8092638 local_40; // sp 0x0
|
||||
FriendAreaCapacity local_40; // sp 0x0
|
||||
unkEvolve evolveConditions; // r7
|
||||
s32 index, index2;
|
||||
#ifndef NONMATCHING
|
||||
|
|
@ -961,17 +961,17 @@ void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3
|
|||
if ((evolveConditions.preEvolution.evolveType == EVOLVE_TYPE_NONE) || (param_1->speciesNum != evolveConditions.preEvolution.evolveFrom)) continue;
|
||||
friendArea = ((u8 (*)(s32))GetFriendArea)(index2); // UB
|
||||
uVar2 = GetFriendArea(param_1->speciesNum);
|
||||
sub_8092638(friendArea,&local_40,FALSE,FALSE);
|
||||
GetFriendAreaCapacity2(friendArea,&local_40,FALSE,FALSE);
|
||||
if (!local_40.hasFriendArea) {
|
||||
evolveStatus->evolutionConditionStatus |= EVOLUTION_LACK_FRIEND_AREA;
|
||||
evolFlag = TRUE;
|
||||
}
|
||||
else {
|
||||
numPokemon = local_40.unk2;
|
||||
numPokemon = local_40.currNoPokemon;
|
||||
if (friendArea == uVar2) {
|
||||
numPokemon--;
|
||||
}
|
||||
if (local_40.numPokemon <= numPokemon) {
|
||||
if (local_40.maxPokemon <= numPokemon) {
|
||||
evolveStatus->evolutionConditionStatus |= EVOLUTION_LACK_ROOM;
|
||||
evolFlag = TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ static void CreatePKMNNewsMenu(void)
|
|||
sub_8012BC4((sUnknown_80DFBE8.f2 * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.unk34);
|
||||
|
||||
for (index = 0; index < sUnknown_203B2CC->s38.input.unk1A; index++) {
|
||||
y = sub_8013800(&sUnknown_203B2CC->s38.input, index);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index);
|
||||
new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + index;
|
||||
mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index];
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.unk34);
|
||||
|
|
|
|||
|
|
@ -136,10 +136,10 @@ void CreateMailMenu(void)
|
|||
for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.unk1A; i++) {
|
||||
mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + i]);
|
||||
local.unk0[0] = sUnknown_203B2D8->unk4.s0.unk34;
|
||||
local.y = sub_8013800(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
|
||||
if (mail->mailType == MAIL_TYPE_UNK1) {
|
||||
y = sub_8013800(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.unk34);
|
||||
PrintPokeNameToBuffer(gFormatBuffer_Monsters[0], GetPlayerPokemonStruct());
|
||||
sprintfStatic(buffer, GetPokemonMailHeadline(mail->unk4.dungeon.floor), gFormatBuffer_Monsters[0]);
|
||||
|
|
|
|||
|
|
@ -143,22 +143,22 @@ void sub_8021494(void)
|
|||
WriteFriendAreaName(buffer1, friendAreaIndex, TRUE);
|
||||
|
||||
if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney)
|
||||
PrintStringOnWindow(8,sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtRedString, buffer1);
|
||||
PrintStringOnWindow(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
else if (sWigglytuffShop1Work->mode == 0) {
|
||||
if (gFriendAreas[friendAreaIndex] == TRUE)
|
||||
PrintStringOnWindow(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex));
|
||||
PrintStringOnWindow(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sWigglytuffShop1Work->s40.s0.unk34);
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ static void sub_8021D5C(void)
|
|||
static void UpdateWigglytuffDialogue(void)
|
||||
{
|
||||
u8 *string;
|
||||
unkStruct_8092638 uStack_14;
|
||||
FriendAreaCapacity uStack_14;
|
||||
|
||||
switch (sWigglytuffShop3Work->state) {
|
||||
case WIGGLYTUFF_INIT:
|
||||
|
|
@ -273,7 +273,7 @@ static void UpdateWigglytuffDialogue(void)
|
|||
sub_8023354(TRUE);
|
||||
break;
|
||||
case DISPLAY_POKEMON_FRIEND_AREA_INFO:
|
||||
sub_8092638(sWigglytuffShop3Work->chosenFriendArea, &uStack_14, FALSE, FALSE);
|
||||
GetFriendAreaCapacity2(sWigglytuffShop3Work->chosenFriendArea, &uStack_14, FALSE, FALSE);
|
||||
|
||||
if (uStack_14.hasFriendArea)
|
||||
sWigglytuffShop3Work->fallbackState = WIGGLYTUFF_CHECK_HAS_FRIEND_AREA;
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ void sub_803092C(void)
|
|||
for (index = 0; index < gUnknown_203B320->s28.s0.input.unk1A; index++) {
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + index]);
|
||||
local.unk0[0] = gUnknown_203B320->s28.s0.unk34;
|
||||
local.y = sub_8013800(&gUnknown_203B320->s28.s0.input,index);
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index);
|
||||
local.mailTitleType = 7;
|
||||
local.mailMissionType = MISSION_TYPE_FRIEND_RESCUE;
|
||||
local.mailStatus = MAIL_STATUS_SUSPENDED;
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ void DrawPelipperBoardJobMenu(void)
|
|||
slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + i]);
|
||||
mail = GetPelipperBoardSlotInfo(slotIndex);
|
||||
local.unk0[0] = gUnknown_203B2E0->unk8.s0.unk34;
|
||||
local.y = sub_8013800(&gUnknown_203B2E0->unk8.s0.input, i);
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i);
|
||||
sub_803B35C(mail, &local);
|
||||
|
||||
if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex)))
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ void DrawJobListMenu(void)
|
|||
for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.unk1A; i++) {
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + i]);
|
||||
local.unk0[0] = gUnknown_203B2E8->unk8.s0.unk34;
|
||||
local.y = sub_8013800(&gUnknown_203B2E8->unk8.s0.input, i);
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i);
|
||||
sub_803B35C(mail, &local);
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ void sub_802CFD0(void)
|
|||
iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + r5);
|
||||
|
||||
local.unk0[0] = sUnknown_203B2F4->s0.unk34;
|
||||
local.y = sub_8013800(&sUnknown_203B2F4->s0.input, r5);
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5);
|
||||
sub_803B35C(&iVar1->mail, &local);
|
||||
|
||||
local.unk43 = 1;
|
||||
|
|
|
|||
|
|
@ -561,7 +561,7 @@ static bool8 ShowYesNoWindow(u8 *str)
|
|||
menuInput.unk1E = 0;
|
||||
menuInput.unk20 = 0;
|
||||
menuInput.unk4 = 0;
|
||||
menuInput.unk6 = 0;
|
||||
menuInput.firstEntryY = 0;
|
||||
menuInput.unk0 = 1;
|
||||
menuInput.unkC = 0;
|
||||
menuInput.unkE = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user