mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
clean up
This commit is contained in:
parent
c1e7d3310c
commit
77a3238a3b
@ -21,6 +21,12 @@ typedef struct Vec2bu {
|
||||
/* 0x01 */ u8 y;
|
||||
} Vec2bu; // size = 0x02
|
||||
|
||||
typedef struct Vec3b {
|
||||
/* 0x00 */ s8 x;
|
||||
/* 0x01 */ s8 y;
|
||||
/* 0x02 */ s8 z;
|
||||
} Vec3b; // size = 0x03
|
||||
|
||||
typedef struct Vec3f {
|
||||
/* 0x00 */ f32 x;
|
||||
/* 0x04 */ f32 y;
|
||||
@ -1017,7 +1023,7 @@ typedef struct ActorPartMovement {
|
||||
typedef struct ActorPart {
|
||||
/* 0x00 */ s32 flags;
|
||||
/* 0x04 */ s32 targetFlags; /* initialized to 0 */
|
||||
/* 0x08 */ struct StaticActorPart* staticData;
|
||||
/* 0x08 */ struct ActorPartDesc* staticData;
|
||||
/* 0x0C */ struct ActorPart* nextPart;
|
||||
/* 0x10 */ struct ActorPartMovement* movement;
|
||||
/* 0x14 */ Vec3s partOffset;
|
||||
@ -1333,19 +1339,6 @@ typedef struct Actor {
|
||||
/* 0x440 */ struct MenuIcon* ptrDefuffIcon;
|
||||
} Actor; // size = 0x444
|
||||
|
||||
typedef struct StaticActorPart {
|
||||
/* 0x00 */ s32 flags;
|
||||
/* 0x04 */ s8 index;
|
||||
/* 0x05 */ u8 posOffset[3];
|
||||
/* 0x08 */ u8 targetOffset[2];
|
||||
/* 0x0A */ s16 opacity;
|
||||
/* 0x0C */ u32* idleAnimations;
|
||||
/* 0x10 */ u32* defenseTable;
|
||||
/* 0x14 */ s32 eventFlags;
|
||||
/* 0x18 */ s32 flags3;
|
||||
/* 0x1C */ char unk_1C[8];
|
||||
} StaticActorPart; // size = 0x24
|
||||
|
||||
typedef struct TileDescriptor {
|
||||
/* 0x00 */ s8 name[32];
|
||||
/* 0x20 */ s16 auxW;
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "common.h"
|
||||
#include "battle/battle.h"
|
||||
#include "script_api/battle.h"
|
||||
#include "sprite/npc/goomba.h"
|
||||
#include "goomba.h"
|
||||
|
||||
ApiStatus func_8021818C_430B2C(ScriptInstance* script, s32 isInitialCall);
|
||||
@ -9,7 +10,7 @@ s32 idleAnimations_80219714[];
|
||||
s32 defenseTable_80219610[];
|
||||
s32 statusTable_8021961C[];
|
||||
s32 defenseTable_80219610[];
|
||||
s32 partsTable_802196C8[];
|
||||
ActorPartDesc partsTable_802196C8[];
|
||||
Script script_Init_802197AC;
|
||||
Script script_TakeTurn_8021A300;
|
||||
Script script_Idle_802197F8;
|
||||
@ -17,23 +18,53 @@ Script script_HandleEvent_80219AD4;
|
||||
|
||||
// 431FB0-431FBC (VRAM: 80219610)
|
||||
s32 defenseTable_80219610[] = {
|
||||
0x00000001, 0x00000000, 0x00000000,
|
||||
Element_NORMAL, 0,
|
||||
|
||||
Element_END,
|
||||
};
|
||||
|
||||
// 431FBC-432068 (VRAM: 8021961C)
|
||||
s32 statusTable_8021961C[] = {
|
||||
0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000006, 0x00000064, 0x00000009, 0x00000064,
|
||||
0x00000007, 0x00000064, 0x00000004, 0x00000064, 0x00000003, 0x00000064, 0x0000000B, 0x00000064,
|
||||
0x00000005, 0x00000064, 0x0000000A, 0x00000064, 0x00000008, 0x00000064, 0x0000001F, 0x00000000,
|
||||
0x00000020, 0x00000000, 0x00000025, 0x00000000, 0x00000022, 0x00000000, 0x00000024, 0x00000000,
|
||||
0x00000023, 0x00000000, 0x00000021, 0x00000000, 0x00000026, 0x00000000, 0x00000027, 0x00000000,
|
||||
0x00000029, 0x00000000, 0x00000000,
|
||||
Debuff_NORMAL, 0,
|
||||
Debuff_DEFAULT, 0,
|
||||
Debuff_SLEEP, 100,
|
||||
Debuff_POISON, 100,
|
||||
Debuff_FROZEN, 100,
|
||||
Debuff_DIZZY, 100,
|
||||
Debuff_FEAR, 100,
|
||||
Debuff_STATIC, 100,
|
||||
Debuff_PARALYZE, 100,
|
||||
Debuff_SHRINK, 100,
|
||||
Debuff_STOP, 100,
|
||||
|
||||
Debuff_DEFAULT_TURN_MOD, 0,
|
||||
Debuff_SLEEP_TURN_MOD, 0,
|
||||
Debuff_POISON_TURN_MOD, 0,
|
||||
Debuff_FROZEN_TURN_MOD, 0,
|
||||
Debuff_DIZZY_TURN_MOD, 0,
|
||||
Debuff_FEAR_TURN_MOD, 0,
|
||||
Debuff_STATIC_TURN_MOD, 0,
|
||||
Debuff_PARALYZE_TURN_MOD, 0,
|
||||
Debuff_SHRINK_TURN_MOD, 0,
|
||||
Debuff_STOP_TURN_MOD, 0,
|
||||
|
||||
Debuff_END,
|
||||
};
|
||||
|
||||
// 432068-43208C (VRAM: 802196C8)
|
||||
s32 partsTable_802196C8[] = {
|
||||
0x00800000, 0x01000000, 0x001400FF, idleAnimations_80219714, defenseTable_80219610, 0x00000000, 0x00000000, 0x00F60000,
|
||||
0x00000000,
|
||||
ActorPartDesc partsTable_802196C8[] = {
|
||||
{
|
||||
.flags = 0x00800000,
|
||||
.index = 1,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 0x14 },
|
||||
.opacity = 0xFF,
|
||||
.idleAnimations = idleAnimations_80219714,
|
||||
.defenseTable = defenseTable_80219610,
|
||||
.eventFlags = 0,
|
||||
.elementImmunityFlags = 0,
|
||||
0x00, 0xF6,
|
||||
},
|
||||
};
|
||||
|
||||
// 43208C-4320B4 (VRAM: 802196EC)
|
||||
@ -62,9 +93,17 @@ ActorDesc goomba = {
|
||||
|
||||
// 4320B4-432100 (VRAM: 80219714)
|
||||
s32 idleAnimations_80219714[] = {
|
||||
0x00000001, 0x00260001, 0x0000000C, 0x00260000, 0x00000006, 0x00260008, 0x00000009, 0x00260001,
|
||||
0x00000008, 0x00260000, 0x0000000B, 0x00260001, 0x00000005, 0x00260000, 0x00000004, 0x00260007,
|
||||
0x00000003, 0x00260007, 0x00000000,
|
||||
Debuff_NORMAL, NPC_ANIM(goomba, normal, idle),
|
||||
Debuff_STONE, NPC_ANIM(goomba, normal, still),
|
||||
Debuff_SLEEP, NPC_ANIM(goomba, normal, asleep),
|
||||
Debuff_POISON, NPC_ANIM(goomba, normal, idle),
|
||||
Debuff_STOP, NPC_ANIM(goomba, normal, still),
|
||||
Debuff_STATIC, NPC_ANIM(goomba, normal, idle),
|
||||
Debuff_PARALYZE, NPC_ANIM(goomba, normal, still),
|
||||
Debuff_DIZZY, NPC_ANIM(goomba, normal, dizzy),
|
||||
Debuff_FEAR, NPC_ANIM(goomba, normal, dizzy),
|
||||
|
||||
Debuff_END,
|
||||
};
|
||||
|
||||
// 432100-43214C (VRAM: 80219760)
|
||||
@ -76,9 +115,9 @@ s32 idleAnimations_80219760[] = {
|
||||
|
||||
// 43214C-432198 (VRAM: 802197AC)
|
||||
Script script_Init_802197AC = SCRIPT({
|
||||
BindTakeTurn(0xFFFFFF81, script_TakeTurn_8021A300);
|
||||
BindIdle(0xFFFFFF81, script_Idle_802197F8);
|
||||
BindHandleEvent(0xFFFFFF81, script_HandleEvent_80219AD4);
|
||||
BindTakeTurn(ActorID_SELF, script_TakeTurn_8021A300);
|
||||
BindIdle(ActorID_SELF, script_Idle_802197F8);
|
||||
BindHandleEvent(ActorID_SELF, script_HandleEvent_80219AD4);
|
||||
});
|
||||
|
||||
// 432198-432474 (VRAM: 802197F8)
|
||||
@ -88,39 +127,39 @@ Script script_Idle_802197F8 = SCRIPT({
|
||||
SI_VAR(0) += 80;
|
||||
loop SI_VAR(0) {
|
||||
0:
|
||||
GetStatusFlags(0xFFFFFF81, SI_VAR(1));
|
||||
GetStatusFlags(ActorID_SELF, SI_VAR(1));
|
||||
if (SI_VAR(1) ? 0x35D000) {
|
||||
sleep 1;
|
||||
goto 0;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SI_VAR(0) += 5;
|
||||
SetActorIdleSpeed(0xFFFFFF81, 1.0);
|
||||
SetIdleAnimations(0xFFFFFF81, 1, idleAnimations_80219760);
|
||||
SetIdleGoal(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
IdleRunToGoal(0xFFFFFF81, 0);
|
||||
SetIdleAnimations(0xFFFFFF81, 1, idleAnimations_80219714);
|
||||
SetActorIdleSpeed(ActorID_SELF, 1.0);
|
||||
SetIdleAnimations(ActorID_SELF, 1, idleAnimations_80219760);
|
||||
SetIdleGoal(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
IdleRunToGoal(ActorID_SELF, 0);
|
||||
SetIdleAnimations(ActorID_SELF, 1, idleAnimations_80219714);
|
||||
loop 20 {
|
||||
1:
|
||||
GetStatusFlags(0xFFFFFF81, SI_VAR(1));
|
||||
GetStatusFlags(ActorID_SELF, SI_VAR(1));
|
||||
if (SI_VAR(1) ? 0x35D000) {
|
||||
sleep 1;
|
||||
goto 1;
|
||||
}
|
||||
sleep 1;
|
||||
}
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SI_VAR(0) -= 5;
|
||||
SetActorIdleSpeed(0xFFFFFF81, 1.0);
|
||||
SetIdleAnimations(0xFFFFFF81, 1, idleAnimations_80219760);
|
||||
SetIdleGoal(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
IdleRunToGoal(0xFFFFFF81, 0);
|
||||
SetIdleAnimations(0xFFFFFF81, 1, idleAnimations_80219714);
|
||||
SetActorIdleSpeed(ActorID_SELF, 1.0);
|
||||
SetIdleAnimations(ActorID_SELF, 1, idleAnimations_80219760);
|
||||
SetIdleGoal(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
IdleRunToGoal(ActorID_SELF, 0);
|
||||
SetIdleAnimations(ActorID_SELF, 1, idleAnimations_80219714);
|
||||
loop 80 {
|
||||
2:
|
||||
GetStatusFlags(0xFFFFFF81, SI_VAR(1));
|
||||
GetStatusFlags(ActorID_SELF, SI_VAR(1));
|
||||
if (SI_VAR(1) ? 0x35D000) {
|
||||
sleep 1;
|
||||
goto 2;
|
||||
@ -132,10 +171,10 @@ Script script_Idle_802197F8 = SCRIPT({
|
||||
|
||||
// 432474-432B34 (VRAM: 80219AD4)
|
||||
Script script_HandleEvent_80219AD4 = SCRIPT({
|
||||
UseIdleAnimation(0xFFFFFF81, 0);
|
||||
EnableIdleScript(0xFFFFFF81, 0);
|
||||
SetActorScale(0xFFFFFF81, 1.0, 1.0, 1.0);
|
||||
GetLastEvent(0xFFFFFF81, SI_VAR(0));
|
||||
UseIdleAnimation(ActorID_SELF, 0);
|
||||
EnableIdleScript(ActorID_SELF, 0);
|
||||
SetActorScale(ActorID_SELF, 1.0, 1.0, 1.0);
|
||||
GetLastEvent(ActorID_SELF, SI_VAR(0));
|
||||
match SI_VAR(0) {
|
||||
9, 10 {
|
||||
SI_VAR(0) = c 0x1;
|
||||
@ -179,17 +218,17 @@ Script script_HandleEvent_80219AD4 = SCRIPT({
|
||||
SI_VAR(0) = c 0x1;
|
||||
SI_VAR(1) = c 0x260005;
|
||||
await DoJumpBack;
|
||||
JumpToGoal(0xFFFFFF81, 5, 0, 1, 0);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 2.0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260007);
|
||||
SetGoalToHome(0xFFFFFF81);
|
||||
SetActorSpeed(0xFFFFFF81, 8.0);
|
||||
RunToGoal(0xFFFFFF81, 0, 0);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 1.0);
|
||||
JumpToGoal(ActorID_SELF, 5, 0, 1, 0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 2.0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260007);
|
||||
SetGoalToHome(ActorID_SELF);
|
||||
SetActorSpeed(ActorID_SELF, 8.0);
|
||||
RunToGoal(ActorID_SELF, 0, 0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 1.0);
|
||||
sleep 5;
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
SetActorJumpGravity(0xFFFFFF81, 1.6005859375);
|
||||
JumpToGoal(0xFFFFFF81, 5, 0, 1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
SetActorJumpGravity(ActorID_SELF, 1.6005859375);
|
||||
JumpToGoal(ActorID_SELF, 5, 0, 1, 0);
|
||||
}
|
||||
== 38 {
|
||||
SI_VAR(0) = c 0x1;
|
||||
@ -216,13 +255,13 @@ Script script_HandleEvent_80219AD4 = SCRIPT({
|
||||
return;
|
||||
}
|
||||
== 53 {
|
||||
SetAnimationRate(0xFFFFFF81, 1, 2.0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260003);
|
||||
SetGoalToHome(0xFFFFFF81);
|
||||
SetActorSpeed(0xFFFFFF81, 4.0);
|
||||
RunToGoal(0xFFFFFF81, 0, 0);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 1.0);
|
||||
HPBarToHome(0xFFFFFF81);
|
||||
SetAnimationRate(ActorID_SELF, 1, 2.0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260003);
|
||||
SetGoalToHome(ActorID_SELF);
|
||||
SetActorSpeed(ActorID_SELF, 4.0);
|
||||
RunToGoal(ActorID_SELF, 0, 0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 1.0);
|
||||
HPBarToHome(ActorID_SELF);
|
||||
}
|
||||
== 49 {
|
||||
SI_VAR(0) = c 0x1;
|
||||
@ -249,9 +288,9 @@ Script script_HandleEvent_80219AD4 = SCRIPT({
|
||||
} else {
|
||||
}
|
||||
}
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
EnableIdleScript(0xFFFFFF81, 1);
|
||||
UseIdleAnimation(0xFFFFFF81, 1);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
EnableIdleScript(ActorID_SELF, 1);
|
||||
UseIdleAnimation(ActorID_SELF, 1);
|
||||
});
|
||||
|
||||
// 432B34-432CA0 (VRAM: 8021A194)
|
||||
@ -272,42 +311,42 @@ f32 floatTable_8021A194[] = {
|
||||
|
||||
// 432CA0-433968 (VRAM: 8021A300)
|
||||
Script script_TakeTurn_8021A300 = SCRIPT({
|
||||
UseIdleAnimation(0xFFFFFF81, 0);
|
||||
EnableIdleScript(0xFFFFFF81, 0);
|
||||
SetTargetActor(0xFFFFFF81, 0);
|
||||
UseIdleAnimation(ActorID_SELF, 0);
|
||||
EnableIdleScript(ActorID_SELF, 0);
|
||||
SetTargetActor(ActorID_SELF, 0);
|
||||
UseCamPreset(63);
|
||||
BattleCamTargetActor(0xFFFFFF81);
|
||||
BattleCamTargetActor(ActorID_SELF);
|
||||
0x8024ECF8(-1, 1, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260003);
|
||||
SetGoalToTarget(0xFFFFFF81);
|
||||
AddGoalPos(0xFFFFFF81, 50, 0, 0);
|
||||
SetActorSpeed(0xFFFFFF81, 6.0);
|
||||
RunToGoal(0xFFFFFF81, 0, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
SetActorDispOffset(0xFFFFFF81, 0, -1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260003);
|
||||
SetGoalToTarget(ActorID_SELF);
|
||||
AddGoalPos(ActorID_SELF, 50, 0, 0);
|
||||
SetActorSpeed(ActorID_SELF, 6.0);
|
||||
RunToGoal(ActorID_SELF, 0, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
SetActorDispOffset(ActorID_SELF, 0, -1, 0);
|
||||
sleep 1;
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 0xFFFFFFFE, 0);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 0xFFFFFFFE, 0);
|
||||
sleep 5;
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 0, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260004);
|
||||
EnemyTestTarget(0xFFFFFF81, SI_VAR(0), 0, 0, 1, 16);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 0, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260004);
|
||||
EnemyTestTarget(ActorID_SELF, SI_VAR(0), 0, 0, 1, 16);
|
||||
match SI_VAR(0) {
|
||||
6, 5 {
|
||||
SI_VAR(10) = SI_VAR(0);
|
||||
SetGoalToTarget(0xFFFFFF81);
|
||||
GetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetGoalToTarget(ActorID_SELF);
|
||||
GetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SI_VAR(0) -= 10;
|
||||
SI_VAR(1) = 10;
|
||||
SI_VAR(2) += 3;
|
||||
SetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorJumpGravity(0xFFFFFF81, 1.2001953125);
|
||||
SetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorJumpGravity(ActorID_SELF, 1.2001953125);
|
||||
spawn {
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(1), SI_VAR(2), SI_VAR(0));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(1), SI_VAR(2), SI_VAR(0));
|
||||
SI_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(4), SI_VAR(5), SI_VAR(6));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(4), SI_VAR(5), SI_VAR(6));
|
||||
func_8021818C_430B2C(SI_VAR(1), SI_VAR(2), SI_VAR(4), SI_VAR(5), SI_VAR(0));
|
||||
SetActorRotation(0xFFFFFF81, 0, 0, SI_VAR(0));
|
||||
SetActorRotation(ActorID_SELF, 0, 0, SI_VAR(0));
|
||||
SI_VAR(1) = SI_VAR(4);
|
||||
SI_VAR(2) = SI_VAR(5);
|
||||
SI_VAR(3) = SI_VAR(6);
|
||||
@ -316,73 +355,73 @@ Script script_TakeTurn_8021A300 = SCRIPT({
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260004);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260004);
|
||||
}
|
||||
JumpToGoal(0xFFFFFF81, 16, 0, 1, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260008);
|
||||
SetActorScale(0xFFFFFF81, 1.1005859375, 0.80078125, 1.0);
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 5, 0);
|
||||
JumpToGoal(ActorID_SELF, 16, 0, 1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260008);
|
||||
SetActorScale(ActorID_SELF, 1.1005859375, 0.80078125, 1.0);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 5, 0);
|
||||
sleep 1;
|
||||
SetActorScale(0xFFFFFF81, 1.30078125, 0.5, 1.0);
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 0xFFFFFFFE, 0);
|
||||
SetActorScale(ActorID_SELF, 1.30078125, 0.5, 1.0);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 0xFFFFFFFE, 0);
|
||||
sleep 1;
|
||||
SetActorScale(0xFFFFFF81, 1.0, 1.0, 1.0);
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 7, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260005);
|
||||
SetActorScale(ActorID_SELF, 1.0, 1.0, 1.0);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 7, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260005);
|
||||
sleep 5;
|
||||
if (SI_VAR(10) == 5) {
|
||||
EnemyTestTarget(0xFFFFFF81, SI_VAR(0), 0x80000000, 0, 0, 0);
|
||||
EnemyTestTarget(ActorID_SELF, SI_VAR(0), 0x80000000, 0, 0, 0);
|
||||
}
|
||||
sleep 5;
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 0, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260004);
|
||||
SetGoalToTarget(0xFFFFFF81);
|
||||
GetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorDispOffset(ActorID_SELF, 0, 0, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260004);
|
||||
SetGoalToTarget(ActorID_SELF);
|
||||
GetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SI_VAR(0) += 20;
|
||||
SI_VAR(1) = 0;
|
||||
SetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorJumpGravity(0xFFFFFF81, 2.0);
|
||||
SetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorJumpGravity(ActorID_SELF, 2.0);
|
||||
spawn {
|
||||
sleep 4;
|
||||
SI_VAR(0) = 180;
|
||||
loop 4 {
|
||||
SI_VAR(0) -= 45;
|
||||
SetActorRotation(0xFFFFFF81, 0, 0, SI_VAR(0));
|
||||
SetActorRotation(ActorID_SELF, 0, 0, SI_VAR(0));
|
||||
sleep 1;
|
||||
}
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260004);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260004);
|
||||
}
|
||||
JumpToGoal(0xFFFFFF81, 15, 0, 1, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260007);
|
||||
JumpToGoal(ActorID_SELF, 15, 0, 1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260007);
|
||||
sleep 5;
|
||||
UseCamPreset(2);
|
||||
YieldTurn();
|
||||
SetActorYaw(0xFFFFFF81, 180);
|
||||
AddActorDecoration(0xFFFFFF81, 1, 0, 2);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 2.0);
|
||||
SetGoalToHome(0xFFFFFF81);
|
||||
SetActorSpeed(0xFFFFFF81, 8.0);
|
||||
RunToGoal(0xFFFFFF81, 0, 0);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 1.0);
|
||||
SetActorYaw(0xFFFFFF81, 0);
|
||||
SetActorYaw(ActorID_SELF, 180);
|
||||
AddActorDecoration(ActorID_SELF, 1, 0, 2);
|
||||
SetAnimationRate(ActorID_SELF, 1, 2.0);
|
||||
SetGoalToHome(ActorID_SELF);
|
||||
SetActorSpeed(ActorID_SELF, 8.0);
|
||||
RunToGoal(ActorID_SELF, 0, 0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 1.0);
|
||||
SetActorYaw(ActorID_SELF, 0);
|
||||
sleep 5;
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
SetActorJumpGravity(0xFFFFFF81, 1.6005859375);
|
||||
JumpToGoal(0xFFFFFF81, 5, 0, 1, 0);
|
||||
RemoveActorDecoration(0xFFFFFF81, 1, 0);
|
||||
EnableIdleScript(0xFFFFFF81, 1);
|
||||
UseIdleAnimation(0xFFFFFF81, 1);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
SetActorJumpGravity(ActorID_SELF, 1.6005859375);
|
||||
JumpToGoal(ActorID_SELF, 5, 0, 1, 0);
|
||||
RemoveActorDecoration(ActorID_SELF, 1, 0);
|
||||
EnableIdleScript(ActorID_SELF, 1);
|
||||
UseIdleAnimation(ActorID_SELF, 1);
|
||||
return;
|
||||
} else {
|
||||
SetGoalToTarget(0xFFFFFF81);
|
||||
SetActorJumpGravity(0xFFFFFF81, 1.2001953125);
|
||||
SetGoalToTarget(ActorID_SELF);
|
||||
SetActorJumpGravity(ActorID_SELF, 1.2001953125);
|
||||
spawn {
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(1), SI_VAR(2), SI_VAR(0));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(1), SI_VAR(2), SI_VAR(0));
|
||||
SI_VAR(0) = 0;
|
||||
loop 16 {
|
||||
GetActorPos(0xFFFFFF81, SI_VAR(4), SI_VAR(5), SI_VAR(6));
|
||||
GetActorPos(ActorID_SELF, SI_VAR(4), SI_VAR(5), SI_VAR(6));
|
||||
func_8021818C_430B2C(SI_VAR(1), SI_VAR(2), SI_VAR(4), SI_VAR(5), SI_VAR(0));
|
||||
SetActorRotation(0xFFFFFF81, 0, 0, SI_VAR(0));
|
||||
SetActorRotation(ActorID_SELF, 0, 0, SI_VAR(0));
|
||||
SI_VAR(1) = SI_VAR(4);
|
||||
SI_VAR(2) = SI_VAR(5);
|
||||
SI_VAR(3) = SI_VAR(6);
|
||||
@ -391,51 +430,51 @@ Script script_TakeTurn_8021A300 = SCRIPT({
|
||||
}
|
||||
spawn {
|
||||
sleep 6;
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260004);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260004);
|
||||
}
|
||||
JumpToGoal(0xFFFFFF81, 16, 0, 1, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x26000B);
|
||||
SetActorScale(0xFFFFFF81, 1.1005859375, 0.80078125, 1.0);
|
||||
JumpToGoal(ActorID_SELF, 16, 0, 1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x26000B);
|
||||
SetActorScale(ActorID_SELF, 1.1005859375, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(0xFFFFFF81, 1.30078125, 0.5, 1.0);
|
||||
SetActorScale(ActorID_SELF, 1.30078125, 0.5, 1.0);
|
||||
sleep 1;
|
||||
}
|
||||
}
|
||||
EnemyDamageTarget(0xFFFFFF81, SI_VAR(0), 0, 0, 0, 1, 32);
|
||||
EnemyDamageTarget(ActorID_SELF, SI_VAR(0), 0, 0, 0, 1, 32);
|
||||
match SI_VAR(0) {
|
||||
0, 2 {
|
||||
UseCamPreset(2);
|
||||
SetActorScale(0xFFFFFF81, 1.1005859375, 0.80078125, 1.0);
|
||||
SetActorScale(ActorID_SELF, 1.1005859375, 0.80078125, 1.0);
|
||||
sleep 1;
|
||||
SetActorScale(0xFFFFFF81, 1.0, 1.0, 1.0);
|
||||
SetActorScale(ActorID_SELF, 1.0, 1.0, 1.0);
|
||||
sleep 1;
|
||||
SetActorRotation(0xFFFFFF81, 0, 0, 0);
|
||||
SetActorDispOffset(0xFFFFFF81, 0, 0, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
GetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SetActorRotation(ActorID_SELF, 0, 0, 0);
|
||||
SetActorDispOffset(ActorID_SELF, 0, 0, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
GetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
SI_VAR(0) += 40;
|
||||
SI_VAR(1) = 0;
|
||||
SetActorJumpGravity(0xFFFFFF81, 1.80078125);
|
||||
SetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(0xFFFFFF81, 10, 0, 1, 0);
|
||||
SetActorJumpGravity(ActorID_SELF, 1.80078125);
|
||||
SetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(ActorID_SELF, 10, 0, 1, 0);
|
||||
SI_VAR(0) += 30;
|
||||
SetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(0xFFFFFF81, 8, 0, 1, 0);
|
||||
SetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(ActorID_SELF, 8, 0, 1, 0);
|
||||
SI_VAR(0) += 20;
|
||||
SetGoalPos(0xFFFFFF81, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(0xFFFFFF81, 6, 0, 1, 0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260001);
|
||||
SetGoalPos(ActorID_SELF, SI_VAR(0), SI_VAR(1), SI_VAR(2));
|
||||
JumpToGoal(ActorID_SELF, 6, 0, 1, 0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260001);
|
||||
sleep 3;
|
||||
YieldTurn();
|
||||
SetAnimationRate(0xFFFFFF81, 1, 2.0);
|
||||
SetAnimation(0xFFFFFF81, 1, 0x260003);
|
||||
SetGoalToHome(0xFFFFFF81);
|
||||
SetActorSpeed(0xFFFFFF81, 8.0);
|
||||
RunToGoal(0xFFFFFF81, 0, 0);
|
||||
SetAnimationRate(0xFFFFFF81, 1, 1.0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 2.0);
|
||||
SetAnimation(ActorID_SELF, 1, 0x260003);
|
||||
SetGoalToHome(ActorID_SELF);
|
||||
SetActorSpeed(ActorID_SELF, 8.0);
|
||||
RunToGoal(ActorID_SELF, 0, 0);
|
||||
SetAnimationRate(ActorID_SELF, 1, 1.0);
|
||||
}
|
||||
}
|
||||
EnableIdleScript(0xFFFFFF81, 1);
|
||||
UseIdleAnimation(0xFFFFFF81, 1);
|
||||
EnableIdleScript(ActorID_SELF, 1);
|
||||
UseIdleAnimation(ActorID_SELF, 1);
|
||||
});
|
||||
|
||||
|
@ -11,7 +11,7 @@ typedef struct ActorDesc {
|
||||
/* 0x07 */ u8 maxHP;
|
||||
/* 0x08 */ s16 partCount;
|
||||
/* 0x0A */ char unk_0A[2];
|
||||
/* 0x0C */ struct StaticActorPart** partsData;
|
||||
/* 0x0C */ struct ActorPartDesc** partsData;
|
||||
/* 0x10 */ Bytecode* script;
|
||||
/* 0x14 */ s32* statusTable;
|
||||
/* 0x18 */ u8 escapeChance;
|
||||
@ -66,6 +66,10 @@ typedef struct Battle {
|
||||
/* 0x10 */ s32 unk_10;
|
||||
} BattleList[]; // size = 0x14 * n
|
||||
|
||||
#define BATTLE(name, formation, stage) { name, ARRAY_COUNT(formation), formation, stage }
|
||||
|
||||
// TODO: enum for home position (0..3 are floor, 4..7 are air, etc.)
|
||||
|
||||
typedef struct {
|
||||
Element element;
|
||||
s32 defense;
|
||||
@ -73,8 +77,17 @@ typedef struct {
|
||||
|
||||
typedef DefenseTableEntry DefenseTable[];
|
||||
|
||||
#define BATTLE(name, formation, stage) { name, ARRAY_COUNT(formation), formation, stage }
|
||||
|
||||
// TODO: enum for home position (0..3 are floor, 4..7 are air, etc.)
|
||||
typedef struct ActorPartDesc {
|
||||
/* 0x00 */ s32 flags;
|
||||
/* 0x04 */ s8 index;
|
||||
/* 0x05 */ Vec3b posOffset;
|
||||
/* 0x08 */ Vec2b targetOffset;
|
||||
/* 0x0A */ s16 opacity;
|
||||
/* 0x0C */ s32* idleAnimations;
|
||||
/* 0x10 */ s32* defenseTable;
|
||||
/* 0x14 */ s32 eventFlags;
|
||||
/* 0x18 */ s32 elementImmunityFlags;
|
||||
/* 0x1C */ char unk_1C[8];
|
||||
} ActorPartDesc; // size = 0x24
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user