diff options
| author | notyourav <65437533+notyourav@users.noreply.github.com> | 2022-08-19 14:22:21 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-19 14:22:21 -0700 |
| commit | e4d94ceaf6c83682fc2e8cb04a1979d0951dd04a (patch) | |
| tree | ac319655335224cfe6138c9f98b301992aa4c4ee /src | |
| parent | 373ab92156ddc4f11c9898ff48d497b4f3a49a23 (diff) | |
| parent | ae3ae650f1965ad8d3b8c82b608de16e96540087 (diff) | |
Merge pull request #562 from hatal175/sub_08088328
Diffstat (limited to 'src')
| -rw-r--r-- | src/object/figurineDevice.c | 57 |
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) { |
