diff options
| author | Henny022p <info@henny022.de> | 2022-02-03 05:44:50 +0100 |
|---|---|---|
| committer | Henny022p <info@henny022.de> | 2022-02-03 05:52:50 +0100 |
| commit | bbc3a8841596de1fc7f034953df9c844ec805033 (patch) | |
| tree | 2b3a624ea1f67bd1b83d3aa25b75cfe7c2f672bf /src | |
| parent | 67d369c53becab9c5efbe5d3daba0373ef1b4106 (diff) | |
CreateRandomDrop and droptables
Diffstat (limited to 'src')
| -rw-r--r-- | src/code_0805436C.c | 155 | ||||
| -rw-r--r-- | src/droptables.c | 1128 | ||||
| -rw-r--r-- | src/npc/percy.c | 2 | ||||
| -rw-r--r-- | src/object/mask.c | 2 | ||||
| -rw-r--r-- | src/playerItemUtils.c | 2 | ||||
| -rw-r--r-- | src/roomInit.c | 2 |
6 files changed, 1256 insertions, 35 deletions
diff --git a/src/code_0805436C.c b/src/code_0805436C.c index abf54825..1e6a0243 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -8,6 +8,7 @@ #include "item.h" #include "object.h" #include "enemy.h" +#include "droptables.h" typedef struct { u8 unk; @@ -18,9 +19,8 @@ extern struct_080FD5B4 gUnk_080FD5B4[]; extern u8 gUnk_0200AF13; extern u8 gUnk_0200AF14; -extern u32 gUnk_080015BC; extern u8 gUnk_080FE1C6[]; -extern u32 gUnk_02034398; +extern Droptable gUnk_02034398; extern void (*const gUnk_080FE2A0[])(void); void ForceEquipItem(u32, u8); @@ -79,7 +79,6 @@ void PutItemOnSlot(u32 itemID) { ASM_FUNC("asm/non_matching/ForceEquipItem.inc", void ForceEquipItem(u32 itemID, u8 itemSlot)) u32 SetBottleContents(u32 itemID, u32 bottleIndex) { - if (bottleIndex > 3) { bottleIndex = 0; if (gSave.stats.bottles[0] != 0x20) { @@ -159,7 +158,7 @@ NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) { bVar1 = 0; } - MemCopy(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20); + MemCopy(&gUnk_080015BC[0] + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20); } END_NONMATCH @@ -171,68 +170,162 @@ void sub_08054570(void) { gRoomVars.field_0x2 = 0; } -ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1)); +// BUG? +extern const Droptable gUnk_080014e4[]; +extern void sub_08000F14(s16*, const s16*, const s16*, const s16*); +extern u32 sub_08000F2C(s16*, const s16*, const s16*, const s16*); +u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter); +u32 CreateRandomItemDrop(Entity* arg0, u32 arg1) { + extern const u8 gUnk_080FE1B4[]/* = { + ITEM_NONE, ITEM_RUPEE1, ITEM_RUPEE5, ITEM_RUPEE20, ITEM_HEART, ITEM_FAIRY, + ITEM_BOMBS5, ITEM_ARROWS5, ITEM_SHELLS, ITEM_KINSTONE_GREEN, ITEM_KINSTONE_BLUE, ITEM_KINSTONE_RED, + ITEM_ENEMY_BEETLE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, + }*/; + + int r0, r1, r2, r4, r5; + u32 r3; + const Droptable *ptr2, *ptr3, *ptr4; + Droptable s0; + r3 = arg1; + if (gRoomVars.field_0x2 != 1) { + ptr2 = &gUnk_08001A1C[0]; + ptr4 = 0; + switch (r3) { + case 1 ... 12: + ptr4 = &gUnk_0800137C[r3]; + break; +#ifndef EU + case 24: + case 25: + r0 = gRoomVars.unk2; + ptr4 = &gUnk_0800191C[0]; + if (r0) { + ptr4++; + } + break; +#endif + case 16 ... 23: +#ifdef EU + case 24: +#endif + ptr2 = &gUnk_0800161C[r3]; + case 15: + ptr4 = &gUnk_02034398; + break; + case 0: + default: + break; + } + if (ptr4 != 0) { + if ((r1 = gSave.stats.unkB) == 0) { + ptr3 = &gUnk_08001A1C[0]; + } else { +#ifdef EU + ptr3 = &gUnk_0800143C[r1+3]; +#else + ptr3 = &gUnk_0800143C[r1]; +#endif + } + sub_08000F14(s0.a, ptr4->a, ptr2->a, ptr3->a); + if (gSave.stats.health <= 8) { + s0.s.hearts += 5; + } + if (gSave.stats.bombCount == 0) { + s0.s.bombs += 3; + } + if (gSave.stats.arrowCount == 0) { + s0.s.arrows += 3; + } + if (gSave.stats.rupees <= 10) { + s0.s.rupee5 += 1; + } + ptr2 = &gUnk_08001A1C[0]; + r0 = gSave.stats.hasAllFigurines; + ptr3 = ptr2; + if (r0 != 0) { + ptr2++; + } + if (gSave.fillerD0[0x46] != 0) { + ptr3 += 2; + } + r4 = sub_08000F2C(s0.a, s0.a, ptr2->a, ptr3->a); + r2 = Random(); + r5 = (r2 >> 0x18); + r5 &= 0xF; + r2 = r2 % r4; + { + u32 r3; + for (r3 = 0, r1 = 0; r3 < 0x10; r3++, r5 = (r5 + 1) & 0xF) { + if ((r1 += s0.a[r5]) > r2) { + break; + } + } + } + r1 = gUnk_080FE1B4[r5]; + if (r1 != 0) { + r2 = 0; + return CreateItemDrop(arg0, r1, r2); + } + } + } + return 0; +} u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter) { - u32 prereqID; u32 adjustedParam = itemParameter; - u32 uVar1; Entity* itemEntity; switch (itemID) { - case 0xff: - if (!GetInventoryValue(0x1)) { - return 0; + case ITEM_ENEMY_BEETLE: + if (!GetInventoryValue(ITEM_SMITH_SWORD)) { + return ITEM_NONE; } break; - case 0x5d: - if (!GetInventoryValue(0x65)) { - return 0; + case ITEM_BOMBS5: + if (!GetInventoryValue(ITEM_BOMBBAG)) { + return ITEM_NONE; } break; - case 0x5e: - if (!GetInventoryValue(0x9)) { - return 0; + case ITEM_ARROWS5: + if (!GetInventoryValue(ITEM_BOW)) { + return ITEM_NONE; } break; - case 0x3f: { - if (!GetInventoryValue(0x40)) { - return 0; + case ITEM_SHELLS: { + if (!GetInventoryValue(ITEM_EARTH_ELEMENT)) { + return ITEM_NONE; } if (itemParameter == 0) { adjustedParam = 1; } break; } - case 0x5c: - case 0xfc ... 0xfe: { - u32 tmp, tmp2; + case ITEM_KINSTONE: + case ITEM_KINSTONE_GREEN ... ITEM_KINSTONE_RED: { u32 rand; - u8* ptr; - if (GetInventoryValue(0x67) == 0) { + if (GetInventoryValue(ITEM_KINSTONE_BAG) == 0) { return 0; } if (3 < gRoomVars.filler1[0]) { return 0; } - if (itemID != 0x5c) { - adjustedParam = itemID - 0xfc; + if (itemID != ITEM_KINSTONE) { + adjustedParam = itemID - ITEM_KINSTONE_GREEN; rand = (Random() & 0x3f); - ptr = gUnk_080FE1DD; adjustedParam = gUnk_080FE1DD[(rand + adjustedParam * 0x40)]; if (adjustedParam == 0) { - itemID = 0; + itemID = ITEM_NONE; } else { - itemID = 0x5c; + itemID = ITEM_KINSTONE; } } break; } } - if (itemID != 0) { - if (itemID != 0xff) { + if (itemID != ITEM_NONE) { + if (itemID != ITEM_ENEMY_BEETLE) { itemEntity = CreateObject(GROUND_ITEM, itemID, adjustedParam); if (itemEntity != NULL) { if (arg0 == &gPlayerEntity) { diff --git a/src/droptables.c b/src/droptables.c new file mode 100644 index 00000000..3ca5ae6e --- /dev/null +++ b/src/droptables.c @@ -0,0 +1,1128 @@ +#include "global.h" +#include "droptables.h" + +const Droptable gUnk_0800137C[] = { + { { + .none = -999, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = -999, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 300, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 100, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = -999, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = -999, + .fairy = 100, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 36, + .rupee1 = 28, + .rupee5 = 20, + .rupee20 = 16, + .hearts = -999, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 74, + .rupee1 = 10, + .rupee5 = 5, + .rupee20 = 1, + .hearts = 5, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = 5, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 100, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; +// not 100% sure +const Droptable gUnk_0800143C[] = { + { { + .none = 73, + .rupee1 = 25, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 5, + .fairy = 0, + .bombs = 1, + .arrows = 1, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 55, + .rupee1 = -999, + .rupee5 = 70, + .rupee20 = -999, + .hearts = 3, + .fairy = 0, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = 10, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 50, + .rupee1 = -999, + .rupee5 = 26, + .rupee20 = 15, + .hearts = 3, + .fairy = 0, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = 15, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 45, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 5, + .fairy = 0, + .bombs = -999, + .arrows = 50, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 300, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = -999, + .fairy = -999, + .bombs = 100, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 60, + .rupee1 = 10, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 5, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = 10, + .kinstoneGreen = 2, + .kinstoneBlue = 3, + .kinstoneRed = 10, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 70, + .rupee1 = 0, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 30, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 63, + .rupee1 = 10, + .rupee5 = 20, + .rupee20 = -999, + .hearts = 5, + .fairy = 0, + .bombs = 1, + .arrows = 1, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 50, + .rupee1 = 10, + .rupee5 = 20, + .rupee20 = -999, + .hearts = -999, + .fairy = 0, + .bombs = 20, + .arrows = -999, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 2, + .kinstoneBlue = 5, + .kinstoneRed = 10, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 40, + .rupee5 = 24, + .rupee20 = 9, + .hearts = 24, + .fairy = 0, + .bombs = 9, + .arrows = 9, + .mysteriousShells = 40, + .kinstoneGreen = 9, + .kinstoneBlue = 12, + .kinstoneRed = 16, + .none2 = 9, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; +// not 100% sure +const Droptable gUnk_080015BC[] = { + { { + .none = 920, + .rupee1 = 15, + .rupee5 = 5, + .rupee20 = -999, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 10, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 900, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = -999, + .hearts = -999, + .fairy = -999, + .bombs = 200, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 11, + .rupee5 = 3, + .rupee20 = 0, + .hearts = 20, + .fairy = 0, + .bombs = 35, + .arrows = 4, + .mysteriousShells = 4, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 3, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; +const Droptable gUnk_0800161C[] = { + { { + .none = 920, + .rupee1 = 30, + .rupee5 = 1, + .rupee20 = 0, + .hearts = 5, + .fairy = 0, + .bombs = 7, + .arrows = 25, + .mysteriousShells = 3, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 9, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 6, + .rupee5 = 1, + .rupee20 = 0, + .hearts = 20, + .fairy = 0, + .bombs = 0, + .arrows = 23, + .mysteriousShells = 2, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 28, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 55, + .rupee5 = 7, + .rupee20 = 0, + .hearts = 1, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 6, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 11, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 23, + .rupee5 = 5, + .rupee20 = 0, + .hearts = 13, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 33, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 6, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 20, + .rupee5 = 3, + .rupee20 = 0, + .hearts = 20, + .fairy = 0, + .bombs = 4, + .arrows = 4, + .mysteriousShells = 3, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 6, + .none2 = 20, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 25, + .rupee5 = 6, + .rupee20 = 0, + .hearts = 40, + .fairy = 0, + .bombs = 1, + .arrows = 1, + .mysteriousShells = 1, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 6, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 18, + .rupee5 = 2, + .rupee20 = 0, + .hearts = 22, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 18, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 5, + .none2 = 15, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 30, + .rupee5 = 1, +#ifdef EU + .rupee20 = 0, +#else + .rupee20 = -10, +#endif + .hearts = 2, + .fairy = 0, + .bombs = 1, + .arrows = 1, + .mysteriousShells = 40, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 5, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 900, + .rupee1 = 16, + .rupee5 = 4, + .rupee20 = 0, + .hearts = 18, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 19, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 15, + .none2 = 28, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 23, + .rupee5 = 15, + .rupee20 = 0, + .hearts = 23, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 9, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 25, + .rupee5 = 25, + .rupee20 = 0, + .hearts = 14, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 1, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 15, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 25, + .rupee5 = 1, + .rupee20 = 0, + .hearts = 25, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 25, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 4, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 800, + .rupee1 = 60, + .rupee5 = 15, + .rupee20 = 0, + .hearts = 80, + .fairy = 0, + .bombs = 20, + .arrows = 0, + .mysteriousShells = 15, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 10, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 15, + .rupee5 = 5, + .rupee20 = -999, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = -999, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 10, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 15, + .rupee5 = 5, + .rupee20 = -999, + .hearts = 0, + .fairy = 0, + .bombs = -999, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 10, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 920, + .rupee1 = 15, + .rupee5 = 5, + .rupee20 = -999, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 10, + .rupee5 = 0, + .rupee20 = -100, + .hearts = 0, + .fairy = 0, + .bombs = -100, + .arrows = -100, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 3, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 4, + .fairy = 0, + .bombs = 1, + .arrows = 1, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 1, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 100, + .rupee5 = 20, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 140, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 20, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 300, + .rupee5 = 50, + .rupee20 = 20, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 100, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 2, + .rupee5 = 2, + .rupee20 = 2, + .hearts = 2, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +#ifdef EU + { { + .none = 0, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 0, + .fairy = -999, + .bombs = -999, + .arrows = 250, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +#endif + { { + .none = 0, + .rupee1 = -10, + .rupee5 = -10, + .rupee20 = 10, + .hearts = -10, + .fairy = -10, + .bombs = -10, + .arrows = -10, + .mysteriousShells = 12, + .kinstoneGreen = 1, + .kinstoneBlue = 2, + .kinstoneRed = 10, + .none2 = 30, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = -10, + .rupee5 = 10, + .rupee20 = 20, + .hearts = -10, + .fairy = -10, + .bombs = -10, + .arrows = -10, + .mysteriousShells = 24, + .kinstoneGreen = 2, + .kinstoneBlue = 4, + .kinstoneRed = 20, + .none2 = 10, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; +const Droptable gUnk_0800191C[] = { +#ifdef EU + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +#else + { { + .none = 78, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 2, + .fairy = -999, + .bombs = 0, + .arrows = 20, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 70, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = -999, + .hearts = 10, + .fairy = -999, + .bombs = 0, + .arrows = 20, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +#endif + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 250, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 250, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = -999, + .rupee5 = -999, + .rupee20 = 500, + .hearts = -999, + .fairy = -999, + .bombs = -999, + .arrows = -999, + .mysteriousShells = -999, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 250, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 125, + .arrows = 125, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 20, + .kinstoneBlue = 40, + .kinstoneRed = 190, + .none2 = -999, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; + +const Droptable gUnk_08001A1C[] = { + // nop + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 0, + .hearts = 0, + .fairy = 0, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + // all figurines, no more shells + { { + .none = 0, + .rupee1 = 0, + .rupee5 = 0, + .rupee20 = 3, + .hearts = 0, + .fairy = 2, + .bombs = 2, + .arrows = 2, + .mysteriousShells = -999, + .kinstoneGreen = 0, + .kinstoneBlue = 0, + .kinstoneRed = 0, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, + // all fusions, no more kinstones + { { + .none = 0, + .rupee1 = 3, + .rupee5 = 2, + .rupee20 = 1, + .hearts = 3, + .fairy = 5, + .bombs = 0, + .arrows = 0, + .mysteriousShells = 0, + .kinstoneGreen = -999, + .kinstoneBlue = -999, + .kinstoneRed = -999, + .none2 = 0, + .none3 = 0, + .none4 = 0, + .none5 = 0, + } }, +}; diff --git a/src/npc/percy.c b/src/npc/percy.c index 5514e0ac..dea47a15 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -123,7 +123,7 @@ void sub_0806B540(Entity* this) { case 2: if ((gMessage.doTextBox & 0x7f) == 0) { context->unk_18 = 3; - if (gSave.stats.filler3[0] != 0) { + if (gSave.stats.hasAllFigurines != 0) { sub_080A7C18(0x58, 0, 0); } else { sub_080A7C18(0x3f, 100, 0); diff --git a/src/object/mask.c b/src/object/mask.c index 1b960d7a..b79eeec6 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -101,7 +101,7 @@ void sub_08092B0C(Entity* this) { CreateFx(this, FX_POT_SHATTER, 0); - sub_0805457C(this, 3); + CreateRandomItemDrop(this, 3); } else { sub_080044EC(this, this->field_0x78.HWORD); diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 1dd23ad1..2a9873db 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -31,7 +31,7 @@ void sub_080A7C18(u32 type, u32 type2, u32 delay) { Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) { Entity* e; - if (type == 63 && gSave.stats.filler3[0]) { + if (type == 63 && gSave.stats.hasAllFigurines) { type = 87; type2 = 0; } diff --git a/src/roomInit.c b/src/roomInit.c index baaadce7..fc86e9ca 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -5279,7 +5279,7 @@ void sub_StateChange_HouseInteriors3_StockwellShop(void) { LoadRoomEntityList(&gUnk_080F5848); } } - if (gSave.stats.filler3[0] == 0) { + if (gSave.stats.hasAllFigurines == 0) { LoadRoomEntityList(&gUnk_080F5788); } } |
