hedgewars/uGame.pas
author nemo
Sun, 10 Oct 2010 20:16:17 -0400
changeset 3951 c9a63db3e603
parent 3935 5ca27a0e9a63
child 4048 f94d04498031
permissions -rw-r--r--
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 917
diff changeset
     2
 * Hedgewars, a free turn based strategy game
883
07a568ba44e0 Update copyright info in source files headers
unc0rr
parents: 741
diff changeset
     3
 * Copyright (c) 2004-2008 Andrey Korotaev <unC0Rr@gmail.com>
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    12
 * GNU General Public License for more details.
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    15
 * along with this program; if not, write to the Free Software
57c2ef19f719 Relicense to GPL
unc0rr
parents: 167
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    17
 *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    18
2630
079ef82eac75 revamped file access and debug display
koda
parents: 2621
diff changeset
    19
{$INCLUDE "options.inc"}
079ef82eac75 revamped file access and debug display
koda
parents: 2621
diff changeset
    20
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    21
unit uGame;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    22
interface
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    23
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 358
diff changeset
    24
procedure DoGameTick(Lag: LongInt);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    25
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    26
////////////////////
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    27
   implementation
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    28
////////////////////
3928
2560731c860d move all mobile-related functions in their own module, provides a structure for future mobile ports
koda
parents: 3904
diff changeset
    29
uses uMisc, uConsts, uKeys, uTeams, uIO, uAI, uGears, uScript, uSound, uMobile;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    30
371
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 358
diff changeset
    31
procedure DoGameTick(Lag: LongInt);
731ad6d27bd1 integer -> LongInt
unc0rr
parents: 358
diff changeset
    32
var i: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    33
begin
281
5b483aa9f2ab Pause support (mouse cursor is released when the game is paused)
unc0rr
parents: 196
diff changeset
    34
if isPaused then exit;
1611
fe6dd0bd1886 Oops, fix last patch
unc0rr
parents: 1610
diff changeset
    35
if (not CurrentTeam^.ExtDriven) then
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2814
diff changeset
    36
    begin
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2814
diff changeset
    37
    NetGetNextCmd; // its for the case of receiving "/say" message
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2814
diff changeset
    38
    isInLag:= false;
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2814
diff changeset
    39
    SendKeepAliveMessage(Lag)
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2814
diff changeset
    40
    end;
72
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    41
if Lag > 100 then Lag:= 100
1727
bddbb2400c30 Unfuckup spectating
unc0rr
parents: 1723
diff changeset
    42
else if (GameType = gmtSave) or (fastUntilLag and (GameType = gmtNet)) then Lag:= 2500;
626
a30171dbcd19 's' key to speed up demo playing
unc0rr
parents: 602
diff changeset
    43
if (GameType = gmtDemo) and isSpeed then Lag:= Lag * 10;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    44
89
f9db56409a86 - Fix various bugs
unc0rr
parents: 79
diff changeset
    45
i:= 1;
f9db56409a86 - Fix various bugs
unc0rr
parents: 79
diff changeset
    46
while (GameState <> gsExit) and (i <= Lag) do
f9db56409a86 - Fix various bugs
unc0rr
parents: 79
diff changeset
    47
    begin
2814
71e80c6e74bb Engine:
smxx
parents: 2786
diff changeset
    48
    ScriptCall('onGameTick');
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 281
diff changeset
    49
    if not CurrentTeam^.ExtDriven then
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    50
       begin
602
f7628ebfccde Add CurrentHedgehog variable which simplifies code
unc0rr
parents: 519
diff changeset
    51
       if CurrentHedgehog^.BotLevel <> 0 then ProcessBot;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    52
       ProcessGears
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    53
       end else
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    54
       begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    55
       NetGetNextCmd;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    56
       if isInLag then
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    57
          case GameType of
113
d975a426ebf7 - Many small fixes in engine
unc0rr
parents: 109
diff changeset
    58
                gmtNet: break;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    59
               gmtDemo: begin
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    60
                        GameState:= gsExit;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    61
                        exit
72
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    62
                        end;
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    63
               gmtSave: begin
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    64
                        RestoreTeamsFromSave;
519
981df6f6e2a9 - Fix desert eagle
unc0rr
parents: 433
diff changeset
    65
                        SetBinds(CurrentTeam^.Binds);
909
122c1b57bbf3 Fix bug with demos and saves after restoring round from save
unc0rr
parents: 883
diff changeset
    66
                        //CurrentHedgehog^.Gear^.Message:= 0; <- produces bugs with further save restoring and demos
72
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    67
                        isSoundEnabled:= isSEBackup;
3902
3aac7ca07b0e have Saves restart net when loaded, also resumes music
koda
parents: 3663
diff changeset
    68
                        if isSoundEnabled then playMusic;
3aac7ca07b0e have Saves restart net when loaded, also resumes music
koda
parents: 3663
diff changeset
    69
                        GameType:= gmtLocal;
3aac7ca07b0e have Saves restart net when loaded, also resumes music
koda
parents: 3663
diff changeset
    70
                        InitIPC;
3935
5ca27a0e9a63 made the new menu toggable
koda
parents: 3928
diff changeset
    71
                        perfExt_SaveFinishedSynching();
72
aeb2ac1878dc Basic save support in engine
unc0rr
parents: 32
diff changeset
    72
                        end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    73
               end
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    74
          else ProcessGears
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    75
       end;
89
f9db56409a86 - Fix various bugs
unc0rr
parents: 79
diff changeset
    76
    inc(i)
162
4822f6face35 Ammo menu now works!
unc0rr
parents: 143
diff changeset
    77
    end
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    78
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    79
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 3
diff changeset
    80
end.