mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-02 00:14:24 -04:00
code_8013EC10 and code_80182CE0 (z_rumble and sys_rumble) (#763)
* First pass * import bss * cleanup warnings * PadMgr_ControllerHasRumblePak * z64rumble.h * rename file to z_rumble.c * format * Update src/code/z_rumble.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * Update src/code/z_rumble.c Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * name a temp * minor cleaning * bss * match code_80182CE0 * import data and cleanups * Rename RumbleManager struct and sys_rumble file * Rename functions from sys_rumble * Rename parameter to distSq Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> * more notes and a bit of cleaning * Name Rumble_Add and Rumble_AddForced * some extra notes * Rename Rumble_Override and Rumble_Request * document states * minor renames * actorfixer * format * very minor docs * whoops * remove redundant prevent_bss_reordering * Update src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/overlays/actors/ovl_Bg_Iknin_Susceil/z_bg_iknin_susceil.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * namefixer * Update src/code/sys_rumble.c Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * fix * Elliptic review Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * minor cleanups * Update include/z64rumble.h Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * review Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Update src/code/sys_rumble.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update src/code/z_rumble.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * review Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EC10.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EC44.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013ECE0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013ED9C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EDD0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EE04.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EE24.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EE38.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8013EC10/func_8013EE48.s")
|
||||
@@ -1,7 +0,0 @@
|
||||
#include "global.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80182CE0/func_80182CE0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80182CE0/func_80183020.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_80182CE0/func_80183058.s")
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "system_malloc.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
s32 gFramerateDivisor = 1;
|
||||
f32 gFramerateDivisorF = 1.0f;
|
||||
@@ -216,7 +217,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g
|
||||
VisMono_Init(&sMonoColors);
|
||||
func_80140898(&D_801F8048);
|
||||
func_801773A0(&D_801F7FF0);
|
||||
func_8013ED9C();
|
||||
Rumble_Init();
|
||||
|
||||
osSendMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
@@ -231,7 +232,7 @@ void GameState_Destroy(GameState* gameState) {
|
||||
gameState->destroy(gameState);
|
||||
}
|
||||
|
||||
func_8013EDD0();
|
||||
Rumble_Destroy();
|
||||
func_801773C4(&D_801F7FF0);
|
||||
func_80140D04(&D_801F8010);
|
||||
func_801420F4(&D_801F8020);
|
||||
|
||||
+2
-2
@@ -31,9 +31,9 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/func_8017544C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/func_80175474.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/PadMgr_RumbleSet.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/func_801754C0.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/PadMgr_ControllerHasRumblePak.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/Padmgr_CalcStickEdges.s")
|
||||
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
/*
|
||||
* File: sys_rumble.c
|
||||
* Description: Internal scheduler system for rumble requests
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
// sRumbleWasEnabledOnLastTick/sWillDisableRumble? Probably name it after updateEnabled
|
||||
u8 D_801D1E70 = true;
|
||||
|
||||
void RumbleManager_Update(RumbleManager* rumbleMgr) {
|
||||
s32 strongestIndex = -1;
|
||||
s32 i;
|
||||
s32 temp;
|
||||
|
||||
// Turn rumbling off for all controllers
|
||||
for (i = 0; i < ARRAY_COUNT(rumbleMgr->rumbleEnabled); i++) {
|
||||
rumbleMgr->rumbleEnabled[i] = false;
|
||||
}
|
||||
|
||||
if (!rumbleMgr->updateEnabled) {
|
||||
// Rumbling update is disabled
|
||||
|
||||
if (D_801D1E70) {
|
||||
for (i = 0; i < MAXCONTROLLERS; i++) {
|
||||
func_8017544C(i, false);
|
||||
}
|
||||
}
|
||||
|
||||
D_801D1E70 = rumbleMgr->updateEnabled;
|
||||
func_80175434();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
D_801D1E70 = rumbleMgr->updateEnabled;
|
||||
|
||||
// Start up the manager by wiping old requests
|
||||
if (rumbleMgr->state == RUMBLEMANAGER_STATE_INITIAL) {
|
||||
for (i = 0; i < MAXCONTROLLERS; i++) {
|
||||
func_8017544C(i, false);
|
||||
}
|
||||
|
||||
for (i = 0; i < RUMBLE_REQUEST_BUFFER_SIZE; i++) {
|
||||
rumbleMgr->requestIntensities[i] = 0;
|
||||
rumbleMgr->requestDecayTimers[i] = 0;
|
||||
rumbleMgr->requestDecaySteps[i] = 0;
|
||||
rumbleMgr->requestAccumulators[i] = 0;
|
||||
}
|
||||
|
||||
rumbleMgr->rumblingDuration = 0;
|
||||
rumbleMgr->downTime = 0;
|
||||
|
||||
rumbleMgr->overrideIntensity = 0;
|
||||
rumbleMgr->overrideDecayTimer = 0;
|
||||
rumbleMgr->overrideDecayStep = 0;
|
||||
rumbleMgr->overrideAccumulator = 0;
|
||||
|
||||
rumbleMgr->state = RUMBLEMANAGER_STATE_RUNNING;
|
||||
|
||||
func_80175434();
|
||||
}
|
||||
|
||||
if (rumbleMgr->state != RUMBLEMANAGER_STATE_WIPE) {
|
||||
// Process arrays of rumble requests
|
||||
for (i = 0; i < RUMBLE_REQUEST_BUFFER_SIZE; i++) {
|
||||
if (rumbleMgr->requestIntensities[i] != 0) { // This entry has a non-empty rumble request
|
||||
if (rumbleMgr->requestDecayTimers[i] > 0) {
|
||||
rumbleMgr->requestDecayTimers[i]--;
|
||||
} else {
|
||||
temp = rumbleMgr->requestIntensities[i] - rumbleMgr->requestDecaySteps[i];
|
||||
if (temp > 0) {
|
||||
rumbleMgr->requestIntensities[i] = temp;
|
||||
} else {
|
||||
rumbleMgr->requestIntensities[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
temp = rumbleMgr->requestAccumulators[i] + rumbleMgr->requestIntensities[i];
|
||||
rumbleMgr->requestAccumulators[i] = temp; // overflows
|
||||
if (strongestIndex == -1) {
|
||||
strongestIndex = i;
|
||||
rumbleMgr->rumbleEnabled[0] = (temp >= 0x100);
|
||||
} else if (rumbleMgr->requestIntensities[strongestIndex] < rumbleMgr->requestIntensities[i]) {
|
||||
strongestIndex = i;
|
||||
rumbleMgr->rumbleEnabled[0] = (temp >= 0x100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process Override request. Note it takes priority over the values set by the request arrays
|
||||
if (rumbleMgr->overrideIntensity != 0) {
|
||||
if (rumbleMgr->overrideDecayTimer > 0) {
|
||||
rumbleMgr->overrideDecayTimer--;
|
||||
} else {
|
||||
temp = rumbleMgr->overrideIntensity - rumbleMgr->overrideDecayStep;
|
||||
if (temp > 0) {
|
||||
rumbleMgr->overrideIntensity = temp;
|
||||
} else {
|
||||
rumbleMgr->overrideIntensity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
temp = rumbleMgr->overrideAccumulator + rumbleMgr->overrideIntensity;
|
||||
rumbleMgr->overrideAccumulator = temp; // overflows
|
||||
rumbleMgr->rumbleEnabled[0] = (temp >= 0x100);
|
||||
}
|
||||
|
||||
if (rumbleMgr->overrideIntensity != 0) {
|
||||
temp = rumbleMgr->overrideIntensity;
|
||||
} else if (strongestIndex == -1) {
|
||||
temp = 0;
|
||||
} else {
|
||||
temp = rumbleMgr->requestIntensities[strongestIndex];
|
||||
}
|
||||
|
||||
// Keep track of how long this have been rumbling (almost) nonstop
|
||||
if (temp == 0) {
|
||||
rumbleMgr->downTime++;
|
||||
if (rumbleMgr->downTime > 5) {
|
||||
rumbleMgr->rumblingDuration = 0;
|
||||
rumbleMgr->downTime = 5;
|
||||
}
|
||||
} else {
|
||||
rumbleMgr->downTime = 0;
|
||||
rumbleMgr->rumblingDuration++;
|
||||
if (rumbleMgr->rumblingDuration > 2 * 60 * 60) { // 2 minutes
|
||||
// Rumbling has lasted too long, clear system
|
||||
rumbleMgr->state = RUMBLEMANAGER_STATE_WIPE;
|
||||
}
|
||||
}
|
||||
} else { // RUMBLEMANAGER_STATE_WIPE
|
||||
for (i = 0; i < RUMBLE_REQUEST_BUFFER_SIZE; i++) {
|
||||
rumbleMgr->requestIntensities[i] = 0;
|
||||
rumbleMgr->requestDecayTimers[i] = 0;
|
||||
rumbleMgr->requestDecaySteps[i] = 0;
|
||||
rumbleMgr->requestAccumulators[i] = 0;
|
||||
}
|
||||
|
||||
rumbleMgr->rumblingDuration = 0;
|
||||
rumbleMgr->downTime = 0;
|
||||
|
||||
rumbleMgr->overrideIntensity = 0;
|
||||
rumbleMgr->overrideDecayTimer = 0;
|
||||
rumbleMgr->overrideDecayStep = 0;
|
||||
rumbleMgr->overrideAccumulator = 0;
|
||||
|
||||
func_80175434();
|
||||
}
|
||||
}
|
||||
|
||||
void RumbleManager_Init(RumbleManager* rumbleMgr) {
|
||||
bzero(rumbleMgr, sizeof(RumbleManager));
|
||||
rumbleMgr->state = RUMBLEMANAGER_STATE_INITIAL;
|
||||
rumbleMgr->updateEnabled = true;
|
||||
}
|
||||
|
||||
void RumbleManager_Destroy(RumbleManager* rumbleMgr) {
|
||||
}
|
||||
+4
-2
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "global.h"
|
||||
#include "z64load.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
#include "overlays/actors/ovl_En_Part/z_en_part.h"
|
||||
#include "overlays/actors/ovl_En_Box/z_en_box.h"
|
||||
@@ -3793,11 +3794,12 @@ void func_800BC7D8(PlayState* play, s16 y, s16 countdown, s16 speed) {
|
||||
Quake_SetCountdown(idx, countdown);
|
||||
}
|
||||
|
||||
// Actor_RequestRumble?
|
||||
void func_800BC848(Actor* actor, PlayState* play, s16 y, s16 countdown) {
|
||||
if (y >= 5) {
|
||||
func_8013ECE0(actor->xyzDistToPlayerSq, 255, 20, 150);
|
||||
Rumble_Request(actor->xyzDistToPlayerSq, 255, 20, 150);
|
||||
} else {
|
||||
func_8013ECE0(actor->xyzDistToPlayerSq, 180, 20, 100);
|
||||
Rumble_Request(actor->xyzDistToPlayerSq, 180, 20, 100);
|
||||
}
|
||||
func_800BC770(play, y, countdown);
|
||||
}
|
||||
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
|
||||
|
||||
void Cutscene_DoNothing(PlayState* play, CutsceneContext* csCtx);
|
||||
@@ -505,14 +506,14 @@ void Cutscene_Command_Rumble(PlayState* play, CutsceneContext* csCtx, CsCmdRumbl
|
||||
switch (cmd->type) {
|
||||
case 1:
|
||||
if (csCtx->frames == cmd->startFrame) {
|
||||
func_8013ECE0(0.0f, cmd->unk6, cmd->unk7, cmd->unk8);
|
||||
Rumble_Request(0.0f, cmd->intensity, cmd->decayTimer, cmd->decayStep);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ((csCtx->frames >= cmd->startFrame) && (cmd->endFrame >= csCtx->frames)) {
|
||||
if ((csCtx->frames == cmd->startFrame) || (play->state.frames % 64 == 0)) {
|
||||
func_8013ECE0(0.0f, cmd->unk6, cmd->unk7, cmd->unk8);
|
||||
Rumble_Request(0.0f, cmd->intensity, cmd->decayTimer, cmd->decayStep);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
void GameOver_Init(PlayState* play) {
|
||||
play->gameOverCtx.state = GAMEOVER_INACTIVE;
|
||||
@@ -62,7 +63,7 @@ void GameOver_Update(PlayState* play) {
|
||||
gSaveContext.unk_3F24 = 0;
|
||||
Kankyo_InitGameOverLights(play);
|
||||
sGameOverTimer = 20;
|
||||
func_8013ECE0(0.0f, 126, 124, 63);
|
||||
Rumble_Request(0.0f, 126, 124, 63);
|
||||
gameOverCtx->state = GAMEOVER_DEATH_WAIT_GROUND;
|
||||
break;
|
||||
case GAMEOVER_DEATH_FADE_OUT:
|
||||
@@ -78,7 +79,7 @@ void GameOver_Update(PlayState* play) {
|
||||
gSaveContext.save.playerForm = PLAYER_FORM_HUMAN;
|
||||
gSaveContext.save.equippedMask = PLAYER_MASK_NONE;
|
||||
}
|
||||
func_8013EE24();
|
||||
Rumble_StateReset();
|
||||
}
|
||||
break;
|
||||
case GAMEOVER_REVIVE_START:
|
||||
@@ -90,7 +91,7 @@ void GameOver_Update(PlayState* play) {
|
||||
case GAMEOVER_REVIVE_RUMBLE:
|
||||
sGameOverTimer = 50;
|
||||
gameOverCtx->state++;
|
||||
func_8013ECE0(0.0f, 126, 124, 63);
|
||||
Rumble_Request(0.0f, 126, 124, 63);
|
||||
break;
|
||||
case GAMEOVER_REVIVE_WAIT_GROUND:
|
||||
sGameOverTimer--;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"
|
||||
|
||||
s16 D_801BDB00[] = { PAUSE_1, PAUSE_2, PAUSE_3, PAUSE_0 };
|
||||
@@ -9,7 +10,7 @@ void func_800F4A10(PlayState* play) {
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
s16 i;
|
||||
|
||||
func_8013EE24();
|
||||
Rumble_StateReset();
|
||||
|
||||
pauseCtx->unk_206 = 0;
|
||||
pauseCtx->unk_200 = 1;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "interface/parameter_static/parameter_static.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
s16 sHeartsPrimColors[3][3] = { { 255, 70, 50 }, { 255, 190, 0 }, { 100, 100, 255 } };
|
||||
s16 sHeartsEnvColors[3][3] = { { 50, 40, 60 }, { 255, 0, 0 }, { 0, 0, 255 } };
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* File: z_rumble.c
|
||||
* Description: Rumble request system
|
||||
*
|
||||
* Provides a simple interface to allow scheduling up to RUMBLE_REQUEST_BUFFER_SIZE rumble requests to the RumblePak.
|
||||
* There's an additional Override type of rumble request for requests which should take priorities over any other
|
||||
* scheduled request.
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
RumbleManager gRumbleMgr;
|
||||
|
||||
void Rumble_Update(void* arg0) {
|
||||
RumbleManager_Update(&gRumbleMgr);
|
||||
PadMgr_RumbleSet(gRumbleMgr.rumbleEnabled);
|
||||
}
|
||||
|
||||
// Used by some bosses (and fishing)
|
||||
void Rumble_Override(f32 distSq, u8 sourceIntensity, u8 decayTimer, u8 decayStep) {
|
||||
s32 intensity;
|
||||
s32 distance;
|
||||
|
||||
if (SQ(1000.0f) < distSq) {
|
||||
distance = 1000;
|
||||
} else {
|
||||
distance = sqrtf(distSq);
|
||||
}
|
||||
|
||||
if ((distance < 1000) && (sourceIntensity != 0) && (decayStep != 0)) {
|
||||
intensity = sourceIntensity - (distance * 255) / 1000;
|
||||
|
||||
if (intensity > 0) {
|
||||
gRumbleMgr.overrideIntensity = intensity;
|
||||
gRumbleMgr.overrideDecayTimer = decayTimer;
|
||||
gRumbleMgr.overrideDecayStep = decayStep;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Rumble_Request(f32 distSq, u8 sourceIntensity, u8 decayTimer, u8 decayStep) {
|
||||
s32 intensity;
|
||||
s32 distance;
|
||||
s32 i;
|
||||
|
||||
if (SQ(1000.0f) < distSq) {
|
||||
distance = 1000;
|
||||
} else {
|
||||
distance = sqrtf(distSq);
|
||||
}
|
||||
|
||||
if ((distance < 1000) && (sourceIntensity != 0) && (decayStep != 0)) {
|
||||
intensity = sourceIntensity - (distance * 255) / 1000;
|
||||
|
||||
for (i = 0; i < RUMBLE_REQUEST_BUFFER_SIZE; i++) {
|
||||
if (gRumbleMgr.requestIntensities[i] == 0) {
|
||||
if (intensity > 0) {
|
||||
gRumbleMgr.requestIntensities[i] = intensity;
|
||||
gRumbleMgr.requestDecayTimers[i] = decayTimer;
|
||||
gRumbleMgr.requestDecaySteps[i] = decayStep;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Rumble_Init(void) {
|
||||
RumbleManager_Init(&gRumbleMgr);
|
||||
func_80174F24(Rumble_Update, NULL);
|
||||
}
|
||||
|
||||
void Rumble_Destroy(void) {
|
||||
func_80174F44(Rumble_Update, NULL);
|
||||
RumbleManager_Destroy(&gRumbleMgr);
|
||||
}
|
||||
|
||||
s32 Rumble_ControllerOneHasRumblePak(void) {
|
||||
return PadMgr_ControllerHasRumblePak(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wipes every old request for a fresh start, then proceeds to process them as normal
|
||||
*/
|
||||
void Rumble_StateReset(void) {
|
||||
gRumbleMgr.state = RUMBLEMANAGER_STATE_INITIAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the state of the manager to WIPE
|
||||
*
|
||||
* In this state, every request is deleted
|
||||
*/
|
||||
void Rumble_StateWipeRequests(void) {
|
||||
gRumbleMgr.state = RUMBLEMANAGER_STATE_WIPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Request processing is paused if updateEnabled is set to false
|
||||
*/
|
||||
void Rumble_SetUpdateEnabled(s32 updateEnabled) {
|
||||
gRumbleMgr.updateEnabled = !!updateEnabled;
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_bg_f40_switch.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_f40_switch/object_f40_switch.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
@@ -144,7 +145,7 @@ void BgF40Switch_Press(BgF40Switch* this, PlayState* play) {
|
||||
this->dyna.actor.scale.y -= 0.0495f;
|
||||
if (this->dyna.actor.scale.y <= 0.0165f) {
|
||||
Actor_PlaySfxAtPos(&this->dyna.actor, NA_SE_EV_IKANA_BLOCK_SWITCH);
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
if (this->isInitiator) {
|
||||
ActorCutscene_Stop(this->dyna.actor.cutscene);
|
||||
this->isInitiator = false;
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_bg_hakugin_post.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_hakugin_obj/object_hakugin_obj.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
|
||||
@@ -519,7 +519,7 @@ void func_80A9C058(BgHakuginPost* this, PlayState* play, BgHakuginPostUnkStruct*
|
||||
sp44.x = this->dyna.actor.home.pos.x + unkStruct1->unk_14.x;
|
||||
sp44.y = this->unk_16C + unkStruct1->unk_14.y;
|
||||
sp44.z = this->dyna.actor.home.pos.z + unkStruct1->unk_14.z;
|
||||
func_8013ECE0(Math3D_Vec3fDistSq(&sp44, &GET_PLAYER(play)->actor.world.pos), 255, 20, 150);
|
||||
Rumble_Request(Math3D_Vec3fDistSq(&sp44, &GET_PLAYER(play)->actor.world.pos), 255, 20, 150);
|
||||
quake = Quake_Add(GET_ACTIVE_CAM(play), 3);
|
||||
Quake_SetSpeed(quake, 20000);
|
||||
Quake_SetQuakeValues(quake, 7, 0, 0, 0);
|
||||
@@ -540,9 +540,9 @@ void func_80A9C18C(BgHakuginPost* this, PlayState* play) {
|
||||
Camera* activeCam = GET_ACTIVE_CAM(play);
|
||||
s16 quake;
|
||||
|
||||
func_8013ECE0(Math3D_XZDistanceSquared(player->actor.world.pos.x, player->actor.world.pos.z,
|
||||
this->dyna.actor.home.pos.x, this->dyna.actor.home.pos.z),
|
||||
255, 20, 150);
|
||||
Rumble_Request(Math3D_XZDistanceSquared(player->actor.world.pos.x, player->actor.world.pos.z,
|
||||
this->dyna.actor.home.pos.x, this->dyna.actor.home.pos.z),
|
||||
255, 20, 150);
|
||||
quake = Quake_Add(activeCam, 3);
|
||||
Quake_SetSpeed(quake, 17232);
|
||||
Quake_SetQuakeValues(quake, 6, 0, 0, 0);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_bg_hakugin_switch.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_goronswitch/object_goronswitch.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
@@ -306,7 +307,7 @@ void func_80B15E78(BgHakuginSwitch* this, PlayState* play) {
|
||||
|
||||
if (Math_StepToF(&this->dyna.actor.world.pos.y, sp20->unk_4 + this->dyna.actor.home.pos.y, sp20->unk_C)) {
|
||||
if (DynaPolyActor_IsInRidingMovingState(&this->dyna)) {
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
}
|
||||
func_80B15F3C(this, play);
|
||||
} else if (!(sp20->unk_14 & 0x80)) {
|
||||
@@ -446,7 +447,7 @@ void func_80B16400(BgHakuginSwitch* this, PlayState* play) {
|
||||
if (Math_StepToF(&this->dyna.actor.world.pos.y,
|
||||
(this->dyna.actor.home.pos.y + 2.0f) - (1800.0f * this->dyna.actor.scale.y), 10.0f)) {
|
||||
if (DynaPolyActor_IsInRidingMovingState(&this->dyna)) {
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
}
|
||||
func_80B16494(this, play);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_bg_iknin_susceil.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_ikninside_obj/object_ikninside_obj.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
@@ -75,11 +76,11 @@ void func_80C0A86C(BgIkninSusceil* this, PlayState* play, s16 verticalMag, s16 c
|
||||
Quake_SetQuakeValues(quake, verticalMag, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, countdown);
|
||||
if (arg4 == 1) {
|
||||
func_8013ECE0(10000.0f, 255, 20, 150);
|
||||
Rumble_Request(SQ(100.0f), 255, 20, 150);
|
||||
} else if (arg4 == 2) {
|
||||
func_8013ECE0(10000.0f, 180, 20, 100);
|
||||
Rumble_Request(SQ(100.0f), 180, 20, 100);
|
||||
} else if (arg4 == 3) {
|
||||
func_8013ECE0(10000.0f, 120, 20, 10);
|
||||
Rumble_Request(SQ(100.0f), 120, 20, 10);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_bg_open_shutter.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_boss_01.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_boss_02.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
|
||||
#include "overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
|
||||
@@ -124,17 +124,17 @@ const ActorInit Boss_02_InitVars = {
|
||||
(ActorFunc)Boss02_Draw,
|
||||
};
|
||||
|
||||
static f32 D_809DF5B0 = 1.0f;
|
||||
f32 D_809DF5B0 = 1.0f;
|
||||
|
||||
static s16 D_809DF5B4[] = {
|
||||
s16 D_809DF5B4[] = {
|
||||
0, 195, 190, 185, 180, 175, 170, 165, 160, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 100, 95, 90, 0,
|
||||
};
|
||||
|
||||
static s16 D_809DF5E4[] = {
|
||||
s16 D_809DF5E4[] = {
|
||||
0, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit1[22] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit1[] = {
|
||||
{
|
||||
{
|
||||
ELEMTYPE_UNK3,
|
||||
@@ -388,11 +388,11 @@ static ColliderJntSphInit sJntSphInit1 = {
|
||||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
22,
|
||||
ARRAY_COUNT(sJntSphElementsInit1),
|
||||
sJntSphElementsInit1,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit2[2] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit2[] = {
|
||||
{
|
||||
{
|
||||
ELEMTYPE_UNK3,
|
||||
@@ -426,7 +426,7 @@ static ColliderJntSphInit sJntSphInit2 = {
|
||||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sJntSphElementsInit2),
|
||||
sJntSphElementsInit2,
|
||||
};
|
||||
|
||||
@@ -450,13 +450,13 @@ static ColliderCylinderInit sCylinderInit = {
|
||||
{ 150, 200, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static Vec3f D_809DF9C0[] = {
|
||||
Vec3f D_809DF9C0[] = {
|
||||
{ 0.0f, -200.0f, 1000.0f }, { 0.0f, 500.0f, 1000.0f }, { 0.0f, 1000.0f, 1000.0f },
|
||||
{ 1000.0f, 500.0f, 1000.0f }, { 1000.0f, 1000.0f, -1000.0f }, { -1000.0f, 500.0f, -1000.0f },
|
||||
{ -1000.0f, 500.0f, 1000.0f }, { -1000.0f, -1000.0f, -1000.0f }, { -1000.0f, -1000.0f, -1000.0f },
|
||||
};
|
||||
|
||||
static Vec3f D_809DFA2C[] = {
|
||||
Vec3f D_809DFA2C[] = {
|
||||
{ 0.0f, -200.0f, -800.0f }, { 0.0f, 800.0f, -800.0f }, { 800.0f, 300.0f, -800.0f },
|
||||
{ -800.0f, 800.0f, 0.0f }, { -800.0f, -1000.0f, 0.0f }, { -800.0f, -1000.0f, 0.0f },
|
||||
{ -800.0f, -1000.0f, 0.0f }, { -800.0f, -1000.0f, 0.0f }, { -800.0f, -1000.0f, 0.0f },
|
||||
@@ -652,8 +652,9 @@ void func_809DAAA8(Boss02* this, PlayState* play) {
|
||||
this->actor.world.pos.y = -500.0f;
|
||||
}
|
||||
|
||||
Color_RGBA8 D_809DFA98 = { 185, 140, 70, 255 };
|
||||
|
||||
void func_809DAB78(Boss02* this, PlayState* play) {
|
||||
static Color_RGBA8 D_809DFA98 = { 185, 140, 70, 255 };
|
||||
s32 pad;
|
||||
Player* player = GET_PLAYER(play);
|
||||
CollisionPoly* spDC;
|
||||
@@ -1317,16 +1318,18 @@ void func_809DC78C(Actor* thisx, PlayState* play) {
|
||||
func_809DD934(this, play);
|
||||
}
|
||||
|
||||
Gfx* D_809DFA9C[] = {
|
||||
gTwinmoldBodySegment1DL, gTwinmoldBodySegment2DL, gTwinmoldBodySegment3DL, gTwinmoldBodySegment4DL,
|
||||
gTwinmoldBodySegment5DL, gTwinmoldBodySegment6DL, gTwinmoldBodySegment7DL, gTwinmoldBodySegment8DL,
|
||||
gTwinmoldBodySegment9DL, gTwinmoldBodySegment10DL, gTwinmoldBodySegment11DL, gTwinmoldBodySegment12DL,
|
||||
gTwinmoldBodySegment13DL, gTwinmoldBodySegment14DL, gTwinmoldBodySegment15DL, gTwinmoldBodySegment16DL,
|
||||
gTwinmoldBodySegment17DL, gTwinmoldBodySegment18DL, gTwinmoldBodySegment19DL, gTwinmoldBodySegment20DL,
|
||||
gTwinmoldBodySegment21DL, gTwinmoldBodyTailDL,
|
||||
};
|
||||
|
||||
Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f };
|
||||
|
||||
void Boss02_Draw(Actor* thisx, PlayState* play2) {
|
||||
static Gfx* D_809DFA9C[] = {
|
||||
gTwinmoldBodySegment1DL, gTwinmoldBodySegment2DL, gTwinmoldBodySegment3DL, gTwinmoldBodySegment4DL,
|
||||
gTwinmoldBodySegment5DL, gTwinmoldBodySegment6DL, gTwinmoldBodySegment7DL, gTwinmoldBodySegment8DL,
|
||||
gTwinmoldBodySegment9DL, gTwinmoldBodySegment10DL, gTwinmoldBodySegment11DL, gTwinmoldBodySegment12DL,
|
||||
gTwinmoldBodySegment13DL, gTwinmoldBodySegment14DL, gTwinmoldBodySegment15DL, gTwinmoldBodySegment16DL,
|
||||
gTwinmoldBodySegment17DL, gTwinmoldBodySegment18DL, gTwinmoldBodySegment19DL, gTwinmoldBodySegment20DL,
|
||||
gTwinmoldBodySegment21DL, gTwinmoldBodyTailDL,
|
||||
};
|
||||
static Vec3f D_809DFAF4 = { -10000.0f, -100000.0f, -100000.0f };
|
||||
PlayState* play = play2;
|
||||
Boss02* this = THIS;
|
||||
s32 i;
|
||||
@@ -2071,7 +2074,7 @@ void func_809DEAC4(Boss02* this, PlayState* play) {
|
||||
this->unk_1D30.z = player->actor.world.pos.z;
|
||||
if (this->unk_1D1C >= 30) {
|
||||
if (this->unk_1D1C == 30) {
|
||||
func_8013EC44(0.0f, 50, 200, 1);
|
||||
Rumble_Override(0.0f, 50, 200, 1);
|
||||
}
|
||||
this->unk_0150 += 0x4000;
|
||||
sp58 = (Math_SinS(this->unk_0150) * (BREG(19) + 5)) * 0.1f;
|
||||
@@ -2095,7 +2098,7 @@ void func_809DEAC4(Boss02* this, PlayState* play) {
|
||||
}
|
||||
|
||||
if (this->unk_1D1C == 92) {
|
||||
func_8013EC44(0.0f, 255, 30, 100);
|
||||
Rumble_Override(0.0f, 255, 30, 100);
|
||||
}
|
||||
|
||||
if (this->unk_1D1C == 100) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_boss_hakugin.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_door_shutter.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_bdoor/object_bdoor.h"
|
||||
#include "objects/object_numa_obj/object_numa_obj.h"
|
||||
@@ -611,7 +612,7 @@ void func_808A1B48(DoorShutter* this, PlayState* play) {
|
||||
Quake_SetSpeed(quake, -32536);
|
||||
Quake_SetQuakeValues(quake, 2, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, 10);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
func_808A1884(this, play);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_bigpamet.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_400)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_bigslime.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
#include "objects/object_bigslime/object_bigslime.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
@@ -747,7 +748,7 @@ void EnBigslime_BreakIntoMinislime(EnBigslime* this, PlayState* play) {
|
||||
Quake_SetSpeed(quake, 20000);
|
||||
Quake_SetQuakeValues(quake, 15, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, 15);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
this->bigslimeCollider[0].base.atFlags &= ~AT_ON;
|
||||
this->gekkoCollider.base.acFlags &= ~(AC_ON | AC_HIT);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_bom.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20)
|
||||
@@ -338,7 +339,7 @@ void func_808715B8(EnBom* this, PlayState* play) {
|
||||
|
||||
if (this->collider2.elements->dim.modelSphere.radius == 0) {
|
||||
this->actor.flags |= ACTOR_FLAG_20;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
}
|
||||
|
||||
this->collider2.elements->dim.worldSphere.radius = D_80872E8C[this->isPowderKeg];
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_bombf.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_bombf/object_bombf.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_10)
|
||||
@@ -261,7 +262,7 @@ void func_808AEF68(EnBombf* this, PlayState* play) {
|
||||
void func_808AEFD4(EnBombf* this, PlayState* play) {
|
||||
if (this->colliderJntSph.elements->dim.modelSphere.radius == 0) {
|
||||
this->actor.flags |= ACTOR_FLAG_20;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
}
|
||||
|
||||
this->colliderJntSph.elements->dim.modelSphere.radius = 100;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_bsb.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_2000000)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_death.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_1000)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_famos.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/actors/ovl_En_Bom/z_en_bom.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
@@ -549,7 +550,7 @@ void EnFamos_Attack(EnFamos* this, PlayState* play) {
|
||||
this->collider2.base.atFlags |= AT_ON;
|
||||
if (hitFloor) {
|
||||
func_800DFD04(play->cameraPtrs[play->activeCamera], 2, 15, 10); // camera shake?
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
|
||||
EnFamos_SetupAttackDebris(this);
|
||||
|
||||
// spawn crator on floor
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_en_fishing.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_fish/object_fish.h"
|
||||
#include "overlays/actors/ovl_En_Kanban/z_en_kanban.h"
|
||||
|
||||
@@ -3440,7 +3441,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
}
|
||||
D_80917272 = phi_v0;
|
||||
D_809171F4 = phi_v0;
|
||||
func_8013EC44(0.0f, 60, phi_v0 * 3, 10);
|
||||
Rumble_Override(0.0f, 60, phi_v0 * 3, 10);
|
||||
} else {
|
||||
if (this->unk_1A4 > 70.0f) {
|
||||
phi_v0 = Rand_ZeroFloat(5.0f) + 10.0f;
|
||||
@@ -3453,7 +3454,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
}
|
||||
D_80917272 = phi_v0;
|
||||
D_809171F4 = phi_v0;
|
||||
func_8013EC44(0.0f, 180, phi_v0 * 3, 10);
|
||||
Rumble_Override(0.0f, 180, phi_v0 * 3, 10);
|
||||
}
|
||||
|
||||
D_80917274 = 0;
|
||||
@@ -3495,11 +3496,11 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
if (D_80917206 == 2) {
|
||||
D_80917272 = 30;
|
||||
D_809171F4 = 100;
|
||||
func_8013EC44(0.0f, 60, 90, 10);
|
||||
Rumble_Override(0.0f, 60, 90, 10);
|
||||
} else {
|
||||
D_80917272 = 30;
|
||||
D_809171F4 = 40;
|
||||
func_8013EC44(0.0f, 180, 90, 10);
|
||||
Rumble_Override(0.0f, 180, 90, 10);
|
||||
}
|
||||
|
||||
D_80917274 = 0;
|
||||
@@ -3550,7 +3551,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
temp2 = 255.0f;
|
||||
}
|
||||
|
||||
func_8013EC44(0.0f, temp2, 120, 5);
|
||||
Rumble_Override(0.0f, temp2, 120, 5);
|
||||
D_809171F4 = 40;
|
||||
D_80911E28 = 10;
|
||||
play_sound(NA_SE_IT_FISHING_HIT);
|
||||
@@ -3584,7 +3585,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
spA4 *= 3.0f / 4.0f;
|
||||
}
|
||||
|
||||
func_8013EC44(0.0f, spA4, Rand_ZeroFloat(5.0f) + 10.0f, 5);
|
||||
Rumble_Override(0.0f, spA4, Rand_ZeroFloat(5.0f) + 10.0f, 5);
|
||||
}
|
||||
|
||||
if (this->unk_172[1] > 30) {
|
||||
@@ -3620,7 +3621,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
} else {
|
||||
phi_a1 = 180;
|
||||
}
|
||||
func_8013EC44(0.0f, phi_a1, 90, 2);
|
||||
Rumble_Override(0.0f, phi_a1, 90, 2);
|
||||
this->unk_172[0] = 20;
|
||||
this->unk_172[1] = 100;
|
||||
this->unk_172[2] = 20;
|
||||
@@ -3748,7 +3749,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
}
|
||||
} else {
|
||||
// Assignment of OoT's D_80B7E086 here removed in MM
|
||||
func_8013EC44(0.0f, 1, 3, 1);
|
||||
Rumble_Override(0.0f, 1, 3, 1);
|
||||
Audio_QueueSeqCmd(0x100A00FF);
|
||||
}
|
||||
|
||||
@@ -3771,7 +3772,7 @@ void EnFishing_UpdateFish(Actor* thisx, PlayState* play2) {
|
||||
this->unk_150 = 6;
|
||||
this->unk_172[0] = 100;
|
||||
player->unk_B28 = 3;
|
||||
func_8013EC44(0.0f, 1, 3, 1);
|
||||
Rumble_Override(0.0f, 1, 3, 1);
|
||||
D_809171D8++;
|
||||
Cutscene_Start(play, &play->csCtx);
|
||||
D_8090CD4C = 100;
|
||||
@@ -4714,7 +4715,7 @@ void EnFishing_HandleOwnerDialog(EnFishing* this, PlayState* play) {
|
||||
case 0:
|
||||
if (gSaveContext.save.playerData.rupees >= 20) {
|
||||
func_801159EC(-20);
|
||||
if (func_8013EE04() == 0) {
|
||||
if (!Rumble_ControllerOneHasRumblePak()) {
|
||||
this->actor.textId = 0x407C;
|
||||
} else {
|
||||
this->actor.textId = 0x407D;
|
||||
@@ -5138,7 +5139,7 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) {
|
||||
(fabsf(player->actor.world.pos.z - sSinkingLureLocationPos[sSinkingLureLocation - 1].z) < 25.0f)) {
|
||||
sSinkingLureLocation = 0;
|
||||
D_8090CD4C = 20;
|
||||
func_8013EC44(0.0f, 150, 10, 10);
|
||||
Rumble_Override(0.0f, 150, 10, 10);
|
||||
play_sound(NA_SE_SY_TRE_BOX_APPEAR);
|
||||
Audio_QueueSeqCmd(0x101400FF);
|
||||
}
|
||||
@@ -5293,7 +5294,7 @@ void EnFishing_UpdateOwner(Actor* thisx, PlayState* play2) {
|
||||
sCameraAt.z = camera->at.z;
|
||||
Message_StartTextbox(play, 0x409E, NULL);
|
||||
D_8090CD4C = 11;
|
||||
func_8013EC44(0.0f, 150, 10, 10);
|
||||
Rumble_Override(0.0f, 150, 10, 10);
|
||||
// fallthrough
|
||||
|
||||
case 11:
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_horse.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_horse_link_child/object_horse_link_child.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
@@ -1345,7 +1346,7 @@ void EnHorse_MountedTrot(EnHorse* this, PlayState* play) {
|
||||
|
||||
if (SkelAnime_Update(&this->skin.skelAnime)) {
|
||||
func_8087C178(this);
|
||||
func_8013ECE0(0.0f, 60, 8, 255);
|
||||
Rumble_Request(0.0f, 60, 8, 255);
|
||||
if (this->actor.speedXZ >= 6.0f) {
|
||||
EnHorse_StartGallopingInterruptable(this);
|
||||
} else if (this->actor.speedXZ < 3.0f) {
|
||||
@@ -1413,7 +1414,7 @@ void EnHorse_MountedGallop(EnHorse* this, PlayState* play) {
|
||||
|
||||
if (SkelAnime_Update(&this->skin.skelAnime)) {
|
||||
func_8087C1C0(this);
|
||||
func_8013ECE0(0.0f, 120, 8, 255);
|
||||
Rumble_Request(0.0f, 120, 8, 255);
|
||||
if (EnHorse_PlayerCanMove(this, play) == true) {
|
||||
if ((stickMag >= 10.0f) && (Math_CosS(stickAngle) <= -0.5f)) {
|
||||
EnHorse_StartBraking(this, play);
|
||||
@@ -1441,7 +1442,7 @@ void EnHorse_StartRearing(EnHorse* this) {
|
||||
Audio_PlaySfxAtPos(&this->unk_218, NA_SE_EV_HORSE_NEIGH);
|
||||
}
|
||||
}
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
this->stateFlags &= ~ENHORSE_STOPPING_NEIGH_SOUND;
|
||||
}
|
||||
EnHorse_StartMountedIdleResetAnim(this);
|
||||
@@ -1456,7 +1457,7 @@ void EnHorse_StartRearing(EnHorse* this) {
|
||||
}
|
||||
}
|
||||
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f,
|
||||
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
|
||||
}
|
||||
@@ -1474,7 +1475,7 @@ void EnHorse_MountedRearing(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_LAND2);
|
||||
}
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1515,7 +1516,7 @@ void EnHorse_StartBraking(EnHorse* this, PlayState* play) {
|
||||
Audio_PlaySfxAtPos(&this->unk_218, NA_SE_EV_HORSE_NEIGH);
|
||||
}
|
||||
}
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
this->stateFlags &= ~ENHORSE_STOPPING_NEIGH_SOUND;
|
||||
}
|
||||
EnHorse_StartMountedIdleResetAnim(this);
|
||||
@@ -1552,7 +1553,7 @@ void EnHorse_Stopping(EnHorse* this, PlayState* play) {
|
||||
Audio_PlaySfxAtPos(&this->unk_218, NA_SE_EV_HORSE_NEIGH);
|
||||
}
|
||||
}
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
this->stateFlags &= ~ENHORSE_STOPPING_NEIGH_SOUND;
|
||||
} else {
|
||||
EnHorse_StartMountedIdleResetAnim(this);
|
||||
@@ -1684,7 +1685,7 @@ void EnHorse_StartLowJump(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
|
||||
}
|
||||
func_8013ECE0(0.0f, 170, 10, 10);
|
||||
Rumble_Request(0.0f, 170, 10, 10);
|
||||
}
|
||||
|
||||
void EnHorse_Stub1(EnHorse* this) {
|
||||
@@ -1743,7 +1744,7 @@ void EnHorse_LowJump(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
|
||||
}
|
||||
func_8013ECE0(0.0f, 255, 10, 80);
|
||||
Rumble_Request(0.0f, 255, 10, 80);
|
||||
this->stateFlags &= ~ENHORSE_JUMPING;
|
||||
this->actor.gravity = -3.5f;
|
||||
this->actor.world.pos.y = this->actor.floorHeight;
|
||||
@@ -1782,7 +1783,7 @@ void EnHorse_StartHighJump(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
|
||||
}
|
||||
func_8013ECE0(0.0f, 170, 10, 10);
|
||||
Rumble_Request(0.0f, 170, 10, 10);
|
||||
}
|
||||
|
||||
void EnHorse_Stub2(EnHorse* this) {
|
||||
@@ -1840,7 +1841,7 @@ void EnHorse_HighJump(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
|
||||
}
|
||||
func_8013ECE0(0.0f, 255, 10, 80);
|
||||
Rumble_Request(0.0f, 255, 10, 80);
|
||||
this->stateFlags &= ~ENHORSE_JUMPING;
|
||||
this->actor.gravity = -3.5f;
|
||||
this->actor.world.pos.y = this->actor.floorHeight;
|
||||
@@ -2262,7 +2263,7 @@ void func_80881290(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
|
||||
}
|
||||
func_8013ECE0(0.0f, 170, 10, 10);
|
||||
Rumble_Request(0.0f, 170, 10, 10);
|
||||
}
|
||||
|
||||
void func_80881398(EnHorse* this, PlayState* play) {
|
||||
@@ -2302,7 +2303,7 @@ void func_80881398(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
|
||||
}
|
||||
func_8013ECE0(0.0f, 255, 10, 80);
|
||||
Rumble_Request(0.0f, 255, 10, 80);
|
||||
this->stateFlags &= ~ENHORSE_JUMPING;
|
||||
this->stateFlags &= ~ENHORSE_FLAG_30;
|
||||
this->actor.gravity = -3.5f;
|
||||
@@ -2484,7 +2485,7 @@ void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* act
|
||||
|
||||
if (SkelAnime_Update(&this->skin.skelAnime)) {
|
||||
func_8087C1C0(this);
|
||||
func_8013ECE0(0.0f, 120, 8, 255);
|
||||
Rumble_Request(0.0f, 120, 8, 255);
|
||||
Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx],
|
||||
this->actor.speedXZ * 0.3f);
|
||||
}
|
||||
@@ -2519,7 +2520,7 @@ void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
|
||||
}
|
||||
func_8013ECE0(0.0f, 170, 10, 10);
|
||||
Rumble_Request(0.0f, 170, 10, 10);
|
||||
}
|
||||
|
||||
void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
||||
@@ -2569,7 +2570,7 @@ void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
|
||||
}
|
||||
func_8013ECE0(0.0f, 255, 10, 80);
|
||||
Rumble_Request(0.0f, 255, 10, 80);
|
||||
this->stateFlags &= ~ENHORSE_JUMPING;
|
||||
this->actor.gravity = -3.5f;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
@@ -2665,7 +2666,7 @@ void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction*
|
||||
|
||||
if (SkelAnime_Update(&this->skin.skelAnime)) {
|
||||
func_8087C1C0(this);
|
||||
func_8013ECE0(0.0f, 120, 8, 255);
|
||||
Rumble_Request(0.0f, 120, 8, 255);
|
||||
Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx],
|
||||
this->actor.speedXZ * 0.3f);
|
||||
}
|
||||
@@ -2863,7 +2864,7 @@ void EnHorse_UpdateHbaAnim(EnHorse* this) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
|
||||
}
|
||||
func_8013ECE0(0.0f, 60, 8, 255);
|
||||
Rumble_Request(0.0f, 60, 8, 255);
|
||||
} else if (this->animationIdx == ENHORSE_ANIM_GALLOP) {
|
||||
animSpeed = this->actor.speedXZ * 0.2f;
|
||||
if (this->type == HORSE_2) {
|
||||
@@ -2871,7 +2872,7 @@ void EnHorse_UpdateHbaAnim(EnHorse* this) {
|
||||
} else {
|
||||
Audio_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
|
||||
}
|
||||
func_8013ECE0(0.0f, 120, 8, 255);
|
||||
Rumble_Request(0.0f, 120, 8, 255);
|
||||
} else {
|
||||
animSpeed = 1.0f;
|
||||
}
|
||||
@@ -3980,7 +3981,7 @@ void func_80886C00(EnHorse* this, PlayState* play) {
|
||||
!(this->stateFlags & ENHORSE_BOOST) && !(this->stateFlags & ENHORSE_FLAG_8) &&
|
||||
!(this->stateFlags & ENHORSE_FLAG_9)) {
|
||||
if (this->numBoosts > 0) {
|
||||
func_8013ECE0(0.0f, 180, 20, 100);
|
||||
Rumble_Request(0.0f, 180, 20, 100);
|
||||
this->stateFlags |= ENHORSE_BOOST;
|
||||
this->stateFlags |= ENHORSE_FIRST_BOOST_REGEN;
|
||||
this->stateFlags |= ENHORSE_FLAG_8;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_ik.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_400)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_ishi.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_ishi/object_ishi.h"
|
||||
@@ -598,7 +599,7 @@ void func_8095EBDC(EnIshi* this, PlayState* play) {
|
||||
Quake_SetSpeed(quake, 0x4350);
|
||||
Quake_SetQuakeValues(quake, 3, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, 7);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
}
|
||||
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_m_thunder.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_pametfrog.h"
|
||||
#include "z64rumble.h"
|
||||
#include "overlays/actors/ovl_En_Bigpamet/z_en_bigpamet.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
#include "objects/object_bigslime/object_bigslime.h"
|
||||
@@ -1226,7 +1227,7 @@ void EnPametfrog_SetupSnapperSpawn(EnPametfrog* this, PlayState* play) {
|
||||
Quake_SetSpeed(this->quake, 18000);
|
||||
Quake_SetQuakeValues(this->quake, 2, 0, 0, 0);
|
||||
Quake_SetCountdown(this->quake, 15);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
this->timer = 40;
|
||||
this->actionFunc = EnPametfrog_SnapperSpawn;
|
||||
}
|
||||
@@ -1236,7 +1237,7 @@ void EnPametfrog_SnapperSpawn(EnPametfrog* this, PlayState* play) {
|
||||
EnPametfrog_ShakeCamera(this, play, (f32)(this->timer * 7.5f) + 200.0f,
|
||||
((f32)(this->timer * 2) * (15.0f / 16.0f)) + -20.0f);
|
||||
if (this->timer != 0) {
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
} else {
|
||||
EnPametfrog_SetupTransitionGekkoSnapper(this, play);
|
||||
}
|
||||
@@ -1249,7 +1250,7 @@ void EnPametfrog_SetupTransitionGekkoSnapper(EnPametfrog* this, PlayState* play)
|
||||
Quake_SetSpeed(this->quake, 20000);
|
||||
Quake_SetQuakeValues(this->quake, 17, 0, 0, 0);
|
||||
Quake_SetCountdown(this->quake, 12);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
this->actionFunc = EnPametfrog_TransitionGekkoSnapper;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_railgibud.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_rd/object_rd.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_400)
|
||||
@@ -346,7 +347,7 @@ void EnRailgibud_AttemptPlayerFreeze(EnRailgibud* this, PlayState* play) {
|
||||
|
||||
if (ABS_ALT(yaw) < 0x2008) {
|
||||
player->actor.freezeTimer = 60;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
func_80123E90(play, &this->actor);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
EnRailgibud_SetupWalkToPlayer(this);
|
||||
@@ -392,7 +393,7 @@ void EnRailgibud_WalkToPlayer(EnRailgibud* this, PlayState* play) {
|
||||
if (this->playerStunWaitTimer == 0) {
|
||||
player->actor.freezeTimer = 40;
|
||||
this->playerStunWaitTimer = 60;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
func_80123E90(play, &this->actor);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
} else {
|
||||
@@ -451,7 +452,7 @@ void EnRailgibud_Grab(EnRailgibud* this, PlayState* play) {
|
||||
damageSfxId = player->ageProperties->unk_92 + NA_SE_VO_LI_DAMAGE_S;
|
||||
play->damagePlayer(play, -8);
|
||||
func_800B8E58(player, damageSfxId);
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
this->grabDamageTimer = 0;
|
||||
} else {
|
||||
this->grabDamageTimer++;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_rd.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_rd/object_rd.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_400)
|
||||
@@ -660,7 +661,7 @@ void EnRd_WalkToPlayer(EnRd* this, PlayState* play) {
|
||||
player->actor.freezeTimer = 40;
|
||||
func_80123E90(play, &this->actor);
|
||||
GET_PLAYER(play)->unk_A78 = &this->actor;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
}
|
||||
this->playerStunWaitTimer = 60;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
@@ -829,7 +830,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) {
|
||||
Animation_PlayLoop(&this->skelAnime, &gGibdoRedeadGrabAttackAnim);
|
||||
this->grabState++;
|
||||
play->damagePlayer(play, -8);
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 1, 12);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 1, 12);
|
||||
this->grabDamageTimer = 20;
|
||||
|
||||
case EN_RD_GRAB_START:
|
||||
@@ -877,7 +878,7 @@ void EnRd_Grab(EnRd* this, PlayState* play) {
|
||||
this->grabDamageTimer--;
|
||||
if (this->grabDamageTimer == 0) {
|
||||
play->damagePlayer(play, -8);
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
this->grabDamageTimer = 20;
|
||||
func_800B8E58(player, player->ageProperties->unk_92 + NA_SE_VO_LI_DAMAGE_S);
|
||||
}
|
||||
@@ -917,7 +918,7 @@ void EnRd_AttemptPlayerFreeze(EnRd* this, PlayState* play) {
|
||||
if (ABS_ALT(yaw) < 0x2008) {
|
||||
if (!(this->flags & EN_RD_FLAG_CANNOT_FREEZE_PLAYER)) {
|
||||
player->actor.freezeTimer = 60;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
func_80123E90(play, &this->actor);
|
||||
}
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_rr.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_rr/object_rr.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_400)
|
||||
@@ -628,7 +629,7 @@ void func_808FB088(EnRr* this, PlayState* play) {
|
||||
void func_808FB1C0(EnRr* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 120, 2, 120);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 120, 2, 120);
|
||||
if (!(this->unk_1E4 & 7)) {
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_EYEGOLE_DEMO_EYE);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_en_talk_gibud.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4 | ACTOR_FLAG_10 | ACTOR_FLAG_400)
|
||||
|
||||
@@ -310,7 +311,7 @@ void EnTalkGibud_AttemptPlayerFreeze(EnTalkGibud* this, PlayState* play) {
|
||||
|
||||
if (ABS_ALT(yaw) < 0x2008) {
|
||||
player->actor.freezeTimer = 60;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
func_80123E90(play, &this->actor);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
EnTalkGibud_SetupWalkToPlayer(this);
|
||||
@@ -355,7 +356,7 @@ void EnTalkGibud_WalkToPlayer(EnTalkGibud* this, PlayState* play) {
|
||||
if (this->playerStunWaitTimer == 0) {
|
||||
player->actor.freezeTimer = 40;
|
||||
this->playerStunWaitTimer = 60;
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 255, 20, 150);
|
||||
func_80123E90(play, &this->actor);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||
} else {
|
||||
@@ -409,7 +410,7 @@ void EnTalkGibud_Grab(EnTalkGibud* this, PlayState* play) {
|
||||
damageSfxId = player->ageProperties->unk_92 + NA_SE_VO_LI_DAMAGE_S;
|
||||
play->damagePlayer(play, -8);
|
||||
func_800B8E58(player, damageSfxId);
|
||||
func_8013ECE0(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
Rumble_Request(this->actor.xzDistToPlayer, 240, 1, 12);
|
||||
this->grabDamageTimer = 0;
|
||||
} else {
|
||||
this->grabDamageTimer++;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_obj_hugebombiwa.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_bombiwa/object_bombiwa.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
@@ -298,7 +299,7 @@ void func_80A54980(ObjHugebombiwa* this, PlayState* play, s32 arg2) {
|
||||
Quake_SetSpeed(quake, 0x4E20);
|
||||
Quake_SetQuakeValues(quake, arg2, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, 7);
|
||||
func_8013ECE0(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
|
||||
}
|
||||
|
||||
s32 func_80A54A0C(ObjHugebombiwa* this) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_obj_switch.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10)
|
||||
@@ -563,7 +564,7 @@ void ObjSwitch_FloorSwitchPushDown(ObjSwitch* this, PlayState* play) {
|
||||
this->dyna.actor.scale.y -= 0.0495f;
|
||||
if (this->dyna.actor.scale.y <= this->floorSwitchDownScale) {
|
||||
ObjSwitch_PlayFootSwitchSfx(this);
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
ObjSwitch_StopCutscene(this);
|
||||
ObjSwitch_FloorSwitchDownInit(this);
|
||||
}
|
||||
@@ -864,7 +865,7 @@ void ObjSwitch_LargeFloorSwitchPushDown(ObjSwitch* this, PlayState* play) {
|
||||
this->dyna.actor.scale.y -= 0.074250005f;
|
||||
if (this->dyna.actor.scale.y <= 33.0f / 2000.0f) {
|
||||
ObjSwitch_PlayFootSwitchSfx(this);
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
ObjSwitch_StopCutscene(this);
|
||||
ObjSwitch_LargeFloorSwitchDownInit(this);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_obj_tokei_step.h"
|
||||
#include "z64rumble.h"
|
||||
#include "objects/object_tokei_step/object_tokei_step.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_400000)
|
||||
@@ -66,7 +67,7 @@ void ObjTokeiStep_AddQuake(ObjTokeiStep* this, PlayState* play) {
|
||||
Quake_SetSpeed(quake, 20000);
|
||||
Quake_SetQuakeValues(quake, 1, 0, 0, 0);
|
||||
Quake_SetCountdown(quake, 7);
|
||||
func_8013ECE0(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
Rumble_Request(this->dyna.actor.xyzDistToPlayerSq, 120, 20, 10);
|
||||
}
|
||||
|
||||
void ObjTokeiStep_SpawnDust(ObjTokeiStep* this, ObjTokeiStepPanel* panel, PlayState* play) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#define THIS ((Player*)thisx)
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_file_choose.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
extern UNK_TYPE D_01002800;
|
||||
extern UNK_TYPE D_01007980;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_file_choose.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
extern UNK_TYPE D_01002800;
|
||||
extern UNK_TYPE D_01007980;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "z_file_choose.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
extern UNK_TYPE D_01002800;
|
||||
extern UNK_TYPE D_01007980;
|
||||
|
||||
Reference in New Issue
Block a user