mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-30 20:36:48 -05:00
more scrcmd
This commit is contained in:
@@ -10,117 +10,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ScrCmd_Unk00BB
|
||||
ScrCmd_Unk00BB: ; 0x0203C520
|
||||
push {r4-r7, lr}
|
||||
sub sp, #0x34
|
||||
add r5, r0, #0x0
|
||||
add r1, r5, #0x0
|
||||
add r1, #0x80
|
||||
ldr r4, [r1, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
ldr r0, [r4, #0xc]
|
||||
bl SaveArray_PlayerParty_Get
|
||||
add r1, r6, #0x0
|
||||
bl GetPartyMonByIndex
|
||||
mov r1, #0x74
|
||||
add r2, sp, #0xc
|
||||
add r7, r0, #0x0
|
||||
bl GetMonData
|
||||
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, r7, #0x0
|
||||
mov r1, #0x5
|
||||
mov r2, #0x0
|
||||
bl GetMonData
|
||||
add r2, r0, #0x0
|
||||
str r6, [sp, #0x0]
|
||||
add r0, sp, #0xc
|
||||
str r0, [sp, #0x4]
|
||||
str r4, [sp, #0x8]
|
||||
ldr r0, [r5, #0x74]
|
||||
mov r1, #0x1
|
||||
mov r3, #0xa
|
||||
bl CreateNamingScreen
|
||||
mov r0, #0x1
|
||||
add sp, #0x34
|
||||
pop {r4-r7, pc}
|
||||
|
||||
thumb_func_start ScrCmd_Unk0271
|
||||
ScrCmd_Unk0271: ; 0x0203C58C
|
||||
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 r2, #0x0
|
||||
str r2, [sp, #0x0]
|
||||
str r2, [sp, #0x4]
|
||||
str r0, [sp, #0x8]
|
||||
ldr r0, [r4, #0x74]
|
||||
mov r1, #0x6
|
||||
mov r3, #0xa
|
||||
bl CreateNamingScreen
|
||||
mov r0, #0x1
|
||||
add sp, #0xc
|
||||
pop {r3-r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start ScrCmd_Unk0243
|
||||
ScrCmd_Unk0243: ; 0x0203C5BC
|
||||
push {r3-r5, 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 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
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl GetVarPointer
|
||||
add r2, r0, #0x0
|
||||
ldr r0, _0203C610 ; =0x0000FFFF
|
||||
add r5, #0x80
|
||||
strh r0, [r2, #0x0]
|
||||
ldr r0, [r5, #0x0]
|
||||
add r1, r4, #0x0
|
||||
ldr r0, [r0, #0x10]
|
||||
mov r3, #0x0
|
||||
bl FUN_02037E18
|
||||
mov r0, #0x1
|
||||
pop {r3-r5, pc}
|
||||
nop
|
||||
_0203C610: .word 0x0000FFFF
|
||||
|
||||
thumb_func_start ScrCmd_Unk0244
|
||||
ScrCmd_Unk0244: ; 0x0203C614
|
||||
push {r4-r6, lr}
|
||||
|
||||
@@ -336,7 +336,7 @@ gScriptCmdTable: ; 0x020F355C
|
||||
.word ScrCmd_Unk00B8
|
||||
.word ScrCmd_Unk00B9
|
||||
.word ScrCmd_NamePlayerScreen
|
||||
.word ScrCmd_Unk00BB
|
||||
.word ScrCmd_NamePokemonScreen
|
||||
.word ScrCmd_Unk00BC
|
||||
.word ScrCmd_Unk00BD
|
||||
.word ScrCmd_Unk00BE
|
||||
@@ -774,7 +774,7 @@ gScriptCmdTable: ; 0x020F355C
|
||||
.word ScrCmd_Unk026E
|
||||
.word ScrCmd_Unk026F
|
||||
.word ScrCmd_Unk0270
|
||||
.word ScrCmd_Unk0271
|
||||
.word ScrCmd_WriteWhiteRockInscription
|
||||
.word ScrCmd_GetWhiteRockInscription
|
||||
.word ScrCmd_Unk0273
|
||||
.word ScrCmd_HasEnoughCoinsImmediate
|
||||
|
||||
@@ -2865,8 +2865,8 @@
|
||||
.extern ScrCmd_ShowBagScreen
|
||||
.extern ScrCmd_GetBagScreenSelection
|
||||
.extern ScrCmd_NamePlayerScreen
|
||||
.extern ScrCmd_Unk00BB
|
||||
.extern ScrCmd_Unk0271
|
||||
.extern ScrCmd_NamePokemonScreen
|
||||
.extern ScrCmd_WriteWhiteRockInscription
|
||||
.extern ScrCmd_Unk0243
|
||||
.extern ScrCmd_Unk0244
|
||||
.extern ScrCmd_Unk0245
|
||||
|
||||
@@ -147,6 +147,7 @@ extern void FUN_020386A4(FieldSystem *fieldSystem, StarterSelectionData *starter
|
||||
extern void FUN_0205F378(struct ScriptState *flags, u16 state);
|
||||
extern BagScreenAppData *FUN_0203789C(FieldSystem *fieldSystem, u8 mode);
|
||||
extern u16 FUN_020378FC(BagScreenAppData *bagScreenAppData);
|
||||
extern void FUN_02037E18(TaskManager *taskManager, u16 *param1, u16 *param2, u32 param3);
|
||||
|
||||
u8 UNK_021C5A0C[4];
|
||||
|
||||
@@ -2342,3 +2343,36 @@ BOOL ScrCmd_NamePlayerScreen(ScriptContext *ctx) { //00BA
|
||||
CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_PLAYER, 0, PLAYER_NAME_LENGTH, 0, NULL, var);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_NamePokemonScreen(ScriptContext *ctx) { //00BB
|
||||
FieldSystem *fieldSystem = ctx->fieldSystem;
|
||||
|
||||
u16 partyPos = ScriptGetVar(ctx);
|
||||
PlayerParty *party = SaveArray_PlayerParty_Get(fieldSystem->saveBlock2);
|
||||
Pokemon *mon = GetPartyMonByIndex(party, partyPos);
|
||||
|
||||
u16 monNick[20];
|
||||
GetMonData(mon, MON_DATA_NICKNAME, monNick);
|
||||
|
||||
u16 *var = ScriptGetVarPointer(ctx);
|
||||
|
||||
s32 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
|
||||
CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_POKEMON, species, POKEMON_NAME_LENGTH, partyPos, monNick, var);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_WriteWhiteRockInscription(ScriptContext *ctx) { //0271
|
||||
u16 *var = ScriptGetVarPointer(ctx);
|
||||
CreateNamingScreen(ctx->taskManager, NAMINGSCREEN_SHAYMIN_ROCK, 0, POKEMON_NAME_LENGTH, 0, NULL, var);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ScrCmd_Unk0243(ScriptContext *ctx) { //0243
|
||||
u16 unused = ScriptGetVar(ctx);
|
||||
u16 *unk1 = ScriptGetVarPointer(ctx);
|
||||
u16 *unk2 = ScriptGetVarPointer(ctx);
|
||||
*unk2 = 0xFFFF;
|
||||
FUN_02037E18(ctx->fieldSystem->taskManager, unk1, unk2, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -147,10 +147,10 @@ struct PartyPokemon
|
||||
/* 0x0D4 */ u8 sealCoords[8][3]; // seal coords
|
||||
};
|
||||
|
||||
struct Pokemon {
|
||||
typedef struct Pokemon {
|
||||
/* 0x000 */ struct BoxPokemon box;
|
||||
/* 0x088 */ struct PartyPokemon party;
|
||||
}; // size: 0xEC
|
||||
} Pokemon; // size: 0xEC
|
||||
|
||||
struct SomeDrawPokemonStruct
|
||||
{
|
||||
@@ -193,12 +193,12 @@ struct Evolution
|
||||
|
||||
#define PARTY_SIZE 6
|
||||
|
||||
struct PlayerParty
|
||||
typedef struct PlayerParty
|
||||
{
|
||||
int maxCount;
|
||||
int curCount;
|
||||
struct Pokemon mons[PARTY_SIZE];
|
||||
};
|
||||
} PlayerParty;
|
||||
|
||||
void ZeroMonData(struct Pokemon * pokemon);
|
||||
void ZeroBoxMonData(struct BoxPokemon * boxmon);
|
||||
|
||||
@@ -201,6 +201,9 @@ BOOL ScrCmd_EndStarterSelectionScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_ShowBagScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_GetBagScreenSelection(ScriptContext *ctx);
|
||||
BOOL ScrCmd_NamePlayerScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_NamePokemonScreen(ScriptContext *ctx);
|
||||
BOOL ScrCmd_WriteWhiteRockInscription(ScriptContext *ctx);
|
||||
BOOL ScrCmd_Unk0243(ScriptContext *ctx);
|
||||
|
||||
// scrcmd_mart.c
|
||||
BOOL ScrCmd_NormalMart(struct ScriptContext * ctx);
|
||||
|
||||
@@ -37,6 +37,7 @@ enum NamingScreenType {
|
||||
NAMINGSCREEN_BOX,
|
||||
NAMINGSCREEN_RIVAL,
|
||||
NAMINGSCREEN_GROUP = 5,
|
||||
NAMINGSCREEN_SHAYMIN_ROCK = 6,
|
||||
};
|
||||
|
||||
void CreateNamingScreen(TaskManager *taskManager, enum NamingScreenType type, s32 param2, s32 maxLen, s32 initPos, const u16 *defaultStr, u16 *retVar);
|
||||
|
||||
Reference in New Issue
Block a user