Remove unused ski and jump propulsion types

master
per 2013-05-25 14:47:13 +02:00
parent 889ed7727f
commit ab25d2c38a
9 changed files with 44 additions and 217 deletions

View File

@ -14,10 +14,6 @@ multiplier = 100
flightName = GROUND
multiplier = 120
[Ski]
flightName = GROUND
multiplier = 100
[Lift]
flightName = AIR
multiplier = 130
@ -29,8 +25,3 @@ multiplier = 100
[Half-Tracked]
flightName = GROUND
multiplier = 80
[Jump]
flightName = AIR
multiplier = 200

View File

@ -1,48 +1,48 @@
[0]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,150,250,100"
[1]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,80,250,100"
[2]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,100,100,150,250,100"
[3]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,90,100,100,250,80"
[4]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,80,250,100"
[5]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,100,100,50,250,90"
[6]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "150,120,100,150,250,135"
[7]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,60,60,150,250,60"
[8]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,60,60,80,250,60"
[9]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,80,100,80,250,50"
[10]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "70,90,100,150,250,80"
[11]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,100,75,80,250,80"

View File

@ -14,10 +14,6 @@ multiplier = 100
flightName = GROUND
multiplier = 120
[Ski]
flightName = GROUND
multiplier = 100
[Lift]
flightName = AIR
multiplier = 130
@ -30,7 +26,3 @@ multiplier = 100
flightName = GROUND
multiplier = 80
[Jump]
flightName = AIR
multiplier = 200

View File

@ -1,48 +1,48 @@
[0]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,150,250,100"
[1]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,80,250,100"
[2]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,100,100,150,250,100"
[3]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,90,100,100,250,80"
[4]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "100,100,100,80,250,100"
[5]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,100,100,50,250,90"
[6]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "150,120,100,150,250,135"
[7]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,60,60,150,250,60"
[8]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,60,60,80,250,60"
[9]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "80,80,100,80,250,50"
[10]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "70,90,100,150,250,80"
[11]
propulsionType = "0,1,2,3,5,7"
propulsionType = "0,1,2,3,4,6"
speedFactor = "60,100,75,80,250,80"

View File

@ -678,14 +678,12 @@ bool fpathCheck(Position orig, Position dest, PROPULSION_TYPE propulsion)
case PROPULSION_TYPE_WHEELED:
case PROPULSION_TYPE_TRACKED:
case PROPULSION_TYPE_LEGGED:
case PROPULSION_TYPE_SKI: // ?!
case PROPULSION_TYPE_HALF_TRACKED:
return origTile->limitedContinent == destTile->limitedContinent;
case PROPULSION_TYPE_HOVER:
return origTile->hoverContinent == destTile->hoverContinent;
case PROPULSION_TYPE_JUMP:
case PROPULSION_TYPE_LIFT:
return true; // FIXME: This is not entirely correct for all possible maps. - Per
return true; // assume no map uses skyscrapers to isolate areas
case PROPULSION_TYPE_NUM:
break;
}

View File

