hedgewars/uGears.pas
changeset 107 b08ce0293a51
parent 100 f324a18698fe
child 108 08f1fe6f21f8
equal deleted inserted replaced
106:98cb6606bf67 107:b08ce0293a51
    50              Kind: TGearType;
    50              Kind: TGearType;
    51              Pos: Longword;
    51              Pos: Longword;
    52              doStep: TGearStepProcedure;
    52              doStep: TGearStepProcedure;
    53              Radius: integer;
    53              Radius: integer;
    54              Angle, Power : Cardinal;
    54              Angle, Power : Cardinal;
    55              DirAngle: real;
    55              DirAngle: Double;
    56              Timer : LongWord;
    56              Timer : LongWord;
    57              Elasticity: Real;
    57              Elasticity: Real;
    58              Friction  : Real;
    58              Friction  : Real;
    59              Message : Longword;
    59              Message : Longword;
    60              Hedgehog: pointer;
    60              Hedgehog: pointer;
    62              CollIndex: Longword;
    62              CollIndex: Longword;
    63              Tag: integer;
    63              Tag: integer;
    64              Surf: PSDL_Surface;
    64              Surf: PSDL_Surface;
    65              end;
    65              end;
    66 
    66 
    67 function  AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: real=0.0; dY: real=0.0; Timer: LongWord=0): PGear;
    67 function  AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: Double=0.0; dY: Double=0.0; Timer: LongWord=0): PGear;
    68 procedure ProcessGears;
    68 procedure ProcessGears;
    69 procedure SetAllToActive;
    69 procedure SetAllToActive;
    70 procedure SetAllHHToActive;
    70 procedure SetAllHHToActive;
    71 procedure DrawGears(Surface: PSDL_Surface);
    71 procedure DrawGears(Surface: PSDL_Surface);
    72 procedure FreeGearsList;
    72 procedure FreeGearsList;
    82      uLand, uIO, uLandGraphics, uAIMisc, uLocale{$IFDEF FPC}, Math{$ENDIF};
    82      uLand, uIO, uLandGraphics, uAIMisc, uLocale{$IFDEF FPC}, Math{$ENDIF};
    83 var RopePoints: record
    83 var RopePoints: record
    84                 Count: Longword;
    84                 Count: Longword;
    85                 HookAngle: integer;
    85                 HookAngle: integer;
    86                 ar: array[0..300] of record
    86                 ar: array[0..300] of record
    87                                   X, Y: real;
    87                                   X, Y: Double;
    88                                   dLen: real;
    88                                   dLen: Double;
    89                                   b: boolean;
    89                                   b: boolean;
    90                                   end;
    90                                   end;
    91                  end;
    91                  end;
    92 
    92 
    93 procedure DeleteGear(Gear: PGear); forward;
    93 procedure DeleteGear(Gear: PGear); forward;
   128                                                                doStepActionTimer,
   128                                                                doStepActionTimer,
   129                                                                doStepActionTimer,
   129                                                                doStepActionTimer,
   130                                                                doStepActionTimer
   130                                                                doStepActionTimer
   131                                                                );
   131                                                                );
   132 
   132 
   133 function AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: real=0.0; dY: real=0.0; Timer: LongWord=0): PGear;
   133 function AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: Double=0.0; dY: Double=0.0; Timer: LongWord=0): PGear;
   134 const Counter: Longword = 0;
   134 const Counter: Longword = 0;
   135 begin
   135 begin
   136 inc(Counter);
   136 inc(Counter);
   137 {$IFDEF DEBUGFILE}AddFileLog('AddGear: ('+inttostr(x)+','+inttostr(y)+')');{$ENDIF}
   137 {$IFDEF DEBUGFILE}AddFileLog('AddGear: ('+inttostr(x)+','+inttostr(y)+')');{$ENDIF}
   138 New(Result);
   138 New(Result);
   409 end;
   409 end;
   410 
   410 
   411 procedure DrawGears(Surface: PSDL_Surface);
   411 procedure DrawGears(Surface: PSDL_Surface);
   412 var Gear: PGear;
   412 var Gear: PGear;
   413     i: Longword;
   413     i: Longword;
   414     roplen: real;
   414     roplen: Double;
   415 
   415 
   416     procedure DrawRopeLine(X1, Y1, X2, Y2: integer);
   416     procedure DrawRopeLine(X1, Y1, X2, Y2: integer);
   417     const nodlen = 5;
   417     const nodlen = 5;
   418     var i, x, y: integer;
   418     var i, x, y: integer;
   419         t, k, ladd: real;
   419         t, k, ladd: Double;
   420     begin
   420     begin
   421     if (X1 = X2) and (Y1 = Y2) then
   421     if (X1 = X2) and (Y1 = Y2) then
   422        begin
   422        begin
   423        OutError('WARNING: zero length rope line!');
   423        OutError('WARNING: zero length rope line!');
   424        exit
   424        exit