Skip to content

Commit

Permalink
xrGame/action_base_script.cpp: return "weight" script property (#382)
Browse files Browse the repository at this point in the history
  • Loading branch information
Xottab-DUTY committed Feb 9, 2024
1 parent 289f78b commit a66a0de
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 28 deletions.
3 changes: 1 addition & 2 deletions src/xrGame/action_base_script.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ IC static void CScriptActionBase_Export(lua_State* luaState)
.def("initialize", &CScriptActionBase::initialize, &CScriptActionWrapper::initialize_static)
.def("execute", &CScriptActionBase::execute, &CScriptActionWrapper::execute_static)
.def("finalize", &CScriptActionBase::finalize, &CScriptActionWrapper::finalize_static)
// .def("weight", &CScriptActionBase::weight,
//&CScriptActionWrapper::weight_static)
.def("weight", &CScriptActionBase::weight, &CScriptActionWrapper::weight_static)
.def("set_weight", &CScriptActionBase::set_weight)
#ifdef LOG_ACTION
.def("show", &CScriptActionBase::show)
Expand Down
36 changes: 16 additions & 20 deletions src/xrGame/script_action_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,19 @@ void CScriptActionWrapper::execute() { luabind::call_member<void>(this, "execute
void CScriptActionWrapper::execute_static(CScriptActionBase* action) { action->CScriptActionBase::execute(); }
void CScriptActionWrapper::finalize() { luabind::call_member<void>(this, "finalize"); }
void CScriptActionWrapper::finalize_static(CScriptActionBase* action) { action->CScriptActionBase::finalize(); }
// CScriptActionWrapper::_edge_value_type CScriptActionWrapper::weight (const CSConditionState &condition0, const
// CSConditionState &condition1) const
//{
// _edge_value_type _weight =
// luabind::call_member<_edge_value_type>(const_cast<CScriptActionWrapper*>(this),"weight",condition0,condition1);
// if (_weight < min_weight()) {
// GEnv.ScriptEngine->script_log (LuaMessageType::Error,"Weight is less than effect count! It is corrected from
//%d
// to %d",_weight,min_weight());
// _weight = min_weight();
// }
// return (_weight);
//}
//
// CScriptActionWrapper::_edge_value_type CScriptActionWrapper::weight_static (CScriptActionBase *action, const
// CSConditionState &condition0, const CSConditionState &condition1)
//{
// return (((const
// CScriptActionWrapper*)action)->CScriptActionBase::weight(condition0,condition1));
//}

CScriptActionWrapper::edge_value_type CScriptActionWrapper::weight(const CSConditionState& condition0, const CSConditionState& condition1) const
{
auto _weight = luabind::call_member<edge_value_type>(const_cast<CScriptActionWrapper*>(this), "weight", condition0, condition1);
if (_weight < min_weight())
{
GEnv.ScriptEngine->script_log(LuaMessageType::Error, "Weight is less than effect count! It is corrected from %d to %d", _weight, min_weight());
_weight = min_weight();
}
return _weight;
}

CScriptActionWrapper::edge_value_type CScriptActionWrapper::weight_static(CScriptActionBase* action, const CSConditionState& condition0, const CSConditionState& condition1)
{
return ((const CScriptActionWrapper*)action)->CScriptActionBase::weight(condition0, condition1);
}
8 changes: 2 additions & 6 deletions src/xrGame/script_action_wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,8 @@ class CScriptActionWrapper : public CScriptActionBase, public luabind::wrap_base
static void execute_static(CScriptActionBase* action);
virtual void finalize();
static void finalize_static(CScriptActionBase* action);
// virtual _edge_value_type weight (const CSConditionState &condition0, const CSConditionState
//&condition1)
// const;
// static _edge_value_type weight_static (CScriptActionBase *action, const CSConditionState &condition0,
//const
// CSConditionState &condition1);
virtual edge_value_type weight(const CSConditionState& condition0, const CSConditionState& condition1) const;
static edge_value_type weight_static(CScriptActionBase* action, const CSConditionState& condition0, const CSConditionState& condition1);
};

#include "script_action_wrapper_inline.h"

0 comments on commit a66a0de

Please sign in to comment.