On Wed, 10 Aug 2011 10:35:46 +0200, Dainius (GreatEmerald) <past...@gmail.com> wrote:

I seem to have run into a problem with the function pointer method
here. I have this code:

arco.d:

    struct FrontendFunctions {
        void function(SoundTypes) Sound_Play;
        void function() RedrawScreenFull;
        void function(const char*, int) PrecacheCard;
        void function(CardInfo, int) PlayCardAnimation;
    }

cards.d:

    void InitLuaFunctions()
    {
        lua["Damage"] = (int Who, int Amount)
        {
            FrontendFunctions.Sound_Play(SoundTypes.Damage);
        };
    }

Essentially I am trying to get Lua (via LuaD) to call a function in D
that calls a frontend function. But when I compile the code, I get
this: "cards.d(5): Error: 'this' is only defined in non-static member
functions, not __dgliteral14". Why is this and what can I do about it?

FrontendFunctions frontendFunctions;

use frontendFunctions everywhere.

OR (this makes them global):

struct FrontendFunctions {
static:
    ...
}

Reply via email to