mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-19 13:24:12 -04:00
Demo work (#786)
* Demo work * Fix PAL * Fix d_door weak func order and link it * Fix d_door for demo * JKernel OK on demo + misc * tag_attention 100% on demo * More demo work and fix some retail fakematches
This commit is contained in:
+49
-29
@@ -341,9 +341,11 @@ void daShip_c::setInitMessage() {
|
||||
else if (checkForceMessage()) {
|
||||
return;
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
else if (dComIfGs_isEventBit(0x2110) && !dComIfGs_checkGetItem(dItem_BOMB_BAG_e)) {
|
||||
mNextMessageNo = 0x623;
|
||||
}
|
||||
#endif
|
||||
else if (checkStateFlg(daSFLG_UNK800000_e)) {
|
||||
mNextMessageNo = 0x636;
|
||||
}
|
||||
@@ -612,7 +614,9 @@ BOOL daShip_c::setNextMessage(msg_class* msg) {
|
||||
}
|
||||
else if (currMessageNo == 0x1682) {
|
||||
dComIfGs_onEventBit(0x3d04);
|
||||
#if VERSION > VERSION_DEMO
|
||||
mNextMessageNo = 0;
|
||||
#endif
|
||||
}
|
||||
else if (currMessageNo == 0x1688) {
|
||||
dComIfGs_onEventBit(0x3f80);
|
||||
@@ -826,7 +830,7 @@ void daShip_c::setWaveAngle(short* param1, short* param2) {
|
||||
|
||||
/* 00002314-000023E0 .text getWaterY__8daShip_cFv */
|
||||
f32 daShip_c::getWaterY() {
|
||||
float waterY;
|
||||
f32 waterY;
|
||||
BOOL waterHit = mAcch.ChkWaterHit();
|
||||
if (waterHit) {
|
||||
m03F8 = mAcch.m_wtr.GetHeight();
|
||||
@@ -844,6 +848,9 @@ f32 daShip_c::getWaterY() {
|
||||
waterY = m03F8;
|
||||
}
|
||||
else {
|
||||
#if VERSION == VERSION_DEMO
|
||||
waterY = m03F4;
|
||||
#else
|
||||
daPy_lk_c* link = daPy_getPlayerLinkActorClass();
|
||||
if (link && link->mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e ) {
|
||||
waterY = 0.0f;
|
||||
@@ -851,6 +858,7 @@ f32 daShip_c::getWaterY() {
|
||||
else {
|
||||
waterY = m03F4;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return waterY;
|
||||
}
|
||||
@@ -1087,32 +1095,23 @@ s16 daShip_c::getAimControllAngle(short referenceAngle) {
|
||||
|
||||
/* 00002D90-00002EE0 .text setMoveAngle__8daShip_cFs */
|
||||
void daShip_c::setMoveAngle(short moveAngle) {
|
||||
float turnRate;
|
||||
float maxTurnRate;
|
||||
float minTurnRate;
|
||||
short initialAngle;
|
||||
bool cannotMove = FALSE;
|
||||
if (mTornadoActor || mWhirlActor != 0) {
|
||||
cannotMove = TRUE;
|
||||
}
|
||||
if (!cannotMove) {
|
||||
initialAngle = shape_angle.y;
|
||||
turnRate = 4.0f - std::abs(speedF) / 55.0f * 3.0f;
|
||||
maxTurnRate = 3.6f;
|
||||
minTurnRate = 0.1f;
|
||||
if (turnRate > maxTurnRate) {
|
||||
turnRate = maxTurnRate;
|
||||
if (!checkForceMove()) {
|
||||
s16 initialAngle = shape_angle.y;
|
||||
f32 turnRate = 4.0f - std::abs(speedF) / 55.0f * 3.0f;
|
||||
if (turnRate > 3.6f) {
|
||||
turnRate = 3.6f;
|
||||
}
|
||||
else if (turnRate < minTurnRate) {
|
||||
turnRate = minTurnRate;
|
||||
else if (turnRate < 0.1f) {
|
||||
turnRate = 0.1f;
|
||||
}
|
||||
if (m0388 >= 0xF) {
|
||||
turnRate = maxTurnRate;
|
||||
turnRate = 3.6f;
|
||||
}
|
||||
else {
|
||||
turnRate += ((3.6f - turnRate) * m0388) / 15.0f;
|
||||
}
|
||||
shape_angle.y += (s32)(-turnRate * (moveAngle >> 6));
|
||||
s16 temp = -turnRate * (moveAngle >> 6);
|
||||
shape_angle.y += temp;
|
||||
setControllAngle(getAimControllAngle(initialAngle));
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
@@ -1958,7 +1957,10 @@ BOOL daShip_c::procCraneUp_init() {
|
||||
dComIfGp_getVibration().StartShock(7, -0x31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
dComIfGp_getVibration().StartQuake(4, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
speedF = 0.0f;
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -2180,7 +2182,7 @@ BOOL daShip_c::procZevDemo() {
|
||||
fVar17 = local_70.absXZ();
|
||||
|
||||
if (!dComIfGp_evmng_getMyFloatP(mEvtStaffId, "rad")) {
|
||||
JUT_ASSERT(0xE9D, 0);
|
||||
JUT_ASSERT(VERSION_SELECT(3722, 3741, 3741, 3741), 0);
|
||||
}
|
||||
|
||||
fVar3 = *dComIfGp_evmng_getMyFloatP(mEvtStaffId, "rad");
|
||||
@@ -3449,7 +3451,10 @@ void daShip_c::setHeadAnm() {
|
||||
mCurMode == 9) {
|
||||
newFileIndex = SHIP_BCK_KYAKKAN1;
|
||||
}
|
||||
else if ((!dComIfGs_isEventBit(0x3910) || dComIfGs_isEventBit(0x2D02)) &&
|
||||
else if (
|
||||
#if VERSION > VERSION_DEMO
|
||||
(!dComIfGs_isEventBit(0x3910) || dComIfGs_isEventBit(0x2D02)) &&
|
||||
#endif
|
||||
(mSph.ChkTgHit() || mCyl[0].ChkTgHit() ||
|
||||
mCyl[1].ChkTgHit() || mCyl[2].ChkTgHit())) {
|
||||
m03B4 = SHIP_BCK_FN_LOOK_L;
|
||||
@@ -3460,7 +3465,10 @@ void daShip_c::setHeadAnm() {
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((!dComIfGs_isEventBit(0x3910) || dComIfGs_isEventBit(0x2D02)) &&
|
||||
if (
|
||||
#if VERSION > VERSION_DEMO
|
||||
(!dComIfGs_isEventBit(0x3910) || dComIfGs_isEventBit(0x2D02)) &&
|
||||
#endif
|
||||
(mSph.ChkTgHit() || mCyl[0].ChkTgHit() ||
|
||||
mCyl[1].ChkTgHit() || mCyl[2].ChkTgHit())) {
|
||||
m03B4 = SHIP_BCK_FN_LOOK_L;
|
||||
@@ -3474,7 +3482,9 @@ void daShip_c::setHeadAnm() {
|
||||
else if ((m03B4 == SHIP_BCK_FN_LOOK_L || m03B4 == SHIP_BCK_FN_LOOK_R) &&
|
||||
std::fabsf(mpHeadAnm->getPlaySpeed()) < 0.01f &&
|
||||
cM_rnd() < 0.4f && (g_Counter.mTimer & 0x1FF) == 0x1FF &&
|
||||
#if VERSION > VERSION_DEMO
|
||||
(!dComIfGs_isEventBit(0x3910) || dComIfGs_isEventBit(0x2D02)) &&
|
||||
#endif
|
||||
!checkStateFlg(daSFLG_UNK40000000_e)) {
|
||||
newFileIndex = SHIP_BCK_AKIBI1;
|
||||
}
|
||||
@@ -4373,7 +4383,7 @@ BOOL daShip_c::createHeap() {
|
||||
m0392 = SHIP_BCK_FN_MAST_OFF2;
|
||||
}
|
||||
modelData = (J3DModelData *)dComIfG_getObjectRes(l_arcName, SHIP_BDL_FN_BODY);
|
||||
JUT_ASSERT(0x1B5C, modelData != 0);
|
||||
JUT_ASSERT(VERSION_SELECT(6969, 7004, 7004, 7004), modelData != 0);
|
||||
|
||||
mpBodyAnm = new mDoExt_McaMorf(
|
||||
modelData, NULL, NULL,
|
||||
@@ -4398,7 +4408,7 @@ BOOL daShip_c::createHeap() {
|
||||
}
|
||||
|
||||
modelData = (J3DModelData *)dComIfG_getObjectRes(l_arcName, SHIP_BDL_VFNCN);
|
||||
JUT_ASSERT(0x1B81, modelData != 0);
|
||||
JUT_ASSERT(VERSION_SELECT(7006, 7041, 7041, 7041), modelData != 0);
|
||||
mpCannonModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
|
||||
if (mpCannonModel == NULL) {
|
||||
@@ -4406,7 +4416,7 @@ BOOL daShip_c::createHeap() {
|
||||
}
|
||||
|
||||
modelData = (J3DModelData *)dComIfG_getObjectRes(l_arcName, SHIP_BDL_VFNCR);
|
||||
JUT_ASSERT(0x1B8E, modelData != 0);
|
||||
JUT_ASSERT(VERSION_SELECT(7019, 7054, 7054, 7054), modelData != 0);
|
||||
mpSalvageArmModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
|
||||
if (mpSalvageArmModel == NULL) {
|
||||
@@ -4414,7 +4424,7 @@ BOOL daShip_c::createHeap() {
|
||||
}
|
||||
|
||||
modelData = (J3DModelData *)dComIfG_getObjectRes("Link", LINK_BDL_ROPEEND);
|
||||
JUT_ASSERT(0x1B9B, modelData != 0);
|
||||
JUT_ASSERT(VERSION_SELECT(7032, 7067, 7067, 7067), modelData != 0);
|
||||
mpLinkModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002);
|
||||
|
||||
if (mpLinkModel == NULL) {
|
||||
@@ -4422,7 +4432,7 @@ BOOL daShip_c::createHeap() {
|
||||
}
|
||||
|
||||
modelData = (J3DModelData *)dComIfG_getObjectRes(l_arcName, SHIP_BDL_FN_HEAD_H);
|
||||
JUT_ASSERT(0x1BA8, modelData != 0);
|
||||
JUT_ASSERT(VERSION_SELECT(7045, 7080, 7080, 7080), modelData != 0);
|
||||
|
||||
m03B4 = SHIP_BCK_FN_LOOK_L;
|
||||
|
||||
@@ -4602,9 +4612,13 @@ cPhs_State daShip_c::create() {
|
||||
mWhirlID = fpcM_ERROR_PROCESS_ID_e;
|
||||
mWhirlActor = NULL;
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
mTactWarpID = fpcM_ERROR_PROCESS_ID_e;
|
||||
#else
|
||||
if (mNextMode != MODE_START_MODE_WARP_e) {
|
||||
mTactWarpID = fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (checkStateFlg(daSFLG_SAIL_ON_e) != 0) {
|
||||
mPart = PART_STEER_e;
|
||||
@@ -4625,7 +4639,13 @@ cPhs_State daShip_c::create() {
|
||||
}
|
||||
}
|
||||
|
||||
if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e) || !strcmp(dComIfGp_getStartStageName(), "Hyrule") || !strcmp(dComIfGp_getStartStageName(), "Ocean")) {
|
||||
if (
|
||||
(dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e)
|
||||
|| !strcmp(dComIfGp_getStartStageName(), "Hyrule")
|
||||
#if VERSION > VERSION_DEMO
|
||||
|| !strcmp(dComIfGp_getStartStageName(), "Ocean")
|
||||
#endif
|
||||
) {
|
||||
m03CC = 4;
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user