mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Pass and register reversed model. More scientific notation float limitation handling.
This commit is contained in:
parent
fe462826b6
commit
1b93c89c28
@ -2,16 +2,17 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
PARAMS_1(_vehicle);
|
PARAMS_1(_vehicle);
|
||||||
private["_id", "_model","_vehicleData"];
|
private["_id", "_model","_vehicleData", "_reversed"];
|
||||||
|
|
||||||
if(GVAR(Enabled) < 1) exitWith {};
|
if(GVAR(Enabled) < 1) exitWith {};
|
||||||
|
|
||||||
_id = GVAR(vehicle_id);
|
_id = GVAR(vehicle_id);
|
||||||
GVAR(vehicle_id) = _id + 1;
|
GVAR(vehicle_id) = _id + 1;
|
||||||
_model = getText (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "model");
|
_model = getText (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "model");
|
||||||
|
_reversed = getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "reversed");
|
||||||
|
|
||||||
if(_model != "") then {
|
if(_model != "") then {
|
||||||
_value = format["register_vehicle:%1,%2,%3",_model,_id,VECTOR_TEXT(getPosASL _vehicle)];
|
_value = format["register_vehicle:%1,%2,%3,%4",_model,_id,_reversed,VECTOR_TEXT(getPosASL _vehicle)];
|
||||||
TRACE_1("", _value);
|
TRACE_1("", _value);
|
||||||
_result = _value call FUNC(callExtension);
|
_result = _value call FUNC(callExtension);
|
||||||
_vehicle setVariable[QGVAR(id), _id, false];
|
_vehicle setVariable[QGVAR(id), _id, false];
|
||||||
|
@ -14,7 +14,8 @@ namespace ace {
|
|||||||
const std::string & as_string() const { return _args[_index]; }
|
const std::string & as_string() const { return _args[_index]; }
|
||||||
operator const std::string &() const { return as_string(); }
|
operator const std::string &() const { return as_string(); }
|
||||||
|
|
||||||
float as_float() const { float res = 0.0f; std::istringstream iss(_args[_index]); iss >> res; return res; }
|
float to_float(const std::string & val) const { float res = 0.0f; std::istringstream iss(val); iss >> res; return res; }
|
||||||
|
float as_float() const { return to_float(_args[_index]); }
|
||||||
operator float() const { return as_float(); }
|
operator float() const { return as_float(); }
|
||||||
|
|
||||||
int as_int() const { return atoi(_args[_index].c_str()); }
|
int as_int() const { return atoi(_args[_index].c_str()); }
|
||||||
@ -25,9 +26,9 @@ namespace ace {
|
|||||||
|
|
||||||
ace::vector3<float> as_vector() const {
|
ace::vector3<float> as_vector() const {
|
||||||
std::vector<std::string> t = ace::split(_args[_index], ';');
|
std::vector<std::string> t = ace::split(_args[_index], ';');
|
||||||
return ace::vector3<float>(atof(t[0].c_str()),
|
return ace::vector3<float>(to_float(t[0]),
|
||||||
atof(t[1].c_str()),
|
to_float(t[1]),
|
||||||
atof(t[2].c_str()));
|
to_float(t[2]));
|
||||||
}
|
}
|
||||||
operator ace::vector3<float>() const { return as_vector(); }
|
operator ace::vector3<float>() const { return as_vector(); }
|
||||||
|
|
||||||
@ -49,15 +50,14 @@ namespace ace {
|
|||||||
|
|
||||||
const argument_accessor operator[] (int index) const { return argument_accessor(index, _args); }
|
const argument_accessor operator[] (int index) const { return argument_accessor(index, _args); }
|
||||||
|
|
||||||
|
float to_float(const std::string & val) const { float res = 0.0f; std::istringstream iss(val); iss >> res; return res; }
|
||||||
const std::string & as_string(uint32_t _index) const { return _args[_index]; }
|
const std::string & as_string(uint32_t _index) const { return _args[_index]; }
|
||||||
float as_float(uint32_t _index) const { return atof(_args[_index].c_str()); }
|
float as_float(uint32_t _index) const { return to_float(_args[_index]); }
|
||||||
int as_int(uint32_t _index) const { return atoi(_args[_index].c_str()); }
|
int as_int(uint32_t _index) const { return atoi(_args[_index].c_str()); }
|
||||||
int as_uint32(uint32_t _index) const { return (uint32_t)atoi(_args[_index].c_str()); }
|
int as_uint32(uint32_t _index) const { return (uint32_t)atoi(_args[_index].c_str()); }
|
||||||
ace::vector3<float> as_vector(uint32_t _index) const {
|
ace::vector3<float> as_vector(uint32_t _index) const {
|
||||||
std::vector<std::string> t = ace::split(_args[_index], ';');
|
std::vector<std::string> t = ace::split(_args[_index], ';');
|
||||||
return ace::vector3<float>(atof(t[0].c_str()),
|
return ace::vector3<float>(to_float(t[0]), to_float(t[1]), to_float(t[3]));
|
||||||
atof(t[1].c_str()),
|
|
||||||
atof(t[2].c_str()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string & get() const {
|
const std::string & get() const {
|
||||||
|
@ -387,7 +387,7 @@ ace::simulation::object::object()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ace::simulation::object::object(const ace::p3d::model_p model)
|
ace::simulation::object::object(const ace::p3d::model_p model) : reversed(false)
|
||||||
{
|
{
|
||||||
for (ace::p3d::lod_p p3d_lod : model->lods) {
|
for (ace::p3d::lod_p p3d_lod : model->lods) {
|
||||||
lod_p new_lod = std::make_shared<lod>(p3d_lod, model);
|
lod_p new_lod = std::make_shared<lod>(p3d_lod, model);
|
||||||
|
@ -205,6 +205,8 @@ namespace ace {
|
|||||||
object(const ace::p3d::model_p);
|
object(const ace::p3d::model_p);
|
||||||
~object();
|
~object();
|
||||||
|
|
||||||
|
bool reversed;
|
||||||
|
|
||||||
std::vector<lod_p> lods;
|
std::vector<lod_p> lods;
|
||||||
|
|
||||||
std::vector<animation_p> animations;
|
std::vector<animation_p> animations;
|
||||||
|
@ -8,7 +8,7 @@ using namespace ace::simulation;
|
|||||||
|
|
||||||
namespace ace {
|
namespace ace {
|
||||||
namespace vehicledamage {
|
namespace vehicledamage {
|
||||||
base_vehicle::base_vehicle(uint32_t id, ace::simulation::object_p object_, ace::vector3<float> position_) : id(id), object(object_) {
|
base_vehicle::base_vehicle(uint32_t id, ace::simulation::object_p object_, bool reversed, ace::vector3<float> position_) : id(id), object(object_) {
|
||||||
bt_mesh = std::make_shared<btTriangleMesh>();
|
bt_mesh = std::make_shared<btTriangleMesh>();
|
||||||
|
|
||||||
fire_lod = -1;
|
fire_lod = -1;
|
||||||
|
@ -114,6 +114,8 @@ namespace ace {
|
|||||||
vehicle_p _vehicle = std::make_shared<vehicle>(static_cast<uint32_t>(_args[1]), _object, _args[2]);
|
vehicle_p _vehicle = std::make_shared<vehicle>(static_cast<uint32_t>(_args[1]), _object, _args[2]);
|
||||||
vehicles[static_cast<uint32_t>(_args[1])] = _vehicle;
|
vehicles[static_cast<uint32_t>(_args[1])] = _vehicle;
|
||||||
|
|
||||||
|
_vehicle->object->reversed = (static_cast<int>(_args[2]) != 0 ? true : false);
|
||||||
|
|
||||||
// For results on a valid vehicle registration, we return its animation names for that given vehicle
|
// For results on a valid vehicle registration, we return its animation names for that given vehicle
|
||||||
std::stringstream _animationNames;
|
std::stringstream _animationNames;
|
||||||
_animationNames << _vehicle->id;
|
_animationNames << _vehicle->id;
|
||||||
|
Loading…
Reference in New Issue
Block a user