summaryrefslogtreecommitdiff
path: root/src/field
diff options
context:
space:
mode:
Diffstat (limited to 'src/field')
-rw-r--r--src/field/daycare.c89
-rw-r--r--src/field/item.c308
2 files changed, 160 insertions, 237 deletions
diff --git a/src/field/daycare.c b/src/field/daycare.c
index 2f0c7281e..da0838d29 100644
--- a/src/field/daycare.c
+++ b/src/field/daycare.c
@@ -1574,102 +1574,23 @@ void SetDaycareCompatibilityString(void)
StringCopy(gStringVar4, sCompatibilityMessages[whichString]);
}
-#ifdef NONMATCHING
bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
{
u8 i;
u8 flags[2];
- // This portion is nonmatching
- flags[1] = 0;
- flags[0] = 0;
+ flags[0] = flags[1] = 0;
for (i = 0; name[i] != EOS; i++)
- // End nonmatching portion
-
{
if (name[i] == CHAR_MALE) flags[0]++;
if (name[i] == CHAR_FEMALE) flags[1]++;
}
- if (genderRatio == MON_MALE && flags[0] && !flags[1]) return TRUE;
- if (genderRatio == MON_FEMALE && flags[1] && !flags[0]) return TRUE;
+ if (genderRatio == MON_MALE && flags[0] && !flags[1])
+ return TRUE;
+ if (genderRatio == MON_FEMALE && flags[1] && !flags[0])
+ return TRUE;
return FALSE;
}
-#else
-__attribute__((naked))
-bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
-{
- asm_unified("\n"
- "\tpush {r4,r5,lr}\n"
- "\tsub sp, 0x4\n"
- "\tadds r4, r0, 0\n"
- "\tlsls r1, 24\n"
- "\tlsrs r5, r1, 24\n"
- "\tmov r2, sp\n"
- "\tmov r1, sp\n"
- "\tmovs r0, 0\n"
- "\tstrb r0, [r1, 0x1]\n"
- "\tstrb r0, [r2]\n"
- "\tmovs r3, 0\n"
- "\tldrb r0, [r4]\n"
- "\tcmp r0, 0xFF\n"
- "\tbeq _0804258C\n"
- "_08042564:\n"
- "\tadds r1, r4, r3\n"
- "\tldrb r0, [r1]\n"
- "\tcmp r0, 0xB5\n"
- "\tbne _08042572\n"
- "\tldrb r0, [r2]\n"
- "\tadds r0, 0x1\n"
- "\tstrb r0, [r2]\n"
- "_08042572:\n"
- "\tldrb r0, [r1]\n"
- "\tcmp r0, 0xB6\n"
- "\tbne _0804257E\n"
- "\tldrb r0, [r2, 0x1]\n"
- "\tadds r0, 0x1\n"
- "\tstrb r0, [r2, 0x1]\n"
- "_0804257E:\n"
- "\tadds r0, r3, 0x1\n"
- "\tlsls r0, 24\n"
- "\tlsrs r3, r0, 24\n"
- "\tadds r0, r4, r3\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _08042564\n"
- "_0804258C:\n"
- "\tcmp r5, 0\n"
- "\tbne _080425A0\n"
- "\tmov r0, sp\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbeq _080425A0\n"
- "\tmov r0, sp\n"
- "\tldrb r0, [r0, 0x1]\n"
- "\tcmp r0, 0\n"
- "\tbeq _080425B4\n"
- "_080425A0:\n"
- "\tcmp r5, 0xFE\n"
- "\tbne _080425B8\n"
- "\tmov r0, sp\n"
- "\tldrb r0, [r0, 0x1]\n"
- "\tcmp r0, 0\n"
- "\tbeq _080425B8\n"
- "\tmov r0, sp\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbne _080425B8\n"
- "_080425B4:\n"
- "\tmovs r0, 0x1\n"
- "\tb _080425BA\n"
- "_080425B8:\n"
- "\tmovs r0, 0\n"
- "_080425BA:\n"
- "\tadd sp, 0x4\n"
- "\tpop {r4,r5}\n"
- "\tpop {r1}\n"
- "\tbx r1");
-}
-#endif
static u8 *AppendGenderSymbol(u8 *name, u8 gender)
{
diff --git a/src/field/item.c b/src/field/item.c
index 6ff7a7cbe..78f5ce12d 100644
--- a/src/field/item.c
+++ b/src/field/item.c
@@ -2,12 +2,14 @@
#include "constants/hold_effects.h"
#include "item.h"
#include "constants/items.h"
+#include "item_menu.h"
#include "item_use.h"
#include "berry.h"
#include "string_util.h"
#include "strings.h"
extern u8 gUnknown_02038560;
+extern struct BagPocket gBagPockets[NUM_BAG_POCKETS];
// These constants are used in gItems
enum
@@ -151,7 +153,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
// This function matches if gBagPockets is declared non-const,
// but it should be fixed anyway.
-#ifdef NONMATCHING
+//#ifdef NONMATCHING
bool8 AddBagItem(u16 itemId, u16 count)
{
u8 i;
@@ -216,158 +218,158 @@ bool8 AddBagItem(u16 itemId, u16 count)
memcpy(gBagPockets[pocket].itemSlots, newItems, gBagPockets[pocket].capacity * sizeof(struct ItemSlot));
return TRUE;
}
-#else
-__attribute__((naked))
-bool8 AddBagItem(u16 itemId, u16 count)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- sub sp, 0x100\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r8, r0\n\
- lsls r1, 16\n\
- lsrs r4, r1, 16\n\
- bl ItemId_GetPocket\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080A9510\n\
- mov r0, r8\n\
- bl ItemId_GetPocket\n\
- subs r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- ldr r1, _080A94F8 @ =gBagPockets\n\
- lsls r0, r6, 3\n\
- adds r5, r0, r1\n\
- ldr r1, [r5]\n\
- ldrb r2, [r5, 0x4]\n\
- lsls r2, 2\n\
- mov r0, sp\n\
- bl memcpy\n\
- ldr r7, _080A94FC @ =0x000003e7\n\
- cmp r6, 0x3\n\
- beq _080A9468\n\
- movs r7, 0x63\n\
-_080A9468:\n\
- movs r1, 0\n\
- ldrb r0, [r5, 0x4]\n\
- cmp r1, r0\n\
- bcs _080A94B2\n\
- subs r0, r6, 0x2\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r12, r0\n\
-_080A9478:\n\
- lsls r0, r1, 2\n\
- mov r2, sp\n\
- adds r3, r2, r0\n\
- ldrh r0, [r3]\n\
- cmp r0, r8\n\
- bne _080A94A6\n\
- ldrh r2, [r3, 0x2]\n\
- adds r0, r2, r4\n\
- cmp r0, r7\n\
- ble _080A9500\n\
- mov r0, r12\n\
- cmp r0, 0x1\n\
- bls _080A9510\n\
- subs r0, r7, r2\n\
- subs r0, r4, r0\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- strh r7, [r3, 0x2]\n\
- ldr r2, _080A94F8 @ =gBagPockets\n\
- mov r9, r2\n\
- lsls r3, r6, 3\n\
- cmp r4, 0\n\
- beq _080A9516\n\
-_080A94A6:\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- ldrb r0, [r5, 0x4]\n\
- cmp r1, r0\n\
- bcc _080A9478\n\
-_080A94B2:\n\
- ldr r2, _080A94F8 @ =gBagPockets\n\
- mov r9, r2\n\
- lsls r3, r6, 3\n\
- cmp r4, 0\n\
- beq _080A9516\n\
- movs r1, 0\n\
- adds r0, r3, r2\n\
- ldrb r0, [r0, 0x4]\n\
- cmp r1, r0\n\
- bcs _080A94F2\n\
- mov r6, r9\n\
- adds r5, r3, r6\n\
-_080A94CA:\n\
- lsls r0, r1, 2\n\
- mov r6, sp\n\
- adds r2, r6, r0\n\
- ldrh r0, [r2]\n\
- cmp r0, 0\n\
- bne _080A94E6\n\
- mov r0, r8\n\
- strh r0, [r2]\n\
- cmp r4, r7\n\
- bls _080A9514\n\
- subs r0, r4, r7\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- strh r7, [r2, 0x2]\n\
-_080A94E6:\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- ldrb r2, [r5, 0x4]\n\
- cmp r1, r2\n\
- bcc _080A94CA\n\
-_080A94F2:\n\
- cmp r4, 0\n\
- beq _080A9516\n\
- b _080A9510\n\
- .align 2, 0\n\
-_080A94F8: .4byte gBagPockets\n\
-_080A94FC: .4byte 0x000003e7\n\
-_080A9500:\n\
- strh r0, [r3, 0x2]\n\
- ldr r0, _080A950C @ =gBagPockets\n\
- lsls r1, r6, 3\n\
- adds r1, r0\n\
- b _080A951A\n\
- .align 2, 0\n\
-_080A950C: .4byte gBagPockets\n\
-_080A9510:\n\
- movs r0, 0\n\
- b _080A9528\n\
-_080A9514:\n\
- strh r4, [r2, 0x2]\n\
-_080A9516:\n\
- mov r6, r9\n\
- adds r1, r3, r6\n\
-_080A951A:\n\
- ldr r0, [r1]\n\
- ldrb r2, [r1, 0x4]\n\
- lsls r2, 2\n\
- mov r1, sp\n\
- bl memcpy\n\
- movs r0, 0x1\n\
-_080A9528:\n\
- add sp, 0x100\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
+//#else
+//__attribute__((naked))
+//bool8 AddBagItem(u16 itemId, u16 count)
+//{
+// asm(".syntax unified\n\
+// push {r4-r7,lr}\n\
+// mov r7, r9\n\
+// mov r6, r8\n\
+// push {r6,r7}\n\
+// sub sp, 0x100\n\
+// lsls r0, 16\n\
+// lsrs r0, 16\n\
+// mov r8, r0\n\
+// lsls r1, 16\n\
+// lsrs r4, r1, 16\n\
+// bl ItemId_GetPocket\n\
+// lsls r0, 24\n\
+// cmp r0, 0\n\
+// beq _080A9510\n\
+// mov r0, r8\n\
+// bl ItemId_GetPocket\n\
+// subs r0, 0x1\n\
+// lsls r0, 24\n\
+// lsrs r6, r0, 24\n\
+// ldr r1, _080A94F8 @ =gBagPockets\n\
+// lsls r0, r6, 3\n\
+// adds r5, r0, r1\n\
+// ldr r1, [r5]\n\
+// ldrb r2, [r5, 0x4]\n\
+// lsls r2, 2\n\
+// mov r0, sp\n\
+// bl memcpy\n\
+// ldr r7, _080A94FC @ =0x000003e7\n\
+// cmp r6, 0x3\n\
+// beq _080A9468\n\
+// movs r7, 0x63\n\
+//_080A9468:\n\
+// movs r1, 0\n\
+// ldrb r0, [r5, 0x4]\n\
+// cmp r1, r0\n\
+// bcs _080A94B2\n\
+// subs r0, r6, 0x2\n\
+// lsls r0, 24\n\
+// lsrs r0, 24\n\
+// mov r12, r0\n\
+//_080A9478:\n\
+// lsls r0, r1, 2\n\
+// mov r2, sp\n\
+// adds r3, r2, r0\n\
+// ldrh r0, [r3]\n\
+// cmp r0, r8\n\
+// bne _080A94A6\n\
+// ldrh r2, [r3, 0x2]\n\
+// adds r0, r2, r4\n\
+// cmp r0, r7\n\
+// ble _080A9500\n\
+// mov r0, r12\n\
+// cmp r0, 0x1\n\
+// bls _080A9510\n\
+// subs r0, r7, r2\n\
+// subs r0, r4, r0\n\
+// lsls r0, 16\n\
+// lsrs r4, r0, 16\n\
+// strh r7, [r3, 0x2]\n\
+// ldr r2, _080A94F8 @ =gBagPockets\n\
+// mov r9, r2\n\
+// lsls r3, r6, 3\n\
+// cmp r4, 0\n\
+// beq _080A9516\n\
+//_080A94A6:\n\
+// adds r0, r1, 0x1\n\
+// lsls r0, 24\n\
+// lsrs r1, r0, 24\n\
+// ldrb r0, [r5, 0x4]\n\
+// cmp r1, r0\n\
+// bcc _080A9478\n\
+//_080A94B2:\n\
+// ldr r2, _080A94F8 @ =gBagPockets\n\
+// mov r9, r2\n\
+// lsls r3, r6, 3\n\
+// cmp r4, 0\n\
+// beq _080A9516\n\
+// movs r1, 0\n\
+// adds r0, r3, r2\n\
+// ldrb r0, [r0, 0x4]\n\
+// cmp r1, r0\n\
+// bcs _080A94F2\n\
+// mov r6, r9\n\
+// adds r5, r3, r6\n\
+//_080A94CA:\n\
+// lsls r0, r1, 2\n\
+// mov r6, sp\n\
+// adds r2, r6, r0\n\
+// ldrh r0, [r2]\n\
+// cmp r0, 0\n\
+// bne _080A94E6\n\
+// mov r0, r8\n\
+// strh r0, [r2]\n\
+// cmp r4, r7\n\
+// bls _080A9514\n\
+// subs r0, r4, r7\n\
+// lsls r0, 16\n\
+// lsrs r4, r0, 16\n\
+// strh r7, [r2, 0x2]\n\
+//_080A94E6:\n\
+// adds r0, r1, 0x1\n\
+// lsls r0, 24\n\
+// lsrs r1, r0, 24\n\
+// ldrb r2, [r5, 0x4]\n\
+// cmp r1, r2\n\
+// bcc _080A94CA\n\
+//_080A94F2:\n\
+// cmp r4, 0\n\
+// beq _080A9516\n\
+// b _080A9510\n\
+// .align 2, 0\n\
+//_080A94F8: .4byte gBagPockets\n\
+//_080A94FC: .4byte 0x000003e7\n\
+//_080A9500:\n\
+// strh r0, [r3, 0x2]\n\
+// ldr r0, _080A950C @ =gBagPockets\n\
+// lsls r1, r6, 3\n\
+// adds r1, r0\n\
+// b _080A951A\n\
+// .align 2, 0\n\
+//_080A950C: .4byte gBagPockets\n\
+//_080A9510:\n\
+// movs r0, 0\n\
+// b _080A9528\n\
+//_080A9514:\n\
+// strh r4, [r2, 0x2]\n\
+//_080A9516:\n\
+// mov r6, r9\n\
+// adds r1, r3, r6\n\
+//_080A951A:\n\
+// ldr r0, [r1]\n\
+// ldrb r2, [r1, 0x4]\n\
+// lsls r2, 2\n\
+// mov r1, sp\n\
+// bl memcpy\n\
+// movs r0, 0x1\n\
+//_080A9528:\n\
+// add sp, 0x100\n\
+// pop {r3,r4}\n\
+// mov r8, r3\n\
+// mov r9, r4\n\
+// pop {r4-r7}\n\
+// pop {r1}\n\
+// bx r1\n\
+// .syntax divided\n");
+//}
+//#endif
bool8 RemoveBagItem(u16 itemId, u16 count)
{