Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 27, 2006, 3:29:10 PM (18 years ago)
Author:
snellen
Message:

continued working on turning:turning doesn't quite work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/single_player_map/src/lib/util/executor/executor_lua.h

    r8822 r8829  
    437437  private:
    438438    ret          (T::*functionPointer)(type0, type1, type2);
     439};
     440
     441
     442///////////
     443//// 4 ////
     444///////////
     445//! Executes a Function with a lua_State* parameter.
     446template<class T, typename ret, typename type0, typename type1, typename type2, typename type3> class ExecutorLua4ret : public Executor
     447{
     448  public:
     449    /**
     450   * @brief Constructor of a ExecutorXML
     451   * @param function a Function to call
     452     */
     453    ExecutorLua4ret(ret (T::*function)(type0, type1, type2, type3))
     454  : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>())
     455    {
     456      this->functionPointer = function;
     457      this->functorType = Executor_Objective | Executor_NoLoadString;
     458    }
     459
     460    /**
     461     * @brief executes the Command on BaseObject
     462     * @param object the BaseObject to execute this Executor on
     463     * @param loadString ignored in this case
     464     */
     465    virtual void operator()(BaseObject* object, const SubString& = SubString()) const
     466    {
     467      PRINTF(1)("no usefull executor\n");
     468    }
     469
     470    virtual void operator()(BaseObject* object, int& count, void* values) const
     471    {
     472      lua_State* state = (lua_State*)values;
     473      count = 1;
     474
     475      toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))(
     476          fromLua<type0>(state, 1),
     477          fromLua<type1>(state, 2),
     478          fromLua<type2>(state, 3),
     479          fromLua<type3>(state, 4) ));
     480    }
     481
     482    /**
     483     * @returns a _new_ Copy of this Executor
     484     */
     485    virtual Executor* clone () const
     486    {
     487      return new ExecutorLua4ret<T, ret, type0, type1, type2, type3>(this->functionPointer);
     488    }
     489  private:
     490    ret          (T::*functionPointer)(type0, type1, type2, type3);
    439491};
    440492
Note: See TracChangeset for help on using the changeset viewer.