some cleanup of f_pc/f_op files (#2254)

* cleanup f_pc files

* cleanup f_op files

* fix a couple f_op_actor_mng functions

* minor JSystem work
This commit is contained in:
TakaRikka
2024-11-29 08:24:26 -08:00
committed by GitHub
parent 6482fe7535
commit 073992df8d
903 changed files with 6835 additions and 6587 deletions
+3 -3
View File
@@ -397,7 +397,7 @@ config.libs = [
Object(Matching, "f_op/f_op_kankyo.cpp"),
Object(Matching, "f_op/f_op_msg.cpp"),
Object(Matching, "f_op/f_op_kankyo_mng.cpp"),
Object(NonMatching, "f_op/f_op_msg_mng.cpp"),
Object(Matching, "f_op/f_op_msg_mng.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(Matching, "f_op/f_op_draw_iter.cpp"),
Object(Matching, "f_op/f_op_draw_tag.cpp"),
Object(Matching, "f_op/f_op_scene_pause.cpp"),
@@ -927,7 +927,7 @@ config.libs = [
[
Object(NonMatching, "JSystem/JGadget/binary.cpp"),
Object(NonMatching, "JSystem/JGadget/linklist.cpp"),
Object(NonMatching, "JSystem/JGadget/std-vector.cpp"),
Object(Equivalent, "JSystem/JGadget/std-vector.cpp"), # just weak order
],
),
JSystemLib(
@@ -984,7 +984,7 @@ config.libs = [
Object(Matching, "JSystem/J3DGraphBase/J3DGD.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DSys.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DVertex.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DTransform.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DTransform.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DTexture.cpp"),
Object(Matching, "JSystem/J3DGraphBase/J3DPacket.cpp"),
Object(NonMatching, "JSystem/J3DGraphBase/J3DShapeMtx.cpp"),
+1 -1
View File
@@ -53,7 +53,7 @@ struct J3DTransformInfo {
extern J3DTransformInfo const j3dDefaultTransformInfo;
extern Vec const j3dDefaultScale;
extern Mtx const j3dDefaultMtx;
extern f32 PSMulUnit01[2];
extern f32 PSMulUnit01[];
void J3DGQRSetup7(u32 param_0, u32 param_1, u32 param_2, u32 param_3);
void J3DCalcBBoardMtx(f32 (*)[4]);
+33
View File
@@ -0,0 +1,33 @@
#ifndef STD_MEMORY_H
#define STD_MEMORY_H
#include "JSystem/JUtility/JUTAssert.h"
namespace JGadget {
template <typename T>
struct TAllocator {
T* allocate(u32 count, void *param_2) {
return AllocateRaw(count * sizeof(T));
}
T* AllocateRaw(u32 size) {
return (T*)operator new(size);
}
void deallocate(T* mem, u32 size) {
DeallocateRaw(mem);
}
void DeallocateRaw(T* mem) {
delete mem;
}
void destroy(T* p) {
JUT_ASSERT(68, p!=0);
}
/* 0x0 */ u8 mAllocator;
};
}
#endif /* STD_MEMORY_H */
+172
View File
@@ -1,4 +1,176 @@
#ifndef STD_VECTOR_H
#define STD_VECTOR_H
#include "JSystem/JGadget/std-memory.h"
#include "algorithm.h"
#include "msl_memory.h"
namespace JGadget {
namespace vector {
/* 802DCCC8 */ u32 extend_default(u32, u32, u32);
};
typedef u32 (*extendFunc)(u32, u32, u32);
template <typename T, typename Allocator = JGadget::TAllocator<T> >
struct TVector {
struct TDestructed_deallocate_ {
TDestructed_deallocate_(JGadget::TAllocator<T>& allocator, T* ptr) {
mAllocator = &allocator;
mPtr = ptr;
}
~TDestructed_deallocate_() { mAllocator->deallocate(mPtr, 0); }
void set(T* ptr) { mPtr = ptr; }
Allocator* mAllocator;
T* mPtr;
};
TVector(Allocator const& allocator) {
mAllocator = allocator;
pBegin_ = NULL;
pEnd_ = pBegin_;
mCapacity = 0;
pfnExtend_ = JGadget::vector::extend_default;
}
~TVector() {
clear();
mAllocator.deallocate(pBegin_, 0);
}
T* insert(T* pos, const T& val) {
u32 diff = (int)((u32)pos - (u32)begin()) / 4;
insert(pos, 1, val);
return pBegin_ + diff;
}
void insert(T* pos, u32 count, const T& val) {
if (count != 0) {
T* ptr = Insert_raw(pos, count);
if (ptr == end()) {
/* JGadget_outMessage sp120(JGadget_outMessage::warning, __FILE__, 0x141);
sp120 << "can't allocate memory"; */
} else {
std::uninitialized_fill_n(ptr, count, val);
}
}
}
T* Insert_raw(T* pIt, u32 pCount) {
JUT_ASSERT(446, (pBegin_ <= pIt) && (pIt <= pEnd_));
T* const pFirst = pIt;
if (pCount == 0) {
return pIt;
}
if (pCount + size() <= mCapacity) {
void** newEnd = pFirst + pCount;
if (newEnd < pEnd_) {
void** pOverwrittenValues = pEnd_ - pCount;
std::uninitialized_copy(pOverwrittenValues, pEnd_, pEnd_);
std::copy_backward(pFirst, pOverwrittenValues, pEnd_);
DestroyElement_(pFirst, newEnd);
pEnd_ += pCount;
return pIt;
} else {
std::uninitialized_copy(pFirst, pEnd_, newEnd);
DestroyElement_(pFirst, pEnd_);
pEnd_ += pCount;
return pIt;
}
}
u32 newSize = GetSize_extend_(pCount);
void** newDataPointer = mAllocator.allocate(newSize, 0);
if (!newDataPointer) {
return end();
}
TDestructed_deallocate_ destructionDeallocator(mAllocator, newDataPointer);
void** const endOfCopy = std::uninitialized_copy(pBegin_, pFirst, newDataPointer);
std::uninitialized_copy(pFirst, pEnd_, endOfCopy + pCount);
DestroyElement_all_();
destructionDeallocator.set(pBegin_);
pEnd_ = newDataPointer + (pEnd_ - pBegin_ + pCount);
pBegin_ = newDataPointer;
mCapacity = newSize;
return endOfCopy;
}
T* begin() { return pBegin_; }
T* end() { return pEnd_; }
u32 size() {
if (pBegin_ == 0) {
return 0;
}
return (int)((u32)pEnd_ - (u32)pBegin_) / 4;
}
u32 capacity() { return mCapacity; }
u32 GetSize_extend_(u32 count) {
JUT_ASSERT(0x22B, pfnExtend_!=0);
u32 oldSize = size();
u32 neededNewSpace = oldSize + count;
u32 extendedSize = pfnExtend_(capacity(), oldSize, count);
return neededNewSpace > extendedSize ? neededNewSpace : extendedSize;
}
void DestroyElement_(T* start, T* end) {
for (; start != end; start++) {
mAllocator.destroy(start);
}
}
void DestroyElement_all_() { DestroyElement_(pBegin_, pEnd_); }
T* erase(T* start, T* end) {
T* vectorEnd = pEnd_;
T* ppvVar3 = std::copy(end, vectorEnd, start);
DestroyElement_(ppvVar3, pEnd_);
pEnd_ = ppvVar3;
return start;
}
void clear() { erase(begin(), end()); }
/* 0x00 */ Allocator mAllocator;
/* 0x04 */ T* pBegin_;
/* 0x08 */ T* pEnd_;
/* 0x0C */ u32 mCapacity;
/* 0x10 */ extendFunc pfnExtend_;
};
struct TVector_pointer_void : public TVector<void*, TAllocator<void*> > {
TVector_pointer_void(const JGadget::TAllocator<void*>& allocator);
TVector_pointer_void(u32, void* const&,
const JGadget::TAllocator<void*>& allocator);
~TVector_pointer_void();
void insert(void**, void* const&);
void** erase(void**, void**);
void clear() { erase(begin(), end()); }
void push_back(const void*& value) { insert(end(), (void* const&)value); }
};
} // namespace JGadget
#endif /* STD_VECTOR_H */
+7
View File
@@ -42,6 +42,13 @@ struct data {
struct TParse_TBlock_messageID : public TParse_TBlock {
TParse_TBlock_messageID(const void* data) : TParse_TBlock(data) {}
char* get() const { return (char*)getRaw(); }
u8 get_formSupplement() const { return *(u8*)(get() + 0xB); }
u16 get_number() const { return *(u16*)(get() + 0x8); }
char* getContent() const { return (char*)get() + 0x10; }
u8 get_form() const { return *(u8*)(get() + 0xA) & 0xF; }
bool get_isOrdered() const { return *(u8*)(get() + 0xA) & 0xF0; }
};
struct TParse_TBlock_color : public TParse_TBlock {
+2 -2
View File
@@ -14,7 +14,7 @@ namespace JMessage {
*/
struct TResource {
TResource()
: field_0x8(NULL), field_0xc(NULL), field_0x10(NULL), field_0x14(0), field_0x18(NULL) {}
: field_0x8(NULL), field_0xc(NULL), field_0x10(NULL), field_0x14(0), mMessageID(NULL) {}
/* 802A8CDC */ u16 toMessageIndex_messageID(u32, u32, bool*) const;
@@ -56,7 +56,7 @@ struct TResource {
/* 0x0C */ data::TParse_TBlock_info field_0xc;
/* 0x10 */ char* field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ data::TParse_TBlock_messageID field_0x18;
/* 0x18 */ data::TParse_TBlock_messageID mMessageID;
};
/**
+3 -198
View File
@@ -4,204 +4,9 @@
#include "dolphin/types.h"
struct request_base_class {
struct {
u8 flag0 : 1;
u8 flag1 : 1;
u8 flag2 : 6;
} field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u16 field_0x4;
u8 field_0x6;
u8 field_0x7;
u32 field_0x8;
s8 field_0xc;
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
int* field_0x10;
// u8 field_0x11;
// u8 field_0x12;
// u8 field_0x13;
u8 field_0x14;
u8 field_0x15;
u8 field_0x16;
u8 field_0x17;
u8 field_0x18;
u8 field_0x19;
u8 field_0x1a;
u8 field_0x1b;
u8 field_0x1c;
u8 field_0x1d;
u8 field_0x1e;
u8 field_0x1f;
u32* field_0x20;
u8 field_0x24;
u8 field_0x25;
u8 field_0x26;
u8 field_0x27;
u8 field_0x28;
u8 field_0x29;
u8 field_0x2a;
u8 field_0x2b;
u8 field_0x2c;
u8 field_0x2d;
u8 field_0x2e;
u8 field_0x2f;
u8 field_0x30;
u8 field_0x31;
u8 field_0x32;
u8 field_0x33;
u8 field_0x34;
u8 field_0x35;
u8 field_0x36;
u8 field_0x37;
u8 field_0x38;
u8 field_0x39;
u8 field_0x3a;
u8 field_0x3b;
u8 field_0x3c;
u8 field_0x3d;
u8 field_0x3e;
u8 field_0x3f;
u8 field_0x40;
u8 field_0x41;
u8 field_0x42;
u8 field_0x43;
u8 field_0x44;
u8 field_0x45;
u8 field_0x46;
u8 field_0x47;
u8 field_0x48;
u8 field_0x49;
u8 field_0x4a;
u8 field_0x4b;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
u8 field_0x50;
u8 field_0x51;
u8 field_0x52;
u8 field_0x53;
u8 field_0x54;
u8 field_0x55;
u8 field_0x56;
u8 field_0x57;
u8 field_0x58;
u8 field_0x59;
u8 field_0x5a;
u8 field_0x5b;
u8 field_0x5c;
u8 field_0x5d;
u8 field_0x5e;
u8 field_0x5f;
u8 field_0x60;
u8 field_0x61;
u8 field_0x62;
u8 field_0x63;
u8 field_0x64;
u8 field_0x65;
u8 field_0x66;
u8 field_0x67;
u8 field_0x68;
u8 field_0x69;
u8 field_0x6a;
u8 field_0x6b;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
u8 field_0x74;
u8 field_0x75;
u8 field_0x76;
u8 field_0x77;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
u8 field_0x84;
u8 field_0x85;
u8 field_0x86;
u8 field_0x87;
u8 field_0x88;
u8 field_0x89;
u8 field_0x8a;
u8 field_0x8b;
u8 field_0x8c;
u8 field_0x8d;
u8 field_0x8e;
u8 field_0x8f;
u8 field_0x90;
u8 field_0x91;
u8 field_0x92;
u8 field_0x93;
u8 field_0x94;
u8 field_0x95;
u8 field_0x96;
u8 field_0x97;
u8 field_0x98;
u8 field_0x99;
u8 field_0x9a;
u8 field_0x9b;
u8 field_0x9c;
u8 field_0x9d;
u8 field_0x9e;
u8 field_0x9f;
u8 field_0xa0;
u8 field_0xa1;
u8 field_0xa2;
u8 field_0xa3;
u8 field_0xa4;
u8 field_0xa5;
u8 field_0xa6;
u8 field_0xa7;
u8 field_0xa8;
u8 field_0xa9;
u8 field_0xaa;
u8 field_0xab;
u8 field_0xac;
u8 field_0xad;
u8 field_0xae;
u8 field_0xaf;
u8 field_0xb0;
u8 field_0xb1;
u8 field_0xb2;
u8 field_0xb3;
u8 field_0xb4;
u8 field_0xb5;
u8 field_0xb6;
u8 field_0xb7;
u8 field_0xb8;
u8 field_0xb9;
u8 field_0xba;
u8 field_0xbb;
u8 field_0xbc;
u8 field_0xbd;
u8 field_0xbe;
u8 field_0xbf;
u32 field_0xc0;
// u8 field_0xc1;
// u8 field_0xc2;
// u8 field_0xc3;
request_base_class* field_0xc4;
// u8 field_0xc5;
// u8 field_0xc6;
// u8 field_0xc7;
u32* field_0xc8;
u8 flag0 : 1;
u8 flag1 : 1;
u8 flag2 : 6;
};
int cReq_Is_Done(request_base_class*);
+4
View File
@@ -19,4 +19,8 @@ struct DynamicNameTableEntry {
int cDyl_InitAsyncIsDone();
void cDyl_InitAsync();
BOOL cDyl_IsLinked(s16 i_ProfName);
BOOL cDyl_Unlink(s16 i_ProfName);
int cDyl_LinkASync(s16 i_ProfName);
#endif /* C_C_DYLINK_H */
+1 -1
View File
@@ -74,7 +74,7 @@ public:
camera_class* iVar1 = dComIfGp_getCamera(0);
cXyz local_28;
current.pos = *fopCamM_GetEye_p(iVar1);
dKyr_get_vectle_calc(&iVar1->mLookat.mEye, &iVar1->mLookat.mCenter, &local_28);
dKyr_get_vectle_calc(&iVar1->lookat.eye, &iVar1->lookat.center, &local_28);
current.angle.y = cM_atan2s(local_28.x, local_28.z);
current.angle.x = -cM_atan2s(
local_28.y, JMAFastSqrt((local_28.x * local_28.x + local_28.z * local_28.z)));
+8 -8
View File
@@ -3393,19 +3393,19 @@ inline void dComIfGp_event_setTalkPartner(fopAc_ac_c* i_actor) {
}
inline fopAc_ac_c* dComIfGp_event_getTalkPartner() {
return g_dComIfG_gameInfo.play.getEvent().getPtT();
return (fopAc_ac_c*)g_dComIfG_gameInfo.play.getEvent().getPtT();
}
inline fopAc_ac_c* dComIfGp_event_getItemPartner() {
return g_dComIfG_gameInfo.play.getEvent().getPtI();
return (fopAc_ac_c*)g_dComIfG_gameInfo.play.getEvent().getPtI();
}
inline fopAc_ac_c* dComIfGp_event_getPt1() {
return g_dComIfG_gameInfo.play.getEvent().getPt1();
return (fopAc_ac_c*)g_dComIfG_gameInfo.play.getEvent().getPt1();
}
inline fopAc_ac_c* dComIfGp_event_getPt2() {
return g_dComIfG_gameInfo.play.getEvent().getPt2();
return (fopAc_ac_c*)g_dComIfG_gameInfo.play.getEvent().getPt2();
}
inline BOOL dComIfGp_event_runCheck() {
@@ -3897,11 +3897,11 @@ inline view_class* dComIfGd_getView() {
}
inline Mtx44* dComIfGd_getProjViewMtx() {
return &(g_dComIfG_gameInfo.drawlist.getView()->mProjViewMtx);
return &(g_dComIfG_gameInfo.drawlist.getView()->projViewMtx);
}
inline MtxP dComIfGd_getInvViewMtx() {
return g_dComIfG_gameInfo.drawlist.getView()->mInvViewMtx;
return g_dComIfG_gameInfo.drawlist.getView()->invViewMtx;
}
inline view_port_class* dComIfGd_getViewport() {
@@ -3909,10 +3909,10 @@ inline view_port_class* dComIfGd_getViewport() {
}
inline MtxP dComIfGd_getViewRotMtx() {
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->mViewMtxNoTrans;
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->viewMtxNoTrans;
}
inline MtxP dComIfGd_getViewMtx() {
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->mViewMtx;
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->viewMtx;
}
inline J3DDrawBuffer* dComIfGd_getListFilter() {
+1 -1
View File
@@ -249,7 +249,7 @@ public:
s8 getCameraID() { return mCameraID; }
void setMode(int mode) { mMode = mode; }
view_port_class* getViewPort() { return &mViewport; }
scissor_class* getScissor() { return &mViewport.mScissor; }
scissor_class* getScissor() { return &mViewport.scissor; }
private:
/* 0x00 */ view_port_class mViewport;
+4 -4
View File
@@ -11,16 +11,16 @@ struct actor_method_class {
};
struct actor_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ actor_method_class* sub_method;
/* 0x28 */ u32 status;
/* 0x2C */ u8 mActorType;
/* 0x2C */ u8 group;
/* 0x2D */ u8 cullType;
};
// Unclear what this is. Only appears in 4 profiles (BG,DSHUTTER,PATH,SCENE_EXIT)
struct actor_process_profile_definition2 {
/* 0x00 */ actor_process_profile_definition def;
/* 0x00 */ actor_process_profile_definition base;
/* 0x30 */ u32 field_0x30;
};
@@ -304,7 +304,7 @@ public:
/* 0x5A8 */ u8 mMidnaBindMode;
}; // Size: 0x5AC
s32 fopAc_IsActor(void* actor);
BOOL fopAc_IsActor(void* i_actor);
extern actor_method_class g_fopAc_Method;
+264 -247
View File
@@ -1,27 +1,27 @@
#ifndef F_OP_ACTOR_MNG_H_
#define F_OP_ACTOR_MNG_H_
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_iter.h"
#include "f_pc/f_pc_manager.h"
#include "f_op/f_op_draw_tag.h"
#include "d/d_bg_s.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_bg_s_lin_chk.h"
#include "d/d_bg_s_wtr_chk.h"
#include "d/d_bg_s_roof_chk.h"
#include "d/d_bg_s_wtr_chk.h"
#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_iter.h"
#include "f_op/f_op_draw_tag.h"
#include "f_pc/f_pc_manager.h"
#include "m_Do/m_Do_hostIO.h"
#define fopAcM_SetupActor(ptr,ClassName) \
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
new (ptr) ClassName(); \
fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
#define fopAcM_SetupActor(ptr, ClassName) \
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
new (ptr) ClassName(); \
fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
}
#define fopAcM_SetupActor2(ptr,ClassName, ...) \
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
new (ptr) ClassName(__VA_ARGS__); \
fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
#define fopAcM_SetupActor2(ptr, ClassName, ...) \
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
new (ptr) ClassName(__VA_ARGS__); \
fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
}
class J3DModelData; // placeholder
@@ -36,47 +36,46 @@ struct fopAcM_prmBase_class {
}; // Size = 0x18
struct fopAcM_prm_class {
/* 0x00 */ u32 mParameter; // single U32 Parameter
/* 0x04 */ cXyz mPos;
/* 0x10 */ csXyz mAngle; // rotation
/* 0x16 */ u16 mEnemyNo;
/* 0x18 */ u8 mScale[3];
/* 0x1B */ u8 mGbaName; // from WW, maybe a different parameter here
/* 0x1C */ fpc_ProcID mParentPId; // parent process ID
/* 0x20 */ s8 mSubtype;
/* 0x21 */ s8 mRoomNo;
/* 0x00 */ u32 parameters;
/* 0x04 */ cXyz position;
/* 0x10 */ csXyz angle;
/* 0x16 */ u16 setId;
/* 0x18 */ u8 scale[3];
/* 0x1C */ fpc_ProcID parent_id;
/* 0x20 */ s8 subtype;
/* 0x21 */ s8 room_no;
};
struct fopAcM_search4ev_prm {
fopAcM_search4ev_prm() { clear(); }
void clear() {
mName[0] = 0;
mEventID = -1;
mProcName = 11;
mSubType = 0;
name[0] = 0;
event_id = -1;
procname = PROC_PLAY_SCENE;
subtype = 0;
}
/* 0x00 */ char mName[30];
/* 0x1E */ s16 mEventID;
/* 0x20 */ s16 mProcName;
/* 0x22 */ s8 mSubType;
/* 0x00 */ char name[30];
/* 0x1E */ s16 event_id;
/* 0x20 */ s16 procname;
/* 0x22 */ s8 subtype;
};
struct fopAcM_search_prm {
/* 0x00 */ u32 mParam0;
/* 0x04 */ u32 mParam1;
/* 0x08 */ s16 mProcName;
/* 0x0A */ s8 mSubType;
/* 0x00 */ u32 prm0;
/* 0x04 */ u32 prm1;
/* 0x08 */ s16 procname;
/* 0x0A */ s8 subtype;
};
// define to avoid vtable mess in WIP TUs
#ifndef HIO_entry_c_NO_VIRTUAL
struct fOpAcm_HIO_entry_c : public mDoHIO_entry_c {
virtual ~fOpAcm_HIO_entry_c() {}
virtual ~fOpAcm_HIO_entry_c() {}
};
#else
struct fOpAcm_HIO_entry_c {
~fOpAcm_HIO_entry_c();
~fOpAcm_HIO_entry_c();
};
#endif
@@ -89,9 +88,7 @@ dBgS& dComIfG_Bgsp();
class fopAcM_lc_c {
public:
fopAcM_lc_c() {
mLineCheck.ClrSttsRoofOff();
}
fopAcM_lc_c() { mLineCheck.ClrSttsRoofOff(); }
static dBgS_ObjLinChk* getLineCheck() { return &mLineCheck; }
static bool checkMoveBG() { return dComIfG_Bgsp().ChkMoveBG(mLineCheck); }
@@ -125,7 +122,9 @@ public:
static dBgS_ObjGndChk mGndCheck;
static f32 mGroundY;
static bool getTriPla(cM3dGPla* i_plane) { return dComIfG_Bgsp().GetTriPla(mGndCheck, i_plane); }
static bool getTriPla(cM3dGPla* i_plane) {
return dComIfG_Bgsp().GetTriPla(mGndCheck, i_plane);
}
static int getRoomId() { return dComIfG_Bgsp().GetRoomId(mGndCheck); }
static int getPolyColor() { return dComIfG_Bgsp().GetPolyColor(mGndCheck); }
static int getPolyAtt0() { return dComIfG_Bgsp().GetPolyAtt0(mGndCheck); }
@@ -168,37 +167,37 @@ enum fopAcM_STATUS {
/* 0x000800 */ fopAcM_STATUS_UNK_000800 = 1 << 11,
/* 0x001000 */ fopAcM_STATUS_UNK_001000 = 1 << 12,
/* 0x002000 */ fopAcM_STATUS_CARRY_NOW = 1 << 13,
/* 0x004000 */ fopAcM_STATUS_UNK_004000 = 1 << 14,
/* 0x008000 */ fopAcM_STATUS_UNK_008000 = 1 << 15,
/* 0x010000 */ fopAcM_STATUS_UNK_010000 = 1 << 16,
/* 0x020000 */ fopAcM_STATUS_UNK_200000 = 1 << 17,
/* 0x040000 */ fopAcM_STATUS_UNK_400000 = 1 << 18,
/* 0x080000 */ fopAcM_STATUS_UNK_800000 = 1 << 19,
/* 0x004000 */ fopAcM_STATUS_UNK_004000 = 1 << 14,
/* 0x008000 */ fopAcM_STATUS_UNK_008000 = 1 << 15,
/* 0x010000 */ fopAcM_STATUS_UNK_010000 = 1 << 16,
/* 0x020000 */ fopAcM_STATUS_UNK_200000 = 1 << 17,
/* 0x040000 */ fopAcM_STATUS_UNK_400000 = 1 << 18,
/* 0x080000 */ fopAcM_STATUS_UNK_800000 = 1 << 19,
/* 0x100000 */ fopAcM_STATUS_HOOK_CARRY_NOW = 1 << 20,
};
inline s8 fopAcM_GetRoomNo(const fopAc_ac_c* pActor) {
return pActor->current.roomNo;
inline s8 fopAcM_GetRoomNo(const fopAc_ac_c* i_actor) {
return i_actor->current.roomNo;
}
inline fpc_ProcID fopAcM_GetID(const void* pActor) {
return fpcM_GetID(pActor);
inline fpc_ProcID fopAcM_GetID(const void* i_actor) {
return fpcM_GetID(i_actor);
}
inline s16 fopAcM_GetName(void* pActor) {
return fpcM_GetName(pActor);
inline s16 fopAcM_GetName(void* i_actor) {
return fpcM_GetName(i_actor);
}
inline MtxP fopAcM_GetMtx(const fopAc_ac_c* pActor) {
return pActor->cullMtx;
inline MtxP fopAcM_GetMtx(const fopAc_ac_c* i_actor) {
return i_actor->cullMtx;
}
inline u32 fopAcM_checkStatus(fopAc_ac_c* pActor, u32 actor_status) {
return pActor->actor_status & actor_status;
inline u32 fopAcM_checkStatus(fopAc_ac_c* i_actor, u32 actor_status) {
return i_actor->actor_status & actor_status;
}
inline u32 fopAcM_checkCarryNow(fopAc_ac_c* pActor) {
return pActor->actor_status & fopAcM_STATUS_CARRY_NOW;
inline u32 fopAcM_checkCarryNow(fopAc_ac_c* i_actor) {
return i_actor->actor_status & fopAcM_STATUS_CARRY_NOW;
}
enum fopAcM_CARRY {
@@ -206,7 +205,7 @@ enum fopAcM_CARRY {
/* 0x02 */ fopAcM_CARRY_HEAVY = 2,
/* 0x04 */ fopAcM_CARRY_SIDE = 4,
/* 0x08 */ fopAcM_CARRY_TYPE_8 = 8,
/* 0x10 */ fopAcM_CARRY_LIGHT = 16, // guess based on context
/* 0x10 */ fopAcM_CARRY_LIGHT = 16, // guess based on context
/* 0x20 */ fopAcM_CARRY_ITEM = 32,
/* 0x30 */ fopAcM_CARRY_UNK_30 = 0x30,
/* 0x40 */ fopAcM_CARRY_UNK_40 = 0x40,
@@ -217,88 +216,88 @@ inline u32 fopAcM_CheckCarryType(fopAc_ac_c* actor, fopAcM_CARRY type) {
return actor->carryType & type;
}
inline u32 fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) {
return fopAcM_checkStatus(pActor, fopAcM_STATUS_HOOK_CARRY_NOW);
inline u32 fopAcM_checkHookCarryNow(fopAc_ac_c* i_actor) {
return fopAcM_checkStatus(i_actor, fopAcM_STATUS_HOOK_CARRY_NOW);
}
inline u32 fopAcM_GetParam(const void* pActor) {
return fpcM_GetParam(pActor);
inline u32 fopAcM_GetParam(const void* i_actor) {
return fpcM_GetParam(i_actor);
}
inline u32 fopAcM_GetParamBit(void* ac, u8 shift, u8 bit) {
return (fopAcM_GetParam(ac) >> shift) & ((1 << bit) - 1);
}
inline void fopAcM_SetParam(void* p_actor, u32 param) {
fpcM_SetParam(p_actor, param);
inline void fopAcM_SetParam(void* i_actor, u32 param) {
fpcM_SetParam(i_actor, param);
}
inline void fopAcM_SetJntCol(fopAc_ac_c* i_actorP, dJntCol_c* i_jntColP) {
i_actorP->jntCol = i_jntColP;
}
inline s16 fopAcM_GetProfName(const void* pActor) {
return fpcM_GetProfName(pActor);
inline s16 fopAcM_GetProfName(const void* i_actor) {
return fpcM_GetProfName(i_actor);
}
inline u8 fopAcM_GetGroup(const fopAc_ac_c* p_actor) {
return p_actor->group;
inline u8 fopAcM_GetGroup(const fopAc_ac_c* i_actor) {
return i_actor->group;
}
inline void fopAcM_OnStatus(fopAc_ac_c* pActor, u32 flag) {
pActor->actor_status |= flag;
inline void fopAcM_OnStatus(fopAc_ac_c* i_actor, u32 flag) {
i_actor->actor_status |= flag;
}
inline void fopAcM_OffStatus(fopAc_ac_c* pActor, u32 flag) {
pActor->actor_status &= ~flag;
inline void fopAcM_OffStatus(fopAc_ac_c* i_actor, u32 flag) {
i_actor->actor_status &= ~flag;
}
inline fopAc_ac_c* fopAcM_Search(fopAcIt_JudgeFunc func, void* param) {
return (fopAc_ac_c*)fopAcIt_Judge(func, param);
inline fopAc_ac_c* fopAcM_Search(fopAcIt_JudgeFunc i_judgeFunc, void* i_process) {
return (fopAc_ac_c*)fopAcIt_Judge(i_judgeFunc, i_process);
}
inline fopAc_ac_c* fopAcM_SearchByID(fpc_ProcID id) {
return (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)fpcSch_JudgeByID, &id);
}
inline fpc_ProcID fopAcM_GetLinkId(const fopAc_ac_c* pActor) {
return pActor->parentActorID;
inline fpc_ProcID fopAcM_GetLinkId(const fopAc_ac_c* i_actor) {
return i_actor->parentActorID;
}
inline cXyz* fopAcM_GetPosition_p(fopAc_ac_c* pActor) {
return &pActor->current.pos;
inline cXyz* fopAcM_GetPosition_p(fopAc_ac_c* i_actor) {
return &i_actor->current.pos;
}
inline cXyz& fopAcM_GetPosition(fopAc_ac_c* pActor) {
return pActor->current.pos;
inline cXyz& fopAcM_GetPosition(fopAc_ac_c* i_actor) {
return i_actor->current.pos;
}
inline cXyz* fopAcM_GetOldPosition_p(fopAc_ac_c* pActor) {
return &pActor->old.pos;
inline cXyz* fopAcM_GetOldPosition_p(fopAc_ac_c* i_actor) {
return &i_actor->old.pos;
}
inline cXyz* fopAcM_GetSpeed_p(fopAc_ac_c* pActor) {
return &pActor->speed;
inline cXyz* fopAcM_GetSpeed_p(fopAc_ac_c* i_actor) {
return &i_actor->speed;
}
inline csXyz* fopAcM_GetAngle_p(fopAc_ac_c* pActor) {
return &pActor->current.angle;
inline csXyz* fopAcM_GetAngle_p(fopAc_ac_c* i_actor) {
return &i_actor->current.angle;
}
inline csXyz* fopAcM_GetShapeAngle_p(fopAc_ac_c* pActor) {
return &pActor->shape_angle;
inline csXyz* fopAcM_GetShapeAngle_p(fopAc_ac_c* i_actor) {
return &i_actor->shape_angle;
}
inline u32 fopAcM_CheckCondition(fopAc_ac_c* p_actor, u32 flag) {
return p_actor->actor_condition & flag;
inline u32 fopAcM_CheckCondition(fopAc_ac_c* i_actor, u32 flag) {
return i_actor->actor_condition & flag;
}
inline void fopAcM_OnCondition(fopAc_ac_c* p_actor, u32 flag) {
p_actor->actor_condition |= flag;
inline void fopAcM_OnCondition(fopAc_ac_c* i_actor, u32 flag) {
i_actor->actor_condition |= flag;
}
inline void fopAcM_OffCondition(fopAc_ac_c* p_actor, u32 flag) {
p_actor->actor_condition &= ~flag;
inline void fopAcM_OffCondition(fopAc_ac_c* i_actor, u32 flag) {
i_actor->actor_condition &= ~flag;
}
inline BOOL fopAcM_IsActor(void* actor) {
@@ -317,8 +316,8 @@ inline void fopAcM_cancelHookCarryNow(fopAc_ac_c* actor) {
fopAcM_OffStatus(actor, fopAcM_STATUS_HOOK_CARRY_NOW);
}
inline s8 fopAcM_GetHomeRoomNo(const fopAc_ac_c* pActor) {
return pActor->home.roomNo;
inline s8 fopAcM_GetHomeRoomNo(const fopAc_ac_c* i_actor) {
return i_actor->home.roomNo;
}
inline void fopAcM_SetGravity(fopAc_ac_c* actor, f32 gravity) {
@@ -361,28 +360,28 @@ inline BOOL fopAcM_IsExecuting(fpc_ProcID id) {
return fpcM_IsExecuting(id);
}
inline f32 fopAcM_GetSpeedF(const fopAc_ac_c* p_actor) {
return p_actor->speedF;
inline f32 fopAcM_GetSpeedF(const fopAc_ac_c* i_actor) {
return i_actor->speedF;
}
inline f32 fopAcM_GetGravity(const fopAc_ac_c* p_actor) {
return p_actor->gravity;
inline f32 fopAcM_GetGravity(const fopAc_ac_c* i_actor) {
return i_actor->gravity;
}
inline f32 fopAcM_GetMaxFallSpeed(const fopAc_ac_c* p_actor) {
return p_actor->maxFallSpeed;
inline f32 fopAcM_GetMaxFallSpeed(const fopAc_ac_c* i_actor) {
return i_actor->maxFallSpeed;
}
inline const cXyz* fopAcM_GetSpeed_p(const fopAc_ac_c* p_actor) {
return &p_actor->speed;
inline const cXyz* fopAcM_GetSpeed_p(const fopAc_ac_c* i_actor) {
return &i_actor->speed;
}
inline cXyz& fopAcM_GetSpeed(fopAc_ac_c* p_actor) {
return p_actor->speed;
inline cXyz& fopAcM_GetSpeed(fopAc_ac_c* i_actor) {
return i_actor->speed;
}
inline const cXyz* fopAcM_GetPosition_p(const fopAc_ac_c* p_actor) {
return &p_actor->current.pos;
inline const cXyz* fopAcM_GetPosition_p(const fopAc_ac_c* i_actor) {
return &i_actor->current.pos;
}
inline dJntCol_c* fopAcM_GetJntCol(fopAc_ac_c* i_actor) {
@@ -422,16 +421,16 @@ inline void dComIfGs_offSwitch(int i_no, int i_roomNo);
inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo);
inline void dComIfGs_offActor(int i_no, int i_roomNo);
inline void fopAcM_onSwitch(const fopAc_ac_c* pActor, int sw) {
return dComIfGs_onSwitch(sw, fopAcM_GetHomeRoomNo(pActor));
inline void fopAcM_onSwitch(const fopAc_ac_c* i_actor, int sw) {
return dComIfGs_onSwitch(sw, fopAcM_GetHomeRoomNo(i_actor));
}
inline void fopAcM_offSwitch(const fopAc_ac_c* pActor, int sw) {
return dComIfGs_offSwitch(sw, fopAcM_GetHomeRoomNo(pActor));
inline void fopAcM_offSwitch(const fopAc_ac_c* i_actor, int sw) {
return dComIfGs_offSwitch(sw, fopAcM_GetHomeRoomNo(i_actor));
}
inline BOOL fopAcM_isSwitch(const fopAc_ac_c* pActor, int sw) {
return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(pActor));
inline BOOL fopAcM_isSwitch(const fopAc_ac_c* i_actor, int sw) {
return dComIfGs_isSwitch(sw, fopAcM_GetHomeRoomNo(i_actor));
}
inline fopAc_ac_c* fopAcM_SearchByName(s16 proc_id) {
@@ -452,15 +451,15 @@ inline f32 fopAcM_searchActorDistanceY(const fopAc_ac_c* actorA, const fopAc_ac_
return actorB->current.pos.y - actorA->current.pos.y;
}
inline u16 fopAcM_GetSetId(const fopAc_ac_c* p_actor) {
return p_actor->setID;
inline u16 fopAcM_GetSetId(const fopAc_ac_c* i_actor) {
return i_actor->setID;
}
inline void dComIfGs_onActor(int bitNo, int roomNo);
inline void fopAcM_onActor(const fopAc_ac_c* p_actor) {
int setId = fopAcM_GetSetId(p_actor);
dComIfGs_onActor(setId, fopAcM_GetHomeRoomNo(p_actor));
inline void fopAcM_onActor(const fopAc_ac_c* i_actor) {
int setId = fopAcM_GetSetId(i_actor);
dComIfGs_onActor(setId, fopAcM_GetHomeRoomNo(i_actor));
}
inline void fopAcM_onDraw(fopAc_ac_c* i_actor) {
@@ -473,204 +472,219 @@ inline void fopAcM_offDraw(fopAc_ac_c* i_actor) {
void fopAcM_initManager();
void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData);
fopAc_ac_c* fopAcM_FastCreate(s16 i_procName, FastCreateReqFunc i_createFunc, void* i_createData,
void* i_append);
void fopAcM_setStageLayer(void* p_proc);
void fopAcM_setStageLayer(void* i_proc);
void fopAcM_setRoomLayer(void* p_proc, int roomNo);
void fopAcM_setRoomLayer(void* i_proc, int i_roomNo);
s32 fopAcM_SearchByID(fpc_ProcID id, fopAc_ac_c** p_actor);
s32 fopAcM_SearchByID(fpc_ProcID i_actorID, fopAc_ac_c** i_outActor);
s32 fopAcM_SearchByName(s16 procName, fopAc_ac_c** p_actor);
s32 fopAcM_SearchByName(s16 i_procName, fopAc_ac_c** i_outActor);
fopAcM_prm_class* fopAcM_CreateAppend();
fopAcM_prm_class* createAppend(u16 enemyNo, u32 parameters, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType,
fpc_ProcID parentPId);
fopAcM_prm_class* createAppend(u16 i_setId, u32 i_parameters, const cXyz* i_pos, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype,
fpc_ProcID i_parentId);
void fopAcM_Log(fopAc_ac_c const* p_actor, char const* str);
void fopAcM_Log(fopAc_ac_c const* i_actor, char const* i_message);
void fopAcM_delete(fopAc_ac_c* p_actor);
void fopAcM_delete(fopAc_ac_c* i_actor);
s32 fopAcM_delete(fpc_ProcID actorID);
s32 fopAcM_delete(fpc_ProcID i_actorID);
s32 fopAcM_create(s16 procName, u16 enemyNo, u32 parameter, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType, createFunc p_createFunc);
fpc_ProcID fopAcM_create(s16 i_procName, u16 i_setId, u32 i_parameters, const cXyz* i_pos,
int i_roomNo, const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype,
createFunc i_createFunc);
s32 fopAcM_create(s16 procName, u32 parameter, const cXyz* p_pos, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, s8 subType);
fpc_ProcID fopAcM_create(s16 i_procName, u32 i_parameters, const cXyz* i_pos, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype);
void* fopAcM_fastCreate(s16 procName, u32 parameter, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType,
createFunc p_createFunc, void* p_createFuncData);
fopAc_ac_c* fopAcM_fastCreate(s16 i_procName, u32 i_parameters, const cXyz* i_pos, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype,
createFunc i_createFunc, void* i_createFuncData);
void* fopAcM_fastCreate(const char* p_actorName, u32 parameter, const cXyz* pActorPos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, createFunc p_createFunc,
void* p_createFuncData);
fopAc_ac_c* fopAcM_fastCreate(const char* i_actorname, u32 i_parameters, const cXyz* i_pos,
int i_roomNo, const csXyz* i_angle, const cXyz* i_scale,
createFunc i_createFunc, void* i_createFuncData);
s32 fopAcM_createChild(s16 procName, fpc_ProcID parentPId, u32 parameters, const cXyz* p_pos,
int roomNo, const csXyz* p_angle, const cXyz* p_scale, s8 subType,
createFunc p_createFunc);
fpc_ProcID fopAcM_createChild(s16 i_procName, fpc_ProcID i_parentID, u32 i_parameters,
const cXyz* i_pos, int i_roomNo, const csXyz* i_angle,
const cXyz* i_scale, s8 i_subtype, createFunc i_createFunc);
s32 fopAcM_createChildFromOffset(s16 procName, fpc_ProcID parentProcID, u32 actorParams,
const cXyz* p_pos, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, s8 subType, createFunc p_createFunc);
fpc_ProcID fopAcM_createChildFromOffset(s16 i_procName, fpc_ProcID i_parentID, u32 i_parameters,
const cXyz* i_pos, int i_roomNo, const csXyz* i_angle,
const cXyz* i_scale, s8 i_subtype, createFunc i_createFunc);
void fopAcM_DeleteHeap(fopAc_ac_c* p_actor);
void fopAcM_DeleteHeap(fopAc_ac_c* i_actor);
s32 fopAcM_callCallback(fopAc_ac_c* p_actor, heapCallbackFunc p_callbackFunc, JKRHeap* p_heap);
s32 fopAcM_callCallback(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback, JKRHeap* i_heap);
bool fopAcM_entrySolidHeap_(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size);
bool fopAcM_entrySolidHeap_(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback, u32 i_size);
bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size);
bool fopAcM_entrySolidHeap(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback, u32 i_size);
void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ);
void fopAcM_SetMin(fopAc_ac_c* i_actor, f32 minX, f32 minY, f32 minZ);
void fopAcM_SetMax(fopAc_ac_c* p_actor, f32 maxX, f32 maxY, f32 maxZ);
void fopAcM_SetMax(fopAc_ac_c* i_actor, f32 maxX, f32 maxY, f32 maxZ);
void fopAcM_setCullSizeBox(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY,
void fopAcM_setCullSizeBox(fopAc_ac_c* i_actor, f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY,
f32 maxZ);
void fopAcM_setCullSizeSphere(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 radius);
void fopAcM_setCullSizeSphere(fopAc_ac_c* i_actor, f32 minX, f32 minY, f32 minZ, f32 radius);
void fopAcM_setCullSizeBox2(fopAc_ac_c* p_actor, J3DModelData* p_modelData);
void fopAcM_setCullSizeBox2(fopAc_ac_c* i_actor, J3DModelData* i_modelData);
bool fopAcM_addAngleY(fopAc_ac_c* p_actor, s16 target, s16 step);
bool fopAcM_addAngleY(fopAc_ac_c* i_actor, s16 i_target, s16 i_step);
void fopAcM_calcSpeed(fopAc_ac_c* p_actor);
void fopAcM_calcSpeed(fopAc_ac_c* i_actor);
void fopAcM_posMove(fopAc_ac_c* p_actor, const cXyz* p_movePos);
void fopAcM_posMove(fopAc_ac_c* i_actor, const cXyz* i_movePos);
void fopAcM_posMoveF(fopAc_ac_c* p_actor, const cXyz* p_movePos);
void fopAcM_posMoveF(fopAc_ac_c* i_actor, const cXyz* i_movePos);
s16 fopAcM_searchActorAngleY(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
s16 fopAcM_searchActorAngleY(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
s16 fopAcM_searchActorAngleX(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
s16 fopAcM_searchActorAngleX(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
s32 fopAcM_seenActorAngleY(const fopAc_ac_c*, const fopAc_ac_c*);
s32 fopAcM_seenActorAngleY(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
f32 fopAcM_searchActorDistance(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistance(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
f32 fopAcM_searchActorDistance2(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistance2(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
f32 fopAcM_searchActorDistanceXZ(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistanceXZ(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
f32 fopAcM_searchActorDistanceXZ2(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistanceXZ2(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_actorB);
s32 fopAcM_rollPlayerCrash(const fopAc_ac_c*, f32, u32, f32, f32, int, f32);
BOOL fopAcM_rollPlayerCrash(fopAc_ac_c const* i_crashActor, f32 i_range, u32 i_flag, f32 i_max_y,
f32 i_min_y, BOOL param_5, f32 param_6);
s32 fopAcM_checkCullingBox(f32[3][4], f32, f32, f32, f32, f32, f32);
s32 fopAcM_cullingCheck(const fopAc_ac_c*);
void* event_second_actor(u16);
s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderTalkItemBtnEvent(u16, fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_cullingCheck(const fopAc_ac_c* i_actor);
s32 fopAcM_orderTalkEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, u16 i_priority, u16 i_flag);
s32 fopAcM_orderTalkItemBtnEvent(u16 i_eventType, fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB,
u16 i_priority, u16 i_flag);
s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor, u16 i_priority, u16 i_flag);
s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderCatchEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderOtherEvent(fopAc_ac_c*, const char*, u16, u16, u16);
s32 fopAcM_orderOtherEvent(fopAc_ac_c*, fopAc_ac_c*, const char*, u16, u16, u16);
s32 fopAcM_orderChangeEventId(fopAc_ac_c*, s16, u16, u16);
s32 fopAcM_orderOtherEventId(fopAc_ac_c* actor, s16 eventID, u8 mapToolID, u16 param_3,
u16 priority, u16 flag);
s32 fopAcM_orderMapToolEvent(fopAc_ac_c*, u8, s16, u16, u16, u16);
s32 fopAcM_orderMapToolAutoNextEvent(fopAc_ac_c*, u8, s16, u16, u16, u16);
s32 fopAcM_orderPotentialEvent(fopAc_ac_c*, u16, u16, u16);
s32 fopAcM_orderItemEvent(fopAc_ac_c*, u16, u16);
s32 fopAcM_orderTreasureEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderDoorEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, u16 i_priority, u16 i_flag);
s32 fopAcM_orderCatchEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, u16 i_priority, u16 i_flag);
s32 fopAcM_orderOtherEvent(fopAc_ac_c* i_actor, char const* i_eventName, u16 param_2, u16 i_flag,
u16 i_priority);
s32 fopAcM_orderOtherEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, char const* i_eventName,
u16 param_3, u16 i_flag, u16 i_priority);
s32 fopAcM_orderChangeEventId(fopAc_ac_c* i_actor, s16 i_eventID, u16 i_flag, u16 param_3);
s32 fopAcM_orderOtherEventId(fopAc_ac_c* i_actor, s16 i_eventID, u8 i_mapToolID, u16 param_3,
u16 i_priority, u16 i_flag);
s32 fopAcM_orderMapToolEvent(fopAc_ac_c* i_actor, u8 param_1, s16 i_eventID, u16 param_3,
u16 i_flag, u16 param_5);
s32 fopAcM_orderMapToolAutoNextEvent(fopAc_ac_c* i_actor, u8 param_1, s16 i_eventID, u16 param_3,
u16 i_flag, u16 param_5);
s32 fopAcM_orderPotentialEvent(fopAc_ac_c* i_actor, u16 i_flag, u16 param_2, u16 i_priority);
s32 fopAcM_orderItemEvent(fopAc_ac_c* i_actor, u16 i_priority, u16 i_flag);
s32 fopAcM_orderTreasureEvent(fopAc_ac_c* i_actorA, fopAc_ac_c* i_actorB, u16 i_priority,
u16 i_flag);
fopAc_ac_c* fopAcM_getTalkEventPartner(const fopAc_ac_c*);
fopAc_ac_c* fopAcM_getItemEventPartner(const fopAc_ac_c*);
fopAc_ac_c* fopAcM_getEventPartner(const fopAc_ac_c*);
s32 fopAcM_createItemForPresentDemo(cXyz const* p_pos, int i_itemNo, u8 param_2, int i_itemBitNo,
int i_roomNo, csXyz const* p_angle, cXyz const* p_scale);
fpc_ProcID fopAcM_createItemForPresentDemo(cXyz const* i_pos, int i_itemNo, u8 param_2,
int i_itemBitNo, int i_roomNo, csXyz const* i_angle,
cXyz const* i_scale);
s32 fopAcM_createItemForTrBoxDemo(cXyz const* p_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, cXyz const* p_scale);
fpc_ProcID fopAcM_createItemForTrBoxDemo(cXyz const* i_pos, int i_itemNo, int i_itemBitNo,
int i_roomNo, csXyz const* i_angle, cXyz const* i_scale);
u8 fopAcM_getItemNoFromTableNo(u8 i_tableNo);
s32 fopAcM_createItemFromEnemyID(u8 i_enemyID, cXyz const* p_pos, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, cXyz const* p_scale, f32* speedF,
f32* speedY);
fpc_ProcID fopAcM_createItemFromEnemyID(u8 i_enemyID, cXyz const* i_pos, int i_itemBitNo,
int i_roomNo, csXyz const* i_angle, cXyz const* i_scale,
f32* i_speedF, f32* i_speedY);
s32 fopAcM_createItemFromTable(cXyz const* p_pos, int i_tableNo, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, int param_5, cXyz const* p_scale, f32* speedF,
f32* speedY, bool createDirect);
fpc_ProcID fopAcM_createItemFromTable(cXyz const* i_pos, int i_tableNo, int i_itemBitNo,
int i_roomNo, csXyz const* i_angle, int param_5,
cXyz const* i_scale, f32* i_speedF, f32* i_speedY,
bool i_createDirect);
s32 fopAcM_createDemoItem(const cXyz* p_pos, int itemNo, int itemBitNo, const csXyz* p_angle,
int roomNo, const cXyz* scale, u8 param_7);
fpc_ProcID fopAcM_createDemoItem(const cXyz* i_pos, int i_itemNo, int i_itemBitNo,
const csXyz* i_angle, int i_roomNo, const cXyz* scale,
u8 param_7);
s32 fopAcM_createItemForBoss(const cXyz* p_pos, int i_itemNo, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32 speedF, f32 speedY, int param_8);
fpc_ProcID fopAcM_createItemForBoss(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, f32 i_speedF,
f32 i_speedY, int param_8);
s32 fopAcM_createItemForMidBoss(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, int param_6, int param_7);
fpc_ProcID fopAcM_createItemForMidBoss(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, int param_6,
int param_7);
void* fopAcM_createItemForDirectGet(const cXyz* p_pos, int i_itemNo, int i_roomNo,
const csXyz* p_angle, const cXyz* p_scale, f32 speedF,
f32 speedY);
fopAc_ac_c* fopAcM_createItemForDirectGet(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, f32 i_speedF,
f32 i_speedY);
void* fopAcM_createItemForSimpleDemo(const cXyz* p_pos, int i_itemNo, int i_roomNo,
const csXyz* p_angle, const cXyz* p_scale, f32 speedF,
f32 speedY);
fopAc_ac_c* fopAcM_createItemForSimpleDemo(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, f32 i_speedF,
f32 i_speedY);
s32 fopAcM_createItem(const cXyz* p_pos, int itemNo, int param_3, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, int param_7);
fpc_ProcID fopAcM_createItem(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, int param_7);
void* fopAcM_fastCreateItem2(const cXyz* p_pos, int itemNo, int param_3, int roomNo, int param_5,
const csXyz* p_angle, const cXyz* p_scale);
fopAc_ac_c* fopAcM_fastCreateItem2(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
int param_5, const csXyz* i_angle, const cXyz* i_scale);
void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32* p_speedF, f32* p_speedY, int param_8,
int param_9, createFunc p_createFunc);
fopAc_ac_c* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, f32* i_speedF,
f32* i_speedY, int i_itemBitNo, int param_9,
createFunc i_createFunc);
s32 fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int);
s32 fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8);
fpc_ProcID fopAcM_createBokkuri(u16 i_setId, const cXyz* i_pos, int param_3, int param_4,
int i_roomNo, const cXyz* param_6, int param_7, int param_8);
fpc_ProcID fopAcM_createWarpHole(const cXyz* i_pos, const csXyz* i_angle, int i_roomNo, u8 param_4,
u8 param_5, u8 param_6);
fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo);
s32 fopAcM_createDisappear(const fopAc_ac_c* i_actor, const cXyz* i_pos, u8 i_size, u8 i_type, u8 i_enemyID);
void fopAcM_setCarryNow(fopAc_ac_c*, int);
void fopAcM_cancelCarryNow(fopAc_ac_c*);
s32 fopAcM_otoCheck(const fopAc_ac_c*, f32);
s32 fopAcM_otherBgCheck(const fopAc_ac_c*, const fopAc_ac_c*);
s32 fopAcM_wayBgCheck(const fopAc_ac_c*, f32, f32);
s32 fopAcM_plAngleCheck(const fopAc_ac_c*, s16);
fpc_ProcID fopAcM_createDisappear(const fopAc_ac_c* i_actor, const cXyz* i_pos, u8 i_size,
u8 i_type, u8 i_enemyID);
void fopAcM_setCarryNow(fopAc_ac_c* i_actor, int);
void fopAcM_cancelCarryNow(fopAc_ac_c* i_actor);
BOOL fopAcM_otoCheck(const fopAc_ac_c* i_actor, f32);
BOOL fopAcM_otherBgCheck(const fopAc_ac_c*, const fopAc_ac_c*);
BOOL fopAcM_wayBgCheck(const fopAc_ac_c*, f32, f32);
BOOL fopAcM_plAngleCheck(const fopAc_ac_c* i_actor, s16 i_angle);
void fopAcM_effSmokeSet1(u32*, u32*, const cXyz*, const csXyz*, f32, const dKy_tevstr_c*, int);
void fopAcM_effHamonSet(u32*, const cXyz*, f32, f32);
s32 fopAcM_riverStream(cXyz*, s16*, f32*, f32);
s32 fopAcM_carryOffRevise(fopAc_ac_c*);
// void vectle_calc(const DOUBLE_POS*, cXyz*);
// void get_vectle_calc(const cXyz*, const cXyz*, cXyz*);
void fopAcM_setEffectMtx(const fopAc_ac_c*, const J3DModelData*);
static const char* fopAcM_getProcNameString(const fopAc_ac_c* p_actor);
static const char* fopAcM_getProcNameString(const fopAc_ac_c* i_actor);
static const fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c const* p_actor, void* p_data);
static const fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c const* i_actor, void* i_data);
fopAc_ac_c* fopAcM_searchFromName(char const* name, u32 param0, u32 param1);
fopAc_ac_c* fopAcM_findObject4EventCB(fopAc_ac_c* p_actor, void* p_data);
fopAc_ac_c* fopAcM_findObject4EventCB(fopAc_ac_c* i_actor, void* i_data);
fopAc_ac_c* fopAcM_searchFromName4Event(char const* name, s16 eventID);
fopAc_ac_c* fopAcM_searchFromName4Event(char const* i_name, s16 i_eventID);
s32 fopAcM_getWaterY(const cXyz*, f32*);
void fpoAcM_relativePos(fopAc_ac_c const* actor, cXyz const* p_inPos, cXyz* p_outPos);
s32 fopAcM_getWaterY(const cXyz*, f32* o_waterY);
void fpoAcM_relativePos(fopAc_ac_c const* i_actor, cXyz const* i_pos, cXyz* o_pos);
s32 fopAcM_getWaterStream(const cXyz*, const cBgS_PolyInfo&, cXyz*, int*, int);
s16 fopAcM_getPolygonAngle(const cBgS_PolyInfo&, s16);
s16 fopAcM_getPolygonAngle(cM3dGPla const* param_0, s16 param_1);
inline void make_prm_warp_hole(u32* actorParams, u8 p1, u8 p2, u8 p3) {
u32 pp1 = (p3 << 0x8);
u32 pp2 = (p2 << 0x10);
u32 pp3 = (p1 << 0x1B) | 0x170000FF;
*actorParams = pp2 | pp3 | pp1;
inline void make_prm_warp_hole(u32* o_params, u8 prm1, u8 prm2, u8 prm3) {
u32 pprm1 = (prm3 << 0x8);
u32 pprm2 = (prm2 << 0x10);
u32 pprm3 = (prm1 << 0x1B) | 0x170000FF;
*o_params = pprm2 | pprm3 | pprm1;
}
inline void make_prm_bokkuri(u32* pActorParams, csXyz* p_angle, u8 param_2, u8 param_3, u8 param_4,
inline void make_prm_bokkuri(u32* i_params, csXyz* i_angle, u8 param_2, u8 param_3, u8 param_4,
u8 param_5, u8 param_6) {
p_angle->x = (param_4 << 0x8) | (param_3 & 0xFF);
p_angle->z = (param_6 << 0xD) | (param_2 << 0x1) | param_5;
i_angle->x = (param_4 << 0x8) | (param_3 & 0xFF);
i_angle->z = (param_6 << 0xD) | (param_2 << 0x1) | param_5;
}
inline fopAc_ac_c* dComIfGp_getPlayer(int);
@@ -706,7 +720,8 @@ inline s32 fopAcM_seenPlayerAngleY(const fopAc_ac_c* i_actor) {
s8 dComIfGp_getReverb(int roomNo);
inline void fopAcM_seStartCurrent(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
mDoAud_seStart(sfxID, &actor->current.pos, param_2, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
mDoAud_seStart(sfxID, &actor->current.pos, param_2,
dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
}
inline void fopAcM_seStart(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
@@ -714,19 +729,21 @@ inline void fopAcM_seStart(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
}
inline void fopAcM_seStartLevel(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
mDoAud_seStartLevel(sfxID, &actor->eyePos, param_2, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
mDoAud_seStartLevel(sfxID, &actor->eyePos, param_2,
dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
}
inline void fopAcM_seStartCurrentLevel(const fopAc_ac_c* actor, u32 sfxID, u32 param_2) {
mDoAud_seStartLevel(sfxID, &actor->current.pos, param_2, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
mDoAud_seStartLevel(sfxID, &actor->current.pos, param_2,
dComIfGp_getReverb(fopAcM_GetRoomNo(actor)));
}
inline void fopAcM_offActor(fopAc_ac_c* pActor, u32 flag) {
dComIfGs_offActor(flag,fopAcM_GetHomeRoomNo(pActor));
inline void fopAcM_offActor(fopAc_ac_c* i_actor, u32 flag) {
dComIfGs_offActor(flag, fopAcM_GetHomeRoomNo(i_actor));
}
inline void fopAcM_OnCarryType(fopAc_ac_c* pActor, fopAcM_CARRY param_2) {
pActor->carryType |= param_2;
inline void fopAcM_OnCarryType(fopAc_ac_c* i_actor, fopAcM_CARRY param_2) {
i_actor->carryType |= param_2;
}
enum fopAcM_FOOD {
@@ -746,8 +763,8 @@ inline bool fopAcM_CheckFoodStatus(const fopAc_ac_c* actor, fopAcM_FOOD status)
return actor->field_0x567 == status;
}
inline void fopAcM_effSmokeSet2(u32* param_0, u32* param_1, cXyz const* param_2, csXyz const* param_3,
f32 param_4, dKy_tevstr_c const* param_5) {
inline void fopAcM_effSmokeSet2(u32* param_0, u32* param_1, cXyz const* param_2,
csXyz const* param_3, f32 param_4, dKy_tevstr_c const* param_5) {
fopAcM_effSmokeSet1(param_0, param_1, param_2, param_3, param_4, param_5, 0);
}
+4 -5
View File
@@ -3,11 +3,10 @@
#include "SSystem/SComponent/c_tag.h"
u32 fopAcTg_ActorQTo(create_tag_class* pTag);
u32 fopAcTg_Init(create_tag_class* pTag, void* data);
u32 fopAcTg_ToActorQ(create_tag_class* c);
int fopAcTg_ActorQTo(create_tag_class* i_createTag);
int fopAcTg_Init(create_tag_class* i_createTag, void* i_data);
int fopAcTg_ToActorQ(create_tag_class* i_createTag);
// f_op_actor_tag::g_fopAcTg_Queue
extern node_list_class g_fopAcTg_Queue;
#endif
#endif
+4 -4
View File
@@ -6,13 +6,13 @@
class camera_class;
struct camera_process_profile_definition {
/* 0x00 */ view_process_profile_definition mBase;
/* 0x00 */ view_process_profile_definition base;
/* 0x3C */ leafdraw_method_class* sub_method; // Subclass methods
};
static s32 fopCam_Draw(camera_class* param_1);
static int fopCam_Execute(camera_class* pCamera);
int fopCam_IsDelete(camera_class* pCamera);
static s32 fopCam_Draw(camera_class* i_this);
static int fopCam_Execute(camera_class* i_this);
int fopCam_IsDelete(camera_class* i_this);
extern leafdraw_method_class g_fopCam_Method;
+27 -27
View File
@@ -9,91 +9,91 @@ typedef struct leafdraw_method_class leafdraw_method_class;
class camera_process_class : public view_class {
public:
/* 0x210 */ create_tag_class mCreateTag;
/* 0x224 */ leafdraw_method_class* mpMtd;
/* 0x210 */ create_tag_class create_tag;
/* 0x224 */ leafdraw_method_class* submethod;
/* 0x228 */ u8 field_0x228[4];
/* 0x22C */ s8 mPrm1;
/* 0x22D */ s8 mPrm2;
/* 0x22E */ s8 mPrm3;
/* 0x22C */ s8 prm1;
/* 0x22D */ s8 prm2;
/* 0x22E */ s8 prm3;
/* 0x22F */ s8 field_0x22f;
/* 0x230 */ csXyz mAngle;
/* 0x230 */ csXyz angle;
/* 0x238 */ int field_0x238;
};
class camera_class : public camera_process_class {
public:
/* 0x23C */ int field_0x23c;
/* 0x240 */ request_of_phase_process_class mPhaseReq;
/* 0x240 */ request_of_phase_process_class phase_request;
/* 0x248 */ dCamera_c mCamera;
};
inline void fopCamM_SetNear(camera_class* i_this, f32 near) {
i_this->mNear = near;
i_this->near = near;
}
inline void fopCamM_SetFar(camera_class* i_this, f32 far) {
i_this->mFar = far;
i_this->far = far;
}
inline void fopCamM_SetFovy(camera_class* i_this, f32 fovy) {
i_this->mFovy = fovy;
i_this->fovy = fovy;
}
inline void fopCamM_SetAspect(camera_class* i_this, f32 aspect) {
i_this->mAspect = aspect;
i_this->aspect = aspect;
}
inline void fopCamM_SetEye(camera_class* i_this, f32 x, f32 y, f32 z) {
i_this->mLookat.mEye.set(x, y, z);
i_this->lookat.eye.set(x, y, z);
}
inline void fopCamM_SetCenter(camera_class* i_this, f32 x, f32 y, f32 z) {
i_this->mLookat.mCenter.set(x, y, z);
i_this->lookat.center.set(x, y, z);
}
inline void fopCamM_SetBank(camera_class* i_this, s16 bank) {
i_this->mBank = bank;
i_this->bank = bank;
}
inline void fopCamM_SetPrm1(camera_class* i_this, int prm1) {
i_this->mPrm1 = prm1;
i_this->prm1 = prm1;
}
inline void fopCamM_SetPrm2(camera_class* i_this, int prm2) {
i_this->mPrm2 = prm2;
i_this->prm2 = prm2;
}
inline void fopCamM_SetPrm3(camera_class* i_this, int prm3) {
i_this->mPrm3 = prm3;
i_this->prm3 = prm3;
}
inline s16 fopCamM_GetAngleX(camera_class* i_camera) {
return i_camera->mAngle.x;
return i_camera->angle.x;
}
inline s16 fopCamM_GetAngleY(camera_class* i_camera) {
return i_camera->mAngle.y;
return i_camera->angle.y;
}
inline s16 fopCamM_GetAngleZ(camera_class* i_camera) {
return i_camera->mAngle.z;
return i_camera->angle.z;
}
inline f32 fopCamM_GetFovy(camera_class* i_camera) {
return i_camera->mFovy;
return i_camera->fovy;
}
inline cXyz* fopCamM_GetEye_p(camera_class* i_camera) {
return &i_camera->mLookat.mEye;
return &i_camera->lookat.eye;
}
inline cXyz* fopCamM_GetCenter_p(camera_class* i_camera) {
return &i_camera->mLookat.mCenter;
return &i_camera->lookat.center;
}
u32 fopCamM_Create(int i_cameraIdx, s16 pProcName, void* param_3);
void fopCamM_Management(void);
u32 fopCamM_GetParam(camera_class* pCamera);
void fopCamM_Init(void);
fpc_ProcID fopCamM_Create(int i_cameraIdx, s16 i_procName, void* i_append);
void fopCamM_Management();
u32 fopCamM_GetParam(camera_class* i_this);
void fopCamM_Init();
#endif
+4 -4
View File
@@ -3,8 +3,8 @@
typedef struct create_tag_class create_tag_class;
static create_tag_class* fopDwIt_GetTag(void);
create_tag_class* fopDwIt_Begin(void);
create_tag_class* fopDwIt_Next(create_tag_class* pCreateTag);
create_tag_class* fopDwIt_GetTag();
create_tag_class* fopDwIt_Begin();
create_tag_class* fopDwIt_Next(create_tag_class* i_createTag);
#endif
#endif
+4 -4
View File
@@ -7,9 +7,9 @@ typedef struct create_tag_class create_tag_class;
extern node_lists_tree_class g_fopDwTg_Queue;
void fopDwTg_DrawQTo(create_tag_class* pTag);
void fopDwTg_DrawQTo(create_tag_class* i_createTag);
void fopDwTg_CreateQueue();
bool fopDwTg_Init(create_tag_class* pCreateTagClass, void* pActor);
void fopDwTg_ToDrawQ(create_tag_class* pCreateTagClass, int priority);
bool fopDwTg_Init(create_tag_class* i_createTag, void* i_process);
void fopDwTg_ToDrawQ(create_tag_class* i_createTag, int priority);
#endif
#endif
+4 -4
View File
@@ -6,12 +6,12 @@
class kankyo_class : public leafdraw_class {
public:
/* 0xC0 */ int mBsType;
/* 0xC0 */ int type;
/* 0xC4 */ create_tag_class draw_tag;
/* 0xD8 */ leafdraw_method_class* sub_method;
/* 0xDC */ cXyz mPos;
/* 0xE8 */ cXyz mScale;
/* 0xF4 */ u32 mParam;
/* 0xDC */ cXyz pos;
/* 0xE8 */ cXyz scale;
/* 0xF4 */ u32 parameters;
};
struct kankyo_process_profile_definition {
+14 -15
View File
@@ -5,25 +5,24 @@
#include "f_pc/f_pc_manager.h"
struct fopKyM_prm_class {
/* 0x00 */ cXyz mPos;
/* 0x0C */ cXyz mScale;
/* 0x18 */ int mParam;
/* 0x00 */ cXyz pos;
/* 0x0C */ cXyz scale;
/* 0x18 */ int parameters;
}; // Size: 0x1C
typedef int (*fopKyM_CreateFunc)(void*);
static fopKyM_prm_class* fopKyM_CreateAppend(void);
static fopKyM_prm_class* createAppend(int param_1, cXyz* param_2, cXyz* param_3);
void fopKyM_Delete(void* param_1);
int fopKyM_create(s16 i_procName, int i_param, cXyz* i_pos, cXyz* i_scale,
fopKyM_CreateFunc i_createFunc);
static int fopKyM_Create(s16 param_1, fopKyM_CreateFunc param_2, void* param_3);
base_process_class* fopKyM_fastCreate(s16 param_0, int param_1, cXyz* param_2, cXyz* param_3,
fopKyM_CreateFunc);
int fopKyM_createWpillar(cXyz const* i_pos, f32 scale, int i_param);
fopKyM_prm_class* fopKyM_CreateAppend();
void fopKyM_Delete(void* i_process);
fpc_ProcID fopKyM_create(s16 i_procName, int i_param, cXyz* i_pos, cXyz* i_scale,
fopKyM_CreateFunc i_createFunc);
fpc_ProcID fopKyM_Create(s16 i_procName, fopKyM_CreateFunc i_createFunc, void* i_append);
base_process_class* fopKyM_fastCreate(s16 i_procName, int i_param, cXyz* i_pos, cXyz* i_scale,
fopKyM_CreateFunc i_createFunc);
fpc_ProcID fopKyM_createWpillar(cXyz const* i_pos, f32 scale, int i_param);
inline void* fopKyM_GetAppend(void* param_0) {
return fpcM_GetAppend(param_0);
inline fopKyM_prm_class* fopKyM_GetAppend(void* i_process) {
return (fopKyM_prm_class*)fpcM_GetAppend(i_process);
}
#endif
#endif
+6 -6
View File
@@ -8,16 +8,16 @@ class fopAc_ac_c;
class msg_class : public leafdraw_class {
public:
/* 0xC0 */ int mMsgType;
/* 0xC0 */ int type;
/* 0xC4 */ create_tag_class draw_tag;
/* 0xD8 */ leafdraw_method_class* sub_method;
/* 0xDC */ fopAc_ac_c* mpActor;
/* 0xE0 */ cXyz mPos;
/* 0xEC */ u32 mMsgID;
/* 0xDC */ fopAc_ac_c* talk_actor;
/* 0xE0 */ cXyz pos;
/* 0xEC */ u32 msg_idx;
/* 0xF0 */ u32 field_0xf0;
/* 0xF4 */ u32 field_0xf4;
/* 0xF8 */ u16 mMode;
/* 0xFA */ u8 mSelectedChoiceIdx;
/* 0xF8 */ u16 mode;
/* 0xFA */ u8 select_idx;
}; // Size: 0xFC
extern leafdraw_method_class g_fopMsg_Method;
+27 -26
View File
@@ -2,8 +2,8 @@
#define F_F_OP_MSG_MNG_H_
#include "SSystem/SComponent/c_xyz.h"
#include "f_pc/f_pc_leaf.h"
#include "f_op/f_op_msg.h"
#include "f_pc/f_pc_leaf.h"
class JKRExpHeap;
class JKRHeap;
@@ -11,16 +11,16 @@ class fopAc_ac_c;
class msg_class;
struct msg_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ leafdraw_method_class* sub_method; // Subclass methods
};
struct fopMsg_prm_class {
/* 0x00 */ fopAc_ac_c* mpActor;
/* 0x04 */ cXyz mPos;
/* 0x10 */ u32 mMsgID;
/* 0x00 */ fopAc_ac_c* talk_actor;
/* 0x04 */ cXyz pos;
/* 0x10 */ u32 msg_idx;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ int field_0x18;
/* 0x18 */ fpc_ProcID field_0x18;
}; // Size: 0x1C
struct fopMsg_prm_timer : public fopMsg_prm_class {
@@ -36,27 +36,28 @@ struct fopMsg_prm_timer : public fopMsg_prm_class {
typedef int (*fopMsgCreateFunc)(void*);
JKRExpHeap* fopMsgM_createExpHeap(u32, JKRHeap*);
u32 fopMsgM_Create(s16, fopMsgCreateFunc, void*);
s32 fopMsgM_create(s16 param_0, fopAc_ac_c* param_1, cXyz* param_2, u32* param_3, u32* param_4,
fopMsgCreateFunc createFunc);
void fopMsgM_Delete(void* process);
fopMsg_prm_class* fopMsgM_GetAppend(void* msg);
void fopMsgM_setMessageID(fpc_ProcID);
void fopMsgM_destroyExpHeap(JKRExpHeap*);
f32 fopMsgM_valueIncrease(int param_0, int param_1, u8 param_2);
s32 fopMsgM_setStageLayer(void*);
int fopMsgM_messageSet(u32 i_msgIdx, fopAc_ac_c* i_actorP, u32 param_2);
int fopMsgM_messageSet(u32 param_0, u32 param_1);
int fopMsgM_messageSetDemo(u32 param_0);
msg_class* fopMsgM_SearchByID(fpc_ProcID param_0);
char* fopMsgM_messageGet(char* msg, u32 string_id);
s32 fop_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5,
f32 param_6, f32 param_7, f32 param_8, fopMsgCreateFunc createFunc);
JKRExpHeap* fopMsgM_createExpHeap(u32 i_heapSize, JKRHeap* i_heap);
fpc_ProcID fopMsgM_Create(s16 i_procName, fopMsgCreateFunc i_createFunc, void* i_append);
fpc_ProcID fopMsgM_create(s16 i_procName, fopAc_ac_c* i_talkActor, cXyz* i_pos, u32* i_msgIdx,
u32* param_4, fopMsgCreateFunc createFunc);
void fopMsgM_Delete(void* i_this);
fopMsg_prm_class* fopMsgM_GetAppend(void* i_msg);
void fopMsgM_setMessageID(fpc_ProcID msg_id);
void fopMsgM_destroyExpHeap(JKRExpHeap* i_heap);
f32 fopMsgM_valueIncrease(int param_0, int param_1, u8 i_type);
s32 fopMsgM_setStageLayer(void* i_process);
fpc_ProcID fopMsgM_messageSet(u32 i_msgIdx, fopAc_ac_c* i_talkActor, u32 param_2);
fpc_ProcID fopMsgM_messageSet(u32 i_msgIdx, u32 param_1);
fpc_ProcID fopMsgM_messageSetDemo(u32 i_msgidx);
msg_class* fopMsgM_SearchByID(fpc_ProcID i_id);
char* fopMsgM_messageGet(char* i_stringBuf, u32 i_msgId);
fpc_ProcID fop_Timer_create(s16 i_procName, u8 i_mode, u32 i_limitMs, u8 i_type, u8 param_4,
f32 param_5, f32 param_6, f32 param_7, f32 param_8,
fopMsgCreateFunc i_createFunc);
inline s32 fopMsgM_Timer_create(s16 i_procName, u8 i_mode, u32 i_limitMs, u8 i_type, u8 param_4,
f32 param_5, f32 param_6, f32 param_7, f32 param_8,
fopMsgCreateFunc i_createFunc) {
inline fpc_ProcID fopMsgM_Timer_create(s16 i_procName, u8 i_mode, u32 i_limitMs, u8 i_type,
u8 param_4, f32 param_5, f32 param_6, f32 param_7,
f32 param_8, fopMsgCreateFunc i_createFunc) {
return fop_Timer_create(i_procName, i_mode, i_limitMs, i_type, param_4, param_5, param_6,
param_7, param_8, i_createFunc);
}
+5 -4
View File
@@ -2,12 +2,13 @@
#define F_F_OP_OVERLAP_H_
#include "f_pc/f_pc_leaf.h"
#include "SSystem/SComponent/c_request.h"
class overlap_task_class : public leafdraw_class {
public:
/* 0xC0 */ leafdraw_method_class* field_0xc0;
/* 0xC4 */ u8 field_0xc4; // used as both u8 and request_base_class* ??
/* 0xC8 */ int field_0xc8;
/* 0xC0 */ leafdraw_method_class* submethod;
/* 0xC4 */ request_base_class request;
/* 0xC8 */ fpc_ProcID scene_id;
}; // Size: 0xCC
struct overlap_process_profile_definition {
@@ -19,4 +20,4 @@ static s32 fopOvlp_Draw(void* param_1);
extern leafdraw_method_class g_fopOvlp_Method;
#endif
#endif
+5 -4
View File
@@ -2,20 +2,21 @@
#define F_F_OP_OVERLAP_MNG_H_
#include "f_op/f_op_overlap.h"
#include "f_op/f_op_overlap_req.h"
struct request_base_class;
int fopOvlpM_SceneIsStop();
int fopOvlpM_SceneIsStart();
void fopOvlpM_Management();
int fopOvlpM_IsOutReq(overlap_task_class* i_this);
void fopOvlpM_Done(overlap_task_class* i_this);
void fopOvlpM_ToldAboutID(fpc_ProcID param_1);
int fopOvlpM_IsOutReq(overlap_task_class* i_overlap_task);
void fopOvlpM_Done(overlap_task_class* i_overlap_task);
void fopOvlpM_ToldAboutID(fpc_ProcID i_sceneId);
int fopOvlpM_IsPeek();
int fopOvlpM_IsDone();
int fopOvlpM_IsDoingReq();
int fopOvlpM_ClearOfReq();
request_base_class* fopOvlpM_Request(s16 param_1, u16 param_2);
overlap_request_class* fopOvlpM_Request(s16 i_procname, u16 i_peektime);
int fopOvlpM_Cancel();
void fopOvlpM_Init();
+25 -21
View File
@@ -2,32 +2,36 @@
#define F_F_OP_OVERLAP_REQ_H_
#include "SSystem/SComponent/c_phase.h"
#include "f_pc/f_pc_manager.h"
#include "f_op/f_op_overlap.h"
#include "SSystem/SComponent/c_request.h"
typedef struct layer_class layer_class;
struct request_base_class;
class overlap_request_class {
public:
s8 field_0x0;
u8 field_0x1;
s16 field_0x2;
u16 field_0x4;
u16 mPeektime;
u32 field_0x8;
u32 field_0xc;
s16 field_0x10;
u8 field_0x12;
u8 field_0x13;
int field_0x14;
request_of_phase_process_class field_0x18;
u8* field_0x20;
layer_class* pCurrentLayer;
/* 0x00 */ request_base_class base;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ s16 field_0x2;
/* 0x04 */ u16 field_0x4;
/* 0x06 */ u16 peektime;
/* 0x08 */ u32 field_0x8;
/* 0x0C */ u32 field_0xc;
/* 0x10 */ s16 procname;
/* 0x12 */ u8 field_0x12;
/* 0x13 */ u8 field_0x13;
/* 0x14 */ fpc_ProcID request_id;
/* 0x18 */ request_of_phase_process_class phase_req;
/* 0x20 */ overlap_task_class* overlap_task;
/* 0x24 */ layer_class* layer;
};
int fopOvlpReq_OverlapClr(overlap_request_class* param_1);
request_base_class* fopOvlpReq_Request(overlap_request_class*, s16, u16);
int fopOvlpReq_Handler(overlap_request_class*);
int fopOvlpReq_Cancel(overlap_request_class*);
static int fopOvlpReq_phase_Done(overlap_request_class* param_1);
int fopOvlpReq_Is_PeektimeLimit(overlap_request_class*);
#endif
int fopOvlpReq_OverlapClr(overlap_request_class* i_overlapReq);
overlap_request_class* fopOvlpReq_Request(overlap_request_class* i_overlapReq, s16 i_procname, u16 i_peektime);
int fopOvlpReq_Handler(overlap_request_class* i_overlapReq);
int fopOvlpReq_Cancel(overlap_request_class* i_overlapReq);
static int fopOvlpReq_phase_Done(overlap_request_class* i_overlapReq);
int fopOvlpReq_Is_PeektimeLimit(overlap_request_class* i_overlapReq);
#endif
+6 -6
View File
@@ -7,16 +7,16 @@ struct request_of_phase_process_class;
class mDoDvdThd_command_c;
typedef struct scene_process_profile_definition {
/* 0x00 */ node_process_profile_definition mBase;
/* 0x20 */ process_method_class* mpMtd; // Subclass methods
/* 0x24 */ u32 field_0x24; // padding?
/* 0x00 */ node_process_profile_definition nase;
/* 0x20 */ process_method_class* submethod; // Subclass methods
/* 0x24 */ u32 unk_0x24; // padding?
} scene_process_profile_definition;
class scene_class {
public:
/* 0x000 */ process_node_class mBase;
/* 0x1AC */ process_method_class * mpMtd;
/* 0x1B0 */ scene_tag_class mScnTg;
/* 0x000 */ process_node_class base;
/* 0x1AC */ process_method_class* submethod;
/* 0x1B0 */ scene_tag_class scene_tag;
};
extern leafdraw_method_class g_fopScn_Method;
+3 -3
View File
@@ -1,7 +1,7 @@
#ifndef F_F_OP_SCENE_ITER_H_
#define F_F_OP_SCENE_ITER_H_
typedef void* (*fop_ScnItFunc)(void* pProc, void* pUserData);
void* fopScnIt_Judge(fop_ScnItFunc pFunc1, void* pUserData);
typedef void* (*fop_ScnItFunc)(void* i_scene, void* i_data);
void* fopScnIt_Judge(fop_ScnItFunc i_judgeFunc, void* i_data);
#endif
#endif
+16 -16
View File
@@ -7,29 +7,29 @@
typedef struct base_process_class base_process_class;
scene_class* fopScnM_SearchByID(fpc_ProcID id);
int fopScnM_ChangeReq(scene_class*, s16, s16, u16);
fpc_ProcID fopScnM_DeleteReq(scene_class*);
int fopScnM_CreateReq(s16, s16, u16, u32);
u32 fopScnM_ReRequest(s16, u32);
void fopScnM_Management(void);
void fopScnM_Init(void);
int fopScnM_ChangeReq(scene_class* i_scene, s16 i_procName, s16 param_3, u16 param_4);
fpc_ProcID fopScnM_DeleteReq(scene_class* i_scene);
int fopScnM_CreateReq(s16 i_procName, s16 param_2, u16 param_3, u32 i_data);
u32 fopScnM_ReRequest(s16 i_procName, u32 i_data);
void fopScnM_Management();
void fopScnM_Init();
inline u32 fpcM_LayerID(const void* pProc) {
return fpcBs_Is_JustOfType(g_fpcNd_type, ((base_process_class*)pProc)->mSubType) != FALSE ?
((scene_class*)pProc)->mBase.mLayer.mLayerID :
0xFFFFFFFF;
inline fpc_ProcID fpcM_LayerID(const void* i_process) {
return fpcBs_Is_JustOfType(g_fpcNd_type, ((base_process_class*)i_process)->subtype) != FALSE ?
((scene_class*)i_process)->base.layer.layer_id :
fpcM_ERROR_PROCESS_ID_e;
}
inline u32 fopScnM_GetID(void* proc) {
return fpcM_GetID(proc);
inline fpc_ProcID fopScnM_GetID(void* i_scene) {
return fpcM_GetID(i_scene);
}
inline int fopScnM_LayerID(void* proc) {
return fpcM_LayerID(proc);
inline fpc_ProcID fopScnM_LayerID(void* i_scene) {
return fpcM_LayerID(i_scene);
}
inline u32 fopScnM_GetParam(void* proc) {
return fpcM_GetParam(proc);
inline u32 fopScnM_GetParam(void* i_scene) {
return fpcM_GetParam(i_scene);
}
#endif
+3 -3
View File
@@ -3,7 +3,7 @@
class scene_class;
int fopScnPause_Enable(scene_class* pScene);
int fopScnPause_Disable(scene_class* pScene);
int fopScnPause_Enable(scene_class* i_scene);
int fopScnPause_Disable(scene_class* i_scene);
#endif
#endif
+8 -14
View File
@@ -4,23 +4,17 @@
#include "f_pc/f_pc_node_req.h"
class scene_class;
extern "C" {
void fopScnRq_Handler__Fv(void);
void fopScnRq_ReRequest(void);
}
class scene_request_class {
public:
node_create_request mCrtReq;
u32 mFadeRequest; // TODO: type is wrong
request_of_phase_process_class mReqPhsProcCls;
u8 field_0x70[4];
/* 0x00 */ node_create_request create_request;
/* 0x64 */ scene_request_class* fade_request;
/* 0x68 */ request_of_phase_process_class phase_request;
/* 0x00 */ u8 field_0x70[4];
};
// cPhs__Step fopScnRq_phase_ClearOverlap(scene_request_class* param_1);
s32 fopScnRq_Request(int, scene_class*, s16, void*, s16, u16);
s32 fopScnRq_ReRequest(fpc_ProcID, s16, void*);
void fopScnRq_Handler(void);
fpc_ProcID fopScnRq_Request(int i_reqType, scene_class* i_scene, s16 i_procName, void* i_data, s16 param_5,
u16 param_6);
s32 fopScnRq_ReRequest(fpc_ProcID i_requestId, s16 i_procName, void* i_data);
void fopScnRq_Handler();
#endif
+4 -4
View File
@@ -6,12 +6,12 @@
class scene_tag_class {
public:
u8 field_0x00[0x14];
create_tag_class base;
};
void fopScnTg_QueueTo(scene_tag_class* pSceneTag);
void fopScnTg_ToQueue(scene_tag_class* pSceneTag);
void fopScnTg_Init(scene_tag_class* pSceneTag, void* pData);
void fopScnTg_QueueTo(scene_tag_class* i_sceneTag);
void fopScnTg_ToQueue(scene_tag_class* i_sceneTag);
void fopScnTg_Init(scene_tag_class* i_sceneTag, void* i_data);
extern node_list_class g_fopScnTg_SceneList;
+31 -32
View File
@@ -6,54 +6,53 @@
#include "f_pc/f_pc_leaf.h"
struct view_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x00 */ leaf_process_profile_definition base;
/* 0x24 */ leafdraw_method_class* sub_method; // Subclass methods
/* 0x28 */ u8 unk28;
/* 0x29 */ u8 unk29[3]; // pad
/* 0x2C */ u32 unk2C;
/* 0x30 */ u32 unk30;
/* 0x34 */ u32 unk34;
/* 0x38 */ u32 unk38;
/* 0x28 */ u8 unk_0x28;
/* 0x2C */ u32 unk_0x2C;
/* 0x30 */ u32 unk_0x30;
/* 0x34 */ u32 unk_0x34;
/* 0x38 */ u32 unk_0x38;
};
class lookat_class {
public:
/* 0x00 */ cXyz mEye;
/* 0x0C */ cXyz mCenter;
/* 0x18 */ cXyz mUp;
/* 0x00 */ cXyz eye;
/* 0x0C */ cXyz center;
/* 0x18 */ cXyz up;
};
struct scissor_class {
/* 0x0 */ f32 mXOrig;
/* 0x4 */ f32 mYOrig;
/* 0x8 */ f32 mWidth;
/* 0xC */ f32 mHeight;
/* 0x0 */ f32 x_orig;
/* 0x4 */ f32 y_orig;
/* 0x8 */ f32 width;
/* 0xC */ f32 height;
};
struct view_port_class {
/* 0x00 */ f32 mXOrig;
/* 0x04 */ f32 mYOrig;
/* 0x08 */ f32 mWidth;
/* 0x0C */ f32 mHeight;
/* 0x10 */ f32 mNearZ;
/* 0x14 */ f32 mFarZ;
/* 0x18 */ scissor_class mScissor;
/* 0x00 */ f32 x_orig;
/* 0x04 */ f32 y_orig;
/* 0x08 */ f32 width;
/* 0x0C */ f32 height;
/* 0x10 */ f32 near_z;
/* 0x14 */ f32 far_z;
/* 0x18 */ scissor_class scissor;
};
struct view_class : public leafdraw_class {
/* 0x0C0 */ leafdraw_method_class* sub_method;
/* 0x0C4 */ u8 field_0xc4;
/* 0x0C8 */ f32 mNear;
/* 0x0CC */ f32 mFar;
/* 0x0D0 */ f32 mFovy;
/* 0x0D4 */ f32 mAspect;
/* 0x0D8 */ lookat_class mLookat;
/* 0x0FC */ s16 mBank;
/* 0x100 */ Mtx44 mProjMtx;
/* 0x140 */ Mtx mViewMtx;
/* 0x170 */ Mtx mInvViewMtx;
/* 0x1A0 */ Mtx44 mProjViewMtx;
/* 0x1E0 */ Mtx mViewMtxNoTrans;
/* 0x0C8 */ f32 near;
/* 0x0CC */ f32 far;
/* 0x0D0 */ f32 fovy;
/* 0x0D4 */ f32 aspect;
/* 0x0D8 */ lookat_class lookat;
/* 0x0FC */ s16 bank;
/* 0x100 */ Mtx44 projMtx;
/* 0x140 */ Mtx viewMtx;
/* 0x170 */ Mtx invViewMtx;
/* 0x1A0 */ Mtx44 projViewMtx;
/* 0x1E0 */ Mtx viewMtxNoTrans;
};
extern leafdraw_method_class g_fopVw_Method;
+27 -27
View File
@@ -15,34 +15,34 @@ typedef struct process_profile_definition process_profile_definition;
typedef struct profile_method_class profile_method_class;
typedef struct base_process_class {
/* 0x00 */ u32 mBsType;
/* 0x04 */ fpc_ProcID mBsPcId;
/* 0x08 */ s16 mProcName;
/* 0x0A */ s8 mUnk0;
/* 0x0B */ u8 mPauseFlag;
/* 0x0C */ s8 mInitState;
/* 0x0D */ u8 mUnk2;
/* 0x0E */ s16 mBsTypeId;
/* 0x10 */ process_profile_definition* mpProf;
/* 0x14 */ struct create_request* mpCtRq;
/* 0x18 */ layer_management_tag_class mLyTg;
/* 0x34 */ line_tag mLnTg;
/* 0x4C */ delete_tag_class mDtTg;
/* 0x68 */ process_priority_class mPi;
/* 0xA8 */ process_method_class* mpPcMtd;
/* 0xAC */ void* mpUserData;
/* 0xB0 */ u32 mParameters;
/* 0xB4 */ u32 mSubType;
/* 0x00 */ int type;
/* 0x04 */ fpc_ProcID id;
/* 0x08 */ s16 name;
/* 0x0A */ s8 unk_0xA;
/* 0x0B */ u8 pause_flag;
/* 0x0C */ s8 init_state; // maybe inaccurate name
/* 0x0D */ u8 create_phase;
/* 0x0E */ s16 profname;
/* 0x10 */ process_profile_definition* profile;
/* 0x14 */ struct create_request* create_req;
/* 0x18 */ layer_management_tag_class layer_tag;
/* 0x34 */ line_tag line_tag_;
/* 0x4C */ delete_tag_class delete_tag;
/* 0x68 */ process_priority_class priority;
/* 0xA8 */ process_method_class* methods;
/* 0xAC */ void* append;
/* 0xB0 */ u32 parameters;
/* 0xB4 */ int subtype;
} base_process_class; // Size: 0xB8
s32 fpcBs_Is_JustOfType(int pType1, int pType2);
s32 fpcBs_MakeOfType(int* pType);
s32 fpcBs_MakeOfId(void);
s32 fpcBs_Execute(base_process_class* pProc);
void fpcBs_DeleteAppend(base_process_class* pProc);
s32 fpcBs_IsDelete(base_process_class* pProc);
s32 fpcBs_Delete(base_process_class* pProc);
base_process_class* fpcBs_Create(s16 pProcTypeID, fpc_ProcID pProcID, void* pData);
s32 fpcBs_SubCreate(base_process_class* pProc);
BOOL fpcBs_Is_JustOfType(int i_typeA, int i_typeB);
int fpcBs_MakeOfType(int* i_type);
int fpcBs_MakeOfId();
int fpcBs_Execute(base_process_class* i_proc);
void fpcBs_DeleteAppend(base_process_class* i_proc);
int fpcBs_IsDelete(base_process_class* i_proc);
int fpcBs_Delete(base_process_class* i_proc);
base_process_class* fpcBs_Create(s16 i_profname, fpc_ProcID i_procID, void* i_append);
int fpcBs_SubCreate(base_process_class* i_proc);
#endif
+11 -11
View File
@@ -10,24 +10,24 @@ typedef int (*fpcCtIt_MethodFunc)(void*, void*);
typedef void* (*fpcCtIt_JudgeFunc)(void*, void*);
typedef struct node_method_data {
fpcCtIt_MethodFunc mFunc;
void* mpUserData;
/* 0x0 */ fpcCtIt_MethodFunc method;
/* 0x4 */ void* data;
} node_method_data;
typedef struct node_judge_data {
fpcCtIt_JudgeFunc mFunc;
void* mpUserData;
/* 0x0 */ fpcCtIt_JudgeFunc method;
/* 0x4 */ void* data;
} node_judge_data;
typedef struct fpcCtIt_jilprm_c {
u32 mLayerID;
fpcCtIt_JudgeFunc mFunc;
void* mpUserData;
/* 0x0 */ unsigned int layer_id;
/* 0x4 */ fpcCtIt_JudgeFunc method;
/* 0x8 */ void* data;
} fpcCtIt_jilprm_c;
s32 fpcCtIt_Method(fpcCtIt_MethodFunc pJudge, void* pUserData);
void* fpcCtIt_Judge(fpcCtIt_JudgeFunc pJudge, void* pUserData);
void* fpcCtIt_filter_JudgeInLayer(create_tag*, fpcCtIt_jilprm_c*);
void* fpcCtIt_JudgeInLayer(unsigned int pUnk0, fpcCtIt_JudgeFunc pFunc, void* pUserData);
int fpcCtIt_Method(fpcCtIt_MethodFunc i_method, void* i_data);
void* fpcCtIt_Judge(fpcCtIt_JudgeFunc i_judge, void* i_data);
void* fpcCtIt_filter_JudgeInLayer(create_tag* i_createTag, fpcCtIt_jilprm_c* i_iterData);
void* fpcCtIt_JudgeInLayer(unsigned int i_layerID, fpcCtIt_JudgeFunc i_method, void* i_data);
#endif
+22 -22
View File
@@ -12,32 +12,32 @@ typedef struct base_process_class base_process_class;
typedef struct layer_class layer_class;
typedef struct create_request_method_class {
cPhs__Handler mpHandler;
process_method_func mpCancel;
process_method_func mpDelete;
/* 0x0 */ cPhs__Handler phase_handler;
/* 0x4 */ process_method_func cancel_method;
/* 0x8 */ process_method_func delete_method;
} create_request_method_class;
typedef struct create_request {
create_tag mBase;
s8 mbIsCreating;
s8 mbIsCancelling;
process_method_tag_class mMtdTg;
create_request_method_class* mpCtRqMtd;
void* mpUnk1;
s32 mBsPcId;
struct base_process_class* mpRes;
layer_class* mpLayer;
/* 0x00 */ create_tag base;
/* 0x14 */ s8 is_doing;
/* 0x15 */ s8 is_cancel;
/* 0x18 */ process_method_tag_class method_tag;
/* 0x34 */ create_request_method_class* methods;
/* 0x38 */ void* unk_0x38;
/* 0x3C */ fpc_ProcID id;
/* 0x40 */ struct base_process_class* process;
/* 0x44 */ layer_class* layer;
} create_request; // Size: 0x48
bool fpcCtRq_isCreatingByID(create_tag* pTag, fpc_ProcID* pId);
BOOL fpcCtRq_IsCreatingByID(fpc_ProcID id);
void fpcCtRq_CreateQTo(create_request* pReq);
void fpcCtRq_ToCreateQ(create_request* pReq);
BOOL fpcCtRq_Delete(create_request* pReq);
BOOL fpcCtRq_Cancel(create_request* pReq);
s32 fpcCtRq_IsDoing(create_request* pReq);
void fpcCtRq_Handler(void);
create_request* fpcCtRq_Create(layer_class* pLayer, u32 size,
create_request_method_class* pCtRqMtd);
bool fpcCtRq_isCreatingByID(create_tag* i_createTag, fpc_ProcID* i_id);
BOOL fpcCtRq_IsCreatingByID(fpc_ProcID i_id);
void fpcCtRq_CreateQTo(create_request* i_request);
void fpcCtRq_ToCreateQ(create_request* i_request);
BOOL fpcCtRq_Delete(create_request* i_request);
BOOL fpcCtRq_Cancel(create_request* i_request);
BOOL fpcCtRq_IsDoing(create_request* i_request);
void fpcCtRq_Handler();
create_request* fpcCtRq_Create(layer_class* i_layer, u32 i_size,
create_request_method_class* i_methods);
#endif
+4 -4
View File
@@ -6,12 +6,12 @@
#include "SSystem/SComponent/c_tag.h"
typedef struct create_tag {
create_tag_class mBase;
create_tag_class base;
} create_tag;
void fpcCtTg_ToCreateQ(create_tag* pTag);
void fpcCtTg_CreateQTo(create_tag* pTag);
s32 fpcCtTg_Init(create_tag* pTag, void* pUserData);
void fpcCtTg_ToCreateQ(create_tag* i_createTag);
void fpcCtTg_CreateQTo(create_tag* i_createTag);
s32 fpcCtTg_Init(create_tag* i_createTag, void* i_data);
extern node_list_class g_fpcCtTg_Queue;
+2 -2
View File
@@ -7,8 +7,8 @@
typedef struct base_process_class base_process_class;
BOOL fpcCt_IsCreatingByID(fpc_ProcID id);
s32 fpcCt_IsDoing(base_process_class* pProc);
BOOL fpcCt_IsDoing(base_process_class* pProc);
BOOL fpcCt_Abort(base_process_class* pProc);
void fpcCt_Handler(void);
void fpcCt_Handler();
#endif
+8 -8
View File
@@ -9,16 +9,16 @@ typedef struct layer_class layer_class;
typedef int (*delete_tag_func)(void*);
typedef struct delete_tag_class {
create_tag_class mBase;
layer_class* mpLayer;
s16 mTimer;
/* 0x00 */ create_tag_class base;
/* 0x14 */ layer_class* layer;
/* 0x18 */ s16 timer;
} delete_tag_class;
BOOL fpcDtTg_IsEmpty(void);
void fpcDtTg_ToDeleteQ(delete_tag_class* pTag);
void fpcDtTg_DeleteQTo(delete_tag_class* pTag);
s32 fpcDtTg_Do(delete_tag_class* pTag, delete_tag_func pFunc);
s32 fpcDtTg_Init(delete_tag_class* pTag, void* pUserData);
BOOL fpcDtTg_IsEmpty();
void fpcDtTg_ToDeleteQ(delete_tag_class* i_deleteTag);
void fpcDtTg_DeleteQTo(delete_tag_class* i_deleteTag);
s32 fpcDtTg_Do(delete_tag_class* i_deleteTag, delete_tag_func i_func);
s32 fpcDtTg_Init(delete_tag_class* i_deleteTag, void* i_data);
extern node_list_class g_fpcDtTg_Queue;
+5 -5
View File
@@ -6,10 +6,10 @@
typedef struct base_process_class base_process_class;
BOOL fpcDt_IsComplete(void);
s32 fpcDt_ToDeleteQ(base_process_class* pProc);
s32 fpcDt_ToQueue(base_process_class* pProc);
void fpcDt_Handler(void);
s32 fpcDt_Delete(void* pProc);
BOOL fpcDt_IsComplete();
s32 fpcDt_ToDeleteQ(base_process_class* i_proc);
s32 fpcDt_ToQueue(base_process_class* i_proc);
void fpcDt_Handler();
s32 fpcDt_Delete(void* i_proc);
#endif
+3 -3
View File
@@ -8,7 +8,7 @@ typedef struct base_process_class base_process_class;
typedef int (*fpcDw_HandlerFunc)(void*, void*);
typedef int (*fpcDw_HandlerFuncFunc)(fpcDw_HandlerFunc);
s32 fpcDw_Execute(base_process_class* pProc);
s32 fpcDw_Handler(fpcDw_HandlerFuncFunc param_1, fpcDw_HandlerFunc param_2);
s32 fpcDw_Execute(base_process_class* i_proc);
s32 fpcDw_Handler(fpcDw_HandlerFuncFunc i_iterHandler, fpcDw_HandlerFunc i_func);
#endif
#endif
+4 -4
View File
@@ -5,11 +5,11 @@
#include "dolphin/types.h"
typedef struct draw_priority_class {
s16 mPriority;
s16 priority;
} draw_priority_class;
s16 fpcDwPi_Get(const draw_priority_class* pDwPi);
void fpcDwPi_Set(draw_priority_class* pDwPi, s16 p);
void fpcDwPi_Init(draw_priority_class* pDwPi, s16 p);
s16 fpcDwPi_Get(const draw_priority_class* i_drawpriority);
void fpcDwPi_Set(draw_priority_class* i_drawpriority, s16 i_priority);
void fpcDwPi_Init(draw_priority_class* i_drawpriority, s16 i_priority);
#endif
+8 -8
View File
@@ -8,13 +8,13 @@
typedef struct base_process_class base_process_class;
base_process_class* fpcEx_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData);
base_process_class* fpcEx_SearchByID(fpc_ProcID id);
BOOL fpcEx_IsExist(fpc_ProcID id);
s32 fpcEx_ToLineQ(base_process_class* pProc);
s32 fpcEx_ExecuteQTo(base_process_class* pProc);
s32 fpcEx_Execute(base_process_class* pProc);
s32 fpcEx_ToExecuteQ(base_process_class* pProc);
void fpcEx_Handler(fpcLnIt_QueueFunc pFunc);
base_process_class* fpcEx_Search(fpcLyIt_JudgeFunc i_judgeFunc, void* i_data);
base_process_class* fpcEx_SearchByID(fpc_ProcID i_id);
BOOL fpcEx_IsExist(fpc_ProcID i_id);
s32 fpcEx_ToLineQ(base_process_class* i_proc);
s32 fpcEx_ExecuteQTo(base_process_class* i_proc);
s32 fpcEx_Execute(base_process_class* i_proc);
s32 fpcEx_ToExecuteQ(base_process_class* i_proc);
void fpcEx_Handler(fpcLnIt_QueueFunc i_queueFunc);
#endif
+8 -9
View File
@@ -9,15 +9,14 @@ typedef struct layer_class layer_class;
typedef int (*fstCreateFunc)(void*, void*);
typedef struct fast_create_request {
/* 0x00 */ create_request mBase;
/* 0x48 */ fstCreateFunc mpFastCreateFunc;
/* 0x4C */ void* mpFastCreateData;
/* 0x00 */ create_request base;
/* 0x48 */ fstCreateFunc create_func;
/* 0x4C */ void* data;
} fast_create_request; // Size: 0x50
s32 fpcFCtRq_Do(fast_create_request* pFstCreateReq);
s32 fpcFCtRq_Delete(fast_create_request*);
base_process_class* fpcFCtRq_Request(layer_class* pLayer, s16 pProcTypeID,
fstCreateFunc pFastCreateFunc, void* pFastCreateData,
void* pData);
s32 fpcFCtRq_Do(fast_create_request* i_createReq);
s32 fpcFCtRq_Delete(fast_create_request* i_createReq);
base_process_class* fpcFCtRq_Request(layer_class* i_layer, s16 i_procname,
fstCreateFunc i_createFunc, void* i_createData, void* i_append);
#endif
#endif
+28 -28
View File
@@ -12,43 +12,43 @@ typedef struct process_method_tag_class process_method_tag_class;
typedef struct process_node_class process_node_class;
typedef struct layer_class {
/* 0x00 */ node_class mNode;
/* 0x0C */ u32 mLayerID;
/* 0x10 */ node_lists_tree_class mNodeListTree;
/* 0x18 */ process_node_class* mpPcNode;
/* 0x1C */ node_list_class mCancelList;
/* 0x00 */ node_class node;
/* 0x0C */ fpc_ProcID layer_id;
/* 0x10 */ node_lists_tree_class node_tree;
/* 0x18 */ process_node_class* process_node;
/* 0x1C */ node_list_class cancel_list;
struct {
/* 0x28 */ s16 mCreatingCount;
/* 0x2A */ s16 mDeletingCount;
/* 0x28 */ s16 create_count;
/* 0x2A */ s16 delete_count;
} counts;
} layer_class;
void fpcLy_SetCurrentLayer(layer_class* pLayer);
layer_class* fpcLy_CurrentLayer(void);
layer_class* fpcLy_RootLayer(void);
layer_class* fpcLy_Layer(fpc_ProcID id);
layer_class* fpcLy_Search(fpc_ProcID id);
void fpcLy_Regist(layer_class* pLayer);
void fpcLy_SetCurrentLayer(layer_class* i_layer);
layer_class* fpcLy_CurrentLayer();
layer_class* fpcLy_RootLayer();
layer_class* fpcLy_Layer(fpc_ProcID i_id);
layer_class* fpcLy_Search(fpc_ProcID i_id);
void fpcLy_Regist(layer_class* i_layer);
void fpcLy_CreatedMesg(layer_class* pLayer);
void fpcLy_CreatingMesg(layer_class* pLayer);
void fpcLy_DeletedMesg(layer_class* pLayer);
void fpcLy_DeletingMesg(layer_class* pLayer);
BOOL fpcLy_IsCreatingMesg(layer_class* pLayer);
BOOL fpcLy_IsDeletingMesg(layer_class* pLayer);
void fpcLy_CreatedMesg(layer_class* i_layer);
void fpcLy_CreatingMesg(layer_class* i_layer);
void fpcLy_DeletedMesg(layer_class* i_layer);
void fpcLy_DeletingMesg(layer_class* i_layer);
BOOL fpcLy_IsCreatingMesg(layer_class* i_layer);
BOOL fpcLy_IsDeletingMesg(layer_class* i_layer);
s32 fpcLy_IntoQueue(layer_class* pLayer, int treeListIdx, create_tag_class* pTag, int idx);
s32 fpcLy_ToQueue(layer_class* pLayer, int treeListIdx, create_tag_class* pTag);
s32 fpcLy_QueueTo(layer_class* pLayer, create_tag_class* pTag);
s32 fpcLy_IntoQueue(layer_class* i_layer, int i_treeListNo, create_tag_class* i_createTag, int i_no);
s32 fpcLy_ToQueue(layer_class* i_layer, int treeListIdx, create_tag_class* i_createTag);
s32 fpcLy_QueueTo(layer_class* i_layer, create_tag_class* i_createTag);
void fpcLy_Cancel(layer_class* pLayer);
bool fpcLy_CancelMethod(process_method_tag_class* pLayer);
int fpcLy_Cancel(layer_class* i_layer);
bool fpcLy_CancelMethod(process_method_tag_class* i_layer);
void fpcLy_CancelQTo(process_method_tag_class* pMthd);
s32 fpcLy_ToCancelQ(layer_class* pLayer, process_method_tag_class* pMthd);
void fpcLy_CancelQTo(process_method_tag_class* i_methods);
s32 fpcLy_ToCancelQ(layer_class* i_layer, process_method_tag_class* i_methods);
void fpcLy_Create(layer_class* pLayer, void* pPcNode, node_list_class* pLists, int listNum);
void fpcLy_Create(layer_class* i_layer, void* i_node, node_list_class* i_nodeList, int i_numLists);
s32 fpcLy_Delete(layer_class* pLayer);
s32 fpcLy_Delete(layer_class* i_layer);
#endif
+6 -6
View File
@@ -6,16 +6,16 @@
typedef struct layer_class layer_class;
typedef struct layer_iter {
void* mpFunc;
void* mpUserData;
/* 0x0 */ void* func;
/* 0x4 */ void* data;
} layer_iter;
typedef int (*fpcLyIt_OnlyHereFunc)(void*, void*);
typedef void* (*fpcLyIt_JudgeFunc)(void*, void*);
s32 fpcLyIt_OnlyHere(layer_class* pLayer, fpcLyIt_OnlyHereFunc pFunc, void* pUserData);
s32 fpcLyIt_OnlyHereLY(layer_class* pLayer, fpcLyIt_OnlyHereFunc pFunc, void* pUserData);
void* fpcLyIt_Judge(layer_class* pLayer, fpcLyIt_JudgeFunc pFunc, void* pUserData);
void* fpcLyIt_AllJudge(fpcLyIt_JudgeFunc pFunc, void* pUserData);
s32 fpcLyIt_OnlyHere(layer_class* i_layer, fpcLyIt_OnlyHereFunc i_func, void* i_data);
s32 fpcLyIt_OnlyHereLY(layer_class* i_layer, fpcLyIt_OnlyHereFunc i_func, void* i_data);
void* fpcLyIt_Judge(layer_class* i_layer, fpcLyIt_JudgeFunc i_func, void* i_data);
void* fpcLyIt_AllJudge(fpcLyIt_JudgeFunc i_func, void* i_data);
#endif
+10 -9
View File
@@ -15,16 +15,17 @@ typedef struct layer_class layer_class;
typedef struct layer_management_tag_class {
create_tag_class mCreateTag;
layer_class* mpLayer;
u16 mNodeListID;
u16 mNodeListIdx;
/* 0x00 */ create_tag_class create_tag;
/* 0x14 */ layer_class* layer;
/* 0x18 */ u16 node_list_id;
/* 0x1A */ u16 node_list_priority;
} layer_management_tag_class;
s32 fpcLyTg_QueueTo(layer_management_tag_class* pTag);
s32 fpcLyTg_ToQueue(layer_management_tag_class* pTag, unsigned int layerID, u16 listID,
u16 listPrio);
s32 fpcLyTg_Move(layer_management_tag_class*, unsigned int, u16, u16);
s32 fpcLyTg_Init(layer_management_tag_class*, unsigned int, void*);
s32 fpcLyTg_QueueTo(layer_management_tag_class* i_layer_tag);
s32 fpcLyTg_ToQueue(layer_management_tag_class* i_layer_tag, unsigned int i_layerID, u16 i_listID,
u16 i_listPriority);
s32 fpcLyTg_Move(layer_management_tag_class* i_layer_tag, unsigned int i_layerID, u16 i_listID,
u16 i_listPriority);
s32 fpcLyTg_Init(layer_management_tag_class* i_layer_tag, unsigned int i_id, void* i_data);
#endif
+16 -16
View File
@@ -9,31 +9,31 @@
#include "d/d_procname.h"
typedef struct leafdraw_method_class {
/* 0x00 */ process_method_class mBase;
/* 0x10 */ process_method_func mpDrawFunc;
/* 0x00 */ process_method_class base;
/* 0x10 */ process_method_func draw_method;
} leafdraw_method_class;
typedef struct leafdraw_class {
/* 0x00 */ base_process_class mBase;
/* 0xB8 */ leafdraw_method_class* mpDrawMtd;
/* 0xBC */ s8 mbUnk0;
/* 0xBD */ u8 mbUnk1;
/* 0xBE */ draw_priority_class mDwPi;
/* 0x00 */ base_process_class base;
/* 0xB8 */ leafdraw_method_class* leaf_methods;
/* 0xBC */ s8 unk_0xBC;
/* 0xBD */ u8 unk_0xBD;
/* 0xBE */ draw_priority_class draw_priority;
} leafdraw_class;
typedef struct leaf_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x00 */ process_profile_definition base;
/* 0x1C */ leafdraw_method_class* sub_method; // Subclass methods
/* 0x20 */ s16 mPriority; // mDrawPriority
/* 0x20 */ s16 priority; // mDrawPriority
} leaf_process_profile_definition;
s16 fpcLf_GetPriority(const leafdraw_class* pLeaf);
s32 fpcLf_DrawMethod(leafdraw_method_class* pMthd, void* pUserData);
s32 fpcLf_Draw(leafdraw_class* pMthd);
s32 fpcLf_Execute(leafdraw_class* pLeaf);
s32 fpcLf_IsDelete(leafdraw_class* pLeaf);
s32 fpcLf_Delete(leafdraw_class* pLeaf);
s32 fpcLf_Create(leafdraw_class* pLeaf);
s16 fpcLf_GetPriority(const leafdraw_class* i_leaf);
s32 fpcLf_DrawMethod(leafdraw_method_class* i_method, void* i_process);
s32 fpcLf_Draw(leafdraw_class* i_method);
s32 fpcLf_Execute(leafdraw_class* i_leaf);
s32 fpcLf_IsDelete(leafdraw_class* i_leaf);
s32 fpcLf_Delete(leafdraw_class* i_leaf);
s32 fpcLf_Create(leafdraw_class* i_leaf);
extern int g_fpcLf_type;
extern leafdraw_method_class g_fpcLf_Method;
+2 -2
View File
@@ -3,8 +3,8 @@
#include "SSystem/SComponent/c_tree.h"
void fpcLn_Create(void);
void fpcLn_Create();
extern node_lists_tree_class g_fpcLn_Queue;
#endif
#endif
+6 -6
View File
@@ -5,13 +5,13 @@
#include "SSystem/SComponent/c_tag.h"
typedef struct line_tag {
create_tag_class mBase;
s32 mLineListID;
/* 0x00 */ create_tag_class base;
/* 0x14 */ int list_id;
} line_tag;
s32 fpcLnTg_Move(line_tag* pLineTag, int newLineListID);
void fpcLnTg_QueueTo(line_tag* pLineTag);
s32 fpcLnTg_ToQueue(line_tag* pLineTag, int lineListID);
void fpcLnTg_Init(line_tag* pLineTag, void* pData);
s32 fpcLnTg_Move(line_tag* i_lineTag, int i_newListID);
void fpcLnTg_QueueTo(line_tag* i_lineTag);
s32 fpcLnTg_ToQueue(line_tag* i_lineTag, int lineListID);
void fpcLnTg_Init(line_tag* i_lineTag, void* i_data);
#endif
+4 -4
View File
@@ -4,9 +4,9 @@
#include "dolphin/types.h"
BOOL fpcLd_Use(s16 procName);
s32 fpcLd_IsLoaded(s16 procName);
void fpcLd_Free(s16 procName);
s32 fpcLd_Load(s16 procName);
BOOL fpcLd_Use(s16 i_procName);
BOOL fpcLd_IsLoaded(s16 i_procName);
void fpcLd_Free(s16 i_procName);
s32 fpcLd_Load(s16 i_procName);
#endif
+48 -42
View File
@@ -16,51 +16,53 @@ typedef int (*FastCreateReqFunc)(void*);
typedef void (*fpcM_ManagementFunc)(void);
typedef int (*fpcM_DrawIteraterFunc)(void*, void*);
inline fpc_ProcID fpcM_GetID(const void* pProc) {
return pProc != NULL ? ((base_process_class*)pProc)->mBsPcId : fpcM_ERROR_PROCESS_ID_e;
}
inline s16 fpcM_GetName(const void* pActor) {
return ((base_process_class*)pActor)->mProcName;
}
inline u32 fpcM_GetParam(const void* pActor) {
return ((base_process_class*)pActor)->mParameters;
inline fpc_ProcID fpcM_GetID(const void* i_process) {
return i_process != NULL ? ((base_process_class*)i_process)->id : fpcM_ERROR_PROCESS_ID_e;
}
inline void fpcM_SetParam(void* p_actor, u32 param) {
((base_process_class*)p_actor)->mParameters = param;
inline s16 fpcM_GetName(const void* i_process) {
return ((base_process_class*)i_process)->name;
}
inline s16 fpcM_GetProfName(const void* pActor) {
return ((base_process_class*)pActor)->mBsTypeId;
inline u32 fpcM_GetParam(const void* i_process) {
return ((base_process_class*)i_process)->parameters;
}
inline int fpcM_Create(s16 procName, FastCreateReqFunc createFunc, void* process) {
return fpcSCtRq_Request(fpcLy_CurrentLayer(), procName, (stdCreateFunc)createFunc, NULL,
process);
inline void fpcM_SetParam(void* i_process, u32 param) {
((base_process_class*)i_process)->parameters = param;
}
inline s16 fpcM_DrawPriority(const void* param_0) {
return (s16)fpcLf_GetPriority((const leafdraw_class*)param_0);
inline s16 fpcM_GetProfName(const void* i_process) {
return ((base_process_class*)i_process)->profname;
}
inline s32 fpcM_ChangeLayerID(void* proc, int layerID) {
return fpcPi_Change(&((base_process_class*)proc)->mPi, layerID, 0xFFFD, 0xFFFD);
inline fpc_ProcID fpcM_Create(s16 i_procName, FastCreateReqFunc i_createFunc, void* i_append) {
return fpcSCtRq_Request(fpcLy_CurrentLayer(), i_procName, (stdCreateFunc)i_createFunc, NULL,
i_append);
}
inline s32 fpcM_IsJustType(int type1, int type2) {
return fpcBs_Is_JustOfType(type1, type2);
inline s16 fpcM_DrawPriority(const void* i_process) {
return (s16)fpcLf_GetPriority((const leafdraw_class*)i_process);
}
inline bool fpcM_IsFirstCreating(void* proc) {
return ((base_process_class*)proc)->mInitState == 0;
inline s32 fpcM_ChangeLayerID(void* i_process, int i_layerID) {
return fpcPi_Change(&((base_process_class*)i_process)->priority, i_layerID, 0xFFFD, 0xFFFD);
}
inline process_profile_definition* fpcM_GetProfile(void* proc) {
return (process_profile_definition*)((base_process_class*)proc)->mpProf;
inline BOOL fpcM_IsJustType(int i_typeA, int i_typeB) {
return fpcBs_Is_JustOfType(i_typeA, i_typeB);
}
inline void* fpcM_GetAppend(const void* proc) {
return ((base_process_class*)proc)->mpUserData;
inline bool fpcM_IsFirstCreating(void* i_process) {
return ((base_process_class*)i_process)->init_state == 0;
}
inline process_profile_definition* fpcM_GetProfile(void* i_process) {
return ((base_process_class*)i_process)->profile;
}
inline void* fpcM_GetAppend(const void* i_process) {
return ((base_process_class*)i_process)->append;
}
inline BOOL fpcM_IsExecuting(fpc_ProcID id) {
@@ -68,29 +70,33 @@ inline BOOL fpcM_IsExecuting(fpc_ProcID id) {
}
inline void* fpcM_LyJudge(process_node_class* i_node, fpcLyIt_JudgeFunc i_func, void* i_data) {
return fpcLyIt_Judge(&i_node->mLayer, i_func, i_data);
return fpcLyIt_Judge(&i_node->layer, i_func, i_data);
}
inline base_process_class* fpcM_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData) {
return fpcEx_Search(pFunc, pUserData);
inline base_process_class* fpcM_Search(fpcLyIt_JudgeFunc i_func, void* i_data) {
return fpcEx_Search(i_func, i_data);
}
inline base_process_class* fpcM_SearchByName(s16 name) {
return (base_process_class*)fpcLyIt_AllJudge(fpcSch_JudgeForPName, &name);
}
void fpcM_Draw(void* pProc);
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc);
s32 fpcM_Execute(void* pProc);
s32 fpcM_Delete(void* pProc);
BOOL fpcM_IsCreating(fpc_ProcID pID);
void fpcM_Management(fpcM_ManagementFunc pFunc1, fpcM_ManagementFunc pFunc2);
inline base_process_class* fpcM_SearchByID(fpc_ProcID i_id) {
return fpcEx_SearchByID(i_id);
}
void fpcM_Draw(void* i_process);
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc i_drawIterFunc);
s32 fpcM_Execute(void* i_process);
s32 fpcM_Delete(void* i_process);
BOOL fpcM_IsCreating(fpc_ProcID i_id);
void fpcM_Management(fpcM_ManagementFunc i_preExecuteFn, fpcM_ManagementFunc i_postExecuteFn);
void fpcM_Init();
base_process_class* fpcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3,
void* pData);
s32 fpcM_IsPause(void* pProc, u8 param_2);
void fpcM_PauseEnable(void* pProc, u8 param_2);
void fpcM_PauseDisable(void* pProc, u8 param_2);
void* fpcM_JudgeInLayer(fpc_ProcID pLayerID, fpcCtIt_JudgeFunc pFunc, void* pUserData);
base_process_class* fpcM_FastCreate(s16 i_procname, FastCreateReqFunc i_createReqFunc,
void* i_createData, void* i_append);
s32 fpcM_IsPause(void* i_process, u8 i_flag);
void fpcM_PauseEnable(void* i_process, u8 i_flag);
void fpcM_PauseDisable(void* i_process, u8 i_flag);
void* fpcM_JudgeInLayer(fpc_ProcID i_layerID, fpcCtIt_JudgeFunc i_judgeFunc, void* i_data);
#endif
+9 -14
View File
@@ -7,21 +7,16 @@
typedef int (*process_method_func)(void*);
typedef struct process_method_class {
process_method_func mpCreateFunc;
process_method_func mpDeleteFunc;
process_method_func mpExecuteFunc;
process_method_func mpIsDeleteFunc;
/* 0x0 */ process_method_func create_method;
/* 0x4 */ process_method_func delete_method;
/* 0x8 */ process_method_func execute_method;
/* 0xC */ process_method_func is_delete_method;
} process_method_class;
s32 fpcMtd_Method(process_method_func pFunc, void* pUserData);
s32 fpcMtd_Execute(process_method_class* pMthd, void* pUserData);
s32 fpcMtd_IsDelete(process_method_class* pMthd, void* pUserData);
s32 fpcMtd_Delete(process_method_class* pMthd, void* pUserData);
s32 fpcMtd_Create(process_method_class* pMthd, void* pUserData);
extern "C" {
void fpcMtd_Execute__FP20process_method_classPv(void);
void fpcMtd_Create__FP20process_method_classPv(void);
}
s32 fpcMtd_Method(process_method_func i_method, void* i_process);
s32 fpcMtd_Execute(process_method_class* i_methods, void* i_process);
s32 fpcMtd_IsDelete(process_method_class* i_methods, void* i_process);
s32 fpcMtd_Delete(process_method_class* i_methods, void* i_process);
s32 fpcMtd_Create(process_method_class* i_methods, void* i_process);
#endif
+1 -1
View File
@@ -8,6 +8,6 @@ typedef struct node_list_class node_list_class;
typedef int (*fpcMtdIt_MethodFunc)(void*);
void fpcMtdIt_Method(node_list_class* pList, fpcMtdIt_MethodFunc pMethod);
int fpcMtdIt_Method(node_list_class* pList, fpcMtdIt_MethodFunc pMethod);
#endif
+7 -7
View File
@@ -7,14 +7,14 @@
typedef int (*process_method_tag_func)(void*);
typedef struct process_method_tag_class {
create_tag_class mCreateTag;
process_method_tag_func mpFunc;
void* mpMthdData;
/* 0x00 */ create_tag_class create_tag;
/* 0x14 */ process_method_tag_func method;
/* 0x18 */ void* data;
} process_method_tag_class;
s32 fpcMtdTg_Do(process_method_tag_class* pMthd);
s32 fpcMtdTg_ToMethodQ(node_list_class* pList, process_method_tag_class* pMthd);
void fpcMtdTg_MethodQTo(process_method_tag_class* pMthd);
s32 fpcMtdTg_Init(process_method_tag_class* pMthd, process_method_tag_func pFunc, void* pMthdData);
s32 fpcMtdTg_Do(process_method_tag_class* i_methodTag);
s32 fpcMtdTg_ToMethodQ(node_list_class* i_nodelist, process_method_tag_class* i_methodTag);
void fpcMtdTg_MethodQTo(process_method_tag_class* i_methodTag);
s32 fpcMtdTg_Init(process_method_tag_class* i_methodTag, process_method_tag_func i_method, void* i_data);
#endif
+9 -9
View File
@@ -8,21 +8,21 @@
#include "f_pc/f_pc_profile.h"
typedef struct nodedraw_method_class {
process_method_class mBase;
process_method_func mpDrawFunc;
/* 0x00 */ process_method_class base;
/* 0x10 */ process_method_func draw_method;
} nodedraw_method_class;
typedef struct process_node_class {
/* 0x00 */ base_process_class mBase;
/* 0xB8 */ nodedraw_method_class* mpNodeMtd;
/* 0xBC */ layer_class mLayer;
/* 0xE8 */ node_list_class mLayerNodeLists[16];
/* 0x1A8 */ s8 mUnk0;
/* 0x000 */ base_process_class base;
/* 0x0B8 */ nodedraw_method_class* nodedraw_method;
/* 0x0BC */ layer_class layer;
/* 0x0E8 */ node_list_class layer_nodelist[16];
/* 0x1A8 */ s8 unk_0x1A8;
} process_node_class;
typedef struct node_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x1C */ process_method_class* sub_method; // Subclass methods
/* 0x00 */ process_profile_definition base;
/* 0x1C */ process_method_class* sub_methods;
} node_process_profile_definition;
s32 fpcNd_DrawMethod(nodedraw_method_class* pNodeMethod, void* pData);
+46 -45
View File
@@ -10,62 +10,63 @@ typedef struct layer_class layer_class;
typedef struct process_node_class process_node_class;
typedef struct node_create_request_method_class {
process_method_func mpExecuteFunc;
process_method_func mpCancelFunc;
process_method_func mpUnkFunc;
process_method_func mpPostMethodFunc;
/* 0x0 */ process_method_func execute_method;
/* 0x4 */ process_method_func cancel_method;
/* 0x8 */ process_method_func delete_method;
/* 0xC */ process_method_func post_method;
} node_create_request_method_class;
// needed to match struct copy
typedef struct unk_process_node_class {
process_node_class* mpNodeProc;
u32 mProcId;
/* 0x0 */ process_node_class* node;
/* 0x4 */ fpc_ProcID id;
} unk_process_node_class;
typedef struct node_create_request {
create_tag_class mCreateTag;
process_method_tag_class mProcMthCls;
request_of_phase_process_class mReqPhsProc;
cPhs__Handler* mpPhsHandler;
node_create_request_method_class* mpNodeCrReqMthCls;
s32 mParameter;
s32 mRequestId;
unk_process_node_class mNodeProc;
layer_class* mpLayerClass;
u32 mCreatingID;
s16 mProcName;
void* mpUserData;
s16 unk_0x60;
/* 0x00 */ create_tag_class create_tag;
/* 0x14 */ process_method_tag_class method_tag;
/* 0x30 */ request_of_phase_process_class phase_request;
/* 0x38 */ cPhs__Handler* phase_handler;
/* 0x3C */ node_create_request_method_class* create_req_methods;
/* 0x40 */ s32 parameters;
/* 0x44 */ fpc_ProcID request_id;
/* 0x48 */ unk_process_node_class node_proc;
/* 0x50 */ layer_class* layer;
/* 0x54 */ fpc_ProcID creating_id;
/* 0x58 */ s16 name;
/* 0x5C */ void* data;
/* 0x60 */ s16 unk_0x60;
} node_create_request; // Size: 0x64
typedef struct request_node_class {
node_class mBase;
node_create_request* mNodeCrReq;
/* 0x0 */ node_class node;
/* 0x4 */ node_create_request* node_create_req;
} request_node_class;
void fpcNdRq_RequestQTo(node_create_request* pNodeCreateReq);
void fpcNdRq_ToRequestQ(node_create_request* pNodeCreateReq);
s32 fpcNdRq_phase_IsCreated(node_create_request* pNodeCreateReq);
s32 fpcNdRq_phase_Create(node_create_request* pNodeCreateReq);
s32 fpcNdRq_phase_IsDeleteTiming(node_create_request* pNodeCreateReq);
s32 fpcNdRq_phase_IsDeleted(node_create_request* pNodeCreateReq);
s32 fpcNdRq_phase_Delete(node_create_request* pNodeCreateReq);
s32 fpcNdRq_DoPhase(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Execute(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Delete(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Cancel(node_create_request* pNodeCreateReq);
s32 fpcNdRq_Handler(void);
s32 fpcNdRq_IsPossibleTarget(process_node_class* pProcNode);
s32 fpcNdRq_IsIng(process_node_class* pProcNode);
node_create_request* fpcNdRq_Create(u32 pRequestSize);
node_create_request* fpcNdRq_ChangeNode(u32 pRequestSize, process_node_class* pProcNode,
s16 param_3, void* param_4);
node_create_request* fpcNdRq_DeleteNode(u32 pRequestSize, process_node_class* pProcNode);
node_create_request* fpcNdRq_CreateNode(u32 pRequestSize, s16 param_2, void* param_3);
void fpcNdRq_RequestQTo(node_create_request* i_request);
void fpcNdRq_ToRequestQ(node_create_request* i_request);
s32 fpcNdRq_phase_IsCreated(node_create_request* i_request);
s32 fpcNdRq_phase_Create(node_create_request* i_request);
s32 fpcNdRq_phase_IsDeleteTiming(node_create_request* i_request);
s32 fpcNdRq_phase_IsDeleted(node_create_request* i_request);
s32 fpcNdRq_phase_Delete(node_create_request* i_request);
s32 fpcNdRq_DoPhase(node_create_request* i_request);
s32 fpcNdRq_Execute(node_create_request* i_request);
s32 fpcNdRq_Delete(node_create_request* i_request);
s32 fpcNdRq_Cancel(node_create_request* i_request);
s32 fpcNdRq_Handler();
s32 fpcNdRq_IsPossibleTarget(process_node_class* i_procNode);
s32 fpcNdRq_IsIng(process_node_class* i_procNode);
node_create_request* fpcNdRq_Create(u32 i_requestSize);
node_create_request* fpcNdRq_ChangeNode(u32 i_requestSize, process_node_class* i_procNode,
s16 i_procName, void* i_data);
node_create_request* fpcNdRq_DeleteNode(u32 i_requestSize, process_node_class* i_procNode);
node_create_request* fpcNdRq_CreateNode(u32 i_requestSize, s16 i_procName, void* i_data);
node_create_request*
fpcNdRq_Request(u32 param_1, int param_2, process_node_class* param_3, s16 param_4,
void* param_5, node_create_request_method_class* pNodeCreateRequestMethodClass);
s32 fpcNdRq_ReChangeNode(fpc_ProcID pRequestId, s16 param_2, void* param_3);
s32 fpcNdRq_ReRequest(fpc_ProcID pRequestId, s16 param_2, void* param_3);
fpcNdRq_Request(u32 i_requestSize, int i_reqType,
process_node_class* i_procNode, s16 i_procName, void* i_data,
node_create_request_method_class* i_create_req_methods);
s32 fpcNdRq_ReChangeNode(fpc_ProcID i_requestID, s16 i_procName, void* i_data);
s32 fpcNdRq_ReRequest(fpc_ProcID i_requestID, s16 i_procName, void* i_data);
#endif
+8 -7
View File
@@ -7,19 +7,20 @@
enum {
fpcPi_CURRENT_e = 0xFFFD,
fpcPi_SPECIAL_e = 0xFFFE,
fpcPi_NONE_e = 0xFFFF,
};
typedef struct process_priority_queue_info {
u32 mLayer;
u16 mListID;
u16 mListPrio;
/* 0x0 */ unsigned int layer_id;
/* 0x4 */ u16 list_id;
/* 0x6 */ u16 list_priority;
} process_priority_queue_info;
typedef struct process_priority_class {
/* 0x00 */ create_tag_class mBase;
/* 0x14 */ process_method_tag_class mMtdTag;
/* 0x30 */ process_priority_queue_info mInfoQ;
/* 0x38 */ process_priority_queue_info mInfoCurr;
/* 0x00 */ create_tag_class base;
/* 0x14 */ process_method_tag_class method_tag;
/* 0x30 */ process_priority_queue_info queue_info;
/* 0x38 */ process_priority_queue_info current_info;
} process_priority_class;
s32 fpcPi_IsInQueue(process_priority_class* pPi);
+9 -9
View File
@@ -9,20 +9,20 @@ typedef struct leafdraw_method_class leafdraw_method_class;
typedef struct process_method_class process_method_class;
typedef struct process_profile_definition {
/* 0x00 */ s32 mLayerID;
/* 0x04 */ u16 mListID;
/* 0x06 */ u16 mListPrio;
/* 0x08 */ s16 mProcName;
/* 0x0C */ process_method_class* sub_method; // Subclass methods
/* 0x10 */ s32 mSize;
/* 0x14 */ s32 mSizeOther;
/* 0x18 */ s32 mParameters;
/* 0x00 */ unsigned int layer_id;
/* 0x04 */ u16 list_id;
/* 0x06 */ u16 list_priority;
/* 0x08 */ s16 name;
/* 0x0C */ process_method_class* methods;
/* 0x10 */ u32 process_size;
/* 0x14 */ u32 unk_size;
/* 0x18 */ u32 parameters;
} process_profile_definition;
#define LAYER_DEFAULT (-2)
struct leaf_process_profile_definition;
process_profile_definition* fpcPf_Get(s16 profileID);
process_profile_definition* fpcPf_Get(s16 i_profname);
extern process_profile_definition** g_fpcPf_ProfileList_p;
#endif
+801
View File
@@ -0,0 +1,801 @@
#ifndef F_PC_PROFILE_LST_H_
#define F_PC_PROFILE_LST_H_
#include "f_pc/f_pc_profile.h"
extern process_profile_definition g_profile_ALINK;
extern process_profile_definition g_profile_NO_CHG_ROOM;
extern process_profile_definition g_profile_ITEM;
extern process_profile_definition g_profile_CAMERA;
extern process_profile_definition g_profile_CAMERA2;
extern process_profile_definition g_profile_ENVSE;
extern process_profile_definition g_profile_GAMEOVER;
extern process_profile_definition g_profile_KANKYO;
extern process_profile_definition g_profile_KYEFF;
extern process_profile_definition g_profile_KYEFF2;
extern process_profile_definition g_profile_KY_THUNDER;
extern process_profile_definition g_profile_MENUWINDOW;
extern process_profile_definition g_profile_METER2;
extern process_profile_definition g_profile_MSG_OBJECT;
extern process_profile_definition g_profile_OVERLAP0;
extern process_profile_definition g_profile_OVERLAP1;
extern process_profile_definition g_profile_OVERLAP6;
extern process_profile_definition g_profile_OVERLAP7;
extern process_profile_definition g_profile_OVERLAP8;
extern process_profile_definition g_profile_OVERLAP9;
extern process_profile_definition g_profile_OVERLAP10;
extern process_profile_definition g_profile_OVERLAP11;
extern process_profile_definition g_profile_OVERLAP2;
extern process_profile_definition g_profile_OVERLAP3;
extern process_profile_definition g_profile_LOGO_SCENE;
extern process_profile_definition g_profile_MENU_SCENE;
extern process_profile_definition g_profile_NAME_SCENE;
extern process_profile_definition g_profile_NAMEEX_SCENE;
extern process_profile_definition g_profile_PLAY_SCENE;
extern process_profile_definition g_profile_OPENING_SCENE;
extern process_profile_definition g_profile_ROOM_SCENE;
extern process_profile_definition g_profile_WARNING_SCENE;
extern process_profile_definition g_profile_WARNING2_SCENE;
extern process_profile_definition g_profile_TIMER;
extern process_profile_definition g_profile_WMARK;
extern process_profile_definition g_profile_WPILLAR;
extern process_profile_definition g_profile_ANDSW;
extern process_profile_definition g_profile_BG;
extern process_profile_definition g_profile_BG_OBJ;
extern process_profile_definition g_profile_DMIDNA;
extern process_profile_definition g_profile_DBDOOR;
extern process_profile_definition g_profile_KNOB20;
extern process_profile_definition g_profile_DOOR20;
extern process_profile_definition g_profile_SPIRAL_DOOR;
extern process_profile_definition g_profile_DSHUTTER;
extern process_profile_definition g_profile_EP;
extern process_profile_definition g_profile_HITOBJ;
extern process_profile_definition g_profile_KYTAG00;
extern process_profile_definition g_profile_KYTAG04;
extern process_profile_definition g_profile_KYTAG17;
extern process_profile_definition g_profile_OBJ_BEF;
extern process_profile_definition g_profile_Obj_BurnBox;
extern process_profile_definition g_profile_Obj_Carry;
extern process_profile_definition g_profile_OBJ_ITO;
extern process_profile_definition g_profile_Obj_Movebox;
extern process_profile_definition g_profile_Obj_Swpush;
extern process_profile_definition g_profile_Obj_Timer;
extern process_profile_definition g_profile_PATH_LINE;
extern process_profile_definition g_profile_SCENE_EXIT;
extern process_profile_definition g_profile_SET_BG_OBJ;
extern process_profile_definition g_profile_SWHIT0;
extern process_profile_definition g_profile_TAG_ALLMATO;
extern process_profile_definition g_profile_TAG_CAMERA;
extern process_profile_definition g_profile_TAG_CHKPOINT;
extern process_profile_definition g_profile_TAG_EVENT;
extern process_profile_definition g_profile_TAG_EVT;
extern process_profile_definition g_profile_TAG_EVTAREA;
extern process_profile_definition g_profile_TAG_EVTMSG;
extern process_profile_definition g_profile_TAG_HOWL;
extern process_profile_definition g_profile_TAG_KMSG;
extern process_profile_definition g_profile_TAG_LANTERN;
extern process_profile_definition g_profile_Tag_Mist;
extern process_profile_definition g_profile_TAG_MSG;
extern process_profile_definition g_profile_TAG_PUSH;
extern process_profile_definition g_profile_TAG_TELOP;
extern process_profile_definition g_profile_TBOX;
extern process_profile_definition g_profile_TBOX2;
extern process_profile_definition g_profile_VRBOX;
extern process_profile_definition g_profile_VRBOX2;
extern process_profile_definition g_profile_ARROW;
extern process_profile_definition g_profile_BOOMERANG;
extern process_profile_definition g_profile_CROD;
extern process_profile_definition g_profile_DEMO00;
extern process_profile_definition g_profile_DISAPPEAR;
extern process_profile_definition g_profile_MG_ROD;
extern process_profile_definition g_profile_MIDNA;
extern process_profile_definition g_profile_NBOMB;
extern process_profile_definition g_profile_Obj_LifeContainer;
extern process_profile_definition g_profile_Obj_Yousei;
extern process_profile_definition g_profile_SPINNER;
extern process_profile_definition g_profile_SUSPEND;
extern process_profile_definition g_profile_Tag_Attp;
extern process_profile_definition g_profile_ALLDIE;
extern process_profile_definition g_profile_ANDSW2;
extern process_profile_definition g_profile_BD;
extern process_profile_definition g_profile_CANOE;
extern process_profile_definition g_profile_CSTAF;
extern process_profile_definition g_profile_Demo_Item;
extern process_profile_definition g_profile_L1BOSS_DOOR;
extern process_profile_definition g_profile_E_DN;
extern process_profile_definition g_profile_E_FM;
extern process_profile_definition g_profile_E_GA;
extern process_profile_definition g_profile_E_HB;
extern process_profile_definition g_profile_E_NEST;
extern process_profile_definition g_profile_E_RD;
extern process_profile_definition g_profile_ECONT;
extern process_profile_definition g_profile_FR;
extern process_profile_definition g_profile_GRASS;
extern process_profile_definition g_profile_KYTAG05;
extern process_profile_definition g_profile_KYTAG10;
extern process_profile_definition g_profile_KYTAG11;
extern process_profile_definition g_profile_KYTAG14;
extern process_profile_definition g_profile_MG_FISH;
extern process_profile_definition g_profile_NPC_BESU;
extern process_profile_definition g_profile_NPC_FAIRY_SEIREI;
extern process_profile_definition g_profile_NPC_FISH;
extern process_profile_definition g_profile_NPC_HENNA;
extern process_profile_definition g_profile_NPC_KAKASHI;
extern process_profile_definition g_profile_NPC_KKRI;
extern process_profile_definition g_profile_NPC_KOLIN;
extern process_profile_definition g_profile_NPC_MARO;
extern process_profile_definition g_profile_NPC_TARO;
extern process_profile_definition g_profile_NPC_TKJ;
extern process_profile_definition g_profile_Obj_BHASHI;
extern process_profile_definition g_profile_Obj_BkDoor;
extern process_profile_definition g_profile_Obj_BossWarp;
extern process_profile_definition g_profile_Obj_Cboard;
extern process_profile_definition g_profile_Obj_Digpl;
extern process_profile_definition g_profile_Obj_Eff;
extern process_profile_definition g_profile_OBJ_FMOBJ;
extern process_profile_definition g_profile_Obj_GpTaru;
extern process_profile_definition g_profile_Obj_HHASHI;
extern process_profile_definition g_profile_OBJ_KANBAN2;
extern process_profile_definition g_profile_OBJ_KBACKET;
extern process_profile_definition g_profile_Obj_KkrGate;
extern process_profile_definition g_profile_Obj_KLift00;
extern process_profile_definition g_profile_Tag_KtOnFire;
extern process_profile_definition g_profile_Obj_Ladder;
extern process_profile_definition g_profile_Obj_Lv2Candle;
extern process_profile_definition g_profile_Obj_MagneArm;
extern process_profile_definition g_profile_Obj_MetalBox;
extern process_profile_definition g_profile_Obj_MGate;
extern process_profile_definition g_profile_Obj_NamePlate;
extern process_profile_definition g_profile_Obj_OnCloth;
extern process_profile_definition g_profile_Obj_RopeBridge;
extern process_profile_definition g_profile_Obj_SwallShutter;
extern process_profile_definition g_profile_OBJ_STICK;
extern process_profile_definition g_profile_Obj_StoneMark;
extern process_profile_definition g_profile_Obj_Swpropeller;
extern process_profile_definition g_profile_Obj_Swpush5;
extern process_profile_definition g_profile_Obj_Yobikusa;
extern process_profile_definition g_profile_SCENE_EXIT2;
extern process_profile_definition g_profile_ShopItem;
extern process_profile_definition g_profile_SQ;
extern process_profile_definition g_profile_SWC00;
extern process_profile_definition g_profile_Tag_CstaSw;
extern process_profile_definition g_profile_Tag_AJnot;
extern process_profile_definition g_profile_Tag_AttackItem;
extern process_profile_definition g_profile_Tag_Gstart;
extern process_profile_definition g_profile_Tag_Hinit;
extern process_profile_definition g_profile_Tag_Hjump;
extern process_profile_definition g_profile_Tag_Hstop;
extern process_profile_definition g_profile_Tag_Lv2PrChk;
extern process_profile_definition g_profile_Tag_Magne;
extern process_profile_definition g_profile_Tag_Mhint;
extern process_profile_definition g_profile_Tag_Mstop;
extern process_profile_definition g_profile_Tag_Spring;
extern process_profile_definition g_profile_Tag_Statue;
extern process_profile_definition g_profile_Ykgr;
extern process_profile_definition g_profile_DR;
extern process_profile_definition g_profile_L7lowDr;
extern process_profile_definition g_profile_L7ODR;
extern process_profile_definition g_profile_B_BH;
extern process_profile_definition g_profile_B_BQ;
extern process_profile_definition g_profile_B_DR;
extern process_profile_definition g_profile_B_DRE;
extern process_profile_definition g_profile_B_DS;
extern process_profile_definition g_profile_B_GG;
extern process_profile_definition g_profile_B_GM;
extern process_profile_definition g_profile_B_GND;
extern process_profile_definition g_profile_B_GO;
extern process_profile_definition g_profile_B_GOS;
extern process_profile_definition g_profile_B_MGN;
extern process_profile_definition g_profile_B_OB;
extern process_profile_definition g_profile_B_OH;
extern process_profile_definition g_profile_B_OH2;
extern process_profile_definition g_profile_B_TN;
extern process_profile_definition g_profile_B_YO;
extern process_profile_definition g_profile_B_YOI;
extern process_profile_definition g_profile_B_ZANT;
extern process_profile_definition g_profile_B_ZANTM;
extern process_profile_definition g_profile_B_ZANTZ;
extern process_profile_definition g_profile_B_ZANTS;
extern process_profile_definition g_profile_BALLOON2D;
extern process_profile_definition g_profile_BULLET;
extern process_profile_definition g_profile_COACH2D;
extern process_profile_definition g_profile_COACH_FIRE;
extern process_profile_definition g_profile_COW;
extern process_profile_definition g_profile_CSTATUE;
extern process_profile_definition g_profile_DO;
extern process_profile_definition g_profile_BOSS_DOOR;
extern process_profile_definition g_profile_L5BOSS_DOOR;
extern process_profile_definition g_profile_L1MBOSS_DOOR;
extern process_profile_definition g_profile_PushDoor;
extern process_profile_definition g_profile_E_AI;
extern process_profile_definition g_profile_E_ARROW;
extern process_profile_definition g_profile_E_BA;
extern process_profile_definition g_profile_E_BEE;
extern process_profile_definition g_profile_E_BG;
extern process_profile_definition g_profile_E_BI;
extern process_profile_definition g_profile_E_BI_LEAF;
extern process_profile_definition g_profile_E_BS;
extern process_profile_definition g_profile_E_BU;
extern process_profile_definition g_profile_E_BUG;
extern process_profile_definition g_profile_E_CR;
extern process_profile_definition g_profile_E_CR_EGG;
extern process_profile_definition g_profile_E_DB;
extern process_profile_definition g_profile_E_DB_LEAF;
extern process_profile_definition g_profile_E_DD;
extern process_profile_definition g_profile_E_DF;
extern process_profile_definition g_profile_E_DK;
extern process_profile_definition g_profile_E_DT;
extern process_profile_definition g_profile_E_FB;
extern process_profile_definition g_profile_E_FK;
extern process_profile_definition g_profile_E_FS;
extern process_profile_definition g_profile_E_FZ;
extern process_profile_definition g_profile_E_GB;
extern process_profile_definition g_profile_E_GE;
extern process_profile_definition g_profile_E_GI;
extern process_profile_definition g_profile_E_GM;
extern process_profile_definition g_profile_E_GOB;
extern process_profile_definition g_profile_E_GS;
extern process_profile_definition g_profile_E_HB_LEAF;
extern process_profile_definition g_profile_E_HM;
extern process_profile_definition g_profile_E_HP;
extern process_profile_definition g_profile_E_HZ;
extern process_profile_definition g_profile_E_HZELDA;
extern process_profile_definition g_profile_E_IS;
extern process_profile_definition g_profile_E_KG;
extern process_profile_definition g_profile_E_KK;
extern process_profile_definition g_profile_E_KR;
extern process_profile_definition g_profile_E_MB;
extern process_profile_definition g_profile_E_MD;
extern process_profile_definition g_profile_E_MF;
extern process_profile_definition g_profile_E_MK;
extern process_profile_definition g_profile_E_MK_BO;
extern process_profile_definition g_profile_E_MM;
extern process_profile_definition g_profile_E_MM_MT;
extern process_profile_definition g_profile_E_MS;
extern process_profile_definition g_profile_E_NZ;
extern process_profile_definition g_profile_E_OC;
extern process_profile_definition g_profile_E_OctBg;
extern process_profile_definition g_profile_E_OT;
extern process_profile_definition g_profile_E_PH;
extern process_profile_definition g_profile_E_PM;
extern process_profile_definition g_profile_E_PO;
extern process_profile_definition g_profile_E_PZ;
extern process_profile_definition g_profile_E_RB;
extern process_profile_definition g_profile_E_RDB;
extern process_profile_definition g_profile_E_RDY;
extern process_profile_definition g_profile_E_S1;
extern process_profile_definition g_profile_E_SB;
extern process_profile_definition g_profile_E_SF;
extern process_profile_definition g_profile_E_SG;
extern process_profile_definition g_profile_E_SH;
extern process_profile_definition g_profile_E_SM;
extern process_profile_definition g_profile_E_SM2;
extern process_profile_definition g_profile_E_ST;
extern process_profile_definition g_profile_E_ST_LINE;
extern process_profile_definition g_profile_E_SW;
extern process_profile_definition g_profile_E_TH;
extern process_profile_definition g_profile_E_TH_BALL;
extern process_profile_definition g_profile_E_TK;
extern process_profile_definition g_profile_E_TK2;
extern process_profile_definition g_profile_E_TK_BALL;
extern process_profile_definition g_profile_E_TT;
extern process_profile_definition g_profile_E_VT;
extern process_profile_definition g_profile_E_WAP;
extern process_profile_definition g_profile_E_WB;
extern process_profile_definition g_profile_E_WS;
extern process_profile_definition g_profile_E_WW;
extern process_profile_definition g_profile_E_YC;
extern process_profile_definition g_profile_E_YD;
extern process_profile_definition g_profile_E_YD_LEAF;
extern process_profile_definition g_profile_E_YG;
extern process_profile_definition g_profile_E_YH;
extern process_profile_definition g_profile_E_YK;
extern process_profile_definition g_profile_E_YM;
extern process_profile_definition g_profile_E_YM_TAG;
extern process_profile_definition g_profile_E_YMB;
extern process_profile_definition g_profile_E_YR;
extern process_profile_definition g_profile_E_ZH;
extern process_profile_definition g_profile_E_ZM;
extern process_profile_definition g_profile_E_ZS;
extern process_profile_definition g_profile_FORMATION_MNG;
extern process_profile_definition g_profile_GUARD_MNG;
extern process_profile_definition g_profile_HORSE;
extern process_profile_definition g_profile_HOZELDA;
extern process_profile_definition g_profile_Izumi_Gate;
extern process_profile_definition g_profile_KAGO;
extern process_profile_definition g_profile_KYTAG01;
extern process_profile_definition g_profile_KYTAG02;
extern process_profile_definition g_profile_KYTAG03;
extern process_profile_definition g_profile_KYTAG06;
extern process_profile_definition g_profile_KYTAG07;
extern process_profile_definition g_profile_KYTAG08;
extern process_profile_definition g_profile_KYTAG09;
extern process_profile_definition g_profile_KYTAG12;
extern process_profile_definition g_profile_KYTAG13;
extern process_profile_definition g_profile_KYTAG15;
extern process_profile_definition g_profile_KYTAG16;
extern process_profile_definition g_profile_MANT;
extern process_profile_definition g_profile_FSHOP;
extern process_profile_definition g_profile_MIRROR;
extern process_profile_definition g_profile_MOVIE_PLAYER;
extern process_profile_definition g_profile_MYNA;
extern process_profile_definition g_profile_NI;
extern process_profile_definition g_profile_NPC_ARU;
extern process_profile_definition g_profile_NPC_ASH;
extern process_profile_definition g_profile_NPC_ASHB;
extern process_profile_definition g_profile_NPC_BANS;
extern process_profile_definition g_profile_NPC_BLUENS;
extern process_profile_definition g_profile_NPC_BOU;
extern process_profile_definition g_profile_NPC_BOU_S;
extern process_profile_definition g_profile_NPC_CD3;
extern process_profile_definition g_profile_NPC_CHAT;
extern process_profile_definition g_profile_NPC_CHIN;
extern process_profile_definition g_profile_NPC_CLERKA;
extern process_profile_definition g_profile_NPC_CLERKB;
extern process_profile_definition g_profile_NPC_CLERKT;
extern process_profile_definition g_profile_NPC_COACH;
extern process_profile_definition g_profile_NPC_DF;
extern process_profile_definition g_profile_NPC_DOC;
extern process_profile_definition g_profile_NPC_DOORBOY;
extern process_profile_definition g_profile_NPC_DRSOL;
extern process_profile_definition g_profile_NPC_DU;
extern process_profile_definition g_profile_NPC_FAIRY;
extern process_profile_definition g_profile_NPC_FGUARD;
extern process_profile_definition g_profile_NPC_GND;
extern process_profile_definition g_profile_NPC_GRA;
extern process_profile_definition g_profile_NPC_GRC;
extern process_profile_definition g_profile_NPC_GRD;
extern process_profile_definition g_profile_NPC_GRM;
extern process_profile_definition g_profile_NPC_GRMC;
extern process_profile_definition g_profile_NPC_GRO;
extern process_profile_definition g_profile_NPC_GRR;
extern process_profile_definition g_profile_NPC_GRS;
extern process_profile_definition g_profile_NPC_GRZ;
extern process_profile_definition g_profile_NPC_GUARD;
extern process_profile_definition g_profile_NPC_GWOLF;
extern process_profile_definition g_profile_NPC_HANJO;
extern process_profile_definition g_profile_NPC_HENNA0;
extern process_profile_definition g_profile_NPC_HOZ;
extern process_profile_definition g_profile_NPC_IMPAL;
extern process_profile_definition g_profile_NPC_INKO;
extern process_profile_definition g_profile_NPC_INS;
extern process_profile_definition g_profile_NPC_JAGAR;
extern process_profile_definition g_profile_NPC_KASIHANA;
extern process_profile_definition g_profile_NPC_KASIKYU;
extern process_profile_definition g_profile_NPC_KASIMICH;
extern process_profile_definition g_profile_NPC_KDK;
extern process_profile_definition g_profile_NPC_KN;
extern process_profile_definition g_profile_NPC_KNJ;
extern process_profile_definition g_profile_NPC_KOLINB;
extern process_profile_definition g_profile_NPC_KS;
extern process_profile_definition g_profile_NPC_KYURY;
extern process_profile_definition g_profile_NPC_LEN;
extern process_profile_definition g_profile_NPC_LF;
extern process_profile_definition g_profile_NPC_LUD;
extern process_profile_definition g_profile_NPC_MIDP;
extern process_profile_definition g_profile_NPC_MK;
extern process_profile_definition g_profile_NPC_MOI;
extern process_profile_definition g_profile_NPC_MOIR;
extern process_profile_definition g_profile_MYNA2;
extern process_profile_definition g_profile_NPC_NE;
extern process_profile_definition g_profile_NPC_P2;
extern process_profile_definition g_profile_NPC_PACHI_BESU;
extern process_profile_definition g_profile_NPC_PACHI_MARO;
extern process_profile_definition g_profile_NPC_PACHI_TARO;
extern process_profile_definition g_profile_NPC_PASSER;
extern process_profile_definition g_profile_NPC_PASSER2;
extern process_profile_definition g_profile_NPC_POST;
extern process_profile_definition g_profile_NPC_POUYA;
extern process_profile_definition g_profile_NPC_PRAYER;
extern process_profile_definition g_profile_NPC_RACA;
extern process_profile_definition g_profile_NPC_RAFREL;
extern process_profile_definition g_profile_NPC_SARU;
extern process_profile_definition g_profile_NPC_SEIB;
extern process_profile_definition g_profile_NPC_SEIC;
extern process_profile_definition g_profile_NPC_SEID;
extern process_profile_definition g_profile_NPC_SEIRA;
extern process_profile_definition g_profile_NPC_SERA2;
extern process_profile_definition g_profile_NPC_SEIREI;
extern process_profile_definition g_profile_NPC_SHAD;
extern process_profile_definition g_profile_NPC_SHAMAN;
extern process_profile_definition g_profile_NPC_SHOE;
extern process_profile_definition g_profile_NPC_SHOP0;
extern process_profile_definition g_profile_NPC_SMARO;
extern process_profile_definition g_profile_NPC_SOLA;
extern process_profile_definition g_profile_NPC_SOLDIERa;
extern process_profile_definition g_profile_NPC_SOLDIERb;
extern process_profile_definition g_profile_NPC_SQ;
extern process_profile_definition g_profile_NPC_THE;
extern process_profile_definition g_profile_NPC_THEB;
extern process_profile_definition g_profile_NPC_TK;
extern process_profile_definition g_profile_NPC_TKC;
extern process_profile_definition g_profile_NPC_TKJ2;
extern process_profile_definition g_profile_NPC_TKS;
extern process_profile_definition g_profile_NPC_TOBY;
extern process_profile_definition g_profile_NPC_TR;
extern process_profile_definition g_profile_NPC_URI;
extern process_profile_definition g_profile_NPC_WORM;
extern process_profile_definition g_profile_NPC_WRESTLER;
extern process_profile_definition g_profile_NPC_YAMID;
extern process_profile_definition g_profile_NPC_YAMIS;
extern process_profile_definition g_profile_NPC_YAMIT;
extern process_profile_definition g_profile_NPC_YELIA;
extern process_profile_definition g_profile_NPC_YKM;
extern process_profile_definition g_profile_NPC_YKW;
extern process_profile_definition g_profile_NPC_ZANB;
extern process_profile_definition g_profile_NPC_ZANT;
extern process_profile_definition g_profile_NPC_ZELR;
extern process_profile_definition g_profile_NPC_ZELRO;
extern process_profile_definition g_profile_NPC_ZELDA;
extern process_profile_definition g_profile_NPC_ZRA;
extern process_profile_definition g_profile_NPC_ZRC;
extern process_profile_definition g_profile_NPC_ZRZ;
extern process_profile_definition g_profile_Obj_Lv5Key;
extern process_profile_definition g_profile_Obj_Turara;
extern process_profile_definition g_profile_Obj_TvCdlst;
extern process_profile_definition g_profile_Obj_Ytaihou;
extern process_profile_definition g_profile_Obj_AmiShutter;
extern process_profile_definition g_profile_Obj_Ari;
extern process_profile_definition g_profile_OBJ_AUTOMATA;
extern process_profile_definition g_profile_Obj_Avalanche;
extern process_profile_definition g_profile_OBJ_BALLOON;
extern process_profile_definition g_profile_Obj_BarDesk;
extern process_profile_definition g_profile_Obj_Batta;
extern process_profile_definition g_profile_Obj_BBox;
extern process_profile_definition g_profile_OBJ_BED;
extern process_profile_definition g_profile_Obj_Bemos;
extern process_profile_definition g_profile_Obj_Bhbridge;
extern process_profile_definition g_profile_Obj_BkLeaf;
extern process_profile_definition g_profile_BkyRock;
extern process_profile_definition g_profile_Obj_BmWindow;
extern process_profile_definition g_profile_Obj_BoomShutter;
extern process_profile_definition g_profile_Obj_Bombf;
extern process_profile_definition g_profile_OBJ_BOUMATO;
extern process_profile_definition g_profile_OBJ_BRG;
extern process_profile_definition g_profile_Obj_BsGate;
extern process_profile_definition g_profile_Obj_awaPlar;
extern process_profile_definition g_profile_Obj_CatDoor;
extern process_profile_definition g_profile_OBJ_CB;
extern process_profile_definition g_profile_Obj_ChainBlock;
extern process_profile_definition g_profile_Obj_Cdoor;
extern process_profile_definition g_profile_Obj_Chandelier;
extern process_profile_definition g_profile_Obj_Chest;
extern process_profile_definition g_profile_Obj_Cho;
extern process_profile_definition g_profile_Obj_Cowdoor;
extern process_profile_definition g_profile_Obj_Crope;
extern process_profile_definition g_profile_Obj_CRVFENCE;
extern process_profile_definition g_profile_Obj_CRVGATE;
extern process_profile_definition g_profile_Obj_CRVHAHEN;
extern process_profile_definition g_profile_Obj_CRVLH_DW;
extern process_profile_definition g_profile_Obj_CRVLH_UP;
extern process_profile_definition g_profile_Obj_CRVSTEEL;
extern process_profile_definition g_profile_Obj_Crystal;
extern process_profile_definition g_profile_Obj_ChainWall;
extern process_profile_definition g_profile_Obj_DamCps;
extern process_profile_definition g_profile_Obj_Dan;
extern process_profile_definition g_profile_Obj_Digholl;
extern process_profile_definition g_profile_Obj_DigSnow;
extern process_profile_definition g_profile_Obj_Elevator;
extern process_profile_definition g_profile_Obj_Drop;
extern process_profile_definition g_profile_Obj_DUST;
extern process_profile_definition g_profile_Obj_E_CREATE;
extern process_profile_definition g_profile_Obj_FallObj;
extern process_profile_definition g_profile_Obj_Fan;
extern process_profile_definition g_profile_Obj_Fchain;
extern process_profile_definition g_profile_Obj_FireWood;
extern process_profile_definition g_profile_Obj_FireWood2;
extern process_profile_definition g_profile_Obj_FirePillar;
extern process_profile_definition g_profile_Obj_FirePillar2;
extern process_profile_definition g_profile_Obj_Flag;
extern process_profile_definition g_profile_Obj_Flag2;
extern process_profile_definition g_profile_Obj_Flag3;
extern process_profile_definition g_profile_OBJ_FOOD;
extern process_profile_definition g_profile_OBJ_FW;
extern process_profile_definition g_profile_OBJ_GADGET;
extern process_profile_definition g_profile_Obj_GanonWall;
extern process_profile_definition g_profile_Obj_GanonWall2;
extern process_profile_definition g_profile_OBJ_GB;
extern process_profile_definition g_profile_Obj_Geyser;
extern process_profile_definition g_profile_Obj_glowSphere;
extern process_profile_definition g_profile_OBJ_GM;
extern process_profile_definition g_profile_Obj_GoGate;
extern process_profile_definition g_profile_Obj_GOMIKABE;
extern process_profile_definition g_profile_OBJ_GRA;
extern process_profile_definition g_profile_GRA_WALL;
extern process_profile_definition g_profile_Obj_GraRock;
extern process_profile_definition g_profile_Obj_GraveStone;
extern process_profile_definition g_profile_GRDWATER;
extern process_profile_definition g_profile_Obj_GrzRock;
extern process_profile_definition g_profile_Obj_H_Saku;
extern process_profile_definition g_profile_Obj_HBarrel;
extern process_profile_definition g_profile_Obj_HFtr;
extern process_profile_definition g_profile_Obj_MHasu;
extern process_profile_definition g_profile_Obj_Hata;
extern process_profile_definition g_profile_OBJ_HB;
extern process_profile_definition g_profile_Obj_HBombkoya;
extern process_profile_definition g_profile_Obj_HeavySw;
extern process_profile_definition g_profile_Obj_Hfuta;
extern process_profile_definition g_profile_Obj_HsTarget;
extern process_profile_definition g_profile_Obj_Ice_l;
extern process_profile_definition g_profile_Obj_Ice_s;
extern process_profile_definition g_profile_Obj_IceBlock;
extern process_profile_definition g_profile_Obj_IceLeaf;
extern process_profile_definition g_profile_OBJ_IHASI;
extern process_profile_definition g_profile_Obj_Ikada;
extern process_profile_definition g_profile_Obj_InoBone;
extern process_profile_definition g_profile_Obj_ITA;
extern process_profile_definition g_profile_OBJ_ITAMATO;
extern process_profile_definition g_profile_Obj_Kabuto;
extern process_profile_definition g_profile_Obj_Kag;
extern process_profile_definition g_profile_OBJ_KAGE;
extern process_profile_definition g_profile_OBJ_KAGO;
extern process_profile_definition g_profile_Obj_Kaisou;
extern process_profile_definition g_profile_Obj_Kam;
extern process_profile_definition g_profile_Obj_Kantera;
extern process_profile_definition g_profile_Obj_Kat;
extern process_profile_definition g_profile_Obj_KazeNeko;
extern process_profile_definition g_profile_OBJ_KBOX;
extern process_profile_definition g_profile_OBJ_KEY;
extern process_profile_definition g_profile_OBJ_KEYHOLE;
extern process_profile_definition g_profile_OBJ_KI;
extern process_profile_definition g_profile_Obj_KiPot;
extern process_profile_definition g_profile_OBJ_KITA;
extern process_profile_definition g_profile_Obj_KJgjs;
extern process_profile_definition g_profile_Obj_KKanban;
extern process_profile_definition g_profile_KN_BULLET;
extern process_profile_definition g_profile_Obj_Kshutter;
extern process_profile_definition g_profile_Obj_Kuw;
extern process_profile_definition g_profile_Obj_KWheel00;
extern process_profile_definition g_profile_Obj_KWheel01;
extern process_profile_definition g_profile_Obj_KznkArm;
extern process_profile_definition g_profile_Obj_Laundry;
extern process_profile_definition g_profile_Obj_LndRope;
extern process_profile_definition g_profile_OBJ_LBOX;
extern process_profile_definition g_profile_OBJ_LP;
extern process_profile_definition g_profile_Obj_Lv1Cdl00;
extern process_profile_definition g_profile_Obj_Lv1Cdl01;
extern process_profile_definition g_profile_Obj_Lv3Candle;
extern process_profile_definition g_profile_Obj_Lv3Water;
extern process_profile_definition g_profile_Obj_Lv3Water2;
extern process_profile_definition g_profile_OBJ_LV3WATERB;
extern process_profile_definition g_profile_Obj_Lv3R10Saka;
extern process_profile_definition g_profile_Obj_WaterEff;
extern process_profile_definition g_profile_Tag_Lv4CandleDm;
extern process_profile_definition g_profile_Tag_Lv4Candle;
extern process_profile_definition g_profile_Obj_Lv4EdShutter;
extern process_profile_definition g_profile_Obj_Lv4Gate;
extern process_profile_definition g_profile_Obj_Lv4HsTarget;
extern process_profile_definition g_profile_Obj_Lv4PoGate;
extern process_profile_definition g_profile_Obj_Lv4RailWall;
extern process_profile_definition g_profile_Obj_Lv4SlideWall;
extern process_profile_definition g_profile_Obj_Lv4Bridge;
extern process_profile_definition g_profile_Obj_Lv4Chan;
extern process_profile_definition g_profile_Obj_Lv4DigSand;
extern process_profile_definition g_profile_Obj_Lv4Floor;
extern process_profile_definition g_profile_Obj_Lv4Gear;
extern process_profile_definition g_profile_Obj_PRElvtr;
extern process_profile_definition g_profile_Obj_Lv4PRwall;
extern process_profile_definition g_profile_Obj_Lv4Sand;
extern process_profile_definition g_profile_Obj_Lv5FBoard;
extern process_profile_definition g_profile_Obj_IceWall;
extern process_profile_definition g_profile_Obj_Lv5SwIce;
extern process_profile_definition g_profile_Obj_Ychndlr;
extern process_profile_definition g_profile_Obj_YIblltray;
extern process_profile_definition g_profile_Obj_Lv6ChgGate;
extern process_profile_definition g_profile_Obj_Lv6FuriTrap;
extern process_profile_definition g_profile_Obj_Lv6Lblock;
extern process_profile_definition g_profile_Obj_Lv6SwGate;
extern process_profile_definition g_profile_Obj_Lv6SzGate;
extern process_profile_definition g_profile_Obj_Lv6Tenbin;
extern process_profile_definition g_profile_Obj_Lv6TogeRoll;
extern process_profile_definition g_profile_Obj_Lv6TogeTrap;
extern process_profile_definition g_profile_Obj_Lv6bemos;
extern process_profile_definition g_profile_Obj_Lv6bemos2;
extern process_profile_definition g_profile_Obj_Lv6EGate;
extern process_profile_definition g_profile_Obj_Lv6ElevtA;
extern process_profile_definition g_profile_Obj_Lv6SwTurn;
extern process_profile_definition g_profile_Obj_Lv7BsGate;
extern process_profile_definition g_profile_Obj_Lv7PropY;
extern process_profile_definition g_profile_Obj_Lv7Bridge;
extern process_profile_definition g_profile_Obj_Lv8KekkaiTrap;
extern process_profile_definition g_profile_Obj_Lv8Lift;
extern process_profile_definition g_profile_Obj_Lv8OptiLift;
extern process_profile_definition g_profile_Obj_Lv8UdFloor;
extern process_profile_definition g_profile_Obj_Lv9SwShutter;
extern process_profile_definition g_profile_Obj_MagLift;
extern process_profile_definition g_profile_Obj_MagLiftRot;
extern process_profile_definition g_profile_OBJ_MAKI;
extern process_profile_definition g_profile_Obj_MasterSword;
extern process_profile_definition g_profile_Obj_Mato;
extern process_profile_definition g_profile_Obj_MHole;
extern process_profile_definition g_profile_OBJ_MIE;
extern process_profile_definition g_profile_Obj_Mirror6Pole;
extern process_profile_definition g_profile_Obj_MirrorChain;
extern process_profile_definition g_profile_Obj_MirrorSand;
extern process_profile_definition g_profile_Obj_MirrorScrew;
extern process_profile_definition g_profile_Obj_MirrorTable;
extern process_profile_definition g_profile_OBJ_MSIMA;
extern process_profile_definition g_profile_Obj_MvStair;
extern process_profile_definition g_profile_OBJ_MYOGAN;
extern process_profile_definition g_profile_Obj_Nagaisu;
extern process_profile_definition g_profile_Obj_Nan;
extern process_profile_definition g_profile_OBJ_NDOOR;
extern process_profile_definition g_profile_OBJ_NOUGU;
extern process_profile_definition g_profile_OCTHASHI;
extern process_profile_definition g_profile_OBJ_OILTUBO;
extern process_profile_definition g_profile_Obj_Onsen;
extern process_profile_definition g_profile_OBJ_ONSEN_FIRE;
extern process_profile_definition g_profile_Obj_OnsenTaru;
extern process_profile_definition g_profile_Obj_PushDoor;
extern process_profile_definition g_profile_Obj_PDtile;
extern process_profile_definition g_profile_Obj_PDwall;
extern process_profile_definition g_profile_Obj_Picture;
extern process_profile_definition g_profile_Obj_Pillar;
extern process_profile_definition g_profile_OBJ_PLEAF;
extern process_profile_definition g_profile_Obj_poCandle;
extern process_profile_definition g_profile_Obj_poFire;
extern process_profile_definition g_profile_Obj_poTbox;
extern process_profile_definition g_profile_Obj_Prop;
extern process_profile_definition g_profile_OBJ_PUMPKIN;
extern process_profile_definition g_profile_Obj_RCircle;
extern process_profile_definition g_profile_Obj_RfHole;
extern process_profile_definition g_profile_Obj_RiderGate;
extern process_profile_definition g_profile_Obj_RIVERROCK;
extern process_profile_definition g_profile_OBJ_ROCK;
extern process_profile_definition g_profile_Obj_RotBridge;
extern process_profile_definition g_profile_Obj_RotTrap;
extern process_profile_definition g_profile_OBJ_ROTEN;
extern process_profile_definition g_profile_Obj_RotStair;
extern process_profile_definition g_profile_OBJ_RW;
extern process_profile_definition g_profile_Obj_Saidan;
extern process_profile_definition g_profile_Obj_Sakuita;
extern process_profile_definition g_profile_Obj_ItaRope;
extern process_profile_definition g_profile_Obj_SCannon;
extern process_profile_definition g_profile_Obj_SCannonCrs;
extern process_profile_definition g_profile_Obj_SCannonTen;
extern process_profile_definition g_profile_OBJ_SEKIDOOR;
extern process_profile_definition g_profile_OBJ_SEKIZO;
extern process_profile_definition g_profile_OBJ_SEKIZOA;
extern process_profile_definition g_profile_Obj_Shield;
extern process_profile_definition g_profile_Obj_SM_DOOR;
extern process_profile_definition g_profile_Obj_SmallKey;
extern process_profile_definition g_profile_Obj_SmgDoor;
extern process_profile_definition g_profile_Obj_Smoke;
extern process_profile_definition g_profile_OBJ_SMTILE;
extern process_profile_definition g_profile_Obj_SmWStone;
extern process_profile_definition g_profile_Tag_SnowEff;
extern process_profile_definition g_profile_Obj_SnowSoup;
extern process_profile_definition g_profile_OBJ_SO;
extern process_profile_definition g_profile_Obj_SpinLift;
extern process_profile_definition g_profile_OBJ_SSDRINK;
extern process_profile_definition g_profile_OBJ_SSITEM;
extern process_profile_definition g_profile_Obj_StairBlock;
extern process_profile_definition g_profile_Obj_Stone;
extern process_profile_definition g_profile_Obj_Stopper;
extern process_profile_definition g_profile_Obj_Stopper2;
extern process_profile_definition g_profile_OBJ_SUISYA;
extern process_profile_definition g_profile_OBJ_SW;
extern process_profile_definition g_profile_Obj_SwBallA;
extern process_profile_definition g_profile_Obj_SwBallB;
extern process_profile_definition g_profile_Obj_SwBallC;
extern process_profile_definition g_profile_Obj_SwLight;
extern process_profile_definition g_profile_Obj_SwChain;
extern process_profile_definition g_profile_Obj_SwHang;
extern process_profile_definition g_profile_Obj_Sword;
extern process_profile_definition g_profile_Obj_Swpush2;
extern process_profile_definition g_profile_Obj_SwSpinner;
extern process_profile_definition g_profile_Obj_SwTurn;
extern process_profile_definition g_profile_Obj_SyRock;
extern process_profile_definition g_profile_Obj_SZbridge;
extern process_profile_definition g_profile_Obj_TaFence;
extern process_profile_definition g_profile_Obj_Table;
extern process_profile_definition g_profile_Obj_TakaraDai;
extern process_profile_definition g_profile_OBJ_TATIGI;
extern process_profile_definition g_profile_Obj_Ten;
extern process_profile_definition g_profile_Obj_TestCube;
extern process_profile_definition g_profile_Obj_Gake;
extern process_profile_definition g_profile_Obj_THASHI;
extern process_profile_definition g_profile_Obj_TDoor;
extern process_profile_definition g_profile_Obj_TimeFire;
extern process_profile_definition g_profile_OBJ_TKS;
extern process_profile_definition g_profile_Obj_TMoon;
extern process_profile_definition g_profile_Obj_ToaruMaki;
extern process_profile_definition g_profile_OBJ_TOBY;
extern process_profile_definition g_profile_Obj_TobyHouse;
extern process_profile_definition g_profile_Obj_TogeTrap;
extern process_profile_definition g_profile_Obj_Tombo;
extern process_profile_definition g_profile_Obj_Tornado;
extern process_profile_definition g_profile_Obj_Tornado2;
extern process_profile_definition g_profile_OBJ_TP;
extern process_profile_definition g_profile_TREESH;
extern process_profile_definition g_profile_Obj_TwGate;
extern process_profile_definition g_profile_OBJ_UDOOR;
extern process_profile_definition g_profile_OBJ_USAKU;
extern process_profile_definition g_profile_Obj_VolcGnd;
extern process_profile_definition g_profile_Obj_VolcanicBall;
extern process_profile_definition g_profile_Obj_VolcanicBomb;
extern process_profile_definition g_profile_Obj_KakarikoBrg;
extern process_profile_definition g_profile_Obj_OrdinBrg;
extern process_profile_definition g_profile_Obj_WtGate;
extern process_profile_definition g_profile_Obj_WaterPillar;
extern process_profile_definition g_profile_Obj_WaterFall;
extern process_profile_definition g_profile_Obj_Wchain;
extern process_profile_definition g_profile_Obj_WdStick;
extern process_profile_definition g_profile_OBJ_WEB0;
extern process_profile_definition g_profile_OBJ_WEB1;
extern process_profile_definition g_profile_Obj_WellCover;
extern process_profile_definition g_profile_OBJ_WFLAG;
extern process_profile_definition g_profile_Obj_WindStone;
extern process_profile_definition g_profile_Obj_Window;
extern process_profile_definition g_profile_Obj_WoodPendulum;
extern process_profile_definition g_profile_Obj_WoodStatue;
extern process_profile_definition g_profile_Obj_WoodenSword;
extern process_profile_definition g_profile_OBJ_YBAG;
extern process_profile_definition g_profile_OBJ_YSTONE;
extern process_profile_definition g_profile_Obj_ZoraCloth;
extern process_profile_definition g_profile_Obj_ZDoor;
extern process_profile_definition g_profile_Obj_zrTurara;
extern process_profile_definition g_profile_Obj_zrTuraraRc;
extern process_profile_definition g_profile_ZRA_MARK;
extern process_profile_definition g_profile_OBJ_ZRAFREEZE;
extern process_profile_definition g_profile_Obj_ZraRock;
extern process_profile_definition g_profile_PASSER_MNG;
extern process_profile_definition g_profile_PERU;
extern process_profile_definition g_profile_PPolamp;
extern process_profile_definition g_profile_SKIP2D;
extern process_profile_definition g_profile_START_AND_GOAL;
extern process_profile_definition g_profile_SwBall;
extern process_profile_definition g_profile_SwLBall;
extern process_profile_definition g_profile_SwTime;
extern process_profile_definition g_profile_Tag_Lv6Gate;
extern process_profile_definition g_profile_Tag_Lv7Gate;
extern process_profile_definition g_profile_Tag_Lv8Gate;
extern process_profile_definition g_profile_Tag_TWGate;
extern process_profile_definition g_profile_Tag_Arena;
extern process_profile_definition g_profile_Tag_Assist;
extern process_profile_definition g_profile_TAG_BTLITM;
extern process_profile_definition g_profile_Tag_ChgRestart;
extern process_profile_definition g_profile_TAG_CSW;
extern process_profile_definition g_profile_Tag_Escape;
extern process_profile_definition g_profile_Tag_FWall;
extern process_profile_definition g_profile_TAG_GRA;
extern process_profile_definition g_profile_TAG_GUARD;
extern process_profile_definition g_profile_Tag_Instruction;
extern process_profile_definition g_profile_Tag_KagoFall;
extern process_profile_definition g_profile_Tag_LightBall;
extern process_profile_definition g_profile_TAG_LV5SOUP;
extern process_profile_definition g_profile_Tag_Lv6CstaSw;
extern process_profile_definition g_profile_Tag_Mmsg;
extern process_profile_definition g_profile_Tag_Mwait;
extern process_profile_definition g_profile_TAG_MYNA2;
extern process_profile_definition g_profile_TAG_MNLIGHT;
extern process_profile_definition g_profile_TAG_PATI;
extern process_profile_definition g_profile_Tag_poFire;
extern process_profile_definition g_profile_TAG_QS;
extern process_profile_definition g_profile_Tag_RetRoom;
extern process_profile_definition g_profile_Tag_RiverBack;
extern process_profile_definition g_profile_Tag_RmbitSw;
extern process_profile_definition g_profile_Tag_Schedule;
extern process_profile_definition g_profile_Tag_SetBall;
extern process_profile_definition g_profile_Tag_Restart;
extern process_profile_definition g_profile_TAG_SHOPCAM;
extern process_profile_definition g_profile_TAG_SHOPITM;
extern process_profile_definition g_profile_Tag_SmkEmt;
extern process_profile_definition g_profile_Tag_Spinner;
extern process_profile_definition g_profile_Tag_Sppath;
extern process_profile_definition g_profile_TAG_SSDRINK;
extern process_profile_definition g_profile_Tag_Stream;
extern process_profile_definition g_profile_Tag_TheBHint;
extern process_profile_definition g_profile_Tag_WaraHowl;
extern process_profile_definition g_profile_Tag_WatchGe;
extern process_profile_definition g_profile_Tag_WaterFall;
extern process_profile_definition g_profile_Tag_Wljump;
extern process_profile_definition g_profile_TAG_YAMI;
extern process_profile_definition g_profile_TALK;
extern process_profile_definition g_profile_TBOX_SW;
extern process_profile_definition g_profile_TITLE;
extern process_profile_definition g_profile_WarpBug;
extern process_profile_definition* g_fpcPfLst_ProfileList[];
#endif /* F_PC_PROFILE_LST_H_ */
+16 -16
View File
@@ -8,23 +8,23 @@ typedef struct layer_class layer_class;
typedef int (*stdCreateFunc)(void*, void*);
typedef struct standard_create_request_class {
/* 0x00 */ create_request mBase;
/* 0x48 */ request_of_phase_process_class unk_0x48;
/* 0x50 */ s16 mLoadID;
/* 0x54 */ void* unk_0x54;
/* 0x58 */ stdCreateFunc unk_0x58;
/* 0x00 */ create_request base;
/* 0x48 */ request_of_phase_process_class phase_request;
/* 0x50 */ s16 process_name;
/* 0x54 */ void* process_append;
/* 0x58 */ stdCreateFunc create_post_method;
/* 0x5C */ void* unk_0x5C;
} standard_create_request_class;
s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* pStdCreateReq);
s32 fpcSCtRq_phase_SubCreateProcess(standard_create_request_class* pStdCreateReq);
s32 fpcSCtRq_phase_IsComplete(standard_create_request_class* pStdCreateReq);
s32 fpcSCtRq_phase_PostMethod(standard_create_request_class* pStdCreateReq);
s32 fpcSCtRq_phase_Done(standard_create_request_class*);
s32 fpcSCtRq_Handler(standard_create_request_class* pStdCreateReq);
s32 fpcSCtRq_Delete(standard_create_request_class*);
s32 fpcSCtRq_Cancel(standard_create_request_class*);
s32 fpcSCtRq_Request(layer_class* param_1, s16 param_2, stdCreateFunc param_3, void* param_4,
void* param_5);
s32 fpcSCtRq_phase_CreateProcess(standard_create_request_class* i_request);
s32 fpcSCtRq_phase_SubCreateProcess(standard_create_request_class* i_request);
s32 fpcSCtRq_phase_IsComplete(standard_create_request_class* i_request);
s32 fpcSCtRq_phase_PostMethod(standard_create_request_class* i_request);
s32 fpcSCtRq_phase_Done(standard_create_request_class* i_request);
s32 fpcSCtRq_Handler(standard_create_request_class* i_request);
s32 fpcSCtRq_Delete(standard_create_request_class* i_request);
s32 fpcSCtRq_Cancel(standard_create_request_class* i_request);
fpc_ProcID fpcSCtRq_Request(layer_class* i_layer, s16 i_procName, stdCreateFunc i_createFunc,
void* param_4, void* i_append);
#endif
#endif
+342 -71
View File
@@ -25,40 +25,48 @@ void J3DGQRSetup7(u32 r0, u32 r1, u32 r2, u32 r3) {
/* 80311670-80311760 30BFB0 00F0+00 0/0 2/2 0/0 .text J3DCalcBBoardMtx__FPA4_f */
// this uses a non-standard sqrtf, not sure why or how its supposed to be setup
static inline f32 sqrtf2(f32 x) {
if (x > 0.0f) {
f32 guess = (f32)__frsqrte(x);
return (f32)(x * guess);
}
return x;
inline f32 J3D_sqrtf(register f32 x) {
register f32 recip;
if (x > 0.0f) {
#ifdef __MWERKS__ // clang-format off
asm { frsqrte recip, x }
#endif // clang-format on
return recip * x;
}
return x;
}
void J3DCalcBBoardMtx(Mtx mtx) {
void J3DCalcBBoardMtx(register Mtx mtx) {
f32 x = (mtx[0][0] * mtx[0][0]) + (mtx[1][0] * mtx[1][0]) + (mtx[2][0] * mtx[2][0]);
f32 y = (mtx[0][1] * mtx[0][1]) + (mtx[1][1] * mtx[1][1]) + (mtx[2][1] * mtx[2][1]);
f32 z = (mtx[0][2] * mtx[0][2]) + (mtx[1][2] * mtx[1][2]) + (mtx[2][2] * mtx[2][2]);
if (x > 0.0f) {
x *= sqrtf2(x);
x = J3D_sqrtf(x);
}
if (y > 0.0f) {
y *= sqrtf2(y);
y = J3D_sqrtf(y);
}
if (z > 0.0f) {
z *= sqrtf2(z);
z = J3D_sqrtf(z);
}
register f32 zero = 0.0f;
// zero out gaps of zeroes
#ifdef __MWERKS__ // clang-format off
asm {
psq_st zero, 0x04(mtx), 0, 0
psq_st zero, 0x20(mtx), 0, 0
}
#endif // clang-format on
mtx[0][0] = x;
mtx[0][1] = 0.0f;
mtx[0][2] = 0.0f;
mtx[1][0] = 0.0f;
mtx[1][1] = y;
mtx[1][2] = 0.0f;
mtx[2][0] = 0.0f;
mtx[2][1] = 0.0f;
mtx[2][2] = z;
mtx[1][0] = zero;
mtx[1][1] = y;
mtx[1][2] = zero;
mtx[2][2] = z;
}
/* 803A1E30-803A1E50 02E490 0020+00 0/0 1/1 0/0 .rodata j3dDefaultTransformInfo */
@@ -73,13 +81,85 @@ extern Mtx const j3dDefaultMtx = {
{1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}};
/* 80311760-8031189C 30C0A0 013C+00 0/0 2/2 0/0 .text J3DCalcYBBoardMtx__FPA4_f */
void J3DCalcYBBoardMtx(f32 (*param_0)[4]) {
// NONMATCHING
void J3DCalcYBBoardMtx(Mtx mtx) {
f32 x = (mtx[0][0] * mtx[0][0]) + (mtx[1][0] * mtx[1][0]) + (mtx[2][0] * mtx[2][0]);
f32 z = (mtx[0][2] * mtx[0][2]) + (mtx[1][2] * mtx[1][2]) + (mtx[2][2] * mtx[2][2]);
if (x > 0.0f) {
x = J3D_sqrtf(x);
}
if (z > 0.0f) {
z = J3D_sqrtf(z);
}
Vec vec = { 0.0f, -mtx[2][1], mtx[1][1] };
VECNormalize(&vec, &vec);
mtx[0][0] = x;
mtx[0][2] = 0.0f;
mtx[1][0] = 0.0f;
mtx[1][2] = vec.y * z;
mtx[2][0] = 0.0f;
mtx[2][2] = vec.z * z;
}
/* 8031189C-80311964 30C1DC 00C8+00 0/0 6/6 0/0 .text J3DPSCalcInverseTranspose__FPA4_fPA3_f */
void J3DPSCalcInverseTranspose(f32 (*param_0)[4], f32 (*param_1)[3]) {
// NONMATCHING
asm void J3DPSCalcInverseTranspose(register Mtx src, register Mtx33 dst) {
#ifdef __MWERKS__ // clang-format off
psq_l f0, 0(src), 1, 0
psq_l f1, 4(src), 0, 0
psq_l f2, 16(src), 1, 0
ps_merge10 f6, f1, f0
psq_l f3, 20(src), 0, 0
psq_l f4, 32(src), 1, 0
ps_merge10 f7, f3, f2
psq_l f5, 36(src), 0, 0
ps_mul f11, f3, f6
ps_merge10 f8, f5, f4
ps_mul f13, f5, f7
ps_msub f11, f1, f7, f11
ps_mul f12, f1, f8
ps_msub f13, f3, f8, f13
ps_msub f12, f5, f6, f12
ps_mul f10, f3, f4
ps_mul f9, f0, f5
ps_mul f8, f1, f2
ps_msub f10, f2, f5, f10
ps_msub f9, f1, f4, f9
ps_msub f8, f0, f3, f8
ps_mul f7, f0, f13
ps_sub f1, f1, f1
ps_madd f7, f2, f12, f7
ps_madd f7, f4, f11, f7
ps_cmpo0 cr0, f7, f1
bne lbl_8005F118
li r3, 0
blr
lbl_8005F118:
fres f0, f7
ps_add f6, f0, f0
ps_mul f5, f0, f0
ps_nmsub f0, f7, f5, f6
ps_add f6, f0, f0
ps_mul f5, f0, f0
ps_nmsub f0, f7, f5, f6
ps_muls0 f13, f13, f0
ps_muls0 f12, f12, f0
psq_st f13, 0(dst), 0, 0
ps_muls0 f11, f11, f0
psq_st f12, 12(dst), 0, 0
ps_muls0 f10, f10, f0
psq_st f11, 24(dst), 0, 0
ps_muls0 f9, f9, f0
psq_st f10, 8(dst), 1, 0
ps_muls0 f8, f8, f0
psq_st f9, 20(r4), 1, 0
li r3, 1
psq_st f8, 32(r4), 1, 0
blr
#endif // clang-format on
}
/* 80311964-80311A24 30C2A4 00C0+00 0/0 2/2 2/2 .text
@@ -239,73 +319,264 @@ void J3DGetTextureMtxMayaOld(const J3DTextureSRTInfo& srt, Mtx dst) {
/* 80311D94-80311DF8 30C6D4 0064+00 0/0 2/2 0/0 .text J3DScaleNrmMtx__FPA4_fRC3Vec */
#ifdef NONMATCHING
void J3DScaleNrmMtx(register Mtx mtx, const register Vec& scl) {
register f32 mtx_xy, mtx_z_, scl_xy, scl_z_;
asm void J3DScaleNrmMtx(register Mtx mtx, const register Vec& scl) {
#ifdef __MWERKS__ // clang-format off
nofralloc;
asm {
/* Row 0 */
psq_l scl_xy, 0(scl), 0, 0
psq_l mtx_xy, 0(mtx), 0, 0
lfs scl_z_, 8(scl)
lfs mtx_z_, 8(mtx)
ps_mul f4, mtx_xy, scl_xy
psq_st f4, 0(mtx), 0, 0
fmuls f4, mtx_z_, scl_z_
stfs f4, 8(mtx)
psq_l fp2, 0(scl), 0, 0
psq_l fp0, 0(mtx), 0, 0
lfs fp3, 8(scl)
lfs fp1, 8(mtx)
ps_mul f4, fp0, fp2
psq_st f4, 0(mtx), 0, 0
fmuls f4, fp1, fp3
stfs f4, 8(mtx)
/* Row 1 */
psq_l scl_xy, 0(scl), 0, 0
psq_l mtx_xy, 16(mtx), 0, 0
lfs scl_z_, 8(scl)
lfs mtx_z_, 24(mtx)
ps_mul f4, mtx_xy, scl_xy
psq_st f4, 16(mtx), 0, 0
fmuls f4, mtx_z_, scl_z_
stfs f4, 24(mtx)
/* Row 1 */
psq_l fp2, 0(scl), 0, 0
psq_l fp0, 16(mtx), 0, 0
lfs fp3, 8(scl)
lfs fp1, 24(mtx)
ps_mul f4, fp0, fp2
psq_st f4, 16(mtx), 0, 0
fmuls f4, fp1, fp3
stfs f4, 24(mtx)
/* Row 2 */
psq_l scl_xy, 0(scl), 0, 0
psq_l mtx_xy, 32(mtx), 0, 0
lfs scl_z_, 8(scl)
lfs mtx_z_, 40(mtx)
ps_mul f4, mtx_xy, scl_xy
psq_st f4, 32(mtx), 0, 0
fmuls f4, mtx_z_, scl_z_
stfs f4, 40(mtx)
}
/* Row 2 */
psq_l fp2, 0(scl), 0, 0
psq_l fp0, 32(mtx), 0, 0
lfs fp3, 8(scl)
lfs fp1, 40(mtx)
ps_mul f4, fp0, fp2
psq_st f4, 32(mtx), 0, 0
fmuls f4, fp1, fp3
stfs f4, 40(mtx)
blr
#endif // clang-format on
}
#else
void J3DScaleNrmMtx(f32 (*param_0)[4], Vec const& param_1) {
// NONMATCHING
}
#endif
/* 80311DF8-80311E4C 30C738 0054+00 0/0 5/5 0/0 .text J3DScaleNrmMtx33__FPA3_fRC3Vec */
void J3DScaleNrmMtx33(f32 (*param_0)[3], Vec const& param_1) {
// NONMATCHING
asm void J3DScaleNrmMtx33(register Mtx33 mtx, const register Vec& scale) {
#ifdef __MWERKS__ // clang-format off
psq_l f0, 0(mtx), 0, 0
psq_l f6, 0(scale), 0, 0
lfs f1, 8(mtx)
lfs f7, 8(scale)
ps_mul f0, f0, f6
psq_l f2, 12(mtx), 0, 0
fmuls f1, f1, f7
lfs f3, 0x14(mtx)
ps_mul f2, f2, f6
psq_l f4, 24(mtx), 0, 0
fmuls f3, f3, f7
lfs f5, 0x20(mtx)
ps_mul f4, f4, f6
psq_st f0, 0(mtx), 0, 0
fmuls f5, f5, f7
stfs f1, 8(mtx)
psq_st f2, 12(mtx), 0, 0
stfs f3, 0x14(mtx)
psq_st f4, 24(mtx), 0, 0
stfs f5, 0x20(mtx)
blr
#endif // clang-format on
}
/* 80311E4C-80311F70 30C78C 0124+00 0/0 3/3 0/0 .text J3DMtxProjConcat__FPA4_fPA4_fPA4_f
*/
void J3DMtxProjConcat(f32 (*param_0)[4], f32 (*param_1)[4], f32 (*param_2)[4]) {
// NONMATCHING
asm void J3DMtxProjConcat(register Mtx mtx1, register Mtx mtx2, register Mtx dst) {
#ifdef __MWERKS__ // clang-format off
psq_l f2, 0(mtx1), 0, 0
psq_l f3, 8(mtx1), 0, 0
ps_merge00 f6, f2, f2
ps_merge11 f7, f2, f2
ps_merge00 f8, f3, f3
ps_merge11 f9, f3, f3
psq_l f10, 0(mtx2), 0, 0
psq_l f11, 16(mtx2), 0, 0
psq_l f12, 32(mtx2), 0, 0
psq_l f13, 48(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 0(dst), 0, 0
psq_l f10, 8(mtx2), 0, 0
psq_l f11, 24(mtx2), 0, 0
psq_l f12, 40(mtx2), 0, 0
psq_l f13, 56(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 8(dst), 0, 0
psq_l f2, 16(mtx1), 0, 0
psq_l f3, 24(mtx1), 0, 0
ps_merge00 f6, f2, f2
ps_merge11 f7, f2, f2
ps_merge00 f8, f3, f3
ps_merge11 f9, f3, f3
psq_l f10, 0(mtx2), 0, 0
psq_l f11, 16(mtx2), 0, 0
psq_l f12, 32(mtx2), 0, 0
psq_l f13, 48(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 16(dst), 0, 0
psq_l f10, 8(mtx2), 0, 0
psq_l f11, 24(mtx2), 0, 0
psq_l f12, 40(mtx2), 0, 0
psq_l f13, 56(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 24(dst), 0, 0
psq_l f2, 32(mtx1), 0, 0
psq_l f3, 40(mtx1), 0, 0
ps_merge00 f6, f2, f2
ps_merge11 f7, f2, f2
ps_merge00 f8, f3, f3
ps_merge11 f9, f3, f3
psq_l f10, 0(mtx2), 0, 0
psq_l f11, 16(mtx2), 0, 0
psq_l f12, 32(mtx2), 0, 0
psq_l f13, 48(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 32(dst), 0, 0
psq_l f10, 8(mtx2), 0, 0
psq_l f11, 24(mtx2), 0, 0
psq_l f12, 40(mtx2), 0, 0
psq_l f13, 56(mtx2), 0, 0
ps_mul f0, f6, f10
ps_madd f0, f7, f11, f0
ps_madd f0, f8, f12, f0
ps_madd f0, f9, f13, f0
psq_st f0, 40(dst), 0, 0
blr
#endif // clang-format on
}
/* ############################################################################################## */
/* 80450958-80450960 0003D8 0008+00 1/1 0/0 0/0 .sdata Unit01 */
static f32 Unit01[2] = {
0.0f, 1.0f
};
/* 80311F70-8031204C 30C8B0 00DC+00 0/0 1/1 0/0 .text J3DPSMtxArrayConcat__FPA4_fPA4_fPA4_fUl */
void J3DPSMtxArrayConcat(f32 (*param_0)[4], f32 (*param_1)[4], f32 (*param_2)[4], u32 param_3) {
// NONMATCHING
}
#ifdef __MWERKS__ // clang-format off
asm void J3DPSMtxArrayConcat(register Mtx mA, register Mtx mB, register Mtx mAB, register u32 count) {
#define FP0 fp0
#define FP1 fp1
#define FP2 fp2
#define FP3 fp3
#define FP4 fp4
#define FP5 fp5
#define FP6 fp6
#define FP7 fp7
#define FP8 fp8
#define FP9 fp9
#define FP10 fp10
#define FP11 fp11
#define FP12 fp12
#define FP13 fp13
#define FP14 fp14
#define FP15 fp15
#define FP31 fp31
#define UNIT_R r7
// this is just PSMtxConcat???
nofralloc
stwu sp, -0x40(sp)
stfd FP14, 0x08(sp)
addis UNIT_R, 0, Unit01@ha
stfd FP15, 0x10(sp)
addi UNIT_R, UNIT_R, Unit01@l
stfd FP31, 0x28(sp)
subi mB, mB, 0x08
subi mAB, mAB, 0x08
mtctr count
loop:
psq_l FP0, 0x00(mA), 0, 0
psq_l FP6, 0x08(mB), 0, 0
psq_l FP7, 0x10(mB), 0, 0
psq_l FP8, 0x18(mB), 0, 0
ps_muls0 FP12, FP6, FP0
psq_l FP2, 0x10(mA), 0, 0
ps_muls0 FP13, FP7, FP0
psq_l FP31, 0x00(UNIT_R), 0, 0
ps_muls0 FP14, FP6, FP2
psq_l FP9, 0x20(mB), 0, 0
ps_muls0 FP15, FP7, FP2
psq_l FP1, 0x08(mA), 0, 0
ps_madds1 FP12, FP8, FP0, FP12
psq_l FP3, 0x18(mA), 0, 0
ps_madds1 FP14, FP8, FP2, FP14
psq_l FP10, 0x28(mB), 0, 0
ps_madds1 FP13, FP9, FP0, FP13
psq_lu FP11, 0x30(mB), 0, 0
ps_madds1 FP15, FP9, FP2, FP15
psq_l FP4, 0x20(mA), 0, 0
psq_l FP5, 0x28(mA), 0, 0
ps_madds0 FP12, FP10, FP1, FP12
ps_madds0 FP13, FP11, FP1, FP13
ps_madds0 FP14, FP10, FP3, FP14
ps_madds0 FP15, FP11, FP3, FP15
psq_st FP12, 0x08(mAB), 0, 0
ps_muls0 FP2, FP6, FP4
ps_madds1 FP13, FP31, FP1, FP13
ps_muls0 FP0, FP7, FP4
psq_st FP14, 0x18(mAB), 0, 0
ps_madds1 FP15, FP31, FP3, FP15
psq_st FP13, 0x10(mAB), 0, 0
ps_madds1 FP2, FP8, FP4, FP2
ps_madds1 FP0, FP9, FP4, FP0
ps_madds0 FP2, FP10, FP5, FP2
psq_st FP15, 0x20(mAB), 0, 0
ps_madds0 FP0, FP11, FP5, FP0
psq_st FP2, 0x28(mAB), 0, 0
ps_madds1 FP0, FP31, FP5, FP0
psq_stu FP0, 0x30(mAB), 0, 0
bdnz loop
lfd FP14, 0x08(sp)
lfd FP15, 0x10(sp)
lfd FP31, 0x28(sp)
addi sp, sp, 0x40
blr
#undef FP0
#undef FP1
#undef FP2
#undef FP3
#undef FP4
#undef FP5
#undef FP6
#undef FP7
#undef FP8
#undef FP9
#undef FP10
#undef FP11
#undef FP12
#undef FP13
#undef FP14
#undef FP15
#undef FP31
#undef UNIT_R
}
#endif // clang-format on
/* ############################################################################################## */
/* 803CD8F8-803CD900 02AA18 0008+00 0/0 2/2 0/0 .data PSMulUnit01 */
extern f32 PSMulUnit01[2] = {
extern f32 PSMulUnit01[] = {
0.0f,
-1.0f,
};
-241
View File
@@ -4,222 +4,6 @@
//
#include "JSystem/JGadget/std-vector.h"
#include "dolphin/types.h"
#include "algorithm.h"
//
// Types:
//
namespace JGadget {
struct vector {
/* 802DCCC8 */ static u32 extend_default(u32, u32, u32);
};
template <typename T>
struct TAllocator {
void destroy(T* item) {}
void deallocate(T* mem, u32 size) {
DeallocateRaw(mem);
}
void DeallocateRaw(T* mem) {
delete mem;
}
T* allocate(u32 count, void *param_2) {
return AllocateRaw(count * sizeof(T));
}
T* AllocateRaw(u32 size) {
return (T*)new char[size];
}
u8 field_0x0;
};
/* TAllocator<void*> */
struct TAllocator__template0 {};
typedef u32 (*extendFunc)(u32, u32, u32);
template <typename T, typename Allocator = JGadget::TAllocator<T> >
struct TVector {
struct TDestructed_deallocate_ {
TDestructed_deallocate_(Allocator* allocator, T* addr) {
mAllocator = allocator;
mAddr = addr;
}
void set(T* addr) {
mAddr = addr;
}
inline ~TDestructed_deallocate_() {
mAllocator->deallocate(mAddr, 0);
}
Allocator* mAllocator;
T* mAddr;
};
TVector(Allocator const& param_0) {
field_0x0 = param_0;
pBegin_ = NULL;
pEnd_ = pBegin_;
mCapacity = 0;
pfnExtend_ = JGadget::vector::extend_default;
}
~TVector() {
clear();
field_0x0.deallocate(pBegin_, 0);
}
T* insert(T* pos, const T& val) {
u32 diff = (u32)pos - (u32)begin();
insert(pos, 1, val);
return pBegin_ + diff;
}
void insert(T* pos, u32 count, const T& val) {
if (count != 0) {
T* this_00 = Insert_raw(pos, count);
if (this_00 != end()) {
std::uninitialized_fill_n(this_00, count, val);
}
}
}
T* Insert_raw(T* pos, u32 count) {
if (count == 0) {
return pos;
}
if (mCapacity < count + size()) {
u32 uVar4 = GetSize_extend_(count);
T* ppvVar5 = field_0x0.allocate(uVar4, NULL);
if (ppvVar5 == NULL) {
pos = end();
} else {
TDestructed_deallocate_ aTStack_30(&field_0x0, ppvVar5);
T* ppvVar6 = std::uninitialized_copy(pBegin_, pos, ppvVar5);
std::uninitialized_copy(pos, pEnd_, ppvVar6 + count);
DestroyElement_all_();
aTStack_30.set(pBegin_);
u32 uVar2 = (u32)pEnd_ - (u32)pBegin_;
pEnd_ = ppvVar5 + count + (uVar2 / 4);
pBegin_ = ppvVar5;
mCapacity = uVar4;
pos = ppvVar6;
}
} else {
T* ppvVar5 = pos + count;
if (ppvVar5 < pEnd_) {
T* ppvVar6 = pEnd_ - count;
std::uninitialized_copy(ppvVar6, pEnd_, pEnd_);
std::copy_backward(pos, ppvVar6, pEnd_);
DestroyElement_(pos, ppvVar5);
pEnd_ += count;
} else {
std::uninitialized_copy(pos, pEnd_, ppvVar5);
DestroyElement_(pos, pEnd_);
pEnd_ += count;
}
}
return pos;
}
T* begin() {
return pBegin_;
}
T* end() {
return pEnd_;
}
u32 size() {
if (pBegin_ == 0) {
return 0;
}
return ((u32)pEnd_ - (u32)pBegin_) / 4;
}
u32 capacity() { return mCapacity; }
u32 GetSize_extend_(u32 count) {
u32 iVar2 = size();
u32 uVar3 = capacity();
u32 uVar4 = pfnExtend_(uVar3, iVar2, count);
if (uVar4 < iVar2 + count) {
uVar4 = iVar2 + count;
}
return uVar4;
}
void DestroyElement_(T* start, T* end) {
for (; start != end; start++) {
field_0x0.destroy(start);
}
}
void DestroyElement_all_() {
DestroyElement_(pBegin_, pEnd_);
}
T* erase(T* start, T* end) {
T* vectorEnd = pEnd_;
T* ppvVar3 = std::copy(end, vectorEnd, start);
DestroyElement_(ppvVar3, pEnd_);
pEnd_ = ppvVar3;
return start;
}
void clear() {
erase(begin(), end());
}
Allocator field_0x0;
T* pBegin_;
T* pEnd_;
u32 mCapacity;
extendFunc pfnExtend_;
};
/* TVector<void*, JGadget::TAllocator<void*>> */
struct TVector__template0 {
/* 802DD130 */ void func_802DD130(void* _this, void**, void* const&);
/* 802DCE1C */ void func_802DCE1C(void* _this, void**, u32, void* const&);
/* 802DCE8C */ void func_802DCE8C(void* _this, void**, u32);
};
struct TVector_pointer_void : public TVector<void*> {
/* 802DCCD0 */ TVector_pointer_void(JGadget::TAllocator<void*> const&);
/* 802DCCFC */ ~TVector_pointer_void();
/* 802DCDA4 */ void insert(void**, void* const&);
/* 802DCDC4 */ void** erase(void**, void**);
};
}; // namespace JGadget
//
// Forward References:
//
extern "C" void extend_default__Q27JGadget6vectorFUlUlUl();
extern "C" void func_802DCCD0();
extern "C" void __dt__Q27JGadget20TVector_pointer_voidFv();
extern "C" void insert__Q27JGadget20TVector_pointer_voidFPPvRCPv();
extern "C" void erase__Q27JGadget20TVector_pointer_voidFPPvPPv();
extern "C" void func_802DCE1C(void* _this, void**, u32, void* const&);
extern "C" void func_802DCE8C(void* _this, void**, u32);
extern "C" void func_802DD130(void* _this, void**, void* const&);
//
// External References:
//
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* 802DCCC8-802DCCD0 2D7608 0008+00 1/1 0/0 0/0 .text extend_default__Q27JGadget6vectorFUlUlUl */
u32 JGadget::vector::extend_default(u32 param_0, u32 param_1, u32 param_2) {
@@ -237,37 +21,12 @@ JGadget::TVector_pointer_void::~TVector_pointer_void() {
/* 802DCDA4-802DCDC4 2D76E4 0020+00 0/0 1/1 0/0 .text
* insert__Q27JGadget20TVector_pointer_voidFPPvRCPv */
// the entire function chain needs work
#ifdef NONMATCHING
void JGadget::TVector_pointer_void::insert(void** param_0, void* const& param_1) {
TVector<void*>::insert(param_0, param_1);
}
#else
void JGadget::TVector_pointer_void::insert(void** param_0, void* const& param_1) {
// NONMATCHING
}
#endif
/* 802DCDC4-802DCE1C 2D7704 0058+00 0/0 1/1 0/0 .text
* erase__Q27JGadget20TVector_pointer_voidFPPvPPv */
void** JGadget::TVector_pointer_void::erase(void** param_0, void** param_1) {
return TVector<void*>::erase(param_0, param_1);
}
/* 802DCE1C-802DCE8C 2D775C 0070+00 1/1 0/0 0/0 .text
* insert__Q27JGadget38TVector<Pv,Q27JGadget14TAllocator<Pv>>FPPvUlRCPv */
extern "C" void func_802DCE1C(void* _this, void** param_0, u32 param_1, void* const& param_2) {
// NONMATCHING
}
/* 802DCE8C-802DD130 2D77CC 02A4+00 1/1 0/0 0/0 .text
* Insert_raw__Q27JGadget38TVector<Pv,Q27JGadget14TAllocator<Pv>>FPPvUl */
extern "C" void func_802DCE8C(void* _this, void** param_0, u32 param_1) {
// NONMATCHING
}
/* 802DD130-802DD188 2D7A70 0058+00 1/1 0/0 0/0 .text
* insert__Q27JGadget38TVector<Pv,Q27JGadget14TAllocator<Pv>>FPPvRCPv */
extern "C" void func_802DD130(void* _this, void** param_0, void* const& param_1) {
// NONMATCHING
}
+88 -17
View File
@@ -4,8 +4,9 @@
//
#include "JSystem/JMessage/resource.h"
#include "string.h"
#include <algorithm.h>
#include "dol2asm.h"
#include "string.h"
//
// Types:
@@ -64,12 +65,81 @@ extern "C" f32 ga4cSignature__Q28JMessage4data[1 + 1 /* padding */];
/* 802A8CDC-802A8EC0 2A361C 01E4+00 0/0 1/1 0/0 .text
* toMessageIndex_messageID__Q28JMessage9TResourceCFUlUlPb */
u16 JMessage::TResource::toMessageIndex_messageID(u32 param_0, u32 param_1,
bool* param_2) const {
// NONMATCHING
// NONMATCHING - instruction order
u16 JMessage::TResource::toMessageIndex_messageID(u32 lowerHalf, u32 upperHalf,
bool* isMsgValid) const {
if (!mMessageID.get()) {
return 0xFFFF;
}
u32 val = -1;
bool check = true;
switch (mMessageID.get_formSupplement()) {
case 0:
if (upperHalf) {
check = false;
}
val = lowerHalf;
break;
case 1:
if (lowerHalf > 0xFFFFFF || upperHalf > 0xFF) {
check = false;
}
val = ((lowerHalf << 8) & 0xFFFFFF00) | (upperHalf & 0xFF);
break;
case 2:
if (lowerHalf > 0xFFFF || upperHalf > 0xFFFF) {
check = false;
}
val = ((lowerHalf << 16) & 0xFFFF0000) | (upperHalf & 0xFFFF);
break;
case 3:
if (lowerHalf > 0xFF || upperHalf > 0xFFFFFF) {
check = false;
}
val = ((lowerHalf << 24) & 0xFF000000) | (upperHalf & 0x00FFFFFF);
break;
case 4:
if (lowerHalf) {
check = false;
}
val = upperHalf;
break;
default:
return 0xFFFF;
}
if (isMsgValid) {
*isMsgValid = check;
}
if (val == 0xFFFFFFFF) {
return 0xFFFF;
}
const u32* first = (u32*)mMessageID.getContent();
const u32* last = (u32*)(first + mMessageID.get_number());
const u32* lower;
if (mMessageID.get_isOrdered()) {
lower = std::lower_bound<const u32*, u32>(first, last, val);
if (lower == last || *lower != val) {
return 0xFFFF;
}
} else {
lower = first;
while (lower != last && *lower != val) {
lower++;
}
if (lower == last) {
return 0xFFFF;
}
}
return (lower - first);
}
/* ############################################################################################## */
/* 803C9C80-803C9C94 -00001 0014+00 1/1 0/0 0/0 .data
* sapfnParseCharacter___Q28JMessage18TResourceContainer */
JMessage::locale::parseCharacter_function JMessage::TResourceContainer::sapfnParseCharacter_[5] = {
@@ -115,15 +185,19 @@ JMessage::TResourceContainer::TCResource::TCResource() {
/* 802A8EF8-802A8F6C 2A3838 0074+00 1/0 2/2 0/0 .text
* __dt__Q38JMessage18TResourceContainer10TCResourceFv */
// need to fix TLinkList_factory vtable stuff
// JMessage::TResourceContainer::TCResource::~TCResource() {
extern "C" void __dt__Q38JMessage18TResourceContainer10TCResourceFv() {
// NONMATCHING
}
JMessage::TResourceContainer::TCResource::~TCResource() {}
/* 802A8F6C-802A8FFC 2A38AC 0090+00 0/0 1/1 0/0 .text
* Get_groupID__Q38JMessage18TResourceContainer10TCResourceFUs */
JMessage::TResource* JMessage::TResourceContainer::TCResource::Get_groupID(u16 param_0) {
// NONMATCHING
// NONMATCHING
JMessage::TResource* JMessage::TResourceContainer::TCResource::Get_groupID(u16 groupID) {
JGadget::TContainerEnumerator<TResource, 0> enumerator(this);
while (enumerator) {
const TResource* res = &(*enumerator);
if (res->field_0xc.get_groupID() == groupID)
return (TResource*)res;
}
return NULL;
}
/* 802A8FFC-802A9048 2A393C 004C+00 1/0 0/0 0/0 .text
@@ -169,10 +243,7 @@ JMessage::TParse::TParse(JMessage::TResourceContainer* pContainer) {
}
/* 802A9158-802A91B8 2A3A98 0060+00 1/0 0/0 0/0 .text __dt__Q28JMessage6TParseFv */
// JMessage::TParse::~TParse() {
extern "C" void __dt__Q28JMessage6TParseFv() {
// NONMATCHING
}
JMessage::TParse::~TParse() {}
/* 802A91B8-802A92F4 2A3AF8 013C+00 1/0 0/0 0/0 .text
* parseHeader_next__Q28JMessage6TParseFPPCvPUlUl */
@@ -253,7 +324,7 @@ int JMessage::locale::parseCharacter_2Byte(char const** string) {
}
/* 802A94D4-802A9528 2A3E14 0054+00 1/1 0/0 0/0 .text lower_bound<PCUl,Ul>__3stdFPCUlPCUlRCUl */
extern "C" void func_802A94D4(void* _this, u32 const* param_0, u32 const* param_1,
/* extern "C" void func_802A94D4(void* _this, u32 const* param_0, u32 const* param_1,
u32 const& param_2) {
// NONMATCHING
}
} */
+2 -2
View File
@@ -190,7 +190,7 @@ JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) {
return 0;
}
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = mList.begin();
std::advance(aiStack_14, param_0);
std::advance_fake(aiStack_14, param_0);
return &*aiStack_14;
}
@@ -302,4 +302,4 @@ extern "C" void func_802815B4(void* _this, JGadget::TLinkList<JStudio::ctb::TObj
JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
// NONMATCHING
}
}
@@ -1,9 +1,30 @@
#ifndef MSL_ALGORITHM_H_
#define MSL_ALGORITHM_H_
#include <string.h>
#include <iterator.h>
namespace std {
template <class ForwardIterator, class T>
ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, const T& val);
ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, const T& val) {
typedef typename iterator_traits<ForwardIterator>::difference_type difference_type;
difference_type len = std::distance(first, last);
while (len > 0) {
ForwardIterator i = first;
difference_type step = len / 2;
std::advance(i, step);
if (*i < val) {
first = ++i;
len -= step + 1;
} else {
len = step;
}
}
return first;
}
template <class ForwardIterator, class T>
ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, const T& val);
@@ -53,12 +74,45 @@ inline OutputIt copy(InputIt first, InputIt last,
return d_first;
}
template<class BidirIt1, class BidirIt2>
inline BidirIt2 copy_backward(BidirIt1 first, BidirIt1 last, BidirIt2 d_last) {
while (first != last) {
*(--d_last) = *(--last);
}
return d_last;
template <class BidirectionalIterator1, class BidirectionalIterator2>
inline BidirectionalIterator2 copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result) {
while (last != first)
*--result = *--last;
return result;
}
template <class T, bool A>
struct __copy_backward
{
static T* copy_backward(T* first, T* last, T* result)
{
while (last > first)
*--result = *--last;
return result;
}
};
template <class T>
struct __copy_backward<T, true>
{
static T* copy_backward(T* first, T* last, T* result)
{
#ifdef DEBUG
size_t n = static_cast<size_t>(last - first);
result -= n;
memmove(result, first, n*sizeof(T));
return result;
#else
while (last > first)
*--result = *--last;
return result;
#endif
}
};
template <class T>
inline T* copy_backward(T* first, T* last, T* result) {
return __copy_backward<T, true>::copy_backward(first, last, result);
}
} // namespace std
@@ -2,20 +2,92 @@
#define MSL_ITERATOR_H_
namespace std {
template< class InputIt, class Distance >
inline void advance( InputIt& it, Distance n) {
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag : public input_iterator_tag {};
struct bidirectional_iterator_tag : public forward_iterator_tag {};
struct random_access_iterator_tag : public bidirectional_iterator_tag {};
template <class Iterator>
struct iterator_traits {
typedef typename Iterator::difference_type difference_type;
typedef typename Iterator::value_type value_type;
typedef typename Iterator::pointer pointer;
typedef typename Iterator::reference reference;
typedef typename Iterator::iterator_category iterator_category;
};
template <class T>
struct iterator_traits<T*> {
typedef ptrdiff_t difference_type;
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef random_access_iterator_tag iterator_category;
};
template <class InputIterator, class Distance>
inline void __advance(InputIterator& i, Distance n, input_iterator_tag) {
for (; n > 0; --n)
++i;
}
template <class BidirectionalIterator, class Distance>
inline void __advance(BidirectionalIterator& i, Distance n, bidirectional_iterator_tag) {
if (n >= 0)
for (; n > 0; --n)
++i;
else
for (; n < 0; ++n)
--i;
}
template <class RandomAccessIterator, class Distance>
inline void __advance(RandomAccessIterator& i, Distance n, random_access_iterator_tag) {
i += n;
}
template <class InputIterator, class Distance>
inline void advance(InputIterator& i, Distance n) {
__advance(i, n, typename iterator_traits<InputIterator>::iterator_category());
}
// TODO: combine this with above later
template <class InputIt, class Distance>
inline void advance_fake(InputIt& it, Distance n) {
while (n > 0) {
--n;
++it;
}
}
template <class InputIterator>
inline typename iterator_traits<InputIterator>::difference_type
__distance(InputIterator first, InputIterator last, input_iterator_tag) {
typename iterator_traits<InputIterator>::difference_type result = 0;
for (; first != last; ++first)
++result;
return result;
}
template <class RandomAccessIterator>
inline typename iterator_traits<RandomAccessIterator>::difference_type
__distance(RandomAccessIterator first, RandomAccessIterator last, random_access_iterator_tag) {
return last - first;
}
template <class InputIterator>
inline typename iterator_traits<InputIterator>::difference_type distance(InputIterator first,
InputIterator last) {
return __distance(first, last, typename iterator_traits<InputIterator>::iterator_category());
}
// This needs to be defined with gcc concepts or something similar. Workaround.
template< class InputIt, class Distance >
inline void advance_pointer( InputIt& it, Distance n) {
template <class InputIt, class Distance>
inline void advance_pointer(InputIt& it, Distance n) {
it += n;
}
}
} // namespace std
#endif
#endif
@@ -5,20 +5,47 @@ namespace std {
template<class ForwardIt, class Size, class T>
inline ForwardIt uninitialized_fill_n(ForwardIt first, Size count, const T& value) {
for (; count > 0; ++first, (void) --count) {
*first = value;
for (; count--; ++first) {
if (first != NULL) {
*first = value;
}
}
return first;
}
template<class InputIt, class NoThrowForwardIt>
inline NoThrowForwardIt uninitialized_copy(InputIt first, InputIt last, NoThrowForwardIt d_first) {
for (; first != last; ++first, ++d_first) {
*d_first = *first;
template<class InputIterator, class ForwardIterator>
inline ForwardIterator __uninitialized_copy(InputIterator first, InputIterator last, ForwardIterator result) {
ForwardIterator __save = result;
for (; first != last; ++first, ++result) {
*result = *first;
}
return d_first;
return result;
}
template <class T, bool A, bool B>
struct __uninitialized_copy_helper {
static T* uninitialized_copy(T* first, T* last, T* result) {
return __uninitialized_copy(first, last, result);
}
};
template <class T>
struct __uninitialized_copy_helper<T, true, false>
{
static T* uninitialized_copy(T* first, T* last, T* result)
{
for (; first < last; ++result, ++first)
*result = *first;
return result;
}
};
template <class T>
inline T* uninitialized_copy(T* first, T* last, T* result) {
return __uninitialized_copy_helper<T, true, false>::uninitialized_copy(first, last, result);
}
}
#endif
#endif
+9 -9
View File
@@ -7,8 +7,8 @@
/* 802667D4-80266800 261114 002C+00 0/0 3/3 0/0 .text cReq_Is_Done__FP18request_base_class */
int cReq_Is_Done(request_base_class* i_this) {
if (i_this->field_0x0.flag1 == 1) {
i_this->field_0x0.flag1 = 0;
if (i_this->flag1 == 1) {
i_this->flag1 = 0;
return 1;
}
return 0;
@@ -17,9 +17,9 @@ int cReq_Is_Done(request_base_class* i_this) {
/* 80266800-80266830 261140 0030+00 0/0 3/3 0/0 .text cReq_Done__FP18request_base_class
*/
void cReq_Done(request_base_class* i_this) {
i_this->field_0x0.flag0 = 0;
i_this->field_0x0.flag1 = 1;
i_this->field_0x0.flag2 = 0;
i_this->flag0 = 0;
i_this->flag1 = 1;
i_this->flag2 = 0;
}
/* 80266830-80266850 261170 0020+00 0/0 2/2 0/0 .text cReq_Command__FP18request_base_classUc */
@@ -29,7 +29,7 @@ void cReq_Command(request_base_class* i_this, u8 param_1) {
/* 80266850-80266880 261190 0030+00 1/1 2/2 0/0 .text cReq_Create__FP18request_base_classUc */
void cReq_Create(request_base_class* i_this, u8 param_1) {
i_this->field_0x0.flag0 = 1;
i_this->field_0x0.flag1 = 0;
i_this->field_0x0.flag2 = param_1;
}
i_this->flag0 = 1;
i_this->flag1 = 0;
i_this->flag2 = param_1;
}
+2 -2
View File
@@ -462,7 +462,7 @@ extern actor_process_profile_definition g_profile_DR = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_DR, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daDr_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -474,4 +474,4 @@ extern actor_process_profile_definition g_profile_DR = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 805AA4C8-805AA4C8 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805AA4C8-805AA4C8 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -288,7 +288,7 @@ extern actor_process_profile_definition g_profile_L7lowDr = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_L7lowDr, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daL7lowDr_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -300,4 +300,4 @@ extern actor_process_profile_definition g_profile_L7lowDr = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 805AAFB0-805AAFB0 00003C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805AAFB0-805AAFB0 00003C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -887,7 +887,7 @@ extern actor_process_profile_definition g_profile_L7ODR = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_L7ODR, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daL7ODR_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -982,4 +982,4 @@ extern "C" void __as__4cXyzFRC4cXyz() {
// NONMATCHING
}
/* 805AE0AC-805AE0AC 00015C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805AE0AC-805AE0AC 00015C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+1 -1
View File
@@ -5339,7 +5339,7 @@ extern actor_process_profile_definition g_profile_ALINK = {
5,
fpcPi_CURRENT_e,
PROC_ALINK,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(daAlink_c),
0,
0,
+4 -4
View File
@@ -1129,10 +1129,10 @@ BOOL daAlink_c::checkEndMessage(u32 param_0) {
msg_class* msg = fopMsgM_SearchByID(mMsgClassID);
if (msg != NULL) {
if (msg->mMode == 14) {
msg->mMode = 16;
} else if (msg->mMode == 0x12) {
msg->mMode = 0x13;
if (msg->mode == 14) {
msg->mode = 16;
} else if (msg->mode == 0x12) {
msg->mode = 0x13;
return 1;
}
}
+2 -2
View File
@@ -212,8 +212,8 @@ void daAlink_c::preKandelaarDraw() {
field_0x32c8 = 0;
}
f32 near = dComIfGd_getView()->mNear;
f32 far = dComIfGd_getView()->mFar;
f32 near = dComIfGd_getView()->near;
f32 far = dComIfGd_getView()->far;
mDoLib_pos2camera(&mKandelaarFlamePos, &proj);
proj.z += 30.0f;
+1 -1
View File
@@ -208,7 +208,7 @@ extern actor_process_profile_definition g_profile_ALLDIE = {
2,
fpcPi_CURRENT_e,
PROC_ALLDIE,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(daAlldie_c),
0,
0,
+2 -2
View File
@@ -79,7 +79,7 @@ extern actor_process_profile_definition g_profile_ANDSW = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_ANDSW, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daAndsw_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -89,4 +89,4 @@ extern actor_process_profile_definition g_profile_ANDSW = {
0x40000, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
};
+2 -2
View File
@@ -368,7 +368,7 @@ extern actor_process_profile_definition g_profile_ANDSW2 = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_ANDSW2, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daAndsw2_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -378,4 +378,4 @@ extern actor_process_profile_definition g_profile_ANDSW2 = {
0x44000, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_6_e, // cullType
};
};
+1 -1
View File
@@ -1292,7 +1292,7 @@ extern actor_process_profile_definition g_profile_ARROW = {
9, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_ARROW, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daArrow_c), // mSize
0, // mSizeOther
0, // mParameters
+2 -2
View File
@@ -294,7 +294,7 @@ extern actor_process_profile_definition g_profile_B_BH = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_BH, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(b_bh_class), // mSize
0, // mSizeOther
0, // mParameters
@@ -1202,4 +1202,4 @@ static u8 data_805B3478[4];
static u8 data_805B347C[4];
#pragma pop
/* 805B322C-805B322C 0000EC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805B322C-805B322C 0000EC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+4 -4
View File
@@ -1434,8 +1434,8 @@ static void demo_camera(b_bq_class* i_this) {
daPy_getPlayerActorClass()->changeOriginalDemo();
i_this->mDemoCamEye = camera0->mLookat.mEye;
i_this->mDemoCamCenter = camera0->mLookat.mCenter;
i_this->mDemoCamEye = camera0->lookat.eye;
i_this->mDemoCamCenter = camera0->lookat.center;
dComIfGp_getEvent().startCheckSkipEdge(i_this);
// fallthrough
@@ -2693,7 +2693,7 @@ extern actor_process_profile_definition g_profile_B_BQ = {
7,
fpcPi_CURRENT_e,
PROC_B_BQ,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(b_bq_class),
0,
0,
@@ -2703,4 +2703,4 @@ extern actor_process_profile_definition g_profile_B_BQ = {
0x44000,
fopAc_ENEMY_e,
fopAc_CULLBOX_CUSTOM_e,
};
};
+2 -2
View File
@@ -724,7 +724,7 @@ extern actor_process_profile_definition g_profile_B_DR = {
4, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_DR, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_DR_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -3088,4 +3088,4 @@ static u8 data_805C7A38[4];
static u8 data_805C7A3C[4];
#pragma pop
/* 805C7240-805C7240 0005CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805C7240-805C7240 0005CC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -245,7 +245,7 @@ extern actor_process_profile_definition g_profile_B_DRE = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_DRE, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_DRE_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -1397,4 +1397,4 @@ static u8 data_805CB134[4];
static u8 data_805CB138[4];
#pragma pop
/* 805CAECC-805CAECC 000170 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805CAECC-805CAECC 000170 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+7 -7
View File
@@ -1345,10 +1345,10 @@ void daB_DS_c::setYoMessage(int i_msgIdx) {
/* 805CDA44-805CDAC0 002904 007C+00 1/1 0/0 0/0 .text doYoMessage__8daB_DS_cFv */
bool daB_DS_c::doYoMessage() {
if (mpMsg != NULL) {
if (mpMsg->mMode == 0xE) {
mpMsg->mMode = 0x10;
} else if (mpMsg->mMode == 0x12) {
mpMsg->mMode = 0x13;
if (mpMsg->mode == 0xE) {
mpMsg->mode = 0x10;
} else if (mpMsg->mode == 0x12) {
mpMsg->mode = 0x13;
mMsgPcID = 0xFFFFFFFF;
return true;
}
@@ -3182,8 +3182,8 @@ bool daB_DS_c::mChkScreenIn() {
camera_class* camera = dComIfGp_getCamera(0);
cXyz vec1, vec2;
vec2 = camera->mLookat.mEye - camera->mLookat.mCenter;
vec1 = camera->mLookat.mEye - current.pos;
vec2 = camera->lookat.eye - camera->lookat.center;
vec1 = camera->lookat.eye - current.pos;
return abs((s16)(vec1.atan2sX_Z() - vec2.atan2sX_Z())) < 0x3000;
}
@@ -6119,7 +6119,7 @@ extern actor_process_profile_definition g_profile_B_DS = {
4,
fpcPi_CURRENT_e,
PROC_B_DS,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(daB_DS_c),
0,
0,
+2 -2
View File
@@ -557,7 +557,7 @@ extern actor_process_profile_definition g_profile_B_GG = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_GG, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_GG_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -2571,4 +2571,4 @@ static u8 data_805ED83C[4];
static u8 data_805ED840[4];
#pragma pop
/* 805ED3D4-805ED3D4 000374 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805ED3D4-805ED3D4 000374 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -522,7 +522,7 @@ extern actor_process_profile_definition g_profile_B_GM = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_GM, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(b_gm_class), // mSize
0, // mSizeOther
0, // mParameters
@@ -2047,4 +2047,4 @@ static u8 data_805F4948[4];
static u8 data_805F494C[4];
#pragma pop
/* 805F4388-805F4388 000200 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 805F4388-805F4388 000200 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -772,7 +772,7 @@ extern actor_process_profile_definition g_profile_B_GND = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_GND, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(b_gnd_class), // mSize
0, // mSizeOther
0, // mParameters
@@ -3101,4 +3101,4 @@ static u8 data_806030B8[4];
static u8 data_806030BC[4];
#pragma pop
/* 806029AC-806029AC 000348 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 806029AC-806029AC 000348 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -312,7 +312,7 @@ extern actor_process_profile_definition g_profile_B_GO = {
7,
fpcPi_CURRENT_e,
PROC_B_GO,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(b_go_class),
0,
0,
@@ -322,4 +322,4 @@ extern actor_process_profile_definition g_profile_B_GO = {
0x40100,
fopAc_ENEMY_e,
fopAc_CULLBOX_CUSTOM_e,
};
};
+2 -2
View File
@@ -425,7 +425,7 @@ extern actor_process_profile_definition g_profile_B_GOS = {
8,
fpcPi_CURRENT_e,
PROC_B_GOS,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(b_gos_class),
0,
0,
@@ -435,4 +435,4 @@ extern actor_process_profile_definition g_profile_B_GOS = {
0x40100,
fopAc_ENEMY_e,
fopAc_CULLBOX_CUSTOM_e,
};
};
+2 -2
View File
@@ -619,7 +619,7 @@ extern actor_process_profile_definition g_profile_B_MGN = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_MGN, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_MGN_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -2024,4 +2024,4 @@ extern "C" void checkNowWolf__9daPy_py_cFv() {
// NONMATCHING
}
/* 80610084-80610084 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80610084-80610084 0002A4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+6 -6
View File
@@ -635,7 +635,7 @@ static int daB_OB_Draw(b_ob_class* i_this) {
for (int i = 0; i < 19; i++) {
if (!i_this->mBodyParts[i].mHide) {
if ((i_this->mBodyParts[i].mPos - camera->mLookat.mEye).abs() >
if ((i_this->mBodyParts[i].mPos - camera->lookat.eye).abs() >
i_this->mBodyParts[i].mSize * (JREG_F(17) + 500.0f))
{
g_env_light.setLightTevColorType_MAJI(i_this->mBodyParts[i].mpMorf->getModel(),
@@ -2315,7 +2315,7 @@ static void fish_move(b_ob_class* i_this) {
a_this->attention_info.position.y += 50.0f;
if (i_this->mDemoAction == 21 || i_this->mDemoAction == 22) {
sp84 = dComIfGp_getCamera(0)->mLookat.mEye - sp90;
sp84 = dComIfGp_getCamera(0)->lookat.eye - sp90;
} else {
sp84 = player->eyePos - sp90;
}
@@ -2399,8 +2399,8 @@ static void demo_camera(b_ob_class* i_this) {
daPy_getPlayerActorClass()->changeOriginalDemo();
daPy_getPlayerActorClass()->changeDemoMode(46, 0, 0, 0);
i_this->mDemoCamEye = camera0->mLookat.mEye;
i_this->mDemoCamCenter = camera0->mLookat.mCenter;
i_this->mDemoCamEye = camera0->lookat.eye;
i_this->mDemoCamCenter = camera0->lookat.center;
sp58 = i_this->mDemoCamEye - tentacle->current.pos;
i_this->field_0x5ce0 = cM_atan2s(sp58.x, sp58.z);
@@ -4201,7 +4201,7 @@ extern actor_process_profile_definition g_profile_B_OB = {
4,
fpcPi_CURRENT_e,
PROC_B_OB,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(b_ob_class),
0,
0,
@@ -4211,4 +4211,4 @@ extern actor_process_profile_definition g_profile_B_OB = {
0xC4000,
fopAc_ENEMY_e,
fopAc_CULLBOX_CUSTOM_e,
};
};
+1 -1
View File
@@ -315,7 +315,7 @@ extern actor_process_profile_definition g_profile_B_OH2 = {
7,
fpcPi_CURRENT_e,
PROC_B_OH2,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(b_oh2_class),
0,
0,
+2 -2
View File
@@ -805,7 +805,7 @@ extern actor_process_profile_definition g_profile_B_TN = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_TN, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_TN_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -2934,4 +2934,4 @@ static u8 data_8062F360[4];
static u8 data_8062F364[4];
#pragma pop
/* 8062E8E8-8062E8E8 0002B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 8062E8E8-8062E8E8 0002B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+5 -5
View File
@@ -776,10 +776,10 @@ void daB_YO_c::setYoMessage(int i_msgIdx) {
/* 80630EAC-80630F28 001B2C 007C+00 1/1 0/0 0/0 .text doYoMessage__8daB_YO_cFv */
int daB_YO_c::doYoMessage() {
if (mpMsg != NULL) {
if (mpMsg->mMode == 0xE) {
mpMsg->mMode = 0x10;
} else if (mpMsg->mMode == 0x12) {
mpMsg->mMode = 0x13;
if (mpMsg->mode == 0xE) {
mpMsg->mode = 0x10;
} else if (mpMsg->mode == 0x12) {
mpMsg->mode = 0x13;
mMsgPcID = 0xFFFFFFFF;
return 1;
}
@@ -3686,7 +3686,7 @@ extern actor_process_profile_definition g_profile_B_YO = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_YO, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_YO_c), // mSize
0, // mSizeOther
0, // mParameters
+1 -1
View File
@@ -1145,7 +1145,7 @@ extern actor_process_profile_definition g_profile_B_YOI = {
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_YOI, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_YOI_c), // mSize
0, // mSizeOther
0, // mParameters
+5 -5
View File
@@ -993,10 +993,10 @@ void daB_ZANT_c::setZantMessage(int i_msgNo) {
/* 80640104-80640180 0020E4 007C+00 1/1 0/0 0/0 .text doZantMessage__10daB_ZANT_cFv */
int daB_ZANT_c::doZantMessage() {
if (mpMsg != NULL) {
if (mpMsg->mMode == 14) {
mpMsg->mMode = 16;
} else if (mpMsg->mMode == 18) {
mpMsg->mMode = 19;
if (mpMsg->mode == 14) {
mpMsg->mode = 16;
} else if (mpMsg->mode == 18) {
mpMsg->mode = 19;
mMsgID = fpcM_ERROR_PROCESS_ID_e;
return 1;
}
@@ -5798,7 +5798,7 @@ extern actor_process_profile_definition g_profile_B_ZANT = {
4, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_ZANT, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_ZANT_c), // mSize
0, // mSizeOther
0, // mParameters
+1 -1
View File
@@ -305,7 +305,7 @@ extern actor_process_profile_definition g_profile_B_ZANTM = {
4, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_ZANTM, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_ZANTM_c), // mSize
0, // mSizeOther
0, // mParameters
+1 -1
View File
@@ -539,7 +539,7 @@ extern actor_process_profile_definition g_profile_B_ZANTZ = {
4, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_B_ZANTZ, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(daB_ZANTZ_c), // mSize
0, // mSizeOther
0, // mParameters
+2 -2
View File
@@ -245,7 +245,7 @@ extern actor_process_profile_definition g_profile_B_ZANTS = {
3,
fpcPi_CURRENT_e,
PROC_B_ZANTS,
&g_fpcLf_Method.mBase,
&g_fpcLf_Method.base,
sizeof(daB_ZANTS_c),
0,
0,
@@ -255,4 +255,4 @@ extern actor_process_profile_definition g_profile_B_ZANTS = {
0x40000,
fopAc_ACTOR_e,
fopAc_CULLBOX_CUSTOM_e,
};
};
+2 -2
View File
@@ -689,7 +689,7 @@ extern actor_process_profile_definition g_profile_BALLOON2D = {
3, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_BALLOON2D, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(JMSMesgEntry_c), // mSize
0, // mSizeOther
0, // mParameters
@@ -810,4 +810,4 @@ void __sinit_d_a_balloon_2D_cpp() {
REGISTER_CTORS(0x80655524, __sinit_d_a_balloon_2D_cpp);
#pragma pop
/* 806555EC-806555EC 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 806555EC-806555EC 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+2 -2
View File
@@ -252,7 +252,7 @@ extern actor_process_profile_definition g_profile_BD = {
8, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_BD, // mProcName
&g_fpcLf_Method.mBase, // sub_method
&g_fpcLf_Method.base, // sub_method
sizeof(bd_class), // mSize
0, // mSizeOther
0, // mParameters
@@ -1222,4 +1222,4 @@ static u8 data_804DA44C[4];
static u8 data_804DA450[4];
#pragma pop
/* 804D9F6C-804D9F6C 000108 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 804D9F6C-804D9F6C 000108 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

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