1407 {
1412 Evt* takeTurnScript;
1417
1418 if (formation->home.index >=
EVT_LIMIT) {
1422 } else {
1423 x = formation->home.vec->x;
1424 y = formation->home.vec->y;
1425 z = formation->home.vec->z;
1426 }
1427
1430
1433 break;
1434 }
1435 }
1436
1438
1439 ASSERT(actor !=
nullptr);
1440
1464 actor->
rot.
x = 0.0f;
1465 actor->
rot.
y = 0.0f;
1466 actor->
rot.
z = 0.0f;
1491
1497 }
1498
1526
1529 }
1530
1531 actor->
state.varTable[0] = formation->var0;
1532 actor->
state.varTable[1] = formation->var1;
1533 actor->
state.varTable[2] = formation->var2;
1534 actor->
state.varTable[3] = formation->var3;
1540
1541 for (
j = 0;
j < partCount;
j++) {
1543
1544 part->decorationTable =
nullptr;
1547 part->targetFlags = 0;
1548
1552
1553 part->visualOffset.x = 0;
1554 part->visualOffset.y = 0;
1555 part->visualOffset.z = 0;
1556
1568 if (
part->opacity < 255) {
1570 }
1576 part->targetPriorityOffset = 0;
1577 part->projectileTargetOffset.x =
actorPartBP->projectileTargetOffset.x;
1578 part->projectileTargetOffset.y =
actorPartBP->projectileTargetOffset.y;
1582 part->rotPivotOffset.x = 0;
1583 part->rotPivotOffset.y = 0;
1584 part->rotPivotOffset.z = 0;
1585 part->scale.x = 1.0f;
1586 part->scale.y = 1.0f;
1587 part->scale.z = 1.0f;
1588 part->verticalStretch = 1;
1589 part->palAnimPosOffset[0] = 0;
1590 part->palAnimPosOffset[1] = 0;
1599
1602 decorations =
part->decorationTable;
1603 ASSERT(decorations !=
nullptr);
1604
1611
1616 }
1617
1621
1623 decorations->
effect[
k] =
nullptr;
1624 decorations->
type[
k] = 0;
1625 }
1626
1627 }
1628
1632 }
1633
1636 }
1637
1638 part->animationRate = 1.0f;
1639 part->curAnimation = 0;
1640 part->spriteInstanceID = -1;
1641
1642 if (
part->idleAnimations !=
nullptr) {
1645 }
1646
1647 if (
j + 1 >= partCount) {
1648 part->nextPart =
nullptr;
1649 continue;
1650 }
1651
1654 if (
part ==
nullptr) {
1656 }
1657
1658 part->nextPart =
nullptr;
1659 }
1660
1671 return actor;
1672}
s32 get_npc_anim_for_status(AnimID *, s32)
struct EffectInstance * disableEffect
struct EffectInstance * attackResultEffect
struct Evt * takeTurnScript
struct EffectInstance * effect[2]
EvtScript * handleEventSource
struct ActorBlueprint * actorBlueprint
struct Evt * handleEventScript
struct ActorPart * partsTable
EvtScript * handlePhaseSource
struct EffectInstance * icePillarEffect
EvtScript * takeTurnSource
union Evt::@10 owner1
Initially -1.
#define ASSERT(condition)
@ RENDER_MODE_SURFACE_XLU_LAYER3
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
@ ACTOR_FLAG_TARGET_ONLY
Battle ends even if undefeated. No turn.
@ ACTOR_PART_FLAG_TARGET_ONLY
@ ACTOR_PART_FLAG_SKIP_MOVEMENT_ALLOC
@ ACTOR_PART_FLAG_NO_SHADOW
@ ACTOR_PART_FLAG_NO_DECORATIONS
s32 create_status_icon_set(void)
Evt * start_script(EvtScript *source, s32 priority, s32 initialState)
s32 create_shadow_type(s32 type, f32 x, f32 y, f32 z)
void * heap_malloc(s32 size)
s32 spr_load_npc_sprite(s32 animID, u32 *extraAnimList)
s16 delay[2]
Number of frames to wait between walk/fly sounds. Negative values are in distance.
EXTERN_C ActorSounds bActorSoundTable[]
BattleStatus gBattleStatus
Vec3s StandardActorHomePositions[]