22#include "../../autowrapper/aswrappedcall.h"
29#include <angelscript.h>
32using namespace AngelScript;
41 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(0)),
42 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(1)),
43 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(2)),
44 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(3)),
46 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(5)),
47 *
static_cast<Ogre::Vector3*
>(gen->GetArgObject(6)),
49 gen->GetArgByte(8) != 0);
59 ProceduralPoint::RegisterRefCountingObjectGeneric(engine,
"ProceduralPointClass");
80 ProceduralRoad::RegisterRefCountingObjectGeneric(engine,
"ProceduralRoadClass");
83 result = engine->RegisterObjectMethod(
"ProceduralRoadClass",
"void addBlock(vector3 pos, quaternion rot, RoadType type, float width, float border_width, float border_height, int pillar_type = 1)",
WRAP_MFN(
RoR::ProceduralRoad, addBlock), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
84 result = engine->RegisterObjectMethod(
"ProceduralRoadClass",
"void addQuad(vector3 p1, vector3 p2, vector3 p3, vector3 p4, TextureFit texfit, vector3 pos, vector3 lastpos, float width, bool flip = false)", asFUNCTION(
ProceduralRoad_addQuad_Generic), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
85 result = engine->RegisterObjectMethod(
"ProceduralRoadClass",
"void addCollisionQuad(vector3 p1, vector3 p2, vector3 p3, vector3 p4, const string&in gm_name, bool flip = false)",
WRAP_MFN_PR(
RoR::ProceduralRoad, addCollisionQuad, (Ogre::Vector3, Ogre::Vector3, Ogre::Vector3, Ogre::Vector3, std::string
const&,
bool),
void), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
87 result = engine->RegisterObjectMethod(
"ProceduralRoadClass",
"void setCollisionEnabled(bool v)",
WRAP_MFN(
RoR::ProceduralRoad, setCollisionEnabled), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
90 ProceduralObject::RegisterRefCountingObjectGeneric(engine,
"ProceduralObjectClass");
96 result = engine->RegisterObjectMethod(
"ProceduralObjectClass",
"void insertPoint(int pos, ProceduralPointClassPtr @)",
WRAP_MFN(
RoR::ProceduralObject, insertPoint), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
98 result = engine->RegisterObjectMethod(
"ProceduralObjectClass",
"ProceduralPointClassPtr @getPoint(int pos)",
WRAP_MFN(
RoR::ProceduralObject, getPoint), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
100 result = engine->RegisterObjectMethod(
"ProceduralObjectClass",
"ProceduralRoadClassPtr @getRoad()",
WRAP_MFN(
ProceduralObject, getRoad), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
111 ProceduralManager::RegisterRefCountingObjectGeneric(engine,
"ProceduralManagerClass");
113 result = engine->RegisterObjectMethod(
"ProceduralManagerClass",
"void addObject(ProceduralObjectClassPtr@)",
WRAP_MFN(
ProceduralManager, addObject), asCALL_GENERIC);
ROR_ASSERT(result>=0);
114 result = engine->RegisterObjectMethod(
"ProceduralManagerClass",
"void removeObject(ProceduralObjectClassPtr@)",
WRAP_MFN(
ProceduralManager, removeObject), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
116 result = engine->RegisterObjectMethod(
"ProceduralManagerClass",
"ProceduralObjectClassPtr @getObject(int pos)",
WRAP_MFN(
ProceduralManager, getObject), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
117 result = engine->RegisterObjectMethod(
"ProceduralManagerClass",
"void rebuildObjectMesh(ProceduralObjectClassPtr@)",
WRAP_MFN(
ProceduralManager, rebuildObjectMesh), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
118 result = engine->RegisterObjectMethod(
"ProceduralManagerClass",
"void deleteObjectMesh(ProceduralObjectClassPtr@)",
WRAP_MFN(
ProceduralManager, deleteObjectMesh), asCALL_GENERIC);
ROR_ASSERT(result >= 0);
#define ROR_ASSERT(_EXPR)
static void ProceduralRoad_addQuad_Generic(asIScriptGeneric *gen)
Helper/wrapper functions shared by native (ProceduralRoadAngelscript.cpp) and generic (ProceduralRoad...
#define WRAP_MFN(ClassType, name)
#define WRAP_OBJ_FIRST(name)
#define WRAP_MFN_PR(ClassType, name, Parameters, ReturnType)
static void RegisterRefCountingObjectPtrGeneric(AS_NAMESPACE_QUALIFIER asIScriptEngine *engine, const char *handle_name, const char *obj_name)
Same as RegisterRefCountingObjectPtr() but uses the generic calling convention (for platforms with AS...
void addQuad(Ogre::Vector3 p1, Ogre::Vector3 p2, Ogre::Vector3 p3, Ogre::Vector3 p4, TextureFit texfit, Ogre::Vector3 pos, Ogre::Vector3 lastpos, float width, bool flip=false)
void RegisterProceduralRoadGeneric(AngelScript::asIScriptEngine *engine)
static Ogre::Vector3 & ProceduralPoint_get_position(ProceduralPoint *self)
static void ProceduralPoint_set_position(ProceduralPoint *self, const Ogre::Vector3 &pos)
static void ProceduralPoint_set_width(ProceduralPoint *self, float width)
static void ProceduralPoint_set_type(ProceduralPoint *self, RoadType type)
static void ProceduralPoint_set_rotation(ProceduralPoint *self, const Ogre::Quaternion &rot)
static void ProceduralRoad_finish(ProceduralRoad *self)
The script API has no scene node parameter - the road mesh is attached under the grouping scene node ...
static void ProceduralPoint_set_border_height(ProceduralPoint *self, float bheight)
static float ProceduralPoint_get_width(ProceduralPoint *self)
static int ProceduralPoint_get_pillar_type(ProceduralPoint *self)
static void ProceduralObject_set_custom_groundmodel(ProceduralObject *self, const std::string &n)
static std::string ProceduralObject_get_custom_material(ProceduralObject *self)
static bool ProceduralObject_get_collision_enabled(ProceduralObject *self)
static void ProceduralObject_set_custom_material(ProceduralObject *self, const std::string &n)
static void ProceduralPoint_set_pillar_type(ProceduralPoint *self, int type)
static void ProceduralObject_set_smoothing_num_splits(ProceduralObject *self, int n)
static ProceduralRoad * ProceduralRoadFactory(const std::string &groundmodelName="")
static std::string ProceduralObject_get_custom_groundmodel(ProceduralObject *self)
static void ProceduralPoint_set_border_width(ProceduralPoint *self, float bwidth)
static Ogre::Quaternion & ProceduralPoint_get_rotation(ProceduralPoint *self)
static RoadType ProceduralPoint_get_type(ProceduralPoint *self)
static float ProceduralPoint_get_border_height(ProceduralPoint *self)
static void ProceduralObject_set_collision_enabled(ProceduralObject *self, bool n)
static float ProceduralPoint_get_border_width(ProceduralPoint *self)
static int ProceduralObject_get_smoothing_num_splits(ProceduralObject *self)
static ProceduralObject * ProceduralObjectFactory()
static ProceduralPoint * ProceduralPointFactory()