mirror of
https://github.com/rwengine/openrw.git
synced 2024-11-07 11:22:45 +01:00
add getModel to ScriptArguments to lookup script models
This commit is contained in:
parent
f2eaa05759
commit
4ff4515ad7
@ -108,6 +108,8 @@ public:
|
|||||||
return parameters->at(arg);
|
return parameters->at(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getModel(unsigned int arg) const;
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
GameObject* getObject(unsigned int arg) const;
|
GameObject* getObject(unsigned int arg) const;
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#include <engine/GameWorld.hpp>
|
#include <engine/GameWorld.hpp>
|
||||||
#include <objects/CharacterObject.hpp>
|
#include <objects/CharacterObject.hpp>
|
||||||
#include <ai/PlayerController.hpp>
|
#include <ai/PlayerController.hpp>
|
||||||
|
#include <script/SCMFile.hpp>
|
||||||
|
#include <engine/GameData.hpp>
|
||||||
|
|
||||||
GameState* ScriptArguments::getState() const
|
GameState* ScriptArguments::getState() const
|
||||||
{
|
{
|
||||||
@ -15,6 +17,25 @@ GameWorld* ScriptArguments::getWorld() const
|
|||||||
return getVM()->getState()->world;
|
return getVM()->getState()->world;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ScriptArguments::getModel(unsigned int arg) const
|
||||||
|
{
|
||||||
|
RW_CHECK(arg < getParameters().size(), "arg out of range");
|
||||||
|
if (arg >= getParameters().size()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int id = getParameters()[arg].integerValue();
|
||||||
|
|
||||||
|
/// @todo verify this behaviour
|
||||||
|
if (id < 0) {
|
||||||
|
id = -id;
|
||||||
|
const auto& model = getVM()->getFile()->getModels()[id];
|
||||||
|
id = getWorld()->data->findModelObject(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
GameObject* ScriptArguments::getPlayerCharacter(unsigned int player) const
|
GameObject* ScriptArguments::getPlayerCharacter(unsigned int player) const
|
||||||
{
|
{
|
||||||
auto playerId = parameters->at(player).integerValue();
|
auto playerId = parameters->at(player).integerValue();
|
||||||
|
Loading…
Reference in New Issue
Block a user