Mercurial > hg > openttd
changeset 12755:3008789eb634 draft
(svn r17221) -Change [NoAI] [FS#3101]: when the API requests a string as parameter allow every squirrel type and convert to a string
author | yexo <yexo@openttd.org> |
---|---|
date | Wed, 19 Aug 2009 14:54:52 +0000 |
parents | d254ce897707 |
children | 7e6255798f4e |
files | src/ai/api/ai_basestation.hpp.sq src/ai/api/ai_company.hpp.sq src/ai/api/ai_gamesettings.hpp.sq src/ai/api/ai_group.hpp.sq src/ai/api/ai_log.hpp.sq src/ai/api/ai_sign.hpp.sq src/ai/api/ai_vehicle.hpp.sq src/ai/api/squirrel_export.awk src/script/squirrel_helper.hpp |
diffstat | 9 files changed, 24 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ai/api/ai_basestation.hpp.sq +++ b/src/ai/api/ai_basestation.hpp.sq @@ -27,7 +27,7 @@ SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::IsValidBaseStation, "IsValidBaseStation", 2, ".i"); SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::GetName, "GetName", 2, ".i"); - SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::SetName, "SetName", 3, ".is"); + SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::SetName, "SetName", 3, ".i."); SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::GetLocation, "GetLocation", 2, ".i"); SQAIBaseStation.DefSQStaticMethod(engine, &AIBaseStation::GetConstructionDate, "GetConstructionDate", 2, ".i");
--- a/src/ai/api/ai_company.hpp.sq +++ b/src/ai/api/ai_company.hpp.sq @@ -33,9 +33,9 @@ SQAICompany.DefSQStaticMethod(engine, &AICompany::ResolveCompanyID, "ResolveCompanyID", 2, ".i"); SQAICompany.DefSQStaticMethod(engine, &AICompany::IsMine, "IsMine", 2, ".i"); - SQAICompany.DefSQStaticMethod(engine, &AICompany::SetName, "SetName", 2, ".s"); + SQAICompany.DefSQStaticMethod(engine, &AICompany::SetName, "SetName", 2, ".."); SQAICompany.DefSQStaticMethod(engine, &AICompany::GetName, "GetName", 2, ".i"); - SQAICompany.DefSQStaticMethod(engine, &AICompany::SetPresidentName, "SetPresidentName", 2, ".s"); + SQAICompany.DefSQStaticMethod(engine, &AICompany::SetPresidentName, "SetPresidentName", 2, ".."); SQAICompany.DefSQStaticMethod(engine, &AICompany::GetPresidentName, "GetPresidentName", 2, ".i"); SQAICompany.DefSQStaticMethod(engine, &AICompany::SetPresidentGender, "SetPresidentGender", 2, ".i"); SQAICompany.DefSQStaticMethod(engine, &AICompany::GetPresidentGender, "GetPresidentGender", 2, ".i");
--- a/src/ai/api/ai_gamesettings.hpp.sq +++ b/src/ai/api/ai_gamesettings.hpp.sq @@ -17,8 +17,8 @@ SQAIGameSettings.PreRegister(engine); SQAIGameSettings.AddConstructor<void (AIGameSettings::*)(), 1>(engine, "x"); - SQAIGameSettings.DefSQStaticMethod(engine, &AIGameSettings::IsValid, "IsValid", 2, ".s"); - SQAIGameSettings.DefSQStaticMethod(engine, &AIGameSettings::GetValue, "GetValue", 2, ".s"); + SQAIGameSettings.DefSQStaticMethod(engine, &AIGameSettings::IsValid, "IsValid", 2, ".."); + SQAIGameSettings.DefSQStaticMethod(engine, &AIGameSettings::GetValue, "GetValue", 2, ".."); SQAIGameSettings.DefSQStaticMethod(engine, &AIGameSettings::IsDisabledVehicleType, "IsDisabledVehicleType", 2, ".i"); SQAIGameSettings.PostRegister(engine);
--- a/src/ai/api/ai_group.hpp.sq +++ b/src/ai/api/ai_group.hpp.sq @@ -29,7 +29,7 @@ SQAIGroup.DefSQStaticMethod(engine, &AIGroup::CreateGroup, "CreateGroup", 2, ".i"); SQAIGroup.DefSQStaticMethod(engine, &AIGroup::DeleteGroup, "DeleteGroup", 2, ".i"); SQAIGroup.DefSQStaticMethod(engine, &AIGroup::GetVehicleType, "GetVehicleType", 2, ".i"); - SQAIGroup.DefSQStaticMethod(engine, &AIGroup::SetName, "SetName", 3, ".is"); + SQAIGroup.DefSQStaticMethod(engine, &AIGroup::SetName, "SetName", 3, ".i."); SQAIGroup.DefSQStaticMethod(engine, &AIGroup::GetName, "GetName", 2, ".i"); SQAIGroup.DefSQStaticMethod(engine, &AIGroup::EnableAutoReplaceProtection, "EnableAutoReplaceProtection", 3, ".ib"); SQAIGroup.DefSQStaticMethod(engine, &AIGroup::GetAutoReplaceProtection, "GetAutoReplaceProtection", 2, ".i");
--- a/src/ai/api/ai_log.hpp.sq +++ b/src/ai/api/ai_log.hpp.sq @@ -17,9 +17,9 @@ SQAILog.PreRegister(engine); SQAILog.AddConstructor<void (AILog::*)(), 1>(engine, "x"); - SQAILog.DefSQStaticMethod(engine, &AILog::Info, "Info", 2, ".s"); - SQAILog.DefSQStaticMethod(engine, &AILog::Warning, "Warning", 2, ".s"); - SQAILog.DefSQStaticMethod(engine, &AILog::Error, "Error", 2, ".s"); + SQAILog.DefSQStaticMethod(engine, &AILog::Info, "Info", 2, ".."); + SQAILog.DefSQStaticMethod(engine, &AILog::Warning, "Warning", 2, ".."); + SQAILog.DefSQStaticMethod(engine, &AILog::Error, "Error", 2, ".."); SQAILog.PostRegister(engine); }
--- a/src/ai/api/ai_sign.hpp.sq +++ b/src/ai/api/ai_sign.hpp.sq @@ -29,10 +29,10 @@ AIError::RegisterErrorMapString(AISign::ERR_SIGN_TOO_MANY_SIGNS, "ERR_SIGN_TOO_MANY_SIGNS"); SQAISign.DefSQStaticMethod(engine, &AISign::IsValidSign, "IsValidSign", 2, ".i"); - SQAISign.DefSQStaticMethod(engine, &AISign::SetName, "SetName", 3, ".is"); + SQAISign.DefSQStaticMethod(engine, &AISign::SetName, "SetName", 3, ".i."); SQAISign.DefSQStaticMethod(engine, &AISign::GetName, "GetName", 2, ".i"); SQAISign.DefSQStaticMethod(engine, &AISign::GetLocation, "GetLocation", 2, ".i"); - SQAISign.DefSQStaticMethod(engine, &AISign::BuildSign, "BuildSign", 3, ".is"); + SQAISign.DefSQStaticMethod(engine, &AISign::BuildSign, "BuildSign", 3, ".i."); SQAISign.DefSQStaticMethod(engine, &AISign::RemoveSign, "RemoveSign", 2, ".i"); SQAISign.PostRegister(engine);
--- a/src/ai/api/ai_vehicle.hpp.sq +++ b/src/ai/api/ai_vehicle.hpp.sq @@ -102,7 +102,7 @@ SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle, "IsValidVehicle", 2, ".i"); SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetNumWagons, "GetNumWagons", 2, ".i"); - SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName, "SetName", 3, ".is"); + SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName, "SetName", 3, ".i."); SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetName, "GetName", 2, ".i"); SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLocation, "GetLocation", 2, ".i"); SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetEngineType, "GetEngineType", 2, ".i");
--- a/src/ai/api/squirrel_export.awk +++ b/src/ai/api/squirrel_export.awk @@ -375,7 +375,7 @@ sub("^[ ]*", "", params[len]) if (match(params[len], "\\*") || match(params[len], "&")) { if (match(params[len], "^char")) { - types = types "s" + types = types "." } else if (match(params[len], "^void")) { types = types "p" } else if (match(params[len], "^Array")) {
--- a/src/script/squirrel_helper.hpp +++ b/src/script/squirrel_helper.hpp @@ -96,8 +96,18 @@ template <> inline int16 GetParam(ForceType<int16> , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } template <> inline int32 GetParam(ForceType<int32> , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } template <> inline bool GetParam(ForceType<bool> , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQBool tmp; sq_getbool (vm, index, &tmp); return tmp != 0; } - template <> inline const char *GetParam(ForceType<const char *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { const SQChar *tmp; sq_getstring (vm, index, &tmp); char *tmp_str = strdup(FS2OTTD(tmp)); *ptr->Append() = (void *)tmp_str; str_validate(tmp_str, tmp_str + strlen(tmp_str)); return tmp_str; } template <> inline void *GetParam(ForceType<void *> , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer tmp; sq_getuserpointer(vm, index, &tmp); return tmp; } + template <> inline const char *GetParam(ForceType<const char *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) + { + sq_tostring(vm, index); + const SQChar *tmp; + sq_getstring(vm, -1, &tmp); + char *tmp_str = strdup(FS2OTTD(tmp)); + sq_poptop(vm); + *ptr->Append() = (void *)tmp_str; + str_validate(tmp_str, tmp_str + strlen(tmp_str)); + return tmp_str; + } template <> inline Array *GetParam(ForceType<Array *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) {