mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-10 10:06:32 -05:00
bit more + some documentation
This commit is contained in:
@@ -10,220 +10,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ScrCmd_Unk00B2
|
||||
ScrCmd_Unk00B2: ; 0x0203C368
|
||||
push {r4-r6, lr}
|
||||
add r5, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl FUN_0203384C
|
||||
cmp r0, #0x0
|
||||
beq _0203C3BC
|
||||
mov r0, #0x1
|
||||
strh r0, [r4, #0x0]
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
add r1, r6, #0x0
|
||||
bl FUN_020386E0
|
||||
ldr r1, _0203C3C4 ; =FUN_0203BC04
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
b _0203C3C0
|
||||
_0203C3BC:
|
||||
mov r0, #0x0
|
||||
strh r0, [r4, #0x0]
|
||||
_0203C3C0:
|
||||
mov r0, #0x1
|
||||
pop {r4-r6, pc}
|
||||
.balign 4
|
||||
_0203C3C4: .word FUN_0203BC04
|
||||
|
||||
thumb_func_start ScrCmd_Unk00B3
|
||||
ScrCmd_Unk00B3: ; 0x0203C3C8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GetVarPointer
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r4, #0x74]
|
||||
bl FUN_0206F3D8
|
||||
mov r0, #0x1
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start ScrCmd_Unk00B4
|
||||
ScrCmd_Unk00B4: ; 0x0203C3E8
|
||||
push {r4-r6, lr}
|
||||
add r5, r0, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r1, #0x14
|
||||
bl FieldSysGetAttrAddr
|
||||
add r4, r0, #0x0
|
||||
mov r0, #0xb
|
||||
mov r1, #0x8
|
||||
bl AllocFromHeap
|
||||
str r0, [r4, #0x0]
|
||||
add r6, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl Save_PlayerData_GetOptionsAddr
|
||||
str r0, [r6, #0x4]
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
ldr r1, [r4, #0x0]
|
||||
bl FUN_020386A4
|
||||
ldr r1, _0203C42C ; =FUN_0203BC04
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
pop {r4-r6, pc}
|
||||
nop
|
||||
_0203C42C: .word FUN_0203BC04
|
||||
|
||||
thumb_func_start ScrCmd_Unk00B5
|
||||
ScrCmd_Unk00B5: ; 0x0203C430
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r1, #0x14
|
||||
bl FieldSysGetAttrAddr
|
||||
add r5, #0x80
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl SaveArray_Flags_Get
|
||||
ldr r1, [r4, #0x0]
|
||||
ldr r1, [r1, #0x0]
|
||||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
bl FUN_0205F378
|
||||
ldr r0, [r4, #0x0]
|
||||
bl FreeToHeap
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start ScrCmd_Unk0178
|
||||
ScrCmd_Unk0178: ; 0x0203C460
|
||||
push {r4-r6, lr}
|
||||
add r5, r0, #0x0
|
||||
ldr r1, [r5, #0x8]
|
||||
add r0, r1, #0x1
|
||||
str r0, [r5, #0x8]
|
||||
ldrb r0, [r1, #0x0]
|
||||
cmp r0, #0x0
|
||||
beq _0203C474
|
||||
mov r0, #0x1
|
||||
b _0203C476
|
||||
_0203C474:
|
||||
mov r0, #0x0
|
||||
_0203C476:
|
||||
lsl r0, r0, #0x18
|
||||
lsr r4, r0, #0x18
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r1, #0x13
|
||||
bl FieldSysGetAttrAddr
|
||||
add r6, r0, #0x0
|
||||
ldr r0, [r6, #0x0]
|
||||
cmp r0, #0x0
|
||||
beq _0203C492
|
||||
bl GF_AssertFail
|
||||
_0203C492:
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
add r1, r4, #0x0
|
||||
bl FUN_0203789C
|
||||
str r0, [r6, #0x0]
|
||||
ldr r1, _0203C4AC ; =FUN_0203BC04
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
pop {r4-r6, pc}
|
||||
.balign 4
|
||||
_0203C4AC: .word FUN_0203BC04
|
||||
|
||||
thumb_func_start ScrCmd_Unk0179
|
||||
ScrCmd_Unk0179: ; 0x0203C4B0
|
||||
push {r3-r5, lr}
|
||||
add r4, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, #0x80
|
||||
add r5, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
mov r1, #0x13
|
||||
bl FieldSysGetAttrAddr
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
cmp r0, #0x0
|
||||
bne _0203C4DC
|
||||
bl GF_AssertFail
|
||||
_0203C4DC:
|
||||
ldr r0, [r4, #0x0]
|
||||
bl FUN_020378FC
|
||||
strh r0, [r5, #0x0]
|
||||
ldr r0, [r4, #0x0]
|
||||
bl FreeToHeap
|
||||
mov r0, #0x0
|
||||
str r0, [r4, #0x0]
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start ScrCmd_Unk00BA
|
||||
ScrCmd_Unk00BA: ; 0x0203C4F0
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0xc
|
||||
add r4, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GetVarPointer
|
||||
mov r1, #0x0
|
||||
str r1, [sp, #0x0]
|
||||
str r1, [sp, #0x4]
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [r4, #0x74]
|
||||
add r2, r1, #0x0
|
||||
mov r3, #0x7
|
||||
bl FUN_020385CC
|
||||
mov r0, #0x1
|
||||
add sp, #0xc
|
||||
pop {r3-r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start ScrCmd_Unk00BB
|
||||
ScrCmd_Unk00BB: ; 0x0203C520
|
||||
push {r4-r7, lr}
|
||||
@@ -267,7 +53,7 @@ ScrCmd_Unk00BB: ; 0x0203C520
|
||||
ldr r0, [r5, #0x74]
|
||||
mov r1, #0x1
|
||||
mov r3, #0xa
|
||||
bl FUN_020385CC
|
||||
bl CreateNamingScreen
|
||||
mov r0, #0x1
|
||||
add sp, #0x34
|
||||
pop {r4-r7, pc}
|
||||
@@ -290,7 +76,7 @@ ScrCmd_Unk0271: ; 0x0203C58C
|
||||
ldr r0, [r4, #0x74]
|
||||
mov r1, #0x6
|
||||
mov r3, #0xa
|
||||
bl FUN_020385CC
|
||||
bl CreateNamingScreen
|
||||
mov r0, #0x1
|
||||
add sp, #0xc
|
||||
pop {r3-r4, pc}
|
||||
|
||||
@@ -1962,8 +1962,8 @@ _020385BC:
|
||||
_020385CA:
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start FUN_020385CC
|
||||
FUN_020385CC: ; 0x020385CC
|
||||
thumb_func_start CreateNamingScreen
|
||||
CreateNamingScreen: ; 0x020385CC
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x10
|
||||
str r0, [sp, #0x4]
|
||||
|
||||
@@ -329,13 +329,13 @@ gScriptCmdTable: ; 0x020F355C
|
||||
.word ScrCmd_InitHallOfFame
|
||||
.word ScrCmd_Unk00B2
|
||||
.word ScrCmd_Unk00B3
|
||||
.word ScrCmd_Unk00B4
|
||||
.word ScrCmd_Unk00B5
|
||||
.word ScrCmd_StarterSelectionScreen
|
||||
.word ScrCmd_EndStarterSelectionScreen
|
||||
.word ScrCmd_Unk00B6
|
||||
.word ScrCmd_Unk00B7
|
||||
.word ScrCmd_Unk00B8
|
||||
.word ScrCmd_Unk00B9
|
||||
.word ScrCmd_Unk00BA
|
||||
.word ScrCmd_NamePlayerScreen
|
||||
.word ScrCmd_Unk00BB
|
||||
.word ScrCmd_Unk00BC
|
||||
.word ScrCmd_Unk00BD
|
||||
@@ -525,8 +525,8 @@ gScriptCmdTable: ; 0x020F355C
|
||||
.word ScrCmd_Unk0175
|
||||
.word ScrCmd_Unk0176
|
||||
.word ScrCmd_CountPartyMons
|
||||
.word ScrCmd_Unk0178
|
||||
.word ScrCmd_Unk0179
|
||||
.word ScrCmd_ShowBagScreen
|
||||
.word ScrCmd_GetBagScreenSelection
|
||||
.word ScrCmd_Unk017A
|
||||
.word ScrCmd_GetBerryName
|
||||
.word ScrCmd_GetNatureName
|
||||
|
||||
@@ -2653,7 +2653,7 @@
|
||||
.extern FUN_020383F8
|
||||
.extern FUN_0203842C
|
||||
.extern FUN_0203846C
|
||||
.extern FUN_020385CC
|
||||
.extern CreateNamingScreen
|
||||
.extern FUN_02038680
|
||||
.extern FUN_02038690
|
||||
.extern FUN_020386A4
|
||||
@@ -2860,11 +2860,11 @@
|
||||
.extern ScrCmd_InitHallOfFame
|
||||
.extern ScrCmd_Unk00B2
|
||||
.extern ScrCmd_Unk00B3
|
||||
.extern ScrCmd_Unk00B4
|
||||
.extern ScrCmd_Unk00B5
|
||||
.extern ScrCmd_Unk0178
|
||||
.extern ScrCmd_Unk0179
|
||||
.extern ScrCmd_Unk00BA
|
||||
.extern ScrCmd_StarterSelectionScreen
|
||||
.extern ScrCmd_EndStarterSelectionScreen
|
||||
.extern ScrCmd_ShowBagScreen
|
||||
.extern ScrCmd_GetBagScreenSelection
|
||||
.extern ScrCmd_NamePlayerScreen
|
||||
.extern ScrCmd_Unk00BB
|
||||
.extern ScrCmd_Unk0271
|
||||
.extern ScrCmd_Unk0243
|
||||
|
||||
@@ -91,7 +91,7 @@ void DayCareMon_Extras_Init(struct DayCareMail * mail)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < OT_NAME_LENGTH + 1; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
mail->ot_name[i] = 0;
|
||||
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
|
||||
mail->nickname[i] = 0;
|
||||
|
||||
@@ -48,7 +48,7 @@ void Save_HOF_RecordParty(struct HallOfFame * hof, struct PlayerParty * party, R
|
||||
GetMonData(mon, MON_DATA_NICKNAME_3, str);
|
||||
CopyStringToU16Array(str, hof_party->party[j].nickname, POKEMON_NAME_LENGTH + 1);
|
||||
GetMonData(mon, MON_DATA_OT_NAME_2, str);
|
||||
CopyStringToU16Array(str, hof_party->party[j].otname, OT_NAME_LENGTH + 1);
|
||||
CopyStringToU16Array(str, hof_party->party[j].otname, PLAYER_NAME_LENGTH + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -68,13 +68,13 @@ void PlayerProfile_Init(struct PlayerData * data)
|
||||
|
||||
void CopyPlayerName(u16 * dest, struct PlayerData * data)
|
||||
{
|
||||
GF_ASSERT((s32)StringLength(data->playerName) < OT_NAME_LENGTH + 1);
|
||||
GF_ASSERT((s32)StringLength(data->playerName) < PLAYER_NAME_LENGTH + 1);
|
||||
CopyU16StringArray(dest, data->playerName);
|
||||
}
|
||||
|
||||
void PlayerName_StringToFlat(struct PlayerData * data, struct String * str)
|
||||
{
|
||||
CopyStringToU16Array(str, data->playerName, OT_NAME_LENGTH + 1);
|
||||
CopyStringToU16Array(str, data->playerName, PLAYER_NAME_LENGTH + 1);
|
||||
}
|
||||
|
||||
u16 * PlayerProfile_GetNamePtr(struct PlayerData * data)
|
||||
@@ -89,7 +89,7 @@ void PlayerName_FlatToString(struct PlayerData * data, struct String * str)
|
||||
|
||||
struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData * data, u32 heap_id)
|
||||
{
|
||||
struct String * str = String_New(OT_NAME_LENGTH + 1, heap_id);
|
||||
struct String * str = String_New(PLAYER_NAME_LENGTH + 1, heap_id);
|
||||
PlayerName_FlatToString(data, str);
|
||||
return str;
|
||||
}
|
||||
@@ -226,5 +226,5 @@ BOOL PlayerProfile_GetNatDexFlag(struct PlayerData * data)
|
||||
|
||||
BOOL PlayerProfile_NameAndOTIDMatchPlayer(struct PlayerData * a, struct PlayerData * b)
|
||||
{
|
||||
return !StringNotEqualN(a->playerName, b->playerName, OT_NAME_LENGTH) && a->playerId == b->playerId;
|
||||
return !StringNotEqualN(a->playerName, b->playerName, PLAYER_NAME_LENGTH) && a->playerId == b->playerId;
|
||||
}
|
||||
|
||||
@@ -909,7 +909,7 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
|
||||
case MON_DATA_OT_NAME:
|
||||
{
|
||||
u16 * dest16 = (u16 *)dest;
|
||||
for (ret = 0; ret < OT_NAME_LENGTH; ret++)
|
||||
for (ret = 0; ret < PLAYER_NAME_LENGTH; ret++)
|
||||
dest16[ret] = blockD->otTrainerName[ret];
|
||||
dest16[ret] = EOS;
|
||||
}
|
||||
@@ -1366,13 +1366,13 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
|
||||
blockC->sinnohRibbons2 &= -1ull ^ mask;
|
||||
break;
|
||||
case MON_DATA_OT_NAME:
|
||||
for (i = 0; i < OT_NAME_LENGTH + 1; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
{
|
||||
blockD->otTrainerName[i] = VALUE(u16); value = (void *)((char *)value + 2);
|
||||
}
|
||||
break;
|
||||
case MON_DATA_OT_NAME_2:
|
||||
CopyStringToU16Array(value, blockD->otTrainerName, OT_NAME_LENGTH + 1);
|
||||
CopyStringToU16Array(value, blockD->otTrainerName, PLAYER_NAME_LENGTH + 1);
|
||||
break;
|
||||
case MON_DATA_EGG_MET_YEAR:
|
||||
blockD->dateEggReceived[0] = VALUE(u8);
|
||||
@@ -3687,7 +3687,7 @@ BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct PlayerData * sb2, u32 heap_
|
||||
u32 myGender = PlayerProfile_GetTrainerGender(sb2);
|
||||
u32 otGender = GetBoxMonData(boxmon, MON_DATA_MET_GENDER, NULL);
|
||||
struct String * r7 = PlayerProfile_GetPlayerName_NewString(sb2, heap_id);
|
||||
struct String * r6 = String_New(OT_NAME_LENGTH + 1, heap_id);
|
||||
struct String * r6 = String_New(PLAYER_NAME_LENGTH + 1, heap_id);
|
||||
BOOL ret = FALSE;
|
||||
GetBoxMonData(boxmon, MON_DATA_OT_NAME_2, r6);
|
||||
if (myId == otId && myGender == otGender && StringCompare(r7, r6) == 0)
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
#include "text.h"
|
||||
#include "text_02054590.h"
|
||||
#include "unk_0200CA44.h"
|
||||
#include "unk_020337E8.h"
|
||||
#include "unk_020377F0.h"
|
||||
#include "unk_0204AF24.h"
|
||||
#include "unk_0205EC84.h"
|
||||
#include "unk_0208890C.h"
|
||||
@@ -139,6 +141,12 @@ extern void FUN_020383D8(TaskManager *taskManager);
|
||||
extern void *FUN_0203842C(FieldSystem *fieldSystem);
|
||||
extern void Task_GameClear(TaskManager *taskManager);
|
||||
extern HallOfFame *FUN_02038824(FieldSystem *fieldSystem);
|
||||
extern void FUN_020386E0(FieldSystem *fieldSystem, u16 param1);
|
||||
extern void FUN_0206F3D8(TaskManager *taskManager, u16 *param1);
|
||||
extern void FUN_020386A4(FieldSystem *fieldSystem, StarterSelectionData *starterSelectionData);
|
||||
extern void FUN_0205F378(struct ScriptState *flags, u16 state);
|
||||
extern BagScreenAppData *FUN_0203789C(FieldSystem *fieldSystem, u8 mode);
|
||||
extern u16 FUN_020378FC(BagScreenAppData *bagScreenAppData);
|
||||
|
||||
u8 UNK_021C5A0C[4];
|
||||
|
||||
@@ -2268,3 +2276,69 @@ BOOL ScrCmd_InitHallOfFame(ScriptContext *ctx) { //00B1
|
||||
SetupNativeScript(ctx, FUN_0203BB90);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_Unk00B2(ScriptContext *ctx) { //00B2
|
||||
u16 unk0 = ScriptGetVar(ctx);
|
||||
u16 *unk1 = ScriptGetVarPointer(ctx);
|
||||
if (FUN_0203384C(ctx->fieldSystem->saveBlock2)) {
|
||||
*unk1 = 1;
|
||||
FUN_020386E0(ctx->fieldSystem, unk0);
|
||||
SetupNativeScript(ctx, FUN_0203BC04);
|
||||
}
|
||||
else {
|
||||
*unk1 = 0;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_Unk00B3(ScriptContext *ctx) { //00B3
|
||||
u16 *var = ScriptGetVarPointer(ctx);
|
||||
FUN_0206F3D8(ctx->taskManager, var);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_StarterSelectionScreen(ScriptContext *ctx) { //00B4
|
||||
StarterSelectionData **starterSelectionPtr = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_MISC_DATA_PTR);
|
||||
*starterSelectionPtr = AllocFromHeap(11, sizeof(StarterSelectionData));
|
||||
StarterSelectionData *starterSelectionData = *starterSelectionPtr; //consider inlining
|
||||
starterSelectionData->options = Save_PlayerData_GetOptionsAddr(ctx->fieldSystem->saveBlock2);
|
||||
FUN_020386A4(ctx->fieldSystem, *starterSelectionPtr);
|
||||
SetupNativeScript(ctx, FUN_0203BC04);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_EndStarterSelectionScreen(ScriptContext *ctx) { //00B5
|
||||
StarterSelectionData **starterSelectionData = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_MISC_DATA_PTR);
|
||||
struct ScriptState *flags = SaveArray_Flags_Get(ctx->fieldSystem->saveBlock2);
|
||||
FUN_0205F378(flags, (*starterSelectionData)->state);
|
||||
FreeToHeap(*starterSelectionData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_ShowBagScreen(ScriptContext *ctx) { //0178
|
||||
BagScreenAppData **bagData; //required for matching
|
||||
u8 mode = ScriptReadByte(ctx) != 0 ? 1 : 0;
|
||||
bagData = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_RUNNING_APP_DATA);
|
||||
|
||||
GF_ASSERT(*bagData == NULL);
|
||||
*bagData = FUN_0203789C(ctx->fieldSystem, mode); //BagData_New?
|
||||
SetupNativeScript(ctx, FUN_0203BC04);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_GetBagScreenSelection(ScriptContext *ctx) { //0179
|
||||
u16 *var = ScriptGetVarPointer(ctx);
|
||||
BagScreenAppData **bagData = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_RUNNING_APP_DATA);
|
||||
|
||||
GF_ASSERT(*bagData != NULL);
|
||||
*var = FUN_020378FC(*bagData); //BagData_GetSelection?
|
||||
FreeToHeap(*bagData);
|
||||
*bagData = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_NamePlayerScreen(ScriptContext *ctx) { //00BA
|
||||
u16 *var = ScriptGetVarPointer(ctx);
|
||||
CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_PLAYER, 0, PLAYER_NAME_LENGTH, 0, NULL, var);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
#include "message_format.h"
|
||||
#include "math_util.h"
|
||||
#include "unk_020286F8.h"
|
||||
#include "unk_020377F0.h"
|
||||
|
||||
extern void* FieldSysGetAttrAddr(struct FieldSystem*, u8 idx);
|
||||
|
||||
extern void FUN_020385CC(struct TaskManager *, u32, u32, u32, u32, u16*, u16* ret_ptr);
|
||||
extern BOOL FUN_020612EC(struct FieldSystem*);
|
||||
extern BOOL FUN_020612F8(struct FieldSystem*);
|
||||
|
||||
@@ -51,7 +51,7 @@ BOOL ScrCmd_UnionGroup(struct ScriptContext* ctx) //021D
|
||||
u16* unk_str_ptr = FUN_020287A8(unk_sav_ptr, 0, 0);
|
||||
u16* ret_ptr = ScriptGetVarPointer(ctx);
|
||||
|
||||
FUN_020385CC(ctx->taskManager, 5, 0, 7, 0, unk_str_ptr, ret_ptr);
|
||||
CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_GROUP, 0, PLAYER_NAME_LENGTH, 0, unk_str_ptr, ret_ptr); //should be GROUP_NAME_LENGTH?
|
||||
return TRUE;
|
||||
}
|
||||
case 5: { //enter in group id (whatever this means, needs more investigation)
|
||||
|
||||
@@ -32,7 +32,7 @@ void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2
|
||||
else
|
||||
{
|
||||
str = NewString_ReadMsgData(msgData, enemies->trainer_idxs[i]);
|
||||
CopyStringToU16Array(str, enemies->datas[i].name, OT_NAME_LENGTH + 1);
|
||||
CopyStringToU16Array(str, enemies->datas[i].name, PLAYER_NAME_LENGTH + 1);
|
||||
String_Delete(str);
|
||||
}
|
||||
CreateNPCTrainerParty(enemies, i, heap_id);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef POKEDIAMOND_CONSTANTS_GLOBAL_H
|
||||
#define POKEDIAMOND_CONSTANTS_GLOBAL_H
|
||||
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
#define OT_NAME_LENGTH 7
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
#define PLAYER_NAME_LENGTH 7
|
||||
|
||||
#endif //POKEDIAMOND_CONSTANTS_GLOBAL_H
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
struct DayCareMail
|
||||
{
|
||||
struct Mail seal;
|
||||
u16 ot_name[OT_NAME_LENGTH + 1];
|
||||
u16 ot_name[PLAYER_NAME_LENGTH + 1];
|
||||
u16 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
u8 padding_5E[2];
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "save_block_2.h"
|
||||
|
||||
struct ScriptState
|
||||
struct ScriptState //todo this is not a very good name
|
||||
{
|
||||
u16 vars[288];
|
||||
u8 flags[364];
|
||||
|
||||
@@ -13,7 +13,7 @@ struct HOFMon
|
||||
/* 0x04 */ u32 personality;
|
||||
/* 0x08 */ u32 otid;
|
||||
/* 0x0C */ u16 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/* 0x22 */ u16 otname[OT_NAME_LENGTH + 1];
|
||||
/* 0x22 */ u16 otname[PLAYER_NAME_LENGTH + 1];
|
||||
/* 0x32 */ u16 moves[4];
|
||||
/* 0x3A */ u8 padding[2];
|
||||
};
|
||||
|
||||
@@ -20,7 +20,7 @@ struct Mail
|
||||
u8 author_language; // language
|
||||
u8 author_version; // version
|
||||
u8 mail_type; // mail type
|
||||
u16 author_name[OT_NAME_LENGTH + 1]; // author name
|
||||
u16 author_name[PLAYER_NAME_LENGTH + 1]; // author name
|
||||
union MailPatternData unk_18[3];
|
||||
u8 padding_1E[2];
|
||||
struct MailMessage unk_20[3];
|
||||
|
||||
@@ -17,7 +17,7 @@ typedef enum
|
||||
|
||||
struct PlayerData
|
||||
{
|
||||
/* 0x00 */ u16 playerName[OT_NAME_LENGTH + 1];
|
||||
/* 0x00 */ u16 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/* 0x10 */ u32 playerId;
|
||||
/* 0x14 */ u32 money;
|
||||
/* 0x18 */ u8 gender;
|
||||
|
||||
@@ -194,6 +194,13 @@ BOOL ScrCmd_Unk00AE(ScriptContext *ctx);
|
||||
BOOL ScrCmd_Unk00AF(ScriptContext *ctx);
|
||||
BOOL ScrCmd_ShowEndGameScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_InitHallOfFame(ScriptContext *ctx);
|
||||
BOOL ScrCmd_Unk00B2(ScriptContext *ctx);
|
||||
BOOL ScrCmd_Unk00B3(ScriptContext *ctx);
|
||||
BOOL ScrCmd_StarterSelectionScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_EndStarterSelectionScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_ShowBagScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_GetBagScreenSelection(ScriptContext *ctx);
|
||||
BOOL ScrCmd_NamePlayerScreen(ScriptContext *ctx);
|
||||
|
||||
// scrcmd_mart.c
|
||||
BOOL ScrCmd_NormalMart(struct ScriptContext * ctx);
|
||||
|
||||
@@ -64,6 +64,15 @@ typedef struct ScrCmdUnkStruct01D9 {
|
||||
u16 unk06;
|
||||
} ScrCmdUnkStruct01D9; //todo identify and move to own file
|
||||
|
||||
typedef struct StarterSelectionData {
|
||||
s32 state;
|
||||
struct Options *options;
|
||||
} StarterSelectionData; //todo move to own file
|
||||
|
||||
typedef struct BagScreenAppData {
|
||||
|
||||
} BagScreenAppData; //todo fill out and move to own file
|
||||
|
||||
typedef struct FieldSystem //todo move to field_system.c
|
||||
{
|
||||
u32 *unk00;
|
||||
|
||||
@@ -65,7 +65,7 @@ struct TrainerData
|
||||
struct TrainerDataLoaded
|
||||
{
|
||||
struct TrainerData data;
|
||||
u16 name[OT_NAME_LENGTH + 1];
|
||||
u16 name[PLAYER_NAME_LENGTH + 1];
|
||||
u8 padding[16];
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef POKEDIAMOND_UNK_020377F0_H
|
||||
#define POKEDIAMOND_UNK_020377F0_H
|
||||
|
||||
#include "task.h"
|
||||
|
||||
// this file likely has to do with scrcmd apps.
|
||||
|
||||
struct Options;
|
||||
struct PlayerParty;
|
||||
|
||||
@@ -27,4 +31,14 @@ struct UnkStruct_02037CF0
|
||||
BOOL unk2C;
|
||||
};
|
||||
|
||||
enum NamingScreenType {
|
||||
NAMINGSCREEN_PLAYER,
|
||||
NAMINGSCREEN_POKEMON,
|
||||
NAMINGSCREEN_BOX,
|
||||
NAMINGSCREEN_RIVAL,
|
||||
NAMINGSCREEN_GROUP = 5,
|
||||
};
|
||||
|
||||
void CreateNamingScreen(TaskManager *taskManager, enum NamingScreenType type, s32 param2, s32 maxLen, s32 initPos, const u16 *defaultStr, u16 *retVar);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user