- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/Lua/Lua.hpp

Go to the documentation of this file.

    00001 #ifndef LUA_HPP
    00002 #define LUA_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 // Standard
    00008 #include <stdlib.h>
    00009 #include <string.h>
    00010 #include <stdio.h>
    00011 // C++
    00012 #include <string>
    00013 #include <vector>
    00014 #include <iostream>
    00015
    00016
    00017 namespace USpeedGameEngine
    00018 {
    00019
    00020
    00021 class Lua
    00022 {
    00023     /****************
    00024     * Les attributs *
    00025     ****************/
    00026     public :
    00027     protected :
    00028     private :
    00029         void *state;
    00030         bool loaded;
    00031
    00032     /***************
    00033     * Les méthodes *
    00034     ***************/
    00035     public :
    00036         // Constructeur par défaut.
    00037         Lua();
    00038         // Destructeur par défaut.
    00039         ~Lua();
    00040
    00042         // Début et fin //
    00044         // Préparation de l'interprêteur.
    00045         bool prepare();
    00046         // Libération de l'interprêteur.
    00047         void finish();
    00048
    00050         // États //
    00052         // État du chargement d'un script.
    00053         bool isLoaded();
    00054         // État de la machine Lua.
    00055         bool isReady();
    00056
    00058         // Chargement et paramétrage //
    00060         // Ajout d'une fonction "C" disponible dans le script Lua.
    00061         bool addFunction(std::string const &fctName, int(*theFct)(void *aState));
    00062         // Ajout d'une fonction "C" disponible dans le script Lua incluse dans un éventuel groupe.<br />
    00063         bool addFunction(std::string const &group, std::string const &fctName, int(*theFct)(void *aState));
    00064         // Chargement du script depuis un fichier.
    00065         bool load(const char *filename);
    00066         // Chargement du script depuis un tampon mémoire.
    00067         bool loadFromBuffer(const char *script);
    00068         // Exécution script préalablement chargé.
    00069         bool run();
    00070
    00072         // Accès aux paramètres //
    00074         // Retourne le nombre de paramètres passés à la fonction "C".
    00075         static unsigned int getParametersCount(void *state);
    00076         // Retourne le paramètre spécifié sous forme de chaîne de caractères (si possible).
    00077         static void getString(void *state, unsigned int index, std::string &target);
    00078         // Retourne le paramètre spécifié sous forme de nombre (si possible).
    00079         static double getNumber(void *state, unsigned int index);
    00080         // Retourne le paramètre spécifié sous forme de bouléen (si possible).
    00081         static bool getBool(void *state, unsigned int index);
    00082         // Retourne le paramètre spécifié sous forme de pointeur (si possible).
    00083         static const void *getPointer(void *state, unsigned int index);
    00084
    00086         // Ajout de données de retour //
    00088         // Ajoute la variable spécifiée sous forme de chaîne de caractères.
    00089         static bool returnString(void *state, std::string const &str);
    00090         // Ajoute la variable spécifiée sous forme de nombre.
    00091         static bool returnNumber(void *state, double nbr);
    00092         // Ajoute la variable spécifiée sous forme de bouléen.
    00093         static bool returnBool(void *state, bool aBool);
    00094         // Ajoute la variable spécifiée sous forme de pointeur.
    00095         static bool returnPointer(void *state, void *ptr);
    00096         // Ajoute la variable spécifiée sous forme de tableau de chaînes de caractères.
    00097         static bool returnTable(void *state, std::vector<std::string> const &table);
    00098
    00099     protected :
    00100     private :
    00101 };
    00102
    00103 }        // Fin "namespace USpeedGameEngine"
    00104
    00105 #endif