summaryrefslogtreecommitdiff
path: root/arm9/src/scrcmd_18_c.c
diff options
context:
space:
mode:
authorultima-soul <akshayjhanji@hotmail.com>2020-08-26 00:23:47 -0700
committerultima-soul <akshayjhanji@hotmail.com>2020-08-26 00:23:47 -0700
commitac696c3c3921ad89bf0e98043f9e03a25af9094e (patch)
treed7dec04dd1ff67c9dfe688f1d947966d6f44d636 /arm9/src/scrcmd_18_c.c
parent49e32814a3d7ba8a8a7e441a53d1a1c0ccd1f3fe (diff)
Decompile script_pokemon_util through GiveMon and scrcmd_18 through ScrCmd_givemon.
Diffstat (limited to 'arm9/src/scrcmd_18_c.c')
-rw-r--r--arm9/src/scrcmd_18_c.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arm9/src/scrcmd_18_c.c b/arm9/src/scrcmd_18_c.c
new file mode 100644
index 00000000..e4f950c5
--- /dev/null
+++ b/arm9/src/scrcmd_18_c.c
@@ -0,0 +1,23 @@
+#include "global.h"
+#include "script.h"
+#include "party.h"
+#include "save_block_2.h"
+#include "unk_0204639C.h"
+#include "map_header.h"
+
+extern u16 VarGet(struct UnkStruct_0204639C* arg, u16 wk);
+extern u16 *GetVarPointer(struct UnkStruct_0204639C* arg, u16);
+extern BOOL GiveMon(u32 heap_id, struct SaveBlock2 * sav2, u16 species, u8 level, u16 item, u32 mapSec, u8 encounterType);
+
+THUMB_FUNC BOOL ScrCmd_givemon(struct ScriptContext* ctx)
+{
+ u32 mapSec = FUN_02034824(*(ctx->unk80->unk1C));
+ struct UnkStruct_0204639C *savePtr = ctx->unk80;
+ u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 level = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 * varPtr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty * party = SavArray_PlayerParty_get((struct SaveBlock2 *) savePtr->unkC);
+ *varPtr = GiveMon(11, (struct SaveBlock2 *) savePtr->unkC, species, level, item, mapSec, 12);
+ return FALSE;
+} \ No newline at end of file