summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRevo <projectrevotpp@hotmail.com>2021-03-18 13:19:19 -0400
committerGitHub <noreply@github.com>2021-03-18 13:19:19 -0400
commitb13eae28b3f8124dc43f185d1e9bdf17b84c4084 (patch)
treed15acd93b1d107a3535d965c46384606afd86d97 /include
parent941451f6408b8f92f9e7f5f3d6650f1b2ad2293d (diff)
parent1d566ba7cf311dc85aecd43592724ce00bd73d93 (diff)
Merge pull request #329 from red031000/master
start of scrcmd decomp (PR so CE can use the correct types)
Diffstat (limited to 'include')
-rw-r--r--include/scrcmd.h68
-rw-r--r--include/script.h33
2 files changed, 95 insertions, 6 deletions
diff --git a/include/scrcmd.h b/include/scrcmd.h
index 5ebec947..f40f7841 100644
--- a/include/scrcmd.h
+++ b/include/scrcmd.h
@@ -1,6 +1,72 @@
#ifndef POKEDIAMOND_SCRCMD_H
#define POKEDIAMOND_SCRCMD_H
-BOOL ScrCmd_givemon(struct ScriptContext* ctx);
+#include "global.h"
+#include "script.h"
+
+struct UnkStruct_0203A288 {
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 padding[1];
+};
+
+//scrcmd.c
+BOOL ScrCmd_Nop(struct ScriptContext* ctx);
+BOOL ScrCmd_Dummy(struct ScriptContext* ctx);
+BOOL ScrCmd_End(struct ScriptContext* ctx);
+BOOL ScrCmd_Wait(struct ScriptContext* ctx);
+BOOL ScrCmd_DebugWatch(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadByte(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadWord(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadByteFromAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_WriteByteToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_SetPtrByte(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyByte(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareVarToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareVarToVar(struct ScriptContext* ctx);
+BOOL ScrCmd_RunScript(struct ScriptContext* ctx);
+BOOL ScrCmd_RunScriptWait(struct ScriptContext* ctx);
+BOOL ScrCmd_RestartCurrentScript(struct ScriptContext* ctx);
+BOOL ScrCmd_GoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_ObjectGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_BgGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_DirectionGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_Call(struct ScriptContext* ctx);
+BOOL ScrCmd_Return(struct ScriptContext* ctx);
+BOOL ScrCmd_GoToIf(struct ScriptContext* ctx);
+BOOL ScrCmd_CallIf(struct ScriptContext* ctx);
+BOOL ScrCmd_SetFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_ClearFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckFlagVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetFlagVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_ClearTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_AddVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SubVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetVar(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetOrCopyVar(struct ScriptContext* ctx);
+BOOL ScrCmd_Message(struct ScriptContext* ctx);
+BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx);
+BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk026D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk002C(struct ScriptContext* ctx);
+
+//scrcmd_18.c
+BOOL ScrCmd_GiveMon(struct ScriptContext* ctx);
#endif //POKEDIAMOND_SCRCMD_H
diff --git a/include/script.h b/include/script.h
index 8fd7696f..5da251b5 100644
--- a/include/script.h
+++ b/include/script.h
@@ -10,28 +10,51 @@ struct ScriptContext;
typedef u8 (*ScrCmdFunc)(struct ScriptContext *);
typedef u8 Script[];
+
+struct UnkStruct_020464D4
+{
+ u16 unk0[4];
+ u8 padding[0x108];
+};
+
+struct UnkStruct_02046444
+{
+ u8 padding[0x90];
+ struct UnkStruct_020464D4 unk90[1]; //todo find size
+};
+
+struct UnkSavStruct80
+{
+ u8 padding[0xC];
+ struct SaveBlock2 *saveBlock2;
+ u8 padding2[0xC];
+ u32 *mapId;
+ u8 padding3[0x88];
+ struct UnkStruct_02046444 * unkA8;
+};
+
struct ScriptContext
{
u8 stackDepth;
u8 mode;
u8 comparisonResult;
- u8 (*nativePtr)(struct ScriptContext *);
+ BOOL (*nativePtr)(struct ScriptContext *);
const u8 *scriptPtr;
const u8 *stack[20];
ScrCmdFunc *cmdTable;
u32 cmdCount;
u32 data[4];
- u32 unk74;
- struct MsgData * unk78;
+ struct UnkStruct_0204639C * unk74;
+ struct MsgData * msgData;
u8 *unk7C;
- struct UnkStruct_0204639C * unk80;
+ struct UnkSavStruct80 * unk80;
};
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, u32 cmdCount);
u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
-void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *));
+void SetupNativeScript(struct ScriptContext *ctx, BOOL (*ptr)(struct ScriptContext *));
void StopScript(struct ScriptContext *ctx);
void FUN_02038B6C(struct ScriptContext *ctx, s32 r1);
u8 RunScriptCommand(struct ScriptContext *ctx);