This commit is contained in:
TakaRikka
2025-12-05 21:14:19 -08:00
219 changed files with 8399 additions and 7176 deletions
+5 -5
View File
@@ -44,9 +44,7 @@ char* J2DResReference::getName(u16 idx) const {
p_name[0] = 0;
return p_name;
} else {
s8 first = resRef[0];
switch (first) {
switch (resRef[0]) {
case 2:
case 3:
for (s32 i = 0; i < resRef[1]; i++) {
@@ -54,8 +52,9 @@ char* J2DResReference::getName(u16 idx) const {
}
p_name[resRef[1]] = 0;
break;
case 4:
s32 pos = resRef[1] + 1;
case 4: {
s32 tmp = resRef[1];
s32 pos = tmp + 1;
for (; pos >= 2; pos--) {
if (resRef[pos] == '\\' || resRef[pos] == '/') {
break;
@@ -70,6 +69,7 @@ char* J2DResReference::getName(u16 idx) const {
p_name[i] = 0;
break;
}
default:
p_name[0] = 0;
}
+1 -1
View File
@@ -7,7 +7,7 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "dolphin/gx.h"
// NONMATCHING - instruction order
// NONMATCHING - instruction order. matches if const is removed from j2dDefaultColorChanInfo, but then it's in the wrong section
void J2DColorBlock::initialize() {
for (int i = 0; i < 2; i++) {
mMatColor[i] = JUtility::TColor(j2dDefaultColInfo);
+5 -5
View File
@@ -343,7 +343,8 @@ void J2DPane::place(JGeometry::TBox2<f32> const& box) {
f32 xOff = tmpBox.i.x - mBounds.i.x;
f32 yOff = tmpBox.i.y - mBounds.i.y;
for (J2DPane* child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) {
J2DPane* child;
for (child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) {
child->mTranslateX += xOff;
child->mTranslateY += yOff;
if (xOff != 0 || yOff != 0) {
@@ -432,10 +433,9 @@ void J2DPane::rotate(f32 angle) {
}
void J2DPane::clip(JGeometry::TBox2<f32> const& bounds) {
JGeometry::TBox2<f32> boxA(bounds);
JGeometry::TBox2<f32> boxB(mGlobalBounds);
boxA.addPos(boxB.i);
mClipRect.intersect(boxA);
JGeometry::TBox2<f32> box(bounds);
box.addPos(JGeometry::TVec2<f32>(mGlobalBounds.i.x, mGlobalBounds.i.y));
mClipRect.intersect(box);
}
J2DPane* J2DPane::search(u64 tag) {
@@ -347,10 +347,6 @@ int J3DSkinDeform::initMtxIndexArray(J3DModelData* pModelData) {
return kJ3DError_Success;
}
// NONMATCHING - instruction ordering/optimization issue, matches debug
// the compiler needs to delay adding +3 to dl until the end of the while loop for the function to match
// but instead it puts the +3 at the start of the for loop and reworks the other instructions
// can get a 99.93% match on retail by moving where dl is incremented, but it seems fake as it breaks debug, and introduces an operand swap on src
void J3DSkinDeform::changeFastSkinDL(J3DModelData* pModelData) {
J3D_ASSERT_NULLPTR(740, pModelData != NULL);
for (u16 i = 0; i < pModelData->getShapeNum(); i++) {
@@ -389,7 +385,7 @@ void J3DSkinDeform::changeFastSkinDL(J3DModelData* pModelData) {
memcpy(dst, src + 1, (int)(vtxSize - 1)); // The -1 is to remove GX_VA_PNMTXIDX
dst += (int)(vtxSize - 1);
}
dl += vtxSize * vtxCount;
dl = (u8*)dl + vtxSize * vtxCount;
}
int dlistSize = ((int)dst - (int)displayListStart + 0x1f) & ~0x1f;
+22 -20
View File
@@ -8,55 +8,57 @@
u32 J3DShapeDraw::countVertex(u32 stride) {
u32 count = 0;
uintptr_t dlStart = (uintptr_t)getDisplayList();
u8* dlStart = (u8*)getDisplayList();
for (u8* dl = (u8*)dlStart; ((uintptr_t)dl - dlStart) < getDisplayListSize();) {
if (*dl != GX_TRIANGLEFAN && *dl != GX_TRIANGLESTRIP)
for (u8* dl = dlStart; (dl - dlStart) < getDisplayListSize();) {
u8 cmd = *(u8*)dl;
dl++;
if (cmd != GX_TRIANGLEFAN && cmd != GX_TRIANGLESTRIP)
break;
u16 vtxNum = *((u16*)(dl + 1));
int vtxNum = *((u16*)(dl));
dl += 2;
count += vtxNum;
dl += stride * vtxNum;
dl += 3;
dl = (u8*)dl + stride * vtxNum;
}
return count;
}
// NONMATCHING regalloc
void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
u32 byteNum = countVertex(stride);
u32 newSize = ALIGN_NEXT(mDisplayListSize + byteNum, 0x20);
u32 oldSize = mDisplayListSize;
u32 newSize = ALIGN_NEXT(oldSize + byteNum, 0x20);
u8* newDLStart = new (0x20) u8[newSize];
u8* oldDLStart = getDisplayList();
u8* oldDLStart = (u8*)mDisplayList;
u8* oldDL = oldDLStart;
u8* newDL = newDLStart;
for (; (oldDL - oldDLStart) < mDisplayListSize;) {
// Copy command
u8 h = *oldDL;
*newDL++ = h;
u8 cmd = *(u8*)oldDL;
oldDL++;
*newDL++ = cmd;
if (h != GX_TRIANGLEFAN && h != GX_TRIANGLESTRIP)
if (cmd != GX_TRIANGLEFAN && cmd != GX_TRIANGLESTRIP)
break;
// Copy count
// regalloc (I suspect there's a way to shove this in a u16 temp without an mr)
s32 vtxNum = *((u16*)(oldDL + 1));
*((u16*)newDL) = vtxNum;
int vtxNum = *(u16*)oldDL;
oldDL += 2;
*(u16*)newDL = vtxNum;
newDL += 2;
for (s32 i = 0; i < vtxNum; i++) {
u8* oldDLVtx = &oldDL[stride * i + 3];
for (int i = 0; i < vtxNum; i++) {
u8* oldDLVtx = &oldDL[stride * i];
u8 pnmtxidx = *oldDLVtx;
memcpy(newDL, oldDLVtx, attrOffs);
memcpy(newDL, oldDLVtx, (int)attrOffs);
newDL += attrOffs;
*newDL++ = valueBase + pnmtxidx;
memcpy(newDL, oldDLVtx + attrOffs, stride - attrOffs);
newDL += (stride - attrOffs);
}
oldDL += stride * vtxNum;
oldDL += 3;
oldDL = (u8*)oldDL + stride * vtxNum;
}
u32 realSize = ALIGN_NEXT((uintptr_t)newDL - (uintptr_t)newDLStart, 0x20);
+4 -4
View File
@@ -27,7 +27,7 @@ JAIStream::JAIStream(JAIStreamMgr* streamMgr, JAISoundStrategyMgr<JAIStream>* so
field_0x2c5 = 0;
field_0x2c6 = 0;
for (int i = 0; i < CHANNEL_MAX; i++) {
for (int i = 0; i < NUM_CHILDREN; i++) {
children_[i] = NULL;
}
}
@@ -157,7 +157,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct
}
}
for (int i = 0; i < CHANNEL_MAX; i++) {
for (int i = 0; i < NUM_CHILDREN; i++) {
inner_.aramStream_.setPitch(mixParams->mPitch);
if (children_[i] != NULL) {
inner_.aramStream_.setChannelVolume(i, children_[i]->mMove.params_.mVolume * mixParams->mVolume);
@@ -186,7 +186,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct
void JAIStream::die_JAIStream_() {
die_JAISound_();
for (int i = 0; i < CHANNEL_MAX; i++) {
for (int i = 0; i < NUM_CHILDREN; i++) {
if (children_[i] != NULL) {
delete children_[i];
children_[i] = NULL;
@@ -231,7 +231,7 @@ void JAIStream::JAIStreamMgr_calc_() {
}
if (calc_JAISound_()) {
for (int i = 0; i < CHANNEL_MAX; i++) {
for (int i = 0; i < NUM_CHILDREN; i++) {
if (children_[i] != NULL) {
children_[i]->calc();
}
+49 -41
View File
@@ -9,6 +9,7 @@
#include "JSystem/JAudio2/JASDvdThread.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JSupport/JSupport.h"
JASTaskThread* JASAramStream::sLoadThread;
@@ -271,51 +272,55 @@ bool JASAramStream::load() {
}
u32 loop_end_block = (mLoopEnd - 1) / getBlockSamples();
u32 loop_start_block = mLoopStart / getBlockSamples();
u32 block = mBlock;
if (block > loop_end_block) {
if (mBlock > loop_end_block) {
return false;
}
u32 offset = mBlock * (sBlockSize * mChannelNum + sizeof(BlockHeader)) + sizeof(Header);
u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader);
u32 offset = block * size + sizeof(Header);
u32 size2 = size;
if (block == loop_end_block) {
size2 = mDvdFileInfo.length - offset;
if (mBlock == loop_end_block) {
size = mDvdFileInfo.length - offset;
}
if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size2, offset, 1) < 0) {
if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size, offset, 1) < 0) {
JUT_WARN(507, "%s", "DVDReadPrio Failed");
struct_80451261 = true;
return false;
}
BlockHeader* bhead = (BlockHeader*)sReadBuffer;
JUT_ASSERT(512, bhead->tag == 'BLCK');
if (field_0x114 != 0) {
return false;
}
u32 uvar2 = field_0x148 + field_0x10c * sBlockSize;
u32 sp08 = field_0x148 + field_0x10c * sBlockSize;
for (int i = 0; i < mChannelNum; i++) {
if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader),
uvar2 + sBlockSize * field_0x160 * i,
bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) {
(void)i;
if (!JKRMainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader),
sp08 + sBlockSize * field_0x160 * i,
bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) {
JUT_WARN(522, "%s", "JKRMainRamToAram Failed");
struct_80451261 = 1;
return false;
}
}
field_0x10c++;
if (field_0x10c >= field_0x108) {
u32 uvar8 = field_0x108 - 1 + mBlock;
u32 r28 = mBlock;
r28 += field_0x108 - 1;
if (mLoop) {
while (uvar8 > loop_end_block) {
uvar8 -= loop_end_block;
uvar8 += loop_start_block;
JUT_ASSERT(537, loop_start_block < loop_end_block);
while (r28 > loop_end_block) {
r28 -= loop_end_block;
r28 += loop_start_block;
}
}
if (uvar8 == loop_end_block || uvar8 + 2 == loop_end_block) {
if (r28 == loop_end_block || r28 + 2 == loop_end_block) {
field_0x108 = field_0x160;
OSSendMessage(&field_0x020, (OSMessage)5, OS_MESSAGE_BLOCK);
} else {
field_0x108 = field_0x160 - 1;
}
for (int i = 0; i < mChannelNum; i++) {
field_0x130[i] = bhead->field_0x8[i].field_0x0;
field_0x13c[i] = bhead->field_0x8[i].field_0x2;
field_0x130[i] = (s16)bhead->field_0x8[i].field_0x0;
field_0x13c[i] = (s16)bhead->field_0x8[i].field_0x2;
}
field_0x10c = 0;
}
@@ -379,17 +384,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
if (i_dspChannel->field_0x008 == 0) {
if (i_channel == field_0x0a8) {
field_0x12c = 0;
u32 uvar8 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
u32 uvar5 = field_0x0b4;
if (uvar8 <= uvar5) {
field_0x0b8 += uvar5 - uvar8;
u32 sp28 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
if (sp28 <= field_0x0b4) {
field_0x0b8 += field_0x0b4 - sp28;
} else {
if (!field_0x0c0) {
field_0x0b8 += uvar5;
field_0x0b8 += block_samples * mBufCount - uvar8;
field_0x0b8 += field_0x0b4;
field_0x0b8 += block_samples * mBufCount - sp28;
} else {
field_0x0b8 += uvar5;
field_0x0b8 += block_samples * mBufCount - uvar8
field_0x0b8 += field_0x0b4;
field_0x0b8 += block_samples * mBufCount - sp28
- i_dspChannel->field_0x110;
field_0x0b8 -= mLoopEnd;
field_0x0b8 += mLoopStart;
@@ -403,6 +407,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
}
}
if (field_0x0b8 > mLoopEnd) {
JUT_WARN(686, "%s", "mReadSample > mLoopEnd");
struct_80451261 = true;
}
f32 fvar1 = field_0x0c4;
@@ -427,8 +432,8 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
field_0x128 = 0;
field_0x12c |= 8;
}
i_dspChannel->field_0x074 -= block_samples * mBufCount
- (field_0x0bc * block_samples + mLoopEnd % block_samples);
int sp20 = field_0x0bc * block_samples + mLoopEnd % block_samples;
i_dspChannel->field_0x074 -= block_samples * mBufCount - sp20;
field_0x11c = i_dspChannel->field_0x074;
field_0x12c |= 1;
field_0x0bc += (mLoopEnd - 1) / block_samples - mLoopStart / block_samples + 1;
@@ -438,12 +443,13 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
if (uvar4 != 0) {
uvar4--;
}
uvar5 = uvar4 / sBlockSize;
getBlockSamples();
if (uvar5 != field_0x0b0) {
bool cmp = uvar5 < field_0x0b0;
while (uvar5 != field_0x0b0) {
u32 sp18 = uvar4 / sBlockSize;
u32 sp14 = (mLoopEnd - 1) / getBlockSamples();
if (sp18 != field_0x0b0) {
bool cmp = sp18 < field_0x0b0;
while (sp18 != field_0x0b0) {
if (!sLoadThread->sendCmdMsg(loadToAramTask, this)) {
JUT_WARN(741, "sendCmdMsg Failed %d %d (%d %d)", i_dspChannel->field_0x070, i_channel->field_0x104, sp18, field_0x0b0);
struct_80451261 = true;
break;
}
@@ -491,6 +497,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
}
field_0x0b4 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
if (field_0x118 >= field_0x160 - 2) {
JUT_WARN_DEVICE(810, 1, "%s", "buffer under error");
field_0x0ae |= 4;
}
} else {
@@ -507,14 +514,15 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
i_dspChannel->field_0x102 = field_0x128;
}
}
int i = 0;
for (; i < 6; i++) {
if (i_channel == mChannels[i]) {
int ch = 0;
for (; ch < 6; ch++) {
if (i_channel == mChannels[ch]) {
break;
}
}
i_dspChannel->field_0x104 = field_0x130[i];
i_dspChannel->field_0x106 = field_0x13c[i];
JUT_ASSERT(834, ch < CHANNEL_MAX);
i_dspChannel->field_0x104 = (s16)field_0x130[ch];
i_dspChannel->field_0x106 = (s16)field_0x13c[ch];
}
break;
case JASChannel::CB_STOP:
@@ -529,16 +537,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
if (!open_channel) {
field_0x114 = 1;
if (!sLoadThread->sendCmdMsg(finishTask, this)) {
JUT_WARN(854, "%s", "sendCmdMsg finishTask Failed");
struct_80451261 = true;
return;
}
}
break;
}
i_channel->mPauseFlag = field_0x0ae != 0;
i_channel->setPauseFlag(field_0x0ae != 0);
}
// NONMATCHING instruction ordering / regalloc
s32 JASAramStream::channelProc() {
OSMessage msg;
while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) {
@@ -562,7 +570,7 @@ s32 JASAramStream::channelProc() {
channelStart();
break;
case 1:
channelStop((u32)msg >> 0x10);
channelStop(JSUHiHalf((u32)msg));
break;
case 2:
field_0x0ae |= 1;
+3
View File
@@ -6,8 +6,11 @@
#include "JSystem/JAudio2/JAUAudioMgr.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JAUStreamAramMgr.h"
// Here to generate JASHeap::__defctor (ctor generated by default arguments)
void dummyDefCtor() {
JASHeap dummy[20];
JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(NULL, 0) JAUStreamStaticAramMgr_<1>();
streamStaticAramMgr->reserveAram(NULL, 0, 0x14);
}
+6 -3
View File
@@ -75,7 +75,8 @@ bool JKRDvdArchive::open(s32 entryNum) {
JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, &mCompression, NULL);
DCInvalidateRange(arcHeader, sizeof(SArcHeader));
int alignment = mMountDirection == MOUNT_DIRECTION_HEAD ? 0x20 : -0x20;
int alignment;
alignment = mMountDirection == MOUNT_DIRECTION_HEAD ? 0x20 : -0x20;
mArcInfoBlock = (SArcDataInfo*)JKRAllocFromHeap(mHeap, arcHeader->file_data_offset, alignment);
if (!mArcInfoBlock) {
@@ -93,8 +94,10 @@ bool JKRDvdArchive::open(s32 entryNum) {
mStringTable = (char*)((int)&mArcInfoBlock->num_nodes + mArcInfoBlock->string_table_offset);
mExpandedSize = NULL;
u8 useCompression = 0;
SDIFileEntry* fileEntry = mFiles;
u8 useCompression;
useCompression = 0;
SDIFileEntry* fileEntry;
fileEntry = mFiles;
for (u32 i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
if (fileEntry->isUnknownFlag1()) {
useCompression |= fileEntry->getCompressFlag();
+4 -1
View File
@@ -195,15 +195,18 @@ u32 JKRMemArchive::fetchResource_subroutine(u8* src, u32 srcLength, u8* dst, u32
return srcLength;
case COMPRESSION_YAY0:
case COMPRESSION_YAZ0:
case COMPRESSION_YAZ0: {
u32 expendedSize = JKRDecompExpandSize(src);
#if VERSION != VERSION_SHIELD_DEBUG
srcLength = expendedSize;
#endif
if (expendedSize > dstLength) {
srcLength = dstLength;
}
JKRDecompress(src, dst, srcLength, 0);
return srcLength;
}
default: {
JUTException::panic(__FILE__, 723, "??? bad sequence\n");
+3 -3
View File
@@ -70,10 +70,10 @@ struct TAsinAcosTable {
namespace JMath {
TSinCosTable<13, f32> sincosTable_;
TSinCosTable<13, f32> sincosTable_ ATTRIBUTE_ALIGN(32);
TAtanTable atanTable_;
TAtanTable atanTable_ ATTRIBUTE_ALIGN(32);
TAsinAcosTable asinAcosTable_;
TAsinAcosTable asinAcosTable_ ATTRIBUTE_ALIGN(32);
} // namespace JMath
-1
View File
@@ -1,7 +1,6 @@
#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JStage/JSGCamera.h"
#include "math.h"
#include "limits.h"
JStage::TCamera::~TCamera() {}
+2 -2
View File
@@ -1,7 +1,7 @@
#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JStage/JSGFog.h"
#include "math.h"
#include "limits.h"
JStage::TFog::~TFog() {}
@@ -22,7 +22,7 @@ f32 JStage::TFog::JSGGetStartZ() const {
void JStage::TFog::JSGSetStartZ(f32) {}
f32 JStage::TFog::JSGGetEndZ() const {
return FLT_MAX;
return std::numeric_limits<f32>::max();
}
void JStage::TFog::JSGSetEndZ(f32) {}
+19 -13
View File
@@ -16,31 +16,37 @@ int JStudio::ctb::TObject_TxyzRy::getScheme() const {
JStudio::ctb::TControl::TControl() : pFactory_(NULL) {}
JStudio::ctb::TControl::~TControl() {}
void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* param_0) {
mList.Push_back(param_0);
JStudio::ctb::TControl::~TControl() {
JGADGET_ASSERTWARN(94, ocObject_.empty());
}
void JStudio::ctb::TControl::removeObject(JStudio::ctb::TObject* param_0) {
mList.Erase(param_0);
void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* p) {
JUT_ASSERT(106, p!=NULL)
ocObject_.Push_back(p);
}
void JStudio::ctb::TControl::removeObject(JStudio::ctb::TObject* p) {
JUT_ASSERT(113, p!=NULL)
ocObject_.Erase(p);
}
void JStudio::ctb::TControl::destroyObject(JStudio::ctb::TObject* param_0) {
removeObject(param_0);
getFactory()->destroy(param_0);
TFactory *pFactory = getFactory();
JUT_ASSERT(129, pFactory!=NULL);
pFactory->destroy(param_0);
}
void JStudio::ctb::TControl::destroyObject_all() {
while (!mList.empty()) {
destroyObject(&mList.back());
while (!ocObject_.empty()) {
destroyObject(&ocObject_.back());
}
}
// NONMATCHING - TPRObject_ID_equal issues
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u32 param_1) {
JGadget::TLinkList<TObject, -12>::iterator begin = mList.begin();
JGadget::TLinkList<TObject, -12>::iterator end = mList.end();
JGadget::TLinkList<TObject, -12>::iterator begin = ocObject_.begin();
JGadget::TLinkList<TObject, -12>::iterator end = ocObject_.end();
JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1));
if ((local_50 != end) != false) {
return &*local_50;
@@ -49,10 +55,10 @@ JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u3
}
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) {
if (param_0 >= mList.size()) {
if (param_0 >= ocObject_.size()) {
return 0;
}
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = mList.begin();
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = ocObject_.begin();
std::advance_fake(aiStack_14, param_0);
return &*aiStack_14;
}
@@ -185,7 +185,7 @@ void TFunctionValueAttribute_range::range_set(f64 begin, f64 end) {
fEnd_ = end;
fDifference_ = end - begin;
JUT_ASSERT(458, fDifference_ >= TValue(0));
JUT_ASSERT(458, fDifference_>=TValue(0));
}
// /* 80281A08-80281D18 27C348 0310+00 2/2 0/0 0/0 .text
@@ -2,15 +2,17 @@
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
void JStudio::fvb::data::TParse_TParagraph::getData(TParse_TParagraph::TData* data) const
void JStudio::fvb::data::TParse_TParagraph::getData(TParse_TParagraph::TData* pData) const
{
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
u32 t = (u32)data->u32Size;
JUT_ASSERT(24, pData!=NULL);
const void *ptr = getRaw();
ptr = JGadget::binary::parseVariableUInt_16_32_following(ptr, (u32*)pData, (u32*)&pData->u32Type, NULL);
u32 t = (u32)pData->u32Size;
if (!t) {
data->pContent = NULL;
data->next = parse;
pData->pContent = NULL;
pData->next = (const u16*)ptr;
} else {
data->pContent = parse;
data->next = parse + ((t + 3) >> 1 & ~1);
pData->pContent = (const u16*)ptr;
pData->next = (u8*)ptr + JGadget::binary::align_roundUp(t, 4);
}
}
@@ -48,7 +48,7 @@ int JStudio::TControl::transformOnGet_setOrigin_TxyzRy(Vec const& param_0, f32 p
int JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& param_0) {
switch (param_0.getScheme()) {
case 1:
case 1: {
const f32* pfVar4 = (const f32*)param_0.getData();
Vec local_144 = {0.0f, 0.0f, 0.0f};
local_144.x = pfVar4[0];
@@ -56,6 +56,7 @@ int JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& para
local_144.z = pfVar4[2];
transform_setOrigin_TxyzRy(local_144, pfVar4[3]);
break;
}
default:
return 0;
}
@@ -73,12 +73,16 @@ void JStudio::TVariableValue::update_immediate_(JStudio::TVariableValue* param_0
}
void JStudio::TVariableValue::update_time_(JStudio::TVariableValue* param_0, f64 param_1) {
param_0->mValue = param_0->field_0xc.val * (param_0->field_0x4 * param_1);
f64 v = param_0->field_0xc.val * (param_0->field_0x4 * param_1);
param_0->mValue = v;
}
void JStudio::TVariableValue::update_functionValue_(JStudio::TVariableValue* param_0,
f64 param_1) {
param_0->mValue = param_0->field_0xc.fv->getValue(param_0->field_0x4 * param_1);
TFunctionValue *fv = param_0->field_0xc.fv;
f64 v = fv->getValue(param_0->field_0x4 * param_1);
param_0->mValue = v;
}
JStudio::TVariableValue::TOutput_none_::~TOutput_none_() {}
+17 -15
View File
@@ -9,39 +9,41 @@ namespace stb {
namespace data {
void TParse_TSequence::getData(TData* pData) const {
ASSERT(pData != NULL);
JUT_ASSERT(50, pData!=NULL);
pData->content = NULL;
pData->next = NULL;
u32 head = get_head();
u8 type = head >> 24;
u32 param = head & 0xffffff;
pData->type = type;
pData->type = type & 0xff;
pData->param = param;
if (type != 0) {
const void* next = (const void*)((int)getRaw() + 4);
if (type <= 0x7f) {
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + param);
}
if (type == 0)
return;
const void* next = (const void*)((int)getRaw() + 4);
if (type <= 0x7f) {
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + param);
}
}
void TParse_TParagraph::getData(TData* pData) const {
ASSERT(pData != NULL);
JUT_ASSERT(80, pData!=NULL);
const void* data = getRaw();
u32 result;
const void* next = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
data = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
pData->param = result;
if (result == 0) {
pData->content = NULL;
pData->next = next;
pData->next = data;
} else {
pData->content = next;
pData->next = (const void*)((int)next + align_roundUp(result, 4));
pData->content = data;
pData->next = (const void*)((int)data + align_roundUp(result, 4));
}
}
@@ -109,11 +109,11 @@ void JStudio_JAudio2::TAdaptor_sound::adaptor_do_update(u32 param_1) {
JUT_ASSERT(196, pControl!=NULL);
JStudio::TControl::TTransform_position VStack_148;
JStudio::TControl::TTransform_position VStack_154;
JStudio::TControl::TTransform_position* pVVar2;
const JStudio::TControl::TTransform_position* pVVar2;
adaptor_getVariableValue_Vec(&VStack_148,
JStudio::TAdaptor_sound::sauVariableValue_3_POSITION_XYZ);
if (field_0x144 == 0) {
pVVar2 = pControl->transformOnSet_transform_ifEnabled(&VStack_148, &VStack_154);
pVVar2 = pControl->transformOnSet_transform_ifEnabled(VStack_148, &VStack_154);
} else {
if (!JStudio_JStage::transform_toGlobalFromLocal(&VStack_154, VStack_148, field_0x13c, field_0x140)) {
return;
@@ -281,10 +281,10 @@ JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::execute(JPABaseEmit
&VStack_19c.scaling,
sauVariableValue_3_SCALING_XYZ);
if (pThis_->field_0x1d8 == 0) {
JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c;
const JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c;
switch(pThis_->field_0x1cc) {
case 0:
pVVar9 = pControl->transformOnSet_transform_ifEnabled(&VStack_19c, &aTStack_1c0);
pVVar9 = pControl->transformOnSet_transform_ifEnabled(VStack_19c, &aTStack_1c0);
break;
case 1:
break;
@@ -4,7 +4,7 @@
JStudio_JStage::TAdaptor_actor::TAdaptor_actor(JStage::TSystem const* param_1,
JStage::TActor* param_2) :
TAdaptor_object_(param_1,param_2) {
TAdaptor_object_(this, param_1,param_2) {
field_0x130 = 0;
field_0x134 = 0;
field_0x138 = 0;
@@ -265,9 +265,9 @@ void JStudio_JStage::TAdaptor_actor::setJSG_SRT_(JStudio::TControl const* pContr
adaptor_getVariableValue_Vec(&transform.translation, sauVariableValue_3_TRANSLATION_XYZ);
adaptor_getVariableValue_Vec(&transform.rotation, sauVariableValue_3_ROTATION_XYZ);
adaptor_getVariableValue_Vec(&transform.scaling, sauVariableValue_3_SCALING_XYZ);
JStudio::TControl::TTransform_translation_rotation_scaling* pTransform;
const JStudio::TControl::TTransform_translation_rotation_scaling* pTransform;
if (field_0x144 == 0) {
pTransform = pControl->transformOnSet_transform_ifEnabled(&transform, &multipliedTransform);
pTransform = pControl->transformOnSet_transform_ifEnabled(transform, &multipliedTransform);
} else {
pTransform = &transform;
switch (field_0x138) {
@@ -8,7 +8,7 @@
JStudio_JStage::TAdaptor_ambientLight::TAdaptor_ambientLight(JStage::TSystem const* param_1,
JStage::TAmbientLight* param_2)
: TAdaptor_object_(param_1, param_2) {}
: TAdaptor_object_(this, param_1, param_2) {}
JStudio_JStage::TAdaptor_ambientLight::~TAdaptor_ambientLight() {
adaptor_do_end();
@@ -19,7 +19,8 @@ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_prepare() {
void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_begin() {
adaptor_object_begin_();
GXColor color = get_pJSG_()->JSGGetColor();
JStage::TAmbientLight* light = get_pJSG_();
GXColor color = light->JSGGetColor();
adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, color);
}
@@ -8,7 +8,7 @@
JStudio_JStage::TAdaptor_camera::TAdaptor_camera(JStage::TSystem const* param_1,
JStage::TCamera* param_2)
: TAdaptor_object_(param_1, param_2) {
: TAdaptor_object_(this, param_1, param_2) {
field_0x108 = 0;
field_0x10c = 0;
field_0x110 = -1;
@@ -117,9 +117,9 @@ JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOpera
case JStudio::data::UNK_0x2:
JUT_ASSERT(185, uSize==4);
JUT_ASSERT(186, pContent!=NULL);
field_0x114 = *(u32*)pContent ? 1 : 0;
field_0x114 = *(u32*)pContent ? true : false;
switch(field_0x108) {
case 1:
case 1: {
JStage::TObject* parent = 0;
int idx = -1;
if (field_0x114 != 0) {
@@ -128,6 +128,7 @@ JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOpera
}
pJSGObject_->JSGSetParent(parent, idx);
break;
}
case 0:
break;
}
@@ -201,13 +202,13 @@ void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const*
JStudio::TControl::TTransform_position VStack_138;
JStudio::TControl::TTransform_position VStack_144;
adaptor_getVariableValue_Vec(&VStack_138, sauVariableValue_3_POSITION_XYZ);
Vec* pViewPosition;
const Vec* pViewPosition;
if (field_0x114 == 0) {
pViewPosition = param_1->transformOnSet_transform_ifEnabled(&VStack_138, &VStack_144);
pViewPosition = param_1->transformOnSet_transform_ifEnabled(VStack_138, &VStack_144);
} else {
pViewPosition = &VStack_138;
switch (field_0x108) {
case 0:
case 0: {
int iVar1 =
transform_toGlobalFromLocal(&VStack_144, VStack_138, field_0x10c, field_0x110);
if (iVar1 == 0) {
@@ -215,6 +216,7 @@ void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const*
}
pViewPosition = &VStack_144;
break;
}
case 1:
break;
}
@@ -226,12 +228,12 @@ void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const*
Mtx mtx;
JStudio::TControl::TTransform_position transform;
JStudio::TControl::TTransform_position tempTransform;
JStudio::TControl::TTransform_position* outTransform;
const JStudio::TControl::TTransform_position* outTransform;
get_pJSG_()->JSGGetViewPosition(&transform);
if (!field_0x114) {
outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform);
outTransform = param_1->transformOnGet_transform_ifEnabled(transform, &tempTransform);
} else {
outTransform = &transform;
switch (field_0x108) {
@@ -262,11 +264,11 @@ void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const*
void JStudio_JStage::TAdaptor_camera::setJSG_targetPosition_(JStudio::TControl const* param_1) {
JStudio::TControl::TTransform_position transform;
JStudio::TControl::TTransform_position tempTransform;
JStudio::TControl::TTransform_position* outTransform;
const JStudio::TControl::TTransform_position* outTransform;
adaptor_getVariableValue_Vec(&transform, sauVariableValue_3_TARGET_POSITION_XYZ);
if (field_0x120 == 0) {
outTransform = param_1->transformOnSet_transform_ifEnabled(
&transform, &tempTransform);
transform, &tempTransform);
} else {
if (transform_toGlobalFromLocal(&tempTransform, transform,
field_0x118, field_0x11c) == 0) {
@@ -281,12 +283,12 @@ void JStudio_JStage::TAdaptor_camera::getJSG_targetPosition_(JStudio::TControl c
Mtx mtx;
JStudio::TControl::TTransform_position transform;
JStudio::TControl::TTransform_position tempTransform;
JStudio::TControl::TTransform_position* outTransform;
const JStudio::TControl::TTransform_position* outTransform;
get_pJSG_()->JSGGetViewTargetPosition(&transform);
if (!field_0x120) {
outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform);
outTransform = param_1->transformOnGet_transform_ifEnabled(transform, &tempTransform);
} else {
outTransform = &transform;
bool check;
@@ -7,7 +7,7 @@
#include "JSystem/JStudio/JStudio_JStage/object-fog.h"
JStudio_JStage::TAdaptor_fog::TAdaptor_fog(JStage::TSystem const* param_0, JStage::TFog* param_1)
: TAdaptor_object_(param_0, param_1) {}
: TAdaptor_object_(this, param_0, param_1) {}
JStudio_JStage::TAdaptor_fog::~TAdaptor_fog() {
adaptor_do_end();
@@ -4,7 +4,7 @@
JStudio_JStage::TAdaptor_light::TAdaptor_light(JStage::TSystem const* param_1,
JStage::TLight* param_2)
: JStudio_JStage::TAdaptor_object_(param_1, param_2) {
: JStudio_JStage::TAdaptor_object_(this, param_1, param_2) {
field_0x11c = 0;
}
@@ -55,7 +55,7 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_begin() {
JStudio::TControl::TTransform_position_direction aTStack_b8;
pLightObj->JSGGetPosition(&lightObjTransform.position);
pLightObj->JSGGetDirection(&lightObjTransform.direction);
JStudio::TControl::TTransform_position_direction* finalTransform =
const JStudio::TControl::TTransform_position_direction* finalTransform =
pControl->transformOnGet_transform_ifEnabled(lightObjTransform, &aTStack_b8);
adaptor_setVariableValue_Vec(sauVariableValue_3_POSITION_XYZ, finalTransform->position);
f32 dirx = finalTransform->direction.x;
@@ -106,8 +106,8 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_update(u32 param_1) {
adaptor_getVariableValue_Vec(&VStack_1c0, sauVariableValue_3_TARGET_POSITION_XYZ);
VECSubtract(&VStack_1c0, &VStack_198.position, &VStack_198.direction);
}
JStudio::TControl::TTransform_position_direction* pTrans =
pControl->transformOnSet_transform_ifEnabled(&VStack_198, &aTStack_1b0);
const JStudio::TControl::TTransform_position_direction* pTrans =
pControl->transformOnSet_transform_ifEnabled(VStack_198, &aTStack_1b0);
lightObj->JSGSetPosition(pTrans->position);
lightObj->JSGSetDirection(pTrans->direction);
pJSGObject_->JSGUpdate();
@@ -152,5 +152,7 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_ENABLE(JStudio::data::TEOperatio
void JStudio_JStage::TAdaptor_light::TVVOutput_direction_::operator()(
f32 param_0, JStudio::TAdaptor* param_1) const {
((JStudio_JStage::TAdaptor_light*)param_1)->field_0x11c = field_0x8;
JStudio_JStage::TAdaptor_light* p = (JStudio_JStage::TAdaptor_light*)param_1;
JUT_ASSERT(246, p!=NULL);
p->field_0x11c = field_0x8;
}
+3 -3
View File
@@ -277,9 +277,9 @@ void JUTCacheFont::setBlock() {
break;
case 'GLY1':
memcpy(piVar5, pData, 0x20);
JKRAramBlock* iVar1 =
JKRMainRamToAram((u8*)pData + 0x20, aramAddress, pData[1] - 0x20,
EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL);
JKRAramBlock* iVar1;
iVar1 = JKRMainRamToAram((u8*)pData + 0x20, aramAddress, pData[1] - 0x20,
EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL);
if (iVar1 == NULL) {
JUTException::panic("JUTCacheFont.cpp", 0x1dd,
"trouble occurred in JKRMainRamToAram.");
+5 -4
View File
@@ -126,14 +126,15 @@ void JUTResFont::setBlock() {
mMaxCode = -1;
BlockHeader* data = (BlockHeader*)mResFont->data;
for (u32 i = 0; i < mResFont->numBlocks; i++, data = (BlockHeader*)data->getNext()) {
for (u32 i = 0; i < mResFont->numBlocks; data = (BlockHeader*)data->getNext(), i++) {
switch (data->magic) {
case 'INF1':
mInf1Ptr = (ResFONT::INF1*)data;
case 'INF1': {
mInf1Ptr = (ResFONT::INF1*)data;
u32 u = mInf1Ptr->fontType;
JUT_ASSERT(244, u < suAboutEncoding_);
mIsLeadByte = &saoAboutEncoding_[u];
break;
break;
}
case 'WID1':
mpWidthBlocks[widthNum] = (ResFONT::WID1*)data;
@@ -73,6 +73,7 @@ ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, const T
return first;
}
// should be inline, but breaks JStudio/JStudio/ctb weak function order
template<class InputIt, class UnaryPredicate>
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p) {
while (first != last && !p(*first)) {
@@ -28,10 +28,20 @@ template<> class __bitset_base<1> {
public:
__bitset_base() { data = 0; }
bool test(size_t pos) const { return data & (1 << pos); }
bool test(size_t pos) const {
u32 r31 = 1UL << pos;
return data & r31;
}
bool any() const { return data != 0; }
void set(size_t pos, bool val) { data |= (1 << pos); }
void reset(size_t pos) { data &= ~(1 << pos); }
void set(size_t pos, bool val) {
u32 r31 = 1UL << pos;
if (val) {
data |= r31;
} else {
data &= ~r31;
}
}
void reset(size_t pos) { data &= ~(1UL << pos); }
private:
size_t data;
};
+9 -8
View File
@@ -39,19 +39,20 @@ static f32 dummy(f32 x) {
bool cM3d_Len2dSqPntAndSegLine(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 p5, f32 p6,
f32* param_7, f32* param_8, f32* param_9) {
bool retVal = false;
f32 param_5 = p5 - param_3;
f32 param_6 = p6 - param_4;
f32 len = param_5 * param_5 + param_6 * param_6;
f32 f31 = p5 - param_3;
f32 f30 = p6 - param_4;
f32 len = f31 * f31 + f30 * f30;
f32 f29;
if (cM3d_IsZero(len)) {
*param_9 = 0.0f;
return retVal;
return false;
} else {
len = (param_5 * (param_1 - param_3) + param_6 * (param_2 - param_4)) / len;
if (len >= 0.0f && len <= 1.0f) {
f29 = (f31 * (param_1 - param_3) + f30 * (param_2 - param_4)) / len;
if (f29 >= 0.0f && f29 <= 1.0f) {
retVal = true;
}
*param_7 = param_3 + param_5 * len;
*param_8 = param_4 + param_6 * len;
*param_7 = param_3 + f31 * f29;
*param_8 = param_4 + f30 * f29;
*param_9 = cM3d_Len2dSq(*param_7, *param_8, param_1, param_2);
return retVal;
}
+7 -1
View File
@@ -24,7 +24,6 @@ Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
field_0x519 = false;
}
// NONMATCHING JASPoolAllocObject<_> locations
void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive* seqArc) {
JAU_JASInitializer JASInitializer;
JASInitializer.audioMemSize_ = memSize;
@@ -62,6 +61,10 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive
categoryArrangement.mItems[8].mMaxInactiveSe = 5;
categoryArrangement.mItems[9].mMaxActiveSe = 8;
categoryArrangement.mItems[9].mMaxInactiveSe = 4;
#if PLATFORM_WII || PLATFORM_SHIELD
categoryArrangement.mItems[10].mMaxInactiveSe = 4;
categoryArrangement.mItems[11].mMaxInactiveSe = 2;
#endif
seMgr->setCategoryArrangement(categoryArrangement);
seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 0);
@@ -74,6 +77,9 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive
seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0);
seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0);
seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 0);
#if PLATFORM_WII || PLATFORM_SHIELD
seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0);
#endif
seMgr->getParams()->moveVolume(1.0f, 0);
+503 -471
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1601,7 +1601,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
// Reset
ctx->genButton("リセット", 0x4000003, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
// Shield
ctx->genNode("", &mGuardAttack1, 0, 0);
ctx->genNode("", &mAtPush, 0, 0);
// Sidestep
ctx->genNode("回り込み", &mTurnMove, 0, 0);
// Crouch guard anm speed
@@ -1657,7 +1657,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
}
daAlinkHIO_guard_c::daAlinkHIO_guard_c()
: mGuardAttack1(0, 17.0f), mGuardAttack2(1, 21.0f), mTurnMove() {
: mAtPush(0, 17.0f), mAtKick(1, 21.0f), mTurnMove() {
static const char plabel[] = "const daAlinkHIO_guard_c1 daAlinkHIO_guard_c0::m = {\n";
m_len = 128;
mp_src_data = (void*)&daAlinkHIO_guard_c0::m;
@@ -2388,9 +2388,9 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
// Normal
ctx->genNode("通常", &mDamNormal, 0, 0);
// Large
ctx->genNode("", &mDamLaHu0, 0, 0);
ctx->genNode("", &mDamLarge, 0, 0);
// Heavy large
ctx->genNode("強大", &mDamLaHu1, 0, 0);
ctx->genNode("強大", &mDamHuge, 0, 0);
// On horse
ctx->genNode("馬上", &mDamHorse, 0, 0);
// Fall
@@ -2454,7 +2454,7 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
}
daAlinkHIO_damage_c::daAlinkHIO_damage_c()
: mDamNormal(), mDamLaHu0(0), mDamLaHu1(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
: mDamNormal(), mDamLarge(0), mDamHuge(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
static const char plabel[] = "const daAlinkHIO_damage_c1 daAlinkHIO_damage_c0::m = {\n";
m_len = 88;
mp_src_data = (void*)&daAlinkHIO_damage_c0::m;
@@ -4740,8 +4740,8 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
ctx->genNode("通常", &mNormal, 0, 0);
// Large
ctx->genNode("", &mLarge, 0, 0);
// Strong large
ctx->genNode("強大", &mStrongLarge, 0, 0);
// Huge
ctx->genNode("強大", &mHuge, 0, 0);
// Fall
ctx->genNode("落下", &mFall, 0, 0);
// Capture
@@ -4756,7 +4756,7 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
}
daAlinkHIO_wlDamage_c::daAlinkHIO_wlDamage_c()
: mNormal(), mLarge(0), mStrongLarge(1), mFall(), mCapture() {
: mNormal(), mLarge(0), mHuge(1), mFall(), mCapture() {
static const char plabel[] = "const daAlinkHIO_wlDamage_c1 daAlinkHIO_wlDamage_c0::m = {\n";
m_len = 44;
mp_src_data = (void*)&daAlinkHIO_wlDamage_c0::m;
+13 -13
View File
@@ -6,53 +6,53 @@
#include "d/actor/d_a_alink.h"
s16 daAlink_c::getBombExplodeTime() const {
return daAlinkHIO_bomb_c0::m.mExplodeTime;
return mpHIO->mItem.mBomb.m.mExplodeTime;
}
f32 daAlink_c::getBombGravity() const {
return daAlinkHIO_bomb_c0::m.mGravity;
return mpHIO->mItem.mBomb.m.mGravity;
}
f32 daAlink_c::getBombMaxFallSpeed() const {
return daAlinkHIO_bomb_c0::m.mMaxFallSpeed;
return mpHIO->mItem.mBomb.m.mMaxFallSpeed;
}
f32 daAlink_c::getBombBoundRate() const {
return daAlinkHIO_bomb_c0::m.mBoundRate;
return mpHIO->mItem.mBomb.m.mBoundRate;
}
f32 daAlink_c::getBombStopSpeedY() const {
return daAlinkHIO_bomb_c0::m.mStopSpeedY;
return mpHIO->mItem.mBomb.m.mStopSpeedY;
}
f32 daAlink_c::getBombMaxSpeedY() const {
return daAlinkHIO_bomb_c0::m.mMaxSpeedY;
return mpHIO->mItem.mBomb.m.mMaxSpeedY;
}
f32 daAlink_c::getBombEffScale() const {
return daAlinkHIO_bomb_c0::m.mEffScale;
return mpHIO->mItem.mBomb.m.mEffScale;
}
f32 daAlink_c::getBombAtR() const {
return daAlinkHIO_bomb_c0::m.mAttackRadius;
return mpHIO->mItem.mBomb.m.mAttackRadius;
}
s16 daAlink_c::getEnemyBombColorR() const {
return daAlinkHIO_bomb_c0::m.mEnemyBombColorR;
return mpHIO->mItem.mBomb.m.mEnemyBombColorR;
}
f32 daAlink_c::getBombWaterGravity() const {
return daAlinkHIO_bomb_c0::m.mWaterGravity;
return mpHIO->mItem.mBomb.m.mWaterGravity;
}
f32 daAlink_c::getBombWaterMaxFallSpeed() const {
return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed;
return mpHIO->mItem.mBomb.m.mWaterMaxFallSpeed;
}
f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit;
return mpHIO->mItem.mBomb.m.mExplodeWaterEffectLimit;
}
s16 daAlink_c::getBombInsectLimitAngle() const {
return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle;
return mpHIO->mItem.mBomb.m.mBombInsectLimitAngle;
}
+23 -23
View File
@@ -13,9 +13,9 @@ BOOL daAlink_c::checkBoomerangLockAccept() {
f32 daAlink_c::getBoomSpeed() {
f32 speed;
if (checkBoomerangChargeEndWait()) {
speed = daAlinkHIO_boom_c0::m.mChargeFlySpeed;
speed = mpHIO->mItem.mBoomerang.m.mChargeFlySpeed;
} else {
speed = daAlinkHIO_boom_c0::m.mFlySpeed;
speed = mpHIO->mItem.mBoomerang.m.mFlySpeed;
}
if (checkModeFlg(0x400)) {
@@ -29,14 +29,14 @@ f32 daAlink_c::getBoomSpeed() {
}
f32 daAlink_c::getBoomCatchSpeed() const {
return daAlinkHIO_boom_c0::m.mCatchSpeed;
return mpHIO->mItem.mBoomerang.m.mCatchSpeed;
}
f32 daAlink_c::getBoomFlyMax() const {
if (checkModeFlg(0x400) && !checkCanoeRide()) {
return daAlinkHIO_boom_c0::m.mHorsebackFlyDistMax;
return mpHIO->mItem.mBoomerang.m.mHorsebackFlyDistMax;
} else {
return daAlinkHIO_boom_c0::m.mFlyDistMax;
return mpHIO->mItem.mBoomerang.m.mFlyDistMax;
}
}
@@ -45,15 +45,15 @@ f32 daAlink_c::getBoomLockMax() {
if (checkBossBabaRoom()) {
return 2600.0f;
} else if (daAlinkHIO_boom_c0::m.mLockDistMax > fly_max) {
return daAlinkHIO_boom_c0::m.mLockDistMax;
} else if (mpHIO->mItem.mBoomerang.m.mLockDistMax > fly_max) {
return mpHIO->mItem.mBoomerang.m.mLockDistMax;
} else {
return fly_max;
}
}
s16 daAlink_c::getBoomBgThroughTime() const {
return daAlinkHIO_boom_c0::m.mBgThroughTime;
return mpHIO->mItem.mBoomerang.m.mBgThroughTime;
}
bool daAlink_c::checkBossBabaRoom() {
@@ -69,7 +69,7 @@ void daAlink_c::cancelBoomerangLock(fopAc_ac_c* i_actor) {
}
fopAc_ac_c* daAlink_c::getBoomerangActor() {
if (mThrowBoomerangAcKeep.getID() != 0xFFFFFFFF) {
if (mThrowBoomerangAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) {
return mThrowBoomerangAcKeep.getActor();
}
@@ -103,7 +103,7 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) {
setGrabItemActor(i_grabActor);
field_0x33e4 = 38.0f;
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
return 1;
}
@@ -118,7 +118,7 @@ void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) {
mUpperFrameCtrl[2].setFrame(tmp);
getNowAnmPackUpper(UPPER_2)->setFrame(tmp);
} else {
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
}
}
}
@@ -137,13 +137,13 @@ void daAlink_c::setBoomerangReadyQuake() {
dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, 1.0f, tmp_0));
onNoResetFlg3(FLG3_UNK_4);
mItemVar0.field_0x3018 = daAlinkHIO_boom_c0::m.mChargeTime;
mItemVar0.field_0x3018 = mpHIO->mItem.mBoomerang.m.mChargeTime;
}
void daAlink_c::setBoomerangReadyAnime() {
f32 var_f31;
if (checkAttentionLock()) {
var_f31 = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
var_f31 = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
} else {
var_f31 = 0.0f;
}
@@ -153,12 +153,12 @@ void daAlink_c::setBoomerangReadyAnime() {
}
void daAlink_c::setThrowBoomerangAnime() {
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
cancelItemUseQuake(0);
}
void daAlink_c::setBoomerangCatchAnime() {
setUpperAnimeParam(0x52, UPPER_2, &daAlinkHIO_boom_c0::m.mCatchAnm);
setUpperAnimeParam(0x52, UPPER_2, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
setFacePriBck(0xE8);
field_0x2f97 = 254;
@@ -190,8 +190,8 @@ void daAlink_c::throwBoomerang() {
mFastShotTime = -1;
daPy_boomerangMove_c::offEventKeepFlg();
} else {
item->speedF = daAlinkHIO_pickUp_c0::m.field_0x28;
item->speed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
item->speedF = mpHIO->mItem.mPickUp.m.field_0x28;
item->speed.y = mpHIO->mItem.mPickUp.m.field_0x2C;
item->current.angle.y = shape_angle.y;
fopAcM_cancelCarryNow(item);
@@ -283,7 +283,7 @@ void daAlink_c::checkUpperItemActionBoomerangFly() {
int daAlink_c::checkNextActionBoomerang() {
if ((checkBoomerangCatchAnime() &&
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
checkNoResetFlg1(FLG1_UNK_2)) {
return 0;
}
@@ -363,7 +363,7 @@ int daAlink_c::procBoomerangSubjectInit() {
mNormalSpeed = 0.0f;
initBoomerangUpperAnimeSpeed(1);
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
daAlinkHIO_boom_c0::m.mStartInterpolation);
mpHIO->mItem.mBoomerang.m.mStartInterpolation);
dComIfGp_setPlayerStatus0(0, 0x80000);
current.angle.y = shape_angle.y;
@@ -402,7 +402,7 @@ int daAlink_c::procBoomerangMoveInit() {
}
initBoomerangUpperAnimeSpeed(0);
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
dComIfGp_setPlayerStatus0(0, 0x80000);
return 1;
@@ -421,7 +421,7 @@ int daAlink_c::procBoomerangMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
}
} else {
offModeFlg(1);
@@ -444,7 +444,7 @@ int daAlink_c::procBoomerangCatchInit() {
return 0;
}
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
setBoomerangCatchAnime();
offNoResetFlg0(FLG0_UNK_20);
@@ -455,7 +455,7 @@ int daAlink_c::procBoomerangCatch() {
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
onEndResetFlg0(ERFLG0_UNK_8000000);
if (frameCtrl->getFrame() > daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) {
if (frameCtrl->getFrame() > mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) {
onModeFlg(4);
}
+23 -23
View File
@@ -31,12 +31,12 @@ static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1) {
return 1;
}
s32 daAlink_c::getBottleOpenAppearItem() const {
fpc_ProcID daAlink_c::getBottleOpenAppearItem() const {
if (mProcID == PROC_BOTTLE_OPEN) {
return mEquipItem;
}
return -1;
return fpcM_ERROR_PROCESS_ID_e;
}
BOOL daAlink_c::checkOilBottleItemNotGet(u16 i_itemNo) {
@@ -203,11 +203,11 @@ int daAlink_c::commonBottleDrink(int param_0) {
if (mEquipItem == fpcNm_ITEM_MILK_BOTTLE) {
if (param_0) {
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
setFacePriAnime(ANM_BOTTLE_DRINK_END);
} else {
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
}
field_0x072c->setFrame(1.0f);
@@ -253,19 +253,19 @@ int daAlink_c::commonBottleDrink(int param_0) {
if (mItemVar0.mBottleItemHealAmount < 0 || mEquipItem == fpcNm_ITEM_BEE_CHILD) {
if (param_0) {
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_NASTY)->m_upperID,
UPPER_2, &daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
UPPER_2, &mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
setFacePriAnime(ANM_BOTTLE_DRINK_NASTY);
} else {
setSingleAnimeParam(ANM_BOTTLE_DRINK_NASTY,
&daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
&mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
}
} else if (param_0) {
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
setFacePriAnime(ANM_BOTTLE_DRINK_END);
} else {
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
}
field_0x072c->setFrame(2.0f);
@@ -283,7 +283,7 @@ int daAlink_c::commonBottleDrink(int param_0) {
{
if (checkAnmEnd(frameCtrl_p)) {
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_42_e) {
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
} else {
allUnequip(mKeepItem == fpcNm_ITEM_KANTERA);
}
@@ -377,7 +377,7 @@ int daAlink_c::procBottleDrinkInit(u16 i_itemNo) {
mNormalSpeed = 0.0f;
field_0x2f98 = 4;
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
keepItemData();
setBottleModel(i_itemNo);
dComIfGp_setPlayerStatus1(0, 0x2000);
@@ -412,7 +412,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
mNormalSpeed = 0.0f;
field_0x2f98 = 4;
setSingleAnimeParam(ANM_BOTTLE_OPEN, &daAlinkHIO_bottle_c0::m.mOpenBottleAnm);
setSingleAnimeParam(ANM_BOTTLE_OPEN, &mpHIO->mItem.mBottle.m.mOpenBottleAnm);
keepItemData();
setBottleModel(param_0);
dComIfGp_setPlayerStatus1(0, 0x4000);
@@ -470,7 +470,7 @@ int daAlink_c::procBottleOpen() {
if (mEquipItem == fpcNm_ITEM_FAIRY) {
setSingleAnimeBaseMorf(ANM_BOTTLE_FAIRY, -1.0f);
} else {
setSingleAnimeParam(ANM_BOTTLE_POUR, &daAlinkHIO_bottle_c0::m.mPourAnm);
setSingleAnimeParam(ANM_BOTTLE_POUR, &mpHIO->mItem.mBottle.m.mPourAnm);
if (mEquipItem == fpcNm_ITEM_WATER_BOTTLE) {
if (mWaterY > mLeftHandPos.y) {
@@ -580,7 +580,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
if (temp_r30 == PROC_OBJ_OILTUBO || temp_r30 == PROC_TAG_SSDRINK ||
temp_r30 == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA)
{
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &daAlinkHIO_bottle_c0::m.mScoopAnm);
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &mpHIO->mItem.mBottle.m.mScoopAnm);
if (mEquipItem == fpcNm_ITEM_KANTERA) {
onNoResetFlg2(FLG2_UNK_10000000);
@@ -591,7 +591,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
}
}
field_0x3478 = daAlinkHIO_bottle_c0::m.mScoopAnm.mCancelFrame;
field_0x3478 = mpHIO->mItem.mBottle.m.mScoopAnm.mCancelFrame;
field_0x347c = 14.0f;
if (var_r31 != NULL) {
@@ -606,12 +606,12 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
onModeFlg(0x2000);
}
} else if (temp_r3) {
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingDownAnm.mCancelFrame;
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingDownAnm.mCancelFrame;
field_0x347c = 8.0f;
} else {
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingSideAnm.mCancelFrame;
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingSideAnm.mCancelFrame;
field_0x347c = 4.0f;
}
@@ -709,9 +709,9 @@ int daAlink_c::procBottleGetInit(int param_0) {
int var_r30;
if (mEquipItem == fpcNm_ITEM_KANTERA) {
setSingleAnime(ANM_BOTTLE_GET, daAlinkHIO_bottle_c0::m.mGetAnm.mSpeed, 40.0f,
daAlinkHIO_bottle_c0::m.mGetAnm.mEndFrame,
daAlinkHIO_bottle_c0::m.mGetAnm.mInterpolation);
setSingleAnime(ANM_BOTTLE_GET, mpHIO->mItem.mBottle.m.mGetAnm.mSpeed, 40.0f,
mpHIO->mItem.mBottle.m.mGetAnm.mEndFrame,
mpHIO->mItem.mBottle.m.mGetAnm.mInterpolation);
field_0x2f93 = 0xFE;
if (proc_pickup) {
@@ -730,12 +730,12 @@ int daAlink_c::procBottleGetInit(int param_0) {
setGetSubBgm(var_r30);
} else {
setSingleAnimeParam(ANM_BOTTLE_GET, &daAlinkHIO_bottle_c0::m.mGetAnm);
setSingleAnimeParam(ANM_BOTTLE_GET, &mpHIO->mItem.mBottle.m.mGetAnm);
var_r30 = mEquipItem;
}
dComIfGp_setPlayerStatus1(0, 0x4001000);
mMsgClassID = -1;
mMsgClassID = fpcM_ERROR_PROCESS_ID_e;
field_0x3194 = 0;
field_0x32cc = var_r30 + 0x65;
+29 -29
View File
@@ -10,42 +10,42 @@
void daAlink_c::getArrowFlyData(f32* o_distance, f32* o_speed, int i_forceCharge) const {
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
*o_distance = daAlinkHIO_bow_c0::m.mSlingshotDistance;
*o_speed = daAlinkHIO_bow_c0::m.mSlingshotSpeed;
*o_distance = mpHIO->mItem.mBow.m.mSlingshotDistance;
*o_speed = mpHIO->mItem.mBow.m.mSlingshotSpeed;
} else if (dComIfGp_checkPlayerStatus0(0, 0x200000)) {
*o_distance = daAlinkHIO_bow_c0::m.mScopeArrowDistance;
*o_speed = daAlinkHIO_bow_c0::m.mScopeArrowSpeed;
*o_distance = mpHIO->mItem.mBow.m.mScopeArrowDistance;
*o_speed = mpHIO->mItem.mBow.m.mScopeArrowSpeed;
} else if (field_0x301c == 0 || i_forceCharge) {
if (field_0x301e == 1) {
*o_distance = daAlinkHIO_bow_c0::m.mChargeBombArrowDistance;
*o_speed = daAlinkHIO_bow_c0::m.mChargeBombArrowSpeed;
*o_distance = mpHIO->mItem.mBow.m.mChargeBombArrowDistance;
*o_speed = mpHIO->mItem.mBow.m.mChargeBombArrowSpeed;
} else {
*o_distance = daAlinkHIO_bow_c0::m.mChargeArrowDistance;
*o_speed = daAlinkHIO_bow_c0::m.mChargeArrowSpeed;
*o_distance = mpHIO->mItem.mBow.m.mChargeArrowDistance;
*o_speed = mpHIO->mItem.mBow.m.mChargeArrowSpeed;
}
} else if (field_0x301e == 1) {
*o_distance = daAlinkHIO_bow_c0::m.mBombArrowDistance;
*o_speed = daAlinkHIO_bow_c0::m.mBombArrowSpeed;
*o_distance = mpHIO->mItem.mBow.m.mBombArrowDistance;
*o_speed = mpHIO->mItem.mBow.m.mBombArrowSpeed;
} else {
*o_distance = daAlinkHIO_bow_c0::m.mArrowDistance;
*o_speed = daAlinkHIO_bow_c0::m.mArrowSpeed;
*o_distance = mpHIO->mItem.mBow.m.mArrowDistance;
*o_speed = mpHIO->mItem.mBow.m.mArrowSpeed;
}
}
f32 daAlink_c::getArrowIncAtR() const {
return daAlinkHIO_bow_c0::m.mArrowAttackRadius;
return mpHIO->mItem.mBow.m.mArrowAttackRadius;
}
s16 daAlink_c::getBombArrowFlyExplodeTime() const {
return daAlinkHIO_bow_c0::m.mBombArrowFlyExplodeTime;
return mpHIO->mItem.mBow.m.mBombArrowFlyExplodeTime;
}
f32 daAlink_c::getArrowIncAtMaxStart() const {
return daAlinkHIO_bow_c0::m.mArrowIncAttackMaxStart;
return mpHIO->mItem.mBow.m.mArrowIncAttackMaxStart;
}
f32 daAlink_c::getArrowIncAtMax() const {
return daAlinkHIO_bow_c0::m.mArrowIncAttackMax;
return mpHIO->mItem.mBow.m.mArrowIncAttackMax;
}
BOOL daAlink_c::checkBowAndSlingItem(int i_itemNo) {
@@ -123,7 +123,7 @@ void daAlink_c::deleteArrow() {
if (arrow_p != NULL && fopAcM_GetName(arrow_p) == PROC_ARROW) {
if (arrow_p->checkBombArrow() &&
(mDamageTimer == daAlinkHIO_damage_c0::m.mInvincibleTime || checkModeFlg(8)))
(mDamageTimer == mpHIO->mDamage.m.mInvincibleTime || checkModeFlg(8)))
{
arrow_p->setBombArrowExplode();
dComIfGp_addSelectItemNum(mSelectItemId, -1);
@@ -227,22 +227,22 @@ void daAlink_c::setBowReadyAnime() {
}
void daAlink_c::setBowReloadAnime() {
setUpperAnimeParam(9, UPPER_2, &daAlinkHIO_bow_c0::m.mLoadAnm);
setUpperAnimeParam(9, UPPER_2, &mpHIO->mItem.mBow.m.mLoadAnm);
setFacePriTexture(FTANM_UNK_8);
setFacePriBck(0xE5);
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
changeItemBck(0x1F0, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
changeItemBck(0x1F0, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
field_0x2f97 = 5;
seStartOnlyReverb(Z2SE_AL_PACHINKO_DRAW);
} else {
changeItemBck(0x41, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
changeItemBck(0x41, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
field_0x2f97 = 7;
seStartOnlyReverb(Z2SE_AL_DRAW_BOW);
}
field_0x2f96 = 0;
field_0x301c = daAlinkHIO_bow_c0::m.mChargeArrowTime;
field_0x301c = mpHIO->mItem.mBow.m.mChargeArrowTime;
}
BOOL daAlink_c::checkUpperItemActionBow() {
@@ -273,7 +273,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
if (checkReadyItem()) {
if (mItemVar0.field_0x3018 != 0) {
setUpperAnimeParam(0xC, UPPER_2, &daAlinkHIO_bow_c0::m.mShootAnm);
setUpperAnimeParam(0xC, UPPER_2, &mpHIO->mItem.mBow.m.mShootAnm);
setFacePriBck(0xE8);
field_0x2f96 = 0;
@@ -291,7 +291,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
var_r29 = 0x44;
}
changeItemBck(var_r29, daAlinkHIO_bow_c0::m.mShootAnm.mStartFrame);
changeItemBck(var_r29, mpHIO->mItem.mBow.m.mShootAnm.mStartFrame);
mItemVar0.field_0x3018 = 0;
} else if (mEquipItem == fpcNm_ITEM_PACHINKO) {
if (!itemButton()) {
@@ -335,7 +335,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
dComIfGp_setItemArrowNumCount(-1);
mItemAcKeep.clearData();
onResetFlg0(RFLG0_UNK_20000000);
field_0x30a4 = daAlinkHIO_bow_c0::m.mBombArrowHoldTime;
field_0x30a4 = mpHIO->mItem.mBow.m.mBombArrowHoldTime;
} else {
seStartOnlyReverb(Z2SE_AL_ARROW_EMPTY);
}
@@ -403,7 +403,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
}
if (checkAnmEnd(&mUpperFrameCtrl[2]) ||
(mUpperFrameCtrl[2].getFrame() > daAlinkHIO_bow_c0::m.mShootAnm.mCancelFrame &&
(mUpperFrameCtrl[2].getFrame() > mpHIO->mItem.mBow.m.mShootAnm.mCancelFrame &&
itemButton()))
{
setBowReadyAnime();
@@ -415,7 +415,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
}
if (checkBowWaitAnime() || (mEquipItem == fpcNm_ITEM_PACHINKO && checkBowChargeWaitAnime())) {
field_0x33dc += daAlinkHIO_bow_c0::m.mShootAnm.mSpeed;
field_0x33dc += mpHIO->mItem.mBow.m.mShootAnm.mSpeed;
} else {
field_0x33dc = mUpperFrameCtrl[2].getFrame();
}
@@ -556,7 +556,7 @@ int daAlink_c::procBowSubjectInit() {
}
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
daAlinkHIO_bow_c0::m.mStartInterpolation);
mpHIO->mItem.mBow.m.mStartInterpolation);
mNormalSpeed = 0.0f;
setBowOrSlingStatus();
return 1;
@@ -580,7 +580,7 @@ int daAlink_c::procBowMoveInit() {
onModeFlg(1);
}
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
setBlendAtnMoveAnime(mpHIO->mItem.mBow.m.mStartInterpolation);
mProcVar2.field_0x300c = 0;
setBowOrSlingStatus();
return 1;
@@ -604,7 +604,7 @@ int daAlink_c::procBowMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
}
current.angle.y = shape_angle.y - 0x4000;
} else {
+57 -47
View File
@@ -10,41 +10,41 @@
f32 daAlink_c::getCanoeMaxSpeed() const {
if (checkCanoeSlider()) {
return daAlinkHIO_canoe_c0::m.mMaxSpeed_RiverRide;
return mpHIO->mCanoe.m.mMaxSpeed_RiverRide;
} else {
return daAlinkHIO_canoe_c0::m.mMaxSpeed;
return mpHIO->mCanoe.m.mMaxSpeed;
}
}
f32 daAlink_c::getCanoeBackMaxSpeed() const {
return daAlinkHIO_canoe_c0::m.mBackMaxSpeed;
return mpHIO->mCanoe.m.mBackMaxSpeed;
}
f32 daAlink_c::getCanoeCres() const {
if (checkCanoeSlider()) {
return daAlinkHIO_canoe_c0::m.mDeceleration_RiverRide;
return mpHIO->mCanoe.m.mDeceleration_RiverRide;
} else {
return daAlinkHIO_canoe_c0::m.mDeceleration;
return mpHIO->mCanoe.m.mDeceleration;
}
}
f32 daAlink_c::getCanoeSpeedRate() const {
if (checkCanoeSlider()) {
return daAlinkHIO_canoe_c0::m.mSpeedRate_RiverRide;
return mpHIO->mCanoe.m.mSpeedRate_RiverRide;
} else {
return daAlinkHIO_canoe_c0::m.mSpeedRate;
return mpHIO->mCanoe.m.mSpeedRate;
}
}
s16 daAlink_c::getCanoeMaxRotSpeed() const {
s16 var_r30;
if (checkCanoeSlider()) {
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle_RiverRide;
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle_RiverRide;
} else {
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle;
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle;
}
return var_r30 * (((mUnderFrameCtrl[0].getRate() - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
return var_r30 * (((mUnderFrameCtrl[0].getRate() - mpHIO->mCanoe.m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
}
cXyz* daAlink_c::getCanoeLocalPaddleTop() {
@@ -299,7 +299,7 @@ int daAlink_c::canoeCommon() {
var_r29 = 0x20021;
}
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) / (daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - mpHIO->mCanoe.m.mStickRowAnmSpeed) / (mpHIO->mCanoe.m.mBtnRowStartAnmSpeed - mpHIO->mCanoe.m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
mZ2Link.startLinkSwordSound(var_r29, var_r27, mVoiceReverbIntensity);
}
@@ -335,10 +335,10 @@ int daAlink_c::procCanoeRideInit() {
deleteEquipItem(0, 0);
daCanoe_c* canoe = (daCanoe_c*)field_0x27f4;
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed,
daAlinkHIO_wallCatch_c0::m.mClimbStartFrame,
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed,
mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame,
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
setSpecialGravity(0.0f, maxFallSpeed, 0);
mNormalSpeed = 0.0f;
@@ -403,7 +403,7 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
}
setHeavyBoots(0);
setSingleAnimeParam(ANM_JUMP_LAND, &daAlinkHIO_autoJump_c0::m.mLandAnm);
setSingleAnimeParam(ANM_JUMP_LAND, &mpHIO->mAutoJump.m.mLandAnm);
deleteEquipItem(0, 0);
mRideAcKeep.setData(canoe);
@@ -445,7 +445,7 @@ int daAlink_c::procCanoeGetOffInit() {
field_0x2f99 = 0;
mNormalSpeed = 0.0f;
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 6.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 6.0f);
setSpecialGravity(0.0f, maxFallSpeed, 0);
mNormalSpeed = 0.0f;
speed.y = 0.0f;
@@ -509,7 +509,7 @@ int daAlink_c::procCanoeGetOff() {
if (mLinkAcch.ChkGroundHit()) {
checkLandAction(0);
} else if (speed.y < -gravity) {
procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation);
procFallInit(2, mpHIO->mWallHang.mSmallJump.m.mFallInterpolation);
} else {
field_0x2f99 = 7;
}
@@ -517,7 +517,7 @@ int daAlink_c::procCanoeGetOff() {
if (mProcVar3.field_0x300e == 0) {
if (field_0x2060->getOldFrameRate() < 0.01f) {
mProcVar3.field_0x300e = 1;
setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm);
setSingleAnimeParam(ANM_VJUMP_START, &mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm);
field_0x33b0 = l_waitBaseAnime.y;
field_0x3588 = l_waitBaseAnime;
}
@@ -525,7 +525,7 @@ int daAlink_c::procCanoeGetOff() {
rideGetOff();
offModeFlg(0x400);
setJumpMode();
setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, maxFallSpeed, 0);
setSpecialGravity(mpHIO->mAutoJump.m.mGravity, maxFallSpeed, 0);
mNormalSpeed = 15.0f;
speed.y = 20.0f;
}
@@ -678,12 +678,12 @@ int daAlink_c::procCanoeWait() {
return 1;
}
// NONMATCHING - incorrect code gen related to daAlink_ANM
// NONMATCHING - regalloc, equivalent
int daAlink_c::procCanoeRowInit(int param_0) {
fopAc_ac_c* temp_r26 = mRideAcKeep.getActor();
field_0x3198 = -2;
daAlink_ANM var_r29;
int var_r29;
if (param_0 < 0) {
if (checkInputOnR()) {
s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y);
@@ -722,19 +722,26 @@ int daAlink_c::procCanoeRowInit(int param_0) {
}
if (spC == 1) {
var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT_BACK : (int)ANM_CANOE_ROW_LEFT_BACK);
if (var_r28 == 2) {
var_r29 = ANM_CANOE_ROW_RIGHT_BACK;
} else {
var_r29 = ANM_CANOE_ROW_LEFT_BACK;
}
if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) {
return procCanoePaddleShiftInit(var_r29);
}
} else {
var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT : (int)ANM_CANOE_ROW_LEFT);
if (var_r28 == 2) {
var_r29 = ANM_CANOE_ROW_RIGHT;
} else {
var_r29 = ANM_CANOE_ROW_LEFT;
}
if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) {
return procCanoePaddleShiftInit(var_r29);
}
}
} else {
if (param_0 == -3) {
if (mProcVar5.field_0x3012 == 1) {
@@ -751,17 +758,20 @@ int daAlink_c::procCanoeRowInit(int param_0) {
var_r29 = ANM_CANOE_ROW_LEFT;
}
}
// Need something here that generates no code in order for debug branches to match.
(void)0;
} else {
var_r29 = (daAlink_ANM)param_0;
var_r29 = param_0;
}
commonProcInit(PROC_CANOE_ROW);
f32 var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
f32 var_f31 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
BOOL var_r24 = 0;
if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) {
mProcVar3.field_0x300e = 1;
if (temp_r26->speedF > 0.5f * (-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) {
if (temp_r26->speedF > 0.5f * (-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate)) {
var_r24 = 1;
}
@@ -783,7 +793,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
}
if (var_r24 != 0) {
var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
var_f31 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
}
setSingleAnime((daAlink_ANM)var_r29, var_f31, 0.0f, 35, 3.0f);
@@ -809,9 +819,9 @@ int daAlink_c::procCanoeRow() {
procCanoeWaitInit(0);
}
} else {
f32 var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
f32 var_f30 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * mpHIO->mCanoe.m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
var_f30 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
}
f32 sp8 = temp_r27->getRate();
@@ -851,7 +861,7 @@ int daAlink_c::procCanoeRow() {
if (mProcVar3.field_0x300e == 0) {
temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate());
} else {
temp_r29->setAimSpeed(-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate);
temp_r29->setAimSpeed(-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate);
}
}
@@ -873,12 +883,12 @@ int daAlink_c::procCanoePaddleShiftInit(int param_0) {
f32 speed;
if (mProcVar5.field_0x3012 == 0) {
speed = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
} else {
speed = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
}
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
if (mProcVar5.field_0x3012 == 1) {
field_0x2f92 = 0;
@@ -932,12 +942,12 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) {
f32 var_f31;
if (mProcVar5.field_0x3012 == 0) {
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
} else {
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
}
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
if (mProcVar5.field_0x3012 == 1) {
field_0x2f92 = 0;
@@ -1017,12 +1027,12 @@ int daAlink_c::procCanoePaddleGrab() {
if (checkAnmEnd(temp_r29) != 0) {
f32 var_f31;
if (mProcVar5.field_0x3012 == 0) {
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
} else {
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
}
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
mUpperFrameCtrl[0].setFrame(11.0f);
getNowAnmPackUpper(UPPER_0)->setFrame(11.0f);
@@ -1545,7 +1555,7 @@ int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) {
temp_r3->setAimSpeed(0.0f);
temp_r3->setAimAngle(shape_angle.y);
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
setFacePriAnime(ANM_BOTTLE_DRINK_START);
keepItemData();
setBottleModel(param_0);
@@ -1583,7 +1593,7 @@ int daAlink_c::procCanoeKandelaarPourInit() {
canoe->setAimSpeed(0.0f);
canoe->setAimAngle(shape_angle.y);
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
commonKandelaarPourInit();
return 1;
}
@@ -1613,7 +1623,7 @@ int daAlink_c::procFishingCastInit() {
return 1;
}
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
setUpperAnimeBase(0x260);
field_0x2f96 = 0xFE;
field_0x2f97 = 8;
@@ -1656,7 +1666,7 @@ int daAlink_c::procFishingCast() {
}
if (checkInputOnR()) {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_move_c0::m.mTurnAngleRate, daAlinkHIO_move_c0::m.mMaxTurnAngle, daAlinkHIO_move_c0::m.mMinTurnAngle);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle);
current.angle.y = shape_angle.y;
}
@@ -1669,7 +1679,7 @@ int daAlink_c::procFishingCast() {
mUnderFrameCtrl[0].setFrame(0.0f);
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
} else if (mUnderFrameCtrl[0].getRate() < 0.01f) {
mUnderFrameCtrl[0].setRate(daAlinkHIO_move_c0::m.mWaitAnmSpeed);
mUnderFrameCtrl[0].setRate(mpHIO->mMove.m.mWaitAnmSpeed);
mUpperFrameCtrl[2].setRate(1.0f);
}
+17 -17
View File
@@ -12,19 +12,19 @@ BOOL daAlink_c::checkLv6BossRoom() {
}
f32 daAlink_c::getCopyRodBallSpeed() const {
return daAlinkHIO_copyRod_c0::m.mBallSpeed;
return mpHIO->mItem.mCopyRod.m.mBallSpeed;
}
f32 daAlink_c::getCopyRodBallReturnSpeed() const {
return daAlinkHIO_copyRod_c0::m.mBallReturnSpeed;
return mpHIO->mItem.mCopyRod.m.mBallReturnSpeed;
}
f32 daAlink_c::getCopyRodBallDisMax() const {
if (checkLv6BossRoom()) {
return daAlinkHIO_copyRod_c0::m.mBossBallMaxDistance;
return mpHIO->mItem.mCopyRod.m.mBossBallMaxDistance;
}
return daAlinkHIO_copyRod_c0::m.mBallMaxDistance;
return mpHIO->mItem.mCopyRod.m.mBallMaxDistance;
}
fopAc_ac_c* daAlink_c::getCopyRodControllActor() {
@@ -50,7 +50,7 @@ void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) {
mUpperFrameCtrl[2].setFrame(0.0f);
getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
} else {
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
}
}
}
@@ -86,9 +86,9 @@ void daAlink_c::setCopyRodControllUpperSpeedRate() {
var_f31 = 1.0f;
} else {
if (mProcID == PROC_STEP_MOVE) {
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
} else {
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
}
if (checkHeavyStateOn(1, 1)) {
@@ -132,7 +132,7 @@ void daAlink_c::setCopyRodModel() {
void daAlink_c::setCopyRodReadyAnime() {
f32 speed;
if (checkAttentionLock()) {
speed = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
} else {
speed = 0.0f;
}
@@ -201,7 +201,7 @@ BOOL daAlink_c::checkUpperItemActionCopyRod() {
}
if (checkReadyItem() && !itemButton() && checkCopyRodReadyAnime()) {
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
mSearchBallScale = getCopyRodBallDisMax();
if (!mSight.getLockFlg()) {
@@ -226,7 +226,7 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
int daAlink_c::checkNextActionCopyRod() {
if ((checkBoomerangCatchAnime() &&
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
checkNoResetFlg1(FLG1_UNK_10000))
{
return 0;
@@ -275,7 +275,7 @@ int daAlink_c::procCopyRodSubjectInit() {
mNormalSpeed = 0.0f;
initCopyRodUpperAnimeSpeed(1);
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, daAlinkHIO_boom_c0::m.mStartInterpolation);
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, mpHIO->mItem.mBoomerang.m.mStartInterpolation);
dComIfGp_setPlayerStatus0(0, 0x80);
current.angle.y = shape_angle.y;
@@ -314,7 +314,7 @@ int daAlink_c::procCopyRodMoveInit() {
}
initCopyRodUpperAnimeSpeed(0);
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
dComIfGp_setPlayerStatus0(0, 0x80);
return 1;
@@ -333,7 +333,7 @@ int daAlink_c::procCopyRodMove() {
if (field_0x2f98 != 3) {
field_0x2f98 = 3;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
}
} else {
offModeFlg(1);
@@ -354,16 +354,16 @@ int daAlink_c::procCopyRodSwingInit() {
((fopAcM_GetName(statue) == PROC_CSTATUE && statue->checkNotSmallType()) ||
fopAcM_GetName(statue) != PROC_CSTATUE))
{
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &daAlinkHIO_copyRod_c0::m.mBigSwingAnm);
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &mpHIO->mItem.mCopyRod.m.mBigSwingAnm);
field_0x3478 = 13.0f;
field_0x347c = 21.0f;
field_0x3480 = daAlinkHIO_copyRod_c0::m.mBigSwingAnm.mCancelFrame;
field_0x3480 = mpHIO->mItem.mCopyRod.m.mBigSwingAnm.mCancelFrame;
field_0x3484 = 27.0f;
} else {
setSingleAnimeParam(ANM_COPYROD_SWING, &daAlinkHIO_copyRod_c0::m.mSwingAnm);
setSingleAnimeParam(ANM_COPYROD_SWING, &mpHIO->mItem.mCopyRod.m.mSwingAnm);
field_0x3478 = 4.0f;
field_0x347c = 8.0f;
field_0x3480 = daAlinkHIO_copyRod_c0::m.mSwingAnm.mCancelFrame;
field_0x3480 = mpHIO->mItem.mCopyRod.m.mSwingAnm.mCancelFrame;
field_0x3484 = 14.0f;
}
+16 -15
View File
@@ -6,8 +6,8 @@
#include "d/actor/d_a_alink.h"
f32 daAlink_c::getCrawlMoveAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMin,
daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMax);
return getAnmSpeedStickRate(mpHIO->mCrouch.m.mCrawlAnmSpeedMin,
mpHIO->mCrouch.m.mCrawlAnmSpeedMax);
}
f32 daAlink_c::getCrawlMoveSpeed() {
@@ -20,7 +20,7 @@ f32 daAlink_c::getCrawlMoveSpeed() {
frame = frame_ctrl->getFrame();
}
return (daAlinkHIO_crouch_c0::m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
return (mpHIO->mCrouch.m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
}
void daAlink_c::setCrawlMoveDirectionArrow() {
@@ -357,9 +357,9 @@ void daAlink_c::setCrawlMoveAngle() {
cXyz sp2C;
cXyz sp38;
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_crouch_c0::m.mCrawlTurnRate,
daAlinkHIO_crouch_c0::m.mCrawlTurnMax,
daAlinkHIO_crouch_c0::m.mCrawlTurnMin);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mCrouch.m.mCrawlTurnRate,
mpHIO->mCrouch.m.mCrawlTurnMax,
mpHIO->mCrouch.m.mCrawlTurnMin);
if (shape_angle.y != current.angle.y) {
if ((s16)(shape_angle.y - current.angle.y) > 0) {
@@ -371,10 +371,11 @@ void daAlink_c::setCrawlMoveAngle() {
}
mLinkGndChk.SetPos(&sp20);
// Fakematch:
// dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some
// reason here that breaks the match. This is the only place in the code so
// far (September 2025) where it causes issues.
sp2C.set(sp20.x - sp38.x, ((cBgS&)dComIfG_Bgsp()).GroundCross(&mLinkGndChk) - sp38.y,
sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().cBgS::GroundCross(&mLinkGndChk) - sp38.y,
sp20.z - sp38.z);
if (cLib_distanceAngleS(sp2C.atan2sY_XZ(), shape_angle.x) > 0x800) {
@@ -457,7 +458,7 @@ int daAlink_c::procCrawlStartInit() {
commonProcInit(PROC_CRAWL_START);
field_0x3588 = l_waitBaseAnime;
setSingleAnimeParam(ANM_CRAWL_START, &daAlinkHIO_crouch_c0::m.mCrawlStartAnm);
setSingleAnimeParam(ANM_CRAWL_START, &mpHIO->mCrouch.m.mCrawlStartAnm);
mNormalSpeed = 0.0f;
shape_angle.y = field_0x306e + 0x8000;
@@ -465,13 +466,13 @@ int daAlink_c::procCrawlStartInit() {
current.pos.x = field_0x34ec.x + (35.0f * cM_ssin(field_0x306e));
current.pos.z = field_0x34ec.z + (35.0f * cM_scos(field_0x306e));
if (daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame > daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame) {
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame;
if (mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame > mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame) {
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame;
} else {
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame;
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame;
}
field_0x3478 = 1.0f / (field_0x347c - daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mStartFrame);
field_0x3478 = 1.0f / (field_0x347c - mpHIO->mCrouch.m.mCrawlStartAnm.mStartFrame);
field_0x33cc = 0.0f;
dComIfGp_setPlayerStatus0(0, 0x08000000);
@@ -534,7 +535,7 @@ int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) {
}
current.angle.y = shape_angle.y;
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, daAlinkHIO_crouch_c0::m.mCrawlInterpolation);
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, mpHIO->mCrouch.m.mCrawlInterpolation);
}
field_0x3198 = var_r29 ^ 1;
@@ -762,7 +763,7 @@ int daAlink_c::procCrawlEndInit(int param_0, s16 param_1, s16 param_2) {
current.angle.y = shape_angle.y;
field_0x2f99 = 0xC;
const daAlinkHIO_anm_c* temp_r30 = &daAlinkHIO_crouch_c0::m.mCrawlEndAnm;
const daAlinkHIO_anm_c* temp_r30 = &mpHIO->mCrouch.m.mCrawlEndAnm;
f32 var_f30;
if (param_0 != 0) {
@@ -816,7 +817,7 @@ int daAlink_c::procCrawlEnd() {
if (!checkNextActionFromCrouch(0)) {
procWaitInit();
}
} else if (frame_ctrl->getFrame() < daAlinkHIO_crouch_c0::m.mCrawlEndAnm.mCancelFrame) {
} else if (frame_ctrl->getFrame() < mpHIO->mCrouch.m.mCrawlEndAnm.mCancelFrame) {
checkNextActionFromCrouch(1);
}
+138 -138
View File
@@ -412,13 +412,13 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
resetCombo(0);
offNoResetFlg2(FLG2_UNK_2);
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, daAlinkHIO_cut_c0::m.mRunCutLength,
daAlinkHIO_cut_c0::m.mRunCutRadius);
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, mpHIO->mCut.m.mRunCutLength,
mpHIO->mCut.m.mRunCutRadius);
field_0x2fd0 = 2;
mRunCutComboCount++;
if (param_1) {
setUpperAnimeParam(0x82, UPPER_2, &daAlinkHIO_cutDaCharge_c0::m.mCutAnm);
setUpperAnimeParam(0x82, UPPER_2, &mpHIO->mCut.mCutDashCharge.m.mCutAnm);
if (checkBoardRide()) {
setCutType(13);
@@ -430,7 +430,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
mRunCutComboCount = 1;
}
} else if (mRunCutComboCount == 1 || mRunCutComboCount == 3) {
setUpperAnimeParam(0x80, UPPER_2, &daAlinkHIO_cutDaL_c0::m.mCutAnm);
setUpperAnimeParam(0x80, UPPER_2, &mpHIO->mCut.mCutDashLeft.m.mCutAnm);
if (checkBoardRide()) {
setCutType(11);
@@ -443,7 +443,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
mRunCutComboCount = 1;
setFacePriTexture(FTANM_UNK_13);
} else {
setUpperAnimeParam(0x81, UPPER_2, &daAlinkHIO_cutDaR_c0::m.mCutAnm);
setUpperAnimeParam(0x81, UPPER_2, &mpHIO->mCut.mCutDashRight.m.mCutAnm);
if (checkBoardRide()) {
setCutType(12);
@@ -458,7 +458,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
setFacePriBck(0x104);
field_0x2f96 = 2;
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
setSwordVoiceSe(Z2SE_AL_V_ATTACK_RUN);
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_0, 7, 16, 1, 50.0f, 130.0f);
@@ -473,9 +473,9 @@ BOOL daAlink_c::checkForceSwordSwing() {
void daAlink_c::setComboReserb() {
if (checkWolf()) {
field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration;
field_0x307e = mpHIO->mWolf.mWlAttack.m.mComboDuration;
} else {
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
}
if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) {
@@ -735,8 +735,8 @@ void daAlink_c::checkCutAtnActorChange() {
void daAlink_c::setCutJumpSpeed(int i_airAt) {
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
} else if (checkHeavyStateOn(1, 1)) {
speed.y *= 1.35f;
}
@@ -828,15 +828,15 @@ int daAlink_c::procCutNormalInit(int i_type) {
const daAlinkHIO_cutNormal_c1* cutData;
if (i_type == 1) {
cutData = &daAlinkHIO_cutNmL_c0::m;
cutData = &mpHIO->mCut.mCutLeft.m;
} else if (i_type == 2) {
cutData = &daAlinkHIO_cutNmR_c0::m;
cutData = &mpHIO->mCut.mCutRight.m;
} else if (i_type == 4) {
cutData = &daAlinkHIO_cutNmSR_c0::m;
cutData = &mpHIO->mCut.mCutRightStab.m;
} else if (i_type == 3) {
cutData = &daAlinkHIO_cutNmSL_c0::m;
cutData = &mpHIO->mCut.mCutLeftStab.m;
} else {
cutData = &daAlinkHIO_cutNmV_c0::m;
cutData = &mpHIO->mCut.mCutVertical.m;
}
field_0x3478 = cutData->mAttackStartFrame;
@@ -871,10 +871,10 @@ int daAlink_c::procCutNormalInit(int i_type) {
}
field_0x3588 = l_halfAtnWaitBaseAnime;
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
daAlinkHIO_cut_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, mpHIO->mCut.m.mSwordLength,
mpHIO->mCut.m.mSwordRadius);
setSwordComboVoice();
mProcVar5.field_0x3012 = 0;
@@ -904,7 +904,7 @@ int daAlink_c::procCutNormal() {
checkCutTurnCharge();
checkCutAtnActorChange();
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
onEndResetFlg0(ERFLG0_UNK_8000000);
field_0x2f99 = 4;
@@ -1049,19 +1049,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
BOOL var_r30 = FALSE;
if (i_type == 0) {
cutData = &daAlinkHIO_cutFnL_c0::m;
cutData = &mpHIO->mCut.mCutFinishLeft.m;
} else if (i_type == 1) {
cutData = &daAlinkHIO_cutFnV_c0::m;
cutData = &mpHIO->mCut.mCutFinishVertical.m;
} else if (i_type == 2) {
cutData = &daAlinkHIO_cutFnS_c0::m;
cutData = &mpHIO->mCut.mCutFinishStab.m;
} else if (i_type == 3) {
cutData = &daAlinkHIO_cutFnSl_c0::m;
cutData = &mpHIO->mCut.mCutFinishSweep.m;
var_r30 = TRUE;
} else if (i_type == 4) {
cutData = &daAlinkHIO_cutFnSm_c0::m;
cutData = &mpHIO->mCut.mCutFinishSlash.m;
var_r30 = TRUE;
} else {
cutData = &daAlinkHIO_cutFnR_c0::m;
cutData = &mpHIO->mCut.mCutFinishRight.m;
}
f32 var_f31;
@@ -1092,19 +1092,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
}
current.angle.y = shape_angle.y;
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
if (mComboCutCount == 3) {
field_0x3484 = cutData->mComboCheckFrame;
mProcVar0.field_0x3008 = cutData->mComboStopTime;
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2,
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
field_0x32d0 = Z2SE_AL_SWORD_SWING_S;
} else {
field_0x3484 = cutData->mCutAnm.mCancelFrame;
mProcVar0.field_0x3008 = cutData->mStopTime;
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3,
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
if (i_type == 2) {
field_0x32d0 = Z2SE_AL_SWORD_THRUST;
@@ -1154,7 +1154,7 @@ int daAlink_c::procCutFinish() {
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
setBodyAngleXReadyAnime(1);
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
onEndResetFlg0(ERFLG0_UNK_8000000);
setComboReserb();
@@ -1229,12 +1229,12 @@ int daAlink_c::procCutFinishJumpUpInit() {
}
setCutType(CUT_TYPE_TWIRL);
speed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
mNormalSpeed = daAlinkHIO_cutFnJU_c0::m.mSpeedH;
speed.y = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedV;
mNormalSpeed = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedH;
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
} else if (checkHeavyStateOn(1, 1)) {
speed.y *= 1.5f;
}
@@ -1249,16 +1249,16 @@ int daAlink_c::procCutFinishJumpUpInit() {
current.angle.y = shape_angle.y;
}
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
f32 var_f31 = daAlinkHIO_cutFnJU_c0::m.mCutAnm.mStartFrame;
field_0x307e = mpHIO->mCut.m.mComboDuration;
f32 var_f31 = mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mStartFrame;
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3,
daAlinkHIO_cutFnJU_c0::m.mAttackRadius, 10.0f);
mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackRadius, 10.0f);
field_0x32cc = Z2SE_AL_SWORD_SWING_L;
setSingleAnime(ANM_CUT_TWIRL, daAlinkHIO_cutFnJU_c0::m.mCutAnm.mSpeed, var_f31,
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
setSingleAnime(ANM_CUT_TWIRL, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mSpeed, var_f31,
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mEndFrame,
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mInterpolation);
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
mProcVar5.field_0x3012 = 0;
field_0x3478 = current.pos.y;
@@ -1284,13 +1284,13 @@ int daAlink_c::procCutFinishJumpUp() {
}
if (mDemo.getDemoMode() != 0x52 &&
current.pos.y < mLastJumpPos.y - daAlinkHIO_cutFnJU_c0::m.mFallHeight)
current.pos.y < mLastJumpPos.y - mpHIO->mCut.mCutFinishJumpUppercut.m.mFallHeight)
{
return procFallInit(2, daAlinkHIO_cutFnJU_c0::m.mFallInterpolation);
return procFallInit(2, mpHIO->mCut.mCutFinishJumpUppercut.m.mFallInterpolation);
}
if (frameCtrl->getFrame() >= daAlinkHIO_cutFnJU_c0::m.mAttackStartFrame &&
frameCtrl->getFrame() < daAlinkHIO_cutFnJU_c0::m.mAttackEndFrame)
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackStartFrame &&
frameCtrl->getFrame() < mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackEndFrame)
{
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(field_0x32cc);
@@ -1306,7 +1306,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
commonProcInit(PROC_CUT_FINISH_JUMP_UP_LAND);
checkCutLandDamage();
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &daAlinkHIO_cutFnJU_c0::m.mLandAnm);
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm);
mNormalSpeed = 0.0f;
setCutType(CUT_TYPE_TWIRL);
@@ -1315,11 +1315,11 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
onResetFlg1(RFLG1_UNK_30);
if (mComboCutCount == 3) {
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mComboCheckFrame;
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboCheckFrame;
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboStopTime;
} else {
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mLandAnm.mCancelFrame;
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm.mCancelFrame;
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mStopTime;
}
mProcVar5.field_0x3012 = 0;
@@ -1384,19 +1384,19 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
commonProcInit(PROC_CUT_REVERSE);
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
setSingleAnimeParam(i_anmID, &mpHIO->mGuard.m.mRecoilAnm);
mProcVar2.field_0x300c = 1;
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCancelFrame;
field_0x3478 = mpHIO->mGuard.m.mRecoilAnm.mCancelFrame;
field_0x2f98 = 2;
setUpperGuardAnime(-1.0f);
} else {
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
setSingleAnimeParam(i_anmID, &mpHIO->mCut.m.mRecoilAnm);
mProcVar2.field_0x300c = 0;
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCancelFrame;
field_0x3478 = mpHIO->mCut.m.mRecoilAnm.mCancelFrame;
field_0x2f98 = 4;
}
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
mNormalSpeed = mpHIO->mCut.m.mRecoilSpeed;
current.angle.y = shape_angle.y - -0x8000;
field_0x307e = 0;
mProcVar5.field_0x3012 = 0;
@@ -1421,7 +1421,7 @@ int daAlink_c::procCutReverse() {
}
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_cut_c0::m.mRecoilDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mCut.m.mRecoilDeceleration);
if (mProcVar2.field_0x300c == 0) {
checkCutTurnCharge();
@@ -1448,20 +1448,20 @@ int daAlink_c::procCutReverse() {
int daAlink_c::procCutJumpInit(int i_airCut) {
commonProcInit(PROC_CUT_JUMP);
setSingleAnimeParam(ANM_CUT_JUMP, &daAlinkHIO_cutJump_c0::m.mCutAnm);
setSingleAnimeParam(ANM_CUT_JUMP, &mpHIO->mCut.mCutJump.m.mCutAnm);
if (i_airCut) {
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
speed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
mNormalSpeed = mpHIO->mCut.mCutJump.m.mAirJumpSpeedH;
speed.y = mpHIO->mCut.mCutJump.m.mAirJumpSpeedV;
} else {
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
speed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
mNormalSpeed = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedH;
speed.y = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedV;
}
setCutJumpSpeed(i_airCut);
current.angle.y = shape_angle.y;
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
daAlinkHIO_cut_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
mpHIO->mCut.m.mSwordRadius);
setCutType(CUT_TYPE_JUMP);
setSwordComboVoice();
dComIfGp_setPlayerStatus0(0, 0x8000);
@@ -1486,7 +1486,7 @@ int daAlink_c::procCutJump() {
if (mLinkAcch.ChkGroundHit()) {
procCutJumpLandInit(field_0x3198);
} else if (mUnderFrameCtrl[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) {
} else if (mUnderFrameCtrl[0].getFrame() >= mpHIO->mCut.mCutJump.m.mStartAttackFrame) {
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
}
@@ -1500,18 +1500,18 @@ int daAlink_c::procCutJump() {
int daAlink_c::procCutJumpLandInit(int param_0) {
commonProcInit(PROC_CUT_JUMP_LAND);
checkCutLandDamage();
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &daAlinkHIO_cutJump_c0::m.mLandAnm);
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &mpHIO->mCut.mCutJump.m.mLandAnm);
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
field_0x2060->initOldFrameMorf(5.0f * daAlinkHIO_cutJump_c0::m.mLandAnm.mInterpolation,
field_0x2060->initOldFrameMorf(5.0f * mpHIO->mCut.mCutJump.m.mLandAnm.mInterpolation,
0, 0x23);
}
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
m_swordBlur.initBlur(0.0f, 0, &mSwordTopPos, &field_0x3498, &field_0x34a4);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
daAlinkHIO_cut_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
mpHIO->mCut.m.mSwordRadius);
}
onResetFlg0(RFLG0_UNK_2);
@@ -1547,11 +1547,11 @@ int daAlink_c::procCutJumpLand() {
if (frameCtrl->checkAnmEnd()) {
checkNextAction(0);
} else if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mJumpSpinDelay && field_0x3198 != 2)
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mJumpSpinDelay && field_0x3198 != 2)
{
procCutTurnInit(1, field_0x3198);
} else {
if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mLandAnm.mCancelFrame) {
if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mLandAnm.mCancelFrame) {
onModeFlg(4);
if (checkNextAction(1)) {
@@ -1559,7 +1559,7 @@ int daAlink_c::procCutJumpLand() {
}
}
if (frameCtrl->getFrame() < daAlinkHIO_cutJump_c0::m.mEndAttackFrame) {
if (frameCtrl->getFrame() < mpHIO->mCut.mCutJump.m.mEndAttackFrame) {
onResetFlg0(RFLG0_UNK_2);
}
}
@@ -1567,9 +1567,8 @@ int daAlink_c::procCutJumpLand() {
return 1;
}
// NONMATCHING - regalloc
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
const daAlinkHIO_cutTurn_c1* cutData = &daAlinkHIO_cutTurn_c0::m;
const daAlinkHIO_cutTurn_c1* cutData = &mpHIO->mCut.mCutTurn.m;
const daAlinkHIO_anm_c* anm_data;
daAlink_ANM anmID;
@@ -1622,8 +1621,9 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
setSingleAnime(anmID, anm_data->mSpeed, var_f31, anm_data->mEndFrame, morf);
int sp08;
if (checkCutLargeTurnState()) {
param_1 = 4;
sp08 = 4;
field_0x32cc = Z2SE_AL_KAITEN_L_SLASH;
setSwordVoiceSe(Z2SE_AL_V_KAITENGIRI_L);
field_0x3478 = cutData->mLargeAttackRadius;
@@ -1635,7 +1635,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
setCutType(CUT_TYPE_LARGE_TURN_LEFT);
}
} else {
param_1 = 3;
sp08 = 3;
field_0x32cc = Z2SE_AL_KAITENGIRI;
setSwordVoiceSe(Z2SE_AL_V_KAITEN);
@@ -1663,7 +1663,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
mNormalSpeed = 0.0f;
mProcVar5.field_0x3012 = 0;
setCutWaterDropEffect();
initCutTurnAt(field_0x347c, param_1);
initCutTurnAt(field_0x347c, sp08);
return 1;
}
@@ -1674,11 +1674,11 @@ int daAlink_c::procCutTurn() {
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
field_0x2f99 = 4;
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
onEndResetFlg0(ERFLG0_UNK_8000000);
if (mComboCutCount != 0) {
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
}
if (frameCtrl->getFrame() >= 44.0f) {
@@ -1700,7 +1700,7 @@ int daAlink_c::procCutTurn() {
if (frameCtrl->getFrame() >= field_0x3484 && frameCtrl->getFrame() < field_0x3488) {
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(field_0x32cc);
mNormalSpeed = daAlinkHIO_cutTurn_c0::m.mSpeed;
mNormalSpeed = mpHIO->mCut.mCutTurn.m.mSpeed;
if (checkHeavyStateOn(1, 1)) {
mNormalSpeed *= mHeavySpeedMultiplier;
@@ -1723,10 +1723,10 @@ int daAlink_c::procCutTurnChargeInit() {
}
commonProcInit(PROC_CUT_TURN_CHARGE);
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &mpHIO->mCut.mCutTurn.m.mChargeAnm);
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
return 1;
}
@@ -1736,7 +1736,7 @@ int daAlink_c::procCutTurnCharge() {
}
setSwordChargeVoiceSe();
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
if (mProcVar2.field_0x300c != 0) {
@@ -1771,9 +1771,9 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
}
setSingleAnimeBaseSpeed(ANM_CUT_TURN_CHARGE, 0.0f,
daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation);
mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation);
field_0x2f98 = 0;
field_0x594 = daAlinkHIO_cutTurn_c0::m.mMaxSpeed;
field_0x594 = mpHIO->mCut.mCutTurn.m.mMaxSpeed;
if (!checkWoodSwordEquip()) {
simpleAnmPlay(m_nSwordBtk);
@@ -1817,7 +1817,7 @@ int daAlink_c::procCutTurnMove() {
setDoStatus(0x86);
}
} else {
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
}
if (mDemo.getDemoMode() == 0x5B || mDemo.getDemoMode() == 0x5C) {
@@ -1838,7 +1838,7 @@ int daAlink_c::procCutTurnMove() {
if (field_0x2f98 == 0 || field_0x2f98 == 1) {
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
anm = ANM_CUT_TURN_CHARGE_MOVE;
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveLRInterpolation;
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveLRInterpolation;
mNormalSpeed *= 0.5f;
} else if (field_0x2f98 != direction) {
mNormalSpeed *= -0.5f;
@@ -1846,7 +1846,7 @@ int daAlink_c::procCutTurnMove() {
}
} else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
anm = ANM_CUT_TURN_CHARGE;
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation;
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation;
mNormalSpeed *= 0.5f;
} else if (field_0x2f98 != direction) {
mNormalSpeed *= -0.5f;
@@ -1854,7 +1854,7 @@ int daAlink_c::procCutTurnMove() {
}
if (field_0x2f98 == direction) {
var_f30 = daAlinkHIO_cutTurn_c0::m.mChargeMoveAccel * field_0x33ac;
var_f30 = mpHIO->mCut.mCutTurn.m.mChargeMoveAccel * field_0x33ac;
} else {
field_0x2f98 = direction;
}
@@ -1864,17 +1864,17 @@ int daAlink_c::procCutTurnMove() {
}
}
setNormalSpeedF(var_f30, daAlinkHIO_cutTurn_c0::m.mChargeMoveDecel);
setNormalSpeedF(var_f30, mpHIO->mCut.mCutTurn.m.mChargeMoveDecel);
f32 var_f31_2;
if (field_0x2f98 == DIR_FORWARD) {
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
} else if (field_0x2f98 == DIR_BACKWARD) {
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
} else if (field_0x2f98 == DIR_RIGHT) {
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
} else {
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
}
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
@@ -1943,7 +1943,7 @@ int daAlink_c::procCutDownInit() {
speed.y = 0.0f;
offModeFlg(2);
} else {
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &daAlinkHIO_cutDown_c0::m.mJumpAnm);
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &mpHIO->mCut.mCutDown.m.mJumpAnm);
sp2C.y += 50.0f;
if (fopAcM_gc_c::gndCheck(&sp2C)) {
@@ -1963,11 +1963,11 @@ int daAlink_c::procCutDownInit() {
var_f31 = 800.0f;
}
speed.y = daAlinkHIO_cutDown_c0::m.mRecoverSpeedH;
speed.y = mpHIO->mCut.mCutDown.m.mRecoverSpeedH;
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
} else if (checkHeavyStateOn(1, 1)) {
speed.y *= 1.5f;
}
@@ -2001,7 +2001,7 @@ int daAlink_c::procCutDown() {
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &mpHIO->mCut.mCutDown.m.mFallAnm);
}
return 1;
@@ -2010,7 +2010,7 @@ int daAlink_c::procCutDown() {
int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
commonProcInit(PROC_CUT_DOWN_LAND);
checkCutLandDamage();
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &daAlinkHIO_cutDown_c0::m.mLandAnm);
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &mpHIO->mCut.mCutDown.m.mLandAnm);
u32 var_r30;
if (mDemo.getDemoMode() == 0x51 || (i_enemy != NULL && i_enemy->checkDownFlg() &&
@@ -2026,12 +2026,12 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
}
var_r30 = 0x20;
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mSuccessStopTime;
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
} else {
var_r30 = mPolySound;
mProcVar3.field_0x300e = 0;
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mFailStopTime;
}
mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30);
@@ -2076,7 +2076,7 @@ int daAlink_c::procCutDownLand() {
}
} else {
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS,
&daAlinkHIO_cutDown_c0::m.mMissAnm);
&mpHIO->mCut.mCutDown.m.mMissAnm);
mProcVar2.field_0x300c = 1;
}
} else {
@@ -2093,7 +2093,7 @@ int daAlink_c::procCutDownLand() {
seStartSwordCut(Z2SE_SWORD_STICK_PULLOUT);
}
if (frameCtrl_p->getFrame() > daAlinkHIO_cutDown_c0::m.mMissAnm.mCancelFrame) {
if (frameCtrl_p->getFrame() > mpHIO->mCut.mCutDown.m.mMissAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
}
@@ -2113,8 +2113,8 @@ int daAlink_c::procCutHeadInit() {
commonProcInit(PROC_CUT_HEAD);
resetCombo(1);
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &daAlinkHIO_cutHead_c0::m.mJumpAnm);
setSpecialGravity(daAlinkHIO_cutHead_c0::m.mGravity, maxFallSpeed, 0);
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &mpHIO->mCut.mCutHead.m.mJumpAnm);
setSpecialGravity(mpHIO->mCut.mCutHead.m.mGravity, maxFallSpeed, 0);
cXyz sp2C;
if (enemy_p != NULL) {
@@ -2125,13 +2125,13 @@ int daAlink_c::procCutHeadInit() {
field_0x280c.clearData();
}
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight);
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, mpHIO->mCut.mCutHead.m.mMaxHeight);
f32 fvar10 = JMAFastSqrt((fvar9 * -2.0f) / gravity);
speed.y = fvar10 * -gravity;
f32 fvar5 = sp2C.absXZ();
if (fvar5 > daAlinkHIO_cutHead_c0::m.mMaxDistance) {
fvar5 = daAlinkHIO_cutHead_c0::m.mMaxDistance;
if (fvar5 > mpHIO->mCut.mCutHead.m.mMaxDistance) {
fvar5 = mpHIO->mCut.mCutHead.m.mMaxDistance;
}
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
@@ -2142,8 +2142,8 @@ int daAlink_c::procCutHeadInit() {
shape_angle.y = current.angle.y;
setSwordVoiceSe(Z2SE_AL_V_KABUTO_JUMP);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cutHead_c0::m.mSwordLength,
daAlinkHIO_cutHead_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.mCutHead.m.mSwordLength,
mpHIO->mCut.mCutHead.m.mSwordRadius);
setCutType(5);
return 1;
@@ -2154,7 +2154,7 @@ int daAlink_c::procCutHead() {
cLib_chaseF(&mNormalSpeed, 0.0f, field_0x3478);
if (speed.y <= 0.0f) {
setSingleAnimeParam(ANM_CUT_HEAD, &daAlinkHIO_cutHead_c0::m.mCutAnm);
setSingleAnimeParam(ANM_CUT_HEAD, &mpHIO->mCut.mCutHead.m.mCutAnm);
f32 tmp_0 = 0.0f;
mNormalSpeed = tmp_0;
speed.y = tmp_0;
@@ -2168,13 +2168,13 @@ int daAlink_c::procCutHead() {
mNormalSpeed *= 0.99f;
if (frameCtrl->checkPass(7.0f)) {
speed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
mNormalSpeed = daAlinkHIO_cutHead_c0::m.mAddSpeedH;
speed.y = mpHIO->mCut.mCutHead.m.mAddSpeedV;
mNormalSpeed = mpHIO->mCut.mCutHead.m.mAddSpeedH;
initGravity();
}
if (frameCtrl->getFrame() >= daAlinkHIO_cutHead_c0::m.mAttackStartFrame &&
frameCtrl->getFrame() < daAlinkHIO_cutHead_c0::m.mAttackEndFrame)
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutHead.m.mAttackStartFrame &&
frameCtrl->getFrame() < mpHIO->mCut.mCutHead.m.mAttackEndFrame)
{
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
@@ -2194,7 +2194,7 @@ int daAlink_c::procCutHead() {
int daAlink_c::procCutHeadLandInit() {
commonProcInit(PROC_CUT_HEAD_LAND);
checkCutLandDamage();
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &daAlinkHIO_cutHead_c0::m.mLandAnm);
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &mpHIO->mCut.mCutHead.m.mLandAnm);
mNormalSpeed = 0.0f;
return 1;
}
@@ -2209,7 +2209,7 @@ int daAlink_c::procCutHeadLand() {
} else {
checkNextAction(0);
}
} else if (frameCtrl->getFrame() > daAlinkHIO_cutHead_c0::m.mLandAnm.mCancelFrame) {
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutHead.m.mLandAnm.mCancelFrame) {
checkNextAction(1);
}
@@ -2218,10 +2218,10 @@ int daAlink_c::procCutHeadLand() {
int daAlink_c::procCutLargeJumpChargeInit() {
commonProcInit(PROC_CUT_LARGE_JUMP_CHARGE);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &mpHIO->mCut.mCutLargeJump.m.mChargeAnm);
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
return 1;
}
@@ -2257,14 +2257,14 @@ int daAlink_c::procCutLargeJumpInit() {
}
commonProcInit(PROC_CUT_LARGE_JUMP);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &daAlinkHIO_cutLargeJump_c0::m.mChargeMoveAnm);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &mpHIO->mCut.mCutLargeJump.m.mChargeMoveAnm);
field_0x3588 = l_halfAtnWaitBaseAnime;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
mProcVar2.field_0x300c = 0;
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
daAlinkHIO_cut_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLength,
mpHIO->mCut.m.mSwordRadius);
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
setCutWaterDropEffect();
@@ -2288,7 +2288,7 @@ int daAlink_c::procCutLargeJump() {
if (mProcVar2.field_0x300c == 0) {
if (frameCtrl->checkAnmEnd()) {
field_0x2f99 = 12;
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &mpHIO->mCut.mCutLargeJump.m.mCutAnm);
mProcVar2.field_0x300c = 1;
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
} else {
@@ -2298,13 +2298,13 @@ int daAlink_c::procCutLargeJump() {
if (!checkModeFlg(2) && frameCtrl->getFrame() >= 5.0f) {
setJumpMode();
mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH;
speed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
mNormalSpeed = mpHIO->mCut.mCutLargeJump.m.mCutSpeedH;
speed.y = mpHIO->mCut.mCutLargeJump.m.mCutSpeedV;
setCutJumpSpeed(0);
}
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mJumpAttackStartFrame &&
frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndFrame)
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mJumpAttackStartFrame &&
frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mJumpAttackEndFrame)
{
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
@@ -2317,15 +2317,15 @@ int daAlink_c::procCutLargeJump() {
mProcVar3.field_0x300e--;
if (mProcVar3.field_0x300e == 0) {
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
daAlinkHIO_cut_c0::m.mSwordRadius);
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, mpHIO->mCut.m.mSwordLength,
mpHIO->mCut.m.mSwordRadius);
setCutType(CUT_TYPE_LARGE_JUMP);
}
}
if (mLinkAcch.ChkGroundHit()) {
procCutLargeJumpLandInit(field_0x3198);
} else if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mCutInitFrame) {
} else if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mCutInitFrame) {
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
}
@@ -2340,7 +2340,7 @@ int daAlink_c::procCutLargeJump() {
int daAlink_c::procCutLargeJumpLandInit(int param_0) {
commonProcInit(PROC_CUT_LARGE_JUMP_LAND);
checkCutLandDamage();
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &daAlinkHIO_cutLargeJump_c0::m.mLandAnm);
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &mpHIO->mCut.mCutLargeJump.m.mLandAnm);
mNormalSpeed = 0.0f;
field_0x2f99 = 12;
field_0x3588 = l_halfAtnWaitBaseAnime;
@@ -2349,7 +2349,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
onResetFlg1(RFLG1_UNK_30);
onResetFlg0(RFLG0_UNK_2);
setCutType(CUT_TYPE_LARGE_JUMP);
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
field_0x3478 = mpHIO->mCut.mCutLargeJump.m.mLandAttackRadius;
field_0x347c = 130.0f;
mProcVar2.field_0x300c = 0;
field_0x3198 = param_0;
@@ -2377,16 +2377,16 @@ int daAlink_c::procCutLargeJumpLand() {
} else {
checkNextAction(0);
}
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mSpinSlashCheckFrame &&
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mSpinSlashCheckFrame &&
field_0x3198 != 2)
{
procCutTurnInit(1, field_0x3198);
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mLandAnm.mCancelFrame) {
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mLandAnm.mCancelFrame) {
checkNextAction(1);
} else if (frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mLandAttackEndFrame) {
} else if (frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mLandAttackEndFrame) {
onResetFlg0(RFLG0_UNK_2);
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mLandAttackInitFrame) {
if (mProcVar2.field_0x300c == 0) {
resetAtCollision(0);
mProcVar2.field_0x300c = 1;
@@ -2407,7 +2407,7 @@ int daAlink_c::procSwordUnequipSpInit() {
return 0;
}
setSingleAnimeBaseSpeed(ANM_FINISH, daAlinkHIO_cut_c0::m.mFlourishAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_FINISH, mpHIO->mCut.m.mFlourishAnmSpeed, 3.0f);
mNormalSpeed = 0.0f;
field_0x3588 = l_halfAtnWaitBaseAnime;
field_0x3198 = 0;
@@ -2452,11 +2452,11 @@ int daAlink_c::procSwordUnequipSp() {
}
} else {
field_0x3198 = 1;
setSingleAnimeBaseSpeed(ANM_FINISH_END, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed,
setSingleAnimeBaseSpeed(ANM_FINISH_END, mpHIO->mCut.m.mFlourishEndAnmSpeed,
3.0f);
}
} else if (field_0x3198 != 0) {
if (!(frameCtrl->getFrame() > daAlinkHIO_cut_c0::m.mFlourishControlStartFrame) ||
if (!(frameCtrl->getFrame() > mpHIO->mCut.m.mFlourishControlStartFrame) ||
!checkNextAction(1))
{
if (frameCtrl->getFrame() >= 39.0f) {
@@ -2472,7 +2472,7 @@ int daAlink_c::procSwordUnequipSp() {
frameCtrl->setRate(0.0f);
dComIfGp_evmng_cutEnd(mAlinkStaffId);
} else if (frameCtrl->getRate() < 0.0099999998f) {
setWaterInAnmRate(frameCtrl, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed);
setWaterInAnmRate(frameCtrl, mpHIO->mCut.m.mFlourishEndAnmSpeed);
}
}
deleteEquipItem(0, 1);
+64 -64
View File
@@ -10,15 +10,15 @@
#include "d/d_msg_object.h"
s16 daAlink_c::getFreezeR() const {
return daAlinkHIO_damage_c0::m.mFreezeR;
return mpHIO->mDamage.m.mFreezeR;
}
s16 daAlink_c::getFreezeG() const {
return daAlinkHIO_damage_c0::m.mFreezeG;
return mpHIO->mDamage.m.mFreezeG;
}
s16 daAlink_c::getFreezeB() const {
return daAlinkHIO_damage_c0::m.mFreezeB;
return mpHIO->mDamage.m.mFreezeB;
}
bool daAlink_c::checkMiddleBossGoronRoom() {
@@ -81,9 +81,9 @@ void daAlink_c::checkCutLandDamage() {
if (!checkEventRun()) {
f32 var_f31 = (mFallHeight - current.pos.y) * 0.0099999998f;
if (var_f31 >= daAlinkHIO_damFall_c0::m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
{
if (var_f31 >= daAlinkHIO_damFall_c0::m.mBigDmgHeight) {
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mBigDmgHeight) {
setLandDamagePoint(8);
} else {
setLandDamagePoint(4);
@@ -187,7 +187,7 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT
mSwordUpTimer = 0;
if (i_setDmgTimer) {
mDamageTimer = daAlinkHIO_damage_c0::m.mInvincibleTime;
mDamageTimer = mpHIO->mDamage.m.mInvincibleTime;
setDamageColorTime();
}
@@ -238,7 +238,7 @@ cXyz* daAlink_c::getDamageVec(dCcD_GObjInf* i_hitObj) {
}
void daAlink_c::setDashDamage() {
setUpperAnimeParam(0xAD, UPPER_2, &daAlinkHIO_damage_c0::m.mDashDmgAnm);
setUpperAnimeParam(0xAD, UPPER_2, &mpHIO->mDamage.m.mDashDmgAnm);
setFacePriBck(0x121);
setFacePriTexture(FTANM_UNK_27);
voiceStart(Z2SE_AL_V_DAMAGE_S);
@@ -282,7 +282,7 @@ int daAlink_c::checkPolyDamage() {
}
}
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + daAlinkHIO_basic_c0::m.mLavaDeathDepth))))) {
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth))))) {
return 2;
}
@@ -366,7 +366,7 @@ BOOL daAlink_c::checkDamageAction() {
if (checkAnmEnd(&mUpperFrameCtrl[2])) {
if (checkDashDamageAnime()) {
resetUpperAnime(UPPER_2, daAlinkHIO_damage_c0::m.mDashDmgAnm.mInterpolation);
resetUpperAnime(UPPER_2, mpHIO->mDamage.m.mDashDmgAnm.mInterpolation);
} else if (checkWolfHeadDamageAnime()) {
resetUpperAnime(UPPER_2, 3.0f);
} else if (checkSmallUpperGuardAnime()) {
@@ -417,7 +417,7 @@ BOOL daAlink_c::checkDamageAction() {
if ((!checkModeFlg(0x70C52)) && (!checkWolf()) && (!checkDkCaught2Anime())) {
setUpperAnimeBase(getMainBckData(ANM_HORSE_WAIT_D_B)->m_underID);
setFacePriAnime(ANM_HORSE_WAIT_D_B);
field_0x30f6 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
field_0x30f6 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
field_0x2f96 = 1;
field_0x2f97 = 6;
onNoResetFlg1(FLG1_UNK_100000);
@@ -484,7 +484,7 @@ BOOL daAlink_c::checkDamageAction() {
if (sp2C & 0x80) {
mIceDamageWaitTimer++;
if (mIceDamageWaitTimer < daAlinkHIO_damage_c0::m.mFreezeTime) {
if (mIceDamageWaitTimer < mpHIO->mDamage.m.mFreezeTime) {
sp2C = 0;
}
} else if (mIceDamageWaitTimer > 3) {
@@ -498,7 +498,7 @@ BOOL daAlink_c::checkDamageAction() {
setDamagePoint(1, sp2C & 0x80, TRUE, 0);
if (checkWolf()) {
mDamageTimer = daAlinkHIO_damage_c0::m.mWolfFloorInvincibleTime;
mDamageTimer = mpHIO->mDamage.m.mWolfFloorInvincibleTime;
setDamageColorTime();
}
@@ -705,7 +705,7 @@ BOOL daAlink_c::checkDamageAction() {
if (checkModeFlg(0x10000) && !checkLargeAttack(at_spl)) {
voiceStart(Z2SE_AL_V_DAMAGE_S);
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
onModeFlg(8);
return 1;
}
@@ -797,15 +797,15 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
var_r29->y,
var_r29->z * var_f29 + var_r29->x * var_f30);
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle);
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle);
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle);
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle);
if (freeze_player) {
var_f31 = 0.0f;
} else if (mTargetedActor != NULL) {
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
} else {
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
}
if (checkAtnLeftAnime()) {
@@ -816,32 +816,32 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
int direction = getDirectionFromAngle(cM_atan2s(-sp88.x, -sp88.z));
if (direction == DIR_FORWARD) {
setSingleAnimeParam(ANM_DMG_SMALL_A, &daAlinkHIO_damNormal_c0::m.mFrontAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mFrontAnm.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_A, &mpHIO->mDamage.mDamNormal.m.mFrontAnm);
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mFrontAnm.mCancelFrame;
} else if (direction == DIR_BACKWARD) {
setSingleAnimeParam(ANM_DMG_SMALL_B, &daAlinkHIO_damNormal_c0::m.mRearAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRearAnm.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_B, &mpHIO->mDamage.mDamNormal.m.mRearAnm);
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRearAnm.mCancelFrame;
} else if (direction == DIR_LEFT) {
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &daAlinkHIO_damNormal_c0::m.mLeftAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mLeftAnm.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &mpHIO->mDamage.mDamNormal.m.mLeftAnm);
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mLeftAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &daAlinkHIO_damNormal_c0::m.mRightAnm);
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRightAnm.mCancelFrame;
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &mpHIO->mDamage.mDamNormal.m.mRightAnm);
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRightAnm.mCancelFrame;
}
current.angle.y = var_r29->atan2sX_Z();
mProcVar4.field_0x3010 = current.angle.y;
mNormalSpeed = var_r29->absXZ() * daAlinkHIO_damNormal_c0::m.mAttackSpeedRate + daAlinkHIO_damNormal_c0::m.mInitialSpeed;
if (mNormalSpeed > daAlinkHIO_move_c0::m.mMaxSpeed) {
mNormalSpeed = daAlinkHIO_move_c0::m.mMaxSpeed;
mNormalSpeed = var_r29->absXZ() * mpHIO->mDamage.mDamNormal.m.mAttackSpeedRate + mpHIO->mDamage.mDamNormal.m.mInitialSpeed;
if (mNormalSpeed > mpHIO->mMove.m.mMaxSpeed) {
mNormalSpeed = mpHIO->mMove.m.mMaxSpeed;
}
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
field_0x347c = M_PI / (frame_ctrl->getEnd() - frame_ctrl->getStart());
if (freeze_player) {
frame_ctrl->setRate(daAlinkHIO_damNormal_c0::m.mIceDamageASpeed);
frame_ctrl->setRate(mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed);
frame_ctrl->setEnd(7);
mNormalSpeed = 0.0f;
mProcVar0.mIceFreezeTimer = 90;
@@ -863,7 +863,7 @@ int daAlink_c::procDamage() {
mBodyAngle.z = -mProcVar3.field_0x300e * var_f31;
mBodyAngle.y = 0;
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mDamage.mDamNormal.m.mDeceleration);
if (checkFreezeDamage()) {
freezeTimerDamage();
@@ -1028,9 +1028,9 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
const daAlinkHIO_damLaHu_c1* var_r28;
if (checkWolf()) {
if (param_1 != 0) {
var_r29 = &daAlinkHIO_wlDamLarge_c0::m;
var_r29 = &mpHIO->mWolf.mWlDamage.mLarge.m;
} else {
var_r29 = &daAlinkHIO_wlDamHuge_c0::m;
var_r29 = &mpHIO->mWolf.mWlDamage.mHuge.m;
}
setSpecialGravity(var_r29->mGravity, maxFallSpeed, 0);
@@ -1176,7 +1176,7 @@ int daAlink_c::procCoLargeDamage() {
mProcVar5.field_0x3012--;
} else {
voiceStart(Z2SE_AL_V_FALL);
setSingleAnimeBaseMorf(ANM_FALL, daAlinkHIO_damage_c0::m.mInvertedFallInterpolation);
setSingleAnimeBaseMorf(ANM_FALL, mpHIO->mDamage.m.mInvertedFallInterpolation);
setOldRootQuaternion(field_0x3080, 0, field_0x3082);
field_0x3080 = 0;
field_0x3082 = 0;
@@ -1257,7 +1257,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
if (param_0 == -2) {
var_f30 = 0.0f;
} else {
var_f30 = daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation;
var_f30 = mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation;
}
field_0x3484 = 9.0f;
@@ -1274,7 +1274,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
var_f31 = 0.0f;
} else {
mProcVar0.field_0x3008 = -1;
var_f31 = daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed;
var_f31 = mpHIO->mDamage.m.mRecoverStandAnmSpeed;
}
mProcVar1.field_0x300a = 1;
@@ -1343,7 +1343,7 @@ int daAlink_c::procLargeDamageUp() {
return 1;
}
setSingleAnime(ANM_DMG_LARGE_LAND, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mSpeed, 9.0f, -1, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation);
setSingleAnime(ANM_DMG_LARGE_LAND, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mSpeed, 9.0f, -1, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation);
field_0x3198 = -3;
field_0x347c = 2.0f / (field_0x3478 - 9.0f);
}
@@ -1353,7 +1353,7 @@ int daAlink_c::procLargeDamageUp() {
if (mProcVar0.field_0x3008 == 0) {
mProcVar0.field_0x3008 = -1;
setWaterInAnmRate(temp_r30, daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed);
setWaterInAnmRate(temp_r30, mpHIO->mDamage.m.mRecoverStandAnmSpeed);
temp_r30->offEndFlg();
}
} else {
@@ -1498,12 +1498,12 @@ int daAlink_c::procCoPolyDamageInit() {
commonProcInit(PROC_POLY_DAMAGE);
if (checkWolf()) {
setSingleAnimeWolfParam(WANM_DMG_SMALL, &daAlinkHIO_wlDamage_c0::m.mPolygonAnm);
setSingleAnimeWolfParam(WANM_DMG_SMALL, &mpHIO->mWolf.mWlDamage.m.mPolygonAnm);
voiceStart(Z2SE_WL_V_DAMAGE);
field_0x3478 = daAlinkHIO_wlDamage_c0::m.mPolygonAnm.mCancelFrame;
field_0x3478 = mpHIO->mWolf.mWlDamage.m.mPolygonAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_DMG, &daAlinkHIO_damage_c0::m.mFloorDmgAnm);
field_0x3478 = daAlinkHIO_damage_c0::m.mFloorDmgAnm.mCancelFrame;
setSingleAnimeParam(ANM_DMG, &mpHIO->mDamage.m.mFloorDmgAnm);
field_0x3478 = mpHIO->mDamage.m.mFloorDmgAnm.mCancelFrame;
}
mNormalSpeed = 0.0f;
@@ -1527,8 +1527,8 @@ int daAlink_c::procCoPolyDamage() {
int daAlink_c::procLandDamageInit(int param_0) {
f32 var_f31;
if (param_0 == 0) {
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
mProcVar0.field_0x3008 = daAlinkHIO_autoJump_c0::m.mSpinJumpLandStopTime;
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
mProcVar0.field_0x3008 = mpHIO->mAutoJump.m.mSpinJumpLandStopTime;
if (mProcID == PROC_MAGNE_BOOTS_FLY) {
dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
@@ -1540,16 +1540,16 @@ int daAlink_c::procLandDamageInit(int param_0) {
setLandDamagePoint(4);
}
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mSmallStopTime;
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mSmallStopTime;
dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
} else {
if (!checkEventRun()) {
setLandDamagePoint(8);
}
var_f31 = daAlinkHIO_damFall_c0::m.mLandAnm.mStartFrame;
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mBigStopTime;
var_f31 = mpHIO->mDamage.mDamFall.m.mLandAnm.mStartFrame;
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mBigStopTime;
dComIfGp_getVibration().StartShock(5, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
}
@@ -1563,7 +1563,7 @@ int daAlink_c::procLandDamageInit(int param_0) {
voiceStart(Z2SE_AL_V_LANDING_FAIL);
}
setSingleAnime(ANM_DMG_FALL, daAlinkHIO_damFall_c0::m.mLandAnm.mSpeed, var_f31, daAlinkHIO_damFall_c0::m.mLandAnm.mEndFrame, daAlinkHIO_damFall_c0::m.mLandAnm.mInterpolation);
setSingleAnime(ANM_DMG_FALL, mpHIO->mDamage.mDamFall.m.mLandAnm.mSpeed, var_f31, mpHIO->mDamage.mDamFall.m.mLandAnm.mEndFrame, mpHIO->mDamage.mDamFall.m.mLandAnm.mInterpolation);
field_0x3198 = 0;
field_0x2f9d = 4;
setFootEffectProcType(4);
@@ -1577,7 +1577,7 @@ int daAlink_c::procLandDamage() {
if (field_0x3198 != 0) {
if (frameCtrl->checkAnmEnd()) {
checkNextAction(0);
} else if (frameCtrl->getFrame() > daAlinkHIO_damFall_c0::m.mStandAnm.mCancelFrame) {
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamFall.m.mStandAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
}
@@ -1586,7 +1586,7 @@ int daAlink_c::procLandDamage() {
if (mProcVar0.field_0x3008 > 0) {
mProcVar0.field_0x3008--;
} else {
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &daAlinkHIO_damFall_c0::m.mStandAnm);
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &mpHIO->mDamage.mDamFall.m.mStandAnm);
field_0x3198 = 1;
}
}
@@ -1716,7 +1716,7 @@ int daAlink_c::procCoElecDamage() {
int daAlink_c::procStEscapeInit() {
commonProcInit(PROC_HUMAN_ST_ESCAPE);
setSingleAnimeParam(ANM_FROZEN_FREE, &daAlinkHIO_damCaught_c0::m.mEscapeAnm);
setSingleAnimeParam(ANM_FROZEN_FREE, &mpHIO->mDamage.mDamCaught.m.mEscapeAnm);
mUnderFrameCtrl[0].setFrame(7.0f);
getNowAnmPackUnder(UNDER_0)->setFrame(7.0f);
@@ -1731,7 +1731,7 @@ int daAlink_c::procStEscape() {
if (frameCtrl->checkAnmEnd()) {
checkNextAction(0);
} else if (frameCtrl->getFrame() > daAlinkHIO_damCaught_c0::m.mEscapeAnm.mCancelFrame) {
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamCaught.m.mEscapeAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
}
@@ -1753,7 +1753,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
field_0x28f8 = param_0;
mNormalSpeed = 0.0f;
mProcVar0.field_0x3008 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x28f8);
if (temp_r3 != NULL) {
@@ -1797,13 +1797,13 @@ int daAlink_c::procDkCaught() {
}
s16 temp_r28 = current.angle.y;
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_atnMove_c0::m.mTurnAngleRate, daAlinkHIO_atnMove_c0::m.mMaxTurnAngle, daAlinkHIO_atnMove_c0::m.mMinTurnAngle);
var_f30 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, mpHIO->mAtnMove.m.mTurnAngleRate, mpHIO->mAtnMove.m.mMaxTurnAngle, mpHIO->mAtnMove.m.mMinTurnAngle);
var_f30 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
} else {
var_f30 = 0.0f;
}
setNormalSpeedF(var_f30, daAlinkHIO_atnMove_c0::m.mDeceleration);
setNormalSpeedF(var_f30, mpHIO->mAtnMove.m.mDeceleration);
if (checkZeroSpeedF()) {
onModeFlg(1);
@@ -1814,11 +1814,11 @@ int daAlink_c::procDkCaught() {
mProcVar0.field_0x3008--;
if (escapeTrigger()) {
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
}
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
}
if (mProcVar0.field_0x3008 < 0) {
@@ -1846,8 +1846,8 @@ int daAlink_c::procScreamWaitInit() {
if (checkEndResetFlg1(ERFLG1_UNK_2)) {
setScreamWaitAnime();
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mBasicInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
mpHIO->mBasic.m.mBasicInterpolation);
mProcVar2.field_0x300c = 0;
}
@@ -1996,18 +1996,18 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
f32 var_f31;
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlDamNormal_c0::m.mIceDamageAnmSpeed,
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed,
10.0f);
mUnderFrameCtrl[0].setEnd(3);
mUnderFrameCtrl[0].setAttribute(0);
setFaceBasicTexture(FTANM_UNK_90);
mMidnaAnm = 1;
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
} else {
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.mIceDamageASpeed,
setSingleAnime(ANM_SWIM_DMG_FREEZE, mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed,
0.0f, 5, 10.0f);
voiceStart(Z2SE_AL_V_DAMAGE_FREEZE);
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
var_f31 = mpHIO->mSwim.m.mStartHeight;
}
seStartOnlyReverb(Z2SE_AL_FREEZE);
+57 -57
View File
@@ -146,7 +146,7 @@ int daAlink_c::checkDemoAction() {
}
if (mProcID == PROC_SPINNER_WAIT) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
if (checkModeFlg(0x4000000) || checkModeFlg(0x40000) || checkHorseRide() ||
@@ -463,7 +463,7 @@ int daAlink_c::checkDemoAction() {
} else if (checkBoardRide()) {
return checkNextActionBoard();
} else if (checkSpinnerRide()) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
return commonCheckNextAction(0);
@@ -486,7 +486,7 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) {
f32 temp_f28;
f32 var_f27;
if (checkWolf()) {
var_f27 = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
var_f27 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed / mpHIO->mMove.m.mMaxSpeed;
var_f27 *= var_f27;
} else {
var_f27 = 1.0f;
@@ -850,12 +850,12 @@ void daAlink_c::resetDemoBck() {
mFaceBtkHeap.resetIdx();
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed,
daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed,
mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
setFaceBasicAnime(ANM_WAIT);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mBasicInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
mpHIO->mBasic.m.mBasicInterpolation);
}
}
@@ -960,7 +960,7 @@ void daAlink_c::endDemoMode() {
checkWaitAction();
}
} else if (mProcID == PROC_MONKEY_MOVE) {
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
} else if (checkCanoeRide()) {
procCanoeWaitInit(0);
}
@@ -1029,7 +1029,7 @@ int daAlink_c::setTalkStartBack(cXyz* param_0) {
if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) - current.pos.y >= l_autoDownHeight) {
current.angle.y = sp24.atan2sX_Z();
mNormalSpeed = 5.0f;
setSingleAnimeBaseSpeed(ANM_WALK, -daAlinkHIO_move_c0::m.mWalkAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WALK, -mpHIO->mMove.m.mWalkAnmSpeed, 3.0f);
return 1;
}
}
@@ -1069,8 +1069,8 @@ void daAlink_c::setTalkAnime() {
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_8_e || mEquipItem == fpcNm_ITEM_KANTERA ||
(checkNoResetFlg2(FLG2_UNK_1) && field_0x2fde == 0x48))
{
setDoubleAnime(0.0f, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_move_c0::m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
setDoubleAnime(0.0f, mpHIO->mMove.m.mWaitAnmSpeed,
mpHIO->mMove.m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
} else {
setSingleAnimeBase(ANM_TALK);
}
@@ -1688,12 +1688,12 @@ int daAlink_c::procCoTalkInit() {
mNormalSpeed = 0.0f;
if (var_r30 == 0) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mIdleInterpolation);
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mIdleInterpolation);
} else {
if (var_r30 == 1) {
field_0x2f99 = 13;
setSingleAnimeWolfBaseSpeed(WANM_CROUCH_WALK, 0.0f,
daAlinkHIO_wlLie_c0::m.mProneMoveInterp);
mpHIO->mWolf.mWlLie.m.mProneMoveInterp);
} else {
field_0x2f99 = 13;
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
@@ -1765,7 +1765,7 @@ int daAlink_c::procCoTalk() {
} else {
if (mEquipItem == fpcNm_ITEM_KANTERA) {
if (mUpperAnmHeap[0].getIdx() != getMainBckData(ANM_WAIT)->m_upperID) {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
}
}
@@ -1866,9 +1866,9 @@ int daAlink_c::procCoUnequipInit() {
mProcVar3.field_0x300e = 0;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
if (mDemo.getParam1() == 0) {
if (mEquipItem != fpcNm_ITEM_NONE) {
@@ -2277,7 +2277,7 @@ int daAlink_c::procCoGetItem() {
field_0x2f99 = 12;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
} else {
if (mEquipItem == fpcNm_ITEM_KANTERA) {
field_0x2f94 = 0;
@@ -2289,7 +2289,7 @@ int daAlink_c::procCoGetItem() {
3.0f);
field_0x2f99 = 0x60;
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
}
}
}
@@ -2327,8 +2327,8 @@ int daAlink_c::procCoTurnBack() {
if (checkWolf()) {
setBlendWolfMoveAnime(5.0f);
} else {
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
2, 3.0f);
}
@@ -2356,7 +2356,7 @@ int daAlink_c::procDoorOpenInit() {
f32 start_f = 0.0f;
s16 end_f = -1;
field_0x3478 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
field_0x3478 = mpHIO->mBasic.m.mBasicInterpolation;
mProcVar0.field_0x3008 = 0;
if (mDemo.getParam0() == 4) {
@@ -2487,9 +2487,9 @@ int daAlink_c::procCoLookWaitInit() {
mNormalSpeed = 0.0f;
if (checkWolf()) {
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
} else {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
}
current.angle.y = shape_angle.y;
@@ -2528,8 +2528,8 @@ int daAlink_c::procCoDemoPushPullWaitInit() {
if (checkWolf()) {
setSingleAnimeWolfBase(WANM_WAIT_PP);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed,
daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed,
mpHIO->mPushpull.m.mStandbyInterpolation);
}
mNormalSpeed = 0.0f;
@@ -2545,15 +2545,15 @@ int daAlink_c::procCoDemoPushMoveInit() {
if (mDemo.getParam0() != 0) {
setSingleAnimeWolfBase(WANM_PUSH);
} else {
setSingleAnimeWolf(WANM_PUSH_LIGHT, daAlinkHIO_wlPush_c0::m.mPushAnmSpeed,
0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
setSingleAnimeWolf(WANM_PUSH_LIGHT, mpHIO->mWolf.mWlPush.m.mPushAnmSpeed,
0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
}
} else {
if (mDemo.getParam0() != 0) {
setSingleAnimeBase(ANM_PUSH);
} else {
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, daAlinkHIO_pushpull_c0::m.mPushASpeed,
daAlinkHIO_pushpull_c0::m.mPushInterpolation);
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, mpHIO->mPushpull.m.mPushASpeed,
mpHIO->mPushpull.m.mPushInterpolation);
}
}
@@ -2617,7 +2617,7 @@ int daAlink_c::procDemoBoomerangCatchInit() {
deleteEquipItem(FALSE, FALSE);
mEquipItem = fpcNm_ITEM_BOOMERANG;
setItemActor();
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
return 1;
}
@@ -2625,7 +2625,7 @@ int daAlink_c::procDemoBoomerangCatch() {
dComIfGp_evmng_cutEnd(mAlinkStaffId);
if (checkAnmEnd(mUnderFrameCtrl)) {
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
}
return 1;
}
@@ -2651,9 +2651,9 @@ int daAlink_c::procCoDeadInit(int param_0) {
if (checkNoResetFlg2(FLG2_FORCE_GAMEOVER)) {
if (param_0) {
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
}
}
@@ -2904,9 +2904,9 @@ int daAlink_c::procCoCaughtInit() {
}
if (checkWolf()) {
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, daAlinkHIO_wlDamCaught_c0::m.mWaitInterp);
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, mpHIO->mWolf.mWlDamage.mCapture.m.mWaitInterp);
} else {
setSingleAnimeBaseMorf(ANM_WAIT_START, daAlinkHIO_damCaught_c0::m.mStandbyInterp);
setSingleAnimeBaseMorf(ANM_WAIT_START, mpHIO->mDamage.mDamCaught.m.mStandbyInterp);
}
if (chk_40000) {
@@ -2999,7 +2999,7 @@ int daAlink_c::procHandPat() {
dComIfGp_evmng_cutEnd(mAlinkStaffId);
if (mProcVar3.field_0x300e == 0) {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
mProcVar3.field_0x300e = 1;
}
}
@@ -3048,10 +3048,10 @@ int daAlink_c::procCoFogDeadInit() {
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_FALL_LAND, 0.0f,
daAlinkHIO_wlDamFall_c0::m.mAirAnmInterp);
mpHIO->mWolf.mWlDamage.mFall.m.mAirAnmInterp);
} else {
setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f,
daAlinkHIO_damFall_c0::m.mFallAnmMorf);
mpHIO->mDamage.mDamFall.m.mFallAnmMorf);
}
}
@@ -3097,8 +3097,8 @@ int daAlink_c::procWolfSmellWaitInit() {
return 1;
}
setSingleAnimeWolfBaseSpeed(WANM_SMELL, daAlinkHIO_wlChain_c0::m.mSniffAnmSpeed,
daAlinkHIO_wlChain_c0::m.mSniffInterp);
setSingleAnimeWolfBaseSpeed(WANM_SMELL, mpHIO->mWolf.mWlChain.m.mSniffAnmSpeed,
mpHIO->mWolf.mWlChain.m.mSniffInterp);
current.angle.y = shape_angle.y;
mNormalSpeed = 0.0f;
return 1;
@@ -3245,7 +3245,7 @@ int daAlink_c::procCoGetReadySitInit() {
commonProcInit(PROC_GET_READY_SIT);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
mProcVar2.field_0x300c = 1;
} else {
setSingleAnime(ANM_TRES_OPEN_SMALL, 1.0f, 36.0f, -1, 3.0f);
@@ -3350,13 +3350,13 @@ int daAlink_c::procWolfSnowEscape() {
if (mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &daAlinkHIO_wlSlide_c0::m.mFrontSlideAnm);
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &mpHIO->mWolf.mWlSlide.m.mFrontSlideAnm);
field_0x3588 = l_wolfBaseAnime;
field_0x3478 = 1.0f / (f32)frameCtrl_p->getEnd();
field_0x2f99 = 13;
voiceStart(Z2SE_WL_V_SLIP_ROLL);
} else {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
field_0x2f99 = 0x30;
mProcVar3.field_0x300e = 1;
}
@@ -3658,8 +3658,8 @@ int daAlink_c::procSwordReady() {
if (checkAnmEnd(frame_ctrl)) {
if (mProcVar2.field_0x300c == 0) {
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
3.0f);
}
@@ -3751,10 +3751,10 @@ int daAlink_c::procCutFastReadyInit() {
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mSpeed, 12.0f,
daAlinkHIO_cut_c0::m.mEquipAnm.mEndFrame,
daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
setUpperAnime(0x255, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f,
mpHIO->mCut.m.mEquipAnm.mEndFrame,
mpHIO->mCut.m.mEquipAnm.mInterpolation);
onNoResetFlg0(FLG0_UNK_1000000);
return 1;
}
@@ -3953,8 +3953,8 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
commonProcInit(PROC_DUNGEON_WARP_SCN_START);
setSpecialGravity(0.0f, maxFallSpeed, 0);
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mBasicInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
mpHIO->mBasic.m.mBasicInterpolation);
if (checkDungeon() && !checkLv7DungeonShop()) {
createNpcTks(&current.pos, fopAcM_GetRoomNo(this), 4);
@@ -4184,9 +4184,9 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
deleteEquipItem(FALSE, TRUE);
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
}
u32 var_r29;
@@ -4305,9 +4305,9 @@ int daAlink_c::procCoWarp() {
f32 var_f1;
if (checkWolf()) {
var_f1 = daAlinkHIO_wlAutoJump_c0::m.mGravity;
var_f1 = mpHIO->mWolf.mWlAutoJump.m.mGravity;
} else {
var_f1 = daAlinkHIO_autoJump_c0::m.mGravity;
var_f1 = mpHIO->mAutoJump.m.mGravity;
}
setSpecialGravity(var_f1, maxFallSpeed, 1);
@@ -4409,8 +4409,8 @@ int daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s1
int daAlink_c::commonFallInit(int param_0) {
if (checkWolf()) {
return procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
return procWolfFallInit(param_0, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp);
} else {
return procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(param_0, mpHIO->mAutoJump.m.mFallInterpolation);
}
}
+16 -16
View File
@@ -420,9 +420,9 @@ void daAlink_c::setEffect() {
if (checkWolf()) {
spB8.x += 40.0f * cM_ssin(current.angle.y);
spB8.z += 40.0f * cM_scos(current.angle.y);
spAC.y -= daAlinkHIO_wlSwim_c0::m.mStartHeight;
spAC.y -= mpHIO->mWolf.mWlSwim.m.mStartHeight;
} else {
spAC.y -= daAlinkHIO_swim_c0::m.mStartHeight;
spAC.y -= mpHIO->mSwim.m.mStartHeight;
}
spB8.y = mWaterY;
@@ -562,7 +562,7 @@ void daAlink_c::setEffect() {
&current.pos, &shape_angle);
if (sp38 != NULL) {
cXyz sp58;
f32 var_f31 = temp_f30 / daAlinkHIO_board_c0::m.mEffectMaxSpeed;
f32 var_f31 = temp_f30 / mpHIO->mItem.mBoard.m.mEffectMaxSpeed;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
@@ -1494,7 +1494,7 @@ void daAlink_c::setMetamorphoseEffect() {
void daAlink_c::setRunSplash() {
if (mProcID == PROC_MOVE && checkNoResetFlg0(FLG0_UNK_80) && checkDashAnime()) {
f32 temp_f31 = mWaterY - current.pos.y;
if (temp_f31 >= daAlinkHIO_basic_c0::m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) {
if (temp_f31 >= mpHIO->mBasic.m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) {
cXyz sp8(current.pos.x, mWaterY, current.pos.z);
JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31f8, 0x1AF, mLinkAcch.m_wtr, &sp8, &current.angle);
@@ -1977,7 +1977,7 @@ void daAlink_blur_c::draw() {
BOOL daAlink_lockCursor_c::create() {
JKRArchive* arc = dComIfG_getObjectResInfo(l_arcName)->getArchive();
field_0x2c = 0.0f;
mLockCursorAngle = 0.0f;
field_0x4 = false;
field_0x30 = 0.0f;
@@ -2060,14 +2060,14 @@ extern "C" void setAnimation__7J2DPaneFP11J2DAnmColor() {
}
void daAlink_lockCursor_c::update() {
if (field_0x2c < 21.0f) {
field_0x2c = 21.0f;
if (mLockCursorAngle < 21.0f) {
mLockCursorAngle = 21.0f;
}
field_0x2c += 0.9f;
mLockCursorAngle += 0.9f;
if (field_0x2c >= 50.0f) {
field_0x2c += -29.0f;
if (mLockCursorAngle >= 50.0f) {
mLockCursorAngle += -29.0f;
}
field_0x30 += 0.9f;
@@ -2081,13 +2081,13 @@ void daAlink_lockCursor_c::update() {
void daAlink_lockCursor_c::draw() {
if (field_0x4 != 0) {
field_0x28->setFrame(field_0x2c);
field_0x28->setFrame(mLockCursorAngle);
f32 var_f30;
if (field_0x2c > 21.0f) {
if (mLockCursorAngle > 21.0f) {
var_f30 = 21.0f;
} else {
var_f30 = field_0x2c;
var_f30 = mLockCursorAngle;
}
field_0x24->setFrame(var_f30);
@@ -2097,10 +2097,10 @@ void daAlink_lockCursor_c::draw() {
field_0xc->scale(0.6f, 0.6f);
field_0xc->translate(mPosX, mPosY);
if (!(field_0x2c < 15.0f)) {
if (!(mLockCursorAngle < 15.0f)) {
f32 var_f31;
if (field_0x2c < 21.0f) {
var_f31 = ((field_0x2c - 15.0f) * 40.0f) * 0.16666667f;
if (mLockCursorAngle < 21.0f) {
var_f31 = ((mLockCursorAngle - 15.0f) * 40.0f) * 0.16666667f;
} else {
var_f31 = ((field_0x4 * 0.00390625f) + 0.5f) * 40.0f;
}
+79 -79
View File
@@ -84,7 +84,7 @@ BOOL daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
deleteEquipItem(TRUE, FALSE);
setGrabItemActor(p_actor);
field_0x33e4 = 38.0f;
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
return true;
}
@@ -136,9 +136,9 @@ BOOL daAlink_c::checkGrabSideActor() {
void daAlink_c::setGrabUpperAnime(f32 param_0) {
if (param_0 > 0.0f && checkNoResetFlg0(FLG0_UNDERWATER)) {
if (checkZoraWearAbility()) {
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
} else {
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
}
}
@@ -444,9 +444,9 @@ void daAlink_c::setGrabUpperSpeedRate() {
var_f31 = 1.0f;
} else {
if (mProcID == PROC_STEP_MOVE) {
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
} else {
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
}
if (checkHeavyStateOn(1, 1)) {
@@ -550,17 +550,17 @@ void daAlink_c::setGrabItemThrow() {
temp_r3->current.angle.y = shape_angle.y;
if (checkWolf()) {
temp_r3->speedF = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedH;
temp_r3->speed.y = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedV;
temp_r3->speedF = mpHIO->mItem.mBomb.m.mWolfThrowSpeedH;
temp_r3->speed.y = mpHIO->mItem.mBomb.m.mWolfThrowSpeedV;
} else {
f32 var_f31;
f32 var_f30;
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
var_f31 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedH;
var_f30 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedV;
var_f31 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedH;
var_f30 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedV;
} else {
var_f31 = daAlinkHIO_bomb_c0::m.mThrowSpeedH;
var_f30 = daAlinkHIO_bomb_c0::m.mThrowSpeedV;
var_f31 = mpHIO->mItem.mBomb.m.mThrowSpeedH;
var_f30 = mpHIO->mItem.mBomb.m.mThrowSpeedV;
}
if (checkMagneBootsOn()) {
@@ -706,9 +706,9 @@ int daAlink_c::procGrabReadyInit() {
}
if (checkGrabCarryActor()) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame, 9, daAlinkHIO_grab_c0::m.mFailAnm.mInterpolation);
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mStartFrame, 9, mpHIO->mGrab.m.mFailAnm.mInterpolation);
mProcVar3.field_0x300e = 1;
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame);
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mFailAnm.mStartFrame);
f32 var_f31;
if (fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_DO) {
@@ -720,8 +720,8 @@ int daAlink_c::procGrabReadyInit() {
field_0x33ec = 4.0f * ((var_f31 * mGrabItemAcKeep.getActor()->scale.x) - 1.0f);
} else {
field_0x33ec = 0.0f;
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mPrepareAnm);
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mPrepareAnm.mEndFrame - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame);
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mPrepareAnm);
field_0x347c = 1.0f / (mpHIO->mGrab.m.mPrepareAnm.mEndFrame - mpHIO->mGrab.m.mPrepareAnm.mStartFrame);
mProcVar3.field_0x300e = 0;
}
@@ -741,15 +741,15 @@ int daAlink_c::procGrabReady() {
if (checkAnmEnd(&mUnderFrameCtrl[0])) {
if (field_0x3198 != 0) {
setSingleAnime(ANM_PICK_UP_LARGE_START, daAlinkHIO_grab_c0::m.mRecoilAnm.mSpeed, daAlinkHIO_grab_c0::m.mRecoilAnm.mStartFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mCancelFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mInterpolation);
setSingleAnime(ANM_PICK_UP_LARGE_START, mpHIO->mGrab.m.mRecoilAnm.mSpeed, mpHIO->mGrab.m.mRecoilAnm.mStartFrame, mpHIO->mGrab.m.mRecoilAnm.mCancelFrame, mpHIO->mGrab.m.mRecoilAnm.mInterpolation);
field_0x3198 = 0;
} else {
procGrabUpInit();
}
} else if (mProcVar3.field_0x300e != 0) {
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame), 0.0f);
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mFailAnm.mStartFrame), 0.0f);
} else {
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame));
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mPrepareAnm.mStartFrame));
}
return 1;
@@ -760,11 +760,11 @@ int daAlink_c::procGrabUpInit() {
commonProcInit(PROC_GRAB_UP);
if (checkGrabCarryActor()) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, 9.0f + daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mEndFrame, 0.0f);
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, 9.0f + mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mEndFrame, 0.0f);
mProcVar3.field_0x300e = 1;
setCarryArmAngle(1.0f, 0.0f);
} else {
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mLiftBackAnm);
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mLiftBackAnm);
mProcVar3.field_0x300e = 0;
setCarryArmAngle(0.0f, 1.0f);
}
@@ -792,7 +792,7 @@ int daAlink_c::procGrabUp() {
return checkNextAction(0);
}
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > daAlinkHIO_grab_c0::m.mLiftBackAnm.mCancelFrame))) {
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > mpHIO->mGrab.m.mLiftBackAnm.mCancelFrame))) {
onResetFlg0(RFLG0_GRAB_UP_END);
if (fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY | fopAcM_CARRY_TYPE_1))) {
@@ -831,13 +831,13 @@ int daAlink_c::procGrabMiss() {
int daAlink_c::procGrabThrowInit(int param_0) {
if (checkModeFlg(0x400)) {
if (checkGrabHeavyActor()) {
setUpperAnimeParam(0x17B, UPPER_2, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
setUpperAnimeParam(0x17B, UPPER_2, &mpHIO->mGrab.m.mIronBallThrowAnm);
field_0x343c = 14.0f;
} else if (checkGrabAnimeSide()) {
setUpperAnimeParam(0x51, UPPER_2, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
setUpperAnimeParam(0x51, UPPER_2, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
field_0x343c = 4.0f;
} else {
setUpperAnimeParam(0x170, UPPER_2, &daAlinkHIO_grab_c0::m.mLiftAnm);
setUpperAnimeParam(0x170, UPPER_2, &mpHIO->mGrab.m.mLiftAnm);
field_0x343c = 5.0f;
}
@@ -850,27 +850,27 @@ int daAlink_c::procGrabThrowInit(int param_0) {
}
if (checkGrabHeavyActor()) {
setSingleAnimeParam(ANM_THROW_HEAVY, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
setSingleAnimeParam(ANM_THROW_HEAVY, &mpHIO->mGrab.m.mIronBallThrowAnm);
field_0x343c = 14.0f;
field_0x347c = daAlinkHIO_grab_c0::m.mIronBallThrowAnm.mCancelFrame;
field_0x347c = mpHIO->mGrab.m.mIronBallThrowAnm.mCancelFrame;
mProcVar2.field_0x300c = 2;
} else if (checkGrabSideActor()) {
f32 var_f31;
if (mTargetedActor != NULL) {
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
} else {
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
}
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, daAlinkHIO_basic_c0::m.mBasicInterpolation);
setUpperAnimeParam(0x51, UPPER_0, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, mpHIO->mBasic.m.mBasicInterpolation);
setUpperAnimeParam(0x51, UPPER_0, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
field_0x343c = 4.0f;
field_0x347c = daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm.mCancelFrame;
field_0x347c = mpHIO->mGrab.m.mCarryPlaceReverseAnm.mCancelFrame;
mProcVar2.field_0x300c = 1;
} else {
setSingleAnimeParam(ANM_THROW, &daAlinkHIO_grab_c0::m.mLiftAnm);
setSingleAnimeParam(ANM_THROW, &mpHIO->mGrab.m.mLiftAnm);
field_0x343c = 5.0f;
field_0x347c = daAlinkHIO_grab_c0::m.mLiftAnm.mCancelFrame;
field_0x347c = mpHIO->mGrab.m.mLiftAnm.mCancelFrame;
mProcVar2.field_0x300c = 0;
}
@@ -891,7 +891,7 @@ int daAlink_c::procGrabThrow() {
var_r30 = &mUnderFrameCtrl[0];
}
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
if (var_r30->checkPass(field_0x343c)) {
setGrabItemThrow();
@@ -934,15 +934,15 @@ int daAlink_c::procGrabPutInit() {
if (checkGrabCarryActor()) {
field_0x3198 = 0;
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, 9.0f, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mInterpolation);
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, 9.0f, mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame, mpHIO->mGrab.m.mCarryLiftAnm.mInterpolation);
mProcVar3.field_0x300e = 1;
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - 9.0f);
field_0x3480 = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - field_0x3478);
field_0x347c = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - 9.0f);
field_0x3480 = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - field_0x3478);
} else {
mProcVar3.field_0x300e = 0;
field_0x3198 = 0;
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mThrowAnm);
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mThrowAnm.mEndFrame - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame);
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mThrowAnm);
field_0x347c = 1.0f / (mpHIO->mGrab.m.mThrowAnm.mEndFrame - mpHIO->mGrab.m.mThrowAnm.mStartFrame);
}
if (mGrabItemAcKeep.getActor() != NULL) {
@@ -990,7 +990,7 @@ int daAlink_c::procGrabPut() {
}
setCarryArmAngle(1.0f - (field_0x347c * (temp_r28->getFrame() - 9.0f)), var_f31);
} else {
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame));
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - mpHIO->mGrab.m.mThrowAnm.mStartFrame));
}
return 1;
@@ -1012,7 +1012,7 @@ int daAlink_c::procGrabWaitInit() {
return 0;
}
f32 var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
f32 var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
if (!checkGrabAnime()) {
setGrabUpperAnime(-1.0f);
} else {
@@ -1021,14 +1021,14 @@ int daAlink_c::procGrabWaitInit() {
if (var_r30) {
if (checkZoraWearAbility() ) {
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
} else {
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
}
}
if (checkAttentionLock() && (checkGrabAnimeUp() || checkGrabAnimeSide())) {
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
setBlendAtnMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
} else {
setBlendMoveAnime(var_f31);
}
@@ -1066,7 +1066,7 @@ int daAlink_c::procGrabWait() {
int daAlink_c::procGrabReboundInit(int param_0) {
commonProcInit(PROC_GRAB_REBOUND);
setSingleAnimeParam(ANM_PICK_UP_LARGE, &daAlinkHIO_grab_c0::m.mCarryAnm);
setSingleAnimeParam(ANM_PICK_UP_LARGE, &mpHIO->mGrab.m.mCarryAnm);
mNormalSpeed = 0.0f;
field_0x3198 = param_0;
@@ -1089,10 +1089,10 @@ int daAlink_c::procGrabRebound() {
if (field_0x3198 != 0) {
if (field_0x2060->getOldFrameRate() < 0.1f) {
setWaterInAnmRate(temp_r30, daAlinkHIO_grab_c0::m.mCarryAnm.mSpeed);
setWaterInAnmRate(temp_r30, mpHIO->mGrab.m.mCarryAnm.mSpeed);
field_0x3198 = 0;
}
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > daAlinkHIO_grab_c0::m.mCarryAnm.mCancelFrame))) {
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > mpHIO->mGrab.m.mCarryAnm.mCancelFrame))) {
initGrabNextMode();
}
@@ -1103,14 +1103,14 @@ int daAlink_c::procGrabStandInit() {
commonProcInit(PROC_GRAB_STAND);
if (checkUnderMove0BckNoArc(ANM_CARRY)) {
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame, (9.0f + daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed), 0.0f);
field_0x3478 = daAlinkHIO_grab_c0::m.mCarryLiftAnm.mCancelFrame;
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame);
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame, (9.0f + mpHIO->mGrab.m.mCarryLiftAnm.mSpeed), 0.0f);
field_0x3478 = mpHIO->mGrab.m.mCarryLiftAnm.mCancelFrame;
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame);
mProcVar3.field_0x300e = 1;
setCarryArmAngle(1.0f, 0.0f);
} else {
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mStandReverseAnm);
field_0x3478 = daAlinkHIO_grab_c0::m.mStandReverseAnm.mCancelFrame;
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mStandReverseAnm);
field_0x3478 = mpHIO->mGrab.m.mStandReverseAnm.mCancelFrame;
mProcVar3.field_0x300e = 0;
}
@@ -1130,7 +1130,7 @@ int daAlink_c::procGrabStand() {
onModeFlg(4);
if (!checkNextAction(1) && mProcVar3.field_0x300e != 0) {
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame), 0.0f);
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame), 0.0f);
}
}
@@ -1161,10 +1161,10 @@ int daAlink_c::procInsectCatchInit() {
mNormalSpeed = 0.0f;
if (field_0x27f4->attention_info.position.y > field_0x3834.y - 30.0f) {
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
field_0x3478 = 4.0f;
} else {
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
field_0x3478 = 8.0f;
}
@@ -1222,20 +1222,20 @@ int daAlink_c::procPickUpInit() {
int var_r29;
if (temp_r3 == PROC_Obj_Kantera) {
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
mProcVar3.field_0x300e = 1;
field_0x3478 = 7.0f;
mProcVar4.field_0x3010 = 0;
var_r29 = 0;
} else if (temp_r3 == PROC_NPC_KS) {
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
mProcVar3.field_0x300e = 1;
field_0x3478 = 7.0f;
mProcVar4.field_0x3010 = 1;
fopAcM_onSwitch(field_0x27f4, 0x3F);
var_r29 = 0;
} else {
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mGrabAnm);
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mGrabAnm);
mProcVar3.field_0x300e = 0;
mProcVar4.field_0x3010 = 0;
var_r29 = 1;
@@ -1269,7 +1269,7 @@ int daAlink_c::procPickUp() {
}
} else if (checkAnmEnd(temp_r30)) {
checkNextAction(0);
} else if (temp_r30->getFrame() > daAlinkHIO_pickUp_c0::m.mGrabAnm.mCancelFrame) {
} else if (temp_r30->getFrame() > mpHIO->mItem.mPickUp.m.mGrabAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
} else if (temp_r30->checkPass(9.0f)) {
@@ -1290,7 +1290,7 @@ int daAlink_c::procPickPutInit(int param_0) {
commonProcInit(PROC_PICK_PUT);
mNormalSpeed = 0.0f;
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
if (mItemAcKeep.getActor() != NULL) {
field_0x37c8 = mItemAcKeep.getActor()->current.pos;
@@ -1326,7 +1326,7 @@ int daAlink_c::procPickPut() {
if (checkAnmEnd(temp_r28)) {
checkNextAction(0);
} else if (temp_r28->getFrame() < daAlinkHIO_pickUp_c0::m.mPlaceAnm.mCancelFrame) {
} else if (temp_r28->getFrame() < mpHIO->mItem.mPickUp.m.mPlaceAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
} else if (temp_r28->checkPass(9.0f)) {
@@ -1430,7 +1430,7 @@ int daAlink_c::procFmChainUpInit() {
}
commonProcInit(PROC_CHAIN_UP);
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &daAlinkHIO_fmChain_c0::m.mGripAnm);
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &mpHIO->mItem.mFmChain.m.mGripAnm);
mNormalSpeed = 0.0f;
return 1;
}
@@ -1441,7 +1441,7 @@ int daAlink_c::procFmChainUp() {
setGrabStatus(0x96, 2);
setShapeAngleToAtnActor(0);
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > daAlinkHIO_fmChain_c0::m.mGripAnm.mCancelFrame)) {
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > mpHIO->mItem.mFmChain.m.mGripAnm.mCancelFrame)) {
u8 temp_r27 = field_0x2fa3;
fopAc_ac_c* temp_r28 = field_0x2844.getActor();
@@ -1614,14 +1614,14 @@ f32 daAlink_c::getPushPullAnimeSpeed() {
getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Bemos)
{
if (checkWolf()) {
var_f31 = daAlinkHIO_wlPush_c0::m.mHeavyPushAnmSpeed;
var_f31 = mpHIO->mWolf.mWlPush.m.mHeavyPushAnmSpeed;
} else {
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeedHeavy;
var_f31 = mpHIO->mPushpull.m.mPushASpeedHeavy;
}
} else if (checkWolf()) {
var_f31 = daAlinkHIO_wlPush_c0::m.mPushAnmSpeed;
var_f31 = mpHIO->mWolf.mWlPush.m.mPushAnmSpeed;
} else {
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeed;
var_f31 = mpHIO->mPushpull.m.mPushASpeed;
}
return var_f31;
@@ -1639,14 +1639,14 @@ int daAlink_c::procCoPushPullWaitInit(int param_0) {
f32 var_f31;
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, daAlinkHIO_wlPush_c0::m.mIdleAnmSpeed, daAlinkHIO_wlPush_c0::m.mIdleInterp);
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, mpHIO->mWolf.mWlPush.m.mIdleAnmSpeed, mpHIO->mWolf.mWlPush.m.mIdleInterp);
var_f31 = 50.0f;
} else {
if (checkEquipAnime()) {
resetUpperAnime(UPPER_2, -1.0f);
}
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed, daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed, mpHIO->mPushpull.m.mStandbyInterpolation);
var_f31 = 50.0f;
}
@@ -1717,7 +1717,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
setSingleAnimeWolfBase(WANM_PUSH_START);
var_f31 = 1.0f;
} else {
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
}
field_0x3478 = 17.0f;
@@ -1726,7 +1726,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
setSingleAnimeBase(ANM_PUSH_START);
var_f31 = 1.0f;
} else {
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPushInterpolation);
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, mpHIO->mPushpull.m.mPushInterpolation);
}
field_0x3478 = 15.0f;
@@ -1853,7 +1853,7 @@ int daAlink_c::procPullMoveInit(int param_0) {
setSingleAnimeBase(ANM_PULL_START);
} else {
var_f31 = getPushPullAnimeSpeed();
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPullInterpolation);
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, mpHIO->mPushpull.m.mPullInterpolation);
}
mUnderFrameCtrl[0].setRate(var_f31);
@@ -2000,7 +2000,7 @@ int daAlink_c::procGoatMoveInit() {
field_0x37c8 = current.pos;
field_0x2f98 = 3;
current.angle.y = shape_angle.y + -0x4000;
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
setSingleAnimeBase(ANM_ATN_COW);
mProcVar2.field_0x300c = 0;
@@ -2085,7 +2085,7 @@ int daAlink_c::procGoatMove() {
}
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
} else {
var_f31 = 0.0f;
}
@@ -2093,7 +2093,7 @@ int daAlink_c::procGoatMove() {
var_f31 = 0.0f;
}
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
if (checkZeroSpeedF()) {
onModeFlg(1);
@@ -2272,7 +2272,7 @@ int daAlink_c::procGoatCatch() {
if (temp_r27 == PROC_OBJ_GRA) {
field_0x2f99 = 0x30;
setSingleAnimeBaseSpeed(ANM_WAIT_B, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT_B, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
offModeFlg(0x8000);
mProcVar1.field_0x300a = 0x1E;
return 1;
@@ -2457,7 +2457,7 @@ int daAlink_c::procGoronMoveInit() {
mNormalSpeed = 0.0f;
field_0x2f98 = 3;
current.angle.y = shape_angle.y + -0x4000;
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
setSingleAnimeBase(ANM_ATN_RIGHT);
mProcVar2.field_0x300c = 1;
mProcVar3.field_0x300e = 0;
@@ -2518,7 +2518,7 @@ int daAlink_c::procGoronMove() {
}
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
} else {
var_f31 = 0.0f;
}
@@ -2526,7 +2526,7 @@ int daAlink_c::procGoronMove() {
var_f31 = 0.0f;
}
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
if (checkZeroSpeedF()) {
onModeFlg(1);
+27 -28
View File
@@ -44,10 +44,10 @@ void daAlink_c::stickArrowIncrement(int param_0) {
s16 arrow_num = 0;
for (int i = 0; i < 16; i++) {
if (mShieldArrowIDs[i] != -1) {
if (mShieldArrowIDs[i] != fpcM_ERROR_PROCESS_ID_e) {
if (field_0x2f7c[i] == 0 || param_0) {
arrow_num++;
mShieldArrowIDs[i] = -1;
mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e;
field_0x2f7c[i] = 0;
} else {
field_0x2f7c[i]--;
@@ -75,7 +75,7 @@ void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) {
int arrow_num = 0;
for (; arrow_num < 16; arrow_num++) {
if (mShieldArrowIDs[arrow_num] == -1) {
if (mShieldArrowIDs[arrow_num] == fpcM_ERROR_PROCESS_ID_e) {
mShieldArrowIDs[arrow_num] = new_arrow_id;
field_0x2f7c[arrow_num] = 10;
break;
@@ -220,14 +220,13 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) {
mBodyAngle.y = 0;
} else {
mBodyAngle.y =
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax,
daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax);
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -mpHIO->mGuard.m.mSmallGuardLRAngleMax,
mpHIO->mGuard.m.mSmallGuardLRAngleMax);
}
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax, daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax);
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -mpHIO->mGuard.m.mSmallGuardFBAngleMax, mpHIO->mGuard.m.mSmallGuardFBAngleMax);
}
// NONMATCHING - extra useless mr
int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
if (mProcID == PROC_GUARD_SLIP) {
return 0;
@@ -254,7 +253,7 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
mProcVar2.field_0x300c = 0;
mProcVar3.field_0x300e = 0;
} else {
const daAlinkHIO_anm_c* var_r27 = &daAlinkHIO_guard_c0::m.mGuardHitAnm;
const daAlinkHIO_anm_c* var_r27 = &mpHIO->mGuard.m.mGuardHitAnm;
daAlink_ANM var_r28;
if (field_0x2f98 == 2) {
var_r28 = ANM_GUARD_LEFT;
@@ -269,11 +268,11 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
if (abs(mProcVar2.field_0x300c) > 0x7000) {
mProcVar2.field_0x300c = 0;
} else {
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -daAlinkHIO_guard_c0::m.mGuardLRAngleMax, daAlinkHIO_guard_c0::m.mGuardLRAngleMax);
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -mpHIO->mGuard.m.mGuardLRAngleMax, mpHIO->mGuard.m.mGuardLRAngleMax);
}
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -daAlinkHIO_guard_c0::m.mGuardFBAngleMax, daAlinkHIO_guard_c0::m.mGuardFBAngleMax);
mProcVar1.field_0x300a = daAlinkHIO_guard_c0::m.mGuardBodyInterpolation + 1;
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -mpHIO->mGuard.m.mGuardFBAngleMax, mpHIO->mGuard.m.mGuardFBAngleMax);
mProcVar1.field_0x300a = mpHIO->mGuard.m.mGuardBodyInterpolation + 1;
mProcVar2.field_0x300c = (mProcVar2.field_0x300c - mBodyAngle.y) / mProcVar1.field_0x300a;
mProcVar3.field_0x300e = (mProcVar3.field_0x300e - mBodyAngle.x) / mProcVar1.field_0x300a;
mProcVar1.field_0x300a--;
@@ -287,10 +286,10 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
if (param_1 != NULL && param_1->GetTgHitAc() != NULL && fopAcM_GetName(param_1->GetTgHitAc()) == PROC_E_MM_MT && param_1->GetTgHitAc()->argument == 1) {
if (checkBootsOrArmorHeavy()) {
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneHvyGuardSpeed;
mNormalSpeed = mpHIO->mGuard.m.mMagneHvyGuardSpeed;
mProcVar5.field_0x3012 = 1;
} else {
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneGuardSpeed;
mNormalSpeed = mpHIO->mGuard.m.mMagneGuardSpeed;
mProcVar5.field_0x3012 = 0;
}
@@ -299,12 +298,12 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
if ((!checkBootsOrArmorHeavy() && checkMiddleBossGoronRoom()) || checkStageName("D_MN07B")) {
mNormalSpeed = 40.0f;
} else {
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedHuge;
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedHuge;
}
} else if (checkLargeAttack(param_0)) {
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedLarge;
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedLarge;
} else {
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedNormal;
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedNormal;
}
field_0x2f9d = 0x60;
@@ -363,7 +362,7 @@ int daAlink_c::procGuardAttackInit() {
}
commonProcInit(PROC_GUARD_ATTACK);
const daAlinkHIO_guardAttack_c1* temp_r30 = &daAlinkHIO_gAtPush_c0::m;
const daAlinkHIO_guardAttack_c1* temp_r30 = &mpHIO->mGuard.mAtPush.m;
field_0x2f98 = 3;
field_0x34d4 = l_rWaitBaseAnime;
@@ -393,7 +392,7 @@ int daAlink_c::procGuardAttackInit() {
mGuardAtCps.ResetAtHit();
mGuardAtCps.SetAtSe(2);
mGuardAtCps.SetR(daAlinkHIO_guard_c0::m.mAttackRadius);
mGuardAtCps.SetR(mpHIO->mGuard.m.mAttackRadius);
current.angle.y = shape_angle.y;
@@ -410,7 +409,7 @@ int daAlink_c::procGuardAttack() {
setUpperGuardAnime(-1.0f);
field_0x2f99 = 4;
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
setShapeAngleToAtnActor(1);
current.angle.y = shape_angle.y;
@@ -481,7 +480,7 @@ int daAlink_c::procGuardAttack() {
int daAlink_c::procGuardBreakInit() {
commonProcInit(PROC_GUARD_BREAK);
setSingleAnimeParam(ANM_GUARD_BREAK, &daAlinkHIO_guard_c0::m.mGuardBreakAnm);
setSingleAnimeParam(ANM_GUARD_BREAK, &mpHIO->mGuard.m.mGuardBreakAnm);
if (mEquipItem == fpcNm_ITEM_IRONBALL) {
deleteEquipItem(0, 0);
@@ -506,7 +505,7 @@ int daAlink_c::procGuardBreak() {
onEndResetFlg1(ERFLG1_UNK_20);
}
checkNextAction(0);
} else if (temp_r30->getFrame() > daAlinkHIO_guard_c0::m.mGuardBreakAnm.mCancelFrame) {
} else if (temp_r30->getFrame() > mpHIO->mGuard.m.mGuardBreakAnm.mCancelFrame) {
if (!checkGuardActionChange()) {
onEndResetFlg1(ERFLG1_UNK_20);
}
@@ -540,14 +539,14 @@ int daAlink_c::procTurnMoveInit(int param_0) {
var_r29 = ANM_SIDE_ROLL_LEFT;
}
f32 temp_f31 = daAlinkHIO_turnMove_c0::m.mTurnAnm.mSpeed;
mProcVar1.field_0x300a = daAlinkHIO_turnMove_c0::m.mMaxTurnSpeed;
f32 temp_f31 = mpHIO->mGuard.mTurnMove.m.mTurnAnm.mSpeed;
mProcVar1.field_0x300a = mpHIO->mGuard.mTurnMove.m.mMaxTurnSpeed;
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
mProcVar1.field_0x300a = mProcVar1.field_0x300a * daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
mProcVar1.field_0x300a = mProcVar1.field_0x300a * mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
}
setSingleAnime(var_r29, temp_f31, daAlinkHIO_turnMove_c0::m.mTurnAnm.mStartFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mEndFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mInterpolation);
setSingleAnime(var_r29, temp_f31, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mStartFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mEndFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation);
if (var_r29 == ANM_SIDE_ROLL_LEFT) {
mProcVar2.field_0x300c = -0x7FF0;
@@ -591,7 +590,7 @@ int daAlink_c::procTurnMove() {
onEndResetFlg0(ERFLG0_UNK_8000000);
s16 temp_r28 = mProcVar2.field_0x300c;
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, daAlinkHIO_turnMove_c0::m.mTurnSpeedRate, mProcVar1.field_0x300a, daAlinkHIO_turnMove_c0::m.mMinTurnSpeed);
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, mpHIO->mGuard.mTurnMove.m.mTurnSpeedRate, mProcVar1.field_0x300a, mpHIO->mGuard.mTurnMove.m.mMinTurnSpeed);
s16 temp_r29 = temp_r28 - mProcVar2.field_0x300c;
if (temp_r28 > 0) {
@@ -623,11 +622,11 @@ int daAlink_c::procTurnMove() {
offNoResetFlg2(FLG2_UNK_8000000);
}
checkNextAction(0);
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTwirlCutDelayF) {
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTwirlCutDelayF) {
procCutFinishJumpUpInit();
dComIfGp_setPlayerStatus0(0, 4);
} else {
if (temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) {
if (temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTurnAnm.mCancelFrame) {
onModeFlg(4);
if (checkNextAction(1)) {
+100 -100
View File
@@ -13,8 +13,8 @@
#include "d/actor/d_a_obj_swhang.h"
f32 daAlink_c::getHangMoveAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_wallMove_c0::m.mMinAnmSpeed,
daAlinkHIO_wallMove_c0::m.mMaxAnmSpeed);
return getAnmSpeedStickRate(mpHIO->mWallHang.mWallMove.m.mMinAnmSpeed,
mpHIO->mWallHang.mWallMove.m.mMaxAnmSpeed);
}
int daAlink_c::getHangDirectionFromAngle() {
@@ -189,7 +189,7 @@ void daAlink_c::setHangGroundY() {
int daAlink_c::changeHangEndProc() {
setHangGroundY();
if (current.pos.y < field_0x33d8 + daAlinkHIO_wallHang_c0::m.hang_foot_pos_height - 1.0f &&
if (current.pos.y < field_0x33d8 + mpHIO->mWallHang.m.hang_foot_pos_height - 1.0f &&
(mProcID != PROC_HANG_FALL_START || !(mUnderFrameCtrl->getFrame() < 3.0f)) &&
field_0x33d8 < current.pos.y - 5.0f)
{
@@ -200,7 +200,7 @@ int daAlink_c::changeHangEndProc() {
if (doTrigger()) {
speed.y = 0.0f;
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
return 0;
@@ -280,20 +280,20 @@ int daAlink_c::procHangStartInit() {
if (checkHangFootWall()) {
if (!hang_ready && cM_rnd() < 0.7f) {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_FOOT_MISS);
} else {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_JUMP_HANG);
}
field_0x2f92 = 0xFE;
field_0x2f93 = 0xFE;
} else {
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
field_0x3478 = daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mCancelFrame;
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
field_0x3478 = mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_JUMP_HANG);
}
@@ -322,7 +322,7 @@ int daAlink_c::procHangStart() {
} else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR() &&
getDirectionFromShapeAngle() == DIR_FORWARD)
{
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
}
return 1;
@@ -379,14 +379,14 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) {
if (mProcID == PROC_FRONT_ROLL) {
morf = 0.0f;
} else {
morf = daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mInterpolation;
morf = mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mInterpolation;
}
commonProcInit(PROC_HANG_FALL_START);
offNoResetFlg2(FLG2_UNK_2000);
setSingleAnime(ANM_HANG_ONE_HAND, daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mSpeed,
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mStartFrame,
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mEndFrame, morf);
setSingleAnime(ANM_HANG_ONE_HAND, mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mSpeed,
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mStartFrame,
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mEndFrame, morf);
mNormalSpeed = 0.0f;
speed.y = 0.0f;
@@ -403,7 +403,7 @@ int daAlink_c::procHangFallStart() {
BOOL bvar;
if (checkAnmEnd(frame_ctrl) ||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mCancelFrame)
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mCancelFrame)
{
bvar = true;
} else {
@@ -431,7 +431,7 @@ int daAlink_c::procHangFallStart() {
int daAlink_c::procHangUpInit(int param_0) {
commonProcInit(PROC_HANG_UP);
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm);
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm);
dComIfGp_setPlayerStatus0(0, 0x100);
setBowHangAnime();
field_0x3198 = param_0;
@@ -451,10 +451,10 @@ int daAlink_c::procHangUp() {
}
return 1;
} else if (checkAnmEnd(frame_ctrl) ||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm.mCancelFrame)
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm.mCancelFrame)
{
if (field_0x3198 == 0) {
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
} else if (changeHangMoveProc(field_0x3198)) {
procHangMoveInit(field_0x3198);
} else {
@@ -470,13 +470,13 @@ int daAlink_c::procHangWaitInit() {
commonProcInit(PROC_HANG_WAIT);
if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) {
setSingleAnime(ANM_CLIMB_HANG, 0.0f, daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame,
daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame, 5.0f);
setSingleAnime(ANM_CLIMB_HANG, 0.0f, mpHIO->mLadder.m.mWallAttachAnm.mEndFrame,
mpHIO->mLadder.m.mWallAttachAnm.mEndFrame, 5.0f);
field_0x2f92 = 0xFE;
field_0x2f93 = 0xFE;
} else {
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 5.0f);
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 5.0f);
}
setBowHangAnime();
@@ -497,14 +497,14 @@ int daAlink_c::procHangWait() {
setClimbShapeOffset();
if (checkNoResetFlg2(FLG2_UNK_2000) && !checkHangFootWall()) {
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 10.0f);
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 10.0f);
}
if (checkInputOnR()) {
int direction = getHangDirectionFromAngle();
if (direction == DIR_FORWARD) {
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
}
if (direction != DIR_BACKWARD && changeHangMoveProc(direction)) {
@@ -547,7 +547,7 @@ int daAlink_c::procHangMoveInit(int param_0) {
}
setSingleAnimeBaseSpeed(anm, getHangMoveAnmSpeed(),
daAlinkHIO_wallMove_c0::m.mInterpolation);
mpHIO->mWallHang.mWallMove.m.mInterpolation);
}
if (param_0 == 2) {
@@ -571,7 +571,7 @@ int daAlink_c::procHangMove() {
if (!changeHangEndProc()) {
if (direction == DIR_FORWARD && checkInputOnR()) {
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
} else {
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
@@ -680,9 +680,9 @@ int daAlink_c::procHangClimbInit(f32 param_0) {
BOOL wall_catch = mProcID == PROC_HANG_WALL_CATCH;
commonProcInit(PROC_HANG_CLIMB);
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed, param_0,
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed, param_0,
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
if (checkBowItem(mEquipItem)) {
field_0x33dc = mUnderFrameCtrl[0].getFrame();
@@ -730,7 +730,7 @@ int daAlink_c::procHangClimb() {
if (checkAnmEnd(frameCtrl)) {
checkNextAction(0);
} else if (frameCtrl->getFrame() > daAlinkHIO_wallCatch_c0::m.mClimbAnm.mCancelFrame) {
} else if (frameCtrl->getFrame() > mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
}
@@ -760,7 +760,7 @@ int daAlink_c::procHangWallCatchInit() {
}
commonProcInit(PROC_HANG_WALL_CATCH);
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &daAlinkHIO_wallCatch_c0::m.mGrabBAnm);
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &mpHIO->mWallHang.mWallCatch.m.mGrabBAnm);
setBowHangAnime();
current.pos.x = sp38.x;
current.pos.y = sp38.y;
@@ -785,9 +785,9 @@ int daAlink_c::procHangWallCatch() {
}
if (checkAnmEnd(mUnderFrameCtrl) &&
!procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbStartFrame))
!procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame))
{
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
return 1;
@@ -805,7 +805,7 @@ int daAlink_c::procHangReadyInit() {
}
commonProcInit(PROC_HANG_READY);
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
mProcVar2.field_0x300c = field_0x306e + 0x8000;
field_0x3198 = field_0x2f91;
@@ -847,7 +847,7 @@ int daAlink_c::procHangLeverDownInit() {
commonProcInit(PROC_HANG_LEVER_DOWN);
field_0x280c.setData(field_0x27f4);
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
field_0x3198 = ANM_CLIMB_JUMP;
@@ -875,7 +875,7 @@ int daAlink_c::procHangLeverDown() {
offModeFlg(1);
onModeFlg(0x6042);
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
voiceStart(Z2SE_AL_V_JUMP_HANG);
field_0x2f99 = 0x50;
field_0x3198 = ANM_HANG_READY;
@@ -1090,13 +1090,13 @@ int daAlink_c::procBossBodyHang() {
mProcVar1.field_0x300a = 3;
} else {
if (field_0x32cc != 0) {
setSingleAnimeParam(ANM_DRAGON_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
setSingleAnimeParam(ANM_DRAGON_CUT, &mpHIO->mCut.m.mStabAnm);
} else {
setSingleAnimeParam(ANM_MORPHEEL_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
setSingleAnimeParam(ANM_MORPHEEL_CUT, &mpHIO->mCut.m.mStabAnm);
}
field_0x3198 = 0x16C;
field_0x3478 = daAlinkHIO_cut_c0::m.mStabAnm.mCancelFrame;
field_0x3478 = mpHIO->mCut.m.mStabAnm.mCancelFrame;
field_0x347c = 10.0f;
mProcVar4.field_0x3010 = 0;
mProcVar1.field_0x300a = 1;
@@ -1161,7 +1161,7 @@ int daAlink_c::setLadderInit() {
if (checkModeFlg(0x40000)) {
setLadderPos(getLadderUnitCount() - 2);
while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mStartHeight) {
while (mWaterY - current.pos.y > mpHIO->mSwim.m.mStartHeight) {
current.pos.y += 37.5f;
}
@@ -1235,8 +1235,8 @@ void daAlink_c::setLadderPos(int param_0) {
f32 daAlink_c::getLadderMoveAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mMoveMinASpeed,
daAlinkHIO_ladder_c0::m.mMoveMaxSpeed);
return getAnmSpeedStickRate(mpHIO->mLadder.m.mMoveMinASpeed,
mpHIO->mLadder.m.mMoveMaxSpeed);
}
int daAlink_c::changeLadderMoveProc(int param_0) {
@@ -1302,7 +1302,7 @@ int daAlink_c::setMoveBGLadderCorrect() {
field_0x37c8.z + cM_scos(current.angle.y) * 50.0f);
if (!commonLineCheck(&field_0x37c8, &sp28) || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 4) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
mPolyInfo1.SetPolyInfo(mLinkLinChk);
@@ -1315,7 +1315,7 @@ int daAlink_c::checkLadderFall() {
if (doTrigger()) {
field_0x2f99 = 0;
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
return 0;
@@ -1332,8 +1332,8 @@ int daAlink_c::procLadderUpStartInit() {
mNormalSpeed = 0.0f;
speedF = 0.0f;
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, daAlinkHIO_ladder_c0::m.mClimbUpStartASpeed,
daAlinkHIO_ladder_c0::m.mClimbUpStartInterp);
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, mpHIO->mLadder.m.mClimbUpStartASpeed,
mpHIO->mLadder.m.mClimbUpStartInterp);
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
dComIfGp_setPlayerStatus0(0, 0x2000000);
@@ -1376,8 +1376,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
commonProcInit(PROC_LADDER_UP_END);
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT;
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbUpEndASpeed,
daAlinkHIO_ladder_c0::m.mClimbUpEndInterp);
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbUpEndASpeed,
mpHIO->mLadder.m.mClimbUpEndInterp);
field_0x2f99 = 14;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@@ -1403,7 +1403,7 @@ int daAlink_c::procLadderUpEnd() {
if (checkAnmEnd(frame_ctrl)) {
checkNextAction(0);
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbUpEndCF) ||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbUpEndCF) ||
!checkNextAction(1))
{
if (frame_ctrl->getFrame() >= 23.0f) {
@@ -1436,8 +1436,8 @@ int daAlink_c::procLadderDownStartInit() {
shape_angle.y = field_0x306e + 0x8000;
current.angle.y = field_0x306e;
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, daAlinkHIO_ladder_c0::m.mClimbDownStartASpeed,
daAlinkHIO_ladder_c0::m.mClimbDownStartInterp);
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, mpHIO->mLadder.m.mClimbDownStartASpeed,
mpHIO->mLadder.m.mClimbDownStartInterp);
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
dComIfGp_setPlayerStatus0(0, 0x2000000);
@@ -1487,8 +1487,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
commonProcInit(PROC_LADDER_DOWN_END);
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT;
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbDownEndASpeed,
daAlinkHIO_ladder_c0::m.mClimbDownEndInterp);
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbDownEndASpeed,
mpHIO->mLadder.m.mClimbDownEndInterp);
field_0x2f99 = 14;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@@ -1509,7 +1509,7 @@ int daAlink_c::procLadderDownEnd() {
if (checkAnmEnd(frame_ctrl)) {
checkNextAction(0);
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbDownEndCF) ||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbDownEndCF) ||
!checkNextAction(1))
{
if (frame_ctrl->getFrame() >= 11.0f) {
@@ -1566,7 +1566,7 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) {
}
}
setSingleAnimeBaseSpeed(anm, anm_speed, daAlinkHIO_ladder_c0::m.mMoveInterp);
setSingleAnimeBaseSpeed(anm, anm_speed, mpHIO->mLadder.m.mMoveInterp);
field_0x2f98 = param_1;
if (!param_1) {
@@ -1614,13 +1614,13 @@ int daAlink_c::procLadderMove() {
}
f32 daAlink_c::getClimbMoveUpDownAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallVerticalMinAnmSpeed,
daAlinkHIO_ladder_c0::m.mWallVerticalMaxAnmSpeed);
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallVerticalMinAnmSpeed,
mpHIO->mLadder.m.mWallVerticalMaxAnmSpeed);
}
f32 daAlink_c::getClimbMoveSideAnmSpeed() {
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallHorizontalMinAnmSpeed,
daAlinkHIO_ladder_c0::m.mWallHorizontalMaxAnmSpeed);
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallHorizontalMinAnmSpeed,
mpHIO->mLadder.m.mWallHorizontalMaxAnmSpeed);
}
BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_poly) {
@@ -1810,7 +1810,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
}
if (mLinkAcch.ChkGroundHit()) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
f32 var_f31 = cM_ssin(shape_angle.y);
@@ -1837,7 +1837,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
((mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_CLIMB_MOVE_SIDE) &&
current.pos.y - 15.0f < dComIfG_Bgsp().GroundCross(&mLinkGndChk)))
{
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
cM3dGPla sp44;
@@ -1845,7 +1845,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
s16 temp_r29 = sp44.mNormal.atan2sX_Z();
if (cLib_distanceAngleS(temp_r29, shape_angle.y) <= 0x549F) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
s16 temp_r28 = shape_angle.y;
@@ -1993,7 +1993,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) {
if (checkClimbGround(&sp8C, sp98.y)) {
current.pos = sp8C;
onResetFlg0(RFLG0_UNK_40000);
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
} else {
current.pos.y -= 30.0f;
return procClimbWaitInit(1, 1);
@@ -2059,12 +2059,12 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
mNormalSpeed = 0.0f;
if (param_0 || var_r29 || cM_rnd() < 0.3f) {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_JUMP_HANG);
} else {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
voiceStart(Z2SE_AL_V_FOOT_MISS);
}
@@ -2072,7 +2072,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
dComIfGp_setPlayerStatus0(0, 8);
if (param_0) {
current.pos.y = field_0x34ec.y + daAlinkHIO_ladder_c0::m.mWallApproachOffset;
current.pos.y = field_0x34ec.y + mpHIO->mLadder.m.mWallApproachOffset;
}
field_0x2f99 = 2;
@@ -2138,12 +2138,12 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) {
deleteEquipItem(TRUE, FALSE);
if (cM_rnd() < 0.7f) {
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
mProcVar0.field_0x3008 = 0;
} else {
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
mProcVar0.field_0x3008 = 1;
voiceStart(Z2SE_AL_V_FOOT_MISS);
}
@@ -2504,7 +2504,7 @@ int daAlink_c::procClimbToRoof() {
if (sp38.y < current.pos.y + 214.0f + 110.0f) {
procRoofHangStartInit(mLinkRoofChk, sp38, 1);
} else {
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
}
@@ -2513,13 +2513,13 @@ int daAlink_c::procClimbToRoof() {
f32 daAlink_c::getRoofHangFMoveAnmSpeed() const {
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinASpeed,
daAlinkHIO_roofHang_c0::m.mVertMoveMaxASpeed);
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinASpeed,
mpHIO->mRoofHang.m.mVertMoveMaxASpeed);
}
f32 daAlink_c::getRoofHangSMoveAnmSpeed() const {
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mHorizMoveMinASpeed,
daAlinkHIO_roofHang_c0::m.mHorizMoveMaxASpeed);
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mHorizMoveMinASpeed,
mpHIO->mRoofHang.m.mHorizMoveMaxASpeed);
}
void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) {
@@ -2566,7 +2566,7 @@ int daAlink_c::commonRoofHangProc() {
setDoStatus(0x33);
if (doTrigger()) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
cXyz sp28(current.pos.x, (current.pos.y + 214.0f) - 10.0f, current.pos.z);
@@ -2579,7 +2579,7 @@ int daAlink_c::commonRoofHangProc() {
current.pos.y = roof_y - 214.0f;
mPolyInfo2.SetPolyInfo(mLinkRoofChk);
} else {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
return 0;
@@ -2624,7 +2624,7 @@ int daAlink_c::checkNextActionRoofHang() {
int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1,
int param_2) {
commonProcInit(PROC_ROOF_HANG_START);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
mPolyInfo2.SetPolyInfo(param_0);
current.pos = param_1;
@@ -2655,7 +2655,7 @@ int daAlink_c::procRoofHangStart() {
if (mProcVar0.field_0x3008 == 0 &&
(checkAnmEnd(frame_ctrl) ||
(checkInputOnR() &&
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.mRoofHangAnm.mCancelFrame)))
frame_ctrl->getFrame() > mpHIO->mRoofHang.m.mRoofHangAnm.mCancelFrame)))
{
checkNextActionRoofHang();
} else if (checkAnmEnd(frame_ctrl)) {
@@ -2684,7 +2684,7 @@ int daAlink_c::procRoofHangWaitInit(int param_0) {
}
}
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed, daAlinkHIO_roofHang_c0::m.mStandbyInterp);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed, mpHIO->mRoofHang.m.mStandbyInterp);
current.angle.y = shape_angle.y;
setSpecialGravity(0.0f, maxFallSpeed, 0);
@@ -2731,7 +2731,7 @@ int daAlink_c::procRoofHangFrontMoveInit() {
frame = mUnderFrameCtrl[0].getFrame();
}
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, daAlinkHIO_roofHang_c0::m.mVertMoveInterp);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, mpHIO->mRoofHang.m.mVertMoveInterp);
if (frame >= 0) {
mUnderFrameCtrl[0].setFrame(frame);
@@ -2758,9 +2758,9 @@ int daAlink_c::procRoofHangFrontMove() {
checkNextActionRoofHang();
} else {
if (!checkAttentionLock()) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_roofHang_c0::m.mTurnAngleRate,
daAlinkHIO_roofHang_c0::m.mMaxTurnAngle,
daAlinkHIO_roofHang_c0::m.mMinTurnAngle);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, mpHIO->mRoofHang.m.mTurnAngleRate,
mpHIO->mRoofHang.m.mMaxTurnAngle,
mpHIO->mRoofHang.m.mMinTurnAngle);
if (field_0x2f98 == 0) {
shape_angle.y = current.angle.y;
@@ -2776,8 +2776,8 @@ int daAlink_c::procRoofHangFrontMove() {
frame = frameCtrl->getFrame();
}
mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinSpeed,
daAlinkHIO_roofHang_c0::m.mVertMoveMaxSpeed) *
mNormalSpeed = getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinSpeed,
mpHIO->mRoofHang.m.mVertMoveMaxSpeed) *
cM_fsin((frame * M_PI) * 0.083333336f);
if (mNormalSpeed < 0.0f) {
mNormalSpeed = 0.0f;
@@ -2804,7 +2804,7 @@ int daAlink_c::procRoofHangFrontMove() {
if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), shape_angle.y) > 0x6000) {
current.pos.x = sp70.mNormal.x * 15.0f + mLinkLinChk.GetCross().x;
current.pos.z = sp70.mNormal.z * 15.0f + mLinkLinChk.GetCross().z;
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
}
}
@@ -2833,7 +2833,7 @@ int daAlink_c::procRoofHangSideMoveInit() {
}
setSingleAnimeBaseSpeed(anm_id, getRoofHangSMoveAnmSpeed(),
daAlinkHIO_roofHang_c0::m.mHorizMoveInterp);
mpHIO->mRoofHang.m.mHorizMoveInterp);
setSpecialGravity(0.0f, maxFallSpeed, 0);
f32 tmp_0 = 0.0f;
@@ -2874,7 +2874,7 @@ int daAlink_c::procRoofHangTurnInit() {
f32 anm_speed;
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
anm_speed = -daAlinkHIO_roofHang_c0::m.mInvertASpeed;
anm_speed = -mpHIO->mRoofHang.m.mInvertASpeed;
mProcVar0.field_0x3008 = 1;
shape_angle.y += 0x8000;
setOldRootQuaternion(0, -0x8000, 0);
@@ -2883,7 +2883,7 @@ int daAlink_c::procRoofHangTurnInit() {
field_0x3478 = 0.0f;
field_0x347c = 10.0f;
} else {
anm_speed = daAlinkHIO_roofHang_c0::m.mInvertASpeed;
anm_speed = mpHIO->mRoofHang.m.mInvertASpeed;
mProcVar0.field_0x3008 = 0;
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
field_0x3478 = 10.0f;
@@ -2891,7 +2891,7 @@ int daAlink_c::procRoofHangTurnInit() {
}
current.angle.y = shape_angle.y;
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.mInvertInterp);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, mpHIO->mRoofHang.m.mInvertInterp);
if (mProcVar0.field_0x3008 != 0) {
setFaceBasicTexture(FTANM_UNK_4);
@@ -2945,7 +2945,7 @@ void daAlink_c::setRoofHangSwitch() {
int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
commonProcInit(PROC_ROOF_SWITCH_HANG);
deleteEquipItem(TRUE, FALSE);
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
setSpecialGravity(0.0f, maxFallSpeed, 0);
f32 tmp_0 = 0.0f;
@@ -2970,20 +2970,20 @@ int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
int daAlink_c::procRoofSwitchHang() {
if (field_0x280c.getActor() == NULL) {
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
setRoofHangSwitch();
if (checkAnmEnd(mUnderFrameCtrl)) {
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed,
daAlinkHIO_roofHang_c0::m.mStandbyInterp);
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed,
mpHIO->mRoofHang.m.mStandbyInterp);
mProcVar2.field_0x300c = 1;
} else if (mProcVar2.field_0x300c != 0) {
setDoStatus(0x33);
if (doTrigger()) {
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
}
+44 -44
View File
@@ -123,26 +123,26 @@ void daAlink_c::hsChainShape_c::draw() {
}
}
} else {
const cXyz& sp3C = temp_r3->getHsChainRootPos();
const cXyz& sp38 = temp_r3->getHsChainTopPos();
cXyz spA4 = sp3C - sp38;
const cXyz& chainRootPos = temp_r3->getHsChainRootPos();
const cXyz& chainTopPos = temp_r3->getHsChainTopPos();
cXyz maxDistance = chainRootPos - chainTopPos;
f32 temp_f31 = spA4.abs();
f32 maxDistanceF = maxDistance.abs();
f32 var_f30;
cXyz sp98;
csXyz sp6C;
if (temp_f31 > 1.0f) {
spA4 *= (1.0f / temp_f31);
if (maxDistanceF > 1.0f) {
maxDistance *= (1.0f / maxDistanceF);
var_f30 = 0.0f;
sp98 = sp38;
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
sp98 = sp38;
sp98 = chainTopPos;
sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0);
sp98 = chainTopPos;
csXyz sp64(sp6C);
f32 sp34 = M_PI / temp_f31;
f32 sp34 = M_PI / maxDistanceF;
f32 temp_f27;
f32 var_f26 = 0.0f;
@@ -153,7 +153,7 @@ void daAlink_c::hsChainShape_c::draw() {
var_f28 *= -1.0f;
}
while (temp_f31 > var_f30) {
while (maxDistanceF > var_f30) {
temp_f27 = var_f28 * cM_fsin(sp34 * var_f30);
s16 spC = cM_atan2s(temp_f27 - var_f26, 5.0f);
sp64.x = sp6C.x + spC;
@@ -180,15 +180,15 @@ void daAlink_c::hsChainShape_c::draw() {
const cXyz& sp30 = temp_r3->getHsSubChainRootPos();
const cXyz& sp2C = temp_r3->getHsSubChainTopPos();
spA4 = sp30 - sp2C;
maxDistance = sp30 - sp2C;
f32 temp_f1 = spA4.abs();
f32 temp_f1 = maxDistance.abs();
if (temp_f1 > 1.0f) {
spA4 *= (1.0f / temp_f1);
maxDistance *= (1.0f / temp_f1);
var_f30 = 0.0f;
sp98 = sp2C;
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0);
while (temp_f1 > var_f30) {
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
@@ -200,7 +200,7 @@ void daAlink_c::hsChainShape_c::draw() {
sp5C->getShape()->simpleDrawCache();
sp98 += spA4 * 5.0f;
sp98 += maxDistance * 5.0f;
sp6C.z += 0x3000;
var_f30 += 5.0f;
}
@@ -395,7 +395,7 @@ void daAlink_c::setHookshotModel() {
mpHookshotLinChk->OffFullGrp();
mpHookshotLinChk->OnWaterGrp();
J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(0x17F, 0x800);
J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_HS_TIP_OPEN_e, 0x800);
mHookTipBck.init(bck2, 0, 2, 1.0f, 0, -1, false);
mDoExt_setCurrentHeap(heap);
@@ -426,9 +426,9 @@ void daAlink_c::setHookshotSight() {
cXyz sight_pos;
f32 length;
if (checkLv7BossRoom()) {
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
} else {
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
length = mpHIO->mItem.mHookshot.m.mMaxLength;
}
BOOL line_cross = checkSightLine(length, &sight_pos);
@@ -519,7 +519,7 @@ int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) {
mUpperFrameCtrl[2].setFrame(tmp_0);
getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0);
} else {
setWaterInAnmRate(&mUpperFrameCtrl[2], daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed);
setWaterInAnmRate(&mUpperFrameCtrl[2], mpHIO->mItem.mHookshot.m.mWaitAnmSpeed);
}
return 1;
@@ -545,10 +545,10 @@ void daAlink_c::setHookshotReadyAnime() {
if (!checkAttentionLock() && mFastShotTime == 0) {
speed = 0.0f;
} else {
speed = daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed;
speed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed;
}
setUpperAnimeBaseSpeed(0x18D, speed, 3.0f);
setUpperAnimeBaseSpeed(dRes_INDEX_ALANM_BCK_HSWAIT_e, speed, 3.0f);
field_0x3020 = 0;
initHookshotReady();
}
@@ -583,7 +583,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
setSingleAnimeBaseMorf(anmID, 0.0f);
} else if (checkModeFlg(0x40400)) {
setUpperAnimeParam(0x18C, UPPER_2, &daAlinkHIO_hookshot_c0::m.mShootAnm);
setUpperAnimeParam(0x18C, UPPER_2, &mpHIO->mItem.mHookshot.m.mShootAnm);
if (checkModeFlg(0x40000)) {
mNormalSpeed = 0.0f;
@@ -599,7 +599,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
mSpeedModifier = tmp_0;
mNowAnmPackUpper[2].setRatio(tmp_0);
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &daAlinkHIO_hookshot_c0::m.mShootAnm);
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &mpHIO->mItem.mHookshot.m.mShootAnm);
}
if (!checkNoResetFlg3(FLG3_UNK_4)) {
@@ -701,7 +701,7 @@ void daAlink_c::setHookshotReturnEnd() {
field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa);
} else if (checkHookshotShootAnime()) {
setUpperAnimeBaseSpeed(
0x18D, checkAttentionLock() ? daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed : 0.0f, 3.0f);
0x18D, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f);
}
mFastShotTime = 0;
@@ -863,21 +863,21 @@ void daAlink_c::setHookshotPos() {
f32 shoot_speed;
f32 length;
if (checkLv7BossRoom()) {
return_speed = daAlinkHIO_hookshot_c0::m.mBossReturnSpeed;
shoot_speed = daAlinkHIO_hookshot_c0::m.mBossShootSpeed;
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
return_speed = mpHIO->mItem.mHookshot.m.mBossReturnSpeed;
shoot_speed = mpHIO->mItem.mHookshot.m.mBossShootSpeed;
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
} else {
return_speed = daAlinkHIO_hookshot_c0::m.mReturnSpeed;
shoot_speed = daAlinkHIO_hookshot_c0::m.mShootSpeed;
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
return_speed = mpHIO->mItem.mHookshot.m.mReturnSpeed;
shoot_speed = mpHIO->mItem.mHookshot.m.mShootSpeed;
length = mpHIO->mItem.mHookshot.m.mMaxLength;
}
if (mItemMode == HS_MODE_RETURN_e) {
if (targetAc_p != NULL) {
if (checkLv7BossRoom()) {
return_speed = daAlinkHIO_hookshot_c0::m.mBossStickReturnSpeed;
return_speed = mpHIO->mItem.mHookshot.m.mBossStickReturnSpeed;
} else {
return_speed = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed;
return_speed = mpHIO->mItem.mHookshot.m.mStickReturnSpeed;
}
}
@@ -1209,7 +1209,7 @@ void daAlink_c::hookshotRoofTurn() {
BOOL play_sound = false;
if (!dComIfGp_checkPlayerStatus0(0, 0x2000)) {
f32 max_rise_y = (mIronBallBgChkPos.y + 15.0f) - 1.5f;
f32 min_descend_y = mIronBallBgChkPos.y - daAlinkHIO_hookshot_c0::m.mMaxLength;
f32 min_descend_y = mIronBallBgChkPos.y - mpHIO->mItem.mHookshot.m.mMaxLength;
if (checkInputOnR()) {
int stick_direction = getDirectionFromAngle(mStickAngle);
@@ -1223,7 +1223,7 @@ void daAlink_c::hookshotRoofTurn() {
current.angle.y = shape_angle.y;
if (stick_direction == DIR_FORWARD) {
current.pos.y += daAlinkHIO_hookshot_c0::m.mRoofHangRiseSpeed * field_0x33a8;
current.pos.y += mpHIO->mItem.mHookshot.m.mRoofHangRiseSpeed * field_0x33a8;
if (current.pos.y > max_rise_y) {
current.pos.y = max_rise_y;
} else {
@@ -1231,7 +1231,7 @@ void daAlink_c::hookshotRoofTurn() {
play_sound = true;
}
} else if (stick_direction == DIR_BACKWARD) {
f32 descend_speed = daAlinkHIO_hookshot_c0::m.mRoofHangDecendSpeed * field_0x33ac;
f32 descend_speed = mpHIO->mItem.mHookshot.m.mRoofHangDecendSpeed * field_0x33ac;
if (checkBootsOrArmorHeavy()) {
descend_speed *= 1.5f;
}
@@ -1379,7 +1379,7 @@ int daAlink_c::procHookshotSubjectInit() {
if (initHookshotUpperAnimeSpeed(1)) {
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_LEFT, 0.0f,
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
mpHIO->mItem.mHookshot.m.mStartInterpolation);
}
dComIfGp_setPlayerStatus0(0, 0x4000);
@@ -1422,7 +1422,7 @@ int daAlink_c::procHookshotMoveInit() {
}
if (initHookshotUpperAnimeSpeed(0)) {
setBlendAtnMoveAnime(daAlinkHIO_hookshot_c0::m.mStartInterpolation);
setBlendAtnMoveAnime(mpHIO->mItem.mHookshot.m.mStartInterpolation);
}
dComIfGp_setPlayerStatus0(0, 0x4000);
@@ -1440,7 +1440,7 @@ int daAlink_c::procHookshotMove() {
if (field_0x2f98 != 2) {
field_0x2f98 = 2;
blend = daAlinkHIO_basic_c0::m.mBasicInterpolation;
blend = mpHIO->mBasic.m.mBasicInterpolation;
}
} else {
offModeFlg(1);
@@ -1529,7 +1529,7 @@ int daAlink_c::procHookshotFly() {
} else {
mProcVar0.field_0x3008 = 0;
f32 temp_f31 = field_0x37d4.abs();
f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
f32 temp_f30 = mpHIO->mItem.mHookshot.m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
setHookshotReturnEnd();
@@ -1665,7 +1665,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
}
mProcVar2.field_0x300c = 0;
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm);
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mRoofHangAnm);
} else {
setHookshotRoofWaitAnime();
mProcVar2.field_0x300c = 1;
@@ -1737,7 +1737,7 @@ int daAlink_c::procHookshotRoofWait() {
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
if (frameCtrl_p->checkAnmEnd() ||
((checkInputOnR() || mProcVar5.field_0x3012 != 0 || checkHookshotRoofLv7Boss()) &&
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCancelFrame))
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mRoofHangAnm.mCancelFrame))
{
setHookshotRoofWaitAnime();
mProcVar2.field_0x300c = 1;
@@ -1930,7 +1930,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
}
mProcVar2.field_0x300c = 0;
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm);
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mWallHangAnm);
} else {
setHookshotWallWaitAnime();
mProcVar2.field_0x300c = 1;
@@ -2003,7 +2003,7 @@ int daAlink_c::procHookshotWallWait() {
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
if (frameCtrl_p->checkAnmEnd() ||
((checkInputOnR() || mProcVar5.field_0x3012 != 0) &&
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCancelFrame))
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mWallHangAnm.mCancelFrame))
{
setHookshotWallWaitAnime();
mProcVar2.field_0x300c = 1;
+45 -45
View File
@@ -270,8 +270,8 @@ BOOL daAlink_c::checkHorseSubjectivity() const {
}
void daAlink_c::setHorseSwordUpAnime() {
setUpperAnimeBaseSpeed(0xCC, daAlinkHIO_horse_c0::m.mSwordUpAnmSpeed,
daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
setUpperAnimeBaseSpeed(0xCC, mpHIO->mHorse.m.mSwordUpAnmSpeed,
mpHIO->mHorse.m.mSwordUpInterpolation);
setFaceBck(0xE8, 1, 0xFFFF);
}
@@ -661,8 +661,8 @@ int daAlink_c::setSyncHorse(int param_0) {
s32 dir = getDirectionFromShapeAngle();
if (dir == DIR_FORWARD)
{
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &mpHIO->mHorse.m.mWalkOutAnm);
offNoResetFlg1(FLG1_UNK_1000);
}
}
@@ -697,18 +697,18 @@ int daAlink_c::setSyncHorse(int param_0) {
if (doTrigger()) {
onResetFlg0(RFLG0_COW_GAME_LEASH);
voiceStart(Z2SE_AL_V_RUSH_HORSE);
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
setHorseSwordUpAnime();
field_0x3002 = -daAlinkHIO_horse_c0::m.mWhipWaitTime;
field_0x3002 = -mpHIO->mHorse.m.mWhipWaitTime;
}
}
} else if (checkHorseDashAccept()) {
setDoStatus(9);
if (doTrigger()) {
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
daAlink_ANM anm;
const daAlinkHIO_anm_c* anmparam_p = &daAlinkHIO_horse_c0::m.mWhipAnm;
const daAlinkHIO_anm_c* anmparam_p = &mpHIO->mHorse.m.mWhipAnm;
anm = ANM_HORSE_LASH;
if (mProcID != PROC_HORSE_CUT && mProcID != PROC_HORSE_CUT_TURN &&
@@ -718,7 +718,7 @@ int daAlink_c::setSyncHorse(int param_0) {
}
setUnderAnimeParam(getMainBckData(anm)->m_underID, UNDER_2,
&daAlinkHIO_horse_c0::m.mWhipAnm);
&mpHIO->mHorse.m.mWhipAnm);
onNoResetFlg1(FLG1_UNK_1000);
horse_p->offPlayerBackRideLash();
voiceStart(Z2SE_AL_V_RUSH_HORSE);
@@ -727,13 +727,13 @@ int daAlink_c::setSyncHorse(int param_0) {
onNoResetFlg1(FLG1_UNK_800);
}
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
}
}
}
if ((checkHorseWalkStartAnm() &&
sp24->getFrame() > daAlinkHIO_horse_c0::m.mHorseWalkStartFrame) ||
sp24->getFrame() > mpHIO->mHorse.m.mHorseWalkStartFrame) ||
(checkHorseWaitLashAnime() && sp20->getFrame() > 13.0f))
{
horse_p->onMoveAccept();
@@ -749,22 +749,22 @@ int daAlink_c::setSyncHorse(int param_0) {
if (checkHorseSwordUpAnime()) {
if (checkHorseZeldaBowMode()) {
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
field_0x3002 = 0;
} else if (field_0x3002 > 0) {
field_0x3002--;
if (field_0x3002 == 0 || horse_p->speedF < horse_p->getNormalMaxSpeedF()) {
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
field_0x3002 = 0;
}
} else {
field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation;
field_0x30ec = mpHIO->mHorse.m.mSwordUpInterpolation;
field_0x3002++;
if (field_0x3002 == 0) {
resetUpperAnime(UPPER_2, daAlinkHIO_horse_c0::m.mSwordUpInterpolation);
field_0x30ec = daAlinkHIO_horse_c0::m.mSwordUpInterpolation;
resetUpperAnime(UPPER_2, mpHIO->mHorse.m.mSwordUpInterpolation);
field_0x30ec = mpHIO->mHorse.m.mSwordUpInterpolation;
}
}
}
@@ -780,7 +780,7 @@ int daAlink_c::setSyncHorse(int param_0) {
mProcID != PROC_HORSE_CUT_TURN) ||
field_0x2f8c == 10)
{
if ((var_r28 || field_0x3004 != daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime) && field_0x3004 != 0) {
if ((var_r28 || field_0x3004 != mpHIO->mHorse.m.mWalkOutProhibitionTime) && field_0x3004 != 0) {
field_0x3004--;
}
@@ -828,8 +828,8 @@ int daAlink_c::setSyncBoar(int param_0) {
{
int direction = getDirectionFromShapeAngle();
if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &daAlinkHIO_horse_c0::m.mWalkOutAnm);
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
setSingleAnimeParam(ANM_WSTARTH, &mpHIO->mHorse.m.mWalkOutAnm);
}
}
@@ -995,7 +995,7 @@ void daAlink_c::setHorseSwordUp(int param_0) {
(!param_0 && checkEnemyGroup(mTargetedActor) && checkNoResetFlg1(FLG1_UNK_800))))
{
setHorseSwordUpAnime();
field_0x3002 = daAlinkHIO_horse_c0::m.mSwordUpTime;
field_0x3002 = mpHIO->mHorse.m.mSwordUpTime;
}
offNoResetFlg1(FLG1_UNK_800);
@@ -1009,10 +1009,10 @@ int daAlink_c::setRideSubjectAngle(s16 param_0) {
if (mTargetedActor != NULL) {
var_r30 = 10000;
} else {
var_r30 = daAlinkHIO_horse_c0::m.mSubjectiveDownwardMaxAngle;
var_r30 = mpHIO->mHorse.m.mSubjectiveDownwardMaxAngle;
}
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, daAlinkHIO_horse_c0::m.mSubjectiveUpwardMaxAngle, var_r30);
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)mBodyAngle.x, mpHIO->mHorse.m.mSubjectiveUpwardMaxAngle, var_r30);
s16 temp_r29 = shape_angle.y - param_0;
if (checkHorseZelda()) {
@@ -1057,7 +1057,7 @@ BOOL daAlink_c::checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndP
return TRUE;
}
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(daAlinkHIO_wlSlide_c0::m.mSlidingAngle)) {
if (getGroundAngle(&mLinkLinChk, param_2) < -cM_deg2s(mpHIO->mWolf.mWlSlide.m.mSlidingAngle)) {
return TRUE;
}
@@ -1174,7 +1174,7 @@ int daAlink_c::checkNextActionHorse() {
return procHorseWaitInit();
}
// NONMATCHING - regalloc
// NONMATCHING - regalloc, equivalent
BOOL daAlink_c::checkHorseGetOff() {
return (checkHorseRide() && dComIfGp_getHorseActor() != NULL &&
dComIfGp_getHorseActor()->checkGetOff()) ||
@@ -1222,7 +1222,7 @@ int daAlink_c::setHorseGetOff(int param_0) {
if ((checkHorseRide() && horse_p->checkEnemySearch()) || checkHorseLieAnime()) {
resetUpperAnime(UPPER_2, -1.0f);
procBackJumpInit(0);
current.pos.y += daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
current.pos.y += mpHIO->mBackJump.m.mBackflipSpeedV;
} else {
return procHorseGetOffInit(param_0);
}
@@ -1461,13 +1461,13 @@ int daAlink_c::procHorseRide() {
field_0x2fc0 = 0;
if (checkHorseDashAccept()) {
setSingleAnimeParam(ANM_HORSE_LASH, &daAlinkHIO_horse_c0::m.mWhipAnm);
setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2, &daAlinkHIO_horse_c0::m.mWhipAnm);
setSingleAnimeParam(ANM_HORSE_LASH, &mpHIO->mHorse.m.mWhipAnm);
setUnderAnimeParam(getMainBckData(ANM_HORSE_LASH)->m_underID, UNDER_2, &mpHIO->mHorse.m.mWhipAnm);
onNoResetFlg1(FLG1_UNK_1000);
voiceStart(Z2SE_AL_V_RUSH_HORSE);
field_0x30a6 = daAlinkHIO_horse_c0::m.mWhipWaitTime;
field_0x3004 = daAlinkHIO_horse_c0::m.mWalkOutProhibitionTime;
field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime;
field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime;
var_r26->onPlayerBackRideLash();
}
} else if (mProcVar2.field_0x300c == 0 && checkHorseRide()) {
@@ -1996,14 +1996,14 @@ int daAlink_c::procHorseCutInit() {
field_0x3484 = var_r29->mCutAnm.mCancelFrame;
if (checkBoarSingleBattle()) {
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLengthHorsebackFight, daAlinkHIO_cut_c0::m.mSwordRadiusHorsebackFight);
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorsebackFight, mpHIO->mCut.m.mSwordRadiusHorsebackFight);
} else {
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLengthHorseback, daAlinkHIO_cut_c0::m.mSwordRadiusHorseback);
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorseback, mpHIO->mCut.m.mSwordRadiusHorseback);
}
voiceStart(Z2SE_AL_V_ATTACK_S);
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
field_0x307e = mpHIO->mCut.m.mComboDuration;
mProcVar5.field_0x3012 = 0;
field_0x3004 = 0;
@@ -2069,7 +2069,7 @@ int daAlink_c::procHorseCut() {
int daAlink_c::procHorseCutChargeReadyInit() {
commonProcInit(PROC_HORSE_CUT_CHARGE_READY);
setUpperAnimeParam(0x96, UPPER_2, &daAlinkHIO_hoCutCharge_c0::m.mChargeAnm);
setUpperAnimeParam(0x96, UPPER_2, &mpHIO->mCut.mHorseCutCharge.m.mChargeAnm);
setFacePriBck(0xE8);
field_0x2f96 = 2;
@@ -2078,7 +2078,7 @@ int daAlink_c::procHorseCutChargeReadyInit() {
resetUnderAnime(UNDER_2, -1.0f);
}
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
field_0x3004 = 0;
onNoResetFlg1(FLG1_UNK_10000000);
return 1;
@@ -2130,12 +2130,12 @@ int daAlink_c::procHorseCutTurnInit() {
resetUnderAnime(UNDER_2, -1.0f);
}
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &daAlinkHIO_hoCutCharge_c0::m.mSpinAnm);
setSingleAnimeParam(ANM_HORSE_CUT_TURN, &mpHIO->mCut.mHorseCutCharge.m.mSpinAnm);
setCutType(43);
setSyncRide(1);
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.mSpinAttackRadius;
field_0x3478 = mpHIO->mCut.mHorseCutCharge.m.mSpinAttackRadius;
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
mProcVar4.field_0x3010 = daAlinkHIO_hoCutCharge_c0::m.mSpinStopTime;
mProcVar4.field_0x3010 = mpHIO->mCut.mHorseCutCharge.m.mSpinStopTime;
voiceStart(Z2SE_AL_V_KAITEN);
setCutWaterDropEffect();
setHorseZeldaDamage();
@@ -2153,7 +2153,7 @@ int daAlink_c::procHorseCutTurn() {
procHorseWaitInit();
field_0x2060->initOldFrameMorf(4.0f, 0, 0x23);
} else {
if (temp_r30->getFrame() > daAlinkHIO_hoCutCharge_c0::m.mSpinAnm.mCancelFrame) {
if (temp_r30->getFrame() > mpHIO->mCut.mHorseCutCharge.m.mSpinAnm.mCancelFrame) {
if (orderTalk(1)) {
return 1;
}
@@ -2168,7 +2168,7 @@ int daAlink_c::procHorseCutTurn() {
}
}
if (temp_r30->getFrame() >= daAlinkHIO_hoCutCharge_c0::m.mSpinAttackStartFrame && temp_r30->getFrame() < daAlinkHIO_hoCutCharge_c0::m.mSpinAttackEndFrame) {
if (temp_r30->getFrame() >= mpHIO->mCut.mHorseCutCharge.m.mSpinAttackStartFrame && temp_r30->getFrame() < mpHIO->mCut.mHorseCutCharge.m.mSpinAttackEndFrame) {
if (!checkNoResetFlg0(FLG0_UNK_40)) {
seStartSwordCut(Z2SE_AL_KAITENGIRI);
}
@@ -2201,7 +2201,7 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
if (checkUnderMove0BckNoArc(ANM_HORSE_STOP) || checkUnderMove0BckNoArc(ANM_HORSE_STOP_TO_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_B) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_A) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) {
mProcVar4.field_0x3010 = 0;
mProcVar5.field_0x3012 = 0;
setUpperAnimeParam(anmIdx[4], UPPER_2, &daAlinkHIO_damHorse_c0::m.mNoDirectionAnm);
setUpperAnimeParam(anmIdx[4], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mNoDirectionAnm);
} else {
cXyz* temp_r29 = getDamageVec(param_0);
@@ -2209,11 +2209,11 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) {
f32 temp_f1 = cM_scos(shape_angle.y);
cXyz spC((temp_r29->z * -temp_f31) + (temp_r29->x * temp_f1), temp_r29->y, (temp_r29->z * temp_f1) + (temp_r29->x * temp_f31));
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mFrontBackBodyMaxAngle);
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damHorse_c0::m.mLeftRightBodyMaxAngle);
mProcVar4.field_0x3010 = cLib_minMaxLimit<s16>(cM_atan2s(spC.z, spC.y), -mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle);
mProcVar5.field_0x3012 = cLib_minMaxLimit<s16>(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle);
int direction = getDirectionFromAngle(cM_atan2s(-spC.x, -spC.z));
setUpperAnimeParam(anmIdx[direction], UPPER_2, &daAlinkHIO_damHorse_c0::m.mWithDirectionAnm);
setUpperAnimeParam(anmIdx[direction], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mWithDirectionAnm);
}
setFacePriBck(0xEA);
@@ -2526,7 +2526,7 @@ int daAlink_c::procHorseBottleDrinkInit(u16 param_0) {
mRideAcKeep.getActor()->speedF = 0.0f;
}
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
setFacePriAnime(ANM_BOTTLE_DRINK_START);
keepItemData();
@@ -2579,7 +2579,7 @@ int daAlink_c::procHorseKandelaarPourInit() {
mRideAcKeep.getActor()->speedF = 0.0f;
}
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
commonKandelaarPourInit();
return 1;
}
+4 -4
View File
@@ -260,7 +260,7 @@ int daAlink_c::checkMagneBootsFly() {
int daAlink_c::procBootsEquipInit() {
commonProcInit(PROC_BOOTS_EQUIP);
setSingleAnimeParam(ANM_HVY_BOOTS_PUT_ON, &daAlinkHIO_magneBoots_c0::m.mEquipAnm);
setSingleAnimeParam(ANM_HVY_BOOTS_PUT_ON, &mpHIO->mItem.mIronBoots.m.mEquipAnm);
if (checkUpperReadyThrowAnime()) {
resetUpperAnime(UPPER_2, -1.0f);
@@ -287,7 +287,7 @@ int daAlink_c::procBootsEquip() {
}
offModeFlg(2);
} else if (frameCtrl_p->getFrame() > daAlinkHIO_magneBoots_c0::m.mEquipAnm.mCancelFrame) {
} else if (frameCtrl_p->getFrame() > mpHIO->mItem.mIronBoots.m.mEquipAnm.mCancelFrame) {
onModeFlg(4);
checkNextAction(1);
} else if (frameCtrl_p->getFrame() >= 5.0f) {
@@ -338,7 +338,7 @@ int daAlink_c::procMagneBootsFlyInit() {
}
field_0x3478 = 0.0f;
field_0x594 = daAlinkHIO_magneBoots_c0::m.mMaxMagneFlySpeed;
field_0x594 = mpHIO->mItem.mIronBoots.m.mMaxMagneFlySpeed;
mProcVar2.field_0x300c = 0;
voiceStart(Z2SE_AL_V_MAGNET_CAUGHT);
return 1;
@@ -346,7 +346,7 @@ int daAlink_c::procMagneBootsFlyInit() {
int daAlink_c::procMagneBootsFly() {
field_0x3478 += daAlinkHIO_magneBoots_c0::m.mMagneFlyAccelRate;
field_0x3478 += mpHIO->mItem.mIronBoots.m.mMagneFlyAccelRate;
if (field_0x3478 > field_0x594) {
field_0x3478 = field_0x594;
}
+46 -37
View File
@@ -114,7 +114,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
}
}
} else if (temp_r26 < 0x2000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && (mProcVar3.field_0x300e < field_0x3122) && (checkUnderMove0BckNoArc(ANM_RIDE_WAIT) || checkUnderMove0BckNoArc(ANM_RIDE_FRONT))) {
if (mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
if (mNormalSpeed <= mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
return procBoardRowInit();
}
}
@@ -228,9 +228,18 @@ int daAlink_c::boardCommon(BOOL i_canMove) {
}
void daAlink_c::setCommonBoardAnime(BOOL i_is_ride_front) {
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mStandAnmSpeed, 1.0f,
i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
11, daAlinkHIO_board_c0::m.mStandInterpolation);
setDoubleAnime(
0.0f,
// Fakematch, should be
// mpHIO->mItem.mBoard.m.mStandAnmSpeed,
daAlinkHIO_board_c0::m.mStandAnmSpeed,
1.0f,
i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP,
11,
// Fakematch, should be
// mpHIO->mItem.mBoard.m.mStandInterpolation
daAlinkHIO_board_c0::m.mStandInterpolation
);
}
int daAlink_c::checkNextActionBoard() {
@@ -270,20 +279,20 @@ int daAlink_c::commonProcBoardInit(daAlink_c::daAlink_PROC i_procID) {
}
f32 daAlink_c::getBoardRowAnmSpeed() {
return daAlinkHIO_board_c0::m.mPushAnmMinSpeed +
((daAlinkHIO_board_c0::m.mPushAnmMaxSpeed - daAlinkHIO_board_c0::m.mPushAnmMinSpeed) *
(1.0f - (mNormalSpeed / daAlinkHIO_board_c0::m.mFastPushSwitchSpeed)));
return mpHIO->mItem.mBoard.m.mPushAnmMinSpeed +
((mpHIO->mItem.mBoard.m.mPushAnmMaxSpeed - mpHIO->mItem.mBoard.m.mPushAnmMinSpeed) *
(1.0f - (mNormalSpeed / mpHIO->mItem.mBoard.m.mFastPushSwitchSpeed)));
}
void daAlink_c::setBoardLandAnime() {
setSingleAnimeParam(ANM_RIDE_JUMP_LAND, &daAlinkHIO_board_c0::m.mLandAnm);
setSingleAnimeParam(ANM_RIDE_JUMP_LAND, &mpHIO->mItem.mBoard.m.mLandAnm);
seStartOnlyReverb(Z2SE_AL_SNOBO_LAND);
dComIfGp_getVibration().StartShock(2, 15, cXyz(0.0f, 1.0f, 0.0f));
}
int daAlink_c::procBoardRideInit() {
commonProcInit(PROC_BOARD_RIDE);
setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation);
setSingleAnime(ANM_VJUMP_START, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mSpeed, 6.0f, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mEndFrame, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mInterpolation);
setHeavyBoots(0);
if (mEquipItem != 0x103) {
@@ -355,17 +364,17 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) {
((daObjIceLeaf_c*)i_board)->onRide();
if (prev_ride) {
f32 speed_ratio = mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
f32 speed_ratio = mNormalSpeed / mpHIO->mMove.m.mMaxSpeed;
if (speed_ratio > 1.0f) {
speed_ratio = 1.0f;
}
mNormalSpeed = daAlinkHIO_board_c0::m.mStartMinSpeed + (daAlinkHIO_board_c0::m.mStartAddSpeed * speed_ratio);
mNormalSpeed = mpHIO->mItem.mBoard.m.mStartMinSpeed + (mpHIO->mItem.mBoard.m.mStartAddSpeed * speed_ratio);
} else {
mNormalSpeed = 0.0f;
}
field_0x594 = daAlinkHIO_board_c0::m.mMaxSpeed;
field_0x594 = mpHIO->mItem.mBoard.m.mMaxSpeed;
mProcVar2.field_0x300c = 0;
mProcVar3.field_0x300e = 0;
setCommonBoardAnime(FALSE);
@@ -394,7 +403,7 @@ int daAlink_c::procBoardWait() {
mProcVar1.mBoardSwordChargeTime++;
if (mProcVar1.mBoardSwordChargeTime == daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
if (mProcVar1.mBoardSwordChargeTime == mpHIO->mCut.m.mNormalSwingDuration) {
setSwordVoiceSe(Z2SE_AL_V_TAME);
}
@@ -424,7 +433,7 @@ int daAlink_c::procBoardWait() {
blend_ratio = 0.0f;
}
setDoubleAnime(0.0f, daAlinkHIO_board_c0::m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, daAlinkHIO_board_c0::m.mSitInterpolation);
setDoubleAnime(0.0f, mpHIO->mItem.mBoard.m.mSitAnmSpeed, 1.0f, ANM_RIDE_CROUCH, ANM_RIDE_STOP, 0xB, mpHIO->mItem.mBoard.m.mSitInterpolation);
setDoubleAnimeBlendRatio(blend_ratio);
mProcVar5.field_0x3012 = 1;
}
@@ -453,7 +462,7 @@ int daAlink_c::procBoardWait() {
int daAlink_c::procBoardRowInit() {
commonProcInit(PROC_BOARD_ROW);
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), mpHIO->mItem.mBoard.m.mPushInterpolation);
onResetFlg1(RFLG1_UNK_40);
mProcVar0.field_0x3008 = 4;
mProcVar4.field_0x3010 = 1;
@@ -475,17 +484,17 @@ int daAlink_c::procBoardRow() {
daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0];
if (frame_ctrl->checkPass(0.0f)) {
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= daAlinkHIO_board_c0::m.mMaxPushSpeed) {
if (checkInputOnR() && abs(mStickAngle) < 0x2000 && !checkModeFlg(2) && mLinkAcch.ChkGroundHit() && mProcVar3.field_0x300e < field_0x3122 && mNormalSpeed <= mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
mProcVar5.field_0x3012 = 0;
} else {
setCommonBoardAnime(FALSE);
procBoardWaitInit(NULL);
}
} else if (frame_ctrl->checkPass(7.0f)) {
mNormalSpeed += daAlinkHIO_board_c0::m.mPushAccel;
mNormalSpeed += mpHIO->mItem.mBoard.m.mPushAccel;
if (mNormalSpeed > daAlinkHIO_board_c0::m.mMaxPushSpeed) {
mNormalSpeed = daAlinkHIO_board_c0::m.mMaxPushSpeed;
if (mNormalSpeed > mpHIO->mItem.mBoard.m.mMaxPushSpeed) {
mNormalSpeed = mpHIO->mItem.mBoard.m.mMaxPushSpeed;
}
}
}
@@ -495,7 +504,7 @@ int daAlink_c::procBoardRow() {
int daAlink_c::procBoardTurnInit() {
commonProcInit(PROC_BOARD_TURN);
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, 3.0f);
setSingleAnime(ANM_RIDE_JUMP, 0.0f, 1.0f, mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, 3.0f);
mNormalSpeed = 0.0f;
mProcVar4.field_0x3010 = shape_angle.y + 0x8000;
@@ -512,7 +521,7 @@ int daAlink_c::procBoardTurn() {
if (mProcVar5.field_0x3012 == 0) {
if (field_0x2060->getOldFrameRate() < 0.01f) {
mProcVar5.field_0x3012 = 1;
setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
setSingleAnime(ANM_RIDE_JUMP, 1.5f, 1.5f + mUnderFrameCtrl[0].getStart(), mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, -1.0f);
}
} else if (mProcVar1.field_0x300a == 0) {
if (mUnderFrameCtrl[0].checkPass(6.0f)) {
@@ -541,12 +550,12 @@ int daAlink_c::procBoardJumpInit(f32 i_jump_speed, BOOL i_no_speed_set) {
mProcVar5.field_0x3012 = 1;
setSingleAnime(ANM_RIDE_JUMP, 0.0f,
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mInterpolation);
if (!i_no_speed_set) {
speed.y = cLib_minMaxLimit(i_jump_speed, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
speed.y = cLib_minMaxLimit(i_jump_speed, mpHIO->mItem.mBoard.m.mMinJumpSpeedY, mpHIO->mItem.mBoard.m.mMaxJumpSpeedY);
}
mProcVar4.field_0x3010 = 0;
@@ -564,9 +573,9 @@ int daAlink_c::procBoardJump() {
setBoardLandAnime();
procBoardWaitInit(NULL);
} else if (mProcVar5.field_0x3012 != 0 && mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.0099999998f) {
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
setSingleAnime(ANM_RIDE_JUMP, mpHIO->mItem.mBoard.m.mAirborneAnm.mSpeed,
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
-1.0f);
mProcVar4.field_0x3010 = 1;
}
@@ -608,7 +617,7 @@ int daAlink_c::procBoardCutInit() {
bool cut_charge = false;
if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) {
if (mUnderFrameCtrl[0].getFrame() > daAlinkHIO_cut_c0::m.mNormalSwingDuration) {
if (mUnderFrameCtrl[0].getFrame() > mpHIO->mCut.m.mNormalSwingDuration) {
cut_charge = true;
}
}
@@ -635,10 +644,10 @@ int daAlink_c::procBoardCut() {
int daAlink_c::procBoardCutTurnInit() {
commonProcBoardInit(PROC_BOARD_CUT_TURN);
setSingleAnimeParam(ANM_RIDE_CUT_TURN, &daAlinkHIO_board_c0::m.mSpinAnm);
setSingleAnimeParam(ANM_RIDE_CUT_TURN, &mpHIO->mItem.mBoard.m.mSpinAnm);
if (daAlinkHIO_board_c0::m.mSpinAnm.mStartFrame >= 3.0f) {
speed.y = cLib_minMaxLimit<f32>(mNormalSpeed * -cM_ssin(shape_angle.x), daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY, daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY);
if (mpHIO->mItem.mBoard.m.mSpinAnm.mStartFrame >= 3.0f) {
speed.y = cLib_minMaxLimit<f32>(mNormalSpeed * -cM_ssin(shape_angle.x), mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY, mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY);
if (!checkModeFlg(2)) {
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
}
@@ -653,7 +662,7 @@ int daAlink_c::procBoardCutTurnInit() {
mProcVar5.field_0x3012 = 0;
resetCombo(1);
field_0x3478 = daAlinkHIO_cutTurn_c0::m.mAttackRadius;
field_0x3478 = mpHIO->mCut.mCutTurn.m.mAttackRadius;
field_0x347c = 0.5f * field_0x3478;
initCutTurnAt(field_0x347c, 3);
@@ -691,10 +700,10 @@ int daAlink_c::procBoardCutTurn() {
if (frame_ctrl->getFrame() >= 3.0f) {
speed.y = mNormalSpeed * -cM_ssin(shape_angle.x);
if (speed.y < daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY) {
speed.y = daAlinkHIO_board_c0::m.mSpinMinJumpSpeedY;
} else if (speed.y > daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY) {
speed.y = daAlinkHIO_board_c0::m.mSpinMaxJumpSpeedY;
if (speed.y < mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY) {
speed.y = mpHIO->mItem.mBoard.m.mSpinMinJumpSpeedY;
} else if (speed.y > mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY) {
speed.y = mpHIO->mItem.mBoard.m.mSpinMaxJumpSpeedY;
}
setJumpMode();
+41 -41
View File
@@ -43,8 +43,8 @@ bool daAlink_c::checkIronBallGroundStop() const {
void daAlink_c::setIronBallWaitUpperAnime(int param_0) {
if (!checkIronBallWaitAnime() && !checkIronBallPreSwingAnime() &&
(mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) {
setUpperAnimeBaseSpeed(0x19C, daAlinkHIO_ironBall_c0::m.mWaitAnmSpeed,
daAlinkHIO_basic_c0::m.mBasicInterpolation);
setUpperAnimeBaseSpeed(0x19C, mpHIO->mItem.mIronBall.m.mWaitAnmSpeed,
mpHIO->mBasic.m.mBasicInterpolation);
setFacePriBck(0xE8);
field_0x2f96 = 254;
field_0x2f97 = 5;
@@ -118,7 +118,7 @@ void daAlink_c::setIronBallModel() {
field_0xFB8.SetAtSe(dCcD_SE_HAMMER);
field_0xFB8.SetAtAtp(2);
field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE);
field_0xFB8.SetR(daAlinkHIO_ironBall_c0::m.mAttackRadius);
field_0xFB8.SetR(mpHIO->mItem.mIronBall.m.mAttackRadius);
csXyz* var_r28 = mIronBallChainAngle;
for (int i = 0; i < 102; i++, var_r28++) {
@@ -224,7 +224,7 @@ void daAlink_c::setIronBallChainPos() {
sp28C = *var_r29;
*var_r29 = *var_r27 + (sp2A4 * 10.0f);
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
var_r27 = var_r29;
}
} else if (mItemVar0.field_0x3018 == 7) {
@@ -232,20 +232,20 @@ void daAlink_c::setIronBallChainPos() {
var_r26 = &field_0x3848[mItemMode];
var_r27 = var_r29 + 1;
sp38 = mItemMode * daAlinkHIO_ironBall_c0::m.mReturnChainRate;
sp38 = mItemMode * mpHIO->mItem.mIronBall.m.mReturnChainRate;
sp34 = sp38;
for (i = mItemMode; i >= 0; i--, var_r29--, var_r26--) {
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
if (i == 0) {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnBallGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnBallGravity;
} else {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
}
if (sp38 >= 0) {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnChainAccelY;
sp38--;
}
@@ -271,9 +271,9 @@ void daAlink_c::setIronBallChainPos() {
for (i = 0; i < mItemMode; i++, var_r29++, var_r26++) {
sp28C = *var_r29;
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
if (i >= mItemMode - sp34) {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mReturnChainAccelY;
sp2A4.y += mpHIO->mItem.mIronBall.m.mReturnChainAccelY;
}
sp280 = sp2A4;
@@ -286,7 +286,7 @@ void daAlink_c::setIronBallChainPos() {
}
var_r27 = var_r29;
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
}
} else if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4) {
daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[0];
@@ -304,8 +304,8 @@ void daAlink_c::setIronBallChainPos() {
sp38 = 1000;
} else if (mItemVar0.field_0x3018 == 4) {
Vec sp268 = {0.0f, 0.0f, 0.0f};
sp268.y = daAlinkHIO_ironBall_c0::m.mThrowChainAccelY;
sp268.z = daAlinkHIO_ironBall_c0::m.mThrowChainAccelZ;
sp268.y = mpHIO->mItem.mIronBall.m.mThrowChainAccelY;
sp268.z = mpHIO->mItem.mIronBall.m.mThrowChainAccelZ;
mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
mDoMtx_stack_c::multVec(&sp268, &sp298);
@@ -324,9 +324,9 @@ void daAlink_c::setIronBallChainPos() {
sp2A4 = (*var_r29 - *var_r27) + *var_r26;
if (i == 0) {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mBallGravity;
} else {
sp2A4.y += daAlinkHIO_ironBall_c0::m.mChainGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mChainGravity;
}
if (sp38 >= 0) {
@@ -343,12 +343,12 @@ void daAlink_c::setIronBallChainPos() {
*var_r29 = *var_r27 + (sp280 * 10.0f);
}
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
var_r27 = var_r29;
}
sp2A4 = mIronBallCenterPos - *mIronBallChainPos;
sp2A4.y += daAlinkHIO_ironBall_c0::m.mBallGravity;
sp2A4.y += mpHIO->mItem.mIronBall.m.mBallGravity;
if (sp38 >= 0) {
sp2A4 += sp298;
@@ -359,9 +359,9 @@ void daAlink_c::setIronBallChainPos() {
} else {
f32 var_f30;
if (mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5) {
var_f30 = daAlinkHIO_ironBall_c0::m.mThrowChainGravity;
var_f30 = mpHIO->mItem.mIronBall.m.mThrowChainGravity;
} else {
var_f30 = daAlinkHIO_ironBall_c0::m.mChainGravity;
var_f30 = mpHIO->mItem.mIronBall.m.mChainGravity;
}
var_r29 = mIronBallChainPos + 1;
@@ -410,7 +410,7 @@ void daAlink_c::setIronBallChainPos() {
}
var_r27 = var_r29;
*var_r26 = (*var_r29 - sp28C) * daAlinkHIO_ironBall_c0::m.mChainSpeedRate;
*var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate;
}
}
@@ -534,10 +534,10 @@ void daAlink_c::setIronBallPos() {
if (!checkIronBallReturnChange()) {
f32 var_f29;
f32 var_f28 = daAlinkHIO_ironBall_c0::m.mBallMaxFallSpeed;
f32 var_f28 = mpHIO->mItem.mIronBall.m.mBallMaxFallSpeed;
if (mItemVar0.field_0x3018 == 5) {
var_f29 = daAlinkHIO_ironBall_c0::m.mThrowBallGravity;
var_f29 = mpHIO->mItem.mIronBall.m.mThrowBallGravity;
f32 sp1C;
if (fopAcM_getWaterY(mIronBallChainPos, &sp1C) && sp1C > mIronBallChainPos->y) {
@@ -549,12 +549,12 @@ void daAlink_c::setIronBallPos() {
var_f28 *= 0.5f;
}
} else {
var_f29 = daAlinkHIO_ironBall_c0::m.mBallGravity;
var_f29 = mpHIO->mItem.mIronBall.m.mBallGravity;
}
sp10C = mIronBallCenterPos + (*field_0x3848 * 1.25f);
s16 temp_r27 = daAlinkHIO_ironBall_c0::m.mThrowChainNum + 0.1f * mIronBallChainPos->abs(mHookshotTopPos);
s16 temp_r27 = mpHIO->mItem.mIronBall.m.mThrowChainNum + 0.1f * mIronBallChainPos->abs(mHookshotTopPos);
if (temp_r27 > 100) {
mItemMode = 100;
} else if (mItemMode < temp_r27) {
@@ -700,7 +700,7 @@ void daAlink_c::setIronBallPos() {
mItemVar0.field_0x3018 = 6;
} else if (field_0x3494 < 0.0f) {
setIronBallReturn(0);
} else if (field_0x3848->y < daAlinkHIO_ironBall_c0::m.field_0x6C) {
} else if (field_0x3848->y < mpHIO->mItem.mIronBall.m.field_0x6C) {
setIronBallReturn(1);
}
} else if (mItemVar0.field_0x3018 == 6 && var_r26 != 0) {
@@ -713,9 +713,9 @@ void daAlink_c::setIronBallPos() {
f32 sp18;
int var_r22;
if (fopAcM_getWaterY(mIronBallChainPos, &sp18) && sp18 > mIronBallChainPos->y) {
var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum - 1;
var_r22 = mpHIO->mItem.mIronBall.m.mReturnChainRemoveNum - 1;
} else {
var_r22 = daAlinkHIO_ironBall_c0::m.mReturnChainRemoveNum;
var_r22 = mpHIO->mItem.mIronBall.m.mReturnChainRemoveNum;
}
if (mItemMode > 6) {
@@ -810,9 +810,9 @@ BOOL daAlink_c::checkIronBallAnime() const {
void daAlink_c::setIronBallReadyAnime() {
resetUpperAnime(UPPER_2, -1.0f);
setSingleAnime(ANM_IRONBALL_ATTACK, daAlinkHIO_ironBall_c0::m.mPrepareAnmSpeed, 0.0f,
0x15, daAlinkHIO_ironBall_c0::m.mPrepareInterpolation);
setUpperAnimeBaseSpeed(0x19A, daAlinkHIO_ironBall_c0::m.mPrepareAnmSpeed, -1.0f);
setSingleAnime(ANM_IRONBALL_ATTACK, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, 0.0f,
0x15, mpHIO->mItem.mIronBall.m.mPrepareInterpolation);
setUpperAnimeBaseSpeed(0x19A, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, -1.0f);
mNowAnmPackUpper[2].setRatio(0.0f);
voiceStart(Z2SE_AL_V_SWING_IB);
@@ -828,7 +828,7 @@ void daAlink_c::setIronBallReadyAnime() {
void daAlink_c::setIronBallBaseAnime() {
if (checkIronBallSwingAnime() && !checkUnderMove0BckNoArc(ANM_IRONBALL_TURN)) {
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
mUnderFrameCtrl[0].setFrame(mUpperFrameCtrl[2].getFrame());
getNowAnmPackUnder(UNDER_0)->setFrame(mUpperFrameCtrl[2].getFrame());
}
@@ -847,11 +847,11 @@ BOOL daAlink_c::checkUpperItemActionIronBall() {
if (frameCtrl->checkAnmEnd()) {
if (checkModeFlg(1)) {
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
}
u16 upperId = getMainBckData(ANM_IRONBALL_TURN)->m_upperID;
setUpperAnimeBaseSpeed(upperId, daAlinkHIO_ironBall_c0::m.mTurnAnmSpeed, daAlinkHIO_ironBall_c0::m.mTurnInterpolation);
setUpperAnimeBaseSpeed(upperId, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation);
mItemVar0.field_0x3018 = 2;
seStartOnlyReverb(Z2SE_AL_IB_SWING);
return 1;
@@ -960,7 +960,7 @@ int daAlink_c::procIronBallMove() {
if (field_0x2f98 != 2) {
field_0x2f98 = 2;
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
}
} else {
offModeFlg(1);
@@ -980,7 +980,7 @@ int daAlink_c::procIronBallMove() {
int daAlink_c::procIronBallThrowInit() {
commonProcInit(PROC_IRON_BALL_THROW);
setSingleAnime(ANM_IRONBALL_ATTACK, daAlinkHIO_ironBall_c0::m.mPreThrowAnmSpeed, 22.0f, 30, daAlinkHIO_ironBall_c0::m.mPreThrowAnmInterpolation);
setSingleAnime(ANM_IRONBALL_ATTACK, mpHIO->mItem.mIronBall.m.mPreThrowAnmSpeed, 22.0f, 30, mpHIO->mItem.mIronBall.m.mPreThrowAnmInterpolation);
field_0x2f99 = 12;
field_0x3588 = l_ironBallBaseAnime;
mNormalSpeed = 0.0f;
@@ -1013,7 +1013,7 @@ int daAlink_c::procIronBallThrow() {
mItemVar0.field_0x3018 = 5;
mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0);
Vec sp8 = {0.0f, daAlinkHIO_ironBall_c0::m.mThrowSpeedY, daAlinkHIO_ironBall_c0::m.mThrowSpeedZ};
Vec sp8 = {0.0f, mpHIO->mItem.mIronBall.m.mThrowSpeedY, mpHIO->mItem.mIronBall.m.mThrowSpeedZ};
mDoMtx_stack_c::multVec(&sp8, field_0x3848);
field_0x3022 = 0;
}
@@ -1021,7 +1021,7 @@ int daAlink_c::procIronBallThrow() {
if (checkAnmEnd(temp_r29)) {
if (mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, daAlinkHIO_ironBall_c0::m.mThrowAnmSpeed, daAlinkHIO_ironBall_c0::m.mThrowInterpolation);
setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, mpHIO->mItem.mIronBall.m.mThrowAnmSpeed, mpHIO->mItem.mIronBall.m.mThrowInterpolation);
field_0x2f99 = 0xC;
mItemVar0.field_0x3018 = 4;
} else if (mItemVar0.field_0x3018 == 7) {
@@ -1042,10 +1042,10 @@ int daAlink_c::procIronBallReturnInit() {
if (mItemVar0.field_0x3018 == 8) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
setSingleAnimeParam(ANM_IRONBALL_CATCH, &mpHIO->mItem.mIronBall.m.mCatchAnm);
field_0x2f99 = 12;
} else {
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, daAlinkHIO_ironBall_c0::m.mPullAnmSpeed, daAlinkHIO_ironBall_c0::m.mPullInterpolation);
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, mpHIO->mItem.mIronBall.m.mPullAnmSpeed, mpHIO->mItem.mIronBall.m.mPullInterpolation);
field_0x2f99 = 12;
mProcVar2.field_0x300c = 0;
}
@@ -1065,7 +1065,7 @@ int daAlink_c::procIronBallReturn() {
if (mItemVar0.field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
setSingleAnimeParam(ANM_IRONBALL_CATCH, &mpHIO->mItem.mIronBall.m.mCatchAnm);
field_0x2f99 = 12;
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
@@ -1076,7 +1076,7 @@ int daAlink_c::procIronBallReturn() {
setIronBallWaitUpperAnime(1);
checkNextAction(0);
}
} else if (mItemVar0.field_0x3018 == 8 && frameCtrl->getFrame() > daAlinkHIO_ironBall_c0::m.mCatchAnm.mCancelFrame) {
} else if (mItemVar0.field_0x3018 == 8 && frameCtrl->getFrame() > mpHIO->mItem.mIronBall.m.mCatchAnm.mCancelFrame) {
mItemVar0.field_0x3018 = 0;
setIronBallWaitUpperAnime(1);
+14 -14
View File
@@ -164,15 +164,15 @@ void daAlink_c::preKandelaarDraw() {
J3DMaterial* mat_p = mpKanteraGlowModel->getModelData()->getMaterialNodePointer(0);
J3DGXColorS10 color;
color.r = daAlinkHIO_kandelaar_c0::m.mColorReg1R;
color.g = daAlinkHIO_kandelaar_c0::m.mColorReg1G;
color.b = daAlinkHIO_kandelaar_c0::m.mColorReg1B;
color.r = mpHIO->mItem.mLantern.m.mColorReg1R;
color.g = mpHIO->mItem.mLantern.m.mColorReg1G;
color.b = mpHIO->mItem.mLantern.m.mColorReg1B;
color.a = 255;
mat_p->setTevColor(1, &color);
color.r = daAlinkHIO_kandelaar_c0::m.mColorReg2R;
color.g = daAlinkHIO_kandelaar_c0::m.mColorReg2G;
color.b = daAlinkHIO_kandelaar_c0::m.mColorReg2B;
color.r = mpHIO->mItem.mLantern.m.mColorReg2R;
color.g = mpHIO->mItem.mLantern.m.mColorReg2G;
color.b = mpHIO->mItem.mLantern.m.mColorReg2B;
mat_p->setTevColor(2, &color);
cXyz proj;
@@ -293,10 +293,10 @@ int daAlink_c::commonKandelaarPour(int param_0) {
} else if (simpleAnmPlay(field_0x0720)) {
if (param_0) {
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_END)->m_upperID, UPPER_2,
&daAlinkHIO_kandelaar_c0::m.mEndUnkAnm);
&mpHIO->mItem.mLantern.m.mEndUnkAnm);
} else {
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_END,
&daAlinkHIO_kandelaar_c0::m.mEndUnkAnm);
&mpHIO->mItem.mLantern.m.mEndUnkAnm);
}
field_0x072c->setFrame(2.0f);
@@ -331,7 +331,7 @@ void daAlink_c::initKandelaarSwing() {
field_0xFB8.ResetAtHit();
if (!checkEventRun()) {
dComIfGp_setItemOilCount(-daAlinkHIO_kandelaar_c0::m.mShakeOilLoss);
dComIfGp_setItemOilCount(-mpHIO->mItem.mLantern.m.mShakeOilLoss);
}
field_0xFB8.OffAtSetBit();
@@ -368,13 +368,13 @@ int daAlink_c::procKandelaarSwingInit() {
(checkStageName("F_SP108") &&
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchTagKtOnFire, NULL) != NULL))
{
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingDownAnm.mCancelFrame;
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingDownAnm.mCancelFrame;
field_0x347c = 5.0f;
field_0x3480 = 12.0f;
} else {
setSingleAnimeParam(ANM_LANTERN_SWING, &daAlinkHIO_kandelaar_c0::m.mShakeAnm);
field_0x3478 = daAlinkHIO_kandelaar_c0::m.mShakeAnm.mCancelFrame;
setSingleAnimeParam(ANM_LANTERN_SWING, &mpHIO->mItem.mLantern.m.mShakeAnm);
field_0x3478 = mpHIO->mItem.mLantern.m.mShakeAnm.mCancelFrame;
field_0x347c = 4.0f;
field_0x3480 = 11.0f;
}
@@ -411,7 +411,7 @@ int daAlink_c::procKandelaarPourInit() {
current.angle.y = shape_angle.y;
mNormalSpeed = 0.0f;
field_0x2f98 = 4;
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_START, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
setSingleAnimeParam(ANM_OIL_BOTTLE_POUR_START, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
commonKandelaarPourInit();
return 1;
}
+7 -6
View File
@@ -6,6 +6,7 @@
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "d/actor/d_a_alink.h"
#include "d/actor/d_a_canoe.h"
#include "d/actor/d_a_kytag05.h"
#include "d/actor/d_a_tag_mstop.h"
#include "d/actor/d_a_tag_mhint.h"
@@ -131,10 +132,10 @@ BOOL daAlink_c::setBodyAngleToCamera() {
if (!dComIfGp_checkPlayerStatus0(0, 0x202000) && mEquipItem == fpcNm_ITEM_IRONBALL) {
var_r29 = -10000;
} else {
var_r29 = daAlinkHIO_item_c0::m.mItemFPUpMaxUnk;
var_r29 = mpHIO->mItem.m.mItemFPUpMaxUnk;
}
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)sp8, var_r29, daAlinkHIO_item_c0::m.mItemFPMaxUnk);
mBodyAngle.x = cLib_minMaxLimit<s16>((s16)sp8, var_r29, mpHIO->mItem.m.mItemFPMaxUnk);
checkBodyAngleX(mBodyAngle.x);
field_0x310a = mBodyAngle.x;
field_0x310c = shape_angle.y;
@@ -240,11 +241,11 @@ int daAlink_c::procCoSwimSubjectivityInit() {
setSubjectMode();
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlSwim_c0::m.mIdleAnmSpeedWeak,
daAlinkHIO_wlSwim_c0::m.mIdleInterp);
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlSwim.m.mIdleAnmSpeedWeak,
mpHIO->mWolf.mWlSwim.m.mIdleInterp);
} else {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
daAlinkHIO_swim_c0::m.mWaitInterpolation);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
mpHIO->mSwim.m.mWaitInterpolation);
}
dComIfGp_setPlayerStatus0(0, 0x100000);
+33 -33
View File
@@ -7,51 +7,51 @@
#include "d/actor/d_a_spinner.h"
f32 daAlink_c::getSpinnerGravity() const {
return daAlinkHIO_spinner_c0::m.mGravity;
return mpHIO->mItem.mSpinner.m.mGravity;
}
f32 daAlink_c::getSpinnerMaxFallSpeed() const {
return daAlinkHIO_spinner_c0::m.mMaxFallSpeed;
return mpHIO->mItem.mSpinner.m.mMaxFallSpeed;
}
f32 daAlink_c::getSpinnerJumpRate() const {
return daAlinkHIO_spinner_c0::m.mJumpRate;
return mpHIO->mItem.mSpinner.m.mJumpRate;
}
s16 daAlink_c::getSpinnerRideMoveTime() {
if (checkLv4BossRoom()) {
return daAlinkHIO_spinner_c0::m.mBossRideMoveTime;
return mpHIO->mItem.mSpinner.m.mBossRideMoveTime;
}
return daAlinkHIO_spinner_c0::m.mRideMoveTime;
return mpHIO->mItem.mSpinner.m.mRideMoveTime;
}
f32 daAlink_c::getSpinnerRideSpeedF() {
if (checkLv4BossRoom()) {
return daAlinkHIO_spinner_c0::m.mBossRideSpeed;
return mpHIO->mItem.mSpinner.m.mBossRideSpeed;
}
return daAlinkHIO_spinner_c0::m.mRideSpeed;
return mpHIO->mItem.mSpinner.m.mRideSpeed;
}
f32 daAlink_c::getSpinnerRideDecSpeedMax() const {
return daAlinkHIO_spinner_c0::m.mDecelSpeedMax;
return mpHIO->mItem.mSpinner.m.mDecelSpeedMax;
}
f32 daAlink_c::getSpinnerRideDecSpeedMin() const {
return daAlinkHIO_spinner_c0::m.mDecelSpeedMin;
return mpHIO->mItem.mSpinner.m.mDecelSpeedMin;
}
f32 daAlink_c::getSpinnerRideDecSpeedRate() const {
return daAlinkHIO_spinner_c0::m.mDecelRate;
return mpHIO->mItem.mSpinner.m.mDecelRate;
}
s16 daAlink_c::getSpinnerRideRotAngleMax() const {
return daAlinkHIO_spinner_c0::m.mRideRotAngleMax;
return mpHIO->mItem.mSpinner.m.mRideRotAngleMax;
}
s16 daAlink_c::getSpinnerRideRotAngleMin() const {
return daAlinkHIO_spinner_c0::m.mRideRotAngleMin;
return mpHIO->mItem.mSpinner.m.mRideRotAngleMin;
}
void daAlink_c::onSpinnerPathForceRemove() {
@@ -106,9 +106,9 @@ int daAlink_c::procSpinnerReadyInit() {
commonProcInit(PROC_SPINNER_READY);
mRideAcKeep.setData(spinner);
setSingleAnime(ANM_VJUMP_START, daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mSpeed, 6.0f,
daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mEndFrame,
daAlinkHIO_smallJump_c0::m.mSmallJumpAnm.mInterpolation);
setSingleAnime(ANM_VJUMP_START, mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mSpeed, 6.0f,
mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mEndFrame,
mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm.mInterpolation);
mNormalSpeed = 0.0f;
setHeavyBoots(0);
@@ -161,7 +161,7 @@ int daAlink_c::procSpinnerWaitInit() {
mRideStatus = 5;
setBgCheckParam();
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f);
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed, 4.0f);
speed.y = 0.0f;
setSpecialGravity(0.0f, maxFallSpeed, 0);
mNormalSpeed = 0.0f;
@@ -185,7 +185,7 @@ int daAlink_c::procSpinnerWait() {
checkEndResetFlg1(ERFLG1_UNK_1) || checkEndResetFlg0(ERFLG0_UNK_2)) {
mNormalSpeed = 0.0f;
setJumpMode();
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
if (spinner->checkSpinnerTagEnd()) {
@@ -218,7 +218,7 @@ int daAlink_c::procSpinnerWait() {
}
setJumpMode();
mNormalSpeed = 0.0f;
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
}
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
@@ -240,8 +240,8 @@ int daAlink_c::procSpinnerWait() {
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) {
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed,
daAlinkHIO_board_c0::m.mFastPushInterpolation);
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed,
mpHIO->mItem.mBoard.m.mFastPushInterpolation);
field_0x3198 = ANM_RIDE_KICK;
fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0);
}
@@ -254,32 +254,32 @@ int daAlink_c::procSpinnerWait() {
if ((field_0x3198 == ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) ||
(field_0x3198 != ANM_RIDE_KICK && field_0x3198 != ANM_RIDE_WAIT)) {
setSingleAnimeBaseSpeed(ANM_RIDE_WAIT, daAlinkHIO_board_c0::m.mStandAnmSpeed,
daAlinkHIO_board_c0::m.mStandInterpolation);
setSingleAnimeBaseSpeed(ANM_RIDE_WAIT, mpHIO->mItem.mBoard.m.mStandAnmSpeed,
mpHIO->mItem.mBoard.m.mStandInterpolation);
field_0x3198 = ANM_RIDE_WAIT;
}
} else if (spinner->getButtonJump() && field_0x3198 != ANM_RIDE_JUMP) {
field_0x3198 = ANM_RIDE_JUMP;
setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
setSingleAnime(ANM_RIDE_JUMP, 0.0f, mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mInterpolation);
mProcVar4.field_0x3010 = 0;
} else if (field_0x3198 == ANM_RIDE_JUMP) {
if (!spinner->getJumpFlg()) {
setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed,
daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16,
daAlinkHIO_board_c0::m.mLandAnm.mInterpolation);
setSingleAnime(ANM_RIDE_JUMP_LAND, mpHIO->mItem.mBoard.m.mLandAnm.mSpeed,
mpHIO->mItem.mBoard.m.mLandAnm.mStartFrame, 16,
mpHIO->mItem.mBoard.m.mLandAnm.mInterpolation);
field_0x3198 = ANM_RIDE_JUMP_LAND;
} else if (mProcVar4.field_0x3010 == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
setSingleAnime(ANM_RIDE_JUMP, mpHIO->mItem.mBoard.m.mAirborneAnm.mSpeed,
mpHIO->mItem.mBoard.m.mAirborneAnm.mStartFrame,
mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, -1.0f);
mProcVar4.field_0x3010 = 1;
}
} else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) ||
(field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) {
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed,
daAlinkHIO_board_c0::m.mSitInterpolation);
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed,
mpHIO->mItem.mBoard.m.mSitInterpolation);
field_0x3198 = ANM_RIDE_CROUCH;
}
}
+4 -4
View File
@@ -272,7 +272,7 @@ int daAlink_c::procSumouMove() {
if (mSpeedModifier > 0.0f && checkInputOnR()) {
int direction = getDirectionFromAngle(mStickAngle);
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
var_r31 = field_0x33ac * (daAlinkHIO_pushpull_c0::m.mSumoRotationAngle * field_0x33ac);
var_r31 = field_0x33ac * (mpHIO->mPushpull.m.mSumoRotationAngle * field_0x33ac);
if (direction == DIR_RIGHT) {
var_r31 = -var_r31;
@@ -317,7 +317,7 @@ int daAlink_c::procSumouSideMoveInit() {
mSpecialMode = 0x16;
field_0x2f98 = 3;
current.angle.y = shape_angle.y + -0x4000;
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
setSingleAnimeBase(ANM_SUMOU_FIGHT_WAIT);
field_0x3198 = 0x141;
@@ -379,7 +379,7 @@ int daAlink_c::procSumouSideMove() {
}
if (field_0x33ac > (1.0f - fabsf(mNormalSpeed / field_0x594)) * 0.3f) {
var_f1 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33ac;
var_f1 = mpHIO->mAtnMove.m.mAcceleration * field_0x33ac;
} else {
var_f1 = 0.0f;
}
@@ -387,7 +387,7 @@ int daAlink_c::procSumouSideMove() {
var_f1 = 0.0f;
}
setNormalSpeedF(var_f1, daAlinkHIO_atnMove_c0::m.mDeceleration);
setNormalSpeedF(var_f1, mpHIO->mAtnMove.m.mDeceleration);
if (checkZeroSpeedF()) {
onModeFlg(1);
+108 -108
View File
@@ -31,25 +31,25 @@ bool daAlink_c::getZoraSwim() const {
f32 daAlink_c::getSwimFrontMaxSpeed() const {
if (checkBootsOrArmorHeavy()) {
return daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
return mpHIO->mSwim.m.mUnderwaterFallMaxSpeed;
} else if (checkZoraWearAbility()) {
return 14.0f;
} else if (checkSwimDashMode()) {
return daAlinkHIO_swim_c0::m.mDashMaxSpeed;
return mpHIO->mSwim.m.mDashMaxSpeed;
} else {
return daAlinkHIO_swim_c0::m.mForwardMaxSpeed;
return mpHIO->mSwim.m.mForwardMaxSpeed;
}
}
f32 daAlink_c::getSwimMaxFallSpeed() const {
if (mProcID == PROC_DIVE_JUMP) {
return -daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
return -mpHIO->mSwim.m.mUnderwaterMaxSpeed;
} else if (checkBootsOrArmorHeavy()) {
return daAlinkHIO_swim_c0::m.mBootsMaxFallSpeed;
return mpHIO->mSwim.m.mBootsMaxFallSpeed;
} else if (getZoraSwim()) {
return daAlinkHIO_swim_c0::m.mMaxFallSpeed;
return mpHIO->mSwim.m.mMaxFallSpeed;
} else {
return daAlinkHIO_swim_c0::m.mStandingMaxFallSpeed;
return mpHIO->mSwim.m.mStandingMaxFallSpeed;
}
}
@@ -105,9 +105,9 @@ BOOL daAlink_c::checkPossibleWaterInMode() const {
void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
if (checkZoraWearAbility()) {
i_rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
i_rate *= mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
} else {
i_rate *= daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate;
i_rate *= mpHIO->mItem.mIronBoots.m.mWaterStartWalkAnmRate;
}
}
@@ -129,7 +129,7 @@ void daAlink_c::swimBgCheck(f32 param_0) {
var_r29 = field_0x3080;
} else {
var_r29 = mProcVar2.field_0x300c;
start_pos.y += daAlinkHIO_wlWallHang_c0::m.mAutoWalkHeight;
start_pos.y += mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight;
}
f32 var_f28 = param_0 * cM_scos(var_r29);
@@ -226,7 +226,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
}
cLib_addCalcAngleS(&shape_angle.y, var_r28, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
cLib_addCalcAngleS(&shape_angle.y, var_r28, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
}
current.angle.y = shape_angle.y;
@@ -235,9 +235,9 @@ void daAlink_c::setSpeedAndAngleSwim() {
if (checkInputOnR()) {
s16 temp_r29_2 = shape_angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn);
} else {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
}
f32 var_f29;
@@ -271,22 +271,22 @@ void daAlink_c::setSpeedAndAngleSwim() {
s16 temp_r29_3 = current.angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mMaxTurn, daAlinkHIO_swim_c0::m.mMinTurn);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn);
} else {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterMaxTurn, daAlinkHIO_swim_c0::m.mUnderwaterMinTurn);
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn);
}
var_f30 = daAlinkHIO_swim_c0::m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
var_f30 = mpHIO->mSwim.m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
} else {
var_f30 = 0.0f;
}
}
f32 var_f28;
if (daAlinkHIO_swim_c0::m.mForwardMaxSpeed < mNormalSpeed && !checkZoraWearAbility()) {
var_f28 = daAlinkHIO_swim_c0::m.mDashDeceleration;
if (mpHIO->mSwim.m.mForwardMaxSpeed < mNormalSpeed && !checkZoraWearAbility()) {
var_f28 = mpHIO->mSwim.m.mDashDeceleration;
} else {
var_f28 = daAlinkHIO_swim_c0::m.mDeceleration;
var_f28 = mpHIO->mSwim.m.mDeceleration;
}
setNormalSpeedF(var_f30, var_f28);
@@ -298,7 +298,7 @@ void daAlink_c::setSpeedAndAngleSwim() {
if (checkSwimNeckUpDown()) {
s16 sp14;
if (speed.y >= 0.0f) {
var_f31 = -speed.y / daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
var_f31 = -speed.y / mpHIO->mSwim.m.mMaxFloatUpSpeed;
if (var_f31 < -1.0f) {
var_f31 = -1.0f;
}
@@ -356,10 +356,10 @@ int daAlink_c::checkSwimAction(int param_0) {
if (getMoveBGActorName(mLinkAcch.m_gnd, NULL) == PROC_Obj_ITA) {
var_f31 = 200.0f;
} else {
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
}
} else {
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
var_f31 = mpHIO->mSwim.m.mStartHeight;
}
if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && !checkModeFlg(0x40000) && mProcID != PROC_MAGNE_BOOTS_FLY && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) && mDemo.getDemoMode() != 0x11) {
@@ -369,12 +369,12 @@ int daAlink_c::checkSwimAction(int param_0) {
if (checkWolf()) {
if (checkWolfDashMode()) {
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeed;
var_f29 = mpHIO->mWolf.mWlSwim.m.mMaxSpeed;
} else {
var_f29 = daAlinkHIO_wlSwim_c0::m.mMaxSpeedWeak;
var_f29 = mpHIO->mWolf.mWlSwim.m.mMaxSpeedWeak;
}
var_f28 = daAlinkHIO_wlSwim_c0::m.mMaxFallSpeed;
var_f28 = mpHIO->mWolf.mWlSwim.m.mMaxFallSpeed;
} else {
var_f29 = getSwimFrontMaxSpeed();
var_f28 = getSwimMaxFallSpeed();
@@ -503,9 +503,9 @@ int daAlink_c::checkSwimUpAction() {
if (!getZoraSwim()) {
if (checkWolf()) {
field_0x3480 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
} else {
cLib_addCalc(&field_0x3480, daAlinkHIO_swim_c0::m.mStartHeight, 0.5f, 15.0f, 1.0f);
cLib_addCalc(&field_0x3480, mpHIO->mSwim.m.mStartHeight, 0.5f, 15.0f, 1.0f);
}
} else {
field_0x3480 = 65.0f;
@@ -513,9 +513,9 @@ int daAlink_c::checkSwimUpAction() {
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.mSurfacingHeight;
var_f31 = mpHIO->mWolf.mWlSwim.m.mSurfacingHeight;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mFloatUpHeight;
var_f31 = mpHIO->mSwim.m.mFloatUpHeight;
}
if (!checkBootsOrArmorHeavy() && !checkNoResetFlg0(FLG0_SWIM_UP)) {
@@ -590,9 +590,9 @@ BOOL daAlink_c::checkSwimFall() {
int daAlink_c::checkSwimOutAction() {
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
var_f31 = mpHIO->mSwim.m.mStartHeight;
}
if (checkSwimFall()) {
@@ -603,15 +603,15 @@ int daAlink_c::checkSwimOutAction() {
current.angle.y = sp8.atan2sX_Z();
if (checkWolf()) {
if (mNormalSpeed > daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed) {
mNormalSpeed = daAlinkHIO_wlAutoJump_c0::m.mWeakJumpMaxSpeed;
if (mNormalSpeed > mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed) {
mNormalSpeed = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed;
}
return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
return procWolfFallInit(2, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp);
} else {
if (mNormalSpeed > daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed) {
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed;
if (mNormalSpeed > mpHIO->mAutoJump.m.mMaxJumpSpeed) {
mNormalSpeed = mpHIO->mAutoJump.m.mMaxJumpSpeed;
}
return procFallInit(2, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
return procFallInit(2, mpHIO->mAutoJump.m.mFallInterpolation);
}
}
@@ -655,13 +655,13 @@ void daAlink_c::setSwimMoveAnime() {
BOOL var_r25 = 0;
if (field_0x2f98 == 4) {
f32 temp_f29 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed + daAlinkHIO_swim_c0::m.mUnderwaterButtonAdditionalSpeed;
f32 temp_f29 = mpHIO->mSwim.m.mUnderwaterMaxSpeed + mpHIO->mSwim.m.mUnderwaterButtonAdditionalSpeed;
field_0x3478 = daAlinkHIO_swim_c0::m.mUnderwaterMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed;
field_0x3478 = mpHIO->mSwim.m.mUnderwaterMinAnmSpeed;
field_0x347c = mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed;
if (field_0x594 < daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed) {
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
if (field_0x594 < mpHIO->mSwim.m.mUnderwaterMaxSpeed) {
field_0x594 = mpHIO->mSwim.m.mUnderwaterMaxSpeed;
} else if (doTrigger()) {
field_0x594 += 0.75f;
if (field_0x594 > temp_f29) {
@@ -683,10 +683,10 @@ void daAlink_c::setSwimMoveAnime() {
mProcVar5.field_0x3012 = 1;
}
} else if (!checkSwimMoveHandAnime()) {
cLib_chaseF(&field_0x594, daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed, 0.4f);
cLib_chaseF(&field_0x594, mpHIO->mSwim.m.mUnderwaterMaxSpeed, 0.4f);
}
var_f31 = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterMaxSpeed;
var_f31 = 1.0f / mpHIO->mSwim.m.mUnderwaterMaxSpeed;
if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(temp_r28)))) {
var_r29 = ANM_SWIM_ZORA_START;
@@ -711,25 +711,25 @@ void daAlink_c::setSwimMoveAnime() {
}
if (checkSwimDashMode()) {
field_0x3478 = daAlinkHIO_swim_c0::m.mDashMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mDashMaxAnmSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mDashMaxSpeed;
field_0x3478 = mpHIO->mSwim.m.mDashMinAnmSpeed;
field_0x347c = mpHIO->mSwim.m.mDashMaxAnmSpeed;
field_0x594 = mpHIO->mSwim.m.mDashMaxSpeed;
} else {
field_0x3478 = daAlinkHIO_swim_c0::m.mForwardMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mForwardMaxAnmSpeed;
field_0x3478 = mpHIO->mSwim.m.mForwardMinAnmSpeed;
field_0x347c = mpHIO->mSwim.m.mForwardMaxAnmSpeed;
field_0x594 = getSwimFrontMaxSpeed();
}
var_f31 = 1.0f / field_0x594;
} else if (field_0x2f98 == 1) {
var_r29 = ANM_ATN_SWIM_BACK;
field_0x3478 = daAlinkHIO_swim_c0::m.mBackwardMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mBackwardMaxAnmSpeed;
field_0x3478 = mpHIO->mSwim.m.mBackwardMinAnmSpeed;
field_0x347c = mpHIO->mSwim.m.mBackwardMaxAnmSpeed;
if (checkZoraWearAbility()) {
field_0x594 = 10.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mBackwardMaxSpeed;
field_0x594 = mpHIO->mSwim.m.mBackwardMaxSpeed;
}
var_f31 = 1.0f / field_0x594;
@@ -740,13 +740,13 @@ void daAlink_c::setSwimMoveAnime() {
var_r29 = ANM_ATN_SWIM_RIGHT;
}
field_0x3478 = daAlinkHIO_swim_c0::m.mStrafeMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mStrafeMaxAnmSpeed;
field_0x3478 = mpHIO->mSwim.m.mStrafeMinAnmSpeed;
field_0x347c = mpHIO->mSwim.m.mStrafeMaxAnmSpeed;
if (checkZoraWearAbility()) {
field_0x594 = 12.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mStrafeMaxSpeed;
field_0x594 = mpHIO->mSwim.m.mStrafeMaxSpeed;
}
var_f31 = 1.0f / field_0x594;
@@ -760,7 +760,7 @@ void daAlink_c::setSwimMoveAnime() {
if (checkBootsOrArmorHeavy()) {
var_r29 = ANM_SWIM_WAIT;
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterFallMaxSpeed;
field_0x594 = mpHIO->mSwim.m.mUnderwaterFallMaxSpeed;
if (mEquipItem != fpcNm_ITEM_NONE && !checkHookshotAnime()) {
setDoStatus(4);
}
@@ -774,15 +774,15 @@ void daAlink_c::setSwimMoveAnime() {
field_0x3198 = var_r29;
if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) {
field_0x30d2 = daAlinkHIO_swim_c0::m.field_0x5e;
field_0x30d2 = mpHIO->mSwim.m.field_0x5e;
}
if (var_r29 == ANM_SWIM_WAIT) {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, daAlinkHIO_swim_c0::m.mWaitInterpolation);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed, mpHIO->mSwim.m.mWaitInterpolation);
} else {
f32 var_f27;
if (var_r26 != 0) {
var_f27 = daAlinkHIO_swim_c0::m.mMoveInterpolation;
var_f27 = mpHIO->mSwim.m.mMoveInterpolation;
} else {
var_f27 = 0.0f;
}
@@ -793,7 +793,7 @@ void daAlink_c::setSwimMoveAnime() {
if (var_r29 != ANM_SWIM_WAIT && var_r29 != ANM_SWIM_DASH) {
f32 temp_f30 = var_f31 * fabsf(mNormalSpeed);
if (temp_f30 > 1.0f && field_0x2f98 == 4) {
temp_r28->setRate(daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * daAlinkHIO_swim_c0::m.mUnderwaterAdditionalAnmSpeed));
temp_r28->setRate(mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * mpHIO->mSwim.m.mUnderwaterAdditionalAnmSpeed));
} else {
temp_r28->setRate(field_0x3478 + (field_0x347c * temp_f30));
}
@@ -880,12 +880,12 @@ void daAlink_c::setSwimUpDownOffset() {
f32 var_f1;
if (checkWolf()) {
if (checkHeavyStateOn(1, 1)) {
var_f1 = daAlinkHIO_wlSwim_c0::m.mHeavyIdleUpDownSwayAmount;
var_f1 = mpHIO->mWolf.mWlSwim.m.mHeavyIdleUpDownSwayAmount;
} else {
var_f1 = daAlinkHIO_wlSwim_c0::m.mIdleUpDownSwayAmount;
var_f1 = mpHIO->mWolf.mWlSwim.m.mIdleUpDownSwayAmount;
}
} else {
var_f1 = daAlinkHIO_swim_c0::m.mWaitUpDownShakeAmount;
var_f1 = mpHIO->mSwim.m.mWaitUpDownShakeAmount;
}
field_0x2b98 = var_f1 * cM_ssin(mProcVar2.field_0x300c);
@@ -903,11 +903,11 @@ int daAlink_c::procSwimUpInit() {
field_0x3080 = 0;
onNoResetFlg0(FLG0_SWIM_UP);
mZ2Link.setInWater(false);
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mFloatUpAnm);
setSingleAnimeParam(ANM_SWIM_RESURFACE, &mpHIO->mSwim.m.mFloatUpAnm);
dComIfGp_setPlayerStatus0(0, 0x100000);
mProcVar0.field_0x3008 = 0;
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
field_0x3000 = 0;
seStartMapInfo(Z2SE_AL_OUTOF_WATER);
@@ -919,7 +919,7 @@ int daAlink_c::procSwimUpInit() {
int daAlink_c::procSwimUp() {
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
setNormalSpeedF(0.0f, daAlinkHIO_swim_c0::m.mDeceleration);
setNormalSpeedF(0.0f, mpHIO->mSwim.m.mDeceleration);
if (checkSetItemTrigger(fpcNm_ITEM_HVY_BOOTS)) {
setHeavyBoots(1);
@@ -933,7 +933,7 @@ int daAlink_c::procSwimUp() {
}
} else if (checkAnmEnd(frame_ctrl)) {
procSwimWaitInit(0);
} else if (frame_ctrl->getFrame() > daAlinkHIO_swim_c0::m.mFloatUpAnm.mCancelFrame &&
} else if (frame_ctrl->getFrame() > mpHIO->mSwim.m.mFloatUpAnm.mCancelFrame &&
checkInputOnR())
{
procSwimMoveInit();
@@ -950,7 +950,7 @@ int daAlink_c::procSwimWaitInit(int param_0) {
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
offNoResetFlg0(FLG0_UNDERWATER);
current.pos.y += daAlinkHIO_swim_c0::m.mStartHeight;
current.pos.y += mpHIO->mSwim.m.mStartHeight;
}
commonProcInit(PROC_SWIM_WAIT);
@@ -958,19 +958,19 @@ int daAlink_c::procSwimWaitInit(int param_0) {
if (param_0) {
seStartMapInfo(Z2SE_AL_INTO_WATER);
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
} else if (!mode_40000) {
mProcVar4.field_0x3010 = 0;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
}
swimDeleteItem();
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
daAlinkHIO_swim_c0::m.mWaitInterpolation);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
mpHIO->mSwim.m.mWaitInterpolation);
} else if (frame_ctrl->getRate() < 0.1f) {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, -1.0f);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed, -1.0f);
}
field_0x30d0 = 0;
@@ -1008,8 +1008,8 @@ int daAlink_c::procSwimWait() {
if (mEquipItem != field_0x32cc) {
field_0x32cc = mEquipItem;
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
daAlinkHIO_swim_c0::m.mWaitInterpolation);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
mpHIO->mSwim.m.mWaitInterpolation);
}
setSwimUpDownOffset();
@@ -1033,7 +1033,7 @@ int daAlink_c::procSwimWait() {
if (checkSwimButtonAccept() && doTrigger()) {
procSwimDiveInit();
} else if ((checkInputOnR() && mNormalSpeed >= daAlinkHIO_swim_c0::m.mForwardMinSpeed) ||
} else if ((checkInputOnR() && mNormalSpeed >= mpHIO->mSwim.m.mForwardMinSpeed) ||
(checkUpSwimButtonAccept() && doButton()))
{
if (checkUpSwimButtonAccept() && doButton()) {
@@ -1058,7 +1058,7 @@ int daAlink_c::procSwimMoveInit() {
}
if (!mode_40000) {
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
mProcVar4.field_0x3010 = 0;
}
@@ -1115,11 +1115,11 @@ int daAlink_c::procSwimMove() {
procSwimDiveInit();
} else if (dComIfGp_getDoStatus() == 9 && doTrigger()) {
onNoResetFlg1(FLG1_DASH_MODE);
field_0x30d0 = daAlinkHIO_swim_c0::m.field_0x5c;
setSingleAnimeParam(ANM_SWIM_DASH, &daAlinkHIO_swim_c0::m.mDashAnm);
field_0x30d0 = mpHIO->mSwim.m.field_0x5c;
setSingleAnimeParam(ANM_SWIM_DASH, &mpHIO->mSwim.m.mDashAnm);
field_0x3198 = ANM_SWIM_DASH;
} else if (!checkZoraSwimMove() && (!checkUpSwimButtonAccept() || !doButton()) &&
mNormalSpeed < daAlinkHIO_swim_c0::m.mForwardMinSpeed)
mNormalSpeed < mpHIO->mSwim.m.mForwardMinSpeed)
{
procSwimWaitInit(0);
}
@@ -1134,22 +1134,22 @@ int daAlink_c::procSwimDiveInit() {
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
mProcVar2.field_0x300c = 1;
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mDiveAnm);
setSingleAnimeParam(ANM_SWIM_DIVE, &mpHIO->mSwim.m.mDiveAnm);
voiceStart(Z2SE_AL_V_DIVING);
} else {
mProcVar2.field_0x300c = 0;
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm);
setSingleAnimeParam(ANM_SWIM_DIVE, &mpHIO->mSwim.m.mUnderwaterDiveAnm);
}
field_0x2f99 = 0x10;
field_0x3588 = l_waitBaseAnime;
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
mProcVar4.field_0x3010 = 0;
dComIfGp_setPlayerStatus0(0, 0x100000);
field_0x3000 = 30;
field_0x3478 = 0.0f;
field_0x347c = 1.0f / daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm.mEndFrame;
field_0x347c = 1.0f / mpHIO->mSwim.m.mUnderwaterDiveAnm.mEndFrame;
return 1;
}
@@ -1166,7 +1166,7 @@ int daAlink_c::procSwimDive() {
field_0x2f99 = 7;
field_0x3000 = 30;
setNormalSpeedF(0.0f, daAlinkHIO_swim_c0::m.mDeceleration);
setNormalSpeedF(0.0f, mpHIO->mSwim.m.mDeceleration);
field_0x3478 = field_0x347c * frame_ctrl->getFrame();
if (field_0x3478 > 1.0f) {
@@ -1183,7 +1183,7 @@ int daAlink_c::procSwimDive() {
}
if (checkAnmEnd(frame_ctrl)) {
speed.y = daAlinkHIO_swim_c0::m.mMaxFallSpeed;
speed.y = mpHIO->mSwim.m.mMaxFallSpeed;
if (mProcVar2.field_0x300c != 0) {
field_0x3080 = 0x2800;
@@ -1207,8 +1207,8 @@ int daAlink_c::procSwimHookshotSubjectInit() {
initHookshotUpperAnimeSpeed(1);
if (!checkUnderMove0BckNoArc(ANM_SWIM_WAIT)) {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed,
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed,
mpHIO->mItem.mHookshot.m.mStartInterpolation);
}
mNormalSpeed = 0.0f;
@@ -1228,7 +1228,7 @@ int daAlink_c::procSwimHookshotSubjectInit() {
mProcVar0.field_0x3008 = 0;
field_0x594 = getSwimFrontMaxSpeed();
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
mProcVar4.field_0x3010 = 0;
field_0x30d0 = 0;
@@ -1304,7 +1304,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
field_0x3080 = 0;
}
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
mProcVar4.field_0x3010 = 0;
field_0x30d0 = 0;
@@ -1387,16 +1387,16 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
}
f32 scale =
temp_r30->abs() * daAlinkHIO_damSwim_c0::m.mAttackSpeedRate + daAlinkHIO_damSwim_c0::m.mInitialSpeed;
if (scale > daAlinkHIO_damSwim_c0::m.mMaxSpeed) {
scale = daAlinkHIO_damSwim_c0::m.mMaxSpeed;
temp_r30->abs() * mpHIO->mDamage.mDamSwim.m.mAttackSpeedRate + mpHIO->mDamage.mDamSwim.m.mInitialSpeed;
if (scale > mpHIO->mDamage.mDamSwim.m.mMaxSpeed) {
scale = mpHIO->mDamage.mDamSwim.m.mMaxSpeed;
}
field_0x3750 = temp_r30->normZP();
field_0x3750 *= scale;
if (getZoraSwim()) {
setUpperAnimeParam(0xBF, UPPER_2, &daAlinkHIO_damSwim_c0::m.mSinkAnm);
setUpperAnimeParam(0xBF, UPPER_2, &mpHIO->mDamage.mDamSwim.m.mSinkAnm);
setFacePriBck(0xEA);
setFacePriTexture(FTANM_UNK_27);
return 1;
@@ -1408,36 +1408,36 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
mProcVar0.field_0x3008 =
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle,
(s16)daAlinkHIO_damSwim_c0::m.mFrontBackBodyMaxAngle);
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle,
(s16)mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle);
mProcVar1.field_0x300a = cLib_minMaxLimit(
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
(s16)-daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle, (s16)daAlinkHIO_damSwim_c0::m.mLeftRightBodyMaxAngle);
(s16)-mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle, (s16)mpHIO->mDamage.mDamSwim.m.mLeftRightBodyMaxAngle);
int dir = getDirectionFromAngle(cM_atan2s(-sp24.x, -sp24.z));
if (bvar4) {
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.mSurfaceAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mSurfaceAnm.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &mpHIO->mDamage.mDamSwim.m.mSurfaceAnm);
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mSurfaceAnm.mCancelFrame;
mProcVar0.field_0x3008 = 0;
mProcVar1.field_0x300a = 0;
} else if (dir == DIR_FORWARD) {
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.mFrontAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mFrontAnm.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &mpHIO->mDamage.mDamSwim.m.mFrontAnm);
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mFrontAnm.mCancelFrame;
} else if (dir == DIR_BACKWARD) {
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &daAlinkHIO_damSwim_c0::m.mRearAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRearAnm.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_BACK, &mpHIO->mDamage.mDamSwim.m.mRearAnm);
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mRearAnm.mCancelFrame;
} else if (dir == DIR_LEFT) {
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &daAlinkHIO_damSwim_c0::m.mLeftAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mLeftAnm.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_LEFT, &mpHIO->mDamage.mDamSwim.m.mLeftAnm);
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mLeftAnm.mCancelFrame;
} else {
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &daAlinkHIO_damSwim_c0::m.mRightAnm);
field_0x3478 = daAlinkHIO_damSwim_c0::m.mRightAnm.mCancelFrame;
setSingleAnimeParam(ANM_SWIM_DMG_RIGHT, &mpHIO->mDamage.mDamSwim.m.mRightAnm);
field_0x3478 = mpHIO->mDamage.mDamSwim.m.mRightAnm.mCancelFrame;
}
mNormalSpeed = 0.0f;
field_0x347c = M_PI / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
field_0x3480 = daAlinkHIO_swim_c0::m.mStartHeight;
field_0x3480 = mpHIO->mSwim.m.mStartHeight;
current.angle.y = shape_angle.y;
return 1;
+5 -6
View File
@@ -67,7 +67,7 @@ int daAlink_c::procGrassWhistleGetInit() {
current.angle.y = shape_angle.y;
field_0x2f98 = 4;
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
field_0x2f92 = 0xFE;
field_0x280c.setData(field_0x27f4);
@@ -146,7 +146,7 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s
mProcVar0.field_0x3008 = 0;
mProcVar4.field_0x3010 = 0;
mProcVar5.field_0x3012 = 0;
mMsgClassID = -1;
mMsgClassID = fpcM_ERROR_PROCESS_ID_e;
mNormalSpeed = 0.0f;
current.angle.y = shape_angle.y;
field_0x2f98 = 4;
@@ -168,7 +168,6 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s
}
// NONMATCHING - small regalloc
int daAlink_c::procGrassWhistleWait() {
if (mProcVar5.field_0x3012 != 0) {
if (checkEndMessage(field_0x32cc)) {
@@ -189,7 +188,7 @@ int daAlink_c::procGrassWhistleWait() {
mProcVar0.field_0x3008--;
if (mProcVar0.field_0x3008 == 0) {
daHorse_c* horse_p = dComIfGp_getHorseActor();
daHorse_c* horse_p = (daHorse_c*)dComIfGp_getHorseActor();
daNPC_TK_c* tk_p = (daNPC_TK_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchWhistle, NULL);
if (tk_p != NULL) {
@@ -276,9 +275,9 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
}
if (checkWolf()) {
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
} else {
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
}
setGrassCancelStatus(0);
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -354,6 +354,7 @@ static s8 b_bh_down(b_bh_class* i_this) {
s8 sp8 = 0;
cXyz sp20 = i_this->field_0x6b0 - a_this->current.pos;
sp20.y = 0.0f;
f32 temp_f31;
switch (i_this->mMode) {
case 0:
@@ -371,7 +372,7 @@ static s8 b_bh_down(b_bh_class* i_this) {
i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_BH_V_ROUT, -1);
}
f32 temp_f31 = 100.0f + JREG_F(0);
temp_f31 = 100.0f + JREG_F(0);
sp2C.x = temp_f31 * cM_ssin(i_this->field_0x668 * (TREG_S(0) + 900));
sp2C.z = temp_f31 * cM_scos(i_this->field_0x668 * (TREG_S(2) + 1000));
@@ -661,6 +662,7 @@ static s8 b_bh_b_down(b_bh_class* i_this) {
s8 var_r27 = 0;
cXyz spC = i_this->field_0x6b0 - i_this->current.pos;
spC.y = 0.0f;
f32 temp_f31;
switch (i_this->mMode) {
case 0:
@@ -678,7 +680,7 @@ static s8 b_bh_b_down(b_bh_class* i_this) {
i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_BH_V_ROUT, -1);
}
f32 temp_f31 = 100.0f + JREG_F(0);
temp_f31 = 100.0f + JREG_F(0);
sp18.x = temp_f31 * cM_ssin(i_this->field_0x668 * (TREG_S(0) + 900));
sp18.z = temp_f31 * cM_scos(i_this->field_0x668 * (TREG_S(2) + 1000));
+77 -72
View File
@@ -1254,7 +1254,7 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEye.z = tentacle->current.pos.z + i_this->field_0x1298;
i_this->mDemoCamCenter.x = tentacle->current.pos.x;
i_this->mDemoCamCenter.y = tentacle->current.pos.y;
i_this->mDemoCamCenter.y = tentacle->current.pos.y + ZREG_F(1);
i_this->mDemoCamCenter.z = tentacle->current.pos.z;
} else {
spFC = tentacle->current.pos;
@@ -1423,10 +1423,10 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEye = camera0->lookat.eye;
i_this->mDemoCamCenter = camera0->lookat.center;
dComIfGp_getEvent().startCheckSkipEdge(i_this);
dComIfGp_getEvent().startCheckSkipEdge(a_this);
// fallthrough
case 11:
if (i_this->mDemoModeTimer == VREG_S(0) + 8) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(0) + 8)) {
daPy_getPlayerActorClass()->changeDemoMode(0x19, 0, 0, 0);
}
@@ -1444,11 +1444,11 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEyeTarget.set(240.0f, 274.0f, 2075.0f);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
}
spFC.set(0.0f, 0.0f, 1700.0f);
@@ -1464,10 +1464,12 @@ static void demo_camera(b_bq_class* i_this) {
spF0 = i_this->mDemoCamCenterTarget - i_this->mDemoCamCenter;
f32 temp_f30 = spF0.abs();
var_f31 = temp_f31 * (BREG_F(19) + 0.1f) * cM_ssin((temp_f30 / temp_f31) * (f32)0x8000);
f32 f28 = temp_f31 * (BREG_F(19) + 0.1f);
s16 sp0C = (temp_f30 / temp_f31) * (f32)0x8000;
var_f31 = f28 * cM_ssin(sp0C);
}
if (i_this->mDemoModeTimer != VREG_S(8) + 320) {
if (i_this->mDemoModeTimer != (s16)(VREG_S(8) + 320)) {
break;
}
@@ -1476,32 +1478,32 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamCenterTarget.set(76.0f, 204.0f, 1782.0f);
i_this->mDemoCamEyeTarget.set(-41.0f, 261.0f, 2095.0f);
i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
i_this->field_0x129c = 0.0f;
i_this->mDemoMode = 12;
i_this->mDemoModeTimer = 0;
// fallthrough
case 12:
if (i_this->mDemoModeTimer == 260) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(0) + 260)) {
i_this->field_0x6f9 = 2;
}
cam_3d_morf(i_this, 0.1f);
cLib_addCalc2(&i_this->field_0x129c, 0.005f, 1.0f, 0.00015f);
if (i_this->mDemoModeTimer == VREG_S(2) + 340) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(2) + 340)) {
i_this->mDemoCamCenter = tentacle->current.pos;
i_this->mDemoCamCenter.y = 0.0f;
i_this->mDemoCamCenter.y = VREG_F(6) + 0.0f;
i_this->mDemoCamEye.set(1394.0f, 313.0f, -300.0f);
i_this->mDemoMode = 13;
@@ -1537,43 +1539,43 @@ static void demo_camera(b_bq_class* i_this) {
dComIfGp_getVibration().StopQuake(31);
}
if (i_this->mDemoModeTimer == VREG_S(2) + 100) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(2) + 100)) {
i_this->field_0x6f9 = 2;
}
if (i_this->mDemoModeTimer == VREG_S(4) + 53) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(4) + 53)) {
i_this->mColpatType = 15;
}
if (i_this->mDemoModeTimer >= VREG_S(3) + 110) {
if (i_this->mDemoModeTimer >= (s16)(VREG_S(3) + 110)) {
cLib_addCalc2(&i_this->mDemoCamCenter.x, tentacle->current.pos.x, 0.1f,
VREG_S(5) + 20.0f);
VREG_F(5) + 20.0f);
if (tentacle->current.pos.y + 100.0f > 0.0f) {
cLib_addCalc2(&i_this->mDemoCamCenter.y, tentacle->current.pos.y + 100.0f, 0.8f,
VREG_S(5) + 60.0f);
VREG_F(5) + 60.0f);
}
cLib_addCalc2(&i_this->mDemoCamCenter.z, tentacle->current.pos.z, 0.1f,
VREG_S(5) + 20.0f);
VREG_F(5) + 20.0f);
if (i_this->mDemoModeTimer == VREG_S(4) + 113) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(4) + 113)) {
i_this->field_0x6f9 = 2;
i_this->mColpatType = 1;
}
if (i_this->mDemoModeTimer >= VREG_S(5) + 150) {
cLib_addCalc2(&i_this->mDemoCamEye.y, VREG_S(6) + 1413.0f, 0.1f,
i_this->field_0x129c * (VREG_S(7) + 40.0f));
if (i_this->mDemoModeTimer >= (s16)(VREG_S(5) + 150)) {
cLib_addCalc2(&i_this->mDemoCamEye.y, VREG_F(6) + 1413.0f, 0.1f,
i_this->field_0x129c * (VREG_F(7) + 40.0f));
cLib_addCalc2(&i_this->field_0x129c, 1.0f, 1.0f, 0.02f);
if (i_this->mDemoModeTimer == VREG_S(6) + 200) {
if (i_this->mDemoModeTimer == (s16)(VREG_S(6) + 200)) {
daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 2, 0);
}
}
}
if (i_this->mDemoModeTimer != VREG_S(7) + 280) {
if (i_this->mDemoModeTimer != (s16)(VREG_S(7) + 280)) {
break;
}
@@ -1582,16 +1584,16 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamCenterTarget.set(0.0f, 278.0f, 1252.0f);
i_this->mDemoCamEyeTarget.set(0.0f, 86.0f, 2167.0f);
i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
i_this->field_0x129c = 0.0f;
i_this->mDemoMode = 14;
@@ -1739,16 +1741,16 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamCenterTarget.set(-2243.0f, 1340.0f, 977.0f);
i_this->mDemoCamEyeTarget.set(-1226.0f, 980.0f, 1350.0f);
i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
i_this->field_0x129c = 0.0f;
i_this->mDemoMode = 34;
@@ -1759,7 +1761,7 @@ static void demo_camera(b_bq_class* i_this) {
cam_3d_morf(i_this, 0.2f);
cLib_addCalc2(&i_this->field_0x129c, 0.1f, 1.0f, 0.005f);
if (i_this->mDemoModeTimer > JREG_S(7) + 133) {
if (i_this->mDemoModeTimer > (s16)(JREG_S(7) + 133)) {
cLib_addCalc2(&i_this->mDemoCamFovy, 30.0f, 0.5f, 4.0f);
}
}
@@ -1783,7 +1785,7 @@ static void demo_camera(b_bq_class* i_this) {
mDoMtx_stack_c::multVecZero(&sp114);
cLib_addCalc2(&i_this->mDemoCamCenter.x, sp114.x, BREG_F(14) + 0.6f, 100.0f);
cLib_addCalc2(&i_this->mDemoCamCenter.y, sp114.y + 200.0f + BREG_F(12), BREG_F(14) + 0.6f,
cLib_addCalc2(&i_this->mDemoCamCenter.y, sp114.y + 200.0f + JREG_F(12), BREG_F(14) + 0.6f,
100.0f);
cLib_addCalc2(&i_this->mDemoCamCenter.z, sp114.z, BREG_F(14) + 0.6f, 100.0f);
@@ -1812,9 +1814,9 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEye.set(95.0f, 50.0f, 2800.0f);
i_this->mDemoCamEyeTarget.set(72.0f, 52.0f, 2153.0f);
i_this->field_0x127c.x = std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x127c.x = fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y = fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z = fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.set(0.0f, 0.0f, 0.0f);
i_this->field_0x129c = 0.0f;
@@ -1854,12 +1856,12 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mColpatType = 4;
}
if (i_this->mDemoModeTimer >= TREG_S(5) + 380) {
if (i_this->mDemoModeTimer >= (s16)(TREG_S(5) + 380)) {
cam_3d_morf(i_this, 0.1f);
cLib_addCalc2(&i_this->field_0x129c, 0.05f, 1.0f, 0.001f);
}
if (i_this->mDemoModeTimer == TREG_S(6) + 430) {
if (i_this->mDemoModeTimer == (s16)(TREG_S(6) + 430)) {
i_this->field_0x5c8 = 1;
i_this->field_0x5cc = a_this->eyePos;
}
@@ -1870,7 +1872,7 @@ static void demo_camera(b_bq_class* i_this) {
spFC.set(BREG_F(5) + -30.0f, 0.0f, BREG_F(6) + 1938.0f);
}
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&spFC, 0x8000, 0);
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&spFC, BREG_S(5) + 0x8000, 0);
if (i_this->field_0x5c8 != 0) {
i_this->field_0x5cc.y += i_this->field_0x5d8;
@@ -1890,7 +1892,7 @@ static void demo_camera(b_bq_class* i_this) {
} else {
i_this->field_0x5d8 = 0.0f;
}
} else if (i_this->mDemoModeTimer >= TREG_S(6) + 435) {
} else if (i_this->mDemoModeTimer >= (s16)(TREG_S(6) + 435)) {
i_this->field_0x5cc.z += BREG_F(9) + 6.0f;
}
@@ -1923,8 +1925,11 @@ static void demo_camera(b_bq_class* i_this) {
fopAcM_GetRoomNo(a_this), &a_this->shape_angle, &sp120,
0.0f, 0.0f, -1);
fopAcM_delete(fopAcM_SearchByID(i_this->mTentacleIDs[0]));
fopAcM_delete(fopAcM_SearchByID(i_this->mTentacleIDs[1]));
fopAc_ac_c* sp28;
sp28 = fopAcM_SearchByID(i_this->mTentacleIDs[0]);
fopAcM_delete(sp28);
sp28 = fopAcM_SearchByID(i_this->mTentacleIDs[1]);
fopAcM_delete(sp28);
}
if (i_this->mDemoModeTimer == 535) {
@@ -1968,18 +1973,18 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEyeTarget.set(1214.0f, 350.0f, 2696.0f);
i_this->field_0x127c.x =
std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y =
std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z =
std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
i_this->field_0x129c = 0.0f;
} else if (i_this->mDemoModeTimer < 140) {
@@ -1988,18 +1993,18 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEyeTarget.set(23.0f, 108.0f, 2155.0f);
i_this->field_0x127c.x =
std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y =
std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z =
std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
}
cam_3d_morf(i_this, 0.1f);
@@ -2037,18 +2042,18 @@ static void demo_camera(b_bq_class* i_this) {
i_this->mDemoCamEyeTarget.set(953.0f, 997.0f, -36.0f);
i_this->field_0x127c.x =
std::fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
fabsf(i_this->mDemoCamEyeTarget.x - i_this->mDemoCamEye.x);
i_this->field_0x127c.y =
std::fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
fabsf(i_this->mDemoCamEyeTarget.y - i_this->mDemoCamEye.y);
i_this->field_0x127c.z =
std::fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
fabsf(i_this->mDemoCamEyeTarget.z - i_this->mDemoCamEye.z);
i_this->field_0x1288.x =
std::fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
fabsf(i_this->mDemoCamCenterTarget.x - i_this->mDemoCamCenter.x);
i_this->field_0x1288.y =
std::fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
fabsf(i_this->mDemoCamCenterTarget.y - i_this->mDemoCamCenter.y);
i_this->field_0x1288.z =
std::fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
cXyz pos(0.0f, 0.0f, 0.0f);
for (int i = 0; i < 5; i++) {
@@ -2123,7 +2128,7 @@ static void demo_camera(b_bq_class* i_this) {
i_this->field_0x1151 = 1;
dComIfGs_onStageBossEnemy();
int sw = (fopAcM_GetParam(a_this) >> 0x10) & 0xFF;
int sw = (fopAcM_GetParam(a_this) & 0x00FF0000) >> 0x10;
dComIfGs_offSwitch(sw, fopAcM_GetRoomNo(a_this));
fish_set(i_this);
@@ -2136,7 +2141,7 @@ static void demo_camera(b_bq_class* i_this) {
Z2GetAudioMgr()->subBgmStop();
OS_REPORT("//////////////B_BQ SKIP 11\n");
int sw = (fopAcM_GetParam(a_this) >> 8) & 0xFF;
int sw = (fopAcM_GetParam(a_this) & 0x0000FF00) >> 8;
dComIfGs_onSwitch(sw, fopAcM_GetRoomNo(a_this));
dStage_changeScene(1, 0.0f, 0, fopAcM_GetRoomNo(a_this), 0, -1);
i_this->mDemoMode = 1000;
+8 -8
View File
@@ -880,17 +880,17 @@ void daB_DR_c::mHabatakiAnmSet(int param_0) {
}
break;
case ANM_DR_BRAKE_TO_HOVER:
if (mpModelMorf->isStop()) {
if (param_0 != 4) {
goto lbl_805bc4e0; // fakematch?
}
setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f);
if (!mpModelMorf->isStop()) {
break;
}
break;
if (param_0 == 4) {
setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f);
break;
}
/* fallthrough */
default:
lbl_805bc4e0:
setBck(ANM_DR_HOVERING, 2, 3.0f, 1.0f);
/* fallthrough */
case ANM_DR_HOVERING:
if ((int)mpModelMorf->getFrame() >= (int)(mpModelMorf->getEndFrame() - 1.0f) && param_0 == 4) {
setBck(ANM_DR_FLAP, 2, 3.0f, 1.0f);
+20 -10
View File
@@ -2652,11 +2652,12 @@ void daB_GG_c::FallChk() {
}
void daB_GG_c::G_AttackAction() {
int rnd;
switch (mMode) {
case 0:
SpeedClear();
int rnd = cM_rndF(100.0f);
rnd = cM_rndF(100.0f);
if (rnd > 70) {
SetAnm(BCK_GGB_ATTACK_A, 0, 5.0f, 1.0f);
@@ -2723,7 +2724,7 @@ void daB_GG_c::G_AttackAction() {
mCcCyl.OnTgShield();
mCcShieldSph.OnTgShield();
int rnd = cM_rndF(100.0f);
rnd = cM_rndF(100.0f);
if (rnd < 30 || mAnm == BCK_GGB_ATTACK_C) {
SetAction(ACTION_GROUND, SUBACT_MOVE, 0);
} else if (mAnm != BCK_GGB_ATTACK_C && rnd > 50) {
@@ -2770,7 +2771,6 @@ void daB_GG_c::G_AttackAction() {
mCcSph[i].OnAtSetBit();
mCcSph[i].SetAtSpl((dCcG_At_Spl) 0xA);
}
break;
}
F_AtHit();
@@ -2904,11 +2904,13 @@ void daB_GG_c::G_DamageAction() {
speedF = 0.0f;
}
s_TargetAngle += 0x4000;
s_TargetAngle += (s16) 0x4000;
break;
case 2:
cXyz* tg_hit_pos = mCcCyl.GetTgHitPosP();
s16 spA = cLib_targetAngleY(&current.pos, tg_hit_pos);
cXyz* tg_hit_pos;
s16 spA;
tg_hit_pos = mCcCyl.GetTgHitPosP();
spA = cLib_targetAngleY(&current.pos, tg_hit_pos);
if ((spA - shape_angle.y) > 0) {
if (mAnm != BCK_GGB_DAMAGE_R) {
SetAnm(BCK_GGB_DAMAGE_R, 0, 5.0f, 1.0f);
@@ -2923,7 +2925,9 @@ void daB_GG_c::G_DamageAction() {
SetAction(ACTION_GROUND, SUBACT_DAMAGE, 3);
if (health < (s16)(field_0x560 * l_HIO.field_0x18) && field_0x5b0 == 0 && mType == TYPE_L7_MBOSS) {
if (health < (s16)(field_0x560 * l_HIO.field_0x18) && field_0x5b0 == 0 &&
mType == TYPE_L7_MBOSS)
{
mpModelMorf->setPlaySpeed(1.0f);
SetAction(ACTION_DEMO, 1, 0);
mCamMode = 0;
@@ -2954,11 +2958,16 @@ void daB_GG_c::G_DamageAction() {
mCamMode = 0;
}
break;
case 3:
int cut_count = daPy_getPlayerActorClass()->getCutCount();
case 3: {
u8 cut_count = daPy_getPlayerActorClass()->getCutCount();
u32 cut_type = daPy_getPlayerActorClass()->getCutType();
if ((cut_type == daPy_py_c::CUT_TYPE_TURN_LEFT || cut_type == daPy_py_c::CUT_TYPE_TURN_RIGHT || cut_type == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT || cut_type == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) && field_0x6bc > 0) {
if ((cut_type == daPy_py_c::CUT_TYPE_TURN_LEFT ||
cut_type == daPy_py_c::CUT_TYPE_TURN_RIGHT ||
cut_type == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT ||
cut_type == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) &&
field_0x6bc > 0)
{
mCcCyl.OnTgShield();
mCcShieldSph.OnTgShield();
mCcShieldSph.OnTgSetBit();
@@ -2984,6 +2993,7 @@ void daB_GG_c::G_DamageAction() {
FallChk();
break;
}
case 4:
sp38 = eyePos;
sp38.y += 180.0f + NREG_F(7);
+3 -2
View File
@@ -1458,7 +1458,7 @@ static void demo_camera(b_gm_class* i_this) {
i_this->mDemoModeTimer = 0;
}
break;
case 42:
case 42: {
if (i_this->mDemoModeTimer == 30) {
daPy_getPlayerActorClass()->changeDemoMode(daPy_demo_c::DEMO_UNEQUIP_e, 0, 0, 0);
}
@@ -1479,7 +1479,7 @@ static void demo_camera(b_gm_class* i_this) {
if (i_this->mDemoModeTimer > 200) {
cLib_addCalc2(&i_this->field_0x1cec.y, 100.0f, 0.05f, 0.7f);
}
obj_ystone_class* ystone = (obj_ystone_class*)fopAcM_SearchByName(PROC_OBJ_YSTONE);
if (ystone != NULL) {
if (i_this->mDemoModeTimer > 200) {
@@ -1500,6 +1500,7 @@ static void demo_camera(b_gm_class* i_this) {
sp10 = 2;
}
break;
}
case 50:
if (!a_this->eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0);
+2 -1
View File
@@ -204,12 +204,13 @@ void daBdoorL5_c::demoProc() {
}
}
switch (demoAction) {
case 1:
case 1: {
obj_keyhole_class* keyhole = (obj_keyhole_class*)fopAcM_SearchByID(mKeyHoleId);
if ((keyhole != NULL && keyhole->checkOpenEnd()) || mKeyHoleId == -1) {
dComIfGp_evmng_cutEnd(field_0x59c);
}
break;
}
case 2:
if (openProc() != 0) {
openEnd();
+7 -3
View File
@@ -353,7 +353,8 @@ int daKnob20_c::demoProc() {
field_0x610 = 10;
break;
case 10:
int msgNo = knob_param_c::getMsgNo(this);
int msgNo;
msgNo = knob_param_c::getMsgNo(this);
if (msgNo != 0xffff) {
field_0x5c0.init(this, msgNo, 0, NULL);
}
@@ -391,6 +392,7 @@ int daKnob20_c::demoProc() {
case 10:
dComIfGp_event_offHindFlag(1);
if (field_0x5c0.doFlow(this, NULL, 0) != 0) {
OS_REPORT("会話終了!\n"); // Conversation over!
int msgNo = knob_param_c::getMsgNo(this);
if (msgNo != 0xffff) {
field_0x5c0.init(this, msgNo, 0, NULL);
@@ -406,12 +408,14 @@ int daKnob20_c::demoProc() {
case 9:
dComIfGp_evmng_cutEnd(field_0x5bc);
break;
case 14:
if (cLib_addCalcAngleS(&field_0x612, -0x2800, 20, 500, 10) == 0) {
case 14: {
s16 tmp = cLib_addCalcAngleS(&field_0x612, -0x2800, 20, 500, 10);
if (tmp == 0) {
dComIfGp_evmng_cutEnd(field_0x5bc);
}
calcMtx();
break;
}
case 15:
dComIfGp_evmng_cutEnd(field_0x5bc);
calcMtx();
+3 -2
View File
@@ -569,7 +569,7 @@ void daMBdoorL1_c::demoProc() {
int level = getNowLevel(this);
if (dComIfGp_evmng_getIsAddvance(field_0x5e8)) {
switch (demoAction) {
case 0:
case 0: {
int* puVar6 = dComIfGp_evmng_getMyIntegerP(field_0x5e8, "Timer");
if (puVar6 == NULL) {
field_0x5ec = 1;
@@ -577,6 +577,7 @@ void daMBdoorL1_c::demoProc() {
field_0x5ec = *puVar6;
}
break;
}
case 1:
if (level == 5 || level == 11) {
setAngleQuickly();
@@ -597,7 +598,7 @@ void daMBdoorL1_c::demoProc() {
{
unlockInit();
fopAcM_onSwitch(this, (u8)cVar10);
dComIfGp_setItemKeyNumCount(0xffffffff);
dComIfGp_setItemKeyNumCount(-1);
fopAcM_seStart(this, Z2SE_OBJ_DOOR_CHAIN_LOCK_OPEN, 0);
}
break;
+5 -4
View File
@@ -72,7 +72,7 @@ void daDoorPush_c::setBaseMtx() {
static char* l_arcName = "V_OsuDoor";
static Vec l_cull_box[2] = {
static cull_box l_cull_box = {
{-600.0f, 0.0f, -600.0f},
{600.0f, 1000.0f, 600.0f},
};
@@ -88,8 +88,8 @@ int daDoorPush_c::Create() {
mIndex = 2;
initBaseMtx();
fopAcM_SetMtx(this, mActorMtx);
fopAcM_setCullSizeBox(this, l_cull_box[0].x, l_cull_box[0].y, l_cull_box[0].z, l_cull_box[1].x,
l_cull_box[1].y, l_cull_box[1].z);
fopAcM_setCullSizeBox(this, l_cull_box.min.x, l_cull_box.min.y, l_cull_box.min.z, l_cull_box.max.x,
l_cull_box.max.y, l_cull_box.max.z);
mpBgW->SetPushPullCallback((dBgW_Base::PushPull_CallBack)PPCallBack);
mpDoorBgW->SetPushPullCallback((dBgW_Base::PushPull_CallBack)PPCallBack2);
eventInfo.setArchiveName(l_arcName);
@@ -239,7 +239,7 @@ int daDoorPush_c::demoProc() {
dComIfGp_evmng_getMyActIdx(field_0x644, action_table, ARRAY_SIZEU(action_table), 0, 0);
if (dComIfGp_evmng_getIsAddvance(field_0x644) != 0) {
switch (actIdx) {
case WAIT_e:
case WAIT_e: {
int* integerP = dComIfGp_evmng_getMyIntegerP(field_0x644, "Timer");
if (integerP == NULL) {
field_0x648 = 1;
@@ -247,6 +247,7 @@ int daDoorPush_c::demoProc() {
field_0x648 = *integerP;
}
break;
}
case OPEN_e:
rotateInit();
field_0x641 = 0;
+19 -15
View File
@@ -131,7 +131,6 @@ int daDoor20_c::CreateHeap() {
field_0x5a0.entry(mModel1->getModelData());
mModel2->calc();
} else {
switch (kind) {
case 0:
case 3:
@@ -145,11 +144,14 @@ int daDoor20_c::CreateHeap() {
case 1:
anm = (J3DAnmTransform*)dComIfG_getObjectRes(getArcName(), "oj_DoorOpC.bck");
break;
case 2:
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getStageRes(getBtk());
case 2:
J3DAnmTextureSRTKey* pbtk;
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getStageRes(getBtk());
JUT_ASSERT(421, pbtk != NULL);
field_0x5c0 = new mDoExt_btkAnm();
if (field_0x5c0 == NULL || !field_0x5c0->init(mModel1->getModelData(), pbtk, 1, 0, 1.0f, 0, -1)) {
if (field_0x5c0 == NULL ||
!field_0x5c0->init(mModel1->getModelData(), pbtk, 1, 0, 1.0f, 0, -1))
{
return 0;
}
anm = (J3DAnmTransform*)dComIfG_getObjectRes(getArcName(), "oj_DoorOpD.bck");
@@ -820,17 +822,18 @@ int daDoor20_c::create() {
int daDoor20_c::demoProc() {
field_0x6cc = dComIfGp_evmng_getMyStaffId("SHUTTER_DOOR", 0, 0);
int demoAction = getDemoAction();
J3DAnmTransform* anm;
if (dComIfGp_evmng_getIsAddvance(field_0x6cc)) {
switch (demoAction) {
case 0:
int* pTimer = dComIfGp_evmng_getMyIntegerP(
field_0x6cc, "Timer");
case 0: {
int* pTimer = dComIfGp_evmng_getMyIntegerP(field_0x6cc, "Timer");
if (pTimer == NULL) {
field_0x5dd = 1;
} else {
field_0x5dd = *pTimer;
}
break;
}
case 3:
openInit(0);
break;
@@ -854,13 +857,14 @@ int daDoor20_c::demoProc() {
keyhole->setOpen();
}
}
int swBit = door_param2_c::getSwbit(this);
int swBit;
swBit = door_param2_c::getSwbit(this);
if (swBit != 0xff &&
!dComIfGs_isSwitch(swBit, 0xffffffff) &&
(door_param2_c::getFrontOption(this) == 2 || door_param2_c::getBackOption(this) == 2))
{
dComIfGs_onSwitch(swBit, 0xffffffff);
dComIfGp_setItemKeyNumCount(0xffffffff);
dComIfGp_setItemKeyNumCount(-1);
if (field_0x673 == 1) {
fopAcM_seStart(this, Z2SE_OBJ_DOOR_LOCK_OPEN, 0);
} else {
@@ -885,8 +889,7 @@ int daDoor20_c::demoProc() {
setAngle();
break;
case 13:
J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectRes(
getAlwaysArcName(), "FDoorB.bck");
anm = (J3DAnmTransform*)dComIfG_getObjectRes(getAlwaysArcName(), "FDoorB.bck");
JUT_ASSERT(1796, anm != NULL);
if (!field_0x584.init(anm, 1, 0, 1.0f, 0, -1, true) || !field_0x5a0.init(anm,
1, 0, 1.0f, 0, -1, true))
@@ -897,8 +900,7 @@ int daDoor20_c::demoProc() {
openInit2();
break;
case 12:
anm =
(J3DAnmTransform*)dComIfG_getObjectRes(getAlwaysArcName(), "FDoorA.bck");
anm = (J3DAnmTransform*)dComIfG_getObjectRes(getAlwaysArcName(), "FDoorA.bck");
JUT_ASSERT(1809, anm != NULL);
if (!field_0x584.init(anm, 1, 0, 1.0f, 0, -1, true) || !field_0x5a0.init(anm,
1, 0, 1.0f, 0, -1, true))
@@ -1102,7 +1104,7 @@ int daDoor20_c::demoProc() {
case 25:
dComIfGp_evmng_cutEnd(field_0x6cc);
break;
case 26:
case 26: {
int msgNo = door_param2_c::getMsgNo(this);
if (door_param2_c::isMsgDoor(this) && msgNo != 0xffff) {
dComIfGp_event_offHindFlag(1);
@@ -1113,6 +1115,7 @@ int daDoor20_c::demoProc() {
dComIfGp_evmng_cutEnd(field_0x6cc);
}
break;
}
case 27:
case 28:
if (field_0x5c0->play()) {
@@ -1678,7 +1681,8 @@ void daDoor20_c::makeEventId() {
}
break;
case 4:
int j = 0;
int j;
j = 0;
for (i = 12; i < 19; i++, j++) {
field_0x692[i] =
dComIfGp_getEventManager().getEventIdx(this, knob_table[j], field_0x6b8[i]);
+8 -7
View File
@@ -344,9 +344,10 @@ static void e_bi_ex(e_bi_class* i_this) {
i_this->field_0x670 = 1;
i_this->field_0x694 = 160;
anm_init(i_this, BCK_BI_BOMBPOSE, 10.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
f32 fVar1 = cM_rndF(0.2f) + 0.9f;
f32 fVar1;
fVar1 = cM_rndF(0.2f) + 0.9f;
i_this->field_0x6a2 = 0;
i_this->field_0x6a4 = 3800.0f * fVar1;
i_this->field_0x6a4 = (3800.0f + JREG_F(5)) * fVar1;
i_this->field_0x6a8 = fVar1 * 20.0f;
a_this->speed.y = 23.0f;
break;
@@ -358,8 +359,8 @@ static void e_bi_ex(e_bi_class* i_this) {
}
// fallthrough
case 2:
cLib_addCalc0(&i_this->field_0x6a8, 1.0f, 1.0f);
cLib_addCalcAngleS2(&i_this->field_0x6a4, 0, 1, 200);
cLib_addCalc0(&i_this->field_0x6a8, 1.0f, 1.0f + JREG_F(7));
cLib_addCalcAngleS2(&i_this->field_0x6a4, 0, 1, 200 + JREG_S(6));
break;
}
@@ -374,13 +375,13 @@ static void e_bi_ex(e_bi_class* i_this) {
if (i_this->field_0x694 != 0) {
i_this->field_0x694--;
i_this->mSound.startCreatureSoundLevel(Z2SE_OBJ_BOMB_IGNITION, 0, -1);
i_this->field_0x696 += 0x1100;
i_this->field_0x696 += (s16) 0x1100;
if (i_this->field_0x694 < 45) {
i_this->field_0x696 += 0x1100;
i_this->field_0x696 += (s16) 0x1100;
if (i_this->field_0x694 < 30) {
i_this->field_0x696 += 0x1100;
i_this->field_0x696 += (s16) 0x1100;
}
}
+2 -1
View File
@@ -511,6 +511,7 @@ static void e_bu_path_fly(e_bu_class* i_this) {
fopAc_ac_c* actor = &i_this->enemy;
fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz sp18;
dPnt* pnt;
switch (i_this->mode) {
case 0:
@@ -540,7 +541,7 @@ static void e_bu_path_fly(e_bu_class* i_this) {
case 2:
i_this->mode = 3;
dPnt* pnt = i_this->ppd->m_points;
pnt = i_this->ppd->m_points;
pnt += i_this->now_path_pntNo;
i_this->field_0x690 = TREG_F(7);
+1609 -1522
View File
File diff suppressed because it is too large Load Diff
+6 -7
View File
@@ -502,6 +502,7 @@ void daE_FZ_c::executeAttack() {
void daE_FZ_c::executeDamage() {
cXyz pos;
pos.set(l_HIO.field_0x0c, l_HIO.field_0x0c, l_HIO.field_0x0c);
f32 tmp;
switch(mActionPhase) {
case 0:
@@ -519,7 +520,7 @@ void daE_FZ_c::executeDamage() {
fopAcM_delete(this);
break;
case 1:
f32 tmp = l_HIO.field_0x28;
tmp = l_HIO.field_0x28;
speedF = tmp;
field_0x6fc = tmp;
case 5:
@@ -611,9 +612,7 @@ void daE_FZ_c::executeRollMove() {
cXyz pos;
s16 roll_angle = static_cast<daB_YO_c*>(mpBlizzetaActor)->getFrizadRollAngle();
f32 mode_rarius = static_cast<daB_YO_c*>(mpBlizzetaActor)->getModeRarius();
mode_rarius = 100.0f + mode_rarius;
f32 mode_rarius = 100.0f + static_cast<daB_YO_c*>(mpBlizzetaActor)->getModeRarius();
if (mode_rarius < 400.0f)
mode_rarius = 400.0f;
@@ -636,9 +635,8 @@ void daE_FZ_c::executeRollMove() {
pos.z += (f32)(mode_rarius * cM_scos(roll_angle + field_0x715 * 0xccc));
current.pos = pos;
u32 frizad_attack = static_cast<daB_YO_c*>(mpBlizzetaActor)->getFrizadAttack();
if (frizad_attack == 3) {
if (static_cast<daB_YO_c*>(mpBlizzetaActor)->getFrizadAttack() == 3) {
mActionPhase = 2;
speedF = 60.0f;
current.angle.y = cLib_targetAngleY(&static_cast<daB_YO_c*>(mpBlizzetaActor)->current.pos,&current.pos);
@@ -655,7 +653,8 @@ void daE_FZ_c::executeRollMove() {
}
if (mAtSph.ChkAtHit()) {
if ((fopAcM_GetName(mAtSph.GetAtHitAc()) == PROC_ALINK) || mAtSph.ChkAtShieldHit()) {
fopAc_ac_c* at_hit_actor = mAtSph.GetAtHitAc();
if ((fopAcM_GetName(at_hit_actor) == PROC_ALINK) || mAtSph.ChkAtShieldHit()) {
setActionMode(ACT_DAMAGE,0);
return;
}
+8 -8
View File
@@ -659,6 +659,7 @@ void daE_GE_c::executeBack() {
cXyz position;
cXyz position2;
s16 chaseAngle = 0x0;
s16 distAngleS;
switch (mMode) {
case 0:
@@ -694,7 +695,7 @@ void daE_GE_c::executeBack() {
position =
calcCircleFly(&home.pos, &position2, field_0xb8c, field_0xb58, field_0xb8a, 1.0f);
s16 distAngleS =
distAngleS =
cLib_distanceAngleS(cLib_targetAngleY(&current.pos, &home.pos), shape_angle.y);
if (position.y > 100.0f || mObjAcch.ChkWallHit() || distAngleS >= 0x5000) {
field_0xb8c += 0x190;
@@ -993,27 +994,26 @@ void daE_GE_c::executeWind() {
}
switch (mMode) {
case 0:
case 0: {
field_0xb9e = 0;
cXyz boomerangPos(daPy_py_c::getThrowBoomerangActor()->current.pos);
field_0xb58 = current.pos.absXZ(boomerangPos);
field_0xb5c = current.pos.y - boomerangPos.y;
speed.y = 0.0f;
speedF = 0.0f;
speedF = speed.y = 0.0f;
mMode = 1;
bckSet(9, 3.0f, 2, 1.0f);
field_0xb64 = cM_rndFX(50.0f);
field_0xb60 = cM_rndFX(100.0f);
}
/* fallthrough */
case 1:
case 1: {
if (mpMorfSO->checkFrame(0.0f)) {
mSound.startCreatureVoice(Z2SE_EN_GE_V_FURA, -1);
}
cXyz boomerangPos2(daPy_py_c::getThrowBoomerangActor()->current.pos);
field_0xb8c += 0x800;
field_0xb8c += (s16)0x800;
current.pos.x = boomerangPos2.x + field_0xb58 * cM_ssin(field_0xb8c);
current.pos.z = boomerangPos2.z + field_0xb58 * cM_scos(field_0xb8c);
cLib_chaseF(&field_0xb58, field_0xb60, 2.0f);
@@ -1028,6 +1028,7 @@ void daE_GE_c::executeWind() {
field_0xb8a = 0x3000;
shape_angle.y += field_0xb8a;
break;
}
case 2:
cLib_addCalcAngleS2(&field_0xb8a, 0, 4, 0x180);
@@ -1042,7 +1043,6 @@ void daE_GE_c::executeWind() {
setActionMode(ACTION_BACK);
mMode = 10;
}
break;
}
}
+7 -5
View File
@@ -679,13 +679,13 @@ void daE_HZ_c::initBackWalk() {
}
void daE_HZ_c::executeAway() {
f32 diff;
switch (mMode) {
case 0:
gravity = 0.0f;
speed.y = 0.0f;
mSpheres[0].OffTgSetBit();
shape_angle.z = 0;
shape_angle.x = 0;
shape_angle.x = shape_angle.z = 0;
setBck(0xF, 0, 10.0f, 1.0f);
field_0x6e4 = 1;
mMode = 1;
@@ -724,7 +724,7 @@ void daE_HZ_c::executeAway() {
break;
case 2:
f32 diff = (current.pos - field_0x678).absXZ();
diff = (current.pos - field_0x678).absXZ();
cLib_chaseAngleS(&shape_angle.y, cLib_targetAngleY(&current.pos, &field_0x678),
diff < 500.0f ? (s16)0x800 : (s16)0x200);
cLib_chaseF(&speedF, l_HIO.escape_speed, 1.0f);
@@ -823,6 +823,8 @@ void daE_HZ_c::executeWind() {
dBgS_LinChk linChk;
BOOL bVar = false;
f32 frame = mpMorfSO->getFrame();
f32 playerDist;
f32 groundCross;
mpBoomerangActor = daPy_py_c::getThrowBoomerangActor();
switch (mMode) {
@@ -839,7 +841,7 @@ void daE_HZ_c::executeWind() {
mMode = 1;
field_0x6e4 = 0;
f32 playerDist = fopAcM_searchPlayerDistance(this);
playerDist = fopAcM_searchPlayerDistance(this);
if (playerDist >= 1000.0f) {
playerDist = 1000.0f;
}
@@ -927,7 +929,7 @@ void daE_HZ_c::executeWind() {
cLib_chaseF(&field_0x678.x, 0.0f, 20.0f);
gndChk.SetPos(&position);
f32 groundCross = dComIfG_Bgsp().GroundCross(&gndChk);
groundCross = dComIfG_Bgsp().GroundCross(&gndChk);
if (frame < 38.0f) {
if (position.y - groundCross < 500.0f) {
position.y = groundCross + 500.0f;
+4 -2
View File
@@ -932,6 +932,9 @@ void daE_KK_c::executeWeaponMove() {
current.angle.y = actor->shape_angle.y + 0x190;
}
f32 temp;
f32 player_distance_y;
switch (mMoveMode) {
case 0:
shape_angle.x = home.angle.x + 0x878C;
@@ -948,8 +951,7 @@ void daE_KK_c::executeWeaponMove() {
mDistance = (fopAcM_searchPlayerDistance(this) - l_HIO.direct_attack_range) * 1.5f;
f32 temp = 2000.0f;
f32 player_distance_y;
temp = 2000.0f;
if (fopAcM_searchPlayerDistanceY(this) < -300.0f) {
player_distance_y = (fopAcM_searchPlayerDistanceY(this) + 300.0f) * -2.0f;
+1673 -1584
View File
File diff suppressed because it is too large Load Diff
+49 -49
View File
@@ -46,7 +46,7 @@ static void hit_check(e_mk_bo_class* i_this) {
e_mk_class* e_mk = (e_mk_class*)a_parent;
cXyz sp24;
if (i_this->ccAtSph.ChkTgHit() || i_this->acch.ChkGroundHit() || i_this->acch.ChkWallHit() || (e_mk != NULL && e_mk->field_0xc30 == 1 && i_this->ccAtSph.ChkAtHit()) || i_this->ccAtSph.ChkAtShieldHit()) {
if (i_this->ccAtSph.ChkTgHit() || i_this->acch.ChkGroundHit() || i_this->acch.ChkWallHit() || (e_mk != NULL && e_mk->demoMode == e_mk_class::DEMO_MODE_START && i_this->ccAtSph.ChkAtHit()) || i_this->ccAtSph.ChkAtShieldHit()) {
i_this->field_0x5f8 = 20;
OS_REPORT("E_MK_BO HIT \n");
@@ -66,8 +66,8 @@ static void hit_check(e_mk_bo_class* i_this) {
i_this->field_0x998 = 2;
}
if (i_this->field_0x5dc <= 2) {
i_this->field_0x5dc = 3;
if (i_this->mode <= 2) {
i_this->mode = 3;
i_this->field_0x5e0 = a_parent->current.pos;
i_this->field_0x5e0.y += 100.0f;
@@ -95,17 +95,17 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
cXyz sp3C;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
if (e_mk->field_0x70c != 0) {
i_this->field_0x5e0 = e_mk->field_0x70c->enemy.current.pos;
if (e_mk->db != NULL) {
i_this->field_0x5e0 = e_mk->db->enemy.current.pos;
i_this->field_0x5e0.y += 100.0f;
} else {
i_this->field_0x5e0 = player->current.pos;
i_this->field_0x5e0.y += 100.0f;
}
i_this->field_0x5dc = 1;
i_this->mode = 1;
sp3C = i_this->field_0x5e0 - actor->current.pos;
actor->current.angle.y = cM_atan2s(sp3C.x, sp3C.z);
@@ -116,7 +116,7 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
case 1:
sp3C = i_this->field_0x5e0 - actor->current.pos;
if (sp3C.abs() < 300.0f + TREG_F(18)) {
i_this->field_0x5dc = 2;
i_this->mode = 2;
i_this->timers[0] = 30;
}
break;
@@ -136,17 +136,17 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0x5ee, 0x2000, 1, 4);
f32 temp_f31 = sp3C.abs();
if (e_mk->mDemoMode != 0 || (e_mk->mAction == 2 && e_mk->mMode >= 20)) {
if (e_mk->demoSubMode != 0 || (e_mk->action == e_mk_class::ACT_SHOOT && e_mk->mode >= 20)) {
if (temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
} else if (e_mk->mAction == 3 && temp_f31 < 120.0f + YREG_F(19)) {
e_mk->field_0x707 = 4;
} else if (e_mk->action == e_mk_class::ACT_YORO && temp_f31 < 120.0f + YREG_F(19)) {
e_mk->unkFlag4 = 4;
i_this->action = 1;
i_this->field_0x5dc = 0;
i_this->mode = 0;
dComIfGp_setHitMark(3, actor, &actor->current.pos, &actor->shape_angle, NULL, 0);
actor->speed.y = 30.0f;
i_this->timers[0] = 40;
@@ -170,7 +170,7 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
cCcD_Obj* at_hit_obj = i_this->ccAtSph.GetAtHitObj();
if (fopAcM_GetName(dCc_GetAc(at_hit_obj->GetAc())) == PROC_ALINK) {
OS_REPORT("E_MK_BO PL HIT !!!!\n");
e_mk->field_0x707 = 5;
e_mk->unkFlag4 = 5;
i_this->field_0x5f8 = 10;
}
}
@@ -193,11 +193,11 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
cXyz sp38;
f32 temp_f31;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
i_this->field_0x998 = 1;
i_this->field_0x5e0.set(0.0f, 5000.0f + JREG_F(18), -3900.0f);
i_this->field_0x5dc = 1;
i_this->mode = 1;
sp38 = i_this->field_0x5e0 - actor->current.pos;
actor->current.angle.y = cM_atan2s(sp38.x, sp38.z);
@@ -208,7 +208,7 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
case 1:
sp38 = i_this->field_0x5e0 - actor->current.pos;
if (sp38.abs() < 200.0f + TREG_F(18)) {
i_this->field_0x5dc = 2;
i_this->mode = 2;
i_this->timers[0] = 30;
}
break;
@@ -228,12 +228,12 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0x5ee, 0x2000, 1, 4);
temp_f31 = sp38.abs();
if (e_mk->mDemoMode != 0 || (e_mk->mAction == 2 && e_mk->mMode >= 20)) {
if (e_mk->demoSubMode != 0 || (e_mk->action == e_mk_class::ACT_SHOOT && e_mk->mode >= 20)) {
if (temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
}
break;
@@ -267,10 +267,10 @@ static s8 e_mk_bo_r04(e_mk_bo_class* i_this) {
cXyz sp1C;
f32 temp_f31;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
i_this->field_0x998 = 1;
i_this->field_0x5dc = 1;
i_this->mode = 1;
actor->current.angle.y = a_parent->shape_angle.y + (VREG_S(7) - 0x3000);
i_this->field_0x5fa = actor->current.angle.y;
@@ -295,9 +295,9 @@ static s8 e_mk_bo_r04(e_mk_bo_class* i_this) {
temp_f31 = sp1C.abs();
if (i_this->timers[1] == 0 && temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
}
break;
@@ -323,21 +323,21 @@ static void e_mk_bo_hasira(e_mk_bo_class* i_this) {
if (a_parent != NULL) {
e_mk_class* e_mk = (e_mk_class*)a_parent;
if (e_mk->field_0xc30 == 2) {
i_this->action = 2;
if (e_mk->demoMode == e_mk_class::DEMO_MODE_END) {
i_this->action = e_mk_class::ACT_SHOOT;
i_this->field_0x998 = 1;
return;
}
cXyz sp24;
cXyz sp18;
if (e_mk->mHasira != NULL) {
daPillar_c* pillar = e_mk->mHasira;
if (e_mk->hasira != NULL) {
daPillar_c* pillar = e_mk->hasira;
cXyz spC;
mDoMtx_stack_c::transS(e_mk->mHasira->current.pos.x, e_mk->mHasira->current.pos.y, e_mk->mHasira->current.pos.z);
mDoMtx_stack_c::transS(e_mk->hasira->current.pos.x, e_mk->hasira->current.pos.y, e_mk->hasira->current.pos.z);
mDoMtx_stack_c::YrotM(pillar->mRotY);
mDoMtx_stack_c::XrotM(e_mk->mHasira->shape_angle.x);
mDoMtx_stack_c::XrotM(e_mk->hasira->shape_angle.x);
mDoMtx_stack_c::YrotM(-pillar->mRotY);
mDoMtx_stack_c::transM(0.0f, 500.0f, 0.0f);
mDoMtx_multVecZero(mDoMtx_stack_c::get(), &spC);
@@ -356,17 +356,17 @@ static void e_mk_bo_hasira(e_mk_bo_class* i_this) {
if (actor->current.pos.y <= 7.0f + spC.y) {
actor->current.pos.y = 7.0f + spC.y;
if (i_this->field_0x5dc <= 3) {
if (i_this->mode <= 3) {
actor->speed.y *= -0.4f;
} else {
actor->speed.y = 0.0f;
}
if (i_this->field_0x5dc <= 1) {
if (i_this->mode <= 1) {
i_this->timers[0] = 20;
}
i_this->field_0x5dc++;
i_this->mode++;
}
if (pillar->checkRollAttack()) {
@@ -391,7 +391,7 @@ static void e_mk_bo_demo_ground(e_mk_bo_class* i_this) {
if (actor->health != 0) {
actor->health = 0;
i_this->action = 3;
i_this->field_0x5dc = 0;
i_this->mode = 0;
actor->home.pos.y = actor->current.pos.y;
}
@@ -406,12 +406,12 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
cXyz sp28;
f32 var_f31 = 0.0f;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 4:
break;
case 0:
actor->speed.y = 0.0f;
i_this->field_0x5dc = 1;
i_this->mode = 1;
actor->home.pos = actor->current.pos;
i_this->timers[0] = 20;
actor->speedF = 0.0f;
@@ -443,7 +443,7 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
actor->current.angle.y = fopAcM_searchPlayerAngleY(actor) + 0x8000;
i_this->field_0x5ec = 0;
i_this->timers[0] = 40;
i_this->field_0x5dc = 2;
i_this->mode = 2;
}
break;
case 2:
@@ -458,7 +458,7 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
s16 sp8 = (actor->current.angle.y - fopAcM_searchPlayerAngleY(actor));
if (sp8 <= 0x400 && sp8 > -0x400) {
i_this->field_0x5dc = 3;
i_this->mode = 3;
}
cLib_addCalcAngleS2(&actor->shape_angle.z, -0x1200, 2, 0x200);
@@ -475,8 +475,8 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
if (fopAcM_searchPlayerDistanceXZ(actor) < 50.0f) {
e_mk_class* e_mk = (e_mk_class*)fopAcM_SearchByID(actor->parentActorID);
e_mk->mDemoMode++;
i_this->field_0x5dc = 4;
e_mk->demoSubMode++;
i_this->mode = 4;
i_this->field_0x600 = 1;
}
break;
@@ -507,9 +507,9 @@ static void action(e_mk_bo_class* i_this) {
switch (i_this->action) {
case 0:
if (e_mk->field_0xc30 == 1) {
if (e_mk->demoMode == e_mk_class::DEMO_MODE_START) {
var_r28 = e_mk_bo_start(i_this);
} else if (e_mk->field_0xc30 == 3 || fopAcM_GetRoomNo(actor) == 4) {
} else if (e_mk->demoMode == e_mk_class::DEMO_MODE_R04 || fopAcM_GetRoomNo(actor) == 4) {
var_r28 = e_mk_bo_r04(i_this);
} else {
var_r28 = e_mk_bo_shot(i_this);
@@ -606,8 +606,8 @@ static int daE_MK_BO_Execute(e_mk_bo_class* i_this) {
i_this->model->setBaseTRMtx(mDoMtx_stack_c::get());
e_mk_class* e_mk = (e_mk_class*)a_parent;
if (e_mk->field_0x707 == 6) {
e_mk->field_0x707 = 0;
if (e_mk->unkFlag4 == 6) {
e_mk->unkFlag4 = 0;
fopAcM_delete(actor);
}
@@ -643,15 +643,15 @@ static int daE_MK_BO_Execute(e_mk_bo_class* i_this) {
for (int i = 0; i < eff_num; i++) {
if (i_this->action >= 2) {
if (i < 2) {
e_mk->field_0xc18[i] = dComIfGp_particle_set(e_mk->field_0xc18[i], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->field_0xc18[i]);
e_mk->boEno1Prtcls[i] = dComIfGp_particle_set(e_mk->boEno1Prtcls[i], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->boEno1Prtcls[i]);
} else {
i_this->field_0x99c[i - 2] = dComIfGp_particle_set(i_this->field_0x99c[i - 2], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(i_this->field_0x99c[i - 2]);
}
} else if (i < 2) {
e_mk->field_0xc18[i] = dComIfGp_particle_set(e_mk->field_0xc18[i], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->field_0xc18[i]);
e_mk->boEno1Prtcls[i] = dComIfGp_particle_set(e_mk->boEno1Prtcls[i], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->boEno1Prtcls[i]);
} else {
i_this->field_0x99c[i - 2] = dComIfGp_particle_set(i_this->field_0x99c[i - 2], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(i_this->field_0x99c[i - 2]);
+3 -3
View File
@@ -207,7 +207,7 @@ static void e_mm_mt_carry(e_mm_mt_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*) dComIfGp_getPlayer(0);
switch (i_this->m_mode) {
case 0:
case 0: {
cLib_offBit<u32>(actor->attention_info.flags, fopAc_AttnFlag_CARRY_e);
i_this->m_mode = 1;
s16 angle_delta_y1 = 0x4000 + player->shape_angle.y;
@@ -215,11 +215,11 @@ static void e_mm_mt_carry(e_mm_mt_class* i_this) {
if (angle_delta_y > 0x4000 || angle_delta_y < -0x4000) {
i_this->m_carryAngle = -0x8000;
} else {
i_this->m_carryAngle = 0;
i_this->m_carryAngle = 0;
}
void(0);
break;
}
case 1:
if (!fopAcM_checkCarryNow(actor)) {
i_this->m_action = 3;
+16 -13
View File
@@ -3,8 +3,9 @@
* Enemy - Beehive
*/
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/d_s_play.h"
#include "d/actor/d_a_e_nest.h"
#include "d/actor/d_a_npc_tk.h"
#include "SSystem/SComponent/c_math.h"
@@ -431,13 +432,14 @@ static void e_nest_drop(e_nest_class* i_this) {
}
static s8 e_nest_carry(e_nest_class* i_this) {
fopAc_ac_c* a_this = static_cast<fopAc_ac_c*>(i_this);
fopAc_ac_c* player = dComIfGp_getPlayer(0);
i_this->speed.y = 0.0f;
a_this->speed.y = 0.0f;
s8 ret = true;
switch (i_this->mMode) {
case 0:
cLib_offBit<u32>(i_this->attention_info.flags, fopAc_AttnFlag_CARRY_e);
case 0: {
cLib_offBit<u32>(a_this->attention_info.flags, fopAc_AttnFlag_CARRY_e);
i_this->mMode = 1;
s16 angle_delta_y = i_this->mRotation.y - player->shape_angle.y;
if (angle_delta_y > 0x4000 || angle_delta_y < -0x4000) {
@@ -447,21 +449,22 @@ static s8 e_nest_carry(e_nest_class* i_this) {
}
i_this->mTimers[0] = 20;
break;
}
case 1:
if (!fopAcM_checkCarryNow(i_this)) {
if (!fopAcM_checkCarryNow(a_this)) {
i_this->mTimers[0] = 0;
i_this->mCcSph.OnCoSetBit();
i_this->mAction = e_nest_class::ACT_DROP;
if (i_this->speedF >= 1.0f) {
i_this->speedF = 30.0f;
i_this->speed.y = 30.0f;
i_this->current.angle.y = player->shape_angle.y;
if (fopAcM_GetSpeedF(a_this) >= 1.0f) {
a_this->speedF = 30.0f + NREG_F(7);
a_this->speed.y = 30.0f + NREG_F(8);
a_this->current.angle.y = player->shape_angle.y;
i_this->mMode = 0;
} else {
i_this->speedF = 0.0f;
a_this->speedF = 0.0f;
i_this->mMode = 3;
i_this->mWobble = 500.0f;
i_this->mWobble = 500.0f + NREG_F(0);
}
} else {
ret = false;
+6 -6
View File
@@ -5507,8 +5507,8 @@ static void* s_wb_sub2(void* i_actor, void* i_data) {
}
static void* s_lv9dn_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DN && ((e_dn_class*)i_actor)->field_0x10d8 != 0) {
((e_dn_class*)i_actor)->field_0x10d8 = 0;
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DN && ((e_dn_class*)i_actor)->status != 0) {
((e_dn_class*)i_actor)->status = 0;
return i_actor;
}
@@ -5516,9 +5516,9 @@ static void* s_lv9dn_sub(void* i_actor, void* i_data) {
}
static void* s_lv9dn_sub2(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DN && ((e_dn_class*)i_actor)->field_0x10d8 == 0) {
((e_dn_class*)i_actor)->field_0x10d8 = 1;
((e_dn_class*)i_actor)->mMode = 0;
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DN && ((e_dn_class*)i_actor)->status == 0) {
((e_dn_class*)i_actor)->status = 1;
((e_dn_class*)i_actor)->mode = 0;
}
return NULL;
@@ -5526,7 +5526,7 @@ static void* s_lv9dn_sub2(void* i_actor, void* i_data) {
static void* s_lv9dn_sub3(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_DN) {
((e_dn_class*)i_actor)->mMode = 2;
((e_dn_class*)i_actor)->mode = 2;
}
return NULL;
+3 -3
View File
@@ -616,20 +616,20 @@ static void e_sh_disappear(e_sh_class* i_this) {
int i;
switch (i_this->field_0x678) {
case 0:
case 0: {
anm_init(i_this, 12, 5.0f, 0, 1.0f);
i_this->field_0x678 = 1;
cXyz partScale(l_HIO.mBaseSize, l_HIO.mBaseSize, l_HIO.mBaseSize);
for (i = 0; i < 2; i++) {
dComIfGp_particle_set(dp_name[i], &actor->current.pos,
&actor->shape_angle, &partScale);
dComIfGp_particle_set(dp_name[i], &actor->current.pos, &actor->shape_angle, &partScale);
}
i_this->mSound.startCreatureSound(Z2SE_EN_SH_DISAPPEAR, 0, -1);
break;
}
case 1:
if (i_this->mAnm_p->isStop()) {
i_this->field_0x676 = 0;
+29 -29
View File
@@ -1762,7 +1762,7 @@ cPhs__Step daE_SW_c::create() {
mBgc.OnLineCheck();
field_0x698 = 2;
attention_info.distances[2] = 3;
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
} else {
attention_info.distances[2] = 4;
@@ -1826,7 +1826,7 @@ extern actor_process_profile_definition g_profile_E_SW = {
};
void daE_SW_c::d_checkFall() {
if (d_checkAction(daE_SW_c::d_hook) || d_checkAction(daE_SW_c::d_fall) || d_checkAction(daE_SW_c::d_attk)) {
if (d_checkAction(&daE_SW_c::d_hook) || d_checkAction(&daE_SW_c::d_fall) || d_checkAction(&daE_SW_c::d_attk)) {
return;
}
@@ -1843,7 +1843,7 @@ void daE_SW_c::d_checkFall() {
if (speed.y < 0.0f) {
if ((fVar1 == -G_CM3D_F_INF || std::abs(fVar1 - current.pos.y) > 1000.0f) || dComIfG_Bgsp().GetGroundCode(gnd_chk) == 4 ||
dComIfG_Bgsp().GetGroundCode(gnd_chk) == 10 || dComIfG_Bgsp().GetGroundCode(gnd_chk) == 5) {
d_setAction(daE_SW_c::d_fall);
d_setAction(&daE_SW_c::d_fall);
}
}
}
@@ -1854,7 +1854,7 @@ void daE_SW_c::d_damage_check() {
mStts.Move();
if (field_0x6f2 == 0) {
if (d_checkAction(daE_SW_c::d_damage) || d_checkAction(daE_SW_c::d_die)) {
if (d_checkAction(&daE_SW_c::d_damage) || d_checkAction(&daE_SW_c::d_die)) {
return;
}
@@ -1862,7 +1862,7 @@ void daE_SW_c::d_damage_check() {
field_0x98c.OffAtShieldHit();
if (player->checkPlayerGuard()) {
d_setAction(daE_SW_c::d_chance);
d_setAction(&daE_SW_c::d_chance);
return;
}
}
@@ -1897,22 +1897,22 @@ void daE_SW_c::d_damage_check() {
player->getCutType() == daPy_py_c::CUT_TYPE_LARGE_JUMP_FINISH)) {
health = 0;
field_0x698 = 0;
d_setAction(daE_SW_c::d_damage);
d_setAction(&daE_SW_c::d_damage);
} else if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || mAtInfo.mpCollider->ChkAtType(AT_TYPE_BOMB) ||
mAtInfo.mpCollider->ChkAtType(AT_TYPE_MIDNA_LOCK)) {
health = 0;
field_0x698 = 0;
d_setAction(daE_SW_c::d_damage);
d_setAction(&daE_SW_c::d_damage);
} else if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
d_setAction(daE_SW_c::d_hook);
d_setAction(&daE_SW_c::d_hook);
} else if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK) || mAtInfo.mpCollider->ChkAtType(AT_TYPE_40) ||
mAtInfo.mpCollider->ChkAtType(AT_TYPE_BOOMERANG)) {
if (!d_checkAction(daE_SW_c::d_chance2)) {
d_setAction(daE_SW_c::d_chance2);
if (!d_checkAction(&daE_SW_c::d_chance2)) {
d_setAction(&daE_SW_c::d_chance2);
}
} else {
field_0x698--;
d_setAction(daE_SW_c::d_damage);
d_setAction(&daE_SW_c::d_damage);
}
}
}
@@ -1962,7 +1962,7 @@ void daE_SW_c::d_bm_chase() {
fopAcM_SearchByID(field_0x688, (fopAc_ac_c**)&bomb);
if (bomb == NULL || bomb->checkStateExplode()) {
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
} else {
switch (mMoveMode) {
case 0:
@@ -1990,7 +1990,7 @@ void daE_SW_c::d_bm_chase() {
}
field_0x6a8 = bomb->current.pos;
d_setAction(daE_SW_c::d_attk);
d_setAction(&daE_SW_c::d_attk);
return;
default:
@@ -2091,9 +2091,9 @@ void daE_SW_c::d_wait() {
shape_angle.y = current.angle.y;
if (d_bomb_check()) {
d_setAction(daE_SW_c::d_bm_chase);
d_setAction(&daE_SW_c::d_bm_chase);
} else if (field_0x6ec == 0 && d_chaseCheck()) {
d_setAction(daE_SW_c::d_chase);
d_setAction(&daE_SW_c::d_chase);
}
}
@@ -2140,17 +2140,17 @@ void daE_SW_c::d_chase() {
setSmokeEffect();
if (field_0x6ee == 0) {
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
return;
}
if (player->current.pos.absXZ(current.pos) >= l_HIO.character_notice_dist) {
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
return;
}
if (player->current.pos.absXZ(current.pos) < l_HIO.human_attack_init_range) {
d_setAction(daE_SW_c::d_attk);
d_setAction(&daE_SW_c::d_attk);
return;
}
@@ -2205,7 +2205,7 @@ void daE_SW_c::d_attk() {
current.angle.y = sVar1;
gravity = -4.0f;
if (d_checkOldAction(daE_SW_c::d_bm_chase)) {
if (d_checkOldAction(&daE_SW_c::d_bm_chase)) {
field_0x69e = cLib_targetAngleY(&current.pos, &field_0x6a8);
speedF = current.pos.abs(field_0x6a8) / 25.0f;
} else {
@@ -2241,7 +2241,7 @@ void daE_SW_c::d_attk() {
field_0x6d8 = -60.0f;
if ((field_0x6bc & 1) == 0) {
d_setAction(daE_SW_c::d_chance);
d_setAction(&daE_SW_c::d_chance);
} else {
field_0x6e4 = 1;
setDiveEffect();
@@ -2280,7 +2280,7 @@ void daE_SW_c::d_attk() {
case 4:
if ((field_0x6bc & 3) == 0) {
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
current.pos = old.pos;
break;
} else {
@@ -2289,7 +2289,7 @@ void daE_SW_c::d_attk() {
return;
}
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
field_0x6d8 = -120.0f;
cXyz sp30(current.pos);
sp30.y += 200.0f;
@@ -2324,7 +2324,7 @@ void daE_SW_c::d_chance() {
bckSet(BCK_SW_CHANCE, 5.0f, 2, 1.0f);
speedF = 0.0f;
if (d_checkOldAction(daE_SW_c::d_hook)) {
if (d_checkOldAction(&daE_SW_c::d_hook)) {
field_0x6ea = 200;
} else {
field_0x6ea = 100;
@@ -2366,7 +2366,7 @@ void daE_SW_c::d_chance() {
}
if (field_0x6ea == 0 && mBgc.ChkGroundHit() && field_0x6bc == 3) {
d_setAction(daE_SW_c::d_dive);
d_setAction(&daE_SW_c::d_dive);
}
break;
}
@@ -2390,7 +2390,7 @@ void daE_SW_c::d_chance2() {
if (mBgc.ChkGroundHit()) {
mSound.startCreatureSound(Z2SE_EN_SW_BTBT, field_0x6e9, -1);
d_setAction(daE_SW_c::d_chance);
d_setAction(&daE_SW_c::d_chance);
}
break;
}
@@ -2421,7 +2421,7 @@ void daE_SW_c::d_dive() {
field_0x6e5 = 1;
field_0x6d8 = -120.0f;
d_setAction(daE_SW_c::d_wait);
d_setAction(&daE_SW_c::d_wait);
break;
default:
@@ -2490,11 +2490,11 @@ void daE_SW_c::d_damage() {
speed.y = 0.0f;
if (field_0x698 <= 0) {
d_setAction(daE_SW_c::d_die);
d_setAction(&daE_SW_c::d_die);
return;
}
d_setAction(daE_SW_c::d_chance);
d_setAction(&daE_SW_c::d_chance);
return;
default:
@@ -2611,7 +2611,7 @@ void daE_SW_c::d_hook() {
speedF = -10.0f;
gravity = -5.0f;
field_0x6d8 = 0.0f;
d_setAction(daE_SW_c::d_chance);
d_setAction(&daE_SW_c::d_chance);
}
break;
+3 -2
View File
@@ -818,13 +818,13 @@ static void demo_camera(e_th_class* i_this) {
}
}
break;
case 10:
case 10: {
if (!i_this->eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(i_this, 2, 0xFFFF, 0);
i_this->eventInfo.onCondition(2);
return;
}
camera->mCamera.Stop();
i_this->mDemoCamMode = 11;
i_this->mDemoCamTimer = 0;
@@ -864,6 +864,7 @@ static void demo_camera(e_th_class* i_this) {
anm_init(i_this, 0xE, 2.0f, 0, 1.0f);
i_this->mMode = 1;
dComIfGs_onSaveSwitch(94);
}
case 11:
if (i_this->mDemoCamTimer == 55 && i_this->field_0x567 != 0) {
daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 2, 0);
+2 -1
View File
@@ -964,7 +964,7 @@ void daE_TT_c::executeFirstAttack() {
}
break;
case 11:
case 11: {
f32 playerSpeedF = player->getSpeedF() * 17.0f;
cXyz xyz(playerSpeedF * cM_ssin(player->shape_angle.y), 0.0f,
playerSpeedF * cM_scos(player->shape_angle.y));
@@ -992,6 +992,7 @@ void daE_TT_c::executeFirstAttack() {
current.angle.y = shape_angle.y;
}
break;
}
case 12:
mSphere.OnAtSetBit();
+8 -4
View File
@@ -1443,6 +1443,7 @@ void daE_VA_c::executeDemoOp() {
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
cXyz sp2C;
cXyz sp38;
f32 old;
daPy_py_c* player = daPy_getPlayerActorClass();
calcOpRopePos();
@@ -1664,7 +1665,7 @@ void daE_VA_c::executeDemoOp() {
}
sp38.set(26.0f, 187.0f, 236.0f);
f32 old = field_0x122c.y;
old = field_0x122c.y;
if (cLib_chasePosXZ(&field_0x122c, sp38, 4.2f)) {
field_0x122c.y = old;
@@ -2304,7 +2305,7 @@ void daE_VA_c::executeOpaciFly() {
case 0:
case 20:
case 21:
case 22:
case 22: {
attention_info.flags = 0;
if (mMode == 0) {
@@ -2329,8 +2330,9 @@ void daE_VA_c::executeOpaciFly() {
current.angle.y = temp_r0;
mDemoModeTimer = nREG_S(0) + 15;
}
/* fallthrough */
case 1:
case 1: {
if (mDemoModeTimer == 0 && !checkBck(ANM_FLOAT_WAIT_e)) {
setBck(ANM_FLOAT_WAIT_e, J3DFrameCtrl::EMode_LOOP, nREG_F(19) + 30.0f, 1.0f);
}
@@ -2359,6 +2361,7 @@ void daE_VA_c::executeOpaciFly() {
mMode = 2;
}
break;
}
case 2:
mMode = 3;
mDemoModeTimer = 30;
@@ -3063,7 +3066,7 @@ void daE_VA_c::calcMagicMove() {
case 0:
mMagicSphs[i].OffAtSetBit();
break;
case 1:
case 1: {
mMagicSphs[i].OnAtSetBit();
field_0x1228[i] = 2;
@@ -3084,6 +3087,7 @@ void daE_VA_c::calcMagicMove() {
f32 temp_f31 = std::abs(cM_scos(sp8) * 50.0f);
mMagicSpeed[i].set(temp_f31 * cM_ssin(spA), cM_ssin(sp8) * 50.0f,
temp_f31 * cM_scos(spA));
}
/* fallthrough */
case 2:
Z2GetAudioMgr()->seStartLevel(Z2SE_EN_VA_ATK_BALL, &mMagicPos[i], 0, 0, 1.0f, 1.0f,
+20 -16
View File
@@ -662,45 +662,48 @@ static void e_yh_attack(e_yh_class* i_this) {
i_this->mSound.startCreatureVoice(Z2SE_EN_DB_V_BITE, -1);
}
break;
case 2:
case 2: {
if (i_this->field_0x698[1] != 0) {
i_this->field_0xb18 = 1;
}
cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x678.x, 0.8f, a_this->speed.x * i_this->field_0x690);
cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x678.z, 0.8f, a_this->speed.z * i_this->field_0x690);
cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x678.y, 0.8f, a_this->speed.y * i_this->field_0x690);
cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x678.x, 0.8f,
a_this->speed.x * i_this->field_0x690);
cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x678.z, 0.8f,
a_this->speed.z * i_this->field_0x690);
cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x678.y, 0.8f,
a_this->speed.y * i_this->field_0x690);
cLib_addCalc2(&i_this->field_0x690, 0.2f, 1.0f, 0.05f);
cLib_addCalcAngleS2(&a_this->shape_angle.z, i_this->field_0x864, 2, 0x2000);
daPy_py_c* pdVar6 = (daPy_py_c*)daPy_getPlayerActorClass();
if (!pdVar6->getDkCaught()) {
if (!pdVar6->getDkCaught2() && i_this->mAtSph.ChkAtHit()) {
cCcD_Obj* hitObj = i_this->mAtSph.GetAtHitObj();
if (player == dCc_GetAc(hitObj->GetAc())) {
OS_REPORT("E_DB//////////////AT SET 1 !!\n");
i_this->field_0x670 = 5;
i_this->field_0x690 = 20.0f;
anm_init(i_this, 8, 2.0f, 2, 1.0f);
i_this->field_0x698[0] = 120;
daPy_py_c* pyPlayer = (daPy_py_c*)daPy_getPlayerActorClass();
pyPlayer->setDkCaught(a_this);
dComIfGp_getVibration().StartShock(6, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
dComIfGp_getVibration().StartShock(6, 0x1f, cXyz(0.0f, 1.0f, 0.0f));
break;
}
}
}
if (i_this->mpMorf->isStop()) {
i_this->field_0x670 = 3;
i_this->field_0x698[0] = 0;
}
break;
}
case 3:
if (i_this->field_0x698[0] == 0) {
i_this->field_0x66e = 3;
@@ -1350,8 +1353,8 @@ static s8 e_yh_escape(e_yh_class* i_this) {
}
}
break;
case 2:
case 2: {
local_bc = a_this->home.pos - a_this->current.pos;
local_bc.y = 0.0f;
s16 homeAngle = cM_atan2s(local_bc.x, local_bc.z);
@@ -1363,7 +1366,8 @@ static s8 e_yh_escape(e_yh_class* i_this) {
i_this->mSound.startCreatureSound(Z2SE_EN_DB_GRASS, 0, -1);
}
break;
}
case 3:
local_116 = 0;
cLib_addCalc0(&i_this->field_0x844, 1.0f, 1.0f);
+129 -137
View File
@@ -50,12 +50,6 @@
#define ANM_HS_WALK_FAST 34
#define ANM_HS_WALK_SLOW 35
#if DEBUG
#define HIO m_hio->mParameters
#else
#define HIO daHorse_hio_c0::m
#endif
static void strippedFunc()
{
extern void F(f32*);
@@ -254,7 +248,7 @@ void daHorse_c::coHitCallbackBoarJump(fopAc_ac_c* i_hitActor) {
{
f32 sin_y = cM_ssin(current.angle.y);
f32 cos_y = cM_scos(current.angle.y);
f32 jump_chk_dist = (HIO.boar_jump_horizontal + HIO.boar_jump_horizontal) + 100.0f;
f32 jump_chk_dist = (m_hio->m.boar_jump_horizontal + m_hio->m.boar_jump_horizontal) + 100.0f;
cXyz start(current.pos);
cXyz end(start.x + (jump_chk_dist * sin_y), start.y, start.z + (jump_chk_dist * cos_y));
@@ -293,8 +287,8 @@ void daHorse_c::coHitCallbackBoarJump(fopAc_ac_c* i_hitActor) {
if (jump_chk_dist <= 0.0f) {
onEndResetStateFlg0(ERFLG0_UNK_20);
field_0x1768 = HIO.boar_jump_horizontal;
field_0x176c = HIO.boar_jump_height + current.pos.y;
field_0x1768 = m_hio->m.boar_jump_horizontal;
field_0x176c = m_hio->m.boar_jump_height + current.pos.y;
field_0x1770 = field_0x1768;
} else if (m_procID == PROC_MOVE_e && speedF > 5.0f) {
setBoarHit(this, 0);
@@ -523,12 +517,11 @@ int daHorse_c::createHeap() {
return 0;
}
m_hio = new daHorse_hio_c();
m_hio = new HORSE_HIO_CLASS();
if (m_hio == NULL) {
return 0;
}
#if DEBUG
#endif
ResTIMG* texImg = (ResTIMG*)dComIfG_getObjectRes(l_arcName, 0x2C);
JUT_ASSERT(0x4B6, texImg != NULL);
@@ -650,14 +643,14 @@ int daHorse_c::create() {
if (daAlink_c::checkStageName("F_SP00") || daAlink_c::checkStageName("F_SP103") || daAlink_c::checkStageName("F_SP104") || daAlink_c::checkStageName("F_SP108") || daAlink_c::checkStageName("F_SP113")) {
onStateFlg0(FLG0_UNK_2000);
m_normalMaxSpeedF = HIO.kakariko_max_speed;
m_lashAddSpeed = HIO.kakariko_add_lash_speed;
m_normalMaxSpeedF = m_hio->m.kakariko_max_speed;
m_lashAddSpeed = m_hio->m.kakariko_add_lash_speed;
} else {
m_normalMaxSpeedF = HIO.max_speed;
m_lashAddSpeed = HIO.add_lash_speed;
m_normalMaxSpeedF = m_hio->m.max_speed;
m_lashAddSpeed = m_hio->m.add_lash_speed;
}
field_0x16c2 = HIO.max_turn;
field_0x16c2 = m_hio->m.max_turn;
m_flowID = shape_angle.z;
if (m_flowID == 0) {
m_flowID = 5000;
@@ -687,7 +680,7 @@ int daHorse_c::create() {
m_acch.Set(this, 3, m_acchcir);
m_acch.SetWaterCheckOffset(500.0f);
field_0x1764 = HIO.walk_to_fastwalk_rate * m_normalMaxSpeedF;
field_0x1764 = m_hio->m.walk_to_fastwalk_rate * m_normalMaxSpeedF;
m_lashMaxSpeedF = m_normalMaxSpeedF + m_lashAddSpeed;
attention_info.distances[fopAc_attn_ETC_e] = 14;
@@ -1195,7 +1188,7 @@ void daHorse_c::setDemoMoveData(u32* i_mode, cXyz const* i_pos) {
}
}
if ((0.5f * (speedF * speedF)) / HIO.stopping_deceleration > JMAFastSqrt(dist_xz2)) {
if ((0.5f * (speedF * speedF)) / m_hio->m.stopping_deceleration > JMAFastSqrt(dist_xz2)) {
m_padStickValue = 0.0f;
}
s16 s = pos_vec.atan2sX_Z();
@@ -1407,7 +1400,7 @@ void daHorse_c::setStickData() {
if (checkStateFlg0(daHorse_FLG0(FLG0_RODEO_MODE | FLG0_UNK_10000000))) {
field_0x16c2 = 2000;
} else {
field_0x16c2 = HIO.max_turn;
field_0x16c2 = m_hio->m.max_turn;
}
if (dComIfGp_event_runCheck()) {
@@ -1469,11 +1462,11 @@ void daHorse_c::setMoveAnime(f32 i_morf) {
f32 run_anm_speed, fastrun_anm_speed;
if (checkStateFlg0(FLG0_UNK_2000)) {
run_anm_speed = HIO.kakariko_run_anm_speed;
fastrun_anm_speed = HIO.kakariko_fastrun_anm_speed;
run_anm_speed = m_hio->m.kakariko_run_anm_speed;
fastrun_anm_speed = m_hio->m.kakariko_fastrun_anm_speed;
} else {
run_anm_speed = HIO.run_anm_speed;
fastrun_anm_speed = HIO.fast_run_anm_speed;
run_anm_speed = m_hio->m.run_anm_speed;
fastrun_anm_speed = m_hio->m.fast_run_anm_speed;
}
if (m_anmIdx[0] == ANM_HS_RUN_DASH && !m_frameCtrl[0].checkAnmEnd()) {
@@ -1497,25 +1490,25 @@ void daHorse_c::setMoveAnime(f32 i_morf) {
if (speedF >= 0.0f) {
var_f31 = speedF * (1.0f / m_normalMaxSpeedF);
} else {
var_f31 = speedF * (1.0f / HIO.max_backward_speed);
var_f31 = speedF * (1.0f / m_hio->m.max_backward_speed);
}
if (var_f31 < HIO.walk_to_fastwalk_rate) {
if (var_f31 < m_hio->m.walk_to_fastwalk_rate) {
if (checkStateFlg0(FLG0_UNK_2)) {
offStateFlg0(FLG0_UNK_2);
i_morf = HIO.walk_run_interpolation;
i_morf = m_hio->m.walk_run_interpolation;
}
if (var_f31 < 0.0f && m_anmIdx[0] == ANM_HS_WALK_START && !m_frameCtrl[0].checkAnmEnd()) {
return;
}
if (var_f31 < -HIO.backward_idle_to_walk_rate) {
setDoubleAnime(1.0f, HIO.backwalk_anm_speed, HIO.backwalk_anm_speed, ANM_HS_BACK_WALK, ANM_HS_BACK_WALK, i_morf);
if (var_f31 < -m_hio->m.backward_idle_to_walk_rate) {
setDoubleAnime(1.0f, m_hio->m.backwalk_anm_speed, m_hio->m.backwalk_anm_speed, ANM_HS_BACK_WALK, ANM_HS_BACK_WALK, i_morf);
} else if (var_f31 < 0.0f) {
ratio = 1.0f - ((var_f31 + HIO.backward_idle_to_walk_rate) / HIO.backward_idle_to_walk_rate);
setDoubleAnime(ratio, HIO.wait_anm_speed, HIO.backwalk_anm_speed, ANM_HS_WAIT_01, ANM_HS_BACK_WALK, i_morf);
} else if (var_f31 < HIO.wait_to_walk_rate) {
ratio = 1.0f - ((var_f31 + m_hio->m.backward_idle_to_walk_rate) / m_hio->m.backward_idle_to_walk_rate);
setDoubleAnime(ratio, m_hio->m.wait_anm_speed, m_hio->m.backwalk_anm_speed, ANM_HS_WAIT_01, ANM_HS_BACK_WALK, i_morf);
} else if (var_f31 < m_hio->m.wait_to_walk_rate) {
int sp8 = cLib_distanceAngleS(m_padStickAngleY, shape_angle.y);
if (checkWaitTurn() && checkInputOnR() && sp8 >= 0x800 && sp8 <= 0x6000) {
f32 anm_speed = 1.0f;
@@ -1564,19 +1557,19 @@ void daHorse_c::setMoveAnime(f32 i_morf) {
setDoubleAnime(0.0f, anm_speed, anm_speed, anm_idx, anm_idx, i_morf);
} else {
ratio = var_f31 / HIO.wait_to_walk_rate;
ratio = var_f31 / m_hio->m.wait_to_walk_rate;
if (m_procID != PROC_WAIT_e && speedF > 0.05f) {
ratio = HIO.field_0xdc + (ratio * (1.0f - HIO.field_0xdc));
ratio = m_hio->m.field_0xdc + (ratio * (1.0f - m_hio->m.field_0xdc));
}
setDoubleAnime(ratio, HIO.wait_anm_speed, HIO.walk_anm_speed, ANM_HS_WAIT_01, ANM_HS_WALK_SLOW, i_morf);
setDoubleAnime(ratio, m_hio->m.wait_anm_speed, m_hio->m.walk_anm_speed, ANM_HS_WAIT_01, ANM_HS_WALK_SLOW, i_morf);
}
} else {
ratio = (var_f31 - HIO.wait_to_walk_rate) / (HIO.walk_to_fastwalk_rate - HIO.wait_to_walk_rate);
setDoubleAnime(ratio, HIO.walk_anm_speed, HIO.fast_walk_anm_speed, ANM_HS_WALK_SLOW, ANM_HS_WALK_FAST, i_morf);
ratio = (var_f31 - m_hio->m.wait_to_walk_rate) / (m_hio->m.walk_to_fastwalk_rate - m_hio->m.wait_to_walk_rate);
setDoubleAnime(ratio, m_hio->m.walk_anm_speed, m_hio->m.fast_walk_anm_speed, ANM_HS_WALK_SLOW, ANM_HS_WALK_FAST, i_morf);
}
} else if (var_f31 < HIO.fastwalk_to_run_rate) {
} else if (var_f31 < m_hio->m.fastwalk_to_run_rate) {
if (checkStateFlg0(FLG0_UNK_2) == 0) {
setDoubleAnime(1.0f, HIO.fast_walk_anm_speed, HIO.fast_walk_anm_speed, ANM_HS_WALK_FAST, ANM_HS_WALK_FAST, i_morf);
setDoubleAnime(1.0f, m_hio->m.fast_walk_anm_speed, m_hio->m.fast_walk_anm_speed, ANM_HS_WALK_FAST, ANM_HS_WALK_FAST, i_morf);
} else {
setDoubleAnime(0.0f, run_anm_speed, run_anm_speed, ANM_HS_RUN_SLOW, ANM_HS_RUN_SLOW, i_morf);
}
@@ -1585,15 +1578,15 @@ void daHorse_c::setMoveAnime(f32 i_morf) {
onStateFlg0(FLG0_UNK_2);
if (m_lashAccelerationTime == 0) {
onResetStateFlg0(RFLG0_UNK_4);
setSingleAnime(ANM_HS_RUN_DASH, HIO.dash_anm_speed, 0.0f, -1, 3.0f, 0);
setSingleAnime(ANM_HS_RUN_DASH, m_hio->m.dash_anm_speed, 0.0f, -1, 3.0f, 0);
}
return;
}
if (var_f31 < HIO.run_to_fastrun_rate) {
ratio = 0.1f * ((var_f31 - HIO.fastwalk_to_run_rate) / (HIO.run_to_fastrun_rate - HIO.fastwalk_to_run_rate));
if (var_f31 < m_hio->m.run_to_fastrun_rate) {
ratio = 0.1f * ((var_f31 - m_hio->m.fastwalk_to_run_rate) / (m_hio->m.run_to_fastrun_rate - m_hio->m.fastwalk_to_run_rate));
} else {
ratio = 0.1f + ((var_f31 - HIO.run_to_fastrun_rate) / ((1.0f + (m_lashAddSpeed / m_normalMaxSpeedF)) - HIO.run_to_fastrun_rate));
ratio = 0.1f + ((var_f31 - m_hio->m.run_to_fastrun_rate) / ((1.0f + (m_lashAddSpeed / m_normalMaxSpeedF)) - m_hio->m.run_to_fastrun_rate));
if (ratio > 1.0f) {
ratio = 1.0f;
}
@@ -1635,7 +1628,6 @@ void daHorse_c::setMoveAnime(f32 i_morf) {
}
}
// NONMATCHING - instruction order, some float regalloc, equivalent
int daHorse_c::checkHorseNoMove(int param_0) {
cXyz sp50;
cXyz sp44;
@@ -1657,12 +1649,12 @@ int daHorse_c::checkHorseNoMove(int param_0) {
spA = field_0x1714;
}
f32 sp28;
f32 var_f31;
f32 var_f30;
f32 var_f29;
f32 var_f28;
f32 sp28;
f32 var_f27;
f32 var_f31;
f32 var_f30;
if (param_0 != 0) {
if (checkEndResetStateFlg0(ERFLG0_UNK_200) || (checkStateFlg0(FLG0_UNK_100000) && (m_procID == PROC_MOVE_e || m_procID == PROC_TURN_e || m_procID == PROC_STOP_e) && ((current.pos.z < -33500.0f && abs(shape_angle.y) > 0x4000) || (current.pos.z > -20500.0f && abs(shape_angle.y) < 0x4000)))) {
@@ -1701,7 +1693,12 @@ int daHorse_c::checkHorseNoMove(int param_0) {
m_linechk.Set(&start, &end, this);
onStateFlg0(FLG0_UNK_100);
BOOL line_cross = dComIfG_Bgsp().LineCross(&m_linechk);
// Fakematch: Debug shows that dBgS::LineCross is called here, but the instruction order on
// retail only matches if cBgS::LineCross is called instead.
// An alternative way to match the instruction order is by changing dBgS::LineCross's return
// type to BOOL while keeping cBgS::LineCross's return type as bool, but that breaks other
// functions that call dBgS::LineCross.
BOOL line_cross = dComIfG_Bgsp().cBgS::LineCross(&m_linechk);
offStateFlg0(FLG0_UNK_100);
if (line_cross) {
@@ -1749,7 +1746,7 @@ int daHorse_c::checkHorseNoMove(int param_0) {
fopAcM_gc_c::getTriPla(&sp5C);
s16 sp8 = cM_atan2s(sp5C.mNormal.absXZ(), sp5C.mNormal.y);
f32 sp14 = cM_deg2s(HIO.floor_angle_limit);
f32 sp14 = cM_deg2s(m_hio->m.floor_angle_limit);
if (!checkStateFlg0(FLG0_UNK_1)) {
for (int i = 0; i < m_scnChg_num; i++) {
@@ -1781,7 +1778,7 @@ int daHorse_c::checkHorseNoMove(int param_0) {
}
if (fopAcM_wt_c::waterCheck(&sp50)) {
if (fopAcM_wt_c::getWaterY() - fopAcM_gc_c::getGroundY() > HIO.water_depth_limit) {
if (fopAcM_wt_c::getWaterY() - fopAcM_gc_c::getGroundY() > m_hio->m.water_depth_limit) {
if (var_f30 <= 101.0f) {
if (param_0 != 0) {
onStateFlg0(FLG0_UNK_40000);
@@ -1840,7 +1837,7 @@ int daHorse_c::setSpeedAndAngle() {
if (var_r28 == 2 && m_procID == PROC_MOVE_e) {
if (speedF >= 0.0f) {
if (speedF <= HIO.cliff_rise_rate) {
if (speedF <= m_hio->m.cliff_rise_rate) {
onStateFlg0(FLG0_UNK_40000000);
}
return 4;
@@ -1860,10 +1857,10 @@ int daHorse_c::setSpeedAndAngle() {
if (var_r28 == 2) {
speedF = 0.0f;
} else if (var_r28 == 1) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
}
} else if (m_lashAccelerationTime == 0 && speedF > m_normalMaxSpeedF) {
cLib_chaseF(&speedF, m_normalMaxSpeedF, HIO.stopping_deceleration);
cLib_chaseF(&speedF, m_normalMaxSpeedF, m_hio->m.stopping_deceleration);
}
if (checkStateFlg0(FLG0_UNK_200000)) {
@@ -1899,9 +1896,9 @@ int daHorse_c::setSpeedAndAngle() {
if (checkInputOnR()) {
if (checkStateFlg0(FLG0_UNK_40000) && (m_anmIdx[2] != ANM_HS_WAIT_03 || m_frameCtrl[2].getFrame() >= 18.0f)) {
if (var_r27 == 1) {
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY + 0x8000, 5, field_0x16c2, HIO.min_turn);
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY + 0x8000, 5, field_0x16c2, m_hio->m.min_turn);
} else {
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2, HIO.min_turn);
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2, m_hio->m.min_turn);
}
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
@@ -1916,10 +1913,10 @@ int daHorse_c::setSpeedAndAngle() {
}
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2 * var_f28, HIO.min_turn * var_f28);
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2 * var_f28, m_hio->m.min_turn * var_f28);
}
} else {
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2, HIO.min_turn);
cLib_addCalcAngleS(&current.angle.y, m_padStickAngleY, 5, field_0x16c2, m_hio->m.min_turn);
}
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
@@ -1931,7 +1928,7 @@ int daHorse_c::setSpeedAndAngle() {
return 3;
}
cLib_addCalcAngleS(&current.angle.y, (m_padStickAngleY + 0x8000), 5, field_0x16c2, HIO.min_turn);
cLib_addCalcAngleS(&current.angle.y, (m_padStickAngleY + 0x8000), 5, field_0x16c2, m_hio->m.min_turn);
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
shape_angle.y = current.angle.y;
@@ -1941,7 +1938,7 @@ int daHorse_c::setSpeedAndAngle() {
if (m_demoMode == 6) {
if (var_r28 != 0 && speedF > 0.0f) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
}
return 0;
}
@@ -1949,7 +1946,7 @@ int daHorse_c::setSpeedAndAngle() {
if (checkStateFlg0(FLG0_UNK_1)) {
dAttention_c* attention = dComIfGp_getAttention();
if (attention->GetLockonList(0) != NULL && attention->LockonTruth() && fopAcM_searchActorDistanceXZ2(this, attention->GetLockonList(0)->getActor()) > 1000000.0f) {
cLib_addCalcAngleS(&current.angle.y, fopAcM_searchActorAngleY(this, attention->GetLockonList(0)->getActor()), 5, field_0x16c2, HIO.min_turn);
cLib_addCalcAngleS(&current.angle.y, fopAcM_searchActorAngleY(this, attention->GetLockonList(0)->getActor()), 5, field_0x16c2, m_hio->m.min_turn);
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
shape_angle.y = current.angle.y;
}
@@ -2003,10 +2000,10 @@ int daHorse_c::setSpeedAndAngle() {
}
if (var_r28 != 0 && speedF > 0.0f) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
} else if (checkStateFlg0(FLG0_UNK_40000)) {
if (m_anmIdx[2] != ANM_HS_WAIT_03 || m_frameCtrl[2].getFrame() >= 18.0f) {
cLib_chaseF(&speedF, -HIO.max_backward_speed, HIO.max_backward_acceleration);
cLib_chaseF(&speedF, -m_hio->m.max_backward_speed, m_hio->m.max_backward_acceleration);
field_0x1704--;
if (field_0x1704 == 0) {
@@ -2019,36 +2016,36 @@ int daHorse_c::setSpeedAndAngle() {
}
} else if (checkInputOnR() && m_lashAccelerationTime == 0 && var_r27 == 1) {
if (speedF > 0.0f) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
} else if (!checkStateFlg0(FLG0_UNK_8) && (checkTurnInput() || checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) && checkTurnPlayerState() && speedF > (0.2f * -HIO.max_backward_speed)) {
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
} else if (!checkStateFlg0(FLG0_UNK_8) && (checkTurnInput() || checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) && checkTurnPlayerState() && speedF > (0.2f * -m_hio->m.max_backward_speed)) {
return 1;
} else {
int spC = checkHorseNoMove(0);
if (spC == 0) {
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
cLib_chaseF(&speedF, -HIO.max_backward_speed, HIO.max_backward_acceleration);
cLib_chaseF(&speedF, -m_hio->m.max_backward_speed, m_hio->m.max_backward_acceleration);
}
} else if (spC == 1) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
} else {
speedF = 0.0f;
}
}
} else if (m_cowHit != 0) {
if (!checkStateFlg0(daHorse_FLG0(FLG0_UNK_100000 | FLG0_UNK_200000))) {
cLib_chaseF(&speedF, 0.5f * m_normalMaxSpeedF, HIO.lash_acceleration);
cLib_chaseF(&speedF, 0.5f * m_normalMaxSpeedF, m_hio->m.lash_acceleration);
}
} else {
f32 var_f31;
f32 var_f29;
if (var_r28 != 0) {
var_f31 = 0.0f;
var_f29 = HIO.deceleration;
var_f29 = m_hio->m.deceleration;
} else if (m_lashAccelerationTime != 0 || (checkStateFlg0(FLG0_RODEO_MODE) && checkStateFlg0(FLG0_UNK_1)) || m_demoMode == 4) {
var_f31 = m_lashMaxSpeedF;
var_f29 = HIO.lash_acceleration;
if (speedF < HIO.min_lash_speed) {
speedF = HIO.min_lash_speed;
var_f29 = m_hio->m.lash_acceleration;
if (speedF < m_hio->m.min_lash_speed) {
speedF = m_hio->m.min_lash_speed;
}
} else {
if (player->checkHorseHangMode()) {
@@ -2060,7 +2057,7 @@ int daHorse_c::setSpeedAndAngle() {
var_f31 = var_f30 * (m_normalMaxSpeedF * (m_padStickValue * m_padStickValue));
}
var_f29 = HIO.acceleration;
var_f29 = m_hio->m.acceleration;
if (checkStateFlg0(FLG0_UNK_4) && abs(field_0x16ea) < 0x4000) {
var_f31 *= 1.0f - (0.8f * cM_scos(field_0x16ea));
}
@@ -2077,20 +2074,20 @@ int daHorse_c::setSpeedAndAngle() {
return 3;
}
cLib_chaseF(&speedF, var_f31, HIO.stopping_deceleration);
cLib_chaseF(&speedF, var_f31, m_hio->m.stopping_deceleration);
} else {
if (dComIfGp_event_runCheck() || checkStateFlg0(FLG0_UNK_10000000)) {
var_f29 = HIO.stopping_deceleration;
var_f29 = m_hio->m.stopping_deceleration;
} else {
var_f29 = HIO.deceleration;
var_f29 = m_hio->m.deceleration;
}
cLib_chaseF(&speedF, var_f31, var_f29);
}
}
if (checkInputOnR() && m_procID == PROC_MOVE_e && var_r28 == 0 && var_r27 == 0 && speedF > 0.05f && speedF < HIO.walk_min_speed) {
speedF = HIO.walk_min_speed;
if (checkInputOnR() && m_procID == PROC_MOVE_e && var_r28 == 0 && var_r27 == 0 && speedF > 0.05f && speedF < m_hio->m.walk_min_speed) {
speedF = m_hio->m.walk_min_speed;
}
return 0;
@@ -2152,7 +2149,7 @@ void daHorse_c::setBodyPart() {
void daHorse_c::setMatrix() {
s16 var_r29 = 0;
s16 var_r27 = 0;
f32 temp_f31 = m_normalMaxSpeedF * HIO.fastwalk_to_run_rate;
f32 temp_f31 = m_normalMaxSpeedF * m_hio->m.fastwalk_to_run_rate;
if (m_procID == PROC_MOVE_e && speedF > temp_f31) {
f32 var_f30;
@@ -2227,7 +2224,6 @@ void daHorse_c::setDashEffect(u32* i_emitterID) {
NULL, 0xFF, NULL, -1, 0, 0, 0);
}
// NONMATCHING - regalloc
void daHorse_c::setEffect() {
JPABaseEmitter* sp50;
int sp4C;
@@ -3125,7 +3121,7 @@ BOOL daHorse_c::checkTurnAfterFastMove(f32 param_0) {
}
if (temp_r29 < 0x2000 && !checkHorseNoMove(1)) {
speedF = HIO.fastwalk_to_run_rate * m_normalMaxSpeedF;
speedF = m_hio->m.fastwalk_to_run_rate * m_normalMaxSpeedF;
return procMoveInit();
}
@@ -3205,18 +3201,18 @@ void daHorse_c::setLashCnt() {
if (!checkStateFlg0(FLG0_PLAYER_BACK_RIDE_LASH)) {
m_lashCnt--;
if (m_lashCnt == 0) {
m_lashRecoverTime = HIO.full_spur_recovery_time;
m_lashRecoverTime = m_hio->m.full_spur_recovery_time;
} else {
m_lashRecoverTime = HIO.spur_recovery_time;
m_lashRecoverTime = m_hio->m.spur_recovery_time;
}
} else {
offStateFlg0(FLG0_PLAYER_BACK_RIDE_LASH);
}
if (checkStateFlg0(FLG0_UNK_2000)) {
m_lashAccelerationTime = HIO.kakariko_lash_acceleration_time;
m_lashAccelerationTime = m_hio->m.kakariko_lash_acceleration_time;
} else {
m_lashAccelerationTime = HIO.lash_acceleration_time;
m_lashAccelerationTime = m_hio->m.lash_acceleration_time;
}
onResetStateFlg0(RFLG0_LASH_DASH_START);
@@ -3242,7 +3238,7 @@ void daHorse_c::setLashCnt() {
} else {
m_lashCnt++;
if (m_lashCnt < 6) {
m_lashRecoverTime = HIO.continuous_spur_recovery_time;
m_lashRecoverTime = m_hio->m.continuous_spur_recovery_time;
}
if (!dComIfGp_event_runCheck()) {
@@ -3455,7 +3451,7 @@ int daHorse_c::procWait() {
if (fabsf(speedF) >= 0.05f) {
if (checkEndResetStateFlg0(ERFLG0_RIDE_RUN_FLG)) {
speedF = HIO.fastwalk_to_run_rate * m_normalMaxSpeedF;
speedF = m_hio->m.fastwalk_to_run_rate * m_normalMaxSpeedF;
}
return procMoveInit();
}
@@ -3465,7 +3461,7 @@ int daHorse_c::procWait() {
return 1;
}
f32 enemy_search_range = HIO.enemy_search_range;
f32 enemy_search_range = m_hio->m.enemy_search_range;
if ((!checkInputOnR() || !checkStateFlg0(FLG0_UNK_1)) && fopAcIt_Judge((fopAcIt_JudgeFunc)daHorse_searchEnemy, &enemy_search_range) != NULL) {
onResetStateFlg0(RFLG0_ENEMY_SEARCH);
@@ -3593,12 +3589,12 @@ int daHorse_c::procMove() {
}
}
if (m_demoMode == 2 && speedF > (HIO.walk_to_fastwalk_rate * m_normalMaxSpeedF)) {
speedF = HIO.walk_to_fastwalk_rate * m_normalMaxSpeedF;
} else if (m_demoMode == 10 && speedF > (HIO.wait_to_walk_rate * m_normalMaxSpeedF)) {
speedF = HIO.wait_to_walk_rate * m_normalMaxSpeedF;
} else if (m_demoMode == 11 && speedF > (HIO.fastwalk_to_run_rate * m_normalMaxSpeedF)) {
speedF = HIO.fastwalk_to_run_rate * m_normalMaxSpeedF;
if (m_demoMode == 2 && speedF > (m_hio->m.walk_to_fastwalk_rate * m_normalMaxSpeedF)) {
speedF = m_hio->m.walk_to_fastwalk_rate * m_normalMaxSpeedF;
} else if (m_demoMode == 10 && speedF > (m_hio->m.wait_to_walk_rate * m_normalMaxSpeedF)) {
speedF = m_hio->m.wait_to_walk_rate * m_normalMaxSpeedF;
} else if (m_demoMode == 11 && speedF > (m_hio->m.fastwalk_to_run_rate * m_normalMaxSpeedF)) {
speedF = m_hio->m.fastwalk_to_run_rate * m_normalMaxSpeedF;
}
if (checkStateFlg0(daHorse_FLG0(FLG0_UNK_200000 | FLG0_UNK_100000)) && !m_acch.ChkGroundHit()) {
@@ -3612,8 +3608,8 @@ int daHorse_c::procMove() {
} else if (!checkStateFlg0(FLG0_UNK_10000000) && checkEndResetStateFlg0(daHorse_ERFLG0(ERFLG0_UNK_20 | ERFLG0_UNK_1))) {
procJumpInit(0);
} else if (var_r30 == 5) {
field_0x1768 = HIO.cliff_jump_horizontal;
field_0x176c = HIO.cliff_jump_vertical + current.pos.y;
field_0x1768 = m_hio->m.cliff_jump_horizontal;
field_0x176c = m_hio->m.cliff_jump_vertical + current.pos.y;
field_0x1770 = field_0x1768;
procJumpInit(1);
} else if (var_r30 == 1) {
@@ -3658,17 +3654,17 @@ int daHorse_c::procStopInit() {
offStateFlg0(daHorse_FLG0(FLG0_TURN_CANCEL_KEEP | FLG0_PLAYER_BACK_RIDE_LASH | FLG0_UNK_800 | FLG0_UNK_2));
field_0x171a = 0;
if (m_demoMode == 8 || m_demoMode == 16 || m_demoMode == 14 || checkStateFlg0(FLG0_UNK_40000000) || (speedF * (1.0f / m_normalMaxSpeedF)) < HIO.run_to_fastrun_rate) {
setSingleAnime(ANM_HS_STOP_SLOW, HIO.faststop_anm_speed, 0.0f, -1, HIO.faststop_interpolation, 0);
field_0x177C = HIO.fast_stop_cancel_frame;
if (m_demoMode == 8 || m_demoMode == 16 || m_demoMode == 14 || checkStateFlg0(FLG0_UNK_40000000) || (speedF * (1.0f / m_normalMaxSpeedF)) < m_hio->m.run_to_fastrun_rate) {
setSingleAnime(ANM_HS_STOP_SLOW, m_hio->m.faststop_anm_speed, 0.0f, -1, m_hio->m.faststop_interpolation, 0);
field_0x177C = m_hio->m.fast_stop_cancel_frame;
if (checkStateFlg0(FLG0_UNK_40000000)) {
offStateFlg0(FLG0_UNK_40000000);
field_0x171a = 1;
}
} else {
setSingleAnime(ANM_HS_STOP_STAND, HIO.faststop_stand_anm_speed, 0.0f, -1, HIO.faststop_interpolation, 0);
field_0x177C = HIO.faststop_stand_cancel_frame;
setSingleAnime(ANM_HS_STOP_STAND, m_hio->m.faststop_stand_anm_speed, 0.0f, -1, m_hio->m.faststop_interpolation, 0);
field_0x177C = m_hio->m.faststop_stand_cancel_frame;
}
field_0x16b7 = 1;
@@ -3678,12 +3674,12 @@ int daHorse_c::procStopInit() {
field_0x1774 = 2.7f;
field_0x171c = 1;
} else if (speedF <= m_normalMaxSpeedF) {
field_0x1774 = HIO.faststop_deceleration_slow;
field_0x1774 = m_hio->m.faststop_deceleration_slow;
} else {
f32 var_f31 = (m_normalMaxSpeedF * m_normalMaxSpeedF) / (2.0f * HIO.faststop_deceleration_slow);
f32 var_f31 = (m_normalMaxSpeedF * m_normalMaxSpeedF) / (2.0f * m_hio->m.faststop_deceleration_slow);
field_0x1774 = (speedF * speedF) / (2.f * var_f31);
if (field_0x1774 > HIO.faststop_deceleration) {
field_0x1774 = HIO.faststop_deceleration;
if (field_0x1774 > m_hio->m.faststop_deceleration) {
field_0x1774 = m_hio->m.faststop_deceleration;
}
}
@@ -3799,11 +3795,11 @@ int daHorse_c::procTurnInit(int param_0) {
m_procID = PROC_TURN_e;
resetNeckAnime();
setSingleAnime(ANM_HS_STAND, HIO.stand_anm_speed, 0.0f, -1, HIO.stand_interpolation, 0);
setSingleAnime(ANM_HS_STAND, m_hio->m.stand_anm_speed, 0.0f, -1, m_hio->m.stand_interpolation, 0);
field_0x1774 = 52.0f;
field_0x1778 = 0.09817477f;
field_0x177C = HIO.stand_cancel_frame;
field_0x177C = m_hio->m.stand_cancel_frame;
field_0x1780 = 20.0f;
field_0x1784 = 53.0f;
speedF = 0.0f;
@@ -3815,11 +3811,7 @@ int daHorse_c::procTurnInit(int param_0) {
field_0x171e = shape_angle.y + 0x8000;
if (!dComIfGp_event_runCheck() && !checkStateFlg0(FLG0_UNK_4000000)) {
#if PLATFORM_GCN || PLATFORM_WII
field_0x170a += 0x8000;
#else
field_0x170a += (s16)0x8000;
#endif
field_0x170a += (s16)(f32)0x8000;
} else if (checkStateFlg0(FLG0_UNK_4000000)) {
field_0x171e = shape_angle.y;
}
@@ -3997,9 +3989,9 @@ int daHorse_c::procJumpInit(int param_0) {
field_0x1720 = param_0;
if (param_0) {
setSingleAnime(ANM_HS_JUMP_START_CLIFT, HIO.cliff_jump_anm_speed, HIO.cliff_jump_start_frame, HIO.cliff_jump_end_frame, HIO.cliff_jump_interpolation, 0);
setSingleAnime(ANM_HS_JUMP_START_CLIFT, m_hio->m.cliff_jump_anm_speed, m_hio->m.cliff_jump_start_frame, m_hio->m.cliff_jump_end_frame, m_hio->m.cliff_jump_interpolation, 0);
} else {
setSingleAnime(ANM_HS_JUMP_START, HIO.jump_anm_speed, HIO.jump_start_frame, HIO.jump_end_frame, HIO.jump_interpolation, 0);
setSingleAnime(ANM_HS_JUMP_START, m_hio->m.jump_anm_speed, m_hio->m.jump_start_frame, m_hio->m.jump_end_frame, m_hio->m.jump_interpolation, 0);
}
if (speedF < 0.75f * m_normalMaxSpeedF) {
@@ -4012,14 +4004,14 @@ int daHorse_c::procJumpInit(int param_0) {
speedF *= field_0x1768 / JMAFastSqrt((field_0x1768 * field_0x1768) + (temp_f31 * temp_f31));
field_0x171a = field_0x1768 / speedF;
if (field_0x171a < HIO.min_jump_time) {
field_0x171a = HIO.min_jump_time;
if (field_0x171a < m_hio->m.min_jump_time) {
field_0x171a = m_hio->m.min_jump_time;
speedF = field_0x1768 / (f32)field_0x171a;
}
field_0x171e = field_0x1770 / speedF;
if (field_0x171e < HIO.min_jump_time) {
field_0x171e = HIO.min_jump_time;
if (field_0x171e < m_hio->m.min_jump_time) {
field_0x171e = m_hio->m.min_jump_time;
}
field_0x177C = (-2.0f * temp_f31) / (f32)(field_0x171e * field_0x171e);
@@ -4048,11 +4040,11 @@ int daHorse_c::procJump() {
if (m_anmIdx[0] == ANM_HS_JUMP_START_CLIFT) {
if (m_frameCtrl[0].checkAnmEnd()) {
setSingleAnime(ANM_HS_JUMP_MIDDLE, HIO.cliff_air_anm_speed, HIO.cliff_air_start_frame, HIO.cliff_air_end_frame, HIO.cliff_air_interpolation, 0);
setSingleAnime(ANM_HS_JUMP_MIDDLE, m_hio->m.cliff_air_anm_speed, m_hio->m.cliff_air_start_frame, m_hio->m.cliff_air_end_frame, m_hio->m.cliff_air_interpolation, 0);
}
} else if (m_anmIdx[0] == ANM_HS_JUMP_START) {
if (m_frameCtrl[0].checkAnmEnd()) {
int temp_r28 = (f32)field_0x171a - ((1.0f / HIO.jump_anm_speed) * (f32)(m_frameCtrl[0].getEnd() - m_frameCtrl[0].getStart()));
int temp_r28 = (f32)field_0x171a - ((1.0f / m_hio->m.jump_anm_speed) * (f32)(m_frameCtrl[0].getEnd() - m_frameCtrl[0].getStart()));
if (temp_r28 <= 0) {
temp_r28 += field_0x171e;
gravity = field_0x177C;
@@ -4060,14 +4052,14 @@ int daHorse_c::procJump() {
if (temp_r28 <= 0) {
setSingleAnime(ANM_HS_JUMP_END, 0.0f, 0.0f, -1, field_0x171e, 0);
} else {
setSingleAnime(ANM_HS_JUMP_MIDDLE, (HIO.air_end_frame - 6.0f) / temp_r28, 6.0f, HIO.air_end_frame, HIO.air_interpolation, 0);
setSingleAnime(ANM_HS_JUMP_MIDDLE, (m_hio->m.air_end_frame - 6.0f) / temp_r28, 6.0f, m_hio->m.air_end_frame, m_hio->m.air_interpolation, 0);
}
} else {
setSingleAnime(ANM_HS_JUMP_MIDDLE, (6.0f - HIO.air_start_frame) / temp_r28, HIO.air_start_frame, 6, HIO.air_interpolation, 0);
setSingleAnime(ANM_HS_JUMP_MIDDLE, (6.0f - m_hio->m.air_start_frame) / temp_r28, m_hio->m.air_start_frame, 6, m_hio->m.air_interpolation, 0);
}
}
} else if (m_anmIdx[0] == ANM_HS_JUMP_MIDDLE && field_0x1720 == 0 && m_frameCtrl[0].checkAnmEnd() && m_frameCtrl[0].getEnd() == 6) {
setSingleAnime(ANM_HS_JUMP_MIDDLE, (1.0f + (HIO.air_end_frame - 6.0f)) / field_0x171e, 7.0f, HIO.air_end_frame, -1.0f, 0);
setSingleAnime(ANM_HS_JUMP_MIDDLE, (1.0f + (m_hio->m.air_end_frame - 6.0f)) / field_0x171e, 7.0f, m_hio->m.air_end_frame, -1.0f, 0);
gravity = field_0x177C;
}
@@ -4082,11 +4074,11 @@ int daHorse_c::procLandInit(f32 i_speedF, BOOL param_1) {
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 1, cXyz(0.0f, 1.0f, 0.0f));
if (param_1) {
setSingleAnime(ANM_HS_JUMP_END, HIO.cliff_land_anm_speed, HIO.cliff_land_start_frame, HIO.cliff_land_end_frame, HIO.cliff_land_interpolation, 0);
field_0x177C = HIO.cliff_land_cancel_frame;
setSingleAnime(ANM_HS_JUMP_END, m_hio->m.cliff_land_anm_speed, m_hio->m.cliff_land_start_frame, m_hio->m.cliff_land_end_frame, m_hio->m.cliff_land_interpolation, 0);
field_0x177C = m_hio->m.cliff_land_cancel_frame;
} else {
setSingleAnime(ANM_HS_JUMP_END, HIO.land_anm_speed, HIO.land_start_frame, HIO.land_end_frame, HIO.land_interpolation, 0);
field_0x177C = HIO.land_cancel_frame;
setSingleAnime(ANM_HS_JUMP_END, m_hio->m.land_anm_speed, m_hio->m.land_start_frame, m_hio->m.land_end_frame, m_hio->m.land_interpolation, 0);
field_0x177C = m_hio->m.land_cancel_frame;
}
speedF = i_speedF;
@@ -4109,16 +4101,16 @@ int daHorse_c::procLand() {
if (temp_r3 == 2) {
speedF = 0.0f;
} else if (temp_r3 != 0) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
}
if (field_0x171a != 0) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
dComIfGp_evmng_cutEnd(m_demoStaffId);
setMoveAnime(-1.0f);
} else if (frame_ctrl->checkAnmEnd()) {
if (m_demoMode == 7) {
cLib_chaseF(&speedF, 0.0f, HIO.stopping_deceleration);
cLib_chaseF(&speedF, 0.0f, m_hio->m.stopping_deceleration);
dComIfGp_evmng_cutEnd(m_demoStaffId);
setMoveAnime(3.0f);
field_0x171a = 1;
@@ -4137,7 +4129,7 @@ int daHorse_c::procLargeDamageInit() {
m_procID = PROC_LARGE_DAMAGE_e;
resetNeckAnime();
setSingleAnime(ANM_HS_STAND, HIO.stand_anm_speed, 0.0f, -1, HIO.stand_interpolation, 0);
setSingleAnime(ANM_HS_STAND, m_hio->m.stand_anm_speed, 0.0f, -1, m_hio->m.stand_interpolation, 0);
current.angle.y = m_cowHitAngle;
speedF = 60.0f;
@@ -4247,16 +4239,16 @@ int daHorse_c::execute() {
daAlink_c* player_p = daAlink_getAlinkActorClass();
#if PLATFORM_SHIELD || PLATFORM_WII
l_autoUpHeight = HIO.m0D0;
l_autoUpHeight = m_hio->m.m0D0;
m_acchcir[0].SetWall(l_autoUpHeight + 0.1f, 60.0f);
if (checkStateFlg0(FLG0_UNK_2000)) {
m_normalMaxSpeedF = HIO.kakariko_max_speed;
m_lashAddSpeed = HIO.kakariko_add_lash_speed;
m_normalMaxSpeedF = m_hio->m.kakariko_max_speed;
m_lashAddSpeed = m_hio->m.kakariko_add_lash_speed;
} else {
m_normalMaxSpeedF = HIO.max_speed;
m_lashAddSpeed = HIO.add_lash_speed;
m_normalMaxSpeedF = m_hio->m.max_speed;
m_lashAddSpeed = m_hio->m.add_lash_speed;
}
field_0x1764 = HIO.walk_to_fastwalk_rate * m_normalMaxSpeedF;
field_0x1764 = m_hio->m.walk_to_fastwalk_rate * m_normalMaxSpeedF;
m_lashMaxSpeedF = m_normalMaxSpeedF + m_lashAddSpeed;
#endif
@@ -4476,7 +4468,7 @@ int daHorse_c::execute() {
if (!checkInputOnR() && fabsf(speedF) < 0.05f) {
offStateFlg0(FLG0_UNK_8);
} else if (fabsf(speedF) > 0.2f * HIO.max_backward_speed || (m_anmIdx[0] == ANM_HS_WALK_START && m_frameCtrl[0].getFrame() > 2.0f)) {
} else if (fabsf(speedF) > 0.2f * m_hio->m.max_backward_speed || (m_anmIdx[0] == ANM_HS_WALK_START && m_frameCtrl[0].getFrame() > 2.0f)) {
onStateFlg0(FLG0_UNK_8);
}
+9 -24
View File
@@ -10,22 +10,15 @@
#include "d/actor/d_a_b_gnd.h"
#include "d/actor/d_a_arrow.h"
#if DEBUG
#define HIO mpHIO->mParameters
#else
#define HIO daHoZelda_hio_c0::m
#endif
static const char l_arcName[] = "HoZelda";
#if DEBUG
void daHoZelda_hio_c::genMessage(JORMContext* context) {
context->genSlider("弓サーチY角度", &mParameters.bow_search_y_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓開始角度", &mParameters.bow_start_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓開始距離", &mParameters.bow_start_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓終了角度", &mParameters.bow_end_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓終了距離", &mParameters.bow_end_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓サーチY角度", &m.bow_search_y_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓開始角度", &m.bow_start_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓開始距離", &m.bow_start_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓終了角度", &m.bow_end_angle, 0, 0x7fff, 0, NULL, -1, -1, 0x200, 0x18);
context->genSlider("弓終了距離", &m.bow_end_distance, 0.0f, 10000.0f, 0, NULL, -1, -1, 0x200, 0x18);
}
#endif
@@ -134,7 +127,7 @@ BOOL daHoZelda_c::createHeap() {
return FALSE;
}
mpHIO = new daHoZelda_hio_c();
mpHIO = new HOZELDA_HIO_CLASS();
if (mpHIO == NULL) {
return FALSE;
}
@@ -482,7 +475,7 @@ void daHoZelda_c::setAnm() {
}
if (anm_idx[0] == 0xE && field_0x6da == 0 && !mDamageInit && field_0x6dd == 0 && player->checkHorseRide() && ganondorf != NULL && ganondorf->checkPiyo() != 1 &&
((gnd_seen_angleY < HIO.bow_start_angle && gnd_lockon) || (mBowMode != 0 && gnd_seen_angleY < HIO.bow_end_angle && (gnd_lockon || mArrowAcKeep.getActor() != NULL))))
((gnd_seen_angleY < mpHIO->m.bow_start_angle && gnd_lockon) || (mBowMode != 0 && gnd_seen_angleY < mpHIO->m.bow_end_angle && (gnd_lockon || mArrowAcKeep.getActor() != NULL))))
{
mBowMode = 1;
} else {
@@ -848,7 +841,6 @@ void daHoZelda_c::setNeckAngle() {
}
}
// NONMATCHING - load order with cLib_minMaxLimit
void daHoZelda_c::searchBodyAngle() {
fopAc_ac_c* gnd_actor = mGndAcKeep.getActor();
s16 angle_x_target = 0;
@@ -863,16 +855,9 @@ void daHoZelda_c::searchBodyAngle() {
if (sp8.abs() >= 1.0f) {
angle_x_target = cLib_minMaxLimit<s16>(sp8.atan2sY_XZ(), -0x800, 0x2000);
#if PLATFORM_SHIELD || PLATFORM_WII
angle_y_target =
cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, -HIO.bow_search_y_angle,
(s16)HIO.bow_search_y_angle);
#else
// needs to load HIO.bow_search_y_angle before calling sp8.atan2sX_Z()
int ang1 = (s16)-HIO.bow_search_y_angle;
int ang2 = (s16)HIO.bow_search_y_angle;
angle_y_target = cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, ang1, ang2);
#endif
cLib_minMaxLimit<s16>(sp8.atan2sX_Z() - shape_angle.y, -mpHIO->m.bow_search_y_angle,
(s16)mpHIO->m.bow_search_y_angle);
}
}
+7 -3
View File
@@ -92,7 +92,7 @@ static void dKy_event_proc() {
env_light->dice_wether_state = DICE_STATE_INIT_e;
}
break;
case DICE_STATE_INIT_e:
case DICE_STATE_INIT_e: {
u8 table_no = cM_rndF(12.99f);
if (table_no >= 8) {
env_light->dice_wether_state = DICE_STATE_NEXT_e;
@@ -132,6 +132,7 @@ static void dKy_event_proc() {
env_light->dice_wether_state++;
}
break;
}
case DICE_STATE_EXEC_e:
if (current_time > env_light->dice_wether_time &&
current_time - env_light->dice_wether_time < 180.0f)
@@ -812,7 +813,7 @@ static void daKytag06_type_03_Execute(kytag06_class* i_this) {
dComIfGs_onSwitch(i_this->mSwNo, dComIfGp_roomControl_getStayNo());
}
break;
case 1:
case 1: {
int old = i_this->field_0x578;
i_this->field_0x578--;
@@ -820,6 +821,7 @@ static void daKytag06_type_03_Execute(kytag06_class* i_this) {
i_this->mMode++;
}
break;
}
case 2:
if ((g_Counter.mCounter0 & 7) == 0) {
// run block every 8 frames
@@ -861,7 +863,7 @@ static int daKytag06_Execute(kytag06_class* i_this) {
dComIfGs_getTime();
switch (i_this->mType) {
case 1:
case 1: {
camera_class* camera = dComIfGp_getCamera(0);
if (i_this->mpPath != NULL) {
@@ -899,6 +901,7 @@ static int daKytag06_Execute(kytag06_class* i_this) {
}
}
break;
}
case 2:
if (i_this->mSwNo != 0xFF) {
if (dComIfGs_isSwitch(i_this->mSwNo, dComIfGp_roomControl_getStayNo()) && i_this->mMode == 0) {
@@ -1040,6 +1043,7 @@ static int daKytag06_Execute(kytag06_class* i_this) {
}
break;
case 4:
void(0);
break;
}
-2
View File
@@ -4422,8 +4422,6 @@ static void cam_3d_morf(dmg_rod_class* i_this, f32 i_scale) {
cLib_addCalc2(&i_this->play_cam_eye.z, i_this->play_cam_eye_target.z, i_scale, i_this->play_cam_eye_speed.z * i_this->field_0x1410);
}
// NONMATCHING - JMAFastSqrt needs to not be inlined
// tricks like FORCE_DONT_INLINE can stop inlining for most of the inlines in this function, but it's unclear how to stop just one inline
static void play_camera(dmg_rod_class* i_this) {
fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->actor;
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
+2
View File
@@ -1,5 +1,7 @@
#include "d/actor/d_a_npc.h"
#include "d/actor/d_a_npc2.h"
#include "d/d_bg_w.h"
#include "d/d_debug_viewer.h"
static s32 daBaseNpc_chkPnt(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5);
static u16 daBaseNpc_putNurbs(dPnt* i_CPnts, int i_CPntNum, int i_maxPntNum, dPnt* o_curve_p, BOOL i_isClosed);
+2 -3
View File
@@ -394,14 +394,13 @@ void daNpcF_Lookat_c::calc(fopAc_ac_c* i_actor, Mtx i_baseTransformMtx, csXyz**
}
}
// NONMATCHING - regalloc, matches debug
void daNpcF_Lookat_c::adjustMoveDisAngle(s16& delta, s16 angle, s16 min, s16 max) {
int newAngle = 0;
newAngle = angle + delta;
if (max < newAngle) {
if (angle < max) {
delta -= (newAngle - max);
delta = delta - (newAngle - max);
} else {
delta = 0;
}
@@ -410,7 +409,7 @@ void daNpcF_Lookat_c::adjustMoveDisAngle(s16& delta, s16 angle, s16 min, s16 max
newAngle = angle + delta;
if (newAngle < min) {
if (min < angle) {
delta -= (newAngle - min);
delta = delta - (newAngle - min);
} else {
delta = 0;
}
+9 -2
View File
@@ -658,14 +658,21 @@ void daNpc_Bans_c::reset() {
switch (mType) {
case TYPE_POST_TWILIGHT:
break;
case TYPE_TWILIGHT:
break;
case TYPE_COLIN_KIDNAPPED:
break;
case TYPE_MAKING_BOMBS:
break;
case TYPE_SHOP:
break;
default:
daNpcT_offTmpBit(57); // dSv_event_tmp_flag_c::T_0057 - Kakariko Village (inside) - Barnes bomb shop <purchase>
setAngle(angle);
break;
}
daNpcT_offTmpBit(57); // dSv_event_tmp_flag_c::T_0057 - Kakariko Village (inside) - Barnes bomb shop <purchase>
setAngle(angle);
}
void daNpc_Bans_c::afterJntAnm(int param_1) {
+2 -1
View File
@@ -594,7 +594,7 @@ BOOL daNpc_Hoz_c::evtEndProc() {
field_0xf8b = 1;
field_0xf8c = 0;
break;
case 5:
case 5: {
field_0xf8a = 1;
field_0xf8c = 0;
@@ -604,6 +604,7 @@ BOOL daNpc_Hoz_c::evtEndProc() {
dMeter2Info_onMenuInForce(2);
}
break;
}
case 6:
field_0xf8b = 1;
+1 -1
View File
@@ -503,7 +503,7 @@ void daNpcImpal_c::setMotionAnm(int i_idx, f32 i_morf) {
case ANM_10:
case ANM_11:
break;
// Is this a bug from the original developers?
// !@bug Is this a bug from the original developers?
case ANM_12:
iVar5 = 1;
case ANM_2:
+48 -44
View File
@@ -2537,7 +2537,6 @@ int daNpc_Kn_c::teach06_divideMove(void* param_0) {
if (!dComIfGp_event_runCheck()) {
mActionMode = 15;
}
break;
}
case 3:
default:
@@ -2609,15 +2608,10 @@ int daNpc_Kn_c::teach06_superJumpWaitDivide(void* param_0) {
parent_p->setTalkFlag(2);
}
int spC;
s16 temp_r0_2 = fopAcM_searchPlayerAngleY(this) - current.angle.y;
if (temp_r0_2 < 0) {
spC = -temp_r0_2;
} else {
spC = temp_r0_2;
}
s16 srch_ply_angle = fopAcM_searchPlayerAngleY(this);
s16 angle = srch_ply_angle - current.angle.y;
if (spC < 0x4000) {
if ((angle < 0 ? -angle : angle) < 0x4000) {
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0x12, -1.0f, 0, 0);
setAngle(fopAcM_searchPlayerAngleY(this));
@@ -2673,10 +2667,13 @@ int daNpc_Kn_c::teach06_superJumpWaitDivide(void* param_0) {
if (parent_p != NULL) {
parent_p->setTalkFlag(1);
parent_p->mFlowNodeNo = mFlowNodeNo;
} else {
break;
}
} else if (!daPy_getPlayerActorClass()->checkDamageImpact()) {
BOOL is_lockon = FALSE;
if (dComIfGp_getAttention()->LockonTruth()) {
dAttention_c* attention_p = dComIfGp_getAttention();
if (attention_p->LockonTruth()) {
is_lockon = TRUE;
}
@@ -2810,15 +2807,10 @@ int daNpc_Kn_c::teach07_superTurnAttackWait(void* param_0) {
mEvtNo = 0x18;
}
int spC;
s16 temp_r0_2 = fopAcM_searchPlayerAngleY(this) - current.angle.y;
if (temp_r0_2 < 0) {
spC = -temp_r0_2;
} else {
spC = temp_r0_2;
}
s16 srch_ply_angle = fopAcM_searchPlayerAngleY(this);
s16 angle = srch_ply_angle - current.angle.y;
if (spC < 0x4000) {
if ((angle < 0 ? -angle : angle) < 0x4000) {
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0x12, -1.0f, 0, 0);
setAngle(fopAcM_searchPlayerAngleY(this));
@@ -2862,7 +2854,8 @@ int daNpc_Kn_c::teach07_superTurnAttackWait(void* param_0) {
field_0x15bc = 0;
BOOL is_lockon = FALSE;
if (dComIfGp_getAttention()->LockonTruth()) {
dAttention_c* attention_p = dComIfGp_getAttention();
if (attention_p->LockonTruth()) {
is_lockon = TRUE;
}
@@ -2923,7 +2916,6 @@ int daNpc_Kn_c::teach07_divideMove(void* param_0) {
if (!dComIfGp_event_runCheck()) {
mActionMode = 21;
}
break;
}
case 3:
default:
@@ -2995,15 +2987,10 @@ int daNpc_Kn_c::teach07_superTurnAttackWaitDivide(void* param_0) {
parent_p->setTalkFlag(2);
}
int spC;
s16 temp_r0_2 = fopAcM_searchPlayerAngleY(this) - current.angle.y;
if (temp_r0_2 < 0) {
spC = -temp_r0_2;
} else {
spC = temp_r0_2;
}
s16 srch_ply_angle = fopAcM_searchPlayerAngleY(this);
s16 angle = srch_ply_angle - current.angle.y;
if (spC < 0x4000) {
if ((angle < 0 ? -angle : angle) < 0x4000) {
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0x12, -1.0f, 0, 0);
setAngle(fopAcM_searchPlayerAngleY(this));
@@ -3046,8 +3033,8 @@ int daNpc_Kn_c::teach07_superTurnAttackWaitDivide(void* param_0) {
if (parent_p != NULL) {
parent_p->setTalkFlag(1);
}
break;
}
break;
}
case 3:
default:
@@ -3117,10 +3104,12 @@ int daNpc_Kn_c::teach07_warpDelete(void* param_0) {
int daNpc_Kn_c::ECut_secondEncount(int i_idx) {
dEvent_manager_c* event_manager = &dComIfGp_getEventManager();
daNpc_GWolf_c* gwolf_p = NULL;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -3132,14 +3121,14 @@ int daNpc_Kn_c::ECut_secondEncount(int i_idx) {
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
break;
case 2: {
daNpc_GWolf_c* gwolf_p = (daNpc_GWolf_c*)fpcM_SearchByID(parentActorID);
gwolf_p = (daNpc_GWolf_c*)fpcM_SearchByID(parentActorID);
if (fopAcM_GetName(gwolf_p) == PROC_NPC_GWOLF) {
gwolf_p->setMotion(4, -1.0f, FALSE);
}
break;
}
case 5: {
daNpc_GWolf_c* gwolf_p = (daNpc_GWolf_c*)fpcM_SearchByID(parentActorID);
gwolf_p = (daNpc_GWolf_c*)fpcM_SearchByID(parentActorID);
if (gwolf_p != NULL) {
fopAcM_delete(gwolf_p);
}
@@ -3273,10 +3262,12 @@ int daNpc_Kn_c::ECut_secondEncount(int i_idx) {
int daNpc_Kn_c::ECut_thirdSkillExplain(int i_idx) {
dEvent_manager_c* event_manager = &dComIfGp_getEventManager();
void* _ = NULL;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -3359,9 +3350,7 @@ int daNpc_Kn_c::ECut_thirdSkillExplain(int i_idx) {
}
break;
case 6:
if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) {
rt = 1;
} else {
if (mCurAngle.y != fopAcM_searchPlayerAngleY(this)) {
if (step(fopAcM_searchPlayerAngleY(this), 1, 0x20, 20, 0)) {
rt = 1;
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
@@ -3459,9 +3448,10 @@ int daNpc_Kn_c::ECut_thirdSkillGet(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -3594,9 +3584,10 @@ int daNpc_Kn_c::ECut_fourthSkillExplain(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -3647,6 +3638,7 @@ int daNpc_Kn_c::ECut_fourthSkillExplain(int i_idx) {
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0, -1.0f, 1, 0);
}
void(0);
break;
}
case 30:
@@ -3792,9 +3784,10 @@ int daNpc_Kn_c::ECut_fourthSkillGet(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -3928,9 +3921,10 @@ int daNpc_Kn_c::ECut_fifthSkillExplain(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -4090,7 +4084,7 @@ int daNpc_Kn_c::ECut_fifthSkillExplain(int i_idx) {
sp34 += home.pos;
setPos(sp34);
setAngle(home.angle.y);
setAngle((s16) home.angle.y);
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(7, -1.0f, 1, 0);
} else if (mpModelMorf[0]->getFrame() >= 8.0f && mpModelMorf[0]->getFrame() < 9.0f) {
@@ -4124,9 +4118,10 @@ int daNpc_Kn_c::ECut_fifthSkillGet(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -4260,9 +4255,10 @@ int daNpc_Kn_c::ECut_sixthSkillExplain(int i_idx) {
int sp8 = 0;
int rt = 0;
int* prm_p = NULL;
int prm = -1;
int* prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
prm_p = dComIfGp_evmng_getMyIntegerP(i_idx, "prm");
if (prm_p != NULL) {
prm = *prm_p;
}
@@ -4416,7 +4412,7 @@ int daNpc_Kn_c::ECut_sixthSkillExplain(int i_idx) {
sp34 += home.pos;
setPos(sp34);
setAngle(home.angle.y);
setAngle((s16) home.angle.y);
mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0, 0.0f, 1, 0);
}
@@ -4984,14 +4980,22 @@ int daNpc_Kn_c::setSlipPrtcl() {
mDoMtx_stack_c::multVecZero(&mParticleMngr[0].mPos);
mParticleMngr[0].mPos.y -= 20.0f;
mParticleMngr[0].mAngle = current.angle;
#ifdef DEBUG
mParticleMngr[0].mAngle.y -= (s16) 0x8000;
#else
mParticleMngr[0].mAngle.y -= 0x8000;
#endif
mParticleMngr[0].mpModel = true;
mDoMtx_stack_c::copy(mpModelMorf[0]->getModel()->getAnmMtx(0x1b));
mDoMtx_stack_c::multVecZero(&mParticleMngr[1].mPos);
mParticleMngr[1].mPos.y -= 20.0f;
mParticleMngr[1].mAngle = current.angle;
#ifdef DEBUG
mParticleMngr[1].mAngle.y -= (s16) 0x8000;
#else
mParticleMngr[1].mAngle.y -= 0x8000;
#endif
mParticleMngr[1].mpModel = true;
return 1;
}
+1 -1
View File
@@ -1009,7 +1009,7 @@ BOOL daNpc_Kn_c::srchPlayerActor() {
}
}
return mActorMngr1.getActorP() != NULL;
return NULL != mActorMngr1.getActorP();
}
cXyz daNpc_Kn_c::getAttnPos(fopAc_ac_c* i_actor) {
+2 -1
View File
@@ -330,6 +330,7 @@ int daNpc_Kn_c::ctrlWarp() {
field_0x16f4.set(1.0f, 1.0f, 1.0f);
}
}
void(0);
break;
}
case 1:
@@ -365,6 +366,7 @@ int daNpc_Kn_c::ctrlWarp() {
field_0x170c = 2;
field_0x170d = 0;
}
void(0);
break;
case 2:
sp28 = 1;
@@ -405,7 +407,6 @@ int daNpc_Kn_c::ctrlWarp() {
field_0x170c = 0;
field_0x170d = 0;
}
break;
}
return sp28;

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