Avoid some code duplication
This commit is contained in:
parent
3666d1a2ec
commit
eb28126f56
@ -50,17 +50,15 @@ namespace Scripting
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
engine->SetDefaultNamespace("Audio");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
r = engine->RegisterGlobalFunction("void playSound(const string &in)", WRAP_FN(playSound), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
r = engine->RegisterGlobalFunction("void playSound(const string &in)", asFUNCTION(playSound), asCALL_CDECL); assert(r >= 0);
|
||||
}
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void playSound(const string &in)",
|
||||
mp ? WRAP_FN(playSound) : asFUNCTION(playSound),
|
||||
call_conv); assert(r >= 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,66 +107,34 @@ namespace Scripting
|
||||
// --------------------------------------------------------------------
|
||||
/** @}*/
|
||||
/** @}*/
|
||||
|
||||
void registerScriptFunctions_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getCompletedChallengesCount()",
|
||||
WRAP_FN(getCompletedChallengesCount),
|
||||
asCALL_GENERIC);
|
||||
assert( r >= 0 );
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getChallengeCount()",
|
||||
WRAP_FN(getChallengeCount),
|
||||
asCALL_GENERIC);
|
||||
assert( r >= 0 );
|
||||
|
||||
r = engine->RegisterGlobalFunction("bool isChallengeUnlocked(string &in)",
|
||||
WRAP_FN(isChallengeUnlocked),
|
||||
asCALL_GENERIC);
|
||||
assert( r >= 0 );
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getChallengeRequiredPoints(string &in)",
|
||||
WRAP_FN(getChallengeRequiredPoints),
|
||||
asCALL_GENERIC);
|
||||
assert( r >= 0 );
|
||||
}
|
||||
|
||||
void registerScriptFunctions_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getCompletedChallengesCount()",
|
||||
asFUNCTION(getCompletedChallengesCount),
|
||||
asCALL_CDECL);
|
||||
assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getChallengeCount()",
|
||||
asFUNCTION(getChallengeCount),
|
||||
asCALL_CDECL);
|
||||
assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("bool isChallengeUnlocked(string &in)",
|
||||
asFUNCTION(isChallengeUnlocked),
|
||||
asCALL_CDECL);
|
||||
assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getChallengeRequiredPoints(string &in)",
|
||||
asFUNCTION(getChallengeRequiredPoints),
|
||||
asCALL_CDECL);
|
||||
assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
engine->SetDefaultNamespace("Challenges");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
registerScriptFunctions_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScriptFunctions_Native(engine);
|
||||
}
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getCompletedChallengesCount()",
|
||||
mp ? WRAP_FN(getCompletedChallengesCount)
|
||||
: asFUNCTION(getCompletedChallengesCount),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getChallengeCount()",
|
||||
mp ? WRAP_FN(getChallengeCount)
|
||||
: asFUNCTION(getChallengeCount),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("bool isChallengeUnlocked(string &in)",
|
||||
mp ? WRAP_FN(isChallengeUnlocked)
|
||||
: asFUNCTION(isChallengeUnlocked),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getChallengeRequiredPoints(string &in)",
|
||||
mp ? WRAP_FN(getChallengeRequiredPoints)
|
||||
: asFUNCTION(getChallengeRequiredPoints),
|
||||
call_conv); assert(r >= 0);
|
||||
} // registerScriptFunctions
|
||||
|
||||
} // namespace Challenges
|
||||
|
@ -528,6 +528,12 @@ namespace Scripting
|
||||
{
|
||||
m_time = time;
|
||||
m_callback_delegate = callback_delegate;
|
||||
|
||||
// This may be not needed in future angelscript versions
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
callback_delegate->AddRef();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -167,46 +167,49 @@ namespace Scripting
|
||||
}
|
||||
/** \endcond */
|
||||
|
||||
void registerScriptFunctions_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void displayModalMessage(const string &in)", WRAP_FN(displayModalMessage), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void displayOverlayMessage(const string &in)", WRAP_FN(displayOverlayMessage), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void clearOverlayMessages()", WRAP_FN(clearOverlayMessages), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string getKeyBinding(int input)", WRAP_FN(getKeyBinding), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in)", WRAP_FN(proxy_translate), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in)", WRAP_FN(proxy_translateAndInsertValues1), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in)", WRAP_FN(proxy_translateAndInsertValues2), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in, const string &in)", WRAP_FN(proxy_translateAndInsertValues3), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void displayModalMessage(const string &in)", asFUNCTION(displayModalMessage), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void displayOverlayMessage(const string &in)", asFUNCTION(displayOverlayMessage), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void clearOverlayMessages()", asFUNCTION(clearOverlayMessages), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string getKeyBinding(int input)", asFUNCTION(getKeyBinding), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in)", asFUNCTION(proxy_translate), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in)", asFUNCTION(proxy_translateAndInsertValues1), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in)", asFUNCTION(proxy_translateAndInsertValues2), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in, const string &in)", asFUNCTION(proxy_translateAndInsertValues3), asCALL_CDECL); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
engine->SetDefaultNamespace("GUI");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
registerScriptFunctions_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScriptFunctions_Native(engine);
|
||||
}
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void displayModalMessage(const string &in)",
|
||||
mp ? WRAP_FN(displayModalMessage) : asFUNCTION(displayModalMessage),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void displayOverlayMessage(const string &in)",
|
||||
mp ? WRAP_FN(displayOverlayMessage) : asFUNCTION(displayOverlayMessage),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void clearOverlayMessages()",
|
||||
mp ? WRAP_FN(clearOverlayMessages) : asFUNCTION(clearOverlayMessages),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string getKeyBinding(int input)",
|
||||
mp ? WRAP_FN(getKeyBinding) : asFUNCTION(getKeyBinding),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in)",
|
||||
mp ? WRAP_FN(proxy_translate) : asFUNCTION(proxy_translate),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_translateAndInsertValues1)
|
||||
: asFUNCTION(proxy_translateAndInsertValues1),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_translateAndInsertValues2)
|
||||
: asFUNCTION(proxy_translateAndInsertValues2),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string translate(const string &in, const string &in, const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_translateAndInsertValues3)
|
||||
: asFUNCTION(proxy_translateAndInsertValues3),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
}
|
||||
|
||||
void registerScriptEnums(asIScriptEngine *engine)
|
||||
|
@ -130,44 +130,41 @@ namespace Scripting
|
||||
/** @}*/
|
||||
/** @}*/
|
||||
|
||||
void registerScriptFunctions_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void squash(int id, float time)", WRAP_FN(squash), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void teleport(int id, const Vec3 &in)", WRAP_FN(teleport), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setVelocity(int id, const Vec3 &in)", WRAP_FN(setVelocity), asCALL_GENERIC); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void jumpTo(int id, float x, float y)", WRAP_FN(jumpTo), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("Vec3 getLocation(int id)", WRAP_FN(getLocation), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("Vec3 getVelocity(int id)", WRAP_FN(getVelocity), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("float getMaxSpeed(int id)", WRAP_FN(getMaxSpeed), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void squash(int id, float time)", asFUNCTION(squash), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void teleport(int id, const Vec3 &in)", asFUNCTION(teleport), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setVelocity(int id, const Vec3 &in)", asFUNCTION(setVelocity), asCALL_CDECL); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void jumpTo(int id, float x, float y)", asFUNCTION(jumpTo), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("Vec3 getLocation(int id)", asFUNCTION(getLocation), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("Vec3 getVelocity(int id)", asFUNCTION(getVelocity), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("float getMaxSpeed(int id)", asFUNCTION(getMaxSpeed), asCALL_CDECL); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
engine->SetDefaultNamespace("Kart");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
registerScriptFunctions_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScriptFunctions_Native(engine);
|
||||
}
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("void squash(int id, float time)",
|
||||
mp ? WRAP_FN(squash) : asFUNCTION(squash),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void teleport(int id, const Vec3 &in)",
|
||||
mp ? WRAP_FN(teleport) : asFUNCTION(teleport),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void setVelocity(int id, const Vec3 &in)",
|
||||
mp ? WRAP_FN(setVelocity) : asFUNCTION(setVelocity),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void jumpTo(int id, float x, float y)",
|
||||
// mp ? WRAP_FN(jumpTo) : asFUNCTION(jumpTo),
|
||||
// call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("Vec3 getLocation(int id)",
|
||||
mp ? WRAP_FN(getLocation) : asFUNCTION(getLocation),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("Vec3 getVelocity(int id)",
|
||||
mp ? WRAP_FN(getVelocity) : asFUNCTION(getVelocity),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("float getMaxSpeed(int id)",
|
||||
mp ? WRAP_FN(getMaxSpeed) : asFUNCTION(getMaxSpeed),
|
||||
call_conv); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptEnums(asIScriptEngine *engine)
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "graphics/explosion.hpp"
|
||||
#include "graphics/hit_effect.hpp"
|
||||
#include "items/projectile_manager.hpp"
|
||||
#include "scriptengine/aswrappedcall.hpp"
|
||||
|
||||
namespace Scripting
|
||||
{
|
||||
@ -40,17 +39,12 @@ namespace Scripting
|
||||
}
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
int r;
|
||||
engine->SetDefaultNamespace("Physics");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
r = engine->RegisterGlobalFunction("string createExplosion(Vec3 &in)", WRAP_FN(createExplosion), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
r = engine->RegisterGlobalFunction("string createExplosion(Vec3 &in)", asFUNCTION(createExplosion), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
int r;
|
||||
r = engine->RegisterGlobalFunction("string createExplosion(Vec3 &in)",
|
||||
asFUNCTION(createExplosion),
|
||||
asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -449,169 +449,15 @@ namespace Scripting
|
||||
/** @}*/
|
||||
/** @}*/
|
||||
|
||||
void registerScriptFunctions_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", WRAP_FN(disableTrackObject), asCALL_GENERIC); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", WRAP_FN(enableTrackObject), asCALL_GENERIC); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void enableTrigger(const string &in)", WRAP_FN(enableTrigger), asCALL_GENERIC); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void disableTrigger(const string &in)", WRAP_FN(disableTrigger), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void createTrigger(const string &in, const Vec3 &in, float distance)",
|
||||
WRAP_FN(createTrigger), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void createTextBillboard(const string &in, const Vec3 &in)",
|
||||
WRAP_FN(createTextBillboard), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTriggerReenableTimeout(const string &in, const string &in, float reenable_time)",
|
||||
WRAP_FN(setTriggerReenableTimeout), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("TrackObject@ getTrackObject(const string &in, const string &in)", WRAP_FN(getTrackObject), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void exitRace()", WRAP_FN(exitRace), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void pauseRace()", WRAP_FN(pauseRace), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setFog(float maxDensity, float start, float end, int r, int g, int b, float duration)", WRAP_FN(setFog), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getNumberOfKarts()", WRAP_FN(getNumberOfKarts), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getNumLocalPlayers()", WRAP_FN(getNumLocalPlayers), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("bool isReverse()", WRAP_FN(isTrackReverse), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getMajorRaceMode()", WRAP_FN(getMajorRaceMode), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getMinorRaceMode()", WRAP_FN(getMinorRaceMode), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("bool isDuringDay()", WRAP_FN(isDuringDay), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// TrackObject
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void setEnabled(bool status)", WRAP_MFN(::TrackObject, setEnabled), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "SoundEmitter@ getSoundEmitter()", WRAP_MFN(::TrackObject, getSoundEmitter), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Light@ getLight()", WRAP_MFN(::TrackObject, getLight), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "PhysicalObject@ getPhysics()", WRAP_MFN(::TrackObject, getPhysics), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Mesh@ getMesh()", WRAP_MFN(::TrackObject, getMesh), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "ParticleEmitter@ getParticleEmitter()", WRAP_MFN(::TrackObject, getParticleEmitter), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Animator@ getIPOAnimator()", WRAP_MFN(::TrackObject, getIPOAnimator), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void moveTo(const Vec3 &in, bool)", WRAP_MFN(::TrackObject, moveTo), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getCenterPosition()", WRAP_OBJ_LAST(TrackObject::getCenterPosition), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getOrigin()", WRAP_OBJ_LAST(TrackObject::getOrigin), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "TrackObject@ getParentLibrary()", WRAP_MFN(::TrackObject, getParentLibrary), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "string getName()", WRAP_MFN(::TrackObject, getName), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// PhysicalObject
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "bool isFlattenKartObject()", WRAP_MFN(PhysicalObject, isFlattenKartObject), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void disable()", WRAP_MFN(PhysicalObject, disable), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void enable()", WRAP_MFN(PhysicalObject, enable), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// Animated Mesh
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoop(int start, int end)", WRAP_OBJ_LAST(Mesh::setFrameLoop), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoopOnce(int start, int end)", WRAP_OBJ_LAST(Mesh::setFrameLoopOnce), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getFrameNr()", WRAP_OBJ_LAST(Mesh::getFrameNr), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getAnimationSet()", WRAP_OBJ_LAST(Mesh::getAnimationSet), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void useAnimationSet(int set_num)", WRAP_OBJ_LAST(Mesh::useAnimationSet), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void addAnimationSet(int start, int end)", WRAP_OBJ_LAST(Mesh::addAnimationSet), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void removeAllAnimationSet()", WRAP_OBJ_LAST(Mesh::removeAllAnimationSet), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setCurrentFrame(int frame)", WRAP_OBJ_LAST(Mesh::setCurrentFrame), asCALL_GENERIC); assert(r >= 0);
|
||||
//r = engine->RegisterObjectMethod("Mesh", "void move(Vec3 &in)", WRAP_OBJ_LAST(movePresentation), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// Particle Emitter
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stop()", WRAP_OBJ_LAST(ParticleEmitter::stop), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stopIn(float)", WRAP_OBJ_LAST(ParticleEmitter::stopIn), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void setEmissionRate(float)", WRAP_OBJ_LAST(ParticleEmitter::setEmissionRate), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// Sound Effect
|
||||
//r = engine->RegisterObjectMethod("SoundEmitter", "void move(Vec3 &in)", WRAP_OBJ_LAST(movePresentation), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void stop()", WRAP_OBJ_LAST(SoundEmitter::stop), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playOnce()", WRAP_OBJ_LAST(SoundEmitter::playOnce), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playLoop()", WRAP_OBJ_LAST(SoundEmitter::playLoop), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// Light
|
||||
r = engine->RegisterObjectMethod("Light", "void setEnergy(float)", WRAP_OBJ_LAST(Light::setEnergy), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Light", "void animateEnergy(float, float)", WRAP_OBJ_LAST(Light::animateEnergy), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
// Curve based Animation
|
||||
//fails due to insufficient visibility to scripts TODO : Decide whether to fix visibility or introduce wrappers
|
||||
//r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)", WRAP_MFN(ThreeDAnimation, setPaused), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)", WRAP_OBJ_LAST(Animator::setPaused), asCALL_GENERIC); assert(r >= 0);
|
||||
// TODO: add method to set current frame
|
||||
// TODO: add method to launch playback from frame X to frame Y
|
||||
// TODO: add method to register onAnimationComplete notifications ?
|
||||
}
|
||||
|
||||
void registerScriptFunctions_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)", asFUNCTION(disableTrackObject), asCALL_CDECL); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)", asFUNCTION(enableTrackObject), asCALL_CDECL); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void enableTrigger(const string &in)", asFUNCTION(enableTrigger), asCALL_CDECL); assert(r >= 0);
|
||||
//r = engine->RegisterGlobalFunction("void disableTrigger(const string &in)", asFUNCTION(disableTrigger), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void createTrigger(const string &in, const Vec3 &in, float distance)",
|
||||
asFUNCTION(createTrigger), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void createTextBillboard(const string &in, const Vec3 &in)",
|
||||
asFUNCTION(createTextBillboard), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTriggerReenableTimeout(const string &in, const string &in, float reenable_time)",
|
||||
asFUNCTION(setTriggerReenableTimeout), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("TrackObject@ getTrackObject(const string &in, const string &in)", asFUNCTION(getTrackObject), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void exitRace()", asFUNCTION(exitRace), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void pauseRace()", asFUNCTION(pauseRace), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setFog(float maxDensity, float start, float end, int r, int g, int b, float duration)", asFUNCTION(setFog), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getNumberOfKarts()", asFUNCTION(getNumberOfKarts), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getNumLocalPlayers()", asFUNCTION(getNumLocalPlayers), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("bool isReverse()", asFUNCTION(isTrackReverse), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getMajorRaceMode()", asFUNCTION(getMajorRaceMode), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("int getMinorRaceMode()", asFUNCTION(getMinorRaceMode), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("bool isDuringDay()", asFUNCTION(isDuringDay), asCALL_CDECL); assert(r >= 0);
|
||||
|
||||
// TrackObject
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void setEnabled(bool status)", asMETHOD(::TrackObject, setEnabled), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "SoundEmitter@ getSoundEmitter()", asMETHOD(::TrackObject, getSoundEmitter), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Light@ getLight()", asMETHOD(::TrackObject, getLight), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "PhysicalObject@ getPhysics()", asMETHOD(::TrackObject, getPhysics), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Mesh@ getMesh()", asMETHOD(::TrackObject, getMesh), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "ParticleEmitter@ getParticleEmitter()", asMETHOD(::TrackObject, getParticleEmitter), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Animator@ getIPOAnimator()", asMETHOD(::TrackObject, getIPOAnimator), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void moveTo(const Vec3 &in, bool)", asMETHOD(::TrackObject, moveTo), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getCenterPosition()", asFUNCTION(TrackObject::getCenterPosition), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getOrigin()", asFUNCTION(TrackObject::getOrigin), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "TrackObject@ getParentLibrary()", asMETHOD(::TrackObject, getParentLibrary), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("TrackObject", "string getName()", asMETHOD(::TrackObject, getName), asCALL_THISCALL); assert(r >= 0);
|
||||
|
||||
// PhysicalObject
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "bool isFlattenKartObject()", asMETHOD(PhysicalObject, isFlattenKartObject), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void disable()", asMETHOD(PhysicalObject, disable), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void enable()", asMETHOD(PhysicalObject, enable), asCALL_THISCALL); assert(r >= 0);
|
||||
|
||||
// Animated Mesh
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoop(int start, int end)", asFUNCTION(Mesh::setFrameLoop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoopOnce(int start, int end)", asFUNCTION(Mesh::setFrameLoopOnce), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getFrameNr()", asFUNCTION(Mesh::getFrameNr), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getAnimationSet()", asFUNCTION(Mesh::getAnimationSet), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void useAnimationSet(int set_num)", asFUNCTION(Mesh::useAnimationSet), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void addAnimationSet(int start, int end)", asFUNCTION(Mesh::addAnimationSet), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void removeAllAnimationSet()", asFUNCTION(Mesh::removeAllAnimationSet), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setCurrentFrame(int frame)", asFUNCTION(Mesh::setCurrentFrame), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
//r = engine->RegisterObjectMethod("Mesh", "void move(Vec3 &in)", asFUNCTION(movePresentation), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
|
||||
// Particle Emitter
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stop()", asFUNCTION(ParticleEmitter::stop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stopIn(float)", asFUNCTION(ParticleEmitter::stopIn), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void setEmissionRate(float)", asFUNCTION(ParticleEmitter::setEmissionRate), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
|
||||
// Sound Effect
|
||||
//r = engine->RegisterObjectMethod("SoundEmitter", "void move(Vec3 &in)", asFUNCTION(movePresentation), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void stop()", asFUNCTION(SoundEmitter::stop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playOnce()", asFUNCTION(SoundEmitter::playOnce), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playLoop()", asFUNCTION(SoundEmitter::playLoop), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
|
||||
// Light
|
||||
r = engine->RegisterObjectMethod("Light", "void setEnergy(float)", asFUNCTION(Light::setEnergy), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Light", "void animateEnergy(float, float)", asFUNCTION(Light::animateEnergy), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
|
||||
// Curve based Animation
|
||||
//fails due to insufficient visibility to scripts TODO : Decide whether to fix visibility or introduce wrappers
|
||||
//r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)", asMETHOD(ThreeDAnimation, setPaused), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)", asFUNCTION(Animator::setPaused), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
// TODO: add method to set current frame
|
||||
// TODO: add method to launch playback from frame X to frame Y
|
||||
// TODO: add method to register onAnimationComplete notifications ?
|
||||
}
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
engine->SetDefaultNamespace("Track");
|
||||
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
asDWORD call_conv_objlast = mp ? asCALL_GENERIC : asCALL_CDECL_OBJLAST;
|
||||
asDWORD call_conv_thiscall = mp ? asCALL_GENERIC : asCALL_THISCALL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterObjectType("TrackObject", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||
r = engine->RegisterObjectType("PhysicalObject", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||
@ -620,15 +466,226 @@ namespace Scripting
|
||||
r = engine->RegisterObjectType("SoundEmitter", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||
r = engine->RegisterObjectType("Animator", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||
r = engine->RegisterObjectType("Light", 0, asOBJ_REF | asOBJ_NOCOUNT); assert(r >= 0);
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void disableTrackObject(const string &in)",
|
||||
// mp ? WRAP_FN(disableTrackObject) : asFUNCTION(disableTrackObject),
|
||||
// call_conv); assert(r >= 0);
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
registerScriptFunctions_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScriptFunctions_Native(engine);
|
||||
}
|
||||
//r = engine->RegisterGlobalFunction("void enableTrackObject(const string &in)",
|
||||
// mp ? WRAP_FN(enableTrackObject) : asFUNCTION(enableTrackObject),
|
||||
// call_conv); assert(r >= 0);
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void enableTrigger(const string &in)",
|
||||
// mp ? WRAP_FN(enableTrigger) : asFUNCTION(enableTrigger),
|
||||
// call_conv); assert(r >= 0);
|
||||
|
||||
//r = engine->RegisterGlobalFunction("void disableTrigger(const string &in)",
|
||||
// mp ? WRAP_FN(disableTrigger) : asFUNCTION(disableTrigger),
|
||||
// call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void createTrigger(const string &in, const Vec3 &in, float distance)",
|
||||
mp ? WRAP_FN(createTrigger) : asFUNCTION(createTrigger),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void createTextBillboard(const string &in, const Vec3 &in)",
|
||||
mp ? WRAP_FN(createTextBillboard) : asFUNCTION(createTextBillboard),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void setTriggerReenableTimeout(const string &in, const string &in, float reenable_time)",
|
||||
mp ? WRAP_FN(setTriggerReenableTimeout) : asFUNCTION(setTriggerReenableTimeout),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("TrackObject@ getTrackObject(const string &in, const string &in)",
|
||||
mp ? WRAP_FN(getTrackObject) : asFUNCTION(getTrackObject),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void exitRace()",
|
||||
mp ? WRAP_FN(exitRace) : asFUNCTION(exitRace),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void pauseRace()",
|
||||
mp ? WRAP_FN(pauseRace) : asFUNCTION(pauseRace),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void setFog(float maxDensity, float start, float end, int r, int g, int b, float duration)",
|
||||
mp ? WRAP_FN(setFog) : asFUNCTION(setFog),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getNumberOfKarts()",
|
||||
mp ? WRAP_FN(getNumberOfKarts) : asFUNCTION(getNumberOfKarts),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getNumLocalPlayers()",
|
||||
mp ? WRAP_FN(getNumLocalPlayers) : asFUNCTION(getNumLocalPlayers),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("bool isReverse()",
|
||||
mp ? WRAP_FN(isTrackReverse) : asFUNCTION(isTrackReverse),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getMajorRaceMode()",
|
||||
mp ? WRAP_FN(getMajorRaceMode) : asFUNCTION(getMajorRaceMode),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int getMinorRaceMode()",
|
||||
mp ? WRAP_FN(getMinorRaceMode) : asFUNCTION(getMinorRaceMode),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("bool isDuringDay()",
|
||||
mp ? WRAP_FN(isDuringDay) : asFUNCTION(isDuringDay),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
// TrackObject
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void setEnabled(bool status)",
|
||||
mp ? WRAP_MFN(::TrackObject, setEnabled) : asMETHOD(::TrackObject, setEnabled),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "SoundEmitter@ getSoundEmitter()",
|
||||
mp ? WRAP_MFN(::TrackObject, getSoundEmitter) : asMETHOD(::TrackObject, getSoundEmitter),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Light@ getLight()",
|
||||
mp ? WRAP_MFN(::TrackObject, getLight) : asMETHOD(::TrackObject, getLight),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "PhysicalObject@ getPhysics()",
|
||||
mp ? WRAP_MFN(::TrackObject, getPhysics): asMETHOD(::TrackObject, getPhysics),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Mesh@ getMesh()",
|
||||
mp ? WRAP_MFN(::TrackObject, getMesh) : asMETHOD(::TrackObject, getMesh),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "ParticleEmitter@ getParticleEmitter()",
|
||||
mp ? WRAP_MFN(::TrackObject, getParticleEmitter) : asMETHOD(::TrackObject, getParticleEmitter),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Animator@ getIPOAnimator()",
|
||||
mp ? WRAP_MFN(::TrackObject, getIPOAnimator): asMETHOD(::TrackObject, getIPOAnimator),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "void moveTo(const Vec3 &in, bool)",
|
||||
mp ? WRAP_MFN(::TrackObject, moveTo) : asMETHOD(::TrackObject, moveTo),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getCenterPosition()",
|
||||
mp ? WRAP_OBJ_LAST(TrackObject::getCenterPosition): asFUNCTION(TrackObject::getCenterPosition),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "Vec3 getOrigin()",
|
||||
mp ? WRAP_OBJ_LAST(TrackObject::getOrigin) : asFUNCTION(TrackObject::getOrigin),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "TrackObject@ getParentLibrary()",
|
||||
mp ? WRAP_MFN(::TrackObject, getParentLibrary): asMETHOD(::TrackObject, getParentLibrary),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("TrackObject", "string getName()",
|
||||
mp ? WRAP_MFN(::TrackObject, getName) : asMETHOD(::TrackObject, getName),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
// PhysicalObject
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "bool isFlattenKartObject()",
|
||||
mp ? WRAP_MFN(PhysicalObject, isFlattenKartObject) : asMETHOD(PhysicalObject,
|
||||
isFlattenKartObject), call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void disable()",
|
||||
mp ? WRAP_MFN(PhysicalObject, disable) : asMETHOD(PhysicalObject, disable),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("PhysicalObject", "void enable()",
|
||||
mp ? WRAP_MFN(PhysicalObject, enable) : asMETHOD(PhysicalObject, enable),
|
||||
call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
// Animated Mesh
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoop(int start, int end)",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::setFrameLoop) : asFUNCTION(Mesh::setFrameLoop),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setFrameLoopOnce(int start, int end)",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::setFrameLoopOnce) : asFUNCTION(Mesh::setFrameLoopOnce),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getFrameNr()",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::getFrameNr) : asFUNCTION(Mesh::getFrameNr),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "int getAnimationSet()",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::getAnimationSet) : asFUNCTION(Mesh::getAnimationSet),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "void useAnimationSet(int set_num)",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::useAnimationSet) : asFUNCTION(Mesh::useAnimationSet),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "void addAnimationSet(int start, int end)",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::addAnimationSet) : asFUNCTION(Mesh::addAnimationSet),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "void removeAllAnimationSet()",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::removeAllAnimationSet) : asFUNCTION(Mesh::removeAllAnimationSet),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Mesh", "void setCurrentFrame(int frame)",
|
||||
mp ? WRAP_OBJ_LAST(Mesh::setCurrentFrame) : asFUNCTION(Mesh::setCurrentFrame),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
//r = engine->RegisterObjectMethod("Mesh", "void move(Vec3 &in)",
|
||||
// mp ? WRAP_OBJ_LAST(movePresentation) : asFUNCTION(movePresentation),
|
||||
// call_conv_objlast); assert(r >= 0);
|
||||
|
||||
// Particle Emitter
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stop()",
|
||||
mp ? WRAP_OBJ_LAST(ParticleEmitter::stop) : asFUNCTION(ParticleEmitter::stop),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void stopIn(float)",
|
||||
mp ? WRAP_OBJ_LAST(ParticleEmitter::stopIn) : asFUNCTION(ParticleEmitter::stopIn),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("ParticleEmitter", "void setEmissionRate(float)",
|
||||
mp ? WRAP_OBJ_LAST(ParticleEmitter::setEmissionRate) : asFUNCTION(ParticleEmitter::setEmissionRate),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
// Sound Effect
|
||||
//r = engine->RegisterObjectMethod("SoundEmitter", "void move(Vec3 &in)",
|
||||
// mp ? WRAP_OBJ_LAST(movePresentation) : asFUNCTION(movePresentation),
|
||||
// call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void stop()",
|
||||
mp ? WRAP_OBJ_LAST(SoundEmitter::stop) : asFUNCTION(SoundEmitter::stop),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playOnce()",
|
||||
mp ? WRAP_OBJ_LAST(SoundEmitter::playOnce) : asFUNCTION(SoundEmitter::playOnce),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("SoundEmitter", "void playLoop()",
|
||||
mp ? WRAP_OBJ_LAST(SoundEmitter::playLoop) : asFUNCTION(SoundEmitter::playLoop),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
// Light
|
||||
r = engine->RegisterObjectMethod("Light", "void setEnergy(float)",
|
||||
mp ? WRAP_OBJ_LAST(Light::setEnergy) : asFUNCTION(Light::setEnergy),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Light", "void animateEnergy(float, float)",
|
||||
mp ? WRAP_OBJ_LAST(Light::animateEnergy) : asFUNCTION(Light::animateEnergy),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
// Curve based Animation
|
||||
//fails due to insufficient visibility to scripts TODO : Decide whether to fix visibility or introduce wrappers
|
||||
//r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)",
|
||||
// mp ? WRAP_MFN(ThreeDAnimation, setPaused) : asMETHOD(ThreeDAnimation, setPaused),
|
||||
// call_conv_thiscall); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Animator", "void setPaused(bool mode)",
|
||||
mp ? WRAP_OBJ_LAST(Animator::setPaused) : asFUNCTION(Animator::setPaused),
|
||||
call_conv_objlast); assert(r >= 0);
|
||||
|
||||
// TODO: add method to set current frame
|
||||
// TODO: add method to launch playback from frame X to frame Y
|
||||
// TODO: add method to register onAnimationComplete notifications ?
|
||||
}
|
||||
|
||||
/** \cond DOXYGEN_IGNORE */
|
||||
|
@ -136,15 +136,6 @@ namespace Scripting
|
||||
{
|
||||
ScriptEngine::getInstance()->addPendingTimeout(delay, obj);
|
||||
}
|
||||
|
||||
void setTimeoutDelegate_Generic(asIScriptGeneric *gen)
|
||||
{
|
||||
asIScriptFunction *obj = (asIScriptFunction*)gen->GetArgAddress(0);
|
||||
float delay = gen->GetArgFloat(1);
|
||||
obj->AddRef();
|
||||
ScriptEngine::getInstance()->addPendingTimeout(delay, obj);
|
||||
}
|
||||
|
||||
|
||||
/** Log to the console */
|
||||
void logInfo(std::string* log)
|
||||
@ -189,66 +180,65 @@ namespace Scripting
|
||||
return insertValues(formatString, arg1, arg2, arg3, arg4);
|
||||
}
|
||||
/** \endcond */
|
||||
|
||||
void registerScriptFunctions_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in)", WRAP_FN(proxy_insertValues1), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in)", WRAP_FN(proxy_insertValues2), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in)", WRAP_FN(proxy_insertValues3), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in, const string &in)", WRAP_FN(proxy_insertValues4), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void runScript(string &in)", WRAP_FN(runScript), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int randomInt(int, int)", WRAP_FN(randomInt), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("float randomFloat(int, int)", WRAP_FN(randomFloat), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTimeout(const string &in, float)", WRAP_FN(setTimeout), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterFuncdef("void TimeoutCallback()"); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTimeoutDelegate(TimeoutCallback@, float)", asFUNCTION(setTimeoutDelegate_Generic), asCALL_GENERIC); assert(r >= 0);
|
||||
//~ r = engine->RegisterGlobalFunction("void setTimeoutDelegate(TimeoutCallback@, float)", WRAP_FN(setTimeoutDelegate), asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void logInfo(const string &in)", WRAP_FN(logInfo), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void logWarning(const string &in)", WRAP_FN(logWarning), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void logError(const string &in)", WRAP_FN(logError), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in)", asFUNCTION(proxy_insertValues1), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in)", asFUNCTION(proxy_insertValues2), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in)", asFUNCTION(proxy_insertValues3), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in, const string &in)", asFUNCTION(proxy_insertValues4), asCALL_CDECL); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void runScript(string &in)", asFUNCTION(runScript), asCALL_CDECL); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int randomInt(int, int)", asFUNCTION(randomInt), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("float randomFloat(int, int)", asFUNCTION(randomFloat), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTimeout(const string &in, float)", asFUNCTION(setTimeout), asCALL_CDECL); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterFuncdef("void TimeoutCallback()"); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void setTimeoutDelegate(TimeoutCallback@, float)", asFUNCTION(setTimeoutDelegate), asCALL_CDECL); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void logInfo(const string &in)", asFUNCTION(logInfo), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void logWarning(const string &in)", asFUNCTION(logWarning), asCALL_CDECL); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void logError(const string &in)", asFUNCTION(logError), asCALL_CDECL); assert(r >= 0);
|
||||
}
|
||||
|
||||
void registerScriptFunctions(asIScriptEngine *engine)
|
||||
{
|
||||
engine->SetDefaultNamespace("Utils");
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
registerScriptFunctions_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
registerScriptFunctions_Native(engine);
|
||||
}
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_insertValues1) : asFUNCTION(proxy_insertValues1),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_insertValues2) : asFUNCTION(proxy_insertValues2),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_insertValues3) : asFUNCTION(proxy_insertValues3),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("string insertValues(const string &in, const string &in, const string &in, const string &in, const string &in)",
|
||||
mp ? WRAP_FN(proxy_insertValues4) : asFUNCTION(proxy_insertValues4),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void runScript(string &in)",
|
||||
mp ? WRAP_FN(runScript) : asFUNCTION(runScript),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("int randomInt(int, int)",
|
||||
mp ? WRAP_FN(randomInt) : asFUNCTION(randomInt),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("float randomFloat(int, int)",
|
||||
mp ? WRAP_FN(randomFloat) : asFUNCTION(randomFloat),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void setTimeout(const string &in, float)",
|
||||
mp ? WRAP_FN(setTimeout) : asFUNCTION(setTimeout),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterFuncdef("void TimeoutCallback()"); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void setTimeoutDelegate(TimeoutCallback@, float)",
|
||||
mp ? WRAP_FN(setTimeoutDelegate) : asFUNCTION(setTimeoutDelegate),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void logInfo(const string &in)",
|
||||
mp ? WRAP_FN(logInfo) : asFUNCTION(logInfo),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void logWarning(const string &in)",
|
||||
mp ? WRAP_FN(logWarning) : asFUNCTION(logWarning),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void logError(const string &in)",
|
||||
mp ? WRAP_FN(logError) : asFUNCTION(logError),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -60,48 +60,50 @@ namespace Scripting
|
||||
float getZ(SimpleVec3* v) { return v->getZ(); }
|
||||
float getLength(SimpleVec3* v) { return v->getLength(); }
|
||||
|
||||
void RegisterVec3_Generic(asIScriptEngine *engine)
|
||||
{
|
||||
int r;
|
||||
// Register the behaviours
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f()", WRAP_OBJ_LAST(Constructor), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_DESTRUCT, "void f()", WRAP_OBJ_LAST(Destructor), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "Vec3 &opAssign(const Vec3 &in)", WRAP_MFN_PR(SimpleVec3, operator =, (const SimpleVec3&), SimpleVec3&), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f(float, float, float)", WRAP_OBJ_LAST(ConstructVector3FromFloats), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void printVec3(Vec3 a)", WRAP_FN(printVec3), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getX()", WRAP_OBJ_LAST(getX), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getY()", WRAP_OBJ_LAST(getY), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getZ()", WRAP_OBJ_LAST(getZ), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getLength()", WRAP_OBJ_LAST(getLength), asCALL_GENERIC); assert(r >= 0);
|
||||
}
|
||||
|
||||
void RegisterVec3_Native(asIScriptEngine *engine)
|
||||
{
|
||||
int r;
|
||||
// Register the behaviours
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f()", asFUNCTION(Constructor), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_DESTRUCT, "void f()", asFUNCTION(Destructor), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "Vec3 &opAssign(const Vec3 &in)", asMETHODPR(SimpleVec3, operator =, (const SimpleVec3&), SimpleVec3&), asCALL_THISCALL); assert(r >= 0);
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f(float, float, float)", asFUNCTION(ConstructVector3FromFloats), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterGlobalFunction("void printVec3(Vec3 a)", asFUNCTION(printVec3), asCALL_GENERIC); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getX()", asFUNCTION(getX), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getY()", asFUNCTION(getY), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getZ()", asFUNCTION(getZ), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getLength()", asFUNCTION(getLength), asCALL_CDECL_OBJLAST); assert(r >= 0);
|
||||
}
|
||||
|
||||
void RegisterVec3(asIScriptEngine *engine)
|
||||
{
|
||||
int r;
|
||||
bool mp = strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY");
|
||||
asDWORD call_conv = mp ? asCALL_GENERIC : asCALL_CDECL_OBJLAST;
|
||||
int r; // of type asERetCodes
|
||||
|
||||
r = engine->RegisterObjectType("Vec3", sizeof(SimpleVec3), asOBJ_VALUE | asOBJ_APP_CLASS_ALLFLOATS | asOBJ_APP_CLASS_CDA); assert(r >= 0);
|
||||
|
||||
if (strstr(asGetLibraryOptions(), "AS_MAX_PORTABILITY"))
|
||||
{
|
||||
RegisterVec3_Generic(engine);
|
||||
}
|
||||
else
|
||||
{
|
||||
RegisterVec3_Native(engine);
|
||||
}
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f()",
|
||||
mp ? WRAP_OBJ_LAST(Constructor) : asFUNCTION(Constructor),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_DESTRUCT, "void f()",
|
||||
mp ? WRAP_OBJ_LAST(Destructor) : asFUNCTION(Destructor),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Vec3", "Vec3 &opAssign(const Vec3 &in)",
|
||||
mp ? WRAP_MFN_PR(SimpleVec3, operator =, (const SimpleVec3&), SimpleVec3&)
|
||||
: asMETHODPR(SimpleVec3, operator =, (const SimpleVec3&), SimpleVec3&),
|
||||
mp ? asCALL_GENERIC : asCALL_THISCALL); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectBehaviour("Vec3", asBEHAVE_CONSTRUCT, "void f(float, float, float)",
|
||||
mp ? WRAP_OBJ_LAST(ConstructVector3FromFloats)
|
||||
: asFUNCTION(ConstructVector3FromFloats),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterGlobalFunction("void printVec3(Vec3 a)",
|
||||
asFUNCTION(printVec3),
|
||||
asCALL_GENERIC); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getX()",
|
||||
mp ? WRAP_OBJ_LAST(getX) : asFUNCTION(getX),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getY()",
|
||||
mp ? WRAP_OBJ_LAST(getY) : asFUNCTION(getY),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getZ()",
|
||||
mp ? WRAP_OBJ_LAST(getZ) : asFUNCTION(getZ),
|
||||
call_conv); assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Vec3", "float getLength()",
|
||||
mp ? WRAP_OBJ_LAST(getLength) : asFUNCTION(getLength),
|
||||
call_conv); assert(r >= 0);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user