mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01: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 "battle/formation_names.h"
|
||||
#include "battle/stage_names.h"
|
||||
#include "battle/actor_levels.h"
|
||||
#include "battle/actor_types.h"
|
||||
|
||||
#ifdef PERMUTER
|
||||
extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA;
|
||||
|
@ -742,7 +742,7 @@ typedef struct DebuffFXData {
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ s32 alpha;
|
||||
/* 0x38 */ Color_RGB8 primCol;
|
||||
/* 0x38 */ Color_RGB8 envCol;
|
||||
/* 0x3B */ Color_RGB8 envCol;
|
||||
/* 0x3E */ char unk_3E[2];
|
||||
} DebuffFXData; // size = 0x40
|
||||
|
||||
@ -1024,12 +1024,12 @@ typedef struct AuraFXData {
|
||||
} AuraFXData; // size = 0x70
|
||||
|
||||
typedef struct BulbGlowFXData {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x00 */ s32 type;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ s32 unk_18;
|
||||
/* 0x1C */ s32 unk_1C;
|
||||
/* 0x10 */ s32 brightness;
|
||||
/* 0x14 */ s32 timeLeft;
|
||||
/* 0x18 */ s32 lifetime;
|
||||
/* 0x1C */ s32 depthQueryID;
|
||||
/* 0x20 */ s32 unk_20;
|
||||
} BulbGlowFXData; // size = 0x24
|
||||
|
||||
|
@ -1851,7 +1851,7 @@ enum TargetFlags {
|
||||
TARGET_FLAG_200000 = 0x00200000,
|
||||
TARGET_FLAG_400000 = 0x00400000,
|
||||
TARGET_FLAG_800000 = 0x00800000,
|
||||
TARGET_FLAG_80000000 = 0x80000000,
|
||||
TARGET_FLAG_OVERRIDE = 0x80000000, // skip choosing a target
|
||||
};
|
||||
|
||||
enum ActorPartTargetFlags {
|
||||
@ -3310,7 +3310,7 @@ enum ActorPartFlags {
|
||||
ACTOR_PART_FLAG_200000 = 0x00200000,
|
||||
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_1000000 = 0x01000000,
|
||||
ACTOR_PART_FLAG_HAS_PAL_EFFECT = 0x01000000,
|
||||
ACTOR_PART_FLAG_2000000 = 0x02000000,
|
||||
ACTOR_PART_FLAG_4000000 = 0x04000000,
|
||||
ACTOR_PART_FLAG_8000000 = 0x08000000,
|
||||
@ -4061,8 +4061,8 @@ enum BattleMessages {
|
||||
BTL_MSG_STAR_POWER_FILLED = 0x1C,
|
||||
BTL_MSG_ATTACK_UP = 0x1D,
|
||||
BTL_MSG_DEFENCE_UP = 0x1E,
|
||||
BTL_MSG_1F = 0x1F,
|
||||
BTL_MSG_20 = 0x20,
|
||||
BTL_MSG_HEAL_ONE = 0x1F,
|
||||
BTL_MSG_HEAL_ALL = 0x20,
|
||||
BTL_MSG_ENEMY_TRANSPARENT = 0x21,
|
||||
BTL_MSG_ENEMY_CHARGED = 0x22,
|
||||
BTL_MSG_PARTNER_INJURED = 0x23,
|
||||
|
@ -310,10 +310,10 @@ ApiStatus func_8027D434(Evt* script, s32 isInitialCall);
|
||||
ApiStatus func_8026F1A0(Evt* script, s32 isInitialCall);
|
||||
ApiStatus PlayLoopingSoundAtActor(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 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 GetAnimatedNodeRotation(Evt* script, s32 isInitialCall);
|
||||
ApiStatus GetAnimatedNodePosition(Evt* script, s32 isInitialCall);
|
||||
|
@ -13,7 +13,7 @@ extern s16 D_802809F6;
|
||||
extern s16 DemoBattleBeginDelay;
|
||||
extern s32 BattleScreenFadeAmt;
|
||||
extern EvtScript EVS_OnBattleInit;
|
||||
extern s32 D_80281454[];
|
||||
extern s32 bActorsIgnoreDuringCount[];
|
||||
extern EvtScript EVS_Mario_OnActorCreate;
|
||||
extern EvtScript EVS_Peach_OnActorCreate;
|
||||
|
||||
@ -343,7 +343,7 @@ void btl_state_update_normal_start(void) {
|
||||
|
||||
for (i = 0; i < BattleEnemiesCreated; i++) {
|
||||
create_actor(&(*battle->formation)[i]);
|
||||
types = D_80281454;
|
||||
types = bActorsIgnoreDuringCount;
|
||||
actor = battleStatus->enemyActors[i];
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
@ -366,25 +365,25 @@ ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
ApiStatus func_802537C0(Evt* script, s32 isInitialCall) {
|
||||
ApiStatus GetDarknessStatus(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
s32 a0 = *args++;
|
||||
s32 a1 = *args++;
|
||||
u8 t1;
|
||||
f32 t2;
|
||||
s32 t3;
|
||||
s32 out1 = *args++;
|
||||
s32 out2 = *args++;
|
||||
u8 type;
|
||||
f32 amt;
|
||||
s32 isLight;
|
||||
|
||||
// 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) {
|
||||
t3 = 0;
|
||||
if (amt < 128.0f) {
|
||||
isLight = FALSE;
|
||||
} else {
|
||||
t3 = 1;
|
||||
isLight = TRUE;
|
||||
}
|
||||
|
||||
evt_set_variable(script, a0, 1);
|
||||
evt_set_variable(script, a1, t3);
|
||||
evt_set_variable(script, out1, SCREEN_LAYER_BACK);
|
||||
evt_set_variable(script, out2, isLight);
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
@ -1056,10 +1056,10 @@ void appendGfx_npc_actor(b32 isPartner, s32 actorIndex) {
|
||||
}
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
if (actor->flags & ACTOR_FLAG_4000000) {
|
||||
|
@ -88,7 +88,7 @@ void create_target_list(Actor* actor, s32 arg1) {
|
||||
s32 row;
|
||||
s32 skip;
|
||||
|
||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) {
|
||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) {
|
||||
actor->targetListLength = -1;
|
||||
return;
|
||||
}
|
||||
@ -247,7 +247,7 @@ void create_target_list(Actor* actor, s32 arg1) {
|
||||
if (targetData->actorID == ACTOR_PLAYER || targetData->actorID == ACTOR_PARTNER) {
|
||||
continue;
|
||||
}
|
||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) {
|
||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) {
|
||||
skip = TRUE;
|
||||
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_802ACC68;
|
||||
BSS s32 D_802ACC6C;
|
||||
BSS s32 D_802ACC70[24];
|
||||
BSS s32 BattleMenu_TargetHudElems[24];
|
||||
BSS PopupMenu D_802ACCD0;
|
||||
BSS s8 BattleMenuState;
|
||||
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)) {
|
||||
gBattleSubState = battleStatus->acceptTargetMenuSubstate;
|
||||
if (gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) {
|
||||
@ -4955,7 +4955,7 @@ void btl_state_update_select_target(void) {
|
||||
|
||||
for (i = 0; i < targetListLength; i++) {
|
||||
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_pos(id, 0, -100);
|
||||
}
|
||||
@ -5009,7 +5009,7 @@ void btl_state_update_select_target(void) {
|
||||
|
||||
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
||||
actorFlags = get_actor(target->actorID)->flags;
|
||||
id = D_802ACC70[0];
|
||||
id = BattleMenu_TargetHudElems[0];
|
||||
|
||||
if (actorFlags & ACTOR_FLAG_UPSIDE_DOWN) {
|
||||
hud_element_set_script(id, &HES_HandPointLeftLoop);
|
||||
@ -5027,7 +5027,7 @@ void btl_state_update_select_target(void) {
|
||||
actor->targetActorID = target->actorID;
|
||||
actor->targetPartIndex = target->partID;
|
||||
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)) {
|
||||
@ -5050,7 +5050,7 @@ void btl_state_update_select_target(void) {
|
||||
break;
|
||||
case BTL_SUBSTATE_SELECT_TARGET_CANCEL:
|
||||
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;
|
||||
actor->flags |= ACTOR_FLAG_8000000;
|
||||
@ -5122,7 +5122,7 @@ void btl_state_draw_select_target(void) {
|
||||
if (battleStatus->curTargetListFlags & TARGET_FLAG_ENEMY) {
|
||||
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
|
||||
anotherActor = get_actor(target->actorID);
|
||||
id = D_802ACC70[0];
|
||||
id = BattleMenu_TargetHudElems[0];
|
||||
targetX = target->posA.x;
|
||||
targetY = target->posA.y;
|
||||
targetZ = target->posA.z;
|
||||
@ -5150,7 +5150,7 @@ void btl_state_draw_select_target(void) {
|
||||
for (i = 0; i < targetListLength; i++) {
|
||||
target = &actor->targetData[targetIndexList[i]];
|
||||
anotherActor = get_actor(target->actorID);
|
||||
id = D_802ACC70[i];
|
||||
id = BattleMenu_TargetHudElems[i];
|
||||
targetX = target->posA.x;
|
||||
targetY = target->posA.y;
|
||||
targetZ = target->posA.z;
|
||||
|
@ -2,8 +2,8 @@
|
||||
#include "effects.h"
|
||||
#include "battle/battle.h"
|
||||
|
||||
extern s32 D_8029FBD0;
|
||||
extern s8 D_8029FBD4;
|
||||
extern s32 IsGroupHeal;
|
||||
extern s8 ApplyingBuff;
|
||||
|
||||
s32 count_targets(Actor* actor, s32 targetHomeIndex, s32 targetSelectionFlags) {
|
||||
BattleStatus* battleStatus = &gBattleStatus;
|
||||
@ -2655,7 +2655,7 @@ ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
ApiStatus func_8026ED20(Evt* script, s32 isInitialCall) {
|
||||
ApiStatus EnableActorPaletteEffects(Evt* script, s32 isInitialCall) {
|
||||
Bytecode* args = script->ptrReadPos;
|
||||
s32 actorID = 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);
|
||||
|
||||
if (enable) {
|
||||
actorPart->flags |= ACTOR_FLAG_1000000;
|
||||
actorPart->flags |= ACTOR_PART_FLAG_HAS_PAL_EFFECT;
|
||||
} else {
|
||||
actorPart->flags &= ~ACTOR_FLAG_1000000;
|
||||
actorPart->flags &= ~ACTOR_PART_FLAG_HAS_PAL_EFFECT;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
@ -3231,7 +3231,7 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) {
|
||||
if (actor->flags & ACTOR_FLAG_UPSIDE_DOWN) {
|
||||
btl_cam_set_zoffset(0);
|
||||
}
|
||||
D_8029FBD4 = 1;
|
||||
ApplyingBuff = TRUE;
|
||||
script->functionTemp[3] = 5;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
@ -3312,11 +3312,11 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) {
|
||||
script->functionTemp[3]--;
|
||||
break;
|
||||
}
|
||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
||||
D_8029FBD4 = 0;
|
||||
return ApiStatus_DONE2;
|
||||
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
ApplyingBuff = FALSE;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
@ -3355,7 +3355,7 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) {
|
||||
btl_cam_set_zoffset(0);
|
||||
}
|
||||
|
||||
D_8029FBD4 = 1;
|
||||
ApplyingBuff = TRUE;
|
||||
script->functionTemp[3] = 5;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
@ -3436,11 +3436,11 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) {
|
||||
script->functionTemp[3]--;
|
||||
break;
|
||||
}
|
||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
||||
D_8029FBD4 = 0;
|
||||
return ApiStatus_DONE2;
|
||||
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
ApplyingBuff = FALSE;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
@ -3477,7 +3477,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
||||
btl_cam_set_zoffset(0);
|
||||
}
|
||||
|
||||
D_8029FBD4 = 1;
|
||||
ApplyingBuff = TRUE;
|
||||
script->functionTemp[3] = 5;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
@ -3501,7 +3501,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
||||
if (script->functionTemp[3] == 0) {
|
||||
fx_radial_shimmer(3, x, y, z, 1.0f, 30);
|
||||
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
||||
script->functionTemp[3] = 0x1E;
|
||||
script->functionTemp[3] = 30;
|
||||
script->functionTemp[0] = 2;
|
||||
} else {
|
||||
script->functionTemp[3]--;
|
||||
@ -3513,7 +3513,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
||||
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
||||
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
||||
btl_cam_move(15);
|
||||
inflict_status(actor, 0xE, vanished);
|
||||
inflict_status(actor, STATUS_KEY_TRANSPARENT, vanished);
|
||||
script->functionTemp[3] = 15;
|
||||
script->functionTemp[0] = 3;
|
||||
} else {
|
||||
@ -3542,11 +3542,11 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) {
|
||||
script->functionTemp[3]--;
|
||||
break;
|
||||
}
|
||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
||||
D_8029FBD4 = 0;
|
||||
return ApiStatus_DONE2;
|
||||
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
ApplyingBuff = FALSE;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
@ -3583,7 +3583,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
||||
btl_cam_set_zoffset(0);
|
||||
}
|
||||
|
||||
D_8029FBD4 = 1;
|
||||
ApplyingBuff = TRUE;
|
||||
script->functionTemp[3] = 5;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
@ -3607,7 +3607,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
||||
if (script->functionTemp[3] == 0) {
|
||||
fx_snaking_static(8, x, y, z, 1.0f, 30);
|
||||
btl_cam_use_preset_immediately(BTL_CAM_PRESET_19);
|
||||
script->functionTemp[3] = 0x1E;
|
||||
script->functionTemp[3] = 30;
|
||||
script->functionTemp[0] = 2;
|
||||
} else {
|
||||
script->functionTemp[3]--;
|
||||
@ -3619,7 +3619,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
||||
dispatch_event_actor(actor, EVENT_RECEIVE_BUFF);
|
||||
btl_cam_use_preset(BTL_CAM_DEFAULT);
|
||||
btl_cam_move(15);
|
||||
inflict_status(actor, 0xB, electrified);
|
||||
inflict_status(actor, STATUS_KEY_STATIC, electrified);
|
||||
script->functionTemp[3] = 15;
|
||||
script->functionTemp[0] = 3;
|
||||
} else {
|
||||
@ -3648,11 +3648,11 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) {
|
||||
script->functionTemp[3]--;
|
||||
break;
|
||||
}
|
||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
||||
D_8029FBD4 = 0;
|
||||
return ApiStatus_DONE2;
|
||||
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
ApplyingBuff = FALSE;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
@ -3678,7 +3678,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
||||
actorID = script->owner1.enemyID;
|
||||
}
|
||||
hpBoost = evt_get_variable(script, *args++);
|
||||
D_8029FBD0 = evt_get_variable(script, *args++);
|
||||
IsGroupHeal = evt_get_variable(script, *args++);
|
||||
actor = get_actor(actorID);
|
||||
script->functionTempPtr[1] = actor;
|
||||
script->functionTemp[2] = hpBoost;
|
||||
@ -3689,7 +3689,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
||||
btl_cam_move(10);
|
||||
func_8024E60C();
|
||||
|
||||
D_8029FBD4 = 1;
|
||||
ApplyingBuff = TRUE;
|
||||
script->functionTemp[3] = 5;
|
||||
script->functionTemp[0] = 1;
|
||||
}
|
||||
@ -3750,9 +3750,9 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
||||
break;
|
||||
case 3:
|
||||
if (script->functionTemp[3] == 0) {
|
||||
message = 0x20;
|
||||
if (D_8029FBD0 == 0) {
|
||||
message = 0x1F;
|
||||
message = BTL_MSG_HEAL_ALL;
|
||||
if (!IsGroupHeal) {
|
||||
message = BTL_MSG_HEAL_ONE;
|
||||
}
|
||||
btl_show_variable_battle_message(message, 60, hpBoost);
|
||||
script->functionTemp[0] = 4;
|
||||
@ -3772,17 +3772,21 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) {
|
||||
script->functionTemp[3]--;
|
||||
break;
|
||||
}
|
||||
if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) {
|
||||
D_8029FBD4 = 0;
|
||||
return ApiStatus_DONE2;
|
||||
if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
ApplyingBuff = FALSE;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
|
||||
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) {
|
||||
|
@ -82,8 +82,8 @@ void* actionCommandDmaTable[] = {
|
||||
BSS s32 sMashMeterSmoothDivisor;
|
||||
BSS s32 D_8029FBC4_pad[3];
|
||||
// TODO move to actor_api
|
||||
BSS s32 D_8029FBD0;
|
||||
BSS s8 D_8029FBD4;
|
||||
BSS s32 IsGroupHeal;
|
||||
BSS s8 ApplyingBuff;
|
||||
BSS s32 D_8029FBD8_pad[2];
|
||||
|
||||
#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_SWITCH(LVar0)
|
||||
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_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_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_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_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_SWITCH(LVar0)
|
||||
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(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||
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(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||
@ -1503,14 +1503,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1521,7 +1521,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1634,7 +1634,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1747,7 +1747,7 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1865,7 +1865,7 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||
|
@ -1,213 +1,213 @@
|
||||
#include "animation_script.h"
|
||||
#include "mapfs/omo_bt07_shape.h"
|
||||
|
||||
StaticAnimatorNode N(8021A2A0) = {
|
||||
StaticAnimatorNode N(Node02) = {
|
||||
.pos = { 79.0f, 47.0f, 0.0f },
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 29,
|
||||
.modelID = MODEL_tanp,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A2CC) = {
|
||||
StaticAnimatorNode N(Node23) = {
|
||||
.pos = { 80.0f, 15.0f, 0.0f },
|
||||
.sibling = &N(8021A2A0),
|
||||
.sibling = &N(Node02),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 32,
|
||||
.modelID = MODEL_h2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A2F8) = {
|
||||
StaticAnimatorNode N(Node22) = {
|
||||
.pos = { 79.0f, 20.0f, 30.0f },
|
||||
.sibling = &N(8021A2CC),
|
||||
.sibling = &N(Node23),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 34,
|
||||
.modelID = MODEL_sya2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A324) = {
|
||||
StaticAnimatorNode N(Node21) = {
|
||||
.pos = { 80.0f, 20.0f, 30.0f },
|
||||
.sibling = &N(8021A2F8),
|
||||
.sibling = &N(Node22),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 35,
|
||||
.modelID = MODEL_h3,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A350) = {
|
||||
StaticAnimatorNode N(Node20) = {
|
||||
.pos = { 80.0f, 20.0f, -29.0f },
|
||||
.sibling = &N(8021A324),
|
||||
.sibling = &N(Node21),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 37,
|
||||
.modelID = MODEL_n2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A37C) = {
|
||||
StaticAnimatorNode N(Node19) = {
|
||||
.pos = { 79.0f, 20.0f, -30.0f },
|
||||
.sibling = &N(8021A350),
|
||||
.sibling = &N(Node20),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 38,
|
||||
.modelID = MODEL_h4,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A3A8) = {
|
||||
StaticAnimatorNode N(Node18) = {
|
||||
.rot = { 0, 0, -6 },
|
||||
.pos = { 97.0f, 73.0f, 0.0f },
|
||||
.sibling = &N(8021A37C),
|
||||
.sibling = &N(Node19),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 40,
|
||||
.modelID = MODEL_kyu2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A3D4) = {
|
||||
StaticAnimatorNode N(Node17) = {
|
||||
.rot = { 0, 0, -6 },
|
||||
.pos = { 97.0f, 73.0f, 0.0f },
|
||||
.sibling = &N(8021A3A8),
|
||||
.sibling = &N(Node18),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 41,
|
||||
.modelID = MODEL_kyu1,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A400) = {
|
||||
StaticAnimatorNode N(Node16) = {
|
||||
.rot = { 0, 0, -6 },
|
||||
.pos = { 97.0f, 73.0f, 0.0f },
|
||||
.sibling = &N(8021A3D4),
|
||||
.sibling = &N(Node17),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 42,
|
||||
.modelID = MODEL_kyu,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A42C) = {
|
||||
StaticAnimatorNode N(Node15) = {
|
||||
.rot = { 0, 0, -6 },
|
||||
.pos = { 97.0f, 55.0f, 0.0f },
|
||||
.sibling = &N(8021A400),
|
||||
.sibling = &N(Node16),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 44,
|
||||
.modelID = MODEL_en2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A458) = {
|
||||
StaticAnimatorNode N(Node14) = {
|
||||
.rot = { 0, 0, -6 },
|
||||
.pos = { 97.0f, 54.0f, 0.0f },
|
||||
.sibling = &N(8021A42C),
|
||||
.sibling = &N(Node15),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 45,
|
||||
.modelID = MODEL_en,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A484) = {
|
||||
StaticAnimatorNode N(Node13) = {
|
||||
.pos = { 112.0f, 48.0f, 0.0f },
|
||||
.sibling = &N(8021A458),
|
||||
.sibling = &N(Node14),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 47,
|
||||
.modelID = MODEL_nob,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A4B0) = {
|
||||
StaticAnimatorNode N(Node12) = {
|
||||
.rot = { 0, 0, -16383 },
|
||||
.pos = { 77.0f, 60.0f, 0.0f },
|
||||
.sibling = &N(8021A484),
|
||||
.sibling = &N(Node13),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 49,
|
||||
.modelID = MODEL_futa,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A4DC) = {
|
||||
StaticAnimatorNode N(Node11) = {
|
||||
.rot = { 0, 0, 5469 },
|
||||
.pos = { 60.0f, 9.0f, 34.0f },
|
||||
.sibling = &N(8021A4B0),
|
||||
.sibling = &N(Node12),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 52,
|
||||
.modelID = MODEL_a1,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A508) = {
|
||||
StaticAnimatorNode N(Node10) = {
|
||||
.rot = { 0, 0, 5469 },
|
||||
.pos = { 60.0f, 9.0f, 34.0f },
|
||||
.sibling = &N(8021A4DC),
|
||||
.sibling = &N(Node11),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 51,
|
||||
.modelID = MODEL_n3,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A534) = {
|
||||
StaticAnimatorNode N(Node09) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 100.0f, 10.0f, 34.0f },
|
||||
.sibling = &N(8021A508),
|
||||
.sibling = &N(Node10),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 55,
|
||||
.modelID = MODEL_a2,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A560) = {
|
||||
StaticAnimatorNode N(Node08) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 100.0f, 10.0f, 34.0f },
|
||||
.sibling = &N(8021A534),
|
||||
.sibling = &N(Node09),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 54,
|
||||
.modelID = MODEL_n4,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A58C) = {
|
||||
StaticAnimatorNode N(Node07) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 59.0f, 9.0f, -34.0f },
|
||||
.sibling = &N(8021A560),
|
||||
.sibling = &N(Node08),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 57,
|
||||
.modelID = MODEL_n5,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A5B8) = {
|
||||
StaticAnimatorNode N(Node06) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 59.0f, 9.0f, -34.0f },
|
||||
.sibling = &N(8021A58C),
|
||||
.sibling = &N(Node07),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 58,
|
||||
.modelID = MODEL_a3,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A5E4) = {
|
||||
StaticAnimatorNode N(Node05) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 100.0f, 9.0f, -34.0f },
|
||||
.sibling = &N(8021A5B8),
|
||||
.sibling = &N(Node06),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 60,
|
||||
.modelID = MODEL_n6,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A610) = {
|
||||
StaticAnimatorNode N(Node04) = {
|
||||
.rot = { 0, 0, 5708 },
|
||||
.pos = { 100.0f, 9.0f, -34.0f },
|
||||
.sibling = &N(8021A5E4),
|
||||
.sibling = &N(Node05),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 61,
|
||||
.modelID = MODEL_a4,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A63C) = {
|
||||
StaticAnimatorNode N(Node03) = {
|
||||
.pos = { 65.0f, 46.0f, 0.0f },
|
||||
.sibling = &N(8021A610),
|
||||
.sibling = &N(Node04),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 63,
|
||||
.modelID = MODEL_g106,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A668) = {
|
||||
StaticAnimatorNode N(Node01) = {
|
||||
.pos = { 79.0f, 47.0f, 0.0f },
|
||||
.sibling = &N(8021A63C),
|
||||
.sibling = &N(Node03),
|
||||
.vertexStartOffset = -1,
|
||||
.modelID = 30,
|
||||
.modelID = MODEL_h1,
|
||||
};
|
||||
|
||||
StaticAnimatorNode N(8021A694) = {
|
||||
.child = &N(8021A668),
|
||||
StaticAnimatorNode N(Root) = {
|
||||
.child = &N(Node01),
|
||||
};
|
||||
|
||||
StaticAnimatorNode* toy_tank_model[] = {
|
||||
&N(8021A694),
|
||||
&N(8021A668),
|
||||
&N(8021A2A0),
|
||||
&N(8021A63C),
|
||||
&N(8021A610),
|
||||
&N(8021A5E4),
|
||||
&N(8021A5B8),
|
||||
&N(8021A58C),
|
||||
&N(8021A560),
|
||||
&N(8021A534),
|
||||
&N(8021A508),
|
||||
&N(8021A4DC),
|
||||
&N(8021A4B0),
|
||||
&N(8021A484),
|
||||
&N(8021A458),
|
||||
&N(8021A42C),
|
||||
&N(8021A400),
|
||||
&N(8021A3D4),
|
||||
&N(8021A3A8),
|
||||
&N(8021A37C),
|
||||
&N(8021A350),
|
||||
&N(8021A324),
|
||||
&N(8021A2F8),
|
||||
&N(8021A2CC),
|
||||
&N(Root),
|
||||
&N(Node01),
|
||||
&N(Node02),
|
||||
&N(Node03),
|
||||
&N(Node04),
|
||||
&N(Node05),
|
||||
&N(Node06),
|
||||
&N(Node07),
|
||||
&N(Node08),
|
||||
&N(Node09),
|
||||
&N(Node10),
|
||||
&N(Node11),
|
||||
&N(Node12),
|
||||
&N(Node13),
|
||||
&N(Node14),
|
||||
&N(Node15),
|
||||
&N(Node16),
|
||||
&N(Node17),
|
||||
&N(Node18),
|
||||
&N(Node19),
|
||||
&N(Node20),
|
||||
&N(Node21),
|
||||
&N(Node22),
|
||||
&N(Node23),
|
||||
NULL,
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_shake = {
|
||||
AnimScript AS_ToyTank_Shake = {
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||
@ -1356,7 +1356,7 @@ AnimScript toy_tank_as_shake = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_fall_apart = {
|
||||
AnimScript AS_ToyTank_FallApart = {
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||
@ -1928,7 +1928,7 @@ AnimScript toy_tank_as_fall_apart = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_close_hatch = {
|
||||
AnimScript AS_ToyTank_CloseHatch = {
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||
@ -2922,7 +2922,7 @@ AnimScript toy_tank_as_close_hatch = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_open_hatch = {
|
||||
AnimScript AS_ToyTank_OpenHatch = {
|
||||
as_DisableMirroring
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
@ -3088,7 +3088,7 @@ AnimScript toy_tank_as_open_hatch = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_5 = {
|
||||
AnimScript AS_ToyTank_Unused1 = {
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
as_SetScale(1, 1.0, 1.0, 1.0)
|
||||
@ -3702,7 +3702,7 @@ AnimScript toy_tank_as_5 = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_move_forward = {
|
||||
AnimScript AS_ToyTank_MoveForward = {
|
||||
as_DisableMirroring
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 0)
|
||||
@ -7139,7 +7139,7 @@ AnimScript toy_tank_as_move_forward = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_7 = {
|
||||
AnimScript AS_ToyTank_Unused2 = {
|
||||
as_SetRotation(0, 0.0, 0.0, 0.0)
|
||||
as_SetPos(0, 0, 0, 0)
|
||||
as_SetScale(0, 1.0, 1.0, 1.0)
|
||||
@ -7753,7 +7753,7 @@ AnimScript toy_tank_as_7 = {
|
||||
as_End
|
||||
};
|
||||
|
||||
AnimScript toy_tank_as_idle = {
|
||||
AnimScript AS_ToyTank_Idle = {
|
||||
as_SetRotation(1, 0.0, 0.0, 0.0)
|
||||
as_SetPos(1, 0, 0, 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/GeneralGuyBomb.h"
|
||||
|
||||
#include "battle/area/omo2/actor/boss_common.h"
|
||||
|
||||
#define NAMESPACE b_area_omo2_general_guy
|
||||
|
||||
extern ActorBlueprint b_area_omo2_1_shy_squad;
|
||||
extern AnimScript toy_tank_as_close_hatch;
|
||||
extern AnimScript toy_tank_as_open_hatch;
|
||||
extern AnimScript AS_ToyTank_CloseHatch;
|
||||
extern AnimScript AS_ToyTank_OpenHatch;
|
||||
|
||||
extern EvtScript N(EVS_Init);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_Idle);
|
||||
extern EvtScript N(EVS_HandleEvent);
|
||||
extern EvtScript N(attack_throw_bomb);
|
||||
extern EvtScript N(attack_lightning_shot);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_Attack_ThrowBomb);
|
||||
extern EvtScript N(EVS_Attack_ShootLightning);
|
||||
extern s32 N(DefaultAnims)[];
|
||||
extern s32 N(IdleAnimations_bomb)[];
|
||||
extern Formation N(formation_shy_squad);
|
||||
extern s32 N(BombAnims)[];
|
||||
extern Formation N(ShySquadFormation);
|
||||
|
||||
enum N(ActorPartIDs) {
|
||||
PRT_MAIN = 1,
|
||||
PRT_2 = 2,
|
||||
};
|
||||
|
||||
enum N(ActorVars) {
|
||||
AVAR_Unk_0 = 0,
|
||||
AVAR_Unk_1 = 1,
|
||||
AVAR_Unk_2 = 2,
|
||||
AVAR_Unk_6 = 6,
|
||||
AVAR_Unk_7 = 7,
|
||||
PRT_MAIN = 1,
|
||||
PRT_BOMB = 2,
|
||||
};
|
||||
|
||||
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/FadeBackgroundLighten.inc.c"
|
||||
|
||||
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,
|
||||
.index = PRT_2,
|
||||
.index = PRT_BOMB,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 0 },
|
||||
.opacity = 255,
|
||||
.idleAnimations = N(IdleAnimations_bomb),
|
||||
.idleAnimations = N(BombAnims),
|
||||
.defenseTable = N(DefenseTable),
|
||||
.eventFlags = 0,
|
||||
.elementImmunityFlags = 0,
|
||||
@ -137,12 +132,13 @@ s32 N(DefaultAnims)[] = {
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(IdleAnimations_bomb)[] = {
|
||||
s32 N(BombAnims)[] = {
|
||||
STATUS_KEY_NORMAL, ANIM_GeneralGuyBomb_Anim00,
|
||||
STATUS_END,
|
||||
};
|
||||
|
||||
s32 N(IdleAnimations3)[] = {
|
||||
// unused
|
||||
s32 N(PanicAnims)[] = {
|
||||
STATUS_KEY_NORMAL, ANIM_GeneralGuy_Anim0E,
|
||||
STATUS_KEY_POISON, ANIM_GeneralGuy_Anim0E,
|
||||
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(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase)))
|
||||
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_Unk_1, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 0)
|
||||
EVT_CALL(LoadBattleSection, 41)
|
||||
EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_squad)), TRUE)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, FALSE)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_Flags, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_WavesDefeated, 0)
|
||||
EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_1)
|
||||
EVT_CALL(SummonEnemy, EVT_PTR(N(ShySquadFormation)), TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtScript N(EVS_Idle) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
@ -285,27 +281,27 @@ EvtScript N(EVS_HandleEvent) = {
|
||||
};
|
||||
|
||||
EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0)
|
||||
EVT_IF_EQ(LVar0, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, LVar0)
|
||||
EVT_IF_FALSE(LVar0)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_CALL(ActorExists, ACTOR_ENEMY2, LVar0)
|
||||
EVT_IF_NE(LVar0, FALSE)
|
||||
EVT_CALL(ActorExists, ACTOR_BULB, LVar0)
|
||||
EVT_IF_TRUE(LVar0)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_PARTNER, LVar0)
|
||||
EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_KO)
|
||||
EVT_CALL(RandInt, 100, LVar0)
|
||||
EVT_IF_LT(LVar0, 60)
|
||||
EVT_EXEC_WAIT(N(attack_lightning_shot))
|
||||
EVT_EXEC_WAIT(N(EVS_Attack_ShootLightning))
|
||||
EVT_RETURN
|
||||
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_END
|
||||
};
|
||||
|
||||
EvtScript N(attack_throw_bomb) = {
|
||||
EvtScript N(EVS_Attack_ThrowBomb) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
@ -319,87 +315,87 @@ EvtScript N(attack_throw_bomb) = {
|
||||
EVT_CALL(MoveBattleCamOver, 30)
|
||||
EVT_END_THREAD
|
||||
EVT_WAIT(5)
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A)
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch))
|
||||
EVT_WAIT(20)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||
EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||
EVT_SUB(LVar0, 8)
|
||||
EVT_ADD(LVar1, 27)
|
||||
EVT_SUB(LVar2, 4)
|
||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim00)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim00)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_WAIT(15)
|
||||
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_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||
EVT_SUB(LVar0, 8)
|
||||
EVT_ADD(LVar1, 20)
|
||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim01)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim01)
|
||||
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_SWITCH(LVar0)
|
||||
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(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||
EVT_SUB(LVar0, 120)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(12.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
||||
EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, TRUE)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(12.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||
EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, TRUE)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
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(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||
EVT_SUB(LVar0, 50)
|
||||
EVT_SET(LVar1, -5)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 30, EASING_LINEAR)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||
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(UseBattleCamPreset, BTL_CAM_DEFAULT)
|
||||
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)
|
||||
EVT_SUB(LVar0, 65)
|
||||
EVT_SET(LVar1, -5)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(6.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(6.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
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(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1))
|
||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0))
|
||||
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1))
|
||||
EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2)
|
||||
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(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_BOMB, SOUND_BOMB_BLAST)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_WAIT(2)
|
||||
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_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||
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_WAIT(30)
|
||||
EVT_IF_EQ(LVarF, HIT_RESULT_10)
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtScript N(attack_lightning_shot) = {
|
||||
EvtScript N(EVS_Attack_ShootLightning) = {
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
@ -437,24 +433,24 @@ EvtScript N(attack_lightning_shot) = {
|
||||
EVT_CALL(SetBattleCamOffsetZ, 30)
|
||||
EVT_CALL(MoveBattleCamOver, 40)
|
||||
EVT_WAIT(40)
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A)
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch))
|
||||
EVT_WAIT(10)
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
||||
EVT_IF_NE(LVar0, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||
EVT_IF_TRUE(LVar0)
|
||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_2)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim03)
|
||||
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(MoveBattleCamOver, 30)
|
||||
EVT_THREAD
|
||||
EVT_CALL(N(FadeBackgroundDarken))
|
||||
EVT_END_THREAD
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_THREAD
|
||||
EVT_LOOP(4)
|
||||
EVT_CALL(PlaySoundAtActor, LVar8, SOUND_ELECTRIC_BUZZ)
|
||||
@ -469,7 +465,7 @@ EvtScript N(attack_lightning_shot) = {
|
||||
EVT_SWITCH(LVar0)
|
||||
EVT_CASE_EQ(HIT_RESULT_MISS)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||
EVT_CALL(PlaySound, SOUND_2069)
|
||||
@ -478,34 +474,34 @@ EvtScript N(attack_lightning_shot) = {
|
||||
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_IF_NE(LVar0, HIT_RESULT_MISS)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||
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_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||
EVT_WAIT(12)
|
||||
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_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||
EVT_WAIT(20)
|
||||
EVT_END_IF
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
||||
EVT_IF_NE(LVar0, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||
EVT_IF_TRUE(LVar0)
|
||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(FadeBackgroundLighten))
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||
EVT_CALL(PlaySound, SOUND_2069)
|
||||
@ -513,80 +509,78 @@ EvtScript N(attack_lightning_shot) = {
|
||||
EVT_WAIT(12)
|
||||
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5)
|
||||
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_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||
EVT_WAIT(12)
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
||||
EVT_IF_NE(LVar0, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||
EVT_IF_TRUE(LVar0)
|
||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(FadeBackgroundLighten))
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||
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_WAIT(12)
|
||||
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_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE)
|
||||
EVT_CASE_OR_EQ(HIT_RESULT_10)
|
||||
EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
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_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_RETURN
|
||||
EVT_END_IF
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_END_SWITCH
|
||||
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||
EVT_CALL(GetModelCenter, 39)
|
||||
EVT_CALL(GetModelCenter, MODEL_kyu3)
|
||||
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||
EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5)
|
||||
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_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE)
|
||||
EVT_WAIT(12)
|
||||
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(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0)
|
||||
EVT_IF_NE(LVar0, 0)
|
||||
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_TANK, AVAR_Tank_ModulateDarkness, LVar0)
|
||||
EVT_IF_TRUE(LVar0)
|
||||
EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3)
|
||||
EVT_END_IF
|
||||
EVT_CALL(N(FadeBackgroundLighten))
|
||||
EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02)
|
||||
EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B)
|
||||
EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE)
|
||||
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
Vec3i N(summon_pos) = { 240, 0, 0 };
|
||||
Vec3i N(SummonPos) = { 240, 0, 0 };
|
||||
|
||||
Formation N(formation_shy_squad) = {
|
||||
ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(summon_pos), 100)
|
||||
Formation N(ShySquadFormation) = {
|
||||
ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(SummonPos), 100)
|
||||
};
|
||||
|
||||
|
||||
|
@ -3,42 +3,31 @@
|
||||
#include "effects.h"
|
||||
#include "animation_script.h"
|
||||
|
||||
#include "battle/area/omo2/actor/boss_common.h"
|
||||
|
||||
#define NAMESPACE b_area_omo2_light_bulb
|
||||
|
||||
typedef struct IceShardBlueprint {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
} IceShardBlueprint; // size = 0x28
|
||||
typedef struct BulbFragment {
|
||||
/* 0x00 */ s32 type;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ f32 scale;
|
||||
/* 0x14 */ s32 duration;
|
||||
/* 0x18 */ Vec3f vel;
|
||||
/* 0x24 */ f32 gravAccel;
|
||||
} BulbFragment; // size = 0x28
|
||||
|
||||
extern AnimScript toy_tank_as_close_hatch;
|
||||
extern AnimScript AS_ToyTank_CloseHatch;
|
||||
|
||||
extern EvtScript N(EVS_Init);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_Idle);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_HandleEvent);
|
||||
extern EvtScript N(onHit);
|
||||
extern EvtScript N(shake_tank);
|
||||
extern EvtScript N(onDeath);
|
||||
extern EvtScript N(EVS_Hit);
|
||||
extern EvtScript N(EVS_Death);
|
||||
extern EvtScript N(EVS_ShakeTank);
|
||||
|
||||
enum N(ActorPartIDs) {
|
||||
PRT_MAIN = 1,
|
||||
};
|
||||
|
||||
enum N(ActorVars) {
|
||||
AVAR_Unk_5 = 5,
|
||||
AVAR_Unk_9 = 9,
|
||||
};
|
||||
|
||||
enum N(ActorParams) {
|
||||
DMG_UNK = 0,
|
||||
PRT_MAIN = 1,
|
||||
};
|
||||
|
||||
s32 N(DefenseTable)[] = {
|
||||
@ -132,34 +121,34 @@ EvtScript N(EVS_HandleEvent) = {
|
||||
EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0)
|
||||
EVT_SWITCH(LVar0)
|
||||
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_BURN_HIT)
|
||||
EVT_EXEC_WAIT(N(onHit))
|
||||
EVT_EXEC_WAIT(N(EVS_Hit))
|
||||
EVT_END_CASE_GROUP
|
||||
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_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
||||
EVT_IF_EQ(LVar0, 0)
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||
EVT_IF_FALSE(LVar0)
|
||||
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_END_IF
|
||||
EVT_CASE_EQ(EVENT_IMMUNE)
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
||||
EVT_IF_EQ(LVar0, 0)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||
EVT_IF_FALSE(LVar0)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_WAIT(30)
|
||||
EVT_END_IF
|
||||
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
|
||||
EVT_CASE_OR_EQ(EVENT_DEATH)
|
||||
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
||||
EVT_EXEC_WAIT(N(onDeath))
|
||||
EVT_EXEC_WAIT(N(EVS_Death))
|
||||
EVT_RETURN
|
||||
EVT_END_CASE_GROUP
|
||||
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||
EVT_EXEC_WAIT(N(onDeath))
|
||||
EVT_EXEC_WAIT(N(EVS_Death))
|
||||
EVT_RETURN
|
||||
EVT_CASE_EQ(EVENT_SPIKE_CONTACT)
|
||||
EVT_CASE_EQ(EVENT_BURN_CONTACT)
|
||||
@ -177,228 +166,168 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtScript N(onHit) = {
|
||||
EVT_EXEC_WAIT(N(shake_tank))
|
||||
EvtScript N(EVS_Hit) = {
|
||||
EVT_EXEC_WAIT(N(EVS_ShakeTank))
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtScript N(shake_tank) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0)
|
||||
EVT_IF_EQ(LVar0, 0)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||
EvtScript N(EVS_ShakeTank) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0)
|
||||
EVT_IF_FALSE(LVar0)
|
||||
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch))
|
||||
EVT_WAIT(30)
|
||||
EVT_END_IF
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
API_CALLABLE(func_80218250_52B8F0) {
|
||||
API_CALLABLE(N(SpawnShatterFX)) {
|
||||
s32 i;
|
||||
IceShardBlueprint bpArray[] = {
|
||||
BulbFragment shards[] = {
|
||||
{
|
||||
.unk_00 = 1,
|
||||
.unk_04 = 117.0f,
|
||||
.unk_08 = 102.0f,
|
||||
.unk_0C = 0.0f,
|
||||
.unk_10 = 0.2f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.3f,
|
||||
.unk_1C = 0.7f,
|
||||
.unk_20 = 0.0f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 1,
|
||||
.pos = { 117.0f, 102.0f, 0.0f },
|
||||
.vel = { 0.3f, 0.7f, 0.0f },
|
||||
.scale = 0.2f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 117.0f,
|
||||
.unk_08 = 82.0f,
|
||||
.unk_0C = 11.0f,
|
||||
.unk_10 = 0.5f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.3f,
|
||||
.unk_1C = 0.9f,
|
||||
.unk_20 = 0.1f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 117.0f, 82.0f, 11.0f },
|
||||
.vel = { 0.3f, 0.9f, 0.1f },
|
||||
.scale = 0.5f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 117.0f,
|
||||
.unk_08 = 92.0f,
|
||||
.unk_0C = 14.0f,
|
||||
.unk_10 = 0.4f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.3f,
|
||||
.unk_1C = 0.8f,
|
||||
.unk_20 = 0.3f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 117.0f, 92.0f, 14.0f },
|
||||
.vel = { 0.3f, 0.8f, 0.3f },
|
||||
.scale = 0.4f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 1,
|
||||
.unk_04 = 125.0f,
|
||||
.unk_08 = 82.0f,
|
||||
.unk_0C = 0.0f,
|
||||
.unk_10 = 0.2f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.5f,
|
||||
.unk_1C = 0.9f,
|
||||
.unk_20 = 0.0f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 1,
|
||||
.pos = { 125.0f, 82.0f, 0.0f },
|
||||
.vel = { 0.5f, 0.9f, 0.0f },
|
||||
.scale = 0.2f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 108.0f,
|
||||
.unk_08 = 82.0f,
|
||||
.unk_0C = 0.0f,
|
||||
.unk_10 = 0.3f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = -0.2f,
|
||||
.unk_1C = 0.9f,
|
||||
.unk_20 = 0.0f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 108.0f, 82.0f, 0.0f },
|
||||
.vel = { -0.2f, 0.9f, 0.0f },
|
||||
.scale = 0.3f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 105.0f,
|
||||
.unk_08 = 92.0f,
|
||||
.unk_0C = 0.0f,
|
||||
.unk_10 = 0.4f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = -0.1f,
|
||||
.unk_1C = 0.8f,
|
||||
.unk_20 = 0.0f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 105.0f, 92.0f, 0.0f },
|
||||
.vel = { -0.1f, 0.8f, 0.0f },
|
||||
.scale = 0.4f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 1,
|
||||
.unk_04 = 127.0f,
|
||||
.unk_08 = 92.0f,
|
||||
.unk_0C = 0.0f,
|
||||
.unk_10 = 0.2f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.7f,
|
||||
.unk_1C = 0.8f,
|
||||
.unk_20 = 0.0f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 1,
|
||||
.pos = { 127.0f, 92.0f, 0.0f },
|
||||
.vel = { 0.7f, 0.8f, 0.0f },
|
||||
.scale = 0.2f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 117.0f,
|
||||
.unk_08 = 97.0f,
|
||||
.unk_0C = 7.0f,
|
||||
.unk_10 = 0.1f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.7f,
|
||||
.unk_1C = 0.8f,
|
||||
.unk_20 = 0.2f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 117.0f, 97.0f, 7.0f },
|
||||
.vel = { 0.7f, 0.8f, 0.2f },
|
||||
.scale = 0.1f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 117.0f,
|
||||
.unk_08 = 87.0f,
|
||||
.unk_0C = 7.0f,
|
||||
.unk_10 = 0.3f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.7f,
|
||||
.unk_1C = 0.8f,
|
||||
.unk_20 = 0.2f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 117.0f, 87.0f, 7.0f },
|
||||
.vel = { 0.7f, 0.8f, 0.2f },
|
||||
.scale = 0.3f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 111.0f,
|
||||
.unk_08 = 97.0f,
|
||||
.unk_0C = 3.0f,
|
||||
.unk_10 = 0.2f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.0f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.1f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 111.0f, 97.0f, 3.0f },
|
||||
.vel = { 0.0f, 1.0f, 0.1f },
|
||||
.scale = 0.2f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 111.0f,
|
||||
.unk_08 = 92.0f,
|
||||
.unk_0C = 7.0f,
|
||||
.unk_10 = 0.1f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.0f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.2f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 111.0f, 92.0f, 7.0f },
|
||||
.vel = { 0.0f, 1.0f, 0.2f },
|
||||
.scale = 0.1f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 111.0f,
|
||||
.unk_08 = 87.0f,
|
||||
.unk_0C = 3.0f,
|
||||
.unk_10 = 0.5f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.0f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.1f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 111.0f, 87.0f, 3.0f },
|
||||
.vel = { 0.0f, 1.0f, 0.1f },
|
||||
.scale = 0.5f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 1,
|
||||
.unk_04 = 123.0f,
|
||||
.unk_08 = 97.0f,
|
||||
.unk_0C = 3.0f,
|
||||
.unk_10 = 0.2f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.1f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.1f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 1,
|
||||
.pos = { 123.0f, 97.0f, 3.0f },
|
||||
.vel = { 0.1f, 1.0f, 0.1f },
|
||||
.scale = 0.2f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 123.0f,
|
||||
.unk_08 = 92.0f,
|
||||
.unk_0C = 7.0f,
|
||||
.unk_10 = 0.4f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.1f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.2f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 123.0f, 92.0f, 7.0f },
|
||||
.vel = { 0.1f, 1.0f, 0.2f },
|
||||
.scale = 0.4f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
{
|
||||
.unk_00 = 0,
|
||||
.unk_04 = 123.0f,
|
||||
.unk_08 = 87.0f,
|
||||
.unk_0C = 3.0f,
|
||||
.unk_10 = 0.3f,
|
||||
.unk_14 = 20,
|
||||
.unk_18 = 0.1f,
|
||||
.unk_1C = 1.0f,
|
||||
.unk_20 = 0.1f,
|
||||
.unk_24 = -0.3f,
|
||||
.type = 0,
|
||||
.pos = { 123.0f, 87.0f, 3.0f },
|
||||
.vel = { 0.1f, 1.0f, 0.1f },
|
||||
.scale = 0.3f,
|
||||
.duration = 20,
|
||||
.gravAccel = -0.3f,
|
||||
},
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(bpArray); i++) {
|
||||
EffectInstance* effect = fx_ice_shard(bpArray[i].unk_00, bpArray[i].unk_04, bpArray[i].unk_08,
|
||||
bpArray[i].unk_0C, bpArray[i].unk_10, bpArray[i].unk_14);
|
||||
effect->data.iceShard->vel.x = bpArray[i].unk_18;
|
||||
effect->data.iceShard->vel.y = bpArray[i].unk_1C;
|
||||
effect->data.iceShard->vel.z = bpArray[i].unk_20;
|
||||
effect->data.iceShard->gravAccel = bpArray[i].unk_24;
|
||||
for (i = 0; i < ARRAY_COUNT(shards); i++) {
|
||||
EffectInstance* effect = fx_ice_shard(shards[i].type, shards[i].pos.x, shards[i].pos.y,
|
||||
shards[i].pos.z, shards[i].scale, shards[i].duration);
|
||||
effect->data.iceShard->vel.x = shards[i].vel.x;
|
||||
effect->data.iceShard->vel.y = shards[i].vel.y;
|
||||
effect->data.iceShard->vel.z = shards[i].vel.z;
|
||||
effect->data.iceShard->gravAccel = shards[i].gravAccel;
|
||||
}
|
||||
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
EvtScript N(onDeath) = {
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY2, SOUND_03AE)
|
||||
EVT_CALL(func_80218250_52B8F0)
|
||||
EVT_CALL(EnableModel, 39, FALSE)
|
||||
EVT_CALL(EnableModel, 41, FALSE)
|
||||
EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_5, LVar0)
|
||||
EVT_IF_NE(LVar0, 0)
|
||||
EvtScript N(EVS_Death) = {
|
||||
EVT_CALL(PlaySoundAtActor, ACTOR_BULB, SOUND_03AE)
|
||||
EVT_CALL(N(SpawnShatterFX))
|
||||
EVT_CALL(EnableModel, MODEL_kyu3, FALSE)
|
||||
EVT_CALL(EnableModel, MODEL_kyu1, FALSE)
|
||||
EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_BulbGlowEffect, LVar0)
|
||||
EVT_IF_NE(LVar0, NULL)
|
||||
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_CALL(RemoveActor, ACTOR_SELF)
|
||||
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 EvtScript N(EVS_Init);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_Idle);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_HandleEvent);
|
||||
|
||||
enum N(ActorPartIDs) {
|
||||
@ -115,8 +115,8 @@ EvtScript N(EVS_Init) = {
|
||||
|
||||
EvtScript N(EVS_Idle) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,27 +2,38 @@
|
||||
#include "script_api/battle.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 EvtScript N(EVS_Init);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
extern EvtScript N(EVS_Idle);
|
||||
extern EvtScript N(EVS_TakeTurn);
|
||||
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) {
|
||||
PRT_MAIN = 1,
|
||||
PRT_2 = 2,
|
||||
PRT_3 = 3,
|
||||
PRT_4 = 4,
|
||||
PRT_5 = 5,
|
||||
PRT_6 = 6,
|
||||
PRT_7 = 7,
|
||||
PRT_8 = 8,
|
||||
PRT_9 = 9,
|
||||
PRT_MAIN = 1,
|
||||
PRT_MEMBER_01 = 2,
|
||||
PRT_MEMBER_02 = 3,
|
||||
PRT_MEMBER_03 = 4,
|
||||
PRT_MEMBER_04 = 5,
|
||||
PRT_MEMBER_05 = 6,
|
||||
PRT_MEMBER_06 = 7,
|
||||
PRT_MEMBER_07 = 8,
|
||||
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)[] = {
|
||||
ELEMENT_NORMAL, 0,
|
||||
ELEMENT_END,
|
||||
@ -68,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_2,
|
||||
.index = PRT_MEMBER_01,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -80,7 +91,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_3,
|
||||
.index = PRT_MEMBER_02,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -92,7 +103,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_4,
|
||||
.index = PRT_MEMBER_03,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -104,7 +115,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_5,
|
||||
.index = PRT_MEMBER_04,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -116,7 +127,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_6,
|
||||
.index = PRT_MEMBER_05,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -128,7 +139,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_7,
|
||||
.index = PRT_MEMBER_06,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -140,7 +151,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_8,
|
||||
.index = PRT_MEMBER_07,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -152,7 +163,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
},
|
||||
{
|
||||
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION,
|
||||
.index = PRT_9,
|
||||
.index = PRT_MEMBER_08,
|
||||
.posOffset = { 0, 0, 0 },
|
||||
.targetOffset = { 0, 24 },
|
||||
.opacity = 255,
|
||||
@ -166,8 +177,8 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
|
||||
ActorBlueprint NAMESPACE = {
|
||||
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_NO_HEALTH_BAR,
|
||||
.type = ACTOR_TYPE_SHY_GUY_DUP,
|
||||
.level = ACTOR_LEVEL_SHY_GUY_DUP,
|
||||
.type = ACTOR_TYPE_SHY_SQUAD_STUB,
|
||||
.level = ACTOR_LEVEL_SHY_SQUAD_STUB,
|
||||
.maxHP = 10,
|
||||
.partCount = ARRAY_COUNT(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(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
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_2, 1, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 0, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 1, -30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 0, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 1, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 0, 20)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 1, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 0, 30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 1, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 0, 30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 1, -30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 0, 40)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 1, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 0, 50)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 1, 10)
|
||||
EVT_SET(LVar0, 2)
|
||||
EVT_LOOP(8)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_X, 0)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_Z, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_X, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_Z, -30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_X, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_Z, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_X, 20)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_Z, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_X, 30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_Z, 10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_X, 30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_Z, -30)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_X, 40)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_Z, -10)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_X, 50)
|
||||
EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_Z, 10)
|
||||
LOOP_MEMBERS(LVar0)
|
||||
EVT_CALL(SetPartPos, ACTOR_SELF, LVar0, 185, 0, 47)
|
||||
EVT_ADD(LVar0, 1)
|
||||
EVT_END_LOOP
|
||||
EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10)
|
||||
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||
EVT_SET(LVar0, 2)
|
||||
EVT_SET(LVar0, PRT_MEMBER_01)
|
||||
EVT_SET(LVar1, ANIM_TankGuy_Anim03)
|
||||
EVT_SET(LVar4, EVT_FLOAT(4.0))
|
||||
EVT_SET(LVar5, 5)
|
||||
EVT_LOOP(8)
|
||||
EVT_LOOP(NUM_MEMBERS)
|
||||
EVT_THREAD
|
||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 0, LVar2)
|
||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 1, LVar3)
|
||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_X, LVar2)
|
||||
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_Z, LVar3)
|
||||
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_END_THREAD
|
||||
EVT_ADD(LVar0, 1)
|
||||
@ -249,13 +259,13 @@ EvtScript N(EVS_Init) = {
|
||||
|
||||
EvtScript N(EVS_Idle) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
||||
EvtScript N(run_to_pos) = {
|
||||
EvtScript N(EVS_MoveMemberToPos) = {
|
||||
EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar6, 0, LVar7)
|
||||
EVT_IF_LT(LVar6, LVar2)
|
||||
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(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE)
|
||||
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_EXEC_WAIT(N(EVS_Discharge))
|
||||
EVT_END_IF
|
||||
@ -879,7 +879,7 @@ EvtScript N(EVS_Charge) = {
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, LVarF)
|
||||
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(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(SetStatusTable, ACTOR_SELF, EVT_PTR(N(ChargedStatusTable)))
|
||||
EVT_RETURN
|
||||
@ -899,7 +899,7 @@ EvtScript N(EVS_Discharge) = {
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, 0)
|
||||
EVT_END_IF
|
||||
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_RETURN
|
||||
EVT_END
|
||||
|
@ -888,7 +888,7 @@ EvtScript N(EVS_Attack_RageDrop) = {
|
||||
|
||||
EvtScript N(EVS_Enrage) = {
|
||||
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(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
||||
EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(EnragedStatusTable)))
|
||||
@ -899,7 +899,7 @@ EvtScript N(EVS_Enrage) = {
|
||||
|
||||
EvtScript N(EVS_LoseRage) = {
|
||||
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(SetPartEventBits, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED, FALSE)
|
||||
EVT_RETURN
|
||||
|
@ -77,241 +77,22 @@ enum BattlePositions {
|
||||
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 {
|
||||
BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost
|
||||
BTL_VAL_Duplighost_HasCopied = 0x4,
|
||||
BTL_VAR_HyperSync = 1,
|
||||
BTL_VAL_HyperSync_None = 0,
|
||||
BTL_VAL_HyperSync_Done = 1,
|
||||
BTL_VAL_HyperSync_Active = 2,
|
||||
BTL_VAR_UNK_MAGIKOOPA = 2,
|
||||
BTL_VAR_LastCopiedPartner = 3, // used by duplighost
|
||||
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
|
||||
BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost
|
||||
BTL_VAL_Duplighost_HasCopied = 0x4,
|
||||
BTL_VAR_HyperSync = 1,
|
||||
BTL_VAL_HyperSync_None = 0,
|
||||
BTL_VAL_HyperSync_Done = 1,
|
||||
BTL_VAL_HyperSync_Active = 2,
|
||||
// index of the last enemy boosted by a magikoopa
|
||||
// intended to prevent multiple boosts for the same actor in the same turn
|
||||
// selected enemies go from left to right and are reset if none are found
|
||||
BTL_VAR_Magikoopa_LastIndexBoosted = 2,
|
||||
BTL_VAR_LastCopiedPartner = 3, // used by duplighost
|
||||
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
|
||||
@ -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.
|
||||
} ActorSounds; // size = 0x1C
|
||||
|
||||
extern ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT];
|
||||
extern ActorSounds bActorSoundTable[];
|
||||
|
||||
typedef struct ActorOffsets {
|
||||
/* 0x00 */ Vec3b tattleCam;
|
||||
@ -475,7 +256,7 @@ typedef struct PlayerCelebrationAnimOptions {
|
||||
|
||||
extern Battle* gCurrentBattlePtr;
|
||||
|
||||
extern ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT];
|
||||
extern ActorOffsets bActorOffsets[];
|
||||
|
||||
void func_80072BCC(s32 arg0);
|
||||
void load_demo_battle(u32 index);
|
||||
|
@ -1008,14 +1008,14 @@ EvtScript EVS_Player_NextSlapLeft_Impl = {
|
||||
|
||||
EvtScript EVS_Player_LastSlapRight_Impl = {
|
||||
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_CALL(UpdateLerp)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||
EVT_WAIT(1)
|
||||
EVT_IF_EQ(LVar1, 1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(UpdateLerp)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||
EVT_WAIT(1)
|
||||
EVT_IF_EQ(LVar1, 1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(GetDamageIntensity)
|
||||
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
||||
@ -1026,14 +1026,14 @@ EvtScript EVS_Player_LastSlapRight_Impl = {
|
||||
|
||||
EvtScript EVS_Player_LastSlapLeft_Impl = {
|
||||
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_CALL(UpdateLerp)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||
EVT_WAIT(1)
|
||||
EVT_IF_EQ(LVar1, 1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(UpdateLerp)
|
||||
EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0)
|
||||
EVT_WAIT(1)
|
||||
EVT_IF_EQ(LVar1, 1)
|
||||
EVT_GOTO(1)
|
||||
EVT_END_IF
|
||||
EVT_END_CHILD_THREAD
|
||||
EVT_CALL(GetDamageIntensity)
|
||||
EVT_EXEC_WAIT(EVS_Player_Hit_Impl)
|
||||
|
@ -6,10 +6,12 @@
|
||||
|
||||
#ifdef ANTIGUY_TRIO
|
||||
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_KPA
|
||||
#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_KPA
|
||||
#define PARALYZE_CHANCE 50
|
||||
#define ESCAPE_CHANCE 0
|
||||
#else
|
||||
#define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_OMO
|
||||
#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_OMO
|
||||
#define PARALYZE_CHANCE 60
|
||||
#define ESCAPE_CHANCE 50
|
||||
#endif
|
||||
@ -77,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = {
|
||||
ActorBlueprint NAMESPACE = {
|
||||
.flags = 0,
|
||||
.type = ACTOR_TYPE,
|
||||
.level = ACTOR_LEVEL_ANTI_GUY,
|
||||
.level = ACTOR_LEVEL,
|
||||
.maxHP = 50,
|
||||
.partCount = ARRAY_COUNT(N(ActorParts)),
|
||||
.partsData = N(ActorParts),
|
||||
|
@ -175,7 +175,7 @@ EvtScript N(EVS_Ignite) = {
|
||||
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0))
|
||||
EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2)
|
||||
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(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS)
|
||||
EVT_WAIT(3)
|
||||
@ -194,7 +194,7 @@ EvtScript N(EVS_Defuse) = {
|
||||
EVT_ADD(LVar2, 2)
|
||||
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 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_END
|
||||
};
|
||||
@ -203,7 +203,7 @@ EvtScript N(EVS_Cleanup) = {
|
||||
EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Ignited, LVar0)
|
||||
EVT_IF_EQ(LVar0, TRUE)
|
||||
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_RETURN
|
||||
EVT_END
|
||||
|
@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -803,14 +803,14 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -821,7 +821,7 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -788,9 +788,9 @@ EvtScript N(EVS_Init_Flying) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, 3)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||
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(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0)
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE)
|
||||
@ -1533,14 +1533,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1551,7 +1551,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorDefenseBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1664,7 +1664,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1777,7 +1777,7 @@ EvtScript N(EVS_Move_TryElectrify) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -1895,7 +1895,7 @@ EvtScript N(EVS_Move_TryTransparent) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
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(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -787,9 +787,9 @@ EvtScript N(EVS_Init_Flying) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -804,14 +804,14 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetActorAttackBoost, LVar0, LVar4)
|
||||
EVT_IF_LT(LVar4, MAX_ATTACK_BOOST)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -822,7 +822,7 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||
|
@ -111,18 +111,18 @@ EvtScript N(EVS_Init) = {
|
||||
|
||||
EvtScript N(EVS_Idle) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
|
||||
EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP)
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14)
|
||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
|
||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13)
|
||||
EVT_ELSE
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
|
||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
|
||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
|
||||
EVT_END_IF
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0)
|
||||
EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP)
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14)
|
||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0)
|
||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13)
|
||||
EVT_ELSE
|
||||
EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24)
|
||||
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10)
|
||||
EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20)
|
||||
EVT_END_IF
|
||||
EVT_WAIT(1)
|
||||
EVT_GOTO(0)
|
||||
EVT_RETURN
|
||||
EVT_END
|
||||
};
|
||||
|
@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = {
|
||||
EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle)))
|
||||
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn)))
|
||||
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_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_END_IF
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE)
|
||||
EVT_RETURN
|
||||
@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_LABEL(0)
|
||||
EVT_CALL(GetOwnerTarget, 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_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3)
|
||||
EVT_IF_EQ(LVar3, 0)
|
||||
EVT_CALL(GetStatusFlags, LVar0, LVar4)
|
||||
EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT)
|
||||
EVT_SET(LVar8, LVar0)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1)
|
||||
EVT_GOTO(100)
|
||||
EVT_END_IF
|
||||
EVT_END_IF
|
||||
@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = {
|
||||
EVT_END_IF
|
||||
EVT_IF_EQ(LFlag0, FALSE)
|
||||
EVT_SET(LFlag0, TRUE)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1)
|
||||
EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1)
|
||||
EVT_GOTO(10)
|
||||
EVT_END_IF
|
||||
EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#define NAMESPACE battle_partner_goombario
|
||||
|
||||
extern s32 bActorTattles[ACTOR_TYPE_COUNT];
|
||||
extern s32 bActorTattles[];
|
||||
|
||||
static EffectInstance* N(tattleEffect);
|
||||
static b32 N(isCharged);
|
||||
|
@ -1086,7 +1086,7 @@ EvtScript N(fireShell) = {
|
||||
EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1)
|
||||
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(func_8026ED20, ACTOR_PARTNER, 0, 1)
|
||||
EVT_CALL(EnableActorPaletteEffects, ACTOR_PARTNER, 0, TRUE)
|
||||
EVT_SET(LVar6, SPR_PAL_BattleKooper)
|
||||
EVT_SET(LVar7, SPR_PAL_BattleKooper)
|
||||
EVT_SET(LVar8, 30)
|
||||
@ -1210,7 +1210,7 @@ EvtScript N(fireShell) = {
|
||||
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 1)
|
||||
EVT_WAIT(20)
|
||||
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(SetGoalToHome, ACTOR_PARTNER)
|
||||
EVT_CALL(AddGoalPos, ACTOR_PARTNER, 40, 0, 0)
|
||||
|
@ -208,7 +208,7 @@ API_CALLABLE(N(PowerShockDischargeFX)) {
|
||||
|
||||
script->functionTemp[0]--;
|
||||
if (script->functionTemp[0] == 0) {
|
||||
N(bulbGlow)->data.bulbGlow->unk_14 = 5;
|
||||
N(bulbGlow)->data.bulbGlow->timeLeft = 5;
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
|
@ -33,13 +33,13 @@ UnkBulbGlow D_E0078918[] = {
|
||||
s32 D_E00789A8 = 0;
|
||||
|
||||
Color_RGB8 D_E00789AC[] = {
|
||||
{255, 255, 255},
|
||||
{255, 255, 128},
|
||||
{255, 128, 255},
|
||||
{128, 255, 255},
|
||||
{255, 128, 128},
|
||||
{128, 255, 128},
|
||||
{128, 128, 255},
|
||||
{ 255, 255, 255 },
|
||||
{ 255, 255, 128 },
|
||||
{ 255, 128, 255 },
|
||||
{ 128, 255, 255 },
|
||||
{ 255, 128, 128 },
|
||||
{ 128, 255, 128 },
|
||||
{ 128, 128, 255 },
|
||||
};
|
||||
|
||||
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_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;
|
||||
EffectInstance* effect;
|
||||
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));
|
||||
ASSERT(effect->data.bulbGlow != NULL);
|
||||
|
||||
data->unk_00 = arg0 & 255;
|
||||
data->type = arg0 & 255;
|
||||
if (arg0 < 256) {
|
||||
data->unk_14 = 100;
|
||||
data->timeLeft = 100;
|
||||
} else {
|
||||
data->unk_14 = 80;
|
||||
data->timeLeft = 80;
|
||||
}
|
||||
data->unk_18 = 0;
|
||||
data->unk_10 = 127;
|
||||
data->pos.x = arg1;
|
||||
data->pos.y = arg2;
|
||||
data->pos.z = arg3;
|
||||
data->unk_1C = D_E00789A8;
|
||||
data->lifetime = 0;
|
||||
data->brightness = 127;
|
||||
data->pos.x = posX;
|
||||
data->pos.y = posY;
|
||||
data->pos.z = posZ;
|
||||
data->depthQueryID = D_E00789A8;
|
||||
|
||||
D_E00789A8++;
|
||||
if (D_E00789A8 >= 16) {
|
||||
@ -92,38 +92,38 @@ void bulb_glow_init(EffectInstance* effect) {
|
||||
|
||||
void bulb_glow_update(EffectInstance* effect) {
|
||||
BulbGlowFXData* data = effect->data.bulbGlow;
|
||||
s32 unk18;
|
||||
s32 time;
|
||||
|
||||
if (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) {
|
||||
data->unk_14--;
|
||||
if (data->timeLeft < 100) {
|
||||
data->timeLeft--;
|
||||
}
|
||||
if (data->unk_14 < 0) {
|
||||
if (data->timeLeft < 0) {
|
||||
remove_effect(effect);
|
||||
return;
|
||||
}
|
||||
|
||||
unk18 = data->unk_18;
|
||||
if (data->unk_00 == 0) {
|
||||
if (unk18 < 11) {
|
||||
data->unk_10 = (unk18 * 6) + 4;
|
||||
time = data->lifetime;
|
||||
if (data->type == 0) {
|
||||
if (time < 11) {
|
||||
data->brightness = (time * 6) + 4;
|
||||
} else {
|
||||
data->unk_10 = 64;
|
||||
data->brightness = 64;
|
||||
}
|
||||
|
||||
if (unk18 & 1) {
|
||||
data->unk_10 *= 0.6;
|
||||
if (time & 1) {
|
||||
data->brightness *= 0.6;
|
||||
}
|
||||
|
||||
if (unk18 >= 15) {
|
||||
data->unk_00 = 4;
|
||||
data->unk_10 = 127;
|
||||
if (time >= 15) {
|
||||
data->type = 4;
|
||||
data->brightness = 127;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -136,7 +136,7 @@ void bulb_glow_render(EffectInstance* effect) {
|
||||
|
||||
renderTask.appendGfxArg = effect;
|
||||
renderTask.appendGfx = bulb_glow_appendGfx;
|
||||
if (data->unk_00 == 5) {
|
||||
if (data->type == 5) {
|
||||
renderTask.dist = 0;
|
||||
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA;
|
||||
} else {
|
||||
@ -160,7 +160,7 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
s32 xMin;
|
||||
s32 numRects;
|
||||
s32 yMin;
|
||||
s32 temp_s2;
|
||||
s32 type;
|
||||
s32 rectHeight;
|
||||
s32 glowExtent;
|
||||
s32 colorScale;
|
||||
@ -171,13 +171,13 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
s32 isPointVisible;
|
||||
s32 yStart;
|
||||
UnkBulbGlow* temp_s1;
|
||||
Color_RGB8* temp_v0;
|
||||
Color_RGB8* color;
|
||||
s32 i;
|
||||
s32 j;
|
||||
u8 r, g, b;
|
||||
|
||||
brightness = data->unk_10;
|
||||
temp_s2 = data->unk_00;
|
||||
brightness = data->brightness;
|
||||
type = data->type;
|
||||
if (brightness > 127) {
|
||||
brightness = 127;
|
||||
}
|
||||
@ -185,13 +185,13 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
gDPPipeSync(gMainGfxPos++);
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
@ -199,12 +199,12 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
return;
|
||||
}
|
||||
|
||||
gSPDisplayList(gMainGfxPos++, D_E0078900[temp_s2]);
|
||||
temp_v0 = &D_E00789AC[data->unk_20];
|
||||
gSPDisplayList(gMainGfxPos++, D_E0078900[type]);
|
||||
color = &D_E00789AC[data->unk_20];
|
||||
colorScale = brightness * 2;
|
||||
r = temp_v0->r * colorScale / 255;
|
||||
g = temp_v0->g * colorScale / 255;
|
||||
b = temp_v0->b * colorScale / 255;
|
||||
r = color->r * colorScale / 255;
|
||||
g = color->g * colorScale / 255;
|
||||
b = color->b * colorScale / 255;
|
||||
|
||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, 127);
|
||||
|
||||
@ -237,10 +237,10 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
}
|
||||
|
||||
gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE,
|
||||
(s32) (xMin * temp_s1->unk_08) << 2,
|
||||
(s32) (temp_s1->unk_04 * 20 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2,
|
||||
(s32) (xMin * temp_s1->unk_08 + temp_s1->unk_00) << 2,
|
||||
(s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2);
|
||||
(s32) (xMin * temp_s1->unk_08) * 4,
|
||||
(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) * 4,
|
||||
(s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) * 4);
|
||||
|
||||
for (j = 0; j < 1; j++) {
|
||||
gDPLoadMultiTile(gMainGfxPos++,
|
||||
@ -249,8 +249,8 @@ void bulb_glow_appendGfx(void* effect) {
|
||||
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);
|
||||
gSPTextureRectangle(gMainGfxPos++,
|
||||
(xMin + xStart) << 2, y << 2,
|
||||
xMax << 2, (y + rectHeight) << 2,
|
||||
(xMin + xStart) * 4, y * 4,
|
||||
xMax * 4, (y + rectHeight) * 4,
|
||||
G_TX_RENDERTILE,
|
||||
((xMin + xStart) & 0x1FF) << 5, 0,
|
||||
1 << 10, 1 << 10);
|
||||
|
@ -14,7 +14,7 @@ void ice_shard_render(EffectInstance* effect);
|
||||
void ice_shard_appendGfx(void* effect);
|
||||
|
||||
EffectInstance* ice_shard_main(
|
||||
s32 arg0,
|
||||
s32 type,
|
||||
f32 posX,
|
||||
f32 posY,
|
||||
f32 posZ,
|
||||
@ -38,7 +38,7 @@ EffectInstance* ice_shard_main(
|
||||
data = effect->data.iceShard = general_heap_malloc(numParts * sizeof(*data));
|
||||
ASSERT(effect->data.iceShard != NULL);
|
||||
|
||||
data->type = arg0;
|
||||
data->type = type;
|
||||
data->lifetime = 0;
|
||||
if (duration <= 0) {
|
||||
data->timeLeft = 1000;
|
||||
@ -74,7 +74,7 @@ void ice_shard_init(EffectInstance* effect) {
|
||||
|
||||
void ice_shard_update(EffectInstance* effect) {
|
||||
IceShardFXData* data = effect->data.iceShard;
|
||||
s32 unk_00 = data->type;
|
||||
s32 type = data->type;
|
||||
|
||||
if (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->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->vel.y *= -0.7;
|
||||
}
|
||||
|
@ -1037,7 +1037,7 @@
|
||||
nameMsg: MSG_ItemName_Kaiden
|
||||
fullDescMsg: MSG_ItemFullDesc_Kaiden
|
||||
shortDescMsg: MSG_ItemShortDesc_Kaiden
|
||||
flags: [ TARGET_FLAG_80000000 ]
|
||||
flags: [ TARGET_FLAG_OVERRIDE ]
|
||||
category: MOVE_TYPE_NONE
|
||||
actionTip: MOVE_ACTION_TIP_NONE
|
||||
costFP: 0
|
||||
@ -1073,7 +1073,7 @@
|
||||
nameMsg: MSG_Menus_StarPower_Focus
|
||||
fullDescMsg: 0
|
||||
shortDescMsg: MSG_Menus_StarPowerDesc_Focus
|
||||
flags: [ TARGET_FLAG_80000000 ]
|
||||
flags: [ TARGET_FLAG_OVERRIDE ]
|
||||
category: MOVE_TYPE_STAR_POWER
|
||||
actionTip: MOVE_ACTION_TIP_NONE
|
||||
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",
|
||||
)
|
||||
|
||||
ninja.rule(
|
||||
"actor_types",
|
||||
command=f"$python {BUILD_TOOLS}/actor_types.py $out $in",
|
||||
)
|
||||
|
||||
ninja.rule(
|
||||
"world_map",
|
||||
command=f"$python {BUILD_TOOLS}/world_map.py $in $out",
|
||||
@ -614,6 +619,17 @@ class Configure:
|
||||
"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
|
||||
for entry in self.linker_entries:
|
||||
seg = entry.segment
|
||||
|
@ -68,14 +68,11 @@ def generate_move_enum(fout: TextIOWrapper, moves: List[MoveEntry]):
|
||||
|
||||
fout.write("enum MoveIDs {\n")
|
||||
|
||||
item_enum: List[str] = []
|
||||
|
||||
for idx, move in enumerate(moves):
|
||||
if re.match(r"Unused_(?:Hammer_)?([0-9A-F]{2})", move.name):
|
||||
name = "MOVE_" + move.name.upper()
|
||||
else:
|
||||
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("};\n")
|
||||
|
@ -451,7 +451,7 @@ replace_funcs = {
|
||||
"GetPartAnimNotify": {0: "ActorIDs"},
|
||||
"SetActorPaletteEffect": {0: "ActorIDs"},
|
||||
"SetActorPaletteSwapParams": {0: "ActorIDs"},
|
||||
"func_8026ED20": {0: "ActorIDs"},
|
||||
"EnableActorPaletteEffects": {0: "ActorIDs"},
|
||||
"HideHealthBar": {0: "ActorIDs"},
|
||||
"func_8027D434": {0: "ActorIDs"},
|
||||
"SetProjectileTargetOffset": {0: "ActorIDs"},
|
||||
|
@ -5408,8 +5408,8 @@
|
||||
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
||||
- [0x1D, 0x0082, Menus_AttackUp]
|
||||
- [0x1D, 0x0083, Menus_DefenseUp]
|
||||
- [0x1D, 0x0084, Menus_0084] # possibly unused AttackDown
|
||||
- [0x1D, 0x0085, Menus_0085] # possibly unused DefenseDown
|
||||
- [0x1D, 0x0084, Menus_HealOne]
|
||||
- [0x1D, 0x0085, Menus_HealAll]
|
||||
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
||||
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
||||
- [0x1D, 0x0088, Menus_PlayerDazed]
|
||||
@ -7678,7 +7678,7 @@
|
||||
- [0x29, 0x0078, EnemyName_Whacka]
|
||||
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
||||
- [0x29, 0x007A, EnemyName_Bulb]
|
||||
- [0x29, 0x007B, EnemyName_ShySquadDup]
|
||||
- [0x29, 0x007B, EnemyName_ShySquadRedux]
|
||||
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
||||
- [0x29, 0x007D, EnemyName_MontyHole]
|
||||
- [0x29, 0x007E, EnemyName_Balloon]
|
||||
|
@ -5413,8 +5413,8 @@
|
||||
- [0x1D, 0x0081, Menus_StarEnergyMaxedOut]
|
||||
- [0x1D, 0x0082, Menus_AttackUp]
|
||||
- [0x1D, 0x0083, Menus_DefenseUp]
|
||||
- [0x1D, 0x0084, Menus_0084] # possibly unused AttackDown
|
||||
- [0x1D, 0x0085, Menus_0085] # possibly unused DefenseDown
|
||||
- [0x1D, 0x0084, Menus_HealOne]
|
||||
- [0x1D, 0x0085, Menus_HealAll]
|
||||
- [0x1D, 0x0086, Menus_EnemyTransparent]
|
||||
- [0x1D, 0x0087, Menus_EnemyElectricCharge]
|
||||
- [0x1D, 0x0088, Menus_PlayerDazed]
|
||||
@ -7730,7 +7730,7 @@
|
||||
- [0x29, 0x0078, EnemyName_Whacka]
|
||||
- [0x29, 0x0079, EnemyName_GeneralGuyDup]
|
||||
- [0x29, 0x007A, EnemyName_Bulb]
|
||||
- [0x29, 0x007B, EnemyName_ShySquadDup]
|
||||
- [0x29, 0x007B, EnemyName_ShySquadRedux]
|
||||
- [0x29, 0x007C, EnemyName_Fuzzipede]
|
||||
- [0x29, 0x007D, EnemyName_MontyHole]
|
||||
- [0x29, 0x007E, EnemyName_Balloon]
|
||||
|
@ -7681,7 +7681,7 @@
|
||||
#define MSG_EnemyName_Whacka MESSAGE_ID(0x29, 0x078)
|
||||
#define MSG_EnemyName_GeneralGuyDup MESSAGE_ID(0x29, 0x079)
|
||||
#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_MontyHole MESSAGE_ID(0x29, 0x07D)
|
||||
#define MSG_EnemyName_Balloon MESSAGE_ID(0x29, 0x07E)
|
||||
|
@ -5703,14 +5703,14 @@ segments:
|
||||
start: 0x5A59A0
|
||||
vram: 0x80231000
|
||||
subsegments:
|
||||
- [0x5A59A0, c, actor/shy_squad_dup]
|
||||
- [0x5A59A0, c, actor/shy_squad_redux]
|
||||
- [0x5A59A0]
|
||||
- dir: battle/area/omo2_6
|
||||
type: code
|
||||
start: 0x5A9A80
|
||||
vram: 0x80231000
|
||||
subsegments:
|
||||
- [0x5A9A80, c, actor/shy_guy_dup]
|
||||
- [0x5A9A80, c, actor/shy_squad_stub]
|
||||
- [0x5A9A80,]
|
||||
- dir: battle/area/omo3
|
||||
type: code
|
||||
|
@ -356,7 +356,7 @@ OverrideBattleDmaDest = 0x802537B8;
|
||||
LoadBattleDmaData = 0x802537E4;
|
||||
EnableBattleFloorReflections = 0x80253868;
|
||||
SetDarknessMode = 0x802538F4;
|
||||
func_802537C0 = 0x80253980;
|
||||
GetDarknessStatus = 0x80253980;
|
||||
PlaySoundAtActor = 0x80253A1C;
|
||||
PlaySoundAtPart = 0x80253A90;
|
||||
PlayLoopingSoundAtActor = 0x80253B34;
|
||||
@ -499,7 +499,7 @@ func_8026E914 = 0x8026ED04;
|
||||
GetDistanceToGoal = 0x8026EDEC;
|
||||
SetActorPaletteEffect = 0x8026EE6C;
|
||||
SetActorPaletteSwapParams = 0x8026EFE8;
|
||||
func_8026ED20 = 0x8026F110;
|
||||
EnableActorPaletteEffects = 0x8026F110;
|
||||
AddActorDecoration = 0x8026F278;
|
||||
RemoveActorDecoration = 0x8026F33C;
|
||||
ModifyActorDecoration = 0x8026F3E0;
|
||||
|
@ -6401,14 +6401,14 @@ segments:
|
||||
vram: 0x80231000
|
||||
vram_of_symbol: Vine1Base
|
||||
subsegments:
|
||||
- [auto, c, actor/shy_squad_dup]
|
||||
- [auto, c, actor/shy_squad_redux]
|
||||
- dir: battle/area/omo2_6
|
||||
type: code
|
||||
start: 0x556C90
|
||||
vram: 0x80231000
|
||||
vram_of_symbol: Vine1Base
|
||||
subsegments:
|
||||
- [auto, c, actor/shy_guy_dup]
|
||||
- [auto, c, actor/shy_squad_stub]
|
||||
- dir: battle/area/omo3
|
||||
type: code
|
||||
start: 0x5573E0
|
||||
|
@ -6607,7 +6607,7 @@ OverrideBattleDmaDest = 0x802535F8; // type:func rom:0x181ED8
|
||||
LoadBattleDmaData = 0x80253624; // type:func rom:0x181F04
|
||||
EnableBattleFloorReflections = 0x802536A8; // type:func rom:0x181F88
|
||||
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
|
||||
PlaySoundAtPart = 0x802538D0; // type:func rom:0x1821B0
|
||||
PlayLoopingSoundAtActor = 0x80253974; // type:func rom:0x182254
|
||||
@ -7017,7 +7017,7 @@ GetDistanceToGoal = 0x8026E9FC; // type:func rom:0x19D2DC
|
||||
SetActorPaletteEffect = 0x8026EA7C; // type:func rom:0x19D35C
|
||||
SetActorPaletteSwapTimes = 0x8026EB20; // type:func rom:0x19D400
|
||||
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
|
||||
AddActorDecoration = 0x8026EE88; // type:func rom:0x19D768
|
||||
RemoveActorDecoration = 0x8026EF4C; // type:func rom:0x19D82C
|
||||
@ -7201,7 +7201,7 @@ CamPreset_A = 0x80280E54; // rom:0x1AF734
|
||||
EVS_OnBattleInit = 0x80280EB8; // rom:0x1AF798
|
||||
D_80280FC0 = 0x80280FC0; // rom:0x1AF8A0
|
||||
bActorNames = 0x80281104; // rom:0x1AF9E4
|
||||
D_80281454 = 0x80281454; // rom:0x1AFD34
|
||||
bActorsIgnoreDuringCount = 0x80281454; // rom:0x1AFD34
|
||||
bActorSoundTable = 0x80281468; // rom:0x1AFD48 size:0x1730
|
||||
bActorTattles = 0x80282B98; // rom:0x1B1478 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
|
||||
D_80231110 = 0x80231110; // rom:0x52B6E0
|
||||
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_80218250_52B8F0 = 0x80218250; // type:func rom:0x52B8F0
|
||||
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_8021A694 = 0x8021A694; // rom:0x52DD34
|
||||
toy_tank_model = 0x8021A6C0; // rom:0x52DD60
|
||||
toy_tank_as_shake = 0x8021A724; // rom:0x52DDC4
|
||||
toy_tank_as_fall_apart = 0x8021D318; // rom:0x5309B8
|
||||
toy_tank_as_close_hatch = 0x8021E798; // rom:0x531E38
|
||||
toy_tank_as_open_hatch = 0x80220D88; // rom:0x534428
|
||||
toy_tank_as_5 = 0x80221384; // rom:0x534A24
|
||||
toy_tank_as_move_forward = 0x80222A98; // rom:0x536138
|
||||
toy_tank_as_7 = 0x8022AE48; // rom:0x53E4E8
|
||||
toy_tank_as_idle = 0x8022C55C; // rom:0x53FBFC
|
||||
AS_ToyTank_Shake = 0x8021A724; // rom:0x52DDC4
|
||||
AS_ToyTank_FallApart = 0x8021D318; // rom:0x5309B8
|
||||
AS_ToyTank_CloseHatch = 0x8021E798; // rom:0x531E38
|
||||
AS_ToyTank_OpenHatch = 0x80220D88; // rom:0x534428
|
||||
AS_ToyTank_Unused1 = 0x80221384; // rom:0x534A24
|
||||
AS_ToyTank_MoveForward = 0x80222A98; // rom:0x536138
|
||||
AS_ToyTank_Unused2 = 0x8022AE48; // rom:0x53E4E8
|
||||
AS_ToyTank_Idle = 0x8022C55C; // rom:0x53FBFC
|
||||
b_area_omo2_toy_tank_DefenseTable = 0x8022C838; // rom:0x53FED8
|
||||
b_area_omo2_toy_tank_StatusTable = 0x8022C844; // rom:0x53FEE4
|
||||
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_takeTurn = 0x8022D228; // rom:0x5408C8
|
||||
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_update_phase = 0x8022DB10; // rom:0x5411B0
|
||||
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_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_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_StatusTable = 0x8022F614; // rom:0x542CB4
|
||||
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_takeTurn = 0x8022F9C8; // rom:0x543068
|
||||
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_omo_07_EVS_PreBattle = 0x8022FB20; // rom:0x5431C0
|
||||
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_handleEvent = 0x802312D0; // rom:0x552710
|
||||
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_dup_StatusTable = 0x8023100C; // rom:0x552BBC
|
||||
b_area_omo2_5_shy_squad_dup_ActorParts = 0x802310B8; // rom:0x552C68
|
||||
b_area_omo2_5_shy_squad_dup = 0x802312F8; // rom:0x552EA8
|
||||
b_area_omo2_5_shy_squad_dup_IdleAnimations = 0x80231320; // rom:0x552ED0
|
||||
b_area_omo2_5_shy_squad_dup_IdleAnimations_watt = 0x80231334; // rom:0x552EE4
|
||||
b_area_omo2_5_shy_squad_dup_init = 0x80231348; // rom:0x552EF8
|
||||
b_area_omo2_5_shy_squad_dup_nextTurn = 0x80231FC8; // rom:0x553B78
|
||||
b_area_omo2_5_shy_squad_dup_idle = 0x80231FD8; // rom:0x553B88
|
||||
b_area_omo2_5_shy_squad_dup_move_guy_to_pos = 0x80232104; // rom:0x553CB4
|
||||
b_area_omo2_5_shy_squad_dup_onSpinSmash = 0x80232268; // rom:0x553E18
|
||||
b_area_omo2_5_shy_squad_dup_displace_guy = 0x8023233C; // rom:0x553EEC
|
||||
b_area_omo2_5_shy_squad_dup_onShock = 0x80232FC0; // rom:0x554B70
|
||||
b_area_omo2_5_shy_squad_dup_displace_guy_2 = 0x80233088; // rom:0x554C38
|
||||
b_area_omo2_5_shy_squad_dup_handleEvent = 0x80233384; // rom:0x554F34
|
||||
b_area_omo2_5_shy_squad_dup_onHit = 0x8023392C; // rom:0x5554DC
|
||||
b_area_omo2_5_shy_squad_dup_set_squad_animation = 0x80233DA4; // rom:0x555954
|
||||
b_area_omo2_5_shy_squad_dup_80233E48 = 0x80233E48; // rom:0x5559F8
|
||||
b_area_omo2_5_shy_squad_dup_onDeath = 0x80234024; // rom:0x555BD4
|
||||
b_area_omo2_5_shy_squad_dup_takeTurn = 0x802342A0; // rom:0x555E50
|
||||
b_area_omo2_5_shy_squad_dup_next_phase = 0x80234370; // rom:0x555F20
|
||||
b_area_omo2_5_shy_squad_dup_run_away = 0x802343A8; // rom:0x555F58
|
||||
b_area_omo2_5_shy_squad_dup_attack = 0x80234624; // rom:0x5561D4
|
||||
b_area_omo2_5_shy_squad_dup_run_squad_to_pos = 0x80234EC4; // rom:0x556A74
|
||||
b_area_omo2_6_shy_guy_dup_DefenseTable = 0x80231000; // rom:0x556C90
|
||||
b_area_omo2_6_shy_guy_dup_StatusTable = 0x8023100C; // rom:0x556C9C
|
||||
b_area_omo2_6_shy_guy_dup_ActorParts = 0x802310B8; // rom:0x556D48
|
||||
b_area_omo2_6_shy_guy_dup = 0x802311FC; // rom:0x556E8C
|
||||
b_area_omo2_6_shy_guy_dup_IdleAnimations = 0x80231224; // rom:0x556EB4
|
||||
b_area_omo2_6_shy_guy_dup_init = 0x80231280; // rom:0x556F10
|
||||
b_area_omo2_6_shy_guy_dup_idle = 0x802315EC; // rom:0x55727C
|
||||
b_area_omo2_6_shy_guy_dup_run_to_pos = 0x80231620; // rom:0x5572B0
|
||||
b_area_omo2_6_shy_guy_dup_handleEvent = 0x8023172C; // rom:0x5573BC
|
||||
b_area_omo2_6_shy_guy_dup_takeTurn = 0x8023173C; // rom:0x5573CC
|
||||
b_area_omo2_5_shy_squad_redux_DefenseTable = 0x80231000; // rom:0x552BB0
|
||||
b_area_omo2_5_shy_squad_redux_StatusTable = 0x8023100C; // rom:0x552BBC
|
||||
b_area_omo2_5_shy_squad_redux_ActorParts = 0x802310B8; // rom:0x552C68
|
||||
b_area_omo2_5_shy_squad_redux = 0x802312F8; // rom:0x552EA8
|
||||
b_area_omo2_5_shy_squad_redux_IdleAnimations = 0x80231320; // rom:0x552ED0
|
||||
b_area_omo2_5_shy_squad_redux_IdleAnimations_watt = 0x80231334; // rom:0x552EE4
|
||||
b_area_omo2_5_shy_squad_redux_init = 0x80231348; // rom:0x552EF8
|
||||
b_area_omo2_5_shy_squad_redux_nextTurn = 0x80231FC8; // rom:0x553B78
|
||||
b_area_omo2_5_shy_squad_redux_idle = 0x80231FD8; // rom:0x553B88
|
||||
b_area_omo2_5_shy_squad_redux_move_guy_to_pos = 0x80232104; // rom:0x553CB4
|
||||
b_area_omo2_5_shy_squad_redux_onSpinSmash = 0x80232268; // rom:0x553E18
|
||||
b_area_omo2_5_shy_squad_redux_displace_guy = 0x8023233C; // rom:0x553EEC
|
||||
b_area_omo2_5_shy_squad_redux_onShock = 0x80232FC0; // rom:0x554B70
|
||||
b_area_omo2_5_shy_squad_redux_displace_guy_2 = 0x80233088; // rom:0x554C38
|
||||
b_area_omo2_5_shy_squad_redux_handleEvent = 0x80233384; // rom:0x554F34
|
||||
b_area_omo2_5_shy_squad_redux_onHit = 0x8023392C; // rom:0x5554DC
|
||||
b_area_omo2_5_shy_squad_redux_set_squad_animation = 0x80233DA4; // rom:0x555954
|
||||
b_area_omo2_5_shy_squad_redux_80233E48 = 0x80233E48; // rom:0x5559F8
|
||||
b_area_omo2_5_shy_squad_redux_onDeath = 0x80234024; // rom:0x555BD4
|
||||
b_area_omo2_5_shy_squad_redux_takeTurn = 0x802342A0; // rom:0x555E50
|
||||
b_area_omo2_5_shy_squad_redux_next_phase = 0x80234370; // rom:0x555F20
|
||||
b_area_omo2_5_shy_squad_redux_run_away = 0x802343A8; // rom:0x555F58
|
||||
b_area_omo2_5_shy_squad_redux_attack = 0x80234624; // rom:0x5561D4
|
||||
b_area_omo2_5_shy_squad_redux_run_squad_to_pos = 0x80234EC4; // rom:0x556A74
|
||||
b_area_omo2_6_shy_squad_stub_DefenseTable = 0x80231000; // rom:0x556C90
|
||||
b_area_omo2_6_shy_squad_stub_StatusTable = 0x8023100C; // rom:0x556C9C
|
||||
b_area_omo2_6_shy_squad_stub_ActorParts = 0x802310B8; // rom:0x556D48
|
||||
b_area_omo2_6_shy_squad_stub = 0x802311FC; // rom:0x556E8C
|
||||
b_area_omo2_6_shy_squad_stub_IdleAnimations = 0x80231224; // rom:0x556EB4
|
||||
b_area_omo2_6_shy_squad_stub_init = 0x80231280; // rom:0x556F10
|
||||
b_area_omo2_6_shy_squad_stub_idle = 0x802315EC; // rom:0x55727C
|
||||
b_area_omo2_6_shy_squad_stub_run_to_pos = 0x80231620; // rom:0x5572B0
|
||||
b_area_omo2_6_shy_squad_stub_handleEvent = 0x8023172C; // rom:0x5573BC
|
||||
b_area_omo2_6_shy_squad_stub_takeTurn = 0x8023173C; // rom:0x5573CC
|
||||
func_80218000_5573E0 = 0x80218000; // type:func rom:0x5573E0
|
||||
func_80218038_557418 = 0x80218038; // type:func rom:0x557418
|
||||
func_80218070_557450 = 0x80218070; // type:func rom:0x557450
|
||||
@ -26854,7 +26854,7 @@ D_8029FBAC = 0x8029FBAC; //
|
||||
D_8029FBB0 = 0x8029FBB0; //
|
||||
D_8029FBC0 = 0x8029FBC0; //
|
||||
D_8029FBD0 = 0x8029FBD0; //
|
||||
D_8029FBD4 = 0x8029FBD4; //
|
||||
ApplyingBuff = 0x8029FBD4; //
|
||||
gActionCommandStatus = 0x8029FBE0; //
|
||||
D_802A19B0 = 0x802A19B0; //
|
||||
D_802A1A60 = 0x802A1A60; //
|
||||
@ -26929,7 +26929,7 @@ D_802ACC60 = 0x802ACC60; //
|
||||
D_802ACC64 = 0x802ACC64; //
|
||||
D_802ACC68 = 0x802ACC68; //
|
||||
D_802ACC6C = 0x802ACC6C; //
|
||||
D_802ACC70 = 0x802ACC70; //
|
||||
BattleMenu_TargetHudElems = 0x802ACC70; //
|
||||
D_802ACCD0 = 0x802ACCD0; //
|
||||
D_802ACFE8 = 0x802ACFE8; //
|
||||
D_802ACFEC = 0x802ACFEC; //
|
||||
|
Loading…
Reference in New Issue
Block a user