hedgewars/uScript.pas.temp
author sheepluva
Sat, 29 Apr 2017 23:45:14 +0200
changeset 12383 e3d9abcc427a
permissions -rw-r--r--
cmake: Fix SDL2 header version detection
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12383
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     1
(*
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     3
 * Copyright (c) 2004-2015 Andrey Korotaev <unC0Rr@gmail.com>
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     4
 *
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     8
 *
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    12
 * GNU General Public License for more details.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    13
 *
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    17
 *)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    18
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    19
{$INCLUDE "options.inc"}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    20
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    21
unit uScript;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    22
(*
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    23
 * This unit defines, implements and registers functions and
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    24
 * variables/constants bindings for usage in Lua scripts.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    25
 *
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    26
 * Please keep https://hedgewars.org/kb/LuaAPI up to date!
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    27
 *
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    28
 * Note: If you add a new function, make sure to test if _all_ parameters
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    29
 *       work as intended! (Especially conversions errors can sneak in
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    30
 *       unnoticed and render the parameter useless!)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    31
 *)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    32
interface
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    33
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    34
procedure ScriptPrintStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    35
procedure ScriptClearStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    36
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    37
procedure ScriptLoad(name : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    38
procedure ScriptOnPreviewInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    39
procedure ScriptOnGameInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    40
procedure ScriptOnScreenResize;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    41
procedure ScriptSetInteger(name : shortstring; value : LongInt);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    42
procedure ScriptSetString(name : shortstring; value : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    43
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    44
procedure ScriptCall(fname : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    45
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    46
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    47
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    48
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    49
function ScriptExists(fname : shortstring) : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    50
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    51
procedure LuaParseString(s: shortString);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    52
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    53
//function ParseCommandOverride(key, value : shortstring) : shortstring;  This did not work out well
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    54
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    55
procedure initModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    56
procedure freeModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    57
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    58
implementation
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    59
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    60
uses LuaPas,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    61
    uConsole,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    62
    uConsts,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    63
    uGears,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    64
    uGearsList,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    65
    uGearsUtils,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    66
    uFloat,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    67
    uWorld,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    68
    uAmmos,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    69
    uTeams,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    70
    uSound,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    71
    uChat,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    72
    uStats,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    73
    uStore,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    74
    uRandom,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    75
    uTypes,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    76
    uVariables,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    77
    uCommands,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    78
    uCaptions,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    79
    uDebug,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    80
    uCollisions,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    81
    uRenderUtils,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    82
    uTextures,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    83
    uLandGraphics,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    84
    uUtils,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    85
    uIO,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    86
    uVisualGearsList,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    87
    uGearsHandlersMess,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    88
    uPhysFSLayer,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    89
    SDLh
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    90
{$IFNDEF PAS2C}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    91
    , typinfo
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    92
{$ENDIF}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    93
    ;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    94
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    95
var luaState : Plua_State;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    96
    ScriptAmmoLoadout : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    97
    ScriptAmmoProbability : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    98
    ScriptAmmoDelay : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
    99
    ScriptAmmoReinforcement : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   100
    ScriptLoaded : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   101
    mapDims : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   102
    PointsBuffer: shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   103
    prevCursorPoint: TPoint;  // why is tpoint still in sdlh...
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   104
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   105
{$IFDEF USE_LUA_SCRIPT}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   106
procedure ScriptPrepareAmmoStore; forward;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   107
procedure ScriptApplyAmmoStore; forward;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   108
procedure ScriptSetAmmo(ammo : TAmmoType; count, probability, delay, reinforcement: Byte); forward;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   109
procedure ScriptSetAmmoDelay(ammo : TAmmoType; delay: Byte); forward;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   110
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   111
var LuaDebugInfo: lua_Debug;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   112
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   113
procedure SetGlobals; forward;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   114
procedure LuaParseString(s: shortString);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   115
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   116
    SetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   117
    AddFileLog('[Lua] input string: ' + s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   118
    AddChatString(#3 + '[Lua] > ' + s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   119
    if luaL_dostring(luaState, Str2PChar(s)) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   120
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   121
        AddFileLog('[Lua] input string parsing error!');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   122
        AddChatString(#5 + '[Lua] Error while parsing!');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   123
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   124
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   125
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   126
function LuaUpdateDebugInfo(): Boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   127
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   128
    FillChar(LuaDebugInfo, sizeof(LuaDebugInfo), 0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   129
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   130
    if lua_getstack(luaState, 1, @LuaDebugInfo) = 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   131
        exit(false); // stack not deep enough
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   132
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   133
    // get source name and line count
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   134
    lua_getinfo(luaState, PChar('Sl'), @LuaDebugInfo);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   135
    exit(true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   136
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   137
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   138
procedure LuaError(s: shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   139
var src: shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   140
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   141
    maxsrclen = 20;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   142
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   143
    if LuaUpdateDebugInfo() then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   144
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   145
        src:= StrPas(LuaDebugInfo.source);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   146
        s:= 'LUA ERROR [ ... '
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   147
            + copy(src, Length(src) - maxsrclen, maxsrclen - 3) + ':'
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   148
            + inttostr(LuaDebugInfo.currentLine) + ']: ' + s;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   149
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   150
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   151
        s:= 'LUA ERROR: ' + s;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   152
    WriteLnToConsole(s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   153
    AddChatString(#5 + s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   154
    if cTestLua then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   155
        halt(HaltTestLuaError);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   156
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   157
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   158
procedure LuaCallError(error, call, paramsyntax: shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   159
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   160
    LuaError(call + ': ' + error);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   161
    LuaError('-- SYNTAX: ' + call + ' ( ' + paramsyntax + ' )');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   162
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   163
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   164
procedure LuaParameterCountError(expected, call, paramsyntax: shortstring; wrongcount: LongInt); inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   165
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   166
    // TODO: i18n?
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   167
    LuaCallError('Wrong number of parameters! (is: ' + inttostr(wrongcount) + ', should be: '+ expected + ')', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   168
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   169
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   170
// compare with allowed count
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   171
function CheckLuaParamCount(L : Plua_State; count: LongInt; call, paramsyntax: shortstring): boolean; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   172
var c: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   173
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   174
    c:= lua_gettop(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   175
    if c <> count then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   176
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   177
        LuaParameterCountError('exactly ' + inttostr(count), call, paramsyntax, c);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   178
        exit(false);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   179
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   180
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   181
    CheckLuaParamCount:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   182
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   183
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   184
// check if is either count1 or count2
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   185
function CheckAndFetchParamCount(L : Plua_State; count1, count2: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   186
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   187
    actual:= lua_gettop(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   188
    if (actual <> count1) and (actual <> count2) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   189
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   190
        LuaParameterCountError('either ' + inttostr(count1) + ' or ' + inttostr(count2), call, paramsyntax, actual);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   191
        exit(false);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   192
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   193
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   194
    CheckAndFetchParamCount:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   195
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   196
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   197
// check if is in range of count1 and count2
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   198
function CheckAndFetchParamCountRange(L : Plua_State; count1, count2: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   199
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   200
    actual:= lua_gettop(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   201
    if (actual < count1) or (actual > count2) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   202
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   203
        LuaParameterCountError('at least ' + inttostr(count1) + ', but at most ' + inttostr(count2), call, paramsyntax, actual);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   204
        exit(false);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   205
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   206
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   207
    CheckAndFetchParamCountRange:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   208
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   209
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   210
// check if is same or higher as minCount
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   211
function CheckAndFetchLuaParamMinCount(L : Plua_State; minCount: LongInt; call, paramsyntax: shortstring; out actual: LongInt): boolean; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   212
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   213
    actual:= lua_gettop(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   214
    if (actual < minCount) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   215
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   216
        LuaParameterCountError(inttostr(minCount) + ' or more', call, paramsyntax, actual);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   217
        exit(false);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   218
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   219
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   220
    CheckAndFetchLuaParamMinCount:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   221
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   222
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   223
function LuaToGearTypeOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   224
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   225
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   226
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   227
    if (i < ord(Low(TGearType))) or (i > ord(High(TGearType))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   228
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   229
        LuaCallError('Invalid gearType!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   230
        LuaToGearTypeOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   231
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   232
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   233
        LuaToGearTypeOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   234
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   235
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   236
function LuaToVisualGearTypeOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   237
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   238
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   239
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   240
    if (i < ord(Low(TVisualGearType))) or (i > ord(High(TVisualGearType))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   241
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   242
        LuaCallError('Invalid visualGearType!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   243
        LuaToVisualGearTypeOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   244
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   245
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   246
        LuaToVisualGearTypeOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   247
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   248
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   249
function LuaToAmmoTypeOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   250
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   251
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   252
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   253
    if (i < ord(Low(TAmmoType))) or (i > ord(High(TAmmoType))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   254
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   255
        LuaCallError('Invalid ammoType!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   256
        LuaToAmmoTypeOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   257
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   258
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   259
        LuaToAmmoTypeOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   260
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   261
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   262
function LuaToStatInfoTypeOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   263
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   264
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   265
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   266
    if (i < ord(Low(TStatInfoType))) or (i > ord(High(TStatInfoType))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   267
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   268
        LuaCallError('Invalid statInfoType!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   269
        LuaToStatInfoTypeOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   270
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   271
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   272
        LuaToStatInfoTypeOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   273
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   274
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   275
function LuaToSoundOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   276
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   277
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   278
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   279
    if (i < ord(Low(TSound))) or (i > ord(High(TSound))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   280
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   281
        LuaCallError('Invalid soundId!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   282
        LuaToSoundOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   283
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   284
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   285
        LuaToSoundOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   286
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   287
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   288
function LuaToHogEffectOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   289
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   290
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   291
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   292
    if (i < ord(Low(THogEffect))) or (i > ord(High(THogEffect))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   293
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   294
        LuaCallError('Invalid effect type!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   295
        LuaToHogEffectOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   296
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   297
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   298
        LuaToHogEffectOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   299
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   300
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   301
function LuaToCapGroupOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   302
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   303
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   304
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   305
    if (i < ord(Low(TCapGroup))) or (i > ord(High(TCapGroup))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   306
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   307
        LuaCallError('Invalid capgroup type!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   308
        LuaToCapGroupOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   309
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   310
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   311
        LuaToCapGroupOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   312
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   313
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   314
function LuaToSpriteOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   315
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   316
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   317
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   318
    if (i < ord(Low(TSprite))) or (i > ord(High(TSprite))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   319
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   320
        LuaCallError('Invalid sprite id!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   321
        LuaToSpriteOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   322
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   323
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   324
        LuaToSpriteOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   325
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   326
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   327
function LuaToMapGenOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   328
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   329
    if lua_isnoneornil(L, i) then i:= -1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   330
    else i:= lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   331
    if (i < ord(Low(TMapGen))) or (i > ord(High(TMapGen))) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   332
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   333
        LuaCallError('Invalid mapgen id!', call, paramsyntax);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   334
        LuaToMapGenOrd:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   335
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   336
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   337
        LuaToMapGenOrd:= i;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   338
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   339
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   340
// wrapped calls
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   341
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   342
// functions called from Lua:
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   343
// function(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   344
// where L contains the state, returns the number of return values on the stack
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   345
// call CheckLuaParamCount or CheckAndFetchParamCount
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   346
// to validate/get the number of passed arguments (see their call definitions)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   347
//
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   348
// use as return value the number of variables pushed back to the lua script
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   349
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   350
function lc_band(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   351
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   352
    if CheckLuaParamCount(L, 2, 'band', 'value1, value2') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   353
        lua_pushinteger(L, lua_tointeger(L, 2) and lua_tointeger(L, 1))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   354
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   355
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   356
    lc_band := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   357
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   358
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   359
function lc_bor(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   360
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   361
    if CheckLuaParamCount(L, 2, 'bor', 'value1, value2') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   362
        lua_pushinteger(L, lua_tointeger(L, 2) or lua_tointeger(L, 1))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   363
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   364
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   365
    lc_bor := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   366
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   367
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   368
function lc_bnot(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   369
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   370
    if CheckLuaParamCount(L, 1, 'bnot', 'value') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   371
        lua_pushinteger(L, (not lua_tointeger(L, 1)))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   372
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   373
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   374
    lc_bnot := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   375
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   376
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   377
function lc_div(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   378
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   379
    if CheckLuaParamCount(L, 2, 'div', 'dividend, divisor') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   380
        lua_pushinteger(L, lua_tointeger(L, 1) div lua_tointeger(L, 2))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   381
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   382
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   383
    lc_div := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   384
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   385
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   386
function lc_getinputmask(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   387
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   388
    if CheckLuaParamCount(L, 0, 'GetInputMask', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   389
        lua_pushinteger(L, InputMask);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   390
    lc_getinputmask:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   391
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   392
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   393
function lc_setinputmask(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   394
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   395
    if CheckLuaParamCount(L, 1, 'SetInputMask', 'mask') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   396
        InputMask:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   397
    lc_setinputmask:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   398
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   399
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   400
function lc_writelntoconsole(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   401
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   402
    if CheckLuaParamCount(L, 1, 'WriteLnToConsole', 'string') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   403
        WriteLnToConsole('Lua: ' + lua_tostring(L ,1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   404
    lc_writelntoconsole:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   405
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   406
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   407
function lc_parsecommand(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   408
var t: PChar;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   409
    i,c: LongWord;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   410
    s: shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   411
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   412
    if CheckLuaParamCount(L, 1, 'ParseCommand', 'string') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   413
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   414
        t:= lua_tolstring(L, 1, Psize_t(@c));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   415
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   416
        for i:= 1 to c do s[i]:= t[i-1];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   417
        s[0]:= char(c);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   418
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   419
        ParseCommand(s, true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   420
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   421
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   422
    lc_parsecommand:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   423
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   424
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   425
// sets weapon to the desired ammo type
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   426
function lc_setweapon(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   427
var at: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   428
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   429
    call = 'SetWeapon';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   430
    params = 'ammoType';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   431
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   432
    // no point to run this without any CurrentHedgehog
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   433
    if (CurrentHedgehog <> nil) and (CheckLuaParamCount(L, 1, call, params)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   434
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   435
        at:= LuaToAmmoTypeOrd(L, 1, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   436
        if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   437
            ParseCommand('setweap ' + char(at), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   438
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   439
    lc_setweapon:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   440
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   441
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   442
// enable/disable cinematic effects
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   443
function lc_setcinematicmode(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   444
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   445
    call = 'SetCinematicMode';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   446
    params = 'enable';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   447
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   448
    if (CheckLuaParamCount(L, 1, call, params)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   449
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   450
        CinematicScript:= lua_toboolean(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   451
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   452
    lc_setcinematicmode:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   453
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   454
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   455
// no parameter means reset to default (and 0 means unlimited)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   456
function lc_setmaxbuilddistance(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   457
var np: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   458
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   459
    call = 'SetMaxBuildDistance';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   460
    params = '[ distInPx ]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   461
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   462
    if CheckAndFetchParamCountRange(L, 0, 1, call, params, np) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   463
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   464
        if np = 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   465
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   466
            // no args? reset
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   467
            cBuildMaxDist:= cDefaultBuildMaxDist;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   468
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   469
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   470
            CBuildMaxDist:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   471
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   472
    lc_setmaxbuilddistance:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   473
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   474
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   475
// sets weapon to whatever weapons is next (wraps around, amSkip is skipped)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   476
function lc_setnextweapon(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   477
var at          : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   478
    nextAmmo    : TAmmo;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   479
    s, a, cs, fa: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   480
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   481
    call = 'SetNextWeapon';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   482
    params = '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   483
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   484
    if (CurrentHedgehog <> nil) and (CheckLuaParamCount(L, 0, call, params)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   485
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   486
        at:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   487
        with CurrentHedgehog^ do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   488
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   489
            cs:= 0; // current slot
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   490
            fa:= 0; // first ammo item to check
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   491
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   492
            // if something is selected, find it is successor
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   493
            if curAmmoType <> amNothing then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   494
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   495
                // get current slot index
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   496
                cs:= Ammoz[CurAmmoType].Slot;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   497
                // find current ammo index
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   498
                while (fa < cMaxSlotAmmoIndex)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   499
                    and (Ammo^[cs, fa].AmmoType <> CurAmmoType) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   500
                        inc(fa);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   501
                // increase once more because we will not successor
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   502
                inc(fa);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   503
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   504
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   505
            // find first available ammo
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   506
            // revisit current slot too (current item might not be first)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   507
            for s:= cs to cs + cMaxSlotIndex + 1 do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   508
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   509
                for a:= fa to cMaxSlotAmmoIndex do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   510
                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   511
                    // check if we went full circle
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   512
                    if (a = fa) and (s = cs + cMaxSlotIndex + 1)  then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   513
                        exit(0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   514
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   515
                    // get ammo
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   516
                    nextAmmo:= Ammo^[s mod (cMaxSlotIndex + 1), a];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   517
                    // only switch to ammos the hog actually has
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   518
                    if (nextAmmo.AmmoType <> amNothing)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   519
                        and (nextAmmo.AmmoType <> amSkip) and (nextAmmo.Count > 0) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   520
                            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   521
                            at:= ord(nextAmmo.AmmoType);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   522
                            break;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   523
                            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   524
                    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   525
                // stop slot loop if something was found
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   526
                if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   527
                    break;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   528
                // check following slots starting with first item
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   529
                fa:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   530
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   531
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   532
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   533
        if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   534
            ParseCommand('setweap ' + char(at), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   535
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   536
    lc_setnextweapon:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   537
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   538
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   539
function lc_showmission(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   540
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   541
    if CheckLuaParamCount(L, 5, 'ShowMission', 'caption, subcaption, text, icon, time') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   542
        ShowMission(lua_tostringA(L, 1), lua_tostringA(L, 2), lua_tostringA(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   543
    lc_showmission:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   544
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   545
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   546
function lc_hidemission(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   547
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   548
    L:= L; // avoid compiler hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   549
    HideMission;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   550
    lc_hidemission:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   551
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   552
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   553
function lc_setammotexts(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   554
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   555
    call = 'SetAmmoTexts';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   556
    params = 'ammoType, name, caption, description';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   557
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   558
    if CheckLuaParamCount(L, 4, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   559
        SetAmmoTexts(TAmmoType(LuaToAmmoTypeOrd(L, 1, call, params)), lua_tostringA(L, 2), lua_tostringA(L, 3), lua_tostringA(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   560
    lc_setammotexts:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   561
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   562
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   563
function lc_setammodescriptionappendix(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   564
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   565
    call = 'SetAmmoDescriptionAppendix';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   566
    params = 'ammoType, descAppend';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   567
var
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   568
    ammoType: TAmmoType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   569
    descAppend: ansistring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   570
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   571
    if CheckLuaParamCount(L, 2, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   572
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   573
        ammoType := TAmmoType(LuaToAmmoTypeOrd(L, 1, call, params));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   574
        descAppend := lua_tostringA(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   575
        trluaammoa[Ammoz[ammoType].NameId] := descAppend;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   576
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   577
    lc_setammodescriptionappendix := 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   578
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   579
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   580
function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   581
var i, n : integer;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   582
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   583
    // can have 1 or more arguments
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   584
    if CheckAndFetchLuaParamMinCount(L, 1, 'EnableGameFlags', 'gameFlag, ... ', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   585
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   586
        for i:= 1 to n do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   587
            GameFlags := GameFlags or LongWord(lua_tointeger(L, i));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   588
        ScriptSetInteger('GameFlags', GameFlags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   589
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   590
    lc_enablegameflags:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   591
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   592
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   593
function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   594
var i , n: integer;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   595
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   596
    // can have 1 or more arguments
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   597
    if CheckAndFetchLuaParamMinCount(L, 1, 'DisableGameFlags', 'gameFlag, ... ', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   598
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   599
        for i:= 1 to n do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   600
            GameFlags := GameFlags and (not LongWord(lua_tointeger(L, i)));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   601
        ScriptSetInteger('GameFlags', GameFlags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   602
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   603
    lc_disablegameflags:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   604
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   605
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   606
function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   607
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   608
    if CheckLuaParamCount(L, 0, 'ClearGameFlags', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   609
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   610
        GameFlags:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   611
        ScriptSetInteger('GameFlags', GameFlags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   612
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   613
    lc_cleargameflags:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   614
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   615
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   616
function lc_getgameflag(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   617
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   618
    if CheckLuaParamCount(L, 1, 'GetGameFlag', 'gameflag') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   619
        lua_pushboolean(L, (GameFlags and LongWord(lua_tointeger(L, 1)) <> 0))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   620
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   621
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   622
    lc_getgameflag:= 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   623
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   624
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   625
function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   626
var cg: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   627
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   628
    call = 'AddCaption';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   629
    params = 'text [, color, captiongroup]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   630
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   631
    if CheckAndFetchParamCount(L, 1, 3, call, params, cg) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   632
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   633
        if cg = 1 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   634
            AddCaption(lua_tostringA(L, 1), cWhiteColor, capgrpMessage)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   635
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   636
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   637
            cg:= LuaToCapGroupOrd(L, 3, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   638
            if cg >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   639
                AddCaption(lua_tostringA(L, 1), lua_tointeger(L, 2) shr 8, TCapGroup(cg));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   640
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   641
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   642
    lc_addcaption:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   643
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   644
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   645
function lc_campaignlock(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   646
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   647
    if CheckLuaParamCount(L, 1, 'CampaignLock', 'TODO') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   648
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   649
        // TODO
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   650
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   651
    lc_campaignlock:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   652
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   653
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   654
function lc_campaignunlock(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   655
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   656
    if CheckLuaParamCount(L, 1, 'CampaignUnlock', 'TODO') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   657
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   658
        // TODO
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   659
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   660
    lc_campaignunlock:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   661
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   662
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   663
function lc_spawnfakehealthcrate(L: Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   664
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   665
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   666
    if CheckLuaParamCount(L, 4,'SpawnFakeHealthCrate', 'x, y, explode, poison') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   667
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   668
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   669
        HealthCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   670
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   671
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   672
        else lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   673
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   674
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   675
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   676
    lc_spawnfakehealthcrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   677
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   678
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   679
function lc_spawnfakeammocrate(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   680
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   681
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   682
    if CheckLuaParamCount(L, 4,'SpawnFakeAmmoCrate', 'x, y, explode, poison') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   683
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   684
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   685
        AmmoCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   686
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   687
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   688
        else lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   689
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   690
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   691
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   692
    lc_spawnfakeammocrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   693
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   694
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   695
function lc_spawnfakeutilitycrate(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   696
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   697
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   698
    if CheckLuaParamCount(L, 4,'SpawnFakeUtilityCrate', 'x, y, explode, poison') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   699
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   700
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   701
        UtilityCrate, lua_toboolean(L, 3), lua_toboolean(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   702
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   703
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   704
        else lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   705
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   706
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   707
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   708
    lc_spawnfakeutilitycrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   709
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   710
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   711
function lc_spawnhealthcrate(L: Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   712
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   713
var health, n: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   714
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   715
    if CheckAndFetchParamCount(L, 2, 3, 'SpawnHealthCrate', 'x, y [, health]', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   716
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   717
        if n = 3 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   718
            health:= lua_tointeger(L, 3)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   719
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   720
            health:= cHealthCaseAmount;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   721
        gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), HealthCrate, health, 0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   722
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   723
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   724
        else lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   725
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   726
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   727
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   728
    lc_spawnhealthcrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   729
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   730
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   731
function lc_spawnammocrate(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   732
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   733
    n   : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   734
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   735
    if CheckAndFetchParamCount(L, 3, 4, 'SpawnAmmoCrate', 'x, y, content [, amount]', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   736
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   737
        if n = 3 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   738
             gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), AmmoCrate, lua_tointeger(L, 3), 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   739
        else gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), AmmoCrate, lua_tointeger(L, 3), lua_tointeger(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   740
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   741
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   742
        else lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   743
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   744
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   745
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   746
    lc_spawnammocrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   747
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   748
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   749
function lc_spawnutilitycrate(L: PLua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   750
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   751
    n   : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   752
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   753
    if CheckAndFetchParamCount(L, 3, 4, 'SpawnUtilityCrate', 'x, y, content [, amount]', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   754
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   755
        if n = 3 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   756
             gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), UtilityCrate, lua_tointeger(L, 3), 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   757
        else gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2), UtilityCrate, lua_tointeger(L, 3), lua_tointeger(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   758
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   759
             lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   760
        else lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   761
       end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   762
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   763
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   764
    lc_spawnutilitycrate := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   765
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   766
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   767
function lc_addgear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   768
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   769
    x, y, s, t: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   770
    dx, dy: hwFloat;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   771
    gt: TGearType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   772
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   773
    call = 'AddGear';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   774
    params = 'x, y, gearType, state, dx, dy, timer';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   775
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   776
    if CheckLuaParamCount(L, 7, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   777
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   778
        t:= LuaToGearTypeOrd(L, 3, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   779
        if t >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   780
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   781
            gt:= TGearType(t);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   782
            x:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   783
            y:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   784
            s:= lua_tointeger(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   785
            dx:= int2hwFloat(lua_tointeger(L, 5)) / 1000000;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   786
            dy:= int2hwFloat(lua_tointeger(L, 6)) / 1000000;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   787
            t:= lua_tointeger(L, 7);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   788
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   789
            gear:= AddGear(x, y, gt, s, dx, dy, t);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   790
            lastGearByUID:= gear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   791
            lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   792
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   793
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   794
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   795
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   796
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   797
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   798
    lc_addgear:= 1; // 1 return value
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   799
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   800
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   801
function lc_deletegear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   802
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   803
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   804
    if CheckLuaParamCount(L, 1, 'DeleteGear', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   805
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   806
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   807
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   808
            gear^.Message:= gear^.Message or gmDelete;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   809
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   810
    lc_deletegear:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   811
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   812
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   813
function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   814
var vg : PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   815
    x, y, s, n, layer: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   816
    c: Boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   817
    vgt: TVisualGearType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   818
    uid: Longword;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   819
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   820
    call = 'AddVisualGear';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   821
    params = 'x, y, visualGearType, state, critical [, layer]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   822
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   823
    uid:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   824
    if CheckAndFetchParamCount(L, 5, 6, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   825
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   826
        s:= LuaToVisualGearTypeOrd(L, 3, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   827
        if s >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   828
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   829
            vgt:= TVisualGearType(s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   830
            x:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   831
            y:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   832
            s:= lua_tointeger(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   833
            c:= lua_toboolean(L, 5);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   834
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   835
            if n = 6 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   836
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   837
                layer:= lua_tointeger(L, 6);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   838
                vg:= AddVisualGear(x, y, vgt, s, c, layer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   839
                end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   840
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   841
                vg:= AddVisualGear(x, y, vgt, s, c);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   842
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   843
            if vg <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   844
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   845
                lastVisualGearByUID:= vg;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   846
                uid:= vg^.uid;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   847
                lua_pushinteger(L, uid);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   848
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   849
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   850
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   851
                lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   852
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   853
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   854
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   855
    lc_addvisualgear:= 1; // 1 return value
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   856
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   857
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   858
function lc_deletevisualgear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   859
var vg : PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   860
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   861
    vg:= nil;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   862
    if CheckLuaParamCount(L, 1, 'DeleteVisualGear', 'vgUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   863
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   864
        vg:= VisualGearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   865
        if vg <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   866
            DeleteVisualGear(vg);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   867
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   868
    // allow caller to know whether there was something to delete
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   869
    lua_pushboolean(L, vg <> nil);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   870
    lc_deletevisualgear:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   871
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   872
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   873
function lc_getvisualgeartype(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   874
var vg : PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   875
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   876
    if CheckLuaParamCount(L, 1, 'GetVisualGearType', 'vgUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   877
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   878
        vg := VisualGearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   879
        if vg <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   880
            lua_pushinteger(L, ord(vg^.Kind))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   881
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   882
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   883
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   884
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   885
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   886
    lc_getvisualgeartype:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   887
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   888
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   889
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   890
function lc_getvisualgearvalues(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   891
var vg: PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   892
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   893
    if CheckLuaParamCount(L, 1, 'GetVisualGearValues', 'vgUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   894
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   895
        vg:= VisualGearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   896
        if vg <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   897
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   898
            lua_pushinteger(L, round(vg^.X));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   899
            lua_pushinteger(L, round(vg^.Y));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   900
            lua_pushnumber(L, vg^.dX);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   901
            lua_pushnumber(L, vg^.dY);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   902
            lua_pushnumber(L, vg^.Angle);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   903
            lua_pushinteger(L, vg^.Frame);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   904
            lua_pushinteger(L, vg^.FrameTicks);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   905
            lua_pushinteger(L, vg^.State);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   906
            lua_pushinteger(L, vg^.Timer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   907
            lua_pushinteger(L, vg^.Tint);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   908
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   909
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   910
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   911
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   912
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   913
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   914
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   915
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   916
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   917
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   918
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   919
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   920
    lc_getvisualgearvalues:= 10
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   921
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   922
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   923
function lc_setvisualgearvalues(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   924
var vg : PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   925
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   926
// Param count can be 1-11 at present
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   927
//    if CheckLuaParamCount(L, 11, 'SetVisualGearValues', 'vgUid, X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   928
//        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   929
        vg:= VisualGearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   930
        if vg <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   931
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   932
            if not lua_isnoneornil(L, 2) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   933
                vg^.X:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   934
            if not lua_isnoneornil(L, 3) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   935
                vg^.Y:= lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   936
            if not lua_isnoneornil(L, 4) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   937
                vg^.dX:= lua_tonumber(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   938
            if not lua_isnoneornil(L, 5) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   939
                vg^.dY:= lua_tonumber(L, 5);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   940
            if not lua_isnoneornil(L, 6) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   941
                vg^.Angle:= lua_tonumber(L, 6);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   942
            if not lua_isnoneornil(L, 7) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   943
                vg^.Frame:= lua_tointeger(L, 7);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   944
            if not lua_isnoneornil(L, 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   945
                vg^.FrameTicks:= lua_tointeger(L, 8);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   946
            if not lua_isnoneornil(L, 9) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   947
                vg^.State:= lua_tointeger(L, 9);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   948
            if not lua_isnoneornil(L, 10) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   949
                vg^.Timer:= lua_tointeger(L, 10);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   950
            if not lua_isnoneornil(L, 11) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   951
                vg^.Tint:= lua_tointeger(L, 11)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   952
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   953
//        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   954
//    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   955
//        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   956
    lc_setvisualgearvalues:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   957
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   958
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   959
// so. going to use this to get/set some of the more obscure gear values which were not already exposed elsewhere
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   960
// can keep adding things in the future. isnoneornil makes it safe
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   961
function lc_getgearvalues(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   962
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   963
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   964
    if CheckLuaParamCount(L, 1, 'GetGearValues', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   965
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   966
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   967
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   968
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   969
            lua_pushinteger(L, gear^.Angle);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   970
            lua_pushinteger(L, gear^.Power);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   971
            lua_pushinteger(L, gear^.WDTimer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   972
            lua_pushinteger(L, gear^.Radius);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   973
            lua_pushinteger(L, hwRound(gear^.Density * _10000));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   974
            lua_pushinteger(L, gear^.Karma);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   975
            lua_pushnumber(L,  gear^.DirAngle);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   976
            lua_pushinteger(L, gear^.AdvBounce);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   977
            lua_pushinteger(L, Integer(gear^.ImpactSound));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   978
            lua_pushinteger(L, gear^.nImpactSounds);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   979
            lua_pushinteger(L, gear^.Tint);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   980
            lua_pushinteger(L, gear^.Damage);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   981
            lua_pushinteger(L, gear^.Boom)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   982
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   983
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   984
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   985
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   986
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   987
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   988
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   989
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   990
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   991
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   992
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   993
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   994
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   995
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   996
    lc_getgearvalues:= 13
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   997
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   998
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
   999
function lc_setgearvalues(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1000
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1001
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1002
// Currently allows 1-14 params
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1003
//    if CheckLuaParamCount(L, 14, 'SetGearValues', 'gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, # ImpactSounds, Tint, Damage, Boom') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1004
//        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1005
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1006
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1007
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1008
            if not lua_isnoneornil(L, 2) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1009
                gear^.Angle := lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1010
            if not lua_isnoneornil(L, 3) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1011
                gear^.Power := lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1012
            if not lua_isnoneornil(L, 4) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1013
                gear^.WDTimer := lua_tointeger(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1014
            if not lua_isnoneornil(L, 5) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1015
                gear^.Radius := lua_tointeger(L, 5);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1016
            if not lua_isnoneornil(L, 6) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1017
                gear^.Density:= int2hwFloat(lua_tointeger(L, 6)) / 10000;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1018
            if not lua_isnoneornil(L, 7) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1019
                gear^.Karma := lua_tointeger(L, 7);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1020
            if not lua_isnoneornil(L, 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1021
                gear^.DirAngle:= lua_tonumber(L, 8);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1022
            if not lua_isnoneornil(L, 9) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1023
                gear^.AdvBounce := lua_tointeger(L, 9);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1024
            if not lua_isnoneornil(L, 10) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1025
                gear^.ImpactSound := TSound(lua_tointeger(L, 10));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1026
            if not lua_isnoneornil(L, 11) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1027
                gear^.nImpactSounds := lua_tointeger(L, 11);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1028
            if not lua_isnoneornil(L, 12) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1029
                gear^.Tint := lua_tointeger(L, 12);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1030
            if not lua_isnoneornil(L, 13) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1031
                gear^.Damage := lua_tointeger(L, 13);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1032
            if not lua_isnoneornil(L, 14) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1033
                gear^.Boom := lua_tointeger(L, 14);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1034
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1035
//        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1036
//    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1037
//        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1038
    lc_setgearvalues:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1039
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1040
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1041
function lc_getfollowgear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1042
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1043
    if CheckLuaParamCount(L, 0, 'GetFollowGear', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1044
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1045
        if FollowGear = nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1046
            lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1047
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1048
            lua_pushinteger(L, FollowGear^.uid);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1049
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1050
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1051
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1052
    lc_getfollowgear:= 1; // 1 return value
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1053
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1054
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1055
function lc_getgeartype(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1056
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1057
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1058
    if CheckLuaParamCount(L, 1, 'GetGearType', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1059
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1060
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1061
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1062
            lua_pushinteger(L, ord(gear^.Kind))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1063
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1064
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1065
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1066
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1067
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1068
    lc_getgeartype:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1069
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1070
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1071
function lc_getgearmessage(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1072
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1073
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1074
    if CheckLuaParamCount(L, 1, 'GetGearMessage', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1075
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1076
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1077
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1078
            lua_pushinteger(L, gear^.message)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1079
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1080
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1081
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1082
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1083
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1084
    lc_getgearmessage:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1085
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1086
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1087
function lc_getgearelasticity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1088
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1089
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1090
    if CheckLuaParamCount(L, 1, 'GetGearElasticity', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1091
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1092
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1093
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1094
            lua_pushinteger(L, hwRound(gear^.elasticity * _10000))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1095
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1096
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1097
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1098
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1099
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1100
    lc_getgearelasticity:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1101
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1102
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1103
function lc_setgearelasticity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1104
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1105
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1106
    if CheckLuaParamCount(L, 2, 'SetGearElasticity', 'gearUid, Elasticity') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1107
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1108
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1109
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1110
            gear^.Elasticity:= int2hwFloat(lua_tointeger(L, 2)) / 10000
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1111
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1112
    lc_setgearelasticity:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1113
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1114
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1115
function lc_getgearfriction(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1116
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1117
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1118
    if CheckLuaParamCount(L, 1, 'GetGearFriction', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1119
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1120
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1121
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1122
            lua_pushinteger(L, hwRound(gear^.friction * _10000))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1123
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1124
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1125
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1126
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1127
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1128
    lc_getgearfriction:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1129
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1130
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1131
function lc_setgearfriction(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1132
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1133
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1134
    if CheckLuaParamCount(L, 2, 'SetGearFriction', 'gearUid, Friction') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1135
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1136
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1137
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1138
            gear^.Friction:= int2hwFloat(lua_tointeger(L, 2)) / 10000
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1139
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1140
    lc_setgearfriction:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1141
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1142
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1143
function lc_setgearmessage(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1144
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1145
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1146
    if CheckLuaParamCount(L, 2, 'SetGearMessage', 'gearUid, message') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1147
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1148
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1149
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1150
            gear^.message:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1151
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1152
    lc_setgearmessage:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1153
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1154
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1155
function lc_getgearpos(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1156
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1157
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1158
    if CheckLuaParamCount(L, 1, 'GetGearPos', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1159
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1160
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1161
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1162
            lua_pushinteger(L, gear^.Pos)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1163
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1164
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1165
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1166
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1167
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1168
    lc_getgearpos:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1169
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1170
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1171
function lc_setgearpos(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1172
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1173
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1174
    if CheckLuaParamCount(L, 2, 'SetGearPos', 'gearUid, value') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1175
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1176
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1177
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1178
            gear^.Pos:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1179
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1180
    lc_setgearpos:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1181
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1182
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1183
function lc_getgearcollisionmask(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1184
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1185
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1186
    if CheckLuaParamCount(L, 1, 'GetGearCollisionMask', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1187
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1188
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1189
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1190
            lua_pushinteger(L, gear^.CollisionMask)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1191
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1192
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1193
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1194
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1195
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1196
    lc_getgearcollisionmask:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1197
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1198
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1199
function lc_setgearcollisionmask(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1200
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1201
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1202
    if CheckLuaParamCount(L, 2, 'SetGearCollisionMask', 'gearUid, mask') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1203
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1204
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1205
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1206
            gear^.CollisionMask:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1207
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1208
    lc_setgearcollisionmask:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1209
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1210
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1211
function lc_gethoglevel(L : Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1212
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1213
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1214
    if CheckLuaParamCount(L, 1, 'GetHogLevel', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1215
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1216
        gear := GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1217
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1218
            lua_pushinteger(L, gear^.Hedgehog^.BotLevel)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1219
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1220
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1221
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1222
    lc_gethoglevel := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1223
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1224
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1225
function lc_sethoglevel(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1226
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1227
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1228
    if CheckLuaParamCount(L, 2, 'SetHogLevel', 'gearUid, level') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1229
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1230
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1231
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1232
            gear^.Hedgehog^.BotLevel:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1233
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1234
    lc_sethoglevel:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1235
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1236
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1237
function lc_gethogclan(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1238
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1239
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1240
    if CheckLuaParamCount(L, 1, 'GetHogClan', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1241
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1242
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1243
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1244
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1245
            lua_pushinteger(L, gear^.Hedgehog^.Team^.Clan^.ClanIndex)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1246
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1247
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1248
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1249
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1250
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1251
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1252
    lc_gethogclan:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1253
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1254
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1255
function lc_getclancolor(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1256
var idx: integer;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1257
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1258
    if CheckLuaParamCount(L, 1, 'GetClanColor', 'clanIdx') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1259
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1260
        idx:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1261
        if (not lua_isnumber(L, 1)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1262
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1263
            LuaError('Argument ''clanIdx'' must be a number!');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1264
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1265
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1266
        else if (idx < 0) or (idx >= ClansCount) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1267
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1268
            LuaError('Argument ''clanIdx'' out of range! (There are currently ' + IntToStr(ClansCount) + ' clans, so valid range is: 0-' + IntToStr(ClansCount-1) + ')');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1269
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1270
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1271
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1272
            lua_pushinteger(L, ClansArray[idx]^.Color shl 8 or $FF);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1273
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1274
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1275
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1276
    lc_getclancolor:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1277
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1278
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1279
function lc_setclancolor(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1280
var clan : PClan;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1281
    team : PTeam;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1282
    hh   : THedgehog;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1283
    i, j : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1284
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1285
    if CheckLuaParamCount(L, 2, 'SetClanColor', 'clan, color') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1286
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1287
        i:= lua_tointeger(L,1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1288
        if i >= ClansCount then exit(0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1289
        clan := ClansArray[i];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1290
        clan^.Color:= lua_tointeger(L, 2) shr 8;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1291
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1292
        for i:= 0 to Pred(clan^.TeamsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1293
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1294
            team:= clan^.Teams[i];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1295
            for j:= 0 to 7 do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1296
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1297
                hh:= team^.Hedgehogs[j];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1298
                if (hh.Gear <> nil) or (hh.GearHidden <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1299
                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1300
                    FreeAndNilTexture(hh.NameTagTex);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1301
                    hh.NameTagTex:= RenderStringTex(ansistring(hh.Name), clan^.Color, fnt16);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1302
                    RenderHealth(hh);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1303
                    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1304
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1305
            FreeAndNilTexture(team^.NameTagTex);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1306
            team^.NameTagTex:= RenderStringTex(ansistring(clan^.Teams[i]^.TeamName), clan^.Color, fnt16);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1307
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1308
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1309
        FreeAndNilTexture(clan^.HealthTex);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1310
        clan^.HealthTex:= makeHealthBarTexture(cTeamHealthWidth + 5, clan^.Teams[0]^.NameTagTex^.h, clan^.Color);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1311
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1312
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1313
    lc_setclancolor:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1314
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1315
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1316
function lc_gethogvoicepack(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1317
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1318
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1319
    if CheckLuaParamCount(L, 1, 'GetHogVoicepack', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1320
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1321
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1322
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1323
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.Voicepack^.name))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1324
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1325
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1326
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1327
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1328
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1329
    lc_gethogvoicepack:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1330
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1331
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1332
function lc_gethoggrave(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1333
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1334
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1335
    if CheckLuaParamCount(L, 1, 'GetHogGrave', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1336
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1337
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1338
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1339
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.GraveName))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1340
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1341
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1342
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1343
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1344
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1345
    lc_gethoggrave:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1346
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1347
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1348
function lc_gethogflag(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1349
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1350
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1351
    if CheckLuaParamCount(L, 1, 'GetHogFlag', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1352
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1353
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1354
        // TODO error messages
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1355
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1356
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.Flag))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1357
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1358
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1359
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1360
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1361
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1362
    lc_gethogflag:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1363
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1364
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1365
function lc_gethogfort(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1366
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1367
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1368
    if CheckLuaParamCount(L, 1, 'GetHogFort', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1369
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1370
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1371
        // TODO error messages
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1372
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1373
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.FortName))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1374
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1375
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1376
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1377
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1378
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1379
    lc_gethogfort:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1380
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1381
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1382
function lc_ishoglocal(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1383
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1384
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1385
    if CheckLuaParamCount(L, 1, 'IsHogLocal', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1386
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1387
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1388
        // TODO error messages
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1389
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1390
            lua_pushboolean(L, IsHogLocal(gear^.Hedgehog))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1391
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1392
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1393
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1394
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1395
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1396
    lc_ishoglocal:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1397
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1398
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1399
function lc_gethogteamname(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1400
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1401
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1402
    if CheckLuaParamCount(L, 1, 'GetHogTeamName', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1403
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1404
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1405
        // TODO error messages
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1406
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1407
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.TeamName))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1408
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1409
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1410
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1411
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1412
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1413
    lc_gethogteamname:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1414
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1415
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1416
function lc_sethogteamname(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1417
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1418
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1419
    if CheckLuaParamCount(L, 2, 'SetHogTeamName', 'gearUid, name') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1420
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1421
        gear := GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1422
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1423
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1424
            gear^.Hedgehog^.Team^.TeamName := lua_tostring(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1425
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1426
            FreeAndNilTexture(gear^.Hedgehog^.Team^.NameTagTex);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1427
            gear^.Hedgehog^.Team^.NameTagTex:= RenderStringTex(ansistring(gear^.Hedgehog^.Team^.TeamName), gear^.Hedgehog^.Team^.Clan^.Color, fnt16);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1428
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1429
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1430
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1431
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1432
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1433
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1434
    lc_sethogteamname:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1435
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1436
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1437
function lc_gethogname(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1438
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1439
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1440
    if CheckLuaParamCount(L, 1, 'GetHogName', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1441
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1442
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1443
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1444
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1445
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Name))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1446
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1447
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1448
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1449
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1450
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1451
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1452
    lc_gethogname:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1453
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1454
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1455
function lc_sethogname(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1456
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1457
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1458
    if CheckLuaParamCount(L, 2, 'SetHogName', 'gearUid, name') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1459
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1460
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1461
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1462
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1463
            gear^.Hedgehog^.Name:= lua_tostring(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1464
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1465
            FreeAndNilTexture(gear^.Hedgehog^.NameTagTex);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1466
            gear^.Hedgehog^.NameTagTex:= RenderStringTex(ansistring(gear^.Hedgehog^.Name), gear^.Hedgehog^.Team^.Clan^.Color, fnt16)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1467
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1468
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1469
    lc_sethogname:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1470
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1471
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1472
function lc_gettimer(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1473
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1474
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1475
    if CheckLuaParamCount(L, 1, 'GetTimer', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1476
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1477
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1478
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1479
            lua_pushinteger(L, gear^.Timer)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1480
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1481
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1482
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1483
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1484
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1485
    lc_gettimer:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1486
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1487
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1488
function lc_getflighttime(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1489
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1490
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1491
    if CheckLuaParamCount(L, 1, 'GetFlightTime', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1492
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1493
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1494
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1495
            lua_pushinteger(L, gear^.FlightTime)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1496
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1497
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1498
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1499
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1500
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1501
    lc_getflighttime:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1502
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1503
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1504
function lc_gethealth(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1505
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1506
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1507
    if CheckLuaParamCount(L, 1, 'GetHealth', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1508
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1509
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1510
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1511
            lua_pushinteger(L, gear^.Health)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1512
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1513
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1514
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1515
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1516
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1517
    lc_gethealth:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1518
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1519
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1520
function lc_getx(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1521
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1522
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1523
    if CheckLuaParamCount(L, 1, 'GetX', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1524
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1525
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1526
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1527
            lua_pushinteger(L, hwRound(gear^.X))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1528
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1529
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1530
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1531
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1532
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1533
    lc_getx:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1534
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1535
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1536
function lc_gety(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1537
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1538
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1539
    if CheckLuaParamCount(L, 1, 'GetY', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1540
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1541
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1542
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1543
            lua_pushinteger(L, hwRound(gear^.Y))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1544
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1545
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1546
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1547
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1548
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1549
    lc_gety:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1550
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1551
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1552
function lc_copypv(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1553
var gears, geard : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1554
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1555
    if CheckLuaParamCount(L, 2, 'CopyPV', 'fromGearUid, toGearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1556
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1557
        gears:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1558
        geard:= GearByUID(lua_tointeger(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1559
        if (gears <> nil) and (geard <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1560
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1561
            geard^.X:= gears^.X;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1562
            geard^.Y:= gears^.Y;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1563
            geard^.dX:= gears^.dX;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1564
            geard^.dY:= gears^.dY;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1565
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1566
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1567
    lc_copypv:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1568
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1569
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1570
function lc_followgear(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1571
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1572
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1573
    if CheckLuaParamCount(L, 1, 'FollowGear', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1574
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1575
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1576
        if gear <> nil then FollowGear:= gear
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1577
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1578
    lc_followgear:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1579
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1580
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1581
function lc_hogsay(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1582
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1583
   vgear : PVisualGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1584
       s : LongWord;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1585
       n : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1586
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1587
    if CheckAndFetchParamCount(L, 3, 4, 'HogSay', 'gearUid, text, manner [, vgState]', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1588
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1589
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1590
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1591
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1592
            // state defaults to 0 if state param is given
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1593
            if n = 4 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1594
                s:= lua_tointeger(L, 4)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1595
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1596
                s:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1597
            vgear:= AddVisualGear(0, 0, vgtSpeechBubble, s, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1598
            if vgear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1599
               begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1600
               vgear^.Text:= lua_tostring(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1601
               if Gear^.Kind = gtHedgehog then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1602
                   begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1603
                   AddChatString(#9+'[' + gear^.Hedgehog^.Name + '] '+vgear^.text);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1604
                   vgear^.Hedgehog:= gear^.Hedgehog
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1605
                   end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1606
               else vgear^.Frame:= gear^.uid;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1607
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1608
               vgear^.FrameTicks:= lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1609
               if (vgear^.FrameTicks < 1) or (vgear^.FrameTicks > 3) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1610
                   vgear^.FrameTicks:= 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1611
               lua_pushinteger(L, vgear^.Uid);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1612
               end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1613
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1614
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1615
            lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1616
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1617
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1618
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1619
    lc_hogsay:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1620
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1621
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1622
function lc_switchhog(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1623
var gear, prevgear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1624
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1625
    if CheckLuaParamCount(L, 1, 'SwitchHog', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1626
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1627
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1628
// should we allow this when there is no current hedgehog? might do some odd(er) things to turn sequence.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1629
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) and (CurrentHedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1630
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1631
            prevgear := CurrentHedgehog^.Gear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1632
            if prevgear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1633
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1634
                prevgear^.Active := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1635
                prevgear^.State:= prevgear^.State and (not gstHHDriven);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1636
                prevgear^.Z := cHHZ;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1637
                prevgear^.Message:= prevgear^.Message or gmRemoveFromList or gmAddToList;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1638
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1639
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1640
            SwitchCurrentHedgehog(gear^.Hedgehog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1641
            CurrentTeam:= CurrentHedgehog^.Team;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1642
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1643
            gear^.State:= gear^.State or gstHHDriven;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1644
            gear^.Active := true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1645
            gear^.Z := cCurrHHZ;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1646
            gear^.Message:= gear^.Message or gmRemoveFromList or gmAddToList;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1647
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1648
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1649
    lc_switchhog:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1650
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1651
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1652
function lc_addammo(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1653
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1654
    at, n: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1655
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1656
    call = 'AddAmmo';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1657
    params = 'gearUid, ammoType [, ammoCount]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1658
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1659
    if CheckAndFetchParamCount(L, 2, 3, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1660
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1661
        at:= LuaToAmmoTypeOrd(L, 2, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1662
        if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1663
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1664
            gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1665
            if (gear <> nil) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1666
                if n = 2 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1667
                    AddAmmo(gear^.Hedgehog^, TAmmoType(at))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1668
                else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1669
                    SetAmmo(gear^.Hedgehog^, TAmmoType(at), lua_tointeger(L, 3))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1670
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1671
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1672
    lc_addammo:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1673
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1674
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1675
function lc_getammocount(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1676
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1677
    ammo : PAmmo;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1678
    at   : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1679
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1680
    call = 'GetAmmoCount';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1681
    params = 'gearUid, ammoType';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1682
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1683
    if CheckLuaParamCount(L, 2, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1684
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1685
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1686
        if (gear <> nil) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1687
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1688
            at:= LuaToAmmoTypeOrd(L, 2, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1689
            if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1690
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1691
                ammo:= GetAmmoEntry(gear^.Hedgehog^, TAmmoType(at));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1692
                if ammo^.AmmoType = amNothing then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1693
                    lua_pushinteger(L, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1694
                else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1695
                    lua_pushinteger(L, ammo^.Count);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1696
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1697
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1698
        else lua_pushinteger(L, 0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1699
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1700
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1701
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1702
    lc_getammocount:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1703
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1704
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1705
function lc_sethealth(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1706
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1707
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1708
    if CheckLuaParamCount(L, 2, 'SetHealth', 'gearUid, health') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1709
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1710
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1711
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1712
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1713
            gear^.Health:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1714
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1715
            if (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1716
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1717
                RenderHealth(gear^.Hedgehog^);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1718
                RecountTeamHealth(gear^.Hedgehog^.Team)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1719
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1720
            // Why did this do a "setalltoactive" ?
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1721
            //SetAllToActive;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1722
            Gear^.Active:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1723
            AllInactive:= false
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1724
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1725
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1726
    lc_sethealth:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1727
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1728
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1729
function lc_settimer(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1730
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1731
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1732
    if CheckLuaParamCount(L, 2, 'SetTimer', 'gearUid, timer') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1733
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1734
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1735
        if gear <> nil then gear^.Timer:= lua_tointeger(L, 2)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1736
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1737
    lc_settimer:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1738
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1739
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1740
function lc_setflighttime(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1741
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1742
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1743
    if CheckLuaParamCount(L, 2, 'SetFlightTime', 'gearUid, flighttime') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1744
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1745
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1746
        if gear <> nil then gear^.FlightTime:= lua_tointeger(L, 2)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1747
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1748
    lc_setflighttime:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1749
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1750
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1751
function lc_seteffect(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1752
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1753
    t   : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1754
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1755
    call = 'SetEffect';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1756
    params = 'gearUid, effect, effectState';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1757
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1758
    if CheckLuaParamCount(L, 3, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1759
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1760
        t:= LuaToHogEffectOrd(L, 2, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1761
        if t >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1762
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1763
            gear := GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1764
            if (gear <> nil) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1765
                gear^.Hedgehog^.Effects[THogEffect(t)]:= lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1766
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1767
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1768
    lc_seteffect := 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1769
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1770
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1771
function lc_geteffect(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1772
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1773
    t    : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1774
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1775
    call = 'GetEffect';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1776
    params = 'gearUid, effect';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1777
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1778
    if CheckLuaParamCount(L, 2, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1779
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1780
        t:= LuaToHogEffectOrd(L, 2, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1781
        if t >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1782
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1783
            gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1784
            if (gear <> nil) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1785
                lua_pushinteger(L, gear^.Hedgehog^.Effects[THogEffect(t)])
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1786
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1787
                lua_pushinteger(L, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1788
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1789
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1790
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1791
        lua_pushinteger(L, 0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1792
    lc_geteffect:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1793
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1794
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1795
function lc_setstate(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1796
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1797
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1798
    if CheckLuaParamCount(L, 2, 'SetState', 'gearUid, state') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1799
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1800
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1801
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1802
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1803
            gear^.State:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1804
            SetAllToActive;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1805
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1806
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1807
    lc_setstate:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1808
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1809
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1810
function lc_getstate(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1811
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1812
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1813
    if CheckLuaParamCount(L, 1, 'GetState', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1814
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1815
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1816
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1817
            lua_pushinteger(L, gear^.State)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1818
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1819
            lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1820
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1821
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1822
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1823
    lc_getstate:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1824
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1825
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1826
function lc_gettag(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1827
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1828
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1829
    if CheckLuaParamCount(L, 1, 'GetTag', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1830
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1831
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1832
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1833
            lua_pushinteger(L, gear^.Tag)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1834
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1835
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1836
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1837
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1838
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1839
    lc_gettag:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1840
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1841
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1842
function lc_settag(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1843
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1844
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1845
    if CheckLuaParamCount(L, 2, 'SetTag', 'gearUid, tag') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1846
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1847
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1848
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1849
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1850
            gear^.Tag:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1851
            SetAllToActive;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1852
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1853
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1854
    lc_settag:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1855
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1856
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1857
function lc_endgame(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1858
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1859
    L:= L; // avoid compiler hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1860
    AddGear(0, 0, gtATFinishGame, 0, _0, _0, 3000);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1861
    lc_endgame:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1862
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1863
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1864
function lc_sendstat(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1865
var statInfo : TStatInfoType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1866
    i, n     : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1867
    color, tn: shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1868
    needsTn  : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1869
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1870
    call = 'SendStat';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1871
    params = 'statInfoType, color [, teamname]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1872
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1873
    if CheckAndFetchParamCount(L, 2, 3, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1874
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1875
        i:= LuaToStatInfoTypeOrd(L, 1, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1876
        if i >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1877
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1878
            statInfo:= TStatInfoType(i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1879
            needsTn:= ((statInfo = siPlayerKills) or (statInfo = siClanHealth));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1880
            // check if param count is correct for the used statInfo
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1881
            if (n = 3) <> needsTn then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1882
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1883
                if n = 3 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1884
                    LuaCallError(EnumToStr(statInfo) + ' does not support the teamname parameter', call, params)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1885
                else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1886
                    LuaCallError(EnumToStr(statInfo) + ' requires the teamname parameter', call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1887
                end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1888
            else // count is correct!
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1889
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1890
                if needsTn then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1891
                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1892
                    // 3: team name
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1893
                    for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1894
                        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1895
                        color:= _S'0';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1896
                        tn:= lua_tostring(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1897
                        with TeamsArray[i]^ do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1898
                            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1899
                                if TeamName = tn then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1900
                                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1901
                                    color := uUtils.IntToStr(Clan^.Color);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1902
                                    Break;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1903
                                    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1904
                            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1905
                        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1906
                    if (statInfo = siPlayerKills) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1907
                        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1908
                            SendStat(siPlayerKills, color + ' ' +
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1909
                                lua_tostring(L, 2) + ' ' + tn);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1910
                        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1911
                    else if (statInfo = siClanHealth) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1912
                        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1913
                            SendStat(siClanHealth, color + ' ' +
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1914
                                lua_tostring(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1915
                        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1916
                    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1917
                else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1918
                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1919
                    SendStat(statInfo,lua_tostring(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1920
                    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1921
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1922
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1923
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1924
    lc_sendstat:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1925
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1926
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1927
function lc_sendhealthstatsoff(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1928
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1929
    L:= L; // avoid compiler hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1930
    uStats.SendHealthStatsOn := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1931
    lc_sendhealthstatsoff:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1932
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1933
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1934
function lc_findplace(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1935
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1936
    fall: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1937
    tryhard: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1938
    left, right, n: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1939
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1940
    if CheckAndFetchParamCount(L, 4, 5, 'FindPlace', 'gearUid, fall, left, right [, tryHarder]', n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1941
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1942
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1943
        fall:= lua_toboolean(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1944
        left:= lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1945
        right:= lua_tointeger(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1946
        if n = 5 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1947
            tryhard:= lua_toboolean(L, 5)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1948
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1949
            tryhard:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1950
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1951
            FindPlace(gear, fall, left, right, tryhard);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1952
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1953
            lua_pushinteger(L, gear^.uid)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1954
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1955
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1956
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1957
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1958
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1959
    lc_findplace:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1960
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1961
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1962
function lc_playsound(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1963
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1964
    n, s: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1965
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1966
    call = 'PlaySound';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1967
    params = 'soundId [, hhGearUid]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1968
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1969
    if CheckAndFetchParamCount(L, 1, 2, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1970
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1971
        s:= LuaToSoundOrd(L, 1, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1972
        if s >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1973
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1974
            // no gear specified
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1975
            if n = 1 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1976
                PlaySound(TSound(s))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1977
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1978
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1979
                gear:= GearByUID(lua_tointeger(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1980
                if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1981
                    AddVoice(TSound(s),gear^.Hedgehog^.Team^.Voicepack)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1982
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1983
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1984
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1985
    lc_playsound:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1986
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1987
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1988
function lc_addteam(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1989
var np: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1990
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1991
    if CheckAndFetchParamCount(L, 5, 6, 'AddTeam', 'teamname, color, grave, fort, voicepack [, flag]', np) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1992
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1993
        ParseCommand('addteam x ' + lua_tostring(L, 2) + ' ' + lua_tostring(L, 1), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1994
        ParseCommand('grave ' + lua_tostring(L, 3), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1995
        ParseCommand('fort ' + lua_tostring(L, 4), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1996
        ParseCommand('voicepack ' + lua_tostring(L, 5), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1997
        if (np = 6) then ParseCommand('flag ' + lua_tostring(L, 6), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1998
        CurrentTeam^.Binds:= DefaultBinds
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  1999
        // fails on x64
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2000
        //lua_pushinteger(L, LongInt(CurrentTeam));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2001
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2002
    //else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2003
        //lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2004
    lc_addteam:= 0;//1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2005
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2006
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2007
function lc_dismissteam(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2008
var HHGear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2009
    i, h  : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2010
    hidden: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2011
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2012
    if CheckLuaParamCount(L, 1, 'DismissTeam', 'teamname') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2013
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2014
        if TeamsCount > 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2015
            for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2016
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2017
                // skip teams that don't have matching name
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2018
                if TeamsArray[i]^.TeamName <> lua_tostring(L, 1) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2019
                    continue;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2020
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2021
                // destroy all hogs of matching team, including the hidden ones
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2022
                for h:= 0 to cMaxHHIndex do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2023
                    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2024
                    hidden:= (TeamsArray[i]^.Hedgehogs[h].GearHidden <> nil);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2025
                    if hidden then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2026
                        RestoreHog(@TeamsArray[i]^.Hedgehogs[h]);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2027
                    // destroy hedgehog gear, if any
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2028
                    HHGear:= TeamsArray[i]^.Hedgehogs[h].Gear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2029
                    if HHGear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2030
                        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2031
                        // smoke effect
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2032
                        if (not hidden) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2033
                            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2034
                            AddVisualGear(hwRound(HHGear^.X), hwRound(HHGear^.Y), vgtSmokeWhite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2035
                            AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2036
                            AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2037
                            AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2038
                            AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2039
                            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2040
                        HHGear^.Message:= HHGear^.Message or gmDestroy;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2041
                        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2042
                    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2043
                // can't dismiss more than one team
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2044
                break;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2045
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2046
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2047
    lc_dismissteam:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2048
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2049
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2050
function lc_addhog(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2051
var temp: ShortString;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2052
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2053
    if CheckLuaParamCount(L, 4, 'AddHog', 'hogname, botlevel, health, hat') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2054
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2055
        temp:= lua_tostring(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2056
        ParseCommand('addhh ' + lua_tostring(L, 2) + ' ' + lua_tostring(L, 3) + ' ' + lua_tostring(L, 1), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2057
        ParseCommand('hat ' + temp, true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2058
        lua_pushinteger(L, CurrentHedgehog^.Gear^.uid);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2059
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2060
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2061
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2062
    lc_addhog:= 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2063
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2064
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2065
function lc_hogturnleft(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2066
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2067
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2068
    if CheckLuaParamCount(L, 2, 'HogTurnLeft', 'gearUid, boolean') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2069
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2070
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2071
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2072
            gear^.dX.isNegative:= lua_toboolean(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2073
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2074
    lc_hogturnleft:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2075
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2076
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2077
function lc_getgearposition(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2078
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2079
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2080
    if CheckLuaParamCount(L, 1, 'GetGearPosition', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2081
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2082
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2083
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2084
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2085
            lua_pushinteger(L, hwRound(gear^.X));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2086
            lua_pushinteger(L, hwRound(gear^.Y))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2087
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2088
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2089
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2090
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2091
            lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2092
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2093
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2094
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2095
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2096
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2097
        lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2098
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2099
    lc_getgearposition:= 2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2100
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2101
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2102
function lc_setgearposition(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2103
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2104
    col: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2105
    x, y: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2106
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2107
    if CheckLuaParamCount(L, 3, 'SetGearPosition', 'gearUid, x, y') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2108
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2109
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2110
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2111
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2112
            col:= gear^.CollisionIndex >= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2113
            x:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2114
            y:= lua_tointeger(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2115
            if col then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2116
                DeleteCI(gear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2117
            gear^.X:= int2hwfloat(x);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2118
            gear^.Y:= int2hwfloat(y);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2119
            if col then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2120
                AddCI(gear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2121
            SetAllToActive
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2122
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2123
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2124
    lc_setgearposition:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2125
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2126
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2127
function lc_getgeartarget(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2128
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2129
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2130
    if CheckLuaParamCount(L, 1, 'GetGearTarget', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2131
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2132
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2133
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2134
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2135
            lua_pushinteger(L, gear^.Target.X);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2136
            lua_pushinteger(L, gear^.Target.Y)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2137
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2138
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2139
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2140
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2141
            lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2142
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2143
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2144
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2145
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2146
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2147
        lua_pushnil(L)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2148
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2149
    lc_getgeartarget:= 2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2150
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2151
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2152
function lc_setgeartarget(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2153
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2154
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2155
    if CheckLuaParamCount(L, 3, 'SetGearTarget', 'gearUid, x, y') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2156
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2157
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2158
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2159
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2160
            gear^.Target.X:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2161
            gear^.Target.Y:= lua_tointeger(L, 3)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2162
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2163
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2164
    lc_setgeartarget:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2165
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2166
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2167
function lc_getgearvelocity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2168
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2169
var t: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2170
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2171
    if CheckLuaParamCount(L, 1, 'GetGearVelocity', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2172
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2173
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2174
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2175
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2176
            t:= hwRound(gear^.dX * 1000000);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2177
            // gear dX determines hog orientation
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2178
            if (gear^.dX.isNegative) and (t = 0) then t:= -1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2179
            lua_pushinteger(L, t);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2180
            lua_pushinteger(L, hwRound(gear^.dY * 1000000))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2181
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2182
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2183
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2184
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2185
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2186
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2187
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2188
    lc_getgearvelocity:= 2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2189
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2190
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2191
function lc_setgearvelocity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2192
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2193
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2194
    if CheckLuaParamCount(L, 3, 'SetGearVelocity', 'gearUid, dx, dy') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2195
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2196
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2197
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2198
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2199
            gear^.dX:= int2hwFloat(lua_tointeger(L, 2)) / 1000000;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2200
            gear^.dY:= int2hwFloat(lua_tointeger(L, 3)) / 1000000;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2201
            SetAllToActive;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2202
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2203
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2204
    lc_setgearvelocity:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2205
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2206
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2207
function lc_setzoom(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2208
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2209
    if CheckLuaParamCount(L, 1, 'SetZoom', 'zoomLevel') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2210
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2211
        ZoomValue:= lua_tonumber(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2212
        if ZoomValue < cMaxZoomLevel then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2213
            ZoomValue:= cMaxZoomLevel;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2214
        if ZoomValue > cMinZoomLevel then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2215
            ZoomValue:= cMinZoomLevel;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2216
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2217
    lc_setzoom:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2218
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2219
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2220
function lc_getzoom(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2221
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2222
    if CheckLuaParamCount(L, 0, 'GetZoom', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2223
        lua_pushnumber(L, ZoomValue)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2224
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2225
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2226
    lc_getzoom:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2227
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2228
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2229
function lc_setammo(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2230
var np, at: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2231
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2232
    call = 'SetAmmo';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2233
    params = 'ammoType, count, probability, delay [, numberInCrate]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2234
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2235
    if CheckAndFetchParamCount(L, 4, 5, call, params, np) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2236
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2237
        at:= LuaToAmmoTypeOrd(L, 1, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2238
        if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2239
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2240
            if np = 4 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2241
                ScriptSetAmmo(TAmmoType(at), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2242
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2243
                ScriptSetAmmo(TAmmoType(at), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2244
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2245
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2246
    lc_setammo:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2247
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2248
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2249
function lc_setammodelay(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2250
var at: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2251
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2252
    call = 'SetAmmoDelay';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2253
    params = 'ammoType, delay';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2254
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2255
    if CheckLuaParamCount(L, 2, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2256
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2257
        at:= LuaToAmmoTypeOrd(L, 1, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2258
        if at >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2259
            ScriptSetAmmoDelay(TAmmoType(at), lua_tointeger(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2260
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2261
    lc_setammodelay:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2262
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2263
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2264
function lc_setammostore(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2265
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2266
    if CheckLuaParamCount(L, 4, 'SetAmmoStore', 'loadouts, probabilities, delays, reinforments') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2267
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2268
        ScriptAmmoLoadout:= lua_tostring(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2269
        ScriptAmmoProbability:= lua_tostring(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2270
        ScriptAmmoDelay:= lua_tostring(L, 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2271
        ScriptAmmoReinforcement:= lua_tostring(L, 4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2272
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2273
    lc_setammostore:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2274
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2275
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2276
function lc_getrandom(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2277
var m : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2278
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2279
    if CheckLuaParamCount(L, 1, 'GetRandom', 'number') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2280
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2281
        m:= lua_tointeger(L, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2282
        if (m > 0) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2283
            lua_pushinteger(L, GetRandom(m))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2284
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2285
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2286
            LuaError('Lua: Tried to pass 0 to GetRandom!');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2287
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2288
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2289
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2290
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2291
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2292
    lc_getrandom:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2293
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2294
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2295
function lc_setwind(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2296
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2297
    if CheckLuaParamCount(L, 1, 'SetWind', 'windSpeed') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2298
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2299
        cWindSpeed:= int2hwfloat(lua_tointeger(L, 1)) / 100 * cMaxWindSpeed;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2300
        cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2301
        if cWindSpeed.isNegative then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2302
            CWindSpeedf := -cWindSpeedf;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2303
        AddVisualGear(0, 0, vgtSmoothWindBar);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2304
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2305
    lc_setwind:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2306
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2307
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2308
function lc_maphasborder(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2309
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2310
    if CheckLuaParamCount(L, 0, 'MapHasBorder', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2311
        lua_pushboolean(L, hasBorder)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2312
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2313
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2314
    lc_maphasborder:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2315
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2316
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2317
function lc_getgearradius(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2318
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2319
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2320
    if CheckLuaParamCount(L, 1, 'GetGearRadius', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2321
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2322
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2323
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2324
            lua_pushinteger(L, gear^.Radius)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2325
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2326
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2327
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2328
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2329
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2330
    lc_getgearradius:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2331
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2332
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2333
function lc_gethoghat(L : Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2334
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2335
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2336
    if CheckLuaParamCount(L, 1, 'GetHogHat', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2337
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2338
        gear := GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2339
        if (gear <> nil) and ((gear^.Kind = gtHedgehog) or (gear^.Kind = gtGrave)) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2340
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Hat))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2341
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2342
            lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2343
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2344
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2345
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2346
    lc_gethoghat := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2347
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2348
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2349
function lc_sethoghat(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2350
var gear : PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2351
    hat: ShortString;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2352
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2353
    if CheckLuaParamCount(L, 2, 'SetHogHat', 'gearUid, hat') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2354
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2355
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2356
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2357
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2358
            hat:= lua_tostring(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2359
            gear^.Hedgehog^.Hat:= hat;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2360
            AddFileLog('Changed hat to: '+hat);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2361
            if (Length(hat) > 39) and (Copy(hat,1,8) = 'Reserved') and (Copy(hat,9,32) = gear^.Hedgehog^.Team^.PlayerHash) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2362
                LoadHedgehogHat(gear^.Hedgehog^, 'Reserved/' + Copy(hat,9,Length(hat)-8))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2363
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2364
                LoadHedgehogHat(gear^.Hedgehog^, hat)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2365
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2366
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2367
    lc_sethoghat:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2368
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2369
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2370
function lc_placesprite(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2371
var spr   : TSprite;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2372
    lf    : Word;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2373
    tint  : LongWord;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2374
    i, n : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2375
    placed, behind, flipHoriz, flipVert : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2376
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2377
    call = 'PlaceSprite';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2378
    params = 'x, y, sprite, frameIdx, tint, behind, flipHoriz, flipVert, [, landFlag, ... ]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2379
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2380
    placed:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2381
    if CheckAndFetchLuaParamMinCount(L, 4, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2382
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2383
        if not lua_isnoneornil(L, 5) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2384
            tint := lua_tointeger(L, 5)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2385
        else tint := $FFFFFFFF;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2386
        if not lua_isnoneornil(L, 6) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2387
            behind := lua_toboolean(L, 6)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2388
        else behind := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2389
        if not lua_isnoneornil(L, 7) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2390
            flipHoriz := lua_toboolean(L, 7)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2391
        else flipHoriz := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2392
        if not lua_isnoneornil(L, 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2393
            flipVert := lua_toboolean(L, 8)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2394
        else flipVert := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2395
        lf:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2396
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2397
        // accept any amount of landflags, loop is never executed if n<9
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2398
        for i:= 9 to n do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2399
            lf:= lf or lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2400
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2401
        n:= LuaToSpriteOrd(L, 3, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2402
        if n >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2403
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2404
            spr:= TSprite(n);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2405
            if SpritesData[spr].Surface = nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2406
                LuaError(call + ': ' + EnumToStr(spr) + ' cannot be placed! (required information not loaded)' )
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2407
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2408
                placed:= ForcePlaceOnLand(
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2409
                    lua_tointeger(L, 1) - SpritesData[spr].Width div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2410
                    lua_tointeger(L, 2) - SpritesData[spr].Height div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2411
                    spr, lua_tointeger(L, 4), lf, tint, behind, flipHoriz, flipVert);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2412
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2413
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2414
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2415
    lua_pushboolean(L, placed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2416
    lc_placesprite:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2417
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2418
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2419
function lc_erasesprite(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2420
var spr   : TSprite;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2421
    lf    : Word;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2422
    i, n : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2423
    eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2424
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2425
    call = 'EraseSprite';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2426
    params = 'x, y, sprite, frameIdx, eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert, [, landFlag, ... ]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2427
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2428
    if CheckAndFetchLuaParamMinCount(L, 4, call, params, n) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2429
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2430
        if not lua_isnoneornil(L, 5) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2431
            eraseOnLFMatch := lua_toboolean(L, 5)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2432
        else eraseOnLFMatch := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2433
        if not lua_isnoneornil(L, 6) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2434
            onlyEraseLF := lua_toboolean(L, 6)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2435
        else onlyEraseLF := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2436
        if not lua_isnoneornil(L, 7) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2437
            flipHoriz := lua_toboolean(L, 7)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2438
        else flipHoriz := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2439
        if not lua_isnoneornil(L, 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2440
            flipVert := lua_toboolean(L, 8)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2441
        else flipVert := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2442
        lf:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2443
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2444
        // accept any amount of landflags, loop is never executed if n<9
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2445
        for i:= 9 to n do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2446
            lf:= lf or lua_tointeger(L, i);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2447
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2448
        n:= LuaToSpriteOrd(L, 3, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2449
        if n >= 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2450
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2451
            spr:= TSprite(n);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2452
            if SpritesData[spr].Surface = nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2453
                LuaError(call + ': ' + EnumToStr(spr) + ' cannot be placed! (required information not loaded)' )
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2454
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2455
                EraseLand(
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2456
                    lua_tointeger(L, 1) - SpritesData[spr].Width div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2457
                    lua_tointeger(L, 2) - SpritesData[spr].Height div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2458
                    spr, lua_tointeger(L, 4), lf, eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2459
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2460
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2461
    lc_erasesprite:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2462
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2463
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2464
function lc_placegirder(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2465
var placed: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2466
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2467
    placed:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2468
    if CheckLuaParamCount(L, 3, 'PlaceGirder', 'x, y, frameIdx') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2469
        placed:= TryPlaceOnLandSimple(
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2470
            lua_tointeger(L, 1) - SpritesData[sprAmGirder].Width div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2471
            lua_tointeger(L, 2) - SpritesData[sprAmGirder].Height div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2472
            sprAmGirder, lua_tointeger(L, 3), true, false);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2473
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2474
    lua_pushboolean(L, placed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2475
    lc_placegirder:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2476
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2477
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2478
function lc_placerubber(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2479
var placed: boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2480
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2481
    placed:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2482
    if CheckLuaParamCount(L, 3, 'PlaceRubber', 'x, y, frameIdx') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2483
        placed:= TryPlaceOnLand(
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2484
            lua_tointeger(L, 1) - SpritesData[sprAmRubber].Width div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2485
            lua_tointeger(L, 2) - SpritesData[sprAmRubber].Height div 2,
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2486
            sprAmRubber, lua_tointeger(L, 3), true, lfBouncy);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2487
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2488
    lua_pushboolean(L, placed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2489
    lc_placerubber:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2490
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2491
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2492
function lc_getcurammotype(L : Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2493
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2494
    if (CurrentHedgehog <> nil) and (CheckLuaParamCount(L, 0, 'GetCurAmmoType', '')) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2495
        lua_pushinteger(L, ord(CurrentHedgehog^.CurAmmoType))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2496
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2497
        lua_pushinteger(L, ord(amNothing));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2498
    lc_getcurammotype := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2499
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2500
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2501
function lc_savecampaignvar(L : Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2502
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2503
    if CheckLuaParamCount(L, 2, 'SaveCampaignVar', 'varname, value') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2504
        SendIPC('V!' + lua_tostring(L, 1) + ' ' + lua_tostring(L, 2) + #0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2505
    lc_savecampaignvar := 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2506
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2507
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2508
function lc_getcampaignvar(L : Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2509
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2510
    if CheckLuaParamCount(L, 1, 'GetCampaignVar', 'varname') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2511
        SendIPCAndWaitReply('V?' + lua_tostring(L, 1) + #0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2512
    lua_pushstring(L, str2pchar(CampaignVariable));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2513
    lc_getcampaignvar := 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2514
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2515
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2516
function lc_hidehog(L: Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2517
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2518
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2519
    if CheckLuaParamCount(L, 1, 'HideHog', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2520
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2521
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2522
        HideHog(gear^.hedgehog)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2523
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2524
    lc_hidehog := 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2525
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2526
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2527
function lc_restorehog(L: Plua_State): LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2528
var i, h: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2529
    uid: LongWord;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2530
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2531
    if CheckLuaParamCount(L, 1, 'RestoreHog', 'gearUid') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2532
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2533
        uid:= LongWord(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2534
        if TeamsCount > 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2535
            for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2536
                for h:= 0 to cMaxHHIndex do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2537
                    if (TeamsArray[i]^.Hedgehogs[h].GearHidden <> nil) and (TeamsArray[i]^.Hedgehogs[h].GearHidden^.uid = uid) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2538
                        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2539
                        RestoreHog(@TeamsArray[i]^.Hedgehogs[h]);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2540
                        exit(0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2541
                        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2542
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2543
    lc_restorehog := 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2544
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2545
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2546
// boolean TestRectForObstacle(x1, y1, x2, y2, landOnly)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2547
function lc_testrectforobstacle(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2548
var rtn: Boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2549
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2550
    if CheckLuaParamCount(L, 5, 'TestRectForObstacle', 'x1, y1, x2, y2, landOnly') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2551
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2552
        rtn:= TestRectangleForObstacle(
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2553
                    lua_tointeger(L, 1),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2554
                    lua_tointeger(L, 2),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2555
                    lua_tointeger(L, 3),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2556
                    lua_tointeger(L, 4),
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2557
                    lua_toboolean(L, 5)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2558
                    );
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2559
        lua_pushboolean(L, rtn);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2560
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2561
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2562
        lua_pushnil(L); // return value on stack (nil)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2563
    lc_testrectforobstacle:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2564
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2565
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2566
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2567
function lc_getgravity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2568
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2569
    if CheckLuaParamCount(L, 0, 'GetGravity', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2570
        lua_pushinteger(L, hwRound(SignAs(_0_5, cGravity) + (cGravity * 50 / cMaxWindSpeed)));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2571
    lc_getgravity:= 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2572
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2573
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2574
function lc_setgravity(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2575
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2576
    if CheckLuaParamCount(L, 1, 'SetGravity', 'percent') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2577
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2578
        cGravity:= _0_02 * lua_tointeger(L, 1) * cMaxWindSpeed;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2579
        cGravityf:= 0.00025 * lua_tointeger(L, 1) * 0.02
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2580
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2581
    lc_setgravity:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2582
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2583
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2584
function lc_setwaterline(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2585
var iterator: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2586
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2587
    if CheckLuaParamCount(L, 1, 'SetWaterLine', 'waterline') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2588
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2589
        cWaterLine:= lua_tointeger(L,1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2590
        AllInactive:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2591
        iterator:= GearsList;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2592
        while iterator <> nil do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2593
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2594
            if not (iterator^.Kind in [gtPortal, gtAirAttack]) and (iterator^.Message and (gmAllStoppable or gmLJump or gmHJump) = 0) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2595
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2596
                iterator^.Active:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2597
                if iterator^.dY.QWordValue = 0 then iterator^.dY.isNegative:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2598
                iterator^.State:= iterator^.State or gstMoving;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2599
                DeleteCI(iterator)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2600
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2601
            iterator:= iterator^.NextGear
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2602
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2603
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2604
    lc_setwaterline:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2605
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2606
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2607
function lc_setgearaihints(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2608
var gear: PGear;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2609
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2610
    if CheckLuaParamCount(L, 2, 'SetAIHintOnGear', 'gearUid, aiHints') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2611
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2612
        gear:= GearByUID(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2613
        if gear <> nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2614
            gear^.aihints:= lua_tointeger(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2615
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2616
    lc_setgearaihints:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2617
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2618
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2619
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2620
function lc_hedgewarsscriptload(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2621
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2622
    if CheckLuaParamCount(L, 1, 'HedgewarsScriptLoad', 'scriptPath') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2623
        ScriptLoad(lua_tostring(L, 1))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2624
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2625
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2626
    lc_hedgewarsscriptload:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2627
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2628
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2629
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2630
function lc_declareachievement(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2631
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2632
    if CheckLuaParamCount(L, 4, 'DeclareAchievement', 'achievementId, teamname, location, value') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2633
        declareAchievement(lua_tostring(L, 1), lua_tostring(L, 2), lua_tostring(L, 3), lua_tointeger(L, 4));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2634
    lc_declareachievement:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2635
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2636
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2637
function lc_getammoname(L : Plua_state) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2638
var np, at: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2639
    ignoreOverwrite: Boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2640
const call = 'GetAmmoName';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2641
      params = 'ammoType [, ignoreOverwrite ]';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2642
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2643
    if CheckAndFetchParamCountRange(L, 1, 2, call, params, np) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2644
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2645
        at:= LuaToAmmoTypeOrd(L, 1, call, params);                                                                                                   
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2646
        ignoreOverwrite := false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2647
        if np > 1 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2648
            ignoreOverwrite := lua_toboolean(L, 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2649
        if at >= 0 then   
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2650
            if (not ignoreOverwrite) and (length(trluaammo[Ammoz[TAmmoType(at)].NameId]) > 0) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2651
                lua_pushstring(L, PChar(trluaammo[Ammoz[TAmmoType(at)].NameId]))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2652
            else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2653
                lua_pushstring(L, PChar(trammo[Ammoz[TAmmoType(at)].NameId]));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2654
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2655
    else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2656
        lua_pushnil(L);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2657
    lc_getammoname:= 1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2658
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2659
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2660
function lc_startghostpoints(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2661
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2662
    if CheckLuaParamCount(L, 1, 'StartGhostPoints', 'count') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2663
        startGhostPoints(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2664
    lc_startghostpoints:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2665
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2666
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2667
function lc_dumppoint(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2668
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2669
    if CheckLuaParamCount(L, 2, 'DumpPoint', 'x, y') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2670
        dumpPoint(lua_tointeger(L, 1), lua_tointeger(L, 2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2671
    lc_dumppoint:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2672
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2673
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2674
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2675
procedure ScriptFlushPoints();
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2676
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2677
    ParseCommand('draw ' + PointsBuffer, true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2678
    PointsBuffer:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2679
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2680
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2681
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2682
function lc_addPoint(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2683
var np, param: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2684
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2685
    if CheckAndFetchParamCountRange(L, 2, 4, 'AddPoint', 'x, y [, width [, erase] ]', np) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2686
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2687
        // x
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2688
        param:= LongInt(lua_tointeger(L,1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2689
        PointsBuffer:= PointsBuffer + char((param shr 8) and $FF);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2690
        PointsBuffer:= PointsBuffer + char((param and $FF));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2691
        // y
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2692
        param:= LongInt(lua_tointeger(L,2));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2693
        PointsBuffer:= PointsBuffer + char((param shr 8) and $FF);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2694
        PointsBuffer:= PointsBuffer + char((param and $FF));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2695
        // width
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2696
        if np > 2 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2697
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2698
            param:= lua_tointeger(L,3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2699
            param:= (param or $80);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2700
            // erase
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2701
            if (np > 3) and lua_toboolean(L, 4) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2702
                param:= (param or $40);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2703
            PointsBuffer:= PointsBuffer + char(param);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2704
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2705
        // no width defined
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2706
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2707
            PointsBuffer:= PointsBuffer + char(0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2708
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2709
        // flush before shortstring limit length is reached
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2710
        if length(PointsBuffer) > 245 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2711
            ScriptFlushPoints();
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2712
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2713
    lc_addPoint:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2714
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2715
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2716
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2717
function lc_flushPoints(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2718
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2719
    if CheckLuaParamCount(L, 0, 'FlushPoints', '') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2720
        if length(PointsBuffer) > 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2721
            ScriptFlushPoints();
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2722
    lc_flushPoints:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2723
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2724
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2725
// stuff for lua tests
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2726
function lc_endluatest(L : Plua_State) : LongInt; Cdecl;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2727
var rstring: shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2728
const
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2729
    call = 'EndLuaTest';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2730
    params = 'TEST_SUCCESSFUL or TEST_FAILED';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2731
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2732
    if CheckLuaParamCount(L, 1, call, params) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2733
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2734
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2735
        case lua_tointeger(L, 1) of
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2736
            HaltTestSuccess : rstring:= 'Success';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2737
            HaltTestFailed: rstring:= 'FAILED';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2738
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2739
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2740
            LuaCallError('Parameter must be either ' + params, call, params);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2741
            exit(0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2742
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2743
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2744
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2745
        if cTestLua then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2746
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2747
            WriteLnToConsole('Lua test finished, result: ' + rstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2748
            halt(lua_tointeger(L, 1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2749
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2750
        else LuaError('Not in lua test mode, engine will keep running. Reported test result: ' + rstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2751
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2752
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2753
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2754
    lc_endluatest:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2755
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2756
///////////////////
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2757
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2758
procedure ScriptPrintStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2759
var n, i : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2760
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2761
    n:= lua_gettop(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2762
    WriteLnToConsole('Lua: Stack (' + inttostr(n) + ' elements):');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2763
    for i:= 1 to n do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2764
        if not lua_isboolean(luaState, i) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2765
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': ' + lua_tostring(luaState, i))
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2766
        else if lua_toboolean(luaState, i) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2767
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': true')
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2768
        else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2769
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': false');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2770
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2771
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2772
procedure ScriptClearStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2773
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2774
    lua_settop(luaState, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2775
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2776
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2777
procedure ScriptSetNil(name : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2778
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2779
    lua_pushnil(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2780
    lua_setglobal(luaState, Str2PChar(name));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2781
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2782
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2783
procedure ScriptSetInteger(name : shortstring; value : LongInt);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2784
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2785
    lua_pushinteger(luaState, value);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2786
    lua_setglobal(luaState, Str2PChar(name));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2787
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2788
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2789
procedure ScriptSetString(name : shortstring; value : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2790
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2791
    lua_pushstring(luaState, Str2PChar(value));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2792
    lua_setglobal(luaState, Str2PChar(name));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2793
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2794
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2795
function ScriptGetInteger(name : shortstring) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2796
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2797
    lua_getglobal(luaState, Str2PChar(name));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2798
    ScriptGetInteger:= lua_tointeger(luaState, -1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2799
    lua_pop(luaState, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2800
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2801
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2802
function ScriptGetString(name : shortstring) : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2803
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2804
    lua_getglobal(luaState, Str2PChar(name));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2805
    ScriptGetString:= lua_tostring(luaState, -1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2806
    lua_pop(luaState, 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2807
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2808
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2809
procedure ScriptOnPreviewInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2810
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2811
// not required if there is no script to run
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2812
if not ScriptLoaded then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2813
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2814
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2815
ScriptSetString('Seed', cSeed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2816
ScriptSetInteger('TemplateFilter', cTemplateFilter);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2817
ScriptSetInteger('TemplateNumber', LuaTemplateNumber);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2818
ScriptSetInteger('MapGen', ord(cMapGen));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2819
ScriptSetInteger('MapFeatureSize', cFeatureSize);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2820
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2821
ScriptCall('onPreviewInit');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2822
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2823
// pop game variables
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2824
ParseCommand('seed ' + ScriptGetString('Seed'), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2825
cTemplateFilter  := ScriptGetInteger('TemplateFilter');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2826
LuaTemplateNumber:= ScriptGetInteger('TemplateNumber');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2827
cMapGen          := TMapGen(ScriptGetInteger('MapGen'));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2828
cFeatureSize     := ScriptGetInteger('MapFeatureSize');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2829
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2830
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2831
procedure ScriptOnGameInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2832
var i, j, k: LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2833
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2834
// not required if there is no script to run
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2835
if not ScriptLoaded then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2836
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2837
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2838
// push game variables so they may be modified by the script
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2839
ScriptSetInteger('CursorX', CursorPoint.X);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2840
ScriptSetInteger('CursorY', CursorPoint.Y);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2841
ScriptSetInteger('BorderColor', ExplosionBorderColor);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2842
ScriptSetInteger('GameFlags', GameFlags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2843
ScriptSetInteger('WorldEdge', ord(WorldEdge));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2844
ScriptSetString('Seed', cSeed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2845
ScriptSetInteger('TemplateFilter', cTemplateFilter);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2846
ScriptSetInteger('TemplateNumber', LuaTemplateNumber);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2847
ScriptSetInteger('MapGen', ord(cMapGen));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2848
ScriptSetInteger('MapFeatureSize', cFeatureSize);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2849
ScriptSetInteger('ScreenHeight', cScreenHeight);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2850
ScriptSetInteger('ScreenWidth', cScreenWidth);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2851
ScriptSetInteger('TurnTime', cHedgehogTurnTime);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2852
ScriptSetInteger('CaseFreq', cCaseFactor);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2853
ScriptSetInteger('HealthCaseProb', cHealthCaseProb);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2854
ScriptSetInteger('HealthCaseAmount', cHealthCaseAmount);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2855
ScriptSetInteger('DamagePercent', cDamagePercent);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2856
ScriptSetInteger('RopePercent', cRopePercent);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2857
ScriptSetInteger('MinesNum', cLandMines);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2858
ScriptSetInteger('MinesTime', cMinesTime);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2859
ScriptSetInteger('MineDudPercent', cMineDudPercent);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2860
ScriptSetInteger('AirMinesNum', cAirMines);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2861
ScriptSetInteger('Explosives', cExplosives);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2862
ScriptSetInteger('Delay', cInactDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2863
ScriptSetInteger('Ready', cReadyDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2864
ScriptSetInteger('SuddenDeathTurns', cSuddenDTurns);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2865
ScriptSetInteger('WaterRise', cWaterRise);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2866
ScriptSetInteger('HealthDecrease', cHealthDecrease);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2867
ScriptSetInteger('GetAwayTime', cGetAwayTime);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2868
ScriptSetString('Map', cMapName);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2869
ScriptSetString('Theme', Theme);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2870
ScriptSetString('Goals', '');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2871
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2872
ScriptCall('onGameInit');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2873
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2874
// pop game variables
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2875
ParseCommand('seed ' + ScriptGetString('Seed'), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2876
cTemplateFilter  := ScriptGetInteger('TemplateFilter');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2877
LuaTemplateNumber:= ScriptGetInteger('TemplateNumber');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2878
cMapGen          := TMapGen(ScriptGetInteger('MapGen'));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2879
cFeatureSize     := ScriptGetInteger('MapFeatureSize');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2880
GameFlags        := ScriptGetInteger('GameFlags');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2881
WorldEdge        := TWorldEdge(ScriptGetInteger('WorldEdge'));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2882
cHedgehogTurnTime:= ScriptGetInteger('TurnTime');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2883
cCaseFactor      := ScriptGetInteger('CaseFreq');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2884
cHealthCaseProb  := ScriptGetInteger('HealthCaseProb');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2885
cHealthCaseAmount:= ScriptGetInteger('HealthCaseAmount');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2886
cDamagePercent   := ScriptGetInteger('DamagePercent');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2887
cRopePercent     := ScriptGetInteger('RopePercent');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2888
cLandMines       := ScriptGetInteger('MinesNum');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2889
cMinesTime       := ScriptGetInteger('MinesTime');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2890
cMineDudPercent  := ScriptGetInteger('MineDudPercent');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2891
cAirMines        := ScriptGetInteger('AirMinesNum');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2892
cExplosives      := ScriptGetInteger('Explosives');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2893
cInactDelay      := ScriptGetInteger('Delay');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2894
cReadyDelay      := ScriptGetInteger('Ready');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2895
cSuddenDTurns    := ScriptGetInteger('SuddenDeathTurns');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2896
cWaterRise       := ScriptGetInteger('WaterRise');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2897
cHealthDecrease  := ScriptGetInteger('HealthDecrease');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2898
cGetAwayTime     := ScriptGetInteger('GetAwayTime');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2899
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2900
if cMapName <> ScriptGetString('Map') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2901
    ParseCommand('map ' + ScriptGetString('Map'), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2902
if ScriptGetString('Theme') <> '' then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2903
    ParseCommand('theme ' + ScriptGetString('Theme'), true, true);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2904
LuaGoals:= ScriptGetString('Goals');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2905
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2906
// Support lua changing the ammo layout - assume all hogs have same ammo, note this might leave a few ammo stores lying around.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2907
k:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2908
if (GameFlags and gfSharedAmmo) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2909
    for i:= 0 to Pred(ClansCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2910
        for j:= 0 to Pred(ClansArray[i]^.TeamsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2911
            for k:= 0 to Pred(ClansArray[i]^.Teams[j]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2912
                ClansArray[i]^.Teams[j]^.Hedgehogs[k].AmmoStore:= i
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2913
else if (GameFlags and gfPerHogAmmo) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2914
    for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2915
        for j:= 0 to Pred(TeamsArray[i]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2916
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2917
            TeamsArray[i]^.Hedgehogs[j].AmmoStore:= k;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2918
            if StoreCnt-1 < k then AddAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2919
            inc(k)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2920
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2921
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2922
    for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2923
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2924
        for j:= 0 to Pred(TeamsArray[i]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2925
            TeamsArray[i]^.Hedgehogs[j].AmmoStore:= k;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2926
        if StoreCnt-1 < k then AddAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2927
        inc(k)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2928
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2929
if ScriptExists('onAmmoStoreInit') or ScriptExists('onNewAmmoStore') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2930
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2931
    // reset ammostore (quite unclean, but works?)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2932
    uAmmos.freeModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2933
    uAmmos.initModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2934
    if ScriptExists('onAmmoStoreInit') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2935
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2936
        ScriptPrepareAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2937
        ScriptCall('onAmmoStoreInit');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2938
        SetAmmoLoadout(ScriptAmmoLoadout);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2939
        SetAmmoProbability(ScriptAmmoProbability);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2940
        SetAmmoDelay(ScriptAmmoDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2941
        SetAmmoReinforcement(ScriptAmmoReinforcement)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2942
        end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2943
    ScriptApplyAmmoStore
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2944
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2945
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2946
ScriptSetInteger('ClansCount', ClansCount);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2947
ScriptSetInteger('TeamsCount', TeamsCount);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2948
mapDims:= false
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2949
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2950
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2951
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2952
// Update values of screen dimensions and allow script to react to resolution change
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2953
procedure ScriptOnScreenResize();
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2954
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2955
ScriptSetInteger('ScreenHeight', cScreenHeight);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2956
ScriptSetInteger('ScreenWidth', cScreenWidth);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2957
ScriptCall('onScreenResize');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2958
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2959
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2960
// custom script loader via physfs, passed to lua_load
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2961
const BUFSIZE = 1024;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2962
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2963
procedure ScriptLoad(name : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2964
var ret : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2965
      s : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2966
      f : PFSFile;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2967
    buf : array[0..Pred(BUFSIZE)] of byte;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2968
//lua_buf : luaL_Buffer;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2969
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2970
s:= cPathz[ptData] + name;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2971
if not pfsExists(s) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2972
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2973
    AddFileLog('[LUA] Script not found: ' + name);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2974
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2975
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2976
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2977
f:= pfsOpenRead(s);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2978
if f = nil then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2979
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2980
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2981
physfsReaderSetBuffer(@buf);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2982
ret:= lua_load(luaState, @physfsReader, f, Str2PChar(s));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2983
pfsClose(f);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2984
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2985
if ret <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2986
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2987
    LuaError('Failed to load ' + name + '(error ' + IntToStr(ret) + ')');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2988
    LuaError(lua_tostring(luaState, -1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2989
    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2990
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2991
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2992
    WriteLnToConsole('Lua: ' + name + ' loaded');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2993
    // dump and hash all functions currently known by lua
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2994
    // use hash to salt map hash
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2995
// init buffer
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2996
//luaL_buffinit(luaState, @lua_buf);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2997
//lua_dump(luaState, @lua_dump_digester, @lua_buf);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2998
// cleanup buffer
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  2999
//luaL_pushresult(@lua_buf);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3000
    // --
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3001
    // could first read the file, then hash it, then use load_string
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3002
    // call the script file
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3003
    lua_pcall(luaState, 0, 0, 0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3004
    ScriptLoaded:= true
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3005
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3006
hedgewarsMountPackage(Str2PChar(copy(s, 1, length(s)-4)+'.hwp'));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3007
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3008
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3009
procedure SetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3010
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3011
ScriptSetInteger('TurnTimeLeft', TurnTimeLeft);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3012
ScriptSetInteger('GameTime', GameTicks);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3013
ScriptSetInteger('TotalRounds', TotalRounds);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3014
ScriptSetInteger('WaterLine', cWaterLine);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3015
if isCursorVisible and (not bShowAmmoMenu) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3016
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3017
    if (prevCursorPoint.X <> CursorPoint.X) or
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3018
       (prevCursorPoint.Y <> CursorPoint.Y) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3019
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3020
        ScriptSetInteger('CursorX', CursorPoint.X - WorldDx);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3021
        ScriptSetInteger('CursorY', cScreenHeight - CursorPoint.Y- WorldDy);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3022
        prevCursorPoint.X:= CursorPoint.X;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3023
        prevCursorPoint.Y:= CursorPoint.Y;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3024
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3025
    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3026
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3027
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3028
    ScriptSetInteger('CursorX', NoPointX);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3029
    ScriptSetInteger('CursorY', NoPointX);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3030
    prevCursorPoint.X:= NoPointX;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3031
    prevCursorPoint.Y:= NoPointX
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3032
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3033
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3034
if not mapDims then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3035
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3036
    mapDims:= true;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3037
    ScriptSetInteger('LAND_WIDTH', LAND_WIDTH);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3038
    ScriptSetInteger('LAND_HEIGHT', LAND_HEIGHT);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3039
    ScriptSetInteger('LeftX', leftX);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3040
    ScriptSetInteger('RightX', rightX);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3041
    ScriptSetInteger('TopY', topY)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3042
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3043
if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3044
    ScriptSetInteger('CurrentHedgehog', CurrentHedgehog^.Gear^.UID)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3045
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3046
    ScriptSetNil('CurrentHedgehog');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3047
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3048
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3049
procedure GetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3050
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3051
// TODO
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3052
// Use setters instead, because globals should be read-only!
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3053
// Otherwise globals might be changed by Lua, but then unexpectatly overwritten by engine when a ScriptCall is triggered by whatever Lua is doing!
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3054
// Sure, one could work around that in engine (e.g. by setting writable globals in SetGlobals only when their engine-side value has actually changed since SetGlobals was called the last time...), but things just get messier and messier then.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3055
// It is inconsistent anyway to have some globals be read-only and others not with no indication whatsoever.
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3056
// -- sheepluva
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3057
TurnTimeLeft:= ScriptGetInteger('TurnTimeLeft');
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3058
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3059
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3060
procedure ScriptCall(fname : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3061
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3062
if (not ScriptLoaded) or (not ScriptExists(fname)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3063
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3064
SetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3065
lua_getglobal(luaState, Str2PChar(fname));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3066
if lua_pcall(luaState, 0, 0, 0) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3067
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3068
    LuaError('Error while calling ' + fname + ': ' + lua_tostring(luaState, -1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3069
    lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3070
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3071
GetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3072
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3073
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3074
(*
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3075
function ParseCommandOverride(key, value : shortstring) : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3076
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3077
ParseCommandOverride:= value;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3078
if not ScriptExists('ParseCommandOverride') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3079
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3080
lua_getglobal(luaState, Str2PChar('ParseCommandOverride'));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3081
lua_pushstring(luaState, Str2PChar(key));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3082
lua_pushstring(luaState, Str2PChar(value));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3083
if lua_pcall(luaState, 2, 1, 0) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3084
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3085
    LuaError('Lua: Error while calling ParseCommandOverride: ' + lua_tostring(luaState, -1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3086
    lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3087
    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3088
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3089
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3090
    ParseCommandOverride:= lua_tostring(luaState, -1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3091
    lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3092
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3093
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3094
*)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3095
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3096
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3097
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3098
ScriptCall:= ScriptCall(fname, par1, 0, 0, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3099
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3100
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3101
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3102
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3103
ScriptCall:= ScriptCall(fname, par1, par2, 0, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3104
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3105
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3106
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3107
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3108
ScriptCall:= ScriptCall(fname, par1, par2, par3, 0)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3109
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3110
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3111
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3112
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3113
if (not ScriptLoaded) or (not ScriptExists(fname)) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3114
    exit(0);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3115
SetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3116
lua_getglobal(luaState, Str2PChar(fname));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3117
lua_pushinteger(luaState, par1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3118
lua_pushinteger(luaState, par2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3119
lua_pushinteger(luaState, par3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3120
lua_pushinteger(luaState, par4);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3121
ScriptCall:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3122
if lua_pcall(luaState, 4, 1, 0) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3123
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3124
    LuaError('Error while calling ' + fname + ': ' + lua_tostring(luaState, -1));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3125
    lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3126
    end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3127
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3128
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3129
    ScriptCall:= lua_tointeger(luaState, -1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3130
    lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3131
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3132
GetGlobals;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3133
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3134
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3135
function ScriptExists(fname : shortstring) : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3136
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3137
if not ScriptLoaded then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3138
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3139
    ScriptExists:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3140
    exit
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3141
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3142
lua_getglobal(luaState, Str2PChar(fname));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3143
ScriptExists:= not lua_isnoneornil(luaState, -1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3144
lua_pop(luaState, 1)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3145
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3146
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3147
procedure ScriptPrepareAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3148
var i: ShortInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3149
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3150
ScriptAmmoLoadout:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3151
ScriptAmmoDelay:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3152
ScriptAmmoProbability:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3153
ScriptAmmoReinforcement:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3154
for i:=1 to ord(High(TAmmoType)) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3155
    begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3156
    ScriptAmmoLoadout:= ScriptAmmoLoadout + '0';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3157
    ScriptAmmoProbability:= ScriptAmmoProbability + '0';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3158
    ScriptAmmoDelay:= ScriptAmmoDelay + '0';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3159
    ScriptAmmoReinforcement:= ScriptAmmoReinforcement + '0';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3160
    end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3161
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3162
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3163
procedure ScriptSetAmmo(ammo : TAmmoType; count, probability, delay, reinforcement: Byte);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3164
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3165
//if (ord(ammo) < 1) or (count > 9) or (count < 0) or (probability < 0) or (probability > 8) or (delay < 0) or (delay > 9) or (reinforcement < 0) or (reinforcement > 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3166
if (ord(ammo) < 1) or (count > 9) or (probability > 8) or (delay > 9) or (reinforcement > 8) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3167
    exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3168
ScriptAmmoLoadout[ord(ammo)]:= inttostr(count)[1];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3169
ScriptAmmoProbability[ord(ammo)]:= inttostr(probability)[1];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3170
ScriptSetAmmoDelay(ammo, delay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3171
ScriptAmmoReinforcement[ord(ammo)]:= inttostr(reinforcement)[1];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3172
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3173
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3174
procedure ScriptSetAmmoDelay(ammo : TAmmoType; delay: Byte);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3175
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3176
// change loadout string if ammo store has not been initialized yet
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3177
if (StoreCnt = 0) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3178
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3179
    if (delay <= 9) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3180
        ScriptAmmoDelay[ord(ammo)]:= inttostr(delay)[1];
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3181
end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3182
// change 'live' delay values
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3183
else if (CurrentTeam <> nil) then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3184
        ammoz[ammo].SkipTurns:= CurrentTeam^.Clan^.TurnNumber + delay;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3185
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3186
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3187
procedure ScriptApplyAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3188
var i, j, k : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3189
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3190
if (GameFlags and gfSharedAmmo) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3191
    for i:= 0 to Pred(ClansCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3192
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3193
        if ScriptExists('onNewAmmoStore') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3194
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3195
            ScriptPrepareAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3196
            ScriptCall('onNewAmmoStore',i,-1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3197
            SetAmmoLoadout(ScriptAmmoLoadout);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3198
            SetAmmoProbability(ScriptAmmoProbability);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3199
            SetAmmoDelay(ScriptAmmoDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3200
            SetAmmoReinforcement(ScriptAmmoReinforcement)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3201
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3202
        AddAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3203
        for j:= 0 to Pred(ClansArray[i]^.TeamsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3204
            for k:= 0 to Pred(ClansArray[i]^.Teams[j]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3205
                ClansArray[i]^.Teams[j]^.Hedgehogs[k].AmmoStore:= StoreCnt - 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3206
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3207
else if (GameFlags and gfPerHogAmmo) <> 0 then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3208
    for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3209
        for j:= 0 to Pred(TeamsArray[i]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3210
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3211
            if ScriptExists('onNewAmmoStore') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3212
                begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3213
                ScriptPrepareAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3214
                ScriptCall('onNewAmmoStore',i,j);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3215
                SetAmmoLoadout(ScriptAmmoLoadout);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3216
                SetAmmoProbability(ScriptAmmoProbability);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3217
                SetAmmoDelay(ScriptAmmoDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3218
                SetAmmoReinforcement(ScriptAmmoReinforcement)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3219
                end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3220
            AddAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3221
            TeamsArray[i]^.Hedgehogs[j].AmmoStore:= StoreCnt - 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3222
            end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3223
else
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3224
    for i:= 0 to Pred(TeamsCount) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3225
        begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3226
        if ScriptExists('onNewAmmoStore') then
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3227
            begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3228
            ScriptPrepareAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3229
            ScriptCall('onNewAmmoStore',i,-1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3230
            SetAmmoLoadout(ScriptAmmoLoadout);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3231
            SetAmmoProbability(ScriptAmmoProbability);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3232
            SetAmmoDelay(ScriptAmmoDelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3233
            SetAmmoReinforcement(ScriptAmmoReinforcement)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3234
            end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3235
        AddAmmoStore;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3236
        for j:= 0 to Pred(TeamsArray[i]^.HedgehogsNumber) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3237
            TeamsArray[i]^.Hedgehogs[j].AmmoStore:= StoreCnt - 1
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3238
        end
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3239
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3240
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3241
procedure initModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3242
var at : TGearType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3243
    vgt: TVisualGearType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3244
    am : TAmmoType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3245
    si : TStatInfoType;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3246
    st : TSound;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3247
    he : THogEffect;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3248
    cg : TCapGroup;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3249
    spr: TSprite;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3250
    mg : TMapGen;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3251
    we : TWorldEdge;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3252
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3253
// initialize lua
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3254
luaState:= lua_open;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3255
if checkFails(luaState <> nil, 'lua_open failed', true) then exit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3256
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3257
// open internal libraries
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3258
luaopen_base(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3259
luaopen_string(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3260
luaopen_math(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3261
luaopen_table(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3262
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3263
// import some variables
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3264
ScriptSetString(_S'L', cLocale);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3265
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3266
// import game flags
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3267
ScriptSetInteger('gfForts', gfForts);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3268
ScriptSetInteger('gfMultiWeapon', gfMultiWeapon);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3269
ScriptSetInteger('gfSolidLand', gfSolidLand);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3270
ScriptSetInteger('gfBorder', gfBorder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3271
ScriptSetInteger('gfBottomBorder', gfBottomBorder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3272
ScriptSetInteger('gfDivideTeams', gfDivideTeams);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3273
ScriptSetInteger('gfLowGravity', gfLowGravity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3274
ScriptSetInteger('gfLaserSight', gfLaserSight);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3275
ScriptSetInteger('gfInvulnerable', gfInvulnerable);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3276
ScriptSetInteger('gfResetHealth', gfResetHealth);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3277
ScriptSetInteger('gfVampiric', gfVampiric);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3278
ScriptSetInteger('gfKarma', gfKarma);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3279
ScriptSetInteger('gfArtillery', gfArtillery);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3280
ScriptSetInteger('gfOneClanMode', gfOneClanMode);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3281
ScriptSetInteger('gfRandomOrder', gfRandomOrder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3282
ScriptSetInteger('gfKing', gfKing);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3283
ScriptSetInteger('gfPlaceHog', gfPlaceHog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3284
ScriptSetInteger('gfSharedAmmo', gfSharedAmmo);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3285
ScriptSetInteger('gfDisableGirders', gfDisableGirders);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3286
ScriptSetInteger('gfDisableLandObjects', gfDisableLandObjects);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3287
ScriptSetInteger('gfAISurvival', gfAISurvival);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3288
ScriptSetInteger('gfInfAttack', gfInfAttack);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3289
ScriptSetInteger('gfResetWeps', gfResetWeps);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3290
ScriptSetInteger('gfPerHogAmmo', gfPerHogAmmo);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3291
ScriptSetInteger('gfDisableWind', gfDisableWind);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3292
ScriptSetInteger('gfMoreWind', gfMoreWind);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3293
ScriptSetInteger('gfTagTeam', gfTagTeam);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3294
ScriptSetInteger('gfShoppaBorder', gfShoppaBorder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3295
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3296
ScriptSetInteger('gmLeft', gmLeft);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3297
ScriptSetInteger('gmRight', gmRight);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3298
ScriptSetInteger('gmUp', gmUp);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3299
ScriptSetInteger('gmDown', gmDown);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3300
ScriptSetInteger('gmSwitch', gmSwitch);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3301
ScriptSetInteger('gmAttack', gmAttack);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3302
ScriptSetInteger('gmLJump', gmLJump);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3303
ScriptSetInteger('gmHJump', gmHJump);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3304
ScriptSetInteger('gmDestroy', gmDestroy);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3305
ScriptSetInteger('gmSlot', gmSlot);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3306
ScriptSetInteger('gmWeapon', gmWeapon);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3307
ScriptSetInteger('gmTimer', gmTimer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3308
ScriptSetInteger('gmAnimate', gmAnimate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3309
ScriptSetInteger('gmPrecise', gmPrecise);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3310
ScriptSetInteger('gmAllStoppable', gmAllStoppable);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3311
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3312
// speech bubbles
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3313
ScriptSetInteger('SAY_SAY', 1);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3314
ScriptSetInteger('SAY_THINK', 2);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3315
ScriptSetInteger('SAY_SHOUT', 3);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3316
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3317
// register gear types
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3318
for at:= Low(TGearType) to High(TGearType) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3319
    ScriptSetInteger(EnumToStr(at), ord(at));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3320
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3321
for vgt:= Low(TVisualGearType) to High(TVisualGearType) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3322
    ScriptSetInteger(EnumToStr(vgt), ord(vgt));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3323
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3324
// register sounds
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3325
for st:= Low(TSound) to High(TSound) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3326
    ScriptSetInteger(EnumToStr(st), ord(st));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3327
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3328
// register ammo types
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3329
for am:= Low(TAmmoType) to High(TAmmoType) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3330
    ScriptSetInteger(EnumToStr(am), ord(am));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3331
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3332
for si:= Low(TStatInfoType) to High(TStatInfoType) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3333
    ScriptSetInteger(EnumToStr(si), ord(si));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3334
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3335
for he:= Low(THogEffect) to High(THogEffect) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3336
    ScriptSetInteger(EnumToStr(he), ord(he));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3337
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3338
for cg:= Low(TCapGroup) to High(TCapGroup) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3339
    ScriptSetInteger(EnumToStr(cg), ord(cg));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3340
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3341
for spr:= Low(TSprite) to High(TSprite) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3342
    ScriptSetInteger(EnumToStr(spr), ord(spr));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3343
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3344
for mg:= Low(TMapGen) to High(TMapGen) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3345
    ScriptSetInteger(EnumToStr(mg), ord(mg));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3346
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3347
for we:= Low(TWorldEdge) to High(TWorldEdge) do
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3348
    ScriptSetInteger(EnumToStr(we), ord(we));
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3349
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3350
ScriptSetInteger('gstDrowning'      , gstDrowning);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3351
ScriptSetInteger('gstHHDriven'      , gstHHDriven);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3352
ScriptSetInteger('gstMoving'        , gstMoving);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3353
ScriptSetInteger('gstAttacked'      , gstAttacked);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3354
ScriptSetInteger('gstAttacking'     , gstAttacking);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3355
ScriptSetInteger('gstCollision'     , gstCollision);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3356
ScriptSetInteger('gstChooseTarget'  , gstChooseTarget);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3357
ScriptSetInteger('gstHHJumping'     , gstHHJumping);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3358
ScriptSetInteger('gsttmpFlag'       , gsttmpFlag);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3359
ScriptSetInteger('gstHHThinking'    , gstHHThinking);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3360
ScriptSetInteger('gstNoDamage'      , gstNoDamage);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3361
ScriptSetInteger('gstHHHJump'       , gstHHHJump);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3362
ScriptSetInteger('gstAnimation'     , gstAnimation);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3363
ScriptSetInteger('gstHHDeath'       , gstHHDeath);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3364
ScriptSetInteger('gstWinner'        , gstWinner);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3365
ScriptSetInteger('gstWait'          , gstWait);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3366
ScriptSetInteger('gstNotKickable'   , gstNotKickable);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3367
ScriptSetInteger('gstLoser'         , gstLoser);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3368
ScriptSetInteger('gstHHGone'        , gstHHGone);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3369
ScriptSetInteger('gstInvisible'     , gstInvisible);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3370
ScriptSetInteger('gstSubmersible'   , gstSubmersible);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3371
ScriptSetInteger('gstFrozen'        , gstFrozen);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3372
ScriptSetInteger('gstNoGravity'     , gstNoGravity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3373
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3374
// ai hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3375
ScriptSetInteger('aihUsualProcessing', aihUsualProcessing);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3376
ScriptSetInteger('aihDoesntMatter'   , aihDoesntMatter);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3377
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3378
// land flags
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3379
ScriptSetInteger('lfIndestructible', lfIndestructible);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3380
ScriptSetInteger('lfIce'           , lfIce);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3381
ScriptSetInteger('lfBouncy'        , lfBouncy);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3382
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3383
// register functions
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3384
lua_register(luaState, _P'HideHog', @lc_hidehog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3385
lua_register(luaState, _P'RestoreHog', @lc_restorehog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3386
lua_register(luaState, _P'SaveCampaignVar', @lc_savecampaignvar);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3387
lua_register(luaState, _P'GetCampaignVar', @lc_getcampaignvar);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3388
lua_register(luaState, _P'band', @lc_band);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3389
lua_register(luaState, _P'bor', @lc_bor);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3390
lua_register(luaState, _P'bnot', @lc_bnot);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3391
lua_register(luaState, _P'div', @lc_div);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3392
lua_register(luaState, _P'GetInputMask', @lc_getinputmask);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3393
lua_register(luaState, _P'SetInputMask', @lc_setinputmask);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3394
lua_register(luaState, _P'AddGear', @lc_addgear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3395
lua_register(luaState, _P'DismissTeam', @lc_dismissteam);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3396
lua_register(luaState, _P'EnableGameFlags', @lc_enablegameflags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3397
lua_register(luaState, _P'DisableGameFlags', @lc_disablegameflags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3398
lua_register(luaState, _P'ClearGameFlags', @lc_cleargameflags);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3399
lua_register(luaState, _P'GetGameFlag', @lc_getgameflag);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3400
lua_register(luaState, _P'DeleteGear', @lc_deletegear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3401
lua_register(luaState, _P'AddVisualGear', @lc_addvisualgear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3402
lua_register(luaState, _P'DeleteVisualGear', @lc_deletevisualgear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3403
lua_register(luaState, _P'GetVisualGearType', @lc_getvisualgeartype);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3404
lua_register(luaState, _P'GetVisualGearValues', @lc_getvisualgearvalues);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3405
lua_register(luaState, _P'SetVisualGearValues', @lc_setvisualgearvalues);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3406
lua_register(luaState, _P'GetGearValues', @lc_getgearvalues);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3407
lua_register(luaState, _P'SetGearValues', @lc_setgearvalues);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3408
lua_register(luaState, _P'SpawnHealthCrate', @lc_spawnhealthcrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3409
lua_register(luaState, _P'SpawnAmmoCrate', @lc_spawnammocrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3410
lua_register(luaState, _P'SpawnUtilityCrate', @lc_spawnutilitycrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3411
lua_register(luaState, _P'SpawnFakeHealthCrate', @lc_spawnfakehealthcrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3412
lua_register(luaState, _P'SpawnFakeAmmoCrate', @lc_spawnfakeammocrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3413
lua_register(luaState, _P'SpawnFakeUtilityCrate', @lc_spawnfakeutilitycrate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3414
lua_register(luaState, _P'WriteLnToConsole', @lc_writelntoconsole);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3415
lua_register(luaState, _P'GetGearType', @lc_getgeartype);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3416
lua_register(luaState, _P'EndGame', @lc_endgame);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3417
lua_register(luaState, _P'SendStat', @lc_sendstat);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3418
lua_register(luaState, _P'SendHealthStatsOff', @lc_sendhealthstatsoff);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3419
lua_register(luaState, _P'FindPlace', @lc_findplace);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3420
lua_register(luaState, _P'SetGearPosition', @lc_setgearposition);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3421
lua_register(luaState, _P'GetGearPosition', @lc_getgearposition);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3422
lua_register(luaState, _P'SetGearTarget', @lc_setgeartarget);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3423
lua_register(luaState, _P'GetGearTarget', @lc_getgeartarget);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3424
lua_register(luaState, _P'SetGearVelocity', @lc_setgearvelocity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3425
lua_register(luaState, _P'GetGearVelocity', @lc_getgearvelocity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3426
lua_register(luaState, _P'ParseCommand', @lc_parsecommand);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3427
lua_register(luaState, _P'ShowMission', @lc_showmission);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3428
lua_register(luaState, _P'HideMission', @lc_hidemission);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3429
lua_register(luaState, _P'SetAmmoTexts', @lc_setammotexts);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3430
lua_register(luaState, _P'SetAmmoDescriptionAppendix', @lc_setammodescriptionappendix);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3431
lua_register(luaState, _P'AddCaption', @lc_addcaption);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3432
lua_register(luaState, _P'SetAmmo', @lc_setammo);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3433
lua_register(luaState, _P'SetAmmoDelay', @lc_setammodelay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3434
lua_register(luaState, _P'SetAmmoStore', @lc_setammostore);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3435
lua_register(luaState, _P'PlaySound', @lc_playsound);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3436
lua_register(luaState, _P'AddTeam', @lc_addteam);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3437
lua_register(luaState, _P'AddHog', @lc_addhog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3438
lua_register(luaState, _P'AddAmmo', @lc_addammo);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3439
lua_register(luaState, _P'GetAmmoCount', @lc_getammocount);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3440
lua_register(luaState, _P'SetHealth', @lc_sethealth);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3441
lua_register(luaState, _P'GetHealth', @lc_gethealth);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3442
lua_register(luaState, _P'SetEffect', @lc_seteffect);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3443
lua_register(luaState, _P'GetEffect', @lc_geteffect);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3444
lua_register(luaState, _P'GetHogClan', @lc_gethogclan);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3445
lua_register(luaState, _P'GetClanColor', @lc_getclancolor);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3446
lua_register(luaState, _P'SetClanColor', @lc_setclancolor);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3447
lua_register(luaState, _P'GetHogVoicepack', @lc_gethogvoicepack);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3448
lua_register(luaState, _P'GetHogFlag', @lc_gethogflag);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3449
lua_register(luaState, _P'GetHogFort', @lc_gethogfort);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3450
lua_register(luaState, _P'GetHogGrave', @lc_gethoggrave);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3451
lua_register(luaState, _P'IsHogLocal', @lc_ishoglocal);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3452
lua_register(luaState, _P'GetHogTeamName', @lc_gethogteamname);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3453
lua_register(luaState, _P'SetHogTeamName', @lc_sethogteamname);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3454
lua_register(luaState, _P'GetHogName', @lc_gethogname);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3455
lua_register(luaState, _P'SetHogName', @lc_sethogname);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3456
lua_register(luaState, _P'GetHogLevel', @lc_gethoglevel);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3457
lua_register(luaState, _P'SetHogLevel', @lc_sethoglevel);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3458
lua_register(luaState, _P'GetX', @lc_getx);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3459
lua_register(luaState, _P'GetY', @lc_gety);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3460
lua_register(luaState, _P'CopyPV', @lc_copypv);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3461
lua_register(luaState, _P'FollowGear', @lc_followgear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3462
lua_register(luaState, _P'GetFollowGear', @lc_getfollowgear);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3463
lua_register(luaState, _P'SetState', @lc_setstate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3464
lua_register(luaState, _P'GetState', @lc_getstate);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3465
lua_register(luaState, _P'GetTag', @lc_gettag);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3466
lua_register(luaState, _P'SetTag', @lc_settag);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3467
lua_register(luaState, _P'SetTimer', @lc_settimer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3468
lua_register(luaState, _P'GetTimer', @lc_gettimer);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3469
lua_register(luaState, _P'SetFlightTime', @lc_setflighttime);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3470
lua_register(luaState, _P'GetFlightTime', @lc_getflighttime);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3471
lua_register(luaState, _P'SetZoom', @lc_setzoom);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3472
lua_register(luaState, _P'GetZoom', @lc_getzoom);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3473
lua_register(luaState, _P'HogSay', @lc_hogsay);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3474
lua_register(luaState, _P'SwitchHog', @lc_switchhog);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3475
lua_register(luaState, _P'HogTurnLeft', @lc_hogturnleft);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3476
lua_register(luaState, _P'CampaignLock', @lc_campaignlock);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3477
lua_register(luaState, _P'CampaignUnlock', @lc_campaignunlock);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3478
lua_register(luaState, _P'GetGearElasticity', @lc_getgearelasticity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3479
lua_register(luaState, _P'SetGearElasticity', @lc_setgearelasticity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3480
lua_register(luaState, _P'GetGearFriction', @lc_getgearfriction);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3481
lua_register(luaState, _P'SetGearFriction', @lc_setgearfriction);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3482
lua_register(luaState, _P'GetGearRadius', @lc_getgearradius);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3483
lua_register(luaState, _P'GetGearMessage', @lc_getgearmessage);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3484
lua_register(luaState, _P'SetGearMessage', @lc_setgearmessage);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3485
lua_register(luaState, _P'GetGearPos', @lc_getgearpos);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3486
lua_register(luaState, _P'SetGearPos', @lc_setgearpos);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3487
lua_register(luaState, _P'GetGearCollisionMask', @lc_getgearcollisionmask);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3488
lua_register(luaState, _P'SetGearCollisionMask', @lc_setgearcollisionmask);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3489
lua_register(luaState, _P'GetRandom', @lc_getrandom);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3490
lua_register(luaState, _P'SetWind', @lc_setwind);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3491
lua_register(luaState, _P'MapHasBorder', @lc_maphasborder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3492
lua_register(luaState, _P'GetHogHat', @lc_gethoghat);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3493
lua_register(luaState, _P'SetHogHat', @lc_sethoghat);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3494
lua_register(luaState, _P'EraseSprite', @lc_erasesprite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3495
lua_register(luaState, _P'PlaceSprite', @lc_placesprite);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3496
lua_register(luaState, _P'PlaceGirder', @lc_placegirder);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3497
lua_register(luaState, _P'PlaceRubber', @lc_placerubber);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3498
lua_register(luaState, _P'GetCurAmmoType', @lc_getcurammotype);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3499
lua_register(luaState, _P'TestRectForObstacle', @lc_testrectforobstacle);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3500
lua_register(luaState, _P'GetGravity', @lc_getgravity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3501
lua_register(luaState, _P'SetGravity', @lc_setgravity);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3502
lua_register(luaState, _P'SetWaterLine', @lc_setwaterline);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3503
lua_register(luaState, _P'SetNextWeapon', @lc_setnextweapon);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3504
lua_register(luaState, _P'SetWeapon', @lc_setweapon);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3505
lua_register(luaState, _P'SetCinematicMode', @lc_setcinematicmode);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3506
lua_register(luaState, _P'SetMaxBuildDistance', @lc_setmaxbuilddistance);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3507
lua_register(luaState, _P'GetAmmoName', @lc_getammoname);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3508
// drawn map functions
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3509
lua_register(luaState, _P'AddPoint', @lc_addPoint);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3510
lua_register(luaState, _P'FlushPoints', @lc_flushPoints);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3511
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3512
lua_register(luaState, _P'SetGearAIHints', @lc_setgearaihints);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3513
lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3514
lua_register(luaState, _P'DeclareAchievement', @lc_declareachievement);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3515
lua_register(luaState, _P'StartGhostPoints', @lc_startghostpoints);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3516
lua_register(luaState, _P'DumpPoint', @lc_dumppoint);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3517
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3518
ScriptSetInteger('TEST_SUCCESSFUL'   , HaltTestSuccess);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3519
ScriptSetInteger('TEST_FAILED'       , HaltTestFailed);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3520
lua_register(luaState, _P'EndLuaTest', @lc_endluatest);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3521
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3522
ScriptClearStack; // just to be sure stack is empty
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3523
ScriptLoaded:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3524
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3525
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3526
procedure freeModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3527
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3528
lua_close(luaState);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3529
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3530
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3531
{$ELSE}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3532
procedure ScriptPrintStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3533
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3534
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3535
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3536
procedure ScriptClearStack;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3537
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3538
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3539
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3540
procedure ScriptLoad(name : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3541
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3542
    name:= name; // avoid hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3543
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3544
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3545
procedure ScriptOnGameInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3546
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3547
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3548
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3549
procedure ScriptCall(fname : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3550
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3551
    fname:= fname; // avoid hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3552
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3553
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3554
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3555
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3556
    // avoid hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3557
    fname:= fname;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3558
    par1:= par1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3559
    par2:= par2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3560
    par3:= par3;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3561
    par4:= par4;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3562
    ScriptCall:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3563
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3564
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3565
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3566
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3567
    // avoid hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3568
    fname:= fname;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3569
    par1:= par1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3570
    ScriptCall:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3571
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3572
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3573
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3574
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3575
    // avoid hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3576
    fname:= fname;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3577
    par1:= par1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3578
    par2:= par2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3579
    ScriptCall:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3580
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3581
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3582
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3583
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3584
    // avoid hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3585
    fname:= fname;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3586
    par1:= par1;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3587
    par2:= par2;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3588
    par3:= par3;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3589
    ScriptCall:= 0
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3590
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3591
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3592
function ScriptExists(fname : shortstring) : boolean;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3593
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3594
    fname:= fname; // avoid hint
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3595
    ScriptExists:= false
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3596
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3597
(*
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3598
function ParseCommandOverride(key, value : shortstring) : shortstring;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3599
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3600
    // avoid hints
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3601
    key:= key;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3602
    value:= value;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3603
    ParseCommandOverride:= ''
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3604
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3605
*)
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3606
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3607
procedure ScriptOnScreenResize;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3608
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3609
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3610
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3611
procedure ScriptOnPreviewInit;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3612
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3613
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3614
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3615
procedure ScriptSetInteger(name : shortstring; value : LongInt);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3616
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3617
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3618
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3619
procedure ScriptSetString(name : shortstring; value : shortstring);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3620
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3621
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3622
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3623
procedure LuaParseString(s : ShortString);
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3624
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3625
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3626
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3627
procedure initModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3628
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3629
mapDims:= false;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3630
PointsBuffer:= '';
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3631
prevCursorPoint.X:= NoPointX;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3632
prevCursorPoint.Y:= 0;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3633
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3634
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3635
procedure freeModule;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3636
begin
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3637
end;
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3638
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3639
{$ENDIF}
e3d9abcc427a cmake: Fix SDL2 header version detection
sheepluva
parents:
diff changeset
  3640
end.