UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

2,254 lines (1,912 loc) 537 kB
import {lua_register, lua_pushinteger, lua_pushnumber, lua_pushstring, lua_pushlightuserdata, lua_touserdata, lua_pushboolean, lua_toboolean, LUA_REGISTRYINDEX, lua_yield, lua_pcall, lua_rawgeti} from 'fengari/src/lua'; import {luaL_checkstring, luaL_checkinteger, luaL_checknumber, luaL_ref, luaL_unref} from 'fengari/src/lauxlib'; import {JassTimer, JassGroup, JassLocation, JassForce, JassUnit, JassTrigger} from './types'; /** * constant native ConvertRace takes integer i returns race * * @param {lua_State} L * @return {number} */ function ConvertRace(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.races[i]); return 1; } /** * constant native ConvertAllianceType takes integer i returns alliancetype * * @param {lua_State} L * @return {number} */ function ConvertAllianceType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.allianceTypes[i]); return 1; } /** * constant native ConvertRacePref takes integer i returns racepreference * * @param {lua_State} L * @return {number} */ function ConvertRacePref(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.racePrefs[i]); return 1; } /** * constant native ConvertIGameState takes integer i returns igamestate * * @param {lua_State} L * @return {number} */ function ConvertIGameState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.gameStates[i]); return 1; } /** * constant native ConvertFGameState takes integer i returns fgamestate * * @param {lua_State} L * @return {number} */ function ConvertFGameState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.gameStates[i]); return 1; } /** * constant native ConvertPlayerState takes integer i returns playerstate * * @param {lua_State} L * @return {number} */ function ConvertPlayerState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.playerStates[i]); return 1; } /** * constant native ConvertPlayerScore takes integer i returns playerscore * * @param {lua_State} L * @return {number} */ function ConvertPlayerScore(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.playerScores[i]); return 1; } /** * constant native ConvertPlayerGameResult takes integer i returns playergameresult * * @param {lua_State} L * @return {number} */ function ConvertPlayerGameResult(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.playerGameResults[i]); return 1; } /** * constant native ConvertUnitState takes integer i returns unitstate * * @param {lua_State} L * @return {number} */ function ConvertUnitState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.unitStates[i]); return 1; } /** * constant native ConvertAIDifficulty takes integer i returns aidifficulty * * @param {lua_State} L * @return {number} */ function ConvertAIDifficulty(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.aiDifficulties[i]); return 1; } /** * constant native ConvertGameEvent takes integer i returns gameevent * * @param {lua_State} L * @return {number} */ function ConvertGameEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertPlayerEvent takes integer i returns playerevent * * @param {lua_State} L * @return {number} */ function ConvertPlayerEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertPlayerUnitEvent takes integer i returns playerunitevent * * @param {lua_State} L * @return {number} */ function ConvertPlayerUnitEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertWidgetEvent takes integer i returns widgetevent * * @param {lua_State} L * @return {number} */ function ConvertWidgetEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertDialogEvent takes integer i returns dialogevent * * @param {lua_State} L * @return {number} */ function ConvertDialogEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertUnitEvent takes integer i returns unitevent * * @param {lua_State} L * @return {number} */ function ConvertUnitEvent(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.events[i]); return 1; } /** * constant native ConvertLimitOp takes integer i returns limitop * * @param {lua_State} L * @return {number} */ function ConvertLimitOp(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.limitOps[i]); return 1; } /** * constant native ConvertUnitType takes integer i returns unittype * * @param {lua_State} L * @return {number} */ function ConvertUnitType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.unitTypes[i]); return 1; } /** * constant native ConvertGameSpeed takes integer i returns gamespeed * * @param {lua_State} L * @return {number} */ function ConvertGameSpeed(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.gameSpeeds[i]); return 1; } /** * constant native ConvertPlacement takes integer i returns placement * * @param {lua_State} L * @return {number} */ function ConvertPlacement(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.placements[i]); return 1; } /** * constant native ConvertStartLocPrio takes integer i returns startlocprio * * @param {lua_State} L * @return {number} */ function ConvertStartLocPrio(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.startLocPrios[i]); return 1; } /** * constant native ConvertGameDifficulty takes integer i returns gamedifficulty * * @param {lua_State} L * @return {number} */ function ConvertGameDifficulty(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.gameDifficulties[i]); return 1; } /** * constant native ConvertGameType takes integer i returns gametype * * @param {lua_State} L * @return {number} */ function ConvertGameType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.gameTypes[i]); return 1; } /** * constant native ConvertMapFlag takes integer i returns mapflag * * @param {lua_State} L * @return {number} */ function ConvertMapFlag(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mapFlags[i]); return 1; } /** * constant native ConvertMapVisibility takes integer i returns mapvisibility * * @param {lua_State} L * @return {number} */ function ConvertMapVisibility(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mapVisibilities[i]); return 1; } /** * constant native ConvertMapSetting takes integer i returns mapsetting * * @param {lua_State} L * @return {number} */ function ConvertMapSetting(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mapSettings[i]); return 1; } /** * constant native ConvertMapDensity takes integer i returns mapdensity * * @param {lua_State} L * @return {number} */ function ConvertMapDensity(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mapDensities[i]); return 1; } /** * constant native ConvertMapControl takes integer i returns mapcontrol * * @param {lua_State} L * @return {number} */ function ConvertMapControl(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mapControls[i]); return 1; } /** * constant native ConvertPlayerColor takes integer i returns playercolor * * @param {lua_State} L * @return {number} */ function ConvertPlayerColor(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.playerColors[i]); return 1; } /** * constant native ConvertPlayerSlotState takes integer i returns playerslotstate * * @param {lua_State} L * @return {number} */ function ConvertPlayerSlotState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.playerSlotStates[i]); return 1; } /** * constant native ConvertVolumeGroup takes integer i returns volumegroup * * @param {lua_State} L * @return {number} */ function ConvertVolumeGroup(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.volumeGroups[i]); return 1; } /** * constant native ConvertCameraField takes integer i returns camerafield * * @param {lua_State} L * @return {number} */ function ConvertCameraField(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.cameraFields[i]); return 1; } /** * constant native ConvertBlendMode takes integer i returns blendmode * * @param {lua_State} L * @return {number} */ function ConvertBlendMode(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.blendModes[i]); return 1; } /** * constant native ConvertRarityControl takes integer i returns raritycontrol * * @param {lua_State} L * @return {number} */ function ConvertRarityControl(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.rarityControls[i]); return 1; } /** * constant native ConvertTexMapFlags takes integer i returns texmapflags * * @param {lua_State} L * @return {number} */ function ConvertTexMapFlags(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.texMapFlags[i]); return 1; } /** * constant native ConvertFogState takes integer i returns fogstate * * @param {lua_State} L * @return {number} */ function ConvertFogState(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.fogStates[i]); return 1; } /** * constant native ConvertEffectType takes integer i returns effecttype * * @param {lua_State} L * @return {number} */ function ConvertEffectType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.effectTypes[i]); return 1; } /** * constant native ConvertVersion takes integer i returns version * * @param {lua_State} L * @return {number} */ function ConvertVersion(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.versions[i]); return 1; } /** * constant native ConvertItemType takes integer i returns itemtype * * @param {lua_State} L * @return {number} */ function ConvertItemType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.itemTypes[i]); return 1; } /** * constant native ConvertAttackType takes integer i returns attacktype * * @param {lua_State} L * @return {number} */ function ConvertAttackType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.attackTypes[i]); return 1; } /** * constant native ConvertDamageType takes integer i returns damagetype * * @param {lua_State} L * @return {number} */ function ConvertDamageType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.damageTypes[i]); return 1; } /** * constant native ConvertWeaponType takes integer i returns weapontype * * @param {lua_State} L * @return {number} */ function ConvertWeaponType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.weaponTypes[i]); return 1; } /** * constant native ConvertSoundType takes integer i returns soundtype * * @param {lua_State} L * @return {number} */ function ConvertSoundType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.soundTypes[i]); return 1; } /** * constant native ConvertPathingType takes integer i returns pathingtype * * @param {lua_State} L * @return {number} */ function ConvertPathingType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.pathingTypes[i]); return 1; } /** * constant native ConvertMouseButtonType takes integer i returns mousebuttontype * * @param {lua_State} L * @return {number} */ function ConvertMouseButtonType(L) { let i = luaL_checkinteger(L, 1); lua_pushlightuserdata(L, this.constantHandles.mouseButtonTypes[i]); return 1; } /** * constant native OrderId takes string orderIdString returns integer * * @param {lua_State} L * @return {number} */ function OrderId(L) { let orderIdString = luaL_checkstring(L, 1); console.warn('OrderId was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * constant native OrderId2String takes integer orderId returns string * * @param {lua_State} L * @return {number} */ function OrderId2String(L) { let orderId = luaL_checkinteger(L, 1); console.warn('OrderId2String was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * constant native UnitId takes string unitIdString returns integer * * @param {lua_State} L * @return {number} */ function UnitId(L) { let unitIdString = luaL_checkstring(L, 1); console.warn('UnitId was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * constant native UnitId2String takes integer unitId returns string * * @param {lua_State} L * @return {number} */ function UnitId2String(L) { let unitId = luaL_checkinteger(L, 1); console.warn('UnitId2String was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * constant native AbilityId takes string abilityIdString returns integer * * @param {lua_State} L * @return {number} */ function AbilityId(L) { let abilityIdString = luaL_checkstring(L, 1); console.warn('AbilityId was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * constant native AbilityId2String takes integer abilityId returns string * * @param {lua_State} L * @return {number} */ function AbilityId2String(L) { let abilityId = luaL_checkinteger(L, 1); console.warn('AbilityId2String was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * constant native GetObjectName takes integer objectId returns string * * @param {lua_State} L * @return {number} */ function GetObjectName(L) { let objectId = luaL_checkinteger(L, 1); console.warn('GetObjectName was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * constant native GetBJMaxPlayers takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetBJMaxPlayers(L) { lua_pushinteger(L, 28); return 1; } /** * constant native GetBJPlayerNeutralVictim takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetBJPlayerNeutralVictim(L) { lua_pushinteger(L, 24); return 1; } /** * constant native GetBJPlayerNeutralExtra takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetBJPlayerNeutralExtra(L) { lua_pushinteger(L, 25); return 1; } /** * constant native GetBJMaxPlayerSlots takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetBJMaxPlayerSlots(L) { lua_pushinteger(L, 24); return 1; } /** * constant native GetPlayerNeutralPassive takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetPlayerNeutralPassive(L) { lua_pushinteger(L, 26); return 1; } /** * constant native GetPlayerNeutralAggressive takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetPlayerNeutralAggressive(L) { lua_pushinteger(L, 27); return 1; } /** * native Deg2Rad takes real degrees returns real * * @param {lua_State} L * @return {number} */ function Deg2Rad(L) { let degrees = luaL_checknumber(L, 1); lua_pushnumber(L, degrees * (Math.PI / 180)); return 1; } /** * native Rad2Deg takes real radians returns real * * @param {lua_State} L * @return {number} */ function Rad2Deg(L) { let radians = luaL_checknumber(L, 1); lua_pushnumber(L, radians * (180 / Math.PI)); return 1; } /** * native Sin takes real radians returns real * * @param {lua_State} L * @return {number} */ function Sin(L) { let radians = luaL_checknumber(L, 1); lua_pushnumber(L, Math.sin(radians)); return 1; } /** * native Cos takes real radians returns real * * @param {lua_State} L * @return {number} */ function Cos(L) { let radians = luaL_checknumber(L, 1); lua_pushnumber(L, Math.cos(radians)); return 1; } /** * native Tan takes real radians returns real * * @param {lua_State} L * @return {number} */ function Tan(L) { let radians = luaL_checknumber(L, 1); lua_pushnumber(L, Math.tan(radians)); return 1; } /** * native Asin takes real y returns real * * @param {lua_State} L * @return {number} */ function Asin(L) { let y = luaL_checknumber(L, 1); lua_pushnumber(L, Math.asin(y)); return 1; } /** * native Acos takes real x returns real * * @param {lua_State} L * @return {number} */ function Acos(L) { let x = luaL_checknumber(L, 1); lua_pushnumber(L, Math.acos(x)); return 1; } /** * native Atan takes real x returns real * * @param {lua_State} L * @return {number} */ function Atan(L) { let x = luaL_checknumber(L, 1); lua_pushnumber(L, Math.atan(x)); return 1; } /** * native Atan2 takes real y, real x returns real * * @param {lua_State} L * @return {number} */ function Atan2(L) { let y = luaL_checknumber(L, 1); let x = luaL_checknumber(L, 2); lua_pushnumber(L, Math.atan2(y, x)); return 1; } /** * native SquareRoot takes real x returns real * * @param {lua_State} L * @return {number} */ function SquareRoot(L) { let x = luaL_checknumber(L, 1); lua_pushnumber(L, Math.sqrt(x)); return 1; } /** * native Pow takes real x, real power returns real * * @param {lua_State} L * @return {number} */ function Pow(L) { let x = luaL_checknumber(L, 1); let power = luaL_checknumber(L, 2); lua_pushnumber(L, Math.pow(x, power)); return 1; } /** * native I2R takes integer i returns real * * @param {lua_State} L * @return {number} */ function I2R(L) { let i = luaL_checkinteger(L, 1); lua_pushnumber(L, i); return 1; } /** * native R2I takes real r returns integer * * @param {lua_State} L * @return {number} */ function R2I(L) { let r = luaL_checknumber(L, 1); lua_pushinteger(L, r | 0); return 1; } /** * native I2S takes integer i returns string * * @param {lua_State} L * @return {number} */ function I2S(L) { let i = luaL_checkinteger(L, 1); console.warn('I2S was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native R2S takes real r returns string * * @param {lua_State} L * @return {number} */ function R2S(L) { let r = luaL_checknumber(L, 1); console.warn('R2S was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native R2SW takes real r, integer width, integer precision returns string * * @param {lua_State} L * @return {number} */ function R2SW(L) { let r = luaL_checknumber(L, 1); let width = luaL_checkinteger(L, 2); let precision = luaL_checkinteger(L, 3); console.warn('R2SW was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native S2I takes string s returns integer * * @param {lua_State} L * @return {number} */ function S2I(L) { let s = luaL_checkstring(L, 1); console.warn('S2I was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native S2R takes string s returns real * * @param {lua_State} L * @return {number} */ function S2R(L) { let s = luaL_checkstring(L, 1); console.warn('S2R was called but is not implemented :('); lua_pushnumber(L, 0); return 1; } /** * native GetHandleId takes handle h returns integer * * @param {lua_State} L * @return {number} */ function GetHandleId(L) { let h = lua_touserdata(L, 1); lua_pushinteger(L, h.handleId); return 1; } /** * native SubString takes string source, integer start, integer end_ returns string * * @param {lua_State} L * @return {number} */ function SubString(L) { let source = luaL_checkstring(L, 1); let start = luaL_checkinteger(L, 2); let end_ = luaL_checkinteger(L, 3); console.warn('SubString was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native StringLength takes string s returns integer * * @param {lua_State} L * @return {number} */ function StringLength(L) { let s = luaL_checkstring(L, 1); console.warn('StringLength was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native StringCase takes string source, boolean upper returns string * * @param {lua_State} L * @return {number} */ function StringCase(L) { let source = luaL_checkstring(L, 1); let upper = lua_toboolean(L, 2); console.warn('StringCase was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native StringHash takes string s returns integer * * @param {lua_State} L * @return {number} */ function StringHash(L) { let s = luaL_checkstring(L, 1); console.warn('StringHash was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native GetLocalizedString takes string source returns string * * @param {lua_State} L * @return {number} */ function GetLocalizedString(L) { let source = luaL_checkstring(L, 1); console.warn('GetLocalizedString was called but is not implemented :('); lua_pushstring(L, ''); return 1; } /** * native GetLocalizedHotkey takes string source returns integer * * @param {lua_State} L * @return {number} */ function GetLocalizedHotkey(L) { let source = luaL_checkstring(L, 1); console.warn('GetLocalizedHotkey was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native SetMapName takes string name returns nothing * * @param {lua_State} L * @return {number} */ function SetMapName(L) { let name = luaL_checkstring(L, 1); console.warn('SetMapName was called but is not implemented :('); return 0 } /** * native SetMapDescription takes string description returns nothing * * @param {lua_State} L * @return {number} */ function SetMapDescription(L) { let description = luaL_checkstring(L, 1); console.warn('SetMapDescription was called but is not implemented :('); return 0 } /** * native SetTeams takes integer teamcount returns nothing * * @param {lua_State} L * @return {number} */ function SetTeams(L) { let teamcount = luaL_checkinteger(L, 1); console.warn('SetTeams was called but is not implemented :('); return 0 } /** * native SetPlayers takes integer playercount returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayers(L) { let playercount = luaL_checkinteger(L, 1); console.warn('SetPlayers was called but is not implemented :('); return 0 } /** * native DefineStartLocation takes integer whichStartLoc, real x, real y returns nothing * * @param {lua_State} L * @return {number} */ function DefineStartLocation(L) { let whichStartLoc = luaL_checkinteger(L, 1); let x = luaL_checknumber(L, 2); let y = luaL_checknumber(L, 3); this.startLocations[whichStartLoc] = this.addHandle(new JassLocation(x, y)); return 0 } /** * native DefineStartLocationLoc takes integer whichStartLoc, location whichLocation returns nothing * * @param {lua_State} L * @return {number} */ function DefineStartLocationLoc(L) { let whichStartLoc = luaL_checkinteger(L, 1); let whichLocation = lua_touserdata(L, 2); console.warn('DefineStartLocationLoc was called but is not implemented :('); return 0 } /** * native SetStartLocPrioCount takes integer whichStartLoc, integer prioSlotCount returns nothing * * @param {lua_State} L * @return {number} */ function SetStartLocPrioCount(L) { let whichStartLoc = luaL_checkinteger(L, 1); let prioSlotCount = luaL_checkinteger(L, 2); console.warn('SetStartLocPrioCount was called but is not implemented :('); return 0 } /** * native SetStartLocPrio takes integer whichStartLoc, integer prioSlotIndex, integer otherStartLocIndex, startlocprio priority returns nothing * * @param {lua_State} L * @return {number} */ function SetStartLocPrio(L) { let whichStartLoc = luaL_checkinteger(L, 1); let prioSlotIndex = luaL_checkinteger(L, 2); let otherStartLocIndex = luaL_checkinteger(L, 3); let priority = lua_touserdata(L, 4); console.warn('SetStartLocPrio was called but is not implemented :('); return 0 } /** * native GetStartLocPrioSlot takes integer whichStartLoc, integer prioSlotIndex returns integer * * @param {lua_State} L * @return {number} */ function GetStartLocPrioSlot(L) { let whichStartLoc = luaL_checkinteger(L, 1); let prioSlotIndex = luaL_checkinteger(L, 2); console.warn('GetStartLocPrioSlot was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native GetStartLocPrio takes integer whichStartLoc, integer prioSlotIndex returns startlocprio * * @param {lua_State} L * @return {number} */ function GetStartLocPrio(L) { let whichStartLoc = luaL_checkinteger(L, 1); let prioSlotIndex = luaL_checkinteger(L, 2); console.warn('GetStartLocPrio was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * native SetGameTypeSupported takes gametype whichGameType, boolean value returns nothing * * @param {lua_State} L * @return {number} */ function SetGameTypeSupported(L) { let whichGameType = lua_touserdata(L, 1); let value = lua_toboolean(L, 2); console.warn('SetGameTypeSupported was called but is not implemented :('); return 0 } /** * native SetMapFlag takes mapflag whichMapFlag, boolean value returns nothing * * @param {lua_State} L * @return {number} */ function SetMapFlag(L) { let whichMapFlag = lua_touserdata(L, 1); let value = lua_toboolean(L, 2); console.warn('SetMapFlag was called but is not implemented :('); return 0 } /** * native SetGamePlacement takes placement whichPlacementType returns nothing * * @param {lua_State} L * @return {number} */ function SetGamePlacement(L) { let whichPlacementType = lua_touserdata(L, 1); console.warn('SetGamePlacement was called but is not implemented :('); return 0 } /** * native SetGameSpeed takes gamespeed whichspeed returns nothing * * @param {lua_State} L * @return {number} */ function SetGameSpeed(L) { let whichspeed = lua_touserdata(L, 1); console.warn('SetGameSpeed was called but is not implemented :('); return 0 } /** * native SetGameDifficulty takes gamedifficulty whichdifficulty returns nothing * * @param {lua_State} L * @return {number} */ function SetGameDifficulty(L) { let whichdifficulty = lua_touserdata(L, 1); console.warn('SetGameDifficulty was called but is not implemented :('); return 0 } /** * native SetResourceDensity takes mapdensity whichdensity returns nothing * * @param {lua_State} L * @return {number} */ function SetResourceDensity(L) { let whichdensity = lua_touserdata(L, 1); console.warn('SetResourceDensity was called but is not implemented :('); return 0 } /** * native SetCreatureDensity takes mapdensity whichdensity returns nothing * * @param {lua_State} L * @return {number} */ function SetCreatureDensity(L) { let whichdensity = lua_touserdata(L, 1); console.warn('SetCreatureDensity was called but is not implemented :('); return 0 } /** * native GetTeams takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetTeams(L) { console.warn('GetTeams was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native GetPlayers takes nothing returns integer * * @param {lua_State} L * @return {number} */ function GetPlayers(L) { console.warn('GetPlayers was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native IsGameTypeSupported takes gametype whichGameType returns boolean * * @param {lua_State} L * @return {number} */ function IsGameTypeSupported(L) { let whichGameType = lua_touserdata(L, 1); console.warn('IsGameTypeSupported was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GetGameTypeSelected takes nothing returns gametype * * @param {lua_State} L * @return {number} */ function GetGameTypeSelected(L) { console.warn('GetGameTypeSelected was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * native IsMapFlagSet takes mapflag whichMapFlag returns boolean * * @param {lua_State} L * @return {number} */ function IsMapFlagSet(L) { let whichMapFlag = lua_touserdata(L, 1); console.warn('IsMapFlagSet was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * constant native GetGamePlacement takes nothing returns placement * * @param {lua_State} L * @return {number} */ function GetGamePlacement(L) { console.warn('GetGamePlacement was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * constant native GetGameSpeed takes nothing returns gamespeed * * @param {lua_State} L * @return {number} */ function GetGameSpeed(L) { console.warn('GetGameSpeed was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * constant native GetGameDifficulty takes nothing returns gamedifficulty * * @param {lua_State} L * @return {number} */ function GetGameDifficulty(L) { console.warn('GetGameDifficulty was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * constant native GetResourceDensity takes nothing returns mapdensity * * @param {lua_State} L * @return {number} */ function GetResourceDensity(L) { console.warn('GetResourceDensity was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * constant native GetCreatureDensity takes nothing returns mapdensity * * @param {lua_State} L * @return {number} */ function GetCreatureDensity(L) { console.warn('GetCreatureDensity was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * constant native GetStartLocationX takes integer whichStartLocation returns real * * @param {lua_State} L * @return {number} */ function GetStartLocationX(L) { let whichStartLocation = luaL_checkinteger(L, 1); console.warn('GetStartLocationX was called but is not implemented :('); lua_pushnumber(L, 0); return 1; } /** * constant native GetStartLocationY takes integer whichStartLocation returns real * * @param {lua_State} L * @return {number} */ function GetStartLocationY(L) { let whichStartLocation = luaL_checkinteger(L, 1); console.warn('GetStartLocationY was called but is not implemented :('); lua_pushnumber(L, 0); return 1; } /** * constant native GetStartLocationLoc takes integer whichStartLocation returns location * * @param {lua_State} L * @return {number} */ function GetStartLocationLoc(L) { let whichStartLocation = luaL_checkinteger(L, 1); console.warn('GetStartLocationLoc was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * native SetPlayerTeam takes player whichPlayer, integer whichTeam returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerTeam(L) { let whichPlayer = lua_touserdata(L, 1); let whichTeam = luaL_checkinteger(L, 2); console.warn('SetPlayerTeam was called but is not implemented :('); return 0 } /** * native SetPlayerStartLocation takes player whichPlayer, integer startLocIndex returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerStartLocation(L) { let whichPlayer = lua_touserdata(L, 1); let startLocIndex = luaL_checkinteger(L, 2); whichPlayer.startLocation = startLocIndex; return 0 } /** * native ForcePlayerStartLocation takes player whichPlayer, integer startLocIndex returns nothing * * @param {lua_State} L * @return {number} */ function ForcePlayerStartLocation(L) { let whichPlayer = lua_touserdata(L, 1); let startLocIndex = luaL_checkinteger(L, 2); console.warn('ForcePlayerStartLocation was called but is not implemented :('); return 0 } /** * native SetPlayerColor takes player whichPlayer, playercolor color returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerColor(L) { let whichPlayer = lua_touserdata(L, 1); let color = lua_touserdata(L, 2); whichPlayer.color = color; return 0 } /** * native SetPlayerAlliance takes player sourcePlayer, player otherPlayer, alliancetype whichAllianceSetting, boolean value returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerAlliance(L) { let sourcePlayer = lua_touserdata(L, 1); let otherPlayer = lua_touserdata(L, 2); let whichAllianceSetting = lua_touserdata(L, 3); let value = lua_toboolean(L, 4); console.warn('SetPlayerAlliance was called but is not implemented :('); return 0 } /** * native SetPlayerTaxRate takes player sourcePlayer, player otherPlayer, playerstate whichResource, integer rate returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerTaxRate(L) { let sourcePlayer = lua_touserdata(L, 1); let otherPlayer = lua_touserdata(L, 2); let whichResource = lua_touserdata(L, 3); let rate = luaL_checkinteger(L, 4); console.warn('SetPlayerTaxRate was called but is not implemented :('); return 0 } /** * native SetPlayerRacePreference takes player whichPlayer, racepreference whichRacePreference returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerRacePreference(L) { let whichPlayer = lua_touserdata(L, 1); let whichRacePreference = lua_touserdata(L, 2); console.warn('SetPlayerRacePreference was called but is not implemented :('); return 0 } /** * native SetPlayerRaceSelectable takes player whichPlayer, boolean value returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerRaceSelectable(L) { let whichPlayer = lua_touserdata(L, 1); let value = lua_toboolean(L, 2); whichPlayer.raceSelectable = value; return 0 } /** * native SetPlayerController takes player whichPlayer, mapcontrol controlType returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerController(L) { let whichPlayer = lua_touserdata(L, 1); let controlType = lua_touserdata(L, 2); whichPlayer.controller = controlType; return 0 } /** * native SetPlayerName takes player whichPlayer, string name returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerName(L) { let whichPlayer = lua_touserdata(L, 1); let name = luaL_checkstring(L, 2); whichPlayer.name = name; return 0 } /** * native SetPlayerOnScoreScreen takes player whichPlayer, boolean flag returns nothing * * @param {lua_State} L * @return {number} */ function SetPlayerOnScoreScreen(L) { let whichPlayer = lua_touserdata(L, 1); let flag = lua_toboolean(L, 2); console.warn('SetPlayerOnScoreScreen was called but is not implemented :('); return 0 } /** * native GetPlayerTeam takes player whichPlayer returns integer * * @param {lua_State} L * @return {number} */ function GetPlayerTeam(L) { let whichPlayer = lua_touserdata(L, 1); console.warn('GetPlayerTeam was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native GetPlayerStartLocation takes player whichPlayer returns integer * * @param {lua_State} L * @return {number} */ function GetPlayerStartLocation(L) { let whichPlayer = lua_touserdata(L, 1); lua_pushinteger(L, whichPlayer.startLocation); return 1; } /** * native GetPlayerColor takes player whichPlayer returns playercolor * * @param {lua_State} L * @return {number} */ function GetPlayerColor(L) { let whichPlayer = lua_touserdata(L, 1); lua_pushlightuserdata(L, whichPlayer.color); return 1; } /** * native GetPlayerSelectable takes player whichPlayer returns boolean * * @param {lua_State} L * @return {number} */ function GetPlayerSelectable(L) { let whichPlayer = lua_touserdata(L, 1); console.warn('GetPlayerSelectable was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GetPlayerController takes player whichPlayer returns mapcontrol * * @param {lua_State} L * @return {number} */ function GetPlayerController(L) { let whichPlayer = lua_touserdata(L, 1); lua_pushlightuserdata(L, whichPlayer.controller); return 1; } /** * native GetPlayerSlotState takes player whichPlayer returns playerslotstate * * @param {lua_State} L * @return {number} */ function GetPlayerSlotState(L) { let whichPlayer = lua_touserdata(L, 1); console.warn('GetPlayerSlotState was called but is not implemented :('); lua_pushlightuserdata(L, {name: 'FAKE'}); return 1; } /** * native GetPlayerTaxRate takes player sourcePlayer, player otherPlayer, playerstate whichResource returns integer * * @param {lua_State} L * @return {number} */ function GetPlayerTaxRate(L) { let sourcePlayer = lua_touserdata(L, 1); let otherPlayer = lua_touserdata(L, 2); let whichResource = lua_touserdata(L, 3); console.warn('GetPlayerTaxRate was called but is not implemented :('); lua_pushinteger(L, 0); return 1; } /** * native IsPlayerRacePrefSet takes player whichPlayer, racepreference pref returns boolean * * @param {lua_State} L * @return {number} */ function IsPlayerRacePrefSet(L) { let whichPlayer = lua_touserdata(L, 1); let pref = lua_touserdata(L, 2); console.warn('IsPlayerRacePrefSet was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GetPlayerName takes player whichPlayer returns string * * @param {lua_State} L * @return {number} */ function GetPlayerName(L) { let whichPlayer = lua_touserdata(L, 1); lua_pushstring(L, whichPlayer.name); return 1; } /** * native CreateTimer takes nothing returns timer * * @param {lua_State} L * @return {number} */ function CreateTimer(L) { lua_pushlightuserdata(L, this.addHandle(new JassTimer())); return 1; } /** * native DestroyTimer takes timer whichTimer returns nothing * * @param {lua_State} L * @return {number} */ function DestroyTimer(L) { let whichTimer = lua_touserdata(L, 1); // In case it's in the middle of running, remove it. this.timers.delete(whichTimer); this.freeHandle(whichTimer); return 0 } /** * native TimerStart takes timer whichTimer, real timeout, boolean periodic, code handlerFunc returns nothing * * @param {lua_State} L * @return {number} */ function TimerStart(L) { let whichTimer = lua_touserdata(L, 1); let timeout = luaL_checknumber(L, 2); let periodic = lua_toboolean(L, 3); let handlerFunc = luaL_ref(L, LUA_REGISTRYINDEX); whichTimer.elapsed = 0; whichTimer.timeout = timeout; whichTimer.periodic = periodic; whichTimer.handlerFunc = handlerFunc; this.timers.add(whichTimer); return 0 } /** * native TimerGetElapsed takes timer whichTimer returns real * * @param {lua_State} L * @return {number} */ function TimerGetElapsed(L) { let whichTimer = lua_touserdata(L, 1); lua_pushnumber(L, whichTimer.elapsed); return 1; } /** * native TimerGetRemaining takes timer whichTimer returns real * * @param {lua_State} L * @return {number} */ function TimerGetRemaining(L) { let whichTimer = lua_touserdata(L, 1); lua_pushnumber(L, whichTimer.timeout - whichTimer.elapsed); return 1; } /** * native TimerGetTimeout takes timer whichTimer returns real * * @param {lua_State} L * @return {number} */ function TimerGetTimeout(L) { let whichTimer = lua_touserdata(L, 1); lua_pushnumber(L, whichTimer.timeout); return 1; } /** * native PauseTimer takes timer whichTimer returns nothing * * @param {lua_State} L * @return {number} */ function PauseTimer(L) { let whichTimer = lua_touserdata(L, 1); this.timers.delete(whichTimer); return 0 } /** * native ResumeTimer takes timer whichTimer returns nothing * * @param {lua_State} L * @return {number} */ function ResumeTimer(L) { let whichTimer = lua_touserdata(L, 1); this.timers.add(whichTimer); return 0 } /** * native GetExpiredTimer takes nothing returns timer * * @param {lua_State} L * @return {number} */ function GetExpiredTimer(L) { lua_pushlightuserdata(L, this.currentThread.expiredTimer); return 1; } /** * native CreateGroup takes nothing returns group * * @param {lua_State} L * @return {number} */ function CreateGroup(L) { lua_pushlightuserdata(L, this.addHandle(new JassGroup())); return 1; } /** * native DestroyGroup takes group whichGroup returns nothing * * @param {lua_State} L * @return {number} */ function DestroyGroup(L) { let whichGroup = lua_touserdata(L, 1); this.freeHandle(whichGroup); return 0 } /** * native GroupAddUnit takes group whichGroup, unit whichUnit returns nothing * * @param {lua_State} L * @return {number} */ function GroupAddUnit(L) { let whichGroup = lua_touserdata(L, 1); let whichUnit = lua_touserdata(L, 2); whichGroup.units.add(whichUnit); return 0 } /** * native GroupRemoveUnit takes group whichGroup, unit whichUnit returns nothing * * @param {lua_State} L * @return {number} */ function GroupRemoveUnit(L) { let whichGroup = lua_touserdata(L, 1); let whichUnit = lua_touserdata(L, 2); whichGroup.units.delete(whichUnit); return 0 } /** * native GroupClear takes group whichGroup returns nothing * * @param {lua_State} L * @return {number} */ function GroupClear(L) { let whichGroup = lua_touserdata(L, 1); whichGroup.units.clear(); return 0 } /** * native GroupEnumUnitsOfType takes group whichGroup, string unitname, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsOfType(L) { let whichGroup = lua_touserdata(L, 1); let unitname = luaL_checkstring(L, 2); let filter = lua_touserdata(L, 3); console.warn('GroupEnumUnitsOfType was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsOfPlayer takes group whichGroup, player whichPlayer, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsOfPlayer(L) { let whichGroup = lua_touserdata(L, 1); let whichPlayer = lua_touserdata(L, 2); let filter = lua_touserdata(L, 3); console.warn('GroupEnumUnitsOfPlayer was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsOfTypeCounted takes group whichGroup, string unitname, boolexpr filter, integer countLimit returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsOfTypeCounted(L) { let whichGroup = lua_touserdata(L, 1); let unitname = luaL_checkstring(L, 2); let filter = lua_touserdata(L, 3); let countLimit = luaL_checkinteger(L, 4); console.warn('GroupEnumUnitsOfTypeCounted was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRect takes group whichGroup, rect r, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRect(L) { let whichGroup = lua_touserdata(L, 1); let r = lua_touserdata(L, 2); let filter = lua_touserdata(L, 3); console.warn('GroupEnumUnitsInRect was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRectCounted takes group whichGroup, rect r, boolexpr filter, integer countLimit returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRectCounted(L) { let whichGroup = lua_touserdata(L, 1); let r = lua_touserdata(L, 2); let filter = lua_touserdata(L, 3); let countLimit = luaL_checkinteger(L, 4); console.warn('GroupEnumUnitsInRectCounted was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRange(L) { let whichGroup = lua_touserdata(L, 1); let x = luaL_checknumber(L, 2); let y = luaL_checknumber(L, 3); let radius = luaL_checknumber(L, 4); let filter = lua_touserdata(L, 5); console.warn('GroupEnumUnitsInRange was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRangeOfLoc(L) { let whichGroup = lua_touserdata(L, 1); let whichLocation = lua_touserdata(L, 2); let radius = luaL_checknumber(L, 3); let filter = lua_touserdata(L, 4); console.warn('GroupEnumUnitsInRangeOfLoc was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRangeCounted takes group whichGroup, real x, real y, real radius, boolexpr filter, integer countLimit returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRangeCounted(L) { let whichGroup = lua_touserdata(L, 1); let x = luaL_checknumber(L, 2); let y = luaL_checknumber(L, 3); let radius = luaL_checknumber(L, 4); let filter = lua_touserdata(L, 5); let countLimit = luaL_checkinteger(L, 6); console.warn('GroupEnumUnitsInRangeCounted was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsInRangeOfLocCounted takes group whichGroup, location whichLocation, real radius, boolexpr filter, integer countLimit returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsInRangeOfLocCounted(L) { let whichGroup = lua_touserdata(L, 1); let whichLocation = lua_touserdata(L, 2); let radius = luaL_checknumber(L, 3); let filter = lua_touserdata(L, 4); let countLimit = luaL_checkinteger(L, 5); console.warn('GroupEnumUnitsInRangeOfLocCounted was called but is not implemented :('); return 0 } /** * native GroupEnumUnitsSelected takes group whichGroup, player whichPlayer, boolexpr filter returns nothing * * @param {lua_State} L * @return {number} */ function GroupEnumUnitsSelected(L) { let whichGroup = lua_touserdata(L, 1); let whichPlayer = lua_touserdata(L, 2); let filter = lua_touserdata(L, 3); console.warn('GroupEnumUnitsSelected was called but is not implemented :('); return 0 } /** * native GroupImmediateOrder takes group whichGroup, string order returns boolean * * @param {lua_State} L * @return {number} */ function GroupImmediateOrder(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkstring(L, 2); console.warn('GroupImmediateOrder was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GroupImmediateOrderById takes group whichGroup, integer order returns boolean * * @param {lua_State} L * @return {number} */ function GroupImmediateOrderById(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkinteger(L, 2); console.warn('GroupImmediateOrderById was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean * * @param {lua_State} L * @return {number} */ function GroupPointOrder(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkstring(L, 2); let x = luaL_checknumber(L, 3); let y = luaL_checknumber(L, 4); console.warn('GroupPointOrder was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean * * @param {lua_State} L * @return {number} */ function GroupPointOrderLoc(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkstring(L, 2); let whichLocation = lua_touserdata(L, 3); console.warn('GroupPointOrderLoc was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean * * @param {lua_State} L * @return {number} */ function GroupPointOrderById(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkinteger(L, 2); let x = luaL_checknumber(L, 3); let y = luaL_checknumber(L, 4); console.warn('GroupPointOrderById was called but is not implemented :('); lua_pushboolean(L, false); return 1; } /** * native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean * * @param {lua_State} L * @return {number} */ function GroupPointOrderByIdLoc(L) { let whichGroup = lua_touserdata(L, 1); let order = luaL_checkinteger(L, 2); let whichLocation = lua_touserdata(L, 3); console.warn('GroupPointOrderByIdLoc was called but is not implemented :('); lua_pushboolean(L, false); return 1; }