1#include "Game/MapObj/BigFanHolder.hpp"
2#include "Game/MapObj/BigFan.hpp"
3#include "Game/Scene/SceneObjHolder.hpp"
9void BigFanHolder::calcWindInfo(TVec3f *pWindInfo,
const TVec3f &a2, f32 *a3) {
10 s32 count = mObjectCount;
14 for (
int i = 0; i < count; i++) {
18 fan->calcWindInfo(&stack_20, a2);
19 f32 val =
reinterpret_cast<BigFan*
>(getActor(i))->_A0;
20 TVec3f stack_14 = stack_20 * (val / 100.0f);
21 stack_2C.addInline3(stack_14);
24 f32 mag = PSVECMag(stack_2C.toCVec());
25 if (MR::isNearZero(mag, 0.001f)) {
33 TVec3f stack_8 = stack_2C * (1.0f / mag);
34 pWindInfo->x = stack_8.x;
35 pWindInfo->y = stack_8.y;
36 pWindInfo->z = stack_8.z;
44void BigFanFunction::createBigFanHolder() {
45 MR::createSceneObj(SceneObj_BigFanHolder);
48void BigFanFunction::calcWindInfo(TVec3f *a1,
const TVec3f &a2, f32 *a3) {
49 if (!MR::isExistSceneObj(SceneObj_BigFanHolder)) {
57 reinterpret_cast<BigFanHolder*
>(MR::getSceneObjHolder()->getObj(SceneObj_BigFanHolder))->calcWindInfo(a1, a2, a3);
61void BigFanFunction::registerBigFan(
BigFan *pFan) {
62 reinterpret_cast<BigFanHolder*
>(MR::getSceneObjHolder()->getObj(SceneObj_BigFanHolder))->registerActor(pFan);
65BigFanHolder::~BigFanHolder() {