Skip to content

Commit 4906a88

Browse files
committed
Offset
1 parent 2a67e0f commit 4906a88

File tree

5 files changed

+37
-2
lines changed

5 files changed

+37
-2
lines changed

src/xrGame/Actor.cpp

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,25 @@ void set_box(LPCSTR section, CPHMovementControl& mc, u32 box_num)
329329
mc.SetBox(box_num, bb);
330330
}
331331

332+
void set_box_y_offset(LPCSTR section, CPHMovementControl& mc, u32 box_num, float offset)
333+
{
334+
Fbox bb;
335+
Fvector vBOX_center, vBOX_size;
336+
// m_PhysicMovementControl: BOX
337+
string64 buff, buff1;
338+
strconcat(sizeof(buff), buff, "ph_box", itoa(box_num, buff1, 10), "_center");
339+
vBOX_center = pSettings->r_fvector3(section, buff);
340+
vBOX_center.y = offset
341+
strconcat(sizeof(buff), buff, "ph_box", itoa(box_num, buff1, 10), "_size");
342+
vBOX_size = pSettings->r_fvector3(section, buff);
343+
vBOX_size.y += (cammera_into_collision_shift / 2.f) + offset;
344+
bb.set(vBOX_center, vBOX_center);
345+
bb.grow(vBOX_size);
346+
mc.SetBox(box_num, bb);
347+
}
348+
332349
void CActor::Load(LPCSTR section)
333350
{
334-
// Msg ("Loading actor: %s",section);
335351
inherited::Load(section);
336352
material().Load(section);
337353
CInventoryOwner::Load(section);
@@ -508,6 +524,11 @@ void CActor::Load(LPCSTR section)
508524
m_sHeadShotParticle = READ_IF_EXISTS(pSettings, r_string, section, "HeadShotParticle", 0);
509525
}
510526

527+
void CActor::set_actor_box_y_offset(u32 box_num, float offset)
528+
{
529+
set_box_y_offset("actor", *character_physics_support()->movement(), box_num, offset);
530+
}
531+
511532
void CActor::PHHit(SHit& H)
512533
{
513534
m_pPhysics_support->in_Hit(H, false);

src/xrGame/Actor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ class CActor :
185185

186186
virtual void OnPlayHeadShotParticle(NET_Packet P);
187187

188-
188+
virtual void set_actor_box_y_offset(u32 box_num, float offset);
189189
virtual void Die(CObject* who);
190190
virtual void Hit(SHit* pHDS);
191191
virtual void PHHit(SHit& H);

src/xrGame/script_game_object.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,6 +1086,7 @@ class CScriptGameObject
10861086
void SetActorRunCoef(float run_coef);
10871087
float GetActorRunBackCoef() const;
10881088
void SetActorRunBackCoef(float run_back_coef);
1089+
void SetActorCamBoxYOffset(u32 box_num, float offset);
10891090
float GetActorWalkAccel() const;
10901091
void SetActorWalkAccel(float val);
10911092
float GetActorWalkBackCoef() const;

src/xrGame/script_game_object_inventory_owner.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2565,6 +2565,18 @@ void CScriptGameObject::SetActorRunBackCoef(float run_back_coef)
25652565
pActor->m_fRunBackFactor = run_back_coef;
25662566
}
25672567

2568+
void CScriptGameObject::SetActorCamBoxYOffset(u32 box_num, float offset)
2569+
{
2570+
CActor* pActor = smart_cast<CActor*>(&object());
2571+
if (!pActor)
2572+
{
2573+
ai().script_engine().script_log(ScriptStorage::eLuaMessageTypeError,
2574+
"CActor : cannot access class member SetActorCamBoxYOffset!");
2575+
return;
2576+
}
2577+
pActor->set_actor_box_y_offset(box_num, offset);
2578+
}
2579+
25682580

25692581
float CScriptGameObject::GetActorWalkAccel() const
25702582
{

src/xrGame/script_game_object_script3.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@ class_<CScriptGameObject>& script_register_game_object2(class_<CScriptGameObject
595595
// demonized: Additional exports
596596
.def("get_actor_walk_accel", &CScriptGameObject::GetActorWalkAccel)
597597
.def("set_actor_walk_accel", &CScriptGameObject::SetActorWalkAccel)
598+
.def("set_actor_box_y_offset", &CScriptGameObject::SetActorCamBoxYOffset)
598599
.def("get_actor_walk_back_coef", &CScriptGameObject::GetActorWalkBackCoef)
599600
.def("set_actor_walk_back_coef", &CScriptGameObject::SetActorWalkBackCoef)
600601
.def("get_actor_crouch_coef", &CScriptGameObject::GetActorCrouchCoef)

0 commit comments

Comments
 (0)