mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-23 17:25:08 -05:00
Decompile scrcmd_22 -> scrcmd_items
This commit is contained in:
@@ -174,7 +174,7 @@ Static arm9
|
||||
Object scrcmd_19.o
|
||||
Object scrcmd_20.o
|
||||
Object scrcmd_21.o
|
||||
Object scrcmd_22.o
|
||||
Object scrcmd_items.o
|
||||
Object scrcmd_23.o
|
||||
Object scrcmd_24.o
|
||||
Object scrcmd_25.o
|
||||
|
||||
@@ -1,220 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_02045784
|
||||
FUN_02045784: ; 0x02045784
|
||||
push {r3-r7, lr}
|
||||
add r4, r0, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r1, #0x80
|
||||
ldr r5, [r1, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r7, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r4, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_Bag_get
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
mov r3, #0x4
|
||||
bl Bag_AddItem
|
||||
strh r0, [r4, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_020457DC
|
||||
FUN_020457DC: ; 0x020457DC
|
||||
push {r3-r7, lr}
|
||||
add r4, r0, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r1, #0x80
|
||||
ldr r5, [r1, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r7, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r4, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_Bag_get
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
mov r3, #0x4
|
||||
bl Bag_TakeItem
|
||||
strh r0, [r4, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_02045834
|
||||
FUN_02045834: ; 0x02045834
|
||||
push {r3-r7, lr}
|
||||
add r4, r0, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r1, #0x80
|
||||
ldr r5, [r1, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r7, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r4, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_Bag_get
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
mov r3, #0x4
|
||||
bl Bag_HasSpaceForItem
|
||||
strh r0, [r4, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_0204588C
|
||||
FUN_0204588C: ; 0x0204588C
|
||||
push {r3-r7, lr}
|
||||
add r4, r0, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r1, #0x80
|
||||
ldr r5, [r1, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r6, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl VarGet
|
||||
add r7, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r4, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r4, #0x0]
|
||||
bl GetVarPointer
|
||||
add r4, r0, #0x0
|
||||
ldr r0, [r5, #0xc]
|
||||
bl Sav2_Bag_get
|
||||
add r1, r6, #0x0
|
||||
add r2, r7, #0x0
|
||||
mov r3, #0xb
|
||||
bl Bag_HasItem
|
||||
strh r0, [r4, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start FUN_020458E4
|
||||
FUN_020458E4: ; 0x020458E4
|
||||
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 r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r5, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
bl GetVarPointer
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl FUN_02054CB0
|
||||
strh r0, [r5, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start FUN_02045918
|
||||
FUN_02045918: ; 0x02045918
|
||||
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 r4, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r5, #0x80
|
||||
add r1, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
bl GetVarPointer
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x5
|
||||
mov r2, #0xb
|
||||
bl GetItemAttr
|
||||
strh r0, [r5, #0x0]
|
||||
mov r0, #0x0
|
||||
pop {r3-r5, pc}
|
||||
|
||||
thumb_func_start FUN_02045950
|
||||
FUN_02045950: ; 0x02045950
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
|
||||
thumb_func_start FUN_02045954
|
||||
FUN_02045954: ; 0x02045954
|
||||
mov r0, #0x0
|
||||
bx lr
|
||||
@@ -272,14 +272,14 @@ gScriptCmdTable: ; 0x020F355C
|
||||
.word ScrCmd_GetCoins
|
||||
.word ScrCmd_GiveCoins
|
||||
.word ScrCmd_TakeCoinsImmediate
|
||||
.word FUN_02045784
|
||||
.word FUN_020457DC
|
||||
.word FUN_02045834
|
||||
.word FUN_0204588C
|
||||
.word FUN_020458E4
|
||||
.word FUN_02045918
|
||||
.word FUN_02045950
|
||||
.word FUN_02045954
|
||||
.word ScrCmd_GiveItem
|
||||
.word ScrCmd_TakeItem
|
||||
.word ScrCmd_HasSpaceForItem
|
||||
.word ScrCmd_HasItem
|
||||
.word ScrCmd_ItemIdIsTMOrHM
|
||||
.word ScrCmd_GetItemPocketId
|
||||
.word ScrCmd_Unk0081
|
||||
.word ScrCmd_Unk0082
|
||||
.word FUN_02045958
|
||||
.word FUN_020459AC
|
||||
.word FUN_020459E8
|
||||
|
||||
@@ -3378,14 +3378,14 @@
|
||||
.extern FUN_02045678
|
||||
.extern FUN_020456D4
|
||||
.extern FUN_0204572C
|
||||
.extern FUN_02045784
|
||||
.extern FUN_020457DC
|
||||
.extern FUN_02045834
|
||||
.extern FUN_0204588C
|
||||
.extern FUN_020458E4
|
||||
.extern FUN_02045918
|
||||
.extern FUN_02045950
|
||||
.extern FUN_02045954
|
||||
.extern ScrCmd_GiveItem
|
||||
.extern ScrCmd_TakeItem
|
||||
.extern ScrCmd_HasSpaceForItem
|
||||
.extern ScrCmd_HasItem
|
||||
.extern ScrCmd_ItemIdIsTMOrHM
|
||||
.extern ScrCmd_GetItemPocketId
|
||||
.extern ScrCmd_Unk0081
|
||||
.extern ScrCmd_Unk0082
|
||||
.extern FUN_02045958
|
||||
.extern FUN_020459AC
|
||||
.extern FUN_020459E8
|
||||
|
||||
96
arm9/src/scrcmd_items.c
Normal file
96
arm9/src/scrcmd_items.c
Normal file
@@ -0,0 +1,96 @@
|
||||
#include "scrcmd.h"
|
||||
#include "bag.h"
|
||||
|
||||
extern BOOL FUN_02054CB0(u16 item_id);
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_GiveItem(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* item_was_added = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
|
||||
|
||||
*item_was_added = (u16)Bag_AddItem(bag, item_id, quantity, 4);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TakeItem(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* item_was_taken = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
|
||||
|
||||
*item_was_taken = (u16)Bag_TakeItem(bag, item_id, quantity, 4);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_HasSpaceForItem(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* has_space = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
|
||||
|
||||
*has_space = (u16)Bag_HasSpaceForItem(bag, item_id, quantity, 4);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_HasItem(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* has_item = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
|
||||
|
||||
*has_item = (u16)Bag_HasItem(bag, item_id, quantity, 11);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_ItemIdIsTMOrHM(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* is_tm_or_hm = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
|
||||
*is_tm_or_hm = (u16)FUN_02054CB0(item_id);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx)
|
||||
{
|
||||
struct UnkSavStruct80* sav_ptr = ctx->unk80;
|
||||
|
||||
u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* pocket = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
|
||||
*pocket = (u16)GetItemAttr(item_id, ITEMATTR_POCKET, 11);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_Unk0081(struct ScriptContext* ctx)
|
||||
{
|
||||
#pragma unused(ctx)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_Unk0082(struct ScriptContext* ctx)
|
||||
{
|
||||
#pragma unused(ctx)
|
||||
return FALSE;
|
||||
}
|
||||
@@ -134,6 +134,16 @@ BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx);
|
||||
//scrcmd_20.c
|
||||
BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx);
|
||||
|
||||
//scrcmd_items.c
|
||||
BOOL ScrCmd_GiveItem(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_TakeItem(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_HasSpaceForItem(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_HasItem(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_ItemIdIsTMOrHM(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_Unk0081(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_Unk0082(struct ScriptContext* ctx);
|
||||
|
||||
//scrcmd_25.c
|
||||
BOOL ScrCmd_Unk02EF(struct ScriptContext* ctx);
|
||||
BOOL ScrCmd_Unk02F0(struct ScriptContext* ctx);
|
||||
|
||||
Reference in New Issue
Block a user