90 procedure OutError(Msg: String; isFatalError: boolean); |
90 procedure OutError(Msg: String; isFatalError: boolean); |
91 procedure TryDo(Assert: boolean; Msg: string; isFatal: boolean); |
91 procedure TryDo(Assert: boolean; Msg: string; isFatal: boolean); |
92 procedure SDLTry(Assert: boolean; isFatal: boolean); |
92 procedure SDLTry(Assert: boolean; isFatal: boolean); |
93 function IntToStr(n: LongInt): shortstring; |
93 function IntToStr(n: LongInt): shortstring; |
94 function FloatToStr(n: hwFloat): shortstring; |
94 function FloatToStr(n: hwFloat): shortstring; |
95 function DxDy2Angle32(const _dY, _dX: Extended): integer; |
95 function DxDy2Angle32(const _dY, _dX: hwFloat): integer; |
96 function DxDy2AttackAngle(const _dY, _dX: Extended): integer; |
96 function DxDy2AttackAngle(const _dY, _dX: hwFloat): integer; |
97 procedure AdjustColor(var Color: Longword); |
97 procedure AdjustColor(var Color: Longword); |
98 {$IFDEF DEBUGFILE} |
98 {$IFDEF DEBUGFILE} |
99 procedure AddFileLog(s: shortstring); |
99 procedure AddFileLog(s: shortstring); |
100 function RectToStr(Rect: TSDL_Rect): shortstring; |
100 function RectToStr(Rect: TSDL_Rect): shortstring; |
101 {$ENDIF} |
101 {$ENDIF} |
175 fpatan |
175 fpatan |
176 fwait |
176 fwait |
177 end; |
177 end; |
178 {$ENDIF} |
178 {$ENDIF} |
179 |
179 |
180 function DxDy2Angle32(const _dY, _dX: Extended): integer; |
180 function DxDy2Angle32(const _dY, _dX: hwFloat): integer; |
181 const _16divPI: Extended = 16/pi; |
181 const _16divPI: Extended = 16/pi; |
182 begin |
182 var dY, dX: Extended; |
183 DxDy2Angle32:= trunc(arctan2(_dY, _dX) * _16divPI) and $1f |
183 begin |
184 end; |
184 dY:= _dY.QWordValue / $100000000; |
185 |
185 if _dY.isNegative then dY:= - dY; |
186 function DxDy2AttackAngle(const _dY, _dX: Extended): integer; |
186 dX:= _dX.QWordValue / $100000000; |
|
187 if _dX.isNegative then dX:= - dX; |
|
188 DxDy2Angle32:= trunc(arctan2(dY, dX) * _16divPI) and $1f |
|
189 end; |
|
190 |
|
191 function DxDy2AttackAngle(const _dY, _dX: hwFloat): integer; |
187 const MaxAngleDivPI: Extended = cMaxAngle/pi; |
192 const MaxAngleDivPI: Extended = cMaxAngle/pi; |
188 begin |
193 var dY, dX: Extended; |
189 DxDy2AttackAngle:= trunc(arctan2(_dY, _dX) * MaxAngleDivPI) mod cMaxAngle |
194 begin |
|
195 dY:= _dY.QWordValue / $100000000; |
|
196 if _dY.isNegative then dY:= - dY; |
|
197 dX:= _dX.QWordValue / $100000000; |
|
198 if _dX.isNegative then dX:= - dX; |
|
199 DxDy2AttackAngle:= trunc(arctan2(dY, dX) * MaxAngleDivPI) mod cMaxAngle |
190 end; |
200 end; |
191 |
201 |
192 procedure SetKB(n: Longword); |
202 procedure SetKB(n: Longword); |
193 begin |
203 begin |
194 KBnum:= n |
204 KBnum:= n |