2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-14 02:27:40 -04:00

Hoikas' subworld fixes including PhysX support

1) Allow plSubWorldMsg to be sent over the network
https://github.com/H-uru/Plasma/pull/107
2) Cleanup VolumeSensorConditionalObject
https://github.com/H-uru/Plasma/pull/537
3) Add two new compiler feature tests - HeadSpin.h changes ONLY, as
prerequisite for VolumeSensorConditionalObject
45be91c0e3
4) Fix a crash and a silly identified by Coverity - changes for
VolumeSensorConditionalObject ONLY
a702cb9d3f
5) PXSubworld (Havok/CC subworld physics support ported to PhysX/MOULa)
https://github.com/H-uru/Plasma/pull/555
This commit is contained in:
John Johns
2021-05-31 10:48:56 -07:00
parent c914ba5bac
commit 576ac25f03
25 changed files with 545 additions and 421 deletions

View File

@ -993,3 +993,17 @@ void pySceneObject::VolumeSensorIgnoreExtraEnters(bool ignore)
}
}
}
void pySceneObject::VolumeSensorNoArbitration(bool noArbitration)
{
if (fSceneObjects.Count() > 0) {
plSceneObject* obj = plSceneObject::ConvertNoRef(fSceneObjects[0]->ObjectIsLoaded());
if (obj) {
for (size_t i = 0; i < obj->GetNumModifiers(); ++i) {
plLogicModifier* logic = const_cast<plLogicModifier*>(plLogicModifier::ConvertNoRef(obj->GetModifier(i)));
if (logic)
logic->VolumeNoArbitration(noArbitration);
}
}
}
}

View File

@ -200,6 +200,9 @@ public:
// hack for garrison
void VolumeSensorIgnoreExtraEnters(bool ignore);
/** More SubWorld hacks */
void VolumeSensorNoArbitration(bool noArbitration);
};
#endif // _pySceneObject_h_

View File

@ -452,6 +452,17 @@ PYTHON_METHOD_DEFINITION(ptSceneobject, volumeSensorIgnoreExtraEnters, args)
PYTHON_RETURN_NONE;
}
PYTHON_METHOD_DEFINITION(ptSceneobject, volumeSensorNoArbitration, args)
{
bool noArbitration = true;
if (!PyArg_ParseTuple(args, "|b", &noArbitration)) {
PyErr_SetString(PyExc_TypeError, "volumeSensorNoArbitration expects an optional boolean");
PYTHON_RETURN_ERROR;
}
self->fThis->VolumeSensorNoArbitration(noArbitration);
PYTHON_RETURN_NONE;
}
PYTHON_START_METHODS_TABLE(ptSceneobject)
PYTHON_METHOD(ptSceneobject, addKey, "Params: key\nMostly used internally.\n"
"Add another sceneobject ptKey"),
@ -510,6 +521,7 @@ PYTHON_START_METHODS_TABLE(ptSceneobject)
PYTHON_METHOD(ptSceneobject, getSoundIndex, "Params: sndComponentName\nGet the index of the requested sound component"),
PYTHON_METHOD(ptSceneobject, volumeSensorIgnoreExtraEnters, "Params: ignore\nTells the volume sensor attached to this object to ignore extra enters (default), or not (hack for garrison)."),
PYTHON_METHOD(ptSceneobject, volumeSensorNoArbitration, "Params: noArbitration\nTells the volume sensor attached to this object whether or not to negotiate exclusive locks with the server."),
PYTHON_END_METHODS_TABLE;
PYTHON_GET_DEFINITION(ptSceneobject, draw)