mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-11 06:34:45 -04:00
d_a_machine matching for demo
This commit is contained in:
+1
-1
@@ -1578,7 +1578,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_lbridge", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_leaflift", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_lstair"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_machine", extra_cflags=['-sym off']),
|
||||
ActorRel(Matching, "d_a_machine", extra_cflags=['-sym off']),
|
||||
ActorRel(NonMatching, "d_a_mant"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_mbdoor"),
|
||||
ActorRel(NonMatching, "d_a_mgameboard"),
|
||||
|
||||
+29
-26
@@ -92,14 +92,14 @@ BOOL daMachine_c::CreateHeap() {
|
||||
BOOL success;
|
||||
|
||||
J3DModelData * modelData = (J3DModelData *)dComIfG_getObjectRes(m_arcname, HKIKAI1_BDL_HKIKAI1);
|
||||
JUT_ASSERT(0x159, modelData != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(340, 345), modelData != NULL);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000222);
|
||||
if(mpModel == NULL) {
|
||||
success = false;
|
||||
} else{
|
||||
J3DAnmTransform * pbck = (J3DAnmTransform *)dComIfG_getObjectRes(m_arcname, HKIKAI1_BCK_HKIKAI1);
|
||||
JUT_ASSERT(0x169, pbck != NULL)
|
||||
JUT_ASSERT(DEMO_SELECT(356, 361), pbck != NULL)
|
||||
|
||||
int initRet = field_0xc04.init(modelData,pbck, true, 0,1.0f,0,-1,false);
|
||||
if(initRet == NULL)
|
||||
@@ -191,9 +191,11 @@ void daMachine_c::CreateInit() {
|
||||
/* 00000520-00000604 .text path_move__11daMachine_cFv */
|
||||
void daMachine_c::path_move() {
|
||||
if (field_0xc14 != 0xFF){
|
||||
cLib_chasePos(¤t.pos, field_0xc1c, speedF);
|
||||
f32 temp2 = speedF;
|
||||
cLib_chasePos(¤t.pos, field_0xc1c, temp2);
|
||||
|
||||
if((field_0xc1c - current.pos).abs() < 80.0f)
|
||||
f32 temp = (field_0xc1c - current.pos).abs();
|
||||
if(temp < 80.0f)
|
||||
set_next_pnt();
|
||||
}
|
||||
}
|
||||
@@ -204,7 +206,7 @@ void daMachine_c::set_next_pnt() {
|
||||
|
||||
field_0xc15 += field_0xc16;
|
||||
|
||||
if(dPath_ChkClose(field_0xc18) != 0) {
|
||||
if(dPath_ChkClose(field_0xc18)) {
|
||||
if (field_0xc15 > (s8)field_0xc18->m_num - 1) {
|
||||
field_0xc15 = 0;
|
||||
} else if (field_0xc15 < 0) {
|
||||
@@ -289,7 +291,8 @@ bool daMachine_c::_execute() {
|
||||
set_at();
|
||||
set_mtx();
|
||||
|
||||
if(speedF != 0.0f) {
|
||||
f32 temp = speedF;
|
||||
if(temp != 0.0f) {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_JAMA_MECHA_MOVE, 0);
|
||||
}
|
||||
|
||||
@@ -298,39 +301,37 @@ bool daMachine_c::_execute() {
|
||||
|
||||
/* 000010F8-0000124C .text attack__11daMachine_cFv */
|
||||
void daMachine_c::attack() {
|
||||
daPy_py_c* player;
|
||||
f32 f31 = 1.0f;
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
if( (player = daPy_getPlayerActorClass()) == NULL)
|
||||
if(player == NULL)
|
||||
return;
|
||||
|
||||
set_cube();
|
||||
cXyz player_pos;
|
||||
cXyz xyz;
|
||||
f32 unk_float = 60.0f;
|
||||
|
||||
player_pos.x = player->current.pos.x;
|
||||
player_pos.y = player->current.pos.y;
|
||||
player_pos.z = player->current.pos.z;
|
||||
player_pos.y = player_pos.y + unk_float;
|
||||
cXyz player_pos = player->current.pos;
|
||||
player_pos.y += 60.0f;
|
||||
|
||||
field_0xbf0.SetC(player_pos);
|
||||
field_0xbf0.SetR(90.0f);
|
||||
|
||||
switch (field_0xc78) {
|
||||
case 0:
|
||||
if(field_0xab8.Cross(&field_0xbf0,&xyz) !=0) {
|
||||
case 0: {
|
||||
cXyz unused;
|
||||
if(field_0xab8.Cross(&field_0xbf0, &unused)) {
|
||||
field_0xc78 = 1;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
fopAcM_seStart(this, JA_SE_OBJ_JAMA_MECHA_OUT,0);
|
||||
field_0xc04.setFrame(0.0f);
|
||||
field_0xc04.setPlaySpeed(1.0f);
|
||||
field_0xc04.setPlaySpeed(f31);
|
||||
field_0xc78 += 1;
|
||||
// Fall through
|
||||
case 2:
|
||||
if(field_0xc04.play() != 0) {
|
||||
if(field_0xc04.play()) {
|
||||
field_0xc78 = NULL;
|
||||
}
|
||||
break;
|
||||
@@ -339,15 +340,17 @@ void daMachine_c::attack() {
|
||||
|
||||
/* 0000124C-00001330 .text set_cube__11daMachine_cFv */
|
||||
void daMachine_c::set_cube() {
|
||||
cXyz xyz1(0.0f,0.0f,350.0f);
|
||||
cXyz xyz2(0.0f,0.0f,500.0f);
|
||||
f32 f2 = 500.0f;
|
||||
f32 f31 = 200.0f;
|
||||
cXyz xyz1(0.0f, 0.0f, f31 + 150.0f);
|
||||
cXyz xyz2(0.0f, 0.0f, f2);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&xyz2, &xyz2);
|
||||
mDoMtx_stack_c::multVec(&xyz1, &xyz1);
|
||||
field_0xab8.GetStart() = xyz1;
|
||||
field_0xab8.GetEnd() = xyz2;
|
||||
field_0xab8.SetR(200.0f);
|
||||
field_0xab8.SetR(f31);
|
||||
}
|
||||
|
||||
/* 00001330-0000144C .text set_body__11daMachine_cFv */
|
||||
@@ -373,10 +376,10 @@ void daMachine_c::set_body() {
|
||||
|
||||
/* 0000144C-000014D4 .text set_at__11daMachine_cFv */
|
||||
void daMachine_c::set_at() {
|
||||
f32 fVar1;
|
||||
|
||||
fVar1 = field_0xc04.getFrameCtrl()->getFrame();
|
||||
if ((5.0f < fVar1) && (25.0f > fVar1)) {
|
||||
f32 f1 = 5.0f;
|
||||
f32 f2 = 25.0f;
|
||||
f32 frame = field_0xc04.getFrameCtrl()->getFrame();
|
||||
if (f1 < frame && f2 > frame) {
|
||||
field_0xc6c.set(field_0xc3c[0][3],
|
||||
field_0xc3c[1][3],
|
||||
field_0xc3c[2][3]);
|
||||
|
||||
Reference in New Issue
Block a user