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 "enums.h"
#include "evt.h" #include "evt.h"
#include "messages.h" #include "messages.h"
#include "battle/battle_formation_names.h" #include "battle/formation_names.h"
#include "battle/battle_stage_names.h" #include "battle/stage_names.h"
#ifdef PERMUTER #ifdef PERMUTER
extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA; extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA;

View File

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

View File

@ -737,7 +737,11 @@ enum SoundIDs {
SOUND_151 = 0x00000151, SOUND_151 = 0x00000151,
SOUND_152 = 0x00000152, SOUND_152 = 0x00000152,
SOUND_SEARCH_BUSH = 0x00000153, SOUND_SEARCH_BUSH = 0x00000153,
SOUND_156 = 0x00000156,
SOUND_158 = 0x00000158, SOUND_158 = 0x00000158,
SOUND_15A = 0x0000015A,
SOUND_15B = 0x0000015B,
SOUND_15C = 0x0000015C,
SOUND_15D = 0x0000015D, SOUND_15D = 0x0000015D,
SOUND_15E = 0x0000015E, SOUND_15E = 0x0000015E,
SOUND_160 = 0x00000160, SOUND_160 = 0x00000160,
@ -1461,6 +1465,9 @@ enum SoundIDs {
SOUND_2106 = 0x00002106, SOUND_2106 = 0x00002106,
SOUND_2107 = 0x00002107, SOUND_2107 = 0x00002107,
SOUND_2108 = 0x00002108, SOUND_2108 = 0x00002108,
SOUND_210A = 0x0000210A,
SOUND_210B = 0x0000210B,
SOUND_210C = 0x0000210C,
SOUND_2111 = 0x00002111, SOUND_2111 = 0x00002111,
SOUND_2112 = 0x00002112, SOUND_2112 = 0x00002112,
SOUND_2113 = 0x00002113, SOUND_2113 = 0x00002113,
@ -1471,6 +1478,12 @@ enum SoundIDs {
SOUND_2118 = 0x00002118, SOUND_2118 = 0x00002118,
SOUND_2119 = 0x00002119, SOUND_2119 = 0x00002119,
SOUND_211A = 0x0000211A, 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_2121 = 0x00002121,
SOUND_2122 = 0x00002122, SOUND_2122 = 0x00002122,
SOUND_2123 = 0x00002123, SOUND_2123 = 0x00002123,
@ -2529,22 +2542,21 @@ enum PlayerAnims {
}; };
enum AmbientSounds { enum AmbientSounds {
AMBIENT_SPOOKY = 0, AMBIENT_SPOOKY = 0,
AMBIENT_WIND = 1, AMBIENT_WIND = 1,
AMBIENT_BEACH = 2, AMBIENT_BEACH = 2,
AMBIENT_JUNGLE = 3, AMBIENT_JUNGLE = 3,
// actually, 'undersea' are all lava-related. sort these out when map data is done AMBIENT_LAVA_1 = 4,
AMBIENT_UNDER_SEA1 = 4, AMBIENT_LAVA_2 = 5,
AMBIENT_UNDER_SEA2 = 5, AMBIENT_SILENCE = 6,
AMBIENT_SILENCE = 6, AMBIENT_LAVA_3 = 7,
AMBIENT_UNDER_SEA3 = 7, AMBIENT_LAVA_4 = 8,
AMBIENT_UNDER_SEA4 = 8, AMBIENT_LAVA_5 = 9,
AMBIENT_EXIT_SEA = 9, AMBIENT_LAVA_6 = 10,
AMBIENT_UNDER_SEA5 = 10, AMBIENT_LAVA_7 = 11,
AMBIENT_UNDER_SEA6 = 11, AMBIENT_BIRDS = 12,
AMBIENT_BIRDS = 12, AMBIENT_SEA = 13,
AMBIENT_SEA = 13, AMBIENT_RADIO = 16, // radio songs for nok
AMBIENT_RADIO = 16, // radio songs for nok
// the following 4 IDs are reserved for additional radio songs, // the following 4 IDs are reserved for additional radio songs,
// and no more are expected to follow after that // and no more are expected to follow after that
// see: au_ambient_load // see: au_ambient_load
@ -5753,7 +5765,7 @@ enum FoldStateFlags {
FOLD_STATE_FLAG_2000 = 0x00002000, FOLD_STATE_FLAG_2000 = 0x00002000,
FOLD_STATE_FLAG_4000 = 0x00004000, FOLD_STATE_FLAG_4000 = 0x00004000,
FOLD_STATE_FLAG_8000 = 0x00008000, FOLD_STATE_FLAG_8000 = 0x00008000,
FOLD_STATE_FLAG_10000 = 0x00010000, FOLD_STATE_FLAG_NO_FILTERING = 0x00010000,
FOLD_STATE_FLAG_20000 = 0x00020000, FOLD_STATE_FLAG_20000 = 0x00020000,
FOLD_STATE_FLAG_40000 = 0x00040000, FOLD_STATE_FLAG_40000 = 0x00040000,
FOLD_STATE_FLAG_80000 = 0x00080000, 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); Trigger* get_trigger_by_id(s32 triggerID);
Actor* get_actor(s32 actorID); 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 add_coins(s32 amt);
s32 is_partner_ability_active(s32); s32 is_partner_ability_active(s32);
s32 count_power_plus(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); void set_peach_shadow_scale(Shadow* shadow, f32 scale);
s32 is_block_on_ground(Entity* block); s32 is_block_on_ground(Entity* block);
void set_animation(s32 actorID, s32, s32 animationIndex); 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 set_model_flags(u16, s32, s32);
void init_enter_world_shared(void); void init_enter_world_shared(void);
s16 update_enter_map_screen_overlay(s16* progress); 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 enemy_create_target_list(Actor* actor);
void set_actor_yaw(s32 actorID, s32 yaw); 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_part_decoration(ActorPart* part, s32 decorationIndex, s32 decorationType);
void add_actor_decoration(Actor* actor, 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); s32 player_team_is_ability_active(Actor* actor, s32 ability);
void create_part_shadow(s32 actorID, s32 partIndex); void create_part_shadow(s32 actorID, s32 partID);
void remove_part_shadow(s32 actorID, s32 partIndex); void remove_part_shadow(s32 actorID, s32 partID);
void create_part_shadow_by_ref(s32 arg0, ActorPart* part); void create_part_shadow_by_ref(s32 arg0, ActorPart* part);
void spawn_drops(Enemy* enemy); void spawn_drops(Enemy* enemy);
@ -996,7 +996,7 @@ void func_802549C0(void);
void func_8023E104(void); void func_8023E104(void);
void func_8023E11C(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 init_encounters_ui(void);
void initialize_collision(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_RODATA_PAD(n,name) const s32 N(rodata_pad_##name)[n] = {};
#define MAP_STATIC_PAD(n,name) BSS s32 N(static_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 PHYSICAL_TO_VIRTUAL(addr) (void*)((u32)(addr) + 0x80000000)
#define VIRTUAL_TO_PHYSICAL(addr) (u32)((u8*)(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 DispatchEvent(Evt* script, s32 isInitialCall);
ApiStatus func_8027D2D8(Evt* script, s32 isInitialCall); ApiStatus func_8027D2D8(Evt* script, s32 isInitialCall);
ApiStatus SetTargetOffset(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 EnableActorBlur(Evt* script, s32 isInitialCall);
ApiStatus AfflictActor(Evt* script, s32 isInitialCall); ApiStatus AfflictActor(Evt* script, s32 isInitialCall);
ApiStatus GetInstigatorValue(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 SetVirtualEntityFlags(Evt* script, s32 isInitialCall);
ApiStatus GetVirtualEntityPosition(Evt* script, s32 isInitialCall); ApiStatus GetVirtualEntityPosition(Evt* script, s32 isInitialCall);
ApiStatus VirtualEntityJumpTo(Evt* script, s32 isInitialCall); ApiStatus VirtualEntityJumpTo(Evt* script, s32 isInitialCall);
ApiStatus VirtualEntityLandJump(Evt* script, s32 isInitialCall);
ApiStatus FacePlayerTowardPoint(Evt* script, s32 isInitialCall); ApiStatus FacePlayerTowardPoint(Evt* script, s32 isInitialCall);
ApiStatus func_802D2C14(Evt* script, s32 isInitialCall); ApiStatus func_802D2C14(Evt* script, s32 isInitialCall);
ApiStatus ShowConsumableChoicePopup(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; PlayerData* playerData = &gPlayerData;
do { do {
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) && if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE)
battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST && && battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST
battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST && && battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST
playerData->merleeCastsLeft > 0) && playerData->merleeCastsLeft > 0
{ ) {
if (playerData->merleeTurnCount <= 0) { if (playerData->merleeTurnCount <= 0) {
s32 temp = rand_int(100); s32 temp = rand_int(100);
@ -94,10 +94,10 @@ void btl_merlee_on_first_strike(void) {
PlayerData* playerData = &gPlayerData; PlayerData* playerData = &gPlayerData;
do { do {
if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) && if (!(gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE)
battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST && && battleStatus->nextMerleeSpellType != MERLEE_SPELL_EXP_BOOST
battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST && && battleStatus->nextMerleeSpellType != MERLEE_SPELL_COIN_BOOST
playerData->merleeCastsLeft > 0) && playerData->merleeCastsLeft > 0)
{ {
if (playerData->merleeTurnCount <= 0) { if (playerData->merleeTurnCount <= 0) {
s32 temp = rand_int(100); s32 temp = rand_int(100);
@ -456,10 +456,10 @@ void btl_state_update_normal_start(void) {
script->owner1.actorID = ACTOR_PLAYER; script->owner1.actorID = ACTOR_PLAYER;
} }
if (currentEncounter->currentEnemy != NULL && if (currentEncounter->currentEnemy != NULL
currentEncounter->currentEnemy->encountered == ENCOUNTER_TRIGGER_SPIN && && currentEncounter->currentEnemy->encountered == ENCOUNTER_TRIGGER_SPIN
is_ability_active(ABILITY_DIZZY_ATTACK)) && is_ability_active(ABILITY_DIZZY_ATTACK)
{ ) {
actor = battleStatus->enemyActors[0]; actor = battleStatus->enemyActors[0];
script = start_script(&DoDizzyAttack, EVT_PRIORITY_A, 0); script = start_script(&DoDizzyAttack, EVT_PRIORITY_A, 0);
actor->takeTurnScript = script; actor->takeTurnScript = script;
@ -2333,10 +2333,10 @@ void btl_state_update_run_away(void) {
D_8029F248--; D_8029F248--;
return; return;
} }
if (!does_script_exist(player->takeTurnScriptID) && if (!does_script_exist(player->takeTurnScriptID)
(partner == NULL || !does_script_exist(partner->takeTurnScriptID)) && && (partner == NULL || !does_script_exist(partner->takeTurnScriptID))
battleStatus->unk_8C == 0) && battleStatus->unk_8C == 0
{ ) {
btl_set_state(BATTLE_STATE_9); btl_set_state(BATTLE_STATE_9);
} }
break; break;
@ -2363,7 +2363,7 @@ void btl_state_update_defeat(void) {
battleStatus->unk_8C = 0; battleStatus->unk_8C = 0;
if (player->debuff != 0) { if (player->debuff != 0) {
if (player->debuff == 7) { if (player->debuff == STATUS_FROZEN) {
sfx_play_sound(SOUND_FROZEN_SHATTER); sfx_play_sound(SOUND_FROZEN_SHATTER);
player->icePillarEffect->flags |= EFFECT_INSTANCE_FLAG_10; player->icePillarEffect->flags |= EFFECT_INSTANCE_FLAG_10;
player->icePillarEffect = NULL; player->icePillarEffect = NULL;
@ -2764,21 +2764,20 @@ void btl_state_update_player_move(void) {
return; return;
} }
if (battleStatus->moveCategory == BTL_MENU_TYPE_SMASH) { if ((battleStatus->moveCategory == BTL_MENU_TYPE_SMASH)
if ((battleStatus->selectedMoveID != MOVE_SMASH_CHARGE0) && && (battleStatus->selectedMoveID != MOVE_SMASH_CHARGE0)
(battleStatus->selectedMoveID != MOVE_SMASH_CHARGE) && && (battleStatus->selectedMoveID != MOVE_SMASH_CHARGE)
(battleStatus->selectedMoveID != MOVE_SUPER_SMASH_CHARGE)) && (battleStatus->selectedMoveID != MOVE_SUPER_SMASH_CHARGE)
{ ) {
gBattleStatus.flags1 &= ~BS_FLAGS1_HAMMER_CHARGED; gBattleStatus.flags1 &= ~BS_FLAGS1_HAMMER_CHARGED;
}
} }
if (battleStatus->moveCategory == BTL_MENU_TYPE_JUMP) {
if ((battleStatus->selectedMoveID != MOVE_JUMP_CHARGE0) && if ((battleStatus->moveCategory == BTL_MENU_TYPE_JUMP)
(battleStatus->selectedMoveID != MOVE_JUMP_CHARGE) && && (battleStatus->selectedMoveID != MOVE_JUMP_CHARGE0)
(battleStatus->selectedMoveID != MOVE_SUPER_JUMP_CHARGE)) && (battleStatus->selectedMoveID != MOVE_JUMP_CHARGE)
{ && (battleStatus->selectedMoveID != MOVE_SUPER_JUMP_CHARGE)
gBattleStatus.flags1 &= ~BS_FLAGS1_JUMP_CHARGED; ) {
} gBattleStatus.flags1 &= ~BS_FLAGS1_JUMP_CHARGED;
} }
if (!(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) { if (battleStatus->moveCategory == BTL_MENU_TYPE_ITEMS && battleStatus->itemUsesLeft >= 2) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY; gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY;
} else if ( } else if (
!(gBattleStatus.flags2 & BS_FLAGS2_HAS_DRAINED_HP) && !(gBattleStatus.flags2 & BS_FLAGS2_HAS_DRAINED_HP)
!is_ability_active(ABILITY_HAPPY_HEART) && && !is_ability_active(ABILITY_HAPPY_HEART)
!is_ability_active(ABILITY_CRAZY_HEART) && && !is_ability_active(ABILITY_CRAZY_HEART)
!is_ability_active(ABILITY_HAPPY_FLOWER)) && !is_ability_active(ABILITY_HAPPY_FLOWER)
{ ) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY; gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY;
} else if (player->stoneStatus == STATUS_STONE || battleStatus->outtaSightActive) { } else if (player->stoneStatus == STATUS_STONE || battleStatus->outtaSightActive) {
gBattleSubState = BTL_SUBSTATE_END_PLAYER_TURN_AWAIT_HAPPY; 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)) && if (!(enemy->flags & (ACTOR_FLAG_40000 | ACTOR_FLAG_TARGET_ONLY))
((gBattleStatus.flags1 & BS_FLAGS1_MENU_OPEN) || (enemy->flags & ACTOR_FLAG_80000)) && && ((gBattleStatus.flags1 & BS_FLAGS1_MENU_OPEN) || (enemy->flags & ACTOR_FLAG_80000))
is_actor_hp_bar_visible(enemy)) && is_actor_hp_bar_visible(enemy)
{ ) {
f32 x = enemy->healthBarPosition.x; f32 x = enemy->healthBarPosition.x;
f32 y = enemy->healthBarPosition.y; f32 y = enemy->healthBarPosition.y;
f32 z = enemy->healthBarPosition.z; f32 z = enemy->healthBarPosition.z;
@ -1104,7 +1104,7 @@ void btl_restore_world_cameras(void) {
} }
void btl_delete_actor(Actor* actor) { void btl_delete_actor(Actor* actor) {
ActorPart* partsTable; ActorPart* part;
ActorPart* actorPartTemp; ActorPart* actorPartTemp;
BattleStatus* battleStatus; BattleStatus* battleStatus;
s32 i; s32 i;
@ -1124,29 +1124,29 @@ void btl_delete_actor(Actor* actor) {
} }
func_80266EE8(actor, 0); func_80266EE8(actor, 0);
partsTable = actor->partsTable; part = actor->partsTable;
while (partsTable != NULL) { while (part != NULL) {
if (!(partsTable->flags & 0x4)) { if (!(part->flags & ACTOR_PART_FLAG_4)) {
delete_shadow(partsTable->shadowIndex); delete_shadow(part->shadowIndex);
} }
if (partsTable->idleAnimations != NULL) { if (part->idleAnimations != NULL) {
func_802DE894(partsTable->spriteInstanceID, 0, 0, 0, 0, 0, 0); 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)) { if (!(part->flags & ACTOR_PART_FLAG_80000000)) {
heap_free(partsTable->movement); heap_free(part->movement);
} }
if (!(partsTable->flags & 0x2)) { if (!(part->flags & 0x2)) {
heap_free(partsTable->decorationTable); heap_free(part->decorationTable);
} }
} }
actorPartTemp = partsTable->nextPart; actorPartTemp = part->nextPart;
heap_free(partsTable); heap_free(part);
partsTable = actorPartTemp; part = actorPartTemp;
} }
delete_shadow(actor->shadow.id); 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 ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
if ((battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW)) && && (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW))
(targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE)) && (targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE)
{ ) {
if (dispatchEvent == EVENT_HIT) { if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER; dispatchEvent = EVENT_FALL_TRIGGER;
} }
if (dispatchEvent == EVENT_IMMUNE) { if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER; dispatchEvent = EVENT_FALL_TRIGGER;
}
} }
} }
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) { if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
if ((battleStatus->currentAttackElement & DAMAGE_TYPE_POW) && && (battleStatus->currentAttackElement & DAMAGE_TYPE_POW)
(targetPart->eventFlags & ACTOR_EVENT_FLAG_800000)) && (targetPart->eventFlags & ACTOR_EVENT_FLAG_800000)
{ ) {
if (dispatchEvent == EVENT_HIT) { if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FALL_TRIGGER; dispatchEvent = EVENT_FALL_TRIGGER;
} }
if (dispatchEvent == EVENT_IMMUNE) { if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FALL_TRIGGER; dispatchEvent = EVENT_FALL_TRIGGER;
}
} }
} }
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) { if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
if ((battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE)) && && (battleStatus->currentAttackElement & (DAMAGE_TYPE_JUMP | DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE))
(targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE)) && (targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE)
{ ) {
if (dispatchEvent == EVENT_HIT) { if (dispatchEvent == EVENT_HIT) {
dispatchEvent = EVENT_FLIP_TRIGGER; dispatchEvent = EVENT_FLIP_TRIGGER;
} }
if (dispatchEvent == EVENT_IMMUNE) { if (dispatchEvent == EVENT_IMMUNE) {
dispatchEvent = EVENT_FLIP_TRIGGER; dispatchEvent = EVENT_FLIP_TRIGGER;
}
} }
} }
@ -338,12 +335,12 @@ HitResult calc_item_damage_enemy(void) {
} }
} }
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) && if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
battleStatus->lastAttackDamage >= 0 && && battleStatus->lastAttackDamage >= 0
dispatchEvent != EVENT_DEATH && && dispatchEvent != EVENT_DEATH
dispatchEvent != EVENT_SPIN_SMASH_DEATH && && dispatchEvent != EVENT_SPIN_SMASH_DEATH
dispatchEvent != EVENT_EXPLODE_TRIGGER) && 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 // 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 // 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) \ #define INFLICT_STATUS(STATUS_TYPE) \
@ -381,14 +378,14 @@ HitResult calc_item_damage_enemy(void) {
temp = (battleStatus->statusChance * temp) / 100; temp = (battleStatus->statusChance * temp) / 100;
if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) && (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR)) { if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) && (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR)) {
if (rand_int(99) < temp && if (rand_int(99) < temp
!(target->debuff == STATUS_FEAR || && (target->debuff != STATUS_FEAR
target->debuff == STATUS_DIZZY || && target->debuff != STATUS_DIZZY
target->debuff == STATUS_PARALYZE || && target->debuff != STATUS_PARALYZE
target->debuff == STATUS_SLEEP || && target->debuff != STATUS_SLEEP
target->debuff == STATUS_FROZEN || && target->debuff != STATUS_FROZEN
target->debuff == STATUS_STOP) && && target->debuff != STATUS_STOP)
!(target->flags & ACTOR_FLAG_400)) && !(target->flags & ACTOR_FLAG_400))
{ {
dispatchEvent = EVENT_SCARE_AWAY; dispatchEvent = EVENT_SCARE_AWAY;
hitResult = HIT_RESULT_HIT; hitResult = HIT_RESULT_HIT;
@ -405,9 +402,9 @@ HitResult calc_item_damage_enemy(void) {
battleStatus->wasStatusInflicted = wasStatusInflicted; battleStatus->wasStatusInflicted = wasStatusInflicted;
if ( if ((sp1C
(sp1C && (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200))) || && (gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)))
((gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) && !(gBattleStatus.flags1 & BS_FLAGS1_80)) || ((gBattleStatus.flags1 & (BS_FLAGS1_40 | BS_FLAGS1_200)) && !(gBattleStatus.flags1 & BS_FLAGS1_80))
) { ) {
if (battleStatus->lastAttackDamage > 0) { if (battleStatus->lastAttackDamage > 0) {
sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, state->goalPos.z); 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; ActorPart* part;
s32 msgID; s32 msgID;
s32 actorID; s32 actorID;
s32 partIndex; s32 partID;
s32 anim; s32 anim;
f32 headX, headY, headZ; f32 headX, headY, headZ;
@ -126,7 +126,7 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
if (isInitialCall) { if (isInitialCall) {
msgID = evt_get_variable(script, *args++); msgID = evt_get_variable(script, *args++);
actorID = 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++); gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
gSpeakingActorIdleAnim = evt_get_variable(script, *args++); gSpeakingActorIdleAnim = evt_get_variable(script, *args++);
msgID2 = msgID; msgID2 = msgID;
@ -136,7 +136,7 @@ ApiStatus ActorSpeak(Evt* script, s32 isInitialCall) {
} }
actor = get_actor(actorID); actor = get_actor(actorID);
part = get_actor_part(actor, partIndex); part = get_actor_part(actor, partID);
gSpeakingActor = actor; gSpeakingActor = actor;
gSpeakingActorPart = part; gSpeakingActorPart = part;
@ -212,7 +212,7 @@ ApiStatus EndActorSpeech(Evt* script, s32 isInitialCall) {
if (isInitialCall) { if (isInitialCall) {
s32 actor = evt_get_variable(script, *args++); s32 actor = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++); s32 partID = evt_get_variable(script, *args++);
ActorPart* actorPart; ActorPart* actorPart;
gSpeakingActorTalkAnim = evt_get_variable(script, *args++); gSpeakingActorTalkAnim = evt_get_variable(script, *args++);
@ -222,7 +222,7 @@ ApiStatus EndActorSpeech(Evt* script, s32 isInitialCall) {
actor = script->owner1.actorID; actor = script->owner1.actorID;
} }
actor = (s32) get_actor(actor); actor = (s32) get_actor(actor);
actorPart = get_actor_part((Actor*)actor, partIndex); actorPart = get_actor_part((Actor*)actor, partID);
gSpeakingActor = (Actor*) actor; gSpeakingActor = (Actor*) actor;
gSpeakingActorPart = actorPart; gSpeakingActorPart = actorPart;
close_message(gSpeakingActorPrintCtx); close_message(gSpeakingActorPrintCtx);
@ -405,7 +405,7 @@ ApiStatus PlaySoundAtActor(Evt* script, s32 isInitialCall) {
ApiStatus PlaySoundAtPart(Evt* script, s32 isInitialCall) { ApiStatus PlaySoundAtPart(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
s32 actorID = evt_get_variable(script, *args++); s32 actorID = evt_get_variable(script, *args++);
s32 partIndex = evt_get_variable(script, *args++); s32 partID = evt_get_variable(script, *args++);
Bytecode soundID = *args++; Bytecode soundID = *args++;
ActorPart* part; ActorPart* part;
@ -413,7 +413,7 @@ ApiStatus PlaySoundAtPart(Evt* script, s32 isInitialCall) {
actorID = script->owner1.actorID; 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); sfx_play_sound_at_position(soundID, SOUND_SPACE_MODE_0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
return ApiStatus_DONE2; return ApiStatus_DONE2;

View File

@ -1515,25 +1515,25 @@ void appendGfx_player_actor(void* arg0) {
lastAnim = playerParts->currentAnimation; lastAnim = playerParts->currentAnimation;
} while (0); // required to match } while (0); // required to match
if (((((gBattleStatus.flags2 & (BS_FLAGS2_8 | BS_FLAGS2_2)) == BS_FLAGS2_2) && (partner != NULL)) || (battleStatus->outtaSightActive > 0)) && if (((((gBattleStatus.flags2 & (BS_FLAGS2_8 | BS_FLAGS2_2)) == BS_FLAGS2_2) && (partner != NULL)) || (battleStatus->outtaSightActive > 0))
!(player->flags & ACTOR_FLAG_20000000) && && !(player->flags & ACTOR_FLAG_20000000)
((partner == NULL) || !(partner->flags & ACTOR_FLAG_NO_ATTACK))) && ((partner == NULL) || !(partner->flags & ACTOR_FLAG_NO_ATTACK)))
{ {
if (!(gBattleStatus.flags2 & BS_FLAGS2_100000)) { if (!(gBattleStatus.flags2 & BS_FLAGS2_100000)) {
if ((player->debuff != STATUS_FEAR) && if ((player->debuff != STATUS_FEAR)
(player->debuff != STATUS_PARALYZE) && && (player->debuff != STATUS_PARALYZE)
(player->debuff != STATUS_FROZEN) && && (player->debuff != STATUS_FROZEN)
(player->debuff != STATUS_STOP)) && (player->debuff != STATUS_STOP)
{ ) {
if ((player->transparentStatus != STATUS_TRANSPARENT) && if ((player->transparentStatus != STATUS_TRANSPARENT) &&
(player->stoneStatus != STATUS_STONE) && (player->stoneStatus != STATUS_STONE) &&
((battleStatus->outtaSightActive > 0) || (gBattleStatus.flags2 & BS_FLAGS2_2))) ((battleStatus->outtaSightActive > 0) || (gBattleStatus.flags2 & BS_FLAGS2_2)))
{ {
if (is_ability_active(ABILITY_BERSERKER)) { if (is_ability_active(ABILITY_BERSERKER)) {
playerParts->currentAnimation = func_80265D44(0x13); playerParts->currentAnimation = func_80265D44(0x13);
} else if (player->debuff == 6) { } else if (player->debuff == STATUS_SLEEP) {
playerParts->currentAnimation = func_80265D44(0x15); playerParts->currentAnimation = func_80265D44(0x15);
} else if (player->debuff == 4) { } else if (player->debuff == STATUS_DIZZY) {
playerParts->currentAnimation = func_80265D44(0x18); playerParts->currentAnimation = func_80265D44(0x18);
} else { } else {
playerParts->currentAnimation = func_80265D44(0x12); 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) { if (part->decorationTable->unk_751 != 0) {
part->decorationTable->unk_751 = 0; part->decorationTable->unk_751 = 0;
if (isNpcSprite == SPRITE_MODE_PLAYER) { 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 { } 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->unk_751 = 0;
decor->unk758 = 0; decor->unk758 = 0;
if (isNpcSprite == SPRITE_MODE_PLAYER) { 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 { } 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++) { for (i = 0; i < ARRAY_COUNT(rbuf); i++) {
color = (rbuf[i] << 0x18) | (gbuf[i] << 0x10) | (bbuf[i] << 8) | alpha; color = (rbuf[i] << 0x18) | (gbuf[i] << 0x10) | (bbuf[i] << 8) | alpha;
if (isNpcSprite == SPRITE_MODE_PLAYER) { 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 { } 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++) { for (j = 0; j < numParts; targetPart = targetPart->nextPart, j++) {
if (!(targetPart->flags & 0x20000)) { if (!(targetPart->flags & 0x20000)) {
ActorPartBlueprint* partBlueprint = targetPart->staticData; ActorPartBlueprint* partBlueprint = targetPart->staticData;
s8 partIndex; s8 partID;
if (!(targetPart->flags & 0x100000)) { if (!(targetPart->flags & 0x100000)) {
fp = !arg1; // TODO ?????? fp = !arg1; // TODO ??????
if (fp) { if (fp) {
@ -173,12 +173,12 @@ void create_target_list(Actor* actor, s32 arg1) {
} }
targetData->actorID = ACTOR_CLASS_ENEMY | i; targetData->actorID = ACTOR_CLASS_ENEMY | i;
partIndex = partBlueprint->index; partID = partBlueprint->index;
targetData->pos.x = f6; targetData->pos.x = f6;
targetData->pos.y = f8; targetData->pos.y = f8;
targetData->pos.z = f10; targetData->pos.z = f10;
targetData->unk_10 = 0; targetData->unk_10 = 0;
targetData->partID = partIndex; targetData->partID = partID;
if ((targetActor->flags & 0x4000) && !(targetActor->flags & 0x10)) { if ((targetActor->flags & 0x4000) && !(targetActor->flags & 0x10)) {
targetData->unk_10 = 100; targetData->unk_10 = 100;
@ -967,7 +967,7 @@ void func_80263CC4(s32 arg0) {
start_script(&D_80293820, 10, 0)->varTable[0] = 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) { if (animationIndex >= 0) {
Actor* actor = get_actor(actorID); Actor* actor = get_actor(actorID);
ActorPart* part; ActorPart* part;
@ -981,8 +981,8 @@ void set_animation(s32 actorID, s32 partIdx, s32 animationIndex) {
} }
break; break;
case ACTOR_CLASS_PARTNER: case ACTOR_CLASS_PARTNER:
if (partIdx != 0) { if (partID != 0) {
part = get_actor_part(actor, partIdx); part = get_actor_part(actor, partID);
if (part == NULL) { if (part == NULL) {
part = &actor->partsTable[0]; part = &actor->partsTable[0];
@ -998,7 +998,7 @@ void set_animation(s32 actorID, s32 partIdx, s32 animationIndex) {
} }
break; break;
case ACTOR_CLASS_ENEMY: case ACTOR_CLASS_ENEMY:
part = get_actor_part(actor, partIdx); part = get_actor_part(actor, partID);
if (part->currentAnimation != animationIndex) { if (part->currentAnimation != animationIndex) {
part->currentAnimation = animationIndex; part->currentAnimation = animationIndex;
spr_update_sprite(part->spriteInstanceID, animationIndex, part->animationRate); 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); Actor* actor = get_actor(actorID);
ActorPart* part; ActorPart* part;
switch (actorID & ACTOR_CLASS_MASK) { switch (actorID & ACTOR_CLASS_MASK) {
case ACTOR_CLASS_PARTNER: case ACTOR_CLASS_PARTNER:
if (partIndex != 0) { if (partID != 0) {
part = get_actor_part(actor, partIndex); part = get_actor_part(actor, partID);
if (part != NULL) { if (part != NULL) {
part->animationRate = rate; part->animationRate = rate;
return; return;
@ -1047,7 +1047,7 @@ void set_animation_rate(s32 actorID, s32 partIndex, f32 rate) {
break; break;
case ACTOR_CLASS_PLAYER: case ACTOR_CLASS_PLAYER:
case ACTOR_CLASS_ENEMY: case ACTOR_CLASS_ENEMY:
part = get_actor_part(actor, partIndex); part = get_actor_part(actor, partID);
part->animationRate = rate; part->animationRate = rate;
break; break;
} }
@ -1057,11 +1057,11 @@ void set_actor_yaw(s32 actorID, s32 yaw) {
get_actor(actorID)->yaw = yaw; get_actor(actorID)->yaw = yaw;
} }
void set_part_yaw(s32 actorID, s32 partIndex, s32 value) { void set_part_yaw(s32 actorID, s32 partID, s32 value) {
get_actor_part(get_actor(actorID), partIndex)->yaw = 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); Actor* actor = get_actor(actorID);
ActorPart* part; ActorPart* part;
@ -1071,17 +1071,17 @@ void set_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
break; break;
case ACTOR_CLASS_PARTNER: case ACTOR_CLASS_PARTNER:
case ACTOR_CLASS_ENEMY: case ACTOR_CLASS_ENEMY:
if (partIndex == 0) { if (partID == 0) {
actor->flags |= flags; actor->flags |= flags;
} else { } else {
part = get_actor_part(actor, partIndex); part = get_actor_part(actor, partID);
part->flags |= flags; part->flags |= flags;
} }
break; 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); Actor* actor = get_actor(actorID);
ActorPart* part; ActorPart* part;
@ -1091,10 +1091,10 @@ void clear_part_flag_bits(s32 actorID, s32 partIndex, s32 flags) {
break; break;
case ACTOR_CLASS_PARTNER: case ACTOR_CLASS_PARTNER:
case ACTOR_CLASS_ENEMY: case ACTOR_CLASS_ENEMY:
if (partIndex == 0) { if (partID == 0) {
actor->flags &= ~flags; actor->flags &= ~flags;
} else { } else {
part = get_actor_part(actor, partIndex); part = get_actor_part(actor, partID);
part->flags &= ~flags; part->flags &= ~flags;
} }
break; 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]; ActorPart* part = &actor->partsTable[0];
if (partIndex < 0 || part->nextPart == NULL) { if (partID < 0 || part->nextPart == NULL) {
return part; return part;
} }
while (part != NULL) { while (part != NULL) {
if (part->staticData->index == partIndex) { if (part->staticData->index == partID) {
return part; return part;
} }
part = part->nextPart; part = part->nextPart;
@ -1809,8 +1809,8 @@ Actor* create_actor(Formation formation) {
part->targetOffset.x = actorPartBP->targetOffset.x; part->targetOffset.x = actorPartBP->targetOffset.x;
part->targetOffset.y = actorPartBP->targetOffset.y; part->targetOffset.y = actorPartBP->targetOffset.y;
part->unk_70 = 0; part->unk_70 = 0;
part->unk_75 = actorPartBP->unk_1C; part->projectileTargetOffset.x = actorPartBP->projectileTargetOffset.x;
part->unk_76 = actorPartBP->unk_1D; part->projectileTargetOffset.y = actorPartBP->projectileTargetOffset.y;
part->rotation.x = 0.0f; part->rotation.x = 0.0f;
part->rotation.y = 0.0f; part->rotation.y = 0.0f;
part->rotation.z = 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) { void add_actor_decoration(Actor* actor, s32 decorationIndex, s32 decorationType) {
ActorPart* part; ActorPart* part;
for (part = actor->partsTable; part != NULL; part = part->nextPart) { for (part = actor->partsTable; part != NULL; part = part->nextPart) {
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION)) && part->idleAnimations && if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION))
!(part->flags & ACTOR_PART_FLAG_2)) && part->idleAnimations
{ && !(part->flags & ACTOR_PART_FLAG_2)
) {
add_part_decoration(part, decorationIndex, decorationType); add_part_decoration(part, decorationIndex, decorationType);
} }
} }
@ -2747,9 +2748,10 @@ void remove_actor_decoration(Actor* actor, s32 decorationIndex) {
ActorPart* part; ActorPart* part;
for (part = actor->partsTable; part != NULL; part = part->nextPart) { for (part = actor->partsTable; part != NULL; part = part->nextPart) {
if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION)) && part->idleAnimations && if (!(part->flags & (ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION))
!(part->flags & ACTOR_PART_FLAG_2)) && part->idleAnimations
{ && !(part->flags & ACTOR_PART_FLAG_2)
) {
remove_part_decoration(part, decorationIndex); remove_part_decoration(part, decorationIndex);
} }
} }
@ -2775,16 +2777,16 @@ s32 player_team_is_ability_active(Actor* actor, s32 ability) {
return hasAbility; return hasAbility;
} }
void create_part_shadow(s32 actorID, s32 partIndex) { void create_part_shadow(s32 actorID, s32 partID) {
ActorPart* part = get_actor_part(get_actor(actorID), partIndex); ActorPart* part = get_actor_part(get_actor(actorID), partID);
part->flags &= ~ACTOR_PART_FLAG_4; part->flags &= ~ACTOR_PART_FLAG_4;
part->shadowIndex = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z); part->shadowIndex = create_shadow_type(0, part->currentPos.x, part->currentPos.y, part->currentPos.z);
part->shadowScale = part->size.x / 24.0; part->shadowScale = part->size.x / 24.0;
} }
void remove_part_shadow(s32 actorID, s32 partIndex) { void remove_part_shadow(s32 actorID, s32 partID) {
ActorPart* part = get_actor_part(get_actor(actorID), partIndex); ActorPart* part = get_actor_part(get_actor(actorID), partID);
part->flags |= ACTOR_PART_FLAG_4; part->flags |= ACTOR_PART_FLAG_4;
delete_shadow(part->shadowIndex); 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 && if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
targetPart->eventFlags & ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION) { && battleStatus->currentAttackElement & DAMAGE_TYPE_BLAST
&& targetPart->eventFlags & ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION
) {
targetDefense = 0; targetDefense = 0;
currentAttackDamage = target->currentHP; currentAttackDamage = target->currentHP;
} }
@ -654,12 +656,12 @@ HitResult calc_player_damage_enemy(void) {
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) { if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) {
if (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR if (battleStatus->currentAttackElement & DAMAGE_TYPE_FEAR
&& rand_int(99) < (target->actorBlueprint->escapeChance * battleStatus->statusChance) / 100 && rand_int(99) < (target->actorBlueprint->escapeChance * battleStatus->statusChance) / 100
&& !(target->debuff == STATUS_FEAR && (target->debuff != STATUS_FEAR
|| target->debuff == STATUS_DIZZY && target->debuff != STATUS_DIZZY
|| target->debuff == STATUS_PARALYZE && target->debuff != STATUS_PARALYZE
|| target->debuff == STATUS_SLEEP && target->debuff != STATUS_SLEEP
|| target->debuff == STATUS_FROZEN && target->debuff != STATUS_FROZEN
|| target->debuff == STATUS_STOP) && target->debuff != STATUS_STOP)
&& !(target->flags & ACTOR_FLAG_400) && !(target->flags & ACTOR_FLAG_400)
) { ) {
dispatch_event_actor(target, EVENT_SCARE_AWAY); 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 ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
if (!(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT) && targetPart->eventFlags & ACTOR_EVENT_FLAG_POWER_BOUNCE) { && !(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT)
if (dispatchEvent == EVENT_HIT_COMBO) { && targetPart->eventFlags & ACTOR_EVENT_FLAG_POWER_BOUNCE
dispatchEvent = EVENT_POWER_BOUNCE_HIT; ) {
} 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) { if (dispatchEvent == EVENT_HIT) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) && targetPart->eventFlags & ACTOR_EVENT_FLAG_GROUNDABLE) { dispatchEvent = EVENT_POWER_BOUNCE_HIT;
if (dispatchEvent == EVENT_HIT) { }
dispatchEvent = EVENT_FALL_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) { if (dispatchEvent == EVENT_ZERO_DAMAGE) {
dispatchEvent = EVENT_FALL_TRIGGER; 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 (dispatchEvent == EVENT_DEATH) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) && dispatchEvent = EVENT_POWER_BOUNCE_DEATH;
targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) { }
if (dispatchEvent == EVENT_HIT) { }
dispatchEvent = EVENT_FLIP_TRIGGER;
}
if (dispatchEvent == EVENT_IMMUNE) { if ((gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
dispatchEvent = EVENT_FLIP_TRIGGER; && (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)) { if (dispatchEvent == EVENT_IMMUNE) {
tempBinary = TRUE; 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) && if (!(gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE)
battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP) && && battleStatus->currentAttackElement & (DAMAGE_TYPE_QUAKE | DAMAGE_TYPE_POW | DAMAGE_TYPE_JUMP)
targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) { && targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE
) {
if (dispatchEvent == EVENT_HIT_COMBO) { if (dispatchEvent == EVENT_HIT_COMBO) {
dispatchEvent = EVENT_FLIP_TRIGGER; dispatchEvent = EVENT_FLIP_TRIGGER;
} }
@ -793,70 +798,73 @@ HitResult calc_player_damage_enemy(void) {
} }
} }
if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE) { if (gBattleStatus.flags1 & BS_FLAGS1_SP_EVT_ACTIVE
if (battleStatus->currentAttackElement & DAMAGE_TYPE_SHELL_CRACK && targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE) { && battleStatus->currentAttackElement & DAMAGE_TYPE_SHELL_CRACK
if (dispatchEvent == EVENT_HIT) { && targetPart->eventFlags & ACTOR_EVENT_FLAG_FLIPABLE
dispatchEvent = EVENT_SHELL_CRACK_HIT; ) {
} 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) { if (dispatchEvent == EVENT_IMMUNE) {
if (battleStatus->currentAttackElement & (DAMAGE_TYPE_BLAST | DAMAGE_TYPE_FIRE)) { dispatchEvent = EVENT_SHELL_CRACK_HIT;
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);
} }
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; battleStatus->wasStatusInflicted = wasStatusInflicted;
dispatch_event_actor(target, dispatchEvent); dispatch_event_actor(target, dispatchEvent);

View File

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

View File

@ -134,10 +134,10 @@ HitResult calc_partner_test_enemy(void) {
} }
// check partner airlifting electrified enemy // check partner airlifting electrified enemy
if (partner->staticStatus != STATUS_STATIC && if (partner->staticStatus != STATUS_STATIC
(target->staticStatus == STATUS_STATIC || (part->eventFlags & ACTOR_EVENT_FLAG_ELECTRIFIED)) && && (target->staticStatus == STATUS_STATIC || (part->eventFlags & ACTOR_EVENT_FLAG_ELECTRIFIED))
!(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT) && && !(battleStatus->currentAttackElement & DAMAGE_TYPE_NO_CONTACT)
!(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_SHOCK_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); 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); apply_shock_effect(partner);
@ -146,9 +146,9 @@ HitResult calc_partner_test_enemy(void) {
} }
// check partner airlifting fiery enemy // check partner airlifting fiery enemy
if (!(battleStatus->currentAttackElement & (DAMAGE_TYPE_NO_CONTACT | DAMAGE_TYPE_SMASH)) && if (!(battleStatus->currentAttackElement & (DAMAGE_TYPE_NO_CONTACT | DAMAGE_TYPE_SMASH))
(part->eventFlags & ACTOR_EVENT_FLAG_FIREY) && && (part->eventFlags & ACTOR_EVENT_FLAG_FIREY)
!(battleStatus->currentAttackEventSuppression & SUPPRESS_EVENT_BURN_CONTACT)) && !(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); 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); 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) && if (tempBinary
!(gBattleStatus.flags1 & BS_FLAGS1_80)) { && 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 && if ((battleStatus->lastAttackDamage > 0 &&
((sfx_play_sound_at_position(SOUND_231, SOUND_SPACE_MODE_0, state->goalPos.x, state->goalPos.y, ((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 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 { } else {
target = &actor->targetData[targetIndexList[selectedTargetIndex]]; target = &actor->targetData[targetIndexList[selectedTargetIndex]];
anotherActor = get_actor(target->actorID); 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) { if (msgID == MSG_NONE) {
msgID = bActorNames[anotherActor->actorType]; msgID = bActorNames[anotherActor->actorType];
} }
@ -5189,7 +5189,7 @@ void btl_state_draw_select_target(void) {
} else { } else {
target = &actor->targetData[targetIndexList[selectedTargetIndex]]; target = &actor->targetData[targetIndexList[selectedTargetIndex]];
anotherActor = get_actor(target->actorID); 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) { if (msgID == MSG_NONE) {
msgID = bActorNames[anotherActor->actorType]; msgID = bActorNames[anotherActor->actorType];
} }

View File

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

View File

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

View File

@ -72,14 +72,14 @@ s32 can_pause(s32 currentButtons, s32 pressedButtons) {
PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus; PartnerActionStatus* partnerActionStatus = &gPartnerActionStatus;
s32 actionState = gPlayerStatus.actionState; s32 actionState = gPlayerStatus.actionState;
if (!(gPlayerStatus.animFlags & PA_FLAG_CHANGING_MAP) && if (!(gPlayerStatus.animFlags & PA_FLAG_CHANGING_MAP)
!(gPlayerStatus.flags & PS_FLAG_PAUSE_DISABLED) && && !(gPlayerStatus.flags & PS_FLAG_PAUSE_DISABLED)
!(currentButtons & (BUTTON_Z | BUTTON_R)) && && !(currentButtons & (BUTTON_Z | BUTTON_R))
(pressedButtons & (BUTTON_START | BUTTON_C_LEFT | BUTTON_C_RIGHT)) && && (pressedButtons & (BUTTON_START | BUTTON_C_LEFT | BUTTON_C_RIGHT))
((gGameStatusPtr->mapShop == NULL) || !(gGameStatusPtr->mapShop->flags & 1)) && && ((gGameStatusPtr->mapShop == NULL) || !(gGameStatusPtr->mapShop->flags & SHOP_FLAG_1))
!(gOverrideFlags & GLOBAL_OVERRIDES_DISABLE_MENUS) && && !(gOverrideFlags & GLOBAL_OVERRIDES_DISABLE_MENUS)
!is_picking_up_item()) && !is_picking_up_item()
{ ) {
if (!(gPlayerStatus.animFlags & PA_FLAG_8BIT_MARIO)) { if (!(gPlayerStatus.animFlags & PA_FLAG_8BIT_MARIO)) {
if (partnerActionStatus->partnerActionState == PARTNER_ACTION_NONE) { if (partnerActionStatus->partnerActionState == PARTNER_ACTION_NONE) {
if (!(gPlayerStatus.flags & PS_FLAG_NO_STATIC_COLLISION)) { 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; BSS ActionCommandStatus gActionCommandStatus;
ApiStatus LoadActionCommand(Evt* script, s32 isInitialCall) { API_CALLABLE(LoadActionCommand) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
s32 cmd = evt_get_variable(script, *args++); 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); gBattleStatus.actionCmdDifficultyTable = (s32*) evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetupMashMeter(Evt* script, s32 isInitialCall) { API_CALLABLE(SetupMashMeter) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
gActionCommandStatus.mashMeterIntervals = evt_get_variable(script, *args++); gActionCommandStatus.mashMeterIntervals = evt_get_variable(script, *args++);
gActionCommandStatus.mashMeterCutoffs[1] = 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; return ApiStatus_DONE2;
} }
ApiStatus GetActionSuccess(Evt* script, s32 isInitialCall) { API_CALLABLE(GetActionSuccess) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetActionSuccess(Evt* script, s32 isInitialCall) { API_CALLABLE(SetActionSuccess) {
gBattleStatus.actionSuccess = evt_get_variable(script, *script->ptrReadPos); gBattleStatus.actionSuccess = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetActionCommandMode(Evt* script, s32 isInitialCall) { API_CALLABLE(SetActionCommandMode) {
gBattleStatus.actionCommandMode = evt_get_variable(script, *script->ptrReadPos); gBattleStatus.actionCommandMode = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus GetActionCommandMode(Evt* script, s32 isInitialCall) { API_CALLABLE(GetActionCommandMode) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionCommandMode); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionCommandMode);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetActionHudPrepareTime(Evt* script, s32 isInitialCall) { API_CALLABLE(SetActionHudPrepareTime) {
gActionCommandStatus.hudPrepareTime = evt_get_variable(script, *script->ptrReadPos); gActionCommandStatus.hudPrepareTime = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus GetCommandAutoSuccess(Evt* script, s32 isInitialCall) { API_CALLABLE(GetCommandAutoSuccess) {
evt_set_variable(script, *script->ptrReadPos, gActionCommandStatus.autoSucceed); evt_set_variable(script, *script->ptrReadPos, gActionCommandStatus.autoSucceed);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetCommandAutoSuccess(Evt* script, s32 isInitialCall) { API_CALLABLE(SetCommandAutoSuccess) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (evt_get_variable(script, *script->ptrReadPos) != 0) { if (evt_get_variable(script, *script->ptrReadPos) != 0) {
@ -718,12 +718,12 @@ ApiStatus SetCommandAutoSuccess(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_802693F0(Evt* script, s32 isInitialCall) { API_CALLABLE(func_802693F0) {
gBattleStatus.flags1 &= ~BS_FLAGS1_4000; gBattleStatus.flags1 &= ~BS_FLAGS1_4000;
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus CloseActionCommandInfo(Evt* script, s32 isInitialCall) { API_CALLABLE(CloseActionCommandInfo) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (isInitialCall) { if (isInitialCall) {
@ -743,7 +743,7 @@ ApiStatus CloseActionCommandInfo(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_80269470(Evt* script, s32 isInitialCall) { API_CALLABLE(func_80269470) {
if (isInitialCall) { if (isInitialCall) {
action_command_free(); action_command_free();
return ApiStatus_BLOCK; return ApiStatus_BLOCK;
@ -753,7 +753,7 @@ ApiStatus func_80269470(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus ShowActionHud(Evt* script, s32 isInitialCall) { API_CALLABLE(ShowActionHud) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
if (evt_get_variable(script, *script->ptrReadPos) == 0) { if (evt_get_variable(script, *script->ptrReadPos) == 0) {
@ -764,42 +764,42 @@ ApiStatus ShowActionHud(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus GetActionSuccessCopy(Evt* script, s32 isInitialCall) { API_CALLABLE(GetActionSuccessCopy) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_80269524(Evt* script, s32 isInitialCall) { API_CALLABLE(func_80269524) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_86); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_86);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_80269550(Evt* script, s32 isInitialCall) { API_CALLABLE(func_80269550) {
gBattleStatus.unk_86 = evt_get_variable(script, *script->ptrReadPos); gBattleStatus.unk_86 = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus GetBlockResult(Evt* script, s32 isInitialCall) { API_CALLABLE(GetBlockResult) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.blockResult); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.blockResult);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus GetActionResult(Evt* script, s32 isInitialCall) { API_CALLABLE(GetActionResult) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionResult); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.actionResult);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus SetActionResult(Evt* script, s32 isInitialCall) { API_CALLABLE(SetActionResult) {
gBattleStatus.actionResult = evt_get_variable(script, *script->ptrReadPos); gBattleStatus.actionResult = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_80269600(Evt* script, s32 isInitialCall) { API_CALLABLE(func_80269600) {
evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_85); evt_set_variable(script, *script->ptrReadPos, gBattleStatus.unk_85);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus func_8026962C(Evt* script, s32 isInitialCall) { API_CALLABLE(func_8026962C) {
gBattleStatus.unk_85 = evt_get_variable(script, *script->ptrReadPos); gBattleStatus.unk_85 = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_air_lift_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_air_lift_init);
ApiStatus action_command_air_lift_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_air_lift_start);
void action_command_air_lift_update(void); void action_command_air_lift_update(void);
void action_command_air_lift_draw(void); void action_command_air_lift_draw(void);
void action_command_air_lift_free(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[]; extern s32 actionCmdTableAirRaid[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement; s32 hudElement;

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_body_slam_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_body_slam_init);
ApiStatus action_command_body_slam_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_body_slam_start);
void action_command_body_slam_update(void); void action_command_body_slam_update(void);
void action_command_body_slam_draw(void); void action_command_body_slam_draw(void);
void action_command_body_slam_free(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[]; extern s32 actionCmdTableBomb[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 hudElement; s32 hudElement;

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_break_free_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_break_free_init);
ApiStatus action_command_break_free_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_break_free_start);
void action_command_break_free_update(void); void action_command_break_free_update(void);
void action_command_break_free_draw(void); void action_command_break_free_draw(void);
void action_command_break_free_free(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; u8 mashMeterCutoff;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; 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[]; extern s32 actionCmdTableDizzyShell[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_dizzy_shell_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_dizzy_shell_init);
ApiStatus action_command_dizzy_shell_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_dizzy_shell_start);
void action_command_dizzy_shell_update(void); void action_command_dizzy_shell_update(void);
void action_command_dizzy_shell_draw(void); void action_command_dizzy_shell_draw(void);
void action_command_dizzy_shell_free(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[]; extern s32 actionCmdTableFireShell[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; s32 id;

View File

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

View File

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

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_hammer_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_hammer_init);
ApiStatus action_command_hammer_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_hammer_start);
void action_command_hammer_update(void); void action_command_hammer_update(void);
void action_command_hammer_draw(void); void action_command_hammer_draw(void);
void action_command_hammer_free(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[]; extern s32 actionCmdTableHurricane[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; s32 id;
@ -58,7 +58,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus N(start)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_jump_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_jump_init);
ApiStatus action_command_jump_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_jump_start);
void action_command_jump_update(void); void action_command_jump_update(void);
void action_command_jump_draw(void); void action_command_jump_draw(void);
void action_command_jump_free(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[]; extern s32 actionCmdTableMegaShock[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
s32 elementID; s32 elementID;
@ -58,7 +58,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus N(start)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(start)) {
Bytecode* readPos = script->ptrReadPos; Bytecode* readPos = script->ptrReadPos;
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_spiny_surge_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_spiny_surge_init);
ApiStatus action_command_spiny_surge_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_spiny_surge_start);
void action_command_spiny_surge_update(void); void action_command_spiny_surge_update(void);
void action_command_spiny_surge_draw(void); void action_command_spiny_surge_draw(void);
void action_command_spiny_surge_free(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[]; extern s32 actionCmdTableSpook[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; s32 id;

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_spook_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_spook_init);
ApiStatus action_command_spook_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_spook_start);
void action_command_spook_update(void); void action_command_spook_update(void);
void action_command_spook_draw(void); void action_command_spook_draw(void);
void action_command_spook_free(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[]; extern s32 actionCmdTableSquirt[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; s32 id;
@ -46,7 +46,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus N(start)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_stop_leech_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_stop_leech_init);
ApiStatus action_command_stop_leech_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_stop_leech_start);
void action_command_stop_leech_update(void); void action_command_stop_leech_update(void);
void action_command_stop_leech_draw(void); void action_command_stop_leech_draw(void);
void action_command_stop_leech_free(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[]; extern s32 actionCmdTableTidalWave[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
s32 id; 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; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;

View File

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

View File

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

View File

@ -3,8 +3,8 @@
#include "common_structs.h" #include "common_structs.h"
ApiStatus action_command_water_block_init(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_water_block_init);
ApiStatus action_command_water_block_start(Evt* script, s32 isInitialCall); API_CALLABLE(action_command_water_block_start);
void action_command_water_block_update(void); void action_command_water_block_update(void);
void action_command_water_block_draw(void); void action_command_water_block_draw(void);
void action_command_water_block_free(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[]; extern s32 actionCmdTableWhirlwind[];
ApiStatus N(init)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(init)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
@ -117,7 +117,7 @@ ApiStatus N(init)(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus N(start)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(start)) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus; BattleStatus* battleStatus = &gBattleStatus;
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;

View File

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

View File

@ -64,7 +64,7 @@ ActorPartBlueprint N(partsTable_80220C14)[] = {
.defenseTable = N(defenseTable_80220B40), .defenseTable = N(defenseTable_80220B40),
.eventFlags = ACTOR_EVENT_FLAG_SPIKY_TOP, .eventFlags = ACTOR_EVENT_FLAG_SPIKY_TOP,
.elementImmunityFlags = 0, .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(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80221D20)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B54))) EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B54)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 15) 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(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_SPIKY_TOP, 0)
EVT_CALL(N(SetSpinSmashable), 0) EVT_CALL(N(SetSpinSmashable), 0)
EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_400, 1) 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(SetIdleAnimations, ACTOR_SELF, 1, EVT_PTR(N(idleAnimations_80221CD4)))
EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B40))) EVT_CALL(SetDefenseTable, ACTOR_SELF, 1, EVT_PTR(N(defenseTable_80220B40)))
EVT_CALL(SetTargetOffset, ACTOR_SELF, 1, 0, 22) 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_CALL(SetPartEventBits, ACTOR_SELF, 1, ACTOR_EVENT_FLAG_SPIKY_TOP, 1)
EVT_WAIT(1) EVT_WAIT(1)
EVT_CALL(N(SetSpinSmashable), 1) EVT_CALL(N(SetSpinSmashable), 1)

View File

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

View File

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

View File

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

View File

@ -88,7 +88,7 @@ ActorPartBlueprint N(partsTable_80223D30)[] = {
.defenseTable = N(defenseTable_80223C78), .defenseTable = N(defenseTable_80223C78),
.eventFlags = ACTOR_EVENT_FLAG_0, .eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0, .elementImmunityFlags = 0,
.unk_1D = 246, .projectileTargetOffset = { 0, -10 },
}, },
{ {
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_MULTI_TARGET | ACTOR_PART_FLAG_80000000, .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), .defenseTable = N(defenseTable_80223C78),
.eventFlags = ACTOR_EVENT_FLAG_0, .eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 0, .elementImmunityFlags = 0,
.unk_1D = 246, .projectileTargetOffset = { 0, -10 },
}, },
}; };
@ -142,7 +142,7 @@ EvtScript N(init_80223DA0) = {
EVT_END EVT_END
}; };
ApiStatus N(func_80218680_4FF0D0)(Evt* script, s32 isInitialCall) { API_CALLABLE(N(func_80218680_4FF0D0)) {
Bytecode *args = script->ptrReadPos; Bytecode *args = script->ptrReadPos;
EffectInstance* effect = (EffectInstance*) evt_get_variable(script, *args++); 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_05);
extern Stage N(arn_06); extern Stage N(arn_06);
Formation N(formation_00) = { Formation N(Formation_00) = {
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 10 }, { .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 = 1 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 9 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 }, { .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 7 }, .priority = 7 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 }, { .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
{ .actor = &N(hypergoomba), .home = { .index = 3 }, .priority = 7 }, { .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 }, { .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 = 5 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 9 }, { .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 = 4 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 }, { .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 }, { .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 = 4 }, .priority = 10 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 }, { .actor = &N(hyper_paragoomba), .home = { .index = 5 }, .priority = 9 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 }, { .actor = &N(hyper_paragoomba), .home = { .index = 6 }, .priority = 8 },
{ .actor = &N(hyper_paragoomba), .home = { .index = 7 }, .priority = 7 }, { .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 }, { .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 = 1 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 2 }, .priority = 9 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hyper_cleft), .home = { .index = 2 }, .priority = 8 }, { .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(hyper_cleft), .home = { .index = 0 }, .priority = 10 },
{ .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hypergoomba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(hyper_cleft), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 }, { .actor = &N(hypergoomba), .home = { .index = 2 }, .priority = 8 },
@ -103,38 +103,38 @@ Formation N(formation_0E) = {
Vec3i N(vector3D_802280C0) = { 90, 20, 0 }; 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 }, { .actor = &N(tubbas_heart), .home = { .vec = &N(vector3D_802280C0) }, .priority = 10 },
}; };
Vec3i N(vector3D_802280E8) = { 75, 0, 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 }, { .actor = &N(tubba_blubba), .home = { .vec = &N(vector3D_802280E8) }, .priority = 10 },
}; };
BattleList N(formationTable) = { BattleList N(Formations) = {
BATTLE("ハイパークリボー", N(formation_00), &N(arn_01)), BATTLE(N(Formation_00), &N(arn_01), "ハイパークリボー"),
BATTLE("ハイパークリボーx", N(formation_01), &N(arn_01)), BATTLE(N(Formation_01), &N(arn_01), "ハイパークリボーx"),
BATTLE("ハイパークリボーx", N(formation_02), &N(arn_01)), BATTLE(N(Formation_02), &N(arn_01), "ハイパークリボーx"),
BATTLE("ハイパークリボーx2,ハイパーパタクリボー", N(formation_03), &N(arn_01)), BATTLE(N(Formation_03), &N(arn_01), "ハイパークリボーx2,ハイパーパタクリボー"),
BATTLE("ハイパークリボーx3,ハイパーパタクリボー", N(formation_04), &N(arn_01)), BATTLE(N(Formation_04), &N(arn_01), "ハイパークリボーx3,ハイパーパタクリボー"),
BATTLE("ハイパークリボーx2,ハイパーパタクリボー,ハイパークリボー", N(formation_05), &N(arn_01)), BATTLE(N(Formation_05), &N(arn_01), "ハイパークリボーx2,ハイパーパタクリボー,ハイパークリボー"),
BATTLE("ハイパーパタクリボー", N(formation_06), &N(arn_01)), BATTLE(N(Formation_06), &N(arn_01), "ハイパーパタクリボー"),
BATTLE("ハイパーパタクリボーx2", N(formation_07), &N(arn_01)), BATTLE(N(Formation_07), &N(arn_01), "ハイパーパタクリボーx2"),
BATTLE("ハイパーパタクリボーx3", N(formation_08), &N(arn_01)), BATTLE(N(Formation_08), &N(arn_01), "ハイパーパタクリボーx3"),
BATTLE("ハイパーパタクリボーx4", N(formation_09), &N(arn_01)), BATTLE(N(Formation_09), &N(arn_01), "ハイパーパタクリボーx4"),
BATTLE("ハイパーシンエモン", N(formation_0A), &N(arn_01)), BATTLE(N(Formation_0A), &N(arn_01), "ハイパーシンエモン"),
BATTLE("ハイパーシンエモンx2", N(formation_0B), &N(arn_01)), BATTLE(N(Formation_0B), &N(arn_01), "ハイパーシンエモンx2"),
BATTLE("ハイパーシンエモンx3", N(formation_0C), &N(arn_01)), BATTLE(N(Formation_0C), &N(arn_01), "ハイパーシンエモンx3"),
BATTLE("ハイパーシンエモン,ハイパークリボーx2", N(formation_0D), &N(arn_01)), BATTLE(N(Formation_0D), &N(arn_01), "ハイパーシンエモン,ハイパークリボーx2"),
BATTLE("ハイパーシンエモンx2,ハイパークリボーx2", N(formation_0E), &N(arn_01)), BATTLE(N(Formation_0E), &N(arn_01), "ハイパーシンエモンx2,ハイパークリボーx2"),
BATTLE("ドガボンしんぞう", N(formation_0F), &N(arn_06)), BATTLE(N(Formation_0F), &N(arn_06), "ドガボンしんぞう"),
BATTLE("ドガボン", N(formation_10), &N(arn_01)), BATTLE(N(Formation_10), &N(arn_01), "ドガボン"),
{}, {},
}; };
StageList N(stageTable) = { StageList N(Stages) = {
{ "arn_01", &N(arn_01) }, { "arn_01", &N(arn_01) },
{ "arn_02", &N(arn_02) }, { "arn_02", &N(arn_02) },
{ "arn_03", &N(arn_03) }, { "arn_03", &N(arn_03) },

View File

@ -71,7 +71,7 @@ ActorPartBlueprint N(partsTable_80218D24)[] = {
.defenseTable = N(defenseTable_80218C6C), .defenseTable = N(defenseTable_80218C6C),
.eventFlags = ACTOR_EVENT_FLAG_0, .eventFlags = ACTOR_EVENT_FLAG_0,
.elementImmunityFlags = 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_04);
extern Stage N(dgb_05); extern Stage N(dgb_05);
Formation N(formation_00) = { Formation N(Formation_00) = {
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 10 }, { .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 = 1 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 9 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 8 }, { .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 = 0 }, .priority = 10 },
{ .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 }, { .actor = &N(clubba), .home = { .index = 1 }, .priority = 9 },
{ .actor = &N(clubba), .home = { .index = 2 }, .priority = 8 }, { .actor = &N(clubba), .home = { .index = 2 }, .priority = 8 },
@ -36,25 +36,25 @@ Formation N(formation_03) = {
Vec3i N(vector3D_8021B348) = { 75, 0, 10 }; 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 }, { .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 }, { .actor = &N(tubba_blubba), .home = { .vec = &N(vector3D_8021B348) }, .priority = 10, .var0 = 1 },
}; };
BattleList N(formationTable) = { BattleList N(Formations) = {
BATTLE("ガボンへい", N(formation_00), &N(dgb_01)), BATTLE(N(Formation_00), &N(dgb_01), "ガボンへい"),
BATTLE("ガボンへいx", N(formation_01), &N(dgb_01)), BATTLE(N(Formation_01), &N(dgb_01), "ガボンへいx"),
BATTLE("ガボンへいx", N(formation_02), &N(dgb_01)), BATTLE(N(Formation_02), &N(dgb_01), "ガボンへいx"),
BATTLE("ガボンへいx", N(formation_03), &N(dgb_01)), BATTLE(N(Formation_03), &N(dgb_01), "ガボンへいx"),
BATTLE("むてきドガボン", N(formation_04), &N(dgb_01)), BATTLE(N(Formation_04), &N(dgb_01), "むてきドガボン"),
BATTLE("むてきドガボンせりふなし", N(formation_05), &N(dgb_01)), BATTLE(N(Formation_05), &N(dgb_01), "むてきドガボンせりふなし"),
{}, {},
}; };
StageList N(stageTable) = { StageList N(Stages) = {
{ "dgb_01", &N(dgb_01) }, { "dgb_01", &N(dgb_01) },
{ "dgb_02", &N(dgb_02) }, { "dgb_02", &N(dgb_02) },
{ "dgb_03", &N(dgb_03) }, { "dgb_03", &N(dgb_03) },

View File

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

View File

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

View File

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

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