stratagus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Stratagus-CVS] stratagus/src/missile missile.c


From: Jimmy Salmon
Subject: [Stratagus-CVS] stratagus/src/missile missile.c
Date: Sat, 27 Sep 2003 00:00:22 -0400

CVSROOT:        /cvsroot/stratagus
Module name:    stratagus
Branch:         
Changes by:     Jimmy Salmon <address@hidden>   03/09/27 00:00:22

Modified files:
        src/missile    : missile.c 

Log message:
        Cleanup

Patches:
Index: stratagus/src/missile/missile.c
diff -u stratagus/src/missile/missile.c:1.81 
stratagus/src/missile/missile.c:1.82
--- stratagus/src/missile/missile.c:1.81        Fri Sep 26 16:32:00 2003
+++ stratagus/src/missile/missile.c     Sat Sep 27 00:00:20 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: missile.c,v 1.81 2003/09/26 20:32:00 jsalmon3 Exp $
+//     $Id: missile.c,v 1.82 2003/09/27 04:00:20 jsalmon3 Exp $
 
 //@{
 
@@ -104,9 +104,9 @@
     /// missile-type for the explosion missile
 global MissileType* MissileTypeExplosion;
 
-IfDebug(
+#ifdef DEBUG
 global int NoWarningMissileType;               /// quiet ident lookup.
-);
+#endif
 
 local Missile* GlobalMissiles[MAX_MISSILES];   /// all global missiles on map
 local int NumGlobalMissiles;                   /// currently used missiles
@@ -122,11 +122,11 @@
 #else
 
     /// lookup table for missile names
-local hashtable(MissileType*,61) MissileTypeHash;
+local hashtable(MissileType*, 61) MissileTypeHash;
 
 #endif
 
-global BurningBuildingFrame *BurningBuildingFrames;  /// Burning building 
frames
+global BurningBuildingFrame* BurningBuildingFrames;  /// Burning building 
frames
 
 /*----------------------------------------------------------------------------
 --     Functions
@@ -140,20 +140,19 @@
     int i;
     const char* file;
 
-    for( i=0; MissileTypes[i].OType; ++i ) {
-       if( (file=MissileTypes[i].File) ) {
+    for (i = 0; MissileTypes[i].OType; ++i) {
+       if ((file = MissileTypes[i].File)) {
            char* buf;
 
-           buf=alloca(strlen(file)+9+1);
-           file=strcat(strcpy(buf,"graphics/"),file);
-           ShowLoadProgress("\tMissile %s\n",file);
-           MissileTypes[i].Sprite=LoadSprite(
-                   file,MissileTypes[i].Width,MissileTypes[i].Height);
+           buf = alloca(strlen(file) + 9 + 1);
+           file = strcat(strcpy(buf, "graphics/"), file);
+           ShowLoadProgress("\tMissile %s\n", file);
+           MissileTypes[i].Sprite = LoadSprite(
+                   file, MissileTypes[i].Width, MissileTypes[i].Height);
 
            // Correct the number of frames in graphic
-           DebugCheck( MissileTypes[i].Sprite->NumFrames
-                       <MissileTypes[i].SpriteFrames );
-           MissileTypes[i].Sprite->NumFrames=MissileTypes[i].SpriteFrames;
+           DebugCheck(MissileTypes[i].Sprite->NumFrames < 
MissileTypes[i].SpriteFrames);
+           MissileTypes[i].Sprite->NumFrames = MissileTypes[i].SpriteFrames;
            // FIXME: Don't use NumFrames as number of frames.
        }
     }
@@ -170,17 +169,16 @@
 {
     MissileType* const* mtype;
 
-    mtype=(MissileType**)hash_find(MissileTypeHash,(char*)ident);
-
-    if( mtype ) {
+    mtype = (MissileType**)hash_find(MissileTypeHash, (char*)ident);
+    if (mtype) {
        return *mtype;
     }
 
-    IfDebug(
-       if( !NoWarningMissileType ) {
-           DebugLevel0Fn("Missile %s not found\n" _C_ ident);
-       }
-    );
+#ifdef DEBUG
+    if (!NoWarningMissileType) {
+       DebugLevel0Fn("Missile %s not found\n" _C_ ident);
+    }
+#endif
     return NULL;
 }
 
@@ -202,29 +200,28 @@
     //
     // Allocate new memory. (+2 for start end empty last entry.)
     //
-    mtype=calloc(NumMissileTypes+2,sizeof(MissileType));
-    if( !mtype ) {
-       fprintf(stderr,"Out of memory\n");
+    mtype = calloc(NumMissileTypes + 2, sizeof(MissileType));
+    if (!mtype) {
+       fprintf(stderr, "Out of memory\n");
        ExitFatal(-1);
     }
-    memcpy(mtype,MissileTypes,sizeof(MissileType)*NumMissileTypes);
-    if( MissileTypes ) {
+    memcpy(mtype, MissileTypes, sizeof(MissileType) * NumMissileTypes);
+    if (MissileTypes) {
        free(MissileTypes);
     }
-    MissileTypes=mtype;
-    mtype=MissileTypes+NumMissileTypes++;
-    mtype->OType=MissileTypeType;
-    mtype->Ident=ident;
+    MissileTypes = mtype;
+    mtype = MissileTypes + NumMissileTypes++;
+    mtype->OType = MissileTypeType;
+    mtype->Ident = ident;
     //
     // Rehash.
     //
-    for( i=0; i<NumMissileTypes; ++i ) {
-       *(MissileType**)hash_add(MissileTypeHash,MissileTypes[i].Ident)
-               =&MissileTypes[i];
+    for (i = 0; i < NumMissileTypes; ++i) {
+       *(MissileType**)hash_add(MissileTypeHash,MissileTypes[i].Ident) = 
&MissileTypes[i];
     }
 
-    mtype->CanHitOwner=0;              // defaults
-    mtype->FriendlyFire=0;
+    mtype->CanHitOwner = 0;            // defaults
+    mtype->FriendlyFire = 0;
 
     return mtype;
 }
@@ -237,15 +234,15 @@
     Missile* missile;
 
     // Check maximum missiles!
-    if( NumGlobalMissiles==MAX_MISSILES ) {
-       fprintf(stderr,"Maximum of global missiles reached\n");
+    if (NumGlobalMissiles == MAX_MISSILES) {
+       fprintf(stderr, "Maximum of global missiles reached\n");
        abort();
        return NULL;
     }
 
-    missile=calloc(1,sizeof(Missile));
-    missile->MissileSlot=GlobalMissiles+NumGlobalMissiles;
-    GlobalMissiles[NumGlobalMissiles++]=missile;
+    missile = calloc(1, sizeof(Missile));
+    missile->MissileSlot = GlobalMissiles + NumGlobalMissiles;
+    GlobalMissiles[NumGlobalMissiles++] = missile;
 
     return missile;
 }
@@ -258,16 +255,16 @@
     Missile* missile;
 
     // Check maximum missiles!
-    if( NumLocalMissiles==MAX_MISSILES*8 ) {
-       fprintf(stderr,"Maximum of local missiles reached\n");
+    if (NumLocalMissiles == MAX_MISSILES * 8) {
+       fprintf(stderr, "Maximum of local missiles reached\n");
        abort();
        return NULL;
     }
 
-    missile=calloc(1,sizeof(Missile));
-    missile->MissileSlot=LocalMissiles+NumLocalMissiles;
-    LocalMissiles[NumLocalMissiles++]=missile;
-    missile->Local=1;
+    missile = calloc(1, sizeof(Missile));
+    missile->MissileSlot = LocalMissiles + NumLocalMissiles;
+    LocalMissiles[NumLocalMissiles++] = missile;
+    missile->Local = 1;
 
     return missile;
 }
@@ -322,15 +319,15 @@
 {
     Missile* missile;
 
-    DebugLevel3Fn("type %d(%s) at %d,%d to %d,%d\n"
-           _C_ mtype-MissileTypes _C_ mtype->Ident _C_ sx _C_ sy _C_ dx _C_ 
dy);
+    DebugLevel3Fn("type %d(%s) at %d,%d to %d,%d\n" _C_
+       mtype - MissileTypes _C_ mtype->Ident _C_ sx _C_ sy _C_ dx _C_ dy);
 
 
-    if( !(missile=NewGlobalMissile()) ) {
+    if (!(missile = NewGlobalMissile())) {
        return missile;
     }
 
-    return InitMissile(missile,mtype,sx,sy,dx,dy);
+    return InitMissile(missile, mtype, sx, sy, dx, dy);
 }
 
 /**
@@ -344,18 +341,18 @@
 **
 **     @return         created missile.
 */
