summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornotyourav <65437533+notyourav@users.noreply.github.com>2022-08-19 14:22:21 -0700
committerGitHub <noreply@github.com>2022-08-19 14:22:21 -0700
commite4d94ceaf6c83682fc2e8cb04a1979d0951dd04a (patch)
treeac319655335224cfe6138c9f98b301992aa4c4ee /src
parent373ab92156ddc4f11c9898ff48d497b4f3a49a23 (diff)
parentae3ae650f1965ad8d3b8c82b608de16e96540087 (diff)
Merge pull request #562 from hatal175/sub_08088328
Diffstat (limited to 'src')
-rw-r--r--src/object/figurineDevice.c57
1 files changed, 56 insertions, 1 deletions
diff --git a/src/object/figurineDevice.c b/src/object/figurineDevice.c
index 33194506..e01a1304 100644
--- a/src/object/figurineDevice.c
+++ b/src/object/figurineDevice.c
@@ -489,7 +489,62 @@ void sub_080882A8(FigurineDeviceEntity* this) {
gScreen.bg0.updated = 1;
}
-ASM_FUNC("asm/non_matching/figurineDevice/sub_08088328.inc", void sub_08088328(FigurineDeviceEntity* this))
+void sub_08088328(FigurineDeviceEntity* this) {
+ u32 uVar2;
+ u32 uVar3;
+ u32 uVar5;
+ u32 uVar6;
+
+ do {
+ uVar2 = Random();
+ uVar2 &= 0x7f;
+ } while (uVar2 >= 100);
+ ModShells(-this->unk_81);
+ uVar3 = Random();
+ uVar6 = (uVar3 & 0x7f) + 1;
+ uVar5 = uVar6;
+ sub_08088424(this);
+ if (uVar2 < this->unk_83) {
+ uVar2 = FALSE;
+ do {
+ if (uVar2)
+ break;
+ if (uVar6 > 0x88) {
+ uVar6 = 1;
+ }
+ if (sub_08088160(this, uVar6) && ReadBit(&gSave.stats.filler4[4], uVar6) == 0) {
+ uVar2 = TRUE;
+ } else {
+ uVar6++;
+ }
+ } while (uVar5 != uVar6);
+ } else {
+ uVar2 = TRUE;
+ do {
+ if (!uVar2)
+ break;
+ if (uVar6 > 0x88) {
+ uVar6 = 1;
+ }
+ if (sub_08088160(this, uVar6) && ReadBit(&gSave.stats.filler4[4], uVar6) != 0) {
+ uVar2 = FALSE;
+ } else {
+ uVar6++;
+ }
+ } while (uVar5 != uVar6);
+ }
+ if (uVar2) {
+ gSave.stats.filler[0]++;
+ if (gSave.stats.filler[0] != this->unk_80) {
+ SetRoomFlag(7);
+ } else {
+ SetLocalFlag(SHOP07_COMPLETE);
+ SetRoomFlag(8);
+ }
+ }
+ this->unk_7d = uVar6;
+ ((FigurineDeviceEntity*)super->parent)->unk_7d = uVar6;
+}
void sub_08088424(FigurineDeviceEntity* this) {
if (gSave.stats.filler[0] < 0x32) {