mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-27 22:48:59 -04:00
Merge branch 'master' into d_a_do
This commit is contained in:
+56
-57
@@ -3029,7 +3029,6 @@ extern "C" extern void* __vt__28mDoExt_MtxCalcAnmBlendTblOld[11];
|
||||
extern "C" extern void* __vt__25mDoExt_MtxCalcAnmBlendTbl[11];
|
||||
extern "C" extern void* __vt__10J3DMtxCalc[11 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__19JPAParticleCallBack[5];
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" extern void* __vt__14dBgS_ObjGndChk[12 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
@@ -14684,7 +14683,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2
|
||||
i_onEndResetFlg0(ERFLG0_UNK_800000);
|
||||
i_onEndResetFlg2(ERFLG2_UNK_100);
|
||||
if (mDemo.getDemoMode() != 0x59) {
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14709,7 +14708,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2
|
||||
rideAc->current.pos = current.pos;
|
||||
rideAc->shape_angle.y = shape_angle.y;
|
||||
rideAc->current.angle.y = shape_angle.y;
|
||||
rideAc->mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
rideAc->speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x814.ClrCcMove();
|
||||
@@ -14726,7 +14725,7 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) {
|
||||
field_0x3798 = current.pos;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_800000);
|
||||
i_onEndResetFlg2(ERFLG2_UNK_100);
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
if (p_angle != NULL) {
|
||||
@@ -14752,7 +14751,7 @@ void daAlink_c::setPlayerPosAndAngle(Mtx param_0) {
|
||||
mDoMtx_MtxToRot(param_0, &shape_angle);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x2fe6 = shape_angle.y;
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
field_0x814.ClrCcMove();
|
||||
}
|
||||
}
|
||||
@@ -16185,7 +16184,7 @@ int daAlink_c::checkNextAction(int param_0) {
|
||||
} else if (mProcID == PROC_MOVE_TURN && current.angle.y != shape_angle.y) {
|
||||
ret = procMoveTurnInit(0);
|
||||
} else if (checkInputOnR() && cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7800) {
|
||||
if (mSpeedF / field_0x594 > daAlinkHIO_move_c0::m.mSlideThresholdSpeed && field_0x2fa8 != 8 &&
|
||||
if (speedF / field_0x594 > daAlinkHIO_move_c0::m.mSlideThresholdSpeed && field_0x2fa8 != 8 &&
|
||||
!checkGrabAnime() && getDirectionFromAngle(mPrevStickAngle - mStickAngle) == DIR_BACKWARD) {
|
||||
ret = procSlipInit();
|
||||
} else {
|
||||
@@ -16471,37 +16470,37 @@ void daAlink_c::posMove() {
|
||||
|
||||
setFootSpeed();
|
||||
if (i_checkEndResetFlg0(ERFLG0_UNK_10000000)) {
|
||||
mSpeedF = 0.0f;
|
||||
speedF = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
}
|
||||
|
||||
mSpeedF = mNormalSpeed * (1.0f - fabsf(mSpeedModifier));
|
||||
speedF = mNormalSpeed * (1.0f - fabsf(mSpeedModifier));
|
||||
|
||||
f32 mod = field_0x33a0 * (1.0f - field_0x2060->getOldFrameRate()) * mSpeedModifier;
|
||||
if (mSpeedF < 0.0f) {
|
||||
mSpeedF -= mod;
|
||||
if (speedF < 0.0f) {
|
||||
speedF -= mod;
|
||||
} else {
|
||||
mSpeedF += mod;
|
||||
speedF += mod;
|
||||
}
|
||||
|
||||
if (getZoraSwim() && !checkZoraWearAbility()) {
|
||||
mSpeedF *= daAlinkHIO_swim_c0::m.mSurfaceSwimSpeedRate;
|
||||
speedF *= daAlinkHIO_swim_c0::m.mSurfaceSwimSpeedRate;
|
||||
}
|
||||
|
||||
f32 var_f31 = mSpeedF;
|
||||
mSpeedF *= cM_scos(var_r26);
|
||||
f32 var_f31 = speedF;
|
||||
speedF *= cM_scos(var_r26);
|
||||
|
||||
if (var_r26 < 0 && !checkBoardRide() && !i_checkModeFlg(MODE_SWIMMING)) {
|
||||
mSpeedF *= 0.85f;
|
||||
speedF *= 0.85f;
|
||||
}
|
||||
|
||||
if (mProcID == PROC_AUTO_JUMP && checkGrabGlide() &&
|
||||
(field_0xC04[0].ChkTgHit() || field_0xC04[1].ChkTgHit() || field_0xC04[2].ChkTgHit())) {
|
||||
mSpeedF *= 0.5f;
|
||||
speedF *= 0.5f;
|
||||
}
|
||||
|
||||
mSpeed.x = mSpeedF * cM_ssin(current.angle.y);
|
||||
mSpeed.z = mSpeedF * cM_scos(current.angle.y);
|
||||
speed.x = speedF * cM_ssin(current.angle.y);
|
||||
speed.z = speedF * cM_scos(current.angle.y);
|
||||
|
||||
if (checkNoCollisionCorret() || (i_checkModeFlg(0x40) && i_checkModeFlg(0x4000))) {
|
||||
field_0x342c = 0.0f;
|
||||
@@ -16522,8 +16521,8 @@ void daAlink_c::posMove() {
|
||||
plane.mNormal.y = 0.0f;
|
||||
plane.mNormal.normalizeZP();
|
||||
|
||||
mSpeed.x += temp_f0 * plane.mNormal.x;
|
||||
mSpeed.z += temp_f0 * plane.mNormal.z;
|
||||
speed.x += temp_f0 * plane.mNormal.x;
|
||||
speed.z += temp_f0 * plane.mNormal.z;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16535,68 +16534,68 @@ void daAlink_c::posMove() {
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100) && mProcID != PROC_SWIM_DIVE) {
|
||||
current.pos.y = mWaterY;
|
||||
} else if (mDemo.getDemoType() == 4 || mProcID == PROC_ELEC_DAMAGE || i_dComIfGp_checkPlayerStatus0(0, 0x10)) {
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
} else if (i_checkWolf()) {
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
mSpeed.y += daAlinkHIO_wlSwim_c0::m.field_0x9C;
|
||||
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x9C;
|
||||
|
||||
if (mSpeed.y > daAlinkHIO_wlSwim_c0::m.field_0xA4) {
|
||||
mSpeed.y = daAlinkHIO_wlSwim_c0::m.field_0xA4;
|
||||
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0xA4) {
|
||||
speed.y = daAlinkHIO_wlSwim_c0::m.field_0xA4;
|
||||
}
|
||||
} else {
|
||||
mSpeed.y += daAlinkHIO_wlSwim_c0::m.field_0x60;
|
||||
speed.y += daAlinkHIO_wlSwim_c0::m.field_0x60;
|
||||
|
||||
if (mSpeed.y > daAlinkHIO_wlSwim_c0::m.field_0x5C) {
|
||||
mSpeed.y = daAlinkHIO_wlSwim_c0::m.field_0x5C;
|
||||
if (speed.y > daAlinkHIO_wlSwim_c0::m.field_0x5C) {
|
||||
speed.y = daAlinkHIO_wlSwim_c0::m.field_0x5C;
|
||||
}
|
||||
}
|
||||
} else if (!i_checkEquipHeavyBoots() && getZoraSwim()) {
|
||||
mSpeed.y = -var_f31 * cM_ssin(var_r26);
|
||||
speed.y = -var_f31 * cM_ssin(var_r26);
|
||||
} else if ((checkBootsOrArmorHeavy() && mProcID != PROC_DEAD) || mProcID == PROC_SWIM_DIVE) {
|
||||
mSpeed.y += mGravity;
|
||||
speed.y += mGravity;
|
||||
|
||||
if (mSpeed.y < mMaxFallSpeed) {
|
||||
mSpeed.y = mMaxFallSpeed;
|
||||
if (speed.y < mMaxFallSpeed) {
|
||||
speed.y = mMaxFallSpeed;
|
||||
}
|
||||
} else if (mSpeed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
|
||||
mSpeed.y += mGravity;
|
||||
} else if (mSpeed.y < mMaxFallSpeed) {
|
||||
mSpeed.y += 1.0f;
|
||||
} else if (speed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
|
||||
speed.y += mGravity;
|
||||
} else if (speed.y < mMaxFallSpeed) {
|
||||
speed.y += 1.0f;
|
||||
} else {
|
||||
if (checkZoraWearAbility() && mWaterY > current.pos.y + daAlinkHIO_swim_c0::m.mNormalFloatDepth) {
|
||||
mSpeed.y += daAlinkHIO_swim_c0::m.mZoraFloatDepth;
|
||||
speed.y += daAlinkHIO_swim_c0::m.mZoraFloatDepth;
|
||||
|
||||
if (mSpeed.y < 0.0f) {
|
||||
mSpeed.y = 0.0f;
|
||||
if (speed.y < 0.0f) {
|
||||
speed.y = 0.0f;
|
||||
}
|
||||
} else {
|
||||
mSpeed.y += daAlinkHIO_swim_c0::m.mBuoyancy;
|
||||
speed.y += daAlinkHIO_swim_c0::m.mBuoyancy;
|
||||
}
|
||||
|
||||
if (mSpeed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
|
||||
mSpeed.y = daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
|
||||
if (speed.y > daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed) {
|
||||
speed.y = daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
|
||||
}
|
||||
}
|
||||
} else if (!i_checkModeFlg(0x400)) {
|
||||
if (checkHeavyStateOn(1, 1) && mProcID != PROC_SPINNER_READY && !i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mSpeed.y += mGravity * 2.25f;
|
||||
speed.y += mGravity * 2.25f;
|
||||
|
||||
if (mSpeed.y < mMaxFallSpeed * 1.5f) {
|
||||
mSpeed.y = mMaxFallSpeed * 1.5f;
|
||||
if (speed.y < mMaxFallSpeed * 1.5f) {
|
||||
speed.y = mMaxFallSpeed * 1.5f;
|
||||
}
|
||||
} else {
|
||||
mSpeed.y += mGravity;
|
||||
speed.y += mGravity;
|
||||
|
||||
if (mSpeed.y < mMaxFallSpeed) {
|
||||
mSpeed.y = mMaxFallSpeed;
|
||||
if (speed.y < mMaxFallSpeed) {
|
||||
speed.y = mMaxFallSpeed;
|
||||
}
|
||||
}
|
||||
} else if (checkBoardRide()) {
|
||||
mLinkAcch.OffLineCheck();
|
||||
mSpeed.y += mGravity;
|
||||
speed.y += mGravity;
|
||||
|
||||
if (mSpeed.y < mMaxFallSpeed) {
|
||||
mSpeed.y = mMaxFallSpeed;
|
||||
if (speed.y < mMaxFallSpeed) {
|
||||
speed.y = mMaxFallSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16609,13 +16608,13 @@ void daAlink_c::posMove() {
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
|
||||
cXyz spFC;
|
||||
spFC.z = mSpeedF;
|
||||
mDoMtx_stack_c::multVecSR(&spFC, &mSpeed);
|
||||
current.pos += mSpeed;
|
||||
spFC.z = speedF;
|
||||
mDoMtx_stack_c::multVecSR(&spFC, &speed);
|
||||
current.pos += speed;
|
||||
current.pos.x += field_0x342c;
|
||||
current.pos.z += field_0x3430;
|
||||
} else {
|
||||
current.pos += mSpeed;
|
||||
current.pos += speed;
|
||||
current.pos.x += field_0x342c;
|
||||
current.pos.z += field_0x3430;
|
||||
|
||||
@@ -16626,12 +16625,12 @@ void daAlink_c::posMove() {
|
||||
}
|
||||
|
||||
if (checkBoardRide() && !i_checkModeFlg(2)) {
|
||||
current.pos.y -= mSpeedF * cM_ssin(var_r26);
|
||||
current.pos.y -= speedF * cM_ssin(var_r26);
|
||||
}
|
||||
|
||||
if (i_getSumouMode() && mProcID != PROC_SUMOU_WIN_LOSE) {
|
||||
current.pos.y = var_f31 - 1.0f;
|
||||
mSpeed.y = mGravity;
|
||||
speed.y = mGravity;
|
||||
}
|
||||
|
||||
field_0x342c = 0.0f;
|
||||
@@ -17820,7 +17819,7 @@ asm void daAlink_c::changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE param_0)
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
if (mProcID == PROC_TOOL_DEMO) {
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
resetDemoBck();
|
||||
if (i_checkModeFlg(MODE_RIDING)) {
|
||||
initForceRideHorse();
|
||||
|
||||
@@ -16,8 +16,8 @@ f32 daAlink_c::getBoomSpeed() {
|
||||
|
||||
if (i_checkModeFlg(0x400)) {
|
||||
fopAc_ac_c* ride_actor = mRideAcKeep.getActor();
|
||||
if (ride_actor != NULL && ride_actor->mSpeedF > FLOAT_LABEL(lit_6108)) {
|
||||
speed += ride_actor->mSpeedF;
|
||||
if (ride_actor != NULL && ride_actor->speedF > FLOAT_LABEL(lit_6108)) {
|
||||
speed += ride_actor->speedF;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,8 +211,8 @@ void daAlink_c::throwBoomerang() {
|
||||
mFastShotTime = -1;
|
||||
daPy_boomerangMove_c::offEventKeepFlg();
|
||||
} else {
|
||||
item->mSpeedF = daAlinkHIO_pickUp_c0::m.field_0x28;
|
||||
item->mSpeed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
|
||||
item->speedF = daAlinkHIO_pickUp_c0::m.field_0x28;
|
||||
item->speed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
|
||||
item->current.angle.y = shape_angle.y;
|
||||
|
||||
fopAcM_cancelCarryNow(item);
|
||||
|
||||
@@ -139,7 +139,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
|
||||
canoe = (daCanoe_c*)field_0x850[1].GetCoHitAc();
|
||||
}
|
||||
|
||||
if (mSpeed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
canoe->checkJumpRideFlg() && !checkDeadHP() &&
|
||||
(mProcID != PROC_FALL || field_0x3010 != 0)) {
|
||||
return procCanoeJumpRideInit(canoe);
|
||||
@@ -257,7 +257,7 @@ int daAlink_c::procCanoeRideInit() {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setRideCanoeBasePos(canoe);
|
||||
|
||||
if ((s16)(fopAcM_searchActorAngleY(canoe, this) - canoe->shape_angle.y) > 0) {
|
||||
@@ -329,7 +329,7 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setRideCanoeBasePos(canoe);
|
||||
mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
+13
-13
@@ -686,9 +686,9 @@ void daAlink_c::checkCutAtnActorChange() {
|
||||
void daAlink_c::setCutJumpSpeed(int i_airAt) {
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
mSpeed.y *= 1.35f;
|
||||
speed.y *= 1.35f;
|
||||
}
|
||||
|
||||
if (mTargetedActor != NULL && !i_airAt) {
|
||||
@@ -703,7 +703,7 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) {
|
||||
targetPos.y = mTargetedActor->mEyePos.y;
|
||||
}
|
||||
|
||||
f32 dvar12 = mSpeed.y + mGravity;
|
||||
f32 dvar12 = speed.y + mGravity;
|
||||
f32 dvar10 = 1.0f / mGravity;
|
||||
f32 fvar1 = targetPos.y - (current.pos.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
|
||||
|
||||
@@ -1027,14 +1027,14 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
}
|
||||
|
||||
setCutType(CUT_TYPE_TWIRL);
|
||||
mSpeed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
|
||||
speed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutFnJU_c0::m.mSpeedH;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
mSpeed.y *= lit_7624;
|
||||
speed.y *= lit_7624;
|
||||
}
|
||||
|
||||
if (side_roll) {
|
||||
@@ -1255,10 +1255,10 @@ int daAlink_c::procCutJumpInit(int i_airCut) {
|
||||
|
||||
if (i_airCut) {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
|
||||
mSpeed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
|
||||
mSpeed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
|
||||
}
|
||||
|
||||
setCutJumpSpeed(i_airCut);
|
||||
@@ -1639,7 +1639,7 @@ int daAlink_c::procCutDown() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit() && mSpeed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
if (mLinkAcch.ChkGroundHit() && speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mCommonCounter == 0) {
|
||||
mCommonCounter = 1;
|
||||
@@ -1685,11 +1685,11 @@ int daAlink_c::procCutHead() {
|
||||
if (field_0x300e == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478);
|
||||
|
||||
if (mSpeed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
if (speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
setSingleAnimeParam(ANM_CUT_HEAD, &daAlinkHIO_cutHead_c0::m.mCutAnm);
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
field_0x300e = 1;
|
||||
setCutWaterDropEffect();
|
||||
@@ -1700,7 +1700,7 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed *= lit_8501;
|
||||
|
||||
if (frameCtrl->checkPass(lit_8502)) {
|
||||
mSpeed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
|
||||
speed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutHead_c0::m.mAddSpeedH;
|
||||
initGravity();
|
||||
}
|
||||
@@ -1837,7 +1837,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) {
|
||||
setJumpMode();
|
||||
mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH;
|
||||
mSpeed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
|
||||
speed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
|
||||
setCutJumpSpeed(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
|
||||
if (param_1 == 0) {
|
||||
mSpeed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
field_0x3010 = 0;
|
||||
|
||||
+21
-21
@@ -425,7 +425,7 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
current.angle.y = shape_angle.y + 0x8000;
|
||||
setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm);
|
||||
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH;
|
||||
mSpeed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
|
||||
speed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
|
||||
field_0x300a = 0;
|
||||
} else {
|
||||
daAlink_ANM anm_id;
|
||||
@@ -439,13 +439,13 @@ int daAlink_c::procSideStepInit(int jump_type) {
|
||||
|
||||
setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm);
|
||||
mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH;
|
||||
mSpeed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV;
|
||||
speed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV;
|
||||
field_0x300a = 1;
|
||||
}
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
}
|
||||
|
||||
voiceStart(Z2SE_AL_V_JUMP_S);
|
||||
@@ -686,7 +686,7 @@ int daAlink_c::procFrontRollInit() {
|
||||
daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x00,
|
||||
daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x0c);
|
||||
mNormalSpeed =
|
||||
mSpeedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
|
||||
speedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
|
||||
if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08) {
|
||||
mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08;
|
||||
}
|
||||
@@ -751,11 +751,11 @@ int daAlink_c::procFrontRollCrashInit() {
|
||||
daAlinkHIO_frontRoll_c0::m.mCrashAnm.mInterpolation);
|
||||
|
||||
mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashSpeedH;
|
||||
mSpeed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV;
|
||||
speed.y = daAlinkHIO_frontRoll_c0::m.mCrashSpeedV;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
}
|
||||
|
||||
current.angle.y -= -0x8000;
|
||||
@@ -931,12 +931,12 @@ int daAlink_c::procBackJumpInit(int param_0) {
|
||||
if (param_0) {
|
||||
setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_cutDown_c0::m.mRecoverAnm);
|
||||
mNormalSpeed = daAlinkHIO_cutDown_c0::m.mRecoverSpeedV;
|
||||
mSpeed.y = daAlinkHIO_cutDown_c0::m.mSpeedV;
|
||||
speed.y = daAlinkHIO_cutDown_c0::m.mSpeedV;
|
||||
voiceStart(Z2SE_AL_V_TODOME_RETURN);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BACKFLIP, &daAlinkHIO_backJump_c0::m.mBackflipAnm);
|
||||
mNormalSpeed = daAlinkHIO_backJump_c0::m.mBackflipSpeedH;
|
||||
mSpeed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
|
||||
speed.y = daAlinkHIO_backJump_c0::m.mBackflipSpeedV;
|
||||
voiceStart(Z2SE_AL_V_BACKTEN);
|
||||
}
|
||||
|
||||
@@ -1047,7 +1047,7 @@ int daAlink_c::procBackJumpLand() {
|
||||
int daAlink_c::procSlipInit() {
|
||||
commonProcInit(PROC_SLIP);
|
||||
setSingleAnimeParam(ANM_SLIP, &daAlinkHIO_move_c0::m.mSlideAnm);
|
||||
mNormalSpeed = mSpeedF * daAlinkHIO_move_c0::m.mSlideSpeed;
|
||||
mNormalSpeed = speedF * daAlinkHIO_move_c0::m.mSlideSpeed;
|
||||
|
||||
field_0x2f9d = 0x40;
|
||||
setFootEffectProcType(1);
|
||||
@@ -1097,7 +1097,7 @@ int daAlink_c::procDiveJumpInit() {
|
||||
deleteEquipItem(TRUE, TRUE);
|
||||
setHeavyBoots(0);
|
||||
|
||||
mSpeed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV;
|
||||
speed.y = daAlinkHIO_autoJump_c0::m.mDiveSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mDiveSpeedH;
|
||||
mGravity = daAlinkHIO_autoJump_c0::m.mDiveGravity;
|
||||
|
||||
@@ -1142,7 +1142,7 @@ int daAlink_c::procRollJumpInit() {
|
||||
|
||||
field_0x3478 = field_0x3410;
|
||||
mNormalSpeed = field_0x3410;
|
||||
mSpeed.y = field_0x3414;
|
||||
speed.y = field_0x3414;
|
||||
|
||||
field_0x2fe6 = field_0x30ee;
|
||||
shape_angle.y = field_0x30ee;
|
||||
@@ -1165,7 +1165,7 @@ int daAlink_c::procRollJump() {
|
||||
return checkLandAction(0);
|
||||
}
|
||||
|
||||
if (mSpeed.y < FLOAT_LABEL(lit_6108)) {
|
||||
if (speed.y < FLOAT_LABEL(lit_6108)) {
|
||||
procFallInit(3, daAlinkHIO_autoJump_c0::m.mSpinJumpFallInterpolation);
|
||||
} else {
|
||||
s16 old_angle = shape_angle.x;
|
||||
@@ -1469,7 +1469,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
if ((i_checkWolf() && mDemo.getDemoMode() == 0x39) ||
|
||||
(!i_checkWolf() && mDemo.getDemoMode() == 0x3A)) {
|
||||
field_0x300a = 1;
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (i_checkWolf()) {
|
||||
@@ -1549,7 +1549,7 @@ int daAlink_c::procCoMetamorphoseInit() {
|
||||
mCommonCounter = 0;
|
||||
}
|
||||
}
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3012 = 0;
|
||||
}
|
||||
@@ -1639,7 +1639,7 @@ int daAlink_c::procCoMetamorphoseOnlyInit() {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
|
||||
return 1;
|
||||
@@ -2161,7 +2161,7 @@ int daAlink_c::execute() {
|
||||
}
|
||||
|
||||
cXyz pos = current.pos;
|
||||
field_0x3528 = mSpeed;
|
||||
field_0x3528 = speed;
|
||||
|
||||
mLinkAcch.ClrGroundHit();
|
||||
mLinkAcch.CrrPos(dComIfG_Bgsp());
|
||||
@@ -2203,7 +2203,7 @@ int daAlink_c::execute() {
|
||||
|
||||
Vec tmp;
|
||||
mDoMtx_stack_c::multVec(&tmp, ¤t.pos);
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
|
||||
if (field_0x3198 != 0) {
|
||||
if (mLinkAcch.GetGroundH() != -1000000000.0f) {
|
||||
@@ -2218,13 +2218,13 @@ int daAlink_c::execute() {
|
||||
} else if (checkModeFlg(MODE_UNK_4000)) {
|
||||
if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) {
|
||||
current.pos.y = old_pos.y;
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
}
|
||||
current.pos.x = pos.x;
|
||||
current.pos.z = pos.z;
|
||||
} else if (checkFlyAtnWait() || mProcID == PROC_WARP) {
|
||||
current.pos.y = old_pos.y;
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
}
|
||||
|
||||
field_0x3178 = field_0x3174;
|
||||
@@ -2629,7 +2629,7 @@ int daAlink_c::execute() {
|
||||
} else if (dComIfGp_getDoStatus() == 0x91) {
|
||||
if (checkWolf() ||
|
||||
(field_0x27f4 != NULL &&
|
||||
(field_0x27f4->mSpeedF > 0.1f || (checkGoatCatchActor(field_0x27f4) &&
|
||||
(field_0x27f4->speedF > 0.1f || (checkGoatCatchActor(field_0x27f4) &&
|
||||
fopAcM_GetName(field_0x27f4) != PROC_COW)))) {
|
||||
setDoStatusEmphasys(0x15);
|
||||
} else {
|
||||
@@ -3192,7 +3192,7 @@ int daAlink_c::procCoPeepSubjectivityInit() {
|
||||
|
||||
i_onPlayerNoDraw();
|
||||
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000);
|
||||
field_0x3478 = lit_6183;
|
||||
mCommonCounter = shape_angle.y;
|
||||
|
||||
@@ -137,7 +137,7 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
setHeavyBoots(0);
|
||||
|
||||
mSpeed.y = lit_7451;
|
||||
speed.y = lit_7451;
|
||||
voiceStart(Z2SE_AL_V_JUMP_S);
|
||||
seStartOnlyReverb(Z2SE_AL_SPINNER_START);
|
||||
|
||||
@@ -194,7 +194,7 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
mRideStatus = 5;
|
||||
setBgCheckParam();
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, daAlinkHIO_board_c0::m.mSitAnmSpeed, 4.0f);
|
||||
mSpeed.y = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
mCommonCounter = 0;
|
||||
@@ -276,7 +276,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
setSpinnerStatus(ACTION_STR_JUMP2, ACTION_FLG_DEFAULT);
|
||||
}
|
||||
|
||||
mNormalSpeed = spinner->mSpeedF;
|
||||
mNormalSpeed = spinner->speedF;
|
||||
current.angle.y = spinner->current.angle.y;
|
||||
|
||||
if (spinner->checkSpinnerTagIntoIncRot()) {
|
||||
|
||||
@@ -1129,9 +1129,9 @@ int daAlink_c::procWolfSlipInit() {
|
||||
setSingleAnimeWolfParam(WANM_SLIP, &daAlinkHIO_wlMove_c0::m.field_0x0);
|
||||
|
||||
if (checkWolfDashMode()) {
|
||||
mNormalSpeed = mSpeedF * daAlinkHIO_wlMove_c0::m.field_0xA4;
|
||||
mNormalSpeed = speedF * daAlinkHIO_wlMove_c0::m.field_0xA4;
|
||||
} else {
|
||||
mNormalSpeed = mSpeedF * daAlinkHIO_wlMoveNoP_c0::m.field_0x3C;
|
||||
mNormalSpeed = speedF * daAlinkHIO_wlMoveNoP_c0::m.field_0x3C;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1634,7 +1634,7 @@ int daAlink_c::procWolfRopeSubjectivityInit() {
|
||||
setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0);
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
mNormalSpeed = tmp_0;
|
||||
|
||||
setWolfRopeOffsetY(setWolfRopePosY());
|
||||
@@ -1806,7 +1806,7 @@ int daAlink_c::procWolfHangReadyInit() {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -2261,7 +2261,7 @@ int daAlink_c::procWolfSwimMoveInit() {
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
current.pos.y = mWaterY;
|
||||
mSpeed.y = FLOAT_LABEL(lit_6108);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
@@ -2654,7 +2654,7 @@ int daAlink_c::procWolfJumpAttackKickInit() {
|
||||
setSingleAnimeWolfParam(WANM_JUMP_KICK, &daAlinkHIO_wlAtCjump_c0::m.field_0x14);
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
mNormalSpeed = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
|
||||
@@ -2955,7 +2955,7 @@ int daAlink_c::procWolfEnemyHangBiteInit() {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
|
||||
if (!setWolfEnemyHangBitePos((fopEn_enemy_c*)field_0x281c.getActor())) {
|
||||
@@ -3123,7 +3123,7 @@ int daAlink_c::procWolfCargoCarryInit() {
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
mNormalSpeed = tmp_0;
|
||||
mSpeed.y = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
|
||||
daAlink_WANM wanm;
|
||||
|
||||
+5
-5
@@ -2550,8 +2550,8 @@ int daNpcT_c::initTalk(int param_0, fopAc_ac_c** param_1) {
|
||||
}
|
||||
|
||||
f32 tmp = FLOAT_LABEL(lit_4116);
|
||||
mSpeedF = tmp;
|
||||
mSpeed.set(tmp,tmp,tmp);
|
||||
speedF = tmp;
|
||||
speed.set(tmp,tmp,tmp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -3685,7 +3685,7 @@ void daBaseNpc_c::setEnvTevColor() {
|
||||
/* 8014F0FC-8014F140 149A3C 0044+00 1/1 0/0 2/2 .text setRoomNo__11daBaseNpc_cFv */
|
||||
void daBaseNpc_c::setRoomNo() {
|
||||
s32 room_id = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo);
|
||||
current.mRoomNo = room_id;
|
||||
current.roomNo = room_id;
|
||||
mRoomId = room_id;
|
||||
}
|
||||
|
||||
@@ -5090,8 +5090,8 @@ asm void daNpcF_c::chkActorInAttnArea(fopAc_ac_c* param_0, fopAc_ac_c* param_1,
|
||||
int daNpcF_c::initTalk(int param_0, fopAc_ac_c** param_1) {
|
||||
mFlow.init(this,param_0,0,param_1);
|
||||
f32 tmp = FLOAT_LABEL(lit_4116);
|
||||
mSpeedF = tmp;
|
||||
mSpeed.set(tmp,tmp,tmp);
|
||||
speedF = tmp;
|
||||
speed.set(tmp,tmp,tmp);
|
||||
field_0x9e9 = 0;
|
||||
field_0x9ec = 0;
|
||||
return 1;
|
||||
|
||||
@@ -191,7 +191,6 @@ extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 const m_data__12daItemBase_c[56];
|
||||
extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" extern void* __vt__8cM3dGCyl[3];
|
||||
extern "C" extern void* __vt__8cM3dGAab[3];
|
||||
@@ -545,7 +544,7 @@ SECTION_SDATA2 static f64 lit_4072 = 4503599627370496.0 /* cast u32 to float */;
|
||||
#ifdef NONMATCHING
|
||||
void daItem_c::CreateInit() {
|
||||
mAcchCir.SetWall(30.0f, 30.0f);
|
||||
mAcch.Set(¤t.pos, &next.pos, this, 1, &mAcchCir, &mSpeed, NULL, NULL);
|
||||
mAcch.Set(¤t.pos, &next.pos, this, 1, &mAcchCir, &speed, NULL, NULL);
|
||||
mAcch.ClrWaterNone();
|
||||
mAcch.ClrRoofNone();
|
||||
mAcch.SetWtrChkMode(2);
|
||||
@@ -615,8 +614,8 @@ void daItem_c::CreateInit() {
|
||||
|
||||
field_0x978.init(¤t.pos, 1);
|
||||
|
||||
f32 old_speedF = mSpeedF;
|
||||
cXyz old_speed = mSpeed;
|
||||
f32 old_speedF = speedF;
|
||||
cXyz old_speed = speed;
|
||||
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
@@ -628,8 +627,8 @@ void daItem_c::CreateInit() {
|
||||
field_0x9c0 = 1;
|
||||
}
|
||||
|
||||
mSpeedF = old_speedF;
|
||||
mSpeed = old_speed;
|
||||
speedF = old_speedF;
|
||||
speed = old_speed;
|
||||
|
||||
mAcch.ClrGroundLanding();
|
||||
mAcch.i_ClrGroundHit();
|
||||
@@ -817,7 +816,7 @@ SECTION_SDATA2 static f32 lit_4321 = 18.0f;
|
||||
// eyepos.y issue / need sinit for mFuncPtr
|
||||
#ifdef NONMATCHING
|
||||
int daItem_c::_daItem_execute() {
|
||||
field_0x950 = mSpeed;
|
||||
field_0x950 = speed;
|
||||
CountTimer();
|
||||
|
||||
mEyePos = current.pos;
|
||||
@@ -1190,7 +1189,7 @@ void daItem_c::mode_water_init() {
|
||||
|
||||
/* 8015CCD0-8015CDCC 157610 00FC+00 1/0 0/0 0/0 .text mode_wait__8daItem_cFv */
|
||||
void daItem_c::mode_wait() {
|
||||
if (field_0x924 < 5 && mSpeed.y > FLOAT_LABEL(lit_3857)) {
|
||||
if (field_0x924 < 5 && speed.y > FLOAT_LABEL(lit_3857)) {
|
||||
mAcch.SetGrndNone();
|
||||
}
|
||||
|
||||
@@ -1460,7 +1459,7 @@ int daItem_c::itemActionForRupee() {
|
||||
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
RotateYBase();
|
||||
mSpeedF *= 0.95f;
|
||||
speedF *= 0.95f;
|
||||
}
|
||||
|
||||
if (field_0x94b >= 2) {
|
||||
@@ -1572,7 +1571,7 @@ int daItem_c::initAction() {
|
||||
initAngle();
|
||||
|
||||
if (isHeart(m_itemNo)) {
|
||||
mSpeedF = (cM_rndF(5.0f) + 20.0f) - 15.0f;
|
||||
speedF = (cM_rndF(5.0f) + 20.0f) - 15.0f;
|
||||
shape_angle.z = cM_rndFX(getData().field_0x2a);
|
||||
}
|
||||
|
||||
|
||||
@@ -773,7 +773,7 @@ f32 daPy_py_c::getSpinnerRideSpeed() const {
|
||||
f32 rideSpeed;
|
||||
|
||||
if (checkSpinnerRide()) {
|
||||
rideSpeed = mSpeedF;
|
||||
rideSpeed = speedF;
|
||||
} else {
|
||||
rideSpeed = lit_4215[0];
|
||||
}
|
||||
|
||||
@@ -67,43 +67,43 @@ static int CheckCreateHeap(fopAc_ac_c* p_actor) {
|
||||
}
|
||||
|
||||
/* 80078688-80078690 072FC8 0008+00 1/0 0/0 2/0 .text CreateHeap__16dBgS_MoveBgActorFv */
|
||||
s32 dBgS_MoveBgActor::CreateHeap() {
|
||||
int dBgS_MoveBgActor::CreateHeap() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80078690-80078698 072FD0 0008+00 1/0 0/0 60/0 .text Create__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::Create() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::Create() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80078698-800786A0 072FD8 0008+00 1/0 0/0 3/0 .text Execute__16dBgS_MoveBgActorFPPA3_A4_f */
|
||||
bool dBgS_MoveBgActor::Execute(f32 (**param_0)[3][4]) {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::Execute(f32 (**param_0)[3][4]) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800786A0-800786A8 072FE0 0008+00 1/0 0/0 2/0 .text Draw__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::Draw() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::Draw() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800786A8-800786B0 072FE8 0008+00 1/0 0/0 6/0 .text Delete__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::Delete() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::Delete() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800786B0-800786B8 072FF0 0008+00 1/0 0/0 171/0 .text IsDelete__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::IsDelete() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::IsDelete() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800786B8-800786C0 072FF8 0008+00 1/0 0/0 171/0 .text ToFore__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::ToFore() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::ToFore() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800786C0-800786C8 073000 0008+00 1/0 0/0 171/0 .text ToBack__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::ToBack() {
|
||||
return true;
|
||||
int dBgS_MoveBgActor::ToBack() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -189,8 +189,8 @@ asm int dBgS_MoveBgActor::MoveBGCreate(char const* param_0, int param_1, MoveBGA
|
||||
#endif
|
||||
|
||||
/* 800788DC-80078950 07321C 0074+00 0/0 0/0 169/169 .text MoveBGDelete__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::MoveBGDelete() {
|
||||
bool ret = Delete();
|
||||
int dBgS_MoveBgActor::MoveBGDelete() {
|
||||
int ret = Delete();
|
||||
|
||||
if (field_0x568 != NULL && field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
@@ -199,10 +199,10 @@ bool dBgS_MoveBgActor::MoveBGDelete() {
|
||||
}
|
||||
|
||||
/* 80078950-80078A14 073290 00C4+00 0/0 0/0 183/183 .text MoveBGExecute__16dBgS_MoveBgActorFv */
|
||||
bool dBgS_MoveBgActor::MoveBGExecute() {
|
||||
int dBgS_MoveBgActor::MoveBGExecute() {
|
||||
Mtx* tmp = NULL;
|
||||
|
||||
bool ret = Execute(&tmp);
|
||||
int ret = Execute(&tmp);
|
||||
if (tmp == NULL) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
@@ -446,11 +446,11 @@ fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
|
||||
p_info->mpActor = at_power_check(p_info);
|
||||
|
||||
if (p_info->mpActor != NULL) {
|
||||
cXyz tmp = p_info->mpActor->mSpeed;
|
||||
cXyz tmp = p_info->mpActor->speed;
|
||||
tmp.y = 0.0f;
|
||||
if (tmp.abs() > 100.0f) {
|
||||
f32 x = p_info->mpActor->mSpeed.x;
|
||||
f32 z = p_info->mpActor->mSpeed.z;
|
||||
f32 x = p_info->mpActor->speed.x;
|
||||
f32 z = p_info->mpActor->speed.z;
|
||||
p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
|
||||
} else {
|
||||
if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) {
|
||||
|
||||
@@ -1417,7 +1417,7 @@ void dComIfGp_setNextStage(char const* i_stage, s16 i_point, s8 i_roomNo, s8 i_l
|
||||
|
||||
if (dComIfGs_isPlayerFieldLastStayFieldDataExistFlag() &&
|
||||
daPy_getLinkPlayerActorClass() != NULL) {
|
||||
s8 curPoint = (s8)daPy_getLinkPlayerActorClass()->current.mRoomNo;
|
||||
s8 curPoint = (s8)daPy_getLinkPlayerActorClass()->current.roomNo;
|
||||
cXyz pos = dMapInfo_n::getMapPlayerPos();
|
||||
s16 angle = daPy_getLinkPlayerActorClass()->shape_angle.y;
|
||||
u8 level = dComIfGp_getNowLevel();
|
||||
|
||||
+231
-309
@@ -1,159 +1,115 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/d_cam_param
|
||||
//
|
||||
/**
|
||||
* d_cam_param.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/d_cam_param.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void rationalBezierRatio__8dCamMathFff();
|
||||
extern "C" void zoomFovy__8dCamMathFff();
|
||||
extern "C" void __dt__7cDegreeFv();
|
||||
extern "C" void xyzRotateX__8dCamMathFR4cXyz7cSAngle();
|
||||
extern "C" void xyzRotateY__8dCamMathFR4cXyz7cSAngle();
|
||||
extern "C" void xyzHorizontalDistance__8dCamMathFR4cXyzR4cXyz();
|
||||
extern "C" void __ct__9dCstick_cFv();
|
||||
extern "C" bool Shift__9dCstick_cFUl();
|
||||
extern "C" void __ct__11dCamBGChk_cFv();
|
||||
extern "C" void __ct__11dCamParam_cFl();
|
||||
extern "C" void __dt__11dCamParam_cFv();
|
||||
extern "C" void Change__11dCamParam_cFl();
|
||||
extern "C" void SearchStyle__11dCamParam_cFUl();
|
||||
extern "C" void __ct__11dCamSetup_cFv();
|
||||
extern "C" void __dt__11dCamSetup_cFv();
|
||||
extern "C" void CheckLatitudeRange__11dCamSetup_cFPs();
|
||||
extern "C" void PlayerHideDist__11dCamSetup_cFv();
|
||||
extern "C" void __dt__9dCstick_cFv();
|
||||
extern "C" extern char const* const d_d_cam_param__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_XrotS__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void EventRecoverNotime__9dCamera_cFv();
|
||||
extern "C" void dCam_getBody__Fv();
|
||||
extern "C" void cM_atan2f__Fff();
|
||||
extern "C" void __ct__7cDegreeFf();
|
||||
extern "C" void Sin__7cDegreeCFv();
|
||||
extern "C" void Cos__7cDegreeCFv();
|
||||
extern "C" void __dl__FPv();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804527C8-804527D0 000DC8 0004+04 2/2 0/0 0/0 .sdata2 @3769 */
|
||||
SECTION_SDATA2 static f32 lit_3769[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 804527D0-804527D8 000DD0 0008+00 1/1 0/0 0/0 .sdata2 @3770 */
|
||||
SECTION_SDATA2 static f64 lit_3770 = 1.0;
|
||||
|
||||
/* 804527D8-804527E0 000DD8 0008+00 1/1 0/0 0/0 .sdata2 @3771 */
|
||||
SECTION_SDATA2 static f64 lit_3771 = -1.0;
|
||||
|
||||
/* 804527E0-804527E8 000DE0 0008+00 1/1 0/0 0/0 .sdata2 @3772 */
|
||||
SECTION_SDATA2 static f64 lit_3772 = 2.0;
|
||||
|
||||
/* 804527E8-804527F0 000DE8 0008+00 1/1 0/0 0/0 .sdata2 @3773 */
|
||||
SECTION_SDATA2 static f64 lit_3773 = 4.0;
|
||||
|
||||
/* 804527F0-804527F8 000DF0 0008+00 1/1 0/0 0/0 .sdata2 @3774 */
|
||||
SECTION_SDATA2 static u8 lit_3774[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 804527F8-80452800 000DF8 0008+00 1/1 0/0 0/0 .sdata2 @3775 */
|
||||
SECTION_SDATA2 static f64 lit_3775 = 1e-07;
|
||||
|
||||
/* 80452800-80452808 000E00 0008+00 1/1 0/0 0/0 .sdata2 @3776 */
|
||||
SECTION_SDATA2 static f64 lit_3776 = -1e-07;
|
||||
|
||||
/* 80452808-80452810 000E08 0008+00 1/1 0/0 0/0 .sdata2 @3777 */
|
||||
SECTION_SDATA2 static f64 lit_3777 = 1.0000000116860974e-07;
|
||||
|
||||
/* 8008813C-80088284 082A7C 0148+00 0/0 12/12 0/0 .text rationalBezierRatio__8dCamMathFff
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamMath::rationalBezierRatio(f32 param_0, f32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/rationalBezierRatio__8dCamMathFff.s"
|
||||
f32 dCamMath::rationalBezierRatio(f32 param_0, f32 param_1) {
|
||||
f64 var_f31;
|
||||
f32 var_f1 = param_0;
|
||||
|
||||
if (var_f1 >= 0.0f) {
|
||||
var_f31 = 1.0;
|
||||
} else {
|
||||
var_f31 = -1.0;
|
||||
var_f1 = -var_f1;
|
||||
}
|
||||
|
||||
f64 temp_f2 = 2.0 * var_f1;
|
||||
f64 temp_f2_2 = ((temp_f2 * param_1) - temp_f2) - (2.0 * param_1);
|
||||
f64 temp_f29 = -temp_f2_2;
|
||||
f64 temp_f28 = temp_f29 - 1.0;
|
||||
f64 var_f1_2 = (temp_f2_2 * temp_f2_2) - (4.0 * temp_f28 * var_f1);
|
||||
|
||||
if (var_f1_2 > 0.0) {
|
||||
var_f1_2 = sqrt(var_f1_2);
|
||||
} else {
|
||||
var_f1_2 = 0.0;
|
||||
}
|
||||
|
||||
f64 temp = temp_f29 - var_f1_2;
|
||||
f64 temp_f2_3 = temp_f28 * 2.0;
|
||||
if (temp_f2_3 > 1e-07 || temp_f2_3 < -1e-07) {
|
||||
f64 temp_f2_4 = temp / temp_f2_3;
|
||||
f64 temp_f3 = temp_f2_4 * temp_f2_4;
|
||||
f64 temp_f4 = 1.0 - temp_f2_4;
|
||||
f64 temp_f1 = temp_f3 + ((temp_f4 * temp_f4) + (param_1 * (2.0 * temp_f4 * temp_f2_4)));
|
||||
|
||||
if (temp_f1 > 1.0000000116860974e-07) {
|
||||
return var_f31 * (temp_f3 / temp_f1);
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
return 0.0f;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452810-80452814 000E10 0004+00 2/2 0/0 0/0 .sdata2 @3791 */
|
||||
SECTION_SDATA2 static f32 lit_3791 = 1.0f;
|
||||
|
||||
/* 80452814-80452818 000E14 0004+00 1/1 0/0 0/0 .sdata2 @3807 */
|
||||
SECTION_SDATA2 static f32 lit_3807 = 57.2957763671875f;
|
||||
SECTION_SDATA2 static f32 lit_3791 = 1.0f; // placed in a weird order, so can't remove until fixed
|
||||
|
||||
/* 80088284-800882E0 082BC4 005C+00 0/0 1/1 0/0 .text zoomFovy__8dCamMathFff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamMath::zoomFovy(f32 param_0, f32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/zoomFovy__8dCamMathFff.s"
|
||||
}
|
||||
#pragma pop
|
||||
f32 dCamMath::zoomFovy(f32 param_0, f32 param_1) {
|
||||
cDegree deg(param_0);
|
||||
|
||||
/* 800882E0-8008831C 082C20 003C+00 0/0 1/1 0/0 .text __dt__7cDegreeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm cDegree::~cDegree() {
|
||||
extern "C" asm void __dt__7cDegreeFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__dt__7cDegreeFv.s"
|
||||
f32 radian = cM_atan2f(deg.Sin(), param_1 * deg.Cos());
|
||||
return cAngle::r2d(radian);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8008831C-80088384 082C5C 0068+00 0/0 1/1 0/0 .text xyzRotateX__8dCamMathFR4cXyz7cSAngle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamMath::xyzRotateX(cXyz& param_0, cSAngle param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/xyzRotateX__8dCamMathFR4cXyz7cSAngle.s"
|
||||
cXyz dCamMath::xyzRotateX(cXyz& i_xyz, cSAngle i_angle) {
|
||||
Mtx m;
|
||||
cXyz rot_xyz;
|
||||
|
||||
s16 angle = i_angle.Val();
|
||||
mDoMtx_XrotS(m, angle);
|
||||
PSMTXMultVec(m, &i_xyz, &rot_xyz);
|
||||
return rot_xyz;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088384-800883EC 082CC4 0068+00 0/0 13/13 0/0 .text xyzRotateY__8dCamMathFR4cXyz7cSAngle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamMath::xyzRotateY(cXyz& param_0, cSAngle param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/xyzRotateY__8dCamMathFR4cXyz7cSAngle.s"
|
||||
cXyz dCamMath::xyzRotateY(cXyz& i_xyz, cSAngle i_angle) {
|
||||
Mtx m;
|
||||
cXyz rot_xyz;
|
||||
|
||||
s16 angle = i_angle.Val();
|
||||
mDoMtx_YrotS(m, angle);
|
||||
PSMTXMultVec(m, &i_xyz, &rot_xyz);
|
||||
return rot_xyz;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800883EC-80088434 082D2C 0048+00 0/0 9/9 0/0 .text
|
||||
* xyzHorizontalDistance__8dCamMathFR4cXyzR4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamMath::xyzHorizontalDistance(cXyz& param_0, cXyz& param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/xyzHorizontalDistance__8dCamMathFR4cXyzR4cXyz.s"
|
||||
f32 dCamMath::xyzHorizontalDistance(cXyz& i_posA, cXyz& i_posB) {
|
||||
f64 x = i_posA.x - i_posB.x;
|
||||
f64 z = i_posA.z - i_posB.z;
|
||||
|
||||
return sqrt((x * x) + (z * z));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803AC500-803AC50C 009620 000C+00 2/2 0/0 0/0 .data __vt__11dCamSetup_c */
|
||||
@@ -179,98 +135,56 @@ SECTION_DATA extern void* __vt__9dCstick_c[3 + 1 /* padding */] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80452818-8045281C 000E18 0004+00 3/3 0/0 0/0 .sdata2 @3991 */
|
||||
SECTION_SDATA2 static f32 lit_3991 = 1.0f / 5.0f;
|
||||
|
||||
/* 8045281C-80452820 000E1C 0004+00 1/1 0/0 0/0 .sdata2 @3992 */
|
||||
SECTION_SDATA2 static f32 lit_3992 = 19.0f / 20.0f;
|
||||
|
||||
/* 80088434-8008845C 082D74 0028+00 1/1 0/0 0/0 .text __ct__9dCstick_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCstick_c::dCstick_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__ct__9dCstick_cFv.s"
|
||||
dCstick_c::dCstick_c() {
|
||||
mThresholdLow = 0.2f;
|
||||
mThresholdHigh = 0.95f;
|
||||
mInputSpeed = 6;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8008845C-80088464 082D9C 0008+00 0/0 1/1 0/0 .text Shift__9dCstick_cFUl */
|
||||
bool dCstick_c::Shift(u32 param_0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452820-80452824 000E20 0004+00 1/1 0/0 0/0 .sdata2 @4001 */
|
||||
SECTION_SDATA2 static f32 lit_4001 = 32.0f;
|
||||
|
||||
/* 80452824-80452828 000E24 0004+00 2/2 0/0 0/0 .sdata2 @4002 */
|
||||
SECTION_SDATA2 static f32 lit_4002 = 25.0f;
|
||||
|
||||
/* 80452828-8045282C 000E28 0004+00 2/2 0/0 0/0 .sdata2 @4003 */
|
||||
SECTION_SDATA2 static f32 lit_4003 = 2.0f / 5.0f;
|
||||
|
||||
/* 8045282C-80452830 000E2C 0004+00 1/1 0/0 0/0 .sdata2 @4004 */
|
||||
SECTION_SDATA2 static f32 lit_4004 = 3.0f / 5.0f;
|
||||
|
||||
/* 80452830-80452834 000E30 0004+00 1/1 0/0 0/0 .sdata2 @4005 */
|
||||
SECTION_SDATA2 static f32 lit_4005 = 3.0f;
|
||||
|
||||
/* 80452834-80452838 000E34 0004+00 2/2 0/0 0/0 .sdata2 @4006 */
|
||||
SECTION_SDATA2 static f32 lit_4006 = 15.0f;
|
||||
|
||||
/* 80452838-8045283C 000E38 0004+00 2/2 0/0 0/0 .sdata2 @4007 */
|
||||
SECTION_SDATA2 static f32 lit_4007 = 0.5f;
|
||||
|
||||
/* 8045283C-80452840 000E3C 0004+00 2/2 0/0 0/0 .sdata2 @4008 */
|
||||
SECTION_SDATA2 static f32 lit_4008 = 3.0f / 10.0f;
|
||||
|
||||
/* 80452840-80452844 000E40 0004+00 2/2 0/0 0/0 .sdata2 @4009 */
|
||||
SECTION_SDATA2 static f32 lit_4009 = 10.0f;
|
||||
|
||||
/* 80452844-80452848 000E44 0004+00 2/2 0/0 0/0 .sdata2 @4010 */
|
||||
SECTION_SDATA2 static f32 lit_4010 = 1.0f / 10.0f;
|
||||
|
||||
/* 80452848-8045284C 000E48 0004+00 2/2 0/0 0/0 .sdata2 @4011 */
|
||||
SECTION_SDATA2 static f32 lit_4011 = 0.75f;
|
||||
|
||||
/* 8045284C-80452850 000E4C 0004+00 2/2 0/0 0/0 .sdata2 @4012 */
|
||||
SECTION_SDATA2 static f32 lit_4012 = 80.0f;
|
||||
|
||||
/* 80452850-80452854 000E50 0004+00 1/1 0/0 0/0 .sdata2 @4013 */
|
||||
SECTION_SDATA2 static f32 lit_4013 = 2.0f / 25.0f;
|
||||
|
||||
/* 80452854-80452858 000E54 0004+00 2/2 0/0 0/0 .sdata2 @4014 */
|
||||
SECTION_SDATA2 static f32 lit_4014 = 120.0f;
|
||||
|
||||
/* 80088464-800884F0 082DA4 008C+00 1/1 0/0 0/0 .text __ct__11dCamBGChk_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCamBGChk_c::dCamBGChk_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__ct__11dCamBGChk_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
dCamBGChk_c::dCamBGChk_c() {
|
||||
mFloorMargin = 32.0f;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037A7E0-8037A7E0 006E40 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8037A7E0 = "camstyle.dat";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8037A7ED = "\0\0";
|
||||
#pragma pop
|
||||
mChkInfo[0].mDistance = lit_3791;
|
||||
mChkInfo[0].mChkAngle = 25.0f;
|
||||
mChkInfo[0].mWeightH = 0.4f;
|
||||
mChkInfo[0].mWeightL = 0.6f;
|
||||
|
||||
mChkInfo[1].mDistance = 3.0f;
|
||||
mChkInfo[1].mChkAngle = 15.0f;
|
||||
mChkInfo[1].mWeightH = 0.5f;
|
||||
mChkInfo[1].mWeightL = 0.3f;
|
||||
|
||||
mFwdBackMargin = 10.0f;
|
||||
mFwdCushion = 0.1f;
|
||||
field_0x2c = 0.2f;
|
||||
mGazeBackMargin = 10.0f;
|
||||
mCornerCushion = 0.75f;
|
||||
mWallCushion = 0.5f;
|
||||
mWallUpDistance = 80.0f;
|
||||
mWallBackCushion = 0.08f;
|
||||
mCornerAngleMax = 120.0f;
|
||||
}
|
||||
|
||||
/* 800884F0-8008858C 082E30 009C+00 0/0 1/1 0/0 .text __ct__11dCamParam_cFl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCamParam_c::dCamParam_c(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__ct__11dCamParam_cFl.s"
|
||||
dCamParam_c::dCamParam_c(s32 i_styleID) {
|
||||
u8* cam_data = (u8*)dComIfG_getObjectRes(dComIfGp_getCameraParamFileName(0), "camstyle.dat");
|
||||
|
||||
mCamStyleData = (dCamStyleData::StyleData*)(cam_data + 8);
|
||||
mStyleNum = ((dCamStyleData*)cam_data)->mStyleNum;
|
||||
Change(i_styleID);
|
||||
|
||||
mMapToolFovy = 0xFF;
|
||||
mMapToolArg0 = 0xFF;
|
||||
mMapToolArg1 = 0xFF;
|
||||
mMapToolArg2 = -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8008858C-800885D4 082ECC 0048+00 1/0 1/1 0/0 .text __dt__11dCamParam_cFv */
|
||||
#pragma push
|
||||
@@ -284,104 +198,118 @@ extern "C" asm void __dt__11dCamParam_cFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 800885D4-80088620 082F14 004C+00 1/1 7/7 0/0 .text Change__11dCamParam_cFl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamParam_c::Change(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/Change__11dCamParam_cFl.s"
|
||||
int dCamParam_c::Change(s32 i_styleID) {
|
||||
if (i_styleID >= 0 && i_styleID < mStyleNum) {
|
||||
mStyleID = i_styleID;
|
||||
mCurrentStyle = &mCamStyleData[mStyleID];
|
||||
return 1;
|
||||
}
|
||||
|
||||
mStyleID = 0;
|
||||
mCurrentStyle = mCamStyleData;
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088620-80088668 082F60 0048+00 0/0 4/4 0/0 .text SearchStyle__11dCamParam_cFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamParam_c::SearchStyle(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/SearchStyle__11dCamParam_cFUl.s"
|
||||
int dCamParam_c::SearchStyle(u32 param_0) {
|
||||
int styleID = -1;
|
||||
|
||||
for (int i = 0; i < mStyleNum; i++) {
|
||||
if (param_0 == mCamStyleData[i].field_0x0) {
|
||||
styleID = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return styleID;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452858-8045285C 000E58 0004+00 1/1 0/0 0/0 .sdata2 @4058 */
|
||||
SECTION_SDATA2 static f32 lit_4058 = 0.25f;
|
||||
|
||||
/* 8045285C-80452860 000E5C 0004+00 1/1 0/0 0/0 .sdata2 @4119 */
|
||||
SECTION_SDATA2 static f32 lit_4119 = 100000.0f;
|
||||
|
||||
/* 80452860-80452864 000E60 0004+00 1/1 0/0 0/0 .sdata2 @4120 */
|
||||
SECTION_SDATA2 static f32 lit_4120 = 1.0f / 20.0f;
|
||||
|
||||
/* 80452864-80452868 000E64 0004+00 1/1 0/0 0/0 .sdata2 @4121 */
|
||||
SECTION_SDATA2 static f32 lit_4121 = -60.0f;
|
||||
|
||||
/* 80452868-8045286C 000E68 0004+00 1/1 0/0 0/0 .sdata2 @4122 */
|
||||
SECTION_SDATA2 static f32 lit_4122 = 33.0f / 100.0f;
|
||||
|
||||
/* 8045286C-80452870 000E6C 0004+00 1/1 0/0 0/0 .sdata2 @4123 */
|
||||
SECTION_SDATA2 static f32 lit_4123 = 1.0f / 50.0f;
|
||||
|
||||
/* 80452870-80452874 000E70 0004+00 1/1 0/0 0/0 .sdata2 @4124 */
|
||||
SECTION_SDATA2 static f32 lit_4124 = 100.0f;
|
||||
|
||||
/* 80452874-80452878 000E74 0004+00 1/1 0/0 0/0 .sdata2 @4125 */
|
||||
SECTION_SDATA2 static f32 lit_4125 = 7.0f / 25.0f;
|
||||
|
||||
/* 80452878-8045287C 000E78 0004+00 1/1 0/0 0/0 .sdata2 @4126 */
|
||||
SECTION_SDATA2 static f32 lit_4126 = 3.0f / 20.0f;
|
||||
|
||||
/* 8045287C-80452880 000E7C 0004+00 1/1 0/0 0/0 .sdata2 @4127 */
|
||||
SECTION_SDATA2 static f32 lit_4127 = 0.004999999888241291f;
|
||||
|
||||
/* 80452880-80452884 000E80 0004+00 1/1 0/0 0/0 .sdata2 @4128 */
|
||||
SECTION_SDATA2 static f32 lit_4128 = 3.0f / 50.0f;
|
||||
|
||||
/* 80452884-80452888 000E84 0004+00 1/1 0/0 0/0 .sdata2 @4129 */
|
||||
SECTION_SDATA2 static f32 lit_4129 = 70.0f;
|
||||
|
||||
/* 80452888-8045288C 000E88 0004+00 1/1 0/0 0/0 .sdata2 @4130 */
|
||||
SECTION_SDATA2 static f32 lit_4130 = 60.0f;
|
||||
|
||||
/* 8045288C-80452890 000E8C 0004+00 1/1 0/0 0/0 .sdata2 @4131 */
|
||||
SECTION_SDATA2 static f32 lit_4131 = 35.0f;
|
||||
|
||||
/* 80452890-80452894 000E90 0004+00 1/1 0/0 0/0 .sdata2 @4132 */
|
||||
SECTION_SDATA2 static f32 lit_4132 = 65.0f;
|
||||
|
||||
/* 80452894-80452898 000E94 0004+00 1/1 0/0 0/0 .sdata2 @4133 */
|
||||
SECTION_SDATA2 static f32 lit_4133 = 30.0f;
|
||||
|
||||
/* 80452898-8045289C 000E98 0004+00 1/1 0/0 0/0 .sdata2 @4134 */
|
||||
SECTION_SDATA2 static f32 lit_4134 = 27.0f;
|
||||
|
||||
/* 8045289C-804528A0 000E9C 0004+00 1/1 0/0 0/0 .sdata2 @4135 */
|
||||
SECTION_SDATA2 static f32 lit_4135 = 45.0f;
|
||||
|
||||
/* 804528A0-804528A4 000EA0 0004+00 1/1 0/0 0/0 .sdata2 @4136 */
|
||||
SECTION_SDATA2 static f32 lit_4136 = 3500.0f;
|
||||
|
||||
/* 804528A4-804528A8 000EA4 0004+00 1/1 0/0 0/0 .sdata2 @4137 */
|
||||
SECTION_SDATA2 static f32 lit_4137 = 4.0f;
|
||||
|
||||
/* 804528A8-804528AC 000EA8 0004+00 1/1 0/0 0/0 .sdata2 @4138 */
|
||||
SECTION_SDATA2 static f32 lit_4138 = 1200.0f;
|
||||
|
||||
/* 804528AC-804528B0 000EAC 0004+00 1/1 0/0 0/0 .sdata2 @4139 */
|
||||
SECTION_SDATA2 static f32 lit_4139 = 17.0f / 20.0f;
|
||||
|
||||
/* 804528B0-804528B4 000EB0 0004+00 1/1 0/0 0/0 .sdata2 @4140 */
|
||||
SECTION_SDATA2 static f32 lit_4140 = 50.0f;
|
||||
SECTION_SDATA2 static f32 lit_4058 = 0.25f; // placed in a weird order, so can't remove until fixed
|
||||
|
||||
/* 80088668-800888B8 082FA8 0250+00 0/0 1/1 0/0 .text __ct__11dCamSetup_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCamSetup_c::dCamSetup_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__ct__11dCamSetup_cFv.s"
|
||||
dCamSetup_c::dCamSetup_c() {
|
||||
f32 temp_1 = lit_3791;
|
||||
|
||||
mDrawNear = temp_1;
|
||||
mDrawFar = 100000.0f;
|
||||
field_0xc = 1;
|
||||
mModeSwitchType = -1;
|
||||
mForceType = -1;
|
||||
mCusCus = 0.2f;
|
||||
field_0x24 = 0.05f;
|
||||
field_0x60 = 80.0f;
|
||||
field_0x5c = -60.0f;
|
||||
field_0x28 = 0.33f;
|
||||
field_0x2c = 0.02f;
|
||||
field_0x50 = 100.0f;
|
||||
field_0x30 = 0.75f;
|
||||
mBaseCushion = 0.28f;
|
||||
mJumpCushion = temp_1;
|
||||
field_0x58 = 0.15f;
|
||||
field_0x44 = 0.005f;
|
||||
field_0x54 = 0.06f;
|
||||
mCurveWeight = temp_1;
|
||||
field_0x34 = 25.0f;
|
||||
mSubjLinkCullDist = 70.0f;
|
||||
mParallelDist = 60.0f;
|
||||
mTrimVistaHeight = 35.0f;
|
||||
mTrimCineScopeHeight = 65.0f;
|
||||
field_0xb0 = 150;
|
||||
field_0xb4 = 60.0f;
|
||||
mManualStartCThreshold = 0.3f;
|
||||
mManualEndVal = 0.2f;
|
||||
mFalseValue = 0.1f;
|
||||
mFalseAngle = 30.0f;
|
||||
mDebugFlags = 1;
|
||||
|
||||
field_0xa = 0x118;
|
||||
field_0xa |= 0x200;
|
||||
field_0xa |= 0x400;
|
||||
|
||||
mChargeLatitude = 27.0f;
|
||||
mChargeTimer = 90;
|
||||
mChargeBRatio = 0.5f;
|
||||
mLockonChangeTimer = 40;
|
||||
mLockonChangeCushion = lit_4058;
|
||||
field_0x6c = 45.0f;
|
||||
mForceLockOffDist = 3500.0f;
|
||||
mForceLockOffTimer = 90;
|
||||
mThrowTimer = 30;
|
||||
mThrowVAngle = 25.0f;
|
||||
mThrowCushion = 0.05f;
|
||||
mThrowCtrOffset = 10.0f;
|
||||
field_0x78 = 0.5f;
|
||||
field_0x7c = 0.4f;
|
||||
field_0x80 = 10.0f;
|
||||
field_0x84 = 4.0f;
|
||||
field_0xd4 = 60.0f;
|
||||
field_0xd8 = 100.0f;
|
||||
mWindShakeCtr = 15.0f;
|
||||
mWindShakeFvy = 0.3f;
|
||||
mMapToolCamShortTimer = 60;
|
||||
mMapToolCamLongTimer = 120;
|
||||
mDebugFlags |= 0x4800;
|
||||
field_0x15c = 0.0f;
|
||||
field_0x160 = 0.0f;
|
||||
mDebugFlags |= 0x800;
|
||||
mWaitRollTimer = 120;
|
||||
mWaitRollSpeed = 0.02f;
|
||||
field_0x16c = 1200.0f;
|
||||
field_0xe0 = 0.06f;
|
||||
field_0xec = 25;
|
||||
field_0xf4 = 0.85f;
|
||||
field_0xf8 = temp_1;
|
||||
field_0xf0 = 12;
|
||||
field_0xe4 = 50.0f;
|
||||
field_0xe8 = 0.0f;
|
||||
mScreensaverFirstWaitTimer = 30;
|
||||
mScreensaverWaitTimer = 600;
|
||||
mScreensaverExecTimer = 120;
|
||||
|
||||
dCam_getBody()->EventRecoverNotime();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800888B8-80088918 0831F8 0060+00 1/0 1/1 0/0 .text __dt__11dCamSetup_cFv */
|
||||
#pragma push
|
||||
@@ -394,38 +322,32 @@ extern "C" asm void __dt__11dCamSetup_cFv() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804528B4-804528B8 000EB4 0004+00 1/1 0/0 0/0 .sdata2 @4173 */
|
||||
SECTION_SDATA2 static f32 lit_4173 = 182.04444885253906f;
|
||||
|
||||
/* 80088918-80088988 083258 0070+00 0/0 1/1 0/0 .text CheckLatitudeRange__11dCamSetup_cFPs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamSetup_c::CheckLatitudeRange(s16* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/CheckLatitudeRange__11dCamSetup_cFPs.s"
|
||||
bool dCamSetup_c::CheckLatitudeRange(s16* param_0) {
|
||||
s16 temp0 = cAngle::d2s(field_0x60);
|
||||
s16 temp1 = cAngle::d2s(field_0x5c);
|
||||
|
||||
if (*param_0 > temp0) {
|
||||
*param_0 = temp0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (*param_0 < temp1) {
|
||||
*param_0 = temp1;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088988-800889B0 0832C8 0028+00 0/0 1/1 0/0 .text PlayerHideDist__11dCamSetup_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamSetup_c::PlayerHideDist() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/PlayerHideDist__11dCamSetup_cFv.s"
|
||||
f32 dCamSetup_c::PlayerHideDist() {
|
||||
if (daPy_py_c::i_checkNowWolf()) {
|
||||
return 120.0f;
|
||||
}
|
||||
|
||||
return mSubjLinkCullDist;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800889B0-800889F8 0832F0 0048+00 1/0 0/0 0/0 .text __dt__9dCstick_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCstick_c::~dCstick_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_cam_param/__dt__9dCstick_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8037A7E0-8037A7E0 006E40 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
dCstick_c::~dCstick_c() {}
|
||||
|
||||
+40
-190
@@ -1,257 +1,107 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/d_door_param2
|
||||
//
|
||||
/**
|
||||
* d_door_param2.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/d_door_param2.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fopAc_ac_c {};
|
||||
|
||||
struct door_param2_c {
|
||||
/* 8003A188 */ void getKind(fopAc_ac_c*);
|
||||
/* 8003A194 */ void getDoorModel(fopAc_ac_c*);
|
||||
/* 8003A1A0 */ void getFrontOption(fopAc_ac_c*);
|
||||
/* 8003A1AC */ void getBackOption(fopAc_ac_c*);
|
||||
/* 8003A1B8 */ void getFRoomNo(fopAc_ac_c*);
|
||||
/* 8003A1C4 */ void getBRoomNo(fopAc_ac_c*);
|
||||
/* 8003A1D0 */ void getSwbit(fopAc_ac_c*);
|
||||
/* 8003A1DC */ void getSwbit2(fopAc_ac_c*);
|
||||
/* 8003A1E8 */ void getSwbit3(fopAc_ac_c*);
|
||||
/* 8003A1F4 */ void isMsgDoor(fopAc_ac_c*);
|
||||
/* 8003A200 */ void getEventNo(fopAc_ac_c*);
|
||||
/* 8003A20C */ void getEventNo2(fopAc_ac_c*);
|
||||
/* 8003A218 */ void getMsgNo(fopAc_ac_c*);
|
||||
/* 8003A224 */ void getExitNo(fopAc_ac_c*);
|
||||
/* 8003A230 */ void getFLightInf(fopAc_ac_c*);
|
||||
/* 8003A23C */ void getBLightInf(fopAc_ac_c*);
|
||||
/* 8003A248 */ void getMFLightInf(fopAc_ac_c*);
|
||||
/* 8003A254 */ void getMBLightInf(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void getKind__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getDoorModel__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getFrontOption__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getBackOption__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getFRoomNo__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getBRoomNo__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getSwbit__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getSwbit2__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getSwbit3__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void isMsgDoor__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getEventNo__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getEventNo2__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getMsgNo__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getExitNo__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getFLightInf__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getBLightInf__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getMFLightInf__13door_param2_cFP10fopAc_ac_c();
|
||||
extern "C" void getMBLightInf__13door_param2_cFP10fopAc_ac_c();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8003A188-8003A194 034AC8 000C+00 0/0 0/0 17/17 .text getKind__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getKind(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getKind__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getKind(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 0, 5);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A194-8003A1A0 034AD4 000C+00 0/0 0/0 2/2 .text getDoorModel__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getDoorModel(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getDoorModel__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getDoorModel(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 5, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1A0-8003A1AC 034AE0 000C+00 0/0 0/0 17/17 .text
|
||||
* getFrontOption__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getFrontOption(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getFrontOption__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getFrontOption(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 8, 2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1AC-8003A1B8 034AEC 000C+00 0/0 0/0 14/14 .text
|
||||
* getBackOption__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getBackOption(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getBackOption__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getBackOption(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 10, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1B8-8003A1C4 034AF8 000C+00 0/0 0/0 19/19 .text getFRoomNo__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getFRoomNo(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getFRoomNo__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getFRoomNo(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 13, 6);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1C4-8003A1D0 034B04 000C+00 0/0 0/0 10/10 .text getBRoomNo__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getBRoomNo(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getBRoomNo__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getBRoomNo(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 19, 6);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1D0-8003A1DC 034B10 000C+00 0/0 0/0 25/25 .text getSwbit__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getSwbit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getSwbit__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getSwbit(fopAc_ac_c* i_actor) {
|
||||
return i_actor->orig.angle.z & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1DC-8003A1E8 034B1C 000C+00 0/0 0/0 12/12 .text getSwbit2__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getSwbit2(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getSwbit2__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getSwbit2(fopAc_ac_c* i_actor) {
|
||||
return (i_actor->orig.angle.z >> 8) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1E8-8003A1F4 034B28 000C+00 0/0 0/0 3/3 .text getSwbit3__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getSwbit3(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getSwbit3__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getSwbit3(fopAc_ac_c* i_actor) {
|
||||
return (i_actor->orig.angle.x >> 8) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A1F4-8003A200 034B34 000C+00 0/0 0/0 4/4 .text isMsgDoor__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::isMsgDoor(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/isMsgDoor__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::isMsgDoor(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 31, 1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A200-8003A20C 034B40 000C+00 0/0 0/0 3/3 .text getEventNo__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getEventNo(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getEventNo__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getEventNo(fopAc_ac_c* i_actor) {
|
||||
return i_actor->orig.angle.x & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A20C-8003A218 034B4C 000C+00 0/0 0/0 2/2 .text getEventNo2__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getEventNo2(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getEventNo2__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getEventNo2(fopAc_ac_c* i_actor) {
|
||||
return (i_actor->orig.angle.x >> 8) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A218-8003A224 034B58 000C+00 0/0 0/0 2/2 .text getMsgNo__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getMsgNo(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getMsgNo__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u16 door_param2_c::getMsgNo(fopAc_ac_c* i_actor) {
|
||||
return i_actor->orig.angle.x;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A224-8003A230 034B64 000C+00 0/0 0/0 6/6 .text getExitNo__13door_param2_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getExitNo(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getExitNo__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getExitNo(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 25, 6);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A230-8003A23C 034B70 000C+00 0/0 0/0 1/1 .text getFLightInf__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getFLightInf(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getFLightInf__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getFLightInf(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 25, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A23C-8003A248 034B7C 000C+00 0/0 0/0 1/1 .text getBLightInf__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getBLightInf(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getBLightInf__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getBLightInf(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 28, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A248-8003A254 034B88 000C+00 0/0 0/0 1/1 .text getMFLightInf__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getMFLightInf(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getMFLightInf__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getMFLightInf(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 19, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A254-8003A260 034B94 000C+00 0/0 0/0 1/1 .text getMBLightInf__13door_param2_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void door_param2_c::getMBLightInf(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_door_param2/getMBLightInf__13door_param2_cFP10fopAc_ac_c.s"
|
||||
u8 door_param2_c::getMBLightInf(fopAc_ac_c* i_actor) {
|
||||
return fopAcM_GetParamBit(i_actor, 22, 3);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+137
-1546
File diff suppressed because it is too large
Load Diff
+434
-332
@@ -4,128 +4,23 @@
|
||||
//
|
||||
|
||||
#include "d/d_gameover.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/menu/d_menu_save.h"
|
||||
#include "d/meter/d_meter_HIO.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct mDoGph_gInf_c {
|
||||
static u8 mFadeColor[4];
|
||||
static u8 mFader[4];
|
||||
static u8 mFrameBufferTimg[4];
|
||||
static u8 mFrameBufferTex[4];
|
||||
static u8 mZbufferTex[4];
|
||||
static f32 mFadeRate;
|
||||
};
|
||||
|
||||
struct dSv_player_item_c {
|
||||
/* 80032FB8 */ void setItem(int, u8);
|
||||
/* 80033030 */ void getItem(int, bool) const;
|
||||
};
|
||||
|
||||
struct dSv_player_get_item_c {
|
||||
/* 80033EC8 */ void isFirstBit(u8) const;
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 800349A4 */ void offEventBit(u16);
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C1E4 */ void getResInfo(char const*, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct JUtility {
|
||||
struct TColor {};
|
||||
};
|
||||
|
||||
struct dMsgScrnLight_c {
|
||||
/* 80245934 */ dMsgScrnLight_c(u8, u8);
|
||||
/* 80245F90 */ void draw(f32*, f32, f32, f32, f32, f32, f32, JUtility::TColor,
|
||||
JUtility::TColor);
|
||||
};
|
||||
|
||||
struct JMSMesgEntry_c {};
|
||||
|
||||
struct dMeter2Info_c {
|
||||
/* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*);
|
||||
/* 8021E0C4 */ void resetMiniGameItem(bool);
|
||||
};
|
||||
|
||||
struct dMenu_save_c {
|
||||
/* 8019C314 */ ~dMenu_save_c();
|
||||
/* 801EF6A0 */ dMenu_save_c();
|
||||
/* 801EF7AC */ void _create();
|
||||
/* 801F09AC */ void _open();
|
||||
/* 801F0B28 */ void _delete();
|
||||
/* 801F1048 */ void _move();
|
||||
/* 801F69FC */ void _draw2();
|
||||
};
|
||||
|
||||
class dGov_HIO_c {
|
||||
public:
|
||||
/* 8019AFE0 */ dGov_HIO_c();
|
||||
/* 8019C06C */ virtual ~dGov_HIO_c();
|
||||
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 mScale;
|
||||
/* 0x0C */ f32 mAlpha;
|
||||
/* 0x10 */ f32 mAnimSpeed;
|
||||
/* 0x14 */ GXColor mBlack;
|
||||
/* 0x18 */ GXColor mWhite;
|
||||
}; // Size: 0x1C
|
||||
|
||||
struct dDlst_base_c {};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
|
||||
};
|
||||
|
||||
struct dDlst_Gameover_CAPTURE_c {
|
||||
/* 8019ACF8 */ void draw();
|
||||
/* 8019C2CC */ ~dDlst_Gameover_CAPTURE_c();
|
||||
};
|
||||
|
||||
struct dDlst_GameOverScrnDraw_c {
|
||||
/* 8019B940 */ dDlst_GameOverScrnDraw_c(JKRArchive*);
|
||||
/* 8019BBFC */ ~dDlst_GameOverScrnDraw_c();
|
||||
/* 8019BCB0 */ void setBackAlpha(f32);
|
||||
/* 8019BCF4 */ void draw();
|
||||
};
|
||||
|
||||
struct JFWDisplay {
|
||||
static u8 sManager[4];
|
||||
};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 80300660 */ void setString(char const*, ...);
|
||||
};
|
||||
|
||||
struct J2DGrafContext {};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 802F8498 */ J2DScreen();
|
||||
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
|
||||
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
|
||||
};
|
||||
|
||||
struct J2DPicture {
|
||||
/* 802FC800 */ J2DPicture(u64, JGeometry::TBox2<f32> const&, ResTIMG const*, ResTLUT const*);
|
||||
/* 0x00 */ u8 field_0x0[0x24];
|
||||
};
|
||||
|
||||
//
|
||||
@@ -221,26 +116,19 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
|
||||
extern "C" extern void* g_fopMsg_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__14mDoHIO_entry_c[3];
|
||||
extern "C" extern void* __vt__16dDlst_MenuSave_c[4];
|
||||
extern "C" extern void* __vt__23dDlst_MenuSaveExplain_c[4 + 18 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" u8 mFadeColor__13mDoGph_gInf_c[4];
|
||||
extern "C" extern u8 g_clearColor[4];
|
||||
extern "C" extern u32 g_blackColor;
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mZbufferTex__13mDoGph_gInf_c[4];
|
||||
extern "C" f32 mFadeRate__13mDoGph_gInf_c;
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" extern u8 g_menuHIO[8];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
|
||||
//
|
||||
@@ -264,6 +152,65 @@ SECTION_SDATA2 static f32 lit_3870 = 10.0f;
|
||||
|
||||
/* 8019ACF8-8019AFE0 195638 02E8+00 1/0 0/0 0/0 .text draw__24dDlst_Gameover_CAPTURE_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dDlst_Gameover_CAPTURE_c::draw() {
|
||||
GXTexObj tex_obj;
|
||||
Mtx44 m;
|
||||
|
||||
GXSetTexCopySrc(0, 0, 608, 448);
|
||||
GXSetTexCopyDst(304, 224, GX_TF_RGB565, 1);
|
||||
GXCopyTex(mDoGph_gInf_c::mZbufferTex, 0);
|
||||
GXPixModeSync();
|
||||
GXInitTexObj(&tex_obj, mDoGph_gInf_c::mFrameBufferTex, 304, 224,
|
||||
(GXTexFmt)mDoGph_gInf_c::mFrameBufferTimg->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&tex_obj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
|
||||
GX_ANISO_1);
|
||||
GXLoadTexObj(&tex_obj, GX_TEXMAP0);
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60, GX_FALSE, 125);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(1);
|
||||
C_MTXOrtho(m, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f);
|
||||
GXSetProjection(m, GX_ORTHOGRAPHIC);
|
||||
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
|
||||
GXSetCurrentMtx(0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGB8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
|
||||
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
|
||||
GXPosition3s8(0, 0, -5);
|
||||
GXTexCoord2s8(0, 0);
|
||||
|
||||
GXPosition3s8(1, 0, -5);
|
||||
GXTexCoord2s8(1, 0);
|
||||
|
||||
GXPosition3s8(1, 1, -5);
|
||||
GXTexCoord2s8(1, 1);
|
||||
|
||||
GXPosition3s8(0, 1, -5);
|
||||
GXTexCoord2s8(0, 1);
|
||||
|
||||
i_GXEnd();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -272,6 +219,7 @@ asm void dDlst_Gameover_CAPTURE_c::draw() {
|
||||
#include "asm/d/d_gameover/draw__24dDlst_Gameover_CAPTURE_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BBB50-803BBB5C 018C70 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
@@ -380,6 +328,13 @@ SECTION_DATA static u8 init_process[108] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* typedef void (dGameover_c::*initFunc)();
|
||||
SECTION_DATA initFunc init_process[] = {
|
||||
&dGameover_c::playerAnmWait_init, &dGameover_c::dispFadeOut_init, &dGameover_c::dispWait_init,
|
||||
&dGameover_c::demoFadeIn_init, &dGameover_c::demoFadeOut_init, &dGameover_c::saveOpen_init,
|
||||
&dGameover_c::saveMove_init, &dGameover_c::saveClose_init, &dGameover_c::deleteWait_init,
|
||||
}; */
|
||||
|
||||
/* 803BBC34-803BBC40 -00001 000C+00 0/1 0/0 0/0 .data @3892 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
@@ -481,10 +436,16 @@ SECTION_DATA static u8 move_process[108] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* typedef void (dGameover_c::*moveFunc)();
|
||||
SECTION_DATA moveFunc move_process[] = {
|
||||
&dGameover_c::playerAnmWait_proc, &dGameover_c::dispFadeOut_proc, &dGameover_c::dispWait_proc,
|
||||
&dGameover_c::demoFadeIn_proc, &dGameover_c::demoFadeOut_proc, &dGameover_c::saveOpen_proc,
|
||||
&dGameover_c::saveMove_proc, &dGameover_c::saveClose_proc, &dGameover_c::deleteWait_proc,
|
||||
}; */
|
||||
|
||||
/* 803BBD0C-803BBD2C 018E2C 0020+00 1/1 0/0 0/0 .data offset$4331 */
|
||||
SECTION_DATA static u8 offset[32] = {
|
||||
0xC3, 0x0A, 0x00, 0x00, 0xC2, 0xC0, 0x00, 0x00, 0xC2, 0x60, 0x00, 0x00, 0xC1, 0x90, 0x00, 0x00,
|
||||
0x42, 0x28, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x42, 0xDC, 0x00, 0x00, 0x43, 0x0F, 0x00, 0x00,
|
||||
SECTION_DATA static f32 offset[8] = {
|
||||
-138.0f, -96.0f, -56.0f, -18.0f, 42.0f, 75.0f, 110.0f, 143.0f,
|
||||
};
|
||||
|
||||
/* 803BBD2C-803BBD40 -00001 0014+00 1/0 0/0 0/0 .data l_dGameover_Method */
|
||||
@@ -533,21 +494,22 @@ SECTION_DATA extern void* __vt__10dGov_HIO_c[3 + 3 /* padding */] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80453B8C-80453B90 00218C 0004+00 1/1 0/0 0/0 .sdata2 @3878 */
|
||||
SECTION_SDATA2 static f32 lit_3878 = 27.0f / 10.0f;
|
||||
|
||||
/* 80453B90-80453B94 002190 0004+00 1/1 0/0 0/0 .sdata2 @3879 */
|
||||
SECTION_SDATA2 static f32 lit_3879 = 1.0f / 5.0f;
|
||||
|
||||
/* 8019AFE0-8019B044 195920 0064+00 1/1 0/0 0/0 .text __ct__10dGov_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dGov_HIO_c::dGov_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/__ct__10dGov_HIO_cFv.s"
|
||||
dGov_HIO_c::dGov_HIO_c() {
|
||||
mScale = 2.7f;
|
||||
mAlpha = lit_3869;
|
||||
mAnimSpeed = 0.2f;
|
||||
|
||||
mBlack.r = 0;
|
||||
mBlack.g = 0;
|
||||
mBlack.b = 0;
|
||||
mBlack.a = 0;
|
||||
|
||||
mWhite.r = 255;
|
||||
mWhite.g = 220;
|
||||
mWhite.b = 125;
|
||||
mWhite.a = 255;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80394C28-80394C28 021288 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -566,207 +528,288 @@ SECTION_DATA extern void* __vt__24dDlst_Gameover_CAPTURE_c[4] = {
|
||||
};
|
||||
|
||||
/* 8019B044-8019B2F4 195984 02B0+00 1/1 0/0 0/0 .text _create__11dGameover_cFv */
|
||||
#ifdef NONMATCHING
|
||||
int dGameover_c::_create() {
|
||||
int phase = dComIfG_resLoad(&mPhase, "Gover");
|
||||
|
||||
if (dComIfGp_isPauseFlag() ||
|
||||
(dComIfGp_isHeapLockFlag() != 0 && dComIfGp_isHeapLockFlag() != 6) ||
|
||||
dComIfGp_getMesgStatus() != 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (dMeter2Info_getGameOverType() == 0) {
|
||||
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
|
||||
dComIfGs_addDeathCount();
|
||||
}
|
||||
|
||||
dRes_info_c* resInfo = dComIfG_getObjectResInfo("Gover");
|
||||
|
||||
mpHeap = dComIfGp_getExpHeap2D();
|
||||
dComIfGp_setHeapLockFlag(6);
|
||||
JKRHeap* old_heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
mpHeap->getTotalFreeSize();
|
||||
|
||||
dgo_screen_c = new dDlst_GameOverScrnDraw_c(resInfo->getArchive());
|
||||
dMs_c = new dMenu_save_c();
|
||||
|
||||
if (dMeter2Info_getGameOverType() == 1) {
|
||||
if (!strcmp(dComIfGp_getLastPlayStageName(), "D_MN10A")) {
|
||||
// Last stage was Stallord Arena
|
||||
// Remove Ooccoo from inventory
|
||||
dComIfGs_setItem(SLOT_18, NO_ITEM);
|
||||
dComIfGs_resetLastWarpAcceptStage();
|
||||
}
|
||||
|
||||
dMs_c->setUseType(3);
|
||||
} else if (dMeter2Info_getGameOverType() == 2) {
|
||||
dMs_c->setUseType(4);
|
||||
} else {
|
||||
dMs_c->setUseType(2);
|
||||
}
|
||||
|
||||
dMs_c->_create();
|
||||
dgo_capture_c = new dDlst_Gameover_CAPTURE_c();
|
||||
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
field_0x116 = g_menuHIO.mGameover;
|
||||
|
||||
if (dMeter2Info_getGameOverType() == 1 || dMeter2Info_getGameOverType() == 2) {
|
||||
mIsDemoSave = true;
|
||||
mProc = PROC_DEMO_FADE_IN;
|
||||
dgo_screen_c->setBackAlpha(1.0f);
|
||||
} else {
|
||||
mIsDemoSave = false;
|
||||
mProc = PROC_PLAYER_ANM_WAIT;
|
||||
}
|
||||
|
||||
(this->*init_process[mProc])();
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::_create() {
|
||||
asm int dGameover_c::_create() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/_create__11dGameover_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019B2F4-8019B384 195C34 0090+00 1/1 0/0 0/0 .text _execute__11dGameover_cFv */
|
||||
// matches with sinit
|
||||
#ifdef NONMATCHING
|
||||
int dGameover_c::_execute() {
|
||||
JKRHeap* old_heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
u8 old_proc = mProc;
|
||||
|
||||
(this->*move_process[mProc])();
|
||||
if (mProc != old_proc) {
|
||||
(this->*init_process[mProc])();
|
||||
}
|
||||
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::_execute() {
|
||||
asm int dGameover_c::_execute() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/_execute__11dGameover_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019B384-8019B388 195CC4 0004+00 1/0 0/0 0/0 .text playerAnmWait_init__11dGameover_cFv
|
||||
*/
|
||||
void dGameover_c::playerAnmWait_init() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::playerAnmWait_init() {}
|
||||
|
||||
/* 8019B388-8019B3A0 195CC8 0018+00 1/0 0/0 0/0 .text playerAnmWait_proc__11dGameover_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::playerAnmWait_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/playerAnmWait_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::playerAnmWait_proc() {
|
||||
if (mIsDemoSave) {
|
||||
mProc = PROC_DISP_FADE_OUT;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B3A0-8019B3E8 195CE0 0048+00 1/0 0/0 0/0 .text dispFadeOut_init__11dGameover_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::dispFadeOut_init() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dispFadeOut_init__11dGameover_cFv.s"
|
||||
void dGameover_c::dispFadeOut_init() {
|
||||
mTimer = 30;
|
||||
mDoGph_gInf_c::startFadeOut(15);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B3E8-8019B40C 195D28 0024+00 1/0 0/0 0/0 .text dispFadeOut_proc__11dGameover_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::dispFadeOut_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dispFadeOut_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::dispFadeOut_proc() {
|
||||
if (mTimer != 0) {
|
||||
mTimer--;
|
||||
} else {
|
||||
mProc = PROC_DISP_WAIT;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B40C-8019B454 195D4C 0048+00 1/0 0/0 0/0 .text dispWait_init__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::dispWait_init() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dispWait_init__11dGameover_cFv.s"
|
||||
void dGameover_c::dispWait_init() {
|
||||
mTimer = 90;
|
||||
mDoGph_gInf_c::startFadeIn(30);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B454-8019B478 195D94 0024+00 1/0 0/0 0/0 .text dispWait_proc__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::dispWait_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dispWait_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::dispWait_proc() {
|
||||
if (mTimer != 0) {
|
||||
mTimer--;
|
||||
} else {
|
||||
mProc = PROC_SAVE_OPEN;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B478-8019B484 195DB8 000C+00 1/0 0/0 0/0 .text demoFadeIn_init__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::demoFadeIn_init() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/demoFadeIn_init__11dGameover_cFv.s"
|
||||
void dGameover_c::demoFadeIn_init() {
|
||||
mTimer = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B484-8019B4D8 195DC4 0054+00 1/0 0/0 0/0 .text demoFadeIn_proc__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::demoFadeIn_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/demoFadeIn_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::demoFadeIn_proc() {
|
||||
mTimer++;
|
||||
dgo_screen_c->setBackAlpha(lit_3869);
|
||||
|
||||
if (mTimer >= 30) {
|
||||
mProc = PROC_SAVE_OPEN;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B4D8-8019B4E4 195E18 000C+00 1/0 0/0 0/0 .text demoFadeOut_init__11dGameover_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::demoFadeOut_init() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/demoFadeOut_init__11dGameover_cFv.s"
|
||||
void dGameover_c::demoFadeOut_init() {
|
||||
mTimer = 30;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B94-80453B98 002194 0004+00 1/1 0/0 0/0 .sdata2 @4069 */
|
||||
SECTION_SDATA2 static f32 lit_4069 = 900.0f;
|
||||
|
||||
/* 80453B98-80453BA0 002198 0008+00 1/1 0/0 0/0 .sdata2 @4071 */
|
||||
SECTION_SDATA2 static f64 lit_4071 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8019B4E4-8019B560 195E24 007C+00 1/0 0/0 0/0 .text demoFadeOut_proc__11dGameover_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::demoFadeOut_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/demoFadeOut_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::demoFadeOut_proc() {
|
||||
mTimer--;
|
||||
dgo_screen_c->setBackAlpha((mTimer * mTimer) / 900.0f);
|
||||
|
||||
if (mTimer <= 0) {
|
||||
mProc = PROC_DELETE_WAIT;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B560-8019B564 195EA0 0004+00 1/0 0/0 0/0 .text saveOpen_init__11dGameover_cFv */
|
||||
void dGameover_c::saveOpen_init() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::saveOpen_init() {}
|
||||
|
||||
/* 8019B564-8019B5A4 195EA4 0040+00 1/0 0/0 0/0 .text saveOpen_proc__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::saveOpen_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/saveOpen_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::saveOpen_proc() {
|
||||
if (dMs_c->_open()) {
|
||||
mProc = PROC_SAVE_MOVE;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B5A4-8019B5A8 195EE4 0004+00 1/0 0/0 0/0 .text saveMove_init__11dGameover_cFv */
|
||||
void dGameover_c::saveMove_init() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::saveMove_init() {}
|
||||
|
||||
/* 8019B5A8-8019B5F0 195EE8 0048+00 1/0 0/0 0/0 .text saveMove_proc__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::saveMove_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/saveMove_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::saveMove_proc() {
|
||||
dMs_c->_move();
|
||||
|
||||
if (dMs_c->getSaveStatus() == 3) {
|
||||
mProc = PROC_SAVE_CLOSE;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B5F0-8019B5F4 195F30 0004+00 1/0 0/0 0/0 .text saveClose_init__11dGameover_cFv */
|
||||
void dGameover_c::saveClose_init() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::saveClose_init() {}
|
||||
|
||||
/* 8019B5F4-8019B7BC 195F34 01C8+00 1/0 0/0 0/0 .text saveClose_proc__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::saveClose_proc() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/saveClose_proc__11dGameover_cFv.s"
|
||||
void dGameover_c::saveClose_proc() {
|
||||
if (dMs_c->getEndStatus() == 0) {
|
||||
dComIfGp_setGameoverStatus(3);
|
||||
dComIfGp_offPauseFlag();
|
||||
mDoRst::onReset();
|
||||
} else if (dMs_c->getEndStatus() == 1) {
|
||||
if (dMeter2Info_getGameOverType() == 1 || dMeter2Info_getGameOverType() == 2) {
|
||||
dComIfGp_setGameoverStatus(1);
|
||||
} else {
|
||||
dComIfGp_setGameoverStatus(2);
|
||||
}
|
||||
|
||||
dComIfGp_offPauseFlag();
|
||||
|
||||
// Reset Monkey lantern steal sequence flags if player hasn't regained lantern
|
||||
if (!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[226])) {
|
||||
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[224]);
|
||||
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[225]);
|
||||
}
|
||||
|
||||
// Reset Lantern and oil status back into inventory if gameover during monkey steal sequence
|
||||
if (i_dComIfGs_isItemFirstBit(KANTERA) && dComIfGs_getItem(SLOT_1, true) == NO_ITEM) {
|
||||
dComIfGs_setItem(SLOT_1, KANTERA);
|
||||
dComIfGs_setOil(dMeter2Info_getOilGaugeBackUp());
|
||||
}
|
||||
|
||||
dMeter2Info_resetMiniGameItem(false);
|
||||
}
|
||||
|
||||
if (dMeter2Info_getGameOverType() == 1 && dMeter2Info_getGameOverType() == 2 &&
|
||||
dComIfGp_getGameoverStatus() == 1)
|
||||
{
|
||||
mProc = PROC_DEMO_FADE_OUT;
|
||||
} else {
|
||||
mProc = PROC_DELETE_WAIT;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B7BC-8019B7C0 1960FC 0004+00 1/0 0/0 0/0 .text deleteWait_init__11dGameover_cFv */
|
||||
void dGameover_c::deleteWait_init() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::deleteWait_init() {}
|
||||
|
||||
/* 8019B7C0-8019B7C4 196100 0004+00 1/0 0/0 0/0 .text deleteWait_proc__11dGameover_cFv */
|
||||
void dGameover_c::deleteWait_proc() {
|
||||
/* empty function */
|
||||
}
|
||||
void dGameover_c::deleteWait_proc() {}
|
||||
|
||||
/* 8019B7C4-8019B864 196104 00A0+00 1/1 0/0 0/0 .text _draw__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::_draw() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/_draw__11dGameover_cFv.s"
|
||||
int dGameover_c::_draw() {
|
||||
if (dgo_capture_c != NULL && dComIfGp_isPauseFlag()) {
|
||||
dComIfGd_set2DOpa(dgo_capture_c);
|
||||
}
|
||||
|
||||
if (mIsDemoSave && mProc >= PROC_DISP_WAIT) {
|
||||
if (dgo_screen_c != NULL) {
|
||||
dComIfGd_set2DOpa(dgo_screen_c);
|
||||
}
|
||||
dMs_c->_draw2();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019B864-8019B940 1961A4 00DC+00 1/1 0/0 0/0 .text _delete__11dGameover_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dGameover_c::_delete() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/_delete__11dGameover_cFv.s"
|
||||
int dGameover_c::_delete() {
|
||||
JKRHeap* old_heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
|
||||
if (dgo_screen_c != NULL) {
|
||||
delete dgo_screen_c;
|
||||
dgo_screen_c = NULL;
|
||||
}
|
||||
|
||||
dMs_c->_delete();
|
||||
delete dMs_c;
|
||||
delete dgo_capture_c;
|
||||
|
||||
mpHeap->freeAll();
|
||||
dComIfGp_offHeapLockFlag(0);
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
|
||||
dComIfG_resDelete(&mPhase, "Gover");
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80394C28-80394C28 021288 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -786,6 +829,46 @@ SECTION_SDATA2 static f32 lit_4291 = 660.0f;
|
||||
|
||||
/* 8019B940-8019BBFC 196280 02BC+00 1/1 0/0 0/0 .text
|
||||
* __ct__24dDlst_GameOverScrnDraw_cFP10JKRArchive */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
dDlst_GameOverScrnDraw_c::dDlst_GameOverScrnDraw_c(JKRArchive* i_archive) {
|
||||
mpScreen = new J2DScreen();
|
||||
mpScreen->setPriority("zelda_game_over.blo", 0x100000, i_archive);
|
||||
dPaneClass_showNullPane(mpScreen);
|
||||
|
||||
mFadeColor.set(0, 0, 0, 0);
|
||||
|
||||
if (dMeter2Info_getGameOverType() != 0) {
|
||||
mpScreen->search('n_base')->hide();
|
||||
|
||||
if (mDoGph_gInf_c::getFadeRate() == 1.0f) {
|
||||
mFadeColor = mDoGph_gInf_c::getFadeColor();
|
||||
}
|
||||
}
|
||||
|
||||
mpScreen->search('base_b')->hide();
|
||||
|
||||
JUtility::TColor img_white(mFadeColor);
|
||||
JUtility::TColor img_black(mFadeColor);
|
||||
img_white.a = 0;
|
||||
img_black.a = 255;
|
||||
|
||||
ResTIMG* img = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti");
|
||||
mpBackImg =
|
||||
new J2DPicture('PICT01', JGeometry::TBox2<f32>(0.0f, 486.0f, 0.0f, 660.0f), img, NULL);
|
||||
mpBackImg->setBlackWhite(img_white, img_black);
|
||||
|
||||
J2DTextBox* gold_tbox = (J2DTextBox*)mpScreen->search('gold_00');
|
||||
gold_tbox->setFont(mDoExt_getSubFont());
|
||||
|
||||
char string[64];
|
||||
dMeter2Info_getString(0x381, string, NULL);
|
||||
gold_tbox->setString(string);
|
||||
|
||||
mpLight = new dMsgScrnLight_c(6, 0xFF);
|
||||
field_0x10 = 0.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -794,39 +877,21 @@ asm dDlst_GameOverScrnDraw_c::dDlst_GameOverScrnDraw_c(JKRArchive* param_0) {
|
||||
#include "asm/d/d_gameover/__ct__24dDlst_GameOverScrnDraw_cFP10JKRArchive.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019BBFC-8019BCB0 19653C 00B4+00 1/0 0/0 0/0 .text __dt__24dDlst_GameOverScrnDraw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dDlst_GameOverScrnDraw_c::~dDlst_GameOverScrnDraw_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/__dt__24dDlst_GameOverScrnDraw_cFv.s"
|
||||
dDlst_GameOverScrnDraw_c::~dDlst_GameOverScrnDraw_c() {
|
||||
delete mpBackImg;
|
||||
delete mpScreen;
|
||||
dComIfGp_getMain2DArchive()->removeResourceAll();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453BA8-80453BAC 0021A8 0004+00 1/1 0/0 0/0 .sdata2 @4316 */
|
||||
SECTION_SDATA2 static f32 lit_4316 = 255.0f;
|
||||
|
||||
/* 8019BCB0-8019BCF4 1965F0 0044+00 3/3 0/0 0/0 .text setBackAlpha__24dDlst_GameOverScrnDraw_cFf
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dDlst_GameOverScrnDraw_c::setBackAlpha(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/setBackAlpha__24dDlst_GameOverScrnDraw_cFf.s"
|
||||
void dDlst_GameOverScrnDraw_c::setBackAlpha(f32 i_alpha) {
|
||||
mpBackImg->setAlpha(i_alpha * 255.0f);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8042CA20-8042CA2C 059740 000C+00 1/1 0/0 0/0 .bss @3882 */
|
||||
static u8 lit_3882[12];
|
||||
|
||||
/* 8042CA2C-8042CA48 05974C 001C+00 2/2 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[28];
|
||||
|
||||
/* 80453BAC-80453BB0 0021AC 0004+00 1/1 0/0 0/0 .sdata2 @4374 */
|
||||
SECTION_SDATA2 static f32 lit_4374 = 608.0f;
|
||||
@@ -846,82 +911,119 @@ SECTION_SDATA2 static f32 lit_4377[1 + 1 /* padding */] = {
|
||||
|
||||
/* 8019BCF4-8019BF3C 196634 0248+00 1/0 0/0 0/0 .text draw__24dDlst_GameOverScrnDraw_cFv
|
||||
*/
|
||||
// matches with literals / sinit
|
||||
#ifdef NONMATCHING
|
||||
/* ############################################################################################## */
|
||||
/* 8042CA20-8042CA2C 059740 000C+00 1/1 0/0 0/0 .bss @3882 */
|
||||
static u8 lit_3882[12];
|
||||
|
||||
/* 8042CA2C-8042CA48 05974C 001C+00 2/2 0/0 0/0 .bss l_HIO */
|
||||
static dGov_HIO_c l_HIO;
|
||||
|
||||
void dDlst_GameOverScrnDraw_c::draw() {
|
||||
J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort();
|
||||
graf_ctx->setup2D();
|
||||
|
||||
if (dMeter2Info_getGameOverType() == 1 || dMeter2Info_getGameOverType() == 2) {
|
||||
if (mDoGph_gInf_c::getFadeRate() == 1.0f) {
|
||||
mFadeColor = mDoGph_gInf_c::getFadeColor();
|
||||
}
|
||||
|
||||
JUtility::TColor img_black(mFadeColor);
|
||||
JUtility::TColor img_white(mFadeColor);
|
||||
img_black.a = 0;
|
||||
img_white.a = 255;
|
||||
|
||||
mpBackImg->setBlackWhite(img_black, img_white);
|
||||
mpBackImg->draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false);
|
||||
} else {
|
||||
JUtility::TColor img_black;
|
||||
JUtility::TColor img_white;
|
||||
|
||||
img_black.r = l_HIO.mBlack.r;
|
||||
img_black.g = l_HIO.mBlack.g;
|
||||
img_black.b = l_HIO.mBlack.b;
|
||||
img_black.a = l_HIO.mBlack.a;
|
||||
|
||||
img_white.r = l_HIO.mWhite.r;
|
||||
img_white.g = l_HIO.mWhite.g;
|
||||
img_white.b = l_HIO.mWhite.b;
|
||||
img_white.a = l_HIO.mWhite.a;
|
||||
|
||||
mpBackImg->draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false);
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
mpLight->draw(&field_0x10, offset[i] + 304.0f, 224.0f, l_HIO.mScale, l_HIO.mScale,
|
||||
l_HIO.mAlpha, l_HIO.mAnimSpeed, img_black, img_white);
|
||||
}
|
||||
}
|
||||
|
||||
mpScreen->draw(0.0f, 0.0f, graf_ctx);
|
||||
}
|
||||
#else
|
||||
/* ############################################################################################## */
|
||||
/* 8042CA20-8042CA2C 059740 000C+00 1/1 0/0 0/0 .bss @3882 */
|
||||
static u8 lit_3882[12];
|
||||
|
||||
/* 8042CA2C-8042CA48 05974C 001C+00 2/2 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[28];
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dDlst_GameOverScrnDraw_c::draw() {
|
||||
// asm void dDlst_GameOverScrnDraw_c::draw() {
|
||||
extern "C" asm void draw__24dDlst_GameOverScrnDraw_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/draw__24dDlst_GameOverScrnDraw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019BF3C-8019BF5C 19687C 0020+00 1/0 0/0 0/0 .text dGameover_Draw__FP11dGameover_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dGameover_Draw(dGameover_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dGameover_Draw__FP11dGameover_c.s"
|
||||
static int dGameover_Draw(dGameover_c* i_this) {
|
||||
return i_this->_draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019BF5C-8019BF7C 19689C 0020+00 1/0 0/0 0/0 .text dGameover_Execute__FP11dGameover_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dGameover_Execute(dGameover_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dGameover_Execute__FP11dGameover_c.s"
|
||||
static int dGameover_Execute(dGameover_c* i_this) {
|
||||
return i_this->_execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019BF7C-8019BF84 1968BC 0008+00 1/0 0/0 0/0 .text dGameover_IsDelete__FP11dGameover_c
|
||||
*/
|
||||
static bool dGameover_IsDelete(dGameover_c* param_0) {
|
||||
return true;
|
||||
static int dGameover_IsDelete(dGameover_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8019BF84-8019BFA4 1968C4 0020+00 1/0 0/0 0/0 .text dGameover_Delete__FP11dGameover_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dGameover_Delete(dGameover_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dGameover_Delete__FP11dGameover_c.s"
|
||||
static int dGameover_Delete(dGameover_c* i_this) {
|
||||
return i_this->_delete();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019BFA4-8019BFC4 1968E4 0020+00 1/0 0/0 0/0 .text dGameover_Create__FP9msg_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dGameover_Create(msg_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/dGameover_Create__FP9msg_class.s"
|
||||
static int dGameover_Create(msg_class* i_this) {
|
||||
return static_cast<dGameover_c*>(i_this)->_create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019BFC4-8019C008 196904 0044+00 0/0 2/2 0/0 .text d_GameOver_Create__FUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 d_GameOver_Create(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/d_GameOver_Create__FUc.s"
|
||||
s32 d_GameOver_Create(u8 i_gameoverType) {
|
||||
dMeter2Info_setGameOverType(i_gameoverType);
|
||||
return fopMsgM_create(PROC_GAMEOVER, NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019C008-8019C06C 196948 0064+00 0/0 1/1 0/0 .text d_GameOver_Delete__FRUi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void d_GameOver_Delete(unsigned int& param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/d_GameOver_Delete__FRUi.s"
|
||||
bool d_GameOver_Delete(unsigned int& i_id) {
|
||||
if (i_id != UINT32_MAX) {
|
||||
fopMsgM_Delete(fopMsgM_SearchByID(i_id));
|
||||
i_id = -1;
|
||||
dMeter2Info_setGameOverType(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019C06C-8019C0C8 1969AC 005C+00 2/1 0/0 0/0 .text __dt__10dGov_HIO_cFv */
|
||||
#pragma push
|
||||
@@ -938,8 +1040,7 @@ extern "C" asm void __dt__10dGov_HIO_cFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_gameover_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_gameover_cpp(){nofralloc
|
||||
#include "asm/d/d_gameover/__sinit_d_gameover_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
@@ -964,7 +1065,8 @@ asm dDlst_Gameover_CAPTURE_c::~dDlst_Gameover_CAPTURE_c() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMenu_save_c::~dMenu_save_c() {
|
||||
// asm dMenu_save_c::~dMenu_save_c() {
|
||||
extern "C" asm void __dt__12dMenu_save_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_gameover/__dt__12dMenu_save_cFv.s"
|
||||
}
|
||||
|
||||
+36
-105
@@ -15,38 +15,21 @@
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__9dInsect_cFv();
|
||||
extern "C" void Insect_GetDemoMain__9dInsect_cFv();
|
||||
extern "C" void CalcZBuffer__9dInsect_cFf();
|
||||
extern "C" extern char const* const d_d_insect__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoLib_project__FP3VecP3Vec();
|
||||
extern "C" void mDoLib_pos2camera__FP3VecP3Vec();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_orderItemEvent__FP10fopAc_ac_cUsUs();
|
||||
extern "C" void fopAcM_createItemForTrBoxDemo__FPC4cXyziiiPC5csXyzPC4cXyz();
|
||||
extern "C" void fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi();
|
||||
extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
|
||||
extern "C" void isEventBit__11dSv_event_cCFUs();
|
||||
extern "C" void reset__14dEvt_control_cFv();
|
||||
extern "C" void setPtI_Id__14dEvt_control_cFUi();
|
||||
extern "C" void endCheckOld__16dEvent_manager_cFPCc();
|
||||
extern "C" void newData__13dDlst_peekZ_cFssPUl();
|
||||
extern "C" void Insect_Release__9dInsect_cFv();
|
||||
extern "C" void isCatchNotGiveInsect__14dMenu_Insect_cFUc();
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
inline int dComIfGs_isEventBit(u16 event) {
|
||||
return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(event);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BA078-803BA088 017198 000C+04 1/1 0/0 0/0 .data __vt__9dInsect_c */
|
||||
SECTION_DATA extern void* __vt__9dInsect_c[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
@@ -67,17 +50,12 @@ dInsect_c::dInsect_c() {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80393D98-80393D98 0203F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80393D98 = "DEFAULT_GETITEM";
|
||||
#pragma pop
|
||||
|
||||
/* 8015E078-8015E26C 1589B8 01F4+00 0/0 0/0 24/24 .text Insect_GetDemoMain__9dInsect_cFv
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void dInsect_c::Insect_GetDemoMain() {
|
||||
if (field_0x58C != 1) {
|
||||
switch (field_0x58C) {
|
||||
case 0:
|
||||
if (fopAcM_checkCarryNow(this)) {
|
||||
cLib_offBit(mAttentionInfo.mFlags,0x10);
|
||||
fopAcM_cancelCarryNow(this);
|
||||
@@ -93,7 +71,8 @@ void dInsect_c::Insect_GetDemoMain() {
|
||||
} else {
|
||||
cLib_onBit(mAttentionInfo.mFlags,0x10);
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
case 1:
|
||||
if (mEvtInfo.checkCommandItem()) {
|
||||
if (field_0x588 != -1) {
|
||||
dComIfGp_event_setItemPartnerId(field_0x588);
|
||||
@@ -105,87 +84,49 @@ void dInsect_c::Insect_GetDemoMain() {
|
||||
fopAcM_orderItemEvent(this,0,0);
|
||||
mEvtInfo.i_onCondition(8);
|
||||
}
|
||||
}
|
||||
|
||||
if (dComIfGp_evmng_endCheck("DEFAULT_GETITEM")) {
|
||||
i_dComIfGp_event_reset();
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x582]) || field_0x585 != 0) {
|
||||
field_0x56D = 1;
|
||||
field_0x58C = 0;
|
||||
if (field_0x584 == 0) {
|
||||
fopAcM_createItem(¤t.pos,0,-1,-1,0,0,0);
|
||||
field_0x584 = 1;
|
||||
break;
|
||||
case 2:
|
||||
if (dComIfGp_evmng_endCheck("DEFAULT_GETITEM")) {
|
||||
i_dComIfGp_event_reset();
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x582]) || field_0x585 != 0) {
|
||||
field_0x56D = 1;
|
||||
field_0x58C = 0;
|
||||
if (field_0x584 == 0) {
|
||||
fopAcM_createItem(¤t.pos,0,-1,-1,0,0,0);
|
||||
field_0x584 = 1;
|
||||
}
|
||||
} else {
|
||||
fopAcM_delete(this);
|
||||
|
||||
}
|
||||
} else {
|
||||
fopAcM_delete(this);
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dInsect_c::Insect_GetDemoMain() {
|
||||
nofralloc
|
||||
#include "asm/d/d_insect/Insect_GetDemoMain__9dInsect_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804535E0-804535E4 001BE0 0004+00 1/1 0/0 0/0 .sdata2 @3871 */
|
||||
SECTION_SDATA2 static f32 lit_3871 = 20.0f;
|
||||
|
||||
/* 804535E4-804535E8 001BE4 0004+00 1/1 0/0 0/0 .sdata2 @3872 */
|
||||
SECTION_SDATA2 static u8 lit_3872[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 804535E8-804535EC 001BE8 0004+00 1/1 0/0 0/0 .sdata2 @3873 */
|
||||
SECTION_SDATA2 static f32 lit_3873 = 608.0f;
|
||||
|
||||
/* 804535EC-804535F0 001BEC 0004+00 1/1 0/0 0/0 .sdata2 @3874 */
|
||||
SECTION_SDATA2 static f32 lit_3874 = 448.0f;
|
||||
|
||||
/* 804535F0-804535F4 001BF0 0004+00 1/1 0/0 0/0 .sdata2 @3875 */
|
||||
SECTION_SDATA2 static f32 lit_3875 = -10.0f;
|
||||
|
||||
/* 804535F4-804535F8 001BF4 0004+00 1/1 0/0 0/0 .sdata2 @3876 */
|
||||
SECTION_SDATA2 static f32 lit_3876 = 16777215.0f;
|
||||
|
||||
/* 804535F8-80453600 001BF8 0004+04 1/1 0/0 0/0 .sdata2 @3877 */
|
||||
SECTION_SDATA2 static f32 lit_3877[1 + 1 /* padding */] = {
|
||||
1.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8015E26C-8015E3F8 158BAC 018C+00 0/0 0/0 3/3 .text CalcZBuffer__9dInsect_cFf */
|
||||
#ifdef NONMATCHING
|
||||
void dInsect_c::CalcZBuffer(f32 param_0) {
|
||||
f32 camera_trim_height;
|
||||
cXyz pos;
|
||||
cXyz pos_projected;
|
||||
cXyz pos;
|
||||
|
||||
pos = current.pos;
|
||||
pos.y += FLOAT_LABEL(lit_3871);
|
||||
pos.y += 20.0f;
|
||||
|
||||
mDoLib_project(&pos_projected,&pos);
|
||||
mDoLib_project(&pos, &pos_projected);
|
||||
|
||||
if (dComIfGp_getCamera(0)) {
|
||||
camera_trim_height = dComIfGp_getCamera(0)->mCamera.field_0x93c;
|
||||
camera_trim_height = *(f32*)&dComIfGp_getCamera(0)->mCamera.mCamSetup.mTypeTable;
|
||||
} else {
|
||||
camera_trim_height = FLOAT_LABEL(lit_3872);
|
||||
camera_trim_height = 0.0f;
|
||||
}
|
||||
|
||||
if (pos_projected.x < FLOAT_LABEL(lit_3872) ||
|
||||
pos_projected.x > FLOAT_LABEL(lit_3873) ||
|
||||
pos_projected.y < camera_trim_height ||
|
||||
pos_projected.y < FLOAT_LABEL(lit_3874) - camera_trim_height) {
|
||||
if (pos_projected.x > 0.0f &&
|
||||
pos_projected.x < 608.0f &&
|
||||
pos_projected.y > camera_trim_height &&
|
||||
pos_projected.y < 448.0f - camera_trim_height) {
|
||||
dComIfGd_peekZ(pos_projected.x,pos_projected.y,&field_0x578);
|
||||
} else {
|
||||
field_0x578 = 0;
|
||||
@@ -194,23 +135,13 @@ void dInsect_c::CalcZBuffer(f32 param_0) {
|
||||
f32 view_near = dComIfGd_getView()->mNear;
|
||||
f32 view_far = dComIfGd_getView()->mFar;
|
||||
|
||||
mDoLib_pos2camera(&pos_projected,&pos);
|
||||
mDoLib_pos2camera(&pos, &pos_projected);
|
||||
pos_projected.z += param_0;
|
||||
if (pos_projected.z == FLOAT_LABEL(lit_3872)) {
|
||||
pos_projected.z = FLOAT_LABEL(lit_3875);
|
||||
if (!pos_projected.z) {
|
||||
pos_projected.z = -10.0f;
|
||||
}
|
||||
|
||||
field_0x57C = view_near + ((view_far * view_near) / pos_projected.z) / (view_far - view_near);
|
||||
field_0x57C = (((view_near + ((view_far * view_near) / pos_projected.z)) / (view_far - view_near)) + 1.0f) * 16777215.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dInsect_c::CalcZBuffer(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_insect/CalcZBuffer__9dInsect_cFf.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80393D98-80393D98 0203F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+2
-14
@@ -218,13 +218,11 @@ static asm void dThunder_Delete(dThunder_c* param_0) {
|
||||
|
||||
/* 801AE3FC-801AE458 1A8D3C 005C+00 1/0 0/0 0/0 .text dThunder_Create__FP12kankyo_class
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
// regalloc
|
||||
static int dThunder_Create(kankyo_class* param_0) {
|
||||
dThunder_c* thunder_ptr = (dThunder_c*)param_0;
|
||||
int ret = thunder_ptr->createHeap();
|
||||
int ret;
|
||||
|
||||
if (ret == 0) {
|
||||
if (thunder_ptr->createHeap() == 0) {
|
||||
return 5;
|
||||
} else {
|
||||
ret = thunder_ptr->create();
|
||||
@@ -233,16 +231,6 @@ static int dThunder_Create(kankyo_class* param_0) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dThunder_Create(kankyo_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ky_thunder/dThunder_Create__FP12kankyo_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80394F40-80394F40 0215A0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+2
-2
@@ -448,7 +448,7 @@ static u8 dStage_isBossStage(dStage_dt_c* stageDt) {
|
||||
/* 80023F50-80023F84 01E890 0034+00 1/1 0/0 0/1 .text dStage_KeepDoorInfoInit__FP11dStage_dt_c */
|
||||
static void dStage_KeepDoorInfoInit(dStage_dt_c* param_0) {
|
||||
if (dStage_isBossStage(param_0) == 0) {
|
||||
DoorInfo.unk_0x0 = NULL;
|
||||
DoorInfo.unk_0x0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -471,7 +471,7 @@ dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo() {
|
||||
}
|
||||
|
||||
static void dStage_initRoomKeepDoorInfo() {
|
||||
l_RoomKeepDoorInfo.unk_0x0 = NULL;
|
||||
l_RoomKeepDoorInfo.unk_0x0 = 0;
|
||||
}
|
||||
|
||||
/* 80024078-80024174 01E9B8 00FC+00 1/1 0/0 0/0 .text
|
||||
|
||||
+63
-87
@@ -5,9 +5,9 @@
|
||||
|
||||
#include "d/d_timer.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
|
||||
//
|
||||
@@ -195,18 +195,12 @@ asm void dTimer_c::_execute() {
|
||||
/* 8025D33C-8025D3BC 257C7C 0080+00 1/1 0/0 0/0 .text _draw__8dTimer_cFv */
|
||||
|
||||
int dTimer_c::_draw() {
|
||||
int ret;
|
||||
|
||||
if (dComIfGp_isPauseFlag() || dMsgObject_isTalkNowCheck()) {
|
||||
ret = 1;
|
||||
} else {
|
||||
dComIfGd_set2DOpa((dDlst_base_c*)field_0xfc);
|
||||
ret = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
|
||||
dComIfGd_set2DOpa(mp_tm_scrn);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8025D3BC-8025D524 257CFC 0168+00 1/1 0/0 0/0 .text _delete__8dTimer_cFv */
|
||||
@@ -252,7 +246,7 @@ bool dTimer_c::stock_start() {
|
||||
OSTime current_time = dLib_time_c::getTime();
|
||||
mTime1 = current_time;
|
||||
mTime2 = current_time;
|
||||
|
||||
|
||||
mTime1 -= OS_TIMER_CLOCK_MS * dComIfG_getTimerNowTimeMs();
|
||||
}
|
||||
return mDeleteCheck == 5;
|
||||
@@ -275,61 +269,54 @@ int dTimer_c::stock_start(s16 param_0) {
|
||||
mDeleteCheck = 5;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 8025D7E8-8025D86C 258128 0084+00 3/3 1/1 0/0 .text stop__8dTimer_cFUc */
|
||||
int dTimer_c::stop(u8 param_0) {
|
||||
int ret;
|
||||
|
||||
if (field_0x16A == 1 || field_0x16B != 0) {
|
||||
ret = 0;
|
||||
return 0;
|
||||
} else if (mDeleteCheck != 4) {
|
||||
ret = 0;
|
||||
return 0;
|
||||
} else {
|
||||
mTime3 = dLib_time_c::getTime();
|
||||
field_0x16A = 1;
|
||||
field_0x16B = param_0;
|
||||
ret = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 8025D86C-8025D920 2581AC 00B4+00 1/1 1/1 0/0 .text restart__8dTimer_cFUc */
|
||||
int dTimer_c::restart(u8 param_0) {
|
||||
if (field_0x16A != 1 || field_0x16B != param_0) {
|
||||
return 0;
|
||||
} else if (mDeleteCheck != 4 && mDeleteCheck != 2) {
|
||||
return 0;
|
||||
} else {
|
||||
if (mDeleteCheck != 4 && mDeleteCheck != 2) {
|
||||
return 0;
|
||||
} else {
|
||||
mTime2 = dLib_time_c::getTime();
|
||||
mTime5 += mTime2 - mTime3;
|
||||
field_0x16A = 0;
|
||||
field_0x16B = 0;
|
||||
return 1;
|
||||
}
|
||||
mTime2 = dLib_time_c::getTime();
|
||||
mTime5 += mTime2 - mTime3;
|
||||
field_0x16A = 0;
|
||||
field_0x16B = 0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8025D920-8025D9E0 258260 00C0+00 0/0 1/1 0/0 .text end__8dTimer_cFi */
|
||||
int dTimer_c::end(int param_0) {
|
||||
int ret;
|
||||
if (mDeleteCheck != 4) {
|
||||
ret = 0;
|
||||
|
||||
} else {
|
||||
mTime6 = dLib_time_c::getTime();
|
||||
mDeleteCheck = 6;
|
||||
dComIfG_setTimerNowTimeMs((mTime6 - mTime1 - mTime5) / OS_TIMER_CLOCK_MS);
|
||||
if (param_0 != -1) {
|
||||
field_0x158 = param_0;
|
||||
}
|
||||
ret = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
mTime6 = dLib_time_c::getTime();
|
||||
mDeleteCheck = 6;
|
||||
dComIfG_setTimerNowTimeMs((mTime6 - mTime1 - mTime5) / OS_TIMER_CLOCK_MS);
|
||||
|
||||
if (param_0 != -1) {
|
||||
field_0x158 = param_0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8025D9E0-8025D9F0 258320 0010+00 0/0 1/1 0/0 .text deleteRequest__8dTimer_cFv */
|
||||
@@ -353,8 +340,8 @@ int dTimer_c::getLimitTimeMs() {
|
||||
int dTimer_c::getRestTimeMs() {
|
||||
OSTime tmpTime2 = mTime2 - mTime1 - mTime5;
|
||||
// OSTime tmpTime = (mTime5) - mLimitTime;
|
||||
|
||||
return (tmpTime2 - mLimitTime) / OS_TIMER_CLOCK_MS;
|
||||
|
||||
return (tmpTime2 - mLimitTime) / OS_TIMER_CLOCK_MS;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -372,6 +359,7 @@ int dTimer_c::isStart() {
|
||||
if (field_0x16A != 1 && mDeleteCheck == 4) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* ############################################################################################## */
|
||||
@@ -422,10 +410,10 @@ dDlst_TimerScrnDraw_c::dDlst_TimerScrnDraw_c() {
|
||||
field_0x3D0 = -1;
|
||||
field_0x3D4 = 0;
|
||||
|
||||
field_0x3B0 = 0; // fix
|
||||
field_0x3B4 = 0; // fix
|
||||
field_0x3B8 = 0; // fix
|
||||
field_0x3BC = 0; // fix
|
||||
field_0x3B0 = 0; // fix
|
||||
field_0x3B4 = 0; // fix
|
||||
field_0x3B8 = 0; // fix
|
||||
field_0x3BC = 0; // fix
|
||||
|
||||
field_0x3DE = 0;
|
||||
field_0x3DF = 0;
|
||||
@@ -790,43 +778,39 @@ asm void dDlst_TimerScrnDraw_c::drawPikari(int param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80260F04-80260F24 25B844 0020+00 1/0 0/0 0/0 .text dTimer_Draw__FP8dTimer_c */
|
||||
static void dTimer_Draw(dTimer_c* i_timer) {
|
||||
i_timer->_draw();
|
||||
static void dTimer_Draw(dTimer_c* i_this) {
|
||||
i_this->_draw();
|
||||
}
|
||||
|
||||
/* 80260F24-80260F44 25B864 0020+00 1/0 0/0 0/0 .text dTimer_Execute__FP8dTimer_c */
|
||||
static void dTimer_Execute(dTimer_c* i_timer) {
|
||||
i_timer->_execute();
|
||||
static void dTimer_Execute(dTimer_c* i_this) {
|
||||
i_this->_execute();
|
||||
}
|
||||
|
||||
/* 80260F44-80260F4C 25B884 0008+00 1/0 0/0 0/0 .text dTimer_IsDelete__FP8dTimer_c */
|
||||
static bool dTimer_IsDelete(dTimer_c* i_timer) {
|
||||
static bool dTimer_IsDelete(dTimer_c* i_this) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80260F4C-80260F6C 25B88C 0020+00 1/0 0/0 0/0 .text dTimer_Delete__FP8dTimer_c */
|
||||
static void dTimer_Delete(dTimer_c* i_timer) {
|
||||
i_timer->_delete();
|
||||
static void dTimer_Delete(dTimer_c* i_this) {
|
||||
i_this->_delete();
|
||||
}
|
||||
|
||||
/* 80260F6C-80260F8C 25B8AC 0020+00 1/0 0/0 0/0 .text dTimer_Create__FP9msg_class */
|
||||
static void dTimer_Create(msg_class* i_timer) {
|
||||
((dTimer_c*)i_timer)->_create();
|
||||
static void dTimer_Create(msg_class* i_this) {
|
||||
((dTimer_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 80260F8C-80261034 25B8CC 00A8+00 0/0 1/1 9/9 .text dTimer_createTimer__FlUlUcUcffff */
|
||||
s32 dTimer_createTimer(s32 param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4,
|
||||
f32 param_5, f32 param_6, f32 param_7) {
|
||||
s32 ret;
|
||||
|
||||
s32 dTimer_createTimer(s32 param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4, f32 param_5,
|
||||
f32 param_6, f32 param_7) {
|
||||
if (dComIfG_getTimerMode() == -1) {
|
||||
ret = fopMsgM_Timer_create(0x315,param_0,param_1,param_2,param_3,param_4,param_5,param_6,param_7,0);
|
||||
return fopMsgM_Timer_create(PROC_TIMER, param_0, param_1, param_2, param_3, param_4,
|
||||
param_5, param_6, param_7, 0);
|
||||
}
|
||||
else {
|
||||
ret = -1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
return -1;
|
||||
}
|
||||
/* ############################################################################################## */
|
||||
/* 8039A3D8-8039A3D8 026A38 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -852,12 +836,16 @@ SECTION_SDATA2 static f32 lit_5547 = 419.0f;
|
||||
/* 80261034-80261100 25B974 00CC+00 0/0 1/1 0/0 .text dTimer_createStockTimer__Fv */
|
||||
s32 dTimer_createStockTimer() {
|
||||
if (dComIfG_getTimerMode() != -1) {
|
||||
if ((dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4) && strcmp(dComIfGp_getStartStageName(),"F_SP115")) {
|
||||
if ((dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4) &&
|
||||
strcmp(dComIfGp_getStartStageName(), "F_SP115"))
|
||||
{
|
||||
dComIfG_setTimerMode(-1);
|
||||
return -1;
|
||||
} else {
|
||||
u8 timer_type = dComIfG_getTimerType();
|
||||
return fopMsgM_Timer_create(0x315,10,0,timer_type,0,FLOAT_LABEL(lit_5544),FLOAT_LABEL(lit_5545),FLOAT_LABEL(lit_5546),FLOAT_LABEL(lit_5547),0);
|
||||
return fopMsgM_Timer_create(PROC_TIMER, 10, 0, timer_type, 0, FLOAT_LABEL(lit_5544),
|
||||
FLOAT_LABEL(lit_5545), FLOAT_LABEL(lit_5546),
|
||||
FLOAT_LABEL(lit_5547), 0);
|
||||
}
|
||||
} else {
|
||||
return -1;
|
||||
@@ -868,7 +856,7 @@ s32 dTimer_createStockTimer() {
|
||||
u32 dTimer_createGetIn2D(s32 param_0, cXyz param_1) {
|
||||
if (dComIfG_getTimerPtr()) {
|
||||
cXyz tmp;
|
||||
mDoLib_project(¶m_1,&tmp);
|
||||
mDoLib_project(¶m_1, &tmp);
|
||||
param_0 = dComIfG_getTimerPtr()->createGetIn(tmp);
|
||||
} else {
|
||||
param_0 = 0;
|
||||
@@ -890,28 +878,20 @@ static int dTimer_createStart2D(s32 param_0, u16 param_1) {
|
||||
|
||||
/* 802611F0-80261244 25BB30 0054+00 0/0 0/0 5/5 .text dTimer_isStart__Fv */
|
||||
int dTimer_isStart() {
|
||||
int ret;
|
||||
|
||||
if (dComIfG_getTimerPtr()) {
|
||||
ret = dComIfG_getTimerPtr()->isStart();
|
||||
} else {
|
||||
ret = 0;
|
||||
return dComIfG_getTimerPtr()->isStart();
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80261244-80261298 25BB84 0054+00 0/0 0/0 2/2 .text dTimer_getRestTimeMs__Fv */
|
||||
int dTimer_getRestTimeMs() {
|
||||
int ret;
|
||||
|
||||
if (dComIfG_getTimerPtr()) {
|
||||
ret = dComIfG_getTimerPtr()->getRestTimeMs();
|
||||
} else {
|
||||
ret = 0;
|
||||
return dComIfG_getTimerPtr()->getRestTimeMs();
|
||||
}
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80261298-802612EC 25BBD8 0054+00 0/0 0/0 2/2 .text dTimer_show__Fv */
|
||||
@@ -930,15 +910,11 @@ void dTimer_hide() {
|
||||
|
||||
/* 80261340-80261394 25BC80 0054+00 0/0 0/0 1/1 .text dTimer_isReadyFlag__Fv */
|
||||
u32 dTimer_isReadyFlag() {
|
||||
u32 ret;
|
||||
|
||||
if (dComIfG_getTimerPtr()) {
|
||||
ret = dComIfG_getTimerPtr()->isReadyFlag();
|
||||
} else {
|
||||
ret = 0;
|
||||
return dComIfG_getTimerPtr()->isReadyFlag();
|
||||
}
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80261394-802613DC 25BCD4 0048+00 1/0 0/0 0/0 .text __dt__21dDlst_TimerScrnDraw_cFv */
|
||||
|
||||
+4
-11
@@ -8,14 +8,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dMapInfo_c {
|
||||
/* 8003F40C */ static s8 calcFloorNo(f32, bool, int);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -272,7 +264,8 @@ dTres_c::typeGroupData_c* dTres_c::getFirstData(u8 listIdx) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return mTypeGroupListAll[listIdx].field_0x0;
|
||||
// this is wrong, fix later
|
||||
return (dTres_c::typeGroupData_c*)mTypeGroupListAll[listIdx].field_0x0;
|
||||
}
|
||||
|
||||
/* 8009C39C-8009C3B4 096CDC 0018+00 2/2 3/3 0/0 .text
|
||||
@@ -335,8 +328,8 @@ int dTres_c::getTypeGroupNoToType(u8 i_typeGroupNo) {
|
||||
|
||||
/* 8009C4B0-8009C4FC 096DF0 004C+00 1/1 3/3 0/0 .text getTypeToTypeGroupNo__7dTres_cFUc
|
||||
*/
|
||||
int dTres_c::getTypeToTypeGroupNo(u8 i_type) {
|
||||
u8 groupNo = 17;
|
||||
u8 dTres_c::getTypeToTypeGroupNo(u8 i_type) {
|
||||
int groupNo = 17;
|
||||
for (int i = 0; i < 17; i++) {
|
||||
if (i_type == typeToTypeGroup[i][0]) {
|
||||
groupNo = typeToTypeGroup[i][1];
|
||||
|
||||
@@ -1754,9 +1754,9 @@ asm void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* param_1, f32* param_2) {
|
||||
#pragma pop
|
||||
|
||||
/* 8005B530-8005B60C 055E70 00DC+00 0/0 0/0 5/5 .text dKyw_get_AllWind_vecpow__FP4cXyz */
|
||||
// missing mr instruction
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dKyw_get_AllWind_vecpow(cXyz* param_0) {
|
||||
cXyz dKyw_get_AllWind_vecpow(cXyz* param_0) {
|
||||
f32 sp8;
|
||||
cXyz spC;
|
||||
cXyz sp18;
|
||||
@@ -1768,7 +1768,7 @@ void dKyw_get_AllWind_vecpow(cXyz* param_0) {
|
||||
sp24 = sp30 * (5.0f * sp8);
|
||||
spC = sp18 + sp24;
|
||||
|
||||
*param_0 = spC;
|
||||
return spC;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
||||
+2
-2
@@ -366,8 +366,8 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u32 mNextRoomNo__10dMapInfo_c;
|
||||
extern "C" extern u8 data_80450E58[4];
|
||||
extern "C" extern u8 data_80450E60[4];
|
||||
extern "C" extern u8 mNowStayFloorNo__10dMapInfo_c[4];
|
||||
extern "C" extern u8 mNowStayFloorNoDecisionFlg__10dMapInfo_c[4];
|
||||
extern "C" f32 mMinX__8dMpath_c;
|
||||
extern "C" f32 mMaxX__8dMpath_c;
|
||||
extern "C" f32 mMinZ__8dMpath_c;
|
||||
|
||||
+13
-23
@@ -4,8 +4,6 @@
|
||||
//
|
||||
|
||||
#include "d/map/d_map_path.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
|
||||
@@ -42,25 +40,12 @@ extern "C" u8 m_texObjAgg__8dMpath_n[28];
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj();
|
||||
extern "C" void draw__12dDlst_base_cFv();
|
||||
extern "C" bool isDrawType__11dDrawPath_cFi();
|
||||
extern "C" void __dt__18dRenderingFDAmap_cFv();
|
||||
extern "C" void __dt__11dDrawPath_cFv();
|
||||
extern "C" void getLineColor__11dDrawPath_cFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void GXClearVtxDesc();
|
||||
extern "C" void GXPixModeSync();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern Mtx g_mDoMtx_identity;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -93,7 +78,7 @@ void dMpath_n::dTexObjAggregate_c::remove() {
|
||||
void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
|
||||
if (isDrawType(p_line->unk0)) {
|
||||
int width = getLineWidth(p_line->unk1);
|
||||
|
||||
|
||||
if (width > 0 && p_line->unk2 >= 2) {
|
||||
GXSetLineWidth(width, GX_TO_ZERO);
|
||||
GXSetTevColor(GX_TEVREG0, *getLineColor(p_line->unk0 & 0x3F, p_line->unk1));
|
||||
@@ -114,7 +99,7 @@ void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
|
||||
void dDrawPath_c::rendering(dDrawPath_c::poly_class const* p_poly) {
|
||||
if (isDrawType(p_poly->field_0x0)) {
|
||||
GXSetTevColor(GX_TEVREG0, *getColor(p_poly->field_0x0 & 0x3F));
|
||||
|
||||
|
||||
if (p_poly->field_0x1 >= 3) {
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, p_poly->field_0x1);
|
||||
|
||||
@@ -169,7 +154,7 @@ void dDrawPath_c::rendering(dDrawPath_c::room_class const* p_room) {
|
||||
if (floor != NULL) {
|
||||
for (int i = 0; i < p_room->field_0x0; i++) {
|
||||
if (isRenderingFloor(floor->field_0x0)) {
|
||||
rendering(floor);
|
||||
rendering(floor);
|
||||
}
|
||||
floor++;
|
||||
}
|
||||
@@ -189,7 +174,7 @@ void dDrawPath_c::drawPath() {
|
||||
/* 8003CD38-8003CDAC 037678 0074+00 0/0 3/3 0/0 .text
|
||||
* makeResTIMG__15dRenderingMap_cCFP7ResTIMGUsUsPUcPUcUs */
|
||||
void dRenderingMap_c::makeResTIMG(ResTIMG* p_image, u16 width, u16 height, u8* p_data,
|
||||
u8* p_palette, u16 param_5) const {
|
||||
u8* p_palette, u16 param_5) const {
|
||||
p_image->format = GX_TF_CI14;
|
||||
p_image->alphaEnabled = 2;
|
||||
p_image->width = width;
|
||||
@@ -253,7 +238,8 @@ void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_CPREV, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
|
||||
@@ -324,7 +310,7 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
|
||||
* make the map look worse for extra speed in the emulator, especially in large
|
||||
* areas such as hyrule field.
|
||||
*/
|
||||
//#define HYRULE_FIELD_SPEEDHACK
|
||||
// #define HYRULE_FIELD_SPEEDHACK
|
||||
|
||||
/* 8003D3C0-8003D68C 037D00 02CC+00 0/0 2/2 0/0 .text
|
||||
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
|
||||
@@ -333,6 +319,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
||||
if (width <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
setTevSettingIntensityTextureToCI();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
@@ -341,6 +328,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetNumTevStages(1);
|
||||
GXLoadTexObj(dMpath_n::m_texObjAgg.mp_texObj[6], GX_TEXMAP0);
|
||||
|
||||
u16* unk = p_line->unk4;
|
||||
s32 unk2 = p_line->unk2;
|
||||
GXSetLineWidth(width, GX_TO_ONE);
|
||||
@@ -349,6 +337,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
||||
GXSetTevColor(GX_TEVREG0, lineColor);
|
||||
lineColor.r = lineColor.r - 4;
|
||||
GXSetTevColor(GX_TEVREG1, lineColor);
|
||||
|
||||
for (int i = 0; i < unk2; unk++, i++) {
|
||||
#ifndef HYRULE_FIELD_SPEEDHACK
|
||||
if (i < unk2 - 1) {
|
||||
@@ -374,6 +363,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
||||
GXTexCoord2f32(0, 0);
|
||||
i_GXEnd();
|
||||
}
|
||||
|
||||
setTevSettingNonTextureDirectColor();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
@@ -393,7 +383,7 @@ s32 dRenderingFDAmap_c::getDecorationLineWidth(int param_0) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A7C90-803A7CF8 004DB0 0068+00 0/0 12/12 0/0 .data __vt__18dRenderingFDAmap_c */
|
||||
SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
|
||||
extern void* __vt__18dRenderingFDAmap_c[26] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__12dDlst_base_cFv,
|
||||
@@ -423,7 +413,7 @@ SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
|
||||
};
|
||||
|
||||
/* 803A7CF8-803A7D38 004E18 0040+00 0/0 15/15 0/0 .data __vt__11dDrawPath_c */
|
||||
SECTION_DATA extern void* __vt__11dDrawPath_c[16] = {
|
||||
extern void* __vt__11dDrawPath_c[16] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__12dDlst_base_cFv,
|
||||
|
||||
+816
-582
File diff suppressed because it is too large
Load Diff
+224
-81
@@ -4,78 +4,143 @@
|
||||
//
|
||||
|
||||
#include "d/map/d_map_path_fmap.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fmpTresTypeGroupData_c {
|
||||
class fmpTresTypeGroupData_c {
|
||||
public:
|
||||
fmpTresTypeGroupData_c() {
|
||||
mpTresData = NULL;
|
||||
mpNext = NULL;
|
||||
}
|
||||
|
||||
/* 8003EB70 */ ~fmpTresTypeGroupData_c();
|
||||
};
|
||||
|
||||
struct dTres_c {
|
||||
struct data_s {};
|
||||
void setTypeGroupNo(u8 i_no) { mTypeGroupNo = i_no; }
|
||||
void setNextData(fmpTresTypeGroupData_c* i_next) { mpNext = i_next; }
|
||||
void setTresData(const dTres_c::data_s* i_data) { mpTresData = i_data; }
|
||||
const dTres_c::data_s* getTresData() { return mpTresData; }
|
||||
fmpTresTypeGroupData_c* getNextData() { return mpNext; }
|
||||
|
||||
struct typeGroupData_c {};
|
||||
/* 0x0 */ const dTres_c::data_s* mpTresData;
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpNext;
|
||||
/* 0x8 */ u8 mTypeGroupNo;
|
||||
}; // Size: 0xC
|
||||
|
||||
/* 8009C360 */ void getFirstData(u8);
|
||||
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
|
||||
/* 8009C49C */ void getTypeGroupNoToType(u8);
|
||||
/* 8009C4B0 */ void getTypeToTypeGroupNo(u8);
|
||||
};
|
||||
|
||||
struct fmpTresTypeGroupDataList_c {
|
||||
class fmpTresTypeGroupDataList_c {
|
||||
public:
|
||||
/* 8003D790 */ void addTypeGroupData(u8, dTres_c::data_s const*);
|
||||
/* 8003EB10 */ ~fmpTresTypeGroupDataList_c();
|
||||
/* 8003EC90 */ fmpTresTypeGroupDataList_c();
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpTypeGroupDataHead;
|
||||
/* 0x4 */ fmpTresTypeGroupData_c* mpNextData;
|
||||
};
|
||||
|
||||
struct dSv_save_c {
|
||||
/* 800350A8 */ void getSave2(int);
|
||||
class fmpTresTypeGroupDataListAll_c {
|
||||
public:
|
||||
void addTypeGroupData(u8 i_typeGroupNo, const dTres_c::data_s* i_data) {
|
||||
mpTypeGroupData[i_typeGroupNo].addTypeGroupData(i_typeGroupNo, i_data);
|
||||
}
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupDataList_c mpTypeGroupData[17];
|
||||
};
|
||||
|
||||
struct dSv_memory2_c {
|
||||
/* 80034AEC */ void isVisitedRoom(int);
|
||||
class dMenu_Fmap_data_c {
|
||||
public:
|
||||
dTres_c::list_class* getTresure() { return mp_tresure; }
|
||||
f32 getFilelist2MinX() { return m_fileList2->mLeftRmX; }
|
||||
f32 getFilelist2MinZ() { return m_fileList2->mInnerRmZ; }
|
||||
f32 getFilelist2MaxX() { return m_fileList2->mRightRmX; }
|
||||
f32 getFilelist2MaxZ() { return m_fileList2->mFrontRmZ; }
|
||||
|
||||
/* 0x0 */ dTres_c::list_class* mp_tresure;
|
||||
/* 0x4 */ dStage_FileList2_dt_c* m_fileList2;
|
||||
/* 0x8 */ dDrawPath_c::room_class* mp_mapPath;
|
||||
/* 0xC */ void* mp_dzsData;
|
||||
};
|
||||
|
||||
struct dSv_memBit_c {
|
||||
/* 800347E8 */ void isTbox(int) const;
|
||||
class dMenu_Fmap_stage_data_c;
|
||||
class dMenu_Fmap_room_data_c {
|
||||
public:
|
||||
/* 8003D818 */ bool isArrival();
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
|
||||
f32 getFileList2MinX() { return mp_fmapData->getFilelist2MinX(); }
|
||||
f32 getFileList2MinZ() { return mp_fmapData->getFilelist2MinZ(); }
|
||||
f32 getFileList2MaxX() { return mp_fmapData->getFilelist2MaxX(); }
|
||||
f32 getFileList2MaxZ() { return mp_fmapData->getFilelist2MaxZ(); }
|
||||
dMenu_Fmap_room_data_c* getNextData() { return mp_nextData; }
|
||||
int getRoomNo() { return m_roomNo; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_data_c* mp_fmapData;
|
||||
/* 0x04 */ fmpTresTypeGroupDataListAll_c* mp_fmpTresTypeGroupDataListAll;
|
||||
/* 0x08 */ dMenu_Fmap_room_data_c* mp_nextData;
|
||||
/* 0x0C */ dMenu_Fmap_stage_data_c* mp_parentStage;
|
||||
/* 0x10 */ u8 m_roomNo;
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
class dMenu_Fmap_stage_arc_data_c {
|
||||
public:
|
||||
u8 getVisitedRoomSaveTableNo() { return mVisitedRoomSaveTableNo; }
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 mSaveTableNo;
|
||||
/* 0x2 */ u8 mVisitedRoomSaveTableNo;
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
class dMenu_Fmap_stage_data_c {
|
||||
public:
|
||||
/* 8003D95C */ bool isArrival();
|
||||
/* 8003D9D8 */ int buildFmapStageData(int, f32, f32);
|
||||
|
||||
dMenu_Fmap_stage_arc_data_c* getStageArc() { return mpStageArc; }
|
||||
dMenu_Fmap_stage_data_c* getNextData() { return mpNextData; }
|
||||
|
||||
/* 0x00 */ char name[8];
|
||||
/* 0x08 */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
|
||||
/* 0x0C */ dMenu_Fmap_room_data_c* mp_roomTop;
|
||||
/* 0x10 */ dMenu_Fmap_stage_data_c* mpNextData;
|
||||
/* 0x14 */ f32 m_offsetX;
|
||||
/* 0x18 */ f32 m_offsetZ;
|
||||
/* 0x1C */ f32 m_stageMinX;
|
||||
/* 0x20 */ f32 m_stageMinZ;
|
||||
/* 0x24 */ f32 m_stageMaxX;
|
||||
/* 0x28 */ f32 m_stageMaxZ;
|
||||
/* 0x2C */ int m_stageCntNo;
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_region_data_c {
|
||||
/* 8003DB48 */ void getMenuFmapStageData(int);
|
||||
class dMenu_Fmap_region_data_c {
|
||||
public:
|
||||
/* 8003DB48 */ dMenu_Fmap_stage_data_c* getMenuFmapStageData(int);
|
||||
/* 8003DB70 */ void getPointStagePathInnerNo(f32, f32, int, int*, int*);
|
||||
/* 8003DEE0 */ void buildFmapRegionData(int);
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_stage_data_c* mpMenuFmapStageDataTop;
|
||||
/* 0x04 */ dMenu_Fmap_region_data_c* mpNextData;
|
||||
/* 0x08 */ f32 mRegionOffsetX;
|
||||
/* 0x0C */ f32 mRegionOffsetZ;
|
||||
/* 0x10 */ f32 mRegionMinX;
|
||||
/* 0x14 */ f32 mRegionMaxX;
|
||||
/* 0x18 */ f32 mRegionMinZ;
|
||||
/* 0x1C */ f32 mRegionMaxZ;
|
||||
/* 0x20 */ int mRegionNo;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_world_data_c {
|
||||
/* 8003E028 */ void create(dMenu_Fmap_region_data_c*);
|
||||
/* 8003E04C */ void buildFmapWorldData();
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_stage_data_c {
|
||||
/* 8003D95C */ void isArrival();
|
||||
/* 8003D9D8 */ void buildFmapStageData(int, f32, f32);
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_room_data_c {
|
||||
/* 8003D818 */ void isArrival();
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
/* 0x00 */ dMenu_Fmap_region_data_c* mp_fmapRegionData;
|
||||
/* 0x04 */ f32 m_worldMinX;
|
||||
/* 0x08 */ f32 m_worldMinZ;
|
||||
/* 0x0C */ f32 m_worldMaxX;
|
||||
/* 0x10 */ f32 m_worldMaxZ;
|
||||
};
|
||||
|
||||
struct dMenuFmapIconPointer_c {
|
||||
@@ -145,7 +210,6 @@ extern "C" void getTypeGroupNoToType__7dTres_cFUc();
|
||||
extern "C" void getTypeToTypeGroupNo__7dTres_cFUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSVECCrossProduct();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void __save_gpr();
|
||||
extern "C" void _savegpr_22();
|
||||
@@ -159,10 +223,7 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u32 __float_max;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -170,57 +231,98 @@ extern "C" extern u32 __float_max;
|
||||
|
||||
/* 8003D790-8003D818 0380D0 0088+00 1/1 0/0 0/0 .text
|
||||
* addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 param_0, dTres_c::data_s const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s.s"
|
||||
void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 i_typeGroupNo,
|
||||
dTres_c::data_s const* i_tresData) {
|
||||
fmpTresTypeGroupData_c* next = mpNextData;
|
||||
fmpTresTypeGroupData_c* fmpTresTypeGroupData_p = new fmpTresTypeGroupData_c();
|
||||
|
||||
if (mpTypeGroupDataHead == NULL) {
|
||||
mpTypeGroupDataHead = fmpTresTypeGroupData_p;
|
||||
}
|
||||
|
||||
fmpTresTypeGroupData_p->setTresData(i_tresData);
|
||||
fmpTresTypeGroupData_p->setNextData(NULL);
|
||||
fmpTresTypeGroupData_p->setTypeGroupNo(i_typeGroupNo);
|
||||
|
||||
if (next != NULL) {
|
||||
next->setNextData(fmpTresTypeGroupData_p);
|
||||
}
|
||||
|
||||
mpNextData = fmpTresTypeGroupData_p;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D818-8003D868 038158 0050+00 1/1 1/1 0/0 .text isArrival__22dMenu_Fmap_room_data_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool dMenu_Fmap_room_data_c::isArrival() {
|
||||
u8 table_no = mp_parentStage->getStageArc()->getVisitedRoomSaveTableNo();
|
||||
return dComIfGs_isSaveVisitedRoom(table_no, m_roomNo) != false;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::isArrival() {
|
||||
asm bool dMenu_Fmap_room_data_c::isArrival() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isArrival__22dMenu_Fmap_room_data_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003D868-8003D92C 0381A8 00C4+00 1/1 0/0 0/0 .text
|
||||
* buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii.s"
|
||||
void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
|
||||
dTres_c::list_class* tresure_p = mp_fmapData->getTresure();
|
||||
if (tresure_p != NULL) {
|
||||
int num = tresure_p->field_0x0;
|
||||
dTres_c::data_s* data_p = tresure_p->field_0x4;
|
||||
|
||||
if (mp_fmpTresTypeGroupDataListAll == NULL) {
|
||||
mp_fmpTresTypeGroupDataListAll = new fmpTresTypeGroupDataListAll_c();
|
||||
}
|
||||
|
||||
for (int i = 0; i < num; i++) {
|
||||
data_p->mRoomNo = param_2;
|
||||
u8 typeGroupNo = dTres_c::getTypeToTypeGroupNo(data_p->mType);
|
||||
mp_fmpTresTypeGroupDataListAll->addTypeGroupData(typeGroupNo, data_p);
|
||||
data_p++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D92C-8003D95C 03826C 0030+00 1/1 0/0 0/0 .text
|
||||
* buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2,
|
||||
f32 param_3, f32 param_4, f32 param_5) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff.s"
|
||||
void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5) {
|
||||
int roomNo = m_roomNo;
|
||||
|
||||
if (mp_fmapData != NULL) {
|
||||
buildTresTypeGroup(param_0, param_1, roomNo);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D95C-8003D9D8 03829C 007C+00 1/1 0/0 0/0 .text isArrival__23dMenu_Fmap_stage_data_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
bool is_arrival = false;
|
||||
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
u8 table_no = mpStageArc->getVisitedRoomSaveTableNo();
|
||||
for (; !is_arrival && room != NULL; room = room->getNextData()) {
|
||||
is_arrival = dComIfGs_isSaveVisitedRoom(table_no, room->getRoomNo()) != false;
|
||||
}
|
||||
|
||||
return is_arrival;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_stage_data_c::isArrival() {
|
||||
asm bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isArrival__23dMenu_Fmap_stage_data_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451E20-80451E28 000420 0004+04 5/5 0/0 0/0 .sdata2 @3894 */
|
||||
@@ -232,25 +334,66 @@ SECTION_SDATA2 static f32 lit_3894[1 + 1 /* padding */] = {
|
||||
|
||||
/* 8003D9D8-8003DB48 038318 0170+00 1/1 0/0 0/0 .text
|
||||
* buildFmapStageData__23dMenu_Fmap_stage_data_cFiff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapStageData__23dMenu_Fmap_stage_data_cFiff.s"
|
||||
int dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
f32 fvar3 = __float_max[0];
|
||||
f32 fvar4 = __float_max[0];
|
||||
f32 fvar5 = -__float_max[0];
|
||||
f32 fvar6 = -__float_max[0];
|
||||
int ivar = 0;
|
||||
|
||||
for (; room != NULL; room = room->getNextData()) {
|
||||
room->buildFmapRoomData(param_0, ivar, param_1, param_2, m_offsetX, m_offsetZ);
|
||||
f32 min_x = room->getFileList2MinX();
|
||||
f32 min_z = room->getFileList2MinZ();
|
||||
f32 max_x = room->getFileList2MaxX();
|
||||
f32 max_z = room->getFileList2MaxZ();
|
||||
|
||||
if (min_x < fvar3) {
|
||||
fvar3 = min_x;
|
||||
}
|
||||
|
||||
if (min_z < fvar4) {
|
||||
fvar4 = min_z;
|
||||
}
|
||||
|
||||
if (max_x > fvar5) {
|
||||
fvar5 = max_x;
|
||||
}
|
||||
|
||||
if (max_z > fvar6) {
|
||||
fvar6 = max_z;
|
||||
}
|
||||
|
||||
ivar++;
|
||||
}
|
||||
|
||||
if (ivar > 0) {
|
||||
m_stageMinX = fvar3;
|
||||
m_stageMinZ = fvar4;
|
||||
m_stageMaxX = fvar5;
|
||||
m_stageMaxZ = fvar6;
|
||||
} else {
|
||||
f32 tmp_0 = lit_3894[0];
|
||||
m_stageMinX = tmp_0;
|
||||
m_stageMinZ = tmp_0;
|
||||
m_stageMaxX = tmp_0;
|
||||
m_stageMaxZ = tmp_0;
|
||||
}
|
||||
|
||||
return ivar;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003DB48-8003DB70 038488 0028+00 0/0 1/1 0/0 .text
|
||||
* getMenuFmapStageData__24dMenu_Fmap_region_data_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getMenuFmapStageData__24dMenu_Fmap_region_data_cFi.s"
|
||||
dMenu_Fmap_stage_data_c* dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
|
||||
dMenu_Fmap_stage_data_c* stage = mpMenuFmapStageDataTop;
|
||||
for (int i = 0; stage != NULL && i < param_0; i++) {
|
||||
stage = stage->getNextData();
|
||||
}
|
||||
|
||||
return stage;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003DB70-8003DEE0 0384B0 0370+00 0/0 1/1 0/0 .text
|
||||
* getPointStagePathInnerNo__24dMenu_Fmap_region_data_cFffiPiPi */
|
||||
|
||||
@@ -366,8 +366,8 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */];
|
||||
extern "C" extern u32 __float_max;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
extern "C" extern u8 data_80450E58[4];
|
||||
extern "C" extern u8 data_80450E60[4];
|
||||
extern "C" extern u8 mNowStayFloorNo__10dMapInfo_c[4];
|
||||
extern "C" extern u8 mNowStayFloorNoDecisionFlg__10dMapInfo_c[4];
|
||||
extern "C" u8 mLayerList__8dMpath_c[4];
|
||||
extern "C" f32 mAllCenterX__8dMpath_c;
|
||||
extern "C" f32 mAllCenterZ__8dMpath_c;
|
||||
|
||||
@@ -4,24 +4,18 @@
|
||||
//
|
||||
|
||||
#include "d/menu/d_menu_map_common.h"
|
||||
#include "JSystem/J2DGraph/J2DPane.h"
|
||||
#include "JSystem/J2DGraph/J2DPicture.h"
|
||||
#include "JSystem/JUtility/TColor.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_select_cursor.h"
|
||||
#include "d/meter/d_meter_HIO.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct dSelect_cursor_c {
|
||||
/* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*);
|
||||
/* 801951C8 */ void setScale(f32);
|
||||
/* 801952A0 */ void setAlphaRate(f32);
|
||||
};
|
||||
|
||||
struct dMenuMapCommon_c {
|
||||
/* 801C2718 */ dMenuMapCommon_c();
|
||||
/* 801C27B4 */ ~dMenuMapCommon_c();
|
||||
/* 801C27B4 */ virtual ~dMenuMapCommon_c();
|
||||
/* 801C28D8 */ void initiate(JKRArchive*);
|
||||
/* 801C38E4 */ void drawIcon(f32, f32, f32, f32);
|
||||
/* 801C3EC4 */ void iconScale(int, f32, f32, f32);
|
||||
@@ -30,25 +24,37 @@ struct dMenuMapCommon_c {
|
||||
/* 801C4494 */ void setBlendRatio(u8, f32, f32);
|
||||
/* 801C452C */ void blinkMove(s16);
|
||||
/* 801C4600 */ void moveLightDropAnime();
|
||||
/* 801C4738 */ void getIconSizeX(u8);
|
||||
/* 801C4778 */ void getIconSizeY(u8);
|
||||
/* 801C4738 */ float getIconSizeX(u8 index);
|
||||
/* 801C4778 */ float getIconSizeY(u8 index);
|
||||
/* 801C47C4 */ void debugIcon();
|
||||
};
|
||||
|
||||
struct ResTIMG {};
|
||||
struct data {
|
||||
/* 0x00 */ float _0;
|
||||
/* 0x04 */ float _4;
|
||||
/* 0x08 */ float _8;
|
||||
/* 0x0C */ float _C;
|
||||
/* 0x10 */ float _10;
|
||||
/* 0x14 */ u8 _14;
|
||||
/* 0x15 */ u8 _15;
|
||||
};
|
||||
|
||||
struct J2DRotateAxis {};
|
||||
|
||||
struct J2DPicture {
|
||||
/* 802FC708 */ J2DPicture(ResTIMG const*);
|
||||
};
|
||||
|
||||
struct J2DBasePosition {};
|
||||
|
||||
struct J2DPane {
|
||||
/* 802F71DC */ void rotate(f32, f32, J2DRotateAxis, f32);
|
||||
/* 802F76F8 */ void setBasePosition(J2DBasePosition);
|
||||
/* 802F77D0 */ void setInfluencedAlpha(bool, bool);
|
||||
/* 0x004 */ J2DPicture* mPictures[23];
|
||||
/* 0x060 */ J2DPicture* _60;
|
||||
/* 0x064 */ dSelect_cursor_c* mpDrawCursor;
|
||||
/* 0x068 */ dSelect_cursor_c* mpPortalIcon;
|
||||
/* 0x06C */ u32 _6c;
|
||||
/* 0x070 */ data _70[128];
|
||||
/* 0xC70 */ u16 _c70;
|
||||
/* 0xC72 */ u16 _c72;
|
||||
/* 0xC74 */ u16 _c74;
|
||||
/* 0xC76 */ u16 _c76;
|
||||
/* 0xC78 */ float _c78;
|
||||
/* 0xC7C */ float _c7c;
|
||||
/* 0xC80 */ float _c80;
|
||||
/* 0xC84 */ float _c84;
|
||||
/* 0xC88 */ float _c88;
|
||||
/* 0xC8C */ float _c8c;
|
||||
/* 0xC90 */ u8 _c90;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -87,8 +93,6 @@ extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_fmapHIO[1188];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -96,27 +100,19 @@ extern "C" extern u8 g_fmapHIO[1188];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BCF18-803BD02C 01A038 0114+00 2/2 0/0 0/0 .data map_icon_size */
|
||||
SECTION_DATA static u8 map_icon_size[276] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
0x3F, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x11, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x09, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x42, 0x87, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x0E, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x42, 0x20, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
0x16, 0x00, 0x00, 0x00,
|
||||
struct map_icon_size_t {
|
||||
float mXSize;
|
||||
float mYSize;
|
||||
u8 mIndex;
|
||||
};
|
||||
|
||||
static map_icon_size_t map_icon_size[] = {
|
||||
{1.0f, 1.0f, 0x0}, {1.0f, 1.0f, 0x1}, {40.0f, 40.0f, 0x11}, {40.0f, 40.0f, 0x2},
|
||||
{40.0f, 40.0f, 0x12}, {40.0f, 40.0f, 0x4}, {40.0f, 40.0f, 0x3}, {40.0f, 40.0f, 0x5},
|
||||
{40.0f, 40.0f, 0x6}, {40.0f, 40.0f, 0x7}, {40.0f, 40.0f, 0x9}, {40.0f, 40.0f, 0xa},
|
||||
{40.0f, 40.0f, 0xb}, {40.0f, 40.0f, 0xc}, {40.0f, 40.0f, 0xf}, {40.0f, 40.0f, 0x10},
|
||||
{40.0f, 40.0f, 0x8}, {67.5f, 40.0f, 0xd}, {40.0f, 40.0f, 0xe}, {40.0f, 40.0f, 0x13},
|
||||
{40.0f, 40.0f, 0x14}, {40.0f, 40.0f, 0x15}, {40.0f, 40.0f, 0x16}};
|
||||
/* 803BD02C-803BD038 01A14C 000C+00 2/2 0/0 0/0 .data __vt__16dMenuMapCommon_c */
|
||||
SECTION_DATA extern void* __vt__16dMenuMapCommon_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
@@ -133,6 +129,28 @@ SECTION_SDATA2 static u8 lit_3703[4] = {
|
||||
};
|
||||
|
||||
/* 801C2718-801C27B4 1BD058 009C+00 0/0 2/2 0/0 .text __ct__16dMenuMapCommon_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
dMenuMapCommon_c::dMenuMapCommon_c() {
|
||||
for (int i = 0; i < 23; i++) {
|
||||
mPictures[i] = NULL;
|
||||
}
|
||||
_60 = 0;
|
||||
mpDrawCursor = NULL;
|
||||
mpPortalIcon = NULL;
|
||||
_6c = 0;
|
||||
_c72 = 0;
|
||||
_c78 = 0.0f;
|
||||
_c74 = 0;
|
||||
_c80 = 0.0f;
|
||||
_c7c = 0.0f;
|
||||
_c84 = 0.0f;
|
||||
_c88 = 0.0f;
|
||||
_c8c = 0.0f;
|
||||
_c90 = 0;
|
||||
clearIconInfo();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -141,6 +159,7 @@ asm dMenuMapCommon_c::dMenuMapCommon_c() {
|
||||
#include "asm/d/menu/d_menu_map_common/__ct__16dMenuMapCommon_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801C27B4-801C28D8 1BD0F4 0124+00 1/0 2/2 0/0 .text __dt__16dMenuMapCommon_cFv */
|
||||
#pragma push
|
||||
@@ -152,6 +171,231 @@ asm dMenuMapCommon_c::~dMenuMapCommon_c() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 804540DC-804540E0 0026DC 0004+00 7/7 0/0 0/0 .sdata2 @3882 */
|
||||
SECTION_SDATA2 static f32 lit_3882 = 1.0f;
|
||||
|
||||
/* 801C28D8-801C38E4 1BD218 100C+00 0/0 2/2 0/0 .text initiate__16dMenuMapCommon_cFP10JKRArchive
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMenuMapCommon_c::initiate(JKRArchive* arc) {
|
||||
ResTIMG* mp_image;
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_s_ci8_16_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[4] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[4]->append(mp_image, 1.0f);
|
||||
mPictures[4]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[4]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_s_ci8_16_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[3] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_boss_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[3]->append(mp_image, 1.0f);
|
||||
mPictures[3]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[3]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_enter_ci8_24_02.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[20] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_enter_ci8_02.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[20]->append(mp_image, 1.0f);
|
||||
mPictures[20]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[20]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_enter_s_ci8_24_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[21] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_enter_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[21]->append(mp_image, 1.0f);
|
||||
mPictures[21]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[21]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_warp_24_ci8_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[22] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_warp_32_ci8_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[22]->append(mp_image, 1.0f);
|
||||
mPictures[22]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[22]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_box_s_ci8_24_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[19] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_box_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[19]->append(mp_image, 1.0f);
|
||||
mPictures[19]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[19]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_gray_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[14] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_key_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[14]->append(mp_image, 1.0f);
|
||||
mPictures[14]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[14]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[9] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_yuki_M.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[9]->append(mp_image, 1.0f);
|
||||
mPictures[9]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[9]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[10] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_yuki_W.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[10]->append(mp_image, 1.0f);
|
||||
mPictures[10]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[10]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_yellow_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[11] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "st_gold_wolf.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[11]->append(mp_image, 1.0f);
|
||||
mPictures[11]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[11]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[12] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_monkey_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[12]->append(mp_image, 1.0f);
|
||||
mPictures[12]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[12]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_blue_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[15] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "ni_obacyan.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[15]->append(mp_image, 1.0f);
|
||||
mPictures[15]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[15]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_blue_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[16] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "ni_obacyan.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[16]->append(mp_image, 1.0f);
|
||||
mPictures[16]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[16]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[8] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG',
|
||||
"im_zelda_map_icon_copy_stone_statue_snup_try_00_04.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[8]->append(mp_image, 1.0f);
|
||||
mPictures[8]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[8]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_link_s_ci8_24_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[17] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_link_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[17]->append(mp_image, 1.0f);
|
||||
mPictures[17]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[17]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_penant_s_ci8_24_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[2] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_penant_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[2]->append(mp_image, 1.0f);
|
||||
mPictures[2]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[2]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_black_32.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[5] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_black_32.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[5]->append(mp_image, 1.0f);
|
||||
mPictures[5]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[5]->setInfluencedAlpha(false, false);
|
||||
|
||||
mPictures[5]->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255));
|
||||
|
||||
// todo check if this value is mPictures[23] (out of the array) or field 0x60
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_hikari_no_shizuku_try_10_00_24x24.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[23] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_hikari_no_shizuku_try_10_00_24x24.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[23]->append(mp_image, 1.0f);
|
||||
mPictures[23]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[23]->setInfluencedAlpha(false, false);
|
||||
|
||||
mPictures[23]->setBlackWhite(JUtility::TColor(0, 240, 170, 0),
|
||||
JUtility::TColor(255, 255, 230, 255));
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[6] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_zelda_map_icon_hikari_ball_03.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[6]->append(mp_image, 1.0f);
|
||||
mPictures[6]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[6]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[7] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_iron_ball_ci8_32_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[7]->append(mp_image, 1.0f);
|
||||
mPictures[7]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[7]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "tt_map_icon_s_size_circle_ci4_00.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[13] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_map_icon_basha_ci8.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[13]->append(mp_image, 1.0f);
|
||||
mPictures[13]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[13]->setInfluencedAlpha(false, false);
|
||||
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_nijumaru_40x40_ind_01.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[18] = new J2DPicture(mp_image);
|
||||
mp_image = (ResTIMG*)arc->getResource('TIMG', "im_nijumaru_40x40_ind_01.bti");
|
||||
ASSERT(mp_image != 0);
|
||||
mPictures[18]->append(mp_image, 1.0f);
|
||||
mPictures[18]->setBasePosition(J2DBasePosition_4);
|
||||
mPictures[18]->setInfluencedAlpha(false, false);
|
||||
|
||||
mpDrawCursor = new dSelect_cursor_c(4, 1.0f, NULL);
|
||||
ASSERT(mpDrawCursor != 0);
|
||||
|
||||
if (arc == dComIfGp_getFmapResArchive()) {
|
||||
mpPortalIcon = new dSelect_cursor_c(5, 1.0f, arc);
|
||||
ASSERT(mpPortalIcon != 0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803959C0-803959C0 022020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
@@ -197,11 +441,6 @@ SECTION_DEAD static char const* const stringBase_80395D72 = "im_nijumaru_40x40_i
|
||||
SECTION_DEAD static char const* const pad_80395D8F = "";
|
||||
#pragma pop
|
||||
|
||||
/* 804540DC-804540E0 0026DC 0004+00 7/7 0/0 0/0 .sdata2 @3882 */
|
||||
SECTION_SDATA2 static f32 lit_3882 = 1.0f;
|
||||
|
||||
/* 801C28D8-801C38E4 1BD218 100C+00 0/0 2/2 0/0 .text initiate__16dMenuMapCommon_cFP10JKRArchive
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -210,6 +449,7 @@ asm void dMenuMapCommon_c::initiate(JKRArchive* param_0) {
|
||||
#include "asm/d/menu/d_menu_map_common/initiate__16dMenuMapCommon_cFP10JKRArchive.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804540E0-804540E4 0026E0 0004+00 1/1 0/0 0/0 .sdata2 @4010 */
|
||||
@@ -226,6 +466,51 @@ SECTION_SDATA2 static f32 lit_4013 = 180.0f;
|
||||
|
||||
/* 801C38E4-801C3EC4 1BE224 05E0+00 0/0 2/2 0/0 .text drawIcon__16dMenuMapCommon_cFffff
|
||||
*/
|
||||
//unfinished
|
||||
#ifdef NONMATCHING
|
||||
void dMenuMapCommon_c::drawIcon(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
|
||||
s16 tmp[128];
|
||||
if (g_fmapHIO.mMapIconHIO.mIconDebug) {
|
||||
debugIcon();
|
||||
}
|
||||
if (mpDrawCursor) {
|
||||
mpDrawCursor->onUpdateFlag();
|
||||
}
|
||||
if (mpPortalIcon) {
|
||||
mpPortalIcon->onUpdateFlag();
|
||||
}
|
||||
int counter = 0;
|
||||
for (int i = 0; i < 128; i++) {
|
||||
tmp[i] = -1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 22; i++) {
|
||||
for (int j = 0; j < 128; j++) {
|
||||
if (i == _70[j]._14 && _70[j]._15 != 0) {
|
||||
tmp[counter] = j;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++) {
|
||||
s16 val = tmp[i];
|
||||
if (val != -1) {
|
||||
if (_70[val]._14 == 0) {
|
||||
float float1 = _70[val]._0;
|
||||
float float2 = _70[val]._4;
|
||||
if (mpPortalIcon) {
|
||||
if (mpPortalIcon->getUpdateFlag()) {
|
||||
if (_70[val]._15 == 2) {
|
||||
mpPortalIcon->setAlphaRate(255.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -234,6 +519,7 @@ asm void dMenuMapCommon_c::drawIcon(f32 param_0, f32 param_1, f32 param_2, f32 p
|
||||
#include "asm/d/menu/d_menu_map_common/drawIcon__16dMenuMapCommon_cFffff.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804540F0-804540F4 0026F0 0004+00 1/1 0/0 0/0 .sdata2 @4072 */
|
||||
@@ -315,25 +601,47 @@ asm void dMenuMapCommon_c::moveLightDropAnime() {
|
||||
|
||||
/* 801C4738-801C4778 1BF078 0040+00 1/1 0/0 0/0 .text getIconSizeX__16dMenuMapCommon_cFUc
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
float dMenuMapCommon_c::getIconSizeX(u8 index) {
|
||||
for (int i = 0; i < ARRAY_SIZE(map_icon_size); i++) {
|
||||
if (map_icon_size[index].mIndex == index) {
|
||||
return map_icon_size[index].mXSize;
|
||||
}
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuMapCommon_c::getIconSizeX(u8 param_0) {
|
||||
asm float dMenuMapCommon_c::getIconSizeX(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_map_common/getIconSizeX__16dMenuMapCommon_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801C4778-801C47C4 1BF0B8 004C+00 1/1 0/0 0/0 .text getIconSizeY__16dMenuMapCommon_cFUc
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
float dMenuMapCommon_c::getIconSizeY(u8 index) {
|
||||
for (int i = 0; i < ARRAY_SIZE(map_icon_size); i++) {
|
||||
if (map_icon_size[index].mIndex == index) {
|
||||
return map_icon_size[index].mYSize;
|
||||
}
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenuMapCommon_c::getIconSizeY(u8 param_0) {
|
||||
asm float dMenuMapCommon_c::getIconSizeY(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_map_common/getIconSizeY__16dMenuMapCommon_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801C47C4-801C4D54 1BF104 0590+00 1/1 0/0 0/0 .text debugIcon__16dMenuMapCommon_cFv */
|
||||
#pragma push
|
||||
|
||||
+134
-11
@@ -343,7 +343,7 @@ void dMw_offMenuRing() {
|
||||
}
|
||||
}
|
||||
|
||||
static bool dMw_isMenuRing() {
|
||||
static BOOL dMw_isMenuRing() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
if (menu_window) {
|
||||
@@ -739,6 +739,45 @@ SECTION_DATA static u8 init_proc[420] = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* typedef void (dMw_c::*initFunc)(u8);
|
||||
SECTION_DATA initFunc init_proc[] = {
|
||||
&dMw_c::key_wait_init,
|
||||
&dMw_c::ring_open_init,
|
||||
&dMw_c::ring_move_init,
|
||||
&dMw_c::ring_close_init,
|
||||
&dMw_c::collect_open_init,
|
||||
&dMw_c::collect_move_init,
|
||||
&dMw_c::collect_close_init,
|
||||
&dMw_c::fmap_open_init,
|
||||
&dMw_c::fmap_move_init,
|
||||
&dMw_c::fmap_close_init,
|
||||
&dMw_c::dmap_open_init,
|
||||
&dMw_c::dmap_move_init,
|
||||
&dMw_c::dmap_close_init,
|
||||
&dMw_c::collect_save_open_init,
|
||||
&dMw_c::collect_save_move_init,
|
||||
&dMw_c::collect_save_close_init,
|
||||
&dMw_c::collect_option_open_init,
|
||||
&dMw_c::collect_option_move_init,
|
||||
&dMw_c::collect_option_close_init,
|
||||
&dMw_c::collect_letter_open_init,
|
||||
&dMw_c::collect_letter_move_init,
|
||||
&dMw_c::collect_letter_close_init,
|
||||
&dMw_c::collect_fishing_open_init,
|
||||
&dMw_c::collect_fishing_move_init,
|
||||
&dMw_c::collect_fishing_close_init,
|
||||
&dMw_c::collect_skill_open_init,
|
||||
&dMw_c::collect_skill_move_init,
|
||||
&dMw_c::collect_skill_close_init,
|
||||
&dMw_c::collect_insect_open_init,
|
||||
&dMw_c::collect_insect_move_init,
|
||||
&dMw_c::collect_insect_close_init,
|
||||
&dMw_c::insect_open_init,
|
||||
&dMw_c::insect_open2_init,
|
||||
&dMw_c::insect_move_init,
|
||||
&dMw_c::insect_close_init,
|
||||
}; */
|
||||
|
||||
/* 803BEC4C-803BEC58 -00001 000C+00 0/1 0/0 0/0 .data @4311 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
@@ -1120,6 +1159,45 @@ SECTION_DATA static u8 move_proc[420] = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* typedef void (dMw_c::*procFunc)();
|
||||
SECTION_DATA procFunc move_proc[] = {
|
||||
&dMw_c::key_wait_proc,
|
||||
&dMw_c::ring_open_proc,
|
||||
&dMw_c::ring_move_proc,
|
||||
&dMw_c::ring_close_proc,
|
||||
&dMw_c::collect_open_proc,
|
||||
&dMw_c::collect_move_proc,
|
||||
&dMw_c::collect_close_proc,
|
||||
&dMw_c::fmap_open_proc,
|
||||
&dMw_c::fmap_move_proc,
|
||||
&dMw_c::fmap_close_proc,
|
||||
&dMw_c::dmap_open_proc,
|
||||
&dMw_c::dmap_move_proc,
|
||||
&dMw_c::dmap_close_proc,
|
||||
&dMw_c::collect_save_open_proc,
|
||||
&dMw_c::collect_save_move_proc,
|
||||
&dMw_c::collect_save_close_proc,
|
||||
&dMw_c::collect_option_open_proc,
|
||||
&dMw_c::collect_option_move_proc,
|
||||
&dMw_c::collect_option_close_proc,
|
||||
&dMw_c::collect_letter_open_proc,
|
||||
&dMw_c::collect_letter_move_proc,
|
||||
&dMw_c::collect_letter_close_proc,
|
||||
&dMw_c::collect_fishing_open_proc,
|
||||
&dMw_c::collect_fishing_move_proc,
|
||||
&dMw_c::collect_fishing_close_proc,
|
||||
&dMw_c::collect_skill_open_proc,
|
||||
&dMw_c::collect_skill_move_proc,
|
||||
&dMw_c::collect_skill_close_proc,
|
||||
&dMw_c::collect_insect_open_proc,
|
||||
&dMw_c::collect_insect_move_proc,
|
||||
&dMw_c::collect_insect_close_proc,
|
||||
&dMw_c::insect_open_proc,
|
||||
&dMw_c::insect_open2_proc,
|
||||
&dMw_c::insect_move_proc,
|
||||
&dMw_c::insect_close_proc,
|
||||
}; */
|
||||
|
||||
/* 801FA13C-801FA220 1F4A7C 00E4+00 2/0 0/0 0/0 .text key_wait_init__5dMw_cFUc */
|
||||
void dMw_c::key_wait_init(u8 menu_status) {
|
||||
dMeter2Info_setWindowStatus(0);
|
||||
@@ -1238,12 +1316,13 @@ void dMw_c::collect_move_init(u8 menu_status) {
|
||||
|
||||
/* 801FA46C-801FA538 1F4DAC 00CC+00 1/0 0/0 0/0 .text collect_close_init__5dMw_cFUc */
|
||||
void dMw_c::collect_close_init(u8 param_0) {
|
||||
if (mpMenuCollect->getSubWindowOpenCheck() != 1 &&
|
||||
mpMenuCollect->getSubWindowOpenCheck() != 2) {
|
||||
if (mpMenuCollect->getSubWindowOpenCheck() != 1 && mpMenuCollect->getSubWindowOpenCheck() != 2)
|
||||
{
|
||||
if (mpMenuCollect->getSubWindowOpenCheck() == 3 ||
|
||||
mpMenuCollect->getSubWindowOpenCheck() == 4 ||
|
||||
mpMenuCollect->getSubWindowOpenCheck() == 5 ||
|
||||
mpMenuCollect->getSubWindowOpenCheck() == 6) {
|
||||
mpMenuCollect->getSubWindowOpenCheck() == 6)
|
||||
{
|
||||
Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MENU_SUB_IN, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
|
||||
-1.0f, 0);
|
||||
} else {
|
||||
@@ -1495,8 +1574,8 @@ void dMw_c::collect_move_proc() {
|
||||
if (mpMenuCollect->getSubWindowOpenCheck()) {
|
||||
mMenuStatus = COLLECT_CLOSE;
|
||||
} else {
|
||||
if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) ||
|
||||
mpMenuCollect->isOutCheck()) {
|
||||
if ((dMw_isPush_S_Button() && !mpMenuCollect->isKeyCheck()) || mpMenuCollect->isOutCheck())
|
||||
{
|
||||
mMenuStatus = COLLECT_CLOSE;
|
||||
} else {
|
||||
mpMenuCollect->_move();
|
||||
@@ -2033,7 +2112,8 @@ void dMw_c::dMw_fmap_create() {
|
||||
if (dMeter2Info_getMapKeyDirection() == 0x400 || dMeter2Info_getMapStatus() == 3 ||
|
||||
dMeter2Info_getMapStatus() == 4 || dMeter2Info_getMapStatus() == 5 ||
|
||||
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
|
||||
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6) {
|
||||
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6)
|
||||
{
|
||||
tmp = 1;
|
||||
} else if (dMeter2Info_getMapKeyDirection() == 0x200) {
|
||||
tmp = 3;
|
||||
@@ -2330,7 +2410,8 @@ BOOL dMw_c::dMw_isPush_S_Button() {
|
||||
if (isFadeNowCheck()) {
|
||||
if (daPy_getLinkPlayerActorClass()->getClothesChangeWaitTimer() == 0 &&
|
||||
daPy_getLinkPlayerActorClass()->getShieldChangeWaitTimer() == 0 &&
|
||||
daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0) {
|
||||
daPy_getLinkPlayerActorClass()->getSwordChangeWaitTimer() == 0)
|
||||
{
|
||||
if (dMw_START_TRIGGER() || dMw_B_TRIGGER()) {
|
||||
return true;
|
||||
}
|
||||
@@ -2414,7 +2495,8 @@ bool dMw_c::isEventCheck() {
|
||||
dMeter2Info_getMapStatus() == 7 || dMeter2Info_getMapStatus() == 8 ||
|
||||
dMeter2Info_getMapStatus() == 9 || dMeter2Info_getMapStatus() == 6 ||
|
||||
dMeter2Info_getMapStatus() == 3 || dMeter2Info_isMenuInForce(2) ||
|
||||
dMeter2Info_getPauseStatus() == 8)) {
|
||||
dMeter2Info_getPauseStatus() == 8))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -2493,6 +2575,47 @@ int dMw_c::_create() {
|
||||
}
|
||||
|
||||
/* 801FD2D8-801FD450 1F7C18 0178+00 1/1 0/0 0/0 .text _execute__5dMw_cFv */
|
||||
// matches with sinit
|
||||
#ifdef NONMATCHING
|
||||
int dMw_c::_execute() {
|
||||
if (field_0x151 != 0) {
|
||||
field_0x151--;
|
||||
}
|
||||
|
||||
JKRHeap* old_heap = mDoExt_setCurrentHeap(mpHeap);
|
||||
u8 old_proc = mMenuStatus;
|
||||
mpStick->checkTrigger();
|
||||
|
||||
if (dMw_isMenuRing()) {
|
||||
mpCStick->checkTrigger();
|
||||
checkCStickTrigger();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_event_runCheck()) {
|
||||
field_0x148 = 5;
|
||||
} else if (field_0x148 > 0) {
|
||||
field_0x148--;
|
||||
} else {
|
||||
field_0x148 = 0;
|
||||
}
|
||||
|
||||
(this->*move_proc[mMenuStatus])();
|
||||
if (mMenuStatus != old_proc) {
|
||||
(this->*init_proc[mMenuStatus])(old_proc);
|
||||
}
|
||||
|
||||
if (!mDoCPd_c::getHoldLockL(PAD_1) && dMw_isButtonBit(1)) {
|
||||
dMw_offButtonBit(1);
|
||||
}
|
||||
|
||||
if (!mDoCPd_c::getHoldLockR(PAD_1) && dMw_isButtonBit(2)) {
|
||||
dMw_offButtonBit(2);
|
||||
}
|
||||
|
||||
mDoExt_setCurrentHeap(old_heap);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -2501,6 +2624,7 @@ asm int dMw_c::_execute() {
|
||||
#include "asm/d/menu/d_menu_window/_execute__5dMw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801FD450-801FD67C 1F7D90 022C+00 1/1 0/0 0/0 .text _draw__5dMw_cFv */
|
||||
int dMw_c::_draw() {
|
||||
@@ -2646,8 +2770,7 @@ static int dMw_Create(msg_class* p_menu) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_menu_window_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_menu_window_cpp(){nofralloc
|
||||
#include "asm/d/menu/d_menu_window/__sinit_d_menu_window_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -809,18 +809,22 @@ void dMeter2_c::moveLife() {
|
||||
field_0x204 = g_drawHIO.mLifeGaugePosX;
|
||||
setDraw = true;
|
||||
}
|
||||
|
||||
if (field_0x208 != g_drawHIO.mLifeGaugePosY) {
|
||||
field_0x208 = g_drawHIO.mLifeGaugePosY;
|
||||
setDraw = true;
|
||||
}
|
||||
|
||||
if (field_0x20c != g_drawHIO.mLifeGaugeScale) {
|
||||
field_0x20c = g_drawHIO.mLifeGaugeScale;
|
||||
setDraw = true;
|
||||
}
|
||||
|
||||
if (field_0x210 != g_drawHIO.mHeartScale) {
|
||||
field_0x210 = g_drawHIO.mHeartScale;
|
||||
setDraw = true;
|
||||
}
|
||||
|
||||
if (field_0x214 != g_drawHIO.mLargeHeartScale) {
|
||||
field_0x214 = g_drawHIO.mLargeHeartScale;
|
||||
setDraw = true;
|
||||
|
||||
+311
-50
@@ -637,8 +637,8 @@ dMeter2Draw_c::~dMeter2Draw_c() {
|
||||
mpMagicFrameR = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
delete field_0x53c[i];
|
||||
field_0x53c[i] = NULL;
|
||||
delete mpOxygenBpk[i];
|
||||
mpOxygenBpk[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpMagicMeter;
|
||||
@@ -961,7 +961,8 @@ void dMeter2Draw_c::exec(u32 param_0) {
|
||||
|
||||
if (param_0 & 0x1000000) {
|
||||
if (mButtonsPosX != g_drawHIO.mRingHUDButtonsPosX ||
|
||||
mButtonsPosY != g_drawHIO.mRingHUDButtonsPosY) {
|
||||
mButtonsPosY != g_drawHIO.mRingHUDButtonsPosY)
|
||||
{
|
||||
mButtonsPosX = g_drawHIO.mRingHUDButtonsPosX;
|
||||
mButtonsPosY = g_drawHIO.mRingHUDButtonsPosY;
|
||||
mpButtonParent->paneTrans(g_drawHIO.mRingHUDButtonsPosX, g_drawHIO.mRingHUDButtonsPosY);
|
||||
@@ -973,7 +974,8 @@ void dMeter2Draw_c::exec(u32 param_0) {
|
||||
}
|
||||
} else {
|
||||
if (mButtonsPosX != g_drawHIO.mMainHUDButtonsPosX ||
|
||||
mButtonsPosY != g_drawHIO.mMainHUDButtonsPosY) {
|
||||
mButtonsPosY != g_drawHIO.mMainHUDButtonsPosY)
|
||||
{
|
||||
mButtonsPosX = g_drawHIO.mMainHUDButtonsPosX;
|
||||
mButtonsPosY = g_drawHIO.mMainHUDButtonsPosY;
|
||||
mpButtonParent->paneTrans(g_drawHIO.mMainHUDButtonsPosX, g_drawHIO.mMainHUDButtonsPosY);
|
||||
@@ -1004,6 +1006,57 @@ SECTION_SDATA2 static f32 lit_4923[1 + 1 /* padding */] = {
|
||||
SECTION_SDATA2 static f64 lit_4925 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8021151C-80211BEC 20BE5C 06D0+00 1/0 0/0 0/0 .text draw__13dMeter2Draw_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::draw() {
|
||||
J2DGrafContext* graf = dComIfGp_getCurrentGrafPort();
|
||||
|
||||
mpScreen->draw(0.0f, 0.0f, graf);
|
||||
drawKanteraScreen(1);
|
||||
drawKanteraScreen(2);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (mpItemXY[i] != NULL) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
JGeometry::TVec3<f32> vtx1 = pane->getPanePtr()->getGlbVtx(0);
|
||||
JGeometry::TVec3<f32> vtx2 = pane->getPanePtr()->getGlbVtx(3);
|
||||
|
||||
// mpItemNumTex[i][j]->
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpKanteraMeter[i]->drawSelf();
|
||||
}
|
||||
|
||||
if (!dComIfGp_isPauseFlag() && mpButtonParent->getAlphaRate() != 0.0f) {
|
||||
if (field_0x608 > 0.0f) {
|
||||
drawPikari(mpBTextA, &field_0x608, g_drawHIO.mAButtonHighlightScale,
|
||||
g_drawHIO.mAButtonHighlightFrontOuter, g_drawHIO.mAButtonHighlightFrontInner,
|
||||
g_drawHIO.mAButtonHighlightBackOuter, g_drawHIO.mAButtonHighlightBackInner,
|
||||
g_drawHIO.mAButtonHighlightAnimSpeed, field_0x759);
|
||||
}
|
||||
|
||||
if (field_0x60c > 0.0f) {
|
||||
drawPikari(mpBTextB, &field_0x60c, g_drawHIO.mBButtonHighlightScale,
|
||||
g_drawHIO.mBButtonHighlightFrontOuter, g_drawHIO.mBButtonHighlightFrontInner,
|
||||
g_drawHIO.mBButtonHighlightBackOuter, g_drawHIO.mBButtonHighlightBackInner,
|
||||
g_drawHIO.mBButtonHighlightAnimSpeed, field_0x75a);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x60c > 0.0f) {
|
||||
drawPikari(mpBTextXY[i], &field_0x620[i], g_drawHIO.mXYButtonHighlightScale,
|
||||
g_drawHIO.mXYButtonHighlightFrontOuter, g_drawHIO.mXYButtonHighlightFrontInner,
|
||||
g_drawHIO.mXYButtonHighlightBackOuter, g_drawHIO.XYButtonHighlightBackInner,
|
||||
g_drawHIO.mXYButtonHighlightAnimSpeed, field_0x768[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1012,6 +1065,7 @@ asm void dMeter2Draw_c::draw() {
|
||||
#include "asm/d/meter/d_meter2_draw/draw__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80398320-803983C0 024980 00A0+00 0/1 0/0 0/0 .rodata life_tag$4931 */
|
||||
@@ -1139,18 +1193,18 @@ void dMeter2Draw_c::initMagic() {
|
||||
|
||||
void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x53c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[0]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
mpOxygenBpk[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
mpOxygenBpk[0]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x53c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[1]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
mpOxygenBpk[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
mpOxygenBpk[1]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x53c[2] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[2]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
mpOxygenBpk[2] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
mpOxygenBpk[2]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
field_0x558 = 0.0f;
|
||||
mpMagicParent->setAlphaRate(0.0f);
|
||||
@@ -1163,7 +1217,7 @@ void dMeter2Draw_c::initMagic() {
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x5fc[i] = 0.0f;
|
||||
mMeterAlphaRate[i] = 0.0f;
|
||||
field_0x742[i] = 0;
|
||||
}
|
||||
|
||||
@@ -1486,6 +1540,60 @@ asm void dMeter2Draw_c::setAlphaLifeAnimeMax() {
|
||||
SECTION_SDATA2 static f32 lit_6143 = 0.25f;
|
||||
|
||||
/* 80214EB4-80215290 20F7F4 03DC+00 1/1 0/0 0/0 .text drawKanteraScreen__13dMeter2Draw_cFUc */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::drawKanteraScreen(u8 i_meterType) {
|
||||
J2DGrafContext* graf = dComIfGp_getCurrentGrafPort();
|
||||
|
||||
mpMagicParent->setAlphaRate(mMeterAlphaRate[i_meterType]);
|
||||
|
||||
if (i_meterType == 0) {
|
||||
JUtility::TColor black = mpMagicMeter->getInitBlack();
|
||||
black.a = 255;
|
||||
|
||||
mpMagicMeter->setBlackWhite(black, mpMagicMeter->getInitWhite());
|
||||
setAlphaMagicChange(true);
|
||||
} else if (i_meterType == 1) {
|
||||
mpMagicMeter->setBlackWhite(JUtility::TColor(255, 255, 140, 255),
|
||||
JUtility::TColor(230, 170, 0, 255));
|
||||
setAlphaKanteraChange(true);
|
||||
} else if (i_meterType == 2) {
|
||||
f32 oxygen_percent = (f32)dComIfGp_getOxygen() / (f32)dComIfGp_getMaxOxygen();
|
||||
|
||||
if (oxygen_percent <= 0.25f) {
|
||||
mpMagicMeter->setBlackWhite(JUtility::TColor(255, 100, 100, 255),
|
||||
JUtility::TColor(255, 10, 10, 255));
|
||||
playOxygenBpkAnimation(mpOxygenBpk[0]);
|
||||
|
||||
if (mMeterAlphaRate[i_meterType] > 0.0f) {
|
||||
Z2GetAudioMgr()->mSeMgr.seStartLevel(Z2SE_SWIM_TIMER_BLINK_2, NULL, 0, 0, 1.0f,
|
||||
1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
} else if (oxygen_percent <= 0.5f) {
|
||||
mpMagicMeter->setBlackWhite(JUtility::TColor(200, 200, 255, 255),
|
||||
JUtility::TColor(80, 180, 255, 255));
|
||||
playOxygenBpkAnimation(mpOxygenBpk[1]);
|
||||
|
||||
if (mMeterAlphaRate[i_meterType] > 0.0f) {
|
||||
Z2GetAudioMgr()->mSeMgr.seStartLevel(Z2SE_SWIM_TIMER_BLINK_1, NULL, 0, 0, 1.0f,
|
||||
1.0f, -1.0f, -1.0f, 0);
|
||||
}
|
||||
} else {
|
||||
mpMagicMeter->setBlackWhite(JUtility::TColor(200, 200, 255, 255),
|
||||
JUtility::TColor(80, 180, 255, 255));
|
||||
}
|
||||
|
||||
setAlphaOxygenChange(true);
|
||||
}
|
||||
|
||||
mpMagicMeter->resize(field_0x584[i_meterType], field_0x590[i_meterType]);
|
||||
mpMagicFrameR->move(field_0x59c[i_meterType], field_0x5a8[i_meterType]);
|
||||
mpMagicBase->resize(field_0x5b4[i_meterType], field_0x5c0[i_meterType]);
|
||||
mpMagicParent->scale(field_0x5cc[i_meterType], field_0x5d8[i_meterType]);
|
||||
mpMagicParent->paneTrans(field_0x5e4[i_meterType], field_0x5f0[i_meterType]);
|
||||
mpKanteraScreen->draw(0.0f, 0.0f, graf);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1494,6 +1602,7 @@ asm void dMeter2Draw_c::drawKanteraScreen(u8 param_0) {
|
||||
#include "asm/d/meter/d_meter2_draw/drawKanteraScreen__13dMeter2Draw_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804548B8-804548BC 002EB8 0004+00 1/1 0/0 0/0 .sdata2 @6175 */
|
||||
@@ -1501,29 +1610,31 @@ SECTION_SDATA2 static f32 lit_6175 = 0.03125f;
|
||||
|
||||
/* 80215290-80215380 20FBD0 00F0+00 1/1 0/0 0/0 .text drawMagic__13dMeter2Draw_cFssff */
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::drawMagic(s16 max_count, s16 now_count, f32 x_pos, f32 y_pos) {
|
||||
f32 x_diff = mpMagicFrameR->getInitPosX() - mpMagicFrameL->getInitPosX();
|
||||
void dMeter2Draw_c::drawMagic(s16 i_maxMagic, s16 i_nowMagic, f32 i_xPos, f32 i_yPos) {
|
||||
f32 frameL_posX = mpMagicFrameL->getInitPosX();
|
||||
f32 frameR_posX = mpMagicFrameR->getInitPosX();
|
||||
|
||||
field_0x584 = mpMagicMeter->getInitSizeX() * (lit_6175 * now_count);
|
||||
field_0x590 = mpMagicMeter->getInitSizeY();
|
||||
field_0x584[0] = (mpMagicMeter->getInitSizeX() * i_nowMagic) * 0.03125f;
|
||||
field_0x590[0] = mpMagicMeter->getInitSizeY();
|
||||
|
||||
field_0x59c = mpMagicFrameL->getInitPosX() * x_diff * (max_count * lit_6175);
|
||||
field_0x5a8 = mpMagicFrameL->getInitPosY();
|
||||
field_0x59c[0] =
|
||||
((f32)i_maxMagic * (frameR_posX - frameL_posX)) * 0.03125f + mpMagicFrameL->getInitPosX();
|
||||
field_0x5a8[0] = mpMagicFrameL->getInitPosY();
|
||||
|
||||
field_0x5b4 = mpMagicBase->getInitSizeX() * (max_count * lit_6175);
|
||||
field_0x5c0 = mpMagicBase->getInitSizeY();
|
||||
field_0x5b4[0] = (f32)i_maxMagic * mpMagicBase->getInitSizeX() * 0.03125f;
|
||||
field_0x5c0[0] = mpMagicBase->getInitSizeY();
|
||||
|
||||
field_0x5cc = g_drawHIO.mMagicMeterScale;
|
||||
field_0x5d8 = g_drawHIO.mMagicMeterScale;
|
||||
field_0x5cc[0] = g_drawHIO.mMagicMeterScale;
|
||||
field_0x5d8[0] = g_drawHIO.mMagicMeterScale;
|
||||
|
||||
field_0x5e4 = x_pos;
|
||||
field_0x5f0 = y_pos;
|
||||
field_0x5e4[0] = i_xPos;
|
||||
field_0x5f0[0] = i_yPos;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::drawMagic(s16 param_0, s16 param_1, f32 param_2, f32 param_3) {
|
||||
asm void dMeter2Draw_c::drawMagic(s16 i_maxMagic, s16 i_nowMagic, f32 i_xPos, f32 i_yPos) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/drawMagic__13dMeter2Draw_cFssff.s"
|
||||
}
|
||||
@@ -1531,14 +1642,35 @@ asm void dMeter2Draw_c::drawMagic(s16 param_0, s16 param_1, f32 param_2, f32 par
|
||||
#endif
|
||||
|
||||
/* 80215380-802154A8 20FCC0 0128+00 2/2 0/0 0/0 .text setAlphaMagicChange__13dMeter2Draw_cFb */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::setAlphaMagicChange(bool param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaMagicChange__13dMeter2Draw_cFb.s"
|
||||
void dMeter2Draw_c::setAlphaMagicChange(bool i_forceSet) {
|
||||
bool meter_parent_alpha_set = false;
|
||||
bool meter_alpha_set = false;
|
||||
bool meter_frame_alpha_set = false;
|
||||
|
||||
if (field_0x7a4 != mpMagicParent->getAlphaRate() || i_forceSet) {
|
||||
field_0x7a4 = mpMagicParent->getAlphaRate();
|
||||
meter_parent_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mMagicMeterAlpha != g_drawHIO.mMagicMeterAlpha || i_forceSet) {
|
||||
mMagicMeterAlpha = g_drawHIO.mMagicMeterAlpha;
|
||||
meter_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mMagicMeterFrameAlpha != g_drawHIO.mMagicMeterFrameAlpha || i_forceSet) {
|
||||
mMagicMeterFrameAlpha = g_drawHIO.mMagicMeterFrameAlpha;
|
||||
meter_frame_alpha_set = true;
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_alpha_set || i_forceSet) {
|
||||
mpMagicMeter->setAlphaRate(mMagicMeterAlpha * field_0x7a4);
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_frame_alpha_set || i_forceSet) {
|
||||
mpMagicFrameL->setAlphaRate(mMagicMeterFrameAlpha * field_0x7a4);
|
||||
mpMagicFrameR->setAlphaRate(mMagicMeterFrameAlpha * field_0x7a4);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804548BC-804548C0 002EBC 0004+00 4/4 0/0 0/0 .sdata2 @6210 */
|
||||
@@ -1552,24 +1684,60 @@ SECTION_SDATA2 static f64 lit_6293 = 4503599627370496.0 /* cast u32 to float */;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::drawKantera(s32 param_0, s32 param_1, f32 param_2, f32 param_3) {
|
||||
asm void dMeter2Draw_c::drawKantera(s32 i_maxOil, s32 i_nowOil, f32 i_xPos, f32 i_yPos) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/drawKantera__13dMeter2Draw_cFllff.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802155B8-802156E0 20FEF8 0128+00 2/2 1/1 0/0 .text setAlphaKanteraChange__13dMeter2Draw_cFb */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::setAlphaKanteraChange(bool param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaKanteraChange__13dMeter2Draw_cFb.s"
|
||||
void dMeter2Draw_c::setAlphaKanteraChange(bool i_forceSet) {
|
||||
bool meter_parent_alpha_set = false;
|
||||
bool meter_alpha_set = false;
|
||||
bool meter_frame_alpha_set = false;
|
||||
|
||||
if (field_0x7b0 != mpMagicParent->getAlphaRate() || i_forceSet) {
|
||||
field_0x7b0 = mpMagicParent->getAlphaRate();
|
||||
meter_parent_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mLanternMeterAlpha != g_drawHIO.mLanternMeterAlpha || i_forceSet) {
|
||||
mLanternMeterAlpha = g_drawHIO.mLanternMeterAlpha;
|
||||
meter_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mLanternMeterFrameAlpha != g_drawHIO.mLanternMeterFrameAlpha || i_forceSet) {
|
||||
mLanternMeterFrameAlpha = g_drawHIO.mLanternMeterFrameAlpha;
|
||||
meter_frame_alpha_set = true;
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_alpha_set || i_forceSet) {
|
||||
mpMagicMeter->setAlphaRate(mLanternMeterAlpha * field_0x7b0);
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_frame_alpha_set || i_forceSet) {
|
||||
mpMagicFrameL->setAlphaRate(mLanternMeterFrameAlpha * field_0x7b0);
|
||||
mpMagicFrameR->setAlphaRate(mLanternMeterFrameAlpha * field_0x7b0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802156E0-8021575C 210020 007C+00 0/0 1/1 0/0 .text setAlphaKanteraAnimeMin__13dMeter2Draw_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::setAlphaKanteraAnimeMin() {
|
||||
if (field_0x742[1] <= 0) {
|
||||
mMeterAlphaRate[1] = 0.0f;
|
||||
} else {
|
||||
field_0x742[1]--;
|
||||
if (field_0x742[1] < 0) {
|
||||
field_0x742[1] = 0;
|
||||
}
|
||||
|
||||
mMeterAlphaRate[1] = (field_0x742[1] / 5.0f) * g_drawHIO.mHUDAlpha;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1578,9 +1746,25 @@ asm void dMeter2Draw_c::setAlphaKanteraAnimeMin() {
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaKanteraAnimeMin__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8021575C-802157E0 21009C 0084+00 0/0 1/1 0/0 .text setAlphaKanteraAnimeMax__13dMeter2Draw_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::setAlphaKanteraAnimeMax() {
|
||||
if (field_0x742[1] >= 5) {
|
||||
mMeterAlphaRate[1] = g_drawHIO.mHUDAlpha;
|
||||
} else {
|
||||
field_0x742[1]++;
|
||||
if (field_0x742[1] > 5) {
|
||||
field_0x742[1] = 5;
|
||||
}
|
||||
|
||||
mMeterAlphaRate[1] = (field_0x742[1] / 5.0f) * g_drawHIO.mHUDAlpha;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1589,6 +1773,7 @@ asm void dMeter2Draw_c::setAlphaKanteraAnimeMax() {
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaKanteraAnimeMax__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802157E0-802158F0 210120 0110+00 0/0 1/1 0/0 .text drawOxygen__13dMeter2Draw_cFllff */
|
||||
#pragma push
|
||||
@@ -1601,16 +1786,52 @@ asm void dMeter2Draw_c::drawOxygen(s32 param_0, s32 param_1, f32 param_2, f32 pa
|
||||
#pragma pop
|
||||
|
||||
/* 802158F0-80215A18 210230 0128+00 1/1 1/1 0/0 .text setAlphaOxygenChange__13dMeter2Draw_cFb */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::setAlphaOxygenChange(bool param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaOxygenChange__13dMeter2Draw_cFb.s"
|
||||
void dMeter2Draw_c::setAlphaOxygenChange(bool i_forceSet) {
|
||||
bool meter_parent_alpha_set = false;
|
||||
bool meter_alpha_set = false;
|
||||
bool meter_frame_alpha_set = false;
|
||||
|
||||
if (field_0x7bc != mpMagicParent->getAlphaRate() || i_forceSet) {
|
||||
field_0x7bc = mpMagicParent->getAlphaRate();
|
||||
meter_parent_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mOxygenMeterAlpha != g_drawHIO.mOxygenMeterAlpha || i_forceSet) {
|
||||
mOxygenMeterAlpha = g_drawHIO.mOxygenMeterAlpha;
|
||||
meter_alpha_set = true;
|
||||
}
|
||||
|
||||
if (mOxygenMeterFrameAlpha != g_drawHIO.mOxygenMeterFrameAlpha || i_forceSet) {
|
||||
mOxygenMeterFrameAlpha = g_drawHIO.mOxygenMeterFrameAlpha;
|
||||
meter_frame_alpha_set = true;
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_alpha_set || i_forceSet) {
|
||||
mpMagicMeter->setAlphaRate(mOxygenMeterAlpha * field_0x7bc);
|
||||
}
|
||||
|
||||
if (meter_parent_alpha_set || meter_frame_alpha_set || i_forceSet) {
|
||||
mpMagicFrameL->setAlphaRate(mOxygenMeterFrameAlpha * field_0x7bc);
|
||||
mpMagicFrameR->setAlphaRate(mOxygenMeterFrameAlpha * field_0x7bc);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80215A18-80215A94 210358 007C+00 0/0 1/1 0/0 .text setAlphaOxygenAnimeMin__13dMeter2Draw_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::setAlphaOxygenAnimeMin() {
|
||||
if (field_0x742[2] <= 0) {
|
||||
mMeterAlphaRate[2] = 0.0f;
|
||||
} else {
|
||||
field_0x742[2]--;
|
||||
if (field_0x742[2] < 0) {
|
||||
field_0x742[2] = 0;
|
||||
}
|
||||
|
||||
mMeterAlphaRate[2] = (field_0x742[2] / 5.0f) * g_drawHIO.mHUDAlpha;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1619,8 +1840,24 @@ asm void dMeter2Draw_c::setAlphaOxygenAnimeMin() {
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaOxygenAnimeMin__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80215A94-80215B18 2103D4 0084+00 0/0 1/1 0/0 .text setAlphaOxygenAnimeMax__13dMeter2Draw_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::setAlphaOxygenAnimeMax() {
|
||||
if (field_0x742[2] >= 5) {
|
||||
mMeterAlphaRate[2] = g_drawHIO.mHUDAlpha;
|
||||
} else {
|
||||
field_0x742[2]++;
|
||||
if (field_0x742[2] > 5) {
|
||||
field_0x742[2] = 5;
|
||||
}
|
||||
|
||||
mMeterAlphaRate[2] = (field_0x742[2] / 5.0f) * g_drawHIO.mHUDAlpha;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1629,6 +1866,7 @@ asm void dMeter2Draw_c::setAlphaOxygenAnimeMax() {
|
||||
#include "asm/d/meter/d_meter2_draw/setAlphaOxygenAnimeMax__13dMeter2Draw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804548C8-804548CC 002EC8 0004+00 4/4 0/0 0/0 .sdata2 @6524 */
|
||||
@@ -1647,9 +1885,7 @@ asm void dMeter2Draw_c::drawLightDrop(u8 param_0, u8 param_1, f32 param_2, f32 p
|
||||
|
||||
/* 80215DA4-80215DA8 2106E4 0004+00 1/1 1/1 0/0 .text setAlphaLightDropChange__13dMeter2Draw_cFb
|
||||
*/
|
||||
void dMeter2Draw_c::setAlphaLightDropChange(bool param_0) {
|
||||
/* empty function */
|
||||
}
|
||||
void dMeter2Draw_c::setAlphaLightDropChange(bool param_0) {}
|
||||
|
||||
/* 80215DA8-80215E40 2106E8 0098+00 0/0 1/1 0/0 .text getNowLightDropRateCalc__13dMeter2Draw_cFv
|
||||
*/
|
||||
@@ -2192,6 +2428,29 @@ SECTION_SBSS2 static u8 lit_8747[4];
|
||||
SECTION_SBSS2 static u8 data_80456B9C[4];
|
||||
|
||||
/* 8021AF78-8021B0C8 2158B8 0150+00 0/0 1/1 0/0 .text drawKanteraMeter__13dMeter2Draw_cFUcf */
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::drawKanteraMeter(u8 i_button, f32 i_alphaRate) {
|
||||
CPaneMgr* pane = mpItemXY[i_button];
|
||||
f32 local_68[2][2];
|
||||
local_68[1][0] = 0.0f;
|
||||
local_68[1][1] = 0.0f;
|
||||
local_68[0][0] = 0.0f;
|
||||
local_68[0][1] = 0.0f;
|
||||
|
||||
if (i_alphaRate == 1.0f) {
|
||||
i_alphaRate = pane->getAlphaRate();
|
||||
}
|
||||
|
||||
JGeometry::TVec3<f32> vtx1 = pane->getPanePtr()->getGlbVtx(0);
|
||||
JGeometry::TVec3<f32> vtx2 = pane->getPanePtr()->getGlbVtx(3);
|
||||
|
||||
mpKanteraMeter[i_button]->setPos((vtx1.x + vtx2.x) * 0.5f + 9.0f + local_68[1][i_button],
|
||||
vtx2.y + local_68[0][i_button]);
|
||||
mpKanteraMeter[i_button]->setScale(0.6f, 0.6f);
|
||||
mpKanteraMeter[i_button]->setNowGauge(dComIfGs_getMaxOil(), dComIfGs_getOil());
|
||||
mpKanteraMeter[i_button]->setAlphaRate(i_alphaRate);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -2200,6 +2459,7 @@ asm void dMeter2Draw_c::drawKanteraMeter(u8 param_0, f32 param_1) {
|
||||
#include "asm/d/meter/d_meter2_draw/drawKanteraMeter__13dMeter2Draw_cFUcf.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8021B0C8-8021B104 215A08 003C+00 0/0 3/3 0/0 .text isButtonVisible__13dMeter2Draw_cFv
|
||||
*/
|
||||
@@ -2414,7 +2674,8 @@ SECTION_DEAD static char const* const pad_80398A77 = "";
|
||||
*/
|
||||
bool dMeter2Draw_c::getCanoeFishing() {
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
|
||||
g_dComIfG_gameInfo.play.mPlayer[0]->checkCanoeRide()) {
|
||||
g_dComIfG_gameInfo.play.mPlayer[0]->checkCanoeRide())
|
||||
{
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
|
||||
@@ -360,7 +360,7 @@ void dMeter2Info_c::decMsgKeyWaitTimer() {
|
||||
|
||||
/* 8021C250-8021C370 216B90 0120+00 0/0 16/16 0/0 .text
|
||||
* getString__13dMeter2Info_cFUlPcP14JMSMesgEntry_c */
|
||||
// missing branch + some regalloc
|
||||
// missing branch
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Info_c::getString(u32 stringID, char* outStr, JMSMesgEntry_c* p_msgEntry) {
|
||||
strcpy(outStr, "");
|
||||
@@ -378,10 +378,9 @@ void dMeter2Info_c::getString(u32 stringID, char* outStr, JMSMesgEntry_c* p_msgE
|
||||
u32 stringOffset = (*(u32*)(msgRes + 0x24));
|
||||
u8* strPtr = inf + stringOffset + 8;
|
||||
|
||||
u16 i = 0;
|
||||
u16 entryCount = *(u16*)(inf + 8);
|
||||
u16 i;
|
||||
|
||||
for (; i < entryCount; i++) {
|
||||
for (i = 0; i < *(u16*)(inf + 8); i++) {
|
||||
u8* entry = (inf + (i * 0x14));
|
||||
|
||||
if (stringID == *(u16*)(entry + 0x14)) {
|
||||
|
||||
@@ -962,21 +962,11 @@ asm int dMsgFlow_c::query007(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1
|
||||
|
||||
/* 8024B45C-8024B4A4 245D9C 0048+00 1/0 0/0 0/0 .text
|
||||
* query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
#ifdef NONMATCHING
|
||||
int dMsgFlow_c::query008(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
|
||||
u16 prm0 = flow_node->params[0];
|
||||
return (u8)daNpcKakashi_getSwdTutorialStep() != (u16)(prm0 - 1);
|
||||
u32 prm0 = flow_node->params[0];
|
||||
u16 prm1 = prm0;
|
||||
return (u8)daNpcKakashi_getSwdTutorialStep() - 1 != (u16)prm1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMsgFlow_c::query008(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_flow/query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8024B4A4-8024B4D0 245DE4 002C+00 1/0 0/0 0/0 .text
|
||||
* query009__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
@@ -1353,7 +1343,7 @@ int dMsgFlow_c::query043(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
|
||||
u8 bomb_num = dComIfGs_getBombNum(dComIfGs_getTmpReg(0xFBFF) - 1);
|
||||
u8 bomb_max = dComIfGs_getBombMax(POKE_BOMB);
|
||||
|
||||
return bomb_num + (u8)prm0 >= bomb_max;
|
||||
return bomb_max >= bomb_num + prm0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -1569,11 +1559,13 @@ asm int dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1)
|
||||
|
||||
/* 8024C5F0-8024C654 246F30 0064+00 1/0 0/0 0/0 .text
|
||||
* event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dMsgFlow_c::event005(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
|
||||
f32 prm0 = getParam(flow_node->params);
|
||||
|
||||
i_dComIfGp_setItemLifeCount(-prm0, 0);
|
||||
f32 prm1 = -prm0;
|
||||
i_dComIfGp_setItemLifeCount(prm1, 0);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -222,37 +222,35 @@ static u8 data_80451060;
|
||||
|
||||
/* 80197098-80197270 1919D8 01D8+00 1/1 0/0 0/0 .text dShopSystem_searchItemActor__FPvPv
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
static int dShopSystem_searchItemActor(void* param_0, void* param_1) {
|
||||
if (fopAcM_IsActor(param_0) && fopAcM_GetName(param_0) == PROC_TAG_SHOPITM) {
|
||||
u32 param = fopAcM_GetParam(param_0);
|
||||
if ((param & 0xF0000000) == (fopAcM_GetParam(param_1) & 0xF0000000) &&
|
||||
if ((fopAcM_GetParam(param_1) & 0xF0000000) == (fopAcM_GetParam(param_0) & 0xF0000000) &&
|
||||
dShopSystem_item_count < data_80451058) {
|
||||
u32 param2 = (param >> 0x18) & 0xF;
|
||||
u8 param2 = (fopAcM_GetParam(param_0) >> 0x18) & 0xF;
|
||||
|
||||
if (dShopSystem_itemActor[0] != param_0 && dShopSystem_itemActor[1] != param_0 &&
|
||||
dShopSystem_itemActor[2] != param_0 && dShopSystem_itemActor[3] != param_0 &&
|
||||
dShopSystem_itemActor[4] != param_0 && dShopSystem_itemActor[5] != param_0 &&
|
||||
dShopSystem_itemActor[6] != param_0) {
|
||||
u8 sw = static_cast<fopAc_ac_c*>(param_0)->orig.angle.z;
|
||||
u8 sw2 = static_cast<fopAc_ac_c*>(param_0)->orig.angle.z >> 8;
|
||||
u8 item_no = param;
|
||||
u8 sw2 = ((u16)static_cast<fopAc_ac_c*>(param_0)->orig.angle.z) >> 8;
|
||||
u8 item_no = fopAcM_GetParam(param_0) & 0xff;
|
||||
|
||||
if ((sw == 0xFF || !dComIfGs_isSaveSwitch(sw)) &&
|
||||
(sw2 == 0xFF || dComIfGs_isSaveSwitch(sw2))) {
|
||||
if (sw != 0xFF && item_no == HYLIA_SHIELD && checkItemGet(item_no, true)) {
|
||||
dComIfGs_onSaveSwitch(sw);
|
||||
} else {
|
||||
if (param2 == 0) {
|
||||
data_80451060 = 1;
|
||||
dShopSystem_itemActor[dShopSystem_item_count] = (fopAc_ac_c*) param_0;
|
||||
dShopSystem_itemNo[dShopSystem_item_count] = item_no;
|
||||
} else if (dShopSystem_itemActor[param2 - 1] == NULL) {
|
||||
dShopSystem_itemActor[param2 - 1] = (fopAc_ac_c*) param_0;
|
||||
dShopSystem_itemNo[param2 - 1] = item_no;
|
||||
}
|
||||
dShopSystem_item_count++;
|
||||
}
|
||||
|
||||
if (param2 == 0) {
|
||||
data_80451060 = 1;
|
||||
dShopSystem_itemActor[dShopSystem_item_count] = param_0;
|
||||
dShopSystem_itemNo[dShopSystem_item_count] = item_no;
|
||||
} else if (dShopSystem_itemActor[param2 - 1] == NULL) {
|
||||
dShopSystem_itemActor[param2 - 1] = param_0;
|
||||
dShopSystem_itemNo[param2 - 1] = item_no;
|
||||
}
|
||||
dShopSystem_item_count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -260,16 +258,6 @@ static int dShopSystem_searchItemActor(void* param_0, void* param_1) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dShopSystem_searchItemActor(void* param_0, void* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/dShopSystem_searchItemActor__FPvPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804506F0-804506F8 000170 0008+00 6/6 0/0 0/0 .sdata dShopSystem_cameraActor */
|
||||
|
||||
+70
-258
@@ -1,157 +1,19 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: f_op/f_op_actor
|
||||
//
|
||||
/**
|
||||
* f_op_actor.cpp
|
||||
* Actor base process class
|
||||
*/
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/com/d_com_inf_actor.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/com/d_com_static.h"
|
||||
#include "d/com/d_com_inf_actor.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "d/d_demo.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__5csXyzFv();
|
||||
extern "C" void __ct__11J3DLightObjFv();
|
||||
extern "C" void __dt__11dEvt_info_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void fopAc_IsActor__FPv();
|
||||
extern "C" static void fopAc_Draw__FPv();
|
||||
extern "C" static void fopAc_Execute__FPv();
|
||||
extern "C" static void fopAc_IsDelete__FPv();
|
||||
extern "C" static void fopAc_Delete__FPv();
|
||||
extern "C" static void fopAc_Create__FPv();
|
||||
extern "C" void getFileListInfo__15dStage_roomDt_cCFv();
|
||||
extern "C" void initBallModel__13fopEn_enemy_cFv();
|
||||
extern "C" void checkBallModelDraw__13fopEn_enemy_cFv();
|
||||
extern "C" void setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c();
|
||||
extern "C" void drawBallModel__13fopEn_enemy_cFP12dKy_tevstr_c();
|
||||
extern "C" extern char const* const f_op_f_op_actor__stringBase0;
|
||||
extern "C" u8 stopStatus__10fopAc_ac_c[4];
|
||||
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void fopAcTg_ToActorQ__FP16create_tag_class();
|
||||
extern "C" void fopAcTg_ActorQTo__FP16create_tag_class();
|
||||
extern "C" void fopAcTg_Init__FP16create_tag_classPv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_DeleteHeap__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_cullingCheck__FPC10fopAc_ac_c();
|
||||
extern "C" void fopDwTg_ToDrawQ__FP16create_tag_classi();
|
||||
extern "C" void fopDwTg_DrawQTo__FP16create_tag_class();
|
||||
extern "C" void fopDwTg_Init__FP16create_tag_classPv();
|
||||
extern "C" void fpcBs_Is_JustOfType__Fii();
|
||||
extern "C" void fpcBs_MakeOfType__FPi();
|
||||
extern "C" void fpcLf_GetPriority__FPC14leafdraw_class();
|
||||
extern "C" void fpcLf_DrawMethod__FP21leafdraw_method_classPv();
|
||||
extern "C" void fpcMtd_Execute__FP20process_method_classPv();
|
||||
extern "C" void fpcMtd_IsDelete__FP20process_method_classPv();
|
||||
extern "C" void fpcMtd_Delete__FP20process_method_classPv();
|
||||
extern "C" void fpcMtd_Create__FP20process_method_classPv();
|
||||
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
|
||||
extern "C" void check__7daSus_cFP10fopAc_ac_c();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void setActor__13dDemo_actor_cFP10fopAc_ac_c();
|
||||
extern "C" void getActor__14dDemo_object_cFUc();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void moveApproval__14dEvt_control_cFPv();
|
||||
extern "C" void __ct__11dEvt_info_cFv();
|
||||
extern "C" void beforeProc__11dEvt_info_cFv();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc();
|
||||
extern "C" void dKy_depth_dist_set__FPv();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo();
|
||||
extern "C" void searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData();
|
||||
extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData();
|
||||
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "f_op/f_op_actor_tag.h"
|
||||
|
||||
/* 80018B64-80018BD0 0134A4 006C+00 0/0 7/7 562/562 .text __ct__10fopAc_ac_cFv */
|
||||
fopAc_ac_c::fopAc_ac_c() {}
|
||||
|
||||
/* 80018BD0-80018C0C 013510 003C+00 0/0 12/12 0/0 .text __dt__5csXyzFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm csXyz::~csXyz() {
|
||||
extern "C" asm void __dt__5csXyzFv() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__dt__5csXyzFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80018C0C-80018C44 01354C 0038+00 1/1 6/6 0/0 .text __ct__11J3DLightObjFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm J3DLightObj::J3DLightObj() {
|
||||
extern "C" asm void __ct__11J3DLightObjFv() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__ct__11J3DLightObjFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A35B0-803A35D0 -00001 0020+00 0/0 3/0 756/0 .data g_fopAc_Method */
|
||||
SECTION_DATA extern void* g_fopAc_Method[8] = {
|
||||
(void*)fopAc_Create__FPv,
|
||||
(void*)fopAc_Delete__FPv,
|
||||
(void*)fopAc_Execute__FPv,
|
||||
(void*)fopAc_IsDelete__FPv,
|
||||
(void*)fopAc_Draw__FPv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 803A35D0-803A35E0 0006F0 000C+04 2/2 1/1 0/0 .data __vt__11dEvt_info_c */
|
||||
SECTION_DATA extern void* __vt__11dEvt_info_c[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__11dEvt_info_cFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80018C44-80018C8C 013584 0048+00 1/0 0/0 0/0 .text __dt__11dEvt_info_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dEvt_info_c::~dEvt_info_c() {
|
||||
extern "C" asm void __dt__11dEvt_info_cFv() {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/__dt__11dEvt_info_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
|
||||
/* 80018C8C-80018CE0 0135CC 0054+00 0/0 5/5 270/270 .text __dt__10fopAc_ac_cFv */
|
||||
fopAc_ac_c::~fopAc_ac_c() {}
|
||||
|
||||
@@ -174,7 +36,11 @@ static int fopAc_Draw(void* actor) {
|
||||
|
||||
int ret = 1;
|
||||
if (!dComIfGp_isPauseFlag()) {
|
||||
if ((dComIfGp_event_moveApproval(ac) == 2 || (!fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x100) || !fopAcM_cullingCheck(ac)))) && !fopAcM_checkStatus(ac, 0x21000000)) {
|
||||
if ((dComIfGp_event_moveApproval(ac) == 2 ||
|
||||
(!fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(ac, 0x100) || !fopAcM_cullingCheck(ac)))) &&
|
||||
!fopAcM_checkStatus(ac, 0x21000000))
|
||||
{
|
||||
fopAcM_OffCondition(ac, 4);
|
||||
ret = fpcLf_DrawMethod((leafdraw_method_class*)ac->mSubMtd, ac);
|
||||
} else {
|
||||
@@ -199,7 +65,10 @@ static int fopAc_Execute(void* actor) {
|
||||
s32 move = dComIfGp_event_moveApproval(actor);
|
||||
fopAcM_OffStatus(ac, 0x40000000);
|
||||
|
||||
if (!fopAcM_checkStatus(ac, 0x20000000) && (move == 2 || (move != 0 && !fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) && (!fopAcM_checkStatus(ac, 0x80) || !fopAcM_CheckCondition(ac, 4))))) {
|
||||
if (!fopAcM_checkStatus(ac, 0x20000000) &&
|
||||
(move == 2 || (move != 0 && !fopAcM_checkStatus(ac, fopAc_ac_c::stopStatus) &&
|
||||
(!fopAcM_checkStatus(ac, 0x80) || !fopAcM_CheckCondition(ac, 4)))))
|
||||
{
|
||||
fopAcM_OffCondition(ac, 2);
|
||||
ac->next = ac->current;
|
||||
ret = fpcMtd_Execute((process_method_class*)ac->mSubMtd, ac);
|
||||
@@ -244,7 +113,7 @@ static int fopAc_Delete(void* actor) {
|
||||
fopAcTg_ActorQTo(&ac->mAcTg);
|
||||
fopDwTg_DrawQTo(&ac->mDwTg);
|
||||
fopAcM_DeleteHeap(ac);
|
||||
|
||||
|
||||
dDemo_actor_c* demoAc = dDemo_c::getActor(ac->mDemoActorId);
|
||||
if (demoAc != NULL) {
|
||||
demoAc->setActor(NULL);
|
||||
@@ -254,34 +123,23 @@ static int fopAc_Delete(void* actor) {
|
||||
return deleted;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451BD0-80451BD4 0001D0 0004+00 2/2 0/0 0/0 .sdata2 @4431 */
|
||||
SECTION_SDATA2 static f32 lit_4431 = 1.0f / 10.0f;
|
||||
|
||||
/* 80451BD4-80451BD8 0001D4 0004+00 1/1 0/0 0/0 .sdata2 @4432 */
|
||||
SECTION_SDATA2 static f32 lit_4432 = -100.0f;
|
||||
|
||||
/* 80451BD8-80451BE0 0001D8 0008+00 1/1 0/0 0/0 .sdata2 @4434 */
|
||||
SECTION_SDATA2 static f64 lit_4434 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 8001904C-800193FC 01398C 03B0+00 1/0 0/0 0/0 .text fopAc_Create__FPv */
|
||||
// swapped registers
|
||||
#ifdef NONMATCHING
|
||||
static int fopAc_Create(void* actor) {
|
||||
fopAc_ac_c* ac = (fopAc_ac_c*)actor;
|
||||
|
||||
if (fpcM_IsFirstCreating(actor)) {
|
||||
actor_process_profile_definition* profile = (actor_process_profile_definition*) fpcM_GetProfile(actor);
|
||||
actor_process_profile_definition* profile =
|
||||
(actor_process_profile_definition*)fpcM_GetProfile(actor);
|
||||
ac->mAcType = fpcBs_MakeOfType(&g_fopAc_type);
|
||||
ac->mSubMtd = (profile_method_class*)profile->mBase.mMethods;
|
||||
ac->mSubMtd = (profile_method_class*)profile->mSubMtd;
|
||||
|
||||
fopAcTg_Init(&ac->mAcTg, ac);
|
||||
fopAcTg_ToActorQ(&ac->mAcTg);
|
||||
fopDwTg_Init(&ac->mDwTg, ac);
|
||||
|
||||
ac->mStatus = profile->field_0x28;
|
||||
ac->mGroup = profile->field_0x2c;
|
||||
ac->mCullType = profile->field_0x2d;
|
||||
ac->mStatus = profile->mStatus;
|
||||
ac->mGroup = profile->mActorType;
|
||||
ac->mCullType = profile->mCullType;
|
||||
|
||||
fopAcM_prm_class* append = fopAcM_GetAppend(ac);
|
||||
if (append != NULL) {
|
||||
@@ -291,9 +149,10 @@ static int fopAc_Create(void* actor) {
|
||||
ac->shape_angle = append->mAngle;
|
||||
ac->mParentPcId = append->mParentPId;
|
||||
ac->mSubtype = append->mSubtype;
|
||||
ac->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f, append->mScale[2] * 0.1f);
|
||||
ac->mScale.set(append->mScale[0] * 0.1f, append->mScale[1] * 0.1f,
|
||||
append->mScale[2] * 0.1f);
|
||||
ac->mSetID = append->mEnemyNo;
|
||||
ac->orig.mRoomNo = append->mRoomNo;
|
||||
ac->orig.roomNo = append->mRoomNo;
|
||||
}
|
||||
|
||||
ac->next = ac->orig;
|
||||
@@ -311,7 +170,7 @@ static int fopAc_Create(void* actor) {
|
||||
ac->mAttentionInfo.field_0x8[0] = 51;
|
||||
ac->mAttentionInfo.mPosition = ac->orig.pos;
|
||||
ac->mAttentionInfo.field_0xa = 30;
|
||||
dKy_tevstr_init(&ac->mTevStr, ac->orig.mRoomNo, -1);
|
||||
dKy_tevstr_init(&ac->mTevStr, ac->orig.roomNo, -1);
|
||||
|
||||
int roomNo = dComIfGp_roomControl_getStayNo();
|
||||
if (roomNo >= 0) {
|
||||
@@ -319,45 +178,40 @@ static int fopAc_Create(void* actor) {
|
||||
}
|
||||
|
||||
dStage_FileList_dt_c* filelist = NULL;
|
||||
if (ac->orig.mRoomNo >= 0) {
|
||||
filelist = dComIfGp_roomControl_getStatusRoomDt(ac->orig.mRoomNo)->mRoomDt.getFileListInfo();
|
||||
if (ac->orig.roomNo >= 0) {
|
||||
filelist =
|
||||
dComIfGp_roomControl_getStatusRoomDt(ac->orig.roomNo)->mRoomDt.getFileListInfo();
|
||||
}
|
||||
|
||||
if (filelist != NULL) {
|
||||
if (!dStage_FileList_dt_GetEnemyAppear1Flag(filelist)) {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && dComIfGs_isSwitch(sw, ac->orig.mRoomNo) && profile->field_0x2c == 2) {
|
||||
return 5;
|
||||
if (sw != 0xFF && dComIfGs_isSwitch(sw, ac->orig.roomNo) &&
|
||||
profile->mActorType == 2)
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
} else {
|
||||
u32 sw = dStage_FileList_dt_GetBitSw(filelist);
|
||||
if (sw != 0xFF && !dComIfGs_isSwitch(sw, ac->orig.mRoomNo) && profile->field_0x2c == 2) {
|
||||
return 5;
|
||||
if (sw != 0xFF && !dComIfGs_isSwitch(sw, ac->orig.roomNo) &&
|
||||
profile->mActorType == 2)
|
||||
{
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ret = fpcMtd_Create((process_method_class*)ac->mSubMtd, ac);
|
||||
if (ret == 4) {
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
s32 priority = fpcLf_GetPriority(ac);
|
||||
fopDwTg_ToDrawQ(&ac->mDwTg, priority);
|
||||
} else if (ret == 5) {
|
||||
} else if (ret == cPhs_ERROR_e) {
|
||||
fopAcM_OnCondition(ac, 0x10);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm int fopAc_Create(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/fopAc_Create__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800193FC-80019404 013D3C 0008+00 0/0 1/0 0/0 .text getFileListInfo__15dStage_roomDt_cCFv */
|
||||
dStage_FileList_dt_c* dStage_roomDt_c::getFileListInfo() const {
|
||||
@@ -366,124 +220,75 @@ dStage_FileList_dt_c* dStage_roomDt_c::getFileListInfo() const {
|
||||
|
||||
/* 80019404-800194FC 013D44 00F8+00 0/0 0/0 2/2 .text initBallModel__13fopEn_enemy_cFv */
|
||||
bool fopEn_enemy_c::initBallModel() {
|
||||
void* objRes = dComIfG_getObjectRes("Alink",daAlink_c::getBallModelIdx());
|
||||
void* objRes = dComIfG_getObjectRes("Alink", daAlink_c::getBallModelIdx());
|
||||
mBallModel = mDoExt_J3DModel__create((J3DModelData*)objRes, 0x80000, 0x11000284);
|
||||
|
||||
if (!mBallModel) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
mBallModel->setBaseScale(cXyz::Zero);
|
||||
|
||||
mBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Alink",daAlink_c::getBallBtkIdx());
|
||||
mBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Alink", daAlink_c::getBallBtkIdx());
|
||||
mBtk->searchUpdateMaterialID(mBallModel->getModelData());
|
||||
|
||||
mBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Alink",daAlink_c::getBallBrkIdx());
|
||||
mBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Alink", daAlink_c::getBallBrkIdx());
|
||||
mBrk->searchUpdateMaterialID(mBallModel->getModelData());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
/* 800194FC-80019520 013E3C 0024+00 2/2 0/0 2/2 .text checkBallModelDraw__13fopEn_enemy_cFv */
|
||||
int fopEn_enemy_c::checkBallModelDraw() {
|
||||
int ret = 0;
|
||||
|
||||
if ((mFlags & 1) && !(mFlags & 0x32)) {
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
bool fopEn_enemy_c::checkBallModelDraw() {
|
||||
return (mFlags & 1) && !(mFlags & 0x32);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451BE0-80451BE8 0001E0 0004+04 2/2 0/0 0/0 .sdata2 @4505 */
|
||||
SECTION_SDATA2 static f32 lit_4505[1 + 1 /* padding */] = {
|
||||
1.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80451BE8-80451BF0 0001E8 0008+00 1/1 0/0 0/0 .sdata2 @4507 */
|
||||
SECTION_SDATA2 static f64 lit_4507 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80019520-800196A0 013E60 0180+00 0/0 0/0 2/2 .text
|
||||
* setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* param_0) {
|
||||
void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* i_tevstr) {
|
||||
if (mBallModel) {
|
||||
field_0x590 += FLOAT_LABEL(lit_4505);
|
||||
|
||||
field_0x590 += 1.0f;
|
||||
|
||||
if (field_0x590 >= mBtk->getFrameMax()) {
|
||||
field_0x590 -= mBtk->getFrameMax();
|
||||
}
|
||||
|
||||
if ((u8)checkBallModelDraw()) {
|
||||
if (checkBallModelDraw()) {
|
||||
Vec* base_scale = mBallModel->getBaseScale();
|
||||
cLib_chaseF(&base_scale->x,FLOAT_LABEL(lit_4505),FLOAT_LABEL(lit_4431));
|
||||
cLib_chaseF(&base_scale->x, 1.0f, 0.1f);
|
||||
f32 result = base_scale->x;
|
||||
base_scale->z = result;
|
||||
base_scale->y = result;
|
||||
|
||||
mEffectID1 = dComIfGp_particle_set(mEffectID1, 0x86c8, &mDownPos, param_0);
|
||||
mEffectID2 = dComIfGp_particle_set(mEffectID2, 0x86c9, &mDownPos, param_0);
|
||||
mEffectID1 = dComIfGp_particle_set(mEffectID1, 0x86C8, &mDownPos, i_tevstr);
|
||||
mEffectID2 = dComIfGp_particle_set(mEffectID2, 0x86C9, &mDownPos, i_tevstr);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopEn_enemy_c::setBallModelEffect(dKy_tevstr_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/f_op/f_op_actor/setBallModelEffect__13fopEn_enemy_cFP12dKy_tevstr_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451BF0-80451BF4 0001F0 0004+00 1/1 0/0 0/0 .sdata2 @4555 */
|
||||
SECTION_SDATA2 static u8 lit_4555[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80451BF4-80451BF8 0001F4 0004+00 1/1 0/0 0/0 .sdata2 @4556 */
|
||||
SECTION_SDATA2 static f32 lit_4556 = 1.0f / 20.0f;
|
||||
|
||||
/* 80451BF8-80451C00 0001F8 0004+04 1/1 0/0 0/0 .sdata2 @4557 */
|
||||
SECTION_SDATA2 static f32 lit_4557[1 + 1 /* padding */] = {
|
||||
1.0f / 100.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 800196A0-800197BC 013FE0 011C+00 0/0 0/0 2/2 .text
|
||||
* drawBallModel__13fopEn_enemy_cFP12dKy_tevstr_c */
|
||||
void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* param_0) {
|
||||
f32 tmp;
|
||||
void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* i_tevstr) {
|
||||
f32 scale_target;
|
||||
|
||||
if (mBallModel) {
|
||||
Vec* base_scale = mBallModel->getBaseScale();
|
||||
|
||||
if ((u8)checkBallModelDraw()) {
|
||||
tmp = FLOAT_LABEL(lit_4505);
|
||||
if (checkBallModelDraw()) {
|
||||
scale_target = 1.0f;
|
||||
} else {
|
||||
tmp = FLOAT_LABEL(lit_4555);
|
||||
scale_target = 0.0f;
|
||||
}
|
||||
|
||||
cLib_chaseF(&base_scale->x,tmp,FLOAT_LABEL(lit_4556));
|
||||
cLib_chaseF(&base_scale->x, scale_target, 0.05f);
|
||||
|
||||
base_scale->y = base_scale->x;
|
||||
base_scale->z = base_scale->x;
|
||||
|
||||
mBallModel->setBaseScale(*base_scale);
|
||||
|
||||
if (base_scale->x > FLOAT_LABEL(lit_4557)) {
|
||||
mDoMtx_trans(mBallModel->getBaseTRMtx(),mDownPos.x,mDownPos.y,mDownPos.z);
|
||||
i_dKy_getEnvlight()->setLightTevColorType_MAJI(mBallModel, param_0);
|
||||
if (base_scale->x > 0.01f) {
|
||||
mDoMtx_trans(mBallModel->getBaseTRMtx(), mDownPos.x, mDownPos.y, mDownPos.z);
|
||||
i_dKy_getEnvlight()->setLightTevColorType_MAJI(mBallModel, i_tevstr);
|
||||
|
||||
mBtk->setFrame(field_0x590);
|
||||
mBallModel->getModelData()->entryTexMtxAnimator(mBtk);
|
||||
@@ -493,10 +298,17 @@ void fopEn_enemy_c::drawBallModel(dKy_tevstr_c* param_0) {
|
||||
|
||||
mDoExt_modelUpdateDL(mBallModel);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A35B0-803A35D0 -00001 0020+00 0/0 3/0 756/0 .data g_fopAc_Method */
|
||||
extern actor_method_class g_fopAc_Method = {
|
||||
(process_method_func)fopAc_Create, (process_method_func)fopAc_Delete,
|
||||
(process_method_func)fopAc_Execute, (process_method_func)fopAc_IsDelete,
|
||||
(process_method_func)fopAc_Draw,
|
||||
};
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450CC0-80450CC8 0001C0 0004+04 0/0 9/9 0/0 .sbss
|
||||
* sInstance__35JASGlobalInstance<14JAUSectionHeap> */
|
||||
|
||||
+12
-12
@@ -743,7 +743,7 @@ void fopAcM_calcSpeed(fopAc_ac_c* p_actor) {
|
||||
f32 speedF = fopAcM_GetSpeedF(p_actor);
|
||||
f32 gravity = fopAcM_GetGravity(p_actor);
|
||||
f32 xSpeed = speedF * cM_ssin(p_actor->getAngle().GetY());
|
||||
f32 ySpeed = p_actor->mSpeed.y + gravity;
|
||||
f32 ySpeed = p_actor->speed.y + gravity;
|
||||
f32 zSpeed = speedF * cM_scos(p_actor->getAngle().GetY());
|
||||
|
||||
clampMin(ySpeed, fopAcM_GetMaxFallSpeed(p_actor));
|
||||
@@ -752,9 +752,9 @@ void fopAcM_calcSpeed(fopAc_ac_c* p_actor) {
|
||||
|
||||
/* 8001A660-8001A6CC 014FA0 006C+00 1/1 1/1 17/17 .text fopAcM_posMove__FP10fopAc_ac_cPC4cXyz */
|
||||
void fopAcM_posMove(fopAc_ac_c* p_actor, const cXyz* p_movePos) {
|
||||
p_actor->current.pos.x += p_actor->mSpeed.x;
|
||||
p_actor->current.pos.y += p_actor->mSpeed.y;
|
||||
p_actor->current.pos.z += p_actor->mSpeed.z;
|
||||
p_actor->current.pos.x += p_actor->speed.x;
|
||||
p_actor->current.pos.y += p_actor->speed.y;
|
||||
p_actor->current.pos.z += p_actor->speed.z;
|
||||
|
||||
if (p_movePos != NULL) {
|
||||
p_actor->current.pos.x += p_movePos->x;
|
||||
@@ -1501,8 +1501,8 @@ s32 fopAcM_createItemForBoss(const cXyz* p_pos, int param_2, int roomNo, const c
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_Obj_LifeContainer, 0xFFFF0000 | param_8 << 0x8 | (param_2 & 0xFF), p_pos, roomNo, p_angle,
|
||||
p_scale, -1, NULL, NULL);
|
||||
if (actor != NULL) {
|
||||
actor->mSpeedF = speedF;
|
||||
actor->mSpeed.y = speedY;
|
||||
actor->speedF = speedF;
|
||||
actor->speed.y = speedY;
|
||||
}
|
||||
return fopAcM_GetID(actor);
|
||||
}
|
||||
@@ -1668,11 +1668,11 @@ void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const
|
||||
|
||||
if (actor != NULL) {
|
||||
if (p_speedF != NULL) {
|
||||
actor->mSpeedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
|
||||
actor->speedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
|
||||
}
|
||||
|
||||
if (p_speedY != NULL) {
|
||||
actor->mSpeed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
|
||||
actor->speed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1688,11 +1688,11 @@ void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const
|
||||
|
||||
if (actor != NULL) {
|
||||
if (p_speedF != NULL) {
|
||||
actor->mSpeedF = *p_speedF;
|
||||
actor->speedF = *p_speedF;
|
||||
}
|
||||
|
||||
if (p_speedY != NULL) {
|
||||
actor->mSpeed.y = *p_speedY;
|
||||
actor->speed.y = *p_speedY;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1780,7 +1780,7 @@ asm fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 param_0) {
|
||||
* fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc */
|
||||
s32 fopAcM_createDisappear(const fopAc_ac_c* p_actor, const cXyz* p_pos, u8 param_3, u8 param_4,
|
||||
u8 param_5) {
|
||||
s8 roomNo = p_actor->current.mRoomNo;
|
||||
s8 roomNo = p_actor->current.roomNo;
|
||||
return fopAcM_GetID(fopAcM_fastCreate(PROC_DISAPPEAR, (param_5 << 0x10) | (param_3 << 0x8) | param_4,
|
||||
p_pos, roomNo, &p_actor->current.angle, NULL, 0xFF, NULL,
|
||||
NULL));
|
||||
@@ -2041,7 +2041,7 @@ s32 fopAcM_carryOffRevise(fopAc_ac_c* param_0) {
|
||||
param_0->current.pos.x = player->current.pos.x;
|
||||
param_0->current.pos.z = player->current.pos.z;
|
||||
param_0->next.pos = param_0->current.pos;
|
||||
param_0->mSpeedF = FLOAT_LABEL(lit_4645);
|
||||
param_0->speedF = FLOAT_LABEL(lit_4645);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user