summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/event_data.h2
-rw-r--r--include/heap.h34
-rw-r--r--include/scrcmd.h68
-rw-r--r--include/script.h33
-rw-r--r--include/unk_02015E30.h21
-rw-r--r--include/unk_02024E64.h27
6 files changed, 169 insertions, 16 deletions
diff --git a/include/event_data.h b/include/event_data.h
index e1d46348..1f0f090a 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPT_STATE_H
#define GUARD_SCRIPT_STATE_H
+#include "save_block_2.h"
+
struct ScriptState
{
u16 vars[288];
diff --git a/include/heap.h b/include/heap.h
index 6f04c5bc..69aedd9e 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -1,9 +1,37 @@
#ifndef POKEDIAMOND_HEAP_H
#define POKEDIAMOND_HEAP_H
-void * AllocFromHeap(u32 heap_id, u32 size);
-void * AllocFromHeapAtEnd(u32 heap_id, u32 size);
-void FreeToHeap(void * ptr);
+#include "global.h"
+
+struct UnkStruct_020166C8
+{
+ void **unk00;
+ void **unk04;
+ void **unk08;
+ u16 *unk0c;
+ u8 *unk10;
+ u16 unk14;
+ u16 unk16;
+ u16 unk18;
+ u16 unk1a;
+};
+
+
+THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size);
+THUMB_FUNC s32 FUN_020167F4();
+THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
+THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2);
+THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3);
+THUMB_FUNC void FUN_020168D0(u32 heap_id);
+THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3);
+THUMB_FUNC void FUN_02016988();
+void *AllocFromHeap(u32 heap_id, u32 size);
+void *AllocFromHeapAtEnd(u32 heap_id, u32 size);
+void FreeToHeap(void *ptr);
void FUN_02016A8C(u32 heap_id, void * ptr);
+THUMB_FUNC u32 FUN_02016AF8(u32 param0);
+THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2);
+THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1);
+THUMB_FUNC u32 FUN_02016B90(u32 param0);
#endif //POKEDIAMOND_HEAP_H
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);
diff --git a/include/unk_02015E30.h b/include/unk_02015E30.h
new file mode 100644
index 00000000..32a46d39
--- /dev/null
+++ b/include/unk_02015E30.h
@@ -0,0 +1,21 @@
+#ifndef POKEDIAMOND_UNK_02015E30_H
+#define POKEDIAMOND_UNK_02015E30_H
+
+#include "global.h"
+#include "igt.h"
+
+struct UnkStruct_02015E30
+{
+ u32 unk00;
+ struct IGT *unk04;
+ u64 unk08;
+ u32 unk10;
+ u32 unk14;
+ u64 unk18;
+};
+
+THUMB_FUNC void FUN_02015E30();
+THUMB_FUNC void FUN_02015E3C(struct IGT *igt);
+THUMB_FUNC void FUN_02015E60();
+
+#endif //POKEDIAMOND_UNK_02015E30_H
diff --git a/include/unk_02024E64.h b/include/unk_02024E64.h
index b5cfaa6e..ed1bd447 100644
--- a/include/unk_02024E64.h
+++ b/include/unk_02024E64.h
@@ -1,15 +1,28 @@
+#ifndef POKEDIAMOND_UNK_02024E64_H
+#define POKEDIAMOND_UNK_02024E64_H
+
#include "global.h"
#include "MI_memory.h"
#include "save_block_2.h"
#include "string16.h"
+struct UnkStruct_02024E64 {
+ u8 unk0[0xE][0x80];
+ u8 unk700[0x24];
+ u16 rival_name_buf[0x8];
+ u16 unk734[0xB];
+ u8 unk74A[2]; // might be padding
+};
+
THUMB_FUNC u32 FUN_02024E64();
-THUMB_FUNC void FUN_02024E6C(void *param0);
-THUMB_FUNC void *FUN_02024EB4(struct SaveBlock2 *sav2);
+THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0);
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2);
THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2);
-THUMB_FUNC void *FUN_02024ECC(struct SaveBlock2 *sav2);
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2);
THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2);
-THUMB_FUNC u16 *FUN_02024EE8(void *buf);
-THUMB_FUNC void FUN_02024EF4(u16 *buf, struct String *str);
-THUMB_FUNC u16 *FUN_02024F0C(void *buf);
-THUMB_FUNC void FUN_02024F18(u16 *buf, struct String *str);
+THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk);
+THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str);
+THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk);
+THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str);
+
+#endif