From 37d7adb0e2e2b878ef728212fa2bb7d750c89f3a Mon Sep 17 00:00:00 2001 From: Giel van Schijndel Date: Thu, 5 Jul 2007 12:57:24 +0000 Subject: [PATCH] * Add some assertions on unhandled/invalid BASE_OBJECT.type values to aid in debugging * Add some whitespace to increase readability (empty lines between different case labels in switch statements, and use more consistent indentation in switch statements) git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@2027 4a71c877-e1ca-e34f-864e-861f7616d084 --- src/projectile.c | 79 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/src/projectile.c b/src/projectile.c index d38932fe4..04ee6d3af 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -443,10 +443,21 @@ proj_SendProjectile( WEAPON *psWeap, BASE_OBJECT *psAttacker, SDWORD player, heightVariance = rand()%8; } break; + case OBJ_STRUCTURE: heightVariance = rand()%8; break; + + case OBJ_BULLET: + ASSERT(!"invalid object type: bullet", "proj_SendProjectile: invalid object type: OBJ_BULLET"); + break; + + case OBJ_TARGET: + ASSERT(!"invalid object type: target", "proj_SendProjectile: invalid object type: OBJ_TARGET"); + break; + default: + ASSERT(!"unknown object type", "proj_SendProjectile: unknown object type"); break; } tarHeight = psTarget->z + heightVariance; @@ -2234,14 +2245,25 @@ SDWORD objectDamage(BASE_OBJECT *psObj, UDWORD damage, UDWORD weaponClass,UDWORD case OBJ_DROID: return droidDamage((DROID *)psObj, damage, weaponClass,weaponSubClass, angle); break; + case OBJ_STRUCTURE: return structureDamage((STRUCTURE *)psObj, damage, weaponClass, weaponSubClass); break; + case OBJ_FEATURE: return featureDamage((FEATURE *)psObj, damage, weaponSubClass); break; + + case OBJ_BULLET: + ASSERT(!"invalid object type: bullet", "objectDamage: invalid object type: OBJ_BULLET"); + break; + + case OBJ_TARGET: + ASSERT(!"invalid object type: target", "objectDamage: invalid object type: OBJ_TARGET"); + break; + default: - ASSERT(!"unknown object type", "objectDamage - unknown object type"); + ASSERT(!"unknown object type", "objectDamage: unknown object type"); } return 0; @@ -2264,29 +2286,42 @@ STRUCTURE *psStructure; switch(psObj->type) { - case OBJ_DROID: - psDroid = (DROID*)psObj; - if( (gameTime - psDroid->timeLastHit) < HIT_THRESHOLD && - psDroid->lastHitWeapon == WSC_ELECTRONIC) - return(TRUE); - case OBJ_FEATURE: - psFeature = (FEATURE*)psObj; - if( (gameTime - psFeature->timeLastHit) < HIT_THRESHOLD ) - return(TRUE); - break; - case OBJ_STRUCTURE: - psStructure = (STRUCTURE*)psObj; - if( (gameTime - psStructure->timeLastHit) < HIT_THRESHOLD && - psStructure->lastHitWeapon == WSC_ELECTRONIC) - return(TRUE); - break; - default: - debug( LOG_ERROR, "Weird object type in justBeenHitByEW" ); - abort(); - break; + case OBJ_DROID: + psDroid = (DROID*)psObj; + if ((gameTime - psDroid->timeLastHit) < HIT_THRESHOLD + && psDroid->lastHitWeapon == WSC_ELECTRONIC) + return(TRUE); + break; + + case OBJ_FEATURE: + psFeature = (FEATURE*)psObj; + if ((gameTime - psFeature->timeLastHit) < HIT_THRESHOLD) + return(TRUE); + break; + + case OBJ_STRUCTURE: + psStructure = (STRUCTURE*)psObj; + if ((gameTime - psStructure->timeLastHit) < HIT_THRESHOLD + && psStructure->lastHitWeapon == WSC_ELECTRONIC) + return TRUE; + break; + + case OBJ_BULLET: + ASSERT(!"invalid object type: bullet", "justBeenHitByEW: invalid object type: OBJ_BULLET"); + abort(); + break; + + case OBJ_TARGET: + ASSERT(!"invalid object type: target", "justBeenHitByEW: invalid object type: OBJ_TARGET"); + abort(); + break; + + default: + ASSERT(!"unknown object type", "justBeenHitByEW: unknown object type"); + abort(); } - return(FALSE); + return FALSE; } void objectShimmy(BASE_OBJECT *psObj)