hedgewars/uScript.pas
author Henek
Sun, 26 Jun 2011 02:47:36 +0200
changeset 5313 5e18eaef65d0
parent 5277 09beef0752ab
child 5343 ff7ecf483759
child 5357 ec36f3d53f3c
permissions -rw-r--r--
now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     1
(*
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     2
 * Hedgewars, a free turn based strategy game
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4893
diff changeset
     3
 * Copyright (c) 2004-2011 Andrey Korotaev <unC0Rr@gmail.com>
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     4
 *
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     8
 *
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    12
 * GNU General Public License for more details.
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    13
 *
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    14
 * You should have received a copy of the GNU General Public License
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    15
 * along with this program; if not, write to the Free Software
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    17
 *)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    18
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    19
{$INCLUDE "options.inc"}
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    20
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    21
unit uScript;
5124
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    22
(*
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    23
 * This unit defines, implements and registers functions and
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    24
 * variables/constants bindings for usage in Lua scripts.
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    25
 *
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    26
 * Please keep http://code.google.com/p/hedgewars/wiki/LuaAPI up to date!
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    27
 *
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    28
 * Note: If you add a new function, make sure to test if _all_ parameters
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    29
 *       work as intended! (Especially conversions errors can sneak in
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    30
 *       unnoticed and render the parameter useless!)
84267f79879b comments
sheepluva
parents: 5120
diff changeset
    31
 *)
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    32
interface
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    33
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    34
procedure ScriptPrintStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    35
procedure ScriptClearStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    36
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    37
procedure ScriptLoad(name : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    38
procedure ScriptOnGameInit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    39
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    40
procedure ScriptCall(fname : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    41
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    42
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    43
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    44
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    45
function ScriptExists(fname : shortstring) : boolean;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    46
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    47
procedure initModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    48
procedure freeModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    49
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    50
implementation
3906
c5da430cb3fd enable Lua for iOS (hooks for frontend to be done)
koda
parents: 3896
diff changeset
    51
{$IFNDEF LUA_DISABLED}
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    52
uses LuaPas in 'LuaPas.pas',
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    53
    uConsole,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    54
    uConsts,
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
    55
    uVisualGears,
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    56
    uGears,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    57
    uFloat,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    58
    uWorld,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    59
    uAmmos,
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    60
    uSound,
4235
6b1dfbd60a45 added TeamsCount and TotalTurns to lua as requested by mikade
Henek
parents: 4221
diff changeset
    61
    uChat,
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
    62
    uStats,
4875
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
    63
    uStore,
4357
a1fcfc341a52 Introduce unit uTypes in order to remove some cyclic unit dependencies
unC0Rr
parents: 4319
diff changeset
    64
    uRandom,
4359
83ef50815535 Move variables from uMisc to uVariables
unC0Rr
parents: 4357
diff changeset
    65
    uTypes,
4373
fe0e3903bb9e Introduce uCommands.pas
unC0Rr
parents: 4372
diff changeset
    66
    uVariables,
4374
bcefeeabaa33 Move some stuff from uMisc to uUtils
unC0Rr
parents: 4373
diff changeset
    67
    uCommands,
4377
43945842da0c Haven't found a better place than uIO for OutError
unC0Rr
parents: 4374
diff changeset
    68
    uUtils,
4403
unc0rr
parents: 4399
diff changeset
    69
    uCaptions,
4832
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
    70
    uDebug,
4889
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
    71
    uCollisions,
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
    72
    uRenderUtils,
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
    73
    uTextures,
4985
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
    74
    uLandGraphics,
5243
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
    75
    SDLh,
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
    76
    sysutils; 
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3539
diff changeset
    77
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    78
var luaState : Plua_State;
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
    79
    ScriptAmmoLoadout : shortstring;
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
    80
    ScriptAmmoProbability : shortstring;
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
    81
    ScriptAmmoDelay : shortstring;
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
    82
    ScriptAmmoReinforcement : shortstring;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    83
    ScriptLoaded : boolean;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3539
diff changeset
    84
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    85
procedure ScriptPrepareAmmoStore; forward;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    86
procedure ScriptApplyAmmoStore; forward;
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
    87
procedure ScriptSetAmmo(ammo : TAmmoType; count, propability, delay, reinforcement: Byte); forward;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    88
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    89
procedure LuaError(s: shortstring);
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    90
begin
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    91
    WriteLnToConsole(s);
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    92
    AddChatString(#5 + s);
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    93
end;
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    94
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    95
// wrapped calls //
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    96
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
    97
// functions called from Lua:
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    98
// function(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
    99
// where L contains the state, returns the number of return values on the stack
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   100
// call lua_gettop(L) to receive number of parameters passed
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   101
4483
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   102
function lc_band(L: PLua_State): LongInt; Cdecl;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   103
begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   104
    if lua_gettop(L) <> 2 then 
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   105
        begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   106
        LuaError('Lua: Wrong number of parameters passed to band!');
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   107
        lua_pushnil(L);
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   108
        end
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   109
    else lua_pushinteger(L, lua_tointeger(L, 2) and lua_tointeger(L, 1));
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   110
    lc_band := 1;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   111
end;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   112
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   113
function lc_bor(L: PLua_State): LongInt; Cdecl;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   114
begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   115
    if lua_gettop(L) <> 2 then 
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   116
        begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   117
        LuaError('Lua: Wrong number of parameters passed to bor!');
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   118
        lua_pushnil(L);
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   119
        end
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   120
    else lua_pushinteger(L, lua_tointeger(L, 2) or lua_tointeger(L, 1));
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   121
    lc_bor := 1;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   122
end;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   123
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   124
function lc_bnot(L: PLua_State): LongInt; Cdecl;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   125
begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   126
    if lua_gettop(L) <> 1 then 
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   127
        begin
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   128
        LuaError('Lua: Wrong number of parameters passed to bnot!');
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   129
        lua_pushnil(L);
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   130
        end
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   131
    else lua_pushinteger(L, not lua_tointeger(L, 1));
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   132
    lc_bnot := 1;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   133
end;
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
   134
4523
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   135
function lc_getinputmask(L : Plua_State) : LongInt; Cdecl;
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   136
begin
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   137
    if lua_gettop(L) <> 0 then
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   138
        LuaError('Lua: Wrong number of parameters passed to GetInputMask!')
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   139
    else lua_pushinteger(L, InputMask);
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   140
    lc_getinputmask:= 1
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   141
end;
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
   142
4522
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   143
function lc_setinputmask(L : Plua_State) : LongInt; Cdecl;
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   144
begin
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   145
    if lua_gettop(L) <> 1 then
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   146
        LuaError('Lua: Wrong number of parameters passed to SetInputMask!')
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   147
    else InputMask:= lua_tointeger(L, 1);
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   148
    lc_setinputmask:= 0
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   149
end;
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
   150
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   151
function lc_writelntoconsole(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   152
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   153
    if lua_gettop(L) = 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   154
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   155
        WriteLnToConsole('Lua: ' + lua_tostring(L ,1));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   156
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   157
    else
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   158
        LuaError('Lua: Wrong number of parameters passed to WriteLnToConsole!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   159
    lc_writelntoconsole:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   160
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   161
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   162
function lc_parsecommand(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   163
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   164
    if lua_gettop(L) = 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   165
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   166
        ParseCommand(lua_tostring(L ,1), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   167
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   168
    else
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   169
        LuaError('Lua: Wrong number of parameters passed to ParseCommand!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   170
    lc_parsecommand:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   171
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   172
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   173
function lc_showmission(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   174
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   175
    if lua_gettop(L) = 5 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   176
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   177
        ShowMission(lua_tostring(L, 1), lua_tostring(L, 2), lua_tostring(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   178
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   179
    else
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   180
        LuaError('Lua: Wrong number of parameters passed to ShowMission!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   181
    lc_showmission:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   182
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   183
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   184
function lc_hidemission(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   185
begin
3407
dcc129c4352e Engine:
smxx
parents: 3368
diff changeset
   186
    L:= L; // avoid compiler hint
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   187
    HideMission;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   188
    lc_hidemission:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   189
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   190
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   191
function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   192
begin
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   193
    if lua_gettop(L) = 1 then
5118
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
   194
        AddCaption(lua_tostring(L, 1), cWhiteColor, capgrpMessage)
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
   195
    else if lua_gettop(L) = 3 then
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   196
        begin
5118
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
   197
        AddCaption(lua_tostring(L, 1), lua_tointeger(L, 2) shr 8, TCapGroup(lua_tointeger(L, 3)));
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   198
        end
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   199
    else
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   200
        LuaError('Lua: Wrong number of parameters passed to AddCaption!');
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   201
    lc_addcaption:= 0;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   202
end;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
   203
3848
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   204
function lc_campaignlock(L : Plua_State) : LongInt; Cdecl;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   205
begin
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   206
    if lua_gettop(L) = 1 then
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   207
        begin
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   208
        // to be done
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   209
        end
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   210
    else
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   211
        LuaError('Lua: Wrong number of parameters passed to CampaignLock!');
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   212
    lc_campaignlock:= 0;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   213
end;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   214
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   215
function lc_campaignunlock(L : Plua_State) : LongInt; Cdecl;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   216
begin
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   217
    if lua_gettop(L) = 1 then
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   218
        begin
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   219
        // to be done
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   220
        end
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   221
    else
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   222
        LuaError('Lua: Wrong number of parameters passed to CampaignUnlock!');
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   223
    lc_campaignunlock:= 0;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   224
end;
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
   225
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   226
function lc_spawnfakehealthcrate(L: Plua_State) : LongInt; Cdecl;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   227
var gear: PGear;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   228
begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   229
    if lua_gettop(L) <> 3 then begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   230
        LuaError('Lua: Wrong number of parameters passed to SpawnFakeHealthCrate!');
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   231
        lua_pushnil(L);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   232
    end
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   233
    else begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   234
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   235
            HealthCrate, lua_toboolean(L, 3));
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   236
        lua_pushinteger(L, gear^.uid);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   237
    end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   238
    lc_spawnfakehealthcrate := 1;        
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   239
end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   240
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   241
function lc_spawnfakeammocrate(L: PLua_State): LongInt; Cdecl;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   242
var gear: PGear;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   243
begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   244
    if lua_gettop(L) <> 3 then begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   245
        LuaError('Lua: Wrong number of parameters passed to SpawnFakeAmmoCrate!');
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   246
        lua_pushnil(L);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   247
    end
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   248
    else begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   249
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   250
            AmmoCrate, lua_toboolean(L, 3));
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   251
        lua_pushinteger(L, gear^.uid);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   252
    end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   253
    lc_spawnfakeammocrate := 1;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   254
end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   255
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   256
function lc_spawnfakeutilitycrate(L: PLua_State): LongInt; Cdecl;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   257
var gear: PGear;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   258
begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   259
    if lua_gettop(L) <> 3 then begin
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   260
        LuaError('Lua: Wrong number of parameters passed to SpawnFakeUtilityCrate!');
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   261
        lua_pushnil(L);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   262
    end
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   263
    else begin  
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   264
        gear := SpawnFakeCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   265
            UtilityCrate, lua_toboolean(L, 3));
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   266
        lua_pushinteger(L, gear^.uid);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   267
    end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   268
    lc_spawnfakeutilitycrate := 1;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   269
end;
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   270
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   271
function lc_spawnhealthcrate(L: Plua_State) : LongInt; Cdecl;
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   272
var gear: PGear;
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   273
var health: LongInt;
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   274
begin
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   275
    if (lua_gettop(L) < 2) or (lua_gettop(L) > 3) then begin
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   276
        LuaError('Lua: Wrong number of parameters passed to SpawnHealthCrate!');
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   277
        lua_pushnil(L);
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   278
    end
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   279
    else begin
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   280
        if lua_gettop(L) = 3 then health:= lua_tointeger(L, 3)
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   281
        else health:= cHealthCaseAmount;
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   282
        gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
   283
            HealthCrate, health);
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   284
        lua_pushinteger(L, gear^.uid);
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   285
    end;
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   286
    lc_spawnhealthcrate := 1;        
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   287
end;
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   288
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   289
function lc_spawnammocrate(L: PLua_State): LongInt; Cdecl;
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   290
var gear: PGear;
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   291
begin
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   292
    if lua_gettop(L) <> 3 then begin
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   293
        LuaError('Lua: Wrong number of parameters passed to SpawnAmmoCrate!');
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   294
        lua_pushnil(L);
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   295
    end
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   296
    else begin
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   297
        gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   298
            AmmoCrate, lua_tointeger(L, 3));
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   299
        lua_pushinteger(L, gear^.uid);
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   300
    end;
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   301
    lc_spawnammocrate := 1;
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   302
end;
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   303
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   304
function lc_spawnutilitycrate(L: PLua_State): LongInt; Cdecl;
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   305
var gear: PGear;
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   306
begin
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   307
    if lua_gettop(L) <> 3 then begin
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   308
        LuaError('Lua: Wrong number of parameters passed to SpawnUtilityCrate!');
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   309
        lua_pushnil(L);
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   310
    end
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   311
    else begin  
3750
3aa85b5f3318 SpawnCustomCrateAt: spawn crate at random position for x=y=0, also let it return the gear, and luabindings the gear uid
burp
parents: 3736
diff changeset
   312
        gear := SpawnCustomCrateAt(lua_tointeger(L, 1), lua_tointeger(L, 2),
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   313
            UtilityCrate, lua_tointeger(L, 3));
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   314
        lua_pushinteger(L, gear^.uid);
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   315
    end;
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
   316
    lc_spawnutilitycrate := 1;
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   317
end;
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
   318
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   319
function lc_addgear(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   320
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   321
    x, y, s, t: LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   322
    dx, dy: hwFloat;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   323
    gt: TGearType;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   324
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   325
    if lua_gettop(L) <> 7 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   326
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   327
        LuaError('Lua: Wrong number of parameters passed to AddGear!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   328
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   329
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   330
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   331
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   332
        x:= lua_tointeger(L, 1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   333
        y:= lua_tointeger(L, 2);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   334
        gt:= TGearType(lua_tointeger(L, 3));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   335
        s:= lua_tointeger(L, 4);
5074
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
   336
        dx:= int2hwFloat(lua_tointeger(L, 5)) / 1000000;
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
   337
        dy:= int2hwFloat(lua_tointeger(L, 6)) / 1000000;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   338
        t:= lua_tointeger(L, 7);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   339
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   340
        gear:= AddGear(x, y, gt, s, dx, dy, t);
4780
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   341
        lastGearByUID:= gear;
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   342
        lua_pushinteger(L, gear^.uid)
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   343
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   344
    lc_addgear:= 1; // 1 return value
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   345
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   346
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   347
function lc_deletegear(L : Plua_State) : LongInt; Cdecl;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   348
var gear : PGear;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   349
begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   350
    if lua_gettop(L) <> 1 then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   351
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   352
        LuaError('Lua: Wrong number of parameters passed to DeleteGear!');
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   353
        end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   354
    else
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   355
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   356
        gear:= GearByUID(lua_tointeger(L, 1));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   357
        if gear <> nil then DeleteGear(gear);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   358
        end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   359
    lc_deletegear:= 0
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   360
end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   361
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   362
function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   363
var vg : PVisualGear;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   364
    x, y, s: LongInt;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   365
    c: Boolean;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   366
    vgt: TVisualGearType;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   367
begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   368
    if lua_gettop(L) <> 5 then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   369
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   370
        LuaError('Lua: Wrong number of parameters passed to AddVisualGear!');
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   371
        lua_pushnil(L); // return value on stack (nil)
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   372
        end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   373
    else
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   374
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   375
        x:= lua_tointeger(L, 1);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   376
        y:= lua_tointeger(L, 2);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   377
        vgt:= TVisualGearType(lua_tointeger(L, 3));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   378
        s:= lua_tointeger(L, 4);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   379
        c:= lua_toboolean(L, 5);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   380
4780
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   381
        vg:= AddVisualGear(x, y, vgt, s, c);
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   382
        if vg <> nil then 
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   383
            begin
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   384
            lastVisualGearByUID:= vg;
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   385
            lua_pushinteger(L, vg^.uid)
8571151411b3 add a couple of variables to speed up UID lookups. Based on the assumption new visual gears and gears will tend to be at the end of the list. Set them on successful lookup or script gear creation, clear on delete. Oh also pick up a couple of TrevInc's translation changes
nemo
parents: 4767
diff changeset
   386
            end
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   387
        else lua_pushinteger(L, 0)
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   388
        end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   389
    lc_addvisualgear:= 1; // 1 return value
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   390
end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   391
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   392
function lc_deletevisualgear(L : Plua_State) : LongInt; Cdecl;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   393
var vg : PVisualGear;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   394
begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   395
    if lua_gettop(L) <> 1 then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   396
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   397
        LuaError('Lua: Wrong number of parameters passed to DeleteVisualGear!');
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   398
        end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   399
    else
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   400
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   401
        vg:= VisualGearByUID(lua_tointeger(L, 1));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   402
        if vg <> nil then DeleteVisualGear(vg);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   403
        end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   404
    lc_deletevisualgear:= 0
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   405
end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   406
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   407
function lc_getvisualgearvalues(L : Plua_State) : LongInt; Cdecl;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   408
var vg: PVisualGear;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   409
begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   410
    if lua_gettop(L) <> 1 then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   411
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   412
        LuaError('Lua: Wrong number of parameters passed to GetVisualGearValues!');
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   413
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   414
        lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L)
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   415
        end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   416
    else
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   417
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   418
        vg:= VisualGearByUID(lua_tointeger(L, 1));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   419
        if vg <> nil then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   420
            begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   421
            lua_pushinteger(L, round(vg^.X));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   422
            lua_pushinteger(L, round(vg^.Y));
5075
59b13b38a827 not useful for visual gears, and apparently not helpful for consistency
nemo
parents: 5074
diff changeset
   423
            lua_pushnumber(L, vg^.dX);
59b13b38a827 not useful for visual gears, and apparently not helpful for consistency
nemo
parents: 5074
diff changeset
   424
            lua_pushnumber(L, vg^.dY);
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   425
            lua_pushnumber(L, vg^.Angle);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   426
            lua_pushinteger(L, vg^.Frame);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   427
            lua_pushinteger(L, vg^.FrameTicks);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   428
            lua_pushinteger(L, vg^.State);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   429
            lua_pushinteger(L, vg^.Timer);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   430
            lua_pushinteger(L, vg^.Tint);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   431
            end
4767
4ee4a49549e2 return nil values if an invalid visual gear is passed to the get, add a check in Control map lua
nemo
parents: 4682
diff changeset
   432
        else
4ee4a49549e2 return nil values if an invalid visual gear is passed to the get, add a check in Control map lua
nemo
parents: 4682
diff changeset
   433
            begin
4ee4a49549e2 return nil values if an invalid visual gear is passed to the get, add a check in Control map lua
nemo
parents: 4682
diff changeset
   434
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
4ee4a49549e2 return nil values if an invalid visual gear is passed to the get, add a check in Control map lua
nemo
parents: 4682
diff changeset
   435
            lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L)
4ee4a49549e2 return nil values if an invalid visual gear is passed to the get, add a check in Control map lua
nemo
parents: 4682
diff changeset
   436
            end
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   437
        end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   438
    lc_getvisualgearvalues:= 10;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   439
end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   440
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   441
function lc_setvisualgearvalues(L : Plua_State) : LongInt; Cdecl;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   442
var vg : PVisualGear;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   443
begin
4450
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   444
    if lua_gettop(L) <> 11 then
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   445
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   446
        LuaError('Lua: Wrong number of parameters passed to SetVisualGearValues!');
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   447
        lua_pushnil(L); // return value on stack (nil)
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   448
        end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   449
    else
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   450
        begin
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   451
        vg:= VisualGearByUID(lua_tointeger(L, 1));
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   452
        if vg <> nil then
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   453
            begin
4450
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   454
            vg^.X:= lua_tointeger(L, 2);
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   455
            vg^.Y:= lua_tointeger(L, 3);
5075
59b13b38a827 not useful for visual gears, and apparently not helpful for consistency
nemo
parents: 5074
diff changeset
   456
            vg^.dX:= lua_tonumber(L, 4);
59b13b38a827 not useful for visual gears, and apparently not helpful for consistency
nemo
parents: 5074
diff changeset
   457
            vg^.dY:= lua_tonumber(L, 5);
4450
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   458
            vg^.Angle:= lua_tonumber(L, 6);
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   459
            vg^.Frame:= lua_tointeger(L, 7);
4546
a6402b8c2b24 oops, forgot world offset, also add a kind of hack to the already hackish set function for visual gears
nemo
parents: 4533
diff changeset
   460
            if lua_tointeger(L, 8) <> 0 then vg^.FrameTicks:= lua_tointeger(L, 8);  // find a better way to do this. maybe need to break all these up.
4450
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   461
            vg^.State:= lua_tointeger(L, 9);
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   462
            vg^.Timer:= lua_tointeger(L, 10);
b8d30b0e4829 forgot the passed in uid
nemo
parents: 4443
diff changeset
   463
            vg^.Tint:= lua_tointeger(L, 11);
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   464
            end
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   465
        end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   466
    lc_setvisualgearvalues:= 0;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   467
end;
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
   468
3058
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   469
function lc_getfollowgear(L : Plua_State) : LongInt; Cdecl;
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   470
begin
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   471
    if lua_gettop(L) <> 0 then
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   472
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   473
        LuaError('Lua: Wrong number of parameters passed to GetFollowGear!');
3058
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   474
        lua_pushnil(L); // return value on stack (nil)
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   475
        end
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   476
    else
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   477
        if FollowGear = nil then
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   478
            lua_pushnil(L)
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   479
        else
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   480
            lua_pushinteger(L, FollowGear^.uid);
3058
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   481
    lc_getfollowgear:= 1; // 1 return value
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   482
end;
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
   483
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   484
function lc_getgeartype(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   485
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   486
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   487
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   488
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   489
        LuaError('Lua: Wrong number of parameters passed to GetGearType!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   490
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   491
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   492
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   493
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   494
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   495
        if gear <> nil then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   496
            lua_pushinteger(L, ord(gear^.Kind))
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   497
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   498
            lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   499
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   500
    lc_getgeartype:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   501
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   502
3892
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   503
function lc_getgearmessage(L : Plua_State) : LongInt; Cdecl;
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   504
var gear : PGear;
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   505
begin
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   506
    if lua_gettop(L) <> 1 then
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   507
        begin
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   508
        LuaError('Lua: Wrong number of parameters passed to GetGearMessage!');
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   509
        lua_pushnil(L); // return value on stack (nil)
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   510
        end
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   511
    else
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   512
        begin
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   513
        gear:= GearByUID(lua_tointeger(L, 1));
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   514
        if gear <> nil then
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   515
            lua_pushinteger(L, gear^.message)
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   516
        else
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   517
            lua_pushnil(L);
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   518
        end;
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   519
    lc_getgearmessage:= 1
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   520
end;
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
   521
4682
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   522
function lc_getgearelasticity(L : Plua_State) : LongInt; Cdecl;
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   523
var gear : PGear;
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   524
begin
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   525
    if lua_gettop(L) <> 1 then
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   526
        begin
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   527
        LuaError('Lua: Wrong number of parameters passed to GetGearElasticity!');
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   528
        lua_pushnil(L); // return value on stack (nil)
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   529
        end
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   530
    else
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   531
        begin
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   532
        gear:= GearByUID(lua_tointeger(L, 1));
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   533
        if gear <> nil then
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   534
            lua_pushinteger(L, hwRound(gear^.elasticity * _10000))
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   535
        else
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   536
            lua_pushnil(L);
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   537
        end;
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   538
    lc_getgearelasticity:= 1
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   539
end;
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
   540
3896
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   541
function lc_setgearmessage(L : Plua_State) : LongInt; Cdecl;
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   542
var gear : PGear;
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   543
begin
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   544
    if lua_gettop(L) <> 2 then
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   545
        LuaError('Lua: Wrong number of parameters passed to SetGearMessage!')
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   546
    else
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   547
        begin
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   548
        gear:= GearByUID(lua_tointeger(L, 1));
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   549
        if gear <> nil then
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   550
            gear^.message:= lua_tointeger(L, 2);
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   551
        end;
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   552
    lc_setgearmessage:= 0
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   553
end;
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
   554
3755
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   555
function lc_gethoglevel(L : Plua_State): LongInt; Cdecl;
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   556
var gear : PGear;
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   557
begin
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   558
    if lua_gettop(L) <> 1 then
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   559
        LuaError('Lua: Wrong number of parameters passed to GetHogLevel!')
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   560
    else begin
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   561
        gear := GearByUID(lua_tointeger(L, 1));
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   562
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
4372
3836973380b9 remove some more PHedgehog casts
nemo
parents: 4371
diff changeset
   563
            lua_pushinteger(L, gear^.Hedgehog^.BotLevel)
3755
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   564
        else
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   565
            lua_pushnil(L);
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   566
    end;
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   567
    lc_gethoglevel := 1;
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   568
end;
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
   569
4496
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   570
function lc_sethoglevel(L : Plua_State) : LongInt; Cdecl;
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   571
var gear : PGear;
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   572
begin
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   573
    if lua_gettop(L) <> 2 then
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   574
        LuaError('Lua: Wrong number of parameters passed to SetHogLevel!')
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   575
    else
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   576
        begin
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   577
        gear:= GearByUID(lua_tointeger(L, 1));
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   578
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   579
            gear^.Hedgehog^.BotLevel:= lua_tointeger(L, 2);
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   580
        end;
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   581
    lc_sethoglevel:= 0
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   582
end;
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
   583
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   584
function lc_gethogclan(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   585
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   586
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   587
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   588
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   589
        LuaError('Lua: Wrong number of parameters passed to GetHogClan!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   590
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   591
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   592
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   593
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   594
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   595
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   596
            begin
4372
3836973380b9 remove some more PHedgehog casts
nemo
parents: 4371
diff changeset
   597
            lua_pushinteger(L, gear^.Hedgehog^.Team^.Clan^.ClanIndex)
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   598
            end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   599
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   600
            lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   601
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   602
    lc_gethogclan:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   603
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   604
4498
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   605
function lc_getclancolor(L : Plua_State) : LongInt; Cdecl;
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   606
begin
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   607
    if lua_gettop(L) <> 1 then
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   608
        begin
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   609
        LuaError('Lua: Wrong number of parameters passed to GetClanColor!');
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   610
        lua_pushnil(L); // return value on stack (nil)
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   611
        end
4499
d2454e4dbd03 return RGBA
nemo
parents: 4498
diff changeset
   612
    else lua_pushinteger(L, ClansArray[lua_tointeger(L, 1)]^.Color shl 8 or $FF);
4498
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   613
    lc_getclancolor:= 1
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   614
end;
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
   615
4882
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   616
function lc_setclancolor(L : Plua_State) : LongInt; Cdecl;
4889
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   617
var clan : PClan;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   618
    team : PTeam;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   619
    hh   : THedgehog;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   620
    i, j : LongInt;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   621
    r, rr: TSDL_Rect;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   622
    texsurf: PSDL_Surface;
4882
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   623
begin
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   624
    if lua_gettop(L) <> 2 then
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   625
        LuaError('Lua: Wrong number of parameters passed to SetClanColor!')
4889
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   626
    else
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   627
        begin
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   628
        clan := ClansArray[lua_tointeger(L, 1)];
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   629
        clan^.Color:= lua_tointeger(L, 2) shr 8;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   630
        for i:= 0 to Pred(clan^.TeamsNumber) do
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   631
            begin
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   632
            team:= clan^.Teams[i];
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   633
            for j:= 0 to 7 do
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   634
                begin
4891
nemo
parents: 4890
diff changeset
   635
                hh:= team^.Hedgehogs[j];
4890
nemo
parents: 4889
diff changeset
   636
                if (hh.Gear <> nil) or (hh.GearHidden <> nil) then 
4889
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   637
                    begin
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   638
                    FreeTexture(hh.NameTagTex);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   639
                    hh.NameTagTex:= RenderStringTex(hh.Name, clan^.Color, fnt16);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   640
                    RenderHealth(hh);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   641
                    end;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   642
                end;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   643
            FreeTexture(team^.NameTagTex);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   644
            team^.NameTagTex:= RenderStringTex(clan^.Teams[i]^.TeamName, clan^.Color, fnt16);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   645
            r.w:= cTeamHealthWidth + 5;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   646
            r.h:= team^.NameTagTex^.h;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   647
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   648
            texsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, r.w, r.h, 32, RMask, GMask, BMask, AMask);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   649
            TryDo(texsurf <> nil, errmsgCreateSurface, true);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   650
            TryDo(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   651
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   652
            DrawRoundRect(@r, cWhiteColor, cNearBlackColorChannels.value, texsurf, true);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   653
            rr:= r;
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   654
            inc(rr.x, 2); dec(rr.w, 4); inc(rr.y, 2); dec(rr.h, 4);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   655
            DrawRoundRect(@rr, clan^.Color, clan^.Color, texsurf, false);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   656
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   657
            FreeTexture(team^.HealthTex);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   658
            team^.HealthTex:= Surface2Tex(texsurf, false);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   659
            SDL_FreeSurface(texsurf);
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   660
            MakeCrossHairs
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   661
            end
f71e30eb1d37 Reset things using team colour on change in SetClanColor in lua. This routine had better have been worth it.
nemo
parents: 4883
diff changeset
   662
        end;
4882
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   663
    lc_setclancolor:= 0
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   664
end;
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
   665
4236
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   666
function lc_gethogteamname(L : Plua_State) : LongInt; Cdecl;
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   667
var gear : PGear;
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   668
begin
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   669
    if lua_gettop(L) <> 1 then
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   670
        begin
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   671
        LuaError('Lua: Wrong number of parameters passed to GetHogTeamName!');
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   672
        lua_pushnil(L); // return value on stack (nil)
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   673
        end
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   674
    else
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   675
        begin
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   676
        gear:= GearByUID(lua_tointeger(L, 1));
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   677
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   678
            begin
4372
3836973380b9 remove some more PHedgehog casts
nemo
parents: 4371
diff changeset
   679
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Team^.TeamName))
4236
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   680
            end
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   681
        else
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   682
            lua_pushnil(L);
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   683
        end;
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   684
    lc_gethogteamname:= 1
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   685
end;
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
   686
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   687
function lc_gethogname(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   688
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   689
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   690
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   691
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   692
        LuaError('Lua: Wrong number of parameters passed to GetHogName!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   693
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   694
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   695
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   696
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   697
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   698
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   699
            begin
4372
3836973380b9 remove some more PHedgehog casts
nemo
parents: 4371
diff changeset
   700
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Name))
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   701
            end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   702
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   703
            lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   704
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   705
    lc_gethogname:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   706
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   707
5245
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   708
function lc_sethogname(L : Plua_State) : LongInt; Cdecl;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   709
var gear : PGear;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   710
  hogName: ShortString;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   711
begin
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   712
    if lua_gettop(L) <> 2 then
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   713
        begin
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   714
        LuaError('Lua: Wrong number of parameters passed to SetHogName!');
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   715
        lua_pushnil(L)
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   716
        end
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   717
    else
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   718
        begin
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   719
        gear:= GearByUID(lua_tointeger(L, 1));
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   720
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   721
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   722
	    hogName:= lua_tostring(L, 2);
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   723
            gear^.Hedgehog^.Name:= hogName;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   724
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   725
	    FreeTexture(gear^.Hedgehog^.NameTagTex);
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   726
            gear^.Hedgehog^.NameTagTex:= RenderStringTex(gear^.Hedgehog^.Name, gear^.Hedgehog^.Team^.Clan^.Color, fnt16);
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   727
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   728
        end;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   729
    lc_sethogname:= 0;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   730
end;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   731
3722
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   732
function lc_gettimer(L : Plua_State) : LongInt; Cdecl;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   733
var gear : PGear;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   734
begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   735
    if lua_gettop(L) <> 1 then
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   736
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   737
        LuaError('Lua: Wrong number of parameters passed to GetTimer!');
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   738
        lua_pushnil(L); // return value on stack (nil)
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   739
        end
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   740
    else
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   741
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   742
        gear:= GearByUID(lua_tointeger(L, 1));
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   743
        if gear <> nil then
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   744
            lua_pushinteger(L, gear^.Timer)
3722
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   745
        else
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   746
            lua_pushnil(L);
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   747
        end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   748
    lc_gettimer:= 1
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   749
end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   750
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   751
function lc_gethealth(L : Plua_State) : LongInt; Cdecl;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   752
var gear : PGear;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   753
begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   754
    if lua_gettop(L) <> 1 then
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   755
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   756
        LuaError('Lua: Wrong number of parameters passed to GetHealth!');
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   757
        lua_pushnil(L); // return value on stack (nil)
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   758
        end
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   759
    else
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   760
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   761
        gear:= GearByUID(lua_tointeger(L, 1));
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   762
        if gear <> nil then
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   763
            lua_pushinteger(L, gear^.Health)
3722
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   764
        else
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   765
            lua_pushnil(L);
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   766
        end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   767
    lc_gethealth:= 1
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   768
end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   769
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   770
function lc_getx(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   771
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   772
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   773
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   774
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   775
        LuaError('Lua: Wrong number of parameters passed to GetX!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   776
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   777
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   778
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   779
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   780
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   781
        if gear <> nil then
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   782
            lua_pushinteger(L, hwRound(gear^.X))
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   783
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   784
            lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   785
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   786
    lc_getx:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   787
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   788
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   789
function lc_gety(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   790
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   791
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   792
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   793
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   794
        LuaError('Lua: Wrong number of parameters passed to GetY!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   795
        lua_pushnil(L); // return value on stack (nil)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   796
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   797
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   798
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   799
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   800
        if gear <> nil then
4484
b7a098f2649a these should probably be expressly integer
nemo
parents: 4483
diff changeset
   801
            lua_pushinteger(L, hwRound(gear^.Y))
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   802
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   803
            lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   804
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   805
    lc_gety:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   806
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   807
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   808
function lc_copypv(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   809
var gears, geard : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   810
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   811
    if lua_gettop(L) <> 2 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   812
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   813
        LuaError('Lua: Wrong number of parameters passed to CopyPV!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   814
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   815
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   816
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   817
        gears:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   818
        geard:= GearByUID(lua_tointeger(L, 2));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   819
        if (gears <> nil) and (geard <> nil) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   820
            begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   821
            geard^.X:= gears^.X;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   822
            geard^.Y:= gears^.Y;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   823
            geard^.dX:= gears^.dX;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   824
            geard^.dY:= gears^.dY;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   825
            end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   826
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   827
    lc_copypv:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   828
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   829
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   830
function lc_followgear(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   831
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   832
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   833
    if lua_gettop(L) <> 1 then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   834
        LuaError('Lua: Wrong number of parameters passed to FollowGear!')
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   835
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   836
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   837
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   838
        if gear <> nil then FollowGear:= gear
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   839
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   840
    lc_followgear:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   841
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   842
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   843
function lc_hogsay(L : Plua_State) : LongInt; Cdecl;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   844
var gear : PGear;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   845
   vgear : PVisualGear;
4533
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   846
       s : LongWord;
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   847
begin
4533
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   848
    if lua_gettop(L) = 4 then s:= lua_tointeger(L, 4)
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   849
    else s:= 0;
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   850
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   851
    if (lua_gettop(L) = 4) or (lua_gettop(L) = 3) then
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   852
        begin
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   853
        gear:= GearByUID(lua_tointeger(L, 1));
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   854
        if gear <> nil then
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   855
            begin
4533
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   856
            vgear:= AddVisualGear(0, 0, vgtSpeechBubble, s, true);
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   857
            if vgear <> nil then
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   858
               begin
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   859
               vgear^.Text:= lua_tostring(L, 2);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   860
               vgear^.Hedgehog:= gear^.Hedgehog;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   861
               vgear^.FrameTicks:= lua_tointeger(L, 3);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   862
               if (vgear^.FrameTicks < 1) or (vgear^.FrameTicks > 3) then vgear^.FrameTicks:= 1;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   863
               end;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   864
            end
4533
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   865
        end
8d35c3e0e6ba add optional state parameter to hogsay
nemo
parents: 4523
diff changeset
   866
    else LuaError('Lua: Wrong number of parameters passed to HogSay!');
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   867
    lc_hogsay:= 0
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   868
end;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
   869
4851
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   870
function lc_switchhog(L : Plua_State) : LongInt; Cdecl;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   871
var gear, prevgear : PGear;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   872
begin
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   873
    if lua_gettop(L) <> 1 then
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   874
        LuaError('Lua: Wrong number of parameters passed to SwitchHog!')
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   875
    else
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   876
        begin
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   877
        gear:= GearByUID(lua_tointeger(L, 1));
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   878
// should we allow this when there is no current hedgehog? might do some odd(er) things to turn sequence.
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   879
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) and (CurrentHedgehog <> nil) then
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   880
            begin
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   881
            prevgear := CurrentHedgehog^.Gear;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   882
            prevgear^.Active := false;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   883
            prevgear^.State:= prevgear^.State and not gstHHDriven;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   884
            prevgear^.Z := cHHZ;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   885
            RemoveGearFromList(prevgear);
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   886
            InsertGearToList(prevgear);
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   887
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   888
            CurrentHedgehog := gear^.Hedgehog;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   889
// yes, this will muck up turn sequence
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   890
            CurrentTeam := gear^.Hedgehog^.Team;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   891
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   892
            gear^.State:= gear^.State or gstHHDriven;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   893
            gear^.Active := true;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   894
            gear^.Z := cCurrHHZ;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   895
            RemoveGearFromList(gear);
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   896
            InsertGearToList(gear);
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   897
            end
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   898
        end;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   899
    lc_switchhog:= 0
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   900
end;
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
   901
5277
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   902
{function lc_addammo(L : Plua_State) : LongInt; Cdecl;
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   903
var gear : PGear;
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   904
begin
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   905
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   906
    if lua_gettop(L) = 3 then
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   907
    begin
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   908
	gear:= GearByUID(lua_tointeger(L, 1));
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   909
        if (gear <> nil) and (gear^.Hedgehog <> nil) then
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   910
            AddAmmoAmount(gear^.Hedgehog^, TAmmoType(lua_tointeger(L, 2)), lua_tointeger(L,3) );
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   911
    end else
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   912
    
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   913
    if lua_gettop(L) = 2 then
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   914
    begin
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   915
	gear:= GearByUID(lua_tointeger(L, 1));
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   916
        if (gear <> nil) and (gear^.Hedgehog <> nil) then
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   917
            AddAmmo(gear^.Hedgehog^, TAmmoType(lua_tointeger(L, 2)));
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   918
    end else
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   919
    begin
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   920
    	LuaError('Lua: Wrong number of parameters passed to AddAmmo!');
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   921
    end;
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   922
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   923
    lc_addammo:= 0;
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   924
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   925
end;}
09beef0752ab PianoStrike exploit fix for Capture The Flag.
mikade
parents: 5272
diff changeset
   926
4481
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   927
function lc_addammo(L : Plua_State) : LongInt; Cdecl;
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   928
var gear : PGear;
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   929
begin
5272
a85d331ab5bb Allow scripting to set arbitrary weapon counts
nemo
parents: 5245
diff changeset
   930
    if (lua_gettop(L) = 3) or (lua_gettop(L) = 2) then
4481
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   931
        begin
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   932
        gear:= GearByUID(lua_tointeger(L, 1));
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   933
        if (gear <> nil) and (gear^.Hedgehog <> nil) then
5272
a85d331ab5bb Allow scripting to set arbitrary weapon counts
nemo
parents: 5245
diff changeset
   934
            if lua_gettop(L) = 2 then AddAmmo(gear^.Hedgehog^, TAmmoType(lua_tointeger(L, 2)))
a85d331ab5bb Allow scripting to set arbitrary weapon counts
nemo
parents: 5245
diff changeset
   935
            else AddAmmo(gear^.Hedgehog^, TAmmoType(lua_tointeger(L, 2)), lua_tointeger(L, 3))
a85d331ab5bb Allow scripting to set arbitrary weapon counts
nemo
parents: 5245
diff changeset
   936
        end
a85d331ab5bb Allow scripting to set arbitrary weapon counts
nemo
parents: 5245
diff changeset
   937
    else LuaError('Lua: Wrong number of parameters passed to AddAmmo!');
4481
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   938
    lc_addammo:= 0
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   939
end;
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
   940
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   941
function lc_sethealth(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   942
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   943
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   944
    if lua_gettop(L) <> 2 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   945
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   946
        LuaError('Lua: Wrong number of parameters passed to SetHealth!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   947
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   948
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   949
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   950
        gear:= GearByUID(lua_tointeger(L, 1));
3723
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
   951
        if gear <> nil then
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
   952
            begin
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
   953
            gear^.Health:= lua_tointeger(L, 2);
5245
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   954
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   955
	    if (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   956
            begin  
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   957
		RenderHealth(gear^.Hedgehog^);
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   958
            end;
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
   959
3723
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
   960
            SetAllToActive;
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
   961
            end
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   962
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   963
    lc_sethealth:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   964
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   965
3722
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   966
function lc_settimer(L : Plua_State) : LongInt; Cdecl;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   967
var gear : PGear;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   968
begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   969
    if lua_gettop(L) <> 2 then
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   970
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   971
        LuaError('Lua: Wrong number of parameters passed to SetTimer!');
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   972
        end
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   973
    else
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   974
        begin
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   975
        gear:= GearByUID(lua_tointeger(L, 1));
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   976
        if gear <> nil then gear^.Timer:= lua_tointeger(L, 2)
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   977
        end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   978
    lc_settimer:= 0
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   979
end;
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
   980
3756
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   981
function lc_seteffect(L : Plua_State) : LongInt; Cdecl;
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   982
var gear: PGear;
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   983
begin
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   984
    if lua_gettop(L) <> 3 then
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   985
        LuaError('Lua: Wrong number of parameters passed to SetEffect!')
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   986
    else begin
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   987
        gear := GearByUID(lua_tointeger(L, 1));
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   988
        if gear <> nil then
4411
79fbc444584c fix SetEffect, last parameter was not a boolean
Henek
parents: 4403
diff changeset
   989
            gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))]:= lua_toboolean(L, 3);
3756
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   990
    end;
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   991
    lc_seteffect := 0;
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   992
end;
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
   993
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   994
function lc_setstate(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   995
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   996
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   997
    if lua_gettop(L) <> 2 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
   998
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
   999
        LuaError('Lua: Wrong number of parameters passed to SetState!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1000
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1001
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1002
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1003
        gear:= GearByUID(lua_tointeger(L, 1));
3723
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1004
        if gear <> nil then
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1005
            begin
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1006
            gear^.State:= lua_tointeger(L, 2);
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1007
            SetAllToActive;
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1008
            end
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1009
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1010
    lc_setstate:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1011
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1012
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1013
function lc_getstate(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1014
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1015
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1016
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1017
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1018
        LuaError('Lua: Wrong number of parameters passed to GetState!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1019
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1020
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1021
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1022
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1023
        if gear <> nil then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1024
            lua_pushinteger(L, gear^.State)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1025
        else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1026
            lua_pushnil(L)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1027
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1028
    lc_getstate:= 1
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1029
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1030
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1031
function lc_settag(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1032
var gear : PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1033
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1034
    if lua_gettop(L) <> 2 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1035
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1036
        LuaError('Lua: Wrong number of parameters passed to SetTag!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1037
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1038
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1039
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1040
        gear:= GearByUID(lua_tointeger(L, 1));
3723
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1041
        if gear <> nil then
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1042
            begin
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1043
            gear^.Tag:= lua_tointeger(L, 2);
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1044
            SetAllToActive;
958eeaf84714 Engine:
smaxx
parents: 3722
diff changeset
  1045
            end
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1046
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1047
    lc_settag:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1048
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1049
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1050
function lc_endgame(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1051
begin
3407
dcc129c4352e Engine:
smxx
parents: 3368
diff changeset
  1052
    L:= L; // avoid compiler hint
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1053
    GameState:= gsExit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1054
    lc_endgame:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1055
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1056
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1057
function lc_findplace(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1058
var gear: PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1059
    fall: boolean;
4629
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1060
    tryhard: boolean;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1061
    left, right: LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1062
begin
4629
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1063
    tryhard:= false;
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1064
    if (lua_gettop(L) <> 4) and (lua_gettop(L) <> 5) then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1065
        LuaError('Lua: Wrong number of parameters passed to FindPlace!')
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1066
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1067
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1068
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1069
        fall:= lua_toboolean(L, 2);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1070
        left:= lua_tointeger(L, 3);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1071
        right:= lua_tointeger(L, 4);
4629
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1072
        if lua_gettop(L) = 5 then tryhard:= lua_toboolean(L, 5);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1073
        if gear <> nil then
4629
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1074
            FindPlace(gear, fall, left, right, tryhard);
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1075
        if gear <> nil then lua_pushinteger(L, gear^.uid)
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1076
        else lua_pushnil(L);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1077
        end;
4629
b5d726bc4f8d FindPlace in lua now returns null for failure to find a place, and accepts a 5th parameter to try finding a place without considering proximity (note that this can place a gear right next to mines).
nemo
parents: 4590
diff changeset
  1078
    lc_findplace:= 1
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1079
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1080
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1081
function lc_playsound(L : Plua_State) : LongInt; Cdecl;
4516
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1082
var gear: PGear;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1083
begin
4516
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1084
    if lua_gettop(L) = 1 then
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1085
        PlaySound(TSound(lua_tointeger(L, 1)))
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1086
    else if lua_gettop(L) = 2 then
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1087
        begin
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1088
        gear:= GearByUID(lua_tointeger(L, 2));
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1089
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1090
            PlaySound(TSound(lua_tointeger(L, 1)),gear^.Hedgehog^.Team^.Voicepack)
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1091
        end
ecf012a762d8 add PlaySound(soundType, hogGearUID) -- this roundabout way to reference a team seems to be how things are done in lua right now. might need changing in future
nemo
parents: 4502
diff changeset
  1092
    else LuaError('Lua: Wrong number of parameters passed to PlaySound!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1093
    lc_playsound:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1094
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1095
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1096
function lc_addteam(L : Plua_State) : LongInt; Cdecl;
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1097
var np: LongInt;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1098
begin
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1099
    np:= lua_gettop(L);
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1100
    if (np < 5) or (np > 6) then
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1101
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1102
        LuaError('Lua: Wrong number of parameters passed to AddTeam!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1103
        //lua_pushnil(L)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1104
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1105
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1106
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1107
        ParseCommand('addteam x ' + lua_tostring(L, 2) + ' ' + lua_tostring(L, 1), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1108
        ParseCommand('grave ' + lua_tostring(L, 3), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1109
        ParseCommand('fort ' + lua_tostring(L, 4), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1110
        ParseCommand('voicepack ' + lua_tostring(L, 5), true);
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1111
        if (np = 6) then ParseCommand('flag ' + lua_tostring(L, 6), true);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1112
        CurrentTeam^.Binds:= DefaultBinds
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1113
        // fails on x64
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1114
        //lua_pushinteger(L, LongInt(CurrentTeam));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1115
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1116
    lc_addteam:= 0;//1;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1117
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1118
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1119
function lc_addhog(L : Plua_State) : LongInt; Cdecl;
3271
0405e07ca44b * add some kind of SniperRifle training mission
sheepluva
parents: 3209
diff changeset
  1120
var temp: ShortString;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1121
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1122
    if lua_gettop(L) <> 4 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1123
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1124
        LuaError('Lua: Wrong number of parameters passed to AddHog!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1125
        lua_pushnil(L)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1126
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1127
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1128
        begin
3271
0405e07ca44b * add some kind of SniperRifle training mission
sheepluva
parents: 3209
diff changeset
  1129
        temp:= lua_tostring(L, 4);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1130
        ParseCommand('addhh ' + lua_tostring(L, 2) + ' ' + lua_tostring(L, 3) + ' ' + lua_tostring(L, 1), true);
3271
0405e07ca44b * add some kind of SniperRifle training mission
sheepluva
parents: 3209
diff changeset
  1131
        ParseCommand('hat ' + temp, true);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1132
        lua_pushinteger(L, CurrentHedgehog^.Gear^.uid);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1133
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1134
    lc_addhog:= 1;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1135
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1136
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1137
function lc_hogturnleft(L : Plua_State) : LongInt; Cdecl;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1138
var gear: PGear;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1139
begin
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1140
    if lua_gettop(L) <> 2 then
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1141
        begin
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1142
        LuaError('Lua: Wrong number of parameters passed to HogTurnLeft!');
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1143
        end
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1144
    else
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1145
        begin
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1146
        gear:= GearByUID(lua_tointeger(L, 1));
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1147
        if gear <> nil then
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1148
            gear^.dX.isNegative:= lua_toboolean(L, 2);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1149
        end;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1150
    lc_hogturnleft:= 0;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1151
end;
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1152
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1153
function lc_getgearposition(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1154
var gear: PGear;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1155
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1156
    if lua_gettop(L) <> 1 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1157
        begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1158
        LuaError('Lua: Wrong number of parameters passed to GetGearPosition!');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1159
        lua_pushnil(L);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1160
        lua_pushnil(L)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1161
        end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1162
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1163
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1164
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1165
        if gear <> nil then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1166
            begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1167
            lua_pushinteger(L, hwRound(gear^.X));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1168
            lua_pushinteger(L, hwRound(gear^.Y))
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1169
            end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1170
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1171
    lc_getgearposition:= 2;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1172
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1173
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1174
function lc_setgearposition(L : Plua_State) : LongInt; Cdecl;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1175
var gear: PGear;
4832
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
  1176
    col: boolean;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1177
    x, y: LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1178
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1179
    if lua_gettop(L) <> 3 then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1180
        LuaError('Lua: Wrong number of parameters passed to SetGearPosition!')
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1181
    else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1182
        begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1183
        gear:= GearByUID(lua_tointeger(L, 1));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1184
        if gear <> nil then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1185
            begin
4832
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
  1186
            col:= gear^.CollisionIndex >= 0;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1187
            x:= lua_tointeger(L, 2);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1188
            y:= lua_tointeger(L, 3);
4832
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
  1189
            if col then DeleteCI(gear);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1190
            gear^.X:= int2hwfloat(x);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1191
            gear^.Y:= int2hwfloat(y);
4832
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
  1192
            if col then AddGearCI(gear);
e55e2b6f59b0 update collision in set gear position
nemo
parents: 4780
diff changeset
  1193
            SetAllToActive
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1194
            end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1195
        end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1196
    lc_setgearposition:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1197
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1198
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1199
function lc_getgearvelocity(L : Plua_State) : LongInt; Cdecl;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1200
var gear: PGear;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1201
begin
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1202
    if lua_gettop(L) <> 1 then
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1203
        begin
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1204
        LuaError('Lua: Wrong number of parameters passed to GetGearVelocity!');
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1205
        lua_pushnil(L);
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1206
        lua_pushnil(L)
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1207
        end
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1208
    else
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1209
        begin
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1210
        gear:= GearByUID(lua_tointeger(L, 1));
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1211
        if gear <> nil then
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1212
            begin
5074
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
  1213
            lua_pushinteger(L, hwRound(gear^.dX * 1000000));
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
  1214
            lua_pushinteger(L, hwRound(gear^.dY * 1000000))
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1215
            end
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1216
        end;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1217
    lc_getgearvelocity:= 2;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1218
end;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1219
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1220
function lc_setgearvelocity(L : Plua_State) : LongInt; Cdecl;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1221
var gear: PGear;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1222
begin
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1223
    if lua_gettop(L) <> 3 then
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1224
        LuaError('Lua: Wrong number of parameters passed to SetGearVelocity!')
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1225
    else
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1226
        begin
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1227
        gear:= GearByUID(lua_tointeger(L, 1));
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1228
        if gear <> nil then
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1229
            begin
5074
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
  1230
            gear^.dX:= int2hwFloat(lua_tointeger(L, 2)) / 1000000;
16f9e2d1f3b2 eh. 1,000,000 might be better...
nemo
parents: 5073
diff changeset
  1231
            gear^.dY:= int2hwFloat(lua_tointeger(L, 3)) / 1000000;
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1232
            SetAllToActive;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1233
            end
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1234
        end;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1235
    lc_setgearvelocity:= 0
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1236
end;
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1237
3736
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1238
function lc_setzoom(L : Plua_State) : LongInt; Cdecl;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1239
begin
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1240
    if lua_gettop(L) <> 1 then
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1241
        LuaError('Lua: Wrong number of parameters passed to SetZoom!')
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1242
    else
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1243
        begin
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1244
        ZoomValue:= lua_tonumber(L, 1);
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1245
        if ZoomValue < cMaxZoomLevel then ZoomValue:= cMaxZoomLevel;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1246
        if ZoomValue > cMinZoomLevel then ZoomValue:= cMinZoomLevel;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1247
        end;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1248
    lc_setzoom:= 0
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1249
end;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1250
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1251
function lc_getzoom(L : Plua_State) : LongInt; Cdecl;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1252
begin
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1253
    if lua_gettop(L) <> 0 then
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1254
        begin
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1255
        LuaError('Lua: Wrong number of parameters passed to GetZoom!');
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1256
        lua_pushnil(L)
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1257
        end
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1258
    else
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1259
        lua_pushnumber(L, ZoomValue);
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1260
    lc_getzoom:= 1
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1261
end;
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1262
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1263
function lc_setammo(L : Plua_State) : LongInt; Cdecl;
3368
791fa4664209 Engine:
smxx
parents: 3346
diff changeset
  1264
var np: LongInt;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1265
begin
3368
791fa4664209 Engine:
smxx
parents: 3346
diff changeset
  1266
    np:= lua_gettop(L);
791fa4664209 Engine:
smxx
parents: 3346
diff changeset
  1267
    if (np < 4) or (np > 5) then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1268
        LuaError('Lua: Wrong number of parameters passed to SetAmmo!')
3368
791fa4664209 Engine:
smxx
parents: 3346
diff changeset
  1269
    else if np = 4 then
791fa4664209 Engine:
smxx
parents: 3346
diff changeset
  1270
        ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), 1)
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1271
    else
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1272
        ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1273
    lc_setammo:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1274
end;
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1275
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1276
function lc_getrandom(L : Plua_State) : LongInt; Cdecl;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1277
var m : LongInt;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1278
begin
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1279
    if lua_gettop(L) <> 1 then
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1280
        begin
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1281
        LuaError('Lua: Wrong number of parameters passed to GetRandom!');
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1282
        lua_pushnil(L); // return value on stack (nil)
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1283
        end
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1284
    else
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1285
        begin
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1286
        m:= lua_tointeger(L, 1);
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1287
        if (m > 0) then
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1288
            lua_pushinteger(L, GetRandom(m))
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1289
        else
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1290
            begin
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1291
            LuaError('Lua: Tried to pass 0 to GetRandom!');
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1292
            lua_pushnil(L);
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1293
            end
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1294
        end;
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1295
    lc_getrandom:= 1
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1296
end;
4399
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1297
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1298
function lc_setwind(L : Plua_State) : LongInt; Cdecl;
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1299
begin
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1300
    if lua_gettop(L) <> 1 then
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1301
        LuaError('Lua: Wrong number of parameters passed to SetWind!')
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1302
    else
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1303
        begin
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1304
        cWindSpeed:= int2hwfloat(lua_tointeger(L, 1)) / 100 * cMaxWindSpeed;
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1305
        cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1306
        if cWindSpeed.isNegative then
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1307
            CWindSpeedf := -cWindSpeedf;
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1308
        AddGear(0, 0, gtATSmoothWindCh, 0, _0, _0, 1)^.Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1309
        end;
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1310
    lc_setwind:= 0
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1311
end;
4502
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1312
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1313
function lc_getdatapath(L : Plua_State) : LongInt; Cdecl;
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1314
begin
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1315
    if lua_gettop(L) <> 0 then
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1316
        begin
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1317
        LuaError('Lua: Wrong number of parameters passed to GetDataPath!');
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1318
        lua_pushnil(L);
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1319
        end
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1320
    else
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1321
        lua_pushstring(L, str2pchar(Pathz[ptData]));
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1322
    lc_getdatapath:= 1
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1323
end;
4590
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1324
5238
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1325
function lc_getuserdatapath(L : Plua_State) : LongInt; Cdecl;
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1326
begin
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1327
    if lua_gettop(L) <> 0 then
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1328
        begin
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1329
        LuaError('Lua: Wrong number of parameters passed to GetUserDataPath!');
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1330
        lua_pushnil(L);
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1331
        end
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1332
    else
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1333
        lua_pushstring(L, str2pchar(UserPathz[ptData]));
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1334
    lc_getuserdatapath:= 1
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1335
end;
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1336
4590
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1337
function lc_maphasborder(L : Plua_State) : LongInt; Cdecl;
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1338
begin
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1339
    if lua_gettop(L) <> 0 then
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1340
        begin
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1341
        LuaError('Lua: Wrong number of parameters passed to MapHasBorder!');
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1342
        lua_pushnil(L);
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1343
        end
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1344
    else
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1345
        lua_pushboolean(L, hasBorder);
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1346
    lc_maphasborder:= 1
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1347
end;
4869
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1348
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1349
function lc_getgearradius(L : Plua_State) : LongInt; Cdecl;
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1350
var gear : PGear;
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1351
begin
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1352
    if lua_gettop(L) <> 1 then
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1353
        begin
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1354
        LuaError('Lua: Wrong number of parameters passed to GetGearRadius!');
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1355
        lua_pushnil(L); // return value on stack (nil)
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1356
        end
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1357
    else
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1358
        begin
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1359
        gear:= GearByUID(lua_tointeger(L, 1));
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1360
        if gear <> nil then
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1361
            lua_pushinteger(L, gear^.Radius)
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1362
        else
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1363
            lua_pushnil(L);
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1364
        end;
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1365
    lc_getgearradius:= 1
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1366
end;
4875
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1367
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1368
function lc_gethoghat(L : Plua_State): LongInt; Cdecl;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1369
var gear : PGear;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1370
begin
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1371
    if lua_gettop(L) <> 1 then
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1372
        LuaError('Lua: Wrong number of parameters passed to GetHogHat!')
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1373
    else begin
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1374
        gear := GearByUID(lua_tointeger(L, 1));
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1375
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1376
            lua_pushstring(L, str2pchar(gear^.Hedgehog^.Hat))
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1377
        else
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1378
            lua_pushnil(L);
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1379
    end;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1380
    lc_gethoghat := 1;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1381
end;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1382
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1383
function lc_sethoghat(L : Plua_State) : LongInt; Cdecl;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1384
var gear : PGear;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1385
    hat: ShortString;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1386
begin
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1387
    if lua_gettop(L) <> 2 then
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1388
        begin
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1389
        LuaError('Lua: Wrong number of parameters passed to SetHogHat!');
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1390
        lua_pushnil(L)
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1391
        end
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1392
    else
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1393
        begin
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1394
        gear:= GearByUID(lua_tointeger(L, 1));
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1395
        if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1396
            hat:= lua_tostring(L, 2);
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1397
            gear^.Hedgehog^.Hat:= hat;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1398
            LoadHedgehogHat(gear, hat);
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1399
        end;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1400
    lc_sethoghat:= 0;
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1401
end;
4985
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1402
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1403
function lc_placegirder(L : Plua_State) : LongInt; Cdecl;
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1404
begin
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1405
    if lua_gettop(L) <> 3 then
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1406
        LuaError('Lua: Wrong number of parameters passed to PlaceGirder!')
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1407
    else
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1408
        TryPlaceOnLand(
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1409
            lua_tointeger(L, 1) - SpritesData[sprAmGirder].Width div 2,
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1410
            lua_tointeger(L, 2) - SpritesData[sprAmGirder].Height div 2,
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1411
            sprAmGirder, lua_tointeger(L, 3), true, false);
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1412
    lc_placegirder:= 0
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1413
end;
5013
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1414
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1415
function lc_getcurammotype(L : Plua_State): LongInt; Cdecl;
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1416
begin
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1417
    if lua_gettop(L) <> 0 then
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1418
        LuaError('Lua: Wrong number of parameters passed to GetCurAmmoType!')
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1419
    else
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1420
        lua_pushinteger(L, ord(CurrentHedgehog^.CurAmmoType));
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1421
    lc_getcurammotype := 1;
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1422
end;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1423
///////////////////
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1424
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1425
procedure ScriptPrintStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1426
var n, i : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1427
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1428
    n:= lua_gettop(luaState);
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1429
    WriteLnToConsole('Lua: Stack (' + inttostr(n) + ' elements):');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1430
    for i:= 1 to n do
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1431
        if not lua_isboolean(luaState, i) then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1432
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': ' + lua_tostring(luaState, i))
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1433
        else if lua_toboolean(luaState, i) then
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1434
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': true')
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1435
        else
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1436
            WriteLnToConsole('Lua:  ' + inttostr(i) + ': false');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1437
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1438
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1439
procedure ScriptClearStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1440
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1441
lua_settop(luaState, 0)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1442
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1443
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1444
procedure ScriptSetNil(name : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1445
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1446
lua_pushnil(luaState);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1447
lua_setglobal(luaState, Str2PChar(name));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1448
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1449
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1450
procedure ScriptSetInteger(name : shortstring; value : LongInt);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1451
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1452
lua_pushinteger(luaState, value);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1453
lua_setglobal(luaState, Str2PChar(name));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1454
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1455
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1456
procedure ScriptSetString(name : shortstring; value : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1457
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1458
lua_pushstring(luaState, Str2PChar(value));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1459
lua_setglobal(luaState, Str2PChar(name));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1460
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1461
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1462
function ScriptGetInteger(name : shortstring) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1463
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1464
lua_getglobal(luaState, Str2PChar(name));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1465
ScriptGetInteger:= lua_tointeger(luaState, -1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1466
lua_pop(luaState, 1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1467
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1468
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1469
function ScriptGetString(name : shortstring) : shortstring;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1470
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1471
lua_getglobal(luaState, Str2PChar(name));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1472
ScriptGetString:= lua_tostring(luaState, -1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1473
lua_pop(luaState, 1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1474
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1475
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1476
procedure ScriptOnGameInit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1477
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1478
// not required if there is no script to run
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1479
if not ScriptLoaded then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1480
    exit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1481
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1482
// push game variables so they may be modified by the script
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1483
ScriptSetInteger('GameFlags', GameFlags);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1484
ScriptSetString('Seed', cSeed);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1485
ScriptSetInteger('TurnTime', cHedgehogTurnTime);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1486
ScriptSetInteger('CaseFreq', cCaseFactor);
4162
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1487
ScriptSetInteger('HealthCaseProb', cHealthCaseProb);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1488
ScriptSetInteger('HealthCaseAmount', cHealthCaseAmount);
4221
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1489
ScriptSetInteger('DamagePercent', cDamagePercent);
4003
ca0600ab38bf disable gfMines and update variable names (landadds -> minesnum, cLandAdditions -> cLandMines)
koda
parents: 3999
diff changeset
  1490
ScriptSetInteger('MinesNum', cLandMines);
4221
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1491
ScriptSetInteger('MinesTime', cMinesTime);
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1492
ScriptSetInteger('MineDudPercent', cMineDudPercent);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1493
ScriptSetInteger('Explosives', cExplosives);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1494
ScriptSetInteger('Delay', cInactDelay);
3774
af0e68ca273e Engine:
smaxx
parents: 3761
diff changeset
  1495
ScriptSetInteger('Ready', cReadyDelay);
3197
smxx
parents: 3058
diff changeset
  1496
ScriptSetInteger('SuddenDeathTurns', cSuddenDTurns);
4162
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1497
ScriptSetInteger('WaterRise', cWaterRise);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1498
ScriptSetInteger('HealthDecrease', cHealthDecrease);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1499
ScriptSetString('Map', '');
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1500
ScriptSetString('Theme', '');
4883
7cddc9201a1d added dummy for tardis and ugly icons for tardis and structure
Henek
parents: 4882
diff changeset
  1501
ScriptSetString('Goals', '');
7cddc9201a1d added dummy for tardis and ugly icons for tardis and structure
Henek
parents: 4882
diff changeset
  1502
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1503
ScriptCall('onGameInit');
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1504
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1505
// pop game variables
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1506
ParseCommand('seed ' + ScriptGetString('Seed'), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1507
ParseCommand('$gmflags ' + ScriptGetString('GameFlags'), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1508
ParseCommand('$turntime ' + ScriptGetString('TurnTime'), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1509
ParseCommand('$casefreq ' + ScriptGetString('CaseFreq'), true);
4162
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1510
ParseCommand('$healthprob ' + ScriptGetString('HealthCaseProb'), true);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1511
ParseCommand('$hcaseamount ' + ScriptGetString('HealthCaseAmount'), true);
4221
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1512
ParseCommand('$damagepct ' + ScriptGetString('DamagePercent'), true);
4003
ca0600ab38bf disable gfMines and update variable names (landadds -> minesnum, cLandAdditions -> cLandMines)
koda
parents: 3999
diff changeset
  1513
ParseCommand('$minesnum ' + ScriptGetString('MinesNum'), true);
4221
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1514
ParseCommand('$minestime ' + ScriptGetString('MinesTime'), true);
a1bf0f6b0d65 added missing game modifiers to lua
Henek
parents: 4219
diff changeset
  1515
ParseCommand('$minedudpct ' + ScriptGetString('MineDudPercent'), true);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1516
ParseCommand('$explosives ' + ScriptGetString('Explosives'), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1517
ParseCommand('$delay ' + ScriptGetString('Delay'), true);
3777
5276f2150d65 Engine:
smaxx
parents: 3774
diff changeset
  1518
ParseCommand('$ready ' + ScriptGetString('Ready'), true);
3197
smxx
parents: 3058
diff changeset
  1519
ParseCommand('$sd_turns ' + ScriptGetString('SuddenDeathTurns'), true);
4162
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1520
ParseCommand('$waterrise ' + ScriptGetString('WaterRise'), true);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1521
ParseCommand('$healthdec ' + ScriptGetString('HealthDecrease'), true);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1522
if ScriptGetString('Map') <> '' then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1523
    ParseCommand('map ' + ScriptGetString('Map'), true);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1524
if ScriptGetString('Theme') <> '' then
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3539
diff changeset
  1525
    ParseCommand('theme ' + ScriptGetString('Theme'), true);
4883
7cddc9201a1d added dummy for tardis and ugly icons for tardis and structure
Henek
parents: 4882
diff changeset
  1526
LuaGoals:= ScriptGetString('Goals');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1527
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1528
if ScriptExists('onAmmoStoreInit') then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1529
    begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1530
    ScriptPrepareAmmoStore;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1531
    ScriptCall('onAmmoStoreInit');
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1532
    ScriptApplyAmmoStore
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1533
    end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1534
4235
6b1dfbd60a45 added TeamsCount and TotalTurns to lua as requested by mikade
Henek
parents: 4221
diff changeset
  1535
ScriptSetInteger('ClansCount', ClansCount);
6b1dfbd60a45 added TeamsCount and TotalTurns to lua as requested by mikade
Henek
parents: 4221
diff changeset
  1536
ScriptSetInteger('TeamsCount', TeamsCount)
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1537
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1538
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1539
procedure ScriptLoad(name : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1540
var ret : LongInt;
5243
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
  1541
      s : shortstring;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1542
begin
5243
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
  1543
s:= UserPathz[ptData] + '/' + name;
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
  1544
if not FileExists(s) then s:= Pathz[ptData] + '/' + name;
f2e31a7f953a check alternate script loading path
nemo
parents: 5238
diff changeset
  1545
ret:= luaL_loadfile(luaState, Str2PChar(s));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1546
if ret <> 0 then
3774
af0e68ca273e Engine:
smaxx
parents: 3761
diff changeset
  1547
    begin
af0e68ca273e Engine:
smaxx
parents: 3761
diff changeset
  1548
    LuaError('Lua: Failed to load ' + name + '(error ' + IntToStr(ret) + ')');
af0e68ca273e Engine:
smaxx
parents: 3761
diff changeset
  1549
    LuaError('Lua: ' + lua_tostring(luaState, -1));
af0e68ca273e Engine:
smaxx
parents: 3761
diff changeset
  1550
    end
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1551
else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1552
    begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1553
    WriteLnToConsole('Lua: ' + name + ' loaded');
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1554
    // call the script file
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1555
    lua_pcall(luaState, 0, 0, 0);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1556
    ScriptLoaded:= true
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1557
    end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1558
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1559
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1560
procedure SetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1561
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1562
ScriptSetInteger('TurnTimeLeft', TurnTimeLeft);
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1563
ScriptSetInteger('GameTime', GameTicks);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1564
ScriptSetInteger('RealTime', RealTicks);
4235
6b1dfbd60a45 added TeamsCount and TotalTurns to lua as requested by mikade
Henek
parents: 4221
diff changeset
  1565
ScriptSetInteger('TotalRounds', TotalRounds);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1566
if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1567
    ScriptSetInteger('CurrentHedgehog', CurrentHedgehog^.Gear^.UID)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1568
else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1569
    ScriptSetNil('CurrentHedgehog');
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1570
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1571
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1572
procedure GetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1573
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1574
TurnTimeLeft:= ScriptGetInteger('TurnTimeLeft');
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1575
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1576
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1577
procedure ScriptCall(fname : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1578
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1579
if not ScriptLoaded or not ScriptExists(fname) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1580
    exit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1581
SetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1582
lua_getglobal(luaState, Str2PChar(fname));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1583
if lua_pcall(luaState, 0, 0, 0) <> 0 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1584
    begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1585
    LuaError('Lua: Error while calling ' + fname + ': ' + lua_tostring(luaState, -1));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1586
    lua_pop(luaState, 1)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1587
    end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1588
GetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1589
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1590
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1591
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1592
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1593
ScriptCall:= ScriptCall(fname, par1, 0, 0, 0)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1594
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1595
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1596
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1597
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1598
ScriptCall:= ScriptCall(fname, par1, par2, 0, 0)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1599
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1600
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1601
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1602
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1603
ScriptCall:= ScriptCall(fname, par1, par2, par3, 0)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1604
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1605
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1606
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1607
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1608
if not ScriptLoaded or not ScriptExists(fname) then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1609
    exit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1610
SetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1611
lua_getglobal(luaState, Str2PChar(fname));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1612
lua_pushinteger(luaState, par1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1613
lua_pushinteger(luaState, par2);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1614
lua_pushinteger(luaState, par3);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1615
lua_pushinteger(luaState, par4);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1616
ScriptCall:= 0;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1617
if lua_pcall(luaState, 4, 1, 0) <> 0 then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1618
    begin
3539
c3d1fccbe0ed General:
smaxx
parents: 3407
diff changeset
  1619
    LuaError('Lua: Error while calling ' + fname + ': ' + lua_tostring(luaState, -1));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1620
    lua_pop(luaState, 1)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1621
    end
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1622
else
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1623
    begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1624
    ScriptCall:= lua_tointeger(luaState, -1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1625
    lua_pop(luaState, 1)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1626
    end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1627
GetGlobals;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1628
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1629
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1630
function ScriptExists(fname : shortstring) : boolean;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1631
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1632
if not ScriptLoaded then
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1633
    begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1634
    ScriptExists:= false;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1635
    exit
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1636
    end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1637
lua_getglobal(luaState, Str2PChar(fname));
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1638
ScriptExists:= not lua_isnoneornil(luaState, -1);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1639
lua_pop(luaState, -1)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1640
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1641
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1642
procedure ScriptPrepareAmmoStore;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1643
var i: ShortInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1644
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1645
// reset ammostore (quite unclean, but works?)
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1646
uAmmos.freeModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1647
uAmmos.initModule;
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1648
ScriptAmmoLoadout:= '';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1649
ScriptAmmoDelay:= '';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1650
ScriptAmmoProbability:= '';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1651
ScriptAmmoReinforcement:= '';
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1652
for i:=1 to ord(High(TAmmoType)) do
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1653
    begin
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1654
    ScriptAmmoLoadout:= ScriptAmmoLoadout + '0';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1655
    ScriptAmmoProbability:= ScriptAmmoProbability + '0';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1656
    ScriptAmmoDelay:= ScriptAmmoDelay + '0';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1657
    ScriptAmmoReinforcement:= ScriptAmmoReinforcement + '0';
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1658
    end;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1659
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1660
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1661
procedure ScriptSetAmmo(ammo : TAmmoType; count, propability, delay, reinforcement: Byte);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1662
begin
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1663
if (ord(ammo) < 1) or (count > 9) or (count < 0) or (propability < 0) or (propability > 8) or (delay < 0) or (delay > 9) or (reinforcement < 0) or (reinforcement > 8) then
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1664
    exit;
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1665
ScriptAmmoLoadout[ord(ammo)]:= inttostr(count)[1];
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1666
ScriptAmmoProbability[ord(ammo)]:= inttostr(propability)[1];
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1667
ScriptAmmoDelay[ord(ammo)]:= inttostr(delay)[1];
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1668
ScriptAmmoReinforcement[ord(ammo)]:= inttostr(reinforcement)[1];
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1669
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1670
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1671
procedure ScriptApplyAmmoStore;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1672
var i : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1673
begin
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1674
SetAmmoLoadout(ScriptAmmoLoadout);
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1675
SetAmmoProbability(ScriptAmmoProbability);
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1676
SetAmmoDelay(ScriptAmmoDelay);
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1677
SetAmmoReinforcement(ScriptAmmoReinforcement);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1678
for i:= 0 to Pred(TeamsCount) do
3346
967fd96f7373 Engine/Frontend:
smxx
parents: 3337
diff changeset
  1679
    AddAmmoStore;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1680
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1681
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1682
procedure initModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1683
var at : TGearType;
4453
15a483b2558a add visual gear registration
nemo
parents: 4450
diff changeset
  1684
    vgt: TVisualGearType;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1685
    am : TAmmoType;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1686
    st : TSound;
5118
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
  1687
    he : THogEffect;
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
  1688
    cg : TCapGroup;
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1689
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1690
// initialize lua
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1691
luaState:= lua_open;
3045
41732f986b4f Clean Augean stables
unc0rr
parents: 3043
diff changeset
  1692
TryDo(luaState <> nil, 'lua_open failed', true);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1693
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1694
// open internal libraries
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1695
luaopen_base(luaState);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1696
luaopen_string(luaState);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1697
luaopen_math(luaState);
3724
b8678667e7dc Engine:
smaxx
parents: 3723
diff changeset
  1698
luaopen_table(luaState);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1699
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1700
// import some variables
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1701
ScriptSetInteger('LAND_WIDTH', LAND_WIDTH);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1702
ScriptSetInteger('LAND_HEIGHT', LAND_HEIGHT);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1703
5120
c4d5ddf939fc redundant now
nemo
parents: 5118
diff changeset
  1704
ScriptSetString('L', cLocale);
4502
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1705
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1706
// import game flags
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1707
ScriptSetInteger('gfForts', gfForts);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1708
ScriptSetInteger('gfMultiWeapon', gfMultiWeapon);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1709
ScriptSetInteger('gfSolidLand', gfSolidLand);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1710
ScriptSetInteger('gfBorder', gfBorder);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1711
ScriptSetInteger('gfDivideTeams', gfDivideTeams);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1712
ScriptSetInteger('gfLowGravity', gfLowGravity);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1713
ScriptSetInteger('gfLaserSight', gfLaserSight);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1714
ScriptSetInteger('gfInvulnerable', gfInvulnerable);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1715
ScriptSetInteger('gfVampiric', gfVampiric);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1716
ScriptSetInteger('gfKarma', gfKarma);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1717
ScriptSetInteger('gfArtillery', gfArtillery);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1718
ScriptSetInteger('gfOneClanMode', gfOneClanMode);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1719
ScriptSetInteger('gfRandomOrder', gfRandomOrder);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1720
ScriptSetInteger('gfKing', gfKing);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1721
ScriptSetInteger('gfPlaceHog', gfPlaceHog);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1722
ScriptSetInteger('gfSharedAmmo', gfSharedAmmo);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1723
ScriptSetInteger('gfDisableGirders', gfDisableGirders);
4162
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1724
ScriptSetInteger('gfDisableLandObjects', gfDisableLandObjects);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1725
ScriptSetInteger('gfAISurvival', gfAISurvival);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1726
ScriptSetInteger('gfInfAttack', gfInfAttack);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1727
ScriptSetInteger('gfResetWeps', gfResetWeps);
923db448ad16 update and fix some lua stuff
Henek
parents: 4003
diff changeset
  1728
ScriptSetInteger('gfPerHogAmmo', gfPerHogAmmo);
4219
4162db7c11bb fix so gfDisableWind can infact be used in lua
Henek
parents: 4162
diff changeset
  1729
ScriptSetInteger('gfDisableWind', gfDisableWind);
4319
81391b54b078 clean up and lua update, very minor
Henek
parents: 4243
diff changeset
  1730
ScriptSetInteger('gfMoreWind', gfMoreWind);
5016
9347d82a26cc added game mode Tag Team, mostly untested, please test :)
Henek
parents: 5013
diff changeset
  1731
ScriptSetInteger('gfTagTeam', gfTagTeam);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1732
3894
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1733
ScriptSetInteger('gmLeft', gmLeft);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1734
ScriptSetInteger('gmRight', gmRight);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1735
ScriptSetInteger('gmUp', gmUp);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1736
ScriptSetInteger('gmDown', gmDown);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1737
ScriptSetInteger('gmSwitch', gmSwitch);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1738
ScriptSetInteger('gmAttack', gmAttack);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1739
ScriptSetInteger('gmLJump', gmLJump);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1740
ScriptSetInteger('gmHJump', gmHJump);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1741
ScriptSetInteger('gmDestroy', gmDestroy);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1742
ScriptSetInteger('gmSlot', gmSlot);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1743
ScriptSetInteger('gmWeapon', gmWeapon);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1744
ScriptSetInteger('gmTimer', gmTimer);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1745
ScriptSetInteger('gmAnimate', gmAnimate);
9abce5468583 Engine:
smaxx
parents: 3892
diff changeset
  1746
ScriptSetInteger('gmPrecise', gmPrecise);
3892
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
  1747
ScriptSetInteger('gmAllStoppable', gmAllStoppable);
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
  1748
60d9709f2d8e Engine:
smaxx
parents: 3848
diff changeset
  1749
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1750
// speech bubbles
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1751
ScriptSetInteger('SAY_SAY', 1);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1752
ScriptSetInteger('SAY_THINK', 2);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1753
ScriptSetInteger('SAY_SHOUT', 3);
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1754
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1755
// register gear types
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1756
for at:= Low(TGearType) to High(TGearType) do
3337
75e7455c69ed Engine:
smxx
parents: 3271
diff changeset
  1757
    ScriptSetInteger(EnumToStr(at), ord(at));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1758
4453
15a483b2558a add visual gear registration
nemo
parents: 4450
diff changeset
  1759
for vgt:= Low(TVisualGearType) to High(TVisualGearType) do
15a483b2558a add visual gear registration
nemo
parents: 4450
diff changeset
  1760
    ScriptSetInteger(EnumToStr(vgt), ord(vgt));
15a483b2558a add visual gear registration
nemo
parents: 4450
diff changeset
  1761
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1762
// register sounds
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1763
for st:= Low(TSound) to High(TSound) do
3337
75e7455c69ed Engine:
smxx
parents: 3271
diff changeset
  1764
    ScriptSetInteger(EnumToStr(st), ord(st));
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1765
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1766
// register ammo types
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1767
for am:= Low(TAmmoType) to High(TAmmoType) do
3337
75e7455c69ed Engine:
smxx
parents: 3271
diff changeset
  1768
    ScriptSetInteger(EnumToStr(am), ord(am));
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3539
diff changeset
  1769
3756
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
  1770
for he:= Low(THogEffect) to High(THogEffect) do
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
  1771
    ScriptSetInteger(EnumToStr(he), ord(he));
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
  1772
5118
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
  1773
for cg:= Low(TCapGroup) to High(TCapGroup) do
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
  1774
    ScriptSetInteger(EnumToStr(cg), ord(cg));
9cfdb9bc6140 For mikade - bit more flexibility in script captions
nemo
parents: 5075
diff changeset
  1775
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1776
// register functions
4483
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
  1777
lua_register(luaState, 'band', @lc_band);
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
  1778
lua_register(luaState, 'bor', @lc_bor);
ad1524a177bd band/bor/bnot to support Lua 5.1 lack of binary ops
nemo
parents: 4481
diff changeset
  1779
lua_register(luaState, 'bnot', @lc_bnot);
4523
23ed16e6c7d2 oops. forgot the getter.
nemo
parents: 4522
diff changeset
  1780
lua_register(luaState, 'GetInputMask', @lc_getinputmask);
4522
0f590eefd531 Add an input mask for setting of gear messages. Intended for intercepting user messages. This is totally untested. I don't think it should desync but seriously needs a lot of testing. Esp the doPut behaviour.
nemo
parents: 4517
diff changeset
  1781
lua_register(luaState, 'SetInputMask', @lc_setinputmask);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1782
lua_register(luaState, 'AddGear', @lc_addgear);
4443
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
  1783
lua_register(luaState, 'DeleteGear', @lc_deletegear);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
  1784
lua_register(luaState, 'AddVisualGear', @lc_addvisualgear);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
  1785
lua_register(luaState, 'DeleteVisualGear', @lc_deletevisualgear);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
  1786
lua_register(luaState, 'GetVisualGearValues', @lc_getvisualgearvalues);
d393b9ccd328 Add an extra pass in FindPlace for AI resurrection mode to try to make it unwinnable, add DeleteGear, DeleteVisualGear, AddVisualGear, GetVisualGearValues, SetVisualGearValues to Lua
nemo
parents: 4411
diff changeset
  1787
lua_register(luaState, 'SetVisualGearValues', @lc_setvisualgearvalues);
3730
aecea9aa53dc Engine:
smaxx
parents: 3724
diff changeset
  1788
lua_register(luaState, 'SpawnHealthCrate', @lc_spawnhealthcrate);
3734
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
  1789
lua_register(luaState, 'SpawnAmmoCrate', @lc_spawnammocrate);
304a83637eb4 * SpawnCustomCrateAt procedure + lua bindings
burp
parents: 3730
diff changeset
  1790
lua_register(luaState, 'SpawnUtilityCrate', @lc_spawnutilitycrate);
5313
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
  1791
lua_register(luaState, 'SpawnFakeHealthCrate', @lc_spawnfakehealthcrate);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
  1792
lua_register(luaState, 'SpawnFakeAmmoCrate', @lc_spawnfakeammocrate);
5e18eaef65d0 now scripts can create unique crates: dummy (empty) crates and booby traps. scripts can also set health crate values
Henek
parents: 5277
diff changeset
  1793
lua_register(luaState, 'SpawnFakeUtilityCrate', @lc_spawnfakeutilitycrate);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1794
lua_register(luaState, 'WriteLnToConsole', @lc_writelntoconsole);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1795
lua_register(luaState, 'GetGearType', @lc_getgeartype);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1796
lua_register(luaState, 'EndGame', @lc_endgame);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1797
lua_register(luaState, 'FindPlace', @lc_findplace);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1798
lua_register(luaState, 'SetGearPosition', @lc_setgearposition);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1799
lua_register(luaState, 'GetGearPosition', @lc_getgearposition);
4517
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1800
lua_register(luaState, 'SetGearVelocity', @lc_setgearvelocity);
0618b31023dc added team flag to AddTeam and made AI team allowed to have custom flags. added GetGearVelocity and SetGearVelocity and removed CopyPV2. changed knockball to use use these functions instead.
Henek
parents: 4516
diff changeset
  1801
lua_register(luaState, 'GetGearVelocity', @lc_getgearvelocity);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1802
lua_register(luaState, 'ParseCommand', @lc_parsecommand);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1803
lua_register(luaState, 'ShowMission', @lc_showmission);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1804
lua_register(luaState, 'HideMission', @lc_hidemission);
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1805
lua_register(luaState, 'AddCaption', @lc_addcaption);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1806
lua_register(luaState, 'SetAmmo', @lc_setammo);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1807
lua_register(luaState, 'PlaySound', @lc_playsound);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1808
lua_register(luaState, 'AddTeam', @lc_addteam);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1809
lua_register(luaState, 'AddHog', @lc_addhog);
4481
0d73e7db3d59 Eh. Since you asked. AddAmmo hook for Lua
nemo
parents: 4456
diff changeset
  1810
lua_register(luaState, 'AddAmmo', @lc_addammo);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1811
lua_register(luaState, 'SetHealth', @lc_sethealth);
4319
81391b54b078 clean up and lua update, very minor
Henek
parents: 4243
diff changeset
  1812
lua_register(luaState, 'GetHealth', @lc_gethealth);
3756
d42571e2e6c9 lua function SetEffect to set and remove THogEffects
burp
parents: 3755
diff changeset
  1813
lua_register(luaState, 'SetEffect', @lc_seteffect);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1814
lua_register(luaState, 'GetHogClan', @lc_gethogclan);
4498
8c9595e39539 clan color fetch
nemo
parents: 4496
diff changeset
  1815
lua_register(luaState, 'GetClanColor', @lc_getclancolor);
4882
b4c84db92d8f expose set clan color for Cairo. might also be useful for betrayals in campaign mode or somesuch
nemo
parents: 4875
diff changeset
  1816
lua_register(luaState, 'SetClanColor', @lc_setclancolor);
4236
fa2680cfff86 added function GetHogTeamName to lua, makes TeamsCount more useful
Henek
parents: 4235
diff changeset
  1817
lua_register(luaState, 'GetHogTeamName', @lc_gethogteamname);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1818
lua_register(luaState, 'GetHogName', @lc_gethogname);
5245
ce407084728f Fully playable version of Space Invasion (fingers crossed). No bugs known.
mikade
parents: 5243
diff changeset
  1819
lua_register(luaState, 'SetHogName', @lc_sethogname);
3755
02dc9fcb6477 GetHogLevel lua function
burp
parents: 3750
diff changeset
  1820
lua_register(luaState, 'GetHogLevel', @lc_gethoglevel);
4496
ba5da3388110 add missing setter for botlevel
nemo
parents: 4484
diff changeset
  1821
lua_register(luaState, 'SetHogLevel', @lc_sethoglevel);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1822
lua_register(luaState, 'GetX', @lc_getx);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1823
lua_register(luaState, 'GetY', @lc_gety);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1824
lua_register(luaState, 'CopyPV', @lc_copypv);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1825
lua_register(luaState, 'FollowGear', @lc_followgear);
3058
2ebc20485344 Engine:
smxx
parents: 3045
diff changeset
  1826
lua_register(luaState, 'GetFollowGear', @lc_getfollowgear);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1827
lua_register(luaState, 'SetState', @lc_setstate);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1828
lua_register(luaState, 'GetState', @lc_getstate);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1829
lua_register(luaState, 'SetTag', @lc_settag);
3722
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
  1830
lua_register(luaState, 'SetTimer', @lc_settimer);
eadebe4c45c9 Engine:
smaxx
parents: 3697
diff changeset
  1831
lua_register(luaState, 'GetTimer', @lc_gettimer);
3736
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1832
lua_register(luaState, 'SetZoom', @lc_setzoom);
d8982f9e7e2c Engine:
smaxx
parents: 3734
diff changeset
  1833
lua_register(luaState, 'GetZoom', @lc_getzoom);
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1834
lua_register(luaState, 'HogSay', @lc_hogsay);
4851
3ba1ecc06dc6 SwitchHog in scripting
nemo
parents: 4850
diff changeset
  1835
lua_register(luaState, 'SwitchHog', @lc_switchhog);
3761
f96b99f944e6 Engine:
smaxx
parents: 3756
diff changeset
  1836
lua_register(luaState, 'HogTurnLeft', @lc_hogturnleft);
3848
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
  1837
lua_register(luaState, 'CampaignLock', @lc_campaignlock);
32ceb775906b Engine:
smaxx
parents: 3836
diff changeset
  1838
lua_register(luaState, 'CampaignUnlock', @lc_campaignunlock);
4682
0fc1ff341482 add a GetGearElasticity since Mikade kept asking for it. (actually return *10000 to handle it being an hwFloat - I assume large values will just overflow to negative)
nemo
parents: 4629
diff changeset
  1839
lua_register(luaState, 'GetGearElasticity', @lc_getgearelasticity);
4869
7a720b5d2247 added GetGearRaduis and minor Tracker things
Henek
parents: 4851
diff changeset
  1840
lua_register(luaState, 'GetGearRadius', @lc_getgearradius);
3896
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
  1841
lua_register(luaState, 'GetGearMessage', @lc_getgearmessage);
59de68d541f1 Engine:
smaxx
parents: 3894
diff changeset
  1842
lua_register(luaState, 'SetGearMessage', @lc_setgearmessage);
4243
bbf7451f6b4e added getrandom and addcaption to lua
Henek
parents: 4236
diff changeset
  1843
lua_register(luaState, 'GetRandom', @lc_getrandom);
4399
87bc4a9e6ef0 fix key binds for lua created teams and added wind control
Henek
parents: 4393
diff changeset
  1844
lua_register(luaState, 'SetWind', @lc_setwind);
4502
759c1a3bb156 lua access to data dir by GetDataPath and made a new scripting translation system with Locale.lua as library and .lua files under Locale. Updated maps Basketball and Knockball to this new system.
Henek
parents: 4499
diff changeset
  1845
lua_register(luaState, 'GetDataPath', @lc_getdatapath);
5238
46ddaf14509d Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents: 5124
diff changeset
  1846
lua_register(luaState, 'GetUserDataPath', @lc_getuserdatapath);
4590
d9fed5a816e9 added MapHasBorder function for lua and finnished Random Weapons gameplay, might still change though
Henek
parents: 4546
diff changeset
  1847
lua_register(luaState, 'MapHasBorder', @lc_maphasborder);
4875
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1848
lua_register(luaState, 'GetHogHat', @lc_gethoghat);
2a37a0e0892d lua: getter and setter for hedgehog hats
sheepluva
parents: 4869
diff changeset
  1849
lua_register(luaState, 'SetHogHat', @lc_sethoghat);
4985
304d149bb3dd added PlaceGirder to lua
Henek
parents: 4976
diff changeset
  1850
lua_register(luaState, 'PlaceGirder', @lc_placegirder);
5013
04789ba3f200 added GetCurAmmoType to lua
Henek
parents: 4985
diff changeset
  1851
lua_register(luaState, 'GetCurAmmoType', @lc_getcurammotype);
3043
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1852
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1853
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1854
ScriptClearStack; // just to be sure stack is empty
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1855
ScriptLoaded:= false;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1856
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1857
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1858
procedure freeModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1859
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1860
lua_close(luaState);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1861
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1862
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1863
{$ELSE}
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1864
procedure ScriptPrintStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1865
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1866
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1867
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1868
procedure ScriptClearStack;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1869
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1870
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1871
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1872
procedure ScriptLoad(name : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1873
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1874
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1875
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1876
procedure ScriptOnGameInit;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1877
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1878
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1879
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1880
procedure ScriptCall(fname : shortstring);
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1881
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1882
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1883
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1884
function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1885
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1886
ScriptCall:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1887
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1888
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1889
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1890
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1891
ScriptCall:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1892
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1893
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1894
function ScriptCall(fname : shortstring; par1, par2: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1895
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1896
ScriptCall:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1897
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1898
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1899
function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1900
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1901
ScriptCall:= 0
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1902
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1903
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1904
function ScriptExists(fname : shortstring) : boolean;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1905
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1906
ScriptExists:= false
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1907
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1908
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1909
procedure initModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1910
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1911
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1912
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1913
procedure freeModule;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1914
begin
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1915
end;
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1916
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1917
{$ENDIF}
3acdb4dac6eb Just tidying up a bit. Comments, moving uMisc to end of frees in case ones above it need logging
nemo
parents: 3038
diff changeset
  1918
end.