1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef DMS_COMLUAMODULE_H
21 #define DMS_COMLUAMODULE_H
23 #include "nel/misc/types_nl.h"
28 #include "nel/gui/lua_loadlib.h"
38 #include "game_share/scenario.h"
43 class CDynamicMapClient
;
48 /** Build the communication module
49 * \param luaState NULL If the lua environment should be built by this object
50 * If the lua state is provided externally, then it won't be deleted by this object
53 CComLuaModule(CDynamicMapClient
* client
, lua_State
*luaState
= NULL
);
55 void doFile(const std::string
& filename
);
57 bool runLuaScript(const std::string
& filename
, std::string
& errorMsg
);
59 CObject
* translateFeatures(CObject
* hlScenario
, std::string
& errorMsg
) const;
63 static CComLuaModule
* getInstance(lua_State
* state
);
65 void callTranslateFeatures(CObject
* scenario
);
69 static sint
luaAddPaletteElement(lua_State
* state
);
70 static sint
luaIsInPalette(lua_State
* state
);
72 static sint
luaGetPropertyValue(lua_State
* state
);
73 static sint
luaPrint(lua_State
* state
);
75 static sint
luaGetPaletteElement(lua_State
* state
);
77 static sint
luaRequestTranslateFeatures(lua_State
* state
);
79 static sint
luaNewComponent(lua_State
* state
);
81 static sint
luaNewGhostComponent(lua_State
* state
);
83 static sint
luaRegisterGenerator(lua_State
* state
);
85 static sint
luaShow(lua_State
* state
);
87 static sint
luaRequestInsertNode(lua_State
* state
);
89 static sint
luaRequestInsertGhostNode(lua_State
* state
);
91 static sint
luaRequestSetNode(lua_State
* state
);
93 static sint
luaRequestSetGhostNode(lua_State
* state
);
95 static sint
luaRequestEraseNode(lua_State
* state
);
97 static sint
luaRequestMoveNode(lua_State
* state
);
99 static sint
luaRequestNewAction(lua_State
* state
);
101 static sint
luaRequestNewMultiAction(lua_State
* state
);
103 static sint
luaRequestCancelAction(lua_State
* state
);
105 static sint
luaRequestForceEndMultiAction(lua_State
* state
);
107 static sint
luaRequestNewPendingMultiAction(lua_State
* state
);
109 static sint
luaRequestClearActionHistoric(lua_State
* state
);
111 static sint
luaRequestNewPendingAction(lua_State
* state
);
113 static sint
luaRequestEndAction(lua_State
* state
);
115 static sint
luaRequestUpdateRtScenario(lua_State
* state
);
117 static sint
luaSetScenarioUpToDate(lua_State
* state
);
123 static sint
luaRequestCreatePrimitives(lua_State
* state
);
125 static sint
luaRequestStopLive(lua_State
* state
);
127 static sint
luaRequestStartAct(lua_State
* state
);
129 static sint
luaRequestStopAct(lua_State
* state
);
131 static sint
luaRequestMapConnection(lua_State
* state
);
133 static sint
luaRequestReconnection(lua_State
* state
);
135 static sint
luaRequestUploadCurrentScenario(lua_State
* state
);
137 static sint
luaRequestCreateScenario(lua_State
* state
);
139 static sint
luaRequestSetWeather(lua_State
* state
);
141 static sint
luaRequestSetSeason(lua_State
* state
);
143 static void setObjectToLua(lua_State
* state
, CObject
* object
);
145 static CObject
* getObjectFromLua(lua_State
* state
, sint idx
=-1);
148 CObject
* loadFromBuffer(const std::string
& data
, const std::string
& filename
, const CScenarioValidator::TValues
& values
);
149 bool load(const std::string
& filename
);
150 bool loadUserComponent(const std::string
& filename
);
153 CObject
* loadLocal(const std::string
& filename
, const CScenarioValidator::TValues
& values
);
155 static sint
luaUpdateScenario(lua_State
* state
);
157 static sint
luaLoadUserComponent(lua_State
* state
);
158 static sint
luaSaveUserComponent(lua_State
* state
);
160 static sint
luaLoad(lua_State
* state
);
161 static sint
luaLoadAnimation(lua_State
* state
);
163 static sint
luaSave(lua_State
* state
);
164 static sint
luaDoFile2(lua_State
* state
);
165 static sint
luaTalkAs(lua_State
* state
);
166 static sint
luaStopTalkAs(lua_State
* state
);
167 static sint
luaRequestTpPosition(lua_State
* state
);
168 static sint
luaRequestDespawnEntity(lua_State
* state
);
169 static sint
luaRequestDespawnGrp(lua_State
* state
);
170 static sint
luaRequestIdList(lua_State
* state
);
171 static sint
luaRequestStringTable(lua_State
* state
);
172 static sint
luaRequestSetStringValue(lua_State
* state
);
173 static sint
luaRequestStringValue(lua_State
* state
);
174 static sint
luaGetScenarioObj(lua_State
* state
);
175 static sint
luaGetNamespace(lua_State
* state
);
176 static sint
luaGetIslandsLocation(lua_State
* state
);
177 static sint
luaObjectToLua(lua_State
* state
);
178 static sint
luaIsSessionOwner(lua_State
* state
);
181 static sint
luaReadUserComponentFile(lua_State
* state
);
182 static sint
luaRegisterUserComponent(lua_State
* state
);
183 static sint
luaUpdateUserComponentsInfo(lua_State
* state
);
184 static sint
luaSaveUserComponentFile(lua_State
* state
);
187 static sint
luaGetRuntimeActs(lua_State
* state
);
188 static sint
luaGetUserTriggers(lua_State
* state
);
189 static sint
luaGetCurrentActIndex(lua_State
* state
);
190 static sint
luaTriggerUserTrigger(lua_State
* state
);
191 static sint
luaRequestTpToEntryPoint(lua_State
* state
);
192 static sint
luaRequestSetStartingAct(lua_State
* state
);
193 static sint
luaSetStartingActIndex(lua_State
* state
);
198 static sint
luaGetMaxNpcs(lua_State
* state
);
199 static sint
luaGetMaxStaticObjects(lua_State
* state
);
201 static sint
luaGetSheetIdName(lua_State
* state
);
203 //Scenario Component exporter
204 static sint
luaGetMaxId(lua_State
* state
);
205 static sint
luaReserveIdRange(lua_State
* state
);
206 static sint
luaGetUserSlot(lua_State
* state
);
208 static sint
luaGetEmoteBehaviorFromEmoteId(lua_State
* state
);
210 //features tutorial form display
211 static sint
luaMustDisplayInfo(lua_State
* state
);
212 static sint
luaHasDisplayInfo(lua_State
* state
);
213 static sint
luaSetDisplayInfo(lua_State
* state
);
214 static sint
luaResetDisplayInfo(lua_State
* state
);
217 static sint
luaDssTarget(lua_State
* state
);
221 static sint
luaGetTalkingAsList(lua_State
* state
);
222 static sint
luaGetIncarnatingList(lua_State
* state
);
223 static sint
luaGetScenarioHeader(lua_State
* state
);
226 static sint
luaGetRingAccessAsMap(lua_State
* state
);
227 static sint
luaGetSheetRingAccess(lua_State
* state
);
228 static sint
luaGetIslandRingAccess(lua_State
* state
);
229 static sint
luaUpdateScenarioAck(lua_State
* statet
);
230 static sint
luaGetCharacterRingAccess(lua_State
* statet
);
231 static sint
luaVerifyRtScenario(lua_State
* statet
);
232 static sint
luaCheckRingAccess(lua_State
* state
);
235 static sint
luaGetEditSessionLink(lua_State
* statet
);
237 //Scenario files header access
238 static sint
luaGetFileHeader(lua_State
* state
);
239 static sint
luaGetMustVerifyRingAccessWhileLoadingAnimation(lua_State
* state
);
241 static sint
luaGetUseVerboseRingAccess(lua_State
* state
);
242 static sint
luaGetIsAnimationSession(lua_State
* state
);
244 static sint
luaResetNameGiver(lua_State
* state
);
245 static sint
luaGetCharIdMd5(lua_State
* state
);
246 static sint
luaHasCharacterSameCharacterIdMd5(lua_State
* state
);
247 static sint
luaGetScenarioSavePath(lua_State
* state
);
250 static sint
luaCheckServerEditionModule(lua_State
* state
);
253 //static sint luaGetPropertyList(lua_State* state);
256 lua_State
* _LuaState
;
259 CDynamicMapClient
* _Client
;
261 static std::map
<lua_State
*, CComLuaModule
*> _Instance
;
263 // register the com lib into lua
267 static sint
requestInsertNode(lua_State
* state
, bool ghost
);
268 static sint
requestSetNode(lua_State
* state
, bool ghost
);
271 static int luaRequestNewAction(lua_State
* state
, bool pending
, uint count
);
278 #endif // DMS_COMLUAMODULE_H