Skip to content

Commit 7de1053

Browse files
committed
Add Archery Fruits item
1 parent 16c05ba commit 7de1053

1 file changed

Lines changed: 69 additions & 1 deletion

File tree

src/hooks/Arc/items_Arc.cpp

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bool ArcSetAimFlag(bool hold2) {
2424
}
2525

2626
/**
27-
* @brief ArcSetMaxArrowCount trampoline
27+
* @brief ArcSetAimFlag trampoline
2828
*/
2929
TRAMPOLINE_DEF(0x80548828, 0x8054882c) {
3030
// clang-format off
@@ -40,6 +40,74 @@ TRAMPOLINE_DEF(0x80548828, 0x8054882c) {
4040
// clang-format on
4141
}
4242

43+
/**
44+
* @brief Sets the secret fruit flag in Archery
45+
*/
46+
bool ArcSetFruitFlag(int stageID) {
47+
48+
int difficulty;
49+
50+
switch(stageID) {
51+
case 11:
52+
case 24:
53+
case 12:
54+
case 3:
55+
difficulty = 0;
56+
break;
57+
58+
case 31:
59+
case 9:
60+
case 32:
61+
case 13:
62+
difficulty = 1;
63+
break;
64+
65+
case 17:
66+
case 22:
67+
case 35:
68+
case 4:
69+
difficulty = 2;
70+
break;
71+
72+
default:
73+
K_LOG_EX("stageID: %d\n", stageID);
74+
K_LOG_EX("difficulty: %d\n", difficulty);
75+
K_ASSERT(false);
76+
}
77+
78+
return ItemMgr::GetInstance().IsArcFruitUnlock(difficulty) == 1;
79+
}
80+
81+
/**
82+
* @brief ArcSetFruitFlag trampoline
83+
*/
84+
85+
86+
TRAMPOLINE_DEF(0x8057cbe0, 0x8057cbe4) {
87+
// clang-format off
88+
TRAMPOLINE_BEGIN
89+
90+
lis r12, 0x8057
91+
ori r12, r12, 0xcb9c
92+
93+
mr r14, r3
94+
mr r3, r4
95+
bl ArcSetFruitFlag
96+
cmpwi r3, 1
97+
beq Unlocked
98+
mr r3, r14
99+
mtctr r12
100+
TRAMPOLINE_END
101+
bnectr
102+
103+
Unlocked:
104+
nop
105+
106+
TRAMPOLINE_END
107+
blr
108+
// clang-format on
109+
}
110+
43111
/**
44112
* @brief Sets the max arrow count in Archery
45113
*/

0 commit comments

Comments
 (0)