@ -65,10 +65,6 @@
#define VTOL_HEIGHT_LEVEL 300
#define VTOL_HEIGHT_MAX 350
/* minimum distance for cyborgs to jump */
#define CYBORG_MIN_JUMP_DISTANCE 500
#define CYBORG_MAX_JUMP_HEIGHT 200
// Maximum size of an object for collision
#define OBJ_MAXRADIUS (TILE_UNITS * 4)
@ -1845,72 +1841,14 @@ static void moveUpdateVtolModel(DROID *psDroid, SDWORD speed, uint16_t direction
}
}
#define CYBORG_VERTICAL_SPEED ((int)psDroid->baseSpeed / 2)
static void
moveCyborgLaunchAnimDone( ANIM_OBJECT *psObj )
{
DROID *psDroid = (DROID*)psObj->psParent;
ASSERT( psDroid != NULL,
"moveCyborgLaunchAnimDone: invalid cyborg pointer" );
/* raise cyborg a little bit so flying - terrible hack - GJ */
// Actually, worse than a terrible hack, since it would break synch...
//psDroid->pos.z++;
//psDroid->sMove.iVertSpeed = CYBORG_VERTICAL_SPEED;
psDroid->psCurAnim = NULL;
}
static void
moveCyborgTouchDownAnimDone( ANIM_OBJECT *psObj )
{
DROID *psDroid = (DROID*)psObj->psParent;
ASSERT( psDroid != NULL,
"moveCyborgTouchDownAnimDone: invalid cyborg pointer" );
psDroid->psCurAnim = NULL;
// See comment in moveCyborgLaunchAnimDone().
//psDroid->pos.z = map_Height( psDroid->pos.x, psDroid->pos.y );
}
static void moveUpdateJumpCyborgModel(DROID *psDroid, SDWORD speed, uint16_t direction)
{
int fPerpSpeed, fNormalSpeed;
uint16_t iDroidDir;
int32_t dx, dy;
// nothing to do if the droid is stopped
if ( moveDroidStopped( psDroid, speed ) == true )
{
return;
}
// FIXME, fix hardcoded values -- or remove this mis-feature
moveUpdateDroidDirection(psDroid, &speed, direction, DEG(180), psDroid->baseSpeed*DEG(1), psDroid->baseSpeed*DEG(1)/3, &iDroidDir);
fNormalSpeed = moveCalcNormalSpeed(psDroid, speed, iDroidDir, 200, 200);
fPerpSpeed = 0;
moveCombineNormalAndPerpSpeeds(psDroid, fNormalSpeed, fPerpSpeed, iDroidDir);
moveGetDroidPosDiffs( psDroid, &dx, &dy );
moveUpdateDroidPos( psDroid, dx, dy );
}
static void moveUpdateCyborgModel(DROID *psDroid, SDWORD moveSpeed, uint16_t moveDir, UBYTE oldStatus)
{
int32_t iMapZ = map_Height(removeZ(psDroid->pos));
CHECK_DROID(psDroid);
// nothing to do if the droid is stopped
if ( moveDroidStopped( psDroid, moveSpeed ) == true )
if (moveDroidStopped(psDroid, moveSpeed) == true)
{
if ( psDroid->psCurAnim != NULL )
if (psDroid->psCurAnim != NULL)
{
if (!animObj_Remove(psDroid->psCurAnim, psDroid->psCurAnim->uwID))
{
@ -1918,114 +1856,34 @@ static void moveUpdateCyborgModel(DROID *psDroid, SDWORD moveSpeed, uint16_t mov
}
psDroid->psCurAnim = NULL;
}
return;
}
PROPULSION_STATS *psPropStats = asPropulsionStats + psDroid->asBits[COMP_PROPULSION];
ASSERT( psPropStats != NULL,
"moveUpdateCyborgModel: invalid propulsion stats pointer" );
/* do vertical movement */
if (psPropStats->propulsionType == PROPULSION_TYPE_JUMP)
if (psDroid->psCurAnim == NULL)
{
int iDz = gameTimeAdjustedIncrement(psDroid->sMove.iVertSpeed);
int iDroidZ = psDroid->pos.z;
if (iDroidZ + iDz < iMapZ)
// Only add the animation if the droid is on screen, saves memory and time.
if (clipXY(psDroid->pos.x, psDroid->pos.y))
{
psDroid->sMove.iVertSpeed = 0;
psDroid->pos.z = iMapZ;
}
else
{
psDroid->pos.z = psDroid->pos.z + iDz;
}
if (psDroid->pos.z >= iMapZ + CYBORG_MAX_JUMP_HEIGHT && psDroid->sMove.iVertSpeed > 0)
{
psDroid->sMove.iVertSpeed = -CYBORG_VERTICAL_SPEED;
}
}
/* calculate move distance */
Vector2i iD = psDroid->sMove.destination - removeZ(psDroid->pos);
int32_t iDist = iHypot(iD);
/* set jumping cyborg walking short distances */
if ( (psPropStats->propulsionType != PROPULSION_TYPE_JUMP) ||
((psDroid->sMove.iVertSpeed == 0) &&
(iDist < CYBORG_MIN_JUMP_DISTANCE)) )
{
if ( psDroid->psCurAnim == NULL )
{
// Only add the animation if the droid is on screen, saves memory and time.
if(clipXY(psDroid->pos.x,psDroid->pos.y))
if (psDroid->droidType == DROID_CYBORG_SUPER)
{
if ( psDroid->droidType == DROID_CYBORG_SUPER )
{
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_SUPERCYBORG_RUN, 0, 0);
}
else if (cyborgDroid(psDroid))
{
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_CYBORG_RUN, 0, 0);
}
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_SUPERCYBORG_RUN, 0, 0);
}
} else {
// If the droid went off screen then remove the animation, saves memory and time.
if(!clipXY(psDroid->pos.x,psDroid->pos.y))
else if (cyborgDroid(psDroid))
{
const bool bRet = animObj_Remove(psDroid->psCurAnim, psDroid->psCurAnim->psAnim->uwID);
ASSERT(bRet, "animObj_Remove failed");
psDroid->psCurAnim = NULL;
}
}
/* use baba person movement */
moveUpdatePersonModel(psDroid, moveSpeed, moveDir);
}
else
{
/* jumping cyborg: remove walking animation if present */
if ( psDroid->psCurAnim != NULL )
{
if ((psDroid->psCurAnim->uwID == ID_ANIM_CYBORG_RUN
|| psDroid->psCurAnim->uwID == ID_ANIM_SUPERCYBORG_RUN
|| psDroid->psCurAnim->uwID == ID_ANIM_CYBORG_PACK_RUN)
&& !animObj_Remove(psDroid->psCurAnim, psDroid->psCurAnim->uwID))
{
debug(LOG_NEVER, "couldn't remove walk anim");
}
psDroid->psCurAnim = NULL;
}
/* add jumping or landing anim */
if ( (oldStatus == MOVEPOINTTOPOINT) &&
(psDroid->sMove.Status == MOVEINACTIVE) )
{
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_CYBORG_PACK_LAND, 0, 1);
animObj_SetDoneFunc( psDroid->psCurAnim, moveCyborgTouchDownAnimDone );
}
else if ( psDroid->sMove.Status == MOVEPOINTTOPOINT )
{
if ( psDroid->pos.z == iMapZ )
{
if ( psDroid->sMove.iVertSpeed == 0 )
{
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_CYBORG_PACK_JUMP, 0, 1);
animObj_SetDoneFunc( psDroid->psCurAnim, moveCyborgLaunchAnimDone );
}
else
{
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_CYBORG_PACK_LAND, 0, 1);
animObj_SetDoneFunc( psDroid->psCurAnim, moveCyborgTouchDownAnimDone );
}
}
else
{
moveUpdateJumpCyborgModel(psDroid, moveSpeed, moveDir);
psDroid->psCurAnim = animObj_Add(psDroid, ID_ANIM_CYBORG_RUN, 0, 0);
}
}
}
// If the droid went off screen then remove the animation, saves memory and time
else if (!clipXY(psDroid->pos.x, psDroid->pos.y))
{
const bool bRet = animObj_Remove(psDroid->psCurAnim, psDroid->psCurAnim->psAnim->uwID);
ASSERT(bRet, "animObj_Remove failed");
psDroid->psCurAnim = NULL;
}
/* use baba person movement */
moveUpdatePersonModel(psDroid, moveSpeed, moveDir);
psDroid->rot.pitch = 0;
psDroid->rot.roll = 0;

