mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r23627) -Add: ScriptNews::Create, to create custom news messages (GameScript only)
This commit is contained in:
parent
ad48ab9237
commit
e0ffe4faf2
|
@ -958,6 +958,7 @@
|
|||
<ClInclude Include="..\src\script\api\script_log.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_map.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_marine.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_news.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_object.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_order.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_rail.hpp" />
|
||||
|
@ -1013,6 +1014,7 @@
|
|||
<ClCompile Include="..\src\script\api\script_log.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_map.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_marine.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_news.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_object.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_order.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_rail.cpp" />
|
||||
|
|
|
@ -2103,6 +2103,9 @@
|
|||
<ClInclude Include="..\src\script\api\script_marine.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_news.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_object.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
|
@ -2268,6 +2271,9 @@
|
|||
<ClCompile Include="..\src\script\api\script_marine.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_news.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_object.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
@ -3166,6 +3166,10 @@
|
|||
RelativePath=".\..\src\script\api\script_marine.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_news.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_object.hpp"
|
||||
>
|
||||
|
@ -3390,6 +3394,10 @@
|
|||
RelativePath=".\..\src\script\api\script_marine.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_news.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_object.cpp"
|
||||
>
|
||||
|
|
|
@ -3163,6 +3163,10 @@
|
|||
RelativePath=".\..\src\script\api\script_marine.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_news.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_object.hpp"
|
||||
>
|
||||
|
@ -3387,6 +3391,10 @@
|
|||
RelativePath=".\..\src\script\api\script_marine.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_news.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_object.cpp"
|
||||
>
|
||||
|
|
|
@ -736,6 +736,7 @@ script/api/script_list.hpp
|
|||
script/api/script_log.hpp
|
||||
script/api/script_map.hpp
|
||||
script/api/script_marine.hpp
|
||||
script/api/script_news.hpp
|
||||
script/api/script_object.hpp
|
||||
script/api/script_order.hpp
|
||||
script/api/script_rail.hpp
|
||||
|
@ -793,6 +794,7 @@ script/api/script_list.cpp
|
|||
script/api/script_log.cpp
|
||||
script/api/script_map.cpp
|
||||
script/api/script_marine.cpp
|
||||
script/api/script_news.cpp
|
||||
script/api/script_object.cpp
|
||||
script/api/script_order.cpp
|
||||
script/api/script_rail.cpp
|
||||
|
|
|
@ -148,6 +148,7 @@ CommandProc CmdBuildCanal;
|
|||
CommandProc CmdBuildLock;
|
||||
|
||||
CommandProc CmdCompanyCtrl;
|
||||
CommandProc CmdCustomNewsItem;
|
||||
|
||||
CommandProc CmdLevelLand;
|
||||
|
||||
|
@ -282,6 +283,7 @@ static const Command _command_proc_table[] = {
|
|||
DEF_CMD(CmdMoneyCheat, CMD_OFFLINE, CMDT_CHEAT ), // CMD_MONEY_CHEAT
|
||||
DEF_CMD(CmdBuildCanal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL
|
||||
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
||||
DEF_CMD(CmdCustomNewsItem, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CUSTOM_NEWS_ITEM
|
||||
|
||||
DEF_CMD(CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once
|
||||
|
||||
|
|
|
@ -262,6 +262,7 @@ enum Commands {
|
|||
CMD_BUILD_CANAL, ///< build a canal
|
||||
|
||||
CMD_COMPANY_CTRL, ///< used in multiplayer to create a new companies etc.
|
||||
CMD_CUSTOM_NEWS_ITEM, ///< create a custom news message
|
||||
CMD_LEVEL_LAND, ///< level land
|
||||
|
||||
CMD_BUILD_LOCK, ///< build a lock
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#include "../script/api/game/game_log.hpp.sq"
|
||||
#include "../script/api/game/game_map.hpp.sq"
|
||||
#include "../script/api/game/game_marine.hpp.sq"
|
||||
#include "../script/api/game/game_news.hpp.sq"
|
||||
#include "../script/api/game/game_rail.hpp.sq"
|
||||
#include "../script/api/game/game_railtypelist.hpp.sq"
|
||||
#include "../script/api/game/game_road.hpp.sq"
|
||||
|
@ -141,6 +142,7 @@ void GameInstance::RegisterAPI()
|
|||
SQGSLog_Register(this->engine);
|
||||
SQGSMap_Register(this->engine);
|
||||
SQGSMarine_Register(this->engine);
|
||||
SQGSNews_Register(this->engine);
|
||||
SQGSRail_Register(this->engine);
|
||||
SQGSRailTypeList_Register(this->engine);
|
||||
SQGSRoad_Register(this->engine);
|
||||
|
|
|
@ -749,6 +749,8 @@ STR_NEWS_MESSAGE_TYPE_CHANGES_OF_CARGO_ACCEPTANCE :{YELLOW}Changes
|
|||
STR_NEWS_MESSAGE_TYPE_SUBSIDIES :{YELLOW}Subsidies
|
||||
STR_NEWS_MESSAGE_TYPE_GENERAL_INFORMATION :{YELLOW}General information
|
||||
|
||||
STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{RAW_STRING}
|
||||
|
||||
STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First train arrives at {STATION}!
|
||||
STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First bus arrives at {STATION}!
|
||||
STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}Citizens celebrate . . .{}First truck arrives at {STATION}!
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
#include "engine_base.h"
|
||||
#include "engine_gui.h"
|
||||
#include "core/geometry_func.hpp"
|
||||
#include "command_func.h"
|
||||
#include "company_base.h"
|
||||
|
||||
#include "widgets/news_widget.h"
|
||||
|
||||
|
@ -707,6 +709,70 @@ void AddNewsItem(StringID string, NewsSubtype subtype, NewsReferenceType reftype
|
|||
SetWindowDirty(WC_MESSAGE_HISTORY, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new custom news item.
|
||||
* @param tile unused
|
||||
* @param flags type of operation
|
||||
* @param p1 various bitstuffed elements
|
||||
* - p1 = (bit 0 - 7) - NewsSubtype of the message.
|
||||
* - p1 = (bit 8 - 15) - NewsReferenceType of first reference.
|
||||
* - p1 = (bit 16 - 23) - Company this news message is for.
|
||||
* @param p2 First reference of the news message.
|
||||
* @param text The text of the news message.
|
||||
* @return the cost of this operation or an error
|
||||
*/
|
||||
CommandCost CmdCustomNewsItem(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
|
||||
{
|
||||
if (_current_company != OWNER_DEITY) return CMD_ERROR;
|
||||
|
||||
NewsSubtype subtype = (NewsSubtype)GB(p1, 0, 8);
|
||||
NewsReferenceType reftype1 = (NewsReferenceType)GB(p1, 8, 8);
|
||||
CompanyID company = (CompanyID)GB(p1, 16, 8);
|
||||
|
||||
if (company != INVALID_OWNER && !Company::IsValidID(company)) return CMD_ERROR;
|
||||
if (subtype >= NS_END) return CMD_ERROR;
|
||||
if (StrEmpty(text)) return CMD_ERROR;
|
||||
|
||||
switch (reftype1) {
|
||||
case NR_NONE: break;
|
||||
case NR_TILE:
|
||||
if (!IsValidTile(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case NR_VEHICLE:
|
||||
if (!Vehicle::IsValidID(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case NR_STATION:
|
||||
if (!Station::IsValidID(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case NR_INDUSTRY:
|
||||
if (!Industry::IsValidID(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case NR_TOWN:
|
||||
if (!Town::IsValidID(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case NR_ENGINE:
|
||||
if (!Engine::IsValidID(p2)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
default: return CMD_ERROR;
|
||||
}
|
||||
|
||||
if (company != INVALID_OWNER && company != _local_company) return CommandCost();
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
char *news = strdup(text);
|
||||
SetDParamStr(0, news);
|
||||
AddNewsItem(STR_NEWS_CUSTOM_ITEM, subtype, reftype1, p2, NR_NONE, UINT32_MAX, news);
|
||||
}
|
||||
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
/** Delete a news item from the queue */
|
||||
static void DeleteNewsItem(NewsItem *ni)
|
||||
{
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_news.hpp"
|
||||
#include "../template/template_news.hpp.sq"
|
||||
|
||||
|
||||
template <> const char *GetClassName<ScriptNews, ST_GS>() { return "GSNews"; }
|
||||
|
||||
void SQGSNews_Register(Squirrel *engine)
|
||||
{
|
||||
DefSQClass<ScriptNews, ST_GS> SQGSNews("GSNews");
|
||||
SQGSNews.PreRegister(engine);
|
||||
SQGSNews.AddConstructor<void (ScriptNews::*)(), 1>(engine, "x");
|
||||
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ARRIVAL_COMPANY, "NT_ARRIVAL_COMPANY");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ARRIVAL_OTHER, "NT_ARRIVAL_OTHER");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ACCIDENT, "NT_ACCIDENT");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_COMPANY_TROUBLE, "NT_COMPANY_TROUBLE");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_COMPANY_MERGER, "NT_COMPANY_MERGER");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_COMPANY_BANKRUPT, "NT_COMPANY_BANKRUPT");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_COMPANY_NEW, "NT_COMPANY_NEW");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_INDUSTRY_OPEN, "NT_INDUSTRY_OPEN");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_INDUSTRY_CLOSE, "NT_INDUSTRY_CLOSE");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ECONOMY, "NT_ECONOMY");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_INDUSTRY_COMPANY, "NT_INDUSTRY_COMPANY");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_INDUSTRY_OTHER, "NT_INDUSTRY_OTHER");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_INDUSTRY_NOBODY, "NT_INDUSTRY_NOBODY");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ADVICE, "NT_ADVICE");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_NEW_VEHICLES, "NT_NEW_VEHICLES");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_ACCEPTANCE, "NT_ACCEPTANCE");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_SUBSIDIES, "NT_SUBSIDIES");
|
||||
SQGSNews.DefSQConst(engine, ScriptNews::NT_GENERAL, "NT_GENERAL");
|
||||
|
||||
SQGSNews.DefSQStaticMethod(engine, &ScriptNews::Create, "Create", 4, ".i.i");
|
||||
|
||||
SQGSNews.PostRegister(engine);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file script_news.cpp Implementation of ScriptNews. */
|
||||
|
||||
#include "../../stdafx.h"
|
||||
#include "script_news.hpp"
|
||||
#include "script_error.hpp"
|
||||
#include "../../news_func.h"
|
||||
#include "../../strings_func.h"
|
||||
#include "../../command_type.h"
|
||||
#include "../../string_func.h"
|
||||
#include "table/strings.h"
|
||||
|
||||
/* static */ bool ScriptNews::Create(NewsType type, const char *text, ScriptCompany::CompanyID company)
|
||||
{
|
||||
EnforcePrecondition(false, !StrEmpty(text));
|
||||
EnforcePrecondition(false, type >= NT_ARRIVAL_COMPANY && type <= NT_GENERAL);
|
||||
EnforcePrecondition(false, company == ScriptCompany::COMPANY_INVALID || ScriptCompany::ResolveCompanyID(company) != ScriptCompany::COMPANY_INVALID);
|
||||
|
||||
uint8 c = company;
|
||||
if (company == ScriptCompany::COMPANY_INVALID) c = INVALID_COMPANY;
|
||||
|
||||
return ScriptObject::DoCommand(0, type | (NR_NONE << 8) | (c << 16), 0, CMD_CUSTOM_NEWS_ITEM, text);
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file script_news.hpp Everything to handle news messages. */
|
||||
|
||||
#ifndef SCRIPT_NEWS_HPP
|
||||
#define SCRIPT_NEWS_HPP
|
||||
|
||||
#include "script_company.hpp"
|
||||
#include "../../news_type.h"
|
||||
|
||||
/**
|
||||
* Class that handles news messages.
|
||||
* @api game
|
||||
*/
|
||||
class ScriptNews : public ScriptObject {
|
||||
public:
|
||||
/**
|
||||
* Enumeration for corners of tiles.
|
||||
*/
|
||||
enum NewsType {
|
||||
/* Note: these values represent part of the in-game NewsSubtype enum */
|
||||
NT_ARRIVAL_COMPANY = ::NS_ARRIVAL_COMPANY, ///< Category arrival for own company.
|
||||
NT_ARRIVAL_OTHER = ::NS_ARRIVAL_OTHER, ///< Category arrival for other companies.
|
||||
NT_ACCIDENT = ::NS_ACCIDENT, ///< Category accident.
|
||||
NT_COMPANY_TROUBLE = ::NS_COMPANY_TROUBLE, ///< Category company in trouble.
|
||||
NT_COMPANY_MERGER = ::NS_COMPANY_MERGER, ///< Category company merger.
|
||||
NT_COMPANY_BANKRUPT = ::NS_COMPANY_BANKRUPT, ///< Category company bankrupt.
|
||||
NT_COMPANY_NEW = ::NS_COMPANY_NEW, ///< Category company new.
|
||||
NT_INDUSTRY_OPEN = ::NS_INDUSTRY_OPEN, ///< Category industry open.
|
||||
NT_INDUSTRY_CLOSE = ::NS_INDUSTRY_CLOSE, ///< Category industry close.
|
||||
NT_ECONOMY = ::NS_ECONOMY, ///< Category economy.
|
||||
NT_INDUSTRY_COMPANY = ::NS_INDUSTRY_COMPANY, ///< Category industry changes for own company.
|
||||
NT_INDUSTRY_OTHER = ::NS_INDUSTRY_OTHER, ///< Category industry changes for other companies.
|
||||
NT_INDUSTRY_NOBODY = ::NS_INDUSTRY_NOBODY, ///< Category industry changes for nobody.
|
||||
NT_ADVICE = ::NS_ADVICE, ///< Category advice.
|
||||
NT_NEW_VEHICLES = ::NS_NEW_VEHICLES, ///< Category new vehicle.
|
||||
NT_ACCEPTANCE = ::NS_ACCEPTANCE, ///< Category acceptance changes.
|
||||
NT_SUBSIDIES = ::NS_SUBSIDIES, ///< Category subsidies.
|
||||
NT_GENERAL = ::NS_GENERAL, ///< Category general.
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a news messages for a company.
|
||||
* @param type The type of the news.
|
||||
* @param text The text message to show.
|
||||
* @param company The company, or COMPANY_INVALID for all companies.
|
||||
* @return True if the action succeeded.
|
||||
* @pre text != NULL.
|
||||
* @pre company == COMPANY_INVALID || ResolveCompanyID(company) != COMPANY_INVALID.
|
||||
*/
|
||||
static bool Create(NewsType type, const char *text, ScriptCompany::CompanyID company);
|
||||
};
|
||||
|
||||
#endif /* SCRIPT_NEWS_HPP */
|
|
@ -0,0 +1,25 @@
|
|||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
|
||||
|
||||
#include "../script_news.hpp"
|
||||
|
||||
namespace SQConvert {
|
||||
/* Allow enums to be used as Squirrel parameters */
|
||||
template <> inline ScriptNews::NewsType GetParam(ForceType<ScriptNews::NewsType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptNews::NewsType)tmp; }
|
||||
template <> inline int Return<ScriptNews::NewsType>(HSQUIRRELVM vm, ScriptNews::NewsType res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
|
||||
/* Allow ScriptNews to be used as Squirrel parameter */
|
||||
template <> inline ScriptNews *GetParam(ForceType<ScriptNews *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptNews *)instance; }
|
||||
template <> inline ScriptNews &GetParam(ForceType<ScriptNews &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptNews *)instance; }
|
||||
template <> inline const ScriptNews *GetParam(ForceType<const ScriptNews *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptNews *)instance; }
|
||||
template <> inline const ScriptNews &GetParam(ForceType<const ScriptNews &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptNews *)instance; }
|
||||
template <> inline int Return<ScriptNews *>(HSQUIRRELVM vm, ScriptNews *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "News", res, NULL, DefSQDestructorCallback<ScriptNews>, true); return 1; }
|
||||
} // namespace SQConvert
|
Loading…
Reference in New Issue