all data done (#945)

* misc fold

* omo cleanup

* projectile target offset

* missing actor part fields

* msg chars

* decimal offsets

* partIndex -> partID

* callables

* EVT_PLAY_EFFECT

* fix out of range offsets

* some renames

* battle_area -> battle/area

* renames

* battle names last

* more power

* hammer moves

* hammer directory

* all moves migrated

* moved items

* moved starpowers

* fixed jp

---------

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2023-02-17 02:44:14 -05:00 committed by GitHub
parent 0d70e3ecac
commit f033bbae6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
915 changed files with 14574 additions and 12841 deletions

View File

@ -11,8 +11,8 @@
#include "enums.h"
#include "evt.h"
#include "messages.h"
#include "battle/battle_formation_names.h"
#include "battle/battle_stage_names.h"
#include "battle/formation_names.h"
#include "battle/stage_names.h"
#ifdef PERMUTER
extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA;

View File

@ -245,12 +245,12 @@ typedef struct Npc {
/* 0x08E */ s16 duration; // TODO: name less vaguely
/* 0x090 */ Vec3s homePos;
/* 0x096 */ s16 unk_96;
/* 0x098 */ s16 unk_98;
/* 0x09A */ s16 unk_9A;
/* 0x09C */ s16 unk_9C;
/* 0x09E */ s16 unk_9E;
/* 0x0A0 */ s16 unk_A0;
/* 0x0A2 */ u16 unk_A2;
/* 0x098 */ s16 foldType;
/* 0x09A */ s16 foldArg1;
/* 0x09C */ s16 foldArg2;
/* 0x09E */ s16 foldArg3;
/* 0x0A0 */ s16 foldArg4;
/* 0x0A2 */ u16 foldArg5;
/* 0x0A4 */ s8 npcID;
/* 0x0A5 */ char unk_A5;
/* 0x0A6 */ s16 collisionRadius;
@ -1546,10 +1546,9 @@ typedef struct ActorPartBlueprint {
/* 0x10 */ s32* defenseTable;
/* 0x14 */ s32 eventFlags;
/* 0x18 */ s32 elementImmunityFlags;
/* 0x1C */ s8 unk_1C;
/* 0x1D */ s8 unk_1D;
/* 0x1C */ Vec2b projectileTargetOffset;
/* 0x1E */ char unk_1E[2];
/* 0x20 */ s32 unk_20;
/* 0x20 */ s32 overrideNameMsg; // name when this part is targeted; overrides name from actor type
} ActorPartBlueprint; // size = 0x24
typedef struct ActorPart {
@ -1573,8 +1572,7 @@ typedef struct ActorPart {
/* 0x70 */ s16 unk_70;
/* 0x72 */ Vec2bu size;
/* 0x74 */ s8 verticalStretch;
/* 0x75 */ s8 unk_75;
/* 0x76 */ s8 unk_76;
/* 0x75 */ Vec2b projectileTargetOffset;
/* 0x77 */ char unk_77[1];
/* 0x78 */ u32* defenseTable;
/* 0x7C */ s32 eventFlags;

View File

@ -737,7 +737,11 @@ enum SoundIDs {
SOUND_151 = 0x00000151,
SOUND_152 = 0x00000152,
SOUND_SEARCH_BUSH = 0x00000153,
SOUND_156 = 0x00000156,
SOUND_158 = 0x00000158,
SOUND_15A = 0x0000015A,
SOUND_15B = 0x0000015B,
SOUND_15C = 0x0000015C,
SOUND_15D = 0x0000015D,
SOUND_15E = 0x0000015E,
SOUND_160 = 0x00000160,
@ -1461,6 +1465,9 @@ enum SoundIDs {
SOUND_2106 = 0x00002106,
SOUND_2107 = 0x00002107,
SOUND_2108 = 0x00002108,
SOUND_210A = 0x0000210A,
SOUND_210B = 0x0000210B,
SOUND_210C = 0x0000210C,
SOUND_2111 = 0x00002111,
SOUND_2112 = 0x00002112,
SOUND_2113 = 0x00002113,
@ -1471,6 +1478,12 @@ enum SoundIDs {
SOUND_2118 = 0x00002118,
SOUND_2119 = 0x00002119,
SOUND_211A = 0x0000211A,
SOUND_211B = 0x0000211B,
SOUND_211C = 0x0000211C,
SOUND_211D = 0x0000211D,
SOUND_211E = 0x0000211E,
SOUND_211F = 0x0000211F,
SOUND_2120 = 0x00002120,
SOUND_2121 = 0x00002121,
SOUND_2122 = 0x00002122,
SOUND_2123 = 0x00002123,
@ -2529,22 +2542,21 @@ enum PlayerAnims {
};
enum AmbientSounds {
AMBIENT_SPOOKY = 0,
AMBIENT_WIND = 1,
AMBIENT_BEACH = 2,
AMBIENT_JUNGLE = 3,
// actually, 'undersea' are all lava-related. sort these out when map data is done
AMBIENT_UNDER_SEA1 = 4,
AMBIENT_UNDER_SEA2 = 5,
AMBIENT_SILENCE = 6,
AMBIENT_UNDER_SEA3 = 7,
AMBIENT_UNDER_SEA4 = 8,
AMBIENT_EXIT_SEA = 9,
AMBIENT_UNDER_SEA5 = 10,
AMBIENT_UNDER_SEA6 = 11,
AMBIENT_BIRDS = 12,
AMBIENT_SEA = 13,
AMBIENT_RADIO = 16, // radio songs for nok
AMBIENT_SPOOKY = 0,
AMBIENT_WIND = 1,
AMBIENT_BEACH = 2,
AMBIENT_JUNGLE = 3,
AMBIENT_LAVA_1 = 4,
AMBIENT_LAVA_2 = 5,
AMBIENT_SILENCE = 6,
AMBIENT_LAVA_3 = 7,
AMBIENT_LAVA_4 = 8,
AMBIENT_LAVA_5 = 9,
AMBIENT_LAVA_6 = 10,
AMBIENT_LAVA_7 = 11,
AMBIENT_BIRDS = 12,
AMBIENT_SEA = 13,
AMBIENT_RADIO = 16, // radio songs for nok
// the following 4 IDs are reserved for additional radio songs,
// and no more are expected to follow after that
// see: au_ambient_load
@ -5753,7 +5765,7 @@ enum FoldStateFlags {
FOLD_STATE_FLAG_2000 = 0x00002000,
FOLD_STATE_FLAG_4000 = 0x00004000,
FOLD_STATE_FLAG_8000 = 0x00008000,
FOLD_STATE_FLAG_10000 = 0x00010000,
FOLD_STATE_FLAG_NO_FILTERING = 0x00010000,
FOLD_STATE_FLAG_20000 = 0x00020000,
FOLD_STATE_FLAG_40000 = 0x00040000,
FOLD_STATE_FLAG_80000 = 0x00080000,

View File

@ -241,7 +241,7 @@ s32 evt_trigger_on_activate_exec_script(Trigger* trigger);
Trigger* get_trigger_by_id(s32 triggerID);
Actor* get_actor(s32 actorID);
ActorPart* get_actor_part(Actor* actor, s32 partIndex);
ActorPart* get_actor_part(Actor* actor, s32 partID);
s32 add_coins(s32 amt);
s32 is_partner_ability_active(s32);
s32 count_power_plus(s32);
@ -447,7 +447,7 @@ void set_npc_animation(Npc* npc, u32 animID);
void set_peach_shadow_scale(Shadow* shadow, f32 scale);
s32 is_block_on_ground(Entity* block);
void set_animation(s32 actorID, s32, s32 animationIndex);
void set_animation_rate(s32 actorID, s32 partIndex, f32 rate);
void set_animation_rate(s32 actorID, s32 partID, f32 rate);
void set_model_flags(u16, s32, s32);
void init_enter_world_shared(void);
s16 update_enter_map_screen_overlay(s16* progress);
@ -549,7 +549,7 @@ void player_create_target_list(Actor* actor);
void enemy_create_target_list(Actor* actor);
void set_actor_yaw(s32 actorID, s32 yaw);
void set_part_yaw(s32 actorID, s32 partIndex, s32 value);
void set_part_yaw(s32 actorID, s32 partID, s32 value);
void add_part_decoration(ActorPart* part, s32 decorationIndex, s32 decorationType);
void add_actor_decoration(Actor* actor, s32 decorationIndex, s32 decorationType);
@ -558,8 +558,8 @@ void remove_actor_decoration(Actor* actor, s32 decorationIndex);
s32 player_team_is_ability_active(Actor* actor, s32 ability);
void create_part_shadow(s32 actorID, s32 partIndex);
void remove_part_shadow(s32 actorID, s32 partIndex);
void create_part_shadow(s32 actorID, s32 partID);
void remove_part_shadow(s32 actorID, s32 partID);
void create_part_shadow_by_ref(s32 arg0, ActorPart* part);
void spawn_drops(Enemy* enemy);
@ -996,7 +996,7 @@ void func_802549C0(void);
void func_8023E104(void);
void func_8023E11C(void);
void set_goal_pos_to_part(ActorState* state, s32 actorID, s32 partIndex);
void set_goal_pos_to_part(ActorState* state, s32 actorID, s32 partID);
void init_encounters_ui(void);
void initialize_collision(void);

View File

@ -53,10 +53,6 @@
#define MAP_RODATA_PAD(n,name) const s32 N(rodata_pad_##name)[n] = {};
#define MAP_STATIC_PAD(n,name) BSS s32 N(static_pad_##name)[n];
// standardized macro for reseting data section after a INCLUDE_ASM
//TODO these should all be removed after map decomp is done
#define MAP_DATA_SECTION_START __asm__(".section .data\n");
#define PHYSICAL_TO_VIRTUAL(addr) (void*)((u32)(addr) + 0x80000000)
#define VIRTUAL_TO_PHYSICAL(addr) (u32)((u8*)(addr) - 0x80000000)

View File

@ -243,7 +243,7 @@ ApiStatus DispatchDamageEvent(Evt* script, s32 isInitialCall);
ApiStatus DispatchEvent(Evt* script, s32 isInitialCall);
ApiStatus func_8027D2D8(Evt* script, s32 isInitialCall);
ApiStatus SetTargetOffset(Evt* script, s32 isInitialCall);
ApiStatus func_8027D4C8(Evt* script, s32 isInitialCall);
ApiStatus SetProjectileTargetOffset(Evt* script, s32 isInitialCall);
ApiStatus EnableActorBlur(Evt* script, s32 isInitialCall);
ApiStatus AfflictActor(Evt* script, s32 isInitialCall);
ApiStatus GetInstigatorValue(Evt* script, s32 isInitialCall);

View File

@ -307,6 +307,7 @@ ApiStatus SetVirtualEntityJumpGravity(Evt* script, s32 isInitialCall);
ApiStatus SetVirtualEntityFlags(Evt* script, s32 isInitialCall);
ApiStatus GetVirtualEntityPosition(Evt* script, s32 isInitialCall);
ApiStatus VirtualEntityJumpTo(Evt* script, s32 isInitialCall);
ApiStatus VirtualEntityLandJump(Evt* script, s32 isInitialCall);
ApiStatus FacePlayerTowardPoint(Evt* script, s32 isInitialCall);
ApiStatus func_802D2C14(Evt* script, s32 isInitialCall);
ApiStatus ShowConsumableChoicePopup(Evt* script, s32 isInitialCall);

View File

@ -37,11 +37,11 @@ void btl_merlee_on_start_turn(void) {
PlayerData* playerData = &gPlayerData;
do {
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) &&
battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST &&
battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST &&
playerData->merleeCastsLeft > 0)
{
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE)
&& battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST
&& battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST
&& playerData->merleeCastsLeft > 0
) {
if (playerData->merleeTurnCount <= 0) {
s32 temp = rand_int(100);
@ -94,10 +94,10 @@ void btl_merlee_on_first_strike(void) {
PlayerData* playerData = &gPlayerData;
do {
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) &&
battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST &&
battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST &&
playerData->merleeCastsLeft > 0)
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE)
&& battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST
&& battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST
&& playerData->merleeCastsLeft > 0)
{
if (playerData->merleeTurnCount <= 0) {
s32 temp = rand_int(100);
@ -456,10 +456,10 @@ void btl_state_update_normal_start(void) {
script->owner1.actorID = ACTOR_PLAYER;
}
if (currentEncounter->currentEnemy != NULL &&
currentEncounter->currentEnemy->encountered == ENCOUNTER_TRIGGER_SPIN &&
is_ability_active(ABILITY_DIZZY_ATTACK))
{
if (currentEncounter->currentEnemy != NULL
&& currentEncounter->currentEnemy->encountered == ENCOUNTER_TRIGGER_SPIN
&& is_ability_active(ABILITY_DIZZY_ATTACK)
) {
actor = battleStatus->enemyActors[0];
script = start_script(&DoDizzyAttack, EVT_PRIORITY_A, 0);
actor->takeTurnScript = script;
@ -2333,10 +2333,10 @@ void btl_state_update_run_away(void) {
D_8029F248--;
return;
}
if (!does_script_exist(player->takeTurnScriptID) &&
(partner == NULL || !does_script_exist(partner->takeTurnScriptID)) &&
battleStatus->unk_8C == 0)
{
if (!does_script_exist(player->takeTurnScriptID)
&& (partner == NULL || !does_script_exist(partner->takeTurnScriptID))
&& battleStatus->unk_8C == 0
) {
btl_set_state(BATTLE_STATE_9);
}
break;
@ -2363,7 +2363,7 @@ void btl_state_update_defeat(void) {
battleStatus->unk_8C = 0;
if (player->debuff != 0) {
if (player->debuff == 7) {
if (player->debuff == STATUS_FROZEN) {
sfx_play_sound(SOUND_FROZEN_SHATTER);
player->icePillarEffect->flags |= EFFECT_INSTANCE_FLAG_10;
player->icePillarEffect = NULL;
@ -2764,21 +2764,20 @@ void btl_state_update_player_move(void) {
return;
}
if (battleStatus->moveCategory == BTL_MENU_TYPE_SMASH) {
if ((battleStatus->selectedMoveID != MOVE_SMASH_CHARGE0) &&
(battleStatus->selectedMoveID != MOVE_SMASH_CHARGE) &&
(battleStatus->selectedMoveID != MOVE_SUPER_SMASH_CHARGE))
{
gBattleStatus.flags1 &= ~BS_FLAGS1_HAMMER_CHARGED;
}
if ((battleStatus->moveCategory == BTL_MENU_TYPE_SMASH)
&& (battleStatus->selectedMoveID != MOVE_SMASH_CHARGE0)
&& (battleStatus->selectedMoveID != MOVE_SMASH_CHARGE)
&& (battleStatus->selectedMoveID != MOVE_SUPER_SMASH_CHARGE)
) {
gBattleStatus.flags1 &= ~BS_FLAGS1_HAMMER_CHARGED;
}
if (battleStatus->moveCategory == BTL_MENU_TYPE_JUMP) {
if ((battleStatus->selectedMoveID != MOVE_JUMP_CHARGE0) &&
(battleStatus->selectedMoveID != MOVE_JUMP_CHARGE) &&
(battleStatus->selectedMoveID != MOVE_SUPER_JUMP_CHARGE))
{
gBattleStatus.flags1 &= ~BS_FLAGS1_JUMP_CHARGED;
}
if ((battleStatus->moveCategory == BTL_MENU_TYPE_JUMP)
&& (battleStatus->selectedMoveID != MOVE_JUMP_CHARGE0)
&& (battleStatus->selectedMoveID != MOVE_JUMP_CHARGE)
&& (battleStatus->selectedMoveID != MOVE_SUPER_JUMP_CHARGE)
) {
gBattleStatus.flags1 &= ~BS_FLAGS1_JUMP_CHARGED;
}
if (!(gBattleStatus.flags1 & BS_FLAGS1_JUMP_CHARGED)) {
@ -2949,11 +2948,11 @@ void btl_state_update_end_player_turn(void) {
if (battleStatus->moveCategory == BTL_MENU_TYPE_ITEMS && battleStatus->itemUsesLeft >= 2) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY;
} else if (
!(gBattleStatus.flags2 & BS_FLAGS2_HAS_DRAINED_HP) &&
!is_ability_active(ABILITY_HAPPY_HEART) &&
!is_ability_active(ABILITY_CRAZY_HEART) &&
!is_ability_active(ABILITY_HAPPY_FLOWER))
{
!(gBattleStatus.flags2 & BS_FLAGS2_HAS_DRAINED_HP)
&& !is_ability_active(ABILITY_HAPPY_HEART)
&& !is_ability_active(ABILITY_CRAZY_HEART)
&& !is_ability_active(ABILITY_HAPPY_FLOWER)
) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY;
} else if (player->stoneStatus == STATUS_STONE || battleStatus->outtaSightActive) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY;

View File

@ -885,10 +885,10 @@ void btl_draw_enemy_health_bars(void) {
}
}
if (!(enemy->flags & (ACTOR_FLAG_40000 | ACTOR_FLAG_TARGET_ONLY)) &&
((gBattleStatus.flags1 & BS_FLAGS1_MENU_OPEN) || (enemy->flags & ACTOR_FLAG_80000)) &&
is_actor_hp_bar_visible(enemy))
{
if (!(enemy->flags & (ACTOR_FLAG_40000 | ACTOR_FLAG_TARGET_ONLY))
&& ((gBattleStatus.flags1 & BS_FLAGS1_MENU_OPEN) || (enemy->flags & ACTOR_FLAG_80000))
&& is_actor_hp_bar_visible(enemy)
) {
f32 x = enemy->healthBarPosition.x;
f32 y = enemy->healthBarPosition.y;
f32 z = enemy->healthBarPosition.z;
@ -1104,7 +1104,7 @@ void btl_restore_world_cameras(void) {
}
void btl_delete_actor(Actor* actor) {
ActorPart* partsTable;
ActorPart* part;
ActorPart* actorPartTemp;
BattleStatus* battleStatus;
s32 i;
@ -1124,29 +1124,29 @@ void btl_delete_actor(Actor* actor) {
}
func_80266EE8(actor, 0);
partsTable = actor->partsTable;
part = actor->partsTable;
while (partsTable != NULL) {
if (!(partsTable->flags & 0x4)) {
delete_shadow(partsTable->shadowIndex);
while (part != NULL) {
if (!(part->flags & ACTOR_PART_FLAG_4)) {
delete_shadow(part->shadowIndex);
}
if (partsTable->idleAnimations != NULL) {
func_802DE894(partsTable->spriteInstanceID, 0, 0, 0, 0, 0, 0);
if (part->idleAnimations != NULL) {
func_802DE894(part->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, 0);
ASSERT(spr_free_sprite(partsTable->spriteInstanceID) == 0);
ASSERT(spr_free_sprite(part->spriteInstanceID) == 0);
if (!(partsTable->flags & 0x80000000)) {
heap_free(partsTable->movement);
if (!(part->flags & ACTOR_PART_FLAG_80000000)) {
heap_free(part->movement);
}
if (!(partsTable->flags & 0x2)) {
heap_free(partsTable->decorationTable);
if (!(part->flags & 0x2)) {
heap_free(part->decorationTable);
}
}
actorPartTemp = partsTable->nextPart;
heap_free(partsTable);
partsTable = actorPartTemp;
actorPartTemp = part->nextPart;
heap_free(part);
part = actorPartTemp;
}
delete_shadow(actor->shadow.id);

View File

@ -287,42 +287,39 @@ HitResult calc_item_damage_enemy(void) {
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if ((battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW)) &&
(targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE))
{
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW))
&& (targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE)
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if ((battleStatus->currentAttackElement & DAMAGE_TYPE_POW) &&
(targetPart->eventFlags & ACTOR_EVENT_FLAG_800000))
{
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& (battleStatus->currentAttackElement & DAMAGE_TYPE_POW)
&& (targetPart->eventFlags & ACTOR_EVENT_FLAG_800000)
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if ((battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE)) &&
(targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE))
{
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE))
&& (targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE)
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
}
@ -338,12 +335,12 @@ HitResult calc_item_damage_enemy(void) {
}
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) &&
battleStatus->lastAttackDamage >= 0 &&
dispatchEvent != EVENT_DEATH &&
dispatchEvent != EVENT_SPIN_SMASH_DEATH &&
dispatchEvent != EVENT_EXPLODE_TRIGGER)
{
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& battleStatus->lastAttackDamage >= 0
&& dispatchEvent != EVENT_DEATH
&& dispatchEvent != EVENT_SPIN_SMASH_DEATH
&& dispatchEvent != EVENT_EXPLODE_TRIGGER
) {
// Using this macro because it's nicer to look at, and it also is necessary to wrap the first 5 of these in a
// do-while-0 OR to wrap each one individually. It's more likely that it's a macro instead, and much cleaner
#define INFLICT_STATUS(STATUS_TYPE) \
@ -381,14 +378,14 @@ HitResult calc_item_damage_enemy(void) {
temp = (battleStatus->statusChance * temp) / 100;
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) && (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR)) {
if (rand_int(99) < temp &&
!(target->debuff == STATUS_FEAR ||
target->debuff == STATUS_DIZZY ||
target->debuff == STATUS_PARALYZE ||
target->debuff == STATUS_SLEEP ||
target->debuff == STATUS_FROZEN ||
target->debuff == STATUS_STOP) &&
!(target->flags & ACTOR_FLAG_400))
if (rand_int(99) < temp
&& (target->debuff != STATUS_FEAR
&& target->debuff != STATUS_DIZZY
&& target->debuff != STATUS_PARALYZE
&& target->debuff != STATUS_SLEEP
&& target->debuff != STATUS_FROZEN
&& target->debuff != STATUS_STOP)
&& !(target->flags & ACTOR_FLAG_400))
{
dispatchEvent = EVENT_SCARE_AWAY;
hitResult = HIT_RESULT_HIT;
@ -405,9 +402,9 @@ HitResult calc_item_damage_enemy(void) {
battleStatus->wasStatusInflicted = wasStatusInflicted;
if (
(sp1C && (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200))) ||
((gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) && !(gBattleStatus.flags1 & BS_FLAGS1_80))
if ((sp1C
&& (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)))
|| ((gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) && !(gBattleStatus.flags1 & BS_FLAGS1_80))
) {
if (battleStatus->lastAttackDamage > 0) {
sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);

View File

@ -116,7 +116,7 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
ActorPart* part;
s32 msgID;
s32 actorID;
s32 partIndex;
s32 partID;
s32 anim;
f32 headX, headY, headZ;
@ -126,7 +126,7 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
msgID = evt_get_variable(script, *args++);
actorID = evt_get_variable(script, *args++);
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
gSpeakingActorIdleAnim = evt_get_variable(script, *args++);
msgID2 = msgID;
@ -136,7 +136,7 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
}
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
gSpeakingActor = actor;
gSpeakingActorPart = part;
@ -212,7 +212,7 @@ ApiStatus EndActorSpeech(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
s32 actor = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++);
s32 partID = evt_get_variable(script, *args++);
ActorPart* actorPart;
gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
@ -222,7 +222,7 @@ ApiStatus EndActorSpeech(Evt* script, s32 isInitialCall) {
actor = script->owner1.actorID;
}
actor = (s32) get_actor(actor);
actorPart = get_actor_part((Actor*)actor, partIndex);
actorPart = get_actor_part((Actor*)actor, partID);
gSpeakingActor = (Actor*) actor;
gSpeakingActorPart = actorPart;
close_message(gSpeakingActorPrintCtx);
@ -405,7 +405,7 @@ ApiStatus PlaySoundAtActor(Evt* script, s32 isInitialCall) {
ApiStatus PlaySoundAtPart(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++);
s32 partID = evt_get_variable(script, *args++);
Bytecode soundID = *args++;
ActorPart* part;
@ -413,7 +413,7 @@ ApiStatus PlaySoundAtPart(Evt* script, s32 isInitialCall) {
actorID = script->owner1.actorID;
}
part = get_actor_part(get_actor(actorID), partIndex);
part = get_actor_part(get_actor(actorID), partID);
sfx_play_sound_at_position(soundID, SOUND_SPACE_MODE_0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
return ApiStatus_DONE2;

View File

@ -1515,25 +1515,25 @@ void appendGfx_player_actor(void* arg0) {
lastAnim = playerParts->currentAnimation;
} while (0); // required to match
if (((((gBattleStatus.flags2 & (BS_FLAGS2_8 | BS_FLAGS2_2)) == BS_FLAGS2_2) && (partner != NULL)) || (battleStatus->outtaSightActive > 0)) &&
!(player->flags & ACTOR_FLAG_20000000) &&
((partner == NULL) || !(partner->flags & ACTOR_FLAG_NO_ATTACK)))
if (((((gBattleStatus.flags2 & (BS_FLAGS2_8 | BS_FLAGS2_2)) == BS_FLAGS2_2) && (partner != NULL)) || (battleStatus->outtaSightActive > 0))
&& !(player->flags & ACTOR_FLAG_20000000)
&& ((partner == NULL) || !(partner->flags & ACTOR_FLAG_NO_ATTACK)))
{
if (!(gBattleStatus.flags2 & BS_FLAGS2_100000)) {
if ((player->debuff != STATUS_FEAR) &&
(player->debuff != STATUS_PARALYZE) &&
(player->debuff != STATUS_FROZEN) &&
(player->debuff != STATUS_STOP))
{
if ((player->debuff != STATUS_FEAR)
&& (player->debuff != STATUS_PARALYZE)
&& (player->debuff != STATUS_FROZEN)
&& (player->debuff != STATUS_STOP)
) {
if ((player->transparentStatus != STATUS_TRANSPARENT) &&
(player->stoneStatus != STATUS_STONE) &&
((battleStatus->outtaSightActive > 0) || (gBattleStatus.flags2 & BS_FLAGS2_2)))
{
if (is_ability_active(ABILITY_BERSERKER)) {
playerParts->currentAnimation = func_80265D44(0x13);
} else if (player->debuff == 6) {
} else if (player->debuff == STATUS_SLEEP) {
playerParts->currentAnimation = func_80265D44(0x15);
} else if (player->debuff == 4) {
} else if (player->debuff == STATUS_DIZZY) {
playerParts->currentAnimation = func_80265D44(0x18);
} else {
playerParts->currentAnimation = func_80265D44(0x12);
@ -3223,9 +3223,9 @@ void func_8025C8A0(s32 isNpcSprite, ActorPart* part, s32 yaw, s32 arg3) {
if (part->decorationTable->unk_751 != 0) {
part->decorationTable->unk_751 = 0;
if (isNpcSprite == SPRITE_MODE_PLAYER) {
func_802DDFF8(PLAYER_SPRITE_MAIN, 0, 0, 0, 0, 0, 0);
func_802DDFF8(PLAYER_SPRITE_MAIN, FOLD_TYPE_NONE, 0, 0, 0, 0, 0);
} else {
func_802DE894(part->spriteInstanceID, 0, 0, 0, 0, 0, 0);
func_802DE894(part->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, 0);
}
}
}
@ -3246,9 +3246,9 @@ void func_8025C918(s32 isNpcSprite, ActorPart* part, s32 yaw, s32 arg3) {
decor->unk_751 = 0;
decor->unk758 = 0;
if (isNpcSprite == SPRITE_MODE_PLAYER) {
func_802DDFF8(0, FOLD_TYPE_11, 0x14, 0, 0, 0xFF, 0);
func_802DDFF8(0, FOLD_TYPE_11, 20, 0, 0, 255, 0);
} else {
func_802DE894(part->spriteInstanceID, FOLD_TYPE_11, 0x14, 0, 0, 0xFF, 0);
func_802DE894(part->spriteInstanceID, FOLD_TYPE_11, 20, 0, 0, 255, 0);
}
}
@ -3276,9 +3276,9 @@ void func_8025C918(s32 isNpcSprite, ActorPart* part, s32 yaw, s32 arg3) {
for (i = 0; i < ARRAY_COUNT(rbuf); i++) {
color = (rbuf[i] << 0x18) | (gbuf[i] << 0x10) | (bbuf[i] << 8) | alpha;
if (isNpcSprite == SPRITE_MODE_PLAYER) {
func_802DDFF8(PLAYER_SPRITE_MAIN, 0xC, i, color, 0, 0xFF, 0);
func_802DDFF8(PLAYER_SPRITE_MAIN, FOLD_TYPE_C, i, color, 0, 0xFF, 0);
} else {
func_802DE894(part->spriteInstanceID, 0xC, i, color, 0, 0xFF, 0);
func_802DE894(part->spriteInstanceID, FOLD_TYPE_C, i, color, 0, 0xFF, 0);
}
}

View File

@ -135,7 +135,7 @@ void create_target_list(Actor* actor, s32 arg1) {
for (j = 0; j < numParts; targetPart = targetPart->nextPart, j++) {
if (!(targetPart->flags & 0x20000)) {
ActorPartBlueprint* partBlueprint = targetPart->staticData;
s8 partIndex;
s8 partID;
if (!(targetPart->flags & 0x100000)) {
fp = !arg1; // TODO ??????
if (fp) {
@ -173,12 +173,12 @@ void create_target_list(Actor* actor, s32 arg1) {
}
targetData->actorID = ACTOR_CLASS_ENEMY | i;
partIndex = partBlueprint->index;
partID = partBlueprint->index;
targetData->pos.x = f6;
targetData->pos.y = f8;
targetData->pos.z = f10;
targetData->unk_10 = 0;
targetData->partID = partIndex;
targetData->partID = partID;
if ((targetActor->flags & 0x4000) && !(targetActor->flags & 0x10)) {
targetData->unk_10 = 100;
@ -967,7 +967,7 @@ void func_80263CC4(s32 arg0) {
start_script(&D_80293820, 10, 0)->varTable[0] = arg0;
}
void set_animation(s32 actorID, s32 partIdx, s32 animationIndex) {
void set_animation(s32 actorID, s32 partID, s32 animationIndex) {
if (animationIndex >= 0) {
Actor* actor = get_actor(actorID);
ActorPart* part;
@ -981,8 +981,8 @@ void set_animation(s32 actorID, s32 partIdx, s32 animationIndex) {
}
break;
case ACTOR_CLASS_PARTNER:
if (partIdx != 0) {
part = get_actor_part(actor, partIdx);
if (partID != 0) {
part = get_actor_part(actor, partID);
if (part == NULL) {
part = &actor->partsTable[0];
@ -998,7 +998,7 @@ void set_animation(s32 actorID, s32 partIdx, s32 animationIndex) {
}
break;
case ACTOR_CLASS_ENEMY:
part = get_actor_part(actor, partIdx);
part = get_actor_part(actor, partID);
if (part->currentAnimation != animationIndex) {
part->currentAnimation = animationIndex;
spr_update_sprite(part->spriteInstanceID, animationIndex, part->animationRate);
@ -1030,14 +1030,14 @@ void func_80263E08(Actor* actor, ActorPart* part, s32 anim) {
}
}
void set_animation_rate(s32 actorID, s32 partIndex, f32 rate) {
void set_animation_rate(s32 actorID, s32 partID, f32 rate) {
Actor* actor = get_actor(actorID);
ActorPart* part;
switch (actorID & ACTOR_CLASS_MASK) {
case ACTOR_CLASS_PARTNER:
if (partIndex != 0) {
part = get_actor_part(actor, partIndex);
if (partID != 0) {
part = get_actor_part(actor, partID);
if (part != NULL) {
part->animationRate = rate;
return;
@ -1047,7 +1047,7 @@ void set_animation_rate(s32 actorID, s32 partIndex, f32 rate) {
break;
case ACTOR_CLASS_PLAYER:
case ACTOR_CLASS_ENEMY:
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
part->animationRate = rate;
break;
}
@ -1057,11 +1057,11 @@ void set_actor_yaw(s32 actorID, s32 yaw) {
get_actor(actorID)->yaw = yaw;
}
void set_part_yaw(s32 actorID, s32 partIndex, s32 value) {
get_actor_part(get_actor(actorID), partIndex)->yaw = value;
void set_part_yaw(s32 actorID, s32 partID, s32 value) {
get_actor_part(get_actor(actorID), partID)->yaw = value;
}
void set_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
void set_part_flag_bits(s32 actorID, s32 partID, s32 flags) {
Actor* actor = get_actor(actorID);
ActorPart* part;
@ -1071,17 +1071,17 @@ void set_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
break;
case ACTOR_CLASS_PARTNER:
case ACTOR_CLASS_ENEMY:
if (partIndex == 0) {
if (partID == 0) {
actor->flags |= flags;
} else {
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
part->flags |= flags;
}
break;
}
}
void clear_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
void clear_part_flag_bits(s32 actorID, s32 partID, s32 flags) {
Actor* actor = get_actor(actorID);
ActorPart* part;
@ -1091,10 +1091,10 @@ void clear_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
break;
case ACTOR_CLASS_PARTNER:
case ACTOR_CLASS_ENEMY:
if (partIndex == 0) {
if (partID == 0) {
actor->flags &= ~flags;
} else {
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
part->flags &= ~flags;
}
break;
@ -1153,15 +1153,15 @@ void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angl
}
}
ActorPart* get_actor_part(Actor* actor, s32 partIndex) {
ActorPart* get_actor_part(Actor* actor, s32 partID) {
ActorPart* part = &actor->partsTable[0];
if (partIndex < 0 || part->nextPart == NULL) {
if (partID < 0 || part->nextPart == NULL) {
return part;
}
while (part != NULL) {
if (part->staticData->index == partIndex) {
if (part->staticData->index == partID) {
return part;
}
part = part->nextPart;
@ -1809,8 +1809,8 @@ Actor* create_actor(Formation formation) {
part->targetOffset.x = actorPartBP->targetOffset.x;
part->targetOffset.y = actorPartBP->targetOffset.y;
part->unk_70 = 0;
part->unk_75 = actorPartBP->unk_1C;
part->unk_76 = actorPartBP->unk_1D;
part->projectileTargetOffset.x = actorPartBP->projectileTargetOffset.x;
part->projectileTargetOffset.y = actorPartBP->projectileTargetOffset.y;
part->rotation.x = 0.0f;
part->rotation.y = 0.0f;
part->rotation.z = 0.0f;
@ -2731,9 +2731,10 @@ void add_part_decoration(ActorPart* part, s32 decorationIndex, s32 decorationTyp
void add_actor_decoration(Actor* actor, s32 decorationIndex, s32 decorationType) {
ActorPart* part;
for (part = actor->partsTable; part != NULL; part = part->nextPart) {
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION)) && part->idleAnimations &&
!(part->flags & ACTOR_PART_FLAG_2))
{
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION))
&& part->idleAnimations
&& !(part->flags & ACTOR_PART_FLAG_2)
) {
add_part_decoration(part, decorationIndex, decorationType);
}
}
@ -2747,9 +2748,10 @@ void remove_actor_decoration(Actor* actor, s32 decorationIndex) {
ActorPart* part;
for (part = actor->partsTable; part != NULL; part = part->nextPart) {
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION)) && part->idleAnimations &&
!(part->flags & ACTOR_PART_FLAG_2))
{
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION))
&& part->idleAnimations
&& !(part->flags & ACTOR_PART_FLAG_2)
) {
remove_part_decoration(part, decorationIndex);
}
}
@ -2775,16 +2777,16 @@ s32 player_team_is_ability_active(Actor* actor, s32 ability) {
return hasAbility;
}
void create_part_shadow(s32 actorID, s32 partIndex) {
ActorPart* part = get_actor_part(get_actor(actorID), partIndex);
void create_part_shadow(s32 actorID, s32 partID) {
ActorPart* part = get_actor_part(get_actor(actorID), partID);
part->flags &= ~ACTOR_PART_FLAG_4;
part->shadowIndex = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
part->shadowScale = part->size.x / 24.0;
}
void remove_part_shadow(s32 actorID, s32 partIndex) {
ActorPart* part = get_actor_part(get_actor(actorID), partIndex);
void remove_part_shadow(s32 actorID, s32 partID) {
ActorPart* part = get_actor_part(get_actor(actorID), partID);
part->flags |= ACTOR_PART_FLAG_4;
delete_shadow(part->shadowIndex);

View File

@ -551,8 +551,10 @@ HitResult calc_player_damage_enemy(void) {
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE && battleStatus->currentAttackElement & DAMAGE_TYPE_BLAST &&
targetPart->eventFlags & ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION) {
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
&& battleStatus->currentAttackElement & DAMAGE_TYPE_BLAST
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION
) {
targetDefense = 0;
currentAttackDamage = target->currentHP;
}
@ -654,12 +656,12 @@ HitResult calc_player_damage_enemy(void) {
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR
&& rand_int(99) < (target->actorBlueprint->escapeChance * battleStatus->statusChance) / 100
&& !(target->debuff == STATUS_FEAR
|| target->debuff == STATUS_DIZZY
|| target->debuff == STATUS_PARALYZE
|| target->debuff == STATUS_SLEEP
|| target->debuff == STATUS_FROZEN
|| target->debuff == STATUS_STOP)
&& (target->debuff != STATUS_FEAR
&& target->debuff != STATUS_DIZZY
&& target->debuff != STATUS_PARALYZE
&& target->debuff != STATUS_SLEEP
&& target->debuff != STATUS_FROZEN
&& target->debuff != STATUS_STOP)
&& !(target->flags & ACTOR_FLAG_400)
) {
dispatch_event_actor(target, EVENT_SCARE_AWAY);
@ -721,65 +723,68 @@ HitResult calc_player_damage_enemy(void) {
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (!(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT) && targetPart->eventFlags & ACTOR_EVENT_FLAG_POWER_BOUNCE) {
if (dispatchEvent == EVENT_HIT_COMBO) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (dispatchEvent == EVENT_ZERO_DAMAGE) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (dispatchEvent == EVENT_DEATH) {
dispatchEvent = EVENT_POWER_BOUNCE_DEATH;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& !(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT)
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_POWER_BOUNCE
) {
if (dispatchEvent == EVENT_HIT_COMBO) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) && targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_ZERO_DAMAGE) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
tempBinary = TRUE;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_POWER_BOUNCE_HIT;
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) &&
targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (dispatchEvent == EVENT_DEATH) {
dispatchEvent = EVENT_POWER_BOUNCE_DEATH;
}
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& (battleStatus->currentAttackElement & (DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP))
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (!(target->flags & ACTOR_FLAG_400)) {
tempBinary = TRUE;
}
}
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER;
}
tempBinary = TRUE;
}
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& (battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP))
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (!(target->flags & ACTOR_FLAG_400)) {
tempBinary = TRUE;
}
}
}
if (!(gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) &&
battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) &&
targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) {
if (!(gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
&& battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP)
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE
) {
if (dispatchEvent == EVENT_HIT_COMBO) {
dispatchEvent = EVENT_FLIP_TRIGGER;
}
@ -793,70 +798,73 @@ HitResult calc_player_damage_enemy(void) {
}
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & DAMAGE_TYPE_SHELL_CRACK && targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_SHELL_CRACK_HIT;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_SHELL_CRACK_HIT;
}
tempBinary = TRUE;
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
&& battleStatus->currentAttackElement & DAMAGE_TYPE_SHELL_CRACK
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_SHELL_CRACK_HIT;
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_BLAST | DAMAGE_TYPE_FIRE)) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_BURN_HIT;
}
if (dispatchEvent == EVENT_DEATH) {
dispatchEvent = EVENT_BURN_DEATH;
}
isFireDamage = TRUE;
}
do { // TODO remove this do while
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE && battleStatus->lastAttackDamage >= 0 && dispatchEvent != EVENT_DEATH &&
dispatchEvent != EVENT_SPIN_SMASH_DEATH && dispatchEvent != EVENT_EXPLODE_TRIGGER) {
if (!(targetPart->targetFlags & ACTOR_PART_FLAG_4)) {
#define INFLICT_STATUS(STATUS_TYPE) \
if ((battleStatus->currentAttackStatus & STATUS_FLAG_##STATUS_TYPE) && \
try_inflict_status(target, STATUS_##STATUS_TYPE, STATUS_##STATUS_TYPE##_TURN_MOD)) { \
tempBinary = TRUE; \
wasStatusInflicted = TRUE; \
} \
INFLICT_STATUS(SHRINK);
INFLICT_STATUS(POISON);
INFLICT_STATUS(STONE);
INFLICT_STATUS(SLEEP);
INFLICT_STATUS(STOP);
INFLICT_STATUS(STATIC);
INFLICT_STATUS(FEAR);
INFLICT_STATUS(PARALYZE);
INFLICT_STATUS(DIZZY);
#undef INFLICT_STATUS
if (wasStatusInflicted) {
if (dispatchEvent == EVENT_ZERO_DAMAGE) {
dispatchEvent = EVENT_HIT_COMBO;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_HIT;
}
}
}
}
} while (0);
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_SHELL_CRACK_HIT;
}
tempBinary = TRUE;
}
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
&& (battleStatus->currentAttackElement & (DAMAGE_TYPE_BLAST | DAMAGE_TYPE_FIRE))
) {
if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_BURN_HIT;
}
if (dispatchEvent == EVENT_DEATH) {
dispatchEvent = EVENT_BURN_DEATH;
}
isFireDamage = TRUE;
}
do { // TODO remove this do while
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
&& battleStatus->lastAttackDamage >= 0
&& dispatchEvent != EVENT_DEATH
&& dispatchEvent != EVENT_SPIN_SMASH_DEATH
&& dispatchEvent != EVENT_EXPLODE_TRIGGER
&& !(targetPart->targetFlags & ACTOR_PART_FLAG_4)
) {
#define INFLICT_STATUS(STATUS_TYPE) \
if ((battleStatus->currentAttackStatus & STATUS_FLAG_##STATUS_TYPE) && \
try_inflict_status(target, STATUS_##STATUS_TYPE, STATUS_##STATUS_TYPE##_TURN_MOD)) { \
tempBinary = TRUE; \
wasStatusInflicted = TRUE; \
} \
INFLICT_STATUS(SHRINK);
INFLICT_STATUS(POISON);
INFLICT_STATUS(STONE);
INFLICT_STATUS(SLEEP);
INFLICT_STATUS(STOP);
INFLICT_STATUS(STATIC);
INFLICT_STATUS(FEAR);
INFLICT_STATUS(PARALYZE);
INFLICT_STATUS(DIZZY);
#undef INFLICT_STATUS
if (wasStatusInflicted) {
if (dispatchEvent == EVENT_ZERO_DAMAGE) {
dispatchEvent = EVENT_HIT_COMBO;
}
if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_HIT;
}
}
}
} while (0);
battleStatus->wasStatusInflicted = wasStatusInflicted;
dispatch_event_actor(target, dispatchEvent);

View File

@ -1736,7 +1736,7 @@ ApiStatus JumpPartTo(Evt* script, s32 isInitialCall) {
Actor* actor;
ActorPart* part;
ActorPartMovement* movement;
s32 actorID, partIndex;
s32 actorID, partID;
f32 posX, posY, posZ;
f32 goalX, goalY, goalZ;
f32 deltaDist;
@ -1750,10 +1750,10 @@ ApiStatus JumpPartTo(Evt* script, s32 isInitialCall) {
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
script->functionTempPtr[1] = actor;
script->functionTempPtr[2] = part;
movement = part->movement;
@ -1830,7 +1830,7 @@ ApiStatus FallPartTo(Evt* script, s32 isInitialCall) {
Actor* actor;
ActorPart* part;
ActorPartMovement* movement;
s32 actorID, partIndex;
s32 actorID, partID;
f32 posX, posY, posZ;
f32 goalX, goalY, goalZ;
@ -1843,10 +1843,10 @@ ApiStatus FallPartTo(Evt* script, s32 isInitialCall) {
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
script->functionTempPtr[1] = actor;
script->functionTempPtr[2] = part;
movement = part->movement;
@ -1926,14 +1926,14 @@ ApiStatus LandJumpPart(Evt* script, s32 isInitialCall) {
if (script->functionTemp[0] == 0) {
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++);
s32 partID = evt_get_variable(script, *args++);
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
script->functionTempPtr[1] = actor;
script->functionTempPtr[2] = part;
movement = part->movement;
@ -1966,7 +1966,7 @@ ApiStatus RunPartTo(Evt* script, s32 isInitialCall) {
Actor* actor;
ActorPart* part;
ActorPartMovement* movement;
s32 actorID, partIndex;
s32 actorID, partID;
f32 posX, posY, posZ;
f32 goalX, goalY, goalZ;
f32 deltaDist;
@ -1980,10 +1980,10 @@ ApiStatus RunPartTo(Evt* script, s32 isInitialCall) {
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
script->functionTempPtr[1] = actor;
script->functionTempPtr[2] = part;
movement = part->movement;
@ -2353,7 +2353,7 @@ ApiStatus FlyPartTo(Evt* script, s32 isInitialCall) {
ActorPart* part;
ActorPartMovement* partMovement;
s32 actorID;
s32 partIndex;
s32 partID;
f32 posX, posY, posZ;
f32 goalX, goalY, goalZ;
@ -2366,10 +2366,10 @@ ApiStatus FlyPartTo(Evt* script, s32 isInitialCall) {
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
actor = get_actor(actorID);
part = get_actor_part(actor, partIndex);
part = get_actor_part(actor, partID);
script->functionTempPtr[1] = actor;
script->functionTempPtr[2] = part;
partMovement = part->movement;
@ -2695,16 +2695,16 @@ ApiStatus DropStarPoints(Evt* script, s32 isInitialCall) {
ApiStatus SetDefenseTable(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIdx;
s32 partID;
u32* table;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIdx = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
table = (u32*) evt_get_variable(script, *args++);
get_actor_part(get_actor(actorID), partIdx)->defenseTable = table;
get_actor_part(get_actor(actorID), partID)->defenseTable = table;
return ApiStatus_DONE2;
}
@ -2725,35 +2725,35 @@ ApiStatus SetStatusTable(Evt* script, s32 isInitialCall) {
ApiStatus SetIdleAnimations(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIdx;
u32* var2;
s32 partID;
AnimID* idleAnims;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIdx = evt_get_variable(script, *args++);
var2 = (u32*) evt_get_variable(script, *args++);
get_actor_part(get_actor(actorID), partIdx)->idleAnimations = var2;
partID = evt_get_variable(script, *args++);
idleAnims = (u32*) evt_get_variable(script, *args++);
get_actor_part(get_actor(actorID), partID)->idleAnimations = idleAnims;
return ApiStatus_DONE2;
}
ApiStatus func_8027CC10(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex;
s32 partID;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
partID = evt_get_variable(script, *args++);
// weirdly unused
evt_get_variable(script, *args++);
evt_get_variable(script, *args++);
get_actor_part(get_actor(actorID), partIndex);
get_actor_part(get_actor(actorID), partID);
return ApiStatus_DONE2;
}
@ -2997,7 +2997,7 @@ ApiStatus func_8027D32C(Evt* script, s32 isInitialCall) {
ApiStatus SetTargetOffset(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex;
s32 partID;
ActorPart* part;
s32 x;
s32 y;
@ -3006,8 +3006,8 @@ ApiStatus SetTargetOffset(Evt* script, s32 isInitialCall) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partIndex);
partID = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partID);
x = evt_get_variable(script, *args++);
y = evt_get_variable(script, *args++);
@ -3021,39 +3021,39 @@ ApiStatus SetTargetOffset(Evt* script, s32 isInitialCall) {
ApiStatus func_8027D434(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex;
s32 partID;
ActorPart* part;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partIndex);
partID = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partID);
part->unk_70 = evt_get_variable(script, *args++);
return ApiStatus_DONE2;
}
ApiStatus func_8027D4C8(Evt* script, s32 isInitialCall) {
ApiStatus SetProjectileTargetOffset(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex;
s32 partID;
ActorPart* part;
s32 temp;
s32 temp2;
s32 dx;
s32 dy;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
partIndex = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partIndex);
partID = evt_get_variable(script, *args++);
part = get_actor_part(get_actor(actorID), partID);
temp = evt_get_variable(script, *args++);
temp2 = evt_get_variable(script, *args++);
dx = evt_get_variable(script, *args++);
dy = evt_get_variable(script, *args++);
part->unk_75 = temp;
part->unk_76 = temp2;
part->projectileTargetOffset.x = dx;
part->projectileTargetOffset.y = dy;
return ApiStatus_DONE2;
}
@ -3197,7 +3197,7 @@ ApiStatus GetActorSize(Evt* script, s32 isInitialCall) {
ApiStatus SetPartSize(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++);
s32 partID = evt_get_variable(script, *args++);
s32 sizeY = evt_get_variable(script, *args++);
s32 sizeX = evt_get_variable(script, *args++);
ActorPart* part;
@ -3206,7 +3206,7 @@ ApiStatus SetPartSize(Evt* script, s32 isInitialCall) {
actorID = script->owner1.actorID;
}
part = get_actor_part(get_actor(actorID), partIndex);
part = get_actor_part(get_actor(actorID), partID);
if (sizeY != EVT_IGNORE_ARG) {
part->size.y = sizeY;
@ -3280,7 +3280,7 @@ ApiStatus EnableActorGlow(Evt* script, s32 isInitialCall) {
while (it != NULL) {
if (it->idleAnimations != NULL) {
func_802DE894(it->spriteInstanceID, 0, 0, 0, 0, 0, 0);
func_802DE894(it->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, 0);
}
it = it->nextPart;
}

View File

@ -134,10 +134,10 @@ HitResult calc_partner_test_enemy(void) {
}
// check partner airlifting electrified enemy
if (partner->staticStatus != STATUS_STATIC &&
(target->staticStatus == STATUS_STATIC || (part->eventFlags & ACTOR_EVENT_FLAG_ELECTRIFIED)) &&
!(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT) &&
!(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_SHOCK_CONTACT))
if (partner->staticStatus != STATUS_STATIC
&& (target->staticStatus == STATUS_STATIC || (part->eventFlags & ACTOR_EVENT_FLAG_ELECTRIFIED))
&& !(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT)
&& !(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_SHOCK_CONTACT))
{
sfx_play_sound_at_position(SOUND_HIT_SHOCK, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
apply_shock_effect(partner);
@ -146,9 +146,9 @@ HitResult calc_partner_test_enemy(void) {
}
// check partner airlifting fiery enemy
if (!(battleStatus->currentAttackElement & (DAMAGE_TYPE_NO_CONTACT | DAMAGE_TYPE_SMASH)) &&
(part->eventFlags & ACTOR_EVENT_FLAG_FIREY) &&
!(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_BURN_CONTACT))
if (!(battleStatus->currentAttackElement & (DAMAGE_TYPE_NO_CONTACT | DAMAGE_TYPE_SMASH))
&& (part->eventFlags & ACTOR_EVENT_FLAG_FIREY)
&& !(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_BURN_CONTACT))
{
sfx_play_sound_at_position(SOUND_HIT_FIRE, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z);
dispatch_damage_event_partner_1(1, EVENT_BURN_CONTACT);
@ -752,8 +752,11 @@ HitResult calc_partner_damage_enemy(void) {
}
}
if (tempBinary && gBattleStatus.flags1 & (BS_FLAGS1_200 | BS_FLAGS1_40) || gBattleStatus.flags1 & (BS_FLAGS1_200 | BS_FLAGS1_40) &&
!(gBattleStatus.flags1 & BS_FLAGS1_80)) {
if (tempBinary
&& gBattleStatus.flags1 & (BS_FLAGS1_200 | BS_FLAGS1_40)
|| gBattleStatus.flags1 & (BS_FLAGS1_200 | BS_FLAGS1_40)
&& !(gBattleStatus.flags1 & BS_FLAGS1_80)
) {
if ((battleStatus->lastAttackDamage > 0 &&
((sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y,
state->goalPos.z), //TODO remove sfx_play from conditional

View File

@ -1,130 +0,0 @@
#include "common.h"
#include "ld_addrs.h"
#include "sprite/npc/WorldGoombario.h"
#include "sprite/npc/BattleGoombario.h"
#include "sprite/npc/BattleKooper.h"
#include "sprite/npc/BattleBombette.h"
#include "sprite/npc/BattleParakarry.h"
#include "sprite/npc/BattleWatt.h"
#include "sprite/npc/BattleSushie.h"
#include "sprite/npc/BattleLakilester.h"
#include "sprite/npc/BattleBow.h"
typedef struct StarPowerEntry {
/* 0x04 */ void* dmaStart;
/* 0x08 */ void* dmaEnd;
/* 0x0C */ void* dmaDest;
/* 0x10 */ Bytecode* init;
} StarPowerEntry; // size = 0x14
extern EvtScript battle_star_focus_usePower;
extern EvtScript battle_star_refresh_usePower;
extern EvtScript battle_star_lullaby_usePower;
extern EvtScript battle_star_star_storm_usePower;
extern EvtScript battle_star_chill_out_usePower;
extern EvtScript battle_star_smooch_usePower;
extern EvtScript battle_star_time_out_usePower;
extern EvtScript battle_star_up_and_away_usePower;
extern EvtScript battle_star_star_beam_usePower;
extern EvtScript battle_star_peach_beam_usePower;
extern EvtScript battle_star_peach_focus_usePower;
extern EvtScript battle_star_peach_dash_usePower;
StarPowerEntry D_8029C7D0[] = {
{ battle_star_focus_ROM_START, battle_star_focus_ROM_END, battle_star_focus_VRAM, battle_star_focus_usePower, },
{ battle_star_refresh_ROM_START, battle_star_refresh_ROM_END, battle_star_refresh_VRAM, battle_star_refresh_usePower, },
{ battle_star_lullaby_ROM_START, battle_star_lullaby_ROM_END, battle_star_lullaby_VRAM, battle_star_lullaby_usePower, },
{ battle_star_star_storm_ROM_START, battle_star_star_storm_ROM_END, battle_star_star_storm_VRAM, battle_star_star_storm_usePower, },
{ battle_star_chill_out_ROM_START, battle_star_chill_out_ROM_END, battle_star_chill_out_VRAM, battle_star_chill_out_usePower, },
{ battle_star_smooch_ROM_START, battle_star_smooch_ROM_END, battle_star_smooch_VRAM, battle_star_smooch_usePower, },
{ battle_star_time_out_ROM_START, battle_star_time_out_ROM_END, battle_star_time_out_VRAM, battle_star_time_out_usePower, },
{ battle_star_up_and_away_ROM_START, battle_star_up_and_away_ROM_END, battle_star_up_and_away_VRAM, battle_star_up_and_away_usePower, },
{ battle_star_star_beam_ROM_START, battle_star_star_beam_ROM_END, battle_star_star_beam_VRAM, battle_star_star_beam_usePower, },
{ battle_star_peach_beam_ROM_START, battle_star_peach_beam_ROM_END, battle_star_peach_beam_VRAM, battle_star_peach_beam_usePower, },
{ battle_star_peach_focus_ROM_START, battle_star_peach_focus_ROM_END, battle_star_peach_focus_VRAM, battle_star_peach_focus_usePower, },
{ battle_star_peach_dash_ROM_START, battle_star_peach_dash_ROM_END, battle_star_peach_dash_VRAM, battle_star_peach_dash_usePower, },
};
s32 D_8029C890[][5] = {
[PARTNER_NONE] {
ANIM_Mario_GotItem,
ANIM_Mario_AnimPray,
ANIM_Mario_1002A,
ANIM_Mario_Running,
0,
},
[PARTNER_GOOMBARIO] {
ANIM_BattleGoombario_Run,
ANIM_BattleGoombario_CloseEyes,
ANIM_BattleGoombario_CloseEyes,
ANIM_BattleGoombario_Run,
ANIM_BattleGoombario_Idle,
},
[PARTNER_KOOPER] {
ANIM_BattleKooper_Run,
ANIM_BattleKooper_Pray,
ANIM_BattleKooper_Pray,
ANIM_BattleKooper_Run,
ANIM_BattleKooper_Idle,
},
[PARTNER_BOMBETTE] {
ANIM_BattleBombette_Run,
ANIM_BattleBombette_Sleep,
ANIM_BattleBombette_Sleep,
ANIM_BattleBombette_Run,
ANIM_BattleBombette_Idle,
},
[PARTNER_PARAKARRY] {
ANIM_BattleParakarry_Run,
ANIM_BattleParakarry_Pray,
ANIM_BattleParakarry_Pray,
ANIM_BattleParakarry_Run,
ANIM_BattleParakarry_Idle,
},
[PARTNER_GOOMPA] {
// no data
},
[PARTNER_WATT] {
ANIM_BattleWatt_Run,
ANIM_BattleWatt_Sleep,
ANIM_BattleWatt_Sleep,
ANIM_BattleWatt_Run,
ANIM_BattleParakarry_Idle, // @bug uses wrong sprite!
},
[PARTNER_SUSHIE] {
ANIM_BattleSushie_Run,
ANIM_BattleSushie_Pray,
ANIM_BattleSushie_Pray,
ANIM_BattleSushie_Run,
ANIM_BattleSushie_Idle,
},
[PARTNER_LAKILESTER] {
ANIM_BattleLakilester_Run,
ANIM_BattleLakilester_Pray,
ANIM_BattleLakilester_Pray,
ANIM_BattleLakilester_Run,
ANIM_BattleLakilester_Idle,
},
[PARTNER_BOW] {
ANIM_BattleBow_Run,
ANIM_BattleBow_Pray,
ANIM_BattleBow_Pray,
ANIM_BattleBow_Run,
ANIM_BattleBow_Idle,
},
};
ApiStatus LoadStarPowerScript(Evt* script, s32 isInitialCall) {
BattleStatus* battleStatus = &gBattleStatus;
PlayerData* playerData = &gPlayerData;
s16 starPowerIdx;
playerData->specialBarsFilled -= gMoveTable[battleStatus->selectedMoveID].costFP * 256;
starPowerIdx = battleStatus->moveArgument;
dma_copy((&D_8029C7D0[starPowerIdx])->dmaStart, (&D_8029C7D0[starPowerIdx])->dmaEnd,
(&D_8029C7D0[starPowerIdx])->dmaDest);
script->varTable[0] = (s32) (&D_8029C7D0[starPowerIdx])->init;
return ApiStatus_DONE2;
}
MATCHING_BSS(0x1390);

View File

@ -5157,7 +5157,7 @@ void btl_state_draw_select_target(void) {
} else {
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
anotherActor = get_actor(target->actorID);
msgID = get_actor_part(anotherActor, target->partID)->staticData->unk_20;
msgID = get_actor_part(anotherActor, target->partID)->staticData->overrideNameMsg;
if (msgID == MSG_NONE) {
msgID = bActorNames[anotherActor->actorType];
}
@ -5189,7 +5189,7 @@ void btl_state_draw_select_target(void) {
} else {
target = &actor->targetData[targetIndexList[selectedTargetIndex]];
anotherActor = get_actor(target->actorID);
msgID = get_actor_part(anotherActor, target->partID)->staticData->unk_20;
msgID = get_actor_part(anotherActor, target->partID)->staticData->overrideNameMsg;
if (msgID == MSG_NONE) {
msgID = bActorNames[anotherActor->actorType];
}

View File

@ -686,18 +686,17 @@ void check_input_use_partner(void) {
PlayerData* playerData = &gPlayerData;
u32 actionState = playerStatus->actionState;
if (!(playerStatus->animFlags & PA_FLAG_8BIT_MARIO)) {
if (playerStatus->animFlags & PA_FLAG_FORCE_USE_PARTNER || playerStatus->inputEnabledCounter == 0) {
if (playerStatus->pressedButtons & BUTTON_C_DOWN && !(playerStatus->flags & PS_FLAG_NO_PARTNER_USAGE) &&
!(playerStatus->pressedButtons & BUTTON_B) && !(playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS) &&
actionState <= ACTION_STATE_RUN) {
if (playerData->currentPartner == PARTNER_GOOMBARIO) {
GoombarioGetTattleID = playerStatus->interactingWithID;
}
partner_use_ability();
}
if (!(playerStatus->animFlags & PA_FLAG_8BIT_MARIO)
&& (playerStatus->animFlags & PA_FLAG_FORCE_USE_PARTNER || playerStatus->inputEnabledCounter == 0)
&& (playerStatus->pressedButtons & BUTTON_C_DOWN && !(playerStatus->flags & PS_FLAG_NO_PARTNER_USAGE))
&& !(playerStatus->pressedButtons & BUTTON_B)
&& !(playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS)
&& actionState <= ACTION_STATE_RUN
) {
if (playerData->currentPartner == PARTNER_GOOMBARIO) {
GoombarioGetTattleID = playerStatus->interactingWithID;
}
partner_use_ability();
}
}

View File

@ -90,10 +90,10 @@ s32 collision_main_above(void) {
collisionStatus->currentCeiling = hitResult;
if (hitResult >= 0) {
if (playerStatus->actionState != ACTION_STATE_FALLING &&
playerStatus->actionState != ACTION_STATE_STEP_DOWN &&
collisionStatus->currentFloor < 0)
{
if (playerStatus->actionState != ACTION_STATE_FALLING
&& playerStatus->actionState != ACTION_STATE_STEP_DOWN
&& collisionStatus->currentFloor < 0
) {
if (sp2C <= fabsf(new_var + playerStatus->gravityIntegrator[0])) {
do {
if ((hitResult & COLLISION_WITH_ENTITY_BIT) && get_entity_type(hitResult) == ENTITY_TYPE_BRICK_BLOCK) {
@ -102,9 +102,9 @@ s32 collision_main_above(void) {
} while (0);
playerStatus->position.y = y - ((playerStatus->colliderHeight / 5.0f) * 3.0f);
if (playerStatus->actionState != ACTION_STATE_TORNADO_JUMP &&
playerStatus->actionState != ACTION_STATE_SPIN_JUMP)
{
if (playerStatus->actionState != ACTION_STATE_TORNADO_JUMP
&& playerStatus->actionState != ACTION_STATE_SPIN_JUMP
) {
playerStatus->gravityIntegrator[0] = 0.0f;
playerStatus->gravityIntegrator[1] = 0.0f;
playerStatus->gravityIntegrator[2] = 0.0f;
@ -323,9 +323,9 @@ void gravity_use_fall_parms(void) {
}
void phys_update_falling(void) {
if (gPlayerStatus.actionState != ACTION_STATE_LANDING_ON_SWITCH &&
gPlayerStatus.actionState != ACTION_STATE_BOUNCE)
{
if (gPlayerStatus.actionState != ACTION_STATE_LANDING_ON_SWITCH
&& gPlayerStatus.actionState != ACTION_STATE_BOUNCE
) {
s32 colliderID;
gPlayerStatus.position.y = player_check_collision_below(player_fall_distance(), &colliderID);
player_handle_floor_collider_type(colliderID);
@ -401,11 +401,11 @@ void phys_player_land(void) {
Entity* entity = get_entity_by_index(collisionStatus->currentFloor);
entity->collisionFlags |= ENTITY_COLLISION_PLAYER_TOUCH_FLOOR;
if (playerStatus->actionState != ACTION_STATE_TORNADO_JUMP &&
playerStatus->actionState != ACTION_STATE_TORNADO_POUND &&
playerStatus->actionState != ACTION_STATE_SPIN_JUMP &&
playerStatus->actionState != ACTION_STATE_SPIN_POUND)
{
if (playerStatus->actionState != ACTION_STATE_TORNADO_JUMP
&& playerStatus->actionState != ACTION_STATE_TORNADO_POUND
&& playerStatus->actionState != ACTION_STATE_SPIN_JUMP
&& playerStatus->actionState != ACTION_STATE_SPIN_POUND
) {
set_action_state(ACTION_STATE_LANDING_ON_SWITCH);
} else {
disable_player_input();
@ -971,9 +971,9 @@ void phys_main_collision_below(void) {
}
break;
}
} else if (!(playerStatus->flags & PS_FLAG_FLYING) &&
playerStatus->actionState != ACTION_STATE_USE_SPINNING_FLOWER)
{
} else if (!(playerStatus->flags & PS_FLAG_FLYING)
&& playerStatus->actionState != ACTION_STATE_USE_SPINNING_FLOWER
) {
if (outLength <= collHeightHalf + temp_f24 && hitDirX == 0.0f && hitDirZ == 0.0f) {
set_action_state(ACTION_STATE_STEP_DOWN);
} else {
@ -1076,22 +1076,22 @@ void collision_lateral_peach(void) {
playerStatus->position.z = z;
// If there was a climbable step in this direction, but no wall, we can climb up it
if (climbableStep &&
wall < 0 &&
playerStatus->actionState != ACTION_STATE_STEP_UP_PEACH &&
playerStatus->currentSpeed != 0.0f)
{
if (climbableStep
&& wall < 0
&& playerStatus->actionState != ACTION_STATE_STEP_UP_PEACH
&& playerStatus->currentSpeed != 0.0f
) {
set_action_state(ACTION_STATE_STEP_UP_PEACH);
}
}
void check_input_midair_jump(void) {
if (!(gPlayerStatus.flags & (PS_FLAG_SCRIPTED_FALL | PS_FLAG_SLIDING | PS_FLAG_FLYING)) &&
!(gPlayerStatus.animFlags & (PA_FLAG_8BIT_MARIO | PA_FLAG_USING_WATT)) &&
gPlayerStatus.peakJumpTime >= 6 &&
gPlayerStatus.timeInAir < 18 &&
gPlayerStatus.pressedButtons & BUTTON_A) {
if (!(gPlayerStatus.flags & (PS_FLAG_SCRIPTED_FALL | PS_FLAG_SLIDING | PS_FLAG_FLYING))
&& !(gPlayerStatus.animFlags & (PA_FLAG_8BIT_MARIO | PA_FLAG_USING_WATT))
&& gPlayerStatus.peakJumpTime >= 6
&& gPlayerStatus.timeInAir < 18
&& gPlayerStatus.pressedButtons & BUTTON_A
) {
switch (gPlayerData.bootsLevel) {
case 0:
break;

View File

@ -72,14 +72,14 @@ s32 can_pause(s32 currentButtons, s32 pressedButtons) {
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
s32 actionState = gPlayerStatus.actionState;
if (!(gPlayerStatus.animFlags & PA_FLAG_CHANGING_MAP) &&
!(gPlayerStatus.flags & PS_FLAG_PAUSE_DISABLED) &&
!(currentButtons & (BUTTON_Z | BUTTON_R)) &&
(pressedButtons & (BUTTON_START | BUTTON_C_LEFT | BUTTON_C_RIGHT)) &&
((gGameStatusPtr->mapShop == NULL) || !(gGameStatusPtr->mapShop->flags & 1)) &&
!(gOverrideFlags & GLOBAL_OVERRIDES_DISABLE_MENUS) &&
!is_picking_up_item())
{
if (!(gPlayerStatus.animFlags & PA_FLAG_CHANGING_MAP)
&& !(gPlayerStatus.flags & PS_FLAG_PAUSE_DISABLED)
&& !(currentButtons & (BUTTON_Z | BUTTON_R))
&& (pressedButtons & (BUTTON_START | BUTTON_C_LEFT | BUTTON_C_RIGHT))
&& ((gGameStatusPtr->mapShop == NULL) || !(gGameStatusPtr->mapShop->flags & SHOP_FLAG_1))
&& !(gOverrideFlags & GLOBAL_OVERRIDES_DISABLE_MENUS)
&& !is_picking_up_item()
) {
if (!(gPlayerStatus.animFlags & PA_FLAG_8BIT_MARIO)) {
if (partnerActionStatus->partnerActionState == PARTNER_ACTION_NONE) {
if (!(gPlayerStatus.flags & PS_FLAG_NO_STATIC_COLLISION)) {

File diff suppressed because it is too large Load Diff

View File

@ -90,7 +90,7 @@ BSS s32 D_8029FBD8_pad[2];
BSS ActionCommandStatus gActionCommandStatus;
ApiStatus LoadActionCommand(Evt* script, s32 isInitialCall) {
API_CALLABLE(LoadActionCommand) {
Bytecode* args = script->ptrReadPos;
s32 cmd = evt_get_variable(script, *args++);
@ -660,12 +660,12 @@ void func_80269160(void) {
}
}
ApiStatus SetActionDifficultyTable(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetActionDifficultyTable) {
gBattleStatus.actionCmdDifficultyTable = (s32*) evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus SetupMashMeter(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetupMashMeter) {
Bytecode* args = script->ptrReadPos;
gActionCommandStatus.mashMeterIntervals = evt_get_variable(script, *args++);
gActionCommandStatus.mashMeterCutoffs[1] = evt_get_variable(script, *args++);
@ -677,37 +677,37 @@ ApiStatus SetupMashMeter(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus GetActionSuccess(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetActionSuccess) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2;
}
ApiStatus SetActionSuccess(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetActionSuccess) {
gBattleStatus.actionSuccess = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus SetActionCommandMode(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetActionCommandMode) {
gBattleStatus.actionCommandMode = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus GetActionCommandMode(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetActionCommandMode) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionCommandMode);
return ApiStatus_DONE2;
}
ApiStatus SetActionHudPrepareTime(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetActionHudPrepareTime) {
gActionCommandStatus.hudPrepareTime = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus GetCommandAutoSuccess(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetCommandAutoSuccess) {
evt_set_variable(script, *script->ptrReadPos, gActionCommandStatus.autoSucceed);
return ApiStatus_DONE2;
}
ApiStatus SetCommandAutoSuccess(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetCommandAutoSuccess) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (evt_get_variable(script, *script->ptrReadPos) != 0) {
@ -718,12 +718,12 @@ ApiStatus SetCommandAutoSuccess(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_802693F0(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_802693F0) {
gBattleStatus.flags1 &= ~BS_FLAGS1_4000;
return ApiStatus_DONE2;
}
ApiStatus CloseActionCommandInfo(Evt* script, s32 isInitialCall) {
API_CALLABLE(CloseActionCommandInfo) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (isInitialCall) {
@ -743,7 +743,7 @@ ApiStatus CloseActionCommandInfo(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_80269470(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_80269470) {
if (isInitialCall) {
action_command_free();
return ApiStatus_BLOCK;
@ -753,7 +753,7 @@ ApiStatus func_80269470(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus ShowActionHud(Evt* script, s32 isInitialCall) {
API_CALLABLE(ShowActionHud) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (evt_get_variable(script, *script->ptrReadPos) == 0) {
@ -764,42 +764,42 @@ ApiStatus ShowActionHud(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus GetActionSuccessCopy(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetActionSuccessCopy) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2;
}
ApiStatus func_80269524(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_80269524) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_86);
return ApiStatus_DONE2;
}
ApiStatus func_80269550(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_80269550) {
gBattleStatus.unk_86 = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus GetBlockResult(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetBlockResult) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.blockResult);
return ApiStatus_DONE2;
}
ApiStatus GetActionResult(Evt* script, s32 isInitialCall) {
API_CALLABLE(GetActionResult) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionResult);
return ApiStatus_DONE2;
}
ApiStatus SetActionResult(Evt* script, s32 isInitialCall) {
API_CALLABLE(SetActionResult) {
gBattleStatus.actionResult = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus func_80269600(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_80269600) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_85);
return ApiStatus_DONE2;
}
ApiStatus func_8026962C(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_8026962C) {
gBattleStatus.unk_85 = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}

View File

@ -9,7 +9,7 @@ BSS s32 D_802A9620;
extern s32 actionCmdTable07[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
@ -57,7 +57,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_07_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_07_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_07_init);
API_CALLABLE(action_command_07_start);
void action_command_07_update(void);
void action_command_07_draw(void);
void action_command_07_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTable0A[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_0A_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_0A_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_0A_init);
API_CALLABLE(action_command_0A_start);
void action_command_0A_update(void);
void action_command_0A_draw(void);
void action_command_0A_free(void);

View File

@ -10,7 +10,7 @@ BSS s32 air_lift_bss_0;
extern s32 actionCmdTableAirLift[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
s32 *args = script->ptrReadPos;
BattleStatus* battleStatus = &gBattleStatus;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
@ -56,7 +56,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_air_lift_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_air_lift_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_air_lift_init);
API_CALLABLE(action_command_air_lift_start);
void action_command_air_lift_update(void);
void action_command_air_lift_draw(void);
void action_command_air_lift_free(void);

View File

@ -11,7 +11,7 @@ s32 D_802A99A8_429CC8[] = { 35, 35, 60, 80, 99, 200, };
extern s32 actionCmdTableAirRaid[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_air_raid_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_air_raid_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_air_raid_init);
API_CALLABLE(action_command_air_raid_start);
void action_command_air_raid_update(void);
void action_command_air_raid_draw(void);
void action_command_air_raid_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTableBodySlam[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_body_slam_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_body_slam_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_body_slam_init);
API_CALLABLE(action_command_body_slam_start);
void action_command_body_slam_update(void);
void action_command_body_slam_draw(void);
void action_command_body_slam_free(void);

View File

@ -7,7 +7,7 @@ s32 D_802A9810_428280[] = { 0, 25, 50, 75, 75, 0, 0, 0 };
extern s32 actionCmdTableBomb[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_bomb_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_bomb_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_bomb_init);
API_CALLABLE(action_command_bomb_start);
void action_command_bomb_update(void);
void action_command_bomb_draw(void);
void action_command_bomb_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTableBreakFree[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -58,7 +58,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_break_free_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_break_free_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_break_free_init);
API_CALLABLE(action_command_break_free_start);
void action_command_break_free_update(void);
void action_command_break_free_draw(void);
void action_command_break_free_free(void);

View File

@ -1,4 +1,4 @@
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
u8 mashMeterCutoff;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;

View File

@ -8,7 +8,7 @@ s32 D_802A9800_426970[8] = { 0, 25, 50, 75, 75, 0, 0, 0 };
extern s32 actionCmdTableDizzyShell[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_dizzy_shell_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_dizzy_shell_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_dizzy_shell_init);
API_CALLABLE(action_command_dizzy_shell_start);
void action_command_dizzy_shell_update(void);
void action_command_dizzy_shell_draw(void);
void action_command_dizzy_shell_free(void);

View File

@ -11,7 +11,7 @@ s32 D_802A9988_427358[6] = { 35, 35, 60, 80, 99, 200 };
extern s32 actionCmdTableFireShell[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_fire_shell_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_fire_shell_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_fire_shell_init);
API_CALLABLE(action_command_fire_shell_start);
void action_command_fire_shell_update(void);
void action_command_fire_shell_draw(void);
void action_command_fire_shell_free(void);

View File

@ -7,7 +7,7 @@ BSS s32 D_802A9920;
extern s32 actionCmdTableFlee[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
@ -70,7 +70,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
Bytecode* args = script->ptrReadPos;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_flee_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_flee_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_flee_init);
API_CALLABLE(action_command_flee_start);
void action_command_flee_update(void);
void action_command_flee_draw(void);
void action_command_flee_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTableHammer[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -73,7 +73,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_hammer_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_hammer_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_hammer_init);
API_CALLABLE(action_command_hammer_start);
void action_command_hammer_update(void);
void action_command_hammer_draw(void);
void action_command_hammer_free(void);

View File

@ -7,7 +7,7 @@ s32 D_802A98E0_42FFC0[8] = { 0, 25, 50, 75, 75, 0, 0, 0 };
extern s32 actionCmdTableHurricane[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -58,7 +58,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_hurricane_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_hurricane_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_hurricane_init);
API_CALLABLE(action_command_hurricane_start);
void action_command_hurricane_update(void);
void action_command_hurricane_draw(void);
void action_command_hurricane_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTableJump[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
s32 hudElement;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
@ -42,7 +42,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
s32 hudElement;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_jump_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_jump_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_jump_init);
API_CALLABLE(action_command_jump_start);
void action_command_jump_update(void);
void action_command_jump_draw(void);
void action_command_jump_free(void);

View File

@ -8,7 +8,7 @@ s32 D_802A9930_42E340[] = { 0, 25, 50, 75, 75, 0, 0, 0 };
extern s32 actionCmdTableMegaShock[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
BattleStatus* battleStatus = &gBattleStatus;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
s32 elementID;
@ -58,7 +58,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
Bytecode* readPos = script->ptrReadPos;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_mega_shock_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_mega_shock_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_mega_shock_init);
API_CALLABLE(action_command_mega_shock_start);
void action_command_mega_shock_update(void);
void action_command_mega_shock_draw(void);
void action_command_mega_shock_free(void);

View File

@ -9,7 +9,7 @@ BSS s32 D_802A9B00;
extern s32 actionCmdTablePowerShock[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -68,7 +68,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_power_shock_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_power_shock_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_power_shock_init);
API_CALLABLE(action_command_power_shock_start);
void action_command_power_shock_update(void);
void action_command_power_shock_draw(void);
void action_command_power_shock_free(void);

View File

@ -35,7 +35,7 @@ s32 D_802A9A20_42EDC0[] = {
extern s32 actionCmdTableSmack[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_smack_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_smack_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_smack_init);
API_CALLABLE(action_command_smack_start);
void action_command_smack_update(void);
void action_command_smack_draw(void);
void action_command_smack_free(void);

View File

@ -9,7 +9,7 @@ BSS s32 D_802A98C0;
extern s32 actionCmdTableSpinySurge[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -57,7 +57,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_spiny_surge_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_spiny_surge_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_spiny_surge_init);
API_CALLABLE(action_command_spiny_surge_start);
void action_command_spiny_surge_update(void);
void action_command_spiny_surge_draw(void);
void action_command_spiny_surge_free(void);

View File

@ -8,7 +8,7 @@ s32 D_802A9920_430940[8] = { 0, 25, 50, 75, 75, 0, 0, 0 };
extern s32 actionCmdTableSpook[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_spook_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_spook_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_spook_init);
API_CALLABLE(action_command_spook_start);
void action_command_spook_update(void);
void action_command_spook_draw(void);
void action_command_spook_free(void);

View File

@ -8,7 +8,7 @@ s32 D_802A9778_42A498[] = { 300, 300, 265, 220, 175, 175, };
extern s32 actionCmdTableSquirt[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -46,7 +46,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_squirt_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_squirt_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_squirt_init);
API_CALLABLE(action_command_squirt_start);
void action_command_squirt_update(void);
void action_command_squirt_draw(void);
void action_command_squirt_free(void);

View File

@ -5,7 +5,7 @@
extern s32 actionCmdTableStopLeech[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement;
@ -40,7 +40,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
Bytecode* args = script->ptrReadPos;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_stop_leech_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_stop_leech_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_stop_leech_init);
API_CALLABLE(action_command_stop_leech_start);
void action_command_stop_leech_update(void);
void action_command_stop_leech_draw(void);
void action_command_stop_leech_free(void);

View File

@ -8,7 +8,7 @@ HudScript* D_802A97CC_42CEBC[3] = { &HES_AButtonDown, &HES_BButtonHeld, &HES_CDo
extern s32 actionCmdTableTidalWave[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
@ -49,7 +49,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
}
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_tidal_wave_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_tidal_wave_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_tidal_wave_init);
API_CALLABLE(action_command_tidal_wave_start);
void action_command_tidal_wave_update(void);
void action_command_tidal_wave_draw(void);
void action_command_tidal_wave_free(void);

View File

@ -109,7 +109,7 @@ HudScript* D_802AB184_42C674[] = {
extern s32 actionCmdTableWaterBlock[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
@ -214,7 +214,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_water_block_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_water_block_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_water_block_init);
API_CALLABLE(action_command_water_block_start);
void action_command_water_block_update(void);
void action_command_water_block_draw(void);
void action_command_water_block_free(void);

View File

@ -61,7 +61,7 @@ s32 D_802AA8B4_425524[] = { 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1 };
extern s32 actionCmdTableWhirlwind[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;
@ -117,7 +117,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus N(start)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos;

View File

@ -3,8 +3,8 @@
#include "common_structs.h"
ApiStatus action_command_whirlwind_init(Evt* script, s32 isInitialCall);
ApiStatus action_command_whirlwind_start(Evt* script, s32 isInitialCall);
API_CALLABLE(action_command_whirlwind_init);
API_CALLABLE(action_command_whirlwind_start);
void action_command_whirlwind_update(void);
void action_command_whirlwind_draw(void);
void action_command_whirlwind_free(void);

View File

@ -64,7 +64,7 @@ ActorPartBlueprint N(partsTable_80220C14)[] = {
.defenseTable = N(defenseTable_80220B40),
.eventFlags = ACTOR_EVENT_FLAG_SPIKY_TOP,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};
@ -421,7 +421,7 @@ EvtScript N(80221DE0) = {
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80221D20)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B54)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 15)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, -7)
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, 1, 0, -7)
EVT_CALL(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_SPIKY_TOP, 0)
EVT_CALL(N(SetSpinSmashable), 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1)
@ -708,7 +708,7 @@ EvtScript N(80222F1C) = {
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80221CD4)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B40)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 22)
EVT_CALL(func_8027D4C8, ACTOR_SELF, 1, 0, -10)
EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, 1, 0, -10)
EVT_CALL(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_SPIKY_TOP, 1)
EVT_WAIT(1)
EVT_CALL(N(SetSpinSmashable), 1)

View File

@ -97,7 +97,7 @@ ActorPartBlueprint N(partsTable_8021B460)[] = {
.defenseTable = N(defenseTable_8021B2F0),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
{
.flags = ACTOR_PART_FLAG_MULTI_TARGET,
@ -109,7 +109,7 @@ ActorPartBlueprint N(partsTable_8021B460)[] = {
.defenseTable = N(defenseTable_8021B2FC),
.eventFlags = ACTOR_EVENT_FLAG_GROUNDABLE,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
{
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET,
@ -121,7 +121,7 @@ ActorPartBlueprint N(partsTable_8021B460)[] = {
.defenseTable = N(defenseTable_8021B2F0),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
{
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET,
@ -133,7 +133,7 @@ ActorPartBlueprint N(partsTable_8021B460)[] = {
.defenseTable = N(defenseTable_8021B2F0),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};

View File

@ -55,7 +55,7 @@ ActorPartBlueprint N(partsTable_80218828)[] = {
.defenseTable = N(defenseTable_80218770),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};

View File

@ -70,7 +70,7 @@ ActorPartBlueprint N(partsTable_80225D4C)[] = {
.defenseTable = N(defenseTable_80225C94),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};

View File

@ -88,7 +88,7 @@ ActorPartBlueprint N(partsTable_80223D30)[] = {
.defenseTable = N(defenseTable_80223C78),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
{
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_MULTI_TARGET | ACTOR_PART_FLAG_80000000,
@ -100,7 +100,7 @@ ActorPartBlueprint N(partsTable_80223D30)[] = {
.defenseTable = N(defenseTable_80223C78),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};
@ -142,7 +142,7 @@ EvtScript N(init_80223DA0) = {
EVT_END
};
ApiStatus N(func_80218680_4FF0D0)(Evt* script, s32 isInitialCall) {
API_CALLABLE(N(func_80218680_4FF0D0)) {
Bytecode *args = script->ptrReadPos;
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++);

View File

@ -16,85 +16,85 @@ extern Stage N(arn_04);
extern Stage N(arn_05);
extern Stage N(arn_06);
Formation N(formation_00) = {
Formation N(Formation_00) = {
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 10 },
};
Formation N(formation_01) = {
Formation N(Formation_01) = {
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 9 },
};
Formation N(formation_02) = {
Formation N(Formation_02) = {
{ .actor = &N(hypergoomba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
};
Formation N(formation_03) = {
Formation N(Formation_03) = {
{ .actor = &N(hypergoomba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
};
Formation N(formation_04) = {
Formation N(Formation_04) = {
{ .actor = &N(hypergoomba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 7 }, .priority = 7 },
};
Formation N(formation_05) = {
Formation N(Formation_05) = {
{ .actor = &N(hypergoomba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
{ .actor = &N(hypergoomba), .home = { .index = 3 }, .priority = 7 },
};
Formation N(formation_06) = {
Formation N(Formation_06) = {
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 10 },
};
Formation N(formation_07) = {
Formation N(Formation_07) = {
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 9 },
};
Formation N(formation_08) = {
Formation N(Formation_08) = {
{ .actor = &N(hyper_paragoomba), .home = { .index = 4 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
};
Formation N(formation_09) = {
Formation N(Formation_09) = {
{ .actor = &N(hyper_paragoomba), .home = { .index = 4 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 7 }, .priority = 7 },
};
Formation N(formation_0A) = {
Formation N(Formation_0A) = {
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 10 },
};
Formation N(formation_0B) = {
Formation N(Formation_0B) = {
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 2 }, .priority = 9 },
};
Formation N(formation_0C) = {
Formation N(Formation_0C) = {
{ .actor = &N(hyper_cleft), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_cleft), .home = { .index = 2 }, .priority = 8 },
};
Formation N(formation_0D) = {
Formation N(Formation_0D) = {
{ .actor = &N(hyper_cleft), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
};
Formation N(formation_0E) = {
Formation N(Formation_0E) = {
{ .actor = &N(hyper_cleft), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
@ -103,38 +103,38 @@ Formation N(formation_0E) = {
Vec3i N(vector3D_802280C0) = { 90, 20, 0 };
Formation N(formation_0F) = {
Formation N(Formation_0F) = {
{ .actor = &N(tubbas_heart), .home = { .vec = &N(vector3D_802280C0) }, .priority = 10 },
};
Vec3i N(vector3D_802280E8) = { 75, 0, 10 };
Formation N(formation_10) = {
Formation N(Formation_10) = {
{ .actor = &N(tubba_blubba), .home = { .vec = &N(vector3D_802280E8) }, .priority = 10 },
};
BattleList N(formationTable) = {
BATTLE("ハイパークリボー", N(formation_00), &N(arn_01)),
BATTLE("ハイパークリボーx", N(formation_01), &N(arn_01)),
BATTLE("ハイパークリボーx", N(formation_02), &N(arn_01)),
BATTLE("ハイパークリボーx2,ハイパーパタクリボー", N(formation_03), &N(arn_01)),
BATTLE("ハイパークリボーx3,ハイパーパタクリボー", N(formation_04), &N(arn_01)),
BATTLE("ハイパークリボーx2,ハイパーパタクリボー,ハイパークリボー", N(formation_05), &N(arn_01)),
BATTLE("ハイパーパタクリボー", N(formation_06), &N(arn_01)),
BATTLE("ハイパーパタクリボーx2", N(formation_07), &N(arn_01)),
BATTLE("ハイパーパタクリボーx3", N(formation_08), &N(arn_01)),
BATTLE("ハイパーパタクリボーx4", N(formation_09), &N(arn_01)),
BATTLE("ハイパーシンエモン", N(formation_0A), &N(arn_01)),
BATTLE("ハイパーシンエモンx2", N(formation_0B), &N(arn_01)),
BATTLE("ハイパーシンエモンx3", N(formation_0C), &N(arn_01)),
BATTLE("ハイパーシンエモン,ハイパークリボーx2", N(formation_0D), &N(arn_01)),
BATTLE("ハイパーシンエモンx2,ハイパークリボーx2", N(formation_0E), &N(arn_01)),
BATTLE("ドガボンしんぞう", N(formation_0F), &N(arn_06)),
BATTLE("ドガボン", N(formation_10), &N(arn_01)),
BattleList N(Formations) = {
BATTLE(N(Formation_00), &N(arn_01), "ハイパークリボー"),
BATTLE(N(Formation_01), &N(arn_01), "ハイパークリボーx"),
BATTLE(N(Formation_02), &N(arn_01), "ハイパークリボーx"),
BATTLE(N(Formation_03), &N(arn_01), "ハイパークリボーx2,ハイパーパタクリボー"),
BATTLE(N(Formation_04), &N(arn_01), "ハイパークリボーx3,ハイパーパタクリボー"),
BATTLE(N(Formation_05), &N(arn_01), "ハイパークリボーx2,ハイパーパタクリボー,ハイパークリボー"),
BATTLE(N(Formation_06), &N(arn_01), "ハイパーパタクリボー"),
BATTLE(N(Formation_07), &N(arn_01), "ハイパーパタクリボーx2"),
BATTLE(N(Formation_08), &N(arn_01), "ハイパーパタクリボーx3"),
BATTLE(N(Formation_09), &N(arn_01), "ハイパーパタクリボーx4"),
BATTLE(N(Formation_0A), &N(arn_01), "ハイパーシンエモン"),
BATTLE(N(Formation_0B), &N(arn_01), "ハイパーシンエモンx2"),
BATTLE(N(Formation_0C), &N(arn_01), "ハイパーシンエモンx3"),
BATTLE(N(Formation_0D), &N(arn_01), "ハイパーシンエモン,ハイパークリボーx2"),
BATTLE(N(Formation_0E), &N(arn_01), "ハイパーシンエモンx2,ハイパークリボーx2"),
BATTLE(N(Formation_0F), &N(arn_06), "ドガボンしんぞう"),
BATTLE(N(Formation_10), &N(arn_01), "ドガボン"),
{},
};
StageList N(stageTable) = {
StageList N(Stages) = {
{ "arn_01", &N(arn_01) },
{ "arn_02", &N(arn_02) },
{ "arn_03", &N(arn_03) },

View File

@ -71,7 +71,7 @@ ActorPartBlueprint N(partsTable_80218D24)[] = {
.defenseTable = N(defenseTable_80218C6C),
.eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0,
.unk_1D = 246,
.projectileTargetOffset = { 0, -10 },
},
};

View File

@ -12,22 +12,22 @@ extern Stage N(dgb_03);
extern Stage N(dgb_04);
extern Stage N(dgb_05);
Formation N(formation_00) = {
Formation N(Formation_00) = {
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 10 },
};
Formation N(formation_01) = {
Formation N(Formation_01) = {
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 9 },
};
Formation N(formation_02) = {
Formation N(Formation_02) = {
{ .actor = &N(clubba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 8 },
};
Formation N(formation_03) = {
Formation N(Formation_03) = {
{ .actor = &N(clubba), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 8 },
@ -36,25 +36,25 @@ Formation N(formation_03) = {
Vec3i N(vector3D_8021B348) = { 75, 0, 10 };
Formation N(formation_04) = {
Formation N(Formation_04) = {
{ .actor = &N(tubba_blubba), .home = { .vec = &N(vector3D_8021B348) }, .priority = 10 },
};
Formation N(formation_05) = {
Formation N(Formation_05) = {
{ .actor = &N(tubba_blubba), .home = { .vec = &N(vector3D_8021B348) }, .priority = 10, .var0 = 1 },
};
BattleList N(formationTable) = {
BATTLE("ガボンへい", N(formation_00), &N(dgb_01)),
BATTLE("ガボンへいx", N(formation_01), &N(dgb_01)),
BATTLE("ガボンへいx", N(formation_02), &N(dgb_01)),
BATTLE("ガボンへいx", N(formation_03), &N(dgb_01)),
BATTLE("むてきドガボン", N(formation_04), &N(dgb_01)),
BATTLE("むてきドガボンせりふなし", N(formation_05), &N(dgb_01)),
BattleList N(Formations) = {
BATTLE(N(Formation_00), &N(dgb_01), "ガボンへい"),
BATTLE(N(Formation_01), &N(dgb_01), "ガボンへいx"),
BATTLE(N(Formation_02), &N(dgb_01), "ガボンへいx"),
BATTLE(N(Formation_03), &N(dgb_01), "ガボンへいx"),
BATTLE(N(Formation_04), &N(dgb_01), "むてきドガボン"),
BATTLE(N(Formation_05), &N(dgb_01), "むてきドガボンせりふなし"),
{},
};
StageList N(stageTable) = {
StageList N(Stages) = {
{ "dgb_01", &N(dgb_01) },
{ "dgb_02", &N(dgb_02) },
{ "dgb_03", &N(dgb_03) },

View File

@ -70,8 +70,7 @@ ActorPartBlueprint N(parts)[] = {
.defenseTable = N(defenseTable),
.eventFlags = 0,
.elementImmunityFlags = 0,
.unk_1C = 0,
.unk_1D = -10,
.projectileTargetOffset = { 0, -10 },
},
};

View File

@ -23,46 +23,46 @@ extern EvtScript N(dig_03_script);
extern EvtScript N(dig_04_script);
extern EvtScript N(dig_05_script);
Formation N(formation_00) = {
Formation N(Formation_00) = {
{ .actor = &N(fuzzy), .home = { .index = 0 }, .priority = 10, },
{ .actor = &N(fuzzy), .home = { .index = 1 }, .priority = 9, },
{ .actor = &N(fuzzy), .home = { .index = 2 }, .priority = 8, },
{ .actor = &N(fuzzy), .home = { .index = 3 }, .priority = 7, },
};
Formation N(formation_01) = {
Formation N(Formation_01) = {
{ .actor = &N(monty_mole), .home = { .index = 1 }, .priority = 10, },
{ .actor = &N(monty_mole), .home = { .index = 2 }, .priority = 9, },
{ .actor = &N(monty_mole), .home = { .index = 3 }, .priority = 8, },
};
Formation N(formation_02) = {
Formation N(Formation_02) = {
{ .actor = &N(pokey), .home = { .index = 1 }, .priority = 10, },
{ .actor = &N(bandit), .home = { .index = 2 }, .priority = 9, },
{ .actor = &N(pokey), .home = { .index = 3 }, .priority = 8, },
};
Formation N(formation_03) = {
Formation N(Formation_03) = {
{ .actor = &N(red_shy_guy), .home = { .index = 0 }, .priority = 10, },
{ .actor = &N(red_shy_guy), .home = { .index = 1 }, .priority = 9, },
{ .actor = &N(red_shy_guy), .home = { .index = 2 }, .priority = 8, },
{ .actor = &N(red_shy_guy), .home = { .index = 3 }, .priority = 7, },
};
Formation N(formation_04) = {
Formation N(Formation_04) = {
{ .actor = &N(tubba_blubba), .home = { .index = 2 }, .priority = 10, },
};
BattleList N(formationTable) = {
BATTLE_WITH_SCRIPT("ダイジェスト01", N(formation_00), &N(dig_01), &N(dig_01_script)),
BATTLE_WITH_SCRIPT("ダイジェスト02", N(formation_01), &N(dig_02), &N(dig_02_script)),
BATTLE_WITH_SCRIPT("ダイジェスト03", N(formation_02), &N(dig_03), &N(dig_03_script)),
BATTLE_WITH_SCRIPT("ダイジェスト04", N(formation_03), &N(dig_04), &N(dig_04_script)),
BATTLE_WITH_SCRIPT("ダイジェスト05", N(formation_04), &N(dig_05), &N(dig_05_script)),
BattleList N(Formations) = {
BATTLE_WITH_SCRIPT(N(Formation_00), &N(dig_01), &N(dig_01_script), "ダイジェスト01"),
BATTLE_WITH_SCRIPT(N(Formation_01), &N(dig_02), &N(dig_02_script), "ダイジェスト02"),
BATTLE_WITH_SCRIPT(N(Formation_02), &N(dig_03), &N(dig_03_script), "ダイジェスト03"),
BATTLE_WITH_SCRIPT(N(Formation_03), &N(dig_04), &N(dig_04_script), "ダイジェスト04"),
BATTLE_WITH_SCRIPT(N(Formation_04), &N(dig_05), &N(dig_05_script), "ダイジェスト05"),
{},
};
StageList N(stageTable) = {
StageList N(Stages) = {
{ "dig_01", &N(dig_01) },
{ "dig_02", &N(dig_02) },
{ "dig_03", &N(dig_03) },

View File

@ -5,7 +5,7 @@
#include "common/Set80218630_Var0.inc.c"
ApiStatus func_80218644_6DE404(Evt* script, s32 isInitialCall) {
API_CALLABLE(func_80218644_6DE404) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* player = battleStatus->playerActor;
SelectableTarget* selectableTarget;

Some files were not shown because too many files have changed in this diff Show More