View File

@ -1071,7 +1071,6 @@ static UDWORD scrDroidTargetMask(DROID *psDroid)
mask |= SCR_DT_TRACK;
break;
case PROPULSION_TYPE_LEGGED:
case PROPULSION_TYPE_JUMP:
mask |= SCR_DT_LEGS;
break;
case PROPULSION_TYPE_HOVER:
@ -1086,7 +1085,6 @@ static UDWORD scrDroidTargetMask(DROID *psDroid)
case PROPULSION_TYPE_PROPELLOR:
mask |= SCR_DT_PROPELLOR;
break;
case PROPULSION_TYPE_SKI:
default:
ASSERT(false,
"scrUnitTargetMask: unknown or invalid target unit propulsion type");

View File

@ -634,10 +634,6 @@ bool getPropulsionType(const char *typeName, PROPULSION_TYPE *type)
{
*type = PROPULSION_TYPE_HOVER;
}
else if (strcmp(typeName, "Ski") == 0)
{
*type = PROPULSION_TYPE_SKI;
}
else if (strcmp(typeName, "Lift") == 0)
{
*type = PROPULSION_TYPE_LIFT;
@ -650,10 +646,6 @@ bool getPropulsionType(const char *typeName, PROPULSION_TYPE *type)
{
*type = PROPULSION_TYPE_HALF_TRACKED;
}
else if (strcmp(typeName, "Jump") == 0)
{
*type = PROPULSION_TYPE_JUMP;
}
else
{
debug(LOG_ERROR, "getPropulsionType: Invalid Propulsion type %s - assuming Hover", typeName);

View File

@ -205,11 +205,9 @@ enum PROPULSION_TYPE
PROPULSION_TYPE_TRACKED,
PROPULSION_TYPE_LEGGED,
PROPULSION_TYPE_HOVER,
PROPULSION_TYPE_SKI,
PROPULSION_TYPE_LIFT,
PROPULSION_TYPE_PROPELLOR,
PROPULSION_TYPE_HALF_TRACKED,
PROPULSION_TYPE_JUMP,
PROPULSION_TYPE_NUM, /** The number of enumerators in this enum. */
};