mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
more item work
This commit is contained in:
parent
2a478bc062
commit
751aa84dee
|
|
@ -68,45 +68,3 @@ _0200EBB8:
|
|||
_0200EBC8: .word BABY_EXCLUSIVE_ITEM_PAIRS
|
||||
arm_func_end ReturnEggExclusiveItem
|
||||
|
||||
arm_func_start SetActiveInventoryToMain
|
||||
SetActiveInventoryToMain: ; 0x0200EBCC
|
||||
ldr ip, _0200EBD8 ; =SetActiveInventory
|
||||
mov r0, #0
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0200EBD8: .word SetActiveInventory
|
||||
arm_func_end SetActiveInventoryToMain
|
||||
|
||||
arm_func_start AllInventoriesZInit
|
||||
AllInventoriesZInit: ; 0x0200EBDC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, #0
|
||||
ldr r6, _0200EC44 ; =BAG_ITEMS_PTR_MIRROR
|
||||
mov r7, sl
|
||||
mov fp, sl
|
||||
mov r4, #6
|
||||
mov r5, #0x12c
|
||||
_0200EBF8:
|
||||
mul sb, sl, r5
|
||||
mov r8, fp
|
||||
_0200EC00:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, sb
|
||||
mla r0, r8, r4, r0
|
||||
bl ItemZInit
|
||||
add r8, r8, #1
|
||||
cmp r8, #0x32
|
||||
blt _0200EC00
|
||||
ldr r0, [r6]
|
||||
add r0, r0, sl, lsl #2
|
||||
add r0, r0, #0x1000
|
||||
add sl, sl, #1
|
||||
str r7, [r0, #0x394]
|
||||
cmp sl, #3
|
||||
blt _0200EBF8
|
||||
mov r0, r7
|
||||
bl SetActiveInventory
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
.align 2, 0
|
||||
_0200EC44: .word BAG_ITEMS_PTR_MIRROR
|
||||
arm_func_end AllInventoriesZInit
|
||||
|
|
|
|||
|
|
@ -1641,17 +1641,18 @@ struct bag_items_inner {
|
|||
#define MAIN_INVENTORY_INDEX 0
|
||||
#define SPECIAL_EPISODE_INVENTORY_INDEX 1
|
||||
#define RESCUE_INVENTORY_INDEX 2
|
||||
#define NUM_INVENTORIES 3
|
||||
|
||||
struct bag_items {
|
||||
// Indexes:
|
||||
// 0x0 - Main, default
|
||||
// 0x1 - Special Episode
|
||||
// 0x2 - Rescue
|
||||
/* 0x0 */ struct bag_items_inner inventories[3];
|
||||
/* 0x0 */ struct bag_items_inner inventories[NUM_INVENTORIES];
|
||||
/* 0x384 */ struct bag_items_inner *bag_items;
|
||||
/* 0x388 */ u8 active_inventory_idx;
|
||||
u8 fill2[0x1009];
|
||||
u32 maybeMoney[3]; // indexed with an u8, uses same indexes as Inventory
|
||||
u32 maybeMoney[NUM_INVENTORIES]; // indexed with an u8, uses same indexes as Inventory
|
||||
};
|
||||
|
||||
struct bulk_item
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
#ifndef PMDSKY_MAIN_0200ECFC_H
|
||||
#define PMDSKY_MAIN_0200ECFC_H
|
||||
|
||||
// Set the active inventory to the main inventory
|
||||
void SetActiveInventoryToMain(void);
|
||||
|
||||
// Init all inventories, all money the player is carrying, and set default active inventory
|
||||
void AllInventoriesZInit(void);
|
||||
|
||||
// Init the special episode inventory and money the player is carrying
|
||||
void SpecialEpisodeInventoryZInit(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,28 @@ extern struct bag_items* BAG_ITEMS_PTR_MIRROR;
|
|||
|
||||
extern void ItemZInit(struct item *item);
|
||||
|
||||
void SetActiveInventoryToMain(void)
|
||||
{
|
||||
SetActiveInventory(MAIN_INVENTORY_INDEX);
|
||||
}
|
||||
|
||||
void AllInventoriesZInit(void)
|
||||
{
|
||||
for(int inventory_index = MAIN_INVENTORY_INDEX; inventory_index < NUM_INVENTORIES; inventory_index++)
|
||||
{
|
||||
for(int bag_index = 0; bag_index < INVENTORY_SIZE - 2; bag_index++)
|
||||
{
|
||||
ItemZInit(&BAG_ITEMS_PTR_MIRROR->inventories[inventory_index].bag_items[bag_index]);
|
||||
}
|
||||
BAG_ITEMS_PTR_MIRROR->maybeMoney[inventory_index] = 0;
|
||||
}
|
||||
|
||||
SetActiveInventory(MAIN_INVENTORY_INDEX);
|
||||
}
|
||||
|
||||
void SpecialEpisodeInventoryZInit(void)
|
||||
{
|
||||
for(s32 index = 0; index < INVENTORY_SIZE - 2; index++)
|
||||
for(int index = 0; index < INVENTORY_SIZE - 2; index++)
|
||||
{
|
||||
ItemZInit(&BAG_ITEMS_PTR_MIRROR->inventories[SPECIAL_EPISODE_INVENTORY_INDEX].bag_items[index]);
|
||||
}
|
||||
|
|
@ -17,7 +36,7 @@ void SpecialEpisodeInventoryZInit(void)
|
|||
|
||||
void RescueInventoryZInit(void)
|
||||
{
|
||||
for(s32 index = 0; index < INVENTORY_SIZE - 2; index++)
|
||||
for(int index = 0; index < INVENTORY_SIZE - 2; index++)
|
||||
{
|
||||
ItemZInit(&BAG_ITEMS_PTR_MIRROR->inventories[RESCUE_INVENTORY_INDEX].bag_items[index]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user