src/ai/api/ai_error.hpp.sq
branchnoai
changeset 9844 738b8f69675f
child 9861 53fc03195e31
equal deleted inserted replaced
9843:29f34a179daf 9844:738b8f69675f
       
     1 #include "ai_error.hpp"
       
     2 
       
     3 namespace SQConvert {
       
     4 	/* Allow enums to be used as Squirrel parameters */
       
     5 	template <> AIError::ErrorCategories GetParam(ForceType<AIError::ErrorCategories>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIError::ErrorCategories)tmp; }
       
     6 	template <> int Return<AIError::ErrorCategories>(HSQUIRRELVM vm, AIError::ErrorCategories res) { sq_pushinteger(vm, (int32)res); return 1; }
       
     7 	template <> AIError::ErrorMessages GetParam(ForceType<AIError::ErrorMessages>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIError::ErrorMessages)tmp; }
       
     8 	template <> int Return<AIError::ErrorMessages>(HSQUIRRELVM vm, AIError::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
       
     9 
       
    10 	/* Allow AIError to be used as Squirrel parameter */
       
    11 	template <> AIError *GetParam(ForceType<AIError *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIError *)instance; }
       
    12 	template <> AIError &GetParam(ForceType<AIError &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIError *)instance; }
       
    13 	template <> const AIError *GetParam(ForceType<const AIError *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (AIError *)instance; }
       
    14 	template <> const AIError &GetParam(ForceType<const AIError &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIError *)instance; }
       
    15 	template <> int Return<AIError *>(HSQUIRRELVM vm, AIError *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIError", res, NULL, DefSQDestructorCallback<AIError>); return 1; }
       
    16 }; // namespace SQConvert
       
    17 
       
    18 void SQAIError_Register(Squirrel *engine) {
       
    19 	DefSQClass <AIError> SQAIError("AIError");
       
    20 	SQAIError.PreRegister(engine);
       
    21 	SQAIError.AddConstructor<void (AIError::*)(), 1>(engine, "x");
       
    22 
       
    23 	SQAIError.DefSQConst(engine, AIError::ERR_CAT_NONE,                         "ERR_CAT_NONE");
       
    24 	SQAIError.DefSQConst(engine, AIError::ERR_CAT_GENERAL,                      "ERR_CAT_GENERAL");
       
    25 	SQAIError.DefSQConst(engine, AIError::ERR_CAT_VEHICLE,                      "ERR_CAT_VEHICLE");
       
    26 	SQAIError.DefSQConst(engine, AIError::ERR_CAT_BIT_SIZE,                     "ERR_CAT_BIT_SIZE");
       
    27 	SQAIError.DefSQConst(engine, AIError::ERR_NONE,                             "ERR_NONE");
       
    28 	SQAIError.DefSQConst(engine, AIError::ERR_UNKNOWN,                          "ERR_UNKNOWN");
       
    29 	SQAIError.DefSQConst(engine, AIError::ERR_GENERAL_BASE,                     "ERR_GENERAL_BASE");
       
    30 	SQAIError.DefSQConst(engine, AIError::ERR_NOT_ENOUGH_CASH,                  "ERR_NOT_ENOUGH_CASH");
       
    31 	SQAIError.DefSQConst(engine, AIError::ERR_LOCAL_AUTHORITY_REFUSES,          "ERR_LOCAL_AUTHORITY_REFUSES");
       
    32 	SQAIError.DefSQConst(engine, AIError::ERR_ALREADY_BUILT,                    "ERR_ALREADY_BUILT");
       
    33 	SQAIError.DefSQConst(engine, AIError::ERR_AREA_NOT_CLEAR,                   "ERR_AREA_NOT_CLEAR");
       
    34 	SQAIError.DefSQConst(engine, AIError::ERR_AREA_IS_OWNED_BY_ANOTHER_COMPANY, "ERR_AREA_IS_OWNED_BY_ANOTHER_COMPANY");
       
    35 
       
    36 	AIError::RegisterErrorMap      (STR_0003_NOT_ENOUGH_CASH_REQUIRES,    AIError::ERR_NOT_ENOUGH_CASH);
       
    37 	AIError::RegisterErrorMapString(STR_0003_NOT_ENOUGH_CASH_REQUIRES,            "ERR_NOT_ENOUGH_CASH");
       
    38 	AIError::RegisterErrorMap      (STR_2009_LOCAL_AUTHORITY_REFUSES,     AIError::ERR_LOCAL_AUTHORITY_REFUSES);
       
    39 	AIError::RegisterErrorMapString(STR_2009_LOCAL_AUTHORITY_REFUSES,             "ERR_LOCAL_AUTHORITY_REFUSES");
       
    40 	AIError::RegisterErrorMap      (STR_1007_ALREADY_BUILT,               AIError::ERR_ALREADY_BUILT);
       
    41 	AIError::RegisterErrorMapString(STR_1007_ALREADY_BUILT,                       "ERR_ALREADY_BUILT");
       
    42 	AIError::RegisterErrorMap      (STR_2004_BUILDING_MUST_BE_DEMOLISHED, AIError::ERR_AREA_NOT_CLEAR);
       
    43 	AIError::RegisterErrorMapString(STR_2004_BUILDING_MUST_BE_DEMOLISHED,         "ERR_AREA_NOT_CLEAR");
       
    44 	AIError::RegisterErrorMap      (STR_1024_AREA_IS_OWNED_BY_ANOTHER,    AIError::ERR_AREA_IS_OWNED_BY_ANOTHER_COMPANY);
       
    45 	AIError::RegisterErrorMapString(STR_1024_AREA_IS_OWNED_BY_ANOTHER,            "ERR_AREA_IS_OWNED_BY_ANOTHER_COMPANY");
       
    46 
       
    47 	SQAIError.DefSQStaticMethod(engine, &AIError::GetClassName,           "GetClassName",           1, "x");
       
    48 	SQAIError.DefSQStaticMethod(engine, &AIError::GetErrorCategory,       "GetErrorCategory",       1, "x");
       
    49 	SQAIError.DefSQStaticMethod(engine, &AIError::GetLastError,           "GetLastError",           1, "x");
       
    50 	SQAIError.DefSQStaticMethod(engine, &AIError::GetLastErrorString,     "GetLastErrorString",     1, "x");
       
    51 	SQAIError.DefSQStaticMethod(engine, &AIError::RegisterErrorMap,       "RegisterErrorMap",       3, "xii");
       
    52 	SQAIError.DefSQStaticMethod(engine, &AIError::RegisterErrorMapString, "RegisterErrorMapString", 3, "xis");
       
    53 
       
    54 	SQAIError.PostRegister(engine);
       
    55 }