mirror of
https://github.com/pmret/papermario.git
synced 2024-09-18 23:42:35 +02:00
last actors (#1118)
* omo2 * minor fixes * actor types extraction * format py --------- Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
parent
70082b0a30
commit
3293216356
@ -13,7 +13,7 @@
|
|||||||
#include "messages.h"
|
#include "messages.h"
|
||||||
#include "battle/formation_names.h"
|
#include "battle/formation_names.h"
|
||||||
#include "battle/stage_names.h"
|
#include "battle/stage_names.h"
|
||||||
#include "battle/actor_levels.h"
|
#include "battle/actor_types.h"
|
||||||
|
|
||||||
#ifdef PERMUTER
|
#ifdef PERMUTER
|
||||||
extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA;
|
extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA;
|
||||||
|
@ -742,7 +742,7 @@ typedef struct DebuffFXData {
|
|||||||
/* 0x30 */ f32 unk_30;
|
/* 0x30 */ f32 unk_30;
|
||||||
/* 0x34 */ s32 alpha;
|
/* 0x34 */ s32 alpha;
|
||||||
/* 0x38 */ Color_RGB8 primCol;
|
/* 0x38 */ Color_RGB8 primCol;
|
||||||
/* 0x38 */ Color_RGB8 envCol;
|
/* 0x3B */ Color_RGB8 envCol;
|
||||||
/* 0x3E */ char unk_3E[2];
|
/* 0x3E */ char unk_3E[2];
|
||||||
} DebuffFXData; // size = 0x40
|
} DebuffFXData; // size = 0x40
|
||||||
|
|
||||||
@ -1024,12 +1024,12 @@ typedef struct AuraFXData {
|
|||||||
} AuraFXData; // size = 0x70
|
} AuraFXData; // size = 0x70
|
||||||
|
|
||||||
typedef struct BulbGlowFXData {
|
typedef struct BulbGlowFXData {
|
||||||
/* 0x00 */ s32 unk_00;
|
/* 0x00 */ s32 type;
|
||||||
/* 0x04 */ Vec3f pos;
|
/* 0x04 */ Vec3f pos;
|
||||||
/* 0x10 */ s32 unk_10;
|
/* 0x10 */ s32 brightness;
|
||||||
/* 0x14 */ s32 unk_14;
|
/* 0x14 */ s32 timeLeft;
|
||||||
/* 0x18 */ s32 unk_18;
|
/* 0x18 */ s32 lifetime;
|
||||||
/* 0x1C */ s32 unk_1C;
|
/* 0x1C */ s32 depthQueryID;
|
||||||
/* 0x20 */ s32 unk_20;
|
/* 0x20 */ s32 unk_20;
|
||||||
} BulbGlowFXData; // size = 0x24
|
} BulbGlowFXData; // size = 0x24
|
||||||
|
|
||||||
|
@ -1851,7 +1851,7 @@ enum TargetFlags {
|
|||||||
TARGET_FLAG_200000 = 0x00200000,
|
TARGET_FLAG_200000 = 0x00200000,
|
||||||
TARGET_FLAG_400000 = 0x00400000,
|
TARGET_FLAG_400000 = 0x00400000,
|
||||||
TARGET_FLAG_800000 = 0x00800000,
|
TARGET_FLAG_800000 = 0x00800000,
|
||||||
TARGET_FLAG_80000000 = 0x80000000,
|
TARGET_FLAG_OVERRIDE = 0x80000000, // skip choosing a target
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ActorPartTargetFlags {
|
enum ActorPartTargetFlags {
|
||||||
@ -3310,7 +3310,7 @@ enum ActorPartFlags {
|
|||||||
ACTOR_PART_FLAG_200000 = 0x00200000,
|
ACTOR_PART_FLAG_200000 = 0x00200000,
|
||||||
ACTOR_PART_FLAG_400000 = 0x00400000,
|
ACTOR_PART_FLAG_400000 = 0x00400000,
|
||||||
ACTOR_PART_FLAG_MULTI_TARGET = 0x00800000, ///< Can be targeted with multi-target attacks (e.g. Star Storm).
|
ACTOR_PART_FLAG_MULTI_TARGET = 0x00800000, ///< Can be targeted with multi-target attacks (e.g. Star Storm).
|
||||||
ACTOR_PART_FLAG_1000000 = 0x01000000,
|
ACTOR_PART_FLAG_HAS_PAL_EFFECT = 0x01000000,
|
||||||
ACTOR_PART_FLAG_2000000 = 0x02000000,
|
ACTOR_PART_FLAG_2000000 = 0x02000000,
|
||||||
ACTOR_PART_FLAG_4000000 = 0x04000000,
|
ACTOR_PART_FLAG_4000000 = 0x04000000,
|
||||||
ACTOR_PART_FLAG_8000000 = 0x08000000,
|
ACTOR_PART_FLAG_8000000 = 0x08000000,
|
||||||
@ -4061,8 +4061,8 @@ enum BattleMessages {
|
|||||||
BTL_MSG_STAR_POWER_FILLED = 0x1C,
|
BTL_MSG_STAR_POWER_FILLED = 0x1C,
|
||||||
BTL_MSG_ATTACK_UP = 0x1D,
|
BTL_MSG_ATTACK_UP = 0x1D,
|
||||||
BTL_MSG_DEFENCE_UP = 0x1E,
|
BTL_MSG_DEFENCE_UP = 0x1E,
|
||||||
BTL_MSG_1F = 0x1F,
|
BTL_MSG_HEAL_ONE = 0x1F,
|
||||||
BTL_MSG_20 = 0x20,
|
BTL_MSG_HEAL_ALL = 0x20,
|
||||||
BTL_MSG_ENEMY_TRANSPARENT = 0x21,
|
BTL_MSG_ENEMY_TRANSPARENT = 0x21,
|
||||||
BTL_MSG_ENEMY_CHARGED = 0x22,
|
BTL_MSG_ENEMY_CHARGED = 0x22,
|
||||||
BTL_MSG_PARTNER_INJURED = 0x23,
|
BTL_MSG_PARTNER_INJURED = 0x23,
|
||||||
|
@ -310,10 +310,10 @@ ApiStatus func_8027D434(Evt* script, s32 isInitialCall);
|
|||||||
ApiStatus func_8026F1A0(Evt* script, s32 isInitialCall);
|
ApiStatus func_8026F1A0(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus PlayLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
ApiStatus PlayLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus StopLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
ApiStatus StopLoopingSoundAtActor(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus func_8026ED20(Evt* script, s32 isInitialCall);
|
ApiStatus EnableActorPaletteEffects(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall);
|
ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus BattleCamTargetActorPart(Evt* script, s32 isInitialCall);
|
ApiStatus BattleCamTargetActorPart(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus func_802537C0(Evt* script, s32 isInitialCall);
|
ApiStatus GetDarknessStatus(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus CancelEnemyTurn(Evt* script, s32 isInitialCall);
|
ApiStatus CancelEnemyTurn(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus GetAnimatedNodeRotation(Evt* script, s32 isInitialCall);
|
ApiStatus GetAnimatedNodeRotation(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus GetAnimatedNodePosition(Evt* script, s32 isInitialCall);
|
ApiStatus GetAnimatedNodePosition(Evt* script, s32 isInitialCall);
|
||||||
|
@ -13,7 +13,7 @@ extern s16 D_802809F6;
|
|||||||
extern s16 DemoBattleBeginDelay;
|
extern s16 DemoBattleBeginDelay;
|
||||||
extern s32 BattleScreenFadeAmt;
|
extern s32 BattleScreenFadeAmt;
|
||||||
extern EvtScript EVS_OnBattleInit;
|
extern EvtScript EVS_OnBattleInit;
|
||||||
extern s32 D_80281454[];
|
extern s32 bActorsIgnoreDuringCount[];
|
||||||
extern EvtScript EVS_Mario_OnActorCreate;
|
extern EvtScript EVS_Mario_OnActorCreate;
|
||||||
extern EvtScript EVS_Peach_OnActorCreate;
|
extern EvtScript EVS_Peach_OnActorCreate;
|
||||||
|
|
||||||
@ -343,7 +343,7 @@ void btl_state_update_normal_start(void) {
|
|||||||
|
|
||||||
for (i = 0; i < BattleEnemiesCreated; i++) {
|
for (i = 0; i < BattleEnemiesCreated; i++) {
|
||||||
create_actor(&(*battle->formation)[i]);
|
create_actor(&(*battle->formation)[i]);
|
||||||
types = D_80281454;
|
types = bActorsIgnoreDuringCount;
|
||||||
actor = battleStatus->enemyActors[i];
|
actor = battleStatus->enemyActors[i];
|
||||||
|
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
|
2157
src/17D6A0.c
2157
src/17D6A0.c
File diff suppressed because it is too large
Load Diff
25
src/181810.c
25
src/181810.c
@ -342,7 +342,6 @@ ApiStatus EnableBattleFloorReflections(Evt* script, s32 isInitialCall) {
|
|||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) {
|
ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) {
|
||||||
BattleStatus* battleStatus = &gBattleStatus;
|
BattleStatus* battleStatus = &gBattleStatus;
|
||||||
Bytecode* args = script->ptrReadPos;
|
Bytecode* args = script->ptrReadPos;
|
||||||
@ -366,25 +365,25 @@ ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) {
|
|||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiStatus func_802537C0(Evt* script, s32 isInitialCall) {
|
ApiStatus GetDarknessStatus(Evt* script, s32 isInitialCall) {
|
||||||
Bytecode* args = script->ptrReadPos;
|
Bytecode* args = script->ptrReadPos;
|
||||||
s32 a0 = *args++;
|
s32 out1 = *args++;
|
||||||
s32 a1 = *args++;
|
s32 out2 = *args++;
|
||||||
u8 t1;
|
u8 type;
|
||||||
f32 t2;
|
f32 amt;
|
||||||
s32 t3;
|
s32 isLight;
|
||||||
|
|
||||||
// While loop may not be necessary in the future
|
// While loop may not be necessary in the future
|
||||||
do { get_screen_overlay_params(SCREEN_LAYER_BACK, &t1, &t2); } while (0);
|
do { get_screen_overlay_params(SCREEN_LAYER_BACK, &type, &amt); } while (0);
|
||||||
|
|
||||||
if (t2 < 128.0f) {
|
if (amt < 128.0f) {
|
||||||
t3 = 0;
|
isLight = FALSE;
|
||||||
} else {
|
} else {
|
||||||
t3 = 1;
|
isLight = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
evt_set_variable(script, a0, 1);
|
evt_set_variable(script, out1, SCREEN_LAYER_BACK);
|
||||||
evt_set_variable(script, a1, t3);
|
evt_set_variable(script, out2, isLight);
|
||||||
|
|
||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
@ -1056,10 +1056,10 @@ void appendGfx_npc_actor(b32 isPartner, s32 actorIndex) {
|
|||||||
}
|
}
|
||||||
palChanged = TRUE;
|
palChanged = TRUE;
|
||||||
}
|
}
|
||||||
if ((!palChanged) && !(part->flags & ACTOR_PART_FLAG_1000000)) {
|
if (!palChanged && !(part->flags & ACTOR_PART_FLAG_HAS_PAL_EFFECT)) {
|
||||||
set_actor_pal_adjustment(actor, PAL_ADJUST_NONE);
|
set_actor_pal_adjustment(actor, PAL_ADJUST_NONE);
|
||||||
}
|
}
|
||||||
if ((!decorChanged) && !(part->flags & ACTOR_PART_FLAG_1000000)) {
|
if (!decorChanged && !(part->flags & ACTOR_PART_FLAG_HAS_PAL_EFFECT)) {
|
||||||
func_80266EE8(actor, UNK_PAL_EFFECT_0);
|
func_80266EE8(actor, UNK_PAL_EFFECT_0);
|
||||||
}
|
}
|
||||||
if (actor->flags & ACTOR_FLAG_4000000) {
|
if (actor->flags & ACTOR_FLAG_4000000) {
|
||||||
|
@ -88,7 +88,7 @@ void create_target_list(Actor* actor, s32 arg1) {
|
|||||||
s32 row;
|
s32 row;
|
||||||
s32 skip;
|
s32 skip;
|
||||||
|
|
||||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) {
|
if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) {
|
||||||
actor->targetListLength = -1;
|
actor->targetListLength = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -247,7 +247,7 @@ void create_target_list(Actor* actor, s32 arg1) {
|
|||||||
if (targetData->actorID == ACTOR_PLAYER || targetData->actorID == ACTOR_PARTNER) {
|
if (targetData->actorID == ACTOR_PLAYER || targetData->actorID == ACTOR_PARTNER) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) {
|
if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) {
|
||||||
skip = TRUE;
|
skip = TRUE;
|
||||||
goto END2;
|
goto END2;
|
||||||
}
|
}
|
||||||
|
16
src/415D90.c
16
src/415D90.c
@ -301,7 +301,7 @@ BSS s32 D_802ACC60;
|
|||||||
BSS s32 D_802ACC64;
|
BSS s32 D_802ACC64;
|
||||||
BSS s32 D_802ACC68;
|
BSS s32 D_802ACC68;
|
||||||
BSS s32 D_802ACC6C;
|
BSS s32 D_802ACC6C;
|
||||||
BSS s32 D_802ACC70[24];
|
BSS s32 BattleMenu_TargetHudElems[24];
|
||||||
BSS PopupMenu D_802ACCD0;
|
BSS PopupMenu D_802ACCD0;
|
||||||
BSS s8 BattleMenuState;
|
BSS s8 BattleMenuState;
|
||||||
BSS s8 D_802AD001;
|
BSS s8 D_802AD001;
|
||||||
@ -4911,7 +4911,7 @@ void btl_state_update_select_target(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) {
|
if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) {
|
||||||
if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) {
|
if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) {
|
||||||
gBattleSubState = battleStatus->acceptTargetMenuSubstate;
|
gBattleSubState = battleStatus->acceptTargetMenuSubstate;
|
||||||
if (gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) {
|
if (gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) {
|
||||||
@ -4955,7 +4955,7 @@ void btl_state_update_select_target(void) {
|
|||||||
|
|
||||||
for (i = 0; i < targetListLength; i++) {
|
for (i = 0; i < targetListLength; i++) {
|
||||||
id = hud_element_create(&HES_HandPointDownLoop);
|
id = hud_element_create(&HES_HandPointDownLoop);
|
||||||
D_802ACC70[i] = id;
|
BattleMenu_TargetHudElems[i] = id;
|
||||||
hud_element_set_render_depth(id, 0);
|
hud_element_set_render_depth(id, 0);
|
||||||
hud_element_set_render_pos(id, 0, -100);
|
hud_element_set_render_pos(id, 0, -100);
|
||||||
}
|
}
|
||||||
@ -5009,7 +5009,7 @@ void btl_state_update_select_target(void) {
|
|||||||
|
|
||||||
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
||||||
actorFlags = get_actor(target->actorID)->flags;
|
actorFlags = get_actor(target->actorID)->flags;
|
||||||
id = D_802ACC70[0];
|
id = BattleMenu_TargetHudElems[0];
|
||||||
|
|
||||||
if (actorFlags & ACTOR_FLAG_UPSIDE_DOWN) {
|
if (actorFlags & ACTOR_FLAG_UPSIDE_DOWN) {
|
||||||
hud_element_set_script(id, &HES_HandPointLeftLoop);
|
hud_element_set_script(id, &HES_HandPointLeftLoop);
|
||||||
@ -5027,7 +5027,7 @@ void btl_state_update_select_target(void) {
|
|||||||
actor->targetActorID = target->actorID;
|
actor->targetActorID = target->actorID;
|
||||||
actor->targetPartIndex = target->partID;
|
actor->targetPartIndex = target->partID;
|
||||||
for (i = 0; i < targetListLength; i++) {
|
for (i = 0; i < targetListLength; i++) {
|
||||||
hud_element_free(D_802ACC70[i]);
|
hud_element_free(BattleMenu_TargetHudElems[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) {
|
if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) {
|
||||||
@ -5050,7 +5050,7 @@ void btl_state_update_select_target(void) {
|
|||||||
break;
|
break;
|
||||||
case BTL_SUBSTATE_SELECT_TARGET_CANCEL:
|
case BTL_SUBSTATE_SELECT_TARGET_CANCEL:
|
||||||
for (i = 0; i < targetListLength; i++) {
|
for (i = 0; i < targetListLength; i++) {
|
||||||
hud_element_free(D_802ACC70[i]);
|
hud_element_free(BattleMenu_TargetHudElems[i]);
|
||||||
}
|
}
|
||||||
gBattleStatus.flags1 |= BS_FLAGS1_10000 | BS_FLAGS1_MENU_OPEN;
|
gBattleStatus.flags1 |= BS_FLAGS1_10000 | BS_FLAGS1_MENU_OPEN;
|
||||||
actor->flags |= ACTOR_FLAG_8000000;
|
actor->flags |= ACTOR_FLAG_8000000;
|
||||||
@ -5122,7 +5122,7 @@ void btl_state_draw_select_target(void) {
|
|||||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_ENEMY) {
|
if (battleStatus->curTargetListFlags & TARGET_FLAG_ENEMY) {
|
||||||
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
||||||
anotherActor = get_actor(target->actorID);
|
anotherActor = get_actor(target->actorID);
|
||||||
id = D_802ACC70[0];
|
id = BattleMenu_TargetHudElems[0];
|
||||||
targetX = target->posA.x;
|
targetX = target->posA.x;
|
||||||
targetY = target->posA.y;
|
targetY = target->posA.y;
|
||||||
targetZ = target->posA.z;
|
targetZ = target->posA.z;
|
||||||
@ -5150,7 +5150,7 @@ void btl_state_draw_select_target(void) {
|
|||||||
for (i = 0; i < targetListLength; i++) {
|
for (i = 0; i < targetListLength; i++) {
|
||||||
target = &actor->targetData[targetIndexList[i]];
|
target = &actor->targetData[targetIndexList[i]];
|
||||||
anotherActor = get_actor(target->actorID);
|
anotherActor = get_actor(target->actorID);
|
||||||
id = D_802ACC70[i];
|
id = BattleMenu_TargetHudElems[i];
|
||||||
targetX = target->posA.x;
|
targetX = target->posA.x;
|
||||||
targetY = target->posA.y;
|
targetY = target->posA.y;
|
||||||
targetZ = target->posA.z;
|
targetZ = target->posA.z;
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
#include "battle/battle.h"
|
#include "battle/battle.h"
|
||||||
|
|
||||||
extern s32 D_8029FBD0;
|
extern s32 IsGroupHeal;
|
||||||
extern s8 D_8029FBD4;
|
extern s8 ApplyingBuff;
|
||||||
|
|
||||||
s32 count_targets(Actor* actor, s32 targetHomeIndex, s32 targetSelectionFlags) {
|
s32 count_targets(Actor* actor, s32 targetHomeIndex, s32 targetSelectionFlags) {
|
||||||
BattleStatus* battleStatus = &gBattleStatus;
|
BattleStatus* battleStatus = &gBattleStatus;
|
||||||
@ -2655,7 +2655,7 @@ ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall) {
|
|||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiStatus func_8026ED20(Evt* script, s32 isInitialCall) {
|
ApiStatus EnableActorPaletteEffects(Evt* script, s32 isInitialCall) {
|
||||||
Bytecode* args = script->ptrReadPos;
|
Bytecode* args = script->ptrReadPos;
|
||||||
s32 actorID = evt_get_variable(script, *args++);
|
s32 actorID = evt_get_variable(script, *args++);
|
||||||
s32 partID = evt_get_variable(script, *args++);
|
s32 partID = evt_get_variable(script, *args++);
|
||||||
@ -2670,9 +2670,9 @@ ApiStatus func_8026ED20(Evt* script, s32 isInitialCall) {
|
|||||||
actorPart = get_actor_part(actor, partID);
|
actorPart = get_actor_part(actor, partID);
|
||||||
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
actorPart->flags |= ACTOR_FLAG_1000000;
|
actorPart->flags |= ACTOR_PART_FLAG_HAS_PAL_EFFECT;
|
||||||
} else {
|
} else {
|
||||||
actorPart->flags &= ~ACTOR_FLAG_1000000;
|
actorPart->flags &= ~ACTOR_PART_FLAG_HAS_PAL_EFFECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
@ -3231,7 +3231,7 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) {
|
|||||||
if (actor->flags & ACTOR_FLAG_UPSIDE_DOWN) {
|
if (actor->flags & ACTOR_FLAG_UPSIDE_DOWN) {
|
||||||
btl_cam_set_zoffset(0);
|
btl_cam_set_zoffset(0);
|
||||||
}
|
}
|
||||||
D_8029FBD4 = 1;
|
ApplyingBuff = TRUE;
|
||||||
script->functionTemp[3] = 5;
|
script->functionTemp[3] = 5;
|
||||||
script->functionTemp[0] = 1;
|
script->functionTemp[0] = 1;
|
||||||
}
|
}
|
||||||
@ -3312,11 +3312,11 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) {
|
|||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||||
D_8029FBD4 = 0;
|
break;
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
}
|
||||||
break;
|
ApplyingBuff = FALSE;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
return ApiStatus_BLOCK;
|
return ApiStatus_BLOCK;
|
||||||
}
|
}
|
||||||
@ -3355,7 +3355,7 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) {
|
|||||||
btl_cam_set_zoffset(0);
|
btl_cam_set_zoffset(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
D_8029FBD4 = 1;
|
ApplyingBuff = TRUE;
|
||||||
script->functionTemp[3] = 5;
|
script->functionTemp[3] = 5;
|
||||||
script->functionTemp[0] = 1;
|
script->functionTemp[0] = 1;
|
||||||
}
|
}
|
||||||
@ -3436,11 +3436,11 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) {
|
|||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||||
D_8029FBD4 = 0;
|
break;
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
}
|
||||||
break;
|
ApplyingBuff = FALSE;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
return ApiStatus_BLOCK;
|
return ApiStatus_BLOCK;
|
||||||
}
|
}
|
||||||
@ -3477,7 +3477,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
|||||||
btl_cam_set_zoffset(0);
|
btl_cam_set_zoffset(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
D_8029FBD4 = 1;
|
ApplyingBuff = TRUE;
|
||||||
script->functionTemp[3] = 5;
|
script->functionTemp[3] = 5;
|
||||||
script->functionTemp[0] = 1;
|
script->functionTemp[0] = 1;
|
||||||
}
|
}
|
||||||
@ -3501,7 +3501,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
|||||||
if (script->functionTemp[3] == 0) {
|
if (script->functionTemp[3] == 0) {
|
||||||
fx_radial_shimmer(3, x, y, z, 1.0f, 30);
|
fx_radial_shimmer(3, x, y, z, 1.0f, 30);
|
||||||
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
||||||
script->functionTemp[3] = 0x1E;
|
script->functionTemp[3] = 30;
|
||||||
script->functionTemp[0] = 2;
|
script->functionTemp[0] = 2;
|
||||||
} else {
|
} else {
|
||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
@ -3513,7 +3513,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
|||||||
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
||||||
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
||||||
btl_cam_move(15);
|
btl_cam_move(15);
|
||||||
inflict_status(actor, 0xE, vanished);
|
inflict_status(actor, STATUS_KEY_TRANSPARENT, vanished);
|
||||||
script->functionTemp[3] = 15;
|
script->functionTemp[3] = 15;
|
||||||
script->functionTemp[0] = 3;
|
script->functionTemp[0] = 3;
|
||||||
} else {
|
} else {
|
||||||
@ -3542,11 +3542,11 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
|||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||||
D_8029FBD4 = 0;
|
break;
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
}
|
||||||
break;
|
ApplyingBuff = FALSE;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
return ApiStatus_BLOCK;
|
return ApiStatus_BLOCK;
|
||||||
}
|
}
|
||||||
@ -3583,7 +3583,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
|||||||
btl_cam_set_zoffset(0);
|
btl_cam_set_zoffset(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
D_8029FBD4 = 1;
|
ApplyingBuff = TRUE;
|
||||||
script->functionTemp[3] = 5;
|
script->functionTemp[3] = 5;
|
||||||
script->functionTemp[0] = 1;
|
script->functionTemp[0] = 1;
|
||||||
}
|
}
|
||||||
@ -3607,7 +3607,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
|||||||
if (script->functionTemp[3] == 0) {
|
if (script->functionTemp[3] == 0) {
|
||||||
fx_snaking_static(8, x, y, z, 1.0f, 30);
|
fx_snaking_static(8, x, y, z, 1.0f, 30);
|
||||||
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
||||||
script->functionTemp[3] = 0x1E;
|
script->functionTemp[3] = 30;
|
||||||
script->functionTemp[0] = 2;
|
script->functionTemp[0] = 2;
|
||||||
} else {
|
} else {
|
||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
@ -3619,7 +3619,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
|||||||
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
||||||
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
||||||
btl_cam_move(15);
|
btl_cam_move(15);
|
||||||
inflict_status(actor, 0xB, electrified);
|
inflict_status(actor, STATUS_KEY_STATIC, electrified);
|
||||||
script->functionTemp[3] = 15;
|
script->functionTemp[3] = 15;
|
||||||
script->functionTemp[0] = 3;
|
script->functionTemp[0] = 3;
|
||||||
} else {
|
} else {
|
||||||
@ -3648,11 +3648,11 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
|||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||||
D_8029FBD4 = 0;
|
break;
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
}
|
||||||
break;
|
ApplyingBuff = FALSE;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
return ApiStatus_BLOCK;
|
return ApiStatus_BLOCK;
|
||||||
}
|
}
|
||||||
@ -3678,7 +3678,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
|||||||
actorID = script->owner1.enemyID;
|
actorID = script->owner1.enemyID;
|
||||||
}
|
}
|
||||||
hpBoost = evt_get_variable(script, *args++);
|
hpBoost = evt_get_variable(script, *args++);
|
||||||
D_8029FBD0 = evt_get_variable(script, *args++);
|
IsGroupHeal = evt_get_variable(script, *args++);
|
||||||
actor = get_actor(actorID);
|
actor = get_actor(actorID);
|
||||||
script->functionTempPtr[1] = actor;
|
script->functionTempPtr[1] = actor;
|
||||||
script->functionTemp[2] = hpBoost;
|
script->functionTemp[2] = hpBoost;
|
||||||
@ -3689,7 +3689,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
|||||||
btl_cam_move(10);
|
btl_cam_move(10);
|
||||||
func_8024E60C();
|
func_8024E60C();
|
||||||
|
|
||||||
D_8029FBD4 = 1;
|
ApplyingBuff = TRUE;
|
||||||
script->functionTemp[3] = 5;
|
script->functionTemp[3] = 5;
|
||||||
script->functionTemp[0] = 1;
|
script->functionTemp[0] = 1;
|
||||||
}
|
}
|
||||||
@ -3750,9 +3750,9 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (script->functionTemp[3] == 0) {
|
if (script->functionTemp[3] == 0) {
|
||||||
message = 0x20;
|
message = BTL_MSG_HEAL_ALL;
|
||||||
if (D_8029FBD0 == 0) {
|
if (!IsGroupHeal) {
|
||||||
message = 0x1F;
|
message = BTL_MSG_HEAL_ONE;
|
||||||
}
|
}
|
||||||
btl_show_variable_battle_message(message, 60, hpBoost);
|
btl_show_variable_battle_message(message, 60, hpBoost);
|
||||||
script->functionTemp[0] = 4;
|
script->functionTemp[0] = 4;
|
||||||
@ -3772,17 +3772,21 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
|||||||
script->functionTemp[3]--;
|
script->functionTemp[3]--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||||
D_8029FBD4 = 0;
|
break;
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
}
|
||||||
break;
|
ApplyingBuff = FALSE;
|
||||||
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
return ApiStatus_BLOCK;
|
return ApiStatus_BLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiStatus WaitForBuffDone(Evt* script, s32 isInitialCall) {
|
ApiStatus WaitForBuffDone(Evt* script, s32 isInitialCall) {
|
||||||
return (D_8029FBD4 == 0) * ApiStatus_DONE2;
|
if (!ApplyingBuff) {
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
} else {
|
||||||
|
return ApiStatus_BLOCK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiStatus CopyBuffs(Evt* script, s32 isInitialCall) {
|
ApiStatus CopyBuffs(Evt* script, s32 isInitialCall) {
|
||||||
|
@ -82,8 +82,8 @@ void* actionCommandDmaTable[] = {
|
|||||||
BSS s32 sMashMeterSmoothDivisor;
|
BSS s32 sMashMeterSmoothDivisor;
|
||||||
BSS s32 D_8029FBC4_pad[3];
|
BSS s32 D_8029FBC4_pad[3];
|
||||||
// TODO move to actor_api
|
// TODO move to actor_api
|
||||||
BSS s32 D_8029FBD0;
|
BSS s32 IsGroupHeal;
|
||||||
BSS s8 D_8029FBD4;
|
BSS s8 ApplyingBuff;
|
||||||
BSS s32 D_8029FBD8_pad[2];
|
BSS s32 D_8029FBD8_pad[2];
|
||||||
|
|
||||||
#include "action_cmd.h"
|
#include "action_cmd.h"
|
||||||
|
@ -1,191 +0,0 @@
|
|||||||
#ifndef _ACTOR_LEVELS_H_
|
|
||||||
#define _ACTOR_LEVELS_H_
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_NONE 99
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_GOOMBA 5
|
|
||||||
#define ACTOR_LEVEL_PARAGOOMBA 6
|
|
||||||
#define ACTOR_LEVEL_SPIKED_GOOMBA 6
|
|
||||||
#define ACTOR_LEVEL_RED_GOOMBA_BOSS 20
|
|
||||||
#define ACTOR_LEVEL_BLUE_GOOMBA_BOSS 20
|
|
||||||
#define ACTOR_LEVEL_GOOMBA_KING 49
|
|
||||||
#define ACTOR_LEVEL_GOOMNUT_TREE 1
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_GOOMBARIO_TUTOR1 99
|
|
||||||
#define ACTOR_LEVEL_MAGIKOOPA_BOSS 32
|
|
||||||
#define ACTOR_LEVEL_FLYING_MAGIKOOPA_BOSS 32
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_KOOPA_TROOPA 6
|
|
||||||
#define ACTOR_LEVEL_PARATROOPA 6
|
|
||||||
#define ACTOR_LEVEL_FUZZY 6
|
|
||||||
#define ACTOR_LEVEL_BOB_OMB 6
|
|
||||||
#define ACTOR_LEVEL_BILL_BLASTER 10
|
|
||||||
#define ACTOR_LEVEL_BULLET_BILL 5
|
|
||||||
#define ACTOR_LEVEL_FAKE_BOWSER 0
|
|
||||||
#define ACTOR_LEVEL_RED_NINJAKOOPA 17
|
|
||||||
#define ACTOR_LEVEL_BLACK_NINJAKOOPA 17
|
|
||||||
#define ACTOR_LEVEL_GREEN_NINJAKOOPA 16
|
|
||||||
#define ACTOR_LEVEL_YELLOW_NINJAKOOPA 16
|
|
||||||
#define ACTOR_LEVEL_ELDSTAR 99
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_MONTY_MOLE 8
|
|
||||||
#define ACTOR_LEVEL_MONTY_HOLE 9
|
|
||||||
#define ACTOR_LEVEL_CLEFT 10
|
|
||||||
#define ACTOR_LEVEL_WHACKA 0
|
|
||||||
#define ACTOR_LEVEL_BUZZAR 35
|
|
||||||
#define ACTOR_LEVEL_BANDIT 9
|
|
||||||
#define ACTOR_LEVEL_POKEY 9
|
|
||||||
#define ACTOR_LEVEL_POKEY_MUMMY 10
|
|
||||||
#define ACTOR_LEVEL_BUZZY_BEETLE 10
|
|
||||||
#define ACTOR_LEVEL_SWOOPER 10
|
|
||||||
#define ACTOR_LEVEL_STONE_CHOMP 14
|
|
||||||
#define ACTOR_LEVEL_TUTANKOOPA 55
|
|
||||||
#define ACTOR_LEVEL_CHOMP 14
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_GLOOMBA 11
|
|
||||||
#define ACTOR_LEVEL_PARAGLOOMBA 11
|
|
||||||
#define ACTOR_LEVEL_SPIKED_GLOOMBA 12
|
|
||||||
#define ACTOR_LEVEL_DARK_KOOPA 18
|
|
||||||
#define ACTOR_LEVEL_DARK_PARATROOPA 18
|
|
||||||
#define ACTOR_LEVEL_BLOOPER_BABY 0
|
|
||||||
#define ACTOR_LEVEL_BLOOPER 44
|
|
||||||
#define ACTOR_LEVEL_ELECTRO_BLOOPER1 50
|
|
||||||
#define ACTOR_LEVEL_SUPER_BLOOPER1 65
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_FOREST_FUZZY 11
|
|
||||||
#define ACTOR_LEVEL_PIRANHA_PLANT 11
|
|
||||||
#define ACTOR_LEVEL_HYPER_GOOMBA 12
|
|
||||||
#define ACTOR_LEVEL_HYPER_PARAGOOMBA 12
|
|
||||||
#define ACTOR_LEVEL_HYPER_CLEFT 15
|
|
||||||
#define ACTOR_LEVEL_CLUBBA 13
|
|
||||||
#define ACTOR_LEVEL_TUBBA_BLUBBA_INVINCIBLE 70
|
|
||||||
#define ACTOR_LEVEL_TUBBA_BLUBBA 0
|
|
||||||
#define ACTOR_LEVEL_TUBBA_HEART 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_SHY_GUY 14
|
|
||||||
#define ACTOR_LEVEL_SKY_GUY 14
|
|
||||||
#define ACTOR_LEVEL_MEDI_GUY 14
|
|
||||||
#define ACTOR_LEVEL_GROOVE_GUY 15
|
|
||||||
#define ACTOR_LEVEL_PYRO_GUY 15
|
|
||||||
#define ACTOR_LEVEL_SPY_GUY 15
|
|
||||||
#define ACTOR_LEVEL_ANTI_GUY 42
|
|
||||||
#define ACTOR_LEVEL_SLOT_MACHINE_STOP 99
|
|
||||||
#define ACTOR_LEVEL_SLOT_MACHINE_START 99
|
|
||||||
#define ACTOR_LEVEL_BIG_LANTERN_GHOST 42
|
|
||||||
#define ACTOR_LEVEL_GENERAL_GUY 73
|
|
||||||
#define ACTOR_LEVEL_LIGHT_BULB 0
|
|
||||||
#define ACTOR_LEVEL_TOY_TANK 0
|
|
||||||
#define ACTOR_LEVEL_SHY_SQUAD 0
|
|
||||||
#define ACTOR_LEVEL_STILT_GUY 0
|
|
||||||
#define ACTOR_LEVEL_SHY_STACK 0
|
|
||||||
#define ACTOR_LEVEL_SIGNAL_GUY 0
|
|
||||||
#define ACTOR_LEVEL_SHY_SQUAD_DUP 0
|
|
||||||
#define ACTOR_LEVEL_SHY_GUY_DUP 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_FUZZIPEDE 43
|
|
||||||
#define ACTOR_LEVEL_JUNGLE_FUZZY 16
|
|
||||||
#define ACTOR_LEVEL_SPEAR_GUY 16
|
|
||||||
#define ACTOR_LEVEL_HURT_PLANT 16
|
|
||||||
#define ACTOR_LEVEL_M_BUSH 16
|
|
||||||
#define ACTOR_LEVEL_PUTRID_PIRANHA 17
|
|
||||||
#define ACTOR_LEVEL_LAVA_BUBBLE 17
|
|
||||||
#define ACTOR_LEVEL_SPIKE_TOP 17
|
|
||||||
#define ACTOR_LEVEL_LAVA_PIRANHA_PHASE_1 45
|
|
||||||
#define ACTOR_LEVEL_LAVA_BUD_PHASE_1 0
|
|
||||||
#define ACTOR_LEVEL_PETIT_PIRANHA_BOMB 0
|
|
||||||
#define ACTOR_LEVEL_PETIT_PIRANHA 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_BZZAP 19
|
|
||||||
#define ACTOR_LEVEL_CRAZEE_DAYZEE 19
|
|
||||||
#define ACTOR_LEVEL_AMAZY_DAYZEE 100
|
|
||||||
#define ACTOR_LEVEL_MONTY_MOLE_BOSS 19
|
|
||||||
#define ACTOR_LEVEL_RUFF_PUFF 19
|
|
||||||
#define ACTOR_LEVEL_LAKITU 20
|
|
||||||
#define ACTOR_LEVEL_SPINY 19
|
|
||||||
#define ACTOR_LEVEL_SPIKE 40
|
|
||||||
#define ACTOR_LEVEL_HUFF_N_PUFF 80
|
|
||||||
#define ACTOR_LEVEL_TUFF_PUFF 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_FROST_PIRANHA 22
|
|
||||||
#define ACTOR_LEVEL_GULPIT 22
|
|
||||||
#define ACTOR_LEVEL_GULPIT_ROCKS 0
|
|
||||||
#define ACTOR_LEVEL_MONSTAR 45
|
|
||||||
#define ACTOR_LEVEL_SWOOPULA 22
|
|
||||||
#define ACTOR_LEVEL_WHITE_CLUBBA 23
|
|
||||||
#define ACTOR_LEVEL_DUPLIGHOST 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_GOOMBARIO 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_KOOPER 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_BOMBETTE 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_PARAKARRY 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_BOW 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_WATT 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_SUSHIE 23
|
|
||||||
#define ACTOR_LEVEL_GHOST_LAKILESTER 23
|
|
||||||
#define ACTOR_LEVEL_ALBINO_DINO 23
|
|
||||||
#define ACTOR_LEVEL_CRYSTAL_KING 85
|
|
||||||
#define ACTOR_LEVEL_CRYSTAL_BIT 0
|
|
||||||
#define ACTOR_LEVEL_CRYSTAL_CLONE 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_EMBER 24
|
|
||||||
#define ACTOR_LEVEL_KOOPATROL 25
|
|
||||||
#define ACTOR_LEVEL_BONY_BEETLE 25
|
|
||||||
#define ACTOR_LEVEL_HAMMER_BROS 27
|
|
||||||
#define ACTOR_LEVEL_BOMBSHELL_BLASTER 27
|
|
||||||
#define ACTOR_LEVEL_BOMBSHELL_BILL 24
|
|
||||||
#define ACTOR_LEVEL_DRY_BONES 30
|
|
||||||
#define ACTOR_LEVEL_MAGIKOOPA 26
|
|
||||||
#define ACTOR_LEVEL_FLYING_MAGIKOOPA 26
|
|
||||||
#define ACTOR_LEVEL_MAGICLONE 26
|
|
||||||
#define ACTOR_LEVEL_FLYING_MAGICLONE 26
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_WHITE_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_GRAY_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_RED_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_YELLOW_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_GREEN_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_FLYING_WHITE_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_FLYING_GRAY_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_FLYING_RED_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_FLYING_YELLOW_MAGIKOOPA 21
|
|
||||||
#define ACTOR_LEVEL_FLYING_GREEN_MAGIKOOPA 21
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_KAMMY_KOOPA 99
|
|
||||||
#define ACTOR_LEVEL_INTRO_BOWSER 0
|
|
||||||
#define ACTOR_LEVEL_HALLWAY_BOWSER 100
|
|
||||||
#define ACTOR_LEVEL_FINAL_BOWSER_1 0
|
|
||||||
#define ACTOR_LEVEL_FINAL_BOWSER_2 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_1 41
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_2 44
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_3 52
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_4 59
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_5 65
|
|
||||||
#define ACTOR_LEVEL_JR_TROOPA_6 74
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_KENT_C_KOOPA 55
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_CHAN 0
|
|
||||||
#define ACTOR_LEVEL_LEE 0
|
|
||||||
#define ACTOR_LEVEL_LEE_GOOMBARIO 0
|
|
||||||
#define ACTOR_LEVEL_LEE_KOOPER 0
|
|
||||||
#define ACTOR_LEVEL_LEE_BOMBETTE 0
|
|
||||||
#define ACTOR_LEVEL_LEE_PARAKARRY 0
|
|
||||||
#define ACTOR_LEVEL_LEE_BOW 0
|
|
||||||
#define ACTOR_LEVEL_LEE_WATT 0
|
|
||||||
#define ACTOR_LEVEL_LEE_SUSHIE 0
|
|
||||||
#define ACTOR_LEVEL_LEE_LAKILESTER 0
|
|
||||||
#define ACTOR_LEVEL_THE_MASTER_1 0
|
|
||||||
#define ACTOR_LEVEL_THE_MASTER_2 0
|
|
||||||
#define ACTOR_LEVEL_THE_MASTER_3 0
|
|
||||||
|
|
||||||
#define ACTOR_LEVEL_GOOMBARIO 0
|
|
||||||
#define ACTOR_LEVEL_KOOPER 0
|
|
||||||
#define ACTOR_LEVEL_BOMBETTE 0
|
|
||||||
#define ACTOR_LEVEL_PARAKARRY 0
|
|
||||||
#define ACTOR_LEVEL_BOW 0
|
|
||||||
#define ACTOR_LEVEL_WATT 0
|
|
||||||
#define ACTOR_LEVEL_SUSHIE 0
|
|
||||||
#define ACTOR_LEVEL_LAKILESTER 0
|
|
||||||
#define ACTOR_LEVEL_TWINK 0
|
|
||||||
|
|
||||||
#endif _ACTOR_LEVELS_H_
|
|
2336
src/battle/actors.yaml
Normal file
2336
src/battle/actors.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -1456,15 +1456,15 @@ EvtScript N(EVS_Attack_BodySlam) = {
|
|||||||
EVT_DIV(LVar0, LVar1)
|
EVT_DIV(LVar0, LVar1)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_LE(20)
|
EVT_CASE_LE(20)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_CASE_LE(40)
|
EVT_CASE_LE(40)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_CASE_LE(60)
|
EVT_CASE_LE(60)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_CASE_LE(80)
|
EVT_CASE_LE(80)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_CASE_DEFAULT
|
EVT_CASE_DEFAULT
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||||
|
@ -419,9 +419,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||||
@ -443,9 +443,9 @@ EvtScript N(EVS_Flying_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||||
@ -1503,14 +1503,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1521,7 +1521,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1616,14 +1616,14 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1634,7 +1634,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1729,14 +1729,14 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1747,7 +1747,7 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1847,14 +1847,14 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1865,7 +1865,7 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -1,213 +1,213 @@
|
|||||||
#include "animation_script.h"
|
#include "animation_script.h"
|
||||||
#include "mapfs/omo_bt07_shape.h"
|
#include "mapfs/omo_bt07_shape.h"
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A2A0) = {
|
StaticAnimatorNode N(Node02) = {
|
||||||
.pos = { 79.0f, 47.0f, 0.0f },
|
.pos = { 79.0f, 47.0f, 0.0f },
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 29,
|
.modelID = MODEL_tanp,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A2CC) = {
|
StaticAnimatorNode N(Node23) = {
|
||||||
.pos = { 80.0f, 15.0f, 0.0f },
|
.pos = { 80.0f, 15.0f, 0.0f },
|
||||||
.sibling = &N(8021A2A0),
|
.sibling = &N(Node02),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 32,
|
.modelID = MODEL_h2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A2F8) = {
|
StaticAnimatorNode N(Node22) = {
|
||||||
.pos = { 79.0f, 20.0f, 30.0f },
|
.pos = { 79.0f, 20.0f, 30.0f },
|
||||||
.sibling = &N(8021A2CC),
|
.sibling = &N(Node23),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 34,
|
.modelID = MODEL_sya2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A324) = {
|
StaticAnimatorNode N(Node21) = {
|
||||||
.pos = { 80.0f, 20.0f, 30.0f },
|
.pos = { 80.0f, 20.0f, 30.0f },
|
||||||
.sibling = &N(8021A2F8),
|
.sibling = &N(Node22),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 35,
|
.modelID = MODEL_h3,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A350) = {
|
StaticAnimatorNode N(Node20) = {
|
||||||
.pos = { 80.0f, 20.0f, -29.0f },
|
.pos = { 80.0f, 20.0f, -29.0f },
|
||||||
.sibling = &N(8021A324),
|
.sibling = &N(Node21),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 37,
|
.modelID = MODEL_n2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A37C) = {
|
StaticAnimatorNode N(Node19) = {
|
||||||
.pos = { 79.0f, 20.0f, -30.0f },
|
.pos = { 79.0f, 20.0f, -30.0f },
|
||||||
.sibling = &N(8021A350),
|
.sibling = &N(Node20),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 38,
|
.modelID = MODEL_h4,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A3A8) = {
|
StaticAnimatorNode N(Node18) = {
|
||||||
.rot = { 0, 0, -6 },
|
.rot = { 0, 0, -6 },
|
||||||
.pos = { 97.0f, 73.0f, 0.0f },
|
.pos = { 97.0f, 73.0f, 0.0f },
|
||||||
.sibling = &N(8021A37C),
|
.sibling = &N(Node19),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 40,
|
.modelID = MODEL_kyu2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A3D4) = {
|
StaticAnimatorNode N(Node17) = {
|
||||||
.rot = { 0, 0, -6 },
|
.rot = { 0, 0, -6 },
|
||||||
.pos = { 97.0f, 73.0f, 0.0f },
|
.pos = { 97.0f, 73.0f, 0.0f },
|
||||||
.sibling = &N(8021A3A8),
|
.sibling = &N(Node18),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 41,
|
.modelID = MODEL_kyu1,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A400) = {
|
StaticAnimatorNode N(Node16) = {
|
||||||
.rot = { 0, 0, -6 },
|
.rot = { 0, 0, -6 },
|
||||||
.pos = { 97.0f, 73.0f, 0.0f },
|
.pos = { 97.0f, 73.0f, 0.0f },
|
||||||
.sibling = &N(8021A3D4),
|
.sibling = &N(Node17),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 42,
|
.modelID = MODEL_kyu,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A42C) = {
|
StaticAnimatorNode N(Node15) = {
|
||||||
.rot = { 0, 0, -6 },
|
.rot = { 0, 0, -6 },
|
||||||
.pos = { 97.0f, 55.0f, 0.0f },
|
.pos = { 97.0f, 55.0f, 0.0f },
|
||||||
.sibling = &N(8021A400),
|
.sibling = &N(Node16),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 44,
|
.modelID = MODEL_en2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A458) = {
|
StaticAnimatorNode N(Node14) = {
|
||||||
.rot = { 0, 0, -6 },
|
.rot = { 0, 0, -6 },
|
||||||
.pos = { 97.0f, 54.0f, 0.0f },
|
.pos = { 97.0f, 54.0f, 0.0f },
|
||||||
.sibling = &N(8021A42C),
|
.sibling = &N(Node15),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 45,
|
.modelID = MODEL_en,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A484) = {
|
StaticAnimatorNode N(Node13) = {
|
||||||
.pos = { 112.0f, 48.0f, 0.0f },
|
.pos = { 112.0f, 48.0f, 0.0f },
|
||||||
.sibling = &N(8021A458),
|
.sibling = &N(Node14),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 47,
|
.modelID = MODEL_nob,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A4B0) = {
|
StaticAnimatorNode N(Node12) = {
|
||||||
.rot = { 0, 0, -16383 },
|
.rot = { 0, 0, -16383 },
|
||||||
.pos = { 77.0f, 60.0f, 0.0f },
|
.pos = { 77.0f, 60.0f, 0.0f },
|
||||||
.sibling = &N(8021A484),
|
.sibling = &N(Node13),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 49,
|
.modelID = MODEL_futa,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A4DC) = {
|
StaticAnimatorNode N(Node11) = {
|
||||||
.rot = { 0, 0, 5469 },
|
.rot = { 0, 0, 5469 },
|
||||||
.pos = { 60.0f, 9.0f, 34.0f },
|
.pos = { 60.0f, 9.0f, 34.0f },
|
||||||
.sibling = &N(8021A4B0),
|
.sibling = &N(Node12),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 52,
|
.modelID = MODEL_a1,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A508) = {
|
StaticAnimatorNode N(Node10) = {
|
||||||
.rot = { 0, 0, 5469 },
|
.rot = { 0, 0, 5469 },
|
||||||
.pos = { 60.0f, 9.0f, 34.0f },
|
.pos = { 60.0f, 9.0f, 34.0f },
|
||||||
.sibling = &N(8021A4DC),
|
.sibling = &N(Node11),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 51,
|
.modelID = MODEL_n3,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A534) = {
|
StaticAnimatorNode N(Node09) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 100.0f, 10.0f, 34.0f },
|
.pos = { 100.0f, 10.0f, 34.0f },
|
||||||
.sibling = &N(8021A508),
|
.sibling = &N(Node10),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 55,
|
.modelID = MODEL_a2,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A560) = {
|
StaticAnimatorNode N(Node08) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 100.0f, 10.0f, 34.0f },
|
.pos = { 100.0f, 10.0f, 34.0f },
|
||||||
.sibling = &N(8021A534),
|
.sibling = &N(Node09),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 54,
|
.modelID = MODEL_n4,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A58C) = {
|
StaticAnimatorNode N(Node07) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 59.0f, 9.0f, -34.0f },
|
.pos = { 59.0f, 9.0f, -34.0f },
|
||||||
.sibling = &N(8021A560),
|
.sibling = &N(Node08),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 57,
|
.modelID = MODEL_n5,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A5B8) = {
|
StaticAnimatorNode N(Node06) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 59.0f, 9.0f, -34.0f },
|
.pos = { 59.0f, 9.0f, -34.0f },
|
||||||
.sibling = &N(8021A58C),
|
.sibling = &N(Node07),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 58,
|
.modelID = MODEL_a3,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A5E4) = {
|
StaticAnimatorNode N(Node05) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 100.0f, 9.0f, -34.0f },
|
.pos = { 100.0f, 9.0f, -34.0f },
|
||||||
.sibling = &N(8021A5B8),
|
.sibling = &N(Node06),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 60,
|
.modelID = MODEL_n6,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A610) = {
|
StaticAnimatorNode N(Node04) = {
|
||||||
.rot = { 0, 0, 5708 },
|
.rot = { 0, 0, 5708 },
|
||||||
.pos = { 100.0f, 9.0f, -34.0f },
|
.pos = { 100.0f, 9.0f, -34.0f },
|
||||||
.sibling = &N(8021A5E4),
|
.sibling = &N(Node05),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 61,
|
.modelID = MODEL_a4,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A63C) = {
|
StaticAnimatorNode N(Node03) = {
|
||||||
.pos = { 65.0f, 46.0f, 0.0f },
|
.pos = { 65.0f, 46.0f, 0.0f },
|
||||||
.sibling = &N(8021A610),
|
.sibling = &N(Node04),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 63,
|
.modelID = MODEL_g106,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A668) = {
|
StaticAnimatorNode N(Node01) = {
|
||||||
.pos = { 79.0f, 47.0f, 0.0f },
|
.pos = { 79.0f, 47.0f, 0.0f },
|
||||||
.sibling = &N(8021A63C),
|
.sibling = &N(Node03),
|
||||||
.vertexStartOffset = -1,
|
.vertexStartOffset = -1,
|
||||||
.modelID = 30,
|
.modelID = MODEL_h1,
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode N(8021A694) = {
|
StaticAnimatorNode N(Root) = {
|
||||||
.child = &N(8021A668),
|
.child = &N(Node01),
|
||||||
};
|
};
|
||||||
|
|
||||||
StaticAnimatorNode* toy_tank_model[] = {
|
StaticAnimatorNode* toy_tank_model[] = {
|
||||||
&N(8021A694),
|
&N(Root),
|
||||||
&N(8021A668),
|
&N(Node01),
|
||||||
&N(8021A2A0),
|
&N(Node02),
|
||||||
&N(8021A63C),
|
&N(Node03),
|
||||||
&N(8021A610),
|
&N(Node04),
|
||||||
&N(8021A5E4),
|
&N(Node05),
|
||||||
&N(8021A5B8),
|
&N(Node06),
|
||||||
&N(8021A58C),
|
&N(Node07),
|
||||||
&N(8021A560),
|
&N(Node08),
|
||||||
&N(8021A534),
|
&N(Node09),
|
||||||
&N(8021A508),
|
&N(Node10),
|
||||||
&N(8021A4DC),
|
&N(Node11),
|
||||||
&N(8021A4B0),
|
&N(Node12),
|
||||||
&N(8021A484),
|
&N(Node13),
|
||||||
&N(8021A458),
|
&N(Node14),
|
||||||
&N(8021A42C),
|
&N(Node15),
|
||||||
&N(8021A400),
|
&N(Node16),
|
||||||
&N(8021A3D4),
|
&N(Node17),
|
||||||
&N(8021A3A8),
|
&N(Node18),
|
||||||
&N(8021A37C),
|
&N(Node19),
|
||||||
&N(8021A350),
|
&N(Node20),
|
||||||
&N(8021A324),
|
&N(Node21),
|
||||||
&N(8021A2F8),
|
&N(Node22),
|
||||||
&N(8021A2CC),
|
&N(Node23),
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_shake = {
|
AnimScript AS_ToyTank_Shake = {
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||||
@ -1356,7 +1356,7 @@ AnimScript toy_tank_as_shake = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_fall_apart = {
|
AnimScript AS_ToyTank_FallApart = {
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||||
@ -1928,7 +1928,7 @@ AnimScript toy_tank_as_fall_apart = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_close_hatch = {
|
AnimScript AS_ToyTank_CloseHatch = {
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||||
@ -2922,7 +2922,7 @@ AnimScript toy_tank_as_close_hatch = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_open_hatch = {
|
AnimScript AS_ToyTank_OpenHatch = {
|
||||||
as_DisableMirroring
|
as_DisableMirroring
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
@ -3088,7 +3088,7 @@ AnimScript toy_tank_as_open_hatch = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_5 = {
|
AnimScript AS_ToyTank_Unused1 = {
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||||
@ -3702,7 +3702,7 @@ AnimScript toy_tank_as_5 = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_move_forward = {
|
AnimScript AS_ToyTank_MoveForward = {
|
||||||
as_DisableMirroring
|
as_DisableMirroring
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
@ -7139,7 +7139,7 @@ AnimScript toy_tank_as_move_forward = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_7 = {
|
AnimScript AS_ToyTank_Unused2 = {
|
||||||
as_SetRotation(0, 0.0, 0.0, 0.0)
|
as_SetRotation(0, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(0, 0, 0, 0)
|
as_SetPos(0, 0, 0, 0)
|
||||||
as_SetScale(0, 1.0, 1.0, 1.0)
|
as_SetScale(0, 1.0, 1.0, 1.0)
|
||||||
@ -7753,7 +7753,7 @@ AnimScript toy_tank_as_7 = {
|
|||||||
as_End
|
as_End
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimScript toy_tank_as_idle = {
|
AnimScript AS_ToyTank_Idle = {
|
||||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||||
as_SetPos(1, 0, 0, 0)
|
as_SetPos(1, 0, 0, 0)
|
||||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||||
|
49
src/battle/area/omo2/actor/boss_common.h
Normal file
49
src/battle/area/omo2/actor/boss_common.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#ifndef _GENERAL_GUY_COMMON_H_
|
||||||
|
#define _GENERAL_GUY_COMMON_H_
|
||||||
|
|
||||||
|
#include "mapfs/omo_bt07_shape.h"
|
||||||
|
|
||||||
|
enum N(BattleCommon) {
|
||||||
|
ACTOR_GENERAL = ACTOR_ENEMY0,
|
||||||
|
ACTOR_TANK = ACTOR_ENEMY1,
|
||||||
|
ACTOR_BULB = ACTOR_ENEMY2,
|
||||||
|
ACTOR_WAVE_A = ACTOR_ENEMY3,
|
||||||
|
ACTOR_WAVE_B = ACTOR_ENEMY4,
|
||||||
|
// actor vars for general guy
|
||||||
|
AVAR_General_DoingTankPhase = 0,
|
||||||
|
AVAR_General_Flags = 1,
|
||||||
|
AVAR_GeneralFlag_SquadFled = 0x1,
|
||||||
|
AVAR_GeneralFlag_ComplainElectric = 0x2,
|
||||||
|
AVAR_GeneralFlag_ComplainUnfair = 0x4,
|
||||||
|
AVAR_GeneralFlag_ComplainGeneric = 0x8,
|
||||||
|
AVAR_General_WavesDefeated = 2,
|
||||||
|
// actor vars for the toy tank
|
||||||
|
AVAR_Tank_ShouldTetherGeneral = 0,
|
||||||
|
AVAR_Tank_SquadPhase = 1,
|
||||||
|
AVAL_SquadPhase_Init = 0,
|
||||||
|
AVAL_SquadPhase_Defeated = 1,
|
||||||
|
AVAL_SquadPhase_Done = 2,
|
||||||
|
AVAL_SquadPhase_Next = 3, // next wave (stilt guys) have arrived
|
||||||
|
AVAR_Tank_StiltPhase = 2,
|
||||||
|
AVAL_StiltPhase_Init = 0,
|
||||||
|
AVAL_StiltPhase_1 = 1,
|
||||||
|
AVAL_StiltPhase_Defeated = 2,
|
||||||
|
AVAL_StiltPhase_Done = 3,
|
||||||
|
AVAL_StiltPhase_Next = 4, // next wave (shy stacks) have arrived
|
||||||
|
AVAR_Tank_StackPhase = 3,
|
||||||
|
AVAL_StackPhase_Init = 0,
|
||||||
|
AVAL_StackPhase_1 = 1,
|
||||||
|
AVAL_StackPhase_Defeated = 2,
|
||||||
|
AVAL_StackPhase_Done = 3,
|
||||||
|
AVAR_Tank_UnusedPhase = 4,
|
||||||
|
AVAL_UnusedPhase_Init = 0,
|
||||||
|
AVAL_UnusedPhase_Defeated = 1,
|
||||||
|
AVAL_UnusedPhase_Done = 2,
|
||||||
|
AVAR_Tank_BulbGlowEffect = 5,
|
||||||
|
AVAR_Tank_UsingBulbAttack = 6, // indicates bulb is glowing (not really used)
|
||||||
|
AVAR_Tank_ModulateDarkness = 7, // have darkness controlled by Watt and the bulb (unused)
|
||||||
|
AVAR_Tank_DarknessAmt = 8,
|
||||||
|
AVAR_Tank_HandlingEvent = 9,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _GENERAL_GUY_COMMON_H_
|
@ -5,41 +5,36 @@
|
|||||||
#include "sprite/npc/GeneralGuy.h"
|
#include "sprite/npc/GeneralGuy.h"
|
||||||
#include "sprite/npc/GeneralGuyBomb.h"
|
#include "sprite/npc/GeneralGuyBomb.h"
|
||||||
|
|
||||||
|
#include "battle/area/omo2/actor/boss_common.h"
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_general_guy
|
#define NAMESPACE b_area_omo2_general_guy
|
||||||
|
|
||||||
extern ActorBlueprint b_area_omo2_1_shy_squad;
|
extern ActorBlueprint b_area_omo2_1_shy_squad;
|
||||||
extern AnimScript toy_tank_as_close_hatch;
|
extern AnimScript AS_ToyTank_CloseHatch;
|
||||||
extern AnimScript toy_tank_as_open_hatch;
|
extern AnimScript AS_ToyTank_OpenHatch;
|
||||||
|
|
||||||
extern EvtScript N(EVS_Init);
|
extern EvtScript N(EVS_Init);
|
||||||
extern EvtScript N(EVS_TakeTurn);
|
|
||||||
extern EvtScript N(EVS_Idle);
|
extern EvtScript N(EVS_Idle);
|
||||||
extern EvtScript N(EVS_HandleEvent);
|
extern EvtScript N(EVS_HandleEvent);
|
||||||
extern EvtScript N(attack_throw_bomb);
|
extern EvtScript N(EVS_TakeTurn);
|
||||||
extern EvtScript N(attack_lightning_shot);
|
extern EvtScript N(EVS_Attack_ThrowBomb);
|
||||||
|
extern EvtScript N(EVS_Attack_ShootLightning);
|
||||||
extern s32 N(DefaultAnims)[];
|
extern s32 N(DefaultAnims)[];
|
||||||
extern s32 N(IdleAnimations_bomb)[];
|
extern s32 N(BombAnims)[];
|
||||||
extern Formation N(formation_shy_squad);
|
extern Formation N(ShySquadFormation);
|
||||||
|
|
||||||
enum N(ActorPartIDs) {
|
enum N(ActorPartIDs) {
|
||||||
PRT_MAIN = 1,
|
PRT_MAIN = 1,
|
||||||
PRT_2 = 2,
|
PRT_BOMB = 2,
|
||||||
};
|
|
||||||
|
|
||||||
enum N(ActorVars) {
|
|
||||||
AVAR_Unk_0 = 0,
|
|
||||||
AVAR_Unk_1 = 1,
|
|
||||||
AVAR_Unk_2 = 2,
|
|
||||||
AVAR_Unk_6 = 6,
|
|
||||||
AVAR_Unk_7 = 7,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum N(ActorParams) {
|
enum N(ActorParams) {
|
||||||
DMG_UNK = 0,
|
DMG_BOMB_TOSS = 4,
|
||||||
|
DMG_LIGHTNING_PLAYER = 5,
|
||||||
|
DMG_LIGHTNING_PARTNER = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "common/FadeBackgroundDarken.inc.c"
|
#include "common/FadeBackgroundDarken.inc.c"
|
||||||
|
|
||||||
#include "common/FadeBackgroundLighten.inc.c"
|
#include "common/FadeBackgroundLighten.inc.c"
|
||||||
|
|
||||||
s32 N(DefenseTable)[] = {
|
s32 N(DefenseTable)[] = {
|
||||||
@ -87,11 +82,11 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000,
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000,
|
||||||
.index = PRT_2,
|
.index = PRT_BOMB,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 0 },
|
.targetOffset = { 0, 0 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
.idleAnimations = N(IdleAnimations_bomb),
|
.idleAnimations = N(BombAnims),
|
||||||
.defenseTable = N(DefenseTable),
|
.defenseTable = N(DefenseTable),
|
||||||
.eventFlags = 0,
|
.eventFlags = 0,
|
||||||
.elementImmunityFlags = 0,
|
.elementImmunityFlags = 0,
|
||||||
@ -137,12 +132,13 @@ s32 N(DefaultAnims)[] = {
|
|||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(IdleAnimations_bomb)[] = {
|
s32 N(BombAnims)[] = {
|
||||||
STATUS_KEY_NORMAL, ANIM_GeneralGuyBomb_Anim00,
|
STATUS_KEY_NORMAL, ANIM_GeneralGuyBomb_Anim00,
|
||||||
STATUS_END,
|
STATUS_END,
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(IdleAnimations3)[] = {
|
// unused
|
||||||
|
s32 N(PanicAnims)[] = {
|
||||||
STATUS_KEY_NORMAL, ANIM_GeneralGuy_Anim0E,
|
STATUS_KEY_NORMAL, ANIM_GeneralGuy_Anim0E,
|
||||||
STATUS_KEY_POISON, ANIM_GeneralGuy_Anim0E,
|
STATUS_KEY_POISON, ANIM_GeneralGuy_Anim0E,
|
||||||
STATUS_KEY_STOP, ANIM_GeneralGuy_Anim00,
|
STATUS_KEY_STOP, ANIM_GeneralGuy_Anim00,
|
||||||
@ -175,19 +171,19 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, FALSE)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_Flags, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_WavesDefeated, 0)
|
||||||
EVT_CALL(LoadBattleSection, 41)
|
EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_1)
|
||||||
EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_squad)), TRUE)
|
EVT_CALL(SummonEnemy, EVT_PTR(N(ShySquadFormation)), TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_Idle) = {
|
EvtScript N(EVS_Idle) = {
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_GOTO(0)
|
EVT_GOTO(0)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
@ -285,27 +281,27 @@ EvtScript N(EVS_HandleEvent) = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(EVS_TakeTurn) = {
|
EvtScript N(EVS_TakeTurn) = {
|
||||||
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_FALSE(LVar0)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(ActorExists, ACTOR_ENEMY2, LVar0)
|
EVT_CALL(ActorExists, ACTOR_BULB, LVar0)
|
||||||
EVT_IF_NE(LVar0, FALSE)
|
EVT_IF_TRUE(LVar0)
|
||||||
EVT_CALL(GetStatusFlags, ACTOR_PARTNER, LVar0)
|
EVT_CALL(GetStatusFlags, ACTOR_PARTNER, LVar0)
|
||||||
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_KO)
|
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_KO)
|
||||||
EVT_CALL(RandInt, 100, LVar0)
|
EVT_CALL(RandInt, 100, LVar0)
|
||||||
EVT_IF_LT(LVar0, 60)
|
EVT_IF_LT(LVar0, 60)
|
||||||
EVT_EXEC_WAIT(N(attack_lightning_shot))
|
EVT_EXEC_WAIT(N(EVS_Attack_ShootLightning))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_EXEC_WAIT(N(attack_throw_bomb))
|
EVT_EXEC_WAIT(N(EVS_Attack_ThrowBomb))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(attack_throw_bomb) = {
|
EvtScript N(EVS_Attack_ThrowBomb) = {
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
@ -319,87 +315,87 @@ EvtScript N(attack_throw_bomb) = {
|
|||||||
EVT_CALL(MoveBattleCamOver, 30)
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_WAIT(5)
|
EVT_WAIT(5)
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch))
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 8)
|
EVT_SUB(LVar0, 8)
|
||||||
EVT_ADD(LVar1, 27)
|
EVT_ADD(LVar1, 27)
|
||||||
EVT_SUB(LVar2, 4)
|
EVT_SUB(LVar2, 4)
|
||||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2)
|
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim00)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim00)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||||
EVT_WAIT(15)
|
EVT_WAIT(15)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0A)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0A)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_WAIT(6)
|
EVT_WAIT(6)
|
||||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 8)
|
EVT_SUB(LVar0, 8)
|
||||||
EVT_ADD(LVar1, 20)
|
EVT_ADD(LVar1, 20)
|
||||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2)
|
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim01)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim01)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(HIT_RESULT_MISS)
|
EVT_CASE_EQ(HIT_RESULT_MISS)
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 120)
|
EVT_SUB(LVar0, 120)
|
||||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(12.0))
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(12.0))
|
||||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||||
EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, TRUE)
|
EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, TRUE)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 50)
|
EVT_SUB(LVar0, 50)
|
||||||
EVT_SET(LVar1, -5)
|
EVT_SET(LVar1, -5)
|
||||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0))
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0))
|
||||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 30, EASING_LINEAR)
|
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 30, EASING_LINEAR)
|
||||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT)
|
||||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
|
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
|
||||||
EVT_SUB(LVar0, 65)
|
EVT_SUB(LVar0, 65)
|
||||||
EVT_SET(LVar1, -5)
|
EVT_SET(LVar1, -5)
|
||||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(6.0))
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(6.0))
|
||||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0))
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0))
|
||||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 0, 0, 0, 0, 0)
|
EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 0, 0, 0, 0, 0)
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_2, SOUND_BOMB_BLAST)
|
EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_BOMB, SOUND_BOMB_BLAST)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_WAIT(2)
|
EVT_WAIT(2)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_BOMB_TOSS, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_SWITCH(LVarF)
|
EVT_SWITCH(LVarF)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE)
|
EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE)
|
||||||
@ -407,25 +403,25 @@ EvtScript N(attack_throw_bomb) = {
|
|||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_IF_EQ(LVarF, HIT_RESULT_10)
|
EVT_IF_EQ(LVarF, HIT_RESULT_10)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(attack_lightning_shot) = {
|
EvtScript N(EVS_Attack_ShootLightning) = {
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
@ -437,24 +433,24 @@ EvtScript N(attack_lightning_shot) = {
|
|||||||
EVT_CALL(SetBattleCamOffsetZ, 30)
|
EVT_CALL(SetBattleCamOffsetZ, 30)
|
||||||
EVT_CALL(MoveBattleCamOver, 40)
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
EVT_WAIT(40)
|
EVT_WAIT(40)
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch))
|
||||||
EVT_WAIT(10)
|
EVT_WAIT(10)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||||
EVT_IF_NE(LVar0, 0)
|
EVT_IF_TRUE(LVar0)
|
||||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_2)
|
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_2)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim03)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim03)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 1)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, TRUE)
|
||||||
EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT)
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT)
|
||||||
EVT_CALL(MoveBattleCamOver, 30)
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_CALL(N(FadeBackgroundDarken))
|
EVT_CALL(N(FadeBackgroundDarken))
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_LOOP(4)
|
EVT_LOOP(4)
|
||||||
EVT_CALL(PlaySoundAtActor, LVar8, SOUND_ELECTRIC_BUZZ)
|
EVT_CALL(PlaySoundAtActor, LVar8, SOUND_ELECTRIC_BUZZ)
|
||||||
@ -469,7 +465,7 @@ EvtScript N(attack_lightning_shot) = {
|
|||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(HIT_RESULT_MISS)
|
EVT_CASE_EQ(HIT_RESULT_MISS)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
@ -478,34 +474,34 @@ EvtScript N(attack_lightning_shot) = {
|
|||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_IF_NE(LVar0, HIT_RESULT_MISS)
|
EVT_IF_NE(LVar0, HIT_RESULT_MISS)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||||
EVT_WAIT(12)
|
EVT_WAIT(12)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PARTNER, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||||
EVT_IF_NE(LVar0, 0)
|
EVT_IF_TRUE(LVar0)
|
||||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(N(FadeBackgroundLighten))
|
EVT_CALL(N(FadeBackgroundLighten))
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
@ -513,80 +509,78 @@ EvtScript N(attack_lightning_shot) = {
|
|||||||
EVT_WAIT(12)
|
EVT_WAIT(12)
|
||||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||||
EVT_WAIT(12)
|
EVT_WAIT(12)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||||
EVT_IF_NE(LVar0, 0)
|
EVT_IF_TRUE(LVar0)
|
||||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(N(FadeBackgroundLighten))
|
EVT_CALL(N(FadeBackgroundLighten))
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
||||||
EVT_WAIT(12)
|
EVT_WAIT(12)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 5, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PLAYER, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_SWITCH(LVarF)
|
EVT_SWITCH(LVarF)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE)
|
EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE)
|
||||||
EVT_CASE_OR_EQ(HIT_RESULT_10)
|
EVT_CASE_OR_EQ(HIT_RESULT_10)
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_IF_EQ(LVarF, HIT_RESULT_10)
|
EVT_IF_EQ(LVarF, HIT_RESULT_10)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_END_SWITCH
|
EVT_END_SWITCH
|
||||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||||
EVT_CALL(GetModelCenter, 39)
|
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||||
EVT_CALL(PlaySound, SOUND_2069)
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||||
EVT_WAIT(12)
|
EVT_WAIT(12)
|
||||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PARTNER, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||||
EVT_IF_NE(LVar0, 0)
|
EVT_IF_TRUE(LVar0)
|
||||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(N(FadeBackgroundLighten))
|
EVT_CALL(N(FadeBackgroundLighten))
|
||||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec3i N(summon_pos) = { 240, 0, 0 };
|
Vec3i N(SummonPos) = { 240, 0, 0 };
|
||||||
|
|
||||||
Formation N(formation_shy_squad) = {
|
Formation N(ShySquadFormation) = {
|
||||||
ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(summon_pos), 100)
|
ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(SummonPos), 100)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,42 +3,31 @@
|
|||||||
#include "effects.h"
|
#include "effects.h"
|
||||||
#include "animation_script.h"
|
#include "animation_script.h"
|
||||||
|
|
||||||
|
#include "battle/area/omo2/actor/boss_common.h"
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_light_bulb
|
#define NAMESPACE b_area_omo2_light_bulb
|
||||||
|
|
||||||
typedef struct IceShardBlueprint {
|
typedef struct BulbFragment {
|
||||||
/* 0x00 */ s32 unk_00;
|
/* 0x00 */ s32 type;
|
||||||
/* 0x04 */ f32 unk_04;
|
/* 0x04 */ Vec3f pos;
|
||||||
/* 0x08 */ f32 unk_08;
|
/* 0x10 */ f32 scale;
|
||||||
/* 0x0C */ f32 unk_0C;
|
/* 0x14 */ s32 duration;
|
||||||
/* 0x10 */ f32 unk_10;
|
/* 0x18 */ Vec3f vel;
|
||||||
/* 0x14 */ s32 unk_14;
|
/* 0x24 */ f32 gravAccel;
|
||||||
/* 0x18 */ f32 unk_18;
|
} BulbFragment; // size = 0x28
|
||||||
/* 0x1C */ f32 unk_1C;
|
|
||||||
/* 0x20 */ f32 unk_20;
|
|
||||||
/* 0x24 */ f32 unk_24;
|
|
||||||
} IceShardBlueprint; // size = 0x28
|
|
||||||
|
|
||||||
extern AnimScript toy_tank_as_close_hatch;
|
extern AnimScript AS_ToyTank_CloseHatch;
|
||||||
|
|
||||||
extern EvtScript N(EVS_Init);
|
extern EvtScript N(EVS_Init);
|
||||||
extern EvtScript N(EVS_TakeTurn);
|
|
||||||
extern EvtScript N(EVS_Idle);
|
extern EvtScript N(EVS_Idle);
|
||||||
|
extern EvtScript N(EVS_TakeTurn);
|
||||||
extern EvtScript N(EVS_HandleEvent);
|
extern EvtScript N(EVS_HandleEvent);
|
||||||
extern EvtScript N(onHit);
|
extern EvtScript N(EVS_Hit);
|
||||||
extern EvtScript N(shake_tank);
|
extern EvtScript N(EVS_Death);
|
||||||
extern EvtScript N(onDeath);
|
extern EvtScript N(EVS_ShakeTank);
|
||||||
|
|
||||||
enum N(ActorPartIDs) {
|
enum N(ActorPartIDs) {
|
||||||
PRT_MAIN = 1,
|
PRT_MAIN = 1,
|
||||||
};
|
|
||||||
|
|
||||||
enum N(ActorVars) {
|
|
||||||
AVAR_Unk_5 = 5,
|
|
||||||
AVAR_Unk_9 = 9,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum N(ActorParams) {
|
|
||||||
DMG_UNK = 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 N(DefenseTable)[] = {
|
s32 N(DefenseTable)[] = {
|
||||||
@ -132,34 +121,34 @@ EvtScript N(EVS_HandleEvent) = {
|
|||||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0)
|
EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0)
|
||||||
EVT_SWITCH(LVar0)
|
EVT_SWITCH(LVar0)
|
||||||
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||||
EVT_EXEC_WAIT(N(onHit))
|
EVT_EXEC_WAIT(N(EVS_Hit))
|
||||||
EVT_CASE_OR_EQ(EVENT_HIT)
|
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||||
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
||||||
EVT_EXEC_WAIT(N(onHit))
|
EVT_EXEC_WAIT(N(EVS_Hit))
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
EVT_EXEC_WAIT(N(onHit))
|
EVT_EXEC_WAIT(N(EVS_Hit))
|
||||||
EVT_CASE_EQ(EVENT_ZERO_DAMAGE)
|
EVT_CASE_EQ(EVENT_ZERO_DAMAGE)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_FALSE(LVar0)
|
||||||
EVT_CALL(func_8026E914, LVar0, LVar1)
|
EVT_CALL(func_8026E914, LVar0, LVar1)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CASE_EQ(EVENT_IMMUNE)
|
EVT_CASE_EQ(EVENT_IMMUNE)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_FALSE(LVar0)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
|
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
|
||||||
EVT_CASE_OR_EQ(EVENT_DEATH)
|
EVT_CASE_OR_EQ(EVENT_DEATH)
|
||||||
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
||||||
EVT_EXEC_WAIT(N(onDeath))
|
EVT_EXEC_WAIT(N(EVS_Death))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END_CASE_GROUP
|
EVT_END_CASE_GROUP
|
||||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
EVT_EXEC_WAIT(N(onDeath))
|
EVT_EXEC_WAIT(N(EVS_Death))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_CASE_EQ(EVENT_SPIKE_CONTACT)
|
EVT_CASE_EQ(EVENT_SPIKE_CONTACT)
|
||||||
EVT_CASE_EQ(EVENT_BURN_CONTACT)
|
EVT_CASE_EQ(EVENT_BURN_CONTACT)
|
||||||
@ -177,228 +166,168 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(onHit) = {
|
EvtScript N(EVS_Hit) = {
|
||||||
EVT_EXEC_WAIT(N(shake_tank))
|
EVT_EXEC_WAIT(N(EVS_ShakeTank))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(shake_tank) = {
|
EvtScript N(EVS_ShakeTank) = {
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_FALSE(LVar0)
|
||||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||||
EVT_WAIT(30)
|
EVT_WAIT(30)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
API_CALLABLE(func_80218250_52B8F0) {
|
API_CALLABLE(N(SpawnShatterFX)) {
|
||||||
s32 i;
|
s32 i;
|
||||||
IceShardBlueprint bpArray[] = {
|
BulbFragment shards[] = {
|
||||||
{
|
{
|
||||||
.unk_00 = 1,
|
.type = 1,
|
||||||
.unk_04 = 117.0f,
|
.pos = { 117.0f, 102.0f, 0.0f },
|
||||||
.unk_08 = 102.0f,
|
.vel = { 0.3f, 0.7f, 0.0f },
|
||||||
.unk_0C = 0.0f,
|
.scale = 0.2f,
|
||||||
.unk_10 = 0.2f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.3f,
|
|
||||||
.unk_1C = 0.7f,
|
|
||||||
.unk_20 = 0.0f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 117.0f,
|
.pos = { 117.0f, 82.0f, 11.0f },
|
||||||
.unk_08 = 82.0f,
|
.vel = { 0.3f, 0.9f, 0.1f },
|
||||||
.unk_0C = 11.0f,
|
.scale = 0.5f,
|
||||||
.unk_10 = 0.5f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.3f,
|
|
||||||
.unk_1C = 0.9f,
|
|
||||||
.unk_20 = 0.1f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 117.0f,
|
.pos = { 117.0f, 92.0f, 14.0f },
|
||||||
.unk_08 = 92.0f,
|
.vel = { 0.3f, 0.8f, 0.3f },
|
||||||
.unk_0C = 14.0f,
|
.scale = 0.4f,
|
||||||
.unk_10 = 0.4f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.3f,
|
|
||||||
.unk_1C = 0.8f,
|
|
||||||
.unk_20 = 0.3f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 1,
|
.type = 1,
|
||||||
.unk_04 = 125.0f,
|
.pos = { 125.0f, 82.0f, 0.0f },
|
||||||
.unk_08 = 82.0f,
|
.vel = { 0.5f, 0.9f, 0.0f },
|
||||||
.unk_0C = 0.0f,
|
.scale = 0.2f,
|
||||||
.unk_10 = 0.2f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.5f,
|
|
||||||
.unk_1C = 0.9f,
|
|
||||||
.unk_20 = 0.0f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 108.0f,
|
.pos = { 108.0f, 82.0f, 0.0f },
|
||||||
.unk_08 = 82.0f,
|
.vel = { -0.2f, 0.9f, 0.0f },
|
||||||
.unk_0C = 0.0f,
|
.scale = 0.3f,
|
||||||
.unk_10 = 0.3f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = -0.2f,
|
|
||||||
.unk_1C = 0.9f,
|
|
||||||
.unk_20 = 0.0f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 105.0f,
|
.pos = { 105.0f, 92.0f, 0.0f },
|
||||||
.unk_08 = 92.0f,
|
.vel = { -0.1f, 0.8f, 0.0f },
|
||||||
.unk_0C = 0.0f,
|
.scale = 0.4f,
|
||||||
.unk_10 = 0.4f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = -0.1f,
|
|
||||||
.unk_1C = 0.8f,
|
|
||||||
.unk_20 = 0.0f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 1,
|
.type = 1,
|
||||||
.unk_04 = 127.0f,
|
.pos = { 127.0f, 92.0f, 0.0f },
|
||||||
.unk_08 = 92.0f,
|
.vel = { 0.7f, 0.8f, 0.0f },
|
||||||
.unk_0C = 0.0f,
|
.scale = 0.2f,
|
||||||
.unk_10 = 0.2f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.7f,
|
|
||||||
.unk_1C = 0.8f,
|
|
||||||
.unk_20 = 0.0f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 117.0f,
|
.pos = { 117.0f, 97.0f, 7.0f },
|
||||||
.unk_08 = 97.0f,
|
.vel = { 0.7f, 0.8f, 0.2f },
|
||||||
.unk_0C = 7.0f,
|
.scale = 0.1f,
|
||||||
.unk_10 = 0.1f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.7f,
|
|
||||||
.unk_1C = 0.8f,
|
|
||||||
.unk_20 = 0.2f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 117.0f,
|
.pos = { 117.0f, 87.0f, 7.0f },
|
||||||
.unk_08 = 87.0f,
|
.vel = { 0.7f, 0.8f, 0.2f },
|
||||||
.unk_0C = 7.0f,
|
.scale = 0.3f,
|
||||||
.unk_10 = 0.3f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.7f,
|
|
||||||
.unk_1C = 0.8f,
|
|
||||||
.unk_20 = 0.2f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 111.0f,
|
.pos = { 111.0f, 97.0f, 3.0f },
|
||||||
.unk_08 = 97.0f,
|
.vel = { 0.0f, 1.0f, 0.1f },
|
||||||
.unk_0C = 3.0f,
|
.scale = 0.2f,
|
||||||
.unk_10 = 0.2f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.0f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.1f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 111.0f,
|
.pos = { 111.0f, 92.0f, 7.0f },
|
||||||
.unk_08 = 92.0f,
|
.vel = { 0.0f, 1.0f, 0.2f },
|
||||||
.unk_0C = 7.0f,
|
.scale = 0.1f,
|
||||||
.unk_10 = 0.1f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.0f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.2f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 111.0f,
|
.pos = { 111.0f, 87.0f, 3.0f },
|
||||||
.unk_08 = 87.0f,
|
.vel = { 0.0f, 1.0f, 0.1f },
|
||||||
.unk_0C = 3.0f,
|
.scale = 0.5f,
|
||||||
.unk_10 = 0.5f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.0f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.1f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 1,
|
.type = 1,
|
||||||
.unk_04 = 123.0f,
|
.pos = { 123.0f, 97.0f, 3.0f },
|
||||||
.unk_08 = 97.0f,
|
.vel = { 0.1f, 1.0f, 0.1f },
|
||||||
.unk_0C = 3.0f,
|
.scale = 0.2f,
|
||||||
.unk_10 = 0.2f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.1f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.1f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 123.0f,
|
.pos = { 123.0f, 92.0f, 7.0f },
|
||||||
.unk_08 = 92.0f,
|
.vel = { 0.1f, 1.0f, 0.2f },
|
||||||
.unk_0C = 7.0f,
|
.scale = 0.4f,
|
||||||
.unk_10 = 0.4f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.1f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.2f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.unk_00 = 0,
|
.type = 0,
|
||||||
.unk_04 = 123.0f,
|
.pos = { 123.0f, 87.0f, 3.0f },
|
||||||
.unk_08 = 87.0f,
|
.vel = { 0.1f, 1.0f, 0.1f },
|
||||||
.unk_0C = 3.0f,
|
.scale = 0.3f,
|
||||||
.unk_10 = 0.3f,
|
.duration = 20,
|
||||||
.unk_14 = 20,
|
.gravAccel = -0.3f,
|
||||||
.unk_18 = 0.1f,
|
|
||||||
.unk_1C = 1.0f,
|
|
||||||
.unk_20 = 0.1f,
|
|
||||||
.unk_24 = -0.3f,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_COUNT(bpArray); i++) {
|
for (i = 0; i < ARRAY_COUNT(shards); i++) {
|
||||||
EffectInstance* effect = fx_ice_shard(bpArray[i].unk_00, bpArray[i].unk_04, bpArray[i].unk_08,
|
EffectInstance* effect = fx_ice_shard(shards[i].type, shards[i].pos.x, shards[i].pos.y,
|
||||||
bpArray[i].unk_0C, bpArray[i].unk_10, bpArray[i].unk_14);
|
shards[i].pos.z, shards[i].scale, shards[i].duration);
|
||||||
effect->data.iceShard->vel.x = bpArray[i].unk_18;
|
effect->data.iceShard->vel.x = shards[i].vel.x;
|
||||||
effect->data.iceShard->vel.y = bpArray[i].unk_1C;
|
effect->data.iceShard->vel.y = shards[i].vel.y;
|
||||||
effect->data.iceShard->vel.z = bpArray[i].unk_20;
|
effect->data.iceShard->vel.z = shards[i].vel.z;
|
||||||
effect->data.iceShard->gravAccel = bpArray[i].unk_24;
|
effect->data.iceShard->gravAccel = shards[i].gravAccel;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
|
||||||
EvtScript N(onDeath) = {
|
EvtScript N(EVS_Death) = {
|
||||||
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY2, SOUND_03AE)
|
EVT_CALL(PlaySoundAtActor, ACTOR_BULB, SOUND_03AE)
|
||||||
EVT_CALL(func_80218250_52B8F0)
|
EVT_CALL(N(SpawnShatterFX))
|
||||||
EVT_CALL(EnableModel, 39, FALSE)
|
EVT_CALL(EnableModel, MODEL_kyu3, FALSE)
|
||||||
EVT_CALL(EnableModel, 41, FALSE)
|
EVT_CALL(EnableModel, MODEL_kyu1, FALSE)
|
||||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_5, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_BulbGlowEffect, LVar0)
|
||||||
EVT_IF_NE(LVar0, 0)
|
EVT_IF_NE(LVar0, NULL)
|
||||||
EVT_CALL(RemoveEffect, LVar0)
|
EVT_CALL(RemoveEffect, LVar0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_5, 0)
|
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_BulbGlowEffect, NULL)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(RemoveActor, ACTOR_SELF)
|
EVT_CALL(RemoveActor, ACTOR_SELF)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -8,8 +8,8 @@
|
|||||||
extern s32 N(DefaultAnims)[];
|
extern s32 N(DefaultAnims)[];
|
||||||
|
|
||||||
extern EvtScript N(EVS_Init);
|
extern EvtScript N(EVS_Init);
|
||||||
extern EvtScript N(EVS_TakeTurn);
|
|
||||||
extern EvtScript N(EVS_Idle);
|
extern EvtScript N(EVS_Idle);
|
||||||
|
extern EvtScript N(EVS_TakeTurn);
|
||||||
extern EvtScript N(EVS_HandleEvent);
|
extern EvtScript N(EVS_HandleEvent);
|
||||||
|
|
||||||
enum N(ActorPartIDs) {
|
enum N(ActorPartIDs) {
|
||||||
@ -115,8 +115,8 @@ EvtScript N(EVS_Init) = {
|
|||||||
|
|
||||||
EvtScript N(EVS_Idle) = {
|
EvtScript N(EVS_Idle) = {
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_GOTO(0)
|
EVT_GOTO(0)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -2,27 +2,38 @@
|
|||||||
#include "script_api/battle.h"
|
#include "script_api/battle.h"
|
||||||
#include "sprite/npc/TankGuy.h"
|
#include "sprite/npc/TankGuy.h"
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_6_shy_guy_dup
|
#define NAMESPACE b_area_omo2_6_shy_squad_stub
|
||||||
|
|
||||||
extern s32 N(DefaultAnims)[];
|
extern s32 N(DefaultAnims)[];
|
||||||
extern EvtScript N(EVS_Init);
|
extern EvtScript N(EVS_Init);
|
||||||
extern EvtScript N(EVS_TakeTurn);
|
|
||||||
extern EvtScript N(EVS_Idle);
|
extern EvtScript N(EVS_Idle);
|
||||||
|
extern EvtScript N(EVS_TakeTurn);
|
||||||
extern EvtScript N(EVS_HandleEvent);
|
extern EvtScript N(EVS_HandleEvent);
|
||||||
extern EvtScript N(run_to_pos);
|
extern EvtScript N(EVS_MoveMemberToPos);
|
||||||
|
|
||||||
|
enum N(MemberOffsets) {
|
||||||
|
HOME_OFFSET_X = 0,
|
||||||
|
HOME_OFFSET_Z = 1,
|
||||||
|
};
|
||||||
|
|
||||||
enum N(ActorPartIDs) {
|
enum N(ActorPartIDs) {
|
||||||
PRT_MAIN = 1,
|
PRT_MAIN = 1,
|
||||||
PRT_2 = 2,
|
PRT_MEMBER_01 = 2,
|
||||||
PRT_3 = 3,
|
PRT_MEMBER_02 = 3,
|
||||||
PRT_4 = 4,
|
PRT_MEMBER_03 = 4,
|
||||||
PRT_5 = 5,
|
PRT_MEMBER_04 = 5,
|
||||||
PRT_6 = 6,
|
PRT_MEMBER_05 = 6,
|
||||||
PRT_7 = 7,
|
PRT_MEMBER_06 = 7,
|
||||||
PRT_8 = 8,
|
PRT_MEMBER_07 = 8,
|
||||||
PRT_9 = 9,
|
PRT_MEMBER_08 = 9,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define NUM_MEMBERS (1 + PRT_MEMBER_08 - PRT_MEMBER_01)
|
||||||
|
|
||||||
|
#define LOOP_MEMBERS(idx) \
|
||||||
|
EVT_SET(idx, PRT_MEMBER_01) \
|
||||||
|
EVT_LOOP(NUM_MEMBERS)
|
||||||
|
|
||||||
s32 N(DefenseTable)[] = {
|
s32 N(DefenseTable)[] = {
|
||||||
ELEMENT_NORMAL, 0,
|
ELEMENT_NORMAL, 0,
|
||||||
ELEMENT_END,
|
ELEMENT_END,
|
||||||
@ -68,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_2,
|
.index = PRT_MEMBER_01,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -80,7 +91,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_3,
|
.index = PRT_MEMBER_02,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -92,7 +103,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_4,
|
.index = PRT_MEMBER_03,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -104,7 +115,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_5,
|
.index = PRT_MEMBER_04,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -116,7 +127,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_6,
|
.index = PRT_MEMBER_05,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -128,7 +139,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_7,
|
.index = PRT_MEMBER_06,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -140,7 +151,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_8,
|
.index = PRT_MEMBER_07,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -152,7 +163,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||||
.index = PRT_9,
|
.index = PRT_MEMBER_08,
|
||||||
.posOffset = { 0, 0, 0 },
|
.posOffset = { 0, 0, 0 },
|
||||||
.targetOffset = { 0, 24 },
|
.targetOffset = { 0, 24 },
|
||||||
.opacity = 255,
|
.opacity = 255,
|
||||||
@ -166,8 +177,8 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
|
|
||||||
ActorBlueprint NAMESPACE = {
|
ActorBlueprint NAMESPACE = {
|
||||||
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_NO_HEALTH_BAR,
|
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_NO_HEALTH_BAR,
|
||||||
.type = ACTOR_TYPE_SHY_GUY_DUP,
|
.type = ACTOR_TYPE_SHY_SQUAD_STUB,
|
||||||
.level = ACTOR_LEVEL_SHY_GUY_DUP,
|
.level = ACTOR_LEVEL_SHY_SQUAD_STUB,
|
||||||
.maxHP = 10,
|
.maxHP = 10,
|
||||||
.partCount = ARRAY_COUNT(N(ActorParts)),
|
.partCount = ARRAY_COUNT(N(ActorParts)),
|
||||||
.partsData = N(ActorParts),
|
.partsData = N(ActorParts),
|
||||||
@ -206,39 +217,38 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 0, 0)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_X, 0)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 1, -10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_Z, -10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 0, 10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_X, 10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 1, -30)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_Z, -30)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 0, 10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_X, 10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 1, 10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_Z, 10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 0, 20)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_X, 20)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 1, -10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_Z, -10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 0, 30)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_X, 30)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 1, 10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_Z, 10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 0, 30)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_X, 30)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 1, -30)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_Z, -30)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 0, 40)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_X, 40)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 1, -10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_Z, -10)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 0, 50)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_X, 50)
|
||||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 1, 10)
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_Z, 10)
|
||||||
EVT_SET(LVar0, 2)
|
LOOP_MEMBERS(LVar0)
|
||||||
EVT_LOOP(8)
|
|
||||||
EVT_CALL(SetPartPos, ACTOR_SELF, LVar0, 185, 0, 47)
|
EVT_CALL(SetPartPos, ACTOR_SELF, LVar0, 185, 0, 47)
|
||||||
EVT_ADD(LVar0, 1)
|
EVT_ADD(LVar0, 1)
|
||||||
EVT_END_LOOP
|
EVT_END_LOOP
|
||||||
EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10)
|
EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10)
|
||||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
EVT_SET(LVar0, 2)
|
EVT_SET(LVar0, PRT_MEMBER_01)
|
||||||
EVT_SET(LVar1, ANIM_TankGuy_Anim03)
|
EVT_SET(LVar1, ANIM_TankGuy_Anim03)
|
||||||
EVT_SET(LVar4, EVT_FLOAT(4.0))
|
EVT_SET(LVar4, EVT_FLOAT(4.0))
|
||||||
EVT_SET(LVar5, 5)
|
EVT_SET(LVar5, 5)
|
||||||
EVT_LOOP(8)
|
EVT_LOOP(NUM_MEMBERS)
|
||||||
EVT_THREAD
|
EVT_THREAD
|
||||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 0, LVar2)
|
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_X, LVar2)
|
||||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 1, LVar3)
|
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_Z, LVar3)
|
||||||
EVT_SET(LVar5, 20)
|
EVT_SET(LVar5, 20)
|
||||||
EVT_EXEC_WAIT(N(run_to_pos))
|
EVT_EXEC_WAIT(N(EVS_MoveMemberToPos))
|
||||||
EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim01)
|
EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim01)
|
||||||
EVT_END_THREAD
|
EVT_END_THREAD
|
||||||
EVT_ADD(LVar0, 1)
|
EVT_ADD(LVar0, 1)
|
||||||
@ -249,13 +259,13 @@ EvtScript N(EVS_Init) = {
|
|||||||
|
|
||||||
EvtScript N(EVS_Idle) = {
|
EvtScript N(EVS_Idle) = {
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_GOTO(0)
|
EVT_GOTO(0)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
|
||||||
EvtScript N(run_to_pos) = {
|
EvtScript N(EVS_MoveMemberToPos) = {
|
||||||
EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar6, 0, LVar7)
|
EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar6, 0, LVar7)
|
||||||
EVT_IF_LT(LVar6, LVar2)
|
EVT_IF_LT(LVar6, LVar2)
|
||||||
EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 180)
|
EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 180)
|
@ -733,7 +733,7 @@ EvtScript N(EVS_Attack_ChargedDrop) = {
|
|||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||||
EVT_WAIT(2)
|
EVT_WAIT(2)
|
||||||
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK, 8, 0, DMG_CHARGED_DROP, BS_FLAGS1_SP_EVT_ACTIVE)
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_CHARGED_DROP, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
EVT_IF_NE(LVarF, HIT_RESULT_HIT_STATIC)
|
EVT_IF_NE(LVarF, HIT_RESULT_HIT_STATIC)
|
||||||
EVT_EXEC_WAIT(N(EVS_Discharge))
|
EVT_EXEC_WAIT(N(EVS_Discharge))
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -879,7 +879,7 @@ EvtScript N(EVS_Charge) = {
|
|||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, LVarF)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, LVarF)
|
||||||
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_CHARGE_LIGHTNING)
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_CHARGE_LIGHTNING)
|
||||||
EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED | ACTOR_EVENT_FLAG_ELECTRIFIED)
|
EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED | ACTOR_EVENT_FLAG_ELECTRIFIED)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE)
|
||||||
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_STATIC)
|
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_STATIC)
|
||||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(ChargedStatusTable)))
|
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(ChargedStatusTable)))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -899,7 +899,7 @@ EvtScript N(EVS_Discharge) = {
|
|||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, 0)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, 0)
|
EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, 0)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE)
|
||||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable)))
|
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable)))
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
|
@ -888,7 +888,7 @@ EvtScript N(EVS_Attack_RageDrop) = {
|
|||||||
|
|
||||||
EvtScript N(EVS_Enrage) = {
|
EvtScript N(EVS_Enrage) = {
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, TRUE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, TRUE)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE)
|
||||||
EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Blooper, SPR_PAL_Blooper_Supercharged, 0, 6, 12, 6, 0, 0)
|
EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Blooper, SPR_PAL_Blooper_Supercharged, 0, 6, 12, 6, 0, 0)
|
||||||
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
||||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(EnragedStatusTable)))
|
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(EnragedStatusTable)))
|
||||||
@ -899,7 +899,7 @@ EvtScript N(EVS_Enrage) = {
|
|||||||
|
|
||||||
EvtScript N(EVS_LoseRage) = {
|
EvtScript N(EVS_LoseRage) = {
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, FALSE)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE)
|
||||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable)))
|
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable)))
|
||||||
EVT_CALL(SetPartEventBits, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED, FALSE)
|
EVT_CALL(SetPartEventBits, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
|
@ -77,241 +77,22 @@ enum BattlePositions {
|
|||||||
BTL_POS_CENTER = 16,
|
BTL_POS_CENTER = 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum ActorType {
|
|
||||||
ACTOR_TYPE_RED_GOOMBA = 0x00,
|
|
||||||
ACTOR_TYPE_RED_PARAGOOMBA = 0x01,
|
|
||||||
ACTOR_TYPE_GLOOMBA = 0x02,
|
|
||||||
ACTOR_TYPE_PARAGLOOMBA = 0x03,
|
|
||||||
ACTOR_TYPE_SPIKED_GLOOMBA = 0x04,
|
|
||||||
ACTOR_TYPE_DARK_KOOPA = 0x05,
|
|
||||||
ACTOR_TYPE_DARK_PARATROOPA = 0x06,
|
|
||||||
ACTOR_TYPE_GOOMBA = 0x07,
|
|
||||||
ACTOR_TYPE_PARAGOOMBA = 0x08,
|
|
||||||
ACTOR_TYPE_SPIKED_GOOMBA = 0x09,
|
|
||||||
ACTOR_TYPE_FUZZY = 0x0A,
|
|
||||||
ACTOR_TYPE_KOOPA_TROOPA = 0x0B,
|
|
||||||
ACTOR_TYPE_PARATROOPA = 0x0C,
|
|
||||||
ACTOR_TYPE_BOB_OMB = 0x0D,
|
|
||||||
ACTOR_TYPE_BOB_OMB_DUP = 0x0E,
|
|
||||||
ACTOR_TYPE_BULLET_BILL = 0x0F,
|
|
||||||
ACTOR_TYPE_BILL_BLASTER = 0x10,
|
|
||||||
ACTOR_TYPE_CLEFT = 0x11,
|
|
||||||
ACTOR_TYPE_MONTY_MOLE = 0x12,
|
|
||||||
ACTOR_TYPE_BANDIT = 0x13,
|
|
||||||
ACTOR_TYPE_POKEY = 0x14,
|
|
||||||
ACTOR_TYPE_POKEY_MUMMY = 0x15,
|
|
||||||
ACTOR_TYPE_SWOOPER = 0x16,
|
|
||||||
ACTOR_TYPE_BUZZY_BEETLE = 0x17,
|
|
||||||
ACTOR_TYPE_STONE_CHOMP = 0x18,
|
|
||||||
ACTOR_TYPE_PIRANHA_PLANT = 0x19,
|
|
||||||
ACTOR_TYPE_FOREST_FUZZY = 0x1A,
|
|
||||||
ACTOR_TYPE_HYPER_GOOMBA = 0x1B,
|
|
||||||
ACTOR_TYPE_HYPER_PARAGOOMBA = 0x1C,
|
|
||||||
ACTOR_TYPE_HYPER_CLEFT = 0x1D,
|
|
||||||
ACTOR_TYPE_CLUBBA = 0x1E,
|
|
||||||
ACTOR_TYPE_SHY_GUY = 0x1F,
|
|
||||||
ACTOR_TYPE_GROOVE_GUY = 0x20,
|
|
||||||
ACTOR_TYPE_SKY_GUY = 0x21,
|
|
||||||
ACTOR_TYPE_MEDI_GUY = 0x22,
|
|
||||||
ACTOR_TYPE_PYRO_GUY = 0x23,
|
|
||||||
ACTOR_TYPE_SPY_GUY = 0x24,
|
|
||||||
ACTOR_TYPE_FUZZIPEDE = 0x25,
|
|
||||||
ACTOR_TYPE_HURT_PLANT = 0x26,
|
|
||||||
ACTOR_TYPE_M_BUSH = 0x27,
|
|
||||||
ACTOR_TYPE_AQUA_FUZZY = 0x28,
|
|
||||||
ACTOR_TYPE_JUNGLE_FUZZY = 0x29,
|
|
||||||
ACTOR_TYPE_SPEAR_GUY = 0x2A,
|
|
||||||
ACTOR_TYPE_LAVA_BUBBLE = 0x2B,
|
|
||||||
ACTOR_TYPE_SPIKE_TOP = 0x2C,
|
|
||||||
ACTOR_TYPE_PUTRID_PIRANHA = 0x2D,
|
|
||||||
ACTOR_TYPE_LAKITU = 0x2E,
|
|
||||||
ACTOR_TYPE_SPINY = 0x2F,
|
|
||||||
ACTOR_TYPE_MONTY_MOLE_BOSS = 0x30,
|
|
||||||
ACTOR_TYPE_BZZAP = 0x31,
|
|
||||||
ACTOR_TYPE_CRAZEE_DAYZEE = 0x32,
|
|
||||||
ACTOR_TYPE_AMAZY_DAYZEE = 0x33,
|
|
||||||
ACTOR_TYPE_RUFF_PUFF = 0x34,
|
|
||||||
ACTOR_TYPE_SPIKE = 0x35,
|
|
||||||
ACTOR_TYPE_GULPIT = 0x36,
|
|
||||||
ACTOR_TYPE_GULPIT_ROCKS = 0x37,
|
|
||||||
ACTOR_TYPE_WHITE_CLUBBA = 0x38,
|
|
||||||
ACTOR_TYPE_FROST_PIRANHA = 0x39,
|
|
||||||
ACTOR_TYPE_SWOOPULA = 0x3A,
|
|
||||||
ACTOR_TYPE_DUPLIGHOST = 0x3B,
|
|
||||||
ACTOR_TYPE_GHOST_GOOMBARIO = 0x3C,
|
|
||||||
ACTOR_TYPE_GHOST_KOOPER = 0x3D,
|
|
||||||
ACTOR_TYPE_GHOST_BOMBETTE = 0x3E,
|
|
||||||
ACTOR_TYPE_GHOST_PARAKARRY = 0x3F,
|
|
||||||
ACTOR_TYPE_GHOST_BOW = 0x40,
|
|
||||||
ACTOR_TYPE_GHOST_WATT = 0x41,
|
|
||||||
ACTOR_TYPE_GHOST_SUSHIE = 0x42,
|
|
||||||
ACTOR_TYPE_GHOST_LAKILESTER = 0x43,
|
|
||||||
ACTOR_TYPE_ALBINO_DINO = 0x44,
|
|
||||||
ACTOR_TYPE_EMBER = 0x45,
|
|
||||||
ACTOR_TYPE_BONY_BEETLE = 0x46,
|
|
||||||
ACTOR_TYPE_DRY_BONES = 0x47,
|
|
||||||
ACTOR_TYPE_DRY_BONES2 = 0x48,
|
|
||||||
ACTOR_TYPE_BOMBSHELL_BLASTER = 0x49,
|
|
||||||
ACTOR_TYPE_BOMBSHELL_BILL = 0x4A,
|
|
||||||
ACTOR_TYPE_HAMMER_BROS = 0x4B,
|
|
||||||
ACTOR_TYPE_KOOPATROL = 0x4C,
|
|
||||||
ACTOR_TYPE_MAGIKOOPA = 0x4D,
|
|
||||||
ACTOR_TYPE_FLYING_MAGIKOOPA = 0x4E,
|
|
||||||
ACTOR_TYPE_MAGICLONE = 0x4F,
|
|
||||||
ACTOR_TYPE_FLYING_MAGICLONE = 0x50,
|
|
||||||
ACTOR_TYPE_RED_MAGIKOOPA = 0x51,
|
|
||||||
ACTOR_TYPE_FLYING_RED_MAGIKOOPA = 0x52,
|
|
||||||
ACTOR_TYPE_GREEN_MAGIKOOPA = 0x53,
|
|
||||||
ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA = 0x54,
|
|
||||||
ACTOR_TYPE_YELLOW_MAGIKOOPA = 0x55,
|
|
||||||
ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA = 0x56,
|
|
||||||
ACTOR_TYPE_GRAY_MAGIKOOPA = 0x57,
|
|
||||||
ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA = 0x58,
|
|
||||||
ACTOR_TYPE_WHITE_MAGIKOOPA = 0x59,
|
|
||||||
ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA = 0x5A,
|
|
||||||
|
|
||||||
ACTOR_TYPE_UNUSED_5B = 0x5B,
|
|
||||||
ACTOR_TYPE_UNUSED_5C = 0x5C,
|
|
||||||
ACTOR_TYPE_UNUSED_5D = 0x5D,
|
|
||||||
ACTOR_TYPE_UNUSED_5E = 0x5E,
|
|
||||||
ACTOR_TYPE_UNUSED_5F = 0x5F,
|
|
||||||
ACTOR_TYPE_UNUSED_60 = 0x60,
|
|
||||||
ACTOR_TYPE_UNUSED_61 = 0x61,
|
|
||||||
ACTOR_TYPE_UNUSED_62 = 0x62,
|
|
||||||
ACTOR_TYPE_UNUSED_63 = 0x63,
|
|
||||||
ACTOR_TYPE_UNUSED_64 = 0x64,
|
|
||||||
ACTOR_TYPE_UNUSED_65 = 0x65,
|
|
||||||
ACTOR_TYPE_UNUSED_66 = 0x66,
|
|
||||||
ACTOR_TYPE_UNUSED_67 = 0x67,
|
|
||||||
ACTOR_TYPE_UNUSED_68 = 0x68,
|
|
||||||
ACTOR_TYPE_UNUSED_69 = 0x69,
|
|
||||||
ACTOR_TYPE_UNUSED_6A = 0x6A,
|
|
||||||
|
|
||||||
ACTOR_TYPE_MONTY_HOLE = 0x6B,
|
|
||||||
|
|
||||||
ACTOR_TYPE_UNUSED_6C = 0x6C,
|
|
||||||
ACTOR_TYPE_UNUSED_6D = 0x6D,
|
|
||||||
|
|
||||||
ACTOR_TYPE_PLAYER = 0x6E,
|
|
||||||
ACTOR_TYPE_GOOMBARIO = 0x6F,
|
|
||||||
ACTOR_TYPE_KOOPER = 0x70,
|
|
||||||
ACTOR_TYPE_BOMBETTE = 0x71,
|
|
||||||
ACTOR_TYPE_PARAKARRY = 0x72,
|
|
||||||
ACTOR_TYPE_BOW = 0x73,
|
|
||||||
ACTOR_TYPE_WATT = 0x74,
|
|
||||||
ACTOR_TYPE_SUSHIE = 0x75,
|
|
||||||
ACTOR_TYPE_LAKILESTER = 0x76,
|
|
||||||
ACTOR_TYPE_TWINK = 0x77,
|
|
||||||
|
|
||||||
ACTOR_TYPE_UNUSED_78 = 0x78,
|
|
||||||
ACTOR_TYPE_UNUSED_79 = 0x79,
|
|
||||||
|
|
||||||
ACTOR_TYPE_THE_MASTER_1 = 0x7A,
|
|
||||||
ACTOR_TYPE_THE_MASTER_2 = 0x7B,
|
|
||||||
ACTOR_TYPE_THE_MASTER_3 = 0x7C,
|
|
||||||
ACTOR_TYPE_CHAN = 0x7D,
|
|
||||||
ACTOR_TYPE_LEE = 0x7E,
|
|
||||||
ACTOR_TYPE_LEE_GOOMBARIO = 0x7F,
|
|
||||||
ACTOR_TYPE_LEE_KOOPER = 0x80,
|
|
||||||
ACTOR_TYPE_LEE_BOMBETTE = 0x81,
|
|
||||||
ACTOR_TYPE_LEE_PARAKARRY = 0x82,
|
|
||||||
ACTOR_TYPE_LEE_BOW = 0x83,
|
|
||||||
ACTOR_TYPE_LEE_WATT = 0x84,
|
|
||||||
ACTOR_TYPE_LEE_SUSHIE = 0x85,
|
|
||||||
ACTOR_TYPE_LEE_LAKILESTER = 0x86,
|
|
||||||
ACTOR_TYPE_KAMMY_KOOPA = 0x87,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_1 = 0x88,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_2 = 0x89,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_3 = 0x8A,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_4 = 0x8B,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_5 = 0x8C,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_6 = 0x8D,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_DUP1 = 0x8E,
|
|
||||||
ACTOR_TYPE_JR_TROOPA_DUP2 = 0x8F,
|
|
||||||
ACTOR_TYPE_BLUE_GOOMBA_BOSS = 0x90,
|
|
||||||
ACTOR_TYPE_RED_GOOMBA_BOSS = 0x91,
|
|
||||||
ACTOR_TYPE_GOOMBA_KING = 0x92,
|
|
||||||
ACTOR_TYPE_GOOMNUT_TREE = 0x93,
|
|
||||||
ACTOR_TYPE_GOOMBARIO_TUTOR1 = 0x94,
|
|
||||||
ACTOR_TYPE_MAGIKOOPA_BOSS = 0x95,
|
|
||||||
ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS = 0x96,
|
|
||||||
ACTOR_TYPE_MAGIKOOPA_DUP1 = 0x97,
|
|
||||||
ACTOR_TYPE_MAGIKOOPA_DUP2 = 0x98,
|
|
||||||
ACTOR_TYPE_FAKE_BOWSER = 0x99,
|
|
||||||
ACTOR_TYPE_KOOPA_BROS = 0x9A,
|
|
||||||
ACTOR_TYPE_GREEN_NINJAKOOPA = 0x9B,
|
|
||||||
ACTOR_TYPE_RED_NINJAKOOPA = 0x9C,
|
|
||||||
ACTOR_TYPE_BLACK_NINJAKOOPA = 0x9D,
|
|
||||||
ACTOR_TYPE_YELLOW_NINJAKOOPA = 0x9E,
|
|
||||||
ACTOR_TYPE_ELDSTAR = 0x9F,
|
|
||||||
ACTOR_TYPE_BUZZAR = 0xA0,
|
|
||||||
ACTOR_TYPE_TUTANKOOPA = 0xA1,
|
|
||||||
ACTOR_TYPE_CHOMP = 0xA2,
|
|
||||||
ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE = 0xA3,
|
|
||||||
ACTOR_TYPE_TUBBA_BLUBBA = 0xA4,
|
|
||||||
ACTOR_TYPE_TUBBA_HEART = 0xA5,
|
|
||||||
ACTOR_TYPE_STILT_GUY = 0xA6,
|
|
||||||
ACTOR_TYPE_SHY_STACK = 0xA7,
|
|
||||||
ACTOR_TYPE_SHY_SQUAD = 0xA8,
|
|
||||||
ACTOR_TYPE_GENERAL_GUY = 0xA9,
|
|
||||||
ACTOR_TYPE_TOY_TANK = 0xAA,
|
|
||||||
ACTOR_TYPE_LIGHT_BULB = 0xAB,
|
|
||||||
ACTOR_TYPE_SIGNAL_GUY = 0xAC,
|
|
||||||
ACTOR_TYPE_SHY_SQUAD_DUP = 0xAD,
|
|
||||||
ACTOR_TYPE_SHY_GUY_DUP = 0xAE,
|
|
||||||
ACTOR_TYPE_ANTI_GUY_OMO = 0xAF,
|
|
||||||
ACTOR_TYPE_ANTI_GUY_KPA = 0xB0,
|
|
||||||
ACTOR_TYPE_BIG_LANTERN_GHOST = 0xB1,
|
|
||||||
ACTOR_TYPE_GOOMBA_KING_DUP = 0xB2,
|
|
||||||
ACTOR_TYPE_LAVA_PIRANHA_PHASE_1 = 0xB3,
|
|
||||||
ACTOR_TYPE_LAVA_PIRANHA_PHASE_2 = 0xB4,
|
|
||||||
ACTOR_TYPE_LAVA_BUD_PHASE_1 = 0xB5,
|
|
||||||
ACTOR_TYPE_LAVA_BUD_PHASE_2 = 0xB6,
|
|
||||||
ACTOR_TYPE_PETIT_PIRANHA = 0xB7,
|
|
||||||
ACTOR_TYPE_PETIT_PIRANHA_BOMB = 0xB8,
|
|
||||||
ACTOR_TYPE_KENT_C_KOOPA = 0xB9,
|
|
||||||
ACTOR_TYPE_HUFF_N_PUFF = 0xBA,
|
|
||||||
ACTOR_TYPE_TUFF_PUFF = 0xBB,
|
|
||||||
ACTOR_TYPE_MONSTAR = 0xBC,
|
|
||||||
ACTOR_TYPE_CRYSTAL_KING = 0xBD,
|
|
||||||
ACTOR_TYPE_CRYSTAL_CLONE = 0xBE,
|
|
||||||
ACTOR_TYPE_CRYSTAL_BIT = 0xBF,
|
|
||||||
ACTOR_TYPE_INTRO_BOWSER = 0xC0,
|
|
||||||
ACTOR_TYPE_HALLWAY_BOWSER = 0xC1,
|
|
||||||
ACTOR_TYPE_HALLWAY_BOWSER_DUP = 0xC2,
|
|
||||||
ACTOR_TYPE_FINAL_BOWSER_1 = 0xC3,
|
|
||||||
ACTOR_TYPE_FINAL_BOWSER_1_DUP = 0xC4,
|
|
||||||
ACTOR_TYPE_FINAL_BOWSER_2 = 0xC5,
|
|
||||||
ACTOR_TYPE_FINAL_BOWSER_2_DUP = 0xC6,
|
|
||||||
ACTOR_TYPE_BLOOPER = 0xC7,
|
|
||||||
ACTOR_TYPE_ELECTRO_BLOOPER1 = 0xC8,
|
|
||||||
ACTOR_TYPE_ELECTRO_BLOOPER2 = 0xC9,
|
|
||||||
ACTOR_TYPE_SUPER_BLOOPER1 = 0xCA,
|
|
||||||
ACTOR_TYPE_SUPER_BLOOPER2 = 0xCB,
|
|
||||||
ACTOR_TYPE_BLOOPER_BABY = 0xCC,
|
|
||||||
ACTOR_TYPE_LAKILESTER_DUP = 0xCD,
|
|
||||||
ACTOR_TYPE_SLOT_MACHINE_START = 0xCE,
|
|
||||||
ACTOR_TYPE_SLOT_MACHINE_STOP = 0xCF,
|
|
||||||
ACTOR_TYPE_WHACKA = 0xD0,
|
|
||||||
ACTOR_TYPE_SLOT_MACHINE_START_DUP1 = 0xD1,
|
|
||||||
ACTOR_TYPE_SLOT_MACHINE_START_DUP2 = 0xD2,
|
|
||||||
ACTOR_TYPE_SLOT_MACHINE_START_DUP3 = 0xD3,
|
|
||||||
ACTOR_TYPE_COUNT = 0xD4,
|
|
||||||
} ActorType;
|
|
||||||
|
|
||||||
enum BattleVars {
|
enum BattleVars {
|
||||||
BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost
|
BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost
|
||||||
BTL_VAL_Duplighost_HasCopied = 0x4,
|
BTL_VAL_Duplighost_HasCopied = 0x4,
|
||||||
BTL_VAR_HyperSync = 1,
|
BTL_VAR_HyperSync = 1,
|
||||||
BTL_VAL_HyperSync_None = 0,
|
BTL_VAL_HyperSync_None = 0,
|
||||||
BTL_VAL_HyperSync_Done = 1,
|
BTL_VAL_HyperSync_Done = 1,
|
||||||
BTL_VAL_HyperSync_Active = 2,
|
BTL_VAL_HyperSync_Active = 2,
|
||||||
BTL_VAR_UNK_MAGIKOOPA = 2,
|
// index of the last enemy boosted by a magikoopa
|
||||||
BTL_VAR_LastCopiedPartner = 3, // used by duplighost
|
// intended to prevent multiple boosts for the same actor in the same turn
|
||||||
BTL_VAR_KoopatrolSummonCount_0 = 4, // count summons from Koopatrol and 'children' originally from column 0
|
// selected enemies go from left to right and are reset if none are found
|
||||||
BTL_VAR_KoopatrolSummonCount_1 = 5, // count summons from Koopatrol and 'children' originally from column 1
|
BTL_VAR_Magikoopa_LastIndexBoosted = 2,
|
||||||
BTL_VAR_KoopatrolSummonCount_2 = 6, // count summons from Koopatrol and 'children' originally from column 2
|
BTL_VAR_LastCopiedPartner = 3, // used by duplighost
|
||||||
BTL_VAR_KoopatrolSummonCount_3 = 7, // count summons from Koopatrol and 'children' originally from column 3
|
BTL_VAR_KoopatrolSummonCount_0 = 4, // count summons from Koopatrol and 'children' originally from column 0
|
||||||
|
BTL_VAR_KoopatrolSummonCount_1 = 5, // count summons from Koopatrol and 'children' originally from column 1
|
||||||
|
BTL_VAR_KoopatrolSummonCount_2 = 6, // count summons from Koopatrol and 'children' originally from column 2
|
||||||
|
BTL_VAR_KoopatrolSummonCount_3 = 7, // count summons from Koopatrol and 'children' originally from column 3
|
||||||
};
|
};
|
||||||
|
|
||||||
// document special actor vars referenced from other actors
|
// document special actor vars referenced from other actors
|
||||||
@ -459,7 +240,7 @@ typedef struct ActorSounds {
|
|||||||
/* 0x18 */ s16 delay[2]; ///< Number of frames to wait between walk/fly sounds. Negative values are in distance.
|
/* 0x18 */ s16 delay[2]; ///< Number of frames to wait between walk/fly sounds. Negative values are in distance.
|
||||||
} ActorSounds; // size = 0x1C
|
} ActorSounds; // size = 0x1C
|
||||||
|
|
||||||
extern ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT];
|
extern ActorSounds bActorSoundTable[];
|
||||||
|
|
||||||
typedef struct ActorOffsets {
|
typedef struct ActorOffsets {
|
||||||
/* 0x00 */ Vec3b tattleCam;
|
/* 0x00 */ Vec3b tattleCam;
|
||||||
@ -475,7 +256,7 @@ typedef struct PlayerCelebrationAnimOptions {
|
|||||||
|
|
||||||
extern Battle* gCurrentBattlePtr;
|
extern Battle* gCurrentBattlePtr;
|
||||||
|
|
||||||
extern ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT];
|
extern ActorOffsets bActorOffsets[];
|
||||||
|
|
||||||
void func_80072BCC(s32 arg0);
|
void func_80072BCC(s32 arg0);
|
||||||
void load_demo_battle(u32 index);
|
void load_demo_battle(u32 index);
|
||||||
|
@ -1008,14 +1008,14 @@ EvtScript EVS_Player_NextSlapLeft_Impl = {
|
|||||||
|
|
||||||
EvtScript EVS_Player_LastSlapRight_Impl = {
|
EvtScript EVS_Player_LastSlapRight_Impl = {
|
||||||
EVT_CHILD_THREAD
|
EVT_CHILD_THREAD
|
||||||
EVT_CALL(MakeLerp, 0, 0x00000870, 60, EASING_COS_IN_OUT)
|
EVT_CALL(MakeLerp, 0, 2160, 60, EASING_COS_IN_OUT)
|
||||||
EVT_LABEL(1)
|
EVT_LABEL(1)
|
||||||
EVT_CALL(UpdateLerp)
|
EVT_CALL(UpdateLerp)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_IF_EQ(LVar1, 1)
|
EVT_IF_EQ(LVar1, 1)
|
||||||
EVT_GOTO(1)
|
EVT_GOTO(1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_CHILD_THREAD
|
EVT_END_CHILD_THREAD
|
||||||
EVT_CALL(GetDamageIntensity)
|
EVT_CALL(GetDamageIntensity)
|
||||||
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
||||||
@ -1026,14 +1026,14 @@ EvtScript EVS_Player_LastSlapRight_Impl = {
|
|||||||
|
|
||||||
EvtScript EVS_Player_LastSlapLeft_Impl = {
|
EvtScript EVS_Player_LastSlapLeft_Impl = {
|
||||||
EVT_CHILD_THREAD
|
EVT_CHILD_THREAD
|
||||||
EVT_CALL(MakeLerp, 0x00000870, 0, 60, EASING_COS_IN_OUT)
|
EVT_CALL(MakeLerp, 2160, 0, 60, EASING_COS_IN_OUT)
|
||||||
EVT_LABEL(1)
|
EVT_LABEL(1)
|
||||||
EVT_CALL(UpdateLerp)
|
EVT_CALL(UpdateLerp)
|
||||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_IF_EQ(LVar1, 1)
|
EVT_IF_EQ(LVar1, 1)
|
||||||
EVT_GOTO(1)
|
EVT_GOTO(1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_CHILD_THREAD
|
EVT_END_CHILD_THREAD
|
||||||
EVT_CALL(GetDamageIntensity)
|
EVT_CALL(GetDamageIntensity)
|
||||||
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
||||||
|
@ -6,10 +6,12 @@
|
|||||||
|
|
||||||
#ifdef ANTIGUY_TRIO
|
#ifdef ANTIGUY_TRIO
|
||||||
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_KPA
|
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_KPA
|
||||||
|
#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_KPA
|
||||||
#define PARALYZE_CHANCE 50
|
#define PARALYZE_CHANCE 50
|
||||||
#define ESCAPE_CHANCE 0
|
#define ESCAPE_CHANCE 0
|
||||||
#else
|
#else
|
||||||
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_OMO
|
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_OMO
|
||||||
|
#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_OMO
|
||||||
#define PARALYZE_CHANCE 60
|
#define PARALYZE_CHANCE 60
|
||||||
#define ESCAPE_CHANCE 50
|
#define ESCAPE_CHANCE 50
|
||||||
#endif
|
#endif
|
||||||
@ -77,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
|||||||
ActorBlueprint NAMESPACE = {
|
ActorBlueprint NAMESPACE = {
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.type = ACTOR_TYPE,
|
.type = ACTOR_TYPE,
|
||||||
.level = ACTOR_LEVEL_ANTI_GUY,
|
.level = ACTOR_LEVEL,
|
||||||
.maxHP = 50,
|
.maxHP = 50,
|
||||||
.partCount = ARRAY_COUNT(N(ActorParts)),
|
.partCount = ARRAY_COUNT(N(ActorParts)),
|
||||||
.partsData = N(ActorParts),
|
.partsData = N(ActorParts),
|
||||||
|
@ -175,7 +175,7 @@ EvtScript N(EVS_Ignite) = {
|
|||||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
||||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2)
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2)
|
||||||
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE)
|
||||||
EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Bobomb, SPR_PAL_Bobomb_Burst, 0, 10, 0, 10, 0, 0)
|
EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Bobomb, SPR_PAL_Bobomb_Burst, 0, 10, 0, 10, 0, 0)
|
||||||
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
||||||
EVT_WAIT(3)
|
EVT_WAIT(3)
|
||||||
@ -194,7 +194,7 @@ EvtScript N(EVS_Defuse) = {
|
|||||||
EVT_ADD(LVar2, 2)
|
EVT_ADD(LVar2, 2)
|
||||||
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 0)
|
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 0)
|
||||||
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
@ -203,7 +203,7 @@ EvtScript N(EVS_Cleanup) = {
|
|||||||
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Ignited, LVar0)
|
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Ignited, LVar0)
|
||||||
EVT_IF_EQ(LVar0, TRUE)
|
EVT_IF_EQ(LVar0, TRUE)
|
||||||
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
|
@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -803,14 +803,14 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -821,7 +821,7 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -775,9 +775,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -788,9 +788,9 @@ EvtScript N(EVS_Init_Flying) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, 3)
|
EVT_IF_LT(LVar4, 3)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -449,9 +449,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||||
@ -473,9 +473,9 @@ EvtScript N(EVS_Flying_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||||
@ -1533,14 +1533,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1551,7 +1551,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1646,14 +1646,14 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1664,7 +1664,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1759,14 +1759,14 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1777,7 +1777,7 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
@ -1877,14 +1877,14 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -1895,7 +1895,7 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -774,9 +774,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -787,9 +787,9 @@ EvtScript N(EVS_Init_Flying) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -804,14 +804,14 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -822,7 +822,7 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -111,18 +111,18 @@ EvtScript N(EVS_Init) = {
|
|||||||
|
|
||||||
EvtScript N(EVS_Idle) = {
|
EvtScript N(EVS_Idle) = {
|
||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
|
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
|
||||||
EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP)
|
EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP)
|
||||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14)
|
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14)
|
||||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
|
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
|
||||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13)
|
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13)
|
||||||
EVT_ELSE
|
EVT_ELSE
|
||||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
|
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
|
||||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
|
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
|
||||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
|
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_WAIT(1)
|
EVT_WAIT(1)
|
||||||
EVT_GOTO(0)
|
EVT_GOTO(0)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
EVT_END
|
EVT_END
|
||||||
};
|
};
|
||||||
|
@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = {
|
|||||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||||
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying)))
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0)
|
||||||
EVT_IF_EQ(LVar0, 0)
|
EVT_IF_EQ(LVar0, 0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||||
EVT_RETURN
|
EVT_RETURN
|
||||||
@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_LABEL(0)
|
EVT_LABEL(0)
|
||||||
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
EVT_CALL(GetOwnerTarget, LVar0, LVar1)
|
||||||
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
EVT_CALL(GetIndexFromHome, LVar0, LVar1)
|
||||||
EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2)
|
EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2)
|
||||||
EVT_IF_GT(LVar1, LVar2)
|
EVT_IF_GT(LVar1, LVar2)
|
||||||
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||||
EVT_IF_EQ(LVar3, 0)
|
EVT_IF_EQ(LVar3, 0)
|
||||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||||
EVT_SET(LVar8, LVar0)
|
EVT_SET(LVar8, LVar0)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||||
EVT_GOTO(100)
|
EVT_GOTO(100)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = {
|
|||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_IF_EQ(LFlag0, FALSE)
|
EVT_IF_EQ(LFlag0, FALSE)
|
||||||
EVT_SET(LFlag0, TRUE)
|
EVT_SET(LFlag0, TRUE)
|
||||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||||
EVT_GOTO(10)
|
EVT_GOTO(10)
|
||||||
EVT_END_IF
|
EVT_END_IF
|
||||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#define NAMESPACE battle_partner_goombario
|
#define NAMESPACE battle_partner_goombario
|
||||||
|
|
||||||
extern s32 bActorTattles[ACTOR_TYPE_COUNT];
|
extern s32 bActorTattles[];
|
||||||
|
|
||||||
static EffectInstance* N(tattleEffect);
|
static EffectInstance* N(tattleEffect);
|
||||||
static b32 N(isCharged);
|
static b32 N(isCharged);
|
||||||
|
@ -1086,7 +1086,7 @@ EvtScript N(fireShell) = {
|
|||||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1)
|
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1)
|
||||||
EVT_CALL(SetActorPaletteEffect, ACTOR_PARTNER, -1, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
EVT_CALL(SetActorPaletteEffect, ACTOR_PARTNER, -1, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
||||||
EVT_CALL(SetActorPaletteSwapParams, ACTOR_PARTNER, -1, SPR_PAL_BattleKooper, SPR_PAL_BattleKooper, 1, 10, 1000, 10, 0, 0)
|
EVT_CALL(SetActorPaletteSwapParams, ACTOR_PARTNER, -1, SPR_PAL_BattleKooper, SPR_PAL_BattleKooper, 1, 10, 1000, 10, 0, 0)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_PARTNER, 0, 1)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_PARTNER, 0, TRUE)
|
||||||
EVT_SET(LVar6, SPR_PAL_BattleKooper)
|
EVT_SET(LVar6, SPR_PAL_BattleKooper)
|
||||||
EVT_SET(LVar7, SPR_PAL_BattleKooper)
|
EVT_SET(LVar7, SPR_PAL_BattleKooper)
|
||||||
EVT_SET(LVar8, 30)
|
EVT_SET(LVar8, 30)
|
||||||
@ -1210,7 +1210,7 @@ EvtScript N(fireShell) = {
|
|||||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 1)
|
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 1)
|
||||||
EVT_WAIT(20)
|
EVT_WAIT(20)
|
||||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 0)
|
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 0)
|
||||||
EVT_CALL(func_8026ED20, ACTOR_PARTNER, 0, 0)
|
EVT_CALL(EnableActorPaletteEffects, ACTOR_PARTNER, 0, FALSE)
|
||||||
EVT_CALL(SetActorPos, ACTOR_PARTNER, -200, 0, 0)
|
EVT_CALL(SetActorPos, ACTOR_PARTNER, -200, 0, 0)
|
||||||
EVT_CALL(SetGoalToHome, ACTOR_PARTNER)
|
EVT_CALL(SetGoalToHome, ACTOR_PARTNER)
|
||||||
EVT_CALL(AddGoalPos, ACTOR_PARTNER, 40, 0, 0)
|
EVT_CALL(AddGoalPos, ACTOR_PARTNER, 40, 0, 0)
|
||||||
|
@ -208,7 +208,7 @@ API_CALLABLE(N(PowerShockDischargeFX)) {
|
|||||||
|
|
||||||
script->functionTemp[0]--;
|
script->functionTemp[0]--;
|
||||||
if (script->functionTemp[0] == 0) {
|
if (script->functionTemp[0] == 0) {
|
||||||
N(bulbGlow)->data.bulbGlow->unk_14 = 5;
|
N(bulbGlow)->data.bulbGlow->timeLeft = 5;
|
||||||
return ApiStatus_DONE2;
|
return ApiStatus_DONE2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,13 +33,13 @@ UnkBulbGlow D_E0078918[] = {
|
|||||||
s32 D_E00789A8 = 0;
|
s32 D_E00789A8 = 0;
|
||||||
|
|
||||||
Color_RGB8 D_E00789AC[] = {
|
Color_RGB8 D_E00789AC[] = {
|
||||||
{255, 255, 255},
|
{ 255, 255, 255 },
|
||||||
{255, 255, 128},
|
{ 255, 255, 128 },
|
||||||
{255, 128, 255},
|
{ 255, 128, 255 },
|
||||||
{128, 255, 255},
|
{ 128, 255, 255 },
|
||||||
{255, 128, 128},
|
{ 255, 128, 128 },
|
||||||
{128, 255, 128},
|
{ 128, 255, 128 },
|
||||||
{128, 128, 255},
|
{ 128, 128, 255 },
|
||||||
};
|
};
|
||||||
|
|
||||||
void bulb_glow_init(EffectInstance* effect);
|
void bulb_glow_init(EffectInstance* effect);
|
||||||
@ -47,7 +47,7 @@ void bulb_glow_update(EffectInstance* effect);
|
|||||||
void bulb_glow_render(EffectInstance* effect);
|
void bulb_glow_render(EffectInstance* effect);
|
||||||
void bulb_glow_appendGfx(void* effect);
|
void bulb_glow_appendGfx(void* effect);
|
||||||
|
|
||||||
void bulb_glow_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance** outEffect) {
|
void bulb_glow_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, EffectInstance** outEffect) {
|
||||||
EffectBlueprint bp;
|
EffectBlueprint bp;
|
||||||
EffectInstance* effect;
|
EffectInstance* effect;
|
||||||
BulbGlowFXData* data;
|
BulbGlowFXData* data;
|
||||||
@ -65,18 +65,18 @@ void bulb_glow_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInst
|
|||||||
data = effect->data.bulbGlow = general_heap_malloc(numParts * sizeof(*data));
|
data = effect->data.bulbGlow = general_heap_malloc(numParts * sizeof(*data));
|
||||||
ASSERT(effect->data.bulbGlow != NULL);
|
ASSERT(effect->data.bulbGlow != NULL);
|
||||||
|
|
||||||
data->unk_00 = arg0 & 255;
|
data->type = arg0 & 255;
|
||||||
if (arg0 < 256) {
|
if (arg0 < 256) {
|
||||||
data->unk_14 = 100;
|
data->timeLeft = 100;
|
||||||
} else {
|
} else {
|
||||||
data->unk_14 = 80;
|
data->timeLeft = 80;
|
||||||
}
|
}
|
||||||
data->unk_18 = 0;
|
data->lifetime = 0;
|
||||||
data->unk_10 = 127;
|
data->brightness = 127;
|
||||||
data->pos.x = arg1;
|
data->pos.x = posX;
|
||||||
data->pos.y = arg2;
|
data->pos.y = posY;
|
||||||
data->pos.z = arg3;
|
data->pos.z = posZ;
|
||||||
data->unk_1C = D_E00789A8;
|
data->depthQueryID = D_E00789A8;
|
||||||
|
|
||||||
D_E00789A8++;
|
D_E00789A8++;
|
||||||
if (D_E00789A8 >= 16) {
|
if (D_E00789A8 >= 16) {
|
||||||
@ -92,38 +92,38 @@ void bulb_glow_init(EffectInstance* effect) {
|
|||||||
|
|
||||||
void bulb_glow_update(EffectInstance* effect) {
|
void bulb_glow_update(EffectInstance* effect) {
|
||||||
BulbGlowFXData* data = effect->data.bulbGlow;
|
BulbGlowFXData* data = effect->data.bulbGlow;
|
||||||
s32 unk18;
|
s32 time;
|
||||||
|
|
||||||
if (effect->flags & FX_INSTANCE_FLAG_DISMISS) {
|
if (effect->flags & FX_INSTANCE_FLAG_DISMISS) {
|
||||||
effect->flags &= ~FX_INSTANCE_FLAG_DISMISS;
|
effect->flags &= ~FX_INSTANCE_FLAG_DISMISS;
|
||||||
data->unk_14 = 10;
|
data->timeLeft = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->unk_18++;
|
data->lifetime++;
|
||||||
|
|
||||||
if (data->unk_14 < 100) {
|
if (data->timeLeft < 100) {
|
||||||
data->unk_14--;
|
data->timeLeft--;
|
||||||
}
|
}
|
||||||
if (data->unk_14 < 0) {
|
if (data->timeLeft < 0) {
|
||||||
remove_effect(effect);
|
remove_effect(effect);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unk18 = data->unk_18;
|
time = data->lifetime;
|
||||||
if (data->unk_00 == 0) {
|
if (data->type == 0) {
|
||||||
if (unk18 < 11) {
|
if (time < 11) {
|
||||||
data->unk_10 = (unk18 * 6) + 4;
|
data->brightness = (time * 6) + 4;
|
||||||
} else {
|
} else {
|
||||||
data->unk_10 = 64;
|
data->brightness = 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unk18 & 1) {
|
if (time & 1) {
|
||||||
data->unk_10 *= 0.6;
|
data->brightness *= 0.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unk18 >= 15) {
|
if (time >= 15) {
|
||||||
data->unk_00 = 4;
|
data->type = 4;
|
||||||
data->unk_10 = 127;
|
data->brightness = 127;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,7 +136,7 @@ void bulb_glow_render(EffectInstance* effect) {
|
|||||||
|
|
||||||
renderTask.appendGfxArg = effect;
|
renderTask.appendGfxArg = effect;
|
||||||
renderTask.appendGfx = bulb_glow_appendGfx;
|
renderTask.appendGfx = bulb_glow_appendGfx;
|
||||||
if (data->unk_00 == 5) {
|
if (data->type == 5) {
|
||||||
renderTask.dist = 0;
|
renderTask.dist = 0;
|
||||||
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA;
|
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA;
|
||||||
} else {
|
} else {
|
||||||
@ -160,7 +160,7 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
s32 xMin;
|
s32 xMin;
|
||||||
s32 numRects;
|
s32 numRects;
|
||||||
s32 yMin;
|
s32 yMin;
|
||||||
s32 temp_s2;
|
s32 type;
|
||||||
s32 rectHeight;
|
s32 rectHeight;
|
||||||
s32 glowExtent;
|
s32 glowExtent;
|
||||||
s32 colorScale;
|
s32 colorScale;
|
||||||
@ -171,13 +171,13 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
s32 isPointVisible;
|
s32 isPointVisible;
|
||||||
s32 yStart;
|
s32 yStart;
|
||||||
UnkBulbGlow* temp_s1;
|
UnkBulbGlow* temp_s1;
|
||||||
Color_RGB8* temp_v0;
|
Color_RGB8* color;
|
||||||
s32 i;
|
s32 i;
|
||||||
s32 j;
|
s32 j;
|
||||||
u8 r, g, b;
|
u8 r, g, b;
|
||||||
|
|
||||||
brightness = data->unk_10;
|
brightness = data->brightness;
|
||||||
temp_s2 = data->unk_00;
|
type = data->type;
|
||||||
if (brightness > 127) {
|
if (brightness > 127) {
|
||||||
brightness = 127;
|
brightness = 127;
|
||||||
}
|
}
|
||||||
@ -185,13 +185,13 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
gDPPipeSync(gMainGfxPos++);
|
gDPPipeSync(gMainGfxPos++);
|
||||||
gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
|
gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
|
||||||
|
|
||||||
temp_s1 = &D_E0078918[temp_s2];
|
temp_s1 = &D_E0078918[type];
|
||||||
glowExtent = temp_s1->unk_10;
|
glowExtent = temp_s1->unk_10;
|
||||||
rectHeight = temp_s1->unk_14;
|
rectHeight = temp_s1->unk_14;
|
||||||
|
|
||||||
isPointVisible = is_point_visible(data->pos.x, data->pos.y, data->pos.z, data->unk_1C, ¢erX, ¢erY);
|
isPointVisible = is_point_visible(data->pos.x, data->pos.y, data->pos.z, data->depthQueryID, ¢erX, ¢erY);
|
||||||
|
|
||||||
if (temp_s2 == 5) {
|
if (type == 5) {
|
||||||
isPointVisible = TRUE;
|
isPointVisible = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,12 +199,12 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gSPDisplayList(gMainGfxPos++, D_E0078900[temp_s2]);
|
gSPDisplayList(gMainGfxPos++, D_E0078900[type]);
|
||||||
temp_v0 = &D_E00789AC[data->unk_20];
|
color = &D_E00789AC[data->unk_20];
|
||||||
colorScale = brightness * 2;
|
colorScale = brightness * 2;
|
||||||
r = temp_v0->r * colorScale / 255;
|
r = color->r * colorScale / 255;
|
||||||
g = temp_v0->g * colorScale / 255;
|
g = color->g * colorScale / 255;
|
||||||
b = temp_v0->b * colorScale / 255;
|
b = color->b * colorScale / 255;
|
||||||
|
|
||||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, 127);
|
gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, 127);
|
||||||
|
|
||||||
@ -237,10 +237,10 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE,
|
gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE,
|
||||||
(s32) (xMin * temp_s1->unk_08) << 2,
|
(s32) (xMin * temp_s1->unk_08) * 4,
|
||||||
(s32) (temp_s1->unk_04 * 20 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2,
|
(s32) (temp_s1->unk_04 * 20 - i * temp_s1->unk_14 * temp_s1->unk_0C) * 4,
|
||||||
(s32) (xMin * temp_s1->unk_08 + temp_s1->unk_00) << 2,
|
(s32) (xMin * temp_s1->unk_08 + temp_s1->unk_00) * 4,
|
||||||
(s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2);
|
(s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) * 4);
|
||||||
|
|
||||||
for (j = 0; j < 1; j++) {
|
for (j = 0; j < 1; j++) {
|
||||||
gDPLoadMultiTile(gMainGfxPos++,
|
gDPLoadMultiTile(gMainGfxPos++,
|
||||||
@ -249,8 +249,8 @@ void bulb_glow_appendGfx(void* effect) {
|
|||||||
xMin + xStart, 0, xMax - 1, rectHeight - 1,
|
xMin + xStart, 0, xMax - 1, rectHeight - 1,
|
||||||
0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 9, 8, G_TX_NOLOD, G_TX_NOLOD);
|
0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 9, 8, G_TX_NOLOD, G_TX_NOLOD);
|
||||||
gSPTextureRectangle(gMainGfxPos++,
|
gSPTextureRectangle(gMainGfxPos++,
|
||||||
(xMin + xStart) << 2, y << 2,
|
(xMin + xStart) * 4, y * 4,
|
||||||
xMax << 2, (y + rectHeight) << 2,
|
xMax * 4, (y + rectHeight) * 4,
|
||||||
G_TX_RENDERTILE,
|
G_TX_RENDERTILE,
|
||||||
((xMin + xStart) & 0x1FF) << 5, 0,
|
((xMin + xStart) & 0x1FF) << 5, 0,
|
||||||
1 << 10, 1 << 10);
|
1 << 10, 1 << 10);
|
||||||
|
@ -14,7 +14,7 @@ void ice_shard_render(EffectInstance* effect);
|
|||||||
void ice_shard_appendGfx(void* effect);
|
void ice_shard_appendGfx(void* effect);
|
||||||
|
|
||||||
EffectInstance* ice_shard_main(
|
EffectInstance* ice_shard_main(
|
||||||
s32 arg0,
|
s32 type,
|
||||||
f32 posX,
|
f32 posX,
|
||||||
f32 posY,
|
f32 posY,
|
||||||
f32 posZ,
|
f32 posZ,
|
||||||
@ -38,7 +38,7 @@ EffectInstance* ice_shard_main(
|
|||||||
data = effect->data.iceShard = general_heap_malloc(numParts * sizeof(*data));
|
data = effect->data.iceShard = general_heap_malloc(numParts * sizeof(*data));
|
||||||
ASSERT(effect->data.iceShard != NULL);
|
ASSERT(effect->data.iceShard != NULL);
|
||||||
|
|
||||||
data->type = arg0;
|
data->type = type;
|
||||||
data->lifetime = 0;
|
data->lifetime = 0;
|
||||||
if (duration <= 0) {
|
if (duration <= 0) {
|
||||||
data->timeLeft = 1000;
|
data->timeLeft = 1000;
|
||||||
@ -74,7 +74,7 @@ void ice_shard_init(EffectInstance* effect) {
|
|||||||
|
|
||||||
void ice_shard_update(EffectInstance* effect) {
|
void ice_shard_update(EffectInstance* effect) {
|
||||||
IceShardFXData* data = effect->data.iceShard;
|
IceShardFXData* data = effect->data.iceShard;
|
||||||
s32 unk_00 = data->type;
|
s32 type = data->type;
|
||||||
|
|
||||||
if (effect->flags & FX_INSTANCE_FLAG_DISMISS) {
|
if (effect->flags & FX_INSTANCE_FLAG_DISMISS) {
|
||||||
effect->flags &= ~FX_INSTANCE_FLAG_DISMISS;
|
effect->flags &= ~FX_INSTANCE_FLAG_DISMISS;
|
||||||
@ -111,7 +111,7 @@ void ice_shard_update(EffectInstance* effect) {
|
|||||||
data->pos.z += data->vel.z;
|
data->pos.z += data->vel.z;
|
||||||
data->rot += data->angularVel;
|
data->rot += data->angularVel;
|
||||||
|
|
||||||
if (unk_00 >= 2 && data->pos.y < 0.0f && data->vel.y < 0.0f) {
|
if (type >= 2 && data->pos.y < 0.0f && data->vel.y < 0.0f) {
|
||||||
data->pos.y = 0.0f;
|
data->pos.y = 0.0f;
|
||||||
data->vel.y *= -0.7;
|
data->vel.y *= -0.7;
|
||||||
}
|
}
|
||||||
|
@ -1037,7 +1037,7 @@
|
|||||||
nameMsg: MSG_ItemName_Kaiden
|
nameMsg: MSG_ItemName_Kaiden
|
||||||
fullDescMsg: MSG_ItemFullDesc_Kaiden
|
fullDescMsg: MSG_ItemFullDesc_Kaiden
|
||||||
shortDescMsg: MSG_ItemShortDesc_Kaiden
|
shortDescMsg: MSG_ItemShortDesc_Kaiden
|
||||||
flags: [ TARGET_FLAG_80000000 ]
|
flags: [ TARGET_FLAG_OVERRIDE ]
|
||||||
category: MOVE_TYPE_NONE
|
category: MOVE_TYPE_NONE
|
||||||
actionTip: MOVE_ACTION_TIP_NONE
|
actionTip: MOVE_ACTION_TIP_NONE
|
||||||
costFP: 0
|
costFP: 0
|
||||||
@ -1073,7 +1073,7 @@
|
|||||||
nameMsg: MSG_Menus_StarPower_Focus
|
nameMsg: MSG_Menus_StarPower_Focus
|
||||||
fullDescMsg: 0
|
fullDescMsg: 0
|
||||||
shortDescMsg: MSG_Menus_StarPowerDesc_Focus
|
shortDescMsg: MSG_Menus_StarPowerDesc_Focus
|
||||||
flags: [ TARGET_FLAG_80000000 ]
|
flags: [ TARGET_FLAG_OVERRIDE ]
|
||||||
category: MOVE_TYPE_STAR_POWER
|
category: MOVE_TYPE_STAR_POWER
|
||||||
actionTip: MOVE_ACTION_TIP_NONE
|
actionTip: MOVE_ACTION_TIP_NONE
|
||||||
costFP: 0
|
costFP: 0
|
||||||
|
144
tools/build/actor_types.py
Normal file
144
tools/build/actor_types.py
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import re
|
||||||
|
import yaml
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import List
|
||||||
|
from io import TextIOWrapper
|
||||||
|
|
||||||
|
|
||||||
|
class ActorTypeEntry:
|
||||||
|
def __init__(self, entry):
|
||||||
|
self.name = list(entry.keys())[0]
|
||||||
|
data = entry[self.name]
|
||||||
|
|
||||||
|
self.level = data.get("level", 0)
|
||||||
|
self.nameMsg = data.get("nameMsg", "MSG_NONE")
|
||||||
|
self.tattleMsg = data.get("tattleMsg", "MSG_NONE")
|
||||||
|
self.walkSounds = data.get("walkSound", ["SOUND_NONE", "SOUND_NONE"])
|
||||||
|
self.flySounds = data.get("flySound", ["SOUND_NONE", "SOUND_NONE"])
|
||||||
|
self.jumpSound = data.get("jumpSound", "SOUND_NONE")
|
||||||
|
self.hurtSound = data.get("hurtSound", "SOUND_NONE")
|
||||||
|
self.stepDelay = data.get("stepDelay", [30, 30])
|
||||||
|
self.tattleCamOffset = data.get("tattleCamOffset", [0, 0, 0])
|
||||||
|
self.shadowOffset = data.get("shadowOffset", 0)
|
||||||
|
self.ignoreDuringCount = data.get("ignoreDuringCount", False)
|
||||||
|
|
||||||
|
if len(self.walkSounds) != 2:
|
||||||
|
raise Exception("Walk sounds array has incorrect size: " + self.walkSounds)
|
||||||
|
|
||||||
|
if len(self.flySounds) != 2:
|
||||||
|
raise Exception("Fly sounds array has incorrect size: " + self.flySounds)
|
||||||
|
|
||||||
|
if len(self.stepDelay) != 2:
|
||||||
|
raise Exception("Steps delay array has incorrect size: " + self.stepDelay)
|
||||||
|
|
||||||
|
if len(self.tattleCamOffset) != 3:
|
||||||
|
raise Exception("Tattle cam offset array has incorrect size: " + self.tattleCamOffset)
|
||||||
|
|
||||||
|
self.enum_suffix = re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?<!_)[A-Z](?=[a-z]))", r"_\1", self.name).upper()
|
||||||
|
self.enum_name = "ACTOR_TYPE_" + self.enum_suffix
|
||||||
|
|
||||||
|
|
||||||
|
def read_actors_yaml(in_yaml: Path) -> List[ActorTypeEntry]:
|
||||||
|
actors: List[ActorTypeEntry] = []
|
||||||
|
|
||||||
|
with open(in_yaml) as f:
|
||||||
|
entry_list = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
||||||
|
|
||||||
|
for entry in entry_list:
|
||||||
|
actors.append(ActorTypeEntry(entry))
|
||||||
|
|
||||||
|
return actors
|
||||||
|
|
||||||
|
|
||||||
|
def generate_actors_data(fout: TextIOWrapper, actors: List[ActorTypeEntry]):
|
||||||
|
fout.write("s32 bActorNames[] = {\n")
|
||||||
|
for actor in actors:
|
||||||
|
key = "[" + actor.enum_name + "]"
|
||||||
|
fout.write(f" {key:40}{actor.nameMsg},\n")
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("// enemy types to ignore when deciding initialEnemyCount\n")
|
||||||
|
fout.write("s32 bActorsIgnoreDuringCount[] = {\n")
|
||||||
|
for actor in actors:
|
||||||
|
if actor.ignoreDuringCount:
|
||||||
|
fout.write(f" {actor.enum_name},\n")
|
||||||
|
fout.write(" -1\n")
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("ActorSounds bActorSoundTable[] = {\n")
|
||||||
|
for actor in actors:
|
||||||
|
fout.write(f" [{actor.enum_name}] = {{\n")
|
||||||
|
fout.write(f" .walk = {{ {', '.join(actor.walkSounds)} }},\n")
|
||||||
|
fout.write(f" .fly = {{ {', '.join(actor.flySounds)} }},\n")
|
||||||
|
fout.write(f" .jump = {actor.jumpSound},\n")
|
||||||
|
fout.write(f" .hurt = {actor.hurtSound},\n")
|
||||||
|
fout.write(f" .delay = {{ {', '.join(map(str, actor.stepDelay))} }},\n")
|
||||||
|
fout.write(f" }},\n")
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("s32 bActorTattles[] = {\n")
|
||||||
|
for actor in actors:
|
||||||
|
key = "[" + actor.enum_name + "]"
|
||||||
|
fout.write(f" {key:40}{actor.tattleMsg},\n")
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("ActorOffsets bActorOffsets[] = {\n")
|
||||||
|
for actor in actors:
|
||||||
|
fout.write(f" [{actor.enum_name}] = {{\n")
|
||||||
|
fout.write(f" .tattleCam = {{ {', '.join(map(str, actor.tattleCamOffset))} }},\n")
|
||||||
|
fout.write(f" .shadow = {actor.shadowOffset},\n")
|
||||||
|
fout.write(f" }},\n")
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
|
||||||
|
def generate_actors_enums(fout: TextIOWrapper, actors: List[ActorTypeEntry]):
|
||||||
|
fout.write("#ifndef ACTORS_ENUM_H\n")
|
||||||
|
fout.write("#define ACTORS_ENUM_H\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("enum ActorTypes {\n")
|
||||||
|
|
||||||
|
for idx, actor in enumerate(actors):
|
||||||
|
fout.write(f" {actor.enum_name:48} = 0x{idx:02X},\n")
|
||||||
|
|
||||||
|
fout.write("};\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write(f"#define ACTOR_LEVEL_NONE 99\n")
|
||||||
|
for idx, actor in enumerate(actors):
|
||||||
|
fout.write(f"#define ACTOR_LEVEL_{actor.enum_suffix:32} {actor.level}\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
fout.write("#endif // ACTORS_ENUM_H\n")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = argparse.ArgumentParser(description="Generates actor tables")
|
||||||
|
parser.add_argument("out_data", help="output header file to generate containing the data")
|
||||||
|
parser.add_argument("out_enum", help="output header file to generate containing the enum")
|
||||||
|
parser.add_argument("actors_yaml", type=Path, help="input yaml file path")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
actors = read_actors_yaml(args.actors_yaml)
|
||||||
|
|
||||||
|
with open(args.out_data, "w") as fout:
|
||||||
|
fout.write("/* This file is auto-generated. Do not edit. */\n")
|
||||||
|
fout.write('#include "common.h"\n')
|
||||||
|
fout.write('#include "message_ids.h"\n')
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
generate_actors_data(fout, actors)
|
||||||
|
|
||||||
|
with open(args.out_enum, "w") as fout:
|
||||||
|
fout.write("/* This file is auto-generated. Do not edit. */\n")
|
||||||
|
fout.write("\n")
|
||||||
|
|
||||||
|
generate_actors_enums(fout, actors)
|
@ -279,6 +279,11 @@ def write_ninja_rules(
|
|||||||
command=f"$python {BUILD_TOOLS}/item_data.py $out $in",
|
command=f"$python {BUILD_TOOLS}/item_data.py $out $in",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ninja.rule(
|
||||||
|
"actor_types",
|
||||||
|
command=f"$python {BUILD_TOOLS}/actor_types.py $out $in",
|
||||||
|
)
|
||||||
|
|
||||||
ninja.rule(
|
ninja.rule(
|
||||||
"world_map",
|
"world_map",
|
||||||
command=f"$python {BUILD_TOOLS}/world_map.py $in $out",
|
command=f"$python {BUILD_TOOLS}/world_map.py $in $out",
|
||||||
@ -614,6 +619,17 @@ class Configure:
|
|||||||
"item_data",
|
"item_data",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
build(
|
||||||
|
[
|
||||||
|
self.build_path() / "include/battle/actor_types.inc.c",
|
||||||
|
self.build_path() / "include/battle/actor_types.h",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Path("src/battle/actors.yaml"),
|
||||||
|
],
|
||||||
|
"actor_types",
|
||||||
|
)
|
||||||
|
|
||||||
# Build objects
|
# Build objects
|
||||||
for entry in self.linker_entries:
|
for entry in self.linker_entries:
|
||||||
seg = entry.segment
|
seg = entry.segment
|
||||||
|
@ -68,14 +68,11 @@ def generate_move_enum(fout: TextIOWrapper, moves: List[MoveEntry]):
|
|||||||
|
|
||||||
fout.write("enum MoveIDs {\n")
|
fout.write("enum MoveIDs {\n")
|
||||||
|
|
||||||
item_enum: List[str] = []
|
|
||||||
|
|
||||||
for idx, move in enumerate(moves):
|
for idx, move in enumerate(moves):
|
||||||
if re.match(r"Unused_(?:Hammer_)?([0-9A-F]{2})", move.name):
|
if re.match(r"Unused_(?:Hammer_)?([0-9A-F]{2})", move.name):
|
||||||
name = "MOVE_" + move.name.upper()
|
name = "MOVE_" + move.name.upper()
|
||||||
else:
|
else:
|
||||||
name = "MOVE_" + re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?<!_)[A-Z](?=[a-z]))", r"_\1", move.name).upper()
|
name = "MOVE_" + re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?<!_)[A-Z](?=[a-z]))", r"_\1", move.name).upper()
|
||||||
item_enum.append(name)
|
|
||||||
fout.write(f" {name:39} = 0x{idx:03X},\n")
|
fout.write(f" {name:39} = 0x{idx:03X},\n")
|
||||||
|
|
||||||
fout.write("};\n")
|
fout.write("};\n")
|
||||||
|
@ -451,7 +451,7 @@ replace_funcs = {
|
|||||||
"GetPartAnimNotify": {0: "ActorIDs"},
|
"GetPartAnimNotify": {0: "ActorIDs"},
|
||||||
"SetActorPaletteEffect": {0: "ActorIDs"},
|
"SetActorPaletteEffect": {0: "ActorIDs"},
|
||||||
"SetActorPaletteSwapParams": {0: "ActorIDs"},
|
"SetActorPaletteSwapParams": {0: "ActorIDs"},
|
||||||
"func_8026ED20": {0: "ActorIDs"},
|
"EnableActorPaletteEffects": {0: "ActorIDs"},
|
||||||
"HideHealthBar": {0: "ActorIDs"},
|
"HideHealthBar": {0: "ActorIDs"},
|
||||||
"func_8027D434": {0: "ActorIDs"},
|
"func_8027D434": {0: "ActorIDs"},
|
||||||
"SetProjectileTargetOffset": {0: "ActorIDs"},
|
"SetProjectileTargetOffset": {0: "ActorIDs"},
|
||||||
|
@ -5408,8 +5408,8 @@
|
|||||||
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
||||||
- [0x1D, 0x0082, Menus_AttackUp]
|
- [0x1D, 0x0082, Menus_AttackUp]
|
||||||
- [0x1D, 0x0083, Menus_DefenseUp]
|
- [0x1D, 0x0083, Menus_DefenseUp]
|
||||||
- [0x1D, 0x0084, Menus_0084] # possibly unused AttackDown
|
- [0x1D, 0x0084, Menus_HealOne]
|
||||||
- [0x1D, 0x0085, Menus_0085] # possibly unused DefenseDown
|
- [0x1D, 0x0085, Menus_HealAll]
|
||||||
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
||||||
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
||||||
- [0x1D, 0x0088, Menus_PlayerDazed]
|
- [0x1D, 0x0088, Menus_PlayerDazed]
|
||||||
@ -7678,7 +7678,7 @@
|
|||||||
- [0x29, 0x0078, EnemyName_Whacka]
|
- [0x29, 0x0078, EnemyName_Whacka]
|
||||||
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
||||||
- [0x29, 0x007A, EnemyName_Bulb]
|
- [0x29, 0x007A, EnemyName_Bulb]
|
||||||
- [0x29, 0x007B, EnemyName_ShySquadDup]
|
- [0x29, 0x007B, EnemyName_ShySquadRedux]
|
||||||
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
||||||
- [0x29, 0x007D, EnemyName_MontyHole]
|
- [0x29, 0x007D, EnemyName_MontyHole]
|
||||||
- [0x29, 0x007E, EnemyName_Balloon]
|
- [0x29, 0x007E, EnemyName_Balloon]
|
||||||
|
@ -5413,8 +5413,8 @@
|
|||||||
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
||||||
- [0x1D, 0x0082, Menus_AttackUp]
|
- [0x1D, 0x0082, Menus_AttackUp]
|
||||||
- [0x1D, 0x0083, Menus_DefenseUp]
|
- [0x1D, 0x0083, Menus_DefenseUp]
|
||||||
- [0x1D, 0x0084, Menus_0084] # possibly unused AttackDown
|
- [0x1D, 0x0084, Menus_HealOne]
|
||||||
- [0x1D, 0x0085, Menus_0085] # possibly unused DefenseDown
|
- [0x1D, 0x0085, Menus_HealAll]
|
||||||
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
||||||
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
||||||
- [0x1D, 0x0088, Menus_PlayerDazed]
|
- [0x1D, 0x0088, Menus_PlayerDazed]
|
||||||
@ -7730,7 +7730,7 @@
|
|||||||
- [0x29, 0x0078, EnemyName_Whacka]
|
- [0x29, 0x0078, EnemyName_Whacka]
|
||||||
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
||||||
- [0x29, 0x007A, EnemyName_Bulb]
|
- [0x29, 0x007A, EnemyName_Bulb]
|
||||||
- [0x29, 0x007B, EnemyName_ShySquadDup]
|
- [0x29, 0x007B, EnemyName_ShySquadRedux]
|
||||||
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
||||||
- [0x29, 0x007D, EnemyName_MontyHole]
|
- [0x29, 0x007D, EnemyName_MontyHole]
|
||||||
- [0x29, 0x007E, EnemyName_Balloon]
|
- [0x29, 0x007E, EnemyName_Balloon]
|
||||||
|
@ -7681,7 +7681,7 @@
|
|||||||
#define MSG_EnemyName_Whacka MESSAGE_ID(0x29, 0x078)
|
#define MSG_EnemyName_Whacka MESSAGE_ID(0x29, 0x078)
|
||||||
#define MSG_EnemyName_GeneralGuyDup MESSAGE_ID(0x29, 0x079)
|
#define MSG_EnemyName_GeneralGuyDup MESSAGE_ID(0x29, 0x079)
|
||||||
#define MSG_EnemyName_Bulb MESSAGE_ID(0x29, 0x07A)
|
#define MSG_EnemyName_Bulb MESSAGE_ID(0x29, 0x07A)
|
||||||
#define MSG_EnemyName_ShySquadDup MESSAGE_ID(0x29, 0x07B)
|
#define MSG_EnemyName_ShySquadRedux MESSAGE_ID(0x29, 0x07B)
|
||||||
#define MSG_EnemyName_Fuzzipede MESSAGE_ID(0x29, 0x07C)
|
#define MSG_EnemyName_Fuzzipede MESSAGE_ID(0x29, 0x07C)
|
||||||
#define MSG_EnemyName_MontyHole MESSAGE_ID(0x29, 0x07D)
|
#define MSG_EnemyName_MontyHole MESSAGE_ID(0x29, 0x07D)
|
||||||
#define MSG_EnemyName_Balloon MESSAGE_ID(0x29, 0x07E)
|
#define MSG_EnemyName_Balloon MESSAGE_ID(0x29, 0x07E)
|
||||||
|
@ -5703,14 +5703,14 @@ segments:
|
|||||||
start: 0x5A59A0
|
start: 0x5A59A0
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x5A59A0, c, actor/shy_squad_dup]
|
- [0x5A59A0, c, actor/shy_squad_redux]
|
||||||
- [0x5A59A0]
|
- [0x5A59A0]
|
||||||
- dir: battle/area/omo2_6
|
- dir: battle/area/omo2_6
|
||||||
type: code
|
type: code
|
||||||
start: 0x5A9A80
|
start: 0x5A9A80
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x5A9A80, c, actor/shy_guy_dup]
|
- [0x5A9A80, c, actor/shy_squad_stub]
|
||||||
- [0x5A9A80,]
|
- [0x5A9A80,]
|
||||||
- dir: battle/area/omo3
|
- dir: battle/area/omo3
|
||||||
type: code
|
type: code
|
||||||
|
@ -356,7 +356,7 @@ OverrideBattleDmaDest = 0x802537B8;
|
|||||||
LoadBattleDmaData = 0x802537E4;
|
LoadBattleDmaData = 0x802537E4;
|
||||||
EnableBattleFloorReflections = 0x80253868;
|
EnableBattleFloorReflections = 0x80253868;
|
||||||
SetDarknessMode = 0x802538F4;
|
SetDarknessMode = 0x802538F4;
|
||||||
func_802537C0 = 0x80253980;
|
GetDarknessStatus = 0x80253980;
|
||||||
PlaySoundAtActor = 0x80253A1C;
|
PlaySoundAtActor = 0x80253A1C;
|
||||||
PlaySoundAtPart = 0x80253A90;
|
PlaySoundAtPart = 0x80253A90;
|
||||||
PlayLoopingSoundAtActor = 0x80253B34;
|
PlayLoopingSoundAtActor = 0x80253B34;
|
||||||
@ -499,7 +499,7 @@ func_8026E914 = 0x8026ED04;
|
|||||||
GetDistanceToGoal = 0x8026EDEC;
|
GetDistanceToGoal = 0x8026EDEC;
|
||||||
SetActorPaletteEffect = 0x8026EE6C;
|
SetActorPaletteEffect = 0x8026EE6C;
|
||||||
SetActorPaletteSwapParams = 0x8026EFE8;
|
SetActorPaletteSwapParams = 0x8026EFE8;
|
||||||
func_8026ED20 = 0x8026F110;
|
EnableActorPaletteEffects = 0x8026F110;
|
||||||
AddActorDecoration = 0x8026F278;
|
AddActorDecoration = 0x8026F278;
|
||||||
RemoveActorDecoration = 0x8026F33C;
|
RemoveActorDecoration = 0x8026F33C;
|
||||||
ModifyActorDecoration = 0x8026F3E0;
|
ModifyActorDecoration = 0x8026F3E0;
|
||||||
|
@ -6401,14 +6401,14 @@ segments:
|
|||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
vram_of_symbol: Vine1Base
|
vram_of_symbol: Vine1Base
|
||||||
subsegments:
|
subsegments:
|
||||||
- [auto, c, actor/shy_squad_dup]
|
- [auto, c, actor/shy_squad_redux]
|
||||||
- dir: battle/area/omo2_6
|
- dir: battle/area/omo2_6
|
||||||
type: code
|
type: code
|
||||||
start: 0x556C90
|
start: 0x556C90
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
vram_of_symbol: Vine1Base
|
vram_of_symbol: Vine1Base
|
||||||
subsegments:
|
subsegments:
|
||||||
- [auto, c, actor/shy_guy_dup]
|
- [auto, c, actor/shy_squad_stub]
|
||||||
- dir: battle/area/omo3
|
- dir: battle/area/omo3
|
||||||
type: code
|
type: code
|
||||||
start: 0x5573E0
|
start: 0x5573E0
|
||||||
|
@ -6607,7 +6607,7 @@ OverrideBattleDmaDest = 0x802535F8; // type:func rom:0x181ED8
|
|||||||
LoadBattleDmaData = 0x80253624; // type:func rom:0x181F04
|
LoadBattleDmaData = 0x80253624; // type:func rom:0x181F04
|
||||||
EnableBattleFloorReflections = 0x802536A8; // type:func rom:0x181F88
|
EnableBattleFloorReflections = 0x802536A8; // type:func rom:0x181F88
|
||||||
SetDarknessMode = 0x80253734; // type:func rom:0x182014
|
SetDarknessMode = 0x80253734; // type:func rom:0x182014
|
||||||
func_802537C0 = 0x802537C0; // type:func rom:0x1820A0
|
GetDarknessStatus = 0x802537C0; // type:func rom:0x1820A0
|
||||||
PlaySoundAtActor = 0x8025385C; // type:func rom:0x18213C
|
PlaySoundAtActor = 0x8025385C; // type:func rom:0x18213C
|
||||||
PlaySoundAtPart = 0x802538D0; // type:func rom:0x1821B0
|
PlaySoundAtPart = 0x802538D0; // type:func rom:0x1821B0
|
||||||
PlayLoopingSoundAtActor = 0x80253974; // type:func rom:0x182254
|
PlayLoopingSoundAtActor = 0x80253974; // type:func rom:0x182254
|
||||||
@ -7017,7 +7017,7 @@ GetDistanceToGoal = 0x8026E9FC; // type:func rom:0x19D2DC
|
|||||||
SetActorPaletteEffect = 0x8026EA7C; // type:func rom:0x19D35C
|
SetActorPaletteEffect = 0x8026EA7C; // type:func rom:0x19D35C
|
||||||
SetActorPaletteSwapTimes = 0x8026EB20; // type:func rom:0x19D400
|
SetActorPaletteSwapTimes = 0x8026EB20; // type:func rom:0x19D400
|
||||||
SetActorPaletteSwapParams = 0x8026EBF8; // type:func rom:0x19D4D8
|
SetActorPaletteSwapParams = 0x8026EBF8; // type:func rom:0x19D4D8
|
||||||
func_8026ED20 = 0x8026ED20; // type:func rom:0x19D600
|
EnableActorPaletteEffects = 0x8026ED20; // type:func rom:0x19D600
|
||||||
func_8026EDE4 = 0x8026EDE4; // type:func rom:0x19D6C4
|
func_8026EDE4 = 0x8026EDE4; // type:func rom:0x19D6C4
|
||||||
AddActorDecoration = 0x8026EE88; // type:func rom:0x19D768
|
AddActorDecoration = 0x8026EE88; // type:func rom:0x19D768
|
||||||
RemoveActorDecoration = 0x8026EF4C; // type:func rom:0x19D82C
|
RemoveActorDecoration = 0x8026EF4C; // type:func rom:0x19D82C
|
||||||
@ -7201,7 +7201,7 @@ CamPreset_A = 0x80280E54; // rom:0x1AF734
|
|||||||
EVS_OnBattleInit = 0x80280EB8; // rom:0x1AF798
|
EVS_OnBattleInit = 0x80280EB8; // rom:0x1AF798
|
||||||
D_80280FC0 = 0x80280FC0; // rom:0x1AF8A0
|
D_80280FC0 = 0x80280FC0; // rom:0x1AF8A0
|
||||||
bActorNames = 0x80281104; // rom:0x1AF9E4
|
bActorNames = 0x80281104; // rom:0x1AF9E4
|
||||||
D_80281454 = 0x80281454; // rom:0x1AFD34
|
bActorsIgnoreDuringCount = 0x80281454; // rom:0x1AFD34
|
||||||
bActorSoundTable = 0x80281468; // rom:0x1AFD48 size:0x1730
|
bActorSoundTable = 0x80281468; // rom:0x1AFD48 size:0x1730
|
||||||
bActorTattles = 0x80282B98; // rom:0x1B1478 size:0x350
|
bActorTattles = 0x80282B98; // rom:0x1B1478 size:0x350
|
||||||
bActorOffsets = 0x80282EE8; // rom:0x1B17C8 size:0x350
|
bActorOffsets = 0x80282EE8; // rom:0x1B17C8 size:0x350
|
||||||
@ -11844,7 +11844,7 @@ b_area_omo_Stages = 0x80230AC8; // rom:0x52B098
|
|||||||
b_area_omo2_general_guy_FadeBackgroundDarken = 0x80218000; // type:func rom:0x52B6A0
|
b_area_omo2_general_guy_FadeBackgroundDarken = 0x80218000; // type:func rom:0x52B6A0
|
||||||
D_80231110 = 0x80231110; // rom:0x52B6E0
|
D_80231110 = 0x80231110; // rom:0x52B6E0
|
||||||
b_area_omo2_general_guy_FadeBackgroundLighten = 0x80218098; // type:func rom:0x52B738
|
b_area_omo2_general_guy_FadeBackgroundLighten = 0x80218098; // type:func rom:0x52B738
|
||||||
b_area_omo2_toy_tank_UpdateBulbGlow = 0x80218120; // type:func rom:0x52B7C0
|
b_area_omo2_toy_tank_UpdateBulbGlowPos = 0x80218120; // type:func rom:0x52B7C0
|
||||||
func_802181F4_52B894 = 0x802181F4; // type:func rom:0x52B894
|
func_802181F4_52B894 = 0x802181F4; // type:func rom:0x52B894
|
||||||
func_80218250_52B8F0 = 0x80218250; // type:func rom:0x52B8F0
|
func_80218250_52B8F0 = 0x80218250; // type:func rom:0x52B8F0
|
||||||
b_area_omo2_general_guy_DefenseTable = 0x80218330; // rom:0x52B9D0
|
b_area_omo2_general_guy_DefenseTable = 0x80218330; // rom:0x52B9D0
|
||||||
@ -11888,14 +11888,14 @@ b_area_omo2_toy_tank_8021A63C = 0x8021A63C; // rom:0x52DCDC
|
|||||||
b_area_omo2_toy_tank_8021A668 = 0x8021A668; // rom:0x52DD08
|
b_area_omo2_toy_tank_8021A668 = 0x8021A668; // rom:0x52DD08
|
||||||
b_area_omo2_toy_tank_8021A694 = 0x8021A694; // rom:0x52DD34
|
b_area_omo2_toy_tank_8021A694 = 0x8021A694; // rom:0x52DD34
|
||||||
toy_tank_model = 0x8021A6C0; // rom:0x52DD60
|
toy_tank_model = 0x8021A6C0; // rom:0x52DD60
|
||||||
toy_tank_as_shake = 0x8021A724; // rom:0x52DDC4
|
AS_ToyTank_Shake = 0x8021A724; // rom:0x52DDC4
|
||||||
toy_tank_as_fall_apart = 0x8021D318; // rom:0x5309B8
|
AS_ToyTank_FallApart = 0x8021D318; // rom:0x5309B8
|
||||||
toy_tank_as_close_hatch = 0x8021E798; // rom:0x531E38
|
AS_ToyTank_CloseHatch = 0x8021E798; // rom:0x531E38
|
||||||
toy_tank_as_open_hatch = 0x80220D88; // rom:0x534428
|
AS_ToyTank_OpenHatch = 0x80220D88; // rom:0x534428
|
||||||
toy_tank_as_5 = 0x80221384; // rom:0x534A24
|
AS_ToyTank_Unused1 = 0x80221384; // rom:0x534A24
|
||||||
toy_tank_as_move_forward = 0x80222A98; // rom:0x536138
|
AS_ToyTank_MoveForward = 0x80222A98; // rom:0x536138
|
||||||
toy_tank_as_7 = 0x8022AE48; // rom:0x53E4E8
|
AS_ToyTank_Unused2 = 0x8022AE48; // rom:0x53E4E8
|
||||||
toy_tank_as_idle = 0x8022C55C; // rom:0x53FBFC
|
AS_ToyTank_Idle = 0x8022C55C; // rom:0x53FBFC
|
||||||
b_area_omo2_toy_tank_DefenseTable = 0x8022C838; // rom:0x53FED8
|
b_area_omo2_toy_tank_DefenseTable = 0x8022C838; // rom:0x53FED8
|
||||||
b_area_omo2_toy_tank_StatusTable = 0x8022C844; // rom:0x53FEE4
|
b_area_omo2_toy_tank_StatusTable = 0x8022C844; // rom:0x53FEE4
|
||||||
b_area_omo2_toy_tank_ActorParts = 0x8022C8F0; // rom:0x53FF90
|
b_area_omo2_toy_tank_ActorParts = 0x8022C8F0; // rom:0x53FF90
|
||||||
@ -11905,7 +11905,7 @@ b_area_omo2_toy_tank_idle = 0x8022CC38; // rom:0x5402D8
|
|||||||
b_area_omo2_toy_tank_handleEvent = 0x8022CE5C; // rom:0x5404FC
|
b_area_omo2_toy_tank_handleEvent = 0x8022CE5C; // rom:0x5404FC
|
||||||
b_area_omo2_toy_tank_takeTurn = 0x8022D228; // rom:0x5408C8
|
b_area_omo2_toy_tank_takeTurn = 0x8022D228; // rom:0x5408C8
|
||||||
b_area_omo2_toy_tank_onHit = 0x8022D238; // rom:0x5408D8
|
b_area_omo2_toy_tank_onHit = 0x8022D238; // rom:0x5408D8
|
||||||
b_area_omo2_toy_tank_shake_tank = 0x8022D5B8; // rom:0x540C58
|
b_area_omo2_toy_tank_EVS_ShakeTank = 0x8022D5B8; // rom:0x540C58
|
||||||
b_area_omo2_toy_tank_select_phase = 0x8022D5E8; // rom:0x540C88
|
b_area_omo2_toy_tank_select_phase = 0x8022D5E8; // rom:0x540C88
|
||||||
b_area_omo2_toy_tank_update_phase = 0x8022DB10; // rom:0x5411B0
|
b_area_omo2_toy_tank_update_phase = 0x8022DB10; // rom:0x5411B0
|
||||||
b_area_omo2_toy_tank_start_stilt_guys_phase = 0x8022DBA0; // rom:0x541240
|
b_area_omo2_toy_tank_start_stilt_guys_phase = 0x8022DBA0; // rom:0x541240
|
||||||
@ -11923,7 +11923,7 @@ b_area_omo2_toy_tank_formation_stilt_guy_1 = 0x8022F570; // rom:0x542C10
|
|||||||
b_area_omo2_toy_tank_formation_stilt_guy_2 = 0x8022F58C; // rom:0x542C2C
|
b_area_omo2_toy_tank_formation_stilt_guy_2 = 0x8022F58C; // rom:0x542C2C
|
||||||
b_area_omo2_toy_tank_formation_shy_stack_1 = 0x8022F5A8; // rom:0x542C48
|
b_area_omo2_toy_tank_formation_shy_stack_1 = 0x8022F5A8; // rom:0x542C48
|
||||||
b_area_omo2_toy_tank_formation_shy_stack_2 = 0x8022F5C4; // rom:0x542C64
|
b_area_omo2_toy_tank_formation_shy_stack_2 = 0x8022F5C4; // rom:0x542C64
|
||||||
b_area_omo2_toy_tank_formation_shy_squad_dup = 0x8022F5E0; // rom:0x542C80
|
b_area_omo2_toy_tank_formation_shy_squad_redux = 0x8022F5E0; // rom:0x542C80
|
||||||
b_area_omo2_light_bulb_DefenseTable = 0x8022F600; // rom:0x542CA0
|
b_area_omo2_light_bulb_DefenseTable = 0x8022F600; // rom:0x542CA0
|
||||||
b_area_omo2_light_bulb_StatusTable = 0x8022F614; // rom:0x542CB4
|
b_area_omo2_light_bulb_StatusTable = 0x8022F614; // rom:0x542CB4
|
||||||
b_area_omo2_light_bulb_ActorParts = 0x8022F6C0; // rom:0x542D60
|
b_area_omo2_light_bulb_ActorParts = 0x8022F6C0; // rom:0x542D60
|
||||||
@ -11933,7 +11933,7 @@ b_area_omo2_light_bulb_idle = 0x8022F774; // rom:0x542E14
|
|||||||
b_area_omo2_light_bulb_handleEvent = 0x8022F7A8; // rom:0x542E48
|
b_area_omo2_light_bulb_handleEvent = 0x8022F7A8; // rom:0x542E48
|
||||||
b_area_omo2_light_bulb_takeTurn = 0x8022F9C8; // rom:0x543068
|
b_area_omo2_light_bulb_takeTurn = 0x8022F9C8; // rom:0x543068
|
||||||
b_area_omo2_light_bulb_onHit = 0x8022F9D8; // rom:0x543078
|
b_area_omo2_light_bulb_onHit = 0x8022F9D8; // rom:0x543078
|
||||||
b_area_omo2_light_bulb_shake_tank = 0x8022F9F4; // rom:0x543094
|
b_area_omo2_light_bulb_EVS_ShakeTank = 0x8022F9F4; // rom:0x543094
|
||||||
b_area_omo2_light_bulb_onDeath = 0x8022FA54; // rom:0x5430F4
|
b_area_omo2_light_bulb_onDeath = 0x8022FA54; // rom:0x5430F4
|
||||||
b_area_omo2_omo_07_EVS_PreBattle = 0x8022FB20; // rom:0x5431C0
|
b_area_omo2_omo_07_EVS_PreBattle = 0x8022FB20; // rom:0x5431C0
|
||||||
b_area_omo2_omo_07_EVS_PostBattle = 0x8022FB5C; // rom:0x5431FC
|
b_area_omo2_omo_07_EVS_PostBattle = 0x8022FB5C; // rom:0x5431FC
|
||||||
@ -12032,40 +12032,40 @@ b_area_omo2_4_signal_guy_init = 0x80231110; // rom:0x552550
|
|||||||
b_area_omo2_4_signal_guy_idle = 0x8023129C; // rom:0x5526DC
|
b_area_omo2_4_signal_guy_idle = 0x8023129C; // rom:0x5526DC
|
||||||
b_area_omo2_4_signal_guy_handleEvent = 0x802312D0; // rom:0x552710
|
b_area_omo2_4_signal_guy_handleEvent = 0x802312D0; // rom:0x552710
|
||||||
b_area_omo2_4_signal_guy_takeTurn = 0x80231754; // rom:0x552B94
|
b_area_omo2_4_signal_guy_takeTurn = 0x80231754; // rom:0x552B94
|
||||||
b_area_omo2_5_shy_squad_dup_DefenseTable = 0x80231000; // rom:0x552BB0
|
b_area_omo2_5_shy_squad_redux_DefenseTable = 0x80231000; // rom:0x552BB0
|
||||||
b_area_omo2_5_shy_squad_dup_StatusTable = 0x8023100C; // rom:0x552BBC
|
b_area_omo2_5_shy_squad_redux_StatusTable = 0x8023100C; // rom:0x552BBC
|
||||||
b_area_omo2_5_shy_squad_dup_ActorParts = 0x802310B8; // rom:0x552C68
|
b_area_omo2_5_shy_squad_redux_ActorParts = 0x802310B8; // rom:0x552C68
|
||||||
b_area_omo2_5_shy_squad_dup = 0x802312F8; // rom:0x552EA8
|
b_area_omo2_5_shy_squad_redux = 0x802312F8; // rom:0x552EA8
|
||||||
b_area_omo2_5_shy_squad_dup_IdleAnimations = 0x80231320; // rom:0x552ED0
|
b_area_omo2_5_shy_squad_redux_IdleAnimations = 0x80231320; // rom:0x552ED0
|
||||||
b_area_omo2_5_shy_squad_dup_IdleAnimations_watt = 0x80231334; // rom:0x552EE4
|
b_area_omo2_5_shy_squad_redux_IdleAnimations_watt = 0x80231334; // rom:0x552EE4
|
||||||
b_area_omo2_5_shy_squad_dup_init = 0x80231348; // rom:0x552EF8
|
b_area_omo2_5_shy_squad_redux_init = 0x80231348; // rom:0x552EF8
|
||||||
b_area_omo2_5_shy_squad_dup_nextTurn = 0x80231FC8; // rom:0x553B78
|
b_area_omo2_5_shy_squad_redux_nextTurn = 0x80231FC8; // rom:0x553B78
|
||||||
b_area_omo2_5_shy_squad_dup_idle = 0x80231FD8; // rom:0x553B88
|
b_area_omo2_5_shy_squad_redux_idle = 0x80231FD8; // rom:0x553B88
|
||||||
b_area_omo2_5_shy_squad_dup_move_guy_to_pos = 0x80232104; // rom:0x553CB4
|
b_area_omo2_5_shy_squad_redux_move_guy_to_pos = 0x80232104; // rom:0x553CB4
|
||||||
b_area_omo2_5_shy_squad_dup_onSpinSmash = 0x80232268; // rom:0x553E18
|
b_area_omo2_5_shy_squad_redux_onSpinSmash = 0x80232268; // rom:0x553E18
|
||||||
b_area_omo2_5_shy_squad_dup_displace_guy = 0x8023233C; // rom:0x553EEC
|
b_area_omo2_5_shy_squad_redux_displace_guy = 0x8023233C; // rom:0x553EEC
|
||||||
b_area_omo2_5_shy_squad_dup_onShock = 0x80232FC0; // rom:0x554B70
|
b_area_omo2_5_shy_squad_redux_onShock = 0x80232FC0; // rom:0x554B70
|
||||||
b_area_omo2_5_shy_squad_dup_displace_guy_2 = 0x80233088; // rom:0x554C38
|
b_area_omo2_5_shy_squad_redux_displace_guy_2 = 0x80233088; // rom:0x554C38
|
||||||
b_area_omo2_5_shy_squad_dup_handleEvent = 0x80233384; // rom:0x554F34
|
b_area_omo2_5_shy_squad_redux_handleEvent = 0x80233384; // rom:0x554F34
|
||||||
b_area_omo2_5_shy_squad_dup_onHit = 0x8023392C; // rom:0x5554DC
|
b_area_omo2_5_shy_squad_redux_onHit = 0x8023392C; // rom:0x5554DC
|
||||||
b_area_omo2_5_shy_squad_dup_set_squad_animation = 0x80233DA4; // rom:0x555954
|
b_area_omo2_5_shy_squad_redux_set_squad_animation = 0x80233DA4; // rom:0x555954
|
||||||
b_area_omo2_5_shy_squad_dup_80233E48 = 0x80233E48; // rom:0x5559F8
|
b_area_omo2_5_shy_squad_redux_80233E48 = 0x80233E48; // rom:0x5559F8
|
||||||
b_area_omo2_5_shy_squad_dup_onDeath = 0x80234024; // rom:0x555BD4
|
b_area_omo2_5_shy_squad_redux_onDeath = 0x80234024; // rom:0x555BD4
|
||||||
b_area_omo2_5_shy_squad_dup_takeTurn = 0x802342A0; // rom:0x555E50
|
b_area_omo2_5_shy_squad_redux_takeTurn = 0x802342A0; // rom:0x555E50
|
||||||
b_area_omo2_5_shy_squad_dup_next_phase = 0x80234370; // rom:0x555F20
|
b_area_omo2_5_shy_squad_redux_next_phase = 0x80234370; // rom:0x555F20
|
||||||
b_area_omo2_5_shy_squad_dup_run_away = 0x802343A8; // rom:0x555F58
|
b_area_omo2_5_shy_squad_redux_run_away = 0x802343A8; // rom:0x555F58
|
||||||
b_area_omo2_5_shy_squad_dup_attack = 0x80234624; // rom:0x5561D4
|
b_area_omo2_5_shy_squad_redux_attack = 0x80234624; // rom:0x5561D4
|
||||||
b_area_omo2_5_shy_squad_dup_run_squad_to_pos = 0x80234EC4; // rom:0x556A74
|
b_area_omo2_5_shy_squad_redux_run_squad_to_pos = 0x80234EC4; // rom:0x556A74
|
||||||
b_area_omo2_6_shy_guy_dup_DefenseTable = 0x80231000; // rom:0x556C90
|
b_area_omo2_6_shy_squad_stub_DefenseTable = 0x80231000; // rom:0x556C90
|
||||||
b_area_omo2_6_shy_guy_dup_StatusTable = 0x8023100C; // rom:0x556C9C
|
b_area_omo2_6_shy_squad_stub_StatusTable = 0x8023100C; // rom:0x556C9C
|
||||||
b_area_omo2_6_shy_guy_dup_ActorParts = 0x802310B8; // rom:0x556D48
|
b_area_omo2_6_shy_squad_stub_ActorParts = 0x802310B8; // rom:0x556D48
|
||||||
b_area_omo2_6_shy_guy_dup = 0x802311FC; // rom:0x556E8C
|
b_area_omo2_6_shy_squad_stub = 0x802311FC; // rom:0x556E8C
|
||||||
b_area_omo2_6_shy_guy_dup_IdleAnimations = 0x80231224; // rom:0x556EB4
|
b_area_omo2_6_shy_squad_stub_IdleAnimations = 0x80231224; // rom:0x556EB4
|
||||||
b_area_omo2_6_shy_guy_dup_init = 0x80231280; // rom:0x556F10
|
b_area_omo2_6_shy_squad_stub_init = 0x80231280; // rom:0x556F10
|
||||||
b_area_omo2_6_shy_guy_dup_idle = 0x802315EC; // rom:0x55727C
|
b_area_omo2_6_shy_squad_stub_idle = 0x802315EC; // rom:0x55727C
|
||||||
b_area_omo2_6_shy_guy_dup_run_to_pos = 0x80231620; // rom:0x5572B0
|
b_area_omo2_6_shy_squad_stub_run_to_pos = 0x80231620; // rom:0x5572B0
|
||||||
b_area_omo2_6_shy_guy_dup_handleEvent = 0x8023172C; // rom:0x5573BC
|
b_area_omo2_6_shy_squad_stub_handleEvent = 0x8023172C; // rom:0x5573BC
|
||||||
b_area_omo2_6_shy_guy_dup_takeTurn = 0x8023173C; // rom:0x5573CC
|
b_area_omo2_6_shy_squad_stub_takeTurn = 0x8023173C; // rom:0x5573CC
|
||||||
func_80218000_5573E0 = 0x80218000; // type:func rom:0x5573E0
|
func_80218000_5573E0 = 0x80218000; // type:func rom:0x5573E0
|
||||||
func_80218038_557418 = 0x80218038; // type:func rom:0x557418
|
func_80218038_557418 = 0x80218038; // type:func rom:0x557418
|
||||||
func_80218070_557450 = 0x80218070; // type:func rom:0x557450
|
func_80218070_557450 = 0x80218070; // type:func rom:0x557450
|
||||||
@ -26854,7 +26854,7 @@ D_8029FBAC = 0x8029FBAC; //
|
|||||||
D_8029FBB0 = 0x8029FBB0; //
|
D_8029FBB0 = 0x8029FBB0; //
|
||||||
D_8029FBC0 = 0x8029FBC0; //
|
D_8029FBC0 = 0x8029FBC0; //
|
||||||
D_8029FBD0 = 0x8029FBD0; //
|
D_8029FBD0 = 0x8029FBD0; //
|
||||||
D_8029FBD4 = 0x8029FBD4; //
|
ApplyingBuff = 0x8029FBD4; //
|
||||||
gActionCommandStatus = 0x8029FBE0; //
|
gActionCommandStatus = 0x8029FBE0; //
|
||||||
D_802A19B0 = 0x802A19B0; //
|
D_802A19B0 = 0x802A19B0; //
|
||||||
D_802A1A60 = 0x802A1A60; //
|
D_802A1A60 = 0x802A1A60; //
|
||||||
@ -26929,7 +26929,7 @@ D_802ACC60 = 0x802ACC60; //
|
|||||||
D_802ACC64 = 0x802ACC64; //
|
D_802ACC64 = 0x802ACC64; //
|
||||||
D_802ACC68 = 0x802ACC68; //
|
D_802ACC68 = 0x802ACC68; //
|
||||||
D_802ACC6C = 0x802ACC6C; //
|
D_802ACC6C = 0x802ACC6C; //
|
||||||
D_802ACC70 = 0x802ACC70; //
|
BattleMenu_TargetHudElems = 0x802ACC70; //
|
||||||
D_802ACCD0 = 0x802ACCD0; //
|
D_802ACCD0 = 0x802ACCD0; //
|
||||||
D_802ACFE8 = 0x802ACFE8; //
|
D_802ACFE8 = 0x802ACFE8; //
|
||||||
D_802ACFEC = 0x802ACFEC; //
|
D_802ACFEC = 0x802ACFEC; //
|
||||||
|
Loading…
Reference in New Issue
Block a user