# HG changeset patch # User koda # Date 1335942437 -3600 # Node ID 409dd38513090bd6f6cde78bff0f8a60c40257d6 # Parent caa41003f42cefaec3f983fb46b30a33ac9af952 add support for default pascal mode by removing default arguments value (maybe this also helps the parser) diff -r caa41003f42c -r 409dd3851309 hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/hwengine.pas Wed May 02 08:07:17 2012 +0100 @@ -68,7 +68,7 @@ AddFlakes; AssignHHCoords; AddMiscGears; - StoreLoad; + StoreLoad(false); InitWorld; ResetKbd; SoundLoad; @@ -132,7 +132,7 @@ begin WriteLnToConsole('Freeing resources...'); FreeActionsList(); - StoreRelease(); + StoreRelease(false); ControllerClose(); CloseIPC(); TTF_Quit(); diff -r caa41003f42c -r 409dd3851309 hedgewars/uAIMisc.pas --- a/hedgewars/uAIMisc.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uAIMisc.pas Wed May 02 08:07:17 2012 +0100 @@ -50,16 +50,20 @@ procedure FillTargets; procedure FillBonuses(isAfterAttack: boolean); procedure AwareOfExplosion(x, y, r: LongInt); inline; -function RatePlace(Gear: PGear): LongInt; -function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; inline; -function TestColl(x, y, r: LongInt): boolean; inline; -function TraceShoveFall(Me: PGear; x, y, dX, dY: Real): LongInt; -function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord = 0): LongInt; -function RateShove(Me: PGear; x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt; -function RateShotgun(Me: PGear; gdX, gdY: real; x, y: LongInt): LongInt; -function RateHammer(Me: PGear): LongInt; -function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean; -function AIrndSign(num: LongInt): LongInt; + +function RatePlace(Gear: PGear): LongInt; +function TestColl(x, y, r: LongInt): boolean; inline; +function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; inline; +function TraceShoveFall(Me: PGear; x, y, dX, dY: Real): LongInt; + +function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; inline; +function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt; +function RateShove(Me: PGear; x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt; +function RateShotgun(Me: PGear; gdX, gdY: real; x, y: LongInt): LongInt; +function RateHammer(Me: PGear): LongInt; + +function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean; +function AIrndSign(num: LongInt): LongInt; var ThinkingHH: PGear; Targets: TTargets; @@ -178,11 +182,11 @@ AddBonus(X, Y, Radius + 10, -Radius); end; -procedure AwareOfExplosion(x, y, r: LongInt); +procedure AwareOfExplosion(x, y, r: LongInt); inline; begin -KnownExplosion.X:= x; -KnownExplosion.Y:= y; -KnownExplosion.Radius:= r + KnownExplosion.X:= x; + KnownExplosion.Y:= y; + KnownExplosion.Radius:= r end; function RatePlace(Gear: PGear): LongInt; @@ -209,7 +213,7 @@ // Wrapper to test various approaches. If it works reasonably, will just replace. // Right now, converting to hwFloat is a tad inefficient since the x/y were hwFloat to begin with... -function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; +function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; inline; var MeX, MeY: LongInt; begin if ((x and LAND_WIDTH_MASK) = 0) and ((y and LAND_HEIGHT_MASK) = 0) then @@ -223,7 +227,7 @@ exit(TestColl(x, y, r)) end; -function TestColl(x, y, r: LongInt): boolean; +function TestColl(x, y, r: LongInt): boolean; inline; var b: boolean; begin b:= (((x-r) and LAND_WIDTH_MASK) = 0)and(((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] <> 0); @@ -311,7 +315,12 @@ end; // Flags are not defined yet but 1 for checking drowning and 2 for assuming land erasure. -function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord = 0): LongInt; +function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; +begin + RateExplosion:= RateExplosion(Me, x, y, r, 0); +end; + +function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt; var i, fallDmg, dmg, dmgBase, rate, erasure: LongInt; dX, dY, dmgMod: real; begin diff -r caa41003f42c -r 409dd3851309 hedgewars/uCollisions.pas --- a/hedgewars/uCollisions.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uCollisions.pas Wed May 02 08:07:17 2012 +0100 @@ -47,8 +47,10 @@ function TestCollisionX(Gear: PGear; Dir: LongInt): boolean; function TestCollisionY(Gear: PGear; Dir: LongInt): boolean; -function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; -function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; +function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt): boolean; inline; +function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean): boolean; +function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt): boolean; inline; +function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean): boolean; function TestRectancleForObstacle(x1, y1, x2, y2: LongInt; landOnly: boolean): boolean; @@ -318,7 +320,12 @@ end end; -function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; +function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt): boolean; inline; +begin + TestCollisionXwithXYShift:= TestCollisionXwithXYShift(Gear, ShiftX, ShiftY, Dir, true); +end; + +function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt; withGear: boolean): boolean; begin Gear^.X:= Gear^.X + ShiftX; Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); @@ -372,7 +379,12 @@ TestCollisionY:= false end; -function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean = true): boolean; +function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt): boolean; inline; +begin + TestCollisionYwithXYShift:= TestCollisionYwithXYShift(Gear, ShiftX, ShiftY, Dir, true); +end; + +function TestCollisionYwithXYShift(Gear: PGear; ShiftX, ShiftY: LongInt; Dir: LongInt; withGear: boolean): boolean; begin Gear^.X:= Gear^.X + int2hwFloat(ShiftX); Gear^.Y:= Gear^.Y + int2hwFloat(ShiftY); diff -r caa41003f42c -r 409dd3851309 hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uGearsRender.pas Wed May 02 08:07:17 2012 +0100 @@ -1015,7 +1015,7 @@ else DrawRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle); end; - gtDynamite: DrawSprite2(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1); + gtDynamite: DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1); gtClusterBomb: DrawRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle); gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0); gtFlame: if Gear^.Tag and 1 = 0 then diff -r caa41003f42c -r 409dd3851309 hedgewars/uGearsUtils.pas --- a/hedgewars/uGearsUtils.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uGearsUtils.pas Wed May 02 08:07:17 2012 +0100 @@ -22,7 +22,9 @@ interface uses uTypes, math; -procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord = $FFFFFFFF); +procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword); inline; +procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord); + function ModifyDamage(dmg: Longword; Gear: PGear): Longword; procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource); procedure spawnHealthTagForHH(HHGear: PGear; dmg: Longword); @@ -30,7 +32,10 @@ procedure CheckHHDamage(Gear: PGear); procedure CalcRotationDirAngle(Gear: PGear); procedure ResurrectHedgehog(gear: PGear); -procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean = false); + +procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); inline; +procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean); + function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; function CheckGearDrowning(Gear: PGear): boolean; @@ -43,6 +48,11 @@ uLocale, uTextures, uRenderUtils, uRandom, SDLh, uDebug, uGears, uGearsList; +procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword); inline; +begin + doMakeExplosion(X, Y, Radius, AttackingHog, Mask, $FFFFFFFF); +end; + procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord); var Gear: PGear; dmg, dmgBase: LongInt; @@ -491,6 +501,10 @@ NoGearsToAvoid:= true end; +procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); inline; +begin + FindPlace(Gear, withFall, Left, Right, false); +end; procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean); var x: LongInt; diff -r caa41003f42c -r 409dd3851309 hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uLandObjects.pas Wed May 02 08:07:17 2012 +0100 @@ -25,7 +25,8 @@ procedure AddObjects(); procedure FreeLandObjects(); procedure LoadThemeConfig; -procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word = 0); +procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface); inline; +procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word); procedure AddOnLandObjects(Surface: PSDL_Surface); implementation @@ -65,8 +66,12 @@ ThemeObjects: TThemeObjects; SprayObjects: TSprayObjects; - -procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word = 0); +procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface); inline; +begin + BlitImageAndGenerateCollisionInfo(cpX, cpY, Width, Image, 0); +end; + +procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word); var p: PLongwordArray; x, y: Longword; bpp: LongInt; diff -r caa41003f42c -r 409dd3851309 hedgewars/uRender.pas --- a/hedgewars/uRender.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uRender.pas Wed May 02 08:07:17 2012 +0100 @@ -24,25 +24,31 @@ uses SDLh, uTypes, GLunit, uConsts; -procedure DrawSpriteFromRect(Sprite: TSprite; r: TSDL_Rect; X, Y, Height, Position: LongInt); +procedure DrawFromRect(X, Y: LongInt; r: PSDL_Rect; SourceTexture: PTexture); procedure DrawFromRect(X, Y, W, H: LongInt; r: PSDL_Rect; SourceTexture: PTexture); -procedure DrawFromRect(X, Y: LongInt; r: PSDL_Rect; SourceTexture: PTexture); -procedure DrawSprite (Sprite: TSprite; X, Y, Frame: LongInt); -procedure DrawSprite2(Sprite: TSprite; X, Y, FrameX, FrameY: LongInt); + +procedure DrawSprite(Sprite: TSprite; X, Y, Frame: LongInt); +procedure DrawSprite(Sprite: TSprite; X, Y, FrameX, FrameY: LongInt); +procedure DrawSpriteFromRect(Sprite: TSprite; r: TSDL_Rect; X, Y, Height, Position: LongInt); procedure DrawSpriteClipped(Sprite: TSprite; X, Y, TopY, RightX, BottomY, LeftX: LongInt); -procedure DrawTexture(X, Y: LongInt; Texture: PTexture; Scale: GLfloat = 1.0); + +procedure DrawTexture(X, Y: LongInt; Texture: PTexture); inline; +procedure DrawTexture(X, Y: LongInt; Texture: PTexture; Scale: GLfloat); procedure DrawTextureF(Texture: PTexture; Scale: GLfloat; X, Y, Frame, Dir, w, h: LongInt); -procedure DrawRotatedTextureF(Texture: PTexture; Scale, OffsetX, OffsetY: GLfloat; X, Y, Frame, Dir, w, h: LongInt; Angle: real); + procedure DrawRotated(Sprite: TSprite; X, Y, Dir: LongInt; Angle: real); procedure DrawRotatedF(Sprite: TSprite; X, Y, Frame, Dir: LongInt; Angle: real); procedure DrawRotatedTex(Tex: PTexture; hw, hh, X, Y, Dir: LongInt; Angle: real); +procedure DrawRotatedTextureF(Texture: PTexture; Scale, OffsetX, OffsetY: GLfloat; X, Y, Frame, Dir, w, h: LongInt; Angle: real); + procedure DrawCentered(X, Top: LongInt; Source: PTexture); procedure DrawLine(X0, Y0, X1, Y1, Width: Single; r, g, b, a: Byte); procedure DrawFillRect(r: TSDL_Rect); +procedure DrawCircle(X, Y, Radius, Width: LongInt); procedure DrawCircle(X, Y, Radius, Width: LongInt; r, g, b, a: Byte); -procedure DrawCircle(X, Y, Radius, Width: LongInt); procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real); procedure DrawScreenWidget(widget: POnScreenWidget); + procedure Tint(r, g, b, a: Byte); inline; procedure Tint(c: Longword); inline; @@ -112,6 +118,10 @@ glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); end; +procedure DrawTexture(X, Y: LongInt; Texture: PTexture); inline; +begin + DrawTexture(X, Y, Texture, 1.0); +end; procedure DrawTexture(X, Y: LongInt; Texture: PTexture; Scale: GLfloat); begin @@ -258,15 +268,25 @@ glPopMatrix end; -procedure DrawSprite (Sprite: TSprite; X, Y, Frame: LongInt); +procedure DrawSprite(Sprite: TSprite; X, Y, Frame: LongInt); var row, col, numFramesFirstCol: LongInt; begin -if SpritesData[Sprite].imageHeight = 0 then - exit; -numFramesFirstCol:= SpritesData[Sprite].imageHeight div SpritesData[Sprite].Height; -row:= Frame mod numFramesFirstCol; -col:= Frame div numFramesFirstCol; -DrawSprite2 (Sprite, X, Y, col, row); + if SpritesData[Sprite].imageHeight = 0 then + exit; + numFramesFirstCol:= SpritesData[Sprite].imageHeight div SpritesData[Sprite].Height; + row:= Frame mod numFramesFirstCol; + col:= Frame div numFramesFirstCol; + DrawSprite(Sprite, X, Y, col, row); +end; + +procedure DrawSprite(Sprite: TSprite; X, Y, FrameX, FrameY: LongInt); +var r: TSDL_Rect; +begin + r.x:= FrameX * SpritesData[Sprite].Width; + r.w:= SpritesData[Sprite].Width; + r.y:= FrameY * SpritesData[Sprite].Height; + r.h:= SpritesData[Sprite].Height; + DrawFromRect(X, Y, @r, SpritesData[Sprite].Texture) end; procedure DrawSpriteClipped(Sprite: TSprite; X, Y, TopY, RightX, BottomY, LeftX: LongInt); @@ -293,16 +313,6 @@ DrawFromRect(X + r.x, Y + r.y, @r, SpritesData[Sprite].Texture) end; -procedure DrawSprite2(Sprite: TSprite; X, Y, FrameX, FrameY: LongInt); -var r: TSDL_Rect; -begin - r.x:= FrameX * SpritesData[Sprite].Width; - r.w:= SpritesData[Sprite].Width; - r.y:= FrameY * SpritesData[Sprite].Height; - r.h:= SpritesData[Sprite].Height; - DrawFromRect(X, Y, @r, SpritesData[Sprite].Texture) -end; - procedure DrawCentered(X, Top: LongInt; Source: PTexture); var scale: GLfloat; begin @@ -495,28 +505,28 @@ procedure Tint(r, g, b, a: Byte); inline; var nc, tw: Longword; begin -nc:= (a shl 24) or (b shl 16) or (g shl 8) or r; + nc:= (a shl 24) or (b shl 16) or (g shl 8) or r; -if nc = lastTint then - exit; + if nc = lastTint then + exit; -if GrayScale then - begin - tw:= round(r * RGB_LUMINANCE_RED + g * RGB_LUMINANCE_GREEN + b * RGB_LUMINANCE_BLUE); - if tw > 255 then - tw:= 255; - r:= tw; - g:= tw; - b:= tw - end; + if GrayScale then + begin + tw:= round(r * RGB_LUMINANCE_RED + g * RGB_LUMINANCE_GREEN + b * RGB_LUMINANCE_BLUE); + if tw > 255 then + tw:= 255; + r:= tw; + g:= tw; + b:= tw + end; -glColor4ub(r, g, b, a); -lastTint:= nc; + glColor4ub(r, g, b, a); + lastTint:= nc; end; procedure Tint(c: Longword); inline; begin -Tint(((c shr 24) and $FF), ((c shr 16) and $FF), (c shr 8) and $FF, (c and $FF)) + Tint(((c shr 24) and $FF), ((c shr 16) and $FF), (c shr 8) and $FF, (c and $FF)) end; end. diff -r caa41003f42c -r 409dd3851309 hedgewars/uRenderUtils.pas --- a/hedgewars/uRenderUtils.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uRenderUtils.pas Wed May 02 08:07:17 2012 +0100 @@ -24,14 +24,19 @@ uses SDLh, uTypes; procedure flipSurface(Surface: PSDL_Surface; Vertical: Boolean); + procedure copyRotatedSurface(src, dest: PSDL_Surface); // this is necessary since width/height are read only in SDL -procedure copyToXY(src, dest: PSDL_Surface; destX, destY: LongInt); +procedure copyToXY(src, dest: PSDL_Surface; destX, destY: LongInt); inline; procedure copyToXY(src, dest: PSDL_Surface; srcX, srcY, srcW, srcH, destX, destY: LongInt); -procedure DrawSprite2Surf(sprite: TSprite; dest: PSDL_Surface; x,y: LongInt; frame: LongInt = 0); + +procedure DrawSprite2Surf(sprite: TSprite; dest: PSDL_Surface; x,y: LongInt); inline; +procedure DrawSprite2Surf(sprite: TSprite; dest: PSDL_Surface; x,y: LongInt; frame: LongInt); procedure DrawLine2Surf(dest: PSDL_Surface; x0,y0,x1,y1:LongInt; r,g,b: byte); -function RenderStringTex(s: ansistring; Color: Longword; font: THWFont; maxLength: LongWord = 0): PTexture; +procedure DrawRoundRect(rect: PSDL_Rect; BorderColor, FillColor: Longword; Surface: PSDL_Surface; Clear: boolean); + +function RenderStringTex(s: ansistring; Color: Longword; font: THWFont): PTexture; +function RenderStringTex(s: ansistring; Color: Longword; font: THWFont; maxLength: LongWord): PTexture; function RenderSpeechBubbleTex(s: ansistring; SpeechType: Longword; font: THWFont): PTexture; -procedure DrawRoundRect(rect: PSDL_Rect; BorderColor, FillColor: Longword; Surface: PSDL_Surface; Clear: boolean); implementation uses uUtils, uVariables, uConsts, uTextures, sysutils, uDebug; @@ -65,8 +70,13 @@ r.h:= rect^.h - 4; SDL_FillRect(Surface, @r, FillColor) end; +(* +function WriteInRoundRect(Surface: PSDL_Surface; X, Y: LongInt; Color: LongWord; Font: THWFont; s: ansistring): TSDL_Rect; +begin + WriteInRoundRect:= WriteInRoundRect(Surface, X, Y, Color, Font, s, 0); +end;*) -function WriteInRoundRect(Surface: PSDL_Surface; X, Y: LongInt; Color: LongWord; Font: THWFont; s: ansistring; maxLength: LongWord = 0): TSDL_Rect; +function WriteInRoundRect(Surface: PSDL_Surface; X, Y: LongInt; Color: LongWord; Font: THWFont; s: ansistring; maxLength: LongWord): TSDL_Rect; var w, h: LongInt; tmpsurf: PSDL_Surface; clr: TSDL_Color; @@ -128,9 +138,9 @@ end; end; -procedure copyToXY(src, dest: PSDL_Surface; destX, destY: LongInt); +procedure copyToXY(src, dest: PSDL_Surface; destX, destY: LongInt); inline; begin - copyToXY(src, dest, 0,0,src^.w, src^.h, destX, destY); + copyToXY(src, dest, 0, 0, src^.w, src^.h, destX, destY); end; procedure copyToXY(src, dest: PSDL_Surface; srcX, srcY, srcW, srcH, destX, destY: LongInt); @@ -161,6 +171,11 @@ end; end; +procedure DrawSprite2Surf(sprite: TSprite; dest: PSDL_Surface; x,y: LongInt); inline; +begin + DrawSprite2Surf(sprite, dest, x, y, 0); +end; + procedure DrawSprite2Surf(sprite: TSprite; dest: PSDL_Surface; x,y,frame: LongInt); var numFramesFirstCol, row, col: LongInt; begin @@ -234,7 +249,12 @@ end; end; -function RenderStringTex(s: ansistring; Color: Longword; font: THWFont; maxLength: LongWord = 0): PTexture; +function RenderStringTex(s: ansistring; Color: Longword; font: THWFont): PTexture; +begin + RenderStringTex:= RenderStringTex(s, Color, font, 0); +end; + +function RenderStringTex(s: ansistring; Color: Longword; font: THWFont; maxLength: LongWord): PTexture; var w, h: LongInt; finalSurface: PSDL_Surface; begin diff -r caa41003f42c -r 409dd3851309 hedgewars/uStore.pas --- a/hedgewars/uStore.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uStore.pas Wed May 02 08:07:17 2012 +0100 @@ -26,8 +26,8 @@ procedure initModule; procedure freeModule; -procedure StoreLoad(reload: boolean = false); -procedure StoreRelease(reload: boolean = false); +procedure StoreLoad(reload: boolean); +procedure StoreRelease(reload: boolean); procedure RenderHealth(var Hedgehog: THedgehog); procedure AddProgress; procedure FinishProgress; diff -r caa41003f42c -r 409dd3851309 hedgewars/uVisualGears.pas --- a/hedgewars/uVisualGears.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uVisualGears.pas Wed May 02 08:07:17 2012 +0100 @@ -34,17 +34,23 @@ procedure initModule; procedure freeModule; -function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord = 0; Critical: Boolean = false): PVisualGear; +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; inline; +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; inline; +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; + procedure ProcessVisualGears(Steps: Longword); -procedure KickFlakes(Radius, X, Y: LongInt); procedure DrawVisualGears(Layer: LongWord); procedure DeleteVisualGear(Gear: PVisualGear); function VisualGearByUID(uid : Longword) : PVisualGear; + procedure AddClouds; -procedure ChangeToSDClouds; procedure AddFlakes; +procedure AddDamageTag(X, Y, Damage, Color: LongWord); + +procedure ChangeToSDClouds; procedure ChangeToSDFlakes; -procedure AddDamageTag(X, Y, Damage, Color: LongWord); + +procedure KickFlakes(Radius, X, Y: LongInt); implementation uses uSound, uMobile, uVariables, uTextures, uRender, Math, uRenderUtils, uStore, uUtils; @@ -112,7 +118,17 @@ @doStepStraightShot ); -function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord = 0; Critical: Boolean = false): PVisualGear; +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; inline; +begin + AddVisualGear:= AddVisualGear(X, Y, Kind, 0, false); +end; + +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; inline; +begin + AddVisualGear:= AddVisualGear(X, Y, Kind, State, false); +end; + +function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; var gear: PVisualGear; t: Longword; sp: real; diff -r caa41003f42c -r 409dd3851309 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Tue May 01 17:33:28 2012 -0400 +++ b/hedgewars/uWorld.pas Wed May 02 08:07:17 2012 +0100 @@ -36,7 +36,7 @@ procedure ShakeCamera(amount: LongInt); procedure InitCameraBorders; procedure InitTouchInterface; -procedure SetUtilityWidgetState(ammoType: TAmmoType = amNothing); +procedure SetUtilityWidgetState(ammoType: TAmmoType); procedure animateWidget(widget: POnScreenWidget; fade, showWidget: boolean); procedure MoveCamera; procedure onFocusStateChanged;