23 }
else if (y < 85.0f) {
25 }
else if (y < 100.0f) {
33 }
else if (x < 65.0f) {
35 }
else if (x < 105.0f) {
41 return col | (row << 2);
159 u32 idIdx = (u8)actorID;
161 switch (actorClass) {
175API_CALLABLE(LoadBattleSection) {
182API_CALLABLE(GetBattlePhase) {
187API_CALLABLE(GetLastElement) {
192API_CALLABLE(GetDamageSource) {
197API_CALLABLE(SetDamageSource) {
198 s32 damageSource = *script->ptrReadPos;
204API_CALLABLE(SetGoalToHome) {
209 actorID = script->owner1.
actorID;
220API_CALLABLE(SetIdleGoalToHome) {
225 actorID = script->owner1.
actorID;
236API_CALLABLE(SetGoalToIndex) {
237 Bytecode* args = script->ptrReadPos;
243 actorID = script->owner1.
actorID;
254API_CALLABLE(GetIndexFromPos) {
255 Bytecode* args = script->ptrReadPos;
257 s32 outVar = *args++;
262 actorID = script->owner1.
actorID;
272API_CALLABLE(GetIndexFromHome) {
273 Bytecode* args = script->ptrReadPos;
275 s32 outVar = *args++;
280 actorID = script->owner1.
actorID;
290API_CALLABLE(CountTargets) {
291 Bytecode* args = script->ptrReadPos;
293 s32 targetSelectionFlags = *args++;
294 s32 outVar = *args++;
300 actorID = script->owner1.
actorID;
305 numTargets =
count_targets(actor, homeIdx, targetSelectionFlags);
311API_CALLABLE(ForceHomePos) {
312 Bytecode* args = script->ptrReadPos;
318 actorID = script->owner1.
actorID;
333API_CALLABLE(SetHomePos) {
334 Bytecode* args = script->ptrReadPos;
340 actorID = script->owner1.
actorID;
355API_CALLABLE(SetGoalToTarget) {
356 Bytecode* args = script->ptrReadPos;
361 actorID = script->owner1.
actorID;
370API_CALLABLE(SetPartGoalToTarget) {
371 Bytecode* args = script->ptrReadPos;
377 actorID = script->owner1.
actorID;
386API_CALLABLE(SetGoalToFirstTarget) {
387 Bytecode* args = script->ptrReadPos;
393 actorID = script->owner1.
actorID;
403API_CALLABLE(SetGoalPos) {
404 Bytecode* args = script->ptrReadPos;
411 actorID = script->owner1.actorID;
414 walk = &actor->
state;
443API_CALLABLE(SetIdleGoal) {
444 Bytecode* args = script->ptrReadPos;
451 actorID = script->owner1.actorID;
482API_CALLABLE(AddGoalPos) {
483 Bytecode* args = script->ptrReadPos;
489 actorID = script->owner1.
actorID;
504API_CALLABLE(GetGoalPos) {
505 Bytecode* args = script->ptrReadPos;
508 s32 outX, outY, outZ;
512 actorID = script->owner1.
actorID;
533API_CALLABLE(GetIdleGoal) {
534 Bytecode* args = script->ptrReadPos;
537 s32 outX, outY, outZ;
541 actorID = script->owner1.
actorID;
561API_CALLABLE(GetPartTarget) {
562 Bytecode* args = script->ptrReadPos;
567 s32 outX, outY, outZ;
571 actorID = script->owner1.actorID;
592API_CALLABLE(GetActorPos) {
593 Bytecode* args = script->ptrReadPos;
596 s32 outX, outY, outZ;
600 actorID = script->owner1.
actorID;
620API_CALLABLE(GetPartOffset) {
621 Bytecode* args = script->ptrReadPos;
625 s32 outX, outY, outZ;
629 actorID = script->owner1.actorID;
656API_CALLABLE(GetPartPos) {
657 Bytecode* args = script->ptrReadPos;
661 s32 outX, outY, outZ;
665 actorID = script->owner1.actorID;
686API_CALLABLE(GetHomePos) {
687 Bytecode* args = script->ptrReadPos;
690 s32 outX, outY, outZ;
694 actorID = script->owner1.
actorID;
714API_CALLABLE(SetActorPos) {
715 Bytecode* args = script->ptrReadPos;
721 actorID = script->owner1.
actorID;
736API_CALLABLE(SetPartPos) {
737 Bytecode* args = script->ptrReadPos;
745 actorID = script->owner1.actorID;
780API_CALLABLE(SetEnemyTargetOffset) {
781 Bytecode* args = script->ptrReadPos;
789 actorID = script->owner1.actorID;
812API_CALLABLE(SetAnimation) {
813 Bytecode* args = script->ptrReadPos;
820 actorID = script->owner1.
actorID;
831API_CALLABLE(GetAnimation) {
832 Bytecode* args = script->ptrReadPos;
839 actorID = script->owner1.actorID;
846 if (actorPart != NULL) {
852API_CALLABLE(SetAnimationRate) {
853 Bytecode* args = script->ptrReadPos;
860 actorID = script->owner1.
actorID;
871API_CALLABLE(SetActorYaw) {
872 Bytecode* args = script->ptrReadPos;
876 actorID = script->owner1.actorID;
883API_CALLABLE(GetActorYaw) {
884 Bytecode* args = script->ptrReadPos;
889 actorID = script->owner1.actorID;
898API_CALLABLE(SetPartYaw) {
899 Bytecode* args = script->ptrReadPos;
905 actorID = script->owner1.actorID;
915API_CALLABLE(GetPartYaw) {
916 Bytecode* args = script->ptrReadPos;
922 actorID = script->owner1.actorID;
932API_CALLABLE(SetActorJumpGravity) {
933 Bytecode* args = script->ptrReadPos;
938 actorID = script->owner1.actorID;
946API_CALLABLE(SetActorIdleJumpGravity) {
947 Bytecode* args = script->ptrReadPos;
952 actorID = script->owner1.actorID;
960API_CALLABLE(SetActorSpeed) {
961 Bytecode* args = script->ptrReadPos;
966 actorID = script->owner1.actorID;
975API_CALLABLE(SetActorIdleSpeed) {
976 Bytecode* args = script->ptrReadPos;
981 actorID = script->owner1.actorID;
989API_CALLABLE(SetPartJumpGravity) {
990 Bytecode* args = script->ptrReadPos;
996 actorID = script->owner1.actorID;
1006API_CALLABLE(SetPartMoveSpeed) {
1007 Bytecode* args = script->ptrReadPos;
1013 actorID = script->owner1.actorID;
1023API_CALLABLE(SetJumpAnimations) {
1024 Bytecode* args = script->ptrReadPos;
1033 actorID = script->owner1.
actorID;
1037 animJumpRise = *args++;
1038 animJumpFall = *args++;
1039 animJumpLand = *args++;
1050API_CALLABLE(AddActorPos) {
1051 Bytecode* args = script->ptrReadPos;
1057 actorID = script->owner1.
actorID;
1072API_CALLABLE(SetActorDispOffset) {
1073 Bytecode* args = script->ptrReadPos;
1079 actorID = script->owner1.
actorID;
1094API_CALLABLE(GetPartDispOffset) {
1095 Bytecode* args = script->ptrReadPos;
1099 s32 outX, outY, outZ;
1103 actorID = script->owner1.actorID;
1130API_CALLABLE(SetPartDispOffset) {
1131 Bytecode* args = script->ptrReadPos;
1138 actorID = script->owner1.actorID;
1161API_CALLABLE(AddPartDispOffset) {
1162 Bytecode* args = script->ptrReadPos;
1169 actorID = script->owner1.actorID;
1192API_CALLABLE(FreezeBattleState) {
1195 Bytecode* args = script->ptrReadPos;
1198 if (increaseFreeze) {
1207API_CALLABLE(GetActorVar) {
1208 Bytecode* args = script->ptrReadPos;
1214 actorID = script->owner1.actorID;
1225API_CALLABLE(SetActorVar) {
1226 Bytecode* args = script->ptrReadPos;
1232 actorID = script->owner1.actorID;
1243API_CALLABLE(AddActorVar) {
1244 Bytecode* args = script->ptrReadPos;
1251 actorID = script->owner1.actorID;
1258 state->varTable[index] += val;
1263API_CALLABLE(GetPartMovementVar) {
1264 Bytecode* args = script->ptrReadPos;
1271 actorID = script->owner1.actorID;
1283API_CALLABLE(SetPartMovementVar) {
1284 Bytecode* args = script->ptrReadPos;
1291 actorID = script->owner1.actorID;
1303API_CALLABLE(AddPartMovementVar) {
1304 Bytecode* args = script->ptrReadPos;
1311 actorID = script->owner1.actorID;
1323API_CALLABLE(SetActorRotation) {
1324 Bytecode* args = script->ptrReadPos;
1330 actorID = script->owner1.
actorID;
1354API_CALLABLE(SetActorRotationOffset) {
1355 Bytecode* args = script->ptrReadPos;
1361 actorID = script->owner1.
actorID;
1377API_CALLABLE(GetActorRotation) {
1378 Bytecode* args = script->ptrReadPos;
1384 actorID = script->owner1.
actorID;
1400API_CALLABLE(SetPartRotation) {
1401 Bytecode* args = script->ptrReadPos;
1408 actorID = script->owner1.actorID;
1417 actorPart->
rot.
x = x;
1418 actorPart->
rot.
y = y;
1419 actorPart->
rot.
z = z;
1424API_CALLABLE(SetPartRotationOffset) {
1425 Bytecode* args = script->ptrReadPos;
1432 actorID = script->owner1.actorID;
1448API_CALLABLE(GetPartRotation) {
1449 Bytecode* args = script->ptrReadPos;
1456 actorID = script->owner1.actorID;
1472API_CALLABLE(SetActorScale) {
1473 Bytecode* args = script->ptrReadPos;
1479 actorID = script->owner1.
actorID;
1495API_CALLABLE(SetActorScaleModifier) {
1496 Bytecode* args = script->ptrReadPos;
1502 actorID = script->owner1.
actorID;
1518API_CALLABLE(GetActorScale) {
1519 Bytecode* args = script->ptrReadPos;
1525 actorID = script->owner1.
actorID;
1541API_CALLABLE(SetPartScale) {
1542 Bytecode* args = script->ptrReadPos;
1549 actorID = script->owner1.actorID;
1565API_CALLABLE(GetPartScale) {
1566 Bytecode* args = script->ptrReadPos;
1573 actorID = script->owner1.actorID;
1589API_CALLABLE(GetBattleFlags) {
1594API_CALLABLE(SetBattleFlagBits) {
1595 Bytecode* args = script->ptrReadPos;
1608API_CALLABLE(GetBattleFlags2) {
1613API_CALLABLE(SetBattleFlagBits2) {
1614 Bytecode* args = script->ptrReadPos;
1627API_CALLABLE(SetActorFlags) {
1628 Bytecode* args = script->ptrReadPos;
1633 actorID = script->owner1.actorID;
1642API_CALLABLE(SetActorFlagBits) {
1643 Bytecode* args = script->ptrReadPos;
1650 actorID = script->owner1.
actorID;
1658 actor->
flags |= bits;
1660 actor->
flags &= ~bits;
1666API_CALLABLE(GetActorFlags) {
1667 Bytecode* args = script->ptrReadPos;
1672 actorID = script->owner1.actorID;
1682API_CALLABLE(SetPartFlags) {
1683 Bytecode* args = script->ptrReadPos;
1689 actorID = script->owner1.actorID;
1700API_CALLABLE(SetPartFlagBits) {
1701 Bytecode* args = script->ptrReadPos;
1709 actorID = script->owner1.actorID;
1719 actorPart->
flags |= bits;
1721 actorPart->
flags &= ~bits;
1727API_CALLABLE(SetPartTargetFlags) {
1728 Bytecode* args = script->ptrReadPos;
1735 actorID = script->owner1.actorID;
1746API_CALLABLE(SetPartTargetFlagBits) {
1747 Bytecode* args = script->ptrReadPos;
1755 actorID = script->owner1.actorID;
1773API_CALLABLE(GetPartFlags) {
1774 Bytecode* args = script->ptrReadPos;
1781 actorID = script->owner1.actorID;
1792API_CALLABLE(GetPartTargetFlags) {
1793 Bytecode* args = script->ptrReadPos;
1800 actorID = script->owner1.actorID;
1811API_CALLABLE(SetPartEventFlags) {
1812 Bytecode* args = script->ptrReadPos;
1819 actorID = script->owner1.actorID;
1830API_CALLABLE(SetPartEventBits) {
1831 Bytecode* args = script->ptrReadPos;
1840 actorID = script->owner1.actorID;
1859API_CALLABLE(GetPartEventFlags) {
1860 Bytecode* args = script->ptrReadPos;
1868 actorID = script->owner1.actorID;
1881API_CALLABLE(SetPartImmunityFlags) {
1882 Bytecode* args = script->ptrReadPos;
1889 actorID = script->owner1.actorID;
1900API_CALLABLE(SetPartImmunityBits) {
1901 Bytecode* args = script->ptrReadPos;
1910 actorID = script->owner1.actorID;
1929API_CALLABLE(HPBarToHome) {
1930 Bytecode* args = script->ptrReadPos;
1935 actorID = script->owner1.
actorID;
1952API_CALLABLE(HPBarToCurrent) {
1953 Bytecode* args = script->ptrReadPos;
1958 actorID = script->owner1.
actorID;
1975API_CALLABLE(HideHPBar) {
1976 Bytecode* args = script->ptrReadPos;
1980 actorID = script->owner1.actorID;
1988API_CALLABLE(SetHPBarOffset) {
1989 Bytecode* args = script->ptrReadPos;
1995 actorID = script->owner1.
actorID;
2016API_CALLABLE(SetActorStatusOffsets) {
2017 Bytecode* args = script->ptrReadPos;
2020 s32 iconX, iconY, textX, textY;
2023 actorID = script->owner1.
actorID;
2040API_CALLABLE(SummonEnemy) {
2042 Bytecode* args = script->ptrReadPos;
2048 u16 enemyID1, enemyID2;
2049 s32 priority1, priority2;
2052 if (isInitialCall) {
2053 script->functionTemp[0] = 0;
2056 switch (script->functionTemp[0]) {
2060 script->functionTemp[0] = 1;
2063 actor2 = script->functionTempPtr[1];
2077 if (script->functionTemp[2]) {
2078 basePriority = -1000;
2080 basePriority = 1000;
2083 for (i = 0; i < numEnemies - 1; i++) {
2084 for (j = i + 1; j < numEnemies; j++) {
2085 enemyID1 = enemyIDs[i];
2086 actor1 = battleStatus->
enemyActors[enemyID1 & 0xFF];
2088 if (actor1 == actor2) {
2089 priority1 += basePriority;
2091 enemyID2 = enemyIDs[j];
2092 actor1 = battleStatus->
enemyActors[enemyID2 & 0xFF];
2094 if (actor1 == actor2) {
2095 priority2 += basePriority;
2097 if (priority1 < priority2) {
2098 enemyIDs[i] = enemyID2;
2099 enemyIDs[j] = enemyID1;
2105 for (i = 0; i < numEnemies; i++){
2106 if (battleStatus->
enemyActors[enemyIDs[i] & 0xFF] == actor2) {
2110 if (script->functionTemp[2] == 0) {
2122 script->varTable[0] = actor2->
actorID;
2128API_CALLABLE(GetOwnerID) {
2129 Bytecode* args = script->ptrReadPos;
2130 s32 outVar = *args++;
2136API_CALLABLE(SetOwnerID) {
2137 Bytecode* args = script->ptrReadPos;
2140 script->owner1.actorID = actorID;
2144API_CALLABLE(ActorExists) {
2146 Bytecode* args = script->ptrReadPos;
2151 actorID = script->owner1.actorID;
2163API_CALLABLE(GetPartAnimInstanceID) {
2164 Bytecode* args = script->ptrReadPos;
2167 s32 outVar = *args++;
2172 actorID = script->owner1.actorID;
2182API_CALLABLE(GetPartAnimNotify) {
2183 Bytecode* args = script->ptrReadPos;
2186 s32 outVar = *args++;
2191 actorID = script->owner1.actorID;
2201API_CALLABLE(SetBattleMenuEnabledFlags) {
2202 Bytecode* args = script->ptrReadPos;
2203 s32 flagsValue = *args++;
2209API_CALLABLE(SetEnabledStarPowers) {
2210 Bytecode* args = script->ptrReadPos;
2211 s32 enabled = *args++;
2217API_CALLABLE(SetBattleInputMask) {
2218 Bytecode* args = script->ptrReadPos;
2225API_CALLABLE(SetBattleInputButtons) {
2226 Bytecode* args = script->ptrReadPos;
2228 s32 currentButtonsDown = *args++;
2229 s32 currentButtonsPressed = *args++;
2230 s32 currentButtonsHeld = *args++;
2239API_CALLABLE(CheckButtonPress) {
2240 Bytecode* args = script->ptrReadPos;
2249API_CALLABLE(CheckButtonHeld) {
2250 Bytecode* args = script->ptrReadPos;
2259API_CALLABLE(CheckButtonDown) {
2260 Bytecode* args = script->ptrReadPos;
2269API_CALLABLE(GetBattleState) {
2270 Bytecode* args = script->ptrReadPos;
2271 s32 outVar = *args++;
2277API_CALLABLE(SetBattleState) {
2278 Bytecode* args = script->ptrReadPos;
2285API_CALLABLE(WaitForState) {
2286 Bytecode* args = script->ptrReadPos;
2290 if (isInitialCall) {
2311API_CALLABLE(CancelEnemyTurn) {
2312 Bytecode* args = script->ptrReadPos;
2316 switch (cancelMode) {
2318 battleStatus->
unk_94 = 1;
2321 battleStatus->
unk_94 = -1;
2328API_CALLABLE(func_8026E260) {
2329 Bytecode* args = script->ptrReadPos;
2334 actorID = script->owner1.actorID;
2341API_CALLABLE(CreateCurrentPosTargetList) {
2342 Bytecode* args = script->ptrReadPos;
2351API_CALLABLE(CreateHomeTargetList) {
2352 Bytecode* args = script->ptrReadPos;
2361API_CALLABLE(InitTargetIterator) {
2362 Bytecode* args = script->ptrReadPos;
2372API_CALLABLE(SetOwnerTarget) {
2373 Bytecode* args = script->ptrReadPos;
2383API_CALLABLE(ChooseNextTarget) {
2384 Bytecode* args = script->ptrReadPos;
2420 curIdx = length - 1;
2424 if (curIdx >= length) {
2438API_CALLABLE(func_8026E558) {
2439 Bytecode* args = script->ptrReadPos;
2456 i = script->owner1.actorID;
2468 }
else if (y < 85.0f) {
2470 }
else if (y < 100.0f) {
2478 }
else if (x < 65.0f) {
2480 }
else if (x < 105.0f) {
2497 if (target->
column == column && target->
layer == layer && target->
row < row) {
2508 if (target->
column == column && target->
layer == layer && target->
row < row) {
2519 if (target->
column == column && target->
layer == layer && target->
row < row) {
2531API_CALLABLE(GetTargetListLength) {
2532 Bytecode* args = script->ptrReadPos;
2538API_CALLABLE(GetOwnerTarget) {
2539 Bytecode* args = script->ptrReadPos;
2541 s32 actorID = *args++;
2542 s32 partID = *args++;
2550API_CALLABLE(func_8026E914) {
2551 Bytecode* args = script->ptrReadPos;
2552 s32 temp_v0 = *args++;
2553 s32 temp_s1 = *args++;
2561API_CALLABLE(GetPlayerActorID) {
2566API_CALLABLE(func_8026E9A0) {
2567 Bytecode* args = script->ptrReadPos;
2580API_CALLABLE(GetDistanceToGoal) {
2581 Bytecode* args = script->ptrReadPos;
2583 s32 outVar = *args++;
2588 actorID = script->owner1.
actorID;
2597API_CALLABLE(SetActorPaletteEffect) {
2598 Bytecode* args = script->ptrReadPos;
2606 actorID = script->owner1.actorID;
2615API_CALLABLE(SetActorPaletteSwapTimes) {
2616 Bytecode* args = script->ptrReadPos;
2624 actorID = script->owner1.actorID;
2638API_CALLABLE(SetActorPaletteSwapParams) {
2639 Bytecode* args = script->ptrReadPos;
2647 actorID = script->owner1.actorID;
2665API_CALLABLE(EnableActorPaletteEffects) {
2666 Bytecode* args = script->ptrReadPos;
2674 actorID = script->owner1.actorID;
2682 actorPart->
flags &= ~ACTOR_PART_FLAG_HAS_PAL_EFFECT;
2688API_CALLABLE(func_8026EDE4) {
2689 Bytecode* args = script->ptrReadPos;
2697 actorID = script->owner1.actorID;
2707API_CALLABLE(AddActorDecoration) {
2708 Bytecode* args = script->ptrReadPos;
2717 actorID = script->owner1.actorID;
2726API_CALLABLE(RemoveActorDecoration) {
2727 Bytecode* args = script->ptrReadPos;
2735 actorID = script->owner1.enemyID;
2744API_CALLABLE(ModifyActorDecoration) {
2745 Bytecode* args = script->ptrReadPos;
2754 actorID = script->owner1.
actorID;
2767API_CALLABLE(UseIdleAnimation) {
2769 Bytecode* args = script->ptrReadPos;
2774 actorID = script->owner1.actorID;
2779 actor->
flags &= ~ACTOR_FLAG_USING_IDLE_ANIM;
2780 actor->
flags &= ~ACTOR_FLAG_SHOW_STATUS_ICONS;
2789API_CALLABLE(func_8026F1A0) {
2790 Bytecode* args = script->ptrReadPos;
2796 actorID = script->owner1.
actorID;
2801 if (temp_s0_3 == 0) {
2802 actor->
flags &= ~ACTOR_FLAG_SHOW_STATUS_ICONS;
2809API_CALLABLE(GetStatusFlags) {
2810 Bytecode* args = script->ptrReadPos;
2813 s32 outVar = *args++;
2825 actorID = script->owner1.actorID;
2891 for (partsTable = actor->
partsTable; partsTable != NULL; partsTable = partsTable->
nextPart) {
2900 switch (actorClass) {
2935API_CALLABLE(RemovePlayerBuffs) {
2940API_CALLABLE(SetPartAlpha) {
2942 Bytecode* args = script->ptrReadPos;
2948 actorID = script->owner1.actorID;
2958API_CALLABLE(CreatePartShadow) {
2959 Bytecode* args = script->ptrReadPos;
2964 actorID = script->owner1.actorID;
2971API_CALLABLE(RemovePartShadow) {
2972 Bytecode* args = script->ptrReadPos;
2977 actorID = script->owner1.actorID;
2984API_CALLABLE(SetEndBattleFadeOutRate) {
2989API_CALLABLE(SetBattleVar) {
2990 Bytecode* args = script->ptrReadPos;
2998API_CALLABLE(GetBattleVar) {
2999 Bytecode* args = script->ptrReadPos;
3006API_CALLABLE(ResetAllActorSounds) {
3010 actorID = script->owner1.actorID;
3017API_CALLABLE(SetActorSounds) {
3018 Bytecode* args = script->ptrReadPos;
3026 actorID = script->owner1.
actorID;
3034 switch (soundType) {
3060API_CALLABLE(ResetActorSounds) {
3061 Bytecode* args = script->ptrReadPos;
3069 actorID = script->owner1.
actorID;
3077 switch (soundType) {
3103API_CALLABLE(SetPartSounds) {
3104 Bytecode* args = script->ptrReadPos;
3113 actorID = script->owner1.actorID;
3122 switch (soundType) {
3148API_CALLABLE(SetActorType) {
3149 Bytecode* args = script->ptrReadPos;
3155 actorID = script->owner1.
actorID;
3169API_CALLABLE(ShowShockEffect) {
3173 actorID = script->owner1.actorID;
3180API_CALLABLE(GetActorAttackBoost) {
3181 Bytecode* args = script->ptrReadPos;
3186 enemyID = script->owner1.enemyID;
3189 attackBoost = *args++;
3194API_CALLABLE(GetActorDefenseBoost) {
3195 Bytecode* args = script->ptrReadPos;
3200 enemyID = script->owner1.enemyID;
3203 defenseBoost = *args++;
3208API_CALLABLE(BoostAttack) {
3209 Bytecode* args = script->ptrReadPos;
3218 if (isInitialCall) {
3219 script->functionTemp[0] = 0;
3222 if (script->functionTemp[0] == 0) {
3225 actorID = script->owner1.actorID;
3229 script->functionTempPtr[1] = actor;
3230 script->functionTemp[2] = attackBoost;
3242 script->functionTemp[3] = 5;
3243 script->functionTemp[0] = 1;
3246 actor = script->functionTempPtr[1];
3247 attackBoost = script->functionTemp[2];
3260 flags2 = actor->
flags;
3271 switch (script->functionTemp[0]) {
3273 if (script->functionTemp[3] == 0) {
3274 fx_radial_shimmer(2, x1, y1, z1, 1.0f, 30);
3276 script->functionTemp[3] = 30;
3277 script->functionTemp[0] = 2;
3279 script->functionTemp[3]--;
3284 if (script->functionTemp[3] == 0) {
3293 fx_stat_change(attackBoost - 1, x2, y2, z2, 1.0f, 60);
3294 script->functionTemp[3] = 15;
3295 script->functionTemp[0] = 3;
3297 script->functionTemp[3]--;
3302 if (script->functionTemp[3] == 0) {
3304 script->functionTemp[0] = 4;
3306 script->functionTemp[3]--;
3313 script->functionTemp[3] = 10;
3314 script->functionTemp[0] = 5;
3318 if (script->functionTemp[3] != 0) {
3319 script->functionTemp[3]--;
3331API_CALLABLE(BoostDefense) {
3332 Bytecode* args = script->ptrReadPos;
3341 if (isInitialCall) {
3342 script->functionTemp[0] = 0;
3345 if (script->functionTemp[0] == 0) {
3348 actorID = script->owner1.actorID;
3352 script->functionTempPtr[1] = actor;
3353 script->functionTemp[2] = defenseBoost;
3366 script->functionTemp[3] = 5;
3367 script->functionTemp[0] = 1;
3370 actor = script->functionTempPtr[1];
3371 defenseBoost = script->functionTemp[2];
3384 flags2 = actor->
flags;
3395 switch (script->functionTemp[0]) {
3397 if (script->functionTemp[3] == 0) {
3398 fx_radial_shimmer(2, x1, y1, z1, 1.0f, 30);
3400 script->functionTemp[3] = 30;
3401 script->functionTemp[0] = 2;
3403 script->functionTemp[3]--;
3408 if (script->functionTemp[3] == 0) {
3417 fx_stat_change(defenseBoost + 5, x2, y2, z2, 1.0f, 60);
3418 script->functionTemp[3] = 15;
3419 script->functionTemp[0] = 3;
3421 script->functionTemp[3]--;
3426 if (script->functionTemp[3] == 0) {
3428 script->functionTemp[0] = 4;
3430 script->functionTemp[3]--;
3437 script->functionTemp[3] = 10;
3438 script->functionTemp[0] = 5;
3442 if (script->functionTemp[3] != 0) {
3443 script->functionTemp[3]--;
3455API_CALLABLE(VanishActor) {
3456 Bytecode* args = script->ptrReadPos;
3463 if (isInitialCall) {
3464 script->functionTemp[0] = 0;
3467 if (script->functionTemp[0] == 0) {
3470 actorID = script->owner1.actorID;
3474 script->functionTemp[1] = (s32) actor;
3475 script->functionTemp[2] = vanished;
3488 script->functionTemp[3] = 5;
3489 script->functionTemp[0] = 1;
3492 actor = script->functionTempPtr[1];
3493 vanished = script->functionTemp[2];
3506 switch (script->functionTemp[0]) {
3508 if (script->functionTemp[3] == 0) {
3509 fx_radial_shimmer(3, x, y, z, 1.0f, 30);
3511 script->functionTemp[3] = 30;
3512 script->functionTemp[0] = 2;
3514 script->functionTemp[3]--;
3519 if (script->functionTemp[3] == 0) {
3524 script->functionTemp[3] = 15;
3525 script->functionTemp[0] = 3;
3527 script->functionTemp[3]--;
3532 if (script->functionTemp[3] == 0) {
3534 script->functionTemp[0] = 4;
3536 script->functionTemp[3]--;
3543 script->functionTemp[3] = 10;
3544 script->functionTemp[0] = 5;
3548 if (script->functionTemp[3] != 0) {
3549 script->functionTemp[3]--;
3561API_CALLABLE(ElectrifyActor) {
3562 Bytecode* args = script->ptrReadPos;
3569 if (isInitialCall) {
3570 script->functionTemp[0] = 0;
3573 if (script->functionTemp[0] == 0) {
3576 actorID = script->owner1.actorID;
3580 script->functionTempPtr[1] = actor;
3581 script->functionTemp[2] = electrified;
3594 script->functionTemp[3] = 5;
3595 script->functionTemp[0] = 1;
3598 actor = script->functionTempPtr[1];
3599 electrified = script->functionTemp[2];
3612 switch (script->functionTemp[0]) {
3614 if (script->functionTemp[3] == 0) {
3615 fx_snaking_static(8, x, y, z, 1.0f, 30);
3617 script->functionTemp[3] = 30;
3618 script->functionTemp[0] = 2;
3620 script->functionTemp[3]--;
3625 if (script->functionTemp[3] == 0) {
3630 script->functionTemp[3] = 15;
3631 script->functionTemp[0] = 3;
3633 script->functionTemp[3]--;
3638 if (script->functionTemp[3] == 0) {
3640 script->functionTemp[0] = 4;
3642 script->functionTemp[3]--;
3649 script->functionTemp[3] = 10;
3650 script->functionTemp[0] = 5;
3654 if (script->functionTemp[3] != 0) {
3655 script->functionTemp[3]--;
3667API_CALLABLE(HealActor) {
3668 Bytecode* args = script->ptrReadPos;
3678 if (isInitialCall) {
3679 script->functionTemp[0] = 0;
3682 if (script->functionTemp[0] == 0) {
3685 actorID = script->owner1.enemyID;
3690 script->functionTempPtr[1] = actor;
3691 script->functionTemp[2] = hpBoost;
3700 script->functionTemp[3] = 5;
3701 script->functionTemp[0] = 1;
3704 actor = script->functionTempPtr[1];
3705 hpBoost = script->functionTemp[2];
3718 flags2 = actor->
flags;
3729 switch (script->functionTemp[0]) {
3731 if (script->functionTemp[3] == 0) {
3733 fx_recover(0, x2, y2, z2, hpBoost);
3735 script->functionTemp[3] = 30;
3736 script->functionTemp[0] = 2;
3738 script->functionTemp[3]--;
3743 if (script->functionTemp[3] == 0) {
3746 actor->
curHP += hpBoost;
3751 script->functionTemp[3] = 15;
3752 script->functionTemp[0] = 3;
3754 script->functionTemp[3]--;
3759 if (script->functionTemp[3] == 0) {
3765 script->functionTemp[0] = 4;
3767 script->functionTemp[3]--;
3773 script->functionTemp[3] = 10;
3774 script->functionTemp[0] = 5;
3778 if (script->functionTemp[3] != 0) {
3779 script->functionTemp[3]--;
3791API_CALLABLE(WaitForBuffDone) {
3799API_CALLABLE(CopyBuffs) {
3800 Bytecode* args = script->ptrReadPos;
3806 actorID = script->owner1.enemyID;
3812 actorID = script->owner1.enemyID;
Actor * create_actor(Formation formation)
void set_actor_home_position(s32 actorID, f32 x, f32 y, f32 z)
s32 count_targets(Actor *actor, s32 targetHomeIndex, s32 targetSelectionFlags)
void set_part_absolute_position(s32 actorID, s32 partID, f32 x, f32 y, f32 z)
void set_part_goal_to_actor_part(ActorPartMovement *movement, s32 actorID, s32 partID)
void set_actor_current_position(s32 actorID, f32 x, f32 y, f32 z)
Actor * get_actor(s32 actorID)
void set_goal_pos_to_part(ActorState *state, s32 actorID, s32 partID)
s32 get_nearest_home_index(f32 x, f32 y, f32 z)
BattleArea gBattleAreas[]
struct ActorPartMovement * movement
struct ActorBlueprint * actorBlueprint
struct Evt * handleEventScript
struct ActorPart * partsTable
struct SelectableTarget targetData[24]
struct ActorPart * nextPart
struct DecorationTable * decorationTable
DecorationData decorData[2]
@ ACTOR_SOUND_WALK_INCREMENT
@ ACTOR_SOUND_FLY_INCREMENT
@ BTL_MSG_ENEMY_TRANSPARENT
@ ACTOR_EVENT_FLAG_ILLUSORY
Player attacks pass through and miss.
@ STATUS_FLAG_ATTACK_BOOST
@ STATUS_FLAG_DEFENSE_BOOST
@ STATUS_FLAG_TRANSPARENT
@ RENDER_MODE_SURFACE_XLU_LAYER3
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
@ ACTOR_FLAG_USING_IDLE_ANIM
@ ACTOR_PART_FLAG_HAS_PAL_EFFECT
@ ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION
@ ACTOR_PART_FLAG_TRANSPARENT
void btl_show_variable_battle_message(s32, s32, s32)
s32 evt_get_variable(Evt *script, Bytecode var)
s32 player_team_is_ability_active(Actor *actor, s32 ability)
void show_recovery_shimmer(f32 x, f32 y, f32 z, s32 arg3)
void reset_all_actor_sounds(Actor *)
void remove_player_buffs(s32)
void btl_cam_use_preset_immediately(s32)
void hide_actor_health_bar(Actor *)
void btl_cam_set_zoom(s16)
f32 evt_set_float_variable(Evt *script, Bytecode var, f32 value)
void dispatch_event_actor(Actor *, s32)
void clear_actor_static_pal_adjustments(Actor *)
void add_part_decoration(ActorPart *part, s32 decorationIndex, s32 decorationType)
u32 dma_copy(Addr romStart, Addr romEnd, void *vramDest)
s32 evt_set_variable(Evt *script, Bytecode var, s32 value)
void load_tattle_flags(s32)
void set_part_glow_pal(ActorPart *, s32)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void btl_cam_disable_clamp_x(void)
void create_home_target_list(Actor *actor)
void btl_cam_use_preset(s32)
void btl_cam_target_actor(s32)
s32 inflict_status(Actor *, s32, s32)
void btl_cam_set_zoffset(s16)
ActorPart * get_actor_part(Actor *actor, s32 partID)
void show_start_recovery_shimmer(f32 x, f32 y, f32 z, s32 arg3)
void set_actor_anim(s32 actorID, s32 partID, AnimID animID)
void set_actor_anim_rate(s32 actorID, s32 partID, f32 rate)
void set_part_yaw(s32 actorID, s32 partID, s32 value)
void set_actor_yaw(s32 actorID, s32 yaw)
void remove_part_shadow(s32 actorID, s32 partID)
s32 does_script_exist(s32 id)
f32 evt_get_float_variable(Evt *script, Bytecode var)
void set_part_pal_adjustment(ActorPart *, s32)
void btl_set_state(s32 battleState)
s32 btl_is_popup_displayed(void)
void apply_shock_effect(Actor *)
void create_current_pos_target_list(Actor *actor)
s32 is_actor_health_bar_visible(Actor *)
void remove_part_decoration(ActorPart *part, s32 decorationIndex)
void create_part_shadow(s32 actorID, s32 partID)
#define ACTOR_API_SKIP_ARG
ActorSounds bActorSoundTable[]
s16 delay[2]
Number of frames to wait between walk/fly sounds. Negative values are in distance.
struct Actor * partnerActor
struct Actor * playerActor
struct Actor * enemyActors[24]
s32 enabledStarPowersFlags
BattleStatus gBattleStatus
Vec3s StandardActorHomePositions[]