dAcEremly_c equivalent

This commit is contained in:
elijah-thomas774
2026-04-18 14:35:02 -04:00
parent 5d27cfd9a5
commit 9f4cf0c308
8 changed files with 243 additions and 61 deletions
+21 -21
View File
@@ -94,29 +94,29 @@ finalizeState_NightJumpAttack__11dAcEremly_cFv = .text:0x00006860; // type:funct
initializeState_BirthWait__11dAcEremly_cFv = .text:0x00006870; // type:function size:0x7C
executeState_BirthWait__11dAcEremly_cFv = .text:0x000068F0; // type:function size:0x13C
finalizeState_BirthWait__11dAcEremly_cFv = .text:0x00006A30; // type:function size:0x4
fn_177_6A40 = .text:0x00006A40; // type:function size:0xCC
playWink__11dAcEremly_cFv = .text:0x00006A40; // type:function size:0xCC
fn_177_6B10__11dAcEremly_cFbRC4mAng = .text:0x00006B10; // type:function size:0x38C
fn_177_6EA0 = .text:0x00006EA0; // type:function size:0x120
fn_177_6FC0 = .text:0x00006FC0; // type:function size:0x78
fn_177_7040 = .text:0x00007040; // type:function size:0x2EC
fn_177_7330 = .text:0x00007330; // type:function size:0x90
fn_177_73C0 = .text:0x000073C0; // type:function size:0x144
fn_177_7510 = .text:0x00007510; // type:function size:0xC8
fn_177_75E0 = .text:0x000075E0; // type:function size:0x6C
fn_177_6EA0__11dAcEremly_cFb = .text:0x00006EA0; // type:function size:0x120
adjustHeadRotation__11dAcEremly_cFb = .text:0x00006FC0; // type:function size:0x78
fn_177_7040__11dAcEremly_cFUlf = .text:0x00007040; // type:function size:0x2EC
isScary__11dAcEremly_cFv = .text:0x00007330; // type:function size:0x90
shouldBeScared__11dAcEremly_cFv = .text:0x000073C0; // type:function size:0x144
fn_177_7510__11dAcEremly_cFf = .text:0x00007510; // type:function size:0xC8
fn_177_75E0__11dAcEremly_cFv = .text:0x000075E0; // type:function size:0x6C
fn_177_7650__11dAcEremly_cCFb = .text:0x00007650; // type:function size:0x164
fn_177_77C0 = .text:0x000077C0; // type:function size:0x108
fn_177_78D0 = .text:0x000078D0; // type:function size:0xF4
fn_177_79D0 = .text:0x000079D0; // type:function size:0x134
fn_177_7B10 = .text:0x00007B10; // type:function size:0x1B4
AcERemly__handleRemlitEventsMaybe2 = .text:0x00007CD0; // type:function size:0x844
fn_177_8520 = .text:0x00008520; // type:function size:0xD8
fn_177_8600 = .text:0x00008600; // type:function size:0xC0
fn_177_86C0 = .text:0x000086C0; // type:function size:0x2B4
fn_177_8980 = .text:0x00008980; // type:function size:0x13C
fn_177_8AC0 = .text:0x00008AC0; // type:function size:0x160
fn_177_8C20 = .text:0x00008C20; // type:function size:0x36C
fn_177_8F90 = .text:0x00008F90; // type:function size:0x3E0
fn_177_9370 = .text:0x00009370; // type:function size:0xE8
fn_177_77C0__11dAcEremly_cFv = .text:0x000077C0; // type:function size:0x108
fn_177_78D0__11dAcEremly_cFv = .text:0x000078D0; // type:function size:0xF4
fn_177_79D0__11dAcEremly_cFb = .text:0x000079D0; // type:function size:0x134
fn_177_7B10__11dAcEremly_cFv = .text:0x00007B10; // type:function size:0x1B4
nightSleepDemoImpl__11dAcEremly_cFv = .text:0x00007CD0; // type:function size:0x844
fn_177_8520__11dAcEremly_cFb = .text:0x00008520; // type:function size:0xD8
fn_177_8600__11dAcEremly_cFv = .text:0x00008600; // type:function size:0xC0
fn_177_86C0__11dAcEremly_cFv = .text:0x000086C0; // type:function size:0x2B4
fn_177_8980__11dAcEremly_cFf = .text:0x00008980; // type:function size:0x13C
fn_177_8AC0__11dAcEremly_cFv = .text:0x00008AC0; // type:function size:0x160
fn_177_8C20__11dAcEremly_cF4mAng = .text:0x00008C20; // type:function size:0x36C
fn_177_8F90__11dAcEremly_cFv = .text:0x00008F90; // type:function size:0x3E0
fn_177_9370__11dAcEremly_cFf = .text:0x00009370; // type:function size:0xE8
vt_0x88__11dAcEnBase_cFi = .text:0x00009460; // type:function size:0x8
vt_0x84__11dAcEnBase_cFv = .text:0x00009470; // type:function size:0x4
vt_0x80__11dAcEnBase_cFv = .text:0x00009480; // type:function size:0x4
+11 -11
View File
@@ -976,7 +976,7 @@ setupEffect__10dEmitter_cFbUsRC7mVec3_cPC7mAng3_cPC7mVec3_cPC8_GXColorPC8_GXColo
setupEffect__10dEmitter_cFbUsRC6mMtx_cPC8_GXColorPC8_GXColor = .text:0x8002A230; // type:function size:0x150
polyAttrsToGroundEffectIdx__14dJEffManager_cFll = .text:0x8002A380; // type:function size:0xCC
spawnGroundEffect__14dJEffManager_cFRC7mVec3_cUcUcRC7mVec3_clff = .text:0x8002A450; // type:function size:0x1C0
fn_8002A610 = .text:0x8002A610; // type:function size:0x678
spawnHitMarkEffect__14dJEffManager_cFiR8cCcD_ObjPC7mVec3_cb = .text:0x8002A610; // type:function size:0x678
fn_8002AC90 = .text:0x8002AC90; // type:function size:0x460
vt_0x1C0__17daPlayerActBase_cCFv = .text:0x8002B0F0; // type:function size:0x8
init__14dWaterEffect_cFP12dAcObjBase_cfff = .text:0x8002B100; // type:function size:0x14
@@ -1153,7 +1153,7 @@ preDraw__11dAcEnBase_cFv = .text:0x8002F540; // type:function size:0x74
fn_8002F5C0 = .text:0x8002F5C0; // type:function size:0x110
checkBeetleActorReferences__17daPlayerActBase_cFl = .text:0x8002F6D0; // type:function size:0x8
getBeetleActorReferencesSize__17daPlayerActBase_cFv = .text:0x8002F6E0; // type:function size:0x8
fn_8002F6F0 = .text:0x8002F6F0; // type:function size:0xC
getBombWithinRadius__17daPlayerActBase_cFP9dAcBase_cRC7mVec3_cf = .text:0x8002F6F0; // type:function size:0xC
fn_8002F700 = .text:0x8002F700; // type:function size:0x8
fn_8002F710 = .text:0x8002F710; // type:function size:0x110
checkRefArrayAtIndex__17daPlayerActBase_cFv = .text:0x8002F820; // type:function size:0x8
@@ -1172,12 +1172,12 @@ fn_8002FBF0 = .text:0x8002FBF0; // type:function size:0x20
fn_8002FC10 = .text:0x8002FC10; // type:function size:0xF4
someEnemyDamageCollisionStuffMaybe__11dAcEnBase_cFR19dColliderLinkedListPUs = .text:0x8002FD10; // type:function size:0x7C
fn_8002FD90 = .text:0x8002FD90; // type:function size:0x4C
fn_8002FDE0 = .text:0x8002FDE0; // type:function size:0x170
fn_8002FDE0__11dAcEnBase_cFR8cCcD_ObjPUs = .text:0x8002FDE0; // type:function size:0x170
fn_8002FF50 = .text:0x8002FF50; // type:function size:0xD4
fn_80030030 = .text:0x80030030; // type:function size:0x174
fn_800301B0 = .text:0x800301B0; // type:function size:0x1D4
fn_80030030__11dAcEnBase_cFRC7mVec3_cRsRsf = .text:0x80030030; // type:function size:0x174
fn_800301b0__11dAcEnBase_cFRC7mVec3_c4mAngbf = .text:0x800301B0; // type:function size:0x1D4
fn_80030390 = .text:0x80030390; // type:function size:0x64
fn_80030400 = .text:0x80030400; // type:function size:0x168
fn_80030400__11dAcEnBase_cFRQ23m3d5mdl_cUcbUc = .text:0x80030400; // type:function size:0x168
fn_80030570 = .text:0x80030570; // type:function size:0x144
fn_800306C0 = .text:0x800306C0; // type:function size:0x10
fn_800306D0 = .text:0x800306D0; // type:function size:0x24
@@ -1186,7 +1186,7 @@ fn_80030730 = .text:0x80030730; // type:function size:0xB0
fn_800307E0 = .text:0x800307E0; // type:function size:0x34
fn_80030820 = .text:0x80030820; // type:function size:0x14
fn_80030840 = .text:0x80030840; // type:function size:0x13C
fn_80030980 = .text:0x80030980; // type:function size:0x188
fn_80030980__11dAcEnBase_cFRQ23m3d5mdl_clb = .text:0x80030980; // type:function size:0x188
fn_80030B10 = .text:0x80030B10; // type:function size:0x10C
fn_80030c20__11dAcEnBase_cFUlffff = .text:0x80030C20; // type:function size:0x28
fn_80030C50 = .text:0x80030C50; // type:function size:0x8
@@ -3545,7 +3545,7 @@ ActorEventRelated__isInEvent = .text:0x8009D950; // type:function size:0x54
isThisActorInEvent__17ActorEventRelatedFv = .text:0x8009D9B0; // type:function size:0x5C
fn_8009DA10 = .text:0x8009DA10; // type:function size:0x30
fn_8009DA40 = .text:0x8009DA40; // type:function size:0x40
getSkipOnlyEvent = .text:0x8009DA80; // type:function size:0xC
getSkipOnlyEvent__12EventManagerFv = .text:0x8009DA80; // type:function size:0xC
EventManager__ctorCont = .text:0x8009DA90; // type:function size:0x11C
fn_8009DBB0 = .text:0x8009DBB0; // type:function size:0x128
startEventManager = .text:0x8009DCE0; // type:function size:0x280
@@ -3566,7 +3566,7 @@ fn_8009EEA0 = .text:0x8009EEA0; // type:function size:0x53C
alsoSetAsCurrentEvent__12EventManagerFP9dAcBase_cP5EventPv = .text:0x8009F3E0; // type:function size:0x470
fn_8009F850 = .text:0x8009F850; // type:function size:0x134
fn_8009F990__12EventManagerFv = .text:0x8009F990; // type:function size:0x80
fn_8009FA10 = .text:0x8009FA10; // type:function size:0x8
fn_8009FA10__12EventManagerFP9dAcBase_cP5EventPv = .text:0x8009FA10; // type:function size:0x8
attachSkipEvent = .text:0x8009FA20; // type:function size:0x1A0
setEvent__12EventManagerFP9dAcBase_cP5EventP9dAcBase_c = .text:0x8009FBC0; // type:function size:0x120
changeOwnEvent__12EventManagerFP9dAcBase_cP9dAcBase_cP5Eventi = .text:0x8009FCE0; // type:function size:0x11C
@@ -3594,7 +3594,7 @@ getCurrentEventActorBasedOnGroup = .text:0x800A0890; // type:function size:0x58
fn_800A08F0__12EventManagerFQ27fBase_c12GROUP_TYPE_e = .text:0x800A08F0; // type:function size:0x58
checkButton2HeldForCutscenes = .text:0x800A0950; // type:function size:0x60
canSkipCurrentEvent__12EventManagerFv = .text:0x800A09B0; // type:function size:0x1D0
fn_800A0B80 = .text:0x800A0B80; // type:function size:0x10
fn_800A0B80__12EventManagerFv = .text:0x800A0B80; // type:function size:0x10
eventRelatedStateFlags_shift0x11_1__12EventManagerFv = .text:0x800A0B90; // type:function size:0x10
fn_800A0BA0 = .text:0x800A0BA0; // type:function size:0x94
__ct__5EventFPCcUlUlPvPv = .text:0x800A0C40; // type:function size:0xEC
@@ -10411,7 +10411,7 @@ GoddessChestsOpenedCounter__init_vtable = .text:0x801947A0; // type:function siz
GoddessChestsOpenedCounter__dtor = .text:0x801947C0; // type:function size:0x58
GoddessChestsOpenedCounter__getMaxGoddessChests = .text:0x80194820; // type:function size:0x8
GoddessChestsOpenedCounter__init = .text:0x80194830; // type:function size:0x3C
angleToRotate = .text:0x80194870; // type:function size:0x194
getForce__11dTgStream_cFRC7mVec3_cR7mVec3_cRC9fLiMgBa_c = .text:0x80194870; // type:function size:0x194
fn_80194A10 = .text:0x80194A10; // type:function size:0xC
getStatueType__10dAcOSave_cCFv = .text:0x80194A20; // type:function size:0xC
getStatueNameId__10dAcOSave_cCFv = .text:0x80194A30; // type:function size:0x24
+11 -4
View File
@@ -100,6 +100,10 @@ public:
STATE_FUNC_DECLARE(dAcEremly_c, NightJumpAttack);
STATE_FUNC_DECLARE(dAcEremly_c, BirthWait);
bool isState(State_e state) {
return field_0xB60 == (u32)state;
}
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dAcEremly_c);
STATE_MGR_DEFINE_UTIL_ISSTATE(dAcEremly_c);
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dAcEremly_c);
@@ -167,9 +171,12 @@ private:
/* 0xA5C */ dWaterEffect_c mWaterEffect;
/* 0xAA4 */ mVec3_c field_0xAA4;
/* 0xAB0 */ u8 _AB0[0xAF8 - 0xAB0];
/* 0xAB0 */ mVec3_c field_0xAB0;
/* 0xABC */ mVec3_c field_0xABC;
/* 0xAC8 */ mVec3_c field_0xAC8;
/* 0xAD4 */ mVec3_c field_0xAD4;
/* 0xAE0 */ mVec3_c field_0xAE0;
/* 0xAEC */ mVec3_c field_0xAEC;
/* 0xAF8 */ mVec3_c field_0xAF8;
/* 0xB04 */ f32 field_0xB04;
@@ -207,7 +214,7 @@ private:
/* 0xB60 */ u8 field_0xB60; // Some State representation
/* 0xB61 */ u8 field_0xB61;
/* 0xB62 */ u8 mSleepDemoPlayedSceneflag;
/* */ u8 _B63;
/* 0xB63 */ u8 field_0xB63;
/* 0xB64 */ u8 field_0xB64;
/* 0xB65 */ u8 field_0xB65;
/* 0xB66 */ u8 field_0xB66;
+1 -1
View File
@@ -70,7 +70,7 @@ public:
// Deals with dealing damage to Enemy
// Returns a value 0-13 (similar to mStts rank?)
int fn_8002fde0(cCcD_Obj &mCc, u16 *pTgOut);
int fn_8002FDE0(cCcD_Obj &mCc, u16 *pTgOut);
void fn_80030030(const mVec3_c &pos, s16 &, s16 &, f32);
// Returns 0-3 based on collision
int fn_800301b0(const mVec3_c &pos, mAng ang, bool, f32);
+2
View File
@@ -68,6 +68,8 @@ public:
s32 absDiff(const mAng &other) const {
return sLib::absDiff(mVal, other.mVal);
}
// NOTE: Try not to use this one...
// May need a better home in future.
template <typename T>
static s32 absDiff2(T a, T b) {
return abs(a - b);
+3
View File
@@ -20,6 +20,9 @@ public:
static bool canSkipCurrentEvent();
static dAcBase_c *getMainActorInEvent();
static Event *getSkipOnlyEvent();
static bool fn_800A0B80();
static void fn_8009FA10(dAcBase_c *actor, Event *event, void *unknown);
static void execute();
static EventManager *sInstance;
+193 -23
View File
@@ -17,7 +17,10 @@
#include "d/d_camera.h"
#include "d/d_light_env.h"
#include "d/d_linkage.h"
#include "d/d_rumble.h"
#include "d/d_sc_game.h"
#include "d/d_stage_mgr.h"
#include "d/d_vec.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
#include "d/snd/d_snd_wzsound.h"
@@ -42,6 +45,7 @@
#include "toBeSorted/attention.h"
#include "toBeSorted/d_d3d.h"
#include "toBeSorted/d_emitter.h"
#include "toBeSorted/event.h"
#include "toBeSorted/event_manager.h"
SPECIAL_ACTOR_PROFILE(E_REMLY, dAcEremly_c, fProfile::E_REMLY, 0xE1, 0, 3);
@@ -348,7 +352,7 @@ int dAcEremly_c::actorExecute() {
}
if (0 == sLib::calcTimer(&field_0xB4E)) {
s32 damageTypeMaybe = fn_8002fde0(mSph, nullptr);
s32 damageTypeMaybe = fn_8002FDE0(mSph, nullptr);
switch (damageTypeMaybe) {
case 7: {
if (isState(StateID_Fly) && field_0xB60 != 20) {
@@ -569,6 +573,11 @@ int dAcEremly_c::actorExecute() {
return SUCCEEDED;
}
/// Ugh
inline f32 getValue0() {
s32 _weird_zero = 0;
return _weird_zero + 70.f;
}
int dAcEremly_c::draw() {
s32 _weird_zero = 0;
@@ -588,7 +597,7 @@ int dAcEremly_c::draw() {
drawModelType1(&mdl);
// elp
static mQuat_c shadow(0.f, 70.f + _weird_zero, 0.f, 290.f + _weird_zero);
static mQuat_c shadow(0.f, getValue0(), 0.f, _weird_zero + 290.f);
fn_8002edb0(mShadow, mdl, &shadow, -1, -1, mPosition.y - mAcch.GetGroundH());
return SUCCEEDED;
@@ -911,8 +920,8 @@ void dAcEremly_c::executeState_EscapeDash() {
}
if (field_0xB6B != 0) {
mVec3_c v(getPosition());
sLib::addCalcScaledDiff(&mSpeed, 30.f, 0.7f, 3.f);
mVec3_c v;
sLib::addCalcScaledDiff(&mSpeed, (v = mPosition, 30.f), 0.7f, 3.f);
if (fn_177_8C20(mRotation.y)) {
changeState(StateID_Scared);
@@ -2233,7 +2242,7 @@ bool dAcEremly_c::fn_177_7650(bool comparePlayer) const {
// NONMATCHING
void dAcEremly_c::fn_177_77C0() {
const dAcPy_c *pPlayer = dAcPy_c::GetLink();
mAng a0 = getXZAngleToPlayer() + -0x7800;
s32 a0 = getXZAngleToPlayer().mVal + -(s32)(0x7800);
mAng a1 = getXZAngleToPlayer() + 0x7800;
field_0xB32 = getXZAngleToPlayer() + 0x8000;
@@ -2304,7 +2313,174 @@ bool dAcEremly_c::fn_177_7B10() {
return false;
}
void dAcEremly_c::nightSleepDemoImpl() {}
void dAcEremly_c::nightSleepDemoImpl() {
s32 _weird_zero = 0;
if (mSleepDemoPlayedSceneflag == 0xFF ||
SceneflagManager::sInstance->checkBoolFlag(mRoomID, mSleepDemoPlayedSceneflag)) {
return;
}
dAcPy_c *pPlayer = dAcPy_c::GetLinkM();
dCamera_c *pCamera = dScGame_c::getCamera();
f32 x, y, z;
mVec3_c v, v2;
mMtx_c m, m2;
mAng a = mAngle.y - 0x4000;
switch (field_0xB63) {
case 0: {
if (!isWithinPlayerRadius(1500.f)) {
break;
}
field_0xB63++;
} // fallthrough
case 1: {
{
Event e("dAcEremly_c_nightRemly", 100, Event::makeEventFlag(1, 0x100001), nullptr, nullptr);
EventManager::alsoSetAsCurrentEvent(this, &e, nullptr);
}
if (!EventManager::isInEvent(this, "dAcEremly_c_nightRemly")) {
break;
}
mStartingRot = mRotation;
EventManager::fn_8009FA10(this, EventManager::getSkipOnlyEvent(), nullptr);
pPlayer->vt_0x2AC();
field_0xB63++;
} // fallthrough
case 2: {
mMdl.setAnm("RemlyDemo", m3d::PLAY_MODE_4, 0.f);
field_0xB60 = 26;
z = _weird_zero + -160.f;
y = _weird_zero + 80.f;
x = _weird_zero + 410.f;
v.set(x, y, z);
m.YrotS(a + 0x8000);
m.multVec(v, field_0xAB0);
field_0xAB0 += mStartingPos;
field_0xAC8 = field_0xAB0;
field_0xAE0 = field_0xAB0;
x = _weird_zero + 30.f;
y = _weird_zero + 30.f;
z = _weird_zero + 30.f;
v.set(z, y, x);
m.YrotS(a);
m.multVec(v, field_0xABC);
field_0xABC += mStartingPos;
field_0xAD4 = field_0xABC;
field_0xAEC = field_0xABC;
x = _weird_zero + -370.f;
y = 0.f;
z = 250.f;
v.set(x, y, z);
m.YrotS(a);
m.multVec(v, v2);
v2 += mStartingPos;
mAng3_c rot(0, getXZAngleToPlayer() + 0x8000, 0);
dAcPy_c::GetLinkM()->setPosRot(&v2, &rot, true, 0, 0);
dAcPy_c::GetLinkM()->triggerMoveEventMaybe(13, 1, 0, 0, 0, 0, 0);
field_0xB63++;
} // fallthrough
case 3: {
if (sLib::calcTimer(&field_0xB48)) {
break;
}
field_0xB48 = 60;
field_0xB63++;
} // fallthrough
case 4: {
if (sLib::calcTimer(&field_0xB48)) {
if (field_0xB48 == 58) {
z = _weird_zero + 170.f;
x = _weird_zero + -120.f;
v.set(x, 0.f, z);
m.YrotS(a);
m.multVec(v, v2);
v2 += mStartingPos;
dAcPy_c::GetLinkM()->triggerMoveEventMaybe(2, 0, 0, &v2, 0, 0, 0);
}
break;
}
field_0xB48 = 100;
field_0xB63++;
} // fallthrough
case 5: {
a = cLib::targetAngleY(field_0xAD4, field_0xAC8);
m.YrotS(a);
z = _weird_zero + -330.f;
y = _weird_zero;
x = _weird_zero;
v.set(x, y, z);
m.multVec(v, field_0xAE0);
field_0xAE0 += field_0xAC8;
if (sLib::calcTimer(&field_0xB48)) {
break;
}
field_0xB63++;
} // fallthrough
case 6: {
if (mMdl.getAnm().checkFrame(320.f)) {
mMtx_c m3, m4;
s32 scale = 95;
m2.transS(0.5f, 0.5f, 0.f);
y = scale / 100.f;
x = scale / 100.f;
m3.scaleS(x, y, 0.f);
m2 += m3;
m4.transS(-0.5f, -0.5f, 0.f);
m2 += m4;
dStageMgr_c::GetInstance()->procfn_800192F0(150, m2, 100);
dRumble_c::start(dRumble_c::sRumblePreset1, 1);
}
if (mMdl.getAnm().isStop()) {
mMdl.setRate(0.f);
field_0xB63 = 10;
}
break;
}
case 10: {
mSph.OnTgSet();
mSph.OnCoSet();
EventManager::finishEvent(this, nullptr);
dScGame_c::getCamera()->fn_8019EA70(true);
field_0xB48 = 3;
field_0xB63 = 11;
break;
}
case 11: {
if (0 == sLib::calcTimer(&field_0xB48)) {
changeState(StateID_NightWait);
mMdl.setAnm("RemlyWaitStandNight", m3d::PLAY_MODE_4, 0.f);
mAngle.y = mStartingRot.y + -30000;
mRotation.y = mAngle.y;
if (mSleepDemoPlayedSceneflag != 0xFF) {
SceneflagManager::sInstance->setFlag(mRoomID, mSleepDemoPlayedSceneflag);
}
}
}
}
if (field_0xB63 == 5) {
cLib::addCalcPos2(&field_0xAB0, field_0xAE0, 0.3f, 10.f);
}
if (field_0xB63 == 2 || field_0xB63 == 3 || field_0xB63 == 4 || field_0xB63 == 5 || field_0xB63 == 6 ||
field_0xB63 == 7 || field_0xB63 == 8 || field_0xB63 == 9) {
pCamera->setEventCamView(field_0xABC, field_0xAB0, 50.f, 0.f);
if (EventManager::fn_800A0B80()) {
mMdl.setRate(0.f);
field_0xB63 = 10;
}
}
}
void dAcEremly_c::fn_177_8520(bool b) {
s32 _weird_zero = 0;
@@ -2371,21 +2547,15 @@ bool dAcEremly_c::fn_177_86C0() {
return false;
}
// TODO - Have its own location
inline void offsetWithAngle(mVec3_c &v, const mAng &a, f32 f) {
v.x += f * a.sin();
v.z += f * a.cos();
}
bool dAcEremly_c::fn_177_8980(f32 f) {
dBgS_ObjGndChk gndChk;
mVec3_c v(mPosition);
v.y += 100.f;
offsetWithAngle(v, mRotation.y, f);
getXZCirclePoint(v, mRotation.y, f);
gndChk.SetPos(v);
gndChk.SetPos(&v);
f32 cross = dBgS::GetInstance()->GroundCross(&gndChk);
if (cross < mPosition.y - 1000.f || cross == -1e9f || dBgS::GetInstance()->GetGroundCode(gndChk) == 4) {
@@ -2396,14 +2566,14 @@ bool dAcEremly_c::fn_177_8980(f32 f) {
// NONMATCHING
bool dAcEremly_c::fn_177_8AC0() {
if ((field_0xB60 != STATE_16) && (field_0xB60 != STATE_17) && (field_0xB60 != STATE_13) &&
(field_0xB60 != STATE_14) && (field_0xB60 != STATE_15) && (field_0xB60 != STATE_5) &&
(field_0xB60 != STATE_21) && (field_0xB60 != STATE_6) && (field_0xB60 != STATE_8) && (field_0xB60 != STATE_7) &&
(field_0xB60 != STATE_10) && (field_0xB60 != STATE_22) && (field_0xB60 != STATE_23) &&
(field_0xB60 != STATE_24)) {
return false;
} else {
bool b = (isState(STATE_16)) || (isState(STATE_17)) || (isState(STATE_13)) || (isState(STATE_14)) ||
(isState(STATE_15)) || (isState(STATE_5)) || (isState(STATE_21)) || (isState(STATE_6)) ||
(isState(STATE_8)) || (isState(STATE_7)) || (isState(STATE_10)) || (isState(STATE_22)) ||
(isState(STATE_23)) || (isState(STATE_24));
if (b) {
return true;
} else {
return false;
}
}
@@ -2420,7 +2590,7 @@ bool dAcEremly_c::fn_177_8C20(mAng a) {
if (field_0xB6C || field_0xB6A || isState(StateID_Escape) || isState(StateID_EscapeDash)) {
mVec3_c v(mPosition);
f32 f = 150.f + _weird_zero;
offsetWithAngle(v, mAngle.y, f);
getXZCirclePoint(v, mAngle.y, f);
if (dBgS_WtrChk::CheckPos(&v, true, 600.f + _weird_zero, -100.f + _weird_zero)) {
if (mPosition.y < dBgS_WtrChk::GetWaterHeight() && mAcch.GetGroundH() < dBgS_WtrChk::GetWaterHeight()) {
return true;
@@ -2510,7 +2680,7 @@ bool dAcEremly_c::fn_177_9370(f32 f) {
const dAcPy_c *pPlayer = dAcPy_c::GetLink();
if (!pPlayer->isRecovering() && pPlayer->mPosition.absXZTo(mStartingPos) < field_0xB08 &&
std::abs(mPosition.y - pPlayer->mPosition.y) < f + 2000.f) {
std::abs(mPosition.y - pPlayer->mPosition.y) < f + 200.f) {
return true;
}
+1 -1
View File
@@ -512,7 +512,7 @@ int dAcEsm_c::actorExecute() {
mHitPos.set(0.f, 0.f, 0.f);
if (0 == sLib::calcTimer(&mDamageTimer)) {
field_0xB94 = fn_8002fde0(mSph, nullptr);
field_0xB94 = fn_8002FDE0(mSph, nullptr);
if (field_0xB94 != 0) {
if (mSph.ChkTgHit()) {
if (field_0xB94 == 7) {