void LuaBase::registerLua() { // Register system table lua_Object system_table = lua_createtable(); lua_pushobject(system_table); lua_setglobal("system"); lua_pushobject(system_table); refSystemTable = lua_ref(1); for (unsigned i = 0; i < ARRAYSIZE(system_defaults); i++) { lua_pushobject(lua_getref(refSystemTable)); lua_pushstring(system_defaults[i].name); lua_pushnumber(system_defaults[i].key); lua_settable(); } // Create and populate system.controls table lua_Object controls_table = lua_createtable(); lua_pushobject(lua_getref(refSystemTable)); lua_pushstring("controls"); lua_pushobject(controls_table); lua_settable(); for (int i = 0; controls[i].name; i++) { lua_pushobject(controls_table); lua_pushstring(controls[i].name); lua_pushnumber(controls[i].key); lua_settable(); } lua_pushobject(lua_getref(refSystemTable)); lua_pushstring("camChangeHandler"); lua_pushcfunction(LUA_OPCODE(LuaBase, dummyHandler)); lua_settable(); lua_pushobject(lua_getref(refSystemTable)); lua_pushstring("axisHandler"); lua_pushcfunction(LUA_OPCODE(LuaBase, dummyHandler)); lua_settable(); lua_pushobject(lua_getref(refSystemTable)); lua_pushstring("buttonHandler"); lua_pushcfunction(LUA_OPCODE(LuaBase, dummyHandler)); lua_settable(); lua_pushobject(lua_getglobal("type")); refTypeOverride = lua_ref(true); lua_pushCclosure(LUA_OPCODE(LuaBase, typeOverride), 0); lua_setglobal("type"); // Register constants for box types lua_pushnumber(Sector::NoneType); lua_setglobal("NONE"); lua_pushnumber(Sector::WalkType); lua_setglobal("WALK"); lua_pushnumber(Sector::CameraType); lua_setglobal("CAMERA"); lua_pushnumber(Sector::SpecialType); lua_setglobal("SPECIAL"); lua_pushnumber(Sector::HotType); lua_setglobal("HOT"); lua_pushobject(lua_setfallback("concat", LUA_OPCODE(LuaBase, concatFallback))); refOldConcatFallback = lua_ref(1); // initialize Text globals lua_pushstring("x"); refTextObjectX = lua_ref(true); lua_pushstring("y"); refTextObjectY = lua_ref(true); lua_pushstring("font"); refTextObjectFont = lua_ref(true); lua_pushstring("width"); refTextObjectWidth = lua_ref(true); lua_pushstring("height"); refTextObjectHeight = lua_ref(true); lua_pushstring("fgcolor"); refTextObjectFGColor = lua_ref(true); lua_pushstring("bgcolor"); refTextObjectBGColor = lua_ref(true); lua_pushstring("fxcolor"); refTextObjectFXColor = lua_ref(true); lua_pushstring("hicolor"); refTextObjectHIColor = lua_ref(true); lua_pushstring("duration"); refTextObjectDuration = lua_ref(true); lua_pushstring("center"); refTextObjectCenter = lua_ref(true); lua_pushstring("ljustify"); refTextObjectLJustify = lua_ref(true); lua_pushstring("rjustify"); refTextObjectRJustify = lua_ref(true); lua_pushstring("volume"); refTextObjectVolume = lua_ref(true); lua_pushstring("pan"); refTextObjectPan = lua_ref(true); lua_pushstring("background"); refTextObjectBackground = lua_ref(true); }
STUB_FUNC2(Lua_V2::ToggleDrawBBoxes) STUB_FUNC2(Lua_V2::ToggleDrawFPS) STUB_FUNC2(Lua_V2::ToggleDrawPerformance) STUB_FUNC2(Lua_V2::ToggleDrawActorStats) STUB_FUNC2(Lua_V2::SectEditSelect) STUB_FUNC2(Lua_V2::SectEditPlace) STUB_FUNC2(Lua_V2::SectEditDelete) STUB_FUNC2(Lua_V2::SectEditInsert) STUB_FUNC2(Lua_V2::SectEditSortAdd) STUB_FUNC2(Lua_V2::SectEditForgetIt) STUB_FUNC2(Lua_V2::FRUTEY_Begin) STUB_FUNC2(Lua_V2::FRUTEY_End) struct luaL_reg monkeyMainOpcodes[] = { // Monkey specific LUA_OPCODEs: { "ScreenshotForSavegame", LUA_OPCODE(Lua_V2, ScreenshotForSavegame) }, { "GetActorWorldPos", LUA_OPCODE(Lua_V2, GetActorWorldPos) }, { "SetActiveCD", LUA_OPCODE(Lua_V2, SetActiveCD) }, { "GetActiveCD", LUA_OPCODE(Lua_V2, GetActiveCD) }, { "AreWeInternational", LUA_OPCODE(Lua_V2, AreWeInternational) }, { "MakeScreenTextures", LUA_OPCODE(Lua_V2, MakeScreenTextures) }, { "ThumbnailFromFile", LUA_OPCODE(Lua_V2, ThumbnailFromFile) }, { "ClearSpecialtyTexture", LUA_OPCODE(Lua_V2, ClearSpecialtyTexture) }, { "UnloadActor", LUA_OPCODE(Lua_V2, UnloadActor) }, { "PutActorInOverworld", LUA_OPCODE(Lua_V2, PutActorInOverworld) }, { "RemoveActorFromOverworld", LUA_OPCODE(Lua_V2, RemoveActorFromOverworld) }, { "ClearOverworld", LUA_OPCODE(Lua_V2, ClearOverworld) }, { "ToggleOverworld", LUA_OPCODE(Lua_V2, ToggleOverworld) }, { "ActorStopMoving", LUA_OPCODE(Lua_V2, ActorStopMoving) }, { "SetActorFOV", LUA_OPCODE(Lua_V2, SetActorFOV) }, { "SetActorLighting", LUA_OPCODE(Lua_V2, SetActorLighting) },
lua_pushstring("center"); refTextObjectCenter = lua_ref(true); lua_pushstring("ljustify"); refTextObjectLJustify = lua_ref(true); lua_pushstring("rjustify"); refTextObjectRJustify = lua_ref(true); lua_pushstring("volume"); refTextObjectVolume = lua_ref(true); lua_pushstring("pan"); refTextObjectPan = lua_ref(true); lua_pushstring("background"); refTextObjectBackground = lua_ref(true); } struct luaL_reg baseOpcodes[] = { { " concatfallback", LUA_OPCODE(LuaBase, concatFallback) }, { " typeoverride", LUA_OPCODE(LuaBase, typeOverride) }, { " dfltcamera", LUA_OPCODE(LuaBase, dummyHandler) }, { " dfltcontrol", LUA_OPCODE(LuaBase, dummyHandler) }, }; void LuaBase::registerOpcodes() { luaL_openlib(baseOpcodes, ARRAYSIZE(baseOpcodes)); } void LuaBase::boot() { dofile("_system.lua"); lua_pushnil(); // resumeSave lua_pushnil(); // bootParam - not used in scripts lua_call("BOOT");
STUB_FUNC(Lua_V1::DriveActorTo) STUB_FUNC(Lua_V1::GetActorRect) STUB_FUNC(Lua_V1::GetTranslationMode) STUB_FUNC(Lua_V1::SetTranslationMode) STUB_FUNC(Lua_V1::WalkActorToAvoiding) STUB_FUNC(Lua_V1::GetActorChores) STUB_FUNC(Lua_V1::SetCameraPosition) STUB_FUNC(Lua_V1::GetCameraFOV) STUB_FUNC(Lua_V1::SetCameraFOV) STUB_FUNC(Lua_V1::GetCameraRoll) STUB_FUNC(Lua_V1::GetMemoryUsage) STUB_FUNC(Lua_V1::GetFontDimensions) STUB_FUNC(Lua_V1::PurgeText) struct luaL_reg grimMainOpcodes[] = { { "EngineDisplay", LUA_OPCODE(Lua_V1, EngineDisplay) }, { "CheckForFile", LUA_OPCODE(Lua_V1, CheckForFile) }, { "Load", LUA_OPCODE(Lua_V1, Load) }, { "Save", LUA_OPCODE(Lua_V1, Save) }, { "remove", LUA_OPCODE(Lua_V1, Remove) }, { "SetActorColormap", LUA_OPCODE(Lua_V1, SetActorColormap) }, { "GetActorCostume", LUA_OPCODE(Lua_V1, GetActorCostume) }, { "SetActorCostume", LUA_OPCODE(Lua_V1, SetActorCostume) }, { "SetActorScale", LUA_OPCODE(Lua_V1, SetActorScale) }, { "GetActorTimeScale", LUA_OPCODE(Lua_V1, GetActorTimeScale) }, { "SetActorTimeScale", LUA_OPCODE(Lua_V1, SetActorTimeScale) }, { "GetActorNodeLocation", LUA_OPCODE(Lua_V1, GetActorNodeLocation) }, { "SetActorWalkChore", LUA_OPCODE(Lua_V1, SetActorWalkChore) }, { "SetActorTurnChores", LUA_OPCODE(Lua_V1, SetActorTurnChores) }, { "SetActorRestChore", LUA_OPCODE(Lua_V1, SetActorRestChore) }, { "SetActorMumblechore", LUA_OPCODE(Lua_V1, SetActorMumblechore) },