mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-22 22:44:17 -04:00
d_a_obj_jump initial documentation pass
This commit is contained in:
@@ -10,24 +10,23 @@ class J3DNode;
|
||||
|
||||
namespace daObjJump {
|
||||
struct Attr_c {
|
||||
/* 0x00 */ u32 resSize;
|
||||
/* 0x04 */ s16 resIndex;
|
||||
/* 0x06 */ s16 field_0x006;
|
||||
/* 0x00 */ u32 heapSize;
|
||||
/* 0x04 */ s16 dzbResIndex;
|
||||
/* 0x06 */ s16 bdlResIndex;
|
||||
/* 0x08 */ SVec cullSizeBoxMin;
|
||||
/* 0x0e */ SVec cullSizeBoxMax;
|
||||
/* 0x14 */ u8 field_0x014;
|
||||
/* 0x15 */ u8 field_0x015;
|
||||
/* 0x16 */ u16 field_0x016;
|
||||
/* 0x18 */ float field_0x018;
|
||||
/* 0x1C */ float field_0x01C;
|
||||
/* 0x20 */ float field_0x020;
|
||||
/* 0x24 */ float field_0x024;
|
||||
/* 0x28 */ float field_0x028;
|
||||
/* 0x2C */ float field_0x02C;
|
||||
/* 0x30 */ float field_0x030;
|
||||
/* 0x34 */ float field_0x034;
|
||||
/* 0x38 */ float field_0x038;
|
||||
/* 0x3c */ float field_0x03C;
|
||||
/* 0x14 */ bool hasShadow;
|
||||
/* 0x16 */ u16 springJntNum;
|
||||
/* 0x18 */ f32 field_0x018;
|
||||
/* 0x1C */ f32 field_0x01C;
|
||||
/* 0x20 */ f32 field_0x020;
|
||||
/* 0x24 */ f32 field_0x024;
|
||||
/* 0x28 */ f32 field_0x028;
|
||||
/* 0x2C */ f32 field_0x02C;
|
||||
/* 0x30 */ f32 field_0x030;
|
||||
/* 0x34 */ f32 field_0x034;
|
||||
/* 0x38 */ f32 field_0x038;
|
||||
/* 0x3c */ f32 field_0x03C;
|
||||
/* 0x40 */ u8 field_0x040;
|
||||
/* 0x41 */ u8 field_0x041;
|
||||
/* 0x42 */ u8 field_0x042;
|
||||
@@ -37,27 +36,38 @@ namespace daObjJump {
|
||||
/* 0x46 */ u8 field_0x046;
|
||||
/* 0x47 */ u8 field_0x047;
|
||||
/* 0x48 */ u8 field_0x048;
|
||||
/* 0x49 */ u8 field_0x049[0x4c - 0x49];
|
||||
/* 0x4c */ float field_0x04C;
|
||||
/* 0x4c */ f32 field_0x04C;
|
||||
}; // Size: 0x50
|
||||
|
||||
class Act_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
static u32 prm_make_b() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
enum Type_e {
|
||||
Type_SPRING_e,
|
||||
Type_SPRING_ON_BOX_e,
|
||||
};
|
||||
|
||||
enum Mode_e {
|
||||
/* 0x0 */ Mode_WAIT_e,
|
||||
/* 0x1 */ Mode_WAIT_LOWER_e,
|
||||
/* 0x2 */ Mode_LOWER_e,
|
||||
/* 0x3 */ Mode_LOWER_UPPER_e,
|
||||
/* 0x4 */ Mode_UPPER_e,
|
||||
/* 0x5 */ Mode_UPPER_WAIT_e,
|
||||
};
|
||||
|
||||
void setup(const cXyz* pos) {
|
||||
current.pos = *pos;
|
||||
m336 = 1;
|
||||
mIsSetup = true;
|
||||
}
|
||||
const Attr_c& attr() const { return M_attr[field_0x2D4]; }
|
||||
const Attr_c& attr() const { return M_attr[mType]; }
|
||||
|
||||
enum Prm_e {
|
||||
PRM_JUMP_W = 0x01,
|
||||
PRM_JUMP_S = 0x00,
|
||||
PRM_TYPE_W = 0x01,
|
||||
PRM_TYPE_S = 0x00,
|
||||
};
|
||||
int prm_get_type() const { return daObj::PrmAbstract<Prm_e>(this, PRM_JUMP_W, PRM_JUMP_S); }
|
||||
int prm_get_type() const { return daObj::PrmAbstract<Prm_e>(this, PRM_TYPE_W, PRM_TYPE_S); }
|
||||
|
||||
static u32 prm_make_b() { return Type_SPRING_ON_BOX_e; }
|
||||
|
||||
virtual BOOL CreateHeap();
|
||||
virtual BOOL Create();
|
||||
@@ -92,33 +102,31 @@ namespace daObjJump {
|
||||
public:
|
||||
/* 0x2C8 */ request_of_phase_process_class mPhase;
|
||||
/* 0x2D0 */ J3DModel* mModel;
|
||||
/* 0x2D4 */ int field_0x2D4;
|
||||
/* 0x2D8 */ dBgS_ObjGndChk field_0x2D8;
|
||||
/* 0x32C */ f32 field_0x32C;
|
||||
/* 0x330 */ int field_0x330;
|
||||
/* 0x334 */ s16 field_0x334;
|
||||
/* 0x336 */ u8 m336;
|
||||
/* 0x337 */ u8 m337;
|
||||
/* 0x2D4 */ int mType;
|
||||
/* 0x2D8 */ dBgS_ObjGndChk mGndChk;
|
||||
/* 0x32C */ f32 mGroundY;
|
||||
/* 0x330 */ int mMode;
|
||||
/* 0x334 */ s16 mTimer;
|
||||
/* 0x336 */ bool mIsSetup;
|
||||
/* 0x338 */ f32 field_0x338;
|
||||
/* 0x33C */ f32 field_0x33C;
|
||||
/* 0x340 */ f32 field_0x340;
|
||||
/* 0x344 */ u8 field_0x344;
|
||||
/* 0x344 */ bool mIsRide;
|
||||
/* 0x345 */ u8 field_0x345;
|
||||
/* 0x346 */ u8 field_0x346;
|
||||
/* 0x347 */ u8 field_0x347;
|
||||
/* 0x348 */ u8 field_0x348;
|
||||
/* 0x349 */ u8 field_0x349;
|
||||
/* 0x349 */ bool mIsPlayerRide;
|
||||
/* 0x34A */ u8 field_0x34a;
|
||||
/* 0x34B */ u8 field_0x34b;
|
||||
/* 0x34C */ u8 field_0x34c;
|
||||
/* 0x34C */ bool mIsHeavyRide;
|
||||
/* 0x34D */ u8 field_0x34d;
|
||||
/* 0x34E */ u8 field_0x34e;
|
||||
/* 0x34F */ u8 field_0x34f;
|
||||
/* 0x350 */ u8 field_0x350;
|
||||
/* 0x351 */ u8 field_0x351;
|
||||
/* 0x352 */ s16 field_0x352;
|
||||
/* 0x354 */ u8 field_0x354;
|
||||
/* 0x355 */ u8 field_0x355[0x358 - 0x355];
|
||||
/* 0x354 */ bool field_0x354; // Wobbling?
|
||||
}; // Size: 0x358
|
||||
};
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
|
||||
dBgS_MoveBgActor();
|
||||
BOOL MoveBGCreateHeap();
|
||||
cPhs_State MoveBGCreate(char const* resName, int resIndex, MoveBGActor_SetFunc callback, u32 resSize);
|
||||
cPhs_State MoveBGCreate(const char* i_arcName, int i_dzb_id, MoveBGActor_SetFunc i_setFunc, u32 i_heapSize);
|
||||
BOOL MoveBGDelete();
|
||||
BOOL MoveBGExecute();
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ enum daPy__PlayerStatus0 {
|
||||
daPyStts0_UNK20_e = 0x00000020,
|
||||
daPyStts0_UNK40_e = 0x00000040,
|
||||
daPyStts0_UNK80_e = 0x00000080, // Maybe inside a Baba Bud before being spat out?
|
||||
daPyStts0_UNK100_e = 0x00000100,
|
||||
daPyStts0_HANG_e = 0x00000100,
|
||||
daPyStts0_UNK200_e = 0x00000200,
|
||||
daPyStts0_UNK400_e = 0x00000400,
|
||||
daPyStts0_UNK800_e = 0x00000800,
|
||||
@@ -68,7 +68,7 @@ enum daPy__PlayerStatus0 {
|
||||
|
||||
// This is some combination of flags which is seemingly related to "judgement", used in dAttention_c
|
||||
daPyStts0_UNK37a02371_e = daPyStts0_UNK1_e | daPyStts0_UNK10_e | daPyStts0_UNK20_e
|
||||
| daPyStts0_UNK40_e | daPyStts0_UNK100_e | daPyStts0_UNK200_e
|
||||
| daPyStts0_UNK40_e | daPyStts0_HANG_e | daPyStts0_UNK200_e
|
||||
| daPyStts0_SUBJECT_e| daPyStts0_TELESCOPE_LOOK_e
|
||||
| daPyStts0_UNK800000_e | daPyStts0_UNK1000000_e
|
||||
| daPyStts0_UNK2000000_e | daPyStts0_UNK4000000_e
|
||||
|
||||
@@ -1121,7 +1121,7 @@ bool daFm_c::isGrab() {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isLink(mpActorTarget) && (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK100_e) || checkPlayerGrabBomb())) {
|
||||
if(isLink(mpActorTarget) && (dComIfGp_checkPlayerStatus0(0, daPyStts0_HANG_e) || checkPlayerGrabBomb())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2819,7 +2819,7 @@ void daFm_c::searchTarget() {
|
||||
if(mpActorTarget == NULL && field_0x2DC != 2) {
|
||||
fopAc_ac_c* link_actor = dComIfGp_getLinkPlayer();
|
||||
daPy_lk_c* link_player = (daPy_lk_c*)link_actor;
|
||||
if(dComIfGp_getLinkPlayer() != NULL && !dComIfGp_checkPlayerStatus0(0, daPyStts0_HOOKSHOT_AIM_e | daPyStts0_UNK100_e)) {
|
||||
if(dComIfGp_getLinkPlayer() != NULL && !dComIfGp_checkPlayerStatus0(0, daPyStts0_HOOKSHOT_AIM_e | daPyStts0_HANG_e)) {
|
||||
if(!checkPlayerGrabBomb()) {
|
||||
if(!checkPlayerGrabNpc() && !isLinkControl()) {
|
||||
if(!((daPy_lk_c*)dComIfGp_getLinkPlayer())->checkCarryActionNow() && link_player->getGrabActorID() == -1) {
|
||||
|
||||
@@ -2063,7 +2063,7 @@ BOOL daNpc_Cb1_c::searchNpcAction(void*) {
|
||||
}
|
||||
|
||||
temp = fopAcM_searchPlayerAngleY(this);
|
||||
if(door || !routeCheck(dist_xz_sq, &temp) || dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK1_e) || ((daPy_py_c*)pPlayer)->checkAttentionLock()) {
|
||||
if(door || !routeCheck(dist_xz_sq, &temp) || dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000000_e | daPyStts0_HANG_e | daPyStts0_UNK1_e) || ((daPy_py_c*)pPlayer)->checkAttentionLock()) {
|
||||
temp2 = 0.0f;
|
||||
|
||||
if(speedF == 0.0f) {
|
||||
|
||||
@@ -1134,7 +1134,7 @@ BOOL daNpc_Os_c::searchNpcAction(void*) {
|
||||
s16 angle, adjustedAngle;
|
||||
angle = adjustedAngle = fopAcM_searchPlayerAngleY(this);
|
||||
BOOL temp3 = routeCheck(dist_sq, &adjustedAngle) && cLib_distanceAngleS(angle, adjustedAngle) <= 0x2000;
|
||||
if(door || !temp3 || (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK1_e) || player->checkAttentionLock())) {
|
||||
if(door || !temp3 || (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK2000000_e | daPyStts0_HANG_e | daPyStts0_UNK1_e) || player->checkAttentionLock())) {
|
||||
temp = 0.0f;
|
||||
offNpcCallCommand();
|
||||
}
|
||||
|
||||
@@ -8,21 +8,21 @@
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/res/res_hjump.h"
|
||||
|
||||
namespace daObjJump {
|
||||
|
||||
Mtx daObjJump::Act_c::M_tmp_mtx;
|
||||
const char Act_c::M_arcname[] = "Hjump";
|
||||
const Attr_c Act_c::M_attr[2] = {
|
||||
{
|
||||
/* resSize */ DEMO_SELECT(0x8000, 0x840),
|
||||
/* resIndex */ 12,
|
||||
/* field_0x006 */ 6,
|
||||
{ // Type_SPRING_e
|
||||
/* heapSize */ DEMO_SELECT(0x8000, 0x840),
|
||||
/* dzbResIndex */ HJUMP_DZB_HJUMP2,
|
||||
/* bdlResIndex */ HJUMP_BDL_HJUMP2,
|
||||
/* cullSizeBoxMin */ { -60, -1, -60 },
|
||||
/* cullSizeBoxMax */ { 60, VERSION_SELECT(151, 151, 251, 251), 60 },
|
||||
/* field_0x014 */ 1,
|
||||
/* field_0x015 */ 0,
|
||||
/* field_0x016 */ 1,
|
||||
/* hasShadow */ true,
|
||||
/* springJntNum */ 1,
|
||||
/* field_0x018 */ 40.0f,
|
||||
/* field_0x01C */ 125.0f,
|
||||
/* field_0x020 */ 150.0f,
|
||||
@@ -42,18 +42,16 @@ const Attr_c Act_c::M_attr[2] = {
|
||||
/* field_0x046 */ 0x04,
|
||||
/* field_0x047 */ 0x04,
|
||||
/* field_0x048 */ 0x01,
|
||||
/* field_0x049 */ { 0, 0, 0 },
|
||||
/* field_0x04C */ 2.0f
|
||||
},
|
||||
{
|
||||
/* resSize */ DEMO_SELECT(0x8000, 0x840),
|
||||
/* resIndex */ 11,
|
||||
/* field_0x006 */ 5,
|
||||
{ // Type_SPRING_ON_BOX_e
|
||||
/* heapSize */ DEMO_SELECT(0x8000, 0x840),
|
||||
/* dzbResIndex */ HJUMP_DZB_HJUMP1B,
|
||||
/* bdlResIndex */ HJUMP_BDL_HJUMP1,
|
||||
/* cullSizeBoxMin */ { -90, -1, -90 },
|
||||
/* cullSizeBoxMax */ { 90, VERSION_SELECT(301, 301, 401, 401), 90 },
|
||||
/* field_0x014 */ 0,
|
||||
/* field_0x015 */ 0,
|
||||
/* field_0x016 */ 1,
|
||||
/* hasShadow */ false,
|
||||
/* springJntNum */ 1,
|
||||
/* field_0x018 */ 160.0f,
|
||||
/* field_0x01C */ 270.0f,
|
||||
/* field_0x020 */ 300.0f,
|
||||
@@ -73,7 +71,6 @@ const Attr_c Act_c::M_attr[2] = {
|
||||
/* field_0x046 */ 0x04,
|
||||
/* field_0x047 */ 0x04,
|
||||
/* field_0x048 */ 0x01,
|
||||
/* field_0x049 */ { 0, 0, 0 },
|
||||
/* field_0x04C */ 2.0f
|
||||
}
|
||||
};
|
||||
@@ -81,12 +78,12 @@ const Attr_c Act_c::M_attr[2] = {
|
||||
|
||||
/* 00000078-00000184 .text CreateHeap__Q29daObjJump5Act_cFv */
|
||||
BOOL daObjJump::Act_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, attr().field_0x006);
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, attr().bdlResIndex);
|
||||
JUT_ASSERT(DEMO_SELECT(277, 282), model_data != NULL);
|
||||
|
||||
mModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000022);
|
||||
if (mModel != NULL) {
|
||||
model_data->getJointTree().getJointNodePointer(attr().field_0x016)->setCallBack(jnodeCB_lower);
|
||||
model_data->getJointTree().getJointNodePointer(attr().springJntNum)->setCallBack(jnodeCB_lower);
|
||||
mModel->setUserArea((u32)this);
|
||||
}
|
||||
return mModel != NULL;
|
||||
@@ -94,10 +91,9 @@ BOOL daObjJump::Act_c::CreateHeap() {
|
||||
|
||||
/* 00000184-0000033C .text Create__Q29daObjJump5Act_cFv */
|
||||
BOOL daObjJump::Act_c::Create() {
|
||||
unsigned int uVar2;
|
||||
field_0x338 = 1.0f;
|
||||
field_0x33C = 1.0f;
|
||||
cullMtx = mModel->getBaseTRMtx();
|
||||
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
|
||||
init_mtx();
|
||||
fopAcM_setCullSizeBox(
|
||||
this,
|
||||
@@ -108,15 +104,14 @@ BOOL daObjJump::Act_c::Create() {
|
||||
attr().cullSizeBoxMax.y,
|
||||
attr().cullSizeBoxMax.z
|
||||
);
|
||||
if (attr().field_0x014 != 0) {
|
||||
cXyz temp(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
field_0x2D8.SetPos(&temp);
|
||||
uVar2 = fopAcM_GetID(this);
|
||||
field_0x2D8.SetActorPid(uVar2);
|
||||
field_0x32C = dComIfG_Bgsp()->GroundCross(&field_0x2D8);
|
||||
if (attr().hasShadow) {
|
||||
cXyz pos(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
mGndChk.SetPos(&pos);
|
||||
mGndChk.SetActorPid(fopAcM_GetID(this));
|
||||
mGroundY = dComIfG_Bgsp()->GroundCross(&mGndChk);
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (field_0x2D4 == 1) {
|
||||
if (mType == Type_SPRING_ON_BOX_e) {
|
||||
actor_status &= ~0x3F;
|
||||
gbaName = 0;
|
||||
}
|
||||
@@ -131,12 +126,12 @@ cPhs_State daObjJump::Act_c::Mthd_Create() {
|
||||
fopAcM_ct(this, daObjJump::Act_c);
|
||||
cPhs_State phase_state = dComIfG_resLoad(&mPhase, M_arcname);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
field_0x2D4 = prm_get_type();
|
||||
mType = prm_get_type();
|
||||
phase_state = MoveBGCreate(
|
||||
M_arcname,
|
||||
attr().resIndex,
|
||||
attr().dzbResIndex,
|
||||
dBgS_MoveBGProc_Typical,
|
||||
attr().resSize
|
||||
attr().heapSize
|
||||
);
|
||||
JUT_ASSERT(DEMO_SELECT(373, 384), (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e));
|
||||
}
|
||||
@@ -160,10 +155,10 @@ void daObjJump::Act_c::set_mtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
float fVar1 = attr().field_0x020 - attr().field_0x024;
|
||||
float fVar2 = attr().field_0x01C - attr().field_0x018;
|
||||
float fVar3 = (field_0x33C - 1.0f);
|
||||
float fVar4 = (fVar1 + fVar2 * fVar3) / fVar1;
|
||||
f32 fVar1 = attr().field_0x020 - attr().field_0x024;
|
||||
f32 fVar2 = attr().field_0x01C - attr().field_0x018;
|
||||
f32 fVar3 = (field_0x33C - 1.0f);
|
||||
f32 fVar4 = (fVar1 + fVar2 * fVar3) / fVar1;
|
||||
mDoMtx_stack_c::transM(0.0f, attr().field_0x024, 0.0f);
|
||||
mDoMtx_stack_c::scaleM(1.0f, fVar4,1.0f);
|
||||
mDoMtx_stack_c::transM(0.0f, -attr().field_0x024, 0.0f);
|
||||
@@ -179,7 +174,7 @@ void daObjJump::Act_c::init_mtx() {
|
||||
/* 00000BB4-00000D9C .text set_push_flag__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::set_push_flag() {
|
||||
field_0x345 = 0;
|
||||
if (field_0x344 != 0) {
|
||||
if (mIsRide) {
|
||||
if (field_0x347 < 0xff) {
|
||||
field_0x347 += 1;
|
||||
}
|
||||
@@ -190,7 +185,7 @@ void daObjJump::Act_c::set_push_flag() {
|
||||
field_0x347 = 0;
|
||||
}
|
||||
field_0x346 = 0;
|
||||
if (field_0x344 != 0) {
|
||||
if (mIsRide) {
|
||||
field_0x348 = 0;
|
||||
} else {
|
||||
if (field_0x348 < 0xff) {
|
||||
@@ -201,7 +196,7 @@ void daObjJump::Act_c::set_push_flag() {
|
||||
}
|
||||
}
|
||||
field_0x34a = 0;
|
||||
if (field_0x349 != 0 && dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK100_e)) {
|
||||
if (mIsPlayerRide && dComIfGp_checkPlayerStatus0(0, daPyStts0_HANG_e)) {
|
||||
if (field_0x34b < 0xff) {
|
||||
field_0x34b += 1;
|
||||
}
|
||||
@@ -212,7 +207,7 @@ void daObjJump::Act_c::set_push_flag() {
|
||||
field_0x34b = 0;
|
||||
}
|
||||
field_0x34d = 0;
|
||||
if (field_0x34c != 0) {
|
||||
if (mIsHeavyRide) {
|
||||
if (field_0x34f < 0xff) {
|
||||
field_0x34f += 1;
|
||||
}
|
||||
@@ -223,7 +218,7 @@ void daObjJump::Act_c::set_push_flag() {
|
||||
field_0x34f = 0;
|
||||
}
|
||||
field_0x34e = 0;
|
||||
if (field_0x34c != 0) {
|
||||
if (mIsHeavyRide) {
|
||||
field_0x350 = 0;
|
||||
return;
|
||||
}
|
||||
@@ -238,34 +233,33 @@ void daObjJump::Act_c::set_push_flag() {
|
||||
|
||||
/* 00000D9C-00000DB4 .text clear_push_flag__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::clear_push_flag() {
|
||||
field_0x344 = 0;
|
||||
field_0x34c = 0;
|
||||
field_0x349 = 0;
|
||||
mIsRide = false;
|
||||
mIsHeavyRide = false;
|
||||
mIsPlayerRide = false;
|
||||
field_0x354 = 0;
|
||||
}
|
||||
|
||||
/* 00000DB4-00000E1C .text calc_vib_pos__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::calc_vib_pos() {
|
||||
f32 f2 = field_0x33C - field_0x338;
|
||||
field_0x340 = field_0x340 - f2 * attr().field_0x02C;
|
||||
field_0x340 = field_0x340 - field_0x340 * attr().field_0x028;
|
||||
field_0x33C = field_0x33C + field_0x340;
|
||||
field_0x340 -= f2 * attr().field_0x02C;
|
||||
field_0x340 -= field_0x340 * attr().field_0x028;
|
||||
field_0x33C += field_0x340;
|
||||
}
|
||||
|
||||
/* 00000E1C-00000E74 .text rideCB__Q29daObjJump5Act_cFP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void daObjJump::Act_c::rideCB(dBgW*, fopAc_ac_c* param_2, fopAc_ac_c* param_3) {
|
||||
Act_c* i_this = (Act_c *) param_2;
|
||||
daPy_py_c* player = (daPy_py_c *) param_3;
|
||||
i_this->field_0x344 = 1;
|
||||
if (fopAcM_GetProfName(param_3) != PROC_PLAYER) {
|
||||
return;
|
||||
}
|
||||
i_this->field_0x349 = 1;
|
||||
if (player->checkEquipHeavyBoots()) {
|
||||
i_this->field_0x34c = 1;
|
||||
}
|
||||
if (fopAcM_GetSpeedF(player) > i_this->attr().field_0x04C) {
|
||||
i_this->field_0x354 = 1;
|
||||
i_this->mIsRide = true;
|
||||
if (fopAcM_GetProfName(param_3) == PROC_PLAYER) {
|
||||
i_this->mIsPlayerRide = true;
|
||||
if (player->checkEquipHeavyBoots()) {
|
||||
i_this->mIsHeavyRide = true;
|
||||
}
|
||||
if (fopAcM_GetSpeedF(player) > i_this->attr().field_0x04C) {
|
||||
i_this->field_0x354 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,7 +270,7 @@ BOOL daObjJump::Act_c::jnodeCB_lower(J3DNode* node, int calcTiming) {
|
||||
Act_c* i_this = (Act_c *) model->getUserArea();
|
||||
J3DJoint* joint = (J3DJoint*) node;
|
||||
u16 jntNo = joint->getJntNo();
|
||||
PSMTXCopy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get());
|
||||
MTXCopy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get());
|
||||
mDoMtx_stack_c::scaleM(i_this->field_0x33C,1.0f,1.0f);
|
||||
model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
|
||||
f32 f2 = i_this->attr().field_0x01C - i_this->attr().field_0x018;
|
||||
@@ -288,7 +282,7 @@ BOOL daObjJump::Act_c::jnodeCB_lower(J3DNode* node, int calcTiming) {
|
||||
|
||||
/* 00000F48-00000F64 .text mode_wait_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_wait_init() {
|
||||
field_0x330 = 0;
|
||||
mMode = Mode_WAIT_e;
|
||||
field_0x338 = 1.0f;
|
||||
field_0x352 = 0;
|
||||
}
|
||||
@@ -310,7 +304,7 @@ void daObjJump::Act_c::mode_wait() {
|
||||
|
||||
/* 0000108C-000010B4 .text mode_w_l_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_w_l_init() {
|
||||
field_0x330 = 1;
|
||||
mMode = Mode_WAIT_LOWER_e;
|
||||
field_0x338 = attr().field_0x038;
|
||||
}
|
||||
|
||||
@@ -323,7 +317,7 @@ void daObjJump::Act_c::mode_w_l() {
|
||||
|
||||
/* 000010E8-000010FC .text mode_lower_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_lower_init() {
|
||||
field_0x330 = 2;
|
||||
mMode = Mode_LOWER_e;
|
||||
field_0x352 = 0;
|
||||
}
|
||||
|
||||
@@ -344,7 +338,7 @@ void daObjJump::Act_c::mode_lower() {
|
||||
|
||||
/* 00001200-00001228 .text mode_l_u_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_l_u_init() {
|
||||
field_0x330 = 3;
|
||||
mMode = Mode_LOWER_UPPER_e;
|
||||
field_0x338 = attr().field_0x03C;
|
||||
}
|
||||
|
||||
@@ -353,7 +347,7 @@ void daObjJump::Act_c::mode_l_u() {
|
||||
if (field_0x33C >= field_0x338) {
|
||||
field_0x33C = field_0x338;
|
||||
field_0x340 = 0.0f;
|
||||
if (field_0x349 != 0) {
|
||||
if (mIsPlayerRide) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
player->onForceVomitJump();
|
||||
}
|
||||
@@ -363,22 +357,20 @@ void daObjJump::Act_c::mode_l_u() {
|
||||
|
||||
/* 00001290-000012B8 .text mode_upper_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_upper_init() {
|
||||
field_0x330 = 4;
|
||||
field_0x334 = attr().field_0x042;
|
||||
mMode = Mode_UPPER_e;
|
||||
mTimer = attr().field_0x042;
|
||||
}
|
||||
|
||||
/* 000012B8-000012EC .text mode_upper__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_upper() {
|
||||
s16 var = field_0x334;
|
||||
field_0x334 = var - 1;
|
||||
if ((s16)(var - 1) <= 0) {
|
||||
if (--mTimer <= 0) {
|
||||
mode_u_w_init();
|
||||
}
|
||||
}
|
||||
|
||||
/* 000012EC-00001304 .text mode_u_w_init__Q29daObjJump5Act_cFv */
|
||||
void daObjJump::Act_c::mode_u_w_init() {
|
||||
field_0x330 = 5;
|
||||
mMode = Mode_UPPER_WAIT_e;
|
||||
field_0x338 = 1.0f;
|
||||
}
|
||||
|
||||
@@ -405,9 +397,9 @@ BOOL daObjJump::Act_c::Execute(Mtx** param_1) {
|
||||
&daObjJump::Act_c::mode_u_w
|
||||
};
|
||||
|
||||
(this->*mode_proc[field_0x330])();
|
||||
(this->*mode_proc[mMode])();
|
||||
|
||||
if ((field_0x330 == 0 || field_0x330 == 2) && field_0x354 != 0) {
|
||||
if ((mMode == Mode_WAIT_e || mMode == Mode_LOWER_e) && field_0x354) {
|
||||
field_0x340 += attr().field_0x034;
|
||||
}
|
||||
calc_vib_pos();
|
||||
@@ -424,12 +416,12 @@ BOOL daObjJump::Act_c::Draw() {
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mModel);
|
||||
dComIfGd_setList();
|
||||
if (attr().field_0x014 != 0) {
|
||||
if (attr().hasShadow != 0) {
|
||||
dComIfGd_setSimpleShadow2(
|
||||
¤t.pos,
|
||||
field_0x32C,
|
||||
mGroundY,
|
||||
70.0f,
|
||||
field_0x2D8,
|
||||
mGndChk,
|
||||
shape_angle.y,
|
||||
1.0f,
|
||||
NULL
|
||||
|
||||
@@ -229,7 +229,7 @@ BOOL daPy_lk_c::procHangStart_init() {
|
||||
current.angle.y = shape_angle.y;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
mHangGroundH = mAcch.GetGroundH();
|
||||
return true;
|
||||
}
|
||||
@@ -332,7 +332,7 @@ BOOL daPy_lk_c::procHangFallStart_init(cM3dGPla* param_0) {
|
||||
);
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
voiceStart(11);
|
||||
return true;
|
||||
}
|
||||
@@ -378,7 +378,7 @@ BOOL daPy_lk_c::procHangUp_init(int param_0) {
|
||||
m_HIO->mHang.m.field_0x2,
|
||||
m_HIO->mHang.m.field_0x20
|
||||
);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
mProcVar0.m3570 = param_0;
|
||||
mVelocity = 0.0f;
|
||||
return true;
|
||||
@@ -416,7 +416,7 @@ BOOL daPy_lk_c::procHangWait_init() {
|
||||
mpSeAnmFrameCtrl = NULL;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -456,7 +456,7 @@ BOOL daPy_lk_c::procHangMove_init(int param_0) {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
}
|
||||
setSingleMoveAnime(anm, getHangMoveAnmSpeed(), 0.0f, -1, m_HIO->mHang.m.field_0x2C);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
mVelocity = 0.0f;
|
||||
cXyz local_1c = mLeftHandPos - mRightHandPos;
|
||||
m35A0 = local_1c.absXZ();
|
||||
@@ -604,7 +604,7 @@ BOOL daPy_lk_c::procHangWallCatch_init() {
|
||||
current.angle.y = shape_angle.y;
|
||||
mVelocity = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK100_e);
|
||||
dComIfGp_setPlayerStatus0(0, daPyStts0_HANG_e);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ BOOL dBgS_MoveBgActor::MoveBGCreateHeap() {
|
||||
|
||||
/* 800A57F4-800A58F4 .text MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvR13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUl */
|
||||
cPhs_State dBgS_MoveBgActor::MoveBGCreate(const char* i_arcName, int i_dzb_id,
|
||||
MoveBGActor_SetFunc i_setFunc, u32 i_heapSize) {
|
||||
MoveBGActor_SetFunc i_setFunc, u32 i_heapSize) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z);
|
||||
|
||||
+5
-5
@@ -2752,7 +2752,7 @@ bool dCamera_c::followCamera(s32 param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK200_e | daPyStts0_UNK100_e) && !check_owner_action(mPadId, daPyStts0_UNK2000000_e)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK200_e | daPyStts0_HANG_e) && !check_owner_action(mPadId, daPyStts0_UNK2000000_e)) {
|
||||
if (dVar21 > -10.0f) {
|
||||
mWork.follow.m3B0 = -10.0f;
|
||||
}
|
||||
@@ -2982,7 +2982,7 @@ bool dCamera_c::followCamera(s32 param_1) {
|
||||
setDMCAngle();
|
||||
}
|
||||
|
||||
if ((check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) && check_owner_action1(mPadId, daPyStts1_UNK10000_e)) || (cSAngle::_270 < local_4ac && local_4ac < cSAngle::_90)) {
|
||||
if ((check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_HANG_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e) && check_owner_action1(mPadId, daPyStts1_UNK10000_e)) || (cSAngle::_270 < local_4ac && local_4ac < cSAngle::_90)) {
|
||||
mWork.follow.m3EC = dVar23;
|
||||
}
|
||||
else {
|
||||
@@ -3033,7 +3033,7 @@ bool dCamera_c::followCamera(s32 param_1) {
|
||||
|
||||
if (m780) {
|
||||
cXyz attn_pos = attentionPos(mpPlayerActor);
|
||||
if (check_owner_action(mPadId, daPyStts0_CRAWL_e | daPyStts0_SWIM_e | daPyStts0_UNK100_e)) {
|
||||
if (check_owner_action(mPadId, daPyStts0_CRAWL_e | daPyStts0_SWIM_e | daPyStts0_HANG_e)) {
|
||||
attn_pos.y = eyePos(mpPlayerActor).y + 30.0f;
|
||||
}
|
||||
else {
|
||||
@@ -3097,7 +3097,7 @@ bool dCamera_c::followCamera(s32 param_1) {
|
||||
}
|
||||
|
||||
if (
|
||||
check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e) ||
|
||||
check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_HANG_e) ||
|
||||
check_owner_action1(mPadId, check_owner_action1(mPadId, daPyStts1_UNK10000_e))
|
||||
) {
|
||||
if (mWork.follow.m38C == 0) {
|
||||
@@ -3249,7 +3249,7 @@ bool dCamera_c::followCamera(s32 param_1) {
|
||||
|
||||
mWork.follow.m3A4 = positionOf(mpPlayerActor).y;
|
||||
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_UNK100_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e || check_owner_action1(mPadId, daPyStts1_UNK10000_e))) {
|
||||
if (check_owner_action(mPadId, daPyStts0_UNK2000000_e | daPyStts0_HANG_e | daPyStts0_UNK40_e | daPyStts0_UNK20_e | daPyStts0_UNK1_e || check_owner_action1(mPadId, daPyStts1_UNK10000_e))) {
|
||||
mWork.follow.m3B4 = 1;
|
||||
}
|
||||
else {
|
||||
|
||||
+1
-1
@@ -825,7 +825,7 @@ void dMeter_statusCheck(sub_meter_class* i_Meter) {
|
||||
}
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
|
||||
i_Meter->mStatusFlags |= dMtrStts_UNK2000_e;
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, (daPyStts0_UNK100_e | daPyStts0_UNK2000000_e))) {
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, (daPyStts0_HANG_e | daPyStts0_UNK2000000_e))) {
|
||||
i_Meter->mStatusFlags |= dMtrStts_UNK8000_e;
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK4000000_e)) {
|
||||
i_Meter->mStatusFlags |= dMtrStts_UNK10000_e;
|
||||
|
||||
Reference in New Issue
Block a user