-global Missile* MakeLocalMissile(MissileType* mtype,int sx,int sy,int dx,int 
dy)
+global Missile* MakeLocalMissile(MissileType* mtype, int sx, int sy, int dx, 
int dy)
 {
     Missile* missile;
 
-    DebugLevel3Fn("type %d(%s) at %d,%d to %d,%d\n"
-           _C_ mtype-MissileTypes _C_ mtype->Ident _C_ sx _C_ sy _C_ dx _C_ 
dy);
+    DebugLevel3Fn("type %d(%s) at %d,%d to %d,%d\n" _C_
+       mtype - MissileTypes _C_ mtype->Ident _C_ sx _C_ sy _C_ dx _C_ dy);
 
-    if( !(missile=NewLocalMissile()) ) {
+    if (!(missile = NewLocalMissile())) {
        return missile;
     }
 
-    return InitMissile(missile,mtype,sx,sy,dx,dy);
+    return InitMissile(missile, mtype, sx, sy, dx, dy);
 }
 
 /**
@@ -371,26 +368,26 @@
     //
     // Release all unit references.
     //
-    if( (unit=missile->SourceUnit) ) {
-       RefsDebugCheck( !unit->Refs );
-       if( unit->Destroyed ) {
-           if( !--unit->Refs ) {
+    if ((unit = missile->SourceUnit)) {
+       RefsDebugCheck(!unit->Refs);
+       if (unit->Destroyed) {
+           if (!--unit->Refs) {
                ReleaseUnit(unit);
            }
        } else {
            --unit->Refs;
-           RefsDebugCheck( !unit->Refs );
+           RefsDebugCheck(!unit->Refs);
        }
     }
-    if( (unit=missile->TargetUnit) ) {
-       RefsDebugCheck( !unit->Refs );
-       if( unit->Destroyed ) {
-           if( !--unit->Refs ) {
+    if((unit = missile->TargetUnit)) {
+       RefsDebugCheck(!unit->Refs);
+       if (unit->Destroyed) {
+           if (!--unit->Refs) {
                ReleaseUnit(unit);
            }
        } else {
            --unit->Refs;
-           RefsDebugCheck( !unit->Refs );
+           RefsDebugCheck(!unit->Refs);
        }
     }
 
@@ -398,20 +395,20 @@
     // Free the missile memory
     //         Note: removing the last missile works.
     //
-    if( missile->Local ) {
-       DebugCheck( *missile->MissileSlot!=missile );
+    if (missile->Local) {
+       DebugCheck(*missile->MissileSlot != missile);
        temp=LocalMissiles[--NumLocalMissiles];
-       DebugCheck( *temp->MissileSlot!=temp );
-       temp->MissileSlot=missile->MissileSlot;
-       *missile->MissileSlot=temp;
-       LocalMissiles[NumLocalMissiles]=NULL;
+       DebugCheck(*temp->MissileSlot != temp);
+       temp->MissileSlot = missile->MissileSlot;
+       *missile->MissileSlot = temp;
+       LocalMissiles[NumLocalMissiles] = NULL;
     } else {
-       DebugCheck( *missile->MissileSlot!=missile );
-       temp=GlobalMissiles[--NumGlobalMissiles];
-       DebugCheck( *temp->MissileSlot!=temp );
-       temp->MissileSlot=missile->MissileSlot;
-       *missile->MissileSlot=temp;
-       GlobalMissiles[NumGlobalMissiles]=NULL;
+       DebugCheck(*missile->MissileSlot != missile);
+       temp = GlobalMissiles[--NumGlobalMissiles];
+       DebugCheck(*temp->MissileSlot != temp);
+       temp->MissileSlot = missile->MissileSlot;
+       *missile->MissileSlot = temp;
+       GlobalMissiles[NumGlobalMissiles] = NULL;
     }
 
     free(missile);
@@ -438,13 +435,13 @@
 **     @return                 damage produces on goal.
 */
 local int CalculateDamageStats(const UnitStats* attacker_stats,
-       const UnitStats* goal_stats, int bloodlust,int xp)
+    const UnitStats* goal_stats, int bloodlust, int xp)
 {
     int damage;
     int basic_damage;
     int piercing_damage;
 
-    basic_damage = attacker_stats->BasicDamage + isqrt(xp/100)*XpDamage;
+    basic_damage = attacker_stats->BasicDamage + isqrt(xp / 100) * XpDamage;
     piercing_damage = attacker_stats->PiercingDamage;
     if (bloodlust) {
        basic_damage *= 2;
@@ -481,9 +478,9 @@
 **     @return                 damage produces on goal.
 */
 local int CalculateDamage(const UnitStats* attacker_stats,
-    const Unit* goal,int bloodlust,int xp)
+    const Unit* goal, int bloodlust, int xp)
 {
-    return CalculateDamageStats(attacker_stats,goal->Stats,bloodlust,xp);
+    return CalculateDamageStats(attacker_stats, goal->Stats, bloodlust, xp);
 }
 
 /**
@@ -503,20 +500,20 @@
     //
     // Goal dead?
     //
-    goal=unit->Orders[0].Goal;
-    if( goal ) {
+    goal = unit->Orders[0].Goal;
+    if (goal) {
 
        // Better let the caller/action handle this.
 
-       if( goal->Destroyed ) {
+       if (goal->Destroyed) {
            DebugLevel0Fn("destroyed unit\n");
            return;
        }
-       if( goal->Removed ) {
+       if (goal->Removed) {
            DebugLevel3Fn("Missile-none hits removed unit!\n");
            return;
        }
-       if( !goal->HP || goal->Orders[0].Action==UnitActionDie ) {
+       if (!goal->HP || goal->Orders[0].Action == UnitActionDie) {
            DebugLevel3Fn("Missile hits dead unit!\n");
            return;
        }
@@ -528,18 +525,20 @@
     //
     // None missile hits immediately!
     //
-    if( ((MissileType*)unit->Type->Missile.Missile)->Class==MissileClassNone ) 
{
+    if (((MissileType*)unit->Type->Missile.Missile)->Class == 
MissileClassNone) {
        // No goal, take target coordinates
-       if( !goal ) {
-           dx=unit->Orders[0].X;
-           dy=unit->Orders[0].Y;
-           if( WallOnMap(dx,dy) ) {
-               if( HumanWallOnMap(dx,dy) ) {
-                   HitWall(dx,dy,CalculateDamageStats(unit->Stats,
-                           UnitTypeHumanWall->Stats,unit->Bloodlust,unit->XP));
+       if (!goal) {
+           dx = unit->Orders[0].X;
+           dy = unit->Orders[0].Y;
+           if (WallOnMap(dx, dy)) {
+               if (HumanWallOnMap(dx, dy)) {
+                   HitWall(dx, dy,
+                       CalculateDamageStats(unit->Stats,
+                           UnitTypeHumanWall->Stats, unit->Bloodlust, 
unit->XP));
                } else {
-                   HitWall(dx,dy,CalculateDamageStats(unit->Stats,
-                           UnitTypeOrcWall->Stats,unit->Bloodlust,unit->XP));
+                   HitWall(dx, dy,
+                       CalculateDamageStats(unit->Stats,
+                           UnitTypeOrcWall->Stats, unit->Bloodlust, unit->XP));
                }
                return;
            }
@@ -548,50 +547,51 @@
            return;
        }
 
-       
HitUnit(unit,goal,CalculateDamage(unit->Stats,goal,unit->Bloodlust,unit->XP));
+       HitUnit(unit, goal,
+           CalculateDamage(unit->Stats, goal, unit->Bloodlust, unit->XP));
 
        return;
     }
 
-    x=unit->X*TileSizeX+TileSizeX/2;   // missile starts in tile middle
-    y=unit->Y*TileSizeY+TileSizeY/2;
+    x = unit->X * TileSizeX + TileSizeX / 2;   // missile starts in tile middle
+    y = unit->Y * TileSizeY + TileSizeY / 2;
 
-    if( goal ) {
-       DebugCheck( !goal->Type );      // Target invalid?
+    if (goal) {
+       DebugCheck(!goal->Type);        // Target invalid?
        // Fire to nearest point of the unit!
-       NearestOfUnit(goal,unit->X,unit->Y,&dx,&dy);
+       NearestOfUnit(goal, unit->X, unit->Y, &dx, &dy);
        DebugLevel3Fn("Fire to unit at %d,%d\n" _C_ dx _C_ dy);
 
        //
        //      Moved out of attack range?
        //
-       if( MapDistanceBetweenUnits(unit,goal)<unit->Type->MinAttackRange ) {
-           DebugLevel0Fn("Missile target too near %d,%d\n"
-               _C_ MapDistanceBetweenUnits(unit,goal) _C_ 
unit->Type->MinAttackRange);
+       if (MapDistanceBetweenUnits(unit, goal) < unit->Type->MinAttackRange) {
+           DebugLevel0Fn("Missile target too near %d,%d\n" _C_
+               MapDistanceBetweenUnits(unit,goal) _C_ 
unit->Type->MinAttackRange);
            // FIXME: do something other?
            return;
        }
 
     } else {
-       dx=unit->Orders[0].X;
-       dy=unit->Orders[0].Y;
+       dx = unit->Orders[0].X;
+       dy = unit->Orders[0].Y;
        // FIXME: Can this be too near??
     }
 
     // Fire to the tile center of the destination.
-    dx=dx*TileSizeX+TileSizeX/2;
-    dy=dy*TileSizeY+TileSizeY/2;
-    missile=MakeMissile(unit->Type->Missile.Missile,x,y,dx,dy);
+    dx = dx * TileSizeX + TileSizeX / 2;
+    dy = dy * TileSizeY + TileSizeY / 2;
+    missile = MakeMissile(unit->Type->Missile.Missile, x, y, dx, dy);
     //
     // Damage of missile
     //
-    if( goal ) {
-       missile->TargetUnit=goal;
-       RefsDebugCheck( !goal->Refs || goal->Destroyed );
+    if (goal) {
+       missile->TargetUnit = goal;
+       RefsDebugCheck(!goal->Refs || goal->Destroyed);
        goal->Refs++;
     }
-    missile->SourceUnit=unit;
-    RefsDebugCheck( !unit->Refs || unit->Destroyed );
+    missile->SourceUnit = unit;
+    RefsDebugCheck(!unit->Refs || unit->Destroyed);
     unit->Refs++;
 }
 
@@ -605,13 +605,13 @@
 **     @param ey       OUT: Pointer to Y of bottom right corner in map tiles.
 **      @return         sx,sy,ex,ey defining area in Map
 */
-local void GetMissileMapArea( const Missile* missile,
-                             int* sx, int* sy, int* ex, int* ey )
+local void GetMissileMapArea(const Missile* missile, int* sx, int* sy,
+    int* ex, int* ey)
 {
-    *sx=missile->X/TileSizeX;
-    *sy=missile->Y/TileSizeY;
-    *ex=(missile->X+missile->Type->Width)/TileSizeX;
-    *ey=(missile->Y+missile->Type->Height)/TileSizeY;
+    *sx = missile->X / TileSizeX;
+    *sy = missile->Y / TileSizeY;
+    *ex = (missile->X + missile->Type->Width) / TileSizeX;
+    *ey = (missile->Y + missile->Type->Height) / TileSizeY;
 }
 
 /**
@@ -636,8 +636,8 @@
     DebugLevel3Fn("Missile bounding box %d %d %d %d\n" _C_ min_x _C_ max_x _C_
        min_y _C_ max_y);
 
-    if( !IsMapFieldVisible(ThisPlayer,(missile->X-TileSizeX/2)/TileSizeX,
-               (missile->Y-TileSizeY/2)/TileSizeY) && !ReplayRevealMap) {
+    if (!IsMapFieldVisible(ThisPlayer, (missile->X - TileSizeX / 2) / 
TileSizeX,
+           (missile->Y - TileSizeY / 2) / TileSizeY) && !ReplayRevealMap) {
        return 0;
     }
 
@@ -669,13 +669,13 @@
 **     @param x        Screen pixel X position
 **     @param y        Screen pixel Y position
 */
-global void DrawMissile(const MissileType* mtype,int frame,int x,int y)
+global void DrawMissile(const MissileType* mtype, int frame, int x, int y)
 {
     // FIXME: This is a hack for mirrored sprites
-    if( frame<0 ) {
-       VideoDrawClipX(mtype->Sprite,-frame,x,y);
+    if (frame < 0) {
+       VideoDrawClipX(mtype->Sprite, -frame, x, y);
     } else {
-       VideoDrawClip(mtype->Sprite,frame,x,y);
+       VideoDrawClip(mtype->Sprite, frame, x, y);
     }
 }
 
@@ -690,7 +690,7 @@
     c1 = *(Missile**)v1;
     c2 = *(Missile**)v2;
 
-    if( c1->Type->DrawLevel == c2->Type->DrawLevel ) {
+    if (c1->Type->DrawLevel == c2->Type->DrawLevel) {
        return c1->MissileSlot < c2->MissileSlot ? -1 : 1;
     } else {
        return c1->Type->DrawLevel <= c2->Type->DrawLevel ? -1 : 1;
@@ -713,29 +713,29 @@
     //
     // Loop through global missiles, than through locals.
     //
-    flag=1;
-    missiles=GlobalMissiles;
-    missiles_end=missiles+NumGlobalMissiles;
-    nmissiles=0;
+    flag = 1;
+    missiles = GlobalMissiles;
+    missiles_end = missiles + NumGlobalMissiles;
+    nmissiles = 0;
     do {
-       for( ; missiles<missiles_end; ++missiles ) {
-           missile=*missiles;
-           if( missile->Type->Class==MissileClassCustom ) {
+       for (; missiles < missiles_end; ++missiles) {
+           missile = *missiles;
+           if (missile->Type->Class == MissileClassCustom) {
                continue;       // custom are handled by Controller() only
            }
-           if( missile->Delay ) {
+           if (missile->Delay) {
                continue;       // delayed aren't shown
            }
            // Draw only visible missiles
-           if( !flag || MissileVisibleInViewport(vp,missile) ) {
+           if (!flag || MissileVisibleInViewport(vp, missile)) {
                table[nmissiles++] = missile;
            }
        }
-       missiles=LocalMissiles;
-       missiles_end=missiles+NumLocalMissiles;
-    } while( flag-- );
-    if( nmissiles ) {
-       qsort((void *)table,nmissiles,sizeof(Missile*),MissileDrawLevelCompare);
+       missiles = LocalMissiles;
+       missiles_end = missiles + NumLocalMissiles;
+    } while (flag--);
+    if (nmissiles) {
+       qsort((void *)table, nmissiles, sizeof(Missile*), 
MissileDrawLevelCompare);
     }
 
     return nmissiles;
@@ -748,24 +748,24 @@
 **     @param dx       Delta in x.
 **     @param dy       Delta in y.
 */
-local void MissileNewHeadingFromXY(Missile* missile,int dx,int dy)
+local void MissileNewHeadingFromXY(Missile* missile, int dx, int dy)
 {
     int dir;
     int nextdir;
 
-    if( missile->SpriteFrame<0 ) {
-       missile->SpriteFrame=-missile->SpriteFrame;
+    if (missile->SpriteFrame < 0) {
+       missile->SpriteFrame = -missile->SpriteFrame;
     }
-    missile->SpriteFrame/=missile->Type->NumDirections/2+1;
-    missile->SpriteFrame*=missile->Type->NumDirections/2+1;
+    missile->SpriteFrame /= missile->Type->NumDirections / 2 + 1;
+    missile->SpriteFrame *= missile->Type->NumDirections / 2 + 1;
 
-    nextdir=256/missile->Type->NumDirections;
-    dir=((DirectionToHeading(dx,dy)+nextdir/2)&0xFF)/nextdir;
-    if( dir<=LookingS/nextdir ) {      // north->east->south
-       missile->SpriteFrame+=dir;
+    nextdir = 256 / missile->Type->NumDirections;
+    dir = ((DirectionToHeading(dx, dy) + nextdir / 2) & 0xFF) / nextdir;
+    if (dir <= LookingS / nextdir ) {  // north->east->south
+       missile->SpriteFrame += dir;
     } else {
-       missile->SpriteFrame+=256/nextdir-dir;
-       missile->SpriteFrame=-missile->SpriteFrame;
+       missile->SpriteFrame += 256 / nextdir - dir;
+       missile->SpriteFrame = -missile->SpriteFrame;
     }
 }
 
@@ -782,124 +782,124 @@
     int ystep;
     int i;
 
-    if( !(missile->State&1) ) {
+    if (!(missile->State & 1)) {
        // initialize
-       dy=missile->DY-missile->Y;
-       ystep=1;
-       if( dy<0 ) {
-           dy=-dy;
-           ystep=-1;
-       }
-       dx=missile->DX-missile->X;
-       xstep=1;
-       if( dx<0 ) {
-           dx=-dx;
-           xstep=-1;
+       dy = missile->DY - missile->Y;
+       ystep = 1;
+       if (dy < 0) {
+           dy = -dy;
+           ystep = -1;
+       }
+       dx = missile->DX - missile->X;
+       xstep = 1;
+       if (dx < 0) {
+           dx = -dx;
+           xstep = -1;
        }
 
        // FIXME: could be better written
-       if( missile->Type->Class == MissileClassWhirlwind
-               || missile->Type->Class == MissileClassFlameShield ) {
+       if (missile->Type->Class == MissileClassWhirlwind ||
+               missile->Type->Class == MissileClassFlameShield) {
            // must not call MissileNewHeading nor frame change
-       } else if( missile->Type->Class == MissileClassBlizzard ) {
+       } else if (missile->Type->Class == MissileClassBlizzard) {
            missile->SpriteFrame = 0;
-       } else if( missile->Type->Class == MissileClassPointToPoint3Bounces ) {
-           missile->DX-=xstep*TileSizeX/2;
-           missile->DY-=ystep*TileSizeY/2;
+       } else if (missile->Type->Class == MissileClassPointToPoint3Bounces) {
+           missile->DX -= xstep * TileSizeX / 2;
+           missile->DY -= ystep * TileSizeY / 2;
        } else {
-           MissileNewHeadingFromXY(missile,dx*xstep,dy*ystep);
+           MissileNewHeadingFromXY(missile, dx * xstep, dy * ystep);
        }
 
-       if( dy==0 ) {           // horizontal line
-           if( dx==0 ) {
+       if (dy == 0) {          // horizontal line
+           if (dx == 0) {
                return 1;
            }
-       } else if( dx==0 ) {    // vertical line
-       } else if( dx<dy ) {    // step in vertical direction
-           missile->D=dy-1;
-           dx+=dx;
-           dy+=dy;
-       } else if( dx>dy ) {    // step in horizontal direction
-           missile->D=dx-1;
-           dx+=dx;
-           dy+=dy;
-       }
-
-       missile->Dx=dx;
-       missile->Dy=dy;
-       missile->Xstep=xstep;
-       missile->Ystep=ystep;
-       ++missile->State;
-       DebugLevel3Fn("Init: %d,%d, %d,%d, =%d\n"
-               _C_ dx _C_ dy _C_ xstep _C_ ystep _C_ missile->D);
+       } else if (dx == 0) {   // vertical line
+       } else if (dx < dy) {   // step in vertical direction
+           missile->D = dy - 1;
+           dx += dx;
+           dy += dy;
+       } else if (dx > dy) {   // step in horizontal direction
+           missile->D = dx - 1;
+           dx += dx;
+           dy += dy;
+       }
+
+       missile->Dx = dx;
+       missile->Dy = dy;
+       missile->Xstep = xstep;
+       missile->Ystep = ystep;
+       missile->State++;
+       DebugLevel3Fn("Init: %d,%d, %d,%d, =%d\n" _C_ dx _C_ dy _C_
+           xstep _C_ ystep _C_ missile->D);
        return 0;
     } else {
        // on the way
-       dx=missile->Dx;
-       dy=missile->Dy;
-       xstep=missile->Xstep;
-       ystep=missile->Ystep;
+       dx = missile->Dx;
+       dy = missile->Dy;
+       xstep = missile->Xstep;
+       ystep = missile->Ystep;
     }
 
     //
     // Move missile
     //
-    if( dy==0 ) {              // horizontal line
-       for( i=0; i<missile->Type->Speed; ++i ) {
-           if( missile->X==missile->DX ) {
+    if (dy == 0) {             // horizontal line
+       for (i = 0; i < missile->Type->Speed; ++i) {
+           if (missile->X == missile->DX) {
                return 1;
            }
-           missile->X+=xstep;
+           missile->X += xstep;
        }
        return 0;
     }
 
-    if( dx==0 ) {              // vertical line
-       for( i=0; i<missile->Type->Speed; ++i ) {
-           if( missile->Y==missile->DY ) {
+    if (dx == 0) {             // vertical line
+       for (i = 0; i < missile->Type->Speed; ++i) {
+           if (missile->Y == missile->DY) {
                return 1;
            }
-           missile->Y+=ystep;
+           missile->Y += ystep;
        }
        return 0;
     }
 
-    if( dx<dy ) {              // step in vertical direction
-       for( i=0; i<missile->Type->Speed; ++i ) {
-           if( missile->Y==missile->DY ) {
+    if (dx < dy) {             // step in vertical direction
+       for (i = 0; i < missile->Type->Speed; ++i) {
+           if (missile->Y == missile->DY) {
                return 1;
            }
-           missile->Y+=ystep;
-           missile->D-=dx;
-           if( missile->D<0 ) {
-               missile->D+=dy;
-               missile->X+=xstep;
+           missile->Y += ystep;
+           missile->D -= dx;
+           if (missile->D < 0) {
+               missile->D += dy;
+               missile->X += xstep;
            }
        }
        return 0;
     }
 
-    if( dx>dy ) {              // step in horizontal direction
-       for( i=0; i<missile->Type->Speed; ++i ) {
-           if( missile->X==missile->DX ) {
+    if (dx > dy) {             // step in horizontal direction
+       for (i = 0; i < missile->Type->Speed; ++i) {
+           if (missile->X == missile->DX) {
                return 1;
            }
-           missile->X+=xstep;
-           missile->D-=dy;
-           if( missile->D<0 ) {
-               missile->D+=dx;
-               missile->Y+=ystep;
+           missile->X += xstep;
+           missile->D -= dy;
+           if (missile->D < 0) {
+               missile->D += dx;
+               missile->Y += ystep;
            }
        }
        return 0;
     }
                                // diagonal line
-    for( i=0; i<missile->Type->Speed; ++i ) {
-       if( missile->Y==missile->DY ) {
+    for (i = 0; i < missile->Type->Speed; ++i) {
+       if (missile->Y == missile->DY) {
            return 1;
        }
-       missile->X+=xstep;
-       missile->Y+=ystep;
+       missile->X += xstep;
+       missile->Y += ystep;
     }
     return 0;
 }
@@ -938,23 +938,25 @@
 **
 **     @todo   FIXME: Support for more races.
 */
-local void MissileHitsWall(const Missile* missile,int x,int y,int splash)
+local void MissileHitsWall(const Missile* missile, int x, int y, int splash)
 {
-    if( WallOnMap(x,y) ) {
+    if (WallOnMap(x, y)) {
        DebugLevel3Fn("Missile on wall?\n");
-       if( HumanWallOnMap(x,y) ) {
-           if ( missile->Damage ) {    // direct damage, spells mostly
-               HitWall(x,y,missile->Damage/splash);
+       if (HumanWallOnMap(x, y)) {
+           if (missile->Damage) {      // direct damage, spells mostly
+               HitWall(x, y, missile->Damage / splash);
            } else {
-               HitWall(x,y,CalculateDamageStats(missile->SourceUnit->Stats,
-                   UnitTypeHumanWall->Stats,0,0)/splash);
+               HitWall(x, y,
+                   CalculateDamageStats(missile->SourceUnit->Stats, 
+                       UnitTypeHumanWall->Stats, 0, 0) / splash);
            }
        } else {
-           if ( missile->Damage ) {    // direct damage, spells mostly
-               HitWall(x,y,missile->Damage/splash);
+           if (missile->Damage) {      // direct damage, spells mostly
+               HitWall(x, y, missile->Damage / splash);
            } else {
-               HitWall(x,y,CalculateDamageStats(missile->SourceUnit->Stats,
-                   UnitTypeOrcWall->Stats,0,0)/splash);
+               HitWall(x, y,
+                   CalculateDamageStats(missile->SourceUnit->Stats,
+                       UnitTypeOrcWall->Stats, 0, 0) / splash);
            }
        }
        return;
@@ -977,45 +979,45 @@
 
     // FIXME: should I move the PlayMissileSound to here?
 
-    if( missile->Type->ImpactSound.Sound ) {
-       PlayMissileSound(missile,missile->Type->ImpactSound.Sound);
+    if (missile->Type->ImpactSound.Sound) {
+       PlayMissileSound(missile, missile->Type->ImpactSound.Sound);
     }
 
-    x=missile->X+missile->Type->Width/2;
-    y=missile->Y+missile->Type->Height/2;
+    x = missile->X + missile->Type->Width / 2;
+    y = missile->Y + missile->Type->Height / 2;
 
     //
     // The impact generates a new missile.
     //
-    if( missile->Type->ImpactMissile ) {
+    if (missile->Type->ImpactMissile) {
        Missile* mis;
 
-       mis = MakeMissile(missile->Type->ImpactMissile,x,y,0,0);
+       mis = MakeMissile(missile->Type->ImpactMissile, x, y, 0, 0);
        // Impact missiles didn't generate any damage now.
 #if 0
        mis->Damage = missile->Damage; // direct damage, spells mostly
        mis->SourceUnit = missile->SourceUnit;
        // FIXME: should copy target also?
-       if( mis->SourceUnit ) {
+       if (mis->SourceUnit) {
            // RefsDebugCheck( mis->SourceUnit->Destroyed );
-           if( mis->SourceUnit->Destroyed ) {
+           if (mis->SourceUnit->Destroyed) {
                DebugLevel0Fn("Referencing a destroyed unit, I think it is good 
here\n");
            }
-           RefsDebugCheck( !mis->SourceUnit->Refs );
+           RefsDebugCheck(!mis->SourceUnit->Refs);
            mis->SourceUnit->Refs++;
        }
 #endif
     }
 
-    if( !missile->SourceUnit ) {       // no owner - green-cross ...
+    if (!missile->SourceUnit) {                // no owner - green-cross ...
        DebugLevel3Fn("Missile has no owner!\n");
        return;
     }
 
-    x/=TileSizeX;
-    y/=TileSizeY;
+    x /= TileSizeX;
+    y /= TileSizeY;
 
-    if( x<0 || y<0 || x>=TheMap.Width || y>=TheMap.Height ) {
+    if (x < 0 || y < 0 || x >= TheMap.Width || y >= TheMap.Height ) {
        // FIXME: this should handled by caller?
        DebugLevel0Fn("Missile gone outside of map!\n");
        return;                         // outside the map.
@@ -1024,46 +1026,46 @@
     //
     // Choose correct goal.
     //
-    if( !missile->Type->Range ) {
-       if( missile->TargetUnit ) {
+    if (!missile->Type->Range) {
+       if (missile->TargetUnit) {
            //
            //  Missiles without range only hits the goal always.
            //
-           goal=missile->TargetUnit;
-           if( goal->Destroyed ) {                     // Destroyed
-               RefsDebugCheck( !goal->Refs );
-               if( !--goal->Refs ) {
+           goal = missile->TargetUnit;
+           if (goal->Destroyed) {                      // Destroyed
+               RefsDebugCheck(!goal->Refs);
+               if (!--goal->Refs) {
                    ReleaseUnit(goal);
                }
-               missile->TargetUnit=NoUnitP;
+               missile->TargetUnit = NoUnitP;
                return;
            }
-           MissileHitsGoal(missile,goal,1);
+           MissileHitsGoal(missile, goal, 1);
            return;
        }
-       MissileHitsWall(missile,x,y,1);
+       MissileHitsWall(missile, x, y, 1);
        return;
     }
 
     //
     // Hits all units in range.
     //
-    i=missile->Type->Range;
-    n=SelectUnits(x-i+1,y-i+1,x+i,y+i,table);
-    for( i=0; i<n; ++i ) {
+    i = missile->Type->Range;
+    n = SelectUnits(x - i + 1, y - i + 1, x + i, y + i, table);
+    for (i = 0; i < n; ++i) {
        goal=table[i];
        //
        //      Can the unit attack the this unit-type?
        //      NOTE: perhaps this should be come a property of the missile.
        //
-       if( CanTarget(missile->SourceUnit->Type,goal->Type) ) {
+       if (CanTarget(missile->SourceUnit->Type, goal->Type)) {
            // We are attacking the nearest field of the unit
-           if( x<goal->X || y<goal->Y
-                   || x>=goal->X+goal->Type->TileWidth
-                   || y>=goal->Y+goal->Type->TileHeight ) {
-               MissileHitsGoal(missile,goal,2);
+           if (x < goal->X || y < goal->Y ||
+                   x >= goal->X + goal->Type->TileWidth ||
+                   y >= goal->Y + goal->Type->TileHeight ) {
+               MissileHitsGoal(missile, goal, 2);
            } else {
-               MissileHitsGoal(missile,goal,1);
+               MissileHitsGoal(missile, goal, 1);
            }
        }
     }
@@ -1071,15 +1073,15 @@
     // Missile hits ground.
     //
     // FIXME: no bock writting it correct.
-    x-=missile->Type->Range;
-    y-=missile->Type->Range;
-    for( i=missile->Type->Range*2; --i; ) {
-       for( n=missile->Type->Range*2; --n; ) {
-           if( x+i>=0 && x+i<TheMap.Width && y+n>=0 && y+n<TheMap.Height ) {
-               if( i==0 && n==0 ) {
-                   MissileHitsWall(missile,x+i,y+n,1);
+    x -= missile->Type->Range;
+    y -= missile->Type->Range;
+    for (i = missile->Type->Range * 2; --i;) {
+       for (n = missile->Type->Range * 2; --n;) {
+           if (x + i >= 0 && x + i < TheMap.Width && y + n >= 0 && y + n < 
TheMap.Height) {
+               if (i == 0 && n == 0) {
+                   MissileHitsWall(missile, x + i, y + n, 1);
                } else {
-                   MissileHitsWall(missile,x+i,y+n,2);
+                   MissileHitsWall(missile, x + i, y + n, 2);
                }
            }
        }
@@ -1098,46 +1100,45 @@
     // Mark missile area on screen to be drawn, if missile moves or disappears.
     CheckMissileToBeDrawn(missile);
 
-    switch( missile->Type->Class ) {
+    switch (missile->Type->Class) {
        //
        //      Missile flies from x,y to x1,y1
        //
        case MissileClassPointToPoint:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                MissileHit(missile);
                FreeMissile(missile);
-               missile=NULL;
+               missile = NULL;
            } else {
                //
                //      Animate missile, cycle through frames
                //
-               neg=0;
-               if( missile->SpriteFrame<0 ) {
-                   neg=1;
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               neg = 0;
+               if (missile->SpriteFrame < 0) {
+                   neg = 1;
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               missile->SpriteFrame+=5;                // FIXME: frames pro row
-               if( missile->SpriteFrame
-                       >=VideoGraphicFrames(missile->Type->Sprite) ) {
+               missile->SpriteFrame += 5;              // FIXME: frames pro row
+               if (missile->SpriteFrame >= 
VideoGraphicFrames(missile->Type->Sprite)) {
                    missile->SpriteFrame-=
-                           VideoGraphicFrames(missile->Type->Sprite);
+                       VideoGraphicFrames(missile->Type->Sprite);
                }
-               if( neg ) {
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               if (neg) {
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               DebugLevel3Fn("Frame %d of %d\n"
-                       _C_ missile->SpriteFrame
-                       _C_ VideoGraphicFrames(missile->Type->Sprite));
+               DebugLevel3Fn("Frame %d of %d\n" _C_
+                   missile->SpriteFrame _C_
+                   VideoGraphicFrames(missile->Type->Sprite));
            }
            break;
 
        case MissileClassPointToPointWithDelay:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                MissileHit(missile);
                FreeMissile(missile);
-               missile=NULL;
+               missile = NULL;
            } else {
                //
                //      Animate missile, depends on the way.
@@ -1147,116 +1148,112 @@
            break;
 
        case MissileClassPointToPoint3Bounces:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                //
                //      3 Bounces.
                //
-               switch( missile->State ) {
+               switch (missile->State) {
                    case 1:
                    case 3:
                    case 5:
-                       missile->State+=2;
-                       missile->DX+=missile->Xstep*TileSizeX*3/2;
-                       missile->DY+=missile->Ystep*TileSizeY*3/2;
+                       missile->State += 2;
+                       missile->DX += missile->Xstep * TileSizeX * 3 / 2;
+                       missile->DY += missile->Ystep * TileSizeY * 3 / 2;
                        MissileHit(missile);
                        // FIXME: hits to left and right
                        // FIXME: reduce damage effects on later impacts
                        break;
                    default:
                        FreeMissile(missile);
-                       missile=NULL;
+                       missile = NULL;
                        break;
                }
            } else {
                //
                //      Animate missile, cycle through frames
                //
-               neg=0;
-               if( missile->SpriteFrame<0 ) {
-                   neg=1;
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               neg = 0;
+               if (missile->SpriteFrame < 0) {
+                   neg = 1;
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               missile->SpriteFrame+=5;                // FIXME: frames pro row
-               if( missile->SpriteFrame
-                       >=VideoGraphicFrames(missile->Type->Sprite) ) {
+               missile->SpriteFrame += 5;              // FIXME: frames pro row
+               if (missile->SpriteFrame >= 
VideoGraphicFrames(missile->Type->Sprite)) {
                    missile->SpriteFrame-=
-                           VideoGraphicFrames(missile->Type->Sprite);
+                       VideoGraphicFrames(missile->Type->Sprite);
                }
-               if( neg ) {
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               if (neg) {
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               DebugLevel3Fn("Frame %d of %d\n"
-                       _C_ missile->SpriteFrame
-                       _C_ VideoGraphicFrames(missile->Type->Sprite));
+               DebugLevel3Fn("Frame %d of %d\n" _C_
+                   missile->SpriteFrame _C_
+                   VideoGraphicFrames(missile->Type->Sprite));
            }
            break;
 
        case MissileClassPointToPointWithHit:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                //
                //      Animate hit
                //
-               neg=0;
-               if( missile->SpriteFrame<0 ) {
-                   neg=1;
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               neg = 0;
+               if (missile->SpriteFrame < 0) {
+                   neg = 1;
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               missile->SpriteFrame+=5;        // FIXME: frames pro row
-               if( missile->SpriteFrame
-                       >=VideoGraphicFrames(missile->Type->Sprite) ) {
+               missile->SpriteFrame += 5;      // FIXME: frames per row
+               if (missile->SpriteFrame >= 
VideoGraphicFrames(missile->Type->Sprite)) {
                    MissileHit(missile);
                    FreeMissile(missile);
-                   missile=NULL;
+                   missile = NULL;
                }
-               if( neg && missile ) {
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               if (neg && missile) {
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
            }
            break;
 
 #if 0  // FIXME: is done by the mythic controller
        case MissileClassFlameShield:
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
-           }
-           missile->Wait=missile->Type->Sleep;
-           if( ++missile->SpriteFrame
-                   ==VideoGraphicFrames(missile->Type->Sprite) ) {
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
+           }
+           missile->Wait = missile->Type->Sleep;
+           if (++missile->SpriteFrame == 
VideoGraphicFrames(missile->Type->Sprite)) {
                missile->SpriteFrame = 0;
-               if( PointToPointMissile(missile) ) {
+               if (PointToPointMissile(missile)) {
                    // Must set new goal.
                }
            }
-           if( neg ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 #endif
 
        case MissileClassBlizzard:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                //
                //      Animate hit
                //
-               neg=0;
-               if( missile->SpriteFrame<0 ) {
-                   neg=1;
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               neg = 0;
+               if (missile->SpriteFrame < 0) {
+                   neg = 1;
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
-               missile->SpriteFrame+=4;        // FIXME: frames pro row
-               if( missile->SpriteFrame
-                       >=VideoGraphicFrames(missile->Type->Sprite) ) {
+               missile->SpriteFrame += 4;      // FIXME: frames per row
+               if (missile->SpriteFrame >= 
VideoGraphicFrames(missile->Type->Sprite)) {
                    MissileHit(missile);
                    FreeMissile(missile);
                    missile=NULL;
                }
-               if( neg && missile ) {
-                   missile->SpriteFrame=-missile->SpriteFrame;
+               if (neg && missile) {
+                   missile->SpriteFrame = -missile->SpriteFrame;
                }
            }
            break;
@@ -1264,139 +1261,134 @@
        case MissileClassDeathDecay:
            //NOTE: vladi: this is exact copy of MissileClassStayWithDelay
            // but with check for blizzard-type hit (friendly fire:))
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
-           }
-           missile->Wait=missile->Type->Sleep;
-           if( ++missile->SpriteFrame
-                   ==VideoGraphicFrames(missile->Type->Sprite) ) {
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
+           }
+           missile->Wait = missile->Type->Sleep;
+           if (++missile->SpriteFrame == 
VideoGraphicFrames(missile->Type->Sprite)) {
                MissileHit(missile);
                FreeMissile(missile);
                missile=NULL;
            }
-           if( neg && missile ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg && missile) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 
        case MissileClassWhirlwind:
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
-           }
-           missile->Wait=missile->Type->Sleep;
-           if( ++missile->SpriteFrame
-                   ==VideoGraphicFrames(missile->Type->Sprite) ) {
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
+           }
+           missile->Wait = missile->Type->Sleep;
+           if (++missile->SpriteFrame == 
VideoGraphicFrames(missile->Type->Sprite)) {
                missile->SpriteFrame = 0;
                PointToPointMissile(missile);
            }
-           if( neg ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 
        case MissileClassStayWithDelay:
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
-           }
-           missile->Wait=missile->Type->Sleep;
-           if( ++missile->SpriteFrame
-                   ==VideoGraphicFrames(missile->Type->Sprite) ) {
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
+           }
+           missile->Wait = missile->Type->Sleep;
+           if (++missile->SpriteFrame == 
VideoGraphicFrames(missile->Type->Sprite)) {
                MissileHit(missile);
                FreeMissile(missile);
-               missile=NULL;
+               missile = NULL;
                // FIXME: should MissileHitAndFree();
            }
-           if( neg && missile ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg && missile) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 
        case MissileClassCycleOnce:
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
-           missile->Wait=missile->Type->Sleep;
-           switch( missile->State ) {
+           missile->Wait = missile->Type->Sleep;
+           switch (missile->State) {
                case 0:
                case 2:
                    ++missile->State;
                    break;
                case 1:
-                   if( ++missile->SpriteFrame
-                           ==VideoGraphicFrames(missile->Type->Sprite) ) {
+                   if (++missile->SpriteFrame == 
VideoGraphicFrames(missile->Type->Sprite)) {
                        --missile->SpriteFrame;
                        ++missile->State;
                    }
                    break;
                case 3:
-                   if( !missile->SpriteFrame-- ) {
+                   if (!missile->SpriteFrame--) {
                        MissileHit(missile);
                        FreeMissile(missile);
-                       missile=NULL;
+                       missile = NULL;
                    }
                    break;
            }
-           if( neg && missile ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg && missile) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 
        case MissileClassFire: {
            Unit* unit;
 
-           unit=missile->SourceUnit;
-           if( unit->Destroyed || !unit->HP ) {
+           unit = missile->SourceUnit;
+           if (unit->Destroyed || !unit->HP) {
                FreeMissile(missile);
-               missile=NULL;
+               missile = NULL;
                break;
            }
-           neg=0;
-           if( missile->SpriteFrame<0 ) {
-               neg=1;
-               missile->SpriteFrame=-missile->SpriteFrame;
-           }
-           missile->Wait=missile->Type->Sleep;
-           if( ++missile->SpriteFrame
-                   ==VideoGraphicFrames(missile->Type->Sprite) ) {
+           neg = 0;
+           if (missile->SpriteFrame < 0) {
+               neg = 1;
+               missile->SpriteFrame = -missile->SpriteFrame;
+           }
+           missile->Wait = missile->Type->Sleep;
+           if (++missile->SpriteFrame 
==VideoGraphicFrames(missile->Type->Sprite)) {
                int f;
                MissileType* fire;
 
-               missile->SpriteFrame=0;
-               f=(100*unit->HP)/unit->Stats->HitPoints;
+               missile->SpriteFrame = 0;
+               f = (100 * unit->HP) / unit->Stats->HitPoints;
                fire = MissileBurningBuilding(f);
-               if( !fire ) {
+               if (!fire) {
                    FreeMissile(missile);
-                   missile=NULL;
-                   unit->Burning=0;
+                   missile = NULL;
+                   unit->Burning = 0;
                } else {
-                   if( missile->Type!=fire ) {
-                       missile->X+=missile->Type->Width/2;
-                       missile->Y+=missile->Type->Height/2;
-                       missile->Type=fire;
-                       missile->X-=missile->Type->Width/2;
-                       missile->Y-=missile->Type->Height/2;
+                   if (missile->Type != fire) {
+                       missile->X += missile->Type->Width / 2;
+                       missile->Y += missile->Type->Height / 2;
+                       missile->Type = fire;
+                       missile->X -= missile->Type->Width / 2;
+                       missile->Y -= missile->Type->Height / 2;
                    }
                }
            }
-           if( neg && missile ) {
-               missile->SpriteFrame=-missile->SpriteFrame;
+           if (neg && missile) {
+               missile->SpriteFrame = -missile->SpriteFrame;
            }
            break;
 
        case MissileClassHit:
-           missile->Wait=missile->Type->Sleep;
-           if( PointToPointMissile(missile) ) {
+           missile->Wait = missile->Type->Sleep;
+           if (PointToPointMissile(missile)) {
                MissileHit(missile);
                FreeMissile(missile);
-               missile=NULL;
+               missile = NULL;
            }
            break;
        }
@@ -1419,42 +1411,42 @@
     //
     // NOTE: missiles[??] could be modified!!!
     //
-    while( (missile=*missiles) ) {
-       if( missile->Delay && missile->Delay-- ) {
+    while ((missile = *missiles)) {
+       if (missile->Delay && missile->Delay--) {
            ++missiles;
            continue;           // delay start of missile
        }
 
-       if ( missile->TTL > 0 ) {
+       if (missile->TTL > 0) {
            missile->TTL--;     // overall time to live if specified
        }
 
-       if ( missile->Controller ) {
-           missile->Controller( missile );
-           if( *missiles!=missile ) {  // Missile is destoryed
+       if (missile->Controller) {
+           missile->Controller(missile);
+           if (*missiles != missile) { // Missile is destroyed
                continue;
            }
        }
 
-       if ( !missile->TTL ) {
+       if (!missile->TTL) {
            FreeMissile(missile);
            continue;
        }
 
-       if( --missile->Wait ) { // wait until time is over
+       if (--missile->Wait) {  // wait until time is over
            ++missiles;
            continue;
        }
 
-       if ( missile->Type->Class == MissileClassCustom ) {
-           missile->Wait=missile->Type->Sleep;
+       if (missile->Type->Class == MissileClassCustom) {
+           missile->Wait = missile->Type->Sleep;
            ++missiles;
            continue;   // custom missiles are handled by Controller() only
        }
 
        MissileAction(missile);
 
-       if( *missiles==missile ) {      // Missile not destoryed
+       if (*missiles == missile) {     // Missile not destoryed
            ++missiles;
        }
     }
@@ -1479,12 +1471,12 @@
     int x;
     int y;
 
-    x=(missile->X+missile->Type->Width/2)/TileSizeX;
-    y=(missile->Y+missile->Type->Height/2)/TileSizeY;  // pixel -> tile
+    x = (missile->X+missile->Type->Width / 2) / TileSizeX;
+    y = (missile->Y+missile->Type->Height / 2) / TileSizeY;    // pixel -> tile
 
     DebugLevel3Fn("Missile %p at %d %d\n" _C_ missile _C_ x _C_ y);
 
-    return ViewPointDistance(x,y);
+    return ViewPointDistance(x, y);
 }
 
 /**
@@ -1494,16 +1486,16 @@
 */
 global MissileType* MissileBurningBuilding(int percent)
 {
-    BurningBuildingFrame *frame;
-    BurningBuildingFrame *tmp;
+    BurningBuildingFrame* frame;
+    BurningBuildingFrame* tmp;
 
-    frame=tmp=BurningBuildingFrames;
-    while( tmp ) {
-       if( percent<tmp->Percent ) {
+    frame = tmp = BurningBuildingFrames;
+    while (tmp) {
+       if (percent < tmp->Percent) {
            break;
        }
-       frame=tmp;
-       tmp=tmp->Next;
+       frame = tmp;
+       tmp = tmp->Next;
     }
     return frame->Missile;
 }
@@ -1515,65 +1507,65 @@
 **
 **     @todo FIXME: CanHitOwner and FriendlyFire not supported!
 */
-global void SaveMissileTypes(CLFile * file)
+global void SaveMissileTypes(CLFile* file)
 {
     MissileType* mtype;
     char** sp;
     int i;
 
     CLprintf(file,"\n;;; -----------------------------------------\n");
-    CLprintf(file,";;; MODULE: missile-types $Id: missile.c,v 1.81 2003/09/26 
20:32:00 jsalmon3 Exp $\n\n");
+    CLprintf(file,";;; MODULE: missile-types $Id: missile.c,v 1.82 2003/09/27 
04:00:20 jsalmon3 Exp $\n\n");
 
     //
     // Original number to internal missile-type name.
     //
-    i=CLprintf(file,"(define-missiletype-wc-names");
-    for( sp=MissileTypeWcNames; *sp; ++sp ) {
-       if( i+strlen(*sp)>79 ) {
-           i=CLprintf(file,"\n ");
+    i = CLprintf(file, "(define-missiletype-wc-names");
+    for (sp = MissileTypeWcNames; *sp; ++sp) {
+       if (i + strlen(*sp) > 79) {
+           i = CLprintf(file, "\n ");
        }
-       i+=CLprintf(file," '%s",*sp);
+       i += CLprintf(file, " '%s", *sp);
     }
-    CLprintf(file,")\n\n");
+    CLprintf(file, ")\n\n");
 
     //
     // Missile types
     //
-    for( mtype=MissileTypes; mtype<&MissileTypes[NumMissileTypes]; ++mtype ) {
-       CLprintf(file,"(define-missile-type '%s\n ",mtype->Ident);
-       if( mtype->File ) {
-           CLprintf(file," 'file \"%s\"",mtype->File);
-       }
-       CLprintf(file," 'size '(%d %d)",mtype->Width,mtype->Height);
-       if( mtype->Sprite ) {
-           CLprintf(file," 'frames %d",mtype->SpriteFrames);
-       }
-       CLprintf(file,"\n  'num-directions %d",mtype->NumDirections);
-       CLprintf(file,"\n ");
-       if( mtype->FiredSound.Name ) {
-           CLprintf(file," 'fired-sound \"%s\"",mtype->FiredSound.Name);
-       }
-       if( mtype->ImpactSound.Name ) {
-           CLprintf(file," 'impact-sound \"%s\"",mtype->ImpactSound.Name);
-       }
-       if( mtype->FiredSound.Name || mtype->ImpactSound.Name ) {
-           CLprintf(file,"\n ");
-       }
-       CLprintf(file," 'class '%s",MissileClassNames[mtype->Class]);
-       CLprintf(file," 'draw-level %d ",mtype->DrawLevel);
-       if( mtype->StartDelay ) {
-           CLprintf(file," 'delay %d",mtype->StartDelay);
-       }
-       CLprintf(file," 'sleep %d",mtype->Sleep);
-       CLprintf(file," 'speed %d",mtype->Speed);
-       CLprintf(file," 'range %d",mtype->Range);
-       if( mtype->ImpactMissile ) {
-           CLprintf(file,"\n  'impact-missile 
'%s",mtype->ImpactMissile->Ident);
-       }
-       CLprintf(file,"\n ");
-       CLprintf(file," 'can-hit-owner #%c",mtype->CanHitOwner ? 't' : 'f');
-       CLprintf(file," 'friendly-fire #%c",mtype->FriendlyFire ? 't' : 'f');
-       CLprintf(file,")\n");
+    for (mtype = MissileTypes; mtype < &MissileTypes[NumMissileTypes]; 
++mtype) {
+       CLprintf(file, "(define-missile-type '%s\n ", mtype->Ident);
+       if (mtype->File) {
+           CLprintf(file, " 'file \"%s\"", mtype->File);
+       }
+       CLprintf(file, " 'size '(%d %d)", mtype->Width, mtype->Height);
+       if (mtype->Sprite) {
+           CLprintf(file," 'frames %d", mtype->SpriteFrames);
+       }
+       CLprintf(file, "\n  'num-directions %d", mtype->NumDirections);
+       CLprintf(file, "\n ");
+       if (mtype->FiredSound.Name) {
+           CLprintf(file, " 'fired-sound \"%s\"", mtype->FiredSound.Name);
+       }
+       if (mtype->ImpactSound.Name) {
+           CLprintf(file, " 'impact-sound \"%s\"", mtype->ImpactSound.Name);
+       }
+       if (mtype->FiredSound.Name || mtype->ImpactSound.Name) {
+           CLprintf(file, "\n ");
+       }
+       CLprintf(file, " 'class '%s", MissileClassNames[mtype->Class]);
+       CLprintf(file, " 'draw-level %d ", mtype->DrawLevel);
+       if (mtype->StartDelay) {
+           CLprintf(file, " 'delay %d", mtype->StartDelay);
+       }
+       CLprintf(file, " 'sleep %d", mtype->Sleep);
+       CLprintf(file, " 'speed %d", mtype->Speed);
+       CLprintf(file, " 'range %d", mtype->Range);
+       if (mtype->ImpactMissile) {
+           CLprintf(file, "\n  'impact-missile '%s", 
mtype->ImpactMissile->Ident);
+       }
+       CLprintf(file, "\n ");
+       CLprintf(file, " 'can-hit-owner #%c", mtype->CanHitOwner ? 't' : 'f');
+       CLprintf(file, " 'friendly-fire #%c", mtype->FriendlyFire ? 't' : 'f');
+       CLprintf(file, ")\n");
     }
 }
 
@@ -1584,27 +1576,27 @@
 {
     char* s1;
 
-    CLprintf(file,"(missile 'type '%s",missile->Type->Ident);
-    CLprintf(file," 'pos '(%d %d) 'goal '(%d %d)",
-       missile->X,missile->Y,missile->DX,missile->DY);
+    CLprintf(file, "(missile 'type '%s",missile->Type->Ident);
+    CLprintf(file, " 'pos '(%d %d) 'goal '(%d %d)",
+       missile->X, missile->Y, missile->DX, missile->DY);
     CLprintf(file," '%s", missile->Local ? "local" : "global");
     CLprintf(file,"\n  'frame %d 'state %d 'wait %d 'delay %d\n ",
-       missile->SpriteFrame,missile->State,missile->Wait,missile->Delay);
-    if( missile->SourceUnit ) {
-       CLprintf(file," 'source '%s",s1=UnitReference(missile->SourceUnit));
+       missile->SpriteFrame, missile->State, missile->Wait, missile->Delay);
+    if (missile->SourceUnit) {
+       CLprintf(file, " 'source '%s", s1 = UnitReference(missile->SourceUnit));
        free(s1);
     }
-    if( missile->TargetUnit ) {
-       CLprintf(file," 'target '%s",s1=UnitReference(missile->TargetUnit));
+    if (missile->TargetUnit) {
+       CLprintf(file, " 'target '%s", s1 = UnitReference(missile->TargetUnit));
        free(s1);
     }
-    CLprintf(file," 'damage %d",missile->Damage);
+    CLprintf(file, " 'damage %d", missile->Damage);
     // FIXME: need symbolic names for controller
-    CLprintf(file," 'ttl %d 'controller %ld",
-       missile->TTL,(long)missile->Controller);
-    CLprintf(file," 'data '(%d %d %d %d %d)",
-       missile->D,missile->Dx,missile->Dy,missile->Xstep,missile->Ystep);
-    CLprintf(file,")\n");
+    CLprintf(file, " 'ttl %d 'controller %ld",
+       missile->TTL, (long)missile->Controller);
+    CLprintf(file, " 'data '(%d %d %d %d %d)",
+       missile->D, missile->Dx, missile->Dy, missile->Xstep, missile->Ystep);
+    CLprintf(file, ")\n");
 }
 
 /**
@@ -1617,13 +1609,13 @@
     Missile* const* missiles;
 
     CLprintf(file,"\n;;; -----------------------------------------\n");
-    CLprintf(file,";;; MODULE: missiles $Id: missile.c,v 1.81 2003/09/26 
20:32:00 jsalmon3 Exp $\n\n");
+    CLprintf(file,";;; MODULE: missiles $Id: missile.c,v 1.82 2003/09/27 
04:00:20 jsalmon3 Exp $\n\n");
 
-    for( missiles=GlobalMissiles; *missiles; ++missiles ) {
-       SaveMissile(*missiles,file);
+    for (missiles = GlobalMissiles; *missiles; ++missiles) {
+       SaveMissile(*missiles, file);
     }
-    for( missiles=LocalMissiles; *missiles; ++missiles ) {
-       SaveMissile(*missiles,file);
+    for (missiles = LocalMissiles; *missiles; ++missiles) {
+       SaveMissile(*missiles, file);
     }
 }
 
@@ -1634,23 +1626,23 @@
 {
     MissileType* mtype;
 
-    for( mtype=MissileTypes; mtype->OType; ++mtype ) {
+    for (mtype = MissileTypes; mtype->OType; ++mtype) {
        //
        //      Add missile names to hash table
        //
-       *(MissileType**)hash_add(MissileTypeHash,mtype->Ident)=mtype;
+       *(MissileType**)hash_add(MissileTypeHash, mtype->Ident) = mtype;
 
        //
        //      Resolve impact missiles and sounds.
        //
-       if( mtype->FiredSound.Name ) {
-           mtype->FiredSound.Sound=SoundIdForName(mtype->FiredSound.Name);
+       if (mtype->FiredSound.Name) {
+           mtype->FiredSound.Sound = SoundIdForName(mtype->FiredSound.Name);
        }
-       if( mtype->ImpactSound.Name ) {
-           mtype->ImpactSound.Sound=SoundIdForName(mtype->ImpactSound.Name);
+       if (mtype->ImpactSound.Name) {
+           mtype->ImpactSound.Sound = SoundIdForName(mtype->ImpactSound.Name);
        }
-       if( mtype->ImpactName ) {
-           mtype->ImpactMissile=MissileTypeByIdent(mtype->ImpactName);
+       if (mtype->ImpactName) {
+           mtype->ImpactMissile = MissileTypeByIdent(mtype->ImpactName);
        }
     }
 
@@ -1664,8 +1656,8 @@
 {
     MissileType* mtype;
 
-    for( mtype=MissileTypes; mtype->OType; ++mtype ) {
-       hash_del(MissileTypeHash,mtype->Ident);
+    for (mtype = MissileTypes; mtype->OType; ++mtype) {
+       hash_del(MissileTypeHash, mtype->Ident);
 
        free(mtype->Ident);
        free(mtype->File);
@@ -1676,8 +1668,8 @@
        VideoSaveFree(mtype->Sprite);
     }
     free(MissileTypes);
-    MissileTypes=NULL;
-    NumMissileTypes=0;
+    MissileTypes = NULL;
+    NumMissileTypes = 0;
 }
 
 /**
@@ -1696,23 +1688,23 @@
     Missile* missile;
     char** sp;
 
-    for( missiles=GlobalMissiles; (missile=*missiles); ++missiles ) {
+    for (missiles = GlobalMissiles; (missile = *missiles); ++missiles) {
        free(missile);
-       *missiles=NULL;
+       *missiles = NULL;
     }
-    NumGlobalMissiles=0;
-    for( missiles=LocalMissiles; (missile=*missiles); ++missiles ) {
+    NumGlobalMissiles = 0;
+    for (missiles = LocalMissiles; (missile = *missiles); ++missiles) {
        free(missile);
-       *missiles=NULL;
+       *missiles = NULL;
     }
-    NumLocalMissiles=0;
+    NumLocalMissiles = 0;
 
-    if( MissileTypeWcNames ) {
-       for( sp=MissileTypeWcNames; *sp; ++sp ) {
+    if (MissileTypeWcNames) {
+       for (sp = MissileTypeWcNames; *sp; ++sp) {
            free(*sp);
        }
        free(MissileTypeWcNames);
-       MissileTypeWcNames=NULL;
+       MissileTypeWcNames = NULL;
     }
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]