enum cleanup (#784)

* flag fixes

* enum vals

* npc flags

* ai flags

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-09-24 15:34:16 -04:00 committed by GitHub
parent 87179cdf3f
commit b6ab97c066
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
101 changed files with 434 additions and 399 deletions

View File

@ -1034,6 +1034,8 @@ enum SoundIDs {
SOUND_2019 = 0x00002019,
SOUND_201B = 0x0000201B,
SOUND_2020 = 0x00002020,
SOUND_202A = 0x0000202A,
SOUND_202B = 0x0000202B,
SOUND_202C = 0x0000202C,
SOUND_202D = 0x0000202D,
SOUND_202E = 0x0000202E,
@ -1182,6 +1184,8 @@ enum SoundIDs {
SOUND_212D = 0x0000212D,
SOUND_212E = 0x0000212E,
SOUND_8161 = 0x00008161,
SOUND_80000000 = 0x80000000,
SOUND_80000001 = 0x80000001,
SOUND_80000002 = 0x80000002,
SOUND_80000003 = 0x80000003,
SOUND_80000004 = 0x80000004,
@ -1231,6 +1235,8 @@ enum SoundIDs {
SOUND_80000038 = 0x80000038,
SOUND_80000039 = 0x80000039,
SOUND_80000040 = 0x80000040,
SOUND_80000041 = 0x80000041,
SOUND_80000042 = 0x80000042,
SOUND_80000043 = 0x80000043,
SOUND_80000044 = 0x80000044,
SOUND_80000045 = 0x80000045,
@ -3126,6 +3132,7 @@ enum NpcFlags {
enum PlayerStatusFlags {
PS_FLAGS_AIRBORNE = 0x0000000E,
PS_FLAGS_1 = 0x00000001,
PS_FLAGS_JUMPING = 0x00000002,
PS_FLAGS_FALLING = 0x00000004,
PS_FLAGS_FLYING = 0x00000008,
@ -3141,7 +3148,7 @@ enum PlayerStatusFlags {
PS_FLAGS_INPUT_DISABLED = 0x00002000,
PS_FLAGS_4000 = 0x00004000,
PS_FLAGS_8000 = 0x00008000,
PS_FLAGS_20000 = 0x00020000,
PS_FLAGS_20000 = 0x00020000, // spinning?
PS_FLAGS_40000 = 0x00040000, // physics and animations run at half speed
PS_FLAGS_80000 = 0x00080000,
PS_FLAGS_100000 = 0x00100000,
@ -3982,7 +3989,7 @@ enum EnemyFlags {
enum EnemyAIFlags {
ENEMY_AI_FLAGS_1 = 0x00000001,
ENEMY_AI_FLAGS_2 = 0x00000002, // do not move; do not sense player
ENEMY_AI_FLAGS_4 = 0x00000004, // pause ai
ENEMY_AI_FLAGS_4 = 0x00000004, // pause ai? reset ai?
ENEMY_AI_FLAGS_8 = 0x00000008,
ENEMY_AI_FLAGS_10 = 0x00000010,
ENEMY_AI_FLAGS_20 = 0x00000020,
@ -4160,6 +4167,12 @@ enum ColliderFlags {
COLLIDER_FLAGS_80000000 = 0x80000000
};
enum CollisionChannels {
COLLISION_CHANNEL_10000 = 0x00010000,
COLLISION_CHANNEL_20000 = 0x00020000,
COLLISION_CHANNEL_40000 = 0x00040000,
};
enum CameraInitDataFlags {
CAMERA_INIT_DATA_FLAGS_1 = 0x00000001,
CAMERA_INIT_DATA_FLAGS_2 = 0x00000002,

View File

@ -185,7 +185,7 @@ void func_80036430(void) {
gMapTransitionAlpha = 0xFF;
D_800A0942 = 0x14;
D_800A0944 = 0x01;
gPlayerStatus.flags |= 0x1000;
gPlayerStatus.flags |= PS_FLAGS_1000;
}
void func_8003646C(void) {

View File

@ -189,7 +189,7 @@ void initialize_battle(void) {
battleStatus->tattleFlags[i] = 0;
}
if (gGameStatusPtr->peachFlags & 1) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) {
gBattleStatus.flags2 |= BS_FLAGS2_40;
increment_status_menu_disabled();
} else {

View File

@ -512,7 +512,7 @@ s32 count_power_plus(s32 damageType) {
s32 count;
s32 i;
if (gGameStatusPtr->peachFlags & 1) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) {
return 0;
}

View File

@ -617,7 +617,7 @@ ApiStatus CloseActionCommandInfo(Evt* script, s32 isInitialCall) {
}
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
close_action_command_instruction_popup();
return ApiStatus_DONE2;

View File

@ -1114,7 +1114,7 @@ ApiStatus func_80273444(Evt* script, s32 isInitialCall) {
playerState->unk_28 = 180 / playerState->moveTime;
playerState->unk_2C = playerState->goalPos.y;
if (script->functionTemp[1] != 2) {
sfx_play_sound_at_position(0x160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z);
sfx_play_sound_at_position(SOUND_160, 0, player->currentPos.x, player->currentPos.y, player->currentPos.z);
}
script->functionTemp[0] = TRUE;
}

View File

@ -3,6 +3,7 @@
#include "npc.h"
#include "effects.h"
#include "hud_element.h"
#include "sprite.h"
extern s32 D_80077C40;
extern EnemyDrops D_80077EB8;
@ -772,12 +773,12 @@ s32 check_conversation_trigger(void) {
if (clamp_angle(playerStatus->spriteFacingAngle) < 180.0f) {
angle = clamp_angle(camera->currentYaw - 120.0f);
if (playerStatus->trueAnimation & 0x1000000) {
if (playerStatus->trueAnimation & SPRITE_ID_BACK_FACING) {
angle = clamp_angle(angle + 60.0f);
}
} else {
angle = clamp_angle(camera->currentYaw + 120.0f);
if (playerStatus->trueAnimation & 0x1000000) {
if (playerStatus->trueAnimation & SPRITE_ID_BACK_FACING) {
angle = clamp_angle(angle - 60.0f);
}
}
@ -786,7 +787,7 @@ s32 check_conversation_trigger(void) {
continue;
}
if (!(encounterEnemy->flags & ENEMY_FLAGS_10000) && encounterNpc->flags & 0x20000000) {
if (!(encounterEnemy->flags & ENEMY_FLAGS_10000) && encounterNpc->flags & NPC_FLAG_20000000) {
xTemp = npcX;
yTemp = npcY;
zTemp = npcZ;

View File

@ -623,7 +623,7 @@ void update_player(void) {
playerStatus->flags &= ~PS_FLAGS_400;
update_player_blink();
if (playerStatus->flags & PA_FLAGS_USING_PEACH_PHYSICS) {
if (playerStatus->flags & PS_FLAGS_1000) {
phys_update_action_state();
if (!func_800E0208()) {
collision_main_lateral();
@ -680,7 +680,7 @@ void check_input_use_partner(void) {
if (!(playerStatus->animFlags & PA_FLAGS_8BIT_MARIO)) {
if (playerStatus->animFlags & PA_FLAGS_8 || playerStatus->inputEnabledCounter == 0) {
if (playerStatus->pressedButtons & BUTTON_C_DOWN && !(playerStatus->flags & PS_FLAGS_80) &&
!(playerStatus->pressedButtons & BUTTON_B) && !(playerStatus->animFlags & PS_FLAGS_1000) &&
!(playerStatus->pressedButtons & BUTTON_B) && !(playerStatus->animFlags & PA_FLAGS_USING_PEACH_PHYSICS) &&
actionState <= ACTION_STATE_RUN) {
if (playerData->currentPartner == PARTNER_GOOMBARIO) {
@ -761,7 +761,7 @@ void player_reset_data(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
mem_clear(playerStatus, sizeof(PlayerStatus));
playerStatus->flags = 1;
playerStatus->flags = PS_FLAGS_1;
reset_player_status();
playerStatus->shadowID = create_shadow_type(0, playerStatus->position.x, playerStatus->position.y,
playerStatus->position.z);
@ -1062,7 +1062,7 @@ s32 has_valid_conversation_npc(void) {
s32 ret = FALSE;
s32 cond;
if (npc != NULL && !(npc->flags & 0x10000000)) {
if (npc != NULL && !(npc->flags & NPC_FLAG_10000000)) {
cond = (playerStatus->flags & (PS_FLAGS_HAS_CONVERSATION_NPC | PS_FLAGS_INPUT_DISABLED))
== PS_FLAGS_HAS_CONVERSATION_NPC;
ret = cond;
@ -1136,7 +1136,7 @@ s32 func_800E06D8(void) {
} else if (!phys_can_player_interact()) {
playerStatus->interactingWithID = -1;
return FALSE;
} else if (get_entity_type(wall) == 0xC) {
} else if (get_entity_type(wall) == ENTITY_TYPE_PUSH_BLOCK) {
return FALSE;
}
@ -1263,14 +1263,14 @@ void check_for_interactables(void) {
void func_802B71E8_E202F8(void);
void func_800E0AD0(void) {
if ((gPlayerStatusPtr->animFlags & PS_FLAGS_10) && (D_8010C958 != 0)) {
if ((gPlayerStatusPtr->animFlags & PA_FLAGS_INTERACT_PROMPT_AVAILABLE) && (D_8010C958 != 0)) {
func_802B71E8_E202F8();
}
}
void func_800E0B14(void) {
D_8010C958 = 0;
gPlayerStatusPtr->animFlags &= ~PS_FLAGS_10;
gPlayerStatusPtr->animFlags &= ~PA_FLAGS_INTERACT_PROMPT_AVAILABLE;
}
void update_partner_timers(void) {
@ -1483,7 +1483,7 @@ void render_player_model(void) {
rtPtr->renderMode = playerStatus->renderMode;
if (!(playerStatus->flags & PA_FLAGS_20000)) {
if (!(playerStatus->flags & PS_FLAGS_20000)) {
appendGfx = appendGfx_player;
} else {
appendGfx = appendGfx_player_spin;
@ -1691,7 +1691,7 @@ void update_player_shadow(void) {
shadow->position.y = y;
shadow->alpha = (f64)playerStatus->alpha1 / 2;
if (!(gGameStatusPtr->peachFlags & 1)) {
if (!(gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH)) {
set_standard_shadow_scale(shadow, shadowScale);
} else {
set_peach_shadow_scale(shadow, shadowScale);

View File

@ -30,7 +30,7 @@ void update_player_input(void) {
playerStatus->heldButtons = 0;
}
if (playerStatus->animFlags & 8) {
if (playerStatus->animFlags & PA_FLAGS_8) {
playerStatus->animFlags |= PA_FLAGS_200000;
playerStatus->pressedButtons |= 4;
}
@ -55,21 +55,21 @@ void reset_player_status(void) {
D_8010C938 = 0;
D_8010C990 = 0.0f;
playerStatus->availableDisguiseType = 1;
playerStatus->renderMode = 0xD;
playerStatus->renderMode = RENDER_MODE_ALPHATEST;
playerStatus->alpha1 = 255;
playerStatus->alpha2 = 255;
gGameStatusPtr->peachFlags &= ~0x8;
gGameStatusPtr->peachFlags &= ~0x10;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_8;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_HAS_INGREDIENT;
one = 1.0f;
if (gGameStatusPtr->peachFlags & 1) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) {
playerStatus->colliderHeight = 55;
playerStatus->colliderDiameter = 38;
playerStatus->animFlags |= 0x1000;
playerStatus->animFlags |= PA_FLAGS_USING_PEACH_PHYSICS;
if (gGameStatusPtr->peachFlags & 2) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_DISGUISED) {
D_8010C92C = 2;
playerStatus->peachDisguise = gGameStatusPtr->peachDisguise;
}

View File

@ -212,8 +212,8 @@ void phys_update_action_state(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
PlayerSpinState* playerSpinState = &gPlayerSpinState;
if (!(playerStatus->flags & PA_FLAGS_40000)) {
playerStatus->flags &= ~PA_FLAGS_20000000;
if (!(playerStatus->flags & PS_FLAGS_40000)) {
playerStatus->flags &= ~PS_FLAGS_20000000;
}
if (playerStatus->animFlags & PA_FLAGS_USING_PEACH_PHYSICS) {
@ -436,7 +436,7 @@ void start_bounce_b(void) {
playerStatus->gravityIntegrator[1] = -1.0f;
playerStatus->gravityIntegrator[2] = 0;
playerStatus->gravityIntegrator[3] = 0;
playerStatus->flags |= 0x800000;
playerStatus->flags |= PS_FLAGS_800000;
}
s32 check_input_hammer(void) {
@ -510,10 +510,10 @@ void check_input_spin(void) {
PlayerSpinState* spinState = &gPlayerSpinState;
PlayerSpinState* temp2 = spinState;
if (!(playerStatus->flags & (PA_FLAGS_8BIT_MARIO | PA_FLAGS_USING_PEACH_PHYSICS)) &&
!(playerStatus->animFlags & 1) &&
!(playerStatus->currentButtons & D_CBUTTONS) &&
!is_ability_active(ABILITY_SLOW_GO)) {
if (!((playerStatus->flags & (PS_FLAGS_1000 | PS_FLAGS_4000)) ||
(playerStatus->animFlags & PA_FLAGS_HOLDING_WATT) ||
(playerStatus->currentButtons & BUTTON_C_DOWN) ||
is_ability_active(ABILITY_SLOW_GO))) {
s32 actionState = playerStatus->actionState;
s32 btnPressed = playerStatus->pressedButtons & Z_TRIG;

View File

@ -681,7 +681,7 @@ void collision_main_lateral(void) {
playerStatus->colliderDiameter, yaw2);
}
collisionStatus->currentWall = result;
if (!(playerStatus->flags & 0x400000) && playerStatus->actionState != ACTION_STATE_HAMMER) {
if (!(playerStatus->flags & PS_FLAGS_400000) && playerStatus->actionState != ACTION_STATE_HAMMER) {
if (speed == 0.0f) {
collision_check_player_intersecting_world(0, 0,

View File

@ -195,7 +195,7 @@ void check_input_open_menus(void) {
s32 currentButtons;
if (gGameStatusPtr->disableScripts ||
(gGameStatusPtr->peachFlags & 1) ||
(gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) ||
evt_get_variable(NULL, GB_StoryProgress) == STORY_INTRO)
{
return;

View File

@ -983,7 +983,7 @@ s32 is_ability_active(s32 ability) {
attackFXArray[i] = 0;
}
if (gGameStatusPtr->peachFlags & 1) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) {
return 0;
}

View File

@ -125,11 +125,11 @@ void func_800F0864(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
f32 sin, cos;
if (playerStatus->actionState != ACTION_STATE_WALK &&
playerStatus->actionState != ACTION_STATE_RUN &&
(playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) &&
((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) ||
playerStatus->flags >= 0)
if (!(playerStatus->actionState == ACTION_STATE_WALK ||
playerStatus->actionState == ACTION_STATE_RUN ||
(playerStatus->actionState == ACTION_STATE_SPIN && playerStatus->actionSubstate == 0) ||
((playerStatus->actionState == ACTION_STATE_LAND || playerStatus->actionState == ACTION_STATE_IDLE)
&& playerStatus->flags & PS_FLAGS_ACTION_STATE_CHANGED))
) {
D_801094A4 = 4;
return;
@ -153,11 +153,11 @@ void func_800F09EC(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
f32 sin, cos;
if (playerStatus->actionState != ACTION_STATE_WALK &&
playerStatus->actionState != ACTION_STATE_RUN &&
(playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) &&
((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) ||
playerStatus->flags >= 0)
if (!(playerStatus->actionState == ACTION_STATE_WALK ||
playerStatus->actionState == ACTION_STATE_RUN ||
(playerStatus->actionState == ACTION_STATE_SPIN && playerStatus->actionSubstate == 0) ||
((playerStatus->actionState == ACTION_STATE_LAND || playerStatus->actionState == ACTION_STATE_IDLE)
&& playerStatus->flags & PS_FLAGS_ACTION_STATE_CHANGED))
) {
D_801094AC = 4;
return;
@ -179,11 +179,11 @@ void func_800F0B3C(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
f32 sin, cos;
if (playerStatus->actionState != ACTION_STATE_WALK &&
playerStatus->actionState != ACTION_STATE_RUN &&
(playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->actionSubstate != 0) &&
((playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE) ||
playerStatus->flags >= 0)
if (!(playerStatus->actionState == ACTION_STATE_WALK ||
playerStatus->actionState == ACTION_STATE_RUN ||
(playerStatus->actionState == ACTION_STATE_SPIN && playerStatus->actionSubstate == 0) ||
((playerStatus->actionState == ACTION_STATE_LAND || playerStatus->actionState == ACTION_STATE_IDLE)
&& playerStatus->flags & PS_FLAGS_ACTION_STATE_CHANGED))
) {
D_801094AE = 4;
return;

View File

@ -67,7 +67,7 @@ void func_802B75E8_E206F8(void) {
yTemp = playerStatus->position.y + playerStatus->colliderHeight;
unk_21 = D_802B7CB8_E20DC8->unk_21;
y = D_802B7CB8_E20DC8->pos.y;
if (!(playerStatus->animFlags & 0x1000)) {
if (!(playerStatus->animFlags & PA_FLAGS_USING_PEACH_PHYSICS)) {
delta = (yTemp + 8.0f + unk_21 - y) * 0.25f;
} else {
delta = (yTemp + 2.0f + unk_21 - y) * 0.25f;
@ -82,7 +82,7 @@ void func_802B79C8_E20AD8(void) {
gPlayerStatusPtr->interactingWithID = -1;
D_8010C958 = 0;
gPlayerStatusPtr->encounteredNPC = NULL;
gPlayerStatusPtr->animFlags &= ~0x10;
gPlayerStatusPtr->animFlags &= ~PA_FLAGS_INTERACT_PROMPT_AVAILABLE;
func_800EF3D4(0);
repartner_set_tether_distance();
}

View File

@ -37,7 +37,7 @@ void func_802B7000_E225B0(void) {
struct802B7C78* localD_802B7C78_E23228;
u16 oldMatrixListPos;
if (gPlayerStatus.animFlags & 0x100) {
if (gPlayerStatus.animFlags & PA_FLAGS_100) {
guScaleF(matrix1, D_802B7C78_E23228->scale, D_802B7C78_E23228->scale,
D_802B7C78_E23228->scale);
guRotateF(matrix2, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
@ -100,7 +100,7 @@ void func_802B72C0_E22870(void) {
D_802B7C78_E23228->unk_28 = 0xFF;
gPlayerStatus.animFlags |= 0x100;
gPlayerStatus.animFlags |= PA_FLAGS_100;
D_8010C93C = &func_802B735C_E2290C;
}
@ -126,7 +126,7 @@ void func_802B735C_E2290C(void) {
if (partnerActionStatus->partnerActionState != PARTNER_ACTION_NONE && partnerActionStatus->actingPartner == PARTNER_LAKILESTER) {
phi_v0 = gGameStatusPtr->keepUsingPartnerOnMapChange;
} else {
phi_v0 = playerStatus->flags & 0x3000;
phi_v0 = playerStatus->flags & (PS_FLAGS_INPUT_DISABLED | PS_FLAGS_1000);
}
if (phi_v0 == 0) {
temp_v1_3 = D_802B7C78_E23228;
@ -135,7 +135,7 @@ void func_802B735C_E2290C(void) {
}
break;
case 1:
if (playerStatus->flags & 0x20) {
if (playerStatus->flags & PS_FLAGS_20) {
temp_a0->unk_24 = 3;
return;
}
@ -152,7 +152,7 @@ void func_802B735C_E2290C(void) {
break;
case 3:
temp_a0->scale = 0.53f;
if (temp_a0->unk_18 >= 0x2F || playerStatus->flags & 0x20) {
if (temp_a0->unk_18 >= 0x2F || playerStatus->flags & PS_FLAGS_20) {
temp_a0->unk_28 -= 0x40;
if (temp_a0->unk_28 < 0) {
temp_a0->unk_28 = 0;
@ -163,7 +163,7 @@ void func_802B735C_E2290C(void) {
if (D_802B7C78_E23228->unk_18++ > 50) {
gCurrentHiddenPanels.activateISpy = FALSE;
D_8010C93C = NULL;
playerStatus->animFlags &= ~0x100;
playerStatus->animFlags &= ~PA_FLAGS_100;
}
break;
}

View File

@ -36,7 +36,7 @@ ApiStatus func_80243470_EE1E30(Evt* script, s32 isInitialCall) {
sfx_get_spatialized_sound_params(npc->pos.x, npc->pos.y, npc->pos.z,
&param1, &param2, 0x200002);
sfx_play_sound_with_params(0x295, param1, param2,
sfx_play_sound_with_params(SOUND_295, param1, param2,
update_lerp(0, 500.0f, 0.0f, script->functionTemp[0], script->functionTemp[1]));
}
@ -57,7 +57,7 @@ ApiStatus func_80243584_EE1F44(Evt* script, s32 isInitialCall) {
sfx_get_spatialized_sound_params(npc->pos.x, npc->pos.y, npc->pos.z,
&param1, &param2, 0x200002);
sfx_play_sound_with_params(0x295, param1, param2,
sfx_play_sound_with_params(SOUND_295, param1, param2,
update_lerp(0, 500.0f, 0.0f, script->functionTemp[0], 0x50));
}

View File

@ -21,12 +21,12 @@ ApiStatus func_802403D4_EE6984(Evt* script, s32 isInitialCall) {
}
script->varTable[14] = 1;
evt_set_variable(NULL, MapVar(0), get_npc_unsafe(-4)->flags);
evt_set_variable(NULL, MapVar(0), get_npc_unsafe(NPC_PARTNER)->flags);
return ApiStatus_DONE2;
}
ApiStatus func_8024042C_EE69DC(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_unsafe(-4);
Npc* npc = get_npc_unsafe(NPC_PARTNER);
npc->flags = evt_get_variable(NULL, MapVar(0));
return ApiStatus_DONE2;

View File

@ -143,7 +143,7 @@ void func_802A9278_428CE8(void) {
hud_element_set_script(actionCommandStatus->hudElements[0], &HES_MashAButton);
air_lift_bss_0 = 1;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 0xB;
// fallthrough
case 11:
@ -215,7 +215,7 @@ void func_802A9278_428CE8(void) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 20;
actionCommandStatus->state = 0xC;
break;

View File

@ -121,7 +121,7 @@ void func_802A9294_4295B4(void) {
battleStatus->unk_85 = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
case 11:
@ -215,7 +215,7 @@ void func_802A9294_4295B4(void) {
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;

View File

@ -121,7 +121,7 @@ void func_802A92D4_4285B4(void) {
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->unk_46 = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
case 11:
btl_set_popup_duration(99);
@ -165,7 +165,7 @@ void func_802A92D4_4285B4(void) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;

View File

@ -109,7 +109,7 @@ void func_802A928C_427CFC(void) {
hud_element_set_script(actionCommandStatus->hudElements[0], &HES_MashAButton);
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
@ -173,7 +173,7 @@ void func_802A928C_427CFC(void) {
func_80269160();
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;

View File

@ -104,7 +104,7 @@ void func_802A928C_4263FC(void) {
hud_element_set_script(actionCommandStatus->hudElements[0], &HES_MashAButton);
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
case 11:
btl_set_popup_duration(99);
@ -177,7 +177,7 @@ void func_802A928C_4263FC(void) {
if (battleStatus->actionSuccess == 100) {
func_80269160();
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;

View File

@ -111,7 +111,7 @@ void func_802A9294_426C64(void) {
battleStatus->unk_85 = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
case 11:
btl_set_popup_duration(99);
@ -200,7 +200,7 @@ void func_802A9294_426C64(void) {
if (battleStatus->actionSuccess == 100) {
func_80269160();
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;

View File

@ -169,7 +169,7 @@ void func_802A92A0_42DCB0(void) {
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
case 11:
btl_set_popup_duration(99);
@ -297,7 +297,7 @@ void func_802A92A0_42DCB0(void) {
func_80269160();
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;

View File

@ -165,7 +165,7 @@ void func_802A9310_42D220(void) {
actionCommandStatus->unk_5C = 0;
D_802A9B00 = 1;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
case 11:
@ -242,7 +242,7 @@ void func_802A9310_42D220(void) {
func_80269160();
}
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;

View File

@ -139,7 +139,7 @@ void func_802A9298_42E638(void) {
battleStatus->unk_85 = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0U, 0U, 0U);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
@ -266,7 +266,7 @@ void func_802A9298_42E638(void) {
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;

View File

@ -143,7 +143,7 @@ void func_802A9254_42F074(void) {
actionCommandStatus->unk_5C = 0;
D_802A98C0 = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
@ -222,7 +222,7 @@ void func_802A9254_42F074(void) {
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;

View File

@ -106,7 +106,7 @@ void func_802A9298_4302B8(void) {
battleStatus->unk_84 = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
case 11:
btl_set_popup_duration(99);
@ -208,7 +208,7 @@ void func_802A9298_4302B8(void) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;

View File

@ -127,7 +127,7 @@ void func_802A9208_429F28(void) {
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
sfx_play_sound_with_params(SOUND_80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
case 11:
@ -190,7 +190,7 @@ void func_802A9208_429F28(void) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;
@ -221,7 +221,7 @@ void N(draw_hud_elements)(void) {
}
void N(free_hud_elements)(void) {
sfx_stop_sound(0x80000041);
sfx_stop_sound(SOUND_80000041);
hud_element_free(gActionCommandStatus.hudElements[0]);
hud_element_free(gActionCommandStatus.hudElements[1]);
}

View File

@ -81,8 +81,8 @@ ApiStatus func_8021849C_6DC23C(Evt* script, s32 isInitialCall) {
Entity* entity = get_entity_by_index(entityIndex);
entity->collisionTimer = 0;
collisionStatus->lastWallHammered = entityIndex | 0x4000;
playerStatus->flags |= 0x1000000;
collisionStatus->lastWallHammered = entityIndex | COLLISION_WITH_ENTITY_BIT;
playerStatus->flags |= PS_FLAGS_1000000;
entity->collisionFlags = ENTITY_COLLISION_PLAYER_HAMMER;
playerStatus->actionState = ACTION_STATE_HAMMER;
entity->blueprint->fpHandleCollision(entity);

View File

@ -11,11 +11,11 @@ ApiStatus N(func_802A123C_718A8C)(Evt* script, s32 isInitialCall) {
if (player->scalingFactor == 1.0) {
s32 var = script->varTable[10];
get_entity_by_index(var);
collisionStatus->currentCeiling = var | 0x4000;
playerStatus->flags |= 2;
collisionStatus->currentCeiling = var | COLLISION_WITH_ENTITY_BIT;
playerStatus->flags |= PS_FLAGS_JUMPING;
update_entities();
collisionStatus->currentCeiling = -1;
playerStatus->flags &= ~2;
playerStatus->flags &= ~PS_FLAGS_JUMPING;
return ApiStatus_DONE2;
}

View File

@ -45,7 +45,7 @@ void func_802B70B4(void) {
D_802B79A8_E21858->unk_2A = 0;
D_802B79A8_E21858->unk_14 = 0.1f;
D_8010C940 = func_802B742C;
playerStatus->animFlags |= 0x20;
playerStatus->animFlags |= PA_FLAGS_SPEECH_PROMPT_AVAILABLE;
temp = D_802B79A8_E21858;
temp->unk_2A = 0;
temp->unk_14 = 0.4f;
@ -57,7 +57,7 @@ void func_802B71C8(void) {
FoldImageRecPart sp20;
Matrix4f sp38, sp78;
if (gPlayerStatus.animFlags & 0x20) {
if (gPlayerStatus.animFlags & PA_FLAGS_SPEECH_PROMPT_AVAILABLE) {
guScaleF(sp38, D_802B79A8_E21858->unk_14, D_802B79A8_E21858->unk_14, D_802B79A8_E21858->unk_14);
guRotateF(sp78, D_802B79A8_E21858->unk_10 - gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
guMtxCatF(sp38, sp78, sp38);
@ -91,11 +91,9 @@ void func_802B742C(void) {
f32 unk10;
Npc* npc;
if (((playerStatus->flags &
(PS_FLAGS_HAS_CONVERSATION_NPC |
PS_FLAGS_40000 |
PS_FLAGS_20)) != PS_FLAGS_HAS_CONVERSATION_NPC) ||
(gGameState == 4) ||
if (((playerStatus->flags & (PS_FLAGS_HAS_CONVERSATION_NPC | PS_FLAGS_40000 | PS_FLAGS_20))
!= PS_FLAGS_HAS_CONVERSATION_NPC) ||
(gGameState == GAME_MODE_CHANGE_MAP) ||
(playerStatus->animFlags & PA_FLAGS_HOLDING_WATT) ||
(playerStatus->inputEnabledCounter != 0) ||
(playerStatus->animFlags & PA_FLAGS_SPINNING))

View File

@ -383,32 +383,32 @@ ApiStatus BindNpcIdle(Evt* script, s32 isInitialCall) {
ApiStatus RestartNpcAI(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Enemy* npc = script->owner1.enemy;
s32 npcId = evt_get_variable(script, *args++);
Enemy* enemy = script->owner1.enemy;
s32 npcID = evt_get_variable(script, *args++);
Evt* newScript;
s32 groupFlags;
if (npcId == NPC_SELF) {
npcId = npc->npcID;
if (npcID == NPC_SELF) {
npcID = enemy->npcID;
}
npc = get_enemy(npcId);
enemy = get_enemy(npcID);
if (npc->flags & 1) {
if (enemy->flags & ENEMY_FLAGS_1) {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02;
} else {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02 | EVT_GROUP_01;
}
if (npc->aiScript != NULL) {
kill_script_by_ID(npc->aiScriptID);
if (enemy->aiScript != NULL) {
kill_script_by_ID(enemy->aiScriptID);
}
npc->unk_C8 = 100;
newScript = start_script(npc->aiBytecode, EVT_PRIORITY_A, 0);
npc->aiScript = newScript;
npc->aiScriptID = newScript->id;
newScript->owner1.enemy = npc;
enemy->unk_C8 = 100;
newScript = start_script(enemy->aiBytecode, EVT_PRIORITY_A, 0);
enemy->aiScript = newScript;
enemy->aiScriptID = newScript->id;
newScript->owner1.enemy = enemy;
newScript->owner2.npc = script->owner2.npc;
newScript->groupFlags = groupFlags;
@ -512,7 +512,7 @@ ApiStatus RestartNpcAux(Evt* script, s32 isInitialCall) {
enemy = get_enemy(npcID);
if (enemy->flags & 1) {
if (enemy->flags & ENEMY_FLAGS_1) {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02;
} else {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02 | EVT_GROUP_01;
@ -819,7 +819,7 @@ ApiStatus func_80045900(Evt* script, s32 isInitialCall) {
fx_emote(EMOTE_QUESTION, npc, 0.0f, npc->collisionHeight, 1.0f, 0.0f, -20.0f, 40, &unk);
}
if ((npc->flags & 0xA08) == 0x808) {
if ((npc->flags & (NPC_FLAG_GRAVITY | NPC_FLAG_JUMPING | NPC_FLAG_ENABLE_HIT_SCRIPT)) == (NPC_FLAG_JUMPING | NPC_FLAG_ENABLE_HIT_SCRIPT)) {
f32 x = npc->pos.x;
f32 y = npc->pos.y + npc->collisionHeight;
f32 z = npc->pos.z;
@ -828,7 +828,7 @@ ApiStatus func_80045900(Evt* script, s32 isInitialCall) {
if (npc_raycast_down_sides(npc->collisionChannel, &x, &y, &z, &a) != 0) {
npc->pos.y = y;
}
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
}
}

View File

@ -179,7 +179,8 @@ void entity_PinkFlowerLight_setupGfx(s32 entityIndex) {
void entity_PinkFlower_idle(Entity* entity) {
PinkFlowerData* data = entity->dataBuf.pinkFlower;
if ((gPlayerStatus.animFlags & 0x10) && (entity->collisionFlags & 0x48)) {
if (gPlayerStatus.animFlags & PA_FLAGS_INTERACT_PROMPT_AVAILABLE
&& entity->collisionFlags & (ENTITY_COLLISION_PLAYER_TOUCH_WALL | ENTITY_COLLISION_PLAYER_HAMMER)) {
if (entity->flags & ENTITY_FLAGS_SHOWS_INSPECT_PROMPT) {
entity->flags &= ~ENTITY_FLAGS_SHOWS_INSPECT_PROMPT;
data = get_entity_by_index(data->linkedEntityIndex)->dataBuf.pinkFlower;

View File

@ -95,7 +95,7 @@ void func_802BC050_E2E980(Entity* entity) {
if (entity->collisionFlags & ENTITY_COLLISION_PLAYER_TOUCH_FLOOR) {
Entity* resetMunchlesia;
gPlayerStatus.animFlags |= 4;
gPlayerStatus.animFlags |= PA_FLAGS_4;
func_800EF300();
resetMunchlesia = get_entity_by_index(entity->dataBuf.munchlesia->unk_00);
exec_entity_commandlist(entity);

View File

@ -83,7 +83,7 @@ ApiStatus SetNpcPos(Evt* script, s32 isInitialCall) {
npc->colliderPos.x = npc->pos.x;
npc->colliderPos.y = npc->pos.y;
npc->colliderPos.z = npc->pos.z;
npc->flags |= 0x10000;
npc->flags |= NPC_FLAG_DIRTY_SHADOW;
return ApiStatus_DONE2;
}
@ -332,7 +332,7 @@ ApiStatus _npc_jump_to(Evt* script, s32 isInitialCall, s32 snapYaw) {
npc->moveSpeed = dist / npc->duration;
}
npc->flags |= 0x800;
npc->flags |= NPC_FLAG_JUMPING;
npc->jumpVelocity = (npc->jumpScale * npc->duration * 0.5f) + (goalY / npc->duration);
script->functionTemp[0] =1;
}
@ -349,7 +349,7 @@ ApiStatus _npc_jump_to(Evt* script, s32 isInitialCall, s32 snapYaw) {
npc->pos.x = npc->moveToPos.x;
npc->pos.y = npc->moveToPos.y;
npc->pos.z = npc->moveToPos.z;
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
func_8003D660(npc, 2);
return ApiStatus_DONE1;
}
@ -734,7 +734,7 @@ ApiStatus GetPartnerPos(Evt* script, s32 isInitialCall) {
Bytecode posX = *ptrReadPos++;
Bytecode posY = *ptrReadPos++;
Bytecode posZ = *ptrReadPos++;
Npc* npc = get_npc_unsafe(-4);
Npc* npc = get_npc_unsafe(NPC_PARTNER);
if (npc == NULL) {
return ApiStatus_DONE2;
@ -886,8 +886,8 @@ ApiStatus PutPartnerAway(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
if (wExtraPartnerID != 0) {
partner->flags &= ~0x200;
partner->flags &= ~8;
partner->flags &= ~NPC_FLAG_GRAVITY;
partner->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT;
targetX = playerStatus->position.x;
partner->moveToPos.x = targetX;
partnerX = partner->pos.x;

View File

@ -49,7 +49,7 @@ ApiStatus DisablePlayerInput(Evt* script, s32 isInitialCall) {
close_status_menu();
func_800E984C();
if (playerStatus->actionState == ACTION_STATE_SPIN) {
playerStatus->animFlags |= 0x40000;
playerStatus->animFlags |= PA_FLAGS_40000;
}
gOverrideFlags |= GLOBAL_OVERRIDES_40;
} else {
@ -534,13 +534,13 @@ ApiStatus UseEntryHeading(Evt *script, s32 isInitialCall) {
blah = &script->varTable[5];
*blah = dist2D(gPlayerStatus.position.x, gPlayerStatus.position.z, entryX, entryZ) / var2;
gPlayerStatus.flags |= 0x4000000;
gPlayerStatus.flags |= PS_FLAGS_CAMERA_DOESNT_FOLLOW;
return ApiStatus_DONE2;
}
ApiStatus func_802D2148(Evt* script, s32 isInitialCall) {
gPlayerStatus.flags &= ~0x4000000;
gPlayerStatus.flags &= ~PS_FLAGS_CAMERA_DOESNT_FOLLOW;
return ApiStatus_DONE2;
}
@ -575,8 +575,8 @@ ApiStatus UseExitHeading(Evt* script, s32 isInitialCall) {
script->varTable[3] = (playerStatus->position.z - (var1 * cosTheta)) - (exitTangentFrac * sinTheta);
script->varTable[2] = (*mapSettings->entryList)[entryID].y;
*varTableVar5 = var1 / 15;
playerStatus->animFlags |= 0x100000;
playerStatus->flags |= 0x4000000;
playerStatus->animFlags |= PA_FLAGS_100000;
playerStatus->flags |= PS_FLAGS_CAMERA_DOESNT_FOLLOW;
return ApiStatus_DONE2;
}
@ -596,9 +596,9 @@ s32 func_802D23F8(void) {
ApiStatus WaitForPlayerTouchingFloor(Evt* script, s32 isInitialCall) {
if ((gCollisionStatus.currentFloor >= 0) && func_802D23F8()) {
return ApiStatus_DONE2;
}
} else {
return ApiStatus_BLOCK;
}
}
ApiStatus func_802D2484(Evt* script, s32 isInitialCall) {
@ -607,22 +607,30 @@ ApiStatus func_802D2484(Evt* script, s32 isInitialCall) {
ApiStatus IsPlayerOnValidFloor(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 val = 0;
s32 result = FALSE;
if (gCollisionStatus.currentFloor >= 0) {
val = func_802D23F8() != 0;
result = (func_802D23F8() != 0);
}
evt_set_variable(script, *args, val);
evt_set_variable(script, *args, result);
return ApiStatus_DONE2;
}
ApiStatus WaitForPlayerMoveToComplete(Evt* script, s32 isInitialCall) {
return (gPlayerStatus.moveFrames == 0) * ApiStatus_DONE2;
if (gPlayerStatus.moveFrames == 0) {
return ApiStatus_DONE2;
} else {
return ApiStatus_BLOCK;
}
}
ApiStatus WaitForPlayerInputEnabled(Evt* script, s32 isInitialCall) {
return !(gPlayerStatus.flags & 0x2000) * ApiStatus_DONE2;
if (gPlayerStatus.flags & PS_FLAGS_INPUT_DISABLED) {
return ApiStatus_BLOCK;
} else {
return ApiStatus_DONE2;
}
}
ApiStatus func_802D2520(Evt* script, s32 isInitialCall) {

View File

@ -120,7 +120,7 @@ s32 _create_npc(NpcBlueprint* blueprint, AnimID** animList, s32 skipLoadingAnims
npc->renderYaw = 0.0f;
npc->unk_98 = 0;
npc->unk_A2 = 0;
npc->collisionChannel = 0x20000;
npc->collisionChannel = COLLISION_CHANNEL_20000;
npc->isFacingAway = 0;
npc->yawCamOffset = 0;
npc->turnAroundYawAdjustment = 0;
@ -523,9 +523,9 @@ void update_npcs(void) {
npc->onUpdate(npc);
if (npc->flags & NPC_FLAG_8000) {
npc->collisionChannel |= 0x40000;
npc->collisionChannel |= COLLISION_CHANNEL_40000;
} else {
npc->collisionChannel &= ~0x40000;
npc->collisionChannel &= ~COLLISION_CHANNEL_40000;
}
npc->currentFloor = -1;

View File

@ -673,7 +673,7 @@ void spr_init_sprites(s32 playerSpriteSet) {
spr_playerMaxComponents = 0;
if (gGameStatusPtr->peachFlags & 1) {
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH) {
playerSpriteSet = 4;
}

View File

@ -3,6 +3,7 @@
#include "hud_element.h"
#include "ld_addrs.h"
#include "sprite.h"
#include "battle/battle.h"
s32 D_800778A0[] = {
&D_8038F800, &D_803B5000, &heap_battleHead,
@ -52,8 +53,8 @@ void state_step_battle(void) {
currentBattleSelection = gCurrentBattleSection;
temp = D_800DC4EB;
if (gGameStatusPtr->peachFlags & 1 || (currentBattleSelection == 0x26 && temp == 0)) {
gGameStatusPtr->peachFlags |= 1;
if (gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_IS_PEACH || (currentBattleSelection == BTL_AREA_KKJ && temp == 0)) {
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_IS_PEACH;
spr_init_sprites(6);
} else {
spr_init_sprites(5);
@ -133,7 +134,7 @@ void state_step_end_battle(void) {
func_8005AF84();
func_8002ACDC();
sfx_clear_env_sounds(1);
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
battle_heap_create();
spr_init_sprites(gGameStatusPtr->playerSpriteSet);
init_model_data();

View File

@ -149,7 +149,7 @@ void state_step_demo(void) {
gGameStatusPtr->areaID = areaID;
gGameStatusPtr->mapID = mapID;
gGameStatusPtr->entryID = demoSceneData->entryID;
gGameStatusPtr->peachFlags = 1;
gGameStatusPtr->peachFlags = PEACH_STATUS_FLAG_IS_PEACH;
playerData->currentPartner = demoSceneData->partnerID;
set_cam_viewport(0, 29, 20, -262, 177);
evt_set_variable(NULL, GB_StoryProgress, demoSceneData->unk_6);

View File

@ -48,7 +48,7 @@ void action_update_sliding(void) {
playerStatus->flags &= ~PS_FLAGS_ACTION_STATE_CHANGED;
playerStatus->actionSubstate = SUBSTATE_SLIDING;
playerStatus->currentSpeed = 0.0f;
playerStatus->animFlags |= 4;
playerStatus->animFlags |= PA_FLAGS_4;
func_802B6000_E27510();
SlideAcceleration = 0.0f;
D_802B6790 = 0.0f;

View File

@ -172,7 +172,7 @@ void action_update_spin(void) {
if ((playerStatus->currentStateTime) == 0) {
playerSpinState->stopSoundTimer = 4;
set_action_state(ACTION_STATE_IDLE);
playerStatus->flags &= ~PA_FLAGS_20000;
playerStatus->flags &= ~PS_FLAGS_20000;
playerStatus->animFlags &= ~PA_FLAGS_SPINNING;
sfx_stop_sound(playerSpinState->spinSoundID);
}

View File

@ -186,7 +186,7 @@ void action_update_spin_jump(void) {
if (landed) {
set_action_state(ACTION_STATE_LAND);
playerStatus->flags &= ~PA_FLAGS_8;
playerStatus->flags &= ~PS_FLAGS_FLYING;
}
if (playerStatus->gravityIntegrator[0] < 0.0f) {
belowColliderID = get_collider_below_spin_jump();

View File

@ -277,8 +277,8 @@ void action_update_use_spinning_flower(void) {
case SUBSTATE_FINISH:
enable_player_static_collisions();
enable_player_input();
playerStatus->flags &= ~0x100000;
playerStatus->flags |= 0x800000;
playerStatus->flags &= ~PS_FLAGS_100000;
playerStatus->flags |= PS_FLAGS_800000;
start_falling();
enable_partner_ai();
gOverrideFlags &= ~GLOBAL_OVERRIDES_40;

View File

@ -47,7 +47,7 @@ void action_update_walk(void) {
playerStatus->unk_60 = 0;
changedAnim = TRUE;
if (!(playerStatus->flags & PA_FLAGS_8BIT_MARIO)) {
if (!(playerStatus->flags & PS_FLAGS_4000)) {
playerStatus->currentSpeed = playerStatus->walkSpeed;
}
@ -63,7 +63,7 @@ void action_update_walk(void) {
suggest_player_anim_clearUnkFlag(anim);
}
if (playerStatus->flags & PA_FLAGS_8BIT_MARIO) {
if (playerStatus->flags & PS_FLAGS_4000) {
playerStatus->targetYaw = playerStatus->heading;
try_player_footstep_sounds(8);
return;
@ -206,7 +206,7 @@ void action_update_run(void) {
void func_802B6550_E23C30(void) {
if (!(gPlayerStatus.animFlags & PA_FLAGS_IN_DISGUISE)) {
if (!(gGameStatusPtr->peachFlags & 0x10)) {
if (!(gGameStatusPtr->peachFlags & PEACH_STATUS_FLAG_HAS_INGREDIENT)) {
suggest_player_anim_clearUnkFlag(WalkPeachAnims[gGameStatusPtr->peachCookingIngredient]);
return;
}

View File

@ -176,7 +176,7 @@ ApiStatus N(func_8024113C_BDFECC)(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
script->functionTemp[0] = 0;
npc->duration = 0;
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
}
switch (script->functionTemp[0]) {

View File

@ -1111,7 +1111,7 @@ ApiStatus N(func_8024113C_BE8D1C)(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
script->functionTemp[0] = 0;
npc->duration = 0;
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
}
switch (script->functionTemp[0]) {

View File

@ -1039,7 +1039,7 @@ ApiStatus N(func_80243B98_C43948)(Evt* script, s32 isInitialCall) {
ApiStatus N(func_80243C10_C439C0)(Evt* script, s32 isInitialCall) {
if (get_enemy_safe(9)) {
Enemy* enemy = get_enemy(9);
enemy->aiFlags |= 0x80;
enemy->aiFlags |= ENEMY_AI_FLAGS_80;
return ApiStatus_DONE2;
}

View File

@ -2429,7 +2429,7 @@ ApiStatus N(func_802414C0_96A680)(Evt* script, s32 isInitialCall) {
for (i = 0; i < 64; i++) {
Npc* npc = get_npc_by_index(i);
if (npc != 0 && npc->flags != 0 && npc->npcID != NPC_PARTNER && npc->npcID != NPC_WORLD_MERLEE) {
npc->flags |= 0x800000;
npc->flags |= NPC_FLAG_NO_DROPS;
}
}
script->functionTemp[0] = 0;
@ -2467,7 +2467,7 @@ ApiStatus N(func_802415CC_96A78C)(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_by_index(i);
if (npc != NULL && npc->flags != 0 && npc->npcID != NPC_PARTNER && npc->npcID != NPC_WORLD_MERLEE) {
npc->flags &= ~0x00800000;
npc->flags &= ~NPC_FLAG_NO_DROPS;
}
}
return ApiStatus_DONE2;
@ -2555,12 +2555,12 @@ void N(func_80242EAC_96C06C)(Evt* script, s32 isInitialCall) {
}
ApiStatus N(func_8024303C_96C1FC)(Evt* script, s32 isInitialCall) {
sfx_play_sound_with_params(0x202A, 0, 0x18, 0);
sfx_play_sound_with_params(SOUND_202A, 0, 24, 0);
return ApiStatus_DONE2;
}
ApiStatus N(func_80243068_96C228)(Evt* script, s32 isInitialCall) {
sfx_play_sound_with_params(0x202B, 0, 0x68, 0);
sfx_play_sound_with_params(SOUND_202B, 0, 104, 0);
return ApiStatus_DONE2;
}

View File

@ -1266,7 +1266,7 @@ ApiStatus N(func_802433C0_CC6BD0)(Evt* script, s32 isInitialCall) {
sfx_get_spatialized_sound_params(npc->pos.x, npc->pos.y, npc->pos.z,
&param1, &param2, 0x200002);
sfx_play_sound_with_params(0x295, param1, param2,
sfx_play_sound_with_params(SOUND_295, param1, param2,
update_lerp(0, 500.0f, 0.0f, script->functionTemp[0], script->functionTemp[1]));
}
@ -1287,7 +1287,7 @@ ApiStatus N(func_802434D4_CC6CE4)(Evt* script, s32 isInitialCall) {
sfx_get_spatialized_sound_params(npc->pos.x, npc->pos.y, npc->pos.z,
&param1, &param2, 0x200002);
sfx_play_sound_with_params(0x295, param1, param2,
sfx_play_sound_with_params(SOUND_295, param1, param2,
update_lerp(0, 500.0f, 0.0f, script->functionTemp[0], 0x50));
}

View File

@ -588,12 +588,12 @@ ApiStatus N(func_802403D4_CCB6E4)(Evt* script, s32 isInitialCall) {
}
script->varTable[14] = 1;
evt_set_variable(NULL, MapVar(0), get_npc_unsafe(-4)->flags);
evt_set_variable(NULL, MapVar(0), get_npc_unsafe(NPC_PARTNER)->flags);
return ApiStatus_DONE2;
}
ApiStatus N(func_8024042C_CCB73C)(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_unsafe(-4);
Npc* npc = get_npc_unsafe(NPC_PARTNER);
npc->flags = evt_get_variable(NULL, MapVar(0));
return ApiStatus_DONE2;

View File

@ -52,7 +52,7 @@ ApiStatus N(StoneChompFXB)(Evt* script, s32 isInitialCall) {
posZ = ownerNpc->pos.z;
add_vec2D_polar(&posX, &posZ, ownerNpc->collisionRadius * 0.3f, clamp_angle(ownerNpc->renderYaw + 180.0f));
if (ownerNpc->flags & 2) {
if (ownerNpc->flags & NPC_FLAG_2) {
for (i = 0; i < 8; i++, blurData++) {
childNpc = blurData->npc;
childNpc->pos.x = posX;

View File

@ -2,6 +2,6 @@
ApiStatus func_802432B0_912960(Evt* script, s32 isInitialCall) {
gPlayerStatus.slideParams = script->varTablePtr[0];
gPlayerStatus.flags |= PA_FLAGS_INTERACT_PROMPT_AVAILABLE;
gPlayerStatus.flags |= PS_FLAGS_10;
return ApiStatus_DONE2;
}

View File

@ -6,7 +6,7 @@
#include "world/common/GetPeachDisguise.inc.c"
ApiStatus func_80240F44_ACBA64(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 0x8;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_8;
return ApiStatus_DONE2;
}

View File

@ -9,7 +9,7 @@
ApiStatus func_80240F44_ACF084(Evt* script, s32 isInitialCall) {
GameStatus* gameStatus = gGameStatusPtr;
gameStatus->peachFlags |= 8;
gameStatus->peachFlags |= PEACH_STATUS_FLAG_8;
return ApiStatus_DONE2;
}

View File

@ -5,7 +5,7 @@
#include "world/common/GetPeachDisguise.inc.c"
ApiStatus func_80240714_AD47A4(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 0x8;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_8;
return ApiStatus_DONE2;
}

View File

@ -6,14 +6,14 @@ extern u8 D_80241D3B_ADCBDB;
#include "world/common/atomic/TexturePan.inc.c"
ApiStatus func_8024035C_ADB1FC(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;
}
ApiStatus func_80240384_ADB224(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 0x4;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_HAS_PARASOL;
return ApiStatus_DONE2;
}
@ -34,11 +34,11 @@ void func_802403F8_ADB298(void) {
}
ApiStatus func_80240480_ADB320(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 0x10;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_HAS_INGREDIENT;
return ApiStatus_DONE2;
}
ApiStatus func_8024049C_ADB33C(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x10;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_HAS_INGREDIENT;
return ApiStatus_DONE2;
}

View File

@ -10,7 +10,7 @@ static char* N(exit_str_5) = "";
#include "world/common/atomic/TexturePan.inc.c"
ApiStatus func_8024030C_AE589C(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;

View File

@ -3,13 +3,13 @@
ApiStatus func_802405D0_AE5B60(void) {
GameStatus* gameStatus = gGameStatusPtr;
gameStatus->peachFlags |= 0x10;
gameStatus->peachFlags |= PEACH_STATUS_FLAG_HAS_INGREDIENT;
return ApiStatus_DONE2;
}
ApiStatus func_802405EC_AE5B7C(Evt* script, s32 isInitialCall) {
GameStatus* gameStatus = gGameStatusPtr;
gameStatus->peachFlags &= ~0x10;
gameStatus->peachFlags &= ~PEACH_STATUS_FLAG_HAS_INGREDIENT;
return ApiStatus_DONE2;
}

View File

@ -4,7 +4,7 @@ static char* N(exit_str_0) = "sbk_02";
static char* N(exit_str_1) = "kkj_11";
ApiStatus func_80240000_AED410(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;
}

View File

@ -7,7 +7,7 @@
#include "world/common/GetPeachDisguise.inc.c"
ApiStatus func_80240EF4_AEE304(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 8;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_8;
return ApiStatus_DONE2;
}

View File

@ -8,7 +8,7 @@ static char* N(exit_str_3) = "";
#include "world/common/atomic/TexturePan.inc.c"
ApiStatus func_8024030C_AF2FAC(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;

View File

@ -1,7 +1,7 @@
#include "kkj_23.h"
ApiStatus func_80240020_B028A0(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;
@ -31,7 +31,7 @@ ApiStatus func_80240080_B02900(Evt* script, s32 isInitialCall) {
#include "world/common/GetPeachDisguise.inc.c"
ApiStatus func_80240784_B03004(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 8;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_8;
return ApiStatus_DONE2;
}

View File

@ -6,7 +6,7 @@ static char* N(exit_str_2) = "kkj_14\0";
static char* N(exit_str_3) = "kkj_26";
ApiStatus func_80240000_B13120(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;

View File

@ -4,7 +4,7 @@ static char* N(exit_str_0) = "jan_22";
static char* N(exit_str_1) = "kkj_10";
ApiStatus func_80240000_B150B0(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags &= ~0x1;
gGameStatusPtr->peachFlags &= ~PEACH_STATUS_FLAG_IS_PEACH;
gPlayerData.currentPartner = script->varTable[0];
return ApiStatus_DONE2;

View File

@ -134,7 +134,7 @@ ApiStatus func_802405F0_8AC580(Evt* script, s32 isInitialCall) {
npc->pos.y = 100.0f;
add_vec2D_polar(&npc->pos.x, &npc->pos.z, 70.0f, npc->moveToPos.x + (script->functionTemp[2] * 51) + 153.0f);
npc->pos.y += (-npc->pos.z + -50.0f + 70.0f) * 0.15f;
sfx_play_sound_at_position(0xB000001E, 0, npc->pos.x, npc->pos.y, npc->pos.z);
sfx_play_sound_at_position(SOUND_B000001E, 0, npc->pos.x, npc->pos.y, npc->pos.z);
fx_sparkles(FX_SPARKLES_0, npc->pos.x, npc->pos.y + 20.0f, npc->pos.z, 20.0f);
script->functionTemp[0] = FUNC_STATE_1;
}

View File

@ -44,7 +44,7 @@ ApiStatus func_80240000_A735B0(Evt* script, s32 isInitialCall) {
partner->colliderPos.x = partner->pos.x;
partner->colliderPos.y = partner->pos.y;
partner->colliderPos.z = partner->pos.z;
partner->flags |= 0x10000;
partner->flags |= NPC_FLAG_DIRTY_SHADOW;
}
break;
default:

View File

@ -8,7 +8,7 @@ ApiStatus func_80240020_AB62B0(Evt* script, s32 isInitialCall) {
}
ApiStatus func_80240090_AB6320(Evt* script, s32 isInitialCall) {
gGameStatusPtr->peachFlags |= 1;
gGameStatusPtr->peachFlags |= PEACH_STATUS_FLAG_IS_PEACH;
script->varTable[0] = gPlayerData.currentPartner;
gPlayerData.currentPartner = PARTNER_TWINK;
return ApiStatus_DONE2;

View File

@ -79,7 +79,7 @@ void func_8024029C_B1B80C(void) {
s32 screenY;
s32 screenZ;
if (playerStatus->flags & 1) {
if (playerStatus->flags & PS_FLAGS_1) {
entityModel = get_entity_model(get_shadow_by_index(playerStatus->shadowID)->entityModelID);
entityModel->flags |= MODEL_FLAGS_FLAG_200;
@ -127,8 +127,8 @@ ApiStatus func_80240510_B1BA80(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
partner->flags |= 0x20000;
partner->flags |= 0x80000;
partner->flags |= NPC_FLAG_REFLECT_WALL;
partner->flags |= NPC_FLAG_REFLECT_FLOOR;
return ApiStatus_DONE2;
}
@ -136,8 +136,8 @@ void func_80240574_B1BAE4(void) {
Npc* partner = get_npc_safe(NPC_PARTNER);
if (partner != NULL) {
partner->flags |= 0x20000;
partner->flags |= 0x80000;
partner->flags |= NPC_FLAG_REFLECT_WALL;
partner->flags |= NPC_FLAG_REFLECT_FLOOR;
}
}

View File

@ -21,7 +21,7 @@ void func_8024003C_B1CA8C(void) {
s32 screenY;
s32 screenZ;
if (playerStatus->flags & 1) {
if (playerStatus->flags & PS_FLAGS_1) {
entityModel = get_entity_model(get_shadow_by_index(playerStatus->shadowID)->entityModelID);
entityModel->flags |= MODEL_FLAGS_FLAG_200;
@ -73,7 +73,7 @@ void func_802402F4_B1CD44(void) {
s32 screenY;
s32 screenZ;
if (playerStatus->flags & 1) {
if (playerStatus->flags & PS_FLAGS_1) {
entityModel = get_entity_model(get_shadow_by_index(playerStatus->shadowID)->entityModelID);
entityModel->flags |= MODEL_FLAGS_FLAG_200;
@ -137,7 +137,7 @@ ApiStatus func_802406D4_B1D124(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
npc->flags |= NPC_FLAG_REFLECT_WALL | NPC_FLAG_REFLECT_FLOOR;
npc->flags |= (NPC_FLAG_REFLECT_WALL | NPC_FLAG_REFLECT_FLOOR);
return ApiStatus_DONE2;
}
@ -146,6 +146,6 @@ void N(SetPartnerFlagsA0000)(void) {
Npc* partner = get_npc_safe(NPC_PARTNER);
if (partner != NULL) {
partner->flags |= NPC_FLAG_REFLECT_WALL | NPC_FLAG_REFLECT_FLOOR;
partner->flags |= (NPC_FLAG_REFLECT_WALL | NPC_FLAG_REFLECT_FLOOR);
}
}

View File

@ -30,7 +30,7 @@ ApiStatus N(func_802408B4_97BEE4)(Evt* script, s32 isInitialCall) {
npc->verticalRenderOffset = 0;
}
if (npc->flags & 0x1000) {
if (npc->flags & NPC_FLAG_1000) {
currentEncounter->encounterList[enemy->encounterIndex]->battle = enemy->varTable[0];
return ApiStatus_DONE2;
}

View File

@ -2,5 +2,9 @@
#include "npc.h"
ApiStatus N(CheckPartnerFlags1000)(Evt* script, s32 isInitialCall) {
return ((get_npc_unsafe(NPC_PARTNER)->flags & 0x1000) != 0) * ApiStatus_DONE2;
if (get_npc_unsafe(NPC_PARTNER)->flags & NPC_FLAG_1000) {
return ApiStatus_DONE2;
} else {
return ApiStatus_BLOCK;
}
}

View File

@ -24,7 +24,7 @@ ApiStatus N(UnkFunc001)(Evt* script, s32 isInitialCall) {
if (isInitialCall) {
script->functionTemp[0] = 0;
npc->duration = 0;
enemy->aiFlags |= 0x10;
enemy->aiFlags |= ENEMY_AI_FLAGS_10;
hitDepth = 1000.0f;
x = npc->pos.x;
y = npc->pos.y;
@ -33,9 +33,9 @@ ApiStatus N(UnkFunc001)(Evt* script, s32 isInitialCall) {
enemy->varTable[1] = y;
}
if (enemy->aiFlags & 4) {
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
if (enemy->aiPaused == 0) {
enemy->aiFlags &= ~4;
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
} else {
return ApiStatus_BLOCK;
}

View File

@ -40,7 +40,7 @@ ApiStatus N(UnkFunc41)(Evt* script, s32 isInitialCall) {
break;
case 3:
set_npc_yaw(get_npc_safe(NPC_PARTNER), npc->yaw);
npc->flags &= ~4;
npc->flags &= ~NPC_FLAG_4;
disable_npc_shadow(npc);
npc->pos.y = -1000.0f;
return ApiStatus_DONE2;

View File

@ -78,7 +78,7 @@ void N(reflection_setup_wall)(void) {
s32 screenY;
s32 screenZ;
if (playerStatus->flags & 1) {
if (playerStatus->flags & PS_FLAGS_1) {
entityModel = get_entity_model(get_shadow_by_index(playerStatus->shadowID)->entityModelID);
entityModel->flags |= MODEL_FLAGS_FLAG_200;
@ -160,7 +160,7 @@ void N(reflection_setup_floor)(void) {
RenderTask* renderTaskPtr = &renderTask;
s32 screenX, screenY, screenZ;
if (playerStatus->flags & 1) {
if (playerStatus->flags & PS_FLAGS_1) {
entityModel = get_entity_model(get_shadow_by_index(playerStatus->shadowID)->entityModelID);
get_screen_coords(gCurrentCamID, playerStatus->position.x, -playerStatus->position.y, playerStatus->position.z,

View File

@ -26,13 +26,13 @@ ApiStatus N(ClubbaPatrolAI_Main)(Evt* script, s32 isInitialCall) {
script->AI_TEMP_STATE = AI_STATE_PATROL_INIT;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
if (!enemy->territory->patrol.isFlying) {
npc->flags |= 0x200;
npc->flags &= ~0x8;
npc->flags |= NPC_FLAG_GRAVITY;
npc->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT;
} else {
npc->flags &= ~0x200;
npc->flags |= 0x8;
npc->flags &= ~NPC_FLAG_GRAVITY;
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
}
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->AI_TEMP_STATE = AI_STATE_SUSPEND;

View File

@ -67,7 +67,7 @@ ApiStatus N(FireBarAI_Main)(Evt* script, s32 isInitialCall) {
npc->pos.z = data->centerPos.z + dZ;
npc->yaw = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z);
}
if (!(data->flags & 2) && !(playerStatus->flags & PA_FLAGS_8000)) {
if (!(data->flags & 2) && !(playerStatus->flags & PS_FLAGS_8000)) {
dY = playerStatus->position.y - npc->pos.y;
if (partnerActionStatus->partnerActionState == PARTNER_ACTION_USE) {
if (partnerActionStatus->actingPartner == PARTNER_LAKILESTER) {
@ -84,7 +84,7 @@ ApiStatus N(FireBarAI_Main)(Evt* script, s32 isInitialCall) {
}
}
}
if (playerStatus->flags & PA_FLAGS_8000) {
if (playerStatus->flags & PS_FLAGS_8000) {
hitDetected = -1;
}
data->yaw += data->rotationRate;

View File

@ -56,7 +56,7 @@ void N(FlyingAI_Wander)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVo
temp_f24 = vt3 + vt7;
if ((enemy->varTable[0] & 0x11) == 1) {
if (npc->flags & 8) {
if (npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT) {
if (vt1 < temp_f24 - npc->pos.y) {
enemy->varTable[0] |= 0x10;
}
@ -77,7 +77,7 @@ void N(FlyingAI_Wander)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVo
f32 yTemp;
do {
if (npc->flags & 8) {
if (npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT) {
yTemp = temp_f24;
test = vt4 + ((temp_f24 - vt4) * 0.09);
npc->pos.y = test;
@ -106,7 +106,7 @@ void N(FlyingAI_Wander)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVo
f32 sinTemp = sin_deg(enemy->varTable[2]);
s32 hit;
if (npc->flags & 8) {
if (npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT) {
hit = FALSE;
} else {
posX = npc->pos.x;
@ -375,7 +375,7 @@ void N(FlyingAI_LosePlayer)(Evt* script, MobileAISettings* aiSettings, EnemyDete
npc->yaw = clamp_angle(angle);
}
if (npc->flags & 8) {
if (npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT) {
if (npc->pos.y + npc->jumpVelocity < temp_f22) {
npc->pos.y = temp_f22;
npc->jumpVelocity = 0.0f;

View File

@ -294,10 +294,10 @@ ApiStatus N(FlyingMagikoopaAI_Main)(Evt* script, s32 isInitialCall) {
territory.detectFlags = 0;
if (isInitialCall) {
npc->flags &= ~0x200;
npc->flags |= 0x8;
npc->flags |= 0x200000;
enemy->flags |= 0x200000;
npc->flags &= ~NPC_FLAG_GRAVITY;
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
npc->flags |= NPC_FLAG_200000;
enemy->flags |= ENEMY_FLAGS_200000;
enemy->varTable[1] = npc->pos.y * 100.0;
enemy->varTable[0] = 0;
enemy->varTable[2] = 0;

View File

@ -56,7 +56,7 @@ void N(FlyingNoAttackAI_13)(Evt* script, MobileAISettings* aiSettings, EnemyDete
npc_move_heading(npc, npc->moveSpeed, npc->yaw);
flag = 0;
if (!(npc->flags & 8)) {
if (!(npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT)) {
x = npc->pos.x;
y = npc->pos.y + npc->collisionHeight;
z = npc->pos.z;

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "npc.h"
#include "sprite/npc/GrooveGuy.h"
void N(GrooveGuyAI_02)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVolume* territory) {
Enemy* enemy = script->owner1.enemy;
@ -20,20 +21,20 @@ void N(GrooveGuyAI_03)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
case 0:
enemy->varTable[0] = 1;
enemy->varTable[1] = 0;
npc->currentAnim = 0x3C000C;
npc->currentAnim = ANIM_GrooveGuy_Anim0C;
set_npc_yaw(npc, 270.0f);
npc->rotation.y = 0.0f;
// fallthrough
case 1:
phase = enemy->varTable[1] % 16;
if (phase < 4) {
npc->currentAnim = 0x3C000C;
npc->currentAnim = ANIM_GrooveGuy_Anim0C;
} else if (phase < 8) {
npc->currentAnim = 0x3C000B;
npc->currentAnim = ANIM_GrooveGuy_Anim0B;
} else if (phase < 12) {
npc->currentAnim = 0x3C000C;
npc->currentAnim = ANIM_GrooveGuy_Anim0C;
} else if (phase < 16) {
npc->currentAnim = 0x3C000D;
npc->currentAnim = ANIM_GrooveGuy_Anim0D;
}
enemy->varTable[1]++;
if (enemy->varTable[1] >= 0x41) {
@ -44,7 +45,7 @@ void N(GrooveGuyAI_03)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
enemy->varTable[0] = 3;
enemy->varTable[1] = 0;
npc->rotation.y = 0.0f;
npc->currentAnim = 0x3C000C;
npc->currentAnim = ANIM_GrooveGuy_Anim0C;
// fallthrough
case 3:
npc->rotation.y += 35.0;
@ -85,7 +86,7 @@ ApiStatus N(GrooveGuyAI_Main)(Evt* script, s32 isInitialCall) {
territory.halfHeight = 65.0f;
territory.detectFlags = 0;
if (isInitialCall || enemy->aiFlags & 4) {
if (isInitialCall || enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 0;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
@ -99,14 +100,14 @@ ApiStatus N(GrooveGuyAI_Main)(Evt* script, s32 isInitialCall) {
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
}
if (enemy->aiFlags & 4) {
script->functionTemp[0] = 0x63;
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 99;
script->functionTemp[1] = 0;
} else if (enemy->flags & 0x40000000) {
script->functionTemp[0] = 0xC;
} else if (enemy->flags & ENEMY_FLAGS_40000000) {
script->functionTemp[0] = 12;
}
enemy->aiFlags &= ~4;
enemy->flags &= ~0x40000000;
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
enemy->flags &= ~ENEMY_FLAGS_40000000;
hitDepth = 100.0f;
posX = npc->pos.x;

View File

@ -8,6 +8,9 @@ typedef struct MagikoopaTeleportAnim {
u8 alpha;
} MagikoopaTeleportAnim;
#define ENEMY_FLAG_COMBINATION (ENEMY_FLAGS_10000000 | ENEMY_FLAGS_8000000 | \
ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_100000)
extern MagikoopaTeleportAnim N(MagikoopaAI_TeleportAnim)[];
#include "world/common/enemy/MagikoopaSpellAI.inc.c"
@ -19,7 +22,7 @@ void N(MagikoopaAI_00)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
npc->duration--;
if (npc->duration <= 0) {
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->flags &= ~2;
npc->flags &= ~NPC_FLAG_2;
npc->duration = 0;
script->AI_TEMP_STATE = 1;
}
@ -35,7 +38,7 @@ void N(MagikoopaAI_01)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
npc->duration++;
if (npc->duration == 4) {
disable_npc_shadow(npc);
enemy->flags |= 0x1F100000;
enemy->flags |= ENEMY_FLAG_COMBINATION;
}
if (N(MagikoopaAI_TeleportAnim)[npc->duration].alpha == 0) {
@ -43,7 +46,7 @@ void N(MagikoopaAI_01)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
npc->scale.x = 1.0f;
npc->scale.y = 1.0f;
npc->scale.z = 1.0f;
npc->flags |= 2;
npc->flags |= NPC_FLAG_2;
script->AI_TEMP_STATE = 5;
}
}
@ -78,11 +81,11 @@ void N(MagikoopaAI_10)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
enemy->varTable[0] = 1;
npc->currentAnim = enemy->animList[8];
npc->yaw = atan2(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z);
npc->flags &= ~2;
npc->flags &= ~NPC_FLAG_2;
npc->scale.x = 0.1f;
npc->scale.y = 0.1f;
npc->scale.z = 0.1f;
if ((npc->flags & 8) == 0) {
if (!(npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT)) {
posX = npc->pos.x;
dist = 200.0f;
posZ = npc->pos.z;
@ -121,7 +124,7 @@ void N(MagikoopaAI_11)(Evt* script, MobileAISettings* aiSettings, EnemyDetectVol
npc->duration++;
if (npc->duration == 5) {
enable_npc_shadow(npc);
enemy->flags &= 0xE0EFFFFF;
enemy->flags &= ~ENEMY_FLAG_COMBINATION;
}
if (enemy->varTable[0] == 0) {
if (npc->duration >= 20) {
@ -245,16 +248,16 @@ ApiStatus N(MagikoopaAI_Main)(Evt* script, s32 isInitialCall) {
territory.halfHeight = 100.0f;
territory.detectFlags = 0;
if (isInitialCall || (enemy->aiFlags & 4)) {
if (isInitialCall || (enemy->aiFlags & ENEMY_AI_FLAGS_4)) {
npc->currentAnim = enemy->animList[0];
npc->flags &= ~0x800;
npc->flags |= 0x200000;
enemy->flags |= 0x200000;
npc->flags &= ~NPC_FLAG_JUMPING;
npc->flags |= NPC_FLAG_200000;
enemy->flags |= ENEMY_FLAGS_200000;
npc->duration = 0;
if ((enemy->aiFlags & 4) != 0) {
enemy->aiFlags &= ~4;
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
npc->alpha = 0xFF;
npc->duration = 0x14;
npc->duration = 20;
npc->scale.x = 1.0f;
npc->scale.y = 1.0f;
npc->scale.z = 1.0f;

View File

@ -80,7 +80,7 @@ ApiStatus N(ShyGuyPatrolAI_Main)(Evt* script, s32 isInitialCall) {
territory.halfHeight = 65.0f;
territory.detectFlags = 0;
if (isInitialCall || enemy->aiFlags & 4) {
if (isInitialCall || enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 0;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
@ -94,13 +94,13 @@ ApiStatus N(ShyGuyPatrolAI_Main)(Evt* script, s32 isInitialCall) {
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
}
if (enemy->aiFlags & 4) {
script->functionTemp[0] = 0x63;
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 99;
script->functionTemp[1] = 0;
enemy->aiFlags &= ~4;
} else if (enemy->flags & 0x40000000) {
script->functionTemp[0] = 0xC;
enemy->flags &= ~0x40000000;
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
} else if (enemy->flags & ENEMY_FLAGS_40000000) {
script->functionTemp[0] = 12;
enemy->flags &= ~ENEMY_FLAGS_40000000;
}
posX = npc->pos.x;

View File

@ -78,7 +78,7 @@ ApiStatus N(ShyGuyWanderAI_Main)(Evt* script, s32 isInitialCall) {
territory.halfHeight = 65.0f;
territory.detectFlags = 0;
if (isInitialCall || enemy->aiFlags & 4) {
if (isInitialCall || enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 0;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
@ -92,14 +92,14 @@ ApiStatus N(ShyGuyWanderAI_Main)(Evt* script, s32 isInitialCall) {
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
}
if (enemy->aiFlags & 4) {
script->functionTemp[0] = 0x63;
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = 99;
script->functionTemp[1] = 0;
} else if (enemy->flags & 0x40000000) {
script->functionTemp[0] = 0xC;
} else if (enemy->flags & ENEMY_FLAGS_40000000) {
script->functionTemp[0] = 12;
}
enemy->aiFlags &= ~4;
enemy->flags &= ~0x40000000;
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
enemy->flags &= ~ENEMY_FLAGS_40000000;
hitDepth = 100.0f;
posX = npc->pos.x;

View File

@ -3,6 +3,7 @@
#include "common.h"
#include "npc.h"
#include "effects.h"
#include "sprite/npc/Spiny.h"
// prerequisites
#include "world/common/enemy/TackleAI.inc.c"
@ -64,7 +65,7 @@ ApiStatus N(SpinyAI_Main)(Evt* script, s32 isInitialCall) {
npc->collisionHeight = enemy->varTable[6];
enemy->aiFlags &= ~ENEMY_AI_FLAGS_4;
if (npc->flags & NPC_FLAG_JUMPING) {
npc->currentAnim = 0x4A0018;
npc->currentAnim = ANIM_Spiny_Anim18;
npc->moveSpeed = 0.0f;
npc->jumpVelocity = 0.0f;
npc->jumpScale = 1.0f;
@ -134,7 +135,7 @@ ApiStatus N(SpinyAI_Main)(Evt* script, s32 isInitialCall) {
npc->flags &= ~NPC_FLAG_2;
npc->flags &= ~NPC_FLAG_GRAVITY;
npc->renderYaw = 0.0f;
npc->currentAnim = 0x4A0018;
npc->currentAnim = ANIM_Spiny_Anim18;
script->AI_TEMP_STATE = 101;
case 101:
if (enemy->varTable[10] != 3) {
@ -192,7 +193,7 @@ ApiStatus N(SpinyAI_Main)(Evt* script, s32 isInitialCall) {
npc->flags &= ~NPC_FLAG_JUMPING;
npc->jumpVelocity = 0.0f;
npc->yaw = atan2(npc->pos.x, npc->pos.z, gPlayerStatusPtr->position.x, gPlayerStatusPtr->position.z);
npc->currentAnim = 0x4A001A;
npc->currentAnim = ANIM_Spiny_Anim1A;
npc->duration = 3;
script->AI_TEMP_STATE = 103;
break;
@ -205,7 +206,7 @@ ApiStatus N(SpinyAI_Main)(Evt* script, s32 isInitialCall) {
npc->duration--;
if (npc->duration <= 0) {
npc->flags &= ~NPC_FLAG_40000;
npc->currentAnim = 0x4A0001;
npc->currentAnim = ANIM_Spiny_Anim01;
script->AI_TEMP_STATE = 0;
}
break;

View File

@ -191,11 +191,13 @@ ApiStatus N(UnkFloAI_Main)(Evt* script, s32 isInitialCall) {
script->functionTemp[0] = AI_STATE_WANDER_INIT;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->flags &= ~0x800;
npc->flags &= ~NPC_FLAG_JUMPING;
if (!enemy->territory->wander.isFlying) {
npc->flags = (npc->flags | 0x200) & ~0x8;
npc->flags |= NPC_FLAG_GRAVITY;
npc->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT;
} else {
npc->flags = (npc->flags & ~0x200) | 0x8;
npc->flags &= ~NPC_FLAG_GRAVITY;
npc->flags |= NPC_FLAG_ENABLE_HIT_SCRIPT;
}
if (enemy->aiFlags & ENEMY_AI_FLAGS_4) {
script->functionTemp[0] = AI_STATE_SUSPEND;

View File

@ -166,7 +166,7 @@ void N(PiranhaPlantAI_10)(Evt* script, MobileAISettings* aiSettings, EnemyDetect
}
}
if (!phi_s7 && (!(npc->flags & 8) || phi_fp)) {
if (!phi_s7 && (!(npc->flags & NPC_FLAG_ENABLE_HIT_SCRIPT) || phi_fp)) {
sp20 = npc->pos.x;
sp38 = 400.0f;
sp28 = npc->pos.z;

View File

@ -1,6 +1,7 @@
#include "common.h"
#include "world/partners.h"
#include "effects.h"
#include "sprite/npc/WorldBombette.h"
BSS s32 D_802BE920;
BSS s32 D_802BE924;
@ -255,7 +256,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
npc->moveToPos.x = playerStatus->position.x;
npc->moveToPos.y = playerStatus->position.y;
npc->moveToPos.z = playerStatus->position.z;
npc->currentAnim = 0x30007;
npc->currentAnim = ANIM_WorldBombette_Run;
add_vec2D_polar(&npc->moveToPos.x, &npc->moveToPos.z, 0.0f, playerStatus->targetYaw);
temp_f0 = clamp_angle(playerStatus->targetYaw + ((D_802BE920 != 0) ? -90.0f : 90.0f));
@ -279,7 +280,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
disable_npc_blur(npc);
suggest_player_anim_clearUnkFlag(ANIM_Mario_6000C);
npc->yaw = playerStatus->targetYaw;
npc->currentAnim = 0x30005;
npc->currentAnim = ANIM_WorldBombette_Walk;
evt->functionTemp[0] = 1;
evt->functionTemp[1] = 10;
}
@ -296,10 +297,10 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
break;
}
sfx_play_sound_at_npc(0x80000000, 0, -4);
sfx_play_sound_at_npc(SOUND_80000000, 0, -4);
D_802BE924 = 1;
add_vec2D_polar(&npc->pos.x, &npc->pos.z, 0.0f, npc->yaw);
npc->currentAnim = 0x30006;
npc->currentAnim = ANIM_WorldBombette_WalkLit;
npc->jumpVelocity = 0.0f;
D_802BE938 = 0;
npc->flags = (npc->flags | 0x200) & ~0x100;
@ -333,7 +334,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
if (playerStatus->actionState == 0) {
suggest_player_anim_clearUnkFlag(ANIM_Mario_10002);
}
npc->currentAnim = 0x30010;
npc->currentAnim = ANIM_WorldBombette_AboutToExplode;
npc->flags &= ~0x200;
evt->functionTemp[1] = 2;
evt->functionTemp[0] = 3;
@ -344,9 +345,9 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
} else {
if (!(evt->functionTemp[1] & 3)) {
if (gGameStatusPtr->frameCounter & 1) {
sfx_play_sound_at_npc(0x141, 0, -4);
sfx_play_sound_at_npc(SOUND_141, 0, -4);
} else {
sfx_play_sound_at_npc(0x142, 0, -4);
sfx_play_sound_at_npc(SOUND_142, 0, -4);
}
}
if (evt->functionTemp[1] == 40) {
@ -372,8 +373,8 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
}
}
npc->currentAnim = 0x30000 | 0x10;
evt->functionTemp[1] = 0x14;
npc->currentAnim = ANIM_WorldBombette_AboutToExplode;
evt->functionTemp[1] = 20;
evt->functionTemp[0] = 3;
if (playerStatus->actionState == 0) {
suggest_player_anim_clearUnkFlag(ANIM_Mario_10002);
@ -390,19 +391,19 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
if (D_802BE924 != 0) {
D_802BE924 = 0;
sfx_stop_sound(0x80000000);
sfx_stop_sound(SOUND_80000000);
}
fx_explosion(gPlayerData.partners[gPlayerData.currentPartner].level, npc->pos.x, npc->pos.y + (npc->collisionHeight * 0.5f), npc->pos.z);
switch (gPlayerData.partners[gPlayerData.currentPartner].level) {
case 0:
sfx_play_sound_at_npc(0x2016, 0, -4);
sfx_play_sound_at_npc(SOUND_2016, 0, -4);
break;
case 1:
sfx_play_sound_at_npc(0x2017, 0, -4);
sfx_play_sound_at_npc(SOUND_2017, 0, -4);
break;
case 2:
sfx_play_sound_at_npc(0x2018, 0, -4);
sfx_play_sound_at_npc(SOUND_2018, 0, -4);
break;
}
@ -436,7 +437,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
collisionStatus->bombetteExplosionPos.x = npc->pos.x;
collisionStatus->bombetteExplosionPos.y = npc->pos.y;
collisionStatus->bombetteExplosionPos.z = npc->pos.z;
npc->currentAnim = 0x30011;
npc->currentAnim = ANIM_WorldBombette_Aftermath;
temp1 = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z);
if (!(get_clamped_angle_diff(camera->currentYaw, temp1) < 0.0f)) {
evt->functionTemp[2] = 1;
@ -463,7 +464,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
npc->yaw = clamp_angle(gCameras[CAM_DEFAULT].currentYaw + playerStatus->spriteFacingAngle);
add_vec2D_polar(&npc->pos.x, &npc->pos.z, 10.0f, npc->yaw);
npc->jumpVelocity = 0.0f;
npc->currentAnim = 0x30011;
npc->currentAnim = ANIM_WorldBombette_Aftermath;
npc->flags |= 0x800;
evt->functionTemp[0] = 6;
break;
@ -506,13 +507,13 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
npc->pos.y = playerStatus->position.y;
npc->rotation.x = 0.0f;
npc->rotation.z = 0.0f;
npc->currentAnim = 0x30003;
npc->currentAnim = ANIM_WorldBombette_Idle;
partner_clear_player_tracking(npc);
if (D_802BE924 == 0) {
return ApiStatus_DONE2;
}
D_802BE924 = 0;
sfx_stop_sound(0x80000000);
sfx_stop_sound(SOUND_80000000);
return ApiStatus_DONE2;
case 8:
if (D_802BE92C != 0) {
@ -525,7 +526,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
npc->pos.y = playerStatus->position.y;
npc->rotation.x = 0.0f;
npc->rotation.z = 0.0f;
npc->currentAnim = 0x30003;
npc->currentAnim = ANIM_WorldBombette_Idle;
npc->pos.x = playerStatus->position.x;
npc->pos.y = playerStatus->position.y;
npc->pos.z = playerStatus->position.z;
@ -546,7 +547,7 @@ ApiStatus func_802BD758_3184A8(Evt* evt, s32 isInitialCall) {
return ApiStatus_DONE2;
}
D_802BE924 = 0;
sfx_stop_sound(0x80000000);
sfx_stop_sound(SOUND_80000000);
break;
}
@ -663,13 +664,13 @@ void world_bombette_pre_battle(Npc* bombette) {
bombette->pos.y = playerStatus->position.y;
bombette->rotation.x = 0.0f;
bombette->rotation.z = 0.0f;
bombette->currentAnim = 0x30003;
bombette->currentAnim = ANIM_WorldBombette_Idle;
partner_clear_player_tracking(bombette);
disable_npc_blur(bombette);
if (D_802BE924) {
D_802BE924 = 0;
sfx_stop_sound(0x80000000);
sfx_stop_sound(SOUND_80000000);
}
}
}

View File

@ -1,6 +1,7 @@
#include "common.h"
#include "../partners.h"
#include "npc.h"
#include "sprite/npc/WorldBow.h"
BSS s32 D_802BE0C0;
BSS s32 D_802BE0C4;
@ -247,7 +248,7 @@ ApiStatus BowUseAbility(Evt* script, s32 isInitialCall) {
bow->moveToPos.x = playerStatus->position.x;
bow->moveToPos.y = playerStatus->position.y + (playerStatus->colliderHeight * 0.5f);
bow->moveToPos.z = playerStatus->position.z;
bow->currentAnim = 0x50002;
bow->currentAnim = ANIM_WorldBow_Walk;
bow->yaw = playerStatus->targetYaw;
add_vec2D_polar(&bow->moveToPos.x, &bow->moveToPos.z, -2.0f, gCameras[gCurrentCameraID].currentYaw);
add_vec2D_polar(&bow->moveToPos.x, &bow->moveToPos.z,
@ -259,8 +260,7 @@ ApiStatus BowUseAbility(Evt* script, s32 isInitialCall) {
script->functionTemp[0]++;
break;
case 21:
if (collisionStatus->currentFloor >= 0 &&
(playerStatus->animFlags & PA_FLAGS_100000) == 0) {
if (collisionStatus->currentFloor >= 0 && !(playerStatus->animFlags & PA_FLAGS_100000)) {
bow->moveToPos.x = playerStatus->position.x;
bow->moveToPos.y = playerStatus->position.y + (playerStatus->colliderHeight * 0.5f);
bow->moveToPos.z = playerStatus->position.z;
@ -291,7 +291,7 @@ ApiStatus BowUseAbility(Evt* script, s32 isInitialCall) {
bow->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
script->functionTemp[0]++;
playerStatus->flags &= ~PS_FLAGS_100;
bow->flags |= 0x40;
bow->flags |= NPC_FLAG_40;
}
get_shadow_by_index(bow->shadowIndex)->alpha = playerStatus->alpha1 >> 1;

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "../src/world/partners.h"
#include "sprite/npc/WorldKooper.h"
extern s16 D_8010C97A;
@ -59,7 +60,7 @@ s32 func_802BD17C_31B19C(Npc* kooper) {
void world_kooper_init(Npc* kooper) {
kooper->collisionHeight = 37;
kooper->collisionRadius = 24;
kooper->collisionChannel = 0x00010000;
kooper->collisionChannel = COLLISION_CHANNEL_10000;
D_802BEC54 = 0;
}
@ -200,7 +201,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
if (currentEncounter->unk_08 == 0) {
if (isInitialCall) {
func_802BD5F4_31B614(kooper);
if (playerStatus->animFlags & 0x100000) {
if (playerStatus->animFlags & PA_FLAGS_100000) {
return ApiStatus_DONE2;
}
@ -215,7 +216,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
partnerActionStatus->partnerActionState = PARTNER_ACTION_KOOPER_1;
partnerActionStatus->actingPartner = PARTNER_KOOPER;
script->functionTemp[0] = 5;
kooper->currentAnim = 0x20009;
kooper->currentAnim = ANIM_WorldKooper_SpinShell;
D_802BEC50 = 30;
}
}
@ -224,14 +225,14 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
case 20:
if (playerStatus->inputEnabledCounter == 0) {
if (playerStatus->timeInAir == 0) {
if (kooper->flags & 0x1000) {
if (kooper->flags & NPC_FLAG_1000) {
disable_player_input();
script->functionTemp[2] = playerStatus->inputEnabledCounter;
D_802BEC64 = 1;
D_802BEB40_31CB60 = 0;
D_802BEC6C = 0;
kooper->flags &= ~0xA08;
kooper->flags |= 0x140;
kooper->flags &= ~(NPC_FLAG_GRAVITY | NPC_FLAG_JUMPING | NPC_FLAG_ENABLE_HIT_SCRIPT);
kooper->flags |= (NPC_FLAG_100 | NPC_FLAG_40);
partnerActionStatus->actingPartner = PARTNER_KOOPER;
partnerActionStatus->partnerActionState = PARTNER_ACTION_KOOPER_1;
D_802BEC58 = func_800EF4E0();
@ -262,7 +263,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
kooper->moveToPos.x = D_802BEC70 = playerStatus->position.x;
kooper->moveToPos.y = D_802BEC74 = playerStatus->position.y;
kooper->moveToPos.z = D_802BEC78 = playerStatus->position.z;
kooper->currentAnim = 0x20005;
kooper->currentAnim = ANIM_WorldKooper_Run;
add_vec2D_polar(&kooper->moveToPos.x, &kooper->moveToPos.z,
playerStatus->colliderDiameter / 3, playerStatus->targetYaw);
clamp = clamp_angle(playerStatus->targetYaw + ((D_802BEC58 != 0) ? 90.0f : -90.0f));
@ -289,7 +290,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
kooper->yaw = playerStatus->targetYaw;
kooper->jumpVelocity = 18.0f;
kooper->jumpScale = 3.0f;
kooper->currentAnim = 0x2000A;
kooper->currentAnim = ANIM_WorldKooper_EnterShell;
kooper->collisionHeight = 12;
kooper->moveToPos.y = playerStatus->position.y;
@ -339,7 +340,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
kooper->rotation.z = 0.0f;
kooper->planarFlyDist = 0.0f;
kooper->moveSpeed = 8.0f;
kooper->currentAnim = 0x20009;
kooper->currentAnim = ANIM_WorldKooper_SpinShell;
D_802BEB40_31CB60 = 1;
fx_damage_stars(3, kooper->pos.x, kooper->pos.y + kooper->collisionHeight, kooper->pos.z,
sin_deg(playerStatus->targetYaw), -1.0f, -cos_deg(playerStatus->targetYaw), 3);
@ -405,13 +406,13 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
kooper->moveSpeed = 14.0f;
}
if ((func_800397E8(kooper, 6.0f) == 0) && ((playerStatus->flags & 6) == 0)) {
if (!(func_800397E8(kooper, 6.0f) || playerStatus->flags & (PS_FLAGS_JUMPING | PS_FLAGS_FALLING))) {
kooper->pos.y = (kooper->pos.y + ((playerStatus->position.y - kooper->pos.y) / 10.0f));
}
npc_do_other_npc_collision(kooper);
if ((kooper->flags & 0x2000000) == 0) {
if (!(kooper->flags & NPC_FLAG_SIMPLIFIED_PHYSICS)) {
if (func_802BD17C_31B19C(kooper) != 0) {
sfx_play_sound_at_npc(SOUND_286, 0, -4);
temp_f20_3 = sin_deg(kooper->yaw);
@ -449,6 +450,7 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
break;
}
} else {
//TODO get rid of label
goto label2;
}
} else {
@ -577,8 +579,8 @@ ApiStatus func_802BD638_31B658(Evt* script, s32 isInitialCall) {
partnerActionStatus->partnerActionState = PARTNER_ACTION_NONE;
kooper->jumpVelocity = 0.0f;
kooper->collisionHeight = 24;
kooper->currentAnim = 0x20000 | 4;
sfx_stop_sound(0x284);
kooper->currentAnim = ANIM_WorldKooper_Walk;
sfx_stop_sound(SOUND_284);
disable_npc_blur(kooper);
if (D_802BEC6C != 0) {
@ -699,7 +701,7 @@ void world_kooper_pre_battle(Npc* kooper) {
kooper->flags &= ~NPC_FLAG_JUMPING;
kooper->flags &= ~NPC_FLAG_40;
sfx_stop_sound(0x284);
sfx_stop_sound(SOUND_284);
set_action_state(0);
partner_clear_player_tracking(kooper);
disable_npc_blur(kooper);

View File

@ -1,6 +1,7 @@
#include "common.h"
#include "../partners.h"
#include "effects.h"
#include "sprite/npc/WorldLakilester.h"
extern s16 D_8010C97A;
@ -47,7 +48,7 @@ void func_802BD100_320C50(void) {
void world_lakilester_init(Npc* npc) {
npc->collisionHeight = 38;
npc->collisionRadius = 36;
npc->collisionChannel = 0x10000;
npc->collisionChannel = COLLISION_CHANNEL_10000;
D_802BFF18 = 0;
D_802BFF04 = 0;
D_802BFF08 = 0;
@ -248,16 +249,16 @@ s32 func_802BD99C_3214EC(Npc* partner, f32 yOffset, f32 zOffset) {
f32 outLength = zOffset;
f32 hitRx, hitRz;
f32 hitDirX, hitDirZ;
f32 temp_f4;
f32 deltaY;
D_802BFF24 = 0;
if (player_raycast_below_cam_relative(&gPlayerStatus, &outX, &outY, &outZ, &outLength, &hitRx, &hitRz,
&hitDirX, &hitDirZ) >= 0) {
temp_f4 = outY - partner->moveToPos.y;
if (temp_f4 != 0.0f) {
if (fabs(temp_f4) < 10.0) {
D_802BFF24 = temp_f4;
deltaY = outY - partner->moveToPos.y;
if (deltaY != 0.0f) {
if (fabs(deltaY) < 10.0) {
D_802BFF24 = deltaY;
partner->moveToPos.y = outY;
return TRUE;
} else {
@ -502,10 +503,10 @@ void func_802BDDD8_321928(Npc* npc) {
belowSurfaceType = get_collider_flags(raycastBelowResult) & 0xFF;
if (belowSurfaceType == SURFACE_TYPE_LAVA) {
npc->currentAnim = 0x80006;
npc->currentAnim = ANIM_WorldLakilester_StrainWalk;
npc->moveSpeed = moveSpeed * 0.5f;
} else {
npc->currentAnim = 0x80005;
npc->currentAnim = ANIM_WorldLakilester_Walk;
npc->moveSpeed = moveSpeed;
}
return;
@ -573,7 +574,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
playerStatus->actionState == ACTION_STATE_RUN ||
playerStatus->actionState == ACTION_STATE_FALLING) {
playerStatus->flags |= PA_FLAGS_100;
playerStatus->flags |= PS_FLAGS_100;
} else {
return ApiStatus_DONE2;
}
@ -585,7 +586,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
npc->flags |= NPC_FLAG_100;
set_action_state(ACTION_STATE_RIDE);
suggest_player_anim_setUnkFlag(ANIM_Mario_8000E);
npc->currentAnim = 0x80005;
npc->currentAnim = ANIM_WorldLakilester_Walk;
D_802BFF0C = 1;
npc->flags &= ~(NPC_FLAG_40 | NPC_FLAG_ENABLE_HIT_SCRIPT);
npc->flags |= (NPC_FLAG_100 | NPC_FLAG_400000);
@ -595,7 +596,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
npc->pos.x = playerStatus->position.x;
npc->pos.y = npc->moveToPos.y;
npc->pos.z = playerStatus->position.z;
npc->currentAnim = 0x80005;
npc->currentAnim = ANIM_WorldLakilester_Walk;
playerStatus->position.y = npc->pos.y + 10.0f;
npc->moveSpeed = 3.0f;
npc->jumpScale = 0.0f;
@ -624,7 +625,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
if (playerStatus->flags & PS_FLAGS_800 ||
playerStatus->inputEnabledCounter) {
playerStatus->flags &= ~NPC_FLAG_100;
playerStatus->flags &= ~PS_FLAGS_100;
return ApiStatus_DONE2;
}
script->functionTemp[1] = 3;
@ -633,8 +634,8 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
D_802BFF14 += 1;
break;
case 41:
if (playerStatus->flags & PA_FLAGS_800) {
playerStatus->flags &= ~NPC_FLAG_100;
if (playerStatus->flags & PS_FLAGS_800) {
playerStatus->flags &= ~PS_FLAGS_100;
if (D_802BFF04 != 0) {
enable_player_input();
D_802BFF04 = 0;
@ -699,7 +700,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
npc->yaw = atan2(npc->pos.x, npc->pos.z, npc->moveToPos.x, npc->moveToPos.z);
npc->duration = 12;
npc->currentAnim = 0x80005;
npc->currentAnim = ANIM_WorldLakilester_Walk;
npc->jumpVelocity = 8.0f;
npc->jumpScale = 1.4f;
suggest_player_anim_clearUnkFlag(ANIM_Mario_BeforeJump);
@ -710,10 +711,10 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
suggest_player_anim_clearUnkFlag(ANIM_Mario_AnimMidairStill);
/* fallthrough */
case 102:
D_802BFF14 += 1;
D_802BFF14++;
/* fallthrough */
case 103:
if (!(playerStatus->flags & PA_FLAGS_800)) {
if (!(playerStatus->flags & PS_FLAGS_800)) {
npc->pos.x += (npc->moveToPos.x - npc->pos.x) / npc->duration;
npc->pos.z += (npc->moveToPos.z - npc->pos.z) / npc->duration;
npc->pos.y += (npc->moveToPos.y - npc->pos.y) / npc->duration;
@ -759,7 +760,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
}
break;
case 104:
if (playerStatus->flags & PA_FLAGS_800) {
if (playerStatus->flags & PS_FLAGS_800) {
D_802BFF14 = 10;
break;
} else {
@ -806,7 +807,7 @@ ApiStatus func_802BE724_322274(Evt* script, s32 isInitialCall) {
break;
case 3:
npc->flags &= ~NPC_FLAG_40;
playerStatus->flags |= NPC_FLAG_100;
playerStatus->flags |= PS_FLAGS_100;
func_802BD7DC();
camYaw = camera->currentYaw;
if (playerStatus->spriteFacingAngle >= 90.0f && playerStatus->spriteFacingAngle < 270.0f) {

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "../src/world/partners.h"
#include "sprite/npc/WorldParakarry.h"
BSS s32 D_802BEBB0;
BSS s32 D_802BEBB4;
@ -193,7 +194,7 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
parakarry->flags &= ~(NPC_FLAG_JUMPING | NPC_FLAG_GRAVITY);
D_802BEBB0 = 1;
gCameras[0].moveFlags |= CAMERA_MOVE_FLAGS_1;
parakarry->currentAnim = 0x40009;
parakarry->currentAnim = ANIM_WorldParakarry_CarryLight;
partnerActionStatus->actingPartner = PARTNER_PARAKARRY;
partnerActionStatus->partnerActionState = PARTNER_ACTION_PARAKARRY_HOVER;
parakarry->flags &= ~NPC_FLAG_4000;
@ -205,19 +206,19 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
}
switch (D_802BEBC0_31CBE0) {
case 0x28:
case 40:
if (playerStatus->inputEnabledCounter == 0) {
D_802BEBC4 = 3;
D_802BEBC0_31CBE0 = 0x29;
D_802BEBC0_31CBE0 = 41;
evt->functionTemp[2] = playerStatus->inputEnabledCounter;
} else {
goto block_end_return_ApiStatus_DONE2; // TODO remove this goto
}
case 0x29:
case 41:
if (D_802BEBC4 == 0) {
if (evt->functionTemp[2] >= playerStatus->inputEnabledCounter) {
if (func_800EA52C(4)) {
D_802BEBC0_31CBE0 = 0x1E;
D_802BEBC0_31CBE0 = 30;
break;
}
}
@ -228,7 +229,7 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
}
switch (D_802BEBC0_31CBE0) {
case 0x1E:
case 30:
set_action_state(ACTION_STATE_RIDE);
disable_player_input();
disable_player_static_collisions();
@ -247,17 +248,17 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
parakarry->duration = 4;
D_802BEBC0_31CBE0++;
break;
case 0x1F:
case 31:
if (playerStatus->actionState == ACTION_STATE_HIT_FIRE || playerStatus->actionState == ACTION_STATE_HIT_LAVA || playerStatus->actionState == ACTION_STATE_KNOCKBACK
|| playerStatus->actionState == ACTION_STATE_JUMP || playerStatus->actionState == ACTION_STATE_HOP) {
disable_npc_blur(parakarry);
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
} else {
suggest_player_anim_clearUnkFlag(ANIM_Mario_10002);
parakarry->moveToPos.x = playerStatus->position.x;
parakarry->moveToPos.y = playerStatus->position.y + 32.0f;
parakarry->moveToPos.z = playerStatus->position.z;
parakarry->currentAnim = 0x40003;
parakarry->currentAnim = ANIM_WorldParakarry_Run;
add_vec2D_polar(&parakarry->moveToPos.x, &parakarry->moveToPos.z, 0.0f, playerStatus->targetYaw);
tempYaw = playerStatus->targetYaw;
@ -278,7 +279,7 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
disable_npc_blur(parakarry);
parakarry->yaw = playerStatus->targetYaw;
parakarry->moveSpeed = 0.2f;
parakarry->currentAnim = 0x4000A;
parakarry->currentAnim = ANIM_WorldParakarry_CarryHeavy;
parakarry->planarFlyDist = 0;
suggest_player_anim_setUnkFlag(ANIM_Mario_8000D);
sfx_play_sound_at_npc(SOUND_2009, 0, -4);
@ -396,7 +397,7 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
parakarry->jumpScale = -0.01f;
parakarry->moveToPos.y = playerStatus->position.y;
parakarry->duration = 0;
parakarry->currentAnim = 0x4000A;
parakarry->currentAnim = ANIM_WorldParakarry_CarryHeavy;
parakarry->animationSpeed = 1.8f;
gCollisionStatus.currentFloor = -1;
D_802BEBC0_31CBE0++;
@ -505,37 +506,37 @@ ApiStatus func_802BD660_319BD0(Evt* evt, s32 isInitialCall) {
break;
}
} else {
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
break;
}
}
suggest_player_anim_clearUnkFlag(ANIM_Mario_10002);
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
}
break;
}
}
suggest_player_anim_clearUnkFlag(ANIM_Mario_10002);
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
}
} else {
D_802BEBC0_31CBE0 = 0x14;
D_802BEBC0_31CBE0 = 20;
}
} else {
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
}
break;
case 6:
if (D_802BEBC4 != 0) {
D_802BEBC4--;
} else {
D_802BEBC0_31CBE0 = 0x15;
D_802BEBC0_31CBE0 = 21;
}
break;
}
if (D_802BEBC0_31CBE0 == 0x16 || D_802BEBC0_31CBE0 == 0x15 || D_802BEBC0_31CBE0 == 0x14) {
parakarry->currentAnim = 0x40001;
parakarry->currentAnim = ANIM_WorldParakarry_Idle;
D_802BEBB0 = 0;
parakarry->jumpVelocity = 0.0f;
parakarry->flags &= ~ACTOR_FLAG_HP_OFFSET_BELOW;

View File

@ -2,12 +2,13 @@
#include "../src/world/partners.h"
#include "npc.h"
#include "effects.h"
#include "sprite/npc/WorldSushie.h"
extern s16 D_8010C97A;
void partner_kill_ability_script(void);
BSS f32 D_802BFEE0;
BSS f32 OriginalPlayerY;
BSS s32 bss_802BFEE4;
BSS s32 bss_802BFEE8;
BSS s32 D_802BFEEC;
@ -87,7 +88,7 @@ void func_802BD368_31E0D8(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32
collisionStatus->currentFloor = -1;
} else {
collisionStatus->currentFloor = D_8010C97A;
D_802BFEE0 = arg2;
OriginalPlayerY = arg2;
}
}
@ -121,7 +122,7 @@ EvtScript world_sushie_use_ability = {
void world_sushie_init(Npc* sushie) {
sushie->collisionHeight = 24;
sushie->collisionRadius = 36;
sushie->collisionChannel = 0x10000;
sushie->collisionChannel = COLLISION_CHANNEL_10000;
D_802BFEEC = 0;
bss_802BFEE4 = 0;
bss_802BFEE8 = 0;
@ -265,7 +266,7 @@ void world_sushie_pre_battle(Npc* sushie) {
if (D_802BFEEC) {
sushieActionStatus->npc = *sushie;
sushieActionStatus->partnerAction_unk_1 = 1;
sushieActionStatus->partnerAction_unk_1 = TRUE;
enable_player_static_collisions();
enable_player_input();
set_action_state(ACTION_STATE_IDLE);
@ -278,7 +279,7 @@ void world_sushie_pre_battle(Npc* sushie) {
void world_sushie_post_battle(Npc* sushie) {
PartnerActionStatus* sushieActionStatus = &gPartnerActionStatus;
if (sushieActionStatus->partnerAction_unk_1 != 0) {
if (sushieActionStatus->partnerAction_unk_1) {
*sushie = sushieActionStatus->npc;
partner_use_ability();
}
@ -287,17 +288,13 @@ void world_sushie_post_battle(Npc* sushie) {
s32 func_802BFAB8_320828(Evt* script, s32 isInitialCall) {
Npc* partnerNPC = get_npc_unsafe(NPC_PARTNER);
PlayerStatus* playerStatus = &gPlayerStatus;
f32 temp_f0;
s32 funcTemp0;
if (isInitialCall) {
script->functionTemp[0] = 0;
D_802BFEE0 = playerStatus->position.y;
OriginalPlayerY = playerStatus->position.y;
}
funcTemp0 = script->functionTemp[0];
switch (funcTemp0) {
switch (script->functionTemp[0]) {
case 0:
gGameStatusPtr->keepUsingPartnerOnMapChange = 1;
disable_player_static_collisions();
@ -307,10 +304,9 @@ s32 func_802BFAB8_320828(Evt* script, s32 isInitialCall) {
partnerNPC->pos.y = playerStatus->position.y;
func_802BD368_31E0D8(partnerNPC->collisionChannel, partnerNPC->pos.x, partnerNPC->pos.y, partnerNPC->pos.z,
partnerNPC->yaw, partnerNPC->collisionRadius * 0.5f);
partnerNPC->pos.y = D_802BFEE0 - (partnerNPC->collisionHeight * 0.5f);
temp_f0 = atan2(partnerNPC->pos.x, partnerNPC->pos.z, script->varTable[1], script->varTable[3]);
partnerNPC->currentAnim = 0x7000A;
partnerNPC->yaw = temp_f0;
partnerNPC->pos.y = OriginalPlayerY - (partnerNPC->collisionHeight * 0.5f);
partnerNPC->yaw = atan2(partnerNPC->pos.x, partnerNPC->pos.z, script->varTable[1], script->varTable[3]);
partnerNPC->currentAnim = ANIM_WorldSushie_Ride;
partnerNPC->jumpScale = 0.0f;
partnerNPC->moveSpeed = 3.0f;
partnerNPC->moveToPos.x = partnerNPC->pos.x;
@ -331,7 +327,7 @@ s32 func_802BFAB8_320828(Evt* script, s32 isInitialCall) {
}
}
script->functionTemp[1] = 0x19;
script->functionTemp[1] = 25;
script->functionTemp[0] = 1;
break;
case 1:
@ -345,7 +341,7 @@ s32 func_802BFAB8_320828(Evt* script, s32 isInitialCall) {
script->functionTemp[1]--;
if (script->functionTemp[1] == 0) {
if (script->varTable[12] == funcTemp0) {
if (script->varTable[12] == 1) {
set_action_state(ACTION_STATE_RIDE);
partner_use_ability();
return ApiStatus_DONE2;

View File

@ -2,6 +2,7 @@
#include "effects.h"
#include "../src/world/partners.h"
#include "npc.h"
#include "sprite/npc/WorldWatt.h"
void force_player_anim(AnimID);
void func_802BE014_31DB84(void);
@ -107,12 +108,12 @@ ApiStatus WattUpdate(Evt* script, s32 isInitialCall) {
if (D_802BE278_31DDE8 == 0) {
D_802BE278_31DDE8 = 1;
func_802BD1AC_31CD1C(1);
watt->currentAnim = 0x60003;
watt->currentAnim = ANIM_WorldWatt_Run;
}
} else if (D_802BE278_31DDE8 != 0) {
D_802BE278_31DDE8 = 0;
func_802BD1AC_31CD1C(0);
watt->currentAnim = 0x60001;
watt->currentAnim = ANIM_WorldWatt_Idle;
}
if (WattStaticEffect != NULL) {
@ -236,7 +237,7 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
partnerActionStatus->partnerAction_unk_1 = 0;
playerStatus->animFlags |= (PA_FLAGS_HOLDING_WATT | PA_FLAGS_2);
func_802BE014_31DB84();
npc->currentAnim = 0x60001;
npc->currentAnim = ANIM_WorldWatt_Idle;
D_802BE304 = 1;
script->functionTemp[1] = 2;
}
@ -285,10 +286,10 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
npc->moveToPos.x = playerStatus->position.x;
npc->moveToPos.y = playerStatus->position.y + 5.0f;
npc->moveToPos.z = playerStatus->position.z;
npc->currentAnim = 0x60002;
npc->currentAnim = ANIM_WorldWatt_Walk;
add_vec2D_polar(&npc->moveToPos.x, &npc->moveToPos.z, 15.0f, playerStatus->targetYaw);
npc->yaw = playerStatus->targetYaw;
npc->currentAnim = 0x60001;
npc->currentAnim = ANIM_WorldWatt_Idle;
playerStatus->animFlags |= PA_FLAGS_2;
func_802BE014_31DB84();
npc_set_palswap_mode_A(npc, 1);
@ -305,7 +306,7 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
npc->moveToPos.x = playerStatus->position.x;
npc->moveToPos.y = playerStatus->position.y + 5.0f;
npc->moveToPos.z = playerStatus->position.z;
npc->currentAnim = 0x60002;
npc->currentAnim = ANIM_WorldWatt_Walk;
add_vec2D_polar(&npc->moveToPos.x, &npc->moveToPos.z, 15.0f, playerStatus->targetYaw);
npc->duration = 8;
npc->yaw = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z);
@ -319,7 +320,7 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
npc->duration--;
if (npc->duration == 0) {
npc->yaw = playerStatus->targetYaw;
npc->currentAnim = 0x60001;
npc->currentAnim = ANIM_WorldWatt_Idle;
partnerActionStatus->actingPartner = PARTNER_WATT;
playerStatus->animFlags |= PA_FLAGS_2;
func_802BE014_31DB84();
@ -354,7 +355,7 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
if (D_802BE304 == 2) {
playerStatus->animFlags &= ~(PA_FLAGS_2 | PA_FLAGS_HOLDING_WATT);
npc->currentAnim = 0x60001;
npc->currentAnim = ANIM_WorldWatt_Idle;
partner_clear_player_tracking(npc);
D_802BE30C = 0;
partnerActionStatus->actingPartner = PARTNER_NONE;
@ -362,7 +363,7 @@ ApiStatus func_802BD754_31D2C4(Evt* script, s32 isInitialCall) {
gGameStatusPtr->keepUsingPartnerOnMapChange = FALSE;
D_802BE304 = 20;
npc_set_palswap_mode_A(npc, 0);
if (!(playerStatus->flags & 0x800)) {
if (!(playerStatus->flags & PS_FLAGS_800)) {
set_action_state(0);
}
return ApiStatus_DONE1;

View File

@ -1216,7 +1216,7 @@ void partner_walking_enable(Npc* partner, s32 val) {
wPartnerTetherDistance = 40.0f;
partner->currentAnim = gPartnerAnimations[D_8010CFD8].idle;
func_800EA5B8(&partner->flags);
partner->collisionChannel = 0x10000;
partner->collisionChannel = COLLISION_CHANNEL_10000;
partner->jumpVelocity = 0.0f;
partner->flags |= NPC_FLAG_400000 | NPC_FLAG_GRAVITY | NPC_FLAG_100;
partner->jumpScale = 1.8f;
@ -1320,7 +1320,7 @@ void partner_flying_enable(Npc* partner, s32 val) {
wPartnerTetherDistance = 40.0f;
partner->currentAnim = gPartnerAnimations[D_8010CFD8].idle;
func_800EA5B8(&partner->flags);
partner->collisionChannel = 0x10000;
partner->collisionChannel = COLLISION_CHANNEL_10000;
partner->flags |= NPC_FLAG_100;
partner->flags &= ~NPC_FLAG_GRAVITY;
}
@ -1763,9 +1763,9 @@ INCLUDE_ASM(s32, "world/partners", partner_flying_follow_player);
#endif
s32 partner_init_put_away(Npc* partner) {
partner->collisionChannel = 0x10000;
partner->collisionChannel = COLLISION_CHANNEL_10000;
D_8010CFC8 = 0;
partner->flags |= 0x100;
partner->flags |= NPC_FLAG_100;
return D_8010CFC8;
}
@ -1785,8 +1785,8 @@ s32 partner_put_away(Npc* partner) {
tempMoveToX = partner->pos.x;
tempMoveToY = partner->pos.y;
tempMoveToZ = partner->pos.z;
partner->flags &= ~0x200;
partner->flags &= ~8;
partner->flags &= ~NPC_FLAG_GRAVITY;
partner->flags &= ~NPC_FLAG_ENABLE_HIT_SCRIPT;
tempPosX = playerStatus->position.x;
partner->moveToPos.x = tempPosX;
tempPosY = playerStatus->position.y + (playerStatus->colliderHeight / 2);
@ -1839,7 +1839,7 @@ s32 partner_put_away(Npc* partner) {
}
s32 partner_init_get_out(Npc* npc) {
npc->collisionChannel = 0x10000;
npc->collisionChannel = COLLISION_CHANNEL_10000;
D_8010CFC8 = 0;
npc->flags |= NPC_FLAG_100;
return D_8010CFC8;

View File

@ -186,7 +186,7 @@ ApiStatus func_802803C8(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
if ((playerStatus->flags & 0x100)) {
if ((playerStatus->flags & PS_FLAGS_100)) {
return ApiStatus_DONE2;
}

View File

@ -515,8 +515,8 @@ glabel func_802BD414_31E184
/* 31E8F8 802BDB88 46800020 */ cvt.s.w $f0, $f0
/* 31E8FC 802BDB8C 46140002 */ mul.s $f0, $f0, $f20
/* 31E900 802BDB90 00000000 */ nop
/* 31E904 802BDB94 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31E908 802BDB98 C422FEE0 */ lwc1 $f2, %lo(D_802BFEE0)($at)
/* 31E904 802BDB94 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31E908 802BDB98 C422FEE0 */ lwc1 $f2, %lo(OriginalPlayerY)($at)
/* 31E90C 802BDB9C 46001081 */ sub.s $f2, $f2, $f0
/* 31E910 802BDBA0 3C014040 */ lui $at, 0x4040
/* 31E914 802BDBA4 44810000 */ mtc1 $at, $f0
@ -587,8 +587,8 @@ glabel func_802BD414_31E184
/* 31EA10 802BDCA0 1040001D */ beqz $v0, .L802BDD18
/* 31EA14 802BDCA4 00000000 */ nop
/* 31EA18 802BDCA8 868200B0 */ lh $v0, 0xb0($s4)
/* 31EA1C 802BDCAC 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EA20 802BDCB0 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EA1C 802BDCAC 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EA20 802BDCB0 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EA24 802BDCB4 00021040 */ sll $v0, $v0, 1
/* 31EA28 802BDCB8 44821000 */ mtc1 $v0, $f2
/* 31EA2C 802BDCBC 00000000 */ nop
@ -616,8 +616,8 @@ glabel func_802BD414_31E184
/* 31EA84 802BDD14 E6020064 */ swc1 $f2, 0x64($s0)
.L802BDD18:
/* 31EA88 802BDD18 868200B0 */ lh $v0, 0xb0($s4)
/* 31EA8C 802BDD1C 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EA90 802BDD20 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EA8C 802BDD1C 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EA90 802BDD20 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EA94 802BDD24 00021040 */ sll $v0, $v0, 1
/* 31EA98 802BDD28 44821000 */ mtc1 $v0, $f2
/* 31EA9C 802BDD2C 00000000 */ nop
@ -657,8 +657,8 @@ glabel func_802BD414_31E184
/* 31EB20 802BDDB0 46001082 */ mul.s $f2, $f2, $f0
/* 31EB24 802BDDB4 00000000 */ nop
/* 31EB28 802BDDB8 C6040064 */ lwc1 $f4, 0x64($s0)
/* 31EB2C 802BDDBC 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EB30 802BDDC0 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EB2C 802BDDBC 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EB30 802BDDC0 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EB34 802BDDC4 46040001 */ sub.s $f0, $f0, $f4
/* 31EB38 802BDDC8 46022100 */ add.s $f4, $f4, $f2
/* 31EB3C 802BDDCC 46020001 */ sub.s $f0, $f0, $f2
@ -695,8 +695,8 @@ glabel func_802BD414_31E184
/* 31EBB0 802BDE40 00000000 */ nop
/* 31EBB4 802BDE44 C682002C */ lwc1 $f2, 0x2c($s4)
/* 31EBB8 802BDE48 46001080 */ add.s $f2, $f2, $f0
/* 31EBBC 802BDE4C 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EBC0 802BDE50 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EBBC 802BDE4C 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EBC0 802BDE50 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EBC4 802BDE54 4600103C */ c.lt.s $f2, $f0
/* 31EBC8 802BDE58 00000000 */ nop
/* 31EBCC 802BDE5C 45000013 */ bc1f .L802BDEAC
@ -827,8 +827,8 @@ glabel func_802BD414_31E184
/* 31EDB4 802BE044 468010A0 */ cvt.s.w $f2, $f2
/* 31EDB8 802BE048 46141082 */ mul.s $f2, $f2, $f20
/* 31EDBC 802BE04C 00000000 */ nop
/* 31EDC0 802BE050 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EDC4 802BE054 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EDC0 802BE050 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EDC4 802BE054 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EDC8 802BE058 46060001 */ sub.s $f0, $f0, $f6
/* 31EDCC 802BE05C 46023180 */ add.s $f6, $f6, $f2
/* 31EDD0 802BE060 46020001 */ sub.s $f0, $f0, $f2
@ -889,8 +889,8 @@ glabel func_802BD414_31E184
/* 31EEA4 802BE134 468010A0 */ cvt.s.w $f2, $f2
/* 31EEA8 802BE138 46141082 */ mul.s $f2, $f2, $f20
/* 31EEAC 802BE13C 00000000 */ nop
/* 31EEB0 802BE140 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31EEB4 802BE144 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31EEB0 802BE140 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31EEB4 802BE144 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31EEB8 802BE148 46040001 */ sub.s $f0, $f0, $f4
/* 31EEBC 802BE14C 46022100 */ add.s $f4, $f4, $f2
/* 31EEC0 802BE150 46020001 */ sub.s $f0, $f0, $f2
@ -907,8 +907,8 @@ glabel func_802BD414_31E184
/* 31EEE8 802BE178 46802120 */ cvt.s.w $f4, $f4
/* 31EEEC 802BE17C 46142102 */ mul.s $f4, $f4, $f20
/* 31EEF0 802BE180 00000000 */ nop
/* 31EEF4 802BE184 3C11802C */ lui $s1, %hi(D_802BFEE0)
/* 31EEF8 802BE188 2631FEE0 */ addiu $s1, $s1, %lo(D_802BFEE0)
/* 31EEF4 802BE184 3C11802C */ lui $s1, %hi(OriginalPlayerY)
/* 31EEF8 802BE188 2631FEE0 */ addiu $s1, $s1, %lo(OriginalPlayerY)
/* 31EEFC 802BE18C C6200000 */ lwc1 $f0, ($s1)
/* 31EF00 802BE190 C6020064 */ lwc1 $f2, 0x64($s0)
/* 31EF04 802BE194 46020001 */ sub.s $f0, $f0, $f2

View File

@ -644,8 +644,8 @@ glabel func_802BE3A4_31F114
/* 31FA94 802BED24 46002102 */ mul.s $f4, $f4, $f0
/* 31FA98 802BED28 00000000 */ nop
/* 31FA9C 802BED2C C622003C */ lwc1 $f2, 0x3c($s1)
/* 31FAA0 802BED30 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31FAA4 802BED34 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31FAA0 802BED30 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31FAA4 802BED34 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31FAA8 802BED38 46020001 */ sub.s $f0, $f0, $f2
/* 31FAAC 802BED3C C6220064 */ lwc1 $f2, 0x64($s1)
/* 31FAB0 802BED40 E7A00010 */ swc1 $f0, 0x10($sp)
@ -694,8 +694,8 @@ glabel func_802BE3A4_31F114
/* 31FB58 802BEDE8 26270040 */ addiu $a3, $s1, 0x40
/* 31FB5C 802BEDEC 10C00007 */ beqz $a2, .L802BEE0C
/* 31FB60 802BEDF0 46001100 */ add.s $f4, $f2, $f0
/* 31FB64 802BEDF4 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31FB68 802BEDF8 C420FEE0 */ lwc1 $f0, %lo(D_802BFEE0)($at)
/* 31FB64 802BEDF4 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31FB68 802BEDF8 C420FEE0 */ lwc1 $f0, %lo(OriginalPlayerY)($at)
/* 31FB6C 802BEDFC C622003C */ lwc1 $f2, 0x3c($s1)
/* 31FB70 802BEE00 46020001 */ sub.s $f0, $f0, $f2
/* 31FB74 802BEE04 080AFB84 */ j .L802BEE10
@ -711,8 +711,8 @@ glabel func_802BE3A4_31F114
/* 31FB90 802BEE20 0000202D */ daddu $a0, $zero, $zero
.L802BEE24:
/* 31FB94 802BEE24 C6200038 */ lwc1 $f0, 0x38($s1)
/* 31FB98 802BEE28 3C01802C */ lui $at, %hi(D_802BFEE0)
/* 31FB9C 802BEE2C C422FEE0 */ lwc1 $f2, %lo(D_802BFEE0)($at)
/* 31FB98 802BEE28 3C01802C */ lui $at, %hi(OriginalPlayerY)
/* 31FB9C 802BEE2C C422FEE0 */ lwc1 $f2, %lo(OriginalPlayerY)($at)
/* 31FBA0 802BEE30 3C03800B */ lui $v1, %hi(gCameras)
/* 31FBA4 802BEE34 24631D80 */ addiu $v1, $v1, %lo(gCameras)
/* 31FBA8 802BEE38 E4600060 */ swc1 $f0, 0x60($v1